Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Programmation linéaire
Programmation non-linéaire
1 POLYTECH-Nancy
Université Lorraine
Introduction
Programmation mathématique, définitions, classification.
Principe général de résolution.
Généralités sur la convergence.
Programmation linéaire
Algorithme du simplexe.
Algorithme dual et primal dual.
Application à la prévision et à la décision, exemples.
Optimisation unidimensionnelle
Optimisation non linéaire
Sans contraintes - fonctions convexes - CNS d’optimalité locale.
Méthodes du gradient, gradient conjugué.
Méthodes de Quasi-Newton (DFP et BFGS)
Avec contraintes - CNS d’optimalité locale (KKT).
Méthodes de Usawa.
Méthodes de Pénalités.
Méthodes du gradient projeté.
Forme standard:
hj (x) = 0, j = 1, ..., m
hj (x) ≤ 0, j = m + 1, ..., m + p
(P) inf J(x), telque hj : X → R
x∈Rn
a ≤ x ≤ b
x ≥0
(3)
Figure: Minimum.
Exemples:
1) Résolution d’un probleme de stokage.
Le problème de gestion d’un centre de stockage en achetant et vendant une
marchandise de maniére a maximiser le profis dans un lapse de temps donne
est un problème d’optimisation. Supposer que le centre de stockage a une
capacite maximale M, Suppossons aussi que le coût de stockage est r par unité
pour garder la marchandise pendent une période de temps. Le prix de la
marchandise varie par période dans le temps. A chaque période on a le même
prix pour acheter ou vendre. On suppose que le centre de stockage est vide au
debut et a la fin du temps considere T constitue de N périodes d’un mois. Pour
formuler ce problème on considere les variable xi qui est le niveau du stock
pendent la période i. Soit ui la quantite de marchandise vendu pendent la
période i et si cellle achete pendent la même période. La vente raporte un profi
pi . Alors le problème de maximizer le profil devient:
PN
max i=1 (pi si − r xi )
t.q. xi+1 = xi + ri − si , i = 1, 2, ..., n − 1
0 = xn + un − sn
xi ≤ M, i = 1, 2...., N
xi = 0, xi ≥ 0, ui ≥ 0, si ≥ 0, i = 1, ..., N
Exemples:
1 t
avec J(x) = 2
x Ax − bt x.
Rappel: A matrice symétrique à coefficients réels, n × n est dite définie positive si:
et de façon équivalente elle admet des valeurs propre uniquement réels positif.
Exemples:
B(x) : Rn → Rm
inf kB(x)k2
x∈Rn
Exemples:
inf J(v )
v ∈L2 (]0,T [,K )
- K ⊂ Rm convexe fermé.
- v est le contrôle ou la commande:
- v ∈ L2 (]0, T [, K )
Z T
J(v ) = (Q(y (t) − y0 (t)), y (t) − y0 (t))d t
0
Z T
+ (Rv (t), v (t)) d t
0
+ (D(y (T ) − y0 (T )), y (T ) − y0 (T ))
T > 0; y 0 ∈ Rn , f ∈ L1 (]0, T [, Rn )
Exemples:
5) Soit Ω un ouvert borné de R2 et ∂Ω la frontière. Soit H 1 (Ω) l’ensemble de
fonctions définies sur Ω à carré intégrable ainsi que les dérivées premières. Soit
f ∈ L2 (Ω).
Soit K = { v ∈ H 1 (Ω) telque v = 0 en ∂Ω }.
La solution du problème au dérivées partielles suivant
(
−∆u = f dans Ω
u = 0 en ∂Ω
inf J(v )
v ∈K
1
k∇v k2 dx −
R R
avec J(v ) = 2 Ω Ω f v dx
(Théorème de Lax Milgram)
1
∀v ∈ E, lim (J(x + h v ) − J(x) − (J 0 (x), h v )) = 0
h→0 h
1
∀v ∈ E, lim (J(x + v ) − J(x) − (J 0 (x), v )) = 0
kv k→0 kv k
1
∀v ∈ E, lim (J(y + v ) − J(y ) − (J 0 (x), v )) = 0
kv k→0,y →x kv k
c) ⇒ b) ⇒ a)
Définition.
Une fonction J définie sur un ensemble convexe C est dite convexe si:
∀(x, y ) ∈ C, ∀ λ ∈ [0, 1] ,
Classification.
En Rn :
Fonction coût et contraintes linéaires dans Rn
⇒ Programmation linéaire.
Fonction coût J non linéaire
- C = Rn ⇒ optimisation non linéaire sans contraintes.
- C ⊂ Rn ⇒ optimisation non linéaire avec contraintes.
Si J et C sont convexes ⇒ optimisation non linéaire
convexe.
Si J est quadratique on parle de programmation
quadratique.
Programmation linéaire
Une entreprise des produits laitiers fabrique trois types de yaourts (A , B et C) dans
deux unités de production: unité 1 et unité 2. Le prix en euros à la sortie de l’usine d’un
même yaourt varie avec l’unité de production:
Yaourt A B C
unité 1 0,55 0,45 0,5
unité 2 0,6 0,46 0,53
L’usine 1 peut livrer 5000 yaourts de type A , 3500 yaourts de type B, et 4500 yaourts
de type C par jour. L’usine 2 peut livrer 4000 yaourts de type A, 2500 yaouts de type B
et 3500 yaourts de type C par jour.
Les yaourts produits sont vendus à deux supermachés d’une même enseigne, notès
super 1 et super 2. Le transport de l’usine à chacun des supermarchés a un coût qui
ne dépend pas du type de yaourt.
Unité 1 2
super 1 0,01 0,02
super 2 0,02 0,03
Yaourt A B C
super 1 4500 3500 4600
super 2 5300 3800 4400
Yaourt A B C
super 1 1,05 1,20 1,15
super 2 1,10 1,25 1,20
X = {Xi,j,k } avec i = 1, 2, 3; j = 1, 2; k = 1, 2
max Z (X ) = − min(−Z (X ))
Donc
Z(X) =0.49X111 + 0.53X112 + 0.43X121 + 0.47X122 + 0.74X211
+0.78X212 + 0.73X221 + 0.76X222 + 0.64X311 + 0.68X312
+0.6X321 + 0.64X322
Contraintes
Xi,j,k ≥ 0 i = 1, 2, 3; j = 1, 2; k = 1, 2
Programmation linéaire
Minimiser J(X̄ ) sous les contraintes :
0
gi (X̄ ) = 0 i ∈ I : contraintes d’égalité
(Pb) gi (X̄ ) ≤ 0 i ∈ I − : contraintes d’inégalité (5)
gi (X¯) ≥ 0 i ∈ I + : contraintes d’inégalité
X̄ = (X1 , ..., Xn )t ≥ 0
Remarques :
1 X̄ ≥ 0 n’est pas une restriction car :
Exemple 1)
Maximiser : Z = f (X¯) = 4 · X1 + 6 · X2 + 20 · X3 + 17 · X4
Contraintes :
g1 (X̄ ) = X2 + X2 + 2X4 − 10 ≤ 0
g2 (X̄ ) = X2 + 2X3 + X4 − 4 ≤ 0
X1 , X2 , X3 , X4 ≥ 0
Forme standard
n
P
min Z = C.X̄ Ci Xi
(P) j=1
AX̄ = b
X̄ ≥ 0
• X n’est pas vide et la fonction objectif atteint son minimun en X , c’est a dire le
problème admet une solution optimale, qui peut être n’est pas unique.
Exemples :
3X1 + 2X2 ≥ 1
(1)
(P) X2 − X1 ≥ 0 (2)
X2 ≤ 1 (3)
(
de (1) ⇒ X2 ≥ − 23 X1 + 1
2
de (2) ⇒ X2 ≥ X1
Figure: Symplexe.
Auteur: Jean Rodolphe RocheCours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire
Remarque :
L’ensemble X (polytope ou polyèdre) a un nombre fini de points
n!
extrêmes ν(X ) ≤ Cnm =
(n − m)!m!
Tout point d’un polyèdre convexe X ⊂ Rn est combinaison
convexe des points extrêmes de X .
Exemple :
min 5X1 − 3X2 + 0X3 + 0X4
X − X − X = 2
1 2 3
2X1 + 3X2 + X4 = 4
−X + 6X = 10
1 2
A · X̄ = b
c’est à dire :
B · XB + N · XN = b
C · X = CB · XB + CN · XN
On appelle solution de base (associée à la base B) la solution
particulière de (P) obtenue en faisant :
−1
XN = 0 ⇒ XB = B b; BXB = b
Π = CB .B −1 , (avec XB = B −1 b > 0)
C = [CB , CN ]
Une condition nécessaire suffisante (en l’absence de dégénérescence) pour que B soit
une base réalisable optimale est que :
C̄N = CN − Π.N = CN − CB · B −1 · N ≥ 0
b¯r
b̄i
xˆs = = min
a¯rs i/a¯is >0 āis
Définition :
On dit qu’un programme linéaire est mis sous forme canonique
relativement à la base (Xi1 , Xi2 , ..., Xin ) si :
- Z est exprimé en fonction des variables hors base.
- Les colonnes de la matrice des contraintes correspondant
aux variables dans la base forment (à une permutation
près) une matrice unité.
Exemple 1 :
min Z1 = X1 − 2X2 + 2X3
X + X − X = 3
1 2 3
(P)
−X 1 + 3X 2 = −4
X ≥ 0; X ≥ 0; X ≥ 0
1 2 3
min Z10 = X1 − 2X2 + 2X3 + My1 + My2
X + X − X + y = 3
1 2 3 1
(P 0 )
−X 1 + 3X 2 − y 2 = −4
X ≥ 0; X ≥ 0; X ≥ 0; y ≥ 0; y ≥ 0
1 2 3 1 2
X1 X2 X3 y1 y2
1 -2 2 M M Z
1 1 -1 1 0 3
-1 3 0 0 -1 -4
" # " #
1 1 −1 1 0
A= = N B
−1 3 0 0 −1
xB = b = B −1 b est y1 = 3; y2 = 4
min Z20 = X1 − 2X2 + 2X3 + My2
X + X + S = 3
1 2 1
(P 0 )
−X 1 + 3X 2 + S2 − y2 = −4
X , X , S , S , y ≥ 0
1 2 1 2 2
X1 X2 X3 y2 S1 S2
1 -2 2 M 0 0 Z
1 1 0 0 1 0 3
-1 3 0 -1 0 1 -4
" #
0 1
base B=
−1 0
XB = (0, 0, 0, 3, 4, 0)
X1 X2 X3 y2 S1 S2
Problème :
Maximiser X1 + 2X2
−3X1 + 2X2 ≤ 2
−X1 + 2X2 ≤ 4
X1 + X2 ≤ 5
X1 ≥ 0, X2 ≥ 0
Tableau initial :
X1 X2 X3 X4 X5
-1 -2 0 0 0 Z (L1 )
-3 2 1 0 0 2 (L2 )
-1 2 0 1 0 4 (L3 )
1 1 0 0 1 5 (L4 )
hors base hors base base base base
XB = (0, 0, 2, 4, 5)
Cette base n’est pas optimale car le coût réduit des variables
hors base est négatif, on va donc faire un déplacement par
changement de base.
⇒r =1
On obtient :
X1 X2 X3 X4 X5
-4 0 1 0 0 Z (L1 )
− 32 1 1
2 0 0 1 (L2 )
2 0 -1 1 0 2 (L3 )
5
2 0 − 21 0 1 4 (L4 )
hors base base hors base base base
avec X2 , X4 , X5 variables de base
Nouvelle solution de base:
X1 = 0; X3 = 0; X2 = 1; X4 = 2, X5 = 4
Coût Z = c.X = −2
⇒r =2
X2 , X4 , X5 ≥ 0
t = 4 car:
0 1 0 0 0 0
B −1 A4 = 1 = 0 1 0 1 = 1
0 0 0 1 0 0
Donc la variable X4 va s’annuler et quitter la base.
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire
On obtient :
X1 X2 X3 X4 X5
0 0 -1 2 0 Z (L1 )00
0 1 − 14 3
4 0 5
2 (L2 )
00
1 0 − 12 1
2 0 1 (L003 )
3
0 0 4 − 45 1 3
2 (L4 )
00
000 00
(L4 ) = 43 (L4 )
000 00 00
(L1 ) = (L1 ) + 34 (L4 )
000 00 00
(L2 ) = (L2 ) + 13 (L4 )
000 00 00
(L3 ) = (L3 ) + 23 (L4 )
On obtient :
X1 X2 X3 X4 X5
1 4
0 0 0 3 3 Z
1 1
0 1 0 3 3 3
1 0 0 − 31 2
3 2
0 0 1 − 35 4
3 2
La nouvelle solution de base est X1 = 2, X2 = 3, X3 = 2, X4 = 0, X5 = 0 et
Z = −1 ∗ 2 − 2 ∗ 3 = −8
Les coûts réduits sont ≥ 0 ⇒ la solution est optimale et l’algorithme est arrêté.
Exemple :
Min 2x1 − 3x2 2
x1
x1 − x2 6 1 c= x̄ =
−3 x2
(P) 2x1 + 3x2 > 4 1 −1 1
A= 2 3 b̄ = 4
x1 + x2 = 3
1 1 3
x1 > 0; x2 > 0
max u1 + 4u2 + 3u3
u + 2u + u 6 2
1 2 3
(D)
−u1 + 3u2 + u3 = −3
u 6 0; u > 0; u 6= 0
1 2 3
Primal Dual
Fonction économique (Min) Second membre
Second membre Fonction économique (Max)
A matrice des contraintes AT matrice des contraintes
Contrainte i : > 0 Variable ui > 0
Contrainte i : = 0 Variable ui ≷ 0
Variable xj > 0 Contrainte j : 6 0
Variable xj ≷ 0 Contrainte j : = 0
Lemme 1 :
Si x̄ et ū sont respectivement deux solutions quelconques du
primal et du dual, alors :
Corollaire 2 :
Si x ∗ et u ∗ sont respectivement des solutions du primal et du
dual vérifiant c̄.x̄ ∗ = ū ∗ .b̄, alors x̄ ∗ est solution optimale du
primal et ū ∗ solution optimale du dual.
z ∗ = min(P) = max(D) = ω ∗
Théorème (Complémentaire) :
Deux solutions ( x̄, ū) du primal et du dual respectivement sont
optimales si et seulement si:
Soit le problème:
min c̄.x̄
P(b̄) Ax̄ = b̄
x̄ > 0
B −1 .(b̄ + ∆b̄) ≥ 0
∂Z (b̄)
=⇒ = ui est le coût marginal.
∂bi
min z = c̄.x̄
(
max ω = ū.b̄
(P) A.x¯ = b̄ (D)
ū.A 6 c
x̄ > 0
A · x + y = b
PR(u) x >0
xj = 0 ∀∈/ J(u)
y ≥0
xj (cj − u · Aj ) = 0, ∀j
⇒ u 0 = u + λ∗ · ω
e∗
cj − u.Aj
∗
λ = min
ω ∗ ·Aj >0
j/e ω̃ ∗ .Aj
Puis on retourne à la première étape pour résoudre le système
PR(u 0 ).
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire
Exemple:
inf 3 x2 + 2 y2 (7)
(x,y )∈R2
Théorème :
S’il existe un point s dans lequel J est finie.
J est semi continue inférieurement sur Rn
∀x ∈ Rn lim supx 0 →x J(x 0 ) ≥ J(x)
L’épigraphe de J est fermé
lim||x||→+∞ J(x) = +∞
Alors J est bornée inférieurement sur Rn et ∃x ∈ Rn tel que
Problème : Unicité ?
Théorème d’unicité :
Soit J strictement convexe.
lim||x||→+∞ J(x) = +∞
Alors J est bornée inférieurement sur Rn et ∃ ! x ∈ Rn
minimisant J.
Théorème;
Soit J : Rn → R une application différentiable et C ∈ Rn sous
ensemble convexe. Si x est un minimun local de (P), alors :
∀x ∈ C, h∇J(x), x − xi ≥ 0. (8)
Exemple :
Théorème :
Si x est un minimum local de J(x) et si J(x) est différentiable
en x
Alors :
∇J(x) = 0 (condition de premier ordre ou d’Euler, Régle
de Fermat).
n 2 o
Le hessien ∇2 J(x) = ∂∂xJ(x)
i xj
est une matrice
1≤i,j≤n
semi-définie positive.
min J(x, y ) = x 2 + y 2 − 2x − 4y
(x,y )∈R2
2x − 2 2 0
∇J(x, y ) = ( ) et ∇2 J(x, y ) = ( )
2y − 4 0 2
2x − 2y 0
∇J(x, y ) = ( )=( )
3y 2 − 2x − 1 0
2 −2
∇2 J(x, y ) = ( )
−2 6y
t2
J(x+td) = J(x)+t < ∇J(x), d) > + < ∇2 J(x)d, d > +t 2 kdk2 o(t)
2
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire
∇J(x) = 0
inf J(x)
x∈Rn
A partir de x 0 ∈ U
(x), on va construire une suite dite
minimisante x k k ≥0 telle que :
J(x k +1 ) ≤ J(x k )
x k +1 = x k − ρk d k
Problèmes
Vitesse de convergence.
La vitesse de convergence d’une suite minimisante est :
Linéaire si:
||x k +1 − x ∗ ||
lim sup =σ<1
k −→∞ ||x k − x ∗ ||
Superlinéaire si
||x k +1 − x ∗ ||
lim =0
k −→∞ ||x k − x ∗ ||
Méthode du gradient
∇J(x k )
d = −
∇J(x k )
Algorithme du Gradient
∇J(x k )
<
J(x k +1 ) − J(x k )
< if k > 0
k +1
− x k
< if k > 0
x
∇J(x k )
6 τ1
∇J(x 0 )
+ τa
Sinon
Calculer ρk solution du problème
minJ(x k − ρ∇J(x k ))
ρ>0
∇J(x k +1 )⊥∇J(x k )
Si l’évaluation de ρ à chaque itération est trop coûteuse en
temps de calcul, on peut remplacer par un ρ fixé à l’avance
tant que J(x k +1 ) 6 J(x k ), mais la descente ne sera pas
maximale à chaque pas.
Si le calcul de ∇J(x k ) est à son tour trop complexe, on
pourra considérer une direction de descente identique
toutes les m itérations.
Le comportement de la méthode dépend beaucoup d’une
mise à l’échelle de variables, en effet si on considère un
changement d’échelle : Xi = λi xi pour x = (x1 , ..., xn ) alors:
∂J 1 ∂J
=
∂Xi λi ∂xi
La direction de descente peut être perturbée autant que
l’on veut en changeant λ = (λ1 , ..., λn ).
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire
Théroème :
lim J(x) = +∞
||x||→∞
exemple
Soit:
1
f (x, y ) =(x − 2)2 + (y + 4)2
2
1
= x 2 + y 2 − 2 x + 8 y + 18
2
1 1 0 x x
= (x, y )( )( ) + (−2, 8)( ) + 18
2 0 2 y y
alors
x −2 1 0
∇f = ( ) et ∇2 f = ( )
2y + 8 0 2
en consequence f est strictement convexe donc il y a existence
et unicité du minimum x ∗ = (2, −4).
1 −1 1 + 1ρ
Soit x 2 = ( ) − ρ( )=( ) donc
−4 0 −4
J : Rn → R
1 t
x → J (x) = x A · x − bt · x
2
J 0 (x) = A · x − b
v1t · A · v2 = 0
J (x k +1 ) = min+ J (x k + ρdk )
ρ∈R
Soit ρk tq:
x k +1 = x k + ρk dk
alors
∇J (x k + ρk dk )t .dk = 0
⇒ (A(x k + ρk dk ) − b)t dk = 0
(Ax k − b)t dk dkt Ax k b t dk
⇒ ρk = − = − +
dkt Adk dkt Adk dkt Adk
Si r k = b − Ax k
t
r k dk ∇J (x k )t dk
=+ t =−
dk Adk dkt Adk
t
k +1 r k dk
k
⇒x =x + t dk
dk Adk
la direction de descente dk +1 est définie par:
dk +1 = −∇J (x k +1 ) + βdk
x k +1 = x k + ρk dk
∇J (x k +1 )Adk
β=
dkt Adk
dk +1 = −∇J (x k +1 ) + βdk
k =k +1
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire
x k +1 = x k + ρk dk
∇J (x k +1 )
2
βk =
k∇J (x k )k 2
dk +1 = −∇J (x k +1 ) + β k dk
k =k +1
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire
Méthode de Newton
Problème :
Calculer x tel que ∇J (x) = 0, c’est à dire que x soit un point
critique de J (x) et soit un minimum local.
On va considérer la méthode de Newton pour résoudre
l’équation
∇J (x) = 0
On suppose J deux fois différentiable, l’Hessien ∇2 J (x)
Lipschitz. On suppose que si x est tq ∇J (x) = 0 alors ∇2 J (x)
est défini positif .
1
M(x) = J(x k ) + ∇J(x k )(x − x k ) + (x − x k )t ∇2 J(x k )(x − x k )
2
x k +1 = x k + δx
avec
∇2 J(x k )δx = −∇J(x k )
Problèmes :
- J(x k +1 ) ≤ J(x k ) ?
- −(∇2 J(x k ))−1 ∇J(x k ) direction de descente ?
- précision des calculs ?
Même si −(∇2 J(x k ))−1 ∇J(x k ) est une direction de descente, il
n’est pas évident que J(x k +1 ) ≤ J(x k ).
Convergence
Soit ek +1 = x k +1 − x ∗
kek +1 k ≤ K kek k2
Problème :
∇J(x k ) → ∇J(x k ) + εk
∇2 J(x k ) → ∇2 J(x k ) + ∆k
min J(x)
x∈Rn
avec
m
1 1X
J(x) = r (x)t r (x) = (ri (x))2 avec m > n
2 2
i=1
Exemple
ri (x) = 0; i = 1, 2, ..., m
ri est appelée fonction résidu.
Si m > n le problème est sur déterminé.
Si m = n le problème est bien déterminé.
Exemple 2
Méthode de Gauss-Newton
Soit F (x) la matrice Jacobienne de r (x).
∂r ∂r1 ∂r1
1
∂x1 (x) ∂x2 (x) , ... ∂xn (x)
∂r2 ∂r2
(x) ... ... ∂x (x)
F (x) = ∂x1 n
.. .. .. ..
∂rm ∂rm
∂x1 (x) ∂x2 (x) ... ∂r m
∂xn (x)
Méthode de Newton
1
qk (x) = J(xk ) + g t (xk )(x − xk ) + (x − xk )t G(xk )(x − xk )
2
1
= r (xk )t r (xk ) + (F (xk )t r (xk ))t (x − xk )+
2
1
+ (x − xk )t (F (xk )t F (xk ) + S(xk ))(x − xk )
2
Donc
∇2 ri (x); i = 1, ..., m
Méthode de Gauss-Newton
ou encore :
Algorithme de Gauss-Newton
xk +1 = xk + sk
k = k + 1 aller à 1
Soit x ∗ la solution
i) Si S(x ∗ ) = 0 la méthode de Gauss-Newton converge de
façon quadratique.
ii) Si S(x ∗ ) << F (x ∗ )t F (x ∗ ) la méthode de Gauss-Newton
converge de façon superlinéaire.
iii) S(x ∗ ) >> F (x ∗ )t F (x ∗ ) la méthode de Gauss-Newton peut
ne pas converger.
Exemple
Soient r1 (x) = x + 1; r2 (x) = λ x 2 + x − 1 et
2
X
J(x) = (ri (x))2
i=1
k 1 2 3 4 5 6
xk 1 0,13 0,01 0,001 0,0001 0,00001
alors
x k +1 = x k + ρk dk
Une idée est de remplacer (∇2 J(x k ))−1 par Hk une matrice
définie positive telle que :
x k +1 = x k − ρk Hk ∇J(x k )
1 t
Q(x) = x Ax + bt x + c
2
avec A symetrique définie positive, Hk converge vers l’inverse
A−1 , le hessien de Q.
Ainsi a la convergence, on retrouvera la méthode de Newton.
Hk peut alors être considérée comme une approximation
définie positive de l’inverse du hessien de f .
Hk [∇J(x k ) − ∇J(x k −1 )] = x k − x k −1
avec Hk +1 = Hk + ∆k .
Les corrections ∆k sont choisies de la forme suivante :
t
∆k = αk u~k .u~k = αk u~k ⊗ u~k
Si
t (δk − Hk γk ) · (δk − Hk γk )t
αk u~k .u~k =
γkt · (δk − Hk γk )
avec H0 matrice symétrique définie positive, on obtient :
(δk − Hk γk ) · (δk − Hk γk )t
Hk +1 = Hk +
γkt · (δk − Hk γk )
t
Th. Si J(x) = 12 x t Ax + b x + c forme quadratique convexe
alors Hk → A−1 en au plus n étapes.
Partant d’un point x 0 on engendre successivement les points :
x 1 = x 0 + δ1 , x 2 = x 1 + δ2 , ..... , x k +1 = x k + δk +1
δk .δkt Hk γk .γkt Hk
Formule de correction : Hk +1 = Hk + −
δkt .γk γkt Hk γk
Théorème :
Si Hk est définie positive et si δkt γk > 0, alors Hk +1 est définie
positive.
Cette condition est satisfaite si x k +1 est tel que :
Algorithme DFP
Algorithme BFGS
Soit x0 un point de départ ; k = 0 et H0 une matrice définie
positive.
1) Soit dk = −Hk · ∇J(x k )
2) Calculer x k +1 tel que J(x k +1 ) = minρ>0 J(x k + ρdk )
3) Poser δk = x k +1 − x k et γk = ∇J(x k +1 ) − ∇J(x k )
4) Puis :
5) k ← k + 1
6) Test d’arret vérifié ou retour en 1).
Broyden, Fletcher,Goldfarb, Shanno
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire
On considere le problème:
n
Min J(x), x ∈ R
(P) h(x)i = 0 i = 1, ...., me
h(x)i ≤ 0 i = me + 1, ........., m
Exemples
2 2
Min x1 + x2
avec la contrainte :
2 x1 + x2 ≤ −4
Pn
Min c.x = i=1 ci xi
avec les contraintes :
b − A x ≤ 0 A ∈ Mm×n
x ∈ Rn b ∈ Rm
Lagrangien
Exemples:
(
L: R2 × R+ −→ R
L(x1 , x2 , λ) = x12 + x22 + λ(2 x1 + x2 + 4)
( m
L: Rn × R+ −→ R
L(x, λ) = c.x + λt (b − A x)
Théorème(Karush-Kuhn-Tucker)
Soit x ? un argument minimum local de J(x), c’est à dire une
solution optimale locale du problème (P). Supposons que les
contraintes sont qualifiées.
m
Alors il existe un vecteur λ? ∈ R+ tel que:
?
Pm ? ?
∇J(x ) + j=1 λj ∇hj (x ) = 0
?
hi (x ) = 0, i = 1, ...., me
hi (x ? ) ≤ 0, i = me + 1, ...., m
λ?i h(x ? ) = 0, i = me + 1, ...., m
?
λi ≥ 0
exemple
La fonction objectif f (x1 , x2 ) = x12 + x22 − 4x1 + 4 = (x1 − 2)2 + x22 est deux fois
dérivable avec continuite et convexe sur R2 .
En effet le gradient est : ∇f (x1 , x2 ) = (2x1 − 4, 2x2 )T et la matrice hessienne:
2 0
∇2 f (x1 , x2 ) = 0
0 2
Les gradients des contraintes: ∇g1 (x1 , x2 ) = (−1, 1)T , ∇g2 (x1 , x2 ) =
(2x1 , −1)T , ∇g3 (x1 , x2 ) = (−1, 0)T et ∇g4 (x1 , x2 ) = (0, −1)T .
exemple
Le lagrangien:
L(x1 , x2 , λ1 , λ2 , λ3 , λ4 ) = (x1 −2)2 +x22 +λ1 (−x1 +x2 −2)+λ2 (x12 −x2 +1)+λ3 (−x1 )+λ4 (−x2 )
exemple
c’est à dire:
m
∀ λ ∈ R+ L(x ? , λ) ≤ L(x ? , λ? ) ≤ L(x, λ? ) ∀ x ∈ Rn
Théorème
m
Si (x ? , λ? ) ∈ Rn × R+ est un point selle de
( m
L : Rn × R+ −→ R
Pm
(x, λ) −→ J(x) + j=1 λj hj (x)
alors
Théorème
m
Si (x ? , λ? ) ∈ Rn × R+ est un point selle du Lagrangien L,
le point x ? est une solution (P).
On suppose les fonctions J, hi , i = 1, ..., m convexes et
dérivables en un point x ? ∈ Rn et les contraintes qualifées.
Alors, si x ? est une solution du problème (P), il existe au
m
moins un vecteur λ? ∈ R+ tel que le couple est un point
selle du Lagrangien L.
Fonction duale
m
Soit pour λ ∈ R+ la fonction ω(λ) défini par:
et
∇x L(xλ? , λ) = 0
w(λ? ) = J(x ? )
avec
Retour à l’exemple 1:
min J(x1 , x2 ) = x12 + x22
(x1 ,x2 )∈R2
!
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire
suite de l’exemple
→ w(λ) = min(x
1 ,x2 )∈R
2 L(x1 , x2 , λ)
∂L
!
(x1 , x2 , λ)
2x1 + 2λ
→ ∇x L(x1 , x2 , λ) = ∂x1
∂L =
2x2 + λ
∂x2
(x1 , x2 , λ)
2x1 + 2λ = 0 ⇒ x1 = −λ
→ ∇x L(x1 , x2 , λ) = 0 ⇒
2x2 + λ = 0 ⇒ x2 = − λ2
→ w(λ) = L(−λ, − λ2 , λ) = (−λ)2 + (− λ2 )2 + 2(−λ)λ + (− λ2 )λ + 4λ
→ w 0 (λ) = − 52 λ2 + 4
→ w 0 (λ) = 0 si λ = 8
5
→ J(x1 , x2 ) = w(λ) =
− 45 ( 85 )2 + 4 = 16
5
x1 = λ = − 85
→
x2 = − λ2 = − 45
!
Figure: problème dual
n
X
minn c t .x = ci xi
x∈R
i=1
b − A.x ≤ 0
A ∈ Rm × Rn , c ∈ Rn et c ∈ Rm
n
(D) maxλ∈Rm w(λ)
Alors
max λt b
(D) c − λt A = 0
λ > 0, (λ ∈ Rm+)
problème quadratique
→ L(x, λ) = 1 t
2
x Ax − bt x + λt (Cx − d) = 1 t
2
x Ax − (bt − λt C)x − λt d
→ ∇x L(x, λ) = Ax − (b − C t λ) ⇒ xλ = A−1 (b − C t λ)
→ w(λ) = 1 t
x Axλ
2 λ
− (bt − λt C)xλ − λt d
problème quadratique
Méthode de Uzawa
(
Min J(x), x ∈ Rn
(P)
h(x)i ≤ 0 i = 1, ........., m
(
Max w(λ), λ ∈ Rm
(D)
λ≥0
Méthode du gradient pour le problème (D).
m
Soit P + : Rm −→ R+
m m
Si λ0 ∈ R+ on définit une suite {λk }k ≥0 d’éléments de R+
par la relation de recurrence:
λk +1 = P + (λk + ρ ∇λ w(λk ))
et
h1 (xλ )
.
∇λ w(λ) =
.
.
hm (xλ )
c’est a dire:
m
X m
X
J(xλ ) + λi hi (xλ ) = minn J(x) + λi hi (x)
x∈R
i=1 i=1
a) Soit λ0 ≥ 0 and k = 0
b) ∀k = 0, ...... faire: Calculer xk et w(λk ) xλ tq
w(λk ) = L(xk , λk )
d) Calculer λk +1 :
λk +1 = max{λk + ρk ∇λ w(λk ), 0}
λk1 + ρk h1 (xk )
.
k k
λ + ρk ∇λ w(λ ) =
.
.
λkm + ρk hm (xk )
Exemple
(
min 12 x t Ax − bt x
(P)
Cx ≤ d, C ∈ Rm×n ; d ∈ Rm
une itération de la méthode d’Uzawa s’écrit:
→ Calcul de xk tq. Axk − b + C t λk = 0
→ Calcul de λk +1 tq. λk +1 = max{λk + ρk (Cxk − d), 0}
(
Min J(x), x ∈ Rn
(P)
h(x)i ≤ 0 i = 1, ........., m
Soit r : R → R la fonction définie par:
(
r (y ) = 0 si y ≤ 0, y ∈ R
r (y ) = +∞ si y ≥ 0
Problème Pénalisé
Si
x ∈ U = {x/hi (x) ≤ 0; i = 1, ...m}
est une solution du problème (P) ⇒ R(x) = 0, sinon
R(x) = ∞.
Et si x ∈ U ⇒ Θ(x) = J(x) ⇒ le minimum de (PP) est solution
optimale de (P) et vice versa.
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire
Pénalités exterieures
(
r (y ) = 0 s i y ≤ 0, y ∈ R
r (y ) = y 2 si y ≥ 0
Soit
m
X m
X
R(x) = r (hi (x)) = [hi (x)]2
i=1 i=1
Pénalités intérieures
Soit
m
X 1
B(x) = −
hi (x)
i=1
then B(x) ≥ 0 ∀x ∈ U
then B(x) → ∞ quand x ⇒ ∂U
On considére la fonction Φ(x, t) = J(x) + tB(x) et le problème
pénalisé:
min Φ(x, t)
x∈Rn
Lagrangien augmenté
On considére:
m
X m
X
L(x, λ, ρ) = J(x) + λi hi (x) + ρ [hi+ (x)]2
|i=1 {z } | i=1
{z }
dualite pénalité
(Hestenes et Powell)
⇒
min L(x, λ, ρ)
x∈Rn
x0 ∈ C
x k +1 = x k − ρk ∇(x k )
avec ρk tel que f (x k +1 ) = Minρ≥0 f (x k − ρ∇f (x k )).
Pc : R → C
x → Pc (x) ∈ C.
Convergence
Théorème
Soit f ∈ C 1 (Rn ), de dérivée Lipschitzienne et elliptique, c’est à
dire, qu’il existe α > 0 telle que ∀(x, y ) ∈ Rn × Rn
1 t
Min f (x) = x Ax − bt x
2
Cx = c
L :Rn × Rm → R
1 t
L(x, λ) = x Ax − bt x + λ(Ax − b)
2
par Karush-Kuhn-Tucker: (
∇x L(x, λ) = 0
Cx = c
Alors (
Ax − b + C t λ = 0
Cx = c
Alors la solution optimale (x ? , λ? ) doit vérifier que:
?
A Ct
x b
= ? =
C 0 λ c
Si la matrice
Ct
A
M=
C 0
est inversible, le système admet une solution unique et la solution nous donne la
solution optimale.
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire
avec J : Rn → R et h : Rn → Rm régulières.
Par KKT la solution optimale doit vérifier:
(
∇x L(x, λ) = 0
(13)
h(x) = 0
Soit h(x) = (h1 (x), h2 (x), ..., hm (x))t alors le Lagrangien est:
t
L(x k , λk ) = f (x k ) + λk h(x)
Si x ? est une solution optimale il existe λ? tel que ∇x L(x ? , λ? ) = 0, donc x ? minimise
L(x, λ? ).
t 1 kt 2
L(x k + d k , λk ) = L(x k , λk ) + d k ∇x L(x k , λk ) + d ∇x,x L(x k , λk )d k + o(kd k k)
2
∂h1 (x k ) ∂h1 (x k )
. . .
∂x1 k ∂xn
∂h2 (x ) ∂h2 (x k )
∂x . . . ∂xn
k 1
Dh(x ) =
. . . . .
. . . . .
∂hm (x k ) ∂hm (x k )
∂x1
. . . ∂xn
Algorithme
Soit x 0 ∈ Rn et λ0 ∈ Rm .
Pour k = 0, ... convergence
a) Résoudre:
( t t
minx∈Rn L(x k , λk ) + d k ∇x L(x k , λk ) + 12 d k ∇2x,x L(x k , λk )d k
Dh(x k )d k + h(x k ) = 0
kt 1 kt 2
k k k k k
minx∈Rn d ∇x L(x , λ ) + 2 d ∇x,x L(x , λ )d
k k k
Dh(x )d + h(x ) = 0.
Dg(x k )d k + g(x k ) ≤ 0