Vous êtes sur la page 1sur 101

            

 

           



 

    
     
  

      
    

       



            
                     
                      
               
             
                    
             

      

  
       ! 
   
"  #  $% &% '  '(&   

)*+,( - . &  /*0-"1 2


'     *34)   )   5"6*+)* (   5  
-
     
 

 7 &
  7 *+*8 "   #   $ %  &  % '   '(&
  
Guide pratique des Méthodes Numériques Appliquées
dans l'Optimisation

Cours et exercices résolus


(Analytiquement et numériquement par Matlab)

Préparé par A. Lakhdar
















 









WƌĠĨĂĐĞ
 


Chers lecteurs,

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.

Les méthodes numériques sont des approches computationnelles utilisées pour


résoudre des problèmes d'optimisation lorsque des solutions analytiques ne sont
pas disponibles ou sont difficiles à obtenir. Elles sont couramment utilisées pour
l'optimisation incluent les méthodes de recherche unidimensionnelle, les
méthodes du gradient, la méthode de Newton, les méthodes quasi-Newton, les
méthodes des directions conjuguées, les multiplicateurs de Lagrange, les
méthodes de pénalisation, et d'autres.

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.

L'application de Matlab dans l'optimisation simplifie le processus de mise en


œuvre des algorithmes numériques, permettant aux chercheurs et aux ingénieurs
de tester rapidement différentes approches, d'analyser les résultats, et
d'optimiser les performances des systèmes dans divers domaines tels que la
finance, l'ingénierie, la science des données, et bien d'autres.


























3
Sommaires
Préface
Chapitre I :
ZĂƉƉĞůƐŵĂƚŚĠŵĂƚŝƋƵĞƐ;(WŽƐŝƚŝǀŝƚĠ͕ŽŶǀĞdžŝƚĠ͕DŝŶŝŵƵŵ͕'ƌĂĚŝĞŶƚĞƚ,ĞƐƐŝĞŶ͕ũĂĐŽďŝĞŶͿ
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- Rappels mathématiques (Positivité, Convexité, gradient et Hessien) 15
Chapitre II
KƉƚŝŵŝƐĂƚŝŽŶƐĂŶƐĐŽŶƚƌĂŝŶƚĞƐͲŵĠƚŚŽĚĞƐůŽĐĂůĞƐ
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 -Optimisation sans contraintes (Fonction à n variables, Newton Raphson, 42
dichotomie, point fixe, méthode du gradient, Newton, Quasi Newton)
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 -Optimisation sous contraintes (égalités et inégalités) Lagrange et conditions de 73
Kuhn et Tucker
Chapitre IV 82
programmation linéaire
Chapitre V 85
programmation non linéaire
Conclusion 90

 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

L’optimisation est une partie intégrante des mathématiques permettant de


déterminer la meilleure solution d’un problème scientifique et industriel dont les données
et les inconnues satisfont à une série d’équations et d’inéquations linéaires.
Les méthodes de résolution sont les méthodes énumératives, stochastiques et
analogique. 
Méthodes d’optimisation

Méthode Analytique Méthodes énumératives Méthodes stochastiques

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

Méthode Méthodes indirectes Programmation Algorithme


directes Cherche un optimum linéaire/non linéaire évolutionnaire
Evaluation local en résolvant Les méthodes de Recherche Tabou
du gradient l’ensemble des Branche, la méthode du Recuit simulé
en certain équations non linéaires simplexe, la Méthode Monté Carlo
point résultant de programmation
d’espace de l’annulation du dynamique,
recherche gradient de la fonction
objective

I-2 Notions fondamentales

I.2.1 Ensembles convexes

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>

N.B. : La notion d’« ensemble concave » n’existe pas.

7

Ensemble convexe S Ensemble non convexe S

Figure 1 : Exemples d’un ensemble convexe S et d’un ensemble non convexe S′.

I.2.2 Fonctions concaves, fonctions convexes


Soit f une fonction de plusieurs variables définie sur un ensemble convexe S.

Fonction concave : f est concave sur S ssi,


( x, y ) S 2 O  [0,1] : f (1  O ) x  O y t (1  O ) f ( x)  O f ( y )
f est Strictement concave sur S ssi :
( x, y ) S 2 O  [0,1] : f (1  O ) x  O y ! (1  O ) f ( x)  O f ( y )

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.

Fonction convexe : f est convexe sur S ssi,


( x, y ) S 2 O  [0,1] : f (1  O ) x  O y d (1  O ) f ( x)  O f ( y )
f est strictement convexe sur S ssi :
 ( x, y ) S
2
O  [0,1] : f (1  O ) x  O y  (1  O ) f ( x)  O f ( y )

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.

Figure 2 : fonction strictement concave à une seule variable f ( x) (1) x 2

Figure 3 : fonction strictement concave à deux variables f ( x, y ) (3) x 2  (3) y 2

9


Figure 4 : fonction strictement convexe à une seule variable f ( x) 81* x 4  54* x 3  9* x

Figure 5 : fonction strictement convexe à une deux variables f ( x, y ) 3 x 2  3 y 2 

Propriétés importantes : Fonction à une seule variable


• f est une fonction concave => f "( x) d 0, x  R
• f "( x)  0, x  R => f strictement concave
• f est une fonction convexe => f "( x) t 0, x  R
• f "( x) ! 0, x  R => f strictement convexe

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

I.2.3 Matrice Hessienne ou le Hessien

Soit H la matrice Hessienne de f, elle s’écrit :


§ f xx" f xy" ·
Si f est une fonction à deux variables => H ( x, y) ¨ " ¸
¨f f yy" ¸¹
© yx

§ f xx" f xy" f xz" ·


¨ " ¸
Si f est une fonction à trois variables сх H ( x, y, z ) ¨ f yx f yy" f yz" ¸
¨ " ¸
¨ f zx f zy" f zz" ¸¹
©

Matrice Hessienne : On appelle matrice hessienne H(x1,x2,..,xn) de la fonction f , la matrice


des dérivées secondes de f évaluées au point (x1,x2 ,...,xn), une matrice symétrique d’ordre n.

Matrice Hessienne Bordée : On appelle matrice hessienne bordée H(x1 ,x2,...,xn) de la


fonction f la matrice des dérivées secondes de f, bordée par la matrice des dérivées premières de
la fonction f , La matrice hessienne bordée de f est une matrice symétrique carrée d’ordre n + 1.

§ 0 f1' f 2' f3' . . . f n' ·


¨ ' "
¸
¨ f1 f11 f12" f13" . . . f1"n ¸
¨ ' " ¸
¨ f 2 f 21 f 22" f 23" . . . f 2"n ¸
Matrice hessienne bordée => H ( x1 , x2 ,...., xn ) ¨ . . . . . . . . ¸
¨ ¸
¨. . . . . . . . ¸
¨. . . . . . . . ¸
¨ ' ¸
¨ f n f n"1 f n"2 f n"3 . . . f nn" ¸
© ¹
I.2.4 Matrice Jacobienne ou le Jacobien

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 ¸
¨ ¸
¨ ¸
© ¹

1.2.5 Matrices (semi) définies négatives, matrice (semi) définies positives


Matrice définie positive : 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 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 )

f x1 , x 2 ,..., x n par rapport aux coordonnées.


ª wf º
« wx »
« 1»
« wf »
« wx »
« 2»
’f «. »
« »
«. »
«. »
« »
« wf »
«¬ wx n »¼

I-3 Généralités sur l’optimisation

Un programme d’optimisation s’écrit typiquement sous la forme suivante :


Programme de maximisation sous contrainte :

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 :

p ' min f ( x , x ,.....xn )


1 2 
x1 , x2 ,..... xn sous  contra int e g ( x j ) j 1,2,.....m

La fonction f est appelée fonction objective. Le programme consiste à chercher les


valeurs x1 , x 2 ,..., x n pour laquelle la valeur de cette fonction est maximale (ou
minimale) sous les contraintes. On appelle Optimum la solution d’un programme
d’optimisation : il s’agit soit d’un maximum, soit d’un minimum.

Les contraintes peuvent prendre plusieurs formes distinctes :


• Contraintes en équations : g j ( x1 , x2 ,..., xn ) c j j 1,..., m
• Contraintes en inéquations : g j ( x1 , x2 ,..., xn ) d c j j 1,..., m
• Contraintes de non-négativité : xi t 0 i 1,..., n

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

La figure 6 montre le graphique d’une fonction f comportant un maximum local et un


maximum global.

Figure 6 ͗Fonction f admettant un maximum local en x* et un maximum global en x** sur


l’ensemble de son domaine de définition.

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

Trouver une condition suffisante sur x et y permettant d’affirmer que la fonction


f(xy) = xy est quasi-concave.

Solution : soit H la matrice Hessienne Bordée


§0 f x' f y' · § 0 y x ·
¨ ¸ ¨ ¸
H ( x, y ) ¨ f x' f "
xx f xy" ¸ ¨ y 0 1 ¸
¨ ' ¸ ¨ 1 0 ¸¹
¨ fy f xy" f yy" ¸¹ © x
©
Le mineur diagonal principal d’ordre 3 de H est D3 = 2xy. Une condition suffisante pour
que f soit quasi-concave est que D3 > 0. Ce sera le cas en particulier si x > 0 et y > 0.

-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 ͘

2-Etudier les variations de la fonction g définie sur R par g x x2 ͘

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

x Trouver le maximum global de P.


x Modifier le problème P, en prenant f ( x, y ) 3 xy  x 3  yx 3
Exercice 4:
Calculer le gradient et le Hessien des fonctions suivantes :
L x 1  ( x  2)2

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

x Si x < 0 alors f est décroissante : la courbe descend quand x augmente.


x Si x = 0 alors f admet un minimum égal à 0.
x Si x > 0 alors f est croissante : la courbe monte quand x augmente.

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');

% Add color map for better


visualization
colormap('jet');

% Add color bar


colorbar;

=========================

Pour trouver l’optimum avec Matlab de f ( x, y ) 3 xy  x  yx


3 3

% Define the objective function


fun = @(x) -3*x(1)*x(2) - x(1)^3 - x(1)^3*x(2);

% Initial guess
x0 = [0, 0];

% Perform optimization
options = optimoptions('fminunc', 'Display', 'iter', 'Algorithm',
'quasi-newton');
[x_opt, fval] = fminunc(fun, x0, options);

% Display the result


disp('Optimal values:');
disp(['x1: ', num2str(x_opt(1))]);
disp(['x2: ', num2str(x_opt(2))]);
disp(['Optimal value of the function: ', num2str(-fval)]);

Run
====================================================================

Optimal values:
x1: 0
x2: 0
Optimal value of the function: 0

19


Exercice 4:

Calculer le gradient et le Hessien des fonctions suivantes :


Fonction Gradient Hessien
L x 1  ( x  2)  2
’L x 2( x  2)  Lxx '' 2 
f ( x, y ) 4 x 2 y  2 x 3  4 xy  2 x  1  § 8 yx  6 x 2  4 y  2 · § 8 y  12 x 8x  4 ·
’f x, y ¨¨ 4 x 2  4 x ¸¸ H x, y ¨ 8 x  4 ¸
© ¹ © 0 ¹
 

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).

Fonction Optimum Nature de l’optimum


L x 1  ( x  2) Convexe
2
’L x 0Ÿ x 2 Lxx '' 2 хϬсхDŝŶ͕

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

z x,y 6  ( x  2)2  ( y  2)2 ’z x , y 0 § 2 0 ·


H (2,2) ¨ ¸
Concave ­2( x  2) 0 ©0  2¹ 
Ÿ® 
¯2( y  2) 0 det H 4 ! 0 ! Max global
­x 2 
Ÿ®
¯y 2
g ( x, y , z ) x 2  2 y 2  3z 2  2 xy  2 xz ’g x, y ,z
0 §2 2 2 ·
¨ ¸
Convexe ­ 2x + 2y + 2z=0 H (0,0) ¨2 4 0 ¸
°  схŝŶ
Ÿ ® 4y+2x=0 ¨2 0 6 ¸¹
©
°6z+2x =0
¯ det H 8!0
­x 0
°
Ÿ ®y 0
°z 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

L'optimisation est une branche des mathématiques cherchant à modéliser, à analyser et à


résoudre analytiquement ou numériquement les problèmes qui consistent à minimiser ou
maximiser une fonction sur un ensemble S. Beaucoup de systèmes susceptibles d’être décrits
par un modèle mathématique sont optimisés. La qualité des résultats et des prédictions
dépend de la pertinence du modèle, du bon choix des variables que l'on cherche à optimiser,
de l’efficacité de l’algorithme et des moyens pour le traitement numérique.
L’optimisation joue un rôle primordial en recherche opérationnelle entre l'informatique, les
mathématiques, l'économie l'industrie et l'ingénierie, en analyse numérique, en statistique
pour l’estimation du maximum de vraisemblance d’une distribution, pour la recherche de
stratégies dans le cadre de la théorie des jeux, ou encore en théorie du contrôle et de la
commande.

II-2 Méthodes de recherche unidimensionnelle

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

Méthodes utilisant les dérivées Méthodes n’utilisant pas de


dérivées

Une seule variable

Méthode de Méthode de Méthode de Méthode de Méthode


Newton la Sécante Dichotomie Dichotomie sans d’itération
Raphson avec Dérivée Dérivée.

Problématique : Optimisation de la fonction objective f ( x) sans contrainte


La recherche d’un optimum de la fonction objective f se fait en recherchant un point
df
stationnaire, ç-à-d, le point ou la dérivée s’annule. x k Vérifiant l’équation 0
dx

II.2.1 Méthodes utilisant les dérivées


II.2.1.1 Méthode de Newton Raphson
Au XVIIe siècle, l'apparition du calcul différentiel entraîne l'invention de techniques
d'optimisation, ou du moins en fait ressentir la nécessité. Newton met au point une méthode
itérative permettant de trouver les extrémums locaux d'une fonction en faisant intervenir la
notion de dérivée, issue de ses travaux avec Leibniz.
Cette nouvelle notion permet de grandes avancées dans l'optimisation de fonctions car le
problème est ramené à la recherche des racines de la dérivée.

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.

f(x1) = -3.9113378920964. f(x2) = -6.0886621079036.

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.

Interprétation graphique de la dérivée


Soit A (xA ; yA) un point de la courbe représentative de f.
La tangente à la courbe au point A est une droite de coefficient directeur f '(xA).

Application de l’algorithme de Newton pour optimiser f(x) = x3 - 2x - 5


1- Choix du point initial͘ x 0 2͘
1
2- Déterminer le point x par la méthode de Newton :
f ' xk
x k 1 xk 
f c' xk
k 0
f ' x0 (3(2) 2  2) 10
x1 x0  2 2 1.16
f 'c x 0 6* 2 12
24
3- Répéter le processus itératif pour obtenir x 2
k 1
f ' x1 (3(1.16)2  2)
x2 x1  1.16  0.86735
f 'c x 1
6*1.16

Après 7 itérations, on trouve le résultat : x 6 0.8165


k
f (x )
4- Critère d’arrêt pour une précision de p :  10 p
f '( x k )
II.2.1.2 Méthode de Sécante
Cette Méthode consiste à approximer la fonction f ( x) non pas par sa tangente comme le cas
de la méthode de Newton, mais par la droite passant par les points ( x0 , f ( x0 )) et ( x1 , f ( x1 )) ͘
x k  x k 1
x k 1 xk  f ( xk )
f ( x k )  f ( x k 1 )
Etapes de l’Algorithme de la méthode de la sécante
1. Fixer x 0 Ğƚ x1
x1  x 0
2. Calculer x 2 x1  f ( x1 )
f ( x1 )  f ( x 0 )
3. Le calcul continu jusqu’à ce que les décimales conservées cessent de varier.
4. Test d’arrêt : x k 1  x k d H ͕ H est la borne d’erreur absolue donnée.

Figure 8 : graphique décrivant le principe de la méthode de la sécante

Example d’application

Soit la fonction f définie sur l'ensemble des réels par :

f(x) = x3 - 2x2 - 6x + 4

Elle est dérivable sur l'ensemble des réels.


Sa dérivée f ' est définie par

f '(x) = 3x2 - 4x - 6

Le discriminant Δ est positif (Δ = 88)


L'équation 3x2 - 4x - 6 = 0 admet deux solutions réelles x1 et x2.

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:

On cherche à approximer la fonction


f '( x) 3 x 2  4 x  6 pour optimiser la
fonction f par la droite passant par les
points ( x0 , f '( x0 )) et ( x1 , f '( x1 )) ͘
x k  x k 1
x k 1 xk  f '( x k )
f '( x k )  f '( x k 1 )
Etapes de l’Algorithme de la méthode
de la sécante

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.

Solutions = après 5 itérations pour un nombre d’itérations maximum =100

ܺ5= 2.2301.

II.2.1.3 Méthode de Dichotomie avec dérivée


Une méthode appliquée pour trouver une solution approchée à une équation f x 0.

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],

avec f a d 0 et f ' b t 0 . On sait donc qu'il existe au moins un réel c dans


'

l'intervalle [a,b] tel que f ' c 0 ͘ L'idée est alors d'évaluer ce que vaut f ' x au milieu

de [a,b], et de distinguer les deux cas suivants :


§ab·
x Si f ' ¨ ¸ d 0 , alors on sait qu'on a une racine dans l'intervalle [(a+b) /2, b].
© 2 ¹
§ab·
x Sinon, f ' ¨ ¸ ! 0 et on sait qu'on a une racine dans l’intervalle] a, (a+b) /2].
© 2 ¹

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

Example d’Application de l’algorithme de Dichotomie pour optimiser f(x) :


Soit la fonction f définie sur l'ensemble des réels par : f x x 2 2x  1 ͘

Elle est dérivable sur l'ensemble des réels. Sa dérivée est définie par f ' x 2x  2 ͘

Pour un algorithme de dichotomie, on prend généralement en entrée a, b et la précision ε à


laquelle on souhaite l’approximation d’un zéro de f ' x

1. On choisit un intervalle [-10, 20]. a 10, b 20 ͘


2. Calcul des dérivées aux points a et b :
f 10
'
18 0

f ' 20 42 0 Î f '(10) u f '(20)  0

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

5. Le deuxième intervalle [-10, 5]. a 10, x 0 5͘


1
6. Calcul de x
10  5 5
x1 
2 2
7. Calcul de la dérivée au point x1 27
§ 5·
f ' ¨ ¸ 3 0
© 2¹
ª 5 º 5
8. Le troisième intervalle «  , 5» . x1  , x0 5
¬ 2 ¼ 2

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) < ε

Solutions = après 24 itérations pour un nombre d’itérations maximum =100


ܺ24= -1.0000

II.2.2 Méthodes n’utilisant pas des dérivées

Problématique : Optimisation de la fonction objective f ( x) sans contrainte


La recherche d’un optimum de la fonction objective f se fait sans utiliser la dérivée
df
0 où la fonction f n’est pas dérivable.
dx

II.2.2.1 Méthode de Dichotomie sans dérivée


Cette méthode, permet à chaque pas « h » de diviser la longueur de l’intervalle contenant
l’optimum par 2, en calculant la fonction ( f ) en deux points déterminés.
En acceptant « n » calculs de la fonction « f », on peut ainsi réduire la longueur de
l’intervalle de solution.
Etapes de l’Algorithme de la méthode de Dichotomie sans dérivée
1. Partir de l’intervalle [a, b]
ab
2. Initialisation : x 0
2
a  x0 2 x0  b
3. Calculer les deux points x1 ͕x
2 2
ba
4. Obtention de cinq points équidistants de
4
5. Calcul des f (a ), f (b), f ( x 0 ), f ( x1 ), f ( x 2 )
6. Éliminer les plus grandes valeurs de f (a ), f (b), f ( x 0 ), f ( x1 ), f ( x 2 ) et garder 2
valeurs des quatre sous intervalles qui contiennent la solution.
28
Example d’application
Soit la fonction f définie sur l'ensemble des réels par :
f x x 2 2x  1 ͘

1.On choisit un intervalle [-5, 7]. a 5, b 7 ͘


2.Calcul de x 0
5  7
x0 1
2
5  1
Calculer les deux points x1 2 ͕
2
2  1
x2 0.5
2
݂ሺܽ ൌ െͷሻ ൌ ͳ͸ǡ
݂ሺܾ ൌ ͹ሻ ൌ ͸Ͷǡ
݂ሺ‫ ݔ‬଴ ൌ ͳሻ ൌ Ͷǡ
݂ሺ‫ ݔ‬ଵ ൌ െʹሻ ൌ ͳǡ
݂ሺ‫ ݔ‬ଶ ൌ െͲǤͷሻ ൌ ͲǤʹͷ
݂ሺ‫ ݔ‬ଷ ൌ െͳǤʹͷሻ ൌ ͲǤͲ͸

3.Éliminer à chaque fois tous les points


qui n’appartiennent pas à l’intervalle de
solution.
4.Le processus continue.

Solution x= -1

II.2.2.2 Méthode d’itération ou du point fixe


Pour résoudre l’équation f ( x) 0 , la méthode d’itération, aussi appelée méthode du point
fixe consiste à remplacer la fonction f ( x) par g ( x) x͘
Etapes de l’Algorithme de la méthode d’itération
1. Choisir une valeur de départ x 0
2. Itérer, autant de fois qu’il faut : x k 1 g x k pour k  N *

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

Après 135 itérations, x1  0.9859, x 2  0.9860

II.3 Optimisation linéaire sans contrainte

Cas d’une fonction à une seule variable


Une fonction f à une seule variable que l’on optimise sans contrainte. Si On considère le
programme de maximisation/minimisation P suivant :

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
*

• f " x* 0 => x * est un maximum local


*
• x Est un minimum local => f " x* t0
* *
• f" x 0 x est un minimum local

Conditions suffisantes du second ordre pour un optimum global : Supposons


qu’il existe un x qui vérifie la CPO. Alors :
• f " x* 0 x ( f est concave) => x est un maximum global
• f " x* 0 x ( f est convexe) => x est un minimum global

30

Exemple : Trouver le maximum global du programme de maximisation P :

 P : max f ( x) ( x  2) 2
x
Solution:

CPO : x est une solution du programme P


f ' ( x) 0 , soit 2( x  2) 0
x 2
cc
CSO : f ( x) 2  0 ͕ x , donc
x 2 est un maximum global de f

Cas d’une fonction à plusieurs variables


On considère le programme de maximisation P suivant avec une fonction f x à n variables sans
contrainte :


P : max f ( x1 , x2 ,..., xn )
x1 , x2 ,..., xn


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* .

Conditions suffisantes du second ordre pour  un optimum global : Supposons


qu’il existe un x* qui vérifie les CPO. Alors :
• H ( x ) est semi-définie négative => x* ( f est concave) => x* est un maximum global
*

• 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 :

CPO : Si ( x , y ) est une solution du programme P alors :

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).

CSO : la matrice hessienne de f évaluée en tout point


( x , y) s’écrit :

§ 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¹

NB : pour la résolution de certains problèmes compliqués où le nombre de paramètres est


élevé par exemple, ou parce que le calcul est trop coûteux, la résolution analytique n’est pas
possible, donc on fait appel à l’approximation numérique avec une approche itérative.

Exemple : soit le programme de minimisation P:


P : min f ( x, y) ( x  3)2  ( y  2)2
x, y

§ 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

On remarque que la fonction f ( x, y ) est convexe et admet un min global o(3.2).

32


II.3.1 Méthode du gradient :


C’est une méthode qui appartient à la famille qui en cherchant un optimum utilise la
dérivée, méthode itérative basé uniquement sur le calcul du gradient.
Nommée aussi méthode de la plus forte pente ou steepest descente est basée sur la direction
de la plus forte pente, le pas de déplacement Ok est choisi de façon à maximiser la fonction

f ( x k  O k d k ) ͕ĂǀĞĐƵŶƉĂƐ Ok t 0 pour cela les méthodes d’optimisation unidimensionnelles


sont utilisées, ce pas est variable.

Etape 1 : choisir un point de départ x 0 , k 0.

Etape 2 : calculer le gradient ’f ( x k ), pour chaque itération k 0,1,.....n .


Etape 3 : calculer la direction de descente d k ’f ( x k ) , k 0,1,.....n 
Etape 4 : rechercher O k minimisant la fonction f ( x k  O k d k ) ͕ Ok t 0 ͘
Etape 5 : définir un nouveau point x k 1 x k  O k d k ͘
Etape 6 : Test d’arrêt x k 1  x k d H . Si le test n’est pas vérifié, retour à l’étape 2.

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¹

Etape 6 : Test d’arrêt. S’arrêter au calcul de x1 

II.3.2 Méthode de Newton

Etape 1 : choisir un point de départ x 0 , k 0.

Etape 2 : calculer le gradient ’f ( x k ), le Hessien ’ 2 f ( x k ), pour chaque itération


k 0,1,.....n .
1
Etape 3 : calculer la direction de descente d k  ª¬’2 f ( x k ) º¼ .’f ( x k ), k 0,1,.....n 

Etape 4 : rechercher O k en minimisant la fonction f ( x k  O k d k ) ͕ Ok t 0 ͘

Etape 5 : définir un nouveau point x k 1 x k  O k d k ͘


Etape 6 : Test d’arrêt x k 1  x k d H . Si le test n’est pas vérifié, retour à l’étape 2.

Exemple : Résoudre le programme de minimisation P par la méthode de Newton :


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 · § 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¹

Etape 6 : Test d’arrêt. S’arrêter au calcul de x1

II.3.3 Méthode quasi-Newton

Etape 1 : choisir un point de départ x 0 , k 0.

Etape 2 : calculer le gradient ’f ( x ), pour chaque itération k


k
0,1,.....n .

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 

Etape 5 : rechercher O en minimisant la fonction f ( x  O d ) ͕ Ok t 0 ͘


k k k k

Etape 6 : définir un nouveau point x k 1 x k  O k d k ͘

Etape 7 : calcule de la matrice H k 1 ͕deux méthodes proposées DFP, BFGS.


Etape 8 : Test d’arrêt x k 1  x k d H . Si le test n’est pas vérifié, retour à l’étape 2.

Exemple : Résoudre le programme de minimisation P par la méthode de Quasi-Newton :


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 · § 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¹

Etape 6 : Test d’arrêt. S’arrêter au calcul de x1

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 :

1- La méthode DFP (Davidon, Fletcher et Powell) :

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

2- La méthode BFGS (Broyden-Fletcher-Goldfarb-Shanno) :

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

II.3.4 Méthodes des directions conjuguées


La méthode du gradient conjugué est un algorithme pour résoudre des systèmes
d'équations linéaires dont la matrice est symétrique définie positive. Cette méthode, imaginée
en 1950 simultanément par Cornelius Lanczos, Eduard Stiefel et Magnus Hestenes.
C’est une méthode itérative qui converge en un nombre fini d'itérations (au plus égal à la
dimension du système linéaire).
La résolution du système linéaire Ax b  équivalent à la recherche du minimum x*  R n de
1
la fonctionnelle J ( x) ( x, Ax)  (b, x) . A est une matrice͕ b est un vecteur͘
2
36

1 T
Pour les fonctions quadratiques f ( x) x A x  bT x  c ͕ on construit n directions linéaires
2
indépendantes et mutuellement conjuguées par rapport à A : d 0 ,......, d n 1 ͘

Directions mutuellement conjuguées par rapport à A : diT A dk 0, k 1,...., k  1 .

Indice T exprime la matrice transposée.

L’algorithme de la méthode Fletcher-Reeves :

Etape 1 : choisir un point de départ x 0 , k 0 . d 0 ’f ( x 0 ) ( Ax 0  b) g0


Etape 2 : Itération de l’algorithme x k 1 x k  O k d k ͘
Etape 3 : chercher d k  g k ( Ax k  b) 
( g k )T g k
Etape 4 : rechercher O k , O
k

(d k )T A d k
Etape 5 : calculer g k 1 ’f ( x k 1 )
( g k 1 )T ( g k 1 )
Etape 6 : définir une nouvelle direction d k 1  g k 1  B k d k ͘ B k 
( g k )T ( g k )
Etape 7 : Test d’arrêt B k 0 . Si le test n’est pas vérifié, retour à l’étape 2.

Exemple : Résoudre le programme de minimisation P par la méthode des directions


conjuguées :
T
1 T § 2 0· § 4 ·
P :min f ( x) x ¨ ¸ x¨ ¸ x
2 ©0 8¹ © 8 ¹
Solution
§0·
Etape 1 : le point de départ x 0 ¨ ¸,k 0
©0¹
Etape 2 : Itération de l’algorithme x1 x0  O 0 d 0 ͘
§ § 2 0 · 0 § 4 · · § 4 ·
Etape 3 : chercher d 0 ’f ( x0 )  g0 ( Ax0  b) Î d
0
¨¨ ¸ x  ¨ ¸¸ ¨ ¸ 
©© 0 8¹ © 8 ¹ ¹ © 8 ¹
§ 4·
(4 8) ¨ ¸
( g 0 )T g 0 ©8 ¹ 80 5
Etape 4 : rechercher O 0 , O
0

(d 0 )T A d 0 § 0 ·§ 4 ·
2 544 34
(4 8) ¨ ¸¨ ¸
© 0 8 ¹© 8 ¹
§ 20 ·
§ 0 · 5 § 4 · ¨ 34 ¸
Calcule de x ͗ x ¨ ¸  ¨ ¸ ¨ ¸ 
1 1

© 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.


x Gradients ’f ( x1 ) et ’f ( x 0 ) sont orthogonauxsi et seulement siÎ  ’f ( x 0 )T ’f ( x1 ) 0 

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

© 289 289 © 1¹ ¹


direction de descente.

II.3.5 Méthode de Levenberg-Marquardt


L’algorithme de Levenberg-Marquardt, ou algorithme LM, fut développé par Kenneth
Levenberg, puis publié par Donald Marquardt. Cet algorithme permet d'obtenir une solution
numérique au problème de minimisation d'une fonction, souvent non linéaire et dépendant de
plusieurs variables. L'algorithme repose sur les méthodes de Gauss-Newton et du gradient, il
converge rapidement vers le minimum. Cependant, pour certaines fonctions très régulières, il
peut converger légèrement moins vite.
2
1 m
Est une somme de carrés de fonctions non linéaires, f ( x) ¦ > f i ( x) @
2i1
Soit le Jacobien de fi ( x) noté ji ( x) , alors la méthode Levenberg-Marquardt cherche dans la
direction de la solution p de l’équation suivante : (( j k )T j k  O k I ) p k ( j k )T f k ͘
O k ! 0 ͕ I ͗matrice identité.
La méthode a la bonne propriété que, pour certains Delta ' scalaires lié à lambda O k , le
2
vecteur p k est la solution du sous-problème contraint de minimisation de jk p  f k 2
soumis à p 2 d ' (Gill et al. 1981, p. 136).
L’algorithme de la méthode Levenberg-Marquardt:

Etape 1 : choisir le Vecteur de paramètres initial p 0 .Le Paramètre de régularisation initial O 0


H ͗ Tolérance pour la convergence , k 0 сх0 itération͘
wfi
Etape 2 : calcul du gradient (Jacobien)͘ ji , j
wx j
Etape 3 : calcul de la matrice Hessienne. H x k
Etape4: définir le nouveau point x k 1 x k  ( H k  O k I ) 1 ’f ( x k ) ͕ p k 1 p k  'p ͘
Etape 5 : rechercher O k ,
Ok
O k 1 si f x k 1 f xk
2
O k 1 2O k si f x k 1 f xk
Etape 6 : Test d’arrêt ͗ Nombre maximum d'itérations et Tolérance. Si le test n’est pas vérifié,
retour à l’étape 2.

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

Apres 8 itérations on trouve le Résultat final :


x:3
y:2
Valeur de la fonction : 4.5313e-09

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)];

% Étape 3 : Calcul de la matrice Hessienne


Hessian = [12*(x0(1)).^2+4*x0(2)-42 , 4*x0(1)+4*x0(2);
4*x0(1)+4*x0(2) , 12*(x0(2)).^2+4*x0(1)-26];

% Étape 4 : Définir le nouveau point x1


x1 = x0 - inv(Hessian + lambda * eye(2)) * grad_f;

% Étape 5 : Calcul de lambda1


if f(x1(1), x1(2)) < f(x0(1), x0(2))
lambda = lambda / 2;
else
lambda = 2 * lambda;
end

% Étape 6 : Test d'arrêt


if norm(x1 - x0) < epsilon
break;
end

% Mettre à jour le point


x0 = x1;
end

% 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 ͘

La fonction f définie sur R ͘


- Calculer le gradient ’f ͘
- Chercher l’optimum de f ͘

- 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 ͘

La fonction f définie sur R ͘


- Calculer le gradient ’f ͘
- Chercher l’optimum de f ͘
- Calculer le Hessien de f ͘
- La fonction f est-elle convexe ou concave, quelle
est la nature de l’optimum.

Exercice 3 : Optimisation sans contrainte
(méthode de recherche unidimensionnelle)
Soit le problème d’optimisation P sans contrainte,
P min f ( x) 3x 4  5 x 3  2 x 2  x  6 ͘
Appliquer les algorithmes de Newton, dichotomie et le point fixe pour trouver le minimum
du problème P.

42


Exercice 4 : Optimisation sans contrainte (méthode de recherche multidimensionnelle) 


Soit le problème d’optimisation P sans contrainte P min f ( x, y ) x 2  y 2  2 x  y  1 ͘

Appliquer les algorithmes de Newton, puis l’algorithme de Quasi-Newton pour trouver le


minimum du problème P.
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.

- 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 ͘

La fonction f définie sur R ͘


- Calculer le gradient ’f ͘
- Chercher l’optimum de f ͘

- 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 ͘

La fonction f définie sur R ͘


- Calculer le gradient ’f ͘
- Chercher l’optimum de f ͘
- Calculer le Hessien de f ͘
- La fonction f est-elle convexe ou concave, quelle est la nature de l’optimum.
43

Corrigé
L’optimum ( 1,  1/ 2 ) est un minimum global.
Exercice 3 : Optimisation sans contrainte (méthode de recherche unidimensionnelle)
Soit le problème d’optimisation P sans contrainte, P min f ( x) 3x 4  5 x3  2 x 2  x  6 ͘
Appliquer les algorithmes de Newton, dichotomie et le point fixe pour trouver le minimum
du problème P.
݂ሺ‫ݔ‬ሻ ൌ ͵ ‫ݔ כ‬Ǥସ ൅ ͷ ‫ݔ כ‬Ǥଷ െ ʹ ‫ݔ כ‬Ǥଶ ൅ ‫ ݔ‬െ ͸
݂݀ሺ‫ݔ‬ሻ ൌ ݂Ԣሺ‫ݔ‬ሻ ൌ ͳʹ ‫ ݔ כ‬ଷ ൅ ͳͷ ‫ ݔ כ‬ଶ െ Ͷ ‫ ݔ כ‬൅ ͳ
݀ʹ݂ሺ‫ݔ‬ሻ ൌ f ԢԢሺ‫ݔ‬ሻ ൌ ͵͸ ‫ ݔ כ‬ଶ ൅ ͵Ͳ ‫ ݔ כ‬െ Ͷ
ࡰ±terminer lԢ࢕࢖࢚࢏࢓࢛࢓par la m±thode de Newtonǣ
Choix du point initial: ‫ ݔ‬଴ ൌ െʹ
݂Ԣ൫‫ ݔ‬௞ ൯
‫ ݔ‬௞ାଵ  ൌ x௞  െ  
f ԢԢሺ‫ ݔ‬௞ ሻ
f 'ሺ‫ ݔ‬଴ ሻ ͳʹ ‫ כ‬ሺെʹሻଷ ൅ ͳͷ ‫ כ‬ሺെʹሻଶ െ Ͷ ‫ כ‬ሺെʹሻ ൅ ͳ -27
‫ ݔ‬ଵ  ൌ x଴  െ  ଴
 ൌ െʹ െ ൌ െʹ െ ൌ -1.6625
f 'Ԣሺ‫ ݔ‬ሻ ͵͸ ‫ כ‬ሺെʹሻଶ ൅ ͵Ͳ ‫ כ‬ሺെʹሻ െ Ͷ ͺͲ
ܴ±‫݌‬±ter le processus it±ratif pour obtenir la solution
Apr°s 7 it±rationsǡ on trouve le r±sultatǣ ‫ ଼ ݔ‬ൌ െͳǤͷͲ͹͹
Crit°re dǯarr²t: Nombre maximum d'itérationsǣp=100 it±rationsǤ
ࡰ±terminer lԢ࢕࢖࢚࢏࢓࢛࢓par la m±thode de Dichotomie avec dérivéeǣ
Choix de l'intervalle ሾa,bሿ v±rifiant la condition fԢሺܽሻ ‫݂ כ‬Ԣሺܾሻ ൏ Ͳ
ܽ ൌ െʹǡ ܾ ൌ Ͳǡl'intervalle ሾa,bሿ ൌ ሾെʹǡͲሿ
݂Ԣሺܽሻ ‫݂ כ‬Ԣሺܾሻ ൌ ሺͳʹ ‫ כ‬ሺെʹሻଷ ൅ ͳͷ ‫ כ‬ሺെʹሻଶ െ Ͷ ‫ כ‬ሺെʹሻ ൅ ͳሻ ‫ כ‬ሺͳʹ ‫ כ‬ሺͲሻଷ ൅ ͳͷ ‫ כ‬ሺͲሻଶ െ Ͷ ‫ כ‬ሺͲሻ ൅ ͳሻ
ൌ െʹ͹ ‫ ͳ כ‬ൌ -ʹ͹ ൏ Ͳ
ܽ൅ܾ െʹ ൅ Ͳ
‫ݔ‬଴ ൌ ൌ  ֜ ‫ ݔ‬଴ ൌ െͳ
ʹ ʹ
fԢሺܽሻ ‫݂ כ‬Ԣሺ‫ ݔ‬଴ ሻ ൌ ሺͳʹ ‫ כ‬ሺെʹሻଷ ൅ ͳͷ ‫ כ‬ሺെʹሻଶ െ Ͷ ‫ כ‬ሺെʹሻ ൅ ͳሻ
‫ כ‬ሺͳʹ ‫ כ‬ሺെͳሻଷ ൅ ͳͷ ‫ כ‬ሺെͳሻଶ െ Ͷ ‫ כ‬ሺെͳሻ ൅ ͳሻ ൌ െʹ͹ ‫ כ‬ͺ ൏ Ͳ
‫ݒ‬±rifier fԢሺܾሻ ‫݂ כ‬Ԣሺ‫ ݔ‬଴ ሻ
ൌ ሺͳʹ ‫ כ‬ሺͲሻଷ ൅ ͳͷ ‫ כ‬ሺͲሻଶ െ Ͷ ‫ כ‬ሺͲሻ ൅ ͳሻ
‫ כ‬ሺͳʹ ‫ כ‬ሺെͳሻଷ ൅ ͳͷ ‫ כ‬ሺെͳሻଶ െ Ͷ ‫ כ‬ሺെͳሻ ൅ ͳሻ ൌ ͳ ‫ כ‬ͺ ൐ Ͳ
donc la solution ‫ א‬ሾܽǡ ‫ ݔ‬଴ ሿ ൌ ሾെʹǡ െͳሿܴ±‫݌‬±ter le processus it±ratif pour obtenir la solution
ܽ ൅ ‫ݔ‬଴ െʹ െ ͳ
‫ݔ‬ଵ ൌ ൌ ֜ ‫ ݔ‬ଵ ൌ െͳǡͷ
ʹ ʹ
fԢሺܽሻ ‫݂ כ‬Ԣሺ‫ ݔ‬ଵ ሻ ൌ ሺͳʹ ‫ כ‬ሺെʹሻଷ ൅ ͳͷ ‫ כ‬ሺെʹሻଶ െ Ͷ ‫ כ‬ሺെʹሻ ൅ ͳሻ
‫ כ‬ሺͳʹ ‫ כ‬ሺെͳǡͷሻଷ ൅ ͳͷ ‫ כ‬ሺെͳǡͷሻଶ െ Ͷ ‫ כ‬ሺെͳǡͷሻ ൅ ͳሻ ൌ െʹ͹ ‫Ͳ כ‬Ǥʹͷ ൏ Ͳ
fԢሺ‫ ݔ‬଴ ሻ ‫݂ כ‬Ԣሺ‫ ݔ‬ଵ ሻ ൌ ሺͳʹ ‫ כ‬ሺെͳሻଷ ൅ ͳͷ ‫ כ‬ሺെͳሻଶ െ Ͷ ‫ כ‬ሺെͳሻ ൅ ͳሻ
‫ כ‬ሺͳʹ ‫ כ‬ሺെͳǡͷሻଷ ൅ ͳͷ ‫ כ‬ሺെͳǡͷሻଶ െ Ͷ ‫ כ‬ሺെͳǡͷሻ ൅ ͳሻ ൌ ͺ ‫Ͳ כ‬Ǥʹͷ ൐ Ͳ
donc la solution ‫ א‬ሾܽǡ ‫ ݔ‬ଵ ሿ ൌ ሾെʹǡ െͳǡͷሿܴ±‫݌‬±ter le processus it±ratif
Apr°s 20 it±rationsǡ on trouve le r±sultatǣ ‫ ݔ‬ଶଵ ൌ െͳǤͷͲ͹͹
Crit°re dǯarr²t: Nombre maximum d'itérationsǣp=100 it±rationsǤ


44

ࡰĠ––‡”‹‡”Ž഻࢕࢖࢚࢏࢓࢛࢓’
’ƒ”ŽƒĠ––Š‘†‡†‡‹ Š‘–‘‹‡•ƒ•†Ġ””‹˜Ġ‡‡ǣ
f ( x) 3* x.4  5* x.3  2* x.2  x  6
Choix de l'intervalle [a,b]
a 2, b 0, l'intervalle [a,b] [ 2, 0]
a  b 2  0
x0 Ÿ x 0 1
2 2
a  x 0 2  1
x1 Ÿ x1 1,5
2 2
b  x0 0  1
x2 Ÿ x 2 0,5
2 2
calcul de
f (a) f (2) 3*( 2) 4  5*( 2)3  2*( 2) 2  (2)  6 8
f (b) f (0) 3*(0) 4  5*(0)3  2*(0) 2  (0)  6 6
f ( x0 ) f (1) 3*(1) 4  5*( 1)3  2*(1) 2  ( 1)  6 11
1
f (x ) f (1.5) 3*( 1.5) 4  5*( 1.5) 3  2*( 1.5) 2  ( 1.5)  6 13, 68
f ( x2 ) f (0.5) 3*(0.5) 4  5*( 0.5) 3  2*( 0.5) 2  (0.5)  6 7, 43
choisir deux petites valeurs de f(x): f ( x 0 ) et f ( x1 )
la solution  > 1,5, 1@
x 0  x1 1, 5  1
x3 Ÿ x 3 1, 25
2 2
f ( x 3 ) f (1, 25) 3*(1, 25) 4  5*(1, 25)3  2*( 1, 25) 2  ( 1, 25)  6 -12.81
choisir deux petites valeurs de f(x): f ( x1 ) et f ( x 3 )
la solution  > 1,5, 1, 25@
x1  x3 1.5  1, 25
x4 Ÿ x3 1, 625
2 2
Répéter le processus itératif
Après 13 itérations, on trouve le résultat : x14 2
Critère d’arrêt: Nombre maximum d'itérations : p=100 itérations, tolérance=1e-7 .

Exercice 4 : Optimisation sans contrainte (méthode de recherche multidimensionnelle) 


Soit le problème d’optimisation P sans contrainte P min f ( x, y ) x 2  y 2  2 x  y  1 ͘

Appliquer les algorithmes de Newton, puis l’algorithme de Quasi-Newton pour trouver le


minimum du problème P.
45
Algorithme de Newton
P min f ( x, y ) x2  y 2  2x  y  1
function x0=Newtonoptimisation()
% Définition de la fonction
Etape 1 : choisir un point de départ f = @(x, y) x^2 + y^2 - 2*x + y + 1;

§0· % Paramètres initiaux


x0 ¨ ¸,k 0. epsilon = 0.0001;
©0¹ max_iterations = 100;

Etape 2 : calculer le gradient % Initialisation


x0 = [0; 0]; % Point initial
§ 2x  2 · § 2 · k = 0;
’f ( x) ¨ ¸ Ÿ ’f ( x ) ¨ ¸
0

© 2 y 1 ¹ ©1 ¹ while k < max_iterations


% Étape 2 : Calcul du gradient
§2 0 · (Jacobien) au point x0
La matrice Hessienne H ( x 0 ) ¨ ¸ grad_f = [2*x0(1) - 2; 2*x0(2) + 1];
©0 2¹
Calcul de la matrice Hessienne au
Etape 3 : calculer la direction de descente point x0
Hessian = [2, 0; 0, 2];
1 § 0.5 0 ·§ 2 · §1 ·
d0  ª¬ H ( x 0 ) º¼ .’f ( x 0 )  ¨ ¸¨ ¸ ¨ ¸ % Étape 3 : Calcul de la direction
© 0 0.5 ¹©1 ¹ © 0.5 ¹ de descente d0
d0 = -inv(Hessian)*grad_f;
Etape 4 : rechercher O 0 en minimisant la fonction
% Étape 4 : Calcul de lambda0
2 2
f ( x0  O 0d 0 ) O 0  0.5O 0  2 O 0  0.5 O 0  1 syms lambda;
lambda0 = solve(gradient(f(x0(1) +
2 ͕ lambda*d0(1), x0(2) + lambda*d0(2)),
1.25 O 0  2.5 O 0  1 lambda) == 0, lambda);

f '( x 0  O 0 d 0 ) 2.5O 0  2.5 0 Ÿ O 0 1 % Étape 5 : Définir le nouveau point


x1
O0 t 0 ͘ x1 = x0 + lambda0*d0;

% Étape 6 : Test d'arrêt


Etape 5 : définir un nouveau point if norm(x1 - x0) < epsilon
break;
§ 0 · §1 · §1 ·
x1 x0  O 0 d 0 ¨ ¸  1¨ ¸ ¨ ¸͘
end
© 0 ¹ © 0.5 ¹ © 0.5 ¹ % Mettre à jour le point
x0 = x1;
Etape 6 : retour à l’étape 2. k = k + 1;
end
Définir un nouveau point
§1 · § 0· §1 ·
x2 x1  O 1d 1 ¨ ¸  0¨ ¸ ¨ ¸͘
© 0.5 ¹ © 0¹ © 0.5 ¹
§1 ·
La solution est x* ¨ ¸
© 0.5 ¹

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

Etape 6 : définir un nouveau point͘


§0· §2 · §1 ·
x1 x0  O 0 d 0 ¨ ¸  1/ 2 ¨ ¸ ¨ ¸
© ¹
0 © 1¹ © 0.5 ¹

La solution est x* §¨1 ·͘


¸
© 0.5 ¹

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;

% Étape 6 : Test d'arrêt


Résultat : if norm(x1 - x0) < epsilon
break;
§ 3 / 5 · end
x ¨ ¸
© 1 ¹ % Mettre à jour le point
x0 = x1;
k = k + 1;
end

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;

§ 0 · § 0.6 · § 0.6 · % Étape 7 : Test d'arrêt


x1 x0  O 0 d 0 ¨ ¸  1¨ ¸ ¨ ¸͘ if norm(x1 - x0) < epsilon
© 0 ¹ © 1 ¹ © 1 ¹ break;
end
Etape 6 : Test d’arrêt x1  x 0 d H .
% Mettre à jour le point
x0 = x1;
1
S’arrêter au calcul de x k = k + 1;
end

disp(['Nombre d''itérations : ',


num2str(k)]);
Résultat :
§ 3 / 5 ·
x ¨ ¸
© 1 ¹

49


Chapitre III
KƉƚŝŵŝƐĂƚŝŽŶƐŽƵƐĐŽŶƚƌĂŝŶƚĞƐͲŵĠƚŚŽĚĞƐŐůŽďĂůĞƐ

Contenu du chapitre III :

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.

- Wayne L. Winston, Munirpallam Venkataramanan, Jeffrey B. Goldberg, ‘’Introduction to Mathematical


Programming’’. Duxbury, 2003. 4 editions.

-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.

-Wright, S. J. (1997)."Primal-Dual Interior-Point Methods." SIAM Review, 39(2), 165–232.

- 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

L'objectif principal de l'optimisation sous contrainte est de trouver la meilleure solution


possible, appelée optimum, qui satisfait simultanément les exigences de l'objectif de
maximisation ou de minimisation et les contraintes du problème. Ces problèmes sont
couramment rencontrés dans divers domaines tels que l'ingénierie, la finance, l'économie, les
sciences naturelles, et bien d'autres.
Les méthodes basées sur les contraintes incluent des approches telles que la méthode de
Lagrange, les conditions de Kuhn-Tucker, la méthode de Uzawa, et d'autres, qui prennent
explicitement en compte les contraintes du problème.
L'optimisation sous contrainte joue un rôle crucial dans la prise de décisions efficace, la
conception de systèmes complexes et la résolution de problèmes du monde réel. Elle offre
des outils puissants pour maximiser les performances, minimiser les coûts et répondre aux
exigences spécifiques tout en tenant compte des limitations et des contraintes inhérentes aux
situations réelles.
III.2 Méthode de Lagrange-Newton pour des contraintes égalités et inégalités

On envisage maintenant l’optimisation d’une fonction f à n variables sous m


contraintes de la forme : g j ( x1 , x2 ,..., xn ) cj , j 1,..., m

III.2.1Cas à une seule contrainte


On considère le programme de maximisation P suivant :

max f ( x)
p 
s.c g ( x ) c

Lagrangien : On appelle Lagrangien, noté L, la fonction suivante :

L( x, O ) f ( x)  O ( g ( x)  c)

Où la variable λ est appelée multiplicateur de Lagrange associé à la contrainte.

Conditions de qualification de la contrainte : Pour pouvoir utiliser le Lagrangien dans la


résolution d’un programme d’optimisation sous une contrainte en équation, il suffit que l’une des
conditions suivantes soit vérifiée :
(a) Les dérivées partielles de la fonction contrainte g évaluées à l’optimum x* ne sont pas
wg
Simultanément nulles, c.-à-d x z 0 pour au moins un xi , i 1,..., n.
wxi
(b) La fonction contrainte g est linéaire.

N.B. : Les conditions de qualification des contraintes garantissent simplement qu’il n’y a pas de
contraintes potentiellement contradictoires.

51


Conditions du premier ordre : On suppose que la contrainte de qualification est vérifiée.


Si le vecteur x ( x1 , x2 ,..., xn ) est une solution du programme de maximisation P , alors il
existe un unique λ tel que x vérifie les n + 1 conditions suivantes :

­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

y‡• n  1 †‡”‹‡”•‹‡—”•’”‹ ‹’ƒ—š†‹ƒ‰‘ƒ—š†‡Žƒƒ–”‹ ‡Š‡••‹‡‡„‘”†±‡†—


ƒ‰”ƒ‰‹‡ H L ( x , O ) ±˜ƒŽ—±‡Žǯ‘’–‹—•‘––‘—•Ͳ˲ x ‡•–—‹‹—
Ž‘ ƒŽǤ

52



ŽŶĚŝƚŝŽŶƐƐƵĨĨŝƐĂŶƚĞƐĚƵƐĞĐŽŶĚŽƌĚƌĞƉŽƵƌƵŶŽƉƚŝŵƵŵŐůŽďĂů͗—’’‘•‘•“—ǯ‹Ž‡š‹•–‡—
x “—‹˜±”‹ˆ‹‡Ž‡•ǤŽ‘”•ǣ
y‡ƒ‰”ƒ‰‹‡/‡•–—‡ˆ‘ –‹‘ ‘ ƒ˜‡ȋ ‡“—‹‡•–Ž‡ ƒ•‡’ƒ”–‹ —Ž‹‡”•‹I‡•–
‘ ƒ˜‡‡–•‹ O J‡•– ‘˜‡š‡Ȍ˲ x ‡•–—ƒš‹—‰Ž‘„ƒŽǤ
y‡ƒ‰”ƒ‰‹‡/‡•–—‡ˆ‘ –‹‘ ‘˜‡š‡ȋ ‡“—‹‡•–Ž‡ ƒ•‡’ƒ”–‹ —Ž‹‡”•‹I‡•–
‘˜‡š‡‡– O J‡•– ‘ ƒ˜‡Ȍ˲ x ‡•–—‹‹—‰Ž‘„ƒŽǤ

Exemple : Résoudre le programme de maximisation P :


f ( x, y ) ( x  2) 2  ( y  1) 2
P
sc : g ( x, y ) x + y =2
Solution :

Le Lagrangien associé à ce programme s’écrit :


L( x, y, O ) ( x  2)2  ( y  1)2  O x + y -2
* *
ŽŶĚŝƚŝŽŶ ĚĞ ƋƵĂůŝĨŝĐĂƚŝŽŶ ĚĞ ůĂ ĐŽŶƚƌĂŝŶƚĞ : Soit g ( x, y) x + y =2 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Ÿ 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 :

>> [2 0 -1;0 2 -1;1 1 0]\[4;2;2]


ans =
сх ( x , y , O ) 1.5, 0.5, 1
* * *
1.5000
0.5000
-1.0000
ǯ—‹“—‡•‘Ž—–‹‘†‡ ‡•›•–°‡†‡͵±“—ƒ–‹‘•͵‹ ‘—‡•‡•– ( x* , y* , O * ) 1.5,0.5, 1 
‡––‡•‘Ž—–‹‘˜±”‹ˆ‹‡Žƒ ‘†‹–‹‘†‡“—ƒŽ‹ˆ‹ ƒ–‹‘†‡Žƒ ‘–”ƒ‹–‡’—‹•“—‡
gcx (1.5,0.5) z 0 et gc y (1.5,0.5) z 0. 
* *
^K͗ƒƒ–”‹ ‡Š‡••‹‡‡„‘”†±‡†—ƒ‰”ƒ‰‹‡•ǯ± ”‹–ǡ’‘—”–‘—– ( x , y ) ǣ

§ 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;

% 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(x, y);
e=g(x, y);

% Create a 3D surface plot


figure;

surf(x, y, z);

hold on
surf(x, y, e);

% Add labels and title


xlabel('x');
ylabel('y');
zlabel('fun');
title('f(x,y) = (x - 2)^2 + (y - 1)^2');

% Add color map for better visualization


colormap('jet');

Résoudre le problème d’optimisation sous contrainte égalité Avec la Méthode de Lagrange.


f ( x, y) ( x  2)2  ( y  1)2
sc : g ( x, y) x + y =2

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

>> fun =@(x) (x(1)-2).^2+(x(2)-1).^2;


>> x = fmincon(fun,[10,10],[1,1],2)
x =
1.5000 0.5000

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

Lagrangien : On appelle Lagrangien, noté L, la fonction suivante :


m
L( x, O ) f ( x)  ¦ O j ( g j ( x)  c j )
j 1

Où la variable O j sont appelées multiplicateurs de Lagrange associés aux contraintes.

Conditions de qualification de la contrainte : Pour pouvoir utiliser le Lagrangien dans la


résolution d’un programme d’optimisation sous une contrainte en équation, il suffit que l’une des
conditions suivantes soit vérifiée :
(a) La matrice jacobienne des fonctions contraintes g j ͕݆ ൌ ͳǡ ǥ ǡ ͕݉ notée J G et de taille (m,n)
est de rang m, lorsqu’elle ĞƐƚévaluées à l’optimum x* ͘
(b) Les fonctions contraintes g j sont toutes linéaires.

Exemple : Résoudre le programme de maximisation P :


f ( x, y ) 2x  3y
P sc : g1 ( x, y ) x + y =5
g 2 ( x, y ) 2x - y =1
Solution :

Le Lagrangien associé à ce programme s’écrit :


L( x, y, O1 , O2 ) 2 x  3 y  O1 x + y -5  O2 2x - y -1
* *
WK : Si ( x , y ) est une solution du programme P , alors :

­ 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 :

>> [0 0 -1 -2;0 0 -1 1;1 1 0 0;2 -1 0 0]\[-2;-3;5;1]


ans =
2.0000 
3.0000
2.6667
-0.3333
сх ( x , y , O1 , O2 ) 2,3, 2.6667, 0.3333 
* * * *

ǯ—‹“—‡•‘Ž—–‹‘†‡ ‡•›•–°‡†‡Ͷ±“—ƒ–‹‘•Ͷ‹ ‘—‡•‡•–ǣ


( x* , y* , O1* , O2* ) 2,3, 2.6667, 0.3333 
‡––‡•‘Ž—–‹‘˜±”‹ˆ‹‡Žƒ ‘†‹–‹‘†‡“—ƒŽ‹ˆ‹ ƒ–‹‘†‡Žƒ ‘–”ƒ‹–‡’—‹•“—‡
55

g1 c x (2,3) z 0 et g1 c y (2,3) z 0

g 2 c x (2,3) z 0 et g 2 c y (2,3) z 0

III.2.3 Optimisation sous contraintes prenant la forme d’inéquations : les conditions de
Kuhn et Tucker

On considère le programme de maximisation P suivant :

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.

Pour résoudre ce problème on définit le Lagrangien :

Lagrangien : On appelle Lagrangien, noté L, la fonction suivante :


m
L( x, O ) f ( x)  ¦ O j ( g j ( x)  c j )
j 1

Où la variable O j sont appelées multiplicateurs de Lagrange associés aux contraintes.

Conditions du premier ordre (Kuhn et Tucker) : on considère que la condition de


qualification de la contrainte est vérifiée pour pouvoir utiliser le Lagrangien. Si le vecteur
x* ( x1* , x2* ,......., xm* )  est une solution du programme de maximisation P, alors, il existe un
unique vecteur O * tel que x* vérifie les conditions suivantes :
­ wL x* , O * wf x* m O wg
j x
*


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

Le lagrangien s’écrit donc :


m
L x* , O *  f x*  ¦ O j  g j x*  c j
j 1
m
f x  ¦ O j g j x*  c j
*

j 1

Pour trouver la solution du programme, on cherche les conditions du premier ordre associes à ce
Lagrangien.

Exemple : Résoudre le programme de maximisation P :


f ( x, y ) 2x  3y
P sc : g1 ( x, y ) x + y d 5
g 2 ( x, y ) 2x - y d 1
Solution :
wf x* m O j wg j x*
1. Stationnarité : ¦ 0 i 1,.............., m
wx j j 1 wx j
2. Dualité complémentaire et Complémentarité : O j g j x* , y* 0
3. Conditions de faisabilité primale et duale : g j x , y * *
d 0 et O j t 0.

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

On trouve ( x* , y* , O1* , O2* ) 2,3, 2.6667, 0.3333 ͘

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

WK : Si ( x , y , O1 , O2 ) est une solution du programme P , alors :


* * * *

­ 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é.

Algorithme de la Méthode de Pénalisation

On considère le programme de maximisation P suivant :

max f ( x )
p s.c gi ( x ) t 0
h j ( x) 0

Méthode de Fiacco et Macnovich : cette méthode itérative utilisée pour résoudre


des problèmes d'optimisation non linéaire avec contraintes. Elle a été développée pour
traiter des problèmes non convexes ou non différentiables. La méthode de Fiacco et
McCormick combine des techniques d'optimisation numérique et de calcul sous-
différentiel ; le problème P peut être ramener à la maximisation de la fonction suivante :
n n
1
Fm( x) f ( x)  rk ¦ g 2i x  ¦ h2 j x
i 1 rk j 1

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

Pénalité extérieure : cette méthode introduit les deux contraintes d'égalités et


d'inégalités ; le problème P peut être ramener à la maximisation/minimisation de la
fonction suivante :
n n
1 1
Fm( x) f ( x) 
rk
¦D
i 1
i g 2i x 
rk
¦B
j 1
j h2 j x

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

Pénalité Mixte : cette méthode englobe le terme de pénalisation intérieure et


extérieure ; le problème P peut être ramener à la maximisation de la fonction suivante :
n n n
Ai 1 1
Fm( x) f ( x)  rk ¦  ¦D i g 2i x  ¦B j h2 j x
i 1 gi x rk i 1 rk j 1

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.

Exemple : Résoudre le programme de maximisation P :


f ( x, y ) ( x  3) 2  ( y  2) 2
P
sc : g ( x, y ) x + y =4
Solution :

La pénalité associée à ce programme s’écrit :


f ( x, y ) ( x  3) 2  ( y  2) 2
P
sc : g ( x, y ) x + y =4
§ 1 2·
Fm min ¨ ( x  3) 2  ( y  2) 2  x + y-4 ¸
© rk ¹
1. Choisir un point initial : x 0 =(1,1)
2. Initialiser le paramètre de pénalité rk=1
§ 1 2·
Fm x 0 ¨ (1  3)  (1  2)  1 + 1 - 4 ¸
2 2
3. 9
© 1 ¹

§ 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 0’Fm( 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

Le Lagrangien associé à ce programme s’écrit :


L( x, y, O ) ( x  3)2  ( y  2)2  O x + y - 4
* *
ŽŶĚŝƚŝŽŶ ĚĞ ƋƵĂůŝĨŝĐĂƚŝŽŶ ĚĞ ůĂ ĐŽŶƚƌĂŝŶƚĞ : Soit g ( x, y) x + y =4 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Ÿ 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 :

>> [2 0 -1;0 2 -1;1 1 0]\[6;4;4]


ans =
2.5000 сх ( x
*
, y* , O * ) 2.5,1.5, 1
1.5000
-1.0000
§ 2.28 · * § 2.5 ·
Pour les deux méthodes (pénalité et Lagrange) on a trouvé x1 ¨ ¸ , ( x ) ¨1.5 ¸ 
© 1.96 ¹ © ¹


61

Pour la méthode pénalité, on retourne à l’étape 1, ou on remplace :

1. Point initial : x 0 par x1


2. Fm x1 0.577
§ 0.96 · § 8 · § 7.04 ·
3. On pose J 0 ’Fm x1  ’Fm x 0
¨ ¸¨ ¸ ¨ ¸
© 0.4 ¹ © 6 ¹ © 6.4 ¹
§ 2.28 · §1· §1.28 ·
4. On pose G 0 x1  x 0 ¨ ¸¨ ¸ ¨ ¸
©1.96 ¹ ©1¹ © 0.96 ¹
1
5. Calculer la matrice H soit par :
1- La méthode DFP (Davidon, Fletcher et Powell) :
T T
G0 G0 H0J 0 J 0 H0
H 1
H 
0
 
0 T 0 T
G J0 J H0 J 0

§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ϮϬϭϵĂ
 
хх΀ϭϬ͖Ϭϭ΁н;;΀ϳ͘Ϭϰ͖ϲ͘ϰ΁Ύ΀ϳ͘Ϭϰϲ͘ϰ΁Ϳͬ;΀ϳ͘Ϭϰϲ͘ϰ΁Ύ΀ϭ͘Ϯϴ͖Ϭ͘ϵϲ΁ͿͿͲ;;΀ϭϬ͖Ϭϭ΁Ύ΀ϭϬ͖Ϭϭ΁Ϳͬ;΀ϭ͘ϮϴϬ͘ϵϲ΁Ύ΀ϭϬ͖Ϭϭ΁Ύ΀ϭ͘Ϯϴ͖Ϭ͘ϵϲ΁ͿͿ


 ĂŶƐс
 
ϯ͘ϴϳϵϲϮ͘ϵϳϯϬ
Ϯ͘ϵϳϯϬϯ͘ϯϭϮ

6. Calcul du nouveau point :


§ 2.28 · § 3.8797 2.9730 ·§ 0.96 · § 2.28  2.5353O1 ·
x2 x1  O1H1’Fm( x1 ) ¨ ¸  O1 ¨ ¸¨ ¸ ¨ ¸
© 1.96 ¹ © 2.978 3.3121¹© 0.4 ¹ ©1.96  1.5292O1 ¹
7.
’Fm( x 2 ) 2 2 2 '
0 ! 2.28  2.5353O1  3  1.96  1.5292O1  2  2.28  2.5353O1  1.96  1.5292O1  4
’O1
2 2 2 '
0.72  2.5353O1  0.04  1.5292O1   0.24  4.0645O1 0

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 fonction objectif


fun = @(x) (x(1) - 3)^2 + (x(2) - 2)^2;

% Définition de la contrainte
g = @(x) x(1) + x(2) - 4;

% Paramètre de pénalité
r_k = 1;

% Nombre maximal d'itérations


max_iterations = 100;

% Définition de la fonction de pénalité


penalty = @(x) max(0, g(x))^2;

% Fonction objectif modifiée avec pénalité


modified_fun = @(x) fun(x) + 1/r_k * penalty(x);

% Conditions initiales
x0 = [0, 0];

% Utilisation de fminunc pour résoudre le problème modifié


options = optimoptions('fminunc', 'Display', 'iter', 'Algorithm',
'quasi-newton', 'MaxIterations', max_iterations);
[x, fval, exitflag, output] = fminunc(modified_fun, x0, options);

% Affichage des résultats


disp('Résultats :');
disp(['x = ', num2str(x)]);
disp(['Valeur de la fonction objectif : ', num2str(fval)]);
disp(['Code de sortie : ', num2str(exitflag)]);
disp(['Nombre d''itérations : ', num2str(output.iterations)]);

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 :

Etape 1 : choisir un point de départ x 0 , k 0.

Etape 2 : calculer le gradient ’f ( x k ), le Hessien H k ’ 2 f ( x k ), pour chaque itération


k 0,1,.....n .
1
Etape 3 : calculer la direction de descente d k  ª¬ H k º¼ .’f ( x k ), k 0,1,.....n 

Etape 4 : rechercher O k par une méthode de recherche linéaire de Wolfe ou d'autres


stratégies͕ Ok t 0 ͘

Etape 5 : définir un nouveau point x k 1 P x k  O k d k ͘ P est l'opérateur de projection

sur la région faisable.


Etape 7 : Test d’arrêt : x k 1  x k d H ͕Vérifiez si les critères d'arrêt sont satisfaits (par

exemple, la convergence du gradient, la convergence de la fonction objective, etc.). Si le


test n’est pas vérifié, retour à l’étape 2.

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.

Exemple : Résoudre le programme de maximisation P


min f ( x, y ) x2  y2
P 
sc x t 0 et y t 0

Les contraintes de borne peuvent être formulées comme :


li d xi d ui 

l1 0 et u1 f pour x
Avec
l2 0 et u2 f pour y

64
Solution :

Etape 1 : choisir un point de départ function [x]=Newtonprojetee ()


% Algorithme de la méthode de
0 § 1· Newton projetée pour l'exemple
x ¨ ¸,k 0.
x = [1; 1]; % Point initial
© 1¹ max_iter = 100;
% Nombre maximal d'itérations
Etape 2 : calculer le gradient
for k = 1:max_iter
§ 2x · § 2·
’f ( x) ¨ ¸ Ÿ ’f ( x 0 ) ¨ ¸ % Calcul du gradient et de la
© ¹
2 y © 2¹ hessienne
g = [2*x(1); 2*x(2)];
§2 0 · H = [2, 0; 0, 2];
La matrice Hessienne H ( x 0 ) ¨ ¸
©0 2¹ % Calcul de la direction de
Newton
Etape 3 : calculer la direction de descente d = -inv(H)*g;

1 § 0.5 0 ·§ 2 · § 1· % Calcul de la longueur du pas


d0  ¬ª H ( x 0 ) ¼º .’f ( x 0 )  ¨ ¸¨ ¸ ¨ ¸ (peut utiliser une recherche
© 0 0.5 ¹© 2 ¹ © 1¹ linéaire)
lamda = 1; % Valeur
Etape 4 : rechercher O 0 en minimisant la fonction arbitraire pour l'exemple

2 2 2 % Mise à jour de la solution


f ( x0  O 0d 0 ) 1 O0  1 O0 2 1 O0 avec projection
͕ x = max(0, x + lamda*d);
f '( x 0  O 0 d 0 ) 4  4O 0 0 Ÿ O0 1
% Critères d'arrêt (par
O0 t 0 ͘ exemple, la convergence du
gradient)
if norm(g) < 1e-6
Etape 5 : définir un nouveau point break;
end
§ §1· § 1· · § 0·
x1 P x0  O 0d 0 P ¨ ¨ ¸  1¨ ¸ ¸ ¨ ¸͘
end
© ©1¹ © 1¹ ¹ © 0¹ % Afficher la solution
fprintf('Solution optimale : x
Opérateur de projection P sur la région Faisable : = %.4f, y = %.4f\n', x(1),
x(2));
x t 0 et y t 0 :

ª 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

dans la région faisable définie par les contraintes


de borne.
Etape 6 : test d’arrêt.

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;

% 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 et de la hessienne
g = [2*x(1); 2*x(2)];
H = [2, 0; 0, 2];

% Calcul de la direction de Newton


d = -inv(H)*g;

% Calcul de la longueur du pas


alpha = 0.1; % Valeur arbitraire pour l'exemple

% Mise à jour de la solution avec projection


x = max(l, min(u, x + alpha*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 Newton 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));

>> 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

La méthode d'Uzawa, aussi appelée méthode de relaxation ou méthode de dualité, est


utilisée pour résoudre des problèmes d'optimisation avec contraintes.
L’algorithme mathématique de la méthode d'Uzawa :
Problème d'optimisation avec contraintes :
On considère le programme de maximisation P suivant :

min f ( x )
p
s.c gi ( x) t 0

Etape 1 : choisir un point de départ x 0 , k 0 , un paramètre de relaxation D 0 , et le

multiplicateur de Lagrange initial O0 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

pas vérifié, retour à l’étape 1.

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.

Exemple : Résoudre le programme de maximisation P


min f ( x, y ) x2  y 2
P
sc x  y 1 d 0
Solution :

§ 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 ¹

Etape 5 : test d’arrêt. g x1 0

Comparaison avec la solution obtenue par la méthode de Lagrange

min f ( x, y ) x2  y 2
P
sc x  y 1 d 0

Le Lagrangien associé à ce programme s’écrit :


L( x, y, O ) x2  y 2  O x + y - 1

­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]);

% Mise à jour du multiplicateur de Lagrange


lambda = lambda + alpha * g(x_optimal);

% Vérification de la convergence (à ajuster selon vos


critères)
if norm(g(x_optimal)) < 1e-6
break;
end
end

% Affichage des résultats


disp('Résultats :');
disp(['Nombre d''itérations : ', num2str(k)]);
disp(['x_optimal = ', num2str(x_optimal)]);
disp(['Valeur de la fonction objectif : ',
num2str(f(x_optimal))]);
disp(['Contrainte g(x) : ', num2str(g(x_optimal))]);

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 :

Etape 1 : choisir un point de départ x 0 , k 0.

Etape 2 : calculer le gradient ’f ( x ), pour chaque itération k


k
0,1,.....n .

Etape 3 : calculer la direction de descente d k ’f ( x k ) , k 0,1,.....n 

Etape 4 : rechercher O minimisant la fonction f ( x  O d ) ͕ Ok t 0 ͘


k k k k

Etape 5 : définir un nouveau point x k 1 P x k  O k d k ͘ P est l'opérateur de projection

sur la région faisable.


Etape 7 : Test d’arrêt : x k 1  x k d H ͕Vérifiez si les critères d'arrêt sont satisfaits. Si le

test n’est pas vérifié, retour à l’étape 2.

Exemple : Résoudre le programme de maximisation P


min f ( x, y ) x2  y2
P 
sc x t 0 et y t 0

Les contraintes de borne peuvent être formulées comme :


li d xi d ui 

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

Etape 5 : définir un nouveau point


§ § 1· § 2 · · § 0 ·
x1 P x0  O 0d 0
P ¨ ¨ ¸  0.5 ¨ ¸ ¸ ¨ ¸ ͘
©© ¹1 © 2 ¹ ¹ © 0 ¹
Opérateur de projection P sur la région Faisable Cela assure que la solution mise à jour
reste dans la région faisable définie par les contraintes de borne.
ª max (0, z1 ) º
« max(0, z ) » ͕ x t 0 et y t 0 ͘
: P ( z )
¬ 2 ¼

Etape 6 : test d’arrêt.

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 :

Résoudre le programme de maximisation P sous contrainte égalité en appliquant la méthode


de Lagrange pour trouver le maximum de la fonction f(x,y)
max f ( x, y ) xy
P 
s.c x  y 6

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 :

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.

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) 2  ( y  4) 2 ] 

P s.c x y d4 
x  3y d 9 











73

- corrigé -
Optimisation sous contraintes


Exercice1 :

Résoudre le programme de maximisation P sous contrainte égalité en appliquant la méthode


de Lagrange pour trouver le maximum de la fonction f(x,y)
max f ( x, y ) xy
P 
s.c x  y 6
Solution :
Le Lagrangien associé à ce programme s’écrit :

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 :

Le Lagrangien associé à ce programme s’écrit :


L( x, y, z, O1 , O2 ) x 2  y 2  z 2  O1 x  2 y  z  1  O2 2x  y  3z  4

ŽŶĚŝƚŝŽŶĚĞƋƵĂůŝĨŝĐĂƚŝŽŶĚĞůĂĐŽŶƚƌĂŝŶƚĞ : Soient g1 ( x, y, z ) x + 2y+z -1 et


g 2 ( x, y, z ) 2x -y-3z -4 . ƒƒ–”‹ ‡Œƒ ‘„‹‡‡-'†‡•ˆ‘ –‹‘• ‘–”ƒ‹–‡•±˜ƒŽ—±‡ƒ—
’‘‹–ȋ[\]Ȍ•ǯ± ”‹–ǣ
* *
WK : Si ( x , y ) est une solution du programme P , alors :
­ wL
° 0 Ÿ 2 x  O1  2O2 0
° wx
° wL
° wy 0 Ÿ 2 y  2O1  O2 0
°
° wL 
® 0 Ÿ 2 z  O1  3O2 0
° wz
° wL
° wO 0 Ÿ x  2 y  z 1 0
° 1
° wL
° wO 0 Ÿ 2 x  y  3z  4 0
¯ 2
On trouve un système linéaire a 5 équations, la solution est :
( x* , y* , O1* , O2* ) 1.0667, 0.3333, -0.7333, 0.6933, 0.7200
‡––‡•‘Ž—–‹‘˜±”‹ˆ‹‡Žƒ ‘†‹–‹‘†‡“—ƒŽ‹ˆ‹ ƒ–‹‘†‡Žƒ ‘–”ƒ‹–‡’—‹•“—‡
§ wg1 wg1 wg1 ·
¨ wx wy wz ¸ § 1 2 1·
Jg x, y , z ¨ ¸ ¨ ¸
¨ wg 2 wg 2 wg 2 ¸ © 2  1  3 ¹
¨ wx wy wz ¹ ¸
©
gcx (1.0667,0.3333,-0.7333) z 0 , gc y (1.0667,0.3333,-0.7333) z 0 et gcz (1.0667,0.3333,-0.7333) z 0.

* * *
^K͗ƒƒ–”‹ ‡Š‡••‹‡‡†—ƒ‰”ƒ‰‹‡•ǯ± ”‹–ǡ’‘—”–‘—– ( x , y , z ) ǣ

§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;

% Définir les contraintes


x = linspace(-5, 5, 50);
y = linspace(-5, 5, 50);

% Calculer les valeurs de z pour chaque contrainte


z1 = 1 - x - 2*y;
z2 = (1/3)*(2*x - y - 4);

% Tracer la fonction objectif


[X, Y] = meshgrid(x, y);
Z = g(X, Y, z1); % On utilise z1 car c'est la contrainte qui impose le
maximum
figure;
surf(X, Y, Z, 'FaceAlpha', 0.6);
hold on;

% Tracer les contraintes


plot3(x, y, z1, 'b', 'LineWidth', 2, 'DisplayName', 'x + 2y + z = 1');
plot3(x, y, z2, 'r', 'LineWidth', 2, 'DisplayName', '2x - y - 3z = 4');

% 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;

% Points de la contrainte d'égalité x + y = 6


x_eq = linspace(0, 6, 100);
y_eq = 6 - x_eq;

% Points de la contrainte x >= 0


x_geq_0 = linspace(0, 6, 100);
y_geq_0 = zeros(size(x_geq_0));

% Points de la contrainte y >= 0


x_0_geq = zeros(size(x_geq_0));
y_geq_0_2 = linspace(0, 6, 100);

% Points de la contrainte d'inégalité x + y <= 6


x_ineq = linspace(0, 6, 100);
y_ineq = 6 - x_ineq;

% Points pour le graphique de la fonction objectif


[X, Y] = meshgrid(linspace(0, 6, 100), linspace(0, 6, 100));
Z = f(X, Y);

% Tracer la fonction objectif et les contraintes


figure;
surf(X, Y, Z, 'FaceAlpha', 0.6, 'DisplayName', 'f(x, y) = xy');
hold on;
plot3(x_eq, y_eq, zeros(size(x_eq)), 'r', 'LineWidth', 2,
'DisplayName', 'x + y = 6');
plot3(x_geq_0, y_geq_0, zeros(size(x_geq_0)), 'g', 'LineWidth', 2,
'DisplayName', 'x \geq 0');
plot3(x_0_geq, y_geq_0_2, zeros(size(y_geq_0_2)), 'b', 'LineWidth',
2, 'DisplayName', 'y \geq 0');
plot3(x_ineq, y_ineq, zeros(size(x_ineq)), 'm', 'LineWidth', 2,
'DisplayName', 'x + y \leq 6');
xlabel('x');
ylabel('y');
zlabel('f(x, y)');

% Vérification des conditions de KKT


x_opt = 3; % Solution optimale
y_opt = 3; % Solution optimale
lambda_ineq = 0; % Multiplicateur de Lagrange pour la contrainte
d'inégalité

% 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;

fprintf('Primal feasibility : %.2f, %.2f, %.2f\n', feasibility_1,


feasibility_2, feasibility_3);

% Dual feasibility
dual_feasibility_1 = lambda_1;
dual_feasibility_2 = lambda_2;

fprintf('Dual feasibility : %.2f, %.2f\n', dual_feasibility_1,


dual_feasibility_2);

% Complementary slackness
slackness_1 = lambda_1 * inequality_constraint;
slackness_2 = lambda_2 * x_opt;

fprintf('Complementary slackness : %.2f, %.2f\n', slackness_1,


slackness_2);

% Afficher la solution optimale en chiffres


fprintf('Solution optimale :\n');
fprintf('x_opt = %.2f\n', x_opt);
fprintf('y_opt = %.2f\n', y_opt);
fprintf('Valeur optimale de f(x, y) = xy : %.2f\n', -f(x_opt,
y_opt));

% Tracer la solution optimale


scatter3(x_opt, y_opt, -f(x_opt, y_opt), 'MarkerFaceColor', 'r',
'MarkerEdgeColor', 'k', 'DisplayName', 'Solution optimale');

% 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 :

- "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

- Rémi Ruppli, Programmation linéaire : Idées et méthodes, Ellipses, 2005.

- Pierre Borne, Abdelkader El Kamel, Khaled Mellouli, Programmation linéaire et applications :


Eléments de cours et exercices résolus, Technip, 2004.




























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 :

Matière première Quantité nécessaire Quantité nécessaire Quantité


pour A pour B disponible
M1 2 3 30
M2 4 1 20

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.

Nous pouvons formuler ce problème comme suit :

Maximiser 10x + 15y


Sous les contraintes :
2x + 3y <= 30
4x + y <= 20
A >= 0
B >= 0

Solution :

Le Lagrangien associé à ce programme s’écrit :


L( x, y, O1 , O2 ) 10 x  15 y  O1 2 x  3 y  30  O2 4 x  y  20
* *
WK : Si ( x , y ) est une solution du programme P , alors :
­ wL
° wx 0 Ÿ 10  2O1  4O2 0
°
° wL 0 Ÿ 15  3O  O 0
° wy 1 2
 ° ͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͙͘;ΎͿ
® wL
° 0 Ÿ 2 x  3 y  30 0
° wO1
°
° wL 0 Ÿ 4 x  y  20 0
°wO2
¯
On trouve un système (*) qui est linéaire à 4 équations, la solution est :

( x* , y,* , O1* , O2* ) (3.0000, 8.0000, 45.0000, -15.0000)
сх
*
 (x , y* ) 3,8 








83
^ŽůƵƚŝŽŶŐƌĂƉŚŝƋƵĞ

% Définir la fonction objectif


fun = @(x) (10*x)/15; % Équation de la droite 10x + 15y = 0 résolue pour y

% Tracer la fonction objectif


figure;
fplot(fun, [0, 10], 'LineWidth', 2); % Plage de valeurs pour x

hold on;

% Définir les contraintes


x = linspace(0, 10, 100); % Plage de valeurs pour x
y1 = (30 - 2*x)/3; % Équation de la première contrainte 2x + 3y = 30
y2 = 20 - 4*x; % Équation de la deuxième contrainte 4x + y = 20

% Tracer les contraintes


plot(x, y1, 'r', 'LineWidth', 2); % Première contrainte
plot(x, y2, 'g', 'LineWidth', 2); % Deuxième contrainte

% Remplir la région faisable


x_fill = [x, fliplr(x)];
y_fill = [min(y1, y2), fliplr(max(y1, y2))];
fill(x_fill, y_fill, 'c', 'FaceAlpha', 0.3);

% Ajouter des étiquettes


xlabel('x');
ylabel('y');
title('Maximisation de 10x + 15y sous contraintes');
legend('Fonction objectif', 'Contrainte 1', 'Contrainte 2', 'Région
faisable');
grid on
hold off;

84





Chapitre V
WƌŽŐƌĂŵŵĂƚŝŽŶŶŽŶͲůŝŶĠĂŝƌĞ

Références :

"Nonlinear Programming: Theory and Algorithms" by Mokhtar S. Bazaraa, Hanif D. Sherali,


C. M. Shetty. Wiley-Interscience; 3rd edition (May 5, 2006).ISBN-10 : 0471486000. ISBN-13 :
978-0471486008

"Introduction to Nonlinear Optimization: Theory, Algorithms, and Applications with MATLAB" by


Amir Beck. SIAM-Society for Industrial and Applied Mathematics (October 27, 2014), ISBN-10 :
1611973643, ISBN-13 : 978-1611973648

"Nonlinear Programming: Concepts, Algorithms, and Applications to Chemical Processes" by


Lorenz T. Biegler, Ignacio E. Grossmann, Arthur W. Westerberg. (1997). ISBN: 0898717027,
ISBN13: 9780898717020

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.

Supposons qu'une entreprise produit deux produits différents, A et B. Le produit A est


produit à un coût de production de x dinars par unité, tandis que le produit B est produit à un
coût de production de y dinars par unité. La ventes de produits A et B sont représentées
respectivement par f_A(x) = 20x et f_B(y) = 30y.

L'objectif de l'entreprise est de maximiser son bénéfice total, qui est défini comme suit :

Profit(x,y) = f_A(x) + f_B(y)

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

La première contrainte limite la production totale de l'entreprise à une certaine limite, et la


deuxième contrainte assure que la production de l'un des produits est deux fois celle de l'autre
produit.

Ainsi, le problème d'optimisation pour cette entreprise devient :

‫׷ ݈ܽݐ݋ݐݐ݂݅݋ݎ݌݈݁ݎ݁ݏ݅݉݅ݔܽܯ‬
‫ܨ‬ሺ‫ݔ‬ǡ ‫ݕ‬ሻ  ൌ ̴݂‫ܣ‬ሺ‫ݔ‬ሻ  ൅ ̴݂‫ܤ‬ሺ‫ݕ‬ሻ

ܵ‫׷ ݏ݁ݐ݊݅ܽݎݐ݊݋ܿݏ݈݁ݏݑ݋‬
‫ ʹ̰ݔ‬൅ ‫ ʹ̰ݕ‬ൌ ʹ
‫ ʹ̰ݔ‬െ ‫ ݕ‬ൌ Ͳ

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 :

Le Lagrangien associé à ce programme s’écrit :

‫׷ ݈ܽݐ݋ݐݐ݂݅݋ݎ݌݈݁ݎ݁ݏ݅݉݅ݔܽܯ‬
‫ܨ‬ሺ‫ݔ‬ǡ ‫ݕ‬ሻ  ൌ ̴݂‫ܣ‬ሺ‫ݔ‬ሻ  ൅ ̴݂‫ܤ‬ሺ‫ݕ‬ሻ
ܵ‫׷ ݏ݁ݐ݊݅ܽݎݐ݊݋ܿݏ݈݁ݏݑ݋‬
‫ ʹ̰ݔ‬൅ ‫ ʹ̰ݕ‬ൌ ʹ
‫ ʹ̰ݔ‬െ ‫ ݕ‬ൌ Ͳ

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.

Algorithme de la méthode de Newton

Etape 1 : choisir le point initial džϬ


Etape 2 : calculer le jacobéen jf
Etape 3 : calculer le jacobéen en point x0 , jf(x0)
§ f 1 x0 ·
Etape 4 : calculer F ( x 0 ) ¨ ¸
¨ f 2 x0 ¸
© ¹
1
¬ª  jf ( x ) ¼º u F ( x )
0 0
Etape 5 : calculer la direction de descente d0

Etape 6 : calculer le nouveau point : x1 x 0  d0

Etape 7 : teste d’arrêt x1  x 0 d H 0

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

Etape 5 : calculer la direction de descente


1
ª§1.6 1.5 · º § 0.7975 · § 0.25 0.37 · § 0.7975 · § 0.2406 ·
d0 «¨ ¸ » u¨ ¸ ¨ ¸u¨ ¸ ¨ ¸
¬©1.6  1¹ ¼ © 0.1100 ¹ © 0.4  0.4 ¹ © 0.1100 ¹ © 0.2750 ¹
§ 0.8 · § 0.2406 · § 0.5594 ·
Etape 6 : calculer le nouveau point : x1 x0  d0 ¨ ¸¨ ¸ ¨ ¸
© 0.75 ¹ © 0.2750 ¹ © 0.4750 ¹
Etape 7 : teste d’arrêt x1  x 0 d H 0

Apres 3 itérations, le résultat pour džϬс΀Ϭ͘ϴ͖Ϭ͘ϳϱ΁ ĞƐƚdžϬс΀ϭ ͖ϭ΁͘


Apres 3 itérations, le résultat pour džϬс΀ͲϬ͘ϴ͖Ϭ͘ϳϱ΁ ĞƐƚdžϬс΀Ͳϭ ͖ϭ΁͘

^ŽůƵƚŝŽŶŐƌĂƉŚŝƋƵĞ

% Définir les équations des contraintes


eq1 = @(x, y) x.^2 + y.^2 - 2;
eq2 = @(x, y) x.^2 - y;
% Tracer les contraintes
figure;
fimplicit(eq1, [-2, 2, -2, 2], 'LineWidth', 2); % Contrainte 1
hold on;
fimplicit(eq2, [-2, 2, -2, 2], 'LineWidth', 2); % Contrainte 2

% Remplir la région faisable


[x, y] = meshgrid(linspace(-2, 2, 100), linspace(-2, 2, 100));
constraint_fill = eq1(x, y) <= 0 & eq2(x, y) <= 0;
fill(x(constraint_fill), y(constraint_fill), 'c', 'FaceAlpha', 0.3);

88


% Définir la fonction objective


fun = @(x) (20*x)/30; % Équation de la droite 20x + 30y = 0 résolue
pour y

% Tracer la fonction objective


fplot(fun, [-2, 2], 'LineWidth', 2);

% Ajouter des étiquettes


xlabel('x');
ylabel('y');
title('Maximisation de 20x + 30y sous contraintes');
legend('Contrainte 1', 'Contrainte 2', 'Région faisable', 'Fonction
objectif');
grid on
hold off;















































 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.

L'utilisation de techniques d'optimisation numérique permet d'atteindre des


solutions optimales ou quasi-optimales dans des contextes où des approches
analytiques traditionnelles peuvent échouer. Les algorithmes numériques offrent
une flexibilité et une adaptabilité qui les rendent applicables à une diversité de
problèmes du monde réel.

Il est important de souligner que le domaine de l'optimisation et des méthodes


numériques est en constante évolution, avec des chercheurs qui explorent
continuellement de nouvelles approches et techniques. L'application croissante
de l'apprentissage automatique et de l'intelligence artificielle dans ces domaines
ouvre de nouvelles perspectives passionnantes.

En fin de compte, l'optimisation et les méthodes numériques représentent un


pilier fondamental pour résoudre des problèmes complexes, améliorer
l'efficacité des processus et contribuer à l'avancement global des connaissances
et de la technologie. Leur impact continu et leur évolution constante promettent
un avenir où ces outils joueront un rôle encore plus crucial dans la résolution
des défis complexes auxquels la société est confrontée.







 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

- 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.

- Wayne L. Winston, Munirpallam Venkataramanan, Jeffrey B. Goldberg, ‘’Introduction to


Mathematical Programming’’. Duxbury, 2003. 4 editions.

- 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

- Rémi Ruppli, Programmation linéaire : Idées et méthodes, Ellipses, 2005.

- Pierre Borne, Abdelkader El Kamel, Khaled Mellouli, Programmation linéaire et applications :


Eléments de cours et exercices résolus, Technip, 2004.

- "Nonlinear Programming: Theory and Algorithms" by Mokhtar S. Bazaraa, Hanif D. Sherali,


C. M. Shetty. Wiley-Interscience; 3rd edition (May 5, 2006). ISBN-10 : 0471486000. ISBN-
13 : 978-0471486008

- "Introduction to Nonlinear Optimization: Theory, Algorithms, and Applications with


MATLAB" by Amir Beck. SIAM-Society for Industrial and Applied Mathematics (October 27,
2014), ISBN-10 : 1611973643, ISBN-13 : 978-1611973648

- "Nonlinear Programming: Concepts, Algorithms, and Applications to Chemical


Processes" by Lorenz T. Biegler, Ignacio E. Grossmann, Arthur W. Westerberg. (1997).
ISBN: 0898717027, ISBN13: 9780898717020
-

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

Vous aimerez peut-être aussi