Vous êtes sur la page 1sur 11

Cours optimisation M1 (AS et AII) N.

DJEGHALI
Département Automatique
UMMTO, 2021/2022

Chapitre 4. Programmation non linéaire

4.1 Introduction : La programmation non linéaire consiste à résoudre des problèmes


d’optimisation dont la fonction objectif et / ou les contraintes sont non linéaires.

4.2 Problèmes avec contraintes d’égalité : Méthode de multiplicateurs de Lagrange


Soit le problème suivant :
Min f ( x ) (ou Max f ( x ))
s.c : (4.1)
g i ( x ) = 0, i = 1,..., m, m ≤ n
x ∈ Rn

Soit la fonction de Lagrange (ou le Lagrangien) du problème (4.1):


m
L( x , λ ) = f ( x ) + ∑ λ i g i ( x )
i =1

où : λ i sont appelés les multiplicateurs de Lagrange. Le problème revient à trouver le


minimum de L.

 ∂L 
 ∂x 
 g1 ( x )   1
 .   ∂L 
   ∂x 
Soient : g ( x ) =  .  et ∇ x L( x , λ ) =  2  , avec ∇ x L( x, λ ) est le gradient de L par
  .
.  
   . 
g m ( x )  ∂L 
 ∂x 
 n
rapport à x.

4.2.1 Conditions nécessaires et suffisantes pour un minimum ou maximum local


x* est un point du minimum local (resp. maximum) de f(x) sous les contraintes
g i ( x ) = 0, i = 1,..., m , si :
∇ x L( x*, λ*) = 0
1°.  (x* est un point critique)
 g i ( x*) = 0
2°. y T ∇ 2x L( x*, λ*) y > 0 (resp. < 0) ∀y ≠ 0 / J g ( x*) y = 0
où : ∇ x L( x, λ ) est le gradient de L par rapport à x.
∇ 2x L( x , λ ) est le hessien de L par rapport à x.
J g ( x ) est la matrice jacobienne (mxn) de g(x) définie comme suit :

djeghalinadial2csp@gmail.com
Chapitre 4. Programmation non linéaire N. DJEGHALI

 ∂g1 ∂g1 ∂g1 


 ∂x . . 
∂x 2 ∂x n
  ∇g 1 ( x ) 
T
 1
 ∂g 2 ∂g 2
. .
∂g 2   ∇g 2 ( x ) T 
 ∂x ∂x 2 ∂x n   
J g (x) =  1  =  . 
. . .  
 
 . . .   . 
 ∂g m ∂g m 
∂g m   m∇ g ( x ) T

 . . 
 ∂x 1 ∂x 2 ∂x n 

Exemple 4.1 : Résoudre le programme non linéaire suivant:


Min x12 + x 22
s.c :
g( x ) = x12 + 2x 22 − 1 = 0
Avec : x=(x1,x2).

Solution :
La fonction de Lagrange de ce problème est :
L( x , λ ) = f ( x ) + λg ( x ) = x12 + x 22 + λ ( x12 + 2 x 22 − 1)

a) Calcul des points critiques


 ∂L
 ∂x = 2 x 1 + 2λx 1 = 0
 1 x1 (1 + λ ) = 0 (1) ⇒ x 1 = 0 ou λ = −1
∇ x L( x, λ) = 0  ∂L
 ⇒ = 2 x 2 + 4λ x 2 = 0 ⇒ x 2 (1 + 2λ) = 0 (2) ⇒ x 2 = 0 ou λ = −1 / 2
g( x ) = 0  ∂x 2
x 2 + 2 x 2 − 1 = 0 x12 + 2 x 22 − 1 = 0 (3)
 1 2

Cas 1 : x1 = 0
De (3), on obtient : x 2 = ±1 / 2 et à partir de (2), on obtient : λ = −1 / 2 .
Cas 2 : x 2 = 0
De (3), on obtient : x1 = ±1 et à partir de (1), on obtient : λ = −1 .
Donc on a 4 points critiques :
x1 = (0, 1 / 2 ) , λ1 = −1 / 2
x 2 = (0, − 1 / 2 ) , λ2 = −1 / 2
x 3 = (1, 0) , λ3 = −1
x 4 = (−1, 0) , λ4 = −1

b) La nature des points critiques


 2 + 2λ 0   ∂g ∂g 
∇ 2x L( x , λ ) =  ; J g (x) =  = [2x1 4x 2 ]
 0

2 + 4λ   ∂x1 ∂x 2 

2
Chapitre 4. Programmation non linéaire N. DJEGHALI

b.1) La nature du premier point : x1 = (0, 1 / 2 ) , λ1 = −1 / 2

[ ]
y  y 
J g ( x1 ) y = 0 2 2  1  = 0 ⇒ y =  1 
y 2  0
1 0 
∇ 2x L( x1 , λ1 ) =   ⇒ y T ∇ 2x L( x1 , λ1 ) y = y12 > 0 , alors x1 est un point de minimum local de f.
0 0 
b.2) La nature du deuxième point: x 2 = (0,−1 / 2 ) , λ2 = −1 / 2

[ y 
] y 
J g (x 2 )y = 0 − 2 2  1  = 0 ⇒ y =  1 
y 2  0
1 0
∇ 2x L( x 2 , λ2 ) =   ⇒ y T ∇ 2x L( x 2 , λ2 ) y = y12 > 0 , alors x 2 est un point de minimum local de
0 0
f.
b.3) La nature du troisième point : x 3 = (1,0) , λ3 = −1
y  0
J g ( x 3 ) y = [2 0]  1  = 0 ⇒ y =  
y2  y2 
0 0 
∇ 2x L( x 3 , λ3 ) =   ⇒ y ∇ x L( x , λ ) y = −2 y 2 < 0 , alors x est un point de maximum
T 2 3 3 2 3

 0 − 2 
local de f.
b.4) La nature du quatrième point : x 4 = (−1,0) , λ4 = −1
y  0
J g ( x 4 ) y = [− 2 0]  1  = 0 ⇒ y =  
y2  y2 
0 0 
∇ 2x L( x 4 , λ4 ) =   ⇒ y T ∇ 2x L( x 4 , λ4 ) y = −2 y 22 < 0 , alors x 4 est un point de maximum
0 − 2 
local de f.

4.3 Problème avec contraintes d’inégalité : Conditions de Kuhn-Tucker


Soit le problème d’optimisation suivant :

Min f ( x ) (ou Max f ( x ))


s.c :
g i ( x ) = 0, i = 1,..., m (4.2)
h j ( x ) ≤ 0, j = 1,..., p
Remarque 4.1 : Les contraintes de type ≥ peuvent être ramenées aux contraintes de type ≤ .
Définition 4.1 : Une contrainte d’inégalité h j ( x ) ≤ 0 est active (ou saturée) en x si
h j ( x ) = 0. Elle est inactive si h j ( x ) < 0.
4.3.1 Conditions nécessaires et suffisantes pour un minimum ou maximum local :
Conditions de Kuhn-Tucker
Soit la fonction de Lagrange:

3
Chapitre 4. Programmation non linéaire N. DJEGHALI

m p
L( x , λ, µ ) = f ( x ) + ∑ λ i g i ( x ) + ∑ µ j h j ( x )
i =1 j=1

où : λ i et µ j sont les multiplicateurs de Lagrange.


 g1 ( x )   h1 ( x )   µ1   λ1 
 .   .  .   . 
       
Soient : g ( x ) =  .  , h ( x ) =  .  , µ =  .  et λ =  .  .
       
 .   .  .   . 
g m ( x ) h p ( x )  µ p  λ m 
   

x* est un point du minimum (resp. maximum) local de f(x) sous les contraintes
g i ( x ) = 0, i = 1,..., m et h j ( x ) ≤ 0, j = 1,..., p , si :
µ*j ≥ 0 , j = 1,..., p (resp. µ*j ≤ 0)

∇ x L( x*, λ*, µ*) = 0
 g i ( x*) = 0, i = 1,..., m
1°. 
 h j ( x*) ≤ 0, j = 1,..., p

 µ*j h j ( x*) = 0, j = 1,..., p
J g ( x*) y = 0
2°. y T ∇ 2x L( x*, λ*, µ*) y > 0 (resp. < 0) ∀y ≠ 0 tel que :  T
 y ∇h j ( x*) = 0, ∀j ∈ I( x*)
où : I( x * ) est l’ensemble des indices des contraintes actives.
J g ( x*) est la matrice jacobienne (mxn) de g(x).

Exemple 4.2
Min ( x1 − 1) 2 + x 2 − 2
s.c :
g ( x ) = x 2 − x1 − 1 = 0
h (x ) = x1 + x 2 − 4 ≤ 0
Solution :
La fonction de Lagrange
L( x , λ, µ) = f ( x ) + λg ( x ) + µh ( x ) = ( x 1 − 1) 2 + x 2 − 2 + λ ( x 2 − x 1 − 1) + µ( x 1 + x 2 − 4)
a) Calcul des points critiques
µ ≥ 0 (1)
2( x − 1) − λ + µ = 0 ( 2)
 1
1 + λ + µ = 0 (3)

x 2 − x1 − 1 = 0 ( 4)
x1 + x 2 − 4 ≤ 0 (5)

µ( x1 + x 2 − 4) = 0 ( 6)
De (6), on obtient : µ = 0 ou x 1 + x 2 − 4 = 0

4
Chapitre 4. Programmation non linéaire N. DJEGHALI

Cas 1 : µ = 0 et x 1 + x 2 − 4 ≠ 0 (contrainte h inactive)


De (3), on obtient : λ = −1 , de (2), on obtient : x1 = 1 / 2 et à partir de (4), on a : x 2 = 3 / 2 . De
(5), on a : x1 + x 2 − 4 = −2 < 0 .
Donc le premier point critique est : x1 = (1 / 2, 3 / 2) , λ1 = −1, µ1 = 0.
Cas 2: µ ≠ 0 et x1 + x 2 − 4 = 0 (h active), alors le système d’équations (1)-(5) devient :
µ > 0 (1)'

2( x1 − 1) − λ + µ = 0 (2)'

1 + λ + µ = 0 (3)'
x − x − 1 = 0 (4)'
 2 1

x1 + x 2 − 4 = 0 (5)'

De (4)’ et (5)’, on obtient : x1 = 3 / 2 , x 2 = 5 / 2 .


De (2)’ et (3)’ on obtient : λ = 1 et µ = −2 < 0 (cette solution n’est pas acceptable parce que
la valeur de µ est négative).
Donc on a un seul point critique : x1 = (1 / 2,3 / 2) , λ1 = −1, µ1 = 0.
b) Etude de la nature du point x1

2 0  ∂g ∂g 
∇ 2x L( x , λ, µ) =  ; J g (x) =  = [− 1 1]

0 0  ∂x1 ∂x 2 
J g ( x1 ) = [− 1 1]
y  y 
J g ( x1 ) y = 0 ⇒ [− 1 1]  1  = 0 ⇒ y1 = y 2 ⇒ y =  1 
y2   y1 
2 0  y1 
y T ∇ 2x L( x1 , λ1 , µ1 ) y = [y1
y1 ]     = 2 y12 > 0 ⇒ x 1 = (1 / 2,3 / 2) est un point de
0 0  y1 
1
minimum de f. Min(f)=f(x )= - 0.25.

4.4 Méthode de Lagrange-Newton pour des contraintes égalité


Considérons le problème suivant :

Min f (x)
s.c : (4.3)
g i ( x ) = 0, i = 1,..., m
Soit la fonction de Lagrange:
m
L( x , λ ) = f ( x ) + ∑ λ i g i ( x )
i =1

5
Chapitre 4. Programmation non linéaire N. DJEGHALI

 λ1 
 . 
 
Avec : λ =  .  .
 
 . 
λ m 
Le problème revient à chercher le minimum de L( x , λ ) en utilisant la méthode itérative de
x 0 
Newton, en partant d’un point initial  0  .
λ 
x 
Soit : X =   , l’algorithme de Newton est comme suit :
λ 
X 0 point initial
k=0,1,2,….
X k +1 = X k − (∇ 2 L(X k )) −1 ∇L(X k )

Avec : ∇ 2 L(X) est la matrice hessienne de L.


Exemple 4.3 Considérons le programme non linéaire suivant:
Min x12 + x 22
s.c :
2x1 + x 2 + 4 = 0
Résoudre ce problème en utilisant la méthode de Lagrange-Newton en partant du point initial
x 0 = [ x 10 x 02 ]T = [0 0]T et λ0 = 0. Le critère d’arrêt est : ∇L(X k ) < ε , avec ε = 10 −3.
Solution :
La fonction de Lagrange est donnée comme suit :
L( x , λ ) = f ( x ) + λg ( x ) = x12 + x 22 + λ(2 x1 + x 2 + 4)
 x1   x 10  0
x     
Avec : x = [ x 1 x 2 ]T . Soit : X =   =  x 2  ⇒ X 0 =  x 02  = 0
λ   λ   λ0  0
   
 ∂L 
 ∂x 
 1   2 x 1 + 2λ   2 0 2
∂L  =  2 x 2 + λ  , ∇ 2 L ( X ) = 0 2 1 
∇L( X ) =   
 ∂x 2   
 ∂L   1  2 x + x 2 + 4 
 
 2 1 0 
 
 ∂λ 
 1 / 10 − 2 / 10 2 / 5  0 
 −1
(∇ L(X)) = − 2 / 10
2
2/5 2 / 10  , ∇L(X ) = 0 .
 0

 2 / 5 2 / 10 − 2 / 5 4

6
Chapitre 4. Programmation non linéaire N. DJEGHALI

L’algorithme de la méthode de newton est :


X 0 point initial
k=0,1,2,….
X k +1 = X k − (∇ 2 L(X k )) −1 ∇L(X k )

Itération 1 : k=0
0  1 / 10 − 2 / 10 2 / 5  0  − 8 / 5
X = X − (∇ L(X )) ∇L(X ) = 0 − − 2 / 10
1 0 2 0 −1 0
2/5 2 / 10  0 = − 4 / 5
0  2 / 5 2 / 10 − 2 / 5 4  8 / 5 
0 
∇L(X1 ) = 0 et ∇L(X1 ) = 0 < ε ⇒ X1 est le point de minimim.
0
 − 8 / 5
Min f(x)=f(x1)= 16/5, avec x1 =  .
 − 4 / 5
4.5 Méthode de pénalisation (ou de pénalité)
Il existe deux types de pénalisation : la pénalisation extérieure et la pénalisation intérieure.

4.5.1 Méthode de pénalisation extérieure


Soit le problème d’optimisation suivant :

Min f (x )
s.c :
g i ( x ) = 0, i = 1,..., m (4.4)
h j ( x ) ≤ 0, j = 1,..., p
Une fonction de pénalisation extérieure est nulle dans l’espace admissible D et positive
quand les contraintes ne sont pas satisfaites.
Soit P( x ) : R n → R , la fonction de pénalisation extérieure. Alors, le problème (4.4) est
transformé en un problème d’optimisation sans contrainte suivant:
Min f ( x ) + µP( x ) (4.5)
où : µ > 0 est le paramètre de pénalisation.
• Exemples de fonction de pénalisation extérieure : Pour un problème de type (4.4),
une fonction de pénalisation extérieure peut prendre les formes suivantes :

P( x ) = ∑ g i2 ( x ) + ∑ (max{h j ( x ),0}) 2
m p

i =1 j=1

P( x ) = ∑ g i ( x ) + ∑ max{h j ( x ),0}
m p

i =1 j=1

7
Chapitre 4. Programmation non linéaire N. DJEGHALI

• Principe de la méthode de pénalisation extérieure


Soit Pµ ( x ) = µP( x ) . Cette méthode consiste à résoudre le problème sans contrainte (4.5) pour
une valeur donnée de µ. Si le point de minimum trouvé x* satisfait Pµ ( x*) ≤ ε alors x* est
accepté comme solution approximative, sinon, la valeur de µ est augmentée et le problème
sans contraintes (4.5) est résolu jusqu'à ce que la condition Pµ ( x*) ≤ ε soit satisfaite.
L’algorithme de la méthode de pénalisation extérieure est donné comme suit :
k=0
Choisir µk
Calcul de x k solution de : Min f ( x ) + µ k P( x )
tant que Pµ ( x k ) > ε faire
k=k+1
µk = β µk-1
Calcul de x k , solution de : Min f ( x ) + µ k P( x )
Fin tant que
Remarque 4.2 : Pour le calcul de Min f ( x ) + µP( x ) , on applique les algorithmes sans
contraintes vus en chapitre 2.

Exemple 4.4 Résoudre le problème suivant :


Min x 12 + x 22
s.c : x1 + x 2 = 2

Solution: On a une contrainte d’égalité g(x)=0, avec g( x ) = x1 + x 2 − 2

En prenant P( x ) = ( x 1 + x 2 − 2) 2 , on obtient le problème sans contrainte suivant :

Min x 12 + x 22 + µ( x1 + x 2 − 2) 2

Soit : f µ ( x1 , x 2 ) = x12 + x 22 + µ( x1 + x 2 − 2) 2

On résout le problème sans contrainte par la méthode analytique.


• Calcul des points critiques
 2x + 2µ( x1 + x 2 − 2)  0
∇f µ ( x 1 , x 2 ) =  1 = 
2x 2 + 2µ( x1 + x 2 − 2) 0

D’où : x1 = x 2 = .
2µ + 1

 2 + 2µ 2µ 
On a : ∇ 2 f µ ( x 1 , x 2 ) = 
 2µ 2 + 2µ 

 2µ 2µ 
La matrice hessicnne ∇ 2 f µ ( x1 , x 2 ) au point critique x =  ,  est définie positive
 2µ + 1 2µ + 1 
∀ µ > 0 , alors le point critique est un point de minimum à chaque itération.

8
Chapitre 4. Programmation non linéaire N. DJEGHALI

Soient : µ 0 = 1 et β = 4 , ε = 10 −4 et Pµ ( x ) = µ( x1 + x 2 − 2) 2 . Les différentes itérations ainsi

que les différentes valeurs de xk sont données dans le tableau suivant :

k µk xk Pµ ( x k )

0 1 (0.6667, 0.6667) 0.4444


1 4 (0.8889,0.8889) 0.1975
2 16 (0.9697,0.9697) 0.0588
3 64 (0.9922,0.9922) 0.0154
4 256 (0.9981,0.9981) 0.0039
5 1024 (0.9995,0.9995) 9.7561 10-4
6 4096 (0.9999,0.9999) 2.4408 10-4
7 16384 (1,1) 6.1031 10-5
A partir du tableau, on constate que le point x7=(1,1) est la solution optimale (point de
minimum) du problème. Min f(x)=f(x7)=2.

4.5.2 Méthode de pénalisation intérieure : Cette méthode est aussi appelée méthode de
barrière. Dans le cas d’une pénalisation intérieure, la fonction de pénalisation B(x) est
positive dans l’espace admissible D et tend vers l’infini lorsque x s’approche de la frontière
du domaine admissible D.
La méthode de pénalisation intérieure considère uniquement des problèmes avec des
contraintes d’inégalité :
Min f (x )
s.c : (4.6)
h j ( x ) ≤ 0, j = 1,..., p

Alors, le problème (4.6) est transformé en un problème d’optimisation sans contraintes


suivant:
Min f ( x ) + µB( x ) (4.7)
où : µ > 0 est le paramètre de pénalisation
• Exemples de fonction de pénalisation intérieure
p
1
B( x ) = −∑
j=1 h j (x )
p
B( x ) = −∑ ln(− h j ( x ))
j=1

9
Chapitre 4. Programmation non linéaire N. DJEGHALI

Soit : Bµ ( x ) = µB( x ) . L’algorithme de la méthode de pénalisation intérieure est donné


comme suit :
k=0
Choisir µk
Calcul de x k solution de : Min f ( x ) + µ k B( x )
tant que Bµ ( x k ) > ε faire
k=k+1
k u k −1
µ =
β
Calcul de x k , solution de : Min f ( x ) + µ k B( x )
Fin tant que

Remarque 4.3 L’appellation pénalisation intérieure est employée car le minimum est
approché depuis l’intérieur du domaine admissible D. Les méthodes de pénalisation extérieure
approchent le minimum depuis l’extérieur de ce domaine.

4.6 Méthode du gradient projeté


L’algorithme du gradient projeté s’inspire de l’algorithme du gradient étudié dans le chapitre
2. Afin de rester à chaque étape dans le domaine D défini par les contraintes, on projette sur D
le point obtenu par la minimisation de f par la méthode du gradient.
Soit l’operateur de projection C D
( x ) , l’algorithme du gradient projeté est comme suit :

Partant d’un point initial x0


Tant que le critère d’arrêt n’est pas satisfait
x̂ k +1 = x k − α k ∇f ( x k )
x k +1 = CD ( x̂ k +1 )
k = k +1
Fin tant que
• Exemples d’operateur de projection
-Pour des contraintes de type x ≥ 0 , l’operateur de projection est défini comme suit :

C D
( x ) = max{x i ,0}i=1,...,n

-Pour des contraintes de type a ≤ x ≤ b , l’operateur de projection est défini comme suit :
b si x > b

CD ( x) =  x si a ≤ x ≤ b
a si x < a

10
Chapitre 4. Programmation non linéaire N. DJEGHALI

4.7 Méthode de newton projetée (pour des contraintes de borne)


Soit le problème suivant :
Min f ( x )
s.c :
a≤x≤b
La méthode de Newton projetée a le même principe que celle du gradient projeté. Puisque les
itérés successifs ne satisfont pas les contraintes, on les projette sur l’ensemble des contraintes.

4.8 Méthode d’Uzawa


Considérons le problème d’optimisation suivant :
Min f (x )
s.c :
g i ( x ) = 0, i = 1,..., m (4.8)
h j ( x ) ≤ 0, j = 1,..., p
Le lagrangien du problème est
m p
L( x , λ, µ ) = f ( x ) + ∑ λ i g i ( x ) + ∑ µ j h j ( x )
i =1 j=1

Le principe de cette méthode est comme suit :


1. Pour (λ*, µ*) fixés dans R m x R + p , nous cherchons le minimum sans contraintes (sur R n )
de la fonction L( x , λ*, µ*) .

2. Pour x* fixé dans R n , on cherche le maximum sur R m x R + p de la fonction L( x*, λ, µ) .


L’algorithme de la méthode d’Uzawa est donné comme suit :
k=0
Choisir λ0 ∈ R m et µ0 ∈ R + p

Itération k : Tant que le critère d’arrêt n’est pas satisfait, faire


1° Calculer xk ∈ R n solution de : Min L( x , λk , µ k )
2° Calculer λk +1 et µk+1 comme suit:
λki +1 = λki + ρ g i ( x k ), i = 1,...., m
µ kj +1 = max(0, µ kj + ρ h j ( x k )), j = 1,...., p
où ρ > 0 est un réel fixé.

A. JUTARD
M

11

Vous aimerez peut-être aussi