Livre Asmaa Lakhdar 978-620-6-70285-6
Livre Asmaa Lakhdar 978-620-6-70285-6
Livre Asmaa Lakhdar 978-620-6-70285-6
!
" # $% &% ' '(&
7 &
7 *+*8 " # $ % & % ' '(&
Guide pratique des Méthodes Numériques Appliquées
dans l'Optimisation
C'est avec un immense plaisir que je vous présente ce guide pratique intitulé
"Méthodes Numériques Appliquées dans l'Optimisation". Je suis Lakhdar
Asmaa, enseignante à l'Université de Tiaret, et c'est avec un engagement
profond envers l'éducation supérieure et l'optimisation que j'ai entrepris ce
projet.
Contexte et Objectifs
L'optimisation est au cœur des défis contemporains, et son application nécessite
une compréhension approfondie des méthodes numériques associées. Dans le
cadre du programme de master, j'ai constaté la nécessité d'un guide pratique qui
facilite la compréhension de ces méthodes souvent complexes.
Un Guide Pratique
Ce livre a été conçu comme un compagnon indispensable pour les étudiants du
master, offrant une approche pratique pour aborder les méthodes numériques
appliquées dans l'optimisation. Il vise à simplifier des concepts parfois ardus,
fournissant des explications claires, des exemples concrets, et des applications
pratiques.
Pertinence Actuelle
Le monde d'aujourd'hui accorde une importance croissante à l'optimisation, que
ce soit dans les domaines de la science des données, de l'ingénierie ou de la
prise de décision. Ce livre vise à doter les étudiants des outils nécessaires pour
relever ces défis, en offrant des solutions concrètes à des problèmes réels.
Remerciements
Ce projet n'aurait pas vu le jour sans le soutien de collègues et d'étudiants
dévoués. Mes sincères remerciements à tous ceux qui ont contribué, directement
ou indirectement, à l'élaboration de ce guide, ainsi qu'à ma famille pour son
soutien constant.
Je souhaite à chaque lecteur une expérience enrichissante à travers ces pages et
espère que ce guide sera une ressource précieuse dans votre parcours
académique et professionnel.
Bien cordialement,
Lakhdar Asmaa
Enseignante, Université Ibn Khaldoun de Tiaret.
2
L'optimisation est un domaine clé des mathématiques appliquées qui vise à
trouver les valeurs optimales d'une fonction sous des contraintes données.
Dans ce guide pratique, Matlab est utilisé dans la résolution numérique. C’est
un langage de programmation largement utilisé dans le domaine scientifique et
d'ingénierie, offre un ensemble puissant d'outils pour l'optimisation numérique.
Les fonctions dédiées telles que fminunc, fmincon, et linprog permettent de
résoudre efficacement des problèmes d'optimisation avec différentes
contraintes.
4
5
Chapitre I
ZĂƉƉĞůƐŵĂƚŚĠŵĂƚŝƋƵĞƐ;(WŽƐŝƚŝǀŝƚĠ͕ŽŶǀĞdžŝƚĠ͕DŝŶŝŵƵŵ͕'ƌĂĚŝĞŶƚĞƚ,ĞƐƐŝĞŶ͕͕ũĂĐŽďŝĞŶͿ
Contenu du chapitre 1 :
I-1 Introduction 07
I-2 Notions fondamentales 07
I.2.1 Ensembles convexes 07
I.2.2 Fonctions concaves, fonctions convexes 08
I.2.3 Matrice Hessienne ou le Hessien 11
I.2.4 Matrice Jacobienne ou le Jacobien 11
1.2.5 Matrices (semi) définies négatives, matrice (semi) définies positives 12
I.2.6 Gradient 12
I-3 Généralités sur l’optimisation. 13
I.3.1 Optimum local, Optimum global 14
-Exercices- 15
Rappels mathématiques (Positivité, Convexité, gradient et Hessien)
Références :
- Michel Minoux,” Programmation Mathématique. Théorie et Algorithmes, livre édité par : Tec Et Doc, 2008,
EAN13 : 9782743022280, pages 710.
- J.Grenet, « Vademecum: optimisation statique, Lagrangien et conditions de Kuhn et Tucker », École Normale
Supérieure,Paris, Année 2007-2008.
- Stephen Boyd, Lieven Vandenberghe Convex Optimization, Cambridge University Press, 2004.
- Michel Bierlaire, Optimization : principles and algorithms, EPFL, 2015.
- Jean-Christophe Culioli, Introduction à l'optimisation, Ellipses, 2012.
- Logiciel Matlab R2019a
- https://www.editions-petiteelisabeth.fr/etudier_les_variations_d_une_fonction.php
6
I-1 Introduction
Basée sur l’existence des dérivées, Consiste à évoluer la Basées sur un processus
chercher un extrémum valeur de la fonction à aléatoire, qui utilise un
optimiser en chaque point choix aléatoire comme
de l’espace de solution outils d’exploration
possible. hautement intelligent
dans l’espace de
recherche
n
Ensemble convexe : Un ensemble S de R est convexe ssi,
( x, y ) S : (1 O ) x O y S , O [0,1]
2
Intuitivement, un ensemble convexe est tel que tout segment reliant deux points de cet
ensemble se trouve à l’intérieur de l’ensemble. La figure 1 donne un exemple d’ensemble
convexe et un exemple d’ensemble non convexe.
n
Ensemble strictement convexe : Un ensemble S de R est strictement convexe ssi,
( x, y)S 2 : (1 O ) x O y int erieur S , O @0.1>
7
′
Ensemble convexe S Ensemble non convexe S
Figure 1 : Exemples d’un ensemble convexe S et d’un ensemble non convexe S′.
Autrement dit, une fonction f est concave ssi le segment reliant tout couple de points situés
sur la surface définie par f est situé au-dessous de cette surface.
Autrement dit, une fonction f situés sur la surface définie par f est convexe si le segment reliant
tout couple de points est situé au-dessus de cette surface.
8
Un exemple de fonction strictement concave dans le cas à une seule variable est montré dans
la figure 2 et dans le cas à 2 variables dans la figure 3. La figure 4 Ğƚϱ donnent un exemple de
fonction strictement convexe dans le cas à 1 variable et dans le cas à 2 variables.
N.B. : Il est important de ne pas confondre la notion d’ensemble convexe avec celle de fonction
convexe.
Propriétés importantes :
• f concave => −f convexe
• Si f et g sont des fonctions concaves (resp. Convexes), alors (a, b) R 2 , (a. f b.g ) est
une fonction concave (resp. Convexe).
• Si f est une fonction concave et g est une fonction croissante et concave, alors la fonction g
f(x) est concave.
• Si f est une fonction convexe et g est une fonction croissante et convexe, alors la fonction g
f(x) est convexe.
• Une fonction affine est à la fois concave et convexe.
9
10
Propriétés importantes : Fonction à plusieurs variables
• f est une fonction concave =>la matrice Hessienne de f est semi définie négative x R n
• la matrice Hessienne de f est définie négative x R n => f strictement concave
• f est une fonction convexe => la matrice Hessienne de f est semi définie positive x R n
• la matrice Hessienne de f est définie positive x R n => f strictement convexe
n m
Matrice Jacobienne : soit G= g1 , g 2 ,..., g m une fonction définie de R dans R . A tout
vecteur x x1 , x 2 ,..., x n la fonction G associe le vecteur de fonctions
g1 x , g 2 x ,..., g m x . On appelle matrice jacobienne de G la matrice de dimension
(m, n) J G x1 , x 2 ,..., x n des dérivées partielles des m fonctions qui composent G.
11
§ wg1 wg1 wg1 ' wg1 ·
¨ wx x x x . . . x ¸
wx 2 wx 3 wx n
3
¨ 1 ¸
¨ wg 2 wg 2 wg 2 ' wg 2 ¸
¨ wx x x x 3 . . . x ¸
¨ 1 wx 2 wx 3 wx n ¸
¨ wg 3 wg 3 wg 3 ' wg 3 ¸
¨ x x x 3 . . . x ¸
¨ wx1 wx 2 wx 3 wx n ¸
JG x1 , x 2 ,..., x n ¨. . . . . . . ¸
¨ ¸
¨. . . . . . . ¸
¨. . . . . . . ¸
¨ ¸
¨ wg m wg m wg m wg ¸
¨ wx x x x 3' . . . m x ¸
wx 2 wx 3 wx n
¨ 1 ¸
¨ ¸
¨ ¸
© ¹
AT MA ! 0 A z 0
N.B. : Les éléments diagonaux aii d’une matrice définie positive sont tous > 0.
Matrice semi-définie positive : Soit M une matrice carrée symétrique. Soit A un vecteur
T
colonne quelconque. On note A sa transposée. Une matrice M est dite semi-définie positive si
et seulement si :
AT MA t 0 A
N.B. : Les éléments diagonaux aii d’une matrice semi-définie positive sont tous ≥ 0.
Matrice définie négative : Soit M une matrice carrée symétrique. Soit A un vecteur colonne
T
quelconque. On note A sa transposée. M est dite définie positive si et seulement si :
AT MA <0 A z 0
N.B. : Les éléments diagonaux aii d’une matrice définie négative sont tous <0.
Matrice semi-définie négative : Soit M une matrice carrée symétrique. Soit A un vecteur
T
colonne quelconque. On note A sa transposée. Une matrice M est dite semi-définie négative si
et seulement si :
AT MA d 0 A
N.B. : Les éléments diagonaux aii d’une matrice semi-définie négative sont tous ≤0.
I.2.6 Gradient
Le gradient d'une fonction de plusieurs variables en un certain point est un vecteur qui
caractérise la variabilité de cette fonction au voisinage de ce point. Défini en tout point où la
fonction est différentiable, il définit un champ de vecteurs, également dénommé gradient. Le
12
gradient est la généralisation à plusieurs variables de la dérivée d'une fonction d'une seule
variable.
En physique et en analyse vectorielle, le gradient est un vecteur indiquant comment une
grandeur physique varie dans l'espace. Le gradient est d'une importance capitale en physique,
où il fut d'abord employé. Utilisé en théorie des variations, il est aussi fondamental dans le
domaine de l'optimisation ou de la résolution d'équations aux dérivées partielles.
En sciences de la Terre, le gradient est utilisé pour la variation dans toutes les directions
d'un paramètre de la lithosphère, de l'hydrosphère, de l'atmosphère ou de la biosphère.
Dans un système de coordonnées cartésiennes, le gradient d'une fonction f x1 , x 2 ,..., x n
wf
est le vecteur de composantes ͘ C'est-à-dire les dérivées partielles de
wxi ( i 1.2,....n )
p max f ( x , x ,.....xn )
1 2
x1 , x2 ,..... xn sous contra int e g ( x j ) j 1,2,.....m
Programme de minimisation sous contrainte :
13
I.3.1 Optimum local, Optimum global
Maximum, minimum:
• La valeur x* qui résout le programme P est un maximum de la fonction f sous les contraintes
du programme.
′
• La valeur x* qui résout le programme P est un minimum de la fonction f sous les
contraintes du programme.
Optimum local :
x La variable x est un maximum local d’une fonction f définie sur l’ensemble convexe
• S H ! 0 tel que f ( x) d f ( x* ) x S et | x x |d H
x La variable x est un minimum local d’une fonction f définie sur l’ensemble convexe
• S H ! 0 tel que f ( x) t f ( x* ) x S et | x x |d H
Optimum global:
x La variable x est un maximum global d’une fonction f définie sur l’ensemble convexe
• S f ( x) d f ( x* ) x S
x La variable x est un minimum global d’une fonction f définie sur l’ensemble convexe
• S f ( x) t f ( x* ) x S
Conditions nécessaires
Transformation et suffisantes
des programmes de d’existence d’un:optimum
minimisation :
tout programme de minimisation
peutPour trouver
aisément solution x end’un
êtrela transformé programme
programme d’optimisation en
de maximisation quelconque, on ladistingue
remplaçant fonction
traditionnellement deux types de conditions :
objectif f par son opposée −f : min
• Les conditions du premier xordre
f ( x) min f ( xnécessaires
(CPO) sont les xconditions
) que doit vérifier
sous contra int e sous contra int e
un optimum, s’il existe. Ces conditions s’écrivent comme un système d’équations ou
d’inéquations dont la résolution permet de trouver x .
• Les conditions du second ordre (CSO) garantissent que les conditions du premier ordre
sont suffisantes pour que x soit bien la solution du programme d’optimisation.
14
Exercice
-Exercices-
Rappels mathématiques (Positivité, Convexité, gradient et Hessien)
Exercice 1 :
1-Etudier les variations de la fonction f définie sur R par f x 2x 3 3x 2 36x 5 ͘
Exercice 2 :
soit f : n
o R une fonction convexe, et soit C n
un ensemble
ensembl convexe.
Montrer quel ' ensemble D ^ x, y 1
nn1
, x C , y t f ( x)` est convexe dans n 1
.
Exercice 3 :
Soit la fonction f définie sur R par f ( x) x3 6 x 2 3x 4
x Donner le tableau de variation de f '( x) ͘
x Donner les intervalles sur lesquels f ( x) est convexe.
Exercice 4 :
Soit le programme de maximisation suivant :
p max f ( x) ( x 2) 2
x
f ( x, y ) 4 x 2 y 2 x 3 4 xy 2 x 1
z x,y 6 ( x 2)2 ( y 2)2
15
g ( x, y , z ) x 2 2 y 2 3z 2 2 xy 2 xz
Calculer l’optimum de ces fonctions.
Lesquelles de ces fonctions sont convexes (concaves).
- Corrigé-
Rappels mathématiques (Positivité, Convexité, gradient et Hessien)
Exercice 1 :
1-Etudier les variations de la fonction f définie sur R par f x 2x 3 3x 2 36x 5 ͘
La fonction f est définie sur l'ensemble des réels par f x 2x 3x 2 36x 5
3
Elle est dérivable sur l'ensemble des réels. Sa dérivée f ' est définie par f ' x 6x 2 6x 36
Pour étudier le signe de f '(x) polynôme du second degré, on résout l'équation f '(x) = 0.
Le discriminant Δ est positif (Δ = 900).
Donc l'équation 6x 2 6x 36 = 0 admet deux solutions réelles x1 et x2.
x1 = -2. f(x1) = 49.
x2 = 3. f(x2) = -76.
x Si x < x1 alors f est croissante : la courbe monte quand x augmente.
x Si x = x1 alors f admet un maximum local égal à f(x1).
x Si x1 < x < x2 alors f est décroissante : la courbe descend quand x augmente.
x Si x = x2 alors f admet un minimum local égal à f(x2).
x Si x > x2 alors f est croissante : la courbe monte quand x augmente.
16
2-Etudier les variations de la fonction g définie sur R par g x x2
La fonction f est définie sur l'ensemble des réels par f(x) = x2.
Quel que soit x, f(-x) = (-x)2 = x2 = f(x). La fonction f est donc paire.
La fonction f est dérivable sur l'ensemble des réels. Sa dérivée f ' est définie par f '(x) = 2x.
Signe de f '(x)
x ^ŝdžфϬĂůŽƌƐĨΖ;džͿфϬ͘
x ^ŝdžсϬĂůŽƌƐĨΖ;džͿсϬ͘
x ^ŝdžхϬĂůŽƌƐĨΖ;džͿхϬ͘
Tableau de variation de f
17
Exercice 2 :
Pour montrer que l ' ensemble D ^ x, y n 1
1
, x C , y t f ( x)` est convexe dans n 1
.
Il faut vé rifier que pour tous les points x1 , y1 et x2 , y2 dans D et pour tout O [0,1],
le point pondéré O x1 , y1 1 O x2 , y2 appartient également à D.
x1 C , y1 t f ( x )
Soit x1 , y1 et x2 , y2 deux points de D ®
¯ x2 C , y2 t f ( x )
Il faut monter que O x1 1 O x2 C et O y1 1 O y2 t f (O x1 1 O x2 ).
Comme C est convexe, O x1 1 O x2 C.
Puisque f est convexe, nous avons l ' inegalité convexe :
f (O x1 1 O x2 ) d O f ( x1 ) 1 O f ( x2 )...................(*)
Comme
y1 t f ( x1 ) ......................................................................(1)
et
y2 t f ( x2 ).....................................................................(2)
En multipliant ces inegalités : (1) par O et (2) par 1 O repectivement ,
On obtient :
O y1 t O f ( x1 ) ..................................................................(3)
et
1 O y2 t 1 O f ( x2 )..................................................(4)
En ajoutant ces deux inegalités (3) et (4) On obtient :
O y1 1 O y2 t O f ( x1 ) 1 O f ( x2 ) ceci t l ' inegalité convexe (*)
O y1 1 O y2 t O f ( x1 ) 1 O f ( x2 ) t f (O x1 1 O x2 )
Ainsi, O y1 1 O y2 t f (O x1 1 O x2 ).
Cela montre que O x1 , y1 1 O x2 , y2 D, et par conséquent , D est convexe dans n 1
n
Exercice 3 :
Soit le programme de maximisation suivant :
ххƐLJŵƐdžLJ
p max f ( x) ( x 2) 2 ххĨсͲϯΎdžΎLJͲdž͘ΔϯͲLJΎdž͘Δϯ͖
x ххĨdžсĚŝĨĨ;Ĩ͕džͿ
Ĩdžс
x Trouver le maximum global de P. x=2 Ͳ ϯΎLJͲ ϯΎdžΔϮΎLJͲ ϯΎdžΔϮ
x Modifier le problème P, en prenant f ( x, y ) 3 xy x 3 yx 3 , ххĨLJсĚŝĨĨ;Ĩ͕LJͿ
ĨLJс
°f x 3 y 3x 2 3 yx 2 ° x 0
' *
Ͳ džΔϯͲ ϯΎdž
® ' ® * ххĨϮdžсĚŝĨĨ;Ĩdž͕džͿ
¯°f y 3x x 3
¯° y 0 ĨϮdžс
Ͳ ϲΎdžͲ ϲΎdžΎLJ
Nature de l ' optimum (0, 0) ххĨϮLJсĚŝĨĨ;ĨLJ͕džͿ
ĨϮLJс
§ 6 x 6 xy 3 3x 2 · §0 3 · Ͳ ϯΎdžΔϮͲ ϯ
H (0,0) ¨¨ ¸¸ ¨ ¸ ххĨϮLJсĚŝĨĨ;ĨLJ͕LJͿ
© 3 3x
2
0 ¹ © 3 0¹ ĨϮLJс
Ϭ
det( H (0,0) ) 9 0 max ххĨϮdžсĚŝĨĨ;Ĩdž͕LJͿ
ĨϮdžс
% plot the function ݂ሺݔǡ ݕሻ ൌ െ͵ ݕݔെ ݔଷ െ ݔݕଷ Ͳ ϯΎdžΔϮͲ ϯ
fun = @(x1, x2) -3*x1.*x2 - x1.^3 - x1.^3.*x2;
% Create a grid of points
[x1, x2] = meshgrid(-2:0.1:2, -2:0.1:2);
% Evaluate the function at each point in the grid
z = fun(x1, x2);
18
% Create a 3D surface plot
figure;
surf(x1, x2, z);
% Add labels and title
xlabel('x_1');
ylabel('x_2');
zlabel('z');
title('f(x,y)=-3xy-x^3-yx^3');
=========================
% Initial guess
x0 = [0, 0];
% Perform optimization
options = optimoptions('fminunc', 'Display', 'iter', 'Algorithm',
'quasi-newton');
[x_opt, fval] = fminunc(fun, x0, options);
Run
====================================================================
Optimal values:
x1: 0
x2: 0
Optimal value of the function: 0
19
Exercice 4:
z x,y 6 ( x 2) ( y 2)
2 2
§ 2( x 2) · § 2 0 ·
z x , y ¨ ¸ H ¨ ¸
© 2( y 2) ¹ ©0 2¹
g ( x, y , z ) x 2 2 y 2 3z 2 2 xy 2 xz § 2x + 2y + 2z · §2 2 2 ·
¨ ¸ ¨ ¸
g x , y , z ¨ 4y+2x ¸ H ¨2 4 0 ¸
¨ 6z+2x ¸ ¨2 0 6 ¸¹
© ¹ ©
Calculer l’optimum de ces fonctions. Lesquelles de ces fonctions sont convexes (concaves).
f ( x, y ) 4 x 2 y 2 x 3 4 xy 2 x 1 f x, y 0 § 8 y 12 x 8x 4 ·
H x, y ¨ ¸
f (0,1/ 2) 1 ! Max local °8 yx 6 x 4 y 2 02
© 8x 4 0 ¹
® 2
f (1, 2) 5 ! Max global °̄ 4 x 4 x 0
§ 4 4·
H 0,1/2 ¨ ¸
Concave x 0 x 1 © 4 0 ¹ схDĂdž
®
¯ y 1/ 2 y 2 det H 0,1/2 16 0
O1* 0,1/ 2 , O2* 1, 2
§ 4 4 ·
H 1,2 ¨ ¸
© 4 0 ¹ схDĂdž
det H 1,2 16 0
20
Chapitre II
KƉƚŝŵŝƐĂƚŝŽŶƐĂŶƐĐŽŶƚƌĂŝŶƚĞƐͲŵĠƚŚŽĚĞƐůŽĐĂůĞƐ
Contenu du chapitre 2 :
II-1 Introduction 22
II-2 Méthodes de recherche unidimensionnelle 22
II.2.1 Méthodes utilisant les dérivées 22
II.2.1.1 Méthode de Newton Raphson 22
II.2.1.2 Méthode de Sécante 25
II.2.1.3 Méthode de Dichotomie avec dérivée 26
II.2.2 Méthodes n’utilisant pas des dérivées 28
II.2.2.1 Méthode de Dichotomie sans dérivée 23
II.2.2.2 Méthode d’itération ou du point fixe 29
II.3 Optimisation linéaire sans contrainte 30
II.3.1 Méthode du gradient 33
II.3.2 Méthode de Newton 34
II.3.3 Méthode quasi-Newton 35
II.3.4 Méthodes des directions conjuguées 36
II.3.5 Méthode de Levenberg-Marquardt 39
-Exercices- 42
Optimisation sans contraintes (Fonction à n variables, Newton Raphson,
dichotomie, point fixe, méthode du gradient, Newton, Quasi Newton)
Références:
-G. B. Dantzig, « Maximization of a linear function of variables subject to linear inequalities », dans Tj. C.
Koopmans, Activity Analysis of Production and Allocation, New York, Wiley, 1951, p. 339–347.
- M. Gori et A. Tesi, « On the problem of local minima in backpropagation », IEEE Transactions on Pattern
Analysis and Machine Intelligence, ǀŽů͘ 14, ŶŽ 1, ϭϵϵϮ, Ɖ͘ 76–86.
-P.Milan, « Mathématiques - Terminale S: Tout ce qu'il faut savoir »,Vol 2, ISBN-13 : 978-1500209438 – Éditeur
: CreateSpace Independent Publishing Platform; 1er édition (17 juin 2014).
- P.Milan , « Fonctions : limites, dérivabilité, exponentielle et logarithme. Intégration : Terminale S », ISBN-13 :
978-1502975584.Éditeur : CreateSpace Independent Publishing Platform (26 octobre 2014).
-D. G. Luenberger, « A combined penalty function and gradient projection method for nonlinear programming »
Journal of Optimization Theory and Applications volume 14, pages477–495(1974).
-M. Minoux, « Programmation Mathématique. Théorie et Algorithmes », livre édité par : Tec Et Doc, 2008,
EAN13 9782743022280, pages 710.
-J. ABADIE « Une méthode arborescente pour les programmes non-linéaires partiellement discrets Revue
française d’informatique et de recherche opérationnelle. Série verte, tome 3, no V3 (1969), p. 25-49 »
21
II-1 Introduction
Ces méthodes sont subdivisées en deux types : celles qui utilisent les dérivées et d’autres
qui n’utilisent pas de dérivées.
Méthodes de
recherche
unidimensionnelle
22
La méthode consiste à introduire une suite de x k d’approximation successives de l’équation
f ( x) ͘
Figure7 : graphique décrivant le principe de la méthode de Newton
On part d’un x0 proche de la solution.
• À partir de x0, on calcule un nouveau terme x1 de la manière suivante : on trace la tangente
en x0. Cette tangente coupe l’axe des abscisses en x1 comme indiqué sur la figure 7.
• On réitère ce procédé en calculant x2 en remplaçant x0 par x1, puis x3 en remplaçant x1 par
x2 et ainsi de suite.
x k 1 Est l’abscisse du point d’intersection de la tangente en x n avec l’axe des abscisses.
L’équation de la tangente en x k est : y f c xk x xk f xk Cette tangente coupe
l’axe des abscisses quand y = 0 : f c xk x xk f xk 0
k
f x
f c xk x xk = f xk x = xk
f c xk
f xk
On a donc la relation de récurrence suivante : x k 1 xk
f c xk
Etapes de l’algorithme de la méthode de Newton
1- Choix du point initial x 0 ͘
2- Déterminer le point x1 par la méthode graphique Traçage de la tangente qui coupe
l’axe des abscisses en x1 comme indiqué sur la figure 7.
3- Répéter le processus itératif pour obtenir x 2
f ( xk )
4- Critère d’arrêt pour une précision de p : 10 p
f '( x k )
5- Pour utiliser cet algorithme, il faudra calculer la fonction dérivée et rentrer les
fonctions f et f ′ dans le programme.
Example d’application
Soit la fonction f à optimiser qui est définie sur l'ensemble des réels par f(x) = x3 - 2x - 5
Elle est dérivable sur l'ensemble des réels. Sa dérivée f ' est définie par f '(x) = 3x2 - 2
23
Signe de f '(x)
Pour étudier le signe de f '(x) polynôme du second degré, on résout l'équation f '(x) = 0.
Le discriminant Δ est positif (Δ = 24) donc l'équation 3x2 - 2 = 0 admet deux solutions réelles x1 et x2.
x1 = -0.81649658092773.
x2 = 0.81649658092773.
On en déduit le signe de f '(x) (de la forme px2 + qx + r) : p = 3.
Tableau de variation
x1 = -0.81649658092773. x2 = 0.81649658092773.
Example d’application
f(x) = x3 - 2x2 - 6x + 4
f '(x) = 3x2 - 4x - 6
x1 = -0.89680525327448. 25
x2 = 2.2301385866078.
f(x1) = 7.0510479048974.
f(x2) = -8.2362330900826.
Application de l’algorithme de la
sécante pour optimiser f(x) = x3 - 2x2 - 6x +
4:
1. Fixer x 0 1 Ğƚ x1 2
x1 x 0 2 1 2
2. Calculer x 2 x1 f '( x1 ) Î x 2 2 (2) 2 1.6
f '( x1 ) f '( x 0 ) (2) (7) 5
x 2 x1 1.6 2 (0.4)
3. Calculer x3 x2 f '( x 2 ) Î x3 1.6 (4,72) 1.6 (4,72) 2,29
f '( x ) f '( x )
2 1
(4,72) (2) (2,72)
4. Le calcul continu jusqu’à ce que les décimales conservées cessent de varier.
5. Test d’arrêt : x k 1 x k d H ͕ H est la borne d’erreur absolue donnée.
ܺ5= 2.2301.
Pour une optimisation dont le but est de chercher un optimum à partir de la dérivée de
f' x 0 ͕ on supposera précisément, que la fonction est continue sur l'intervalle [a,b],
l'intervalle [a,b] tel que f ' c 0 ͘ L'idée est alors d'évaluer ce que vaut f ' x au milieu
26
Etapes de l’Algorithme de la méthode de Dichotomie
ab
1. Initialisation : choix x 0
2
2. Etudier le signe de f ' ( x 0 )
a b 1 a1 b1 an bn
3. Construire une suite x 0 ,x ,.... x n
2 2 2
Elle est dérivable sur l'ensemble des réels. Sa dérivée est définie par f ' x 2x 2 ͘
3. Calcul de x 0
10 20
x0 5
2
4. Calcul de la dérivée au point x 0
f' 5 12 0 Î f '(10) u f '(5) 0
9. Calcul de x 2
5
5
2 2 5
x
2 4
10. Calcul de la dérivée au point x 2
§5· 9
f'¨ ¸ 0
©4¹ 2
ª 5 5º 5 5
11. Le quatrième intervalle « , » . x1 , x2
¬ 2 4¼ 2 4
12. Le test d’arrêt : (b-a) < ε
Solution x= -1
3. Test d’arrêt : x k 1 -x k H
Cette méthode est plus simple à programmer et elle nécessite moins d’opérations par
itération., cependant, le point délicat est le choix convenable de la fonction d’itération g(.).
En effet, on peut mettre l’équation à résoudre f ( x) 0 sous la forme équivalente g ( x) x
d’une infinité de manières.
29
Example d’application
Soit la fonction f définie sur l'ensemble des réels par : f x x 2 2x 1 ͘
On va choisir une fonction g ( x) x ͕ de la fonction f ( x) on tire x, on trouve :
g ( x) ( x 1) / 2
2
P : max f(x)
x
*
Condition du premier ordre : si x est une solution du programme de maximisation
* *
P, alors x vérifie : f ' x 0
Conditions du second ordre pour un optimum local : Supposons qu’il existe un x qui
vérifie la CPO. Alors:
• x Est un maximum local => f " x * d 0
*
30
Exemple : Trouver le maximum global du programme de maximisation P :
P : max f ( x) ( x 2) 2
x
Solution:
Conditions du second ordre pour un optimum local : Supposons qu’il existe un x* qui
vérifie les CPO. Alors :
*
• H ( x ) est définie négative => x* est un maximum local.
*
• x* est un maximum local => H ( x ) est semi-définie négative
*
• H ( x ) est définie positive => x* est un minimum local
*
• x* est un minimum local => H ( x ) est semi-définie positive où
H ( x* ) : désigne la matrice hessienne de f évaluée au point x* .
• H ( x ) est semi-définie positive => x* ( f est convexe) => x* est un minimum global
*
*
où H ( x ) désigne la matrice hessienne de f évaluée au point x* .
31
Exemple : Résoudre le programme de maximisation P :
P : max f ( x, y) 3xy x3 y 3
x, y
Solution :
f x ' ( x , y) 0 ! 3( y) 3( x) 2 0
c
f y ( x , y) 0 ! 3( x) 3( y) 2
0
Il y a deux solutions possibles : (0,0) et (1,1).
§ 6 x 3 ·
H ( x , y) ¨ ¸
© 3 6y ¹
§ 0 3·
H (0 , 0) ¨ ¸ сх det H (0 , 0) 9
© 3 0¹
§ 6 3·
H (1 ,1) ¨ ¸ сх det H (1 ,1) 45 схmaximum global
© 3 6¹
§ 2( x 3) · § 0 · x 3
f ( x, y ) ¨ ¸ ¨ ¸®
© 2( y 2) ¹ © 0 ¹ ¯ y 2
§ 2 0·
2 f ( x, y ) ¨ ¸
©0 2¹
det f ( x, y ) 4 0
2
32
33
Exemple : Résoudre le programme de minimisation P par la méthode du gradient :
P : min f ( x, y) ( x 3)2 ( y 2)2
x, y
Solution
§ 2·
Etape 1 : le point de départ x 0 ¨ ¸, k 0.
© 2¹
§ 2( x 3) · § 2 ·
Etape 2 : calculer le gradient f ( x 0 ) ¨ ¸ ¨ ¸
© 2( y 2) ¹ © 0 ¹
§ 2·
Etape 3 : calculer la direction de descente d 0 f ( x 0 ) ¨ ¸
©0¹
Etape 4 : rechercher O 0 en minimisant la fonction
f ( x0 O 0d 0 ) ((2 2O 0 ) 3) 2 ((2 0O 0 ) 2) 2
(2O 0 1) 2
͕
f '( x O d )
0 0 0
0 2(2)(2O 0 1) 0
O0 1/ 2
§ 2· § 2·
x1 x 0 O 0 d 0 ¨ ¸ 0.5 ¨ ¸
© 2¹ ©0¹ 1
Etape 5 : définir un nouveau point : , x le minimum global
§3·
x1 ¨ ¸
© 2¹
Solution
§ 2·
Etape 1 : le point de départ x 0 ¨ ¸, k 0.
© 2¹
§ 2( x 3) · § 2 · § 2 0·
Etape 2 : calculer le gradient f ( x 0 ) ¨ ¸ ¨ ¸ ͕le Hessien f ( x ) ¨
2 0
¸
© 2( y 2) ¹ © 0 ¹ ©0 2¹
34
1 §1 ·
Etape 3 : calculer la direction de descente d 0 ¬ª 2 f ( x 0 ) ¼º f ( x 0 ) ¨ ¸
©0¹
Etape 4 : rechercher O 0 en minimisant la fonction
f ( x0 O 0d 0 ) ((2 O 0 ) 3) 2 ((2 0O 0 ) 2) 2
(O 0 1) 2
͕
f '( x O d )
0 0 0
0 2(O 0 1) 0
O0 1
§ 2 · §1 ·
x1 x 0 O 0 d 0 ¨ ¸ 1¨ ¸
© 2¹ ©0¹
Etape 5 : définir un nouveau point :
§ ·
3
x1 ¨ ¸
© 2¹
0 ª1 0 º
Etape 3 : définir la matrice H «0 1»
¬ ¼
Etape 4 : calculer la direction de descente d k H k .f ( x k ) , k 0,1,.....n
Solution
§ 2·
Etape 1 : le point de départ x 0 ¨ ¸, k 0.
© 2¹
§ 2( x 3) · § 2 · § 2 0·
Etape 2 : calculer le gradient f ( x 0 ) ¨ ¸ ¨ ¸ ͕le Hessien f ( x ) ¨
2 0
¸
© 2( y 2) ¹ © ¹
0 ©0 2¹
0 ª1 0 º
Etape 3 : définir la matrice H «0 1»
¬ ¼
§ 2·
Etape 4 : calculer la direction de descente d 0 H 0 f ( x 0 ) ¨ ¸
©0¹
35
Etape 4 : rechercher O 0 en minimisant la fonction
f ( x0 O 0d 0 ) ((2 2O 0 ) 3) 2 ((2 0O 0 ) 2) 2
(2O 0 1) 2
͕
f '( x O d )
0 0 0
0 2(2)(2O 0 1) 0
O0 1/ 2
§ 2· § 2·
x1 x 0 O 0 d 0 ¨ ¸ 0.5 ¨ ¸
© ¹
2 ©0¹
Etape 5 : définir un nouveau point :
§3·
x1 ¨ ¸
© 2¹
Dans le cas où le résultat n’est pas trouvé dans la première itération, il existe plusieurs
variantes dans le choix de la formule de mise à jour de la matrice H k 1 ͕ deux méthodes pour
calculer la matrice H k 1 sont présentées dans ce chapitre :
T T
k 1
Gk Gk Hk Jk J k Hk
H H k
T
T
Gk Jk Jk Hk J k
°J f ( x k 1 ) f ( x k )
k
® k
°̄ G x k 1 x k
T T
Jk Jk Hk Hk
H k 1 Hk T
T
Jk Gk Gk H kG k
°J k f ( x k 1 ) f ( x k )
® k
°̄ G x k 1 x k
© 0 ¹ 34 © 8 ¹ ¨ 40 ¸
¨ ¸
© 34 ¹
§ 20 · § 48 ·
§ 2 0 · ¨ 34 ¸ § 4 · ¨ 17 ¸ § 2.8235 ·
Etape 5 : calculer g f ( x ) ¨
1 1
¸¨ ¸ ¨ ¸ ¨ ¸ ¨ ¸
© 0 8 ¹ ¨ 40 ¸ © 8 ¹ ¨ 24 ¸ ©1.4118 ¹
¨ ¸ ¨ ¸
© 34 ¹ © 17 ¹
37
Etape 6 : définir une nouvelle direction d 1 g 1 B 0 d 0 ͘
§ 48 ·
§ 48 24 · ¨ 17 ¸
¨ ¸ ¨ ¸
© 17 17 ¹ ¨ 24 ¸
1 T 1 ¨ ¸
B0
(g ) (g ) © 17 ¹ 36
0 T
(g ) (g )0
§ ·
4 289
(4 8) ¨ ¸
©8 ¹
Etape 7 : Test d’arrêt B 0 z 0 . Le test n’est pas vérifié, retour à l’étape 2.
Etape 2 : Itération de l’algorithme x 2 x1 O1d 1 ͘
§ 48 ·
¨ 17 ¸ 36 § 4 · 120 § 8 · § 3.3218 ·
Etape 3 : chercher d 1 g 1 B 0 d 0 Î d 1 ¨ ¸ ¨ ¸ ¨ ¸ ¨ ¸
¨ 24 ¸ 289 © 8 ¹ 289 © 1¹ © -0.4152 ¹
¨ ¸
© 17 ¹
Etape 4 : rechercher O 1 ,
§ 48 ·
48 24 ¨ 17 ¸
( )¨ ¸
17 17 ¨ 24 ¸
( g 1 )T g 1 ¨ ¸
O1 © 17 ¹ 17
0.4250
1 T
(d ) A d 1
§ 120 · § 2 0 · § 120 · § 8 · 40
¨ ¸ (8 1) ¨ ¸¨ ¸¨ ¸
© 289 ¹ © 0 8 ¹ © 289 ¹ © 1¹
§ 20 ·
¨ ¸ 17 120 § 8 · § 2 ·
Calcule de x ͗ x ¨ 34 ¸
2 2
¨ ¸ ¨ ¸
¨ 40 ¸ 40 289 © 1¹ ©1 ¹
¨ ¸
© 34 ¹
§ 2 0 ·§ 2 · § 4 · § 0 ·
Etape 5 : calculer g f ( x 2 ) ¨
2
¸¨ ¸ ¨ ¸ ¨ ¸
© 0 8 ¹©1 ¹ © 8 ¹ © 0 ¹
Etape 6 : définir une nouvelle direction d 2 g 2 B1d 1 ͘
§0·
0 0 ¨ ¸
( g 2 )T ( g 2 ) ©0¹
B 1
0
( g 1 )T ( g 1 ) § 48 ·
§ 48 24 · ¨ 17 ¸
¨ ¸ ¨ ¸
© 17 17 ¹ ¨ 24 ¸
¨ ¸
© 17 ¹
1
Etape 7 : Test d’arrêt B 0 . Le test est vérifié, l’optimum est atteint.
Propriétés
T
x Directions mutuelles conjuguées d 1 et d 0 par rapport à la matrice A Î d 1 Ad 0 0
T120 § 2 0 ·§ 4 ·
Vérification͗ d1 Ad08 1 ¨ ¸¨ ¸ 0 Î les directions d 1 et d 0 sont
289 © 0 8 ¹© 8 ¹
conjuguéespar rapport à la matrice A.
38
§ 34 ·
¨ 17 ¸
0 Î les Gradients f ( x ) et f ( x )
1 0
Vérification ͗ f ( x 0 )T f ( x1 ) 4 8 ¨ ¸
¨ 48 ¸
¨ ¸
© 17 ¹
sont orthogonaux͘
T
x Condition de descente d 0 d0 0 ;k 0͘
T § 4·
Vérification ͗ d0 d0 4 8 ¨ ¸ 80 0 Î la direction d 0 ĞƐt une direction de
©8 ¹
descente.
T § 120 120 § 8 · ·
k 1 ͖ d1 d1 ¨ 8 1 ¨ ¸ ¸ 11.20 0 Î la direction d ĞƐt une
1
39
Exemple : Résoudre le programme d’optimisation P par la méthode Levenberg-Marquardt:
2 2
P :min f ( x1 , x2 ) x12 x2 11 x1 x2 2 7
Solution
§0·
Etape 1 : le point de départ x 0 ¨ ¸,k 0 ͕ H 103 , O 0 100, p 0 100
©0¹
Etape 2 : Itération de l’algorithme x1 x 0 ( H 0 O 0 I ) 1 f ( x 0 ) ͘
f ( x1 ) 2 2 x1 x x2 11 2 x1 x2 2 7
1
2
§ 14 ·
Etape 3 : chercher Î f ( x 0 ) ¨ ¸
f ( x2 ) 2 x x2 11 2 2 x2
1
2
x1 x2 7
2
© 22 ¹
Etape 4 : calcul de la matrice Hessienne
§ w2 f w2 f ·
¨ 2 ¸
wx1 wx1 x2 ¸ §12x12 + 4x 2 - 42 4x1 + 4x 2 · § - 42 0 ·
H ¨ 2 ¨ ¸ÎH x
0
¨ ¸
¨ w f w 2 f ¸ ¨© 4x1 + 4x 2 4 x1 12x 2 26 ¸¹
2
©0 26 ¹
¨¨ ¸
2 ¸
© wx2 x1 wx2 ¹
1
§ 0 · § § 42 0 · §1 0 · · § 14 · § 0.2414 ·
Etape 5 : Calcul de x1 ͗ x1¨ ¸ ¨¨ ¸ 100 ¨ ¸¸ ¨ ¸ ¨ ¸
©0¹ ©©0 26 ¹ © 0 1¹ ¹ © 22 ¹ © 0.2973 ¹
Etape 6 : définir un nouveau͘ O 1
f x1 157, 79
f x0 170
O0
f x1 f x 0 O1 50
2
Etape 7 : Itération de l’algorithme x 2 x1 ( H 1 O 1 I ) 1 f ( x1 ) ͘
§ 23.645 · § 40.1115 2.1548 ·
f ( x1 ) ¨ ¸͕H x
1
¨ ¸
© 29.213 ¹ © 2.1548 23.9738 ¹
1
§ 0.2414 · § § 40.1115 2.1548 · §1 0 · · § 23.645 · § 2.4274 ·
x 2 ¨ ¸ ¨¨ ¸ 50 ¨ ¸¸ ¨ ¸ ¨ ¸
© 0.2973 ¹ © © 2.1548 23.9738 ¹ © 0 1¹ ¹ © 29.213 ¹ ©1.2388 ¹
f x1 157, 79
2
f x 24,19
O1
f x2 f x2 O 2 25
2
40
function x0=LevenbergMarquardt()
% Exemple de fonction quadratique
f = @(x, y)(x^2+y-11).^2+(x+y^2-7).^2;
% Paramètres initiaux
lambda0 = 100;
epsilon = 0.0001;
max_iterations = 100;
% Initialisation
x0 = [1; 1]; % Point initial
lambda = lambda0;
for k = 1:max_iterations
% Étape 2 : Calcul du gradient (Jacobien) au point x0
grad_f = [2 *(2*x0(1))*(x0(1).^2+x0(2)-11)+2*(x0(1)+x0(2).^2-7);
2*(x0(1).^2+x0(2)-11)+2 *(2*x0(2))*(x0(1)+x0(2).^2-7)];
% Afficher le résultat
disp('Résultat final :');
disp(['x : ', num2str(x0(1))]);
disp(['y : ', num2str(x0(2))]);
disp(['Valeur de la fonction : ', num2str(f(x0(1), x0(2)))]);
disp(['Nombre d''itérations : ', num2str(k)]);
RUN
Command Window:
LevenbergMarquardt
Résultat final :
x : 3
y : 2
Valeur de la fonction : 4.5313e-09
Nombre d'itérations : 8
41
-Exercices-
Optimisation sans contraintes (Fonction à n variables, Newton Raphson,
dichotomie, point fixe, méthode du gradient, Newton, Quasi-Newton)
Exercice 1 :
Calculer le déterminant des deux matrices A et B, puis calculer leurs matrices inverses
respectivement.
§0 1 2·
§2 3 · ¨ ¸
A ¨ ¸ ͕ B ¨ 2 1 0 ¸ ͕
© 4 5¹ ¨1 0 1 ¸
© ¹
Exercice 2: Optimisation sans contrainte (fonction à n variables)
o n=1
Soit le problème d’optimisation P sans contrainte, P min f ( x) 3x 4 5 x3 2 x 2 x 6 ͘
- Calculer 2 f ͘
- La fonction f est-elle convexe ou concave, quelle est la nature
de l’optimum.
Corrigé
L’optimum x* сͲϭ͘ϱest un minimum global
o n=2
Soit le problème d’optimisation P sans contrainte P min f ( x, y ) x 2 y 2 2 x y 1 ͘
42
- Corrigé-
Optimisation sans contraintes (Fonction à n variables, Newton Raphson,
dichotomie, point fixe, méthode du gradient, Newton, Quasi-Newton)
Exercice 1 :
Calculer le déterminant des deux matrices A et B, puis calculer leurs matrices inverses
respectivement.
§0 1 2· § 0.25 0.25 0.5 ·
§2 3 · 1 § 2.5 1.5 · ¨ ¸ 1 ¨ ¸
A ¨ ¸ сх A ¨ ¸ B ¨ 2 1 0 ¸ сх B ¨ 0.5 0.5 1 ¸
© 4 5¹ © 2 1 ¹ ¨1 0 1 ¸ ¨ 0.25 0.25 0.5 ¸
© ¹ © ¹
͕
Exercice 2: Optimisation sans contrainte (fonction à n variables)
o n=1
Soit le problème d’optimisation P sans contrainte, P min f ( x) 3x 4 5 x3 2 x 2 x 6 ͘
- Calculer 2 f ͘
- La fonction f est-elle convexe ou concave,
quelle est la nature de l’optimum.
Corrigé
L’optimum x* сͲϭ͘ϱest un minimum global
o n=2
Soit le problème d’optimisation P sans contrainte P min f ( x, y ) x 2 y 2 2 x y 1 ͘
46
Algorithme de Quasi Newton
P min f ( x, y ) x2 y 2 2x y 1
Etape 1 : choisir un point de départ % Définition de la fonction
§0· f = @(x, y) 10*x.^2 + 3*y.^2 - 10*x.*y + 2*x;
x0 ¨ ¸ , k 0 . % Générer une grille de points
©0¹ x = linspace(-10, 10, 100);
y = linspace(-10, 10, 100);
Etape 2 : calculer le gradient [X, Y] = meshgrid(x, y);
% Calculer les valeurs de la fonction sur la
§ 2x 2 · § 2 · grille
f ( x) ¨ ¸ f ( x ) ¨ ¸
0
Z = f(X, Y);
© 2 y 1 ¹ ©1 ¹ hold on
% Tracer la surface
surf(X, Y, Z);
0 ª1 0 º title('Graphique de f(x, y) = 10x^2 + 3y^2 -
Etape 3 : définir la matrice H «0 1» 10xy + 2x');
¬ ¼ xlabel('x');
ylabel('y');
zlabel('f(x, y)');
Etape 4 : calculer la direction de descente % Tracer les lignes de niveau
contour(X, Y, Z, 20);
d0 H 0 .f ( x 0 )
§ 2·
¨ ¸
© -1 ¹
Etape 5 : rechercher O k en minimisant la fonction͕
2 2
f ( x0 O 0d 0 ) 2O 0 O 0 2 2O 0 O 0 1
2
5 O0 5 O0 1
f '( x 0 O 0 d 0 ) 10O 0 5 0 O 0 1/ 2
Exercice 5
-Utiliser les méthodes gradient et Newton pour trouver le minimum de la fonction f(x,y)
݂ሺݔǡ ݕሻ ൌ ͳͲ ݔଶ ͵ ݕଶ െ ͳͲ ݕݔ ʹ ݔ
- Comparer vos résultats des deux méthodes avec ceux obtenus analytiquement et donner
vos remarques et conclusions.
ZĠƐƵůƚĂƚŶĂůLJƚŝƋƵĞ
§ 20 x 10 y 2 ·
f ( x ) ¨ ¸
© 6 y 10 x ¹
20 x 10 y 2 0
f ( x ) 0 ® x (0.6, 1)
*
¯6 y 10 x 0
§ 20 10 ·
H 2 f ( x0 ) ¨ ¸ det( H ) 20 ! 0 ĚŽŶĐ x (0.6, 1) est un min global.
*
© 10 6 ¹
47
Méthode du gradient à pas variable
݂ሺݔǡ ݕሻ ൌ ͳͲ ݔଶ ͵ ݕଶ െ ͳͲ ݕݔ ʹݔ
Etape 1 : le point de départ
§0·
x0 ¨ ¸,k 0.
©0¹
Etape 2 : calculer le gradient function x0=Newtonoptimisation()
% Définition de la fonction
§ 20 x0 10 y0 2 · § 2 · f = @(x, y) 10*x.^2 + 3*y.^2 -
f ( x 0 ) ¨ ¸ ¨ ¸ 10*x.*y + 2*x;
© 6 y0 10 x0 ¹ ©0¹
% Paramètres initiaux
Etape 3 : calculer la direction de descente epsilon = 0.0001;
max_iterations = 100;
§ 2 ·
d0 f ( x 0 ) ¨ ¸ % Initialisation
©0 ¹ x0 = [0; 0]; % Point initial
k = 0;
Etape 4 : rechercher O 0 en minimisant la fonction
while k < max_iterations
% Étape 2 : Calcul du gradient
§ 2O 0 ·
f ( x0 O 0d 0 ) f ¨ ¸
(Jacobien) au point x0
©0 ¹ grad_f = [20*x0(1) - 10*x0(2) +
10(2O 0 ) 2 3(0) 2 10(2O 0 )(0) 2(2O 0 ) 2; 6*x0(2) - 10*x0(1)];
2
͕
% Étape 3 : Calcul de la matrice
40 O 0 4O 0 Hessienne au point x0
Hessian = [20, -10; -10, 6];
f '( x 0 O 0 d 0 ) 80O 0 4 0 O 0 1/ 20 0.05
% Étape 3 : Calcul de la direction
Etape 5 : définir un nouveau point de descente d0
d0 = - grad_f;
x1 x0 O 0d 0
% Étape 4 : Calcul de lambda0
§0· § 2 · syms lambda;
¨ ¸ 0.05 ¨ ¸ ͘ lambda0 = solve(gradient(f(x0(1) +
©0¹ ©0 ¹ lambda*d0(1), x0(2) + lambda*d0(2)),
lambda) == 0, lambda);
§ 0.1·
¨ ¸ % Étape 5 : Définir le nouveau point
©0 ¹ x1
x1 = x0 + lambda0*d0;
48
Méthode de Newton
݂ሺݔǡ ݕሻ ൌ ͳͲ ݔଶ ͵ ݕଶ െ ͳͲ ݕݔ ʹݔ
Etape 1 : choisir un point de départ
§0·
x0 ¨ ¸,k 0.
©0¹
function [x0]=Newtonoptimisation()
Etape 2 : calculer le gradient % Définition de la fonction
f = @(x, y) 10*x.^2 + 3*y.^2 -
§ 20 x0 10 y0 2 · § 2 · 10*x.*y + 2*x;
f ( x 0 ) ¨ ¸ ¨ ¸
© 6 y0 10 x0 ¹ ©0¹ % Paramètres initiaux
epsilon = 0.0001;
max_iterations = 100;
§ 20 10 ·
2 f ( x0 ) ¨ ¸
© 10 6¹ % Initialisation
x0 = [0; 0]; % Point initial
k = 0;
Etape 3 : calculer la direction de descente
1 while k < max_iterations
d0 ª¬ 2 f ( x 0 ) º¼ .f ( x 0 ) % Étape 2 : Calcul du gradient
(Jacobien) au point x0
§ 0.3000 0.5000 ·§ 2 ·
¨ ¸¨ ¸ grad_f = [20*x0(1) - 10*x0(2) +
© 0.5000 1.0000 ¹© 0 ¹ 2; 6*x0(2) - 10*x0(1)];
§ 0.6000 ·
¨ ¸
% Étape 3 : Calcul de la matrice
Hessienne au point x0
©1.0000 ¹ Hessian = [20, -10; -10, 6];
Etape 4 : rechercher O 0 en minimisant la fonction % Étape 4 : Calcul de la
direction de descente d0
§ 0.6O 0 · d0 = -inv(Hessian)*grad_f;
f ( x 0 O 0 d 0 ) f ¨¨ 0 ¸¸
© O ¹ % Étape 5 : Calcul de lambda0
O0) syms lambda;
10(0.6O ) 3(O 0 ) 2 10(0.6O 0 )( O 0 ) 2( 0.6 ͕
0 2
lambda0 = solve(gradient(f(x0(1)
2 2 2 + lambda*d0(1), x0(2) +
3.6 O 0 3 O0 6 O0 1.2O 0 lambda*d0(2)), lambda) == 0,
lambda);
2 '
f '( x 0 O 0 d 0 ) 0.6 O 0 1.2O 0 0 O0 1 % Étape 6 : Définir le nouveau
point x1
Etape 5 : définir un nouveau point x1 = x0 + lambda0*d0;
49
Chapitre III
KƉƚŝŵŝƐĂƚŝŽŶƐŽƵƐĐŽŶƚƌĂŝŶƚĞƐͲŵĠƚŚŽĚĞƐŐůŽďĂůĞƐ
III-1 Introduction 51
III.2Méthode de Lagrange-Newton pour des contraintes égalités et inégalités 51
III.3Méthode de pénalisation 59
III.4Méthode de Newton projetée (pour des contraintes de borne) 64
III.5 Méthode de dualité : méthode d’Uzawa 68
III.6 Méthode du gradient projeté 71
-Exercices- 73
Optimisation sous contraintes (égalités et inégalités) Lagrange et conditions
de Kuhn et Tucker
Références :
- J.Grenet, « Vademecum: optimisation statique, Lagrangien et conditions de Kuhn et Tucker », École Normale
Supérieure,Paris, Année 2007-2008
- Jorge Nocedal and Stephen J. Wright,’’Numerical Optimization, Springer, 2006. 2 editions, USA.
- Dimitri P. Bertsekas ,’’Nonlinear Programming: 3rd Edition’’. ISBN: 978-1-886529-05-2. 2016, 880 pages.
- Hillier, Frederick S.; Lieberman, Gerald J. ‘’Introduction to Operations Research’’ - ISBN 10: 0072416181 -
ISBN 13: 9780072416183 - Editeur : McGraw Hill Higher Education, 2000.
-Gill, Philip Edward, Murray, Walter, Wright, Margaret H. ‘’Practical Optimization’’. ISBN : 9780122839528.
ISBN-10 : 0122839528, ISBN-13 : 978-0122839528, Éditeur : Academic Press Inc; Revised édition (28
janvier 1982)
- Andreas Antoniou, Wu-Sheng Lu,"Numerical Optimization: Concepts and Applications", ISBN-10: 0-387-
71106-6 , e-ISBN-10: 0-387-71107-4, ISBN-13: 978-0-387-71106-5 , e-ISBN-13: 978-0-387-71107-2. Printed
on acid-free paper. © 2007 Springer Science Business Media, LLC. 2007.
- Uzawa, H. (1958)."On a Two-Set Variational Inequality." J. Math. Anal. Appl., 4(2), 216–223.
- Polak, E., & Ribière, G. (1969)."Note sur la convergence de méthodes de directions conjuguées." Revue
française d'informatique et de recherche opérationnelle. Série rouge, 3(16), 35–43.
50
III-1 Introduction
max f ( x)
p
s.c g ( x ) c
L( x, O ) f ( x) O ( g ( x) c)
N.B. : Les conditions de qualification des contraintes garantissent simplement qu’il n’y a pas de
contraintes potentiellement contradictoires.
51
wL( x* , O * ) wf ( x* ) * wg ( x* )
° wx 0 O 0 i 1,....., n
° i wxi wxi
®
° wL ( x *
, O* )
°¯ wO *
0 g ( x* ) c
Matrice hessienne bordée du Lagrangien dans le cas à une seule contrainte : On appelle matrice
hessienne bordée du Lagrangien HL évaluée au point x* la matrice des dérivées partielles
secondes de L par rapport à xi bordée par les dérivées partielles premières de la fonction
contrainte g :
§ wg wg wg ·
¨0 wx1 wx2
. . .
wxn ¸
¨ ¸
¨ wg w2L w2L w2L ¸
¨ . . . ¸
¨ wx1 wx 21 wx1wx2 wx1wxn ¸
¨ wg w2 L w2 L w2L ¸
¨ . . . ¸
¨ wx2 wx1wx2 wx 2 2 wx2 wxn ¸
H L x* ¨. . . . . . . ¸
¨ ¸
¨. ¸
¨ ¸
¨. ¸
¨ wg w2L w2L w2L ¸
¨ . . ¸
¨ wxn wxn wx1 wxn wx2 wx 2 n ¸
¨ ¸
¨¨ ¸¸
© ¹
HL ±ǯQΪͳǤ
ŽŶĚŝƚŝŽŶƐƐƵĨĨŝƐĂŶƚĞƐĚƵƐĞĐŽŶĚŽƌĚƌĞƉŽƵƌƵŶŽƉƚŝŵƵŵůŽĐĂů͗ǯ x
±Ǥ
y n 1 ±
H L ( x , O ) ±±ǯ!ͲͲǡ
ǯȋ'ŶнϭȌ±² (1) ˲ x Ǥ
n
52
ŽŶĚŝƚŝŽŶƐƐƵĨĨŝƐĂŶƚĞƐĚƵƐĞĐŽŶĚŽƌĚƌĞƉŽƵƌƵŶŽƉƚŝŵƵŵŐůŽďĂů͗ǯ
x ±Ǥǣ
y/ ȋ I
O J Ȍ˲ x Ǥ
y/ ȋ I
O J Ȍ˲ x Ǥ
wL
° wx 0 2 x 2 O 0
° 2 x O 4 0
° wL °
® 0 2 y 1 O 0 ® 2 y O 2 0
сх
° wy °x y2 0
° wL ¯
° 0 x y 2 0
¯ wO
On trouve un système linéaire a 3 équations, la solution est :
§ wg wg ·
¨0 ¸
¨ wx1 wx2 ¸ §0 1 1 ·
¨ wg w2L w2L ¸ ¨ ¸
H L x* ¨ ¸ ¨1 2 0 ¸ , det H x* 4 ! 0 min global
¨ wx1 wx 21 wx1wx2 ¸ ¨1 ¸
¨ wg ¸ © 0 2 ¹
¨ w2L w2L ¸
¨ wx wx1wx2 wx 2 2 ¸
© 2 ¹
53
% Define the function
fun = @(x, y) (x - 2).^2 + (y - 1).^2;
g =@(x, y) x+ y - 2;
surf(x, y, z);
hold on
surf(x, y, e);
syms x y lambda
f = (x - 2)^2 + (y - 1)^2;
g = x+ y - 2 == 0; % constraint
% Lagrange function = @(x, lambda) fun(x) + lambda * (A*x - b);
L = f - lambda * lhs(g);
% The lhs function accepts a symbolic equation or condition involving
% symbolic matrix variables and matrix functions as an input argument.
dL_dx = diff(L,x) == 0; % derivative of L with respect to x
dL_dy = diff(L,y) == 0; % derivative of L with respect to y
dL_dlambda = diff(L,lambda) == 0; % derivative of L with respect to lambda
system = [dL_dx; dL_dy; dL_dlambda]; % build the system of equations
[x_val, y_val,lambda_val] = solve(system, [x y lambda], 'Real', true) % solve the
system of equations and display the results
results_numeric = double([x_val, y_val, lambda_val]) % show results in a vector of
data type double
>>results_numeric =
1.5000 0.5000 -1.0000
54
III.2.2 Cas à m contraintes
On considère le programme de maximisation P suivant :
max f ( x)
p
s.c g j ( x) c j j 1,......, m
wL
° wx 0 2 O1 2O2 0
°
° wL 0 3 O O 0
° wy 1 2
°
® wL
° 0 x y 5 0
° wO1
°
° wL 0 2x y 1 0
¯ O2
°w
On trouve un système linéaire a 4 équations, la solution est :
max f ( x)
p
s.c g j ( x) d c j j 1,......, m
Soit x* la solution de ce programme. Deux situations sont envisageables pour chaque contrainte
g j ͗
x g j ( x* ) c j ͗dans ce cas, on dit que la contrainte g est saturée à l’optimum.
x g j ( x* ) c j ͗dans ce cas, on dit que la contrainte g est non saturée à l’optimum.
¦
j
° 0 0 i 1,.............., m
° wx j wx j j 1 wx j
°
° wL x , O
* *
® t 0 g j x* d c j j 1,.............., m
° wO j
°O * t 0 O *j t 0 j 1,.............., m
° j
°O g x c
* *
0 O j 0 (ou / et ) g j x
* *
c j j 1,.............., m
¯ j j j
Pour trouver la bonne solution au problème, il faut procéder par élimination, en montrant que
parmi l’ensemble de ces possibilités, certaines aboutissent à des contradictions.
Remarque :
Soit le programme de minimisation P suivant :
min f ( x)
p
s.c g j ( x) t c j j 1,......, m
56
Pour pouvoir appliquer les conditions de Kuhn et Tucker évoquées ci-dessus, on peut transformer
le programme de minimisation P en un programme de maximisation.
max f ( x)
p
s.c g j ( x) d c j j 1,......, m
j 1
Pour trouver la solution du programme, on cherche les conditions du premier ordre associes à ce
Lagrangien.
Soit x* , y* la solution optimale. O1* , O2* : Les multiplicateurs de Lagrange associés aux
contraintes g1 et g 2 ͕respectivement͘
wf x* , y * wf x* , y *
2 et 3
wx wy
§ 1· §2 ·
g1 ¨ ¸ et g 2 ¨ ¸
© 1¹ © 1 ¹
2 O1 2O2 0
ϭ͘ Stationnarité :
3 O1 O2 0
O1 x y 5 0
Ϯ͘ Dualité complémentaire et Complémentarité :
O2 2 x y 1 0
x y 5 d 0
2x y 1 d 0
3. Conditions de faisabilité primale et duales :
O1 t 0
O2 t 0
57
En résolvant ce système d'équations, Le Lagrangien associé à ce programme s’écrit :
L( x, y, O1 , O2 ) 2 x 3 y O1 x + y -5 O2 2x - y -1
wL
° wx 0 2 O 1 2O 2 0
* *
°
° wL 0 3 O * O * 0
° wy 1 2
° *
°O1 t 0
° wL
° t 0 x* y * d 5
°° wO1
® wL
ͬ °O * 0 O1* x* y* 5 0
° wO1
1
° *
°O2 t 0
° wL
° t 0 2 x* y * d 1
w
° 2O
° wL
°O2* t 0 O2* 2 x* y* 1 0
°̄ wO2
Pour déterminer les solutions de ce system, il faut envisager successivement tous les cas de
figure possible portant sur la saturation des contraintes et procéder par élimination.
x Cas 1 : x* y* 5 et 2 x* y* 1 ͕ces deux contraintes sont saturées à l’optimum. Dans ce
* *
cas, on x =2 et y 3͘
2 O *1 2O *2 0
сх (O1 , O2* ) 2.6667, 0.3333 ͕ceci viole la condition O2* t 0 ͘
*
3O O
*
1
*
2 0
x Cas 2 : x* y* 1 ͕ O2
*
5 et 2 x* y * 0 ͘ Seule la première contrainte est saturée à
l’optimum͘
x Cas 3 : x* y* 5 et 2 x* y* 1 ͕ O1
*
0 ͘ Seule la deuxième contrainte est saturée à
l’optimum͘
x Cas 3 : x* y* 5 et 2 x* y* 1 ͕ O1* O2* 0 ͘Aucune des deux contraintes n’est saturée à
l’optimum͘
58
III.3Méthode de pénalisation
La méthode de pénalisation est une technique utilisée pour résoudre des problèmes
d'optimisation avec contraintes en transformant le problème original en une suite de
problèmes sans contraintes en ajoutant des termes de pénalité. Il existe plusieurs possibilités
de choix de la fonction pénalité.
max f ( x )
p s.c gi ( x ) t 0
h j ( x) 0
Avec :
gi x : contraintes d'inégalités
h j x contraintes d'égalités
rk ͗constante ĚĞpénalisation ou coefficient de convergence. 0.4 d rk d 1.4
Avec :
1 n 1 n
¦
rk i 1
Di g 2i x ¦ B j h 2 j x ͗pénalité extérieure
rk j 1
rk ͗constante ĚĞpénalisation ou coefficient de convergence. 0.4 d rk d 1.4
Di Ğƚ B j ͗des constantes.
gi x : contraintes d'inégalités
h j x contraintes d'égalités
59
Pénalité intérieure : cette méthode introduit que les contraintes d'inégalités ; le
problème P peut être ramener à la maximisation/minimisation de la fonction suivante :
n
Ai
Fm( x) f ( x) rk ¦
i 1 g 2i x
Avec :
n
Ai
rk ¦ ͗pénalité intérieure
i 1 g 2i x
rk ͗constante ĚĞpénalisation ou coefficient de convergence. 0.4 d rk d 1.4
gi x : contraintes d'inégalités
Ai ! 0, si gi x t 0
Ai 0, si gi x 0
Ai : constante
Avec :
n
Ai
rk ¦ ͗ pénalité intérieure
i 1 gi x
1 n 1 n
¦
rk i 1
Di g 2i x ¦ B j h 2 j x ͗pénalité extérieure
rk j 1
rk ͗constante ĚĞpénalisation ou coefficient de convergence. 0.4 d rk d 1.4
Di Ğƚ B j ͗des constantes.
§ 2( x 3) 2( x y 4) · § 4 x 2 y 14 ·
4. Calcul du gradient ͗ Fm x, y ¨ ¸ ¨ ¸
© 2( y 2) 2( x y 4) ¹ © 2 x 4 y 12 ¹
60
§ 4(1) 2(1) 14 · § 8 ·
5. Fm x 0 ¨ ¸ ¨ ¸
© 2(1) 4(1) 12 ¹ © 6 ¹
§ 1· §1 0 ·§ 8 · §1 8O0 ·
6. Calcul du nouveau point : x
1
x 0 O0 H 0Fm( x 0 ) ¨ ¸ O0 ¨ ¸¨ ¸ ¨ ¸
© ¹
1 © 0 1¹© 6 ¹ ©1 6O0 ¹
Fm( x1 ) '
0 ! 1 8O0 3 1 6O0 2 1 8O0 1 6O0 4
2 2 2
592O0 100 0
7. O0
! O0 0.16
§1 8O0 · § 2.28 ·
x1 ¨ ¸ ¨ ¸
©1 6O0 ¹ ©1.96 ¹
§ 0.96 · § 8 · § 7.04 ·
8. Test d’arrêt Fm x1 Fm x 0 ¨ ¸¨ ¸ ¨ ¸
© 0.4 ¹ © 6 ¹ © 6.4 ¹
Comparaison avec la solution obtenue par la méthode de Lagrange
f ( x, y ) ( x 3) 2 ( y 2) 2
P
sc : g ( x, y ) x + y =4
wL
° wx 0 2 x 3 O 0
° 2 x O 6 0
° wL °
® 0 2 y 2 O 0 ®2y O 4 0
сх
° wy °x y4 0
° wL ¯
° 0 x y 4 0
¯ wO
On trouve un système linéaire a 3 équations, la solution est :
61
Pour la méthode pénalité, on retourne à l’étape 1, ou on remplace :
§1.28 · §1 0 ·§ 7.04 · §1 0 ·
¨ ¸ 1.28 0.96 ¨ ¸¨ ¸ 7.04 6.4 ¨ ¸
§1 0 · © 0.96 ¹ § 3.8797 2.9730 ·
©
0 1¹© 6.4 ¹ © 0 1¹
¸
1
H ¨ ¨ ¸
© 0 1¹ 1.28 0.96 § 7.04 · 7.04 6.4 ¨
§1 0 ·§ 7.04 · © 2.978 3.3121¹
¨ ¸ ¸¨ ¸
© 6.4 ¹ © 0 1¹© 6.4 ¹
2- La méthode BFGS (Broyden-Fletcher-Goldfarb-Shanno) :
T T
J0 J0 H0 H0
H1 H0 T
T
J0 G0 G0 H 0G 0
§ 7.04 · §1 0 ·§1 0·
¨ ¸ 7.04 6.4 ¨ ¸¨ ¸
§1 0 · © 6.4 ¹ © 0 1¹© 0 1¹ § 3.8797 2.9730 ·
¸
1
H ¨ ¨ ¸
© 0 1¹ 7.04 6.4 §1.28 · 1.28 §1
0.96 ¨
0 ·§1.28 · © 2.978 3.3121¹
¨ ¸ ¸¨ ¸
© 0.96 ¹ ©0 1¹© 0.96 ¹
^ƵƌŽŵŵĂŶĚtŝŶĚŽǁDĂƚůĂďZϮϬϭϵĂ
ххϭϬ͖Ϭϭн;;ϳ͘Ϭϰ͖ϲ͘ϰΎϳ͘Ϭϰϲ͘ϰͿͬ;ϳ͘Ϭϰϲ͘ϰΎϭ͘Ϯϴ͖Ϭ͘ϵϲͿͿͲ;;ϭϬ͖ϬϭΎϭϬ͖ϬϭͿͬ;ϭ͘ϮϴϬ͘ϵϲΎϭϬ͖ϬϭΎϭ͘Ϯϴ͖Ϭ͘ϵϲͿͿ
ĂŶƐс
ϯ͘ϴϳϵϲϮ͘ϵϳϯϬ
Ϯ͘ϵϳϯϬϯ͘ϯϭϮ
62
1.8222
! O1 0.0360
50.5727
2 § 2.28 2.5353O1 · § 2.3713 ·
x ¨ ¸ ¨ ¸
©1.96 1.5292O1 ¹ © 2.0151 ¹
§ 2.3713 · * § 2.5 ·
Pour les deux méthodes (pénalité and Lagrange) on a trouvé x 2 ¨ ¸ , ( x ) ¨1.5 ¸
© 2.0151 ¹ © ¹
On continu jusqu’à ce que le test d’arrêt soit vérifier.
function x=penalite()
% Définition de la contrainte
g = @(x) x(1) + x(2) - 4;
% Paramètre de pénalité
r_k = 1;
% Conditions initiales
x0 = [0, 0];
Run
>> penalite
Local minimum found.
Résultats :
x = 2.6667 1.6667
Valeur de la fonction objectif : 0.33333
Code de sortie : 1
Nombre d'itérations : 6
ans =
2.6667 1.6667
63
III.4 Méthode de Newton projetée (pour des contraintes de borne)
La méthode de Newton projetée (PN) est une méthode itérative de résolution d'un problème
d'optimisation sous contraintes linéaires de borne. Elle combine la méthode de Newton (pour
la recherche de la direction de descente) et la projection des solutions sur les bornes
contraintes.
On peut utiliser l'algorithme suivant :
Remarques :
L'algorithme ci-dessus suppose que la hessienne H k 2 f ( x k ), est inversible. Dans la
pratique, des ajustements peuvent être nécessaires pour traiter des situations où l'inversion de
la hessienne n'est pas possible.
l1 0 et u1 f pour x
Avec
l2 0 et u2 f pour y
64
Solution :
ª max (0, z1 ) º
P( z ) « max(0, z ) » ============================Run
¬ 2 ¼ >> Newtonprojetee
Solution optimale : x = 0.0000,
Cela assure que la solution mise à jour reste y = 0.0000
65
function x=tracemethodenewtonprojetee()
% Fonction objectif
f = @(x) x(1)^2 + x(2)^2;
% Contraintes de borne
l = [0; 0]; % Bornes inférieures
u = [inf; inf]; % Bornes supérieures
% Algorithme de la méthode de Newton projetée
x = [1; 1]; % Point initial
max_iter = 10; % Nombre maximal d'itérations
% Préparer la figure
figure;
hold on;
hold off;
fprintf('Solution optimale : x = %.4f, y = %.4f\n', x(1), x(2));
>> tracemethodenewtonprojetee
Solution optimale : x = 0.3487, y = 0.3487
66
Si on change la longueur du pas O0 0.1 ͘On obtient la Solution optimale :
x = 0.3487, y = 0.3487, montrée dans la figure ci-dessous :
67
III.5 Méthode de dualité : méthode d’Uzawa
min f ( x )
p
s.c gi ( x) t 0
ª 1 2 º
Etape 2 : Résoudre le problème auxiliaire x k 1 arg min x « f ( x) Ok D g x »¼
¬ 2D
,k 0,1,.....n
Etape 3 : Mettre à jour le multiplicateur de Lagrange O k 1 O k D g x k 1
Etape 4 : Test d’arrêt : g x k 1 d H ͕Vérifiez si les critères d'arrêt sont Si le test n’est
La méthode d'Uzawa peut être utilisée pour résoudre des problèmes d'optimisation non
linéaires avec des contraintes d'égalité ou d'inégalité.
Le choix du paramètre de relaxation α peut influencer la convergence de l'algorithme. Il peut
nécessiter des ajustements pour chaque problème spécifique.
§ 1·
Etape 1 : choisir un point de départ x 0 ¨ ¸,k 0 . Un paramètre de relaxation D 1 ,
© 1¹
et le multiplicateur de Lagrange initial O0 0
68
Etape 2 : Résoudre le problème auxiliaire
ª 1 2 º
x k 1 arg min x « x 2 y 2 O k D x y 1 »¼
¬ 2D
, k 0,1,.....n
1 2
Q( x) x 2 y 2 x y 1
2
Etape 3 : calculer le gradient
§ 2 x x y 1 · § 3 x y 1·
Q( x) ¨ ¸ ¨ ¸
© 2 y x y 1¹ © x 3 y 1¹
Etape 3 :Égaler les dérivées partielles à zéro et résoudre pour trouver x*
§ 3 x y 1· § 0 ·
Q ( x ) 0 ¨ ¸ ¨ ¸
© x 3 y 1¹ © 0 ¹
° x* 0.25
® *
°̄ y 0.25
§ 3·
f ( x 0 ) ¨ ¸ ͕
© 3¹
Etape 4 : définir un nouveau point
1
x1 f ( x 0 ) ( g ( x 0 ))
2
§ 1 2·
¨ 1 2 (1) ¸ § 0.5 ·
¨ ¸ ¨ ¸
¨ 1 1 (1) 2 ¸ © 0.5 ¹
¨ ¸
© 2 ¹
min f ( x, y ) x2 y 2
P
sc x y 1 d 0
wL
° wx 0 2x O 0
°2 x O
° °
° wL сх ® 2 y O
® 0 2y O 0
° wy °O O
° wL ° 1 0
° 0 x y 1 0 ¯2 2
¯ wO
On trouve un système linéaire a 3 équations, la solution est :
сх ( x
*
, y* , O * ) 0.5, 0.5,1
69
§ 0.5 · * § 0.5 ·
Pour les deux méthodes (Uzawa et Lagrange) on a trouvé x1 ¨ ¸,o ¨ ¸
© 0.5 ¹ © 0.5 ¹
function x=uzawa()
% Fonction objectif
f = @(x) (x(1))^2 + (x(2))^2;
% Contrainte
g = @(x) x(1) + x(2) - 1;
% Paramètres
alpha = 1;
lambda = 0;
max_iterations = 100;
% Boucle d'itérations
for k = 1:max_iterations
% Résoudre le problème auxiliaire avec fminunc
aux_problem = @(x) f(x) + (1/(2*alpha)) * (lambda +
alpha * g(x))^2;
x_optimal = fminunc(aux_problem, [0, 0]);
Résultats :
>> uzawa
Nombre d'itérations : 20
x_optimal = 0.5 0.5
Valeur de la fonction objectif : 0.5
Contrainte g(x) : -9.5136e-07
70
III.6 Méthode du gradient projeté
La méthode du gradient projeté est une technique d'optimisation utilisée pour résoudre des
problèmes d'optimisation sous contraintes. L'idée principale est d'appliquer une méthode de
descente de gradient tout en maintenant la solution dans l'ensemble des contraintes du
problème. Cette méthode est particulièrement utile pour les problèmes d'optimisation où la
solution doit respecter des contraintes linéaires ou non linéaires.
On peut utiliser l'algorithme suivant :
l1 0 et u1 f pour x
Avec
l2 0 et u2 f pour y
Solution :
Etape 1 : choisir un point de départ
§ 1·
x0 ¨ ¸,k 0.
© 1¹
Etape 2 : calculer le gradient
§ 2x · § 2·
f ( x) ¨ ¸ f ( x 0 ) ¨ ¸
© ¹
2 y © 2¹
Etape 3 : calculer la direction de descente
§ 2 ·
d0 f ( x 0 ) ¨ ¸
© 2 ¹
71
Etape 4 : rechercher O 0 en minimisant la fonction
2 2 2
f ( x0 O 0d 0 ) 1 2O 0 1 2O 0 2 1 2O 0
͕
f '( x 0 O 0 d 0 ) 4 1 2O 0 0 O 0 1/ 2
function x=tracemethodegradientprojete()
% Fonction objectif
f = @(x) x(1)^2 + x(2)^2;
% Contraintes de borne
l = [0; 0]; % Bornes inférieures
u = [inf; inf];% Bornes supérieures
% Algorithme de la méthode de Newton projetée
x = [1; 1]; % Point initial
max_iter = 10; % Nombre maximal d'itérations
% Préparer la figure
figure;
hold on;
% Tracer la fonction objectif
[X, Y] = meshgrid(linspace(-2, 2, 100),
linspace(-2, 2, 100));
Z = X.^2 + Y.^2;
contour(X, Y, Z, 20, 'LineWidth', 1, 'LineColor', [0.5, 0.5, 0.5]);
% Tracer les contraintes de borne
plot([0, 0], [-2, 2], 'r--', 'LineWidth', 2);
plot([-2, 2], [0, 0], 'r--', 'LineWidth', 2);
% Itérations de la méthode de Newton projetée
for k = 1:max_iter
% Calcul du gradient
g = [2*x(1); 2*x(2)];
% Calcul de la direction de Newton
d = - g;
lamda = 0.5; % Valeur arbitraire pour l'exemple % Calcul de la longueur du pas
% Mise à jour de la solution avec projection
x = max(l, min(u, x + lamda*d));
% Tracer l'itération actuelle
plot(x(1), x(2), 'ko', 'MarkerSize', 8, 'MarkerFaceColor', 'b');
end
% Afficher la solution optimale
plot(x(1), x(2), 'ro', 'MarkerSize', 8, 'MarkerFaceColor', 'r');
text(x(1), x(2), ' Solution optimale', 'VerticalAlignment', 'bottom');
% Ajouter des étiquettes et une légende
xlabel('x');ylabel('y');
title('Méthode de gradient Projetée - Optimisation avec Contraintes de Borne');
legend('Fonction objectif', 'Contraintes de borne', 'Itérations', 'Location',
'northwest');
hold off; fprintf('Solution optimale : x = %.4f, y = %.4f\n', x(1), x(2));
72
-Exercices-
Optimisation sous contraintes
Exercice1 :
Exercice2 :
Utiliser la méthode de Lagrange pour trouver le maximum de la fonction g(x,y) et résoudre le
programme de maximisation P sous contraintes égalités
max g ( x, y, z ) x2 y 2 z 2
P s.c x 2y z 1
2x y 3 z 4
Exercice3 :
Exercice4 :
max f ( x, y ) [ ( x 4) 2 ( y 4) 2 ]
P s.c x y d4
x 3y d 9
73
- corrigé -
Optimisation sous contraintes
Exercice1 :
L( x, y, O ) xy O x + y -6
* *
ŽŶĚŝƚŝŽŶĚĞƋƵĂůŝĨŝĐĂƚŝŽŶĚĞůĂĐŽŶƚƌĂŝŶƚĞ : Soit g ( x, y) x + y =6 et soit ( x , y ) une
solution du programme. La condition de qualification de la contrainte sera vérifiée si
g x ' ( x* , y* ) z 0 et g y ' ( x* , y* ) z 0 . Il faudra le vérifier quand on connaîtra ( x* , y * ) ͘
* *
WK : Si ( x , y ) est une solution du programme P , alors :
wL
° wx 0 y O 0
°
° wL сх
® 0 xO 0
° wy
° wL
° 0 x y 6 0
¯ wO
y O
°
®x O
°O O 6
¯
On trouve un système linéaire a 3
équations, la solution est :
( x* , y * , O * ) 3,3,3
±
gcx (3,3) z 0 et gc y (3,3) z 0.
^K͗
±ǯ± ǡ
* *
( x , y ) ǣ
§ wg wg ·
¨0 ¸
¨ wx1 wx2 ¸ §0 1 1 ·
¨ wg w2 L w2L ¸ ¨ ¸
H L x* ¨ ¸ ¨1 0 1 ¸ , det H x
*
1 0 max global
¨ wx1 wx 21 wx1wx2 ¸ ¨1 ¸
¨ wg ¸ © 1 0 ¹
¨ w2L w2L ¸
¨ wx wx1wx2 wx 2 2 ¸
© 2 ¹
74
Exercice2 :
Utiliser la méthode de Lagrange pour trouver le maximum de la fonction g(x,y) et
résoudre le programme de maximisation P sous contraintes égalités
max g ( x, y, z ) x2 y 2 z 2
P s.c x 2y z 1
2x y 3 z 4
Solution :
§2 0 0 1 2 ·
¨ ¸
¨0 2 0 2 1 ¸
H L x* ¨0 0 2 1 3 ¸ , det H x* 150 ! 0 min global
¨ ¸
¨1 2 1 0 0 ¸
¨2 1 3 0 0 ¸
© ¹
75
% Définir la fonction objectif
g = @(x, y, z) x.^2 + y.^2 + z.^2;
% Configuration de l'affichage
xlabel('x');
ylabel('y');
zlabel('g(x, y, z)');
legend('g(x, y, z)', 'Contrainte 1: x + 2y + z = 1', 'Contrainte 2: 2x -
y - 3z = 4', 'Location', 'NorthEast');
title('Représentation graphique du problème d''optimisation');
grid on;
axis tight;
hold off;
76
Exercice3 : Résoudre le programme de maximisation P
max f ( x, y ) xy
s.c x y d 6
P
xt0
yt0
- Utiliser la méthode de Lagrange pour trouver le maximum de la fonction f(x,y) et
comparer vos résultats avec ceux obtenus à l’exercice 1.
Solution :
Le Lagrangien associé à ce programme s’écrit :
L( x, y, O1 , O2 , O3 ) xy O1 x + y -6 O2 x O3 y
Les conditions de KKT (Karush-Kuhn-Tucker) pour ce problème :
§ y O1 O2 0 ·
1. Stationnarité : L 0¨ ¸
© x O1 O3 0 ¹
2. Dualité complémentaire et Complémentarité :
O1 x y 6 0
O2 x 0
O3 y 0
3. Conditions de faisabilité primale et duales :
x y6d 0
O1 t 0
O2 t 0
O3 t 0
Résoudre toutes ses équations ci-dessus, On trouve ( x* , y* , O1* , O2* , O3* ) 3,3, 0, 0, 0 ͘
Exo 1 : ( x , y , O )
* * *
3,3,3 ͕Exo 3 : ( x , y , O , O , O )
* *
1
*
2
*
3
*
3,3, 0, 0, 0
77
% Fonction objectif
f = @(x, y) x * y;
% Contraintes d'inégalité
g1 = @(x, y) x + y - 6;
g2 = @(x) x;
g3 = @(y) y;
% Stationnarité
grad_f_x = y_opt; % Dérivée partielle de f par rapport à x
grad_f_y = x_opt; % Dérivée partielle de f par rapport à y
lambda_1 = 1; % Lagrangien pour la contrainte x + y = 6
lambda_2 = lambda_ineq; % Lagrangien pour la contrainte x + y <= 6
stationarity_1 = grad_f_x - lambda_1 - lambda_2;
stationarity_2 = grad_f_y - lambda_1;
fprintf('Stationnarité : %.2f, %.2f\n', stationarity_1,
stationarity_2);
78
% Primal feasibility
inequality_constraint = g1(x_opt, y_opt);
feasibility_1 = x_opt + y_opt - 6;
feasibility_2 = -x_opt;
feasibility_3 = -y_opt;
% Dual feasibility
dual_feasibility_1 = lambda_1;
dual_feasibility_2 = lambda_2;
% Complementary slackness
slackness_1 = lambda_1 * inequality_constraint;
slackness_2 = lambda_2 * x_opt;
% Configuration de l'affichage
legend;
title('Représentation graphique du problème d''optimisation avec
solution optimale');
grid on;
hold off
=================================================================
>> kuhnettucker1
Stationnarité : 2.00, 2.00
Primal feasibility : 0.00, -3.00, -3.00
Dual feasibility : 1.00, 0.00
Complementary slackness : 0.00, 0.00
Solution optimale :
x_opt = 3.00 y_opt = 3.00
Valeur optimale de f(x, y) = xy : 9.00
79
Exercice4 :
Appliquer la méthode de Lagrange et les conditions de Kuhn et Tucker pour Résoudre le
programme de maximisation sous contraintes inégalités et trouver le maximum de la fonction
f(x,y).
max f ( x, y ) [ ( x 4) ( y 4) ]
2 2
P s.c x y d4
x 3y d 9
Solution :
Le Lagrangien associé à ce programme s’écrit :
L( x, y, O1 , O2 ) ( x 4) 2 ( y 4) 2 O1 x + y -4 O2 x + 3y -9
Les conditions de KKT (Karush-Kuhn-Tucker) pour ce problème :
§ 2( x 4) O1 O2 0 ·
1. Stationnarité : L 0¨ ¸
© 2( y 4) O1 3O2 0 ¹
2. Dualité complémentaire et Complémentarité :
O1 x y 4 0
O2 x 3 y 9 0
3. Conditions de faisabilité primale et duales :
x y4d0
x 3y 9 d 0
O1 t 0
O2 t 0
ĂƐϭ: Résoudre toutes ses équations ci-dessus, On trouve ( x* , y* , O1* , O2* ) 1.5, 2.5, 6, 1 ͘
Cette solution viole la condition O2 t 0
80
ĂƐϮ: considérer O2
0 ͛
>> [-2 0 -1 ;0 -2 -1 ;1 1 0 ]\[-8;-8;4]
ans =
2
2
4
On trouve ( x* , y* , O1* , O2* ) 2, 2, 4, 0 ͘Cette solution satisfait toutes les conditions͘
ĂƐϯ: considérer O10 ͛
>> [-2 0 -1;0 -2 -3; 1 3 0]\[-8;-8;9]
ans =
3.3000
1.9000
1.4000
On trouve ( x , y , O1 , O2 )
* * * *
3.33,1.9,0,1.4 ͘
Cette solution viole la condition x y 4 d 0 x y d 4 ͘
ĂƐϰ: considérer considérer O1 0 Ğƚ O2 0
ххͲϮϬ͖ϬͲϮͰͲϴ͖Ͳϴ
ĂŶƐс
ϰ
ϰ
On trouve ( x , y , O1 , O2 )
* * * *
4, 4,0,0 ͘
x y4d0
Cette solution viole la condition ͘
x 3y 9 d 0
Donc la seule solution possible pour ce problème est ( x* , y* , O1* , O2* ) 2, 2, 4,0
>> KKToptimisation
Stationnarité : -5.00, -5.00
Primal feasibility : 0.00, 0.00
Dual feasibility : 1.00, 0.00
Complementary slackness : 0.00, -0.00
Solution optimale :
x_opt = 2.00
y_opt = 2.00
Valeur optimale de f(x, y) = -(x-4)^2-(y-4)^2 : 8.00
81
Chapitre IV
WƌŽŐƌĂŵŵĂƚŝŽŶůŝŶĠĂŝƌĞ
Références :
- "Operations Research: An Introduction" by Taha, Hamdy A.authorized adaptation from the United
States edition, Operations Research An Introduction, 10th edition, ISBN 9780134444017, published
by Pearson Education © 2017.
- "Linear Programming and Network Flows" by Mokhtar S. Bazaraa, John J. Jarvis, Hanif D. Sherali.
John Wiley & Sons Inc; 4e édition (15 janvier 2010).ISBN-10 : 0470462728. ISBN-13 :
978-0470462720
82
Un exemple simple de problème de programmation linéaire :
Une entreprise fabrique deux produits, A et B, dont le profit par unité est respectivement 10 €
et 15 €. Chaque produit nécessite une certaine quantité de deux matières premières, M1 et
M2. Le tableau suivant montre la quantité de matières premières nécessaires ainsi que la
quantité disponible pour chaque matière première :
L'entreprise souhaite maximiser ses profits en déterminant la quantité de chacun des deux
produits à fabriquer, sujet aux contraintes de disponibilité en matières premières.
83
^ŽůƵƚŝŽŶŐƌĂƉŚŝƋƵĞ
hold on;
84
Chapitre V
WƌŽŐƌĂŵŵĂƚŝŽŶŶŽŶͲůŝŶĠĂŝƌĞ
Références :
85
Un exemple simple de problème de programmation non linéaire : Cet exemple montre
comment la programmation non linéaire peut être utilisée pour résoudre des problèmes
d'optimisation dans différentes industries, en aidant les entreprises à prendre des décisions
éclairées pour maximiser leurs profits et minimiser leurs coûts.
L'objectif de l'entreprise est de maximiser son bénéfice total, qui est défini comme suit :
La contrainte pour cette entreprise est qu'elle possède une capacité de production limitée,
représentée par les contraintes non linéaires suivantes :
x^2 + y^2 = 2
x^2 - y = 0
݈ܽݐݐݐ݂݅ݎ݈݁ݎ݁ݏ݅݉݅ݔܽܯ
ܨሺݔǡ ݕሻ ൌ ̴݂ܣሺݔሻ ̴݂ܤሺݕሻ
ܵ ݏ݁ݐ݊݅ܽݎݐ݊ܿݏ݈݁ݏݑ
ʹ̰ݔ ʹ̰ݕൌ ʹ
ʹ̰ݔെ ݕൌ Ͳ
En résolvant ce problème d'optimisation, l'entreprise peut déterminer les niveaux optimaux de
production pour chaque produit, qui maximisent ses bénéfices totaux tout en respectant les
contraintes de capacité de production.
Solution :
݈ܽݐݐݐ݂݅ݎ݈݁ݎ݁ݏ݅݉݅ݔܽܯ
ܨሺݔǡ ݕሻ ൌ ̴݂ܣሺݔሻ ̴݂ܤሺݕሻ
ܵ ݏ݁ݐ݊݅ܽݎݐ݊ܿݏ݈݁ݏݑ
ʹ̰ݔ ʹ̰ݕൌ ʹ
ʹ̰ݔെ ݕൌ Ͳ
L( x, y, O1 , O2 ) 20 x 30 y O1 x 2 y 2 2 O2 x 2 y
* *
WK : Si ( x , y ) est une solution du programme P , alors :
86
wL
° wx 0 20 2O1 2O2 0
°
° wL 0 30 2O O 0
° wy 1 2
° ͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͘;ΎͿ
® wL
° 0 x2 y 2 2 0
° wO1
°
° wL 0 x2 y 0
¯ O2
°w
On trouve un système (*) qui est linéaire à 4 équations, la solution est :
сх ( x
*
, y* ) r1,1
Pour résoudre le système d’équations non linéaires (*), on applique la méthode de Newton.
Solution
Etape 1 : choisir le point initial džϬсϬ͘ϴ͖Ϭ͘ϳϱ͘ function F=roo(x)
F(1)= x(1).^2+x(2).^2-2;
§ 2x 2 y · F(2)= x(1).^2+x(2);
Etape 2 : calculer le jacobéen Jf x, y ¨ ¸
© 2 x 1¹ Save=>Matlab
Etape 3 : calculer le jacobéen en point x0 , Execution commande window
ххfun=@roo; x0=[0.8 , 0.75];
§1.6 1.5 · ххX=fsolve(fun,x0)
Jf x 0 ¨ ¸
©1.6 1¹
§ f 1 x0 ·
Etape 4 : calculer F ( x 0 ) ¨ ¸ avec f 1 x, y x 2 y 2 2 ͕ f 2 x, y x2 y ͘
¨ f 2 x0 ¸
© ¹
87
f 1 x0 -0.7975 ͕ f 2 x 0 -0.1100
^ŽůƵƚŝŽŶŐƌĂƉŚŝƋƵĞ
88
89
En conclusion,
L’optimisation et les méthodes numériques jouent un rôle essentiel dans un
large éventail de domaines, allant de l'ingénierie aux sciences économiques en
passant par la recherche opérationnelle. Ces approches offrent des outils
puissants pour résoudre des problèmes complexes, prendre des décisions
éclairées et améliorer l'efficacité des processus.
90
ZĠĨĠƌĞŶĐĞƐ
>ĞƐƌĠĨĠƌĞŶĐĞƐƐŽŶƚĐŝƚĠĞƐƉŽƵƌŚĂƋƵĞĐŚĂƉŝƚƌĞ
- Michel Minoux,” Programmation Mathématique. Théorie et Algorithmes, livre édité par : Tec
Et Doc, 2008, EAN13 : 9782743022280, pages 710.
- J.Grenet, « Vademecum: optimisation statique, Lagrangien et conditions de Kuhn et
Tucker », École Normale Supérieure,Paris, Année 2007-2008.
- Stephen Boyd, Lieven Vandenberghe Convex Optimization, Cambridge University Press,
2004.
- Michel Bierlaire, Optimization : principles and algorithms, EPFL, 2015.
- Jean-Christophe Culioli, Introduction à l'optimisation, Ellipses, 2012.
- Logiciel Matlab R2019a
- https://www.editions-petiteelisabeth.fr/etudier_les_variations_d_une_fonction.php
- Michel Minoux,” Programmation Mathématique. Théorie et Algorithmes, livre édité par : Tec
Et Doc, 2008, EAN13 : 9782743022280, pages 710.
- J.Grenet, « Vademecum: optimisation statique, Lagrangien et conditions de Kuhn et
Tucker », École Normale Supérieure,Paris, Année 2007-2008.
- Stephen Boyd, Lieven Vandenberghe Convex Optimization, Cambridge University Press,
2004.
- Michel Bierlaire, Optimization : principles and algorithms, EPFL, 2015.
- Jean-Christophe Culioli, Introduction à l'optimisation, Ellipses, 2012.
- Logiciel Matlab R2019a
- https://www.editions-petiteelisabeth.fr/etudier_les_variations_d_une_fonction.php
- Gill, Philip Edward, Murray, Walter, Wright, Margaret H. ‘’Practical Optimization’’. ISBN :
9780122839528. ISBN-10 : 0122839528, ISBN-13 : 978-0122839528, Éditeur :
Academic Press Inc; Revised édition (28 janvier 1982)
91
- "Introduction to Operations Research" by Frederick S. Hillier, Gerald J. Lieberman,
McGraw-Hill Science/Engineering/Math; 7th edition (March 22, 2002), ISBN-10 :
0072535105, ISBN-13 : 978-0072535105
- "Operations Research: An Introduction" by Taha, Hamdy A.authorized adaptation from the United
States edition, Operations Research An Introduction, 10th edition, ISBN 9780134444017, published
by Pearson Education © 2017.
- "Linear Programming and Network Flows" by Mokhtar S. Bazaraa, John J. Jarvis, Hanif D. Sherali.
John Wiley & Sons Inc; 4e édition (15 janvier 2010).ISBN-10 : 0470462728. ISBN-13 :
978-0470462720
92
Buy your books fast and straightforward online - at one of world’s
fastest growing online book stores! Environmentally sound due to
Print-on-Demand technologies.
Buy your books online at
www.morebooks.shop
Achetez vos livres en ligne, vite et bien, sur l'une des librairies en
ligne les plus performantes au monde!
En protégeant nos ressources et notre environnement grâce à
l'impression à la demande.
La librairie en ligne pour acheter plus vite
www.morebooks.shop