Vous êtes sur la page 1sur 193

Introduction

Programmation linéaire
Programmation non-linéaire

Cours d’Optimisation Numérique


Optimisation en Rn

Jean Rodolphe Roche1

1 POLYTECH-Nancy

Université Lorraine

Cours Deuxième Semestre 2018-19

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Convex Optimization , Stephen Boys and Lieven Vandenberghe, Cambridge


Linear and Nonlinear Programming, David G. Luenberger,Addison-Wesley,1989
Méthodes numériques d’optimisation, C. Lemarechal, INRIA, Collection
Didactique
Programmation Mathématique, Théorie et algorithmes, M. Minoux, Dunod
Optimisation et contrôle des systèmes linéaires. M. Bergounioux, Dunod
La pratique de l’optimisation dans l’entreprise, R. Benayoun, Presses
Universitaires de France
Precis de recherche operationnelle: méthodes et exercices d’application, R.
Faure et B. Lemaire, Dunod
L’optimisation, J-B. Hiriart-Urruty, Col. Que sais-je, PUF
Convex analysis and minimisation algorithmes : advanced theory and Bunble
methods, J-B. Hiriart-Urruty et C. Lemarechal , Springer
Practical methods of optimisation, R. Fletcher, John Wiley
Applied Nonlinear Programming, M. Himmelblau, Mc Graw-Hill
Numerical methods for Unconstrained Optimisation and Nonlinear Equations,
J.E. Dennis, JR et R.B. Schnabel, Prentice Hall

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

(P) inf J(x). (1)


x∈C

J : X → R est appelée critère, coût, fonction objectif ou


fonction économique.
X est l’ensemble de paramètres, en optimisation
numérique souvent X = Rn .
C ⊂ X est l’ensemble déterminé par les contraintes ou
encore l’ensemble de solutions. Si x ∈ C on dit qu’il est
réalisable ou admissible ou encore acceptable, ou encore
la solution du problème.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

En général C est déterminée par des contraintes de la forme:




 hj (x) = 0, j = 1, ..., m, contraintes d’égalité,

hj (x) ≤ 0, j = m + 1, ..., m + p, contraintes d’inégalité,



hj : X → R,

a ≤ x ≤ b, contraintes de boîte,





x ≥ 0, contraintes de signe.

(2)

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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)

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

D’un point de vu théorique on cherche:


J ? la borne inférieure de J dans C et si cela existe x ? ∈ C telque J ? = J(x ? ), x ? est la
solution optimale.
Dans la pratique on cherche x ? ∈ C telque J(x ? ) ≤ J(x) si x ∈ U (x ? ) ∩ C, avec U (x ? )
un voisinage de x ? .

Figure: Minimum.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

On appelle x ? ∈ C une solution optimale:


Globale si J(x ? ) ≤ J(x), ∀x ∈ C.
Locale si J(x ? ) ≤ J(x), ∀x ∈ U(x ? ) ∩ C

Figure: Minimum global et minimum local.


Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Exemples:

2) Résolution de systèmes linéaires symétriques définis positifs.


Soit le système A x = b; A ∈ Mn×n symétrique définie positive; b ∈ Rn .
La solution du système linéaire est aussi la solution du problème d’optimisation
suivant:
inf J(x) (4)
x∈Rn

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:

∀v̄ ∈ Rn v̄ 6= 0̄ on a v̄ t Av̄ > 0

et de façon équivalente elle admet des valeurs propre uniquement réels positif.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Exemples:

3) Méthode des moindres carrés.

B(x) : Rn → Rm

Pour résoudre l’équation B(x) = 0̄ on peut chercher une


solution du problème de minimisation:

inf kB(x)k2
x∈Rn

Dans le cas de la regression linéaire:


m
X
B(c0 , c1 ) = (yi − (c0 + c1 xi ))2 avec yi des mesures
i=1

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Exemples:

4) Contrôle optimal d’un système linéaire .

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Q, D ∈ Mn×n symétrique semi-définie positive R ∈ Mn×n


- y (t) l’état à l’instant t est solution de l’équation
différentielle;

d y
= Ay + Bv + f 0 ≤ t ≤ T
dt
y (0) = y 0

T > 0; y 0 ∈ Rn , f ∈ L1 (]0, T [, Rn )

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

peut être calculée en résolvent le problème d’optimisation suivant:

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)

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Notions indispensables, dérivée


Soit E un espace vectoriel normé (dans notre cas en général Rn ). Soit J : E → R une
fonction dérivable(ou différentiable). La dérivée de J en x ∈ E, noté J 0 (x) ou ∇J(x),
est définie par:
Gâteaux dérivable(ou différentiable)

1
∀v ∈ E, lim (J(x + h v ) − J(x) − (J 0 (x), h v )) = 0
h→0 h

Fréchet dérivable(ou différentiable)

1
∀v ∈ E, lim (J(x + v ) − J(x) − (J 0 (x), v )) = 0
kv k→0 kv k

Stricte dérivabilite(ou différentiabilite)

1
∀v ∈ E, lim (J(y + v ) − J(y ) − (J 0 (x), v )) = 0
kv k→0,y →x kv k

c) ⇒ b) ⇒ a)

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Notions indispensables, Ensemble convexe


Définition.
Un ensemble C est dit convexe si ∀x et y ∈ C le segment [x, y ] ⊂ C, c’est à dire que
∀t ∈ [0, 1] on a t x + (1 − t) y ∈ C.

 
 

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Notions indispensables, fonction convexe

Définition.
Une fonction J définie sur un ensemble convexe C est dite convexe si:
∀(x, y ) ∈ C, ∀ λ ∈ [0, 1] ,

J(λ x + (1 − λ) y ) ≤ λ J(x) + (1 − λ) J(y )

Strictement convexe si:


∀(x, y ) ∈ C × C x 6= y , ∀ λ ∈]0, 1[

J(λ x + (1 − λ) y ) < λ J(x) + (1 − λ) J(y )

On appelle epigraphe d’une fonction J l’ensemble:

epi(J) = {(x, α) ∈ E × R telque α ≥ J(x)}

Une fonction J est convexe sii l’ensemble epi(J) est convexe.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Notions indispensables, fonction convexe


Proposition:
Soit J une fonction différentiable dans un convexe C ⊂ Rn ,
alors J est convexe si et seulement si : ∀(x, y ) ∈ C × C
∇J(x)(y − x) ≤ J(y ) − J(x)

 
 
 

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Classification.

Optimisation différentiable, J et hj , j = 1, ..., m + p


différentiables.
Optimisation non différentiable.
Ensemble des solutions dans un espace de dimension
infinie.
Ensemble des solutions dans un espace de dimension
finie, par exemple Rn .

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

La demande des deux supermarchés est la suivante:

Yaourt A B C
super 1 4500 3500 4600
super 2 5300 3800 4400

Une demande non satisfaite n’implique pas de pénalisation spéciale.


Les prix de vente des yaourts sont les suivants:

Yaourt A B C
super 1 1,05 1,20 1,15
super 2 1,10 1,25 1,20

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Problème:Déterminer comment l’ensemble des supermachés


peuvent organiser leurs commandes de façon à maximiser le
profit de l’enseigne.
Inconnues du problème: Xi,j,k le nombre de yaourts produit
de type i, par l’unite de production j et vendu au supermarche
k.

X = {Xi,j,k } avec i = 1, 2, 3; j = 1, 2; k = 1, 2

Fonction coût ou fonction objectif:


Z (X ) = Revenus produit par la vente des yaourts moins coût
de production et transport.

max Z (X ) = − min(−Z (X ))

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Z(X) =1.05(X111 + X121 ) + 1.10(X112 + X122 ) + 1.20(X211 + X221 )


1.25(X212 + X222 ) + 1.15(X311 + X321 ) + 1.20(X312 + X322 )
−((0.55 + 0.01)X111 + (0.55 + 0.02)X112 + (0.6 + 0.02)X121
+(0.6 + 0.03)X122 + (0.45 + 0.01)X211 + (0.45 + 0.02)X212
+(0.46 + 0.02)X221 + (0.46 + 0.03)X222 + (0.5 + 0.001)X311
+(0.5 + 0.02)X312 + (0.53 + 0.02)X321 + (0.53 + 0.03)X322 )

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Contraintes

X111 + X121 ≤ 4500 X111 + X112 ≤ 5000


X112 + X122 ≤ 5300 X211 + X212 ≤ 3500
X211 + X222 ≤ 3800 X121 + X122 ≤ 4000
X311 + X321 ≤ 4600 X221 + X222 ≤ 2500
X312 + X322 ≤ 4400 X321 + X322 ≤ 3500

Xi,j,k ≥ 0 i = 1, 2, 3; j = 1, 2; k = 1, 2

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

La fonction J(X̄ ) est linéaire et les fonctions gi (X¯) sont des


fonctions affines des variables Xj :
n
X n
X
J(X̄ ) = cj Xj ; gi (X̄ ) = aij Xj − bi
j=1 j=1

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Remarques :
1 X̄ ≥ 0 n’est pas une restriction car :

Si X̄ < 0 ⇒ X̄ = X̄ − − X̄ + avec X̄ + > 0 et X̄ − > 0

2 ¯ ), alors ceci est équivalent à


Si on veut maximiser J (X
minimiser −J(X¯).
3 Si gi (X ) = 0 on dit que la contrainte est saturée en X .

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

ou encore minimiser : g(X¯) = −4 · X1 − 6 · X2 − 20 · X3 − 17 · X4

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Forme standard d’un problème linéaire

On dit qu’un programme linéaire est mis sous forme standard si


toutes les contraintes (en dehors des contraintes de
non-négativité) sont des égalités


 min 5X1 − 3X2

X1 − X2 ≥ 2



(P) 2X1 + 3X2 ≤ 4

−X1 + 6X2 = 10





X1 ≥ 0 ; X2 ≥ 0

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

On introduit des variables d’écart X3 ≥ 0 et X4 ≥ 0




 min 5X1 − 3X2 + 0X3 + 0X4

X1 − X2 − X3 = 2



0
(P ) 2X1 + 3X2 + X4 = 4

−X1 + 6X2 = 10





X1 ≥ 0; X2 ≥ 0; X3 ≥ 0; X4 ≥ 0

(P’) est la forme standard de (P)

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Forme standard
  

 n
  P
min Z = C.X̄ Ci Xi 

 
 
(P) j=1

AX̄ = b





X̄ ≥ 0

où n est le nombre de variables.


A est une matrice réelle m × n, (matrice de contraintes), m
le nombre de contraintes.
C = (c1 , ..., cn ), vecteur ligne de coûts.
b = (b1 , ..., bn )T , vecteur colonne des seconds membres.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

On peut toujours supposer que rang(A) = m. Sinon deux


possibilités :
1 deux lignes linéairement dépendantes ⇒ on peut en
éliminer une
2 incompatibilité ⇒ l’ensemble de solutions de A · X̄ = b est
vide.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Solutions d’un programme linéaire

X = X̄ ∈ Rn /AX̄ = b; X̄ ≥ 0 est l’ensemble de solutions du problème (P).



Un ensemble convexe de la forme X est appelé un polytope convexe.
L’ensemble X n’est pas nécessairement borné, on peut avoir trois possibilites:
• X est vide, le problème n’a pas de solution.
• X n’est pas vide mais la fonction objectif z = J(x̄) n’est pas minorée en X ,
min J(x̄) = −∞.

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

Un polytope convexe borné est un polyèdre convexe .

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Définition : On appelle point extrême d’un polytope ou d’un


polyèdre convexe X , tout point X̄ ∈ X qui n’est pas une
combinaison convexe d’autres points Ȳ ∈ X .

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 .

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Exemple de résolution graphique




max x + 2y

2x + y ≤ 8
(P)
x + y ≤ 5


y ≤ 4, x ≥ 0, y ≥ 0

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Notion de base et de solution de base

Définition : On appelle base toute sous-matrice B carrée


régulière (m × m) extraite de A
Il en existe une, car rang(A) = m
Soit B une base. Par permutation des colonnes de A on a :

A = [B, N], X̄ = [XB , XN ],

Variables de base Variables hors base


XB XN
CB CN Z
B N b

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Exemple : 


min 5X1 − 3X2 + 0X3 + 0X4

X − X − X = 2
1 2 3


2X1 + 3X2 + X4 = 4

−X + 6X = 10
1 2

Hors base De base


X1 X2 X3 X4
5 -3 0 0 Z
1 -1 -1 0 2
2 3 0 1 4
-1 6 0 0 10

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Toutes les solutions d’un problème (P) vérifient :

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Une solution de base est dite réalisable si XB ≥ 0,


autrement dit si :
B −1 b > 0
Une base correspondant à une solution de base réalisable
est appelée base réalisable.
Une base réalisable est appelée base dégénérée si le
vecteur XB = B −1 b a des composantes nulles.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Caractérisation des points extrêmes

Théorème 1 L’ensemble des points extrêmes d’un polytope


X = {x ∈ Rn /A x = b, x ≥ 0 } correspond à l’ensemble des solutions de base
réalisables.
Théorème 2
L’optimun Z = J(x), fonction linéaire, sur le polyèdre convexe X ⊂ Rn , est atteint
en au moins un point extrême. S’il est atteint en plusieurs point extrêmes, il est
atteint en tout point, combinaison convexe de ces points extrêmes.

On déduit des théorèmes 1 et 2 que lorsque un programme linéaire admet un optimun


à distance finie, alors il existe une base réalisable B ∗ telle que la solution de base x ∗
correspondante soit optimale. Le problème est maintenant de donner un algorithme
permettant de trouver une base optimale B ∗ .

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Caractérisation des bases et des solutions optimales

Théorème : Soit le vecteur ligne: Π = (π1 , π2 , ..., πm ) par :

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

Le vecteur Π est appelé vecteur des multiplicateurs du simplexe.


Les composantes C̄j du vecteur C̄N sont appelées coûts réduits des variables hors
base.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Corollaire : Soit B une base réalisable quelconque, X 0 la


solution correspondante et C̄N = C − Π.N. S’il existe une
variable hors base Xs telle que C̄s < 0, alors :
a) Ou bien on peut augmenter indéfiniment la valeur de
XB = B −1 b sans sortir de l’ensemble des solutions
réalisables et dans ce cas l’optimum de Z est non borné (
−∞).
b) Ou bien on met en évidence une autre base B̂ et une autre
solution de base réalisable :

X̂ tel que Z (X̂ ) < Z (X 0 )

X̄ solution de base réalisable ⇒ X̄ point extrême.


X̄ point extrême ⇒ X̄ solution de base réalisable.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Algorithme primal du simplexe

a) B 0 base réalisable de départ ; itération k = 0


b) k ← k + 1
c) à l’itération k, soit B la base courante, x = [XB , XN ] la
solution de la base correspondante.
Calculer;
xB = b̄ = B −1 b (les valeurs des variables de base)
Π = CB B −1 (les multiplicateurs du simplexe)
c¯N = cN − ΠN (les cot̂s réduits)
d) Si c¯N > 0 ; STOP : l’optimum est atteint.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

S’il existe s tel que c¯s < 0


−1
e) Soit As la colonne s de A, calculer A¯s = B As
- Si āis ≤ 0; ∀i = 1, .., m stop => Optimum non borné ( −∞ )
- sinon calculer r tel que :

b¯r
 
b̄i
xˆs = = min
a¯rs i/a¯is >0 āis

- Soit xt la variable correspondante à la r ième ligne de la base, c’est à dire


telle que :
0
.
.
−1
B At = er = 1 ← r
0
.
0
Cette variable sortira de la base.
Alors la variable s prend la valeur xˆs > 0 (rentre dans la base)

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

La variable t s’annule ( xˆt = 0) (sort de la base)


La nouvelle solution courante x̂. correspond à la nouvelle base
réalisable :
B̂ = B + {As } − {At }
Calculer l’inverse de la nouvelle base Bˆ−1 et retourner en (b).
Fin des iterations.

La procédure s’interprète comme un cheminement de point


extrême dans points extrêmes adjacents le long de la frontière
de X, l’ensemble de solutions du problème.
La procédure s’interprète comme la détermination d’une suite
de bases adjacentes B 0 , B 1 , ..., B q , .. et des solutions de base
X 0 , X 1 , ..., X q , .. telles que :

Z (X 0 ) > Z (X 1 ) > ... > Z (X q ) > ...

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Forme canonique et tableau du symplexe

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

Dans la recherche de la base de départ on s’arrange en


général pour avoir une matrice unité.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

On ajoute deux variables artificielles y1 , y2 de coût M  0.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire




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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

" # " #
1 1 −1 1 0

A= = N B

−1 3 0 0 −1

La base de départ est


" #
1 0
B=
0 −1

Colonnes 4 et 5 de la matrice A, donc soit X1 = X2 = X3 = 0 et


donc la solution de base est :

xB = b = B −1 b est y1 = 3; y2 = 4

La base de départ est réalisable car y1 > 0 et y2 > 0.


Par ailleurs car les M sont très grands => à l’optimum y1 = 0 et
y2 = 0
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire

Exemple 2 : contraintes inégalités (≤)





 min Z2 = X1 − 2X2

X + X ≤ 3
1 2
(P)


 −X 1 + 3X2 ≤ −4

X ≥ 0; X ≥ 0
1 2

On rajoute deux variables d’écart et une variable artificielle :

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire




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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

" #
0 1
base B=
−1 0

" #" # " #


−1 0 −1 3 4
solution de base B b= =
1 0 −4 3

XB = (0, 0, 0, 3, 4, 0)
X1 X2 X3 y2 S1 S2

Exemple de base réalisable XB ≥ 0 !

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Exemple d’application de la méthode du simplexe


primal

Problème :
Maximiser X1 + 2X2

sous les contraintes :

−3X1 + 2X2 ≤ 2
−X1 + 2X2 ≤ 4
X1 + X2 ≤ 5
X1 ≥ 0, X2 ≥ 0

Multiplication par -1 pour minimiser et introduire les variables


d’écart X3 , X4 , X5 ≥ 0, ce qui donne le problème :

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Minimiser Z = −X1 − 2X2

avec les contraintes :


−3X1 + 2X2 + X3 = 2
−X1 + 2X2 + X4 = 4
X1 + X2 + X5 = 5
X1 ≥ 0, X2 ≥ 0, X3 ≥ 0, X4 ≥ 0, X5 ≥ 0

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Soit Xs la variable entrante dans la nouvelle base, c’est à dire la


variable hors base de coût réduit le plus négatif, c’est à dire X2 .
Donc pour s=2
   
b̄i 2 4 5
θ = Mini/āis >0 = Min , , =1
a¯is 2 2 1

⇒r =1

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Soit t tel que :



     
1 1 0 0 1 1
B −1 At =  0  =  0 1 0   0  =  0 
0 0 0 1 0 0

⇒ t = 3 Donc la variable sortante est X3 avec la valeur X3 = 0,


et X2 prenant la valeur X2 = θ = 1.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Il faut calculer la nouvelle forme canonique par rapport à la


base des variables (X2 , X4 , X5 ).
Pour cela on fait les opérations élémentaires suivantes sur les
lignes L1 , L2 , L3 et L4 :
01
(L2 ) = L2
2
0
(L1 ) = (L1 ) + (L2 )
0
(L3 ) = (L3 ) − (L2 )
0 1
(L4 ) = (L4 ) − (L2 )
2

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

La variable X1 correspond à un coût réduit strictement négatif


(-4) ; ⇒ s = 1
X1 va rentrer en base et prendre la valeur θ̂
( )  
2 4 8
θ̂ = Min , = Min 1, =1
2 52 5

⇒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 va obtenir une nouvelle base des variables (X1 , X2 , X5 ) en


0
effectuant des opérations élémentaires sur les lignes (L1 ) ,
0 0 0
(L2 ) , (L3 ) et (L4 ) .
00 0
(L3 ) = 12 (L3 )
00 0 0
(L1 ) = (L1 ) + 2 (L3 )
00 0 0
(L2 ) = (L2 ) + 34 (L3 )
00 0 0
(L4 ) = (L4 ) − 54 (L3 )

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

base base hors base hors base base


Variables de bases X1 , X2 , X5 , et la valeur de la solution de
base est :
5 3
X1 = 1, X2 = , X5 = ; X3 = X4 = 0
2 2
Le coût Z = c.X = −1X1 − 2X2 = −6
La solution n’est pas optimale car la variable X3 a un coût
réduit négatif.
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire

On va rentrer la variable X3 dans la base car s = 3


Mais a33 > 0 ⇒ r = 3 et
3
2
θ̂ = 3
=2
4

La valeur de X3 sera alors X3 = 2. Par ailleurs t = 5 car:


      
0 1 0 0 0 0
B −1 A5 =  0  =  0 1 0   0  =  0 
1 0 0 1 1 1
Donc la variable X5 va s’annuler et quitter la base.
La nouvelle base est (X1 , X2 , X3 ).

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Programmation Linéaire, Dualité

Dual d’un programme linéaire sous forme standard



min z = c̄.x̄

(P) A.x¯ = b̄

x̄ > 0

A chaque contrainte i; i = 1, ..., m, nous associons une variable


ui positive, négative ou nulle appelée variable duale et nous
considérons le programme linéaire :
(
max ω = ū.b̄
(D)
ū.A 6 c

ū est un m vecteur ligne : (u1 , ..., um )

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

La matrice des contraintes du problème (D) est la transposée


de la matrice des contraintes du problème (P).
Le vecteur des coûts c̄ est le vecteur des seconds membres du
problème (D) et vice-versa.
- (P) est le problème primal.
- (D) est le problème dual.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Dans le cas général :

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Programmation linéaire, Théorème de dualité

Lemme 1 :
Si x̄ et ū sont respectivement deux solutions quelconques du
primal et du dual, alors :

z̄ = c̄.x̄ > ω̄ = ū.b̄

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.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Programmation linéaire, Théorème de dualité

Lemme 2 (Théorème de dualité) :


Etant donné un programme linéaire (P) et le programme dual
(D) associé :
a) Si (P) et (D) ont des solutions, alors chacun d’eux a une
solution optimale et :

z ∗ = min(P) = max(D) = ω ∗

b) Si l’un d’eux a un optimum non borné, l’autre n’a pas de


solution.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Programmation linéaire, Théorème de dualité

Théorème (Complémentaire) :
Deux solutions ( x̄, ū) du primal et du dual respectivement sont
optimales si et seulement si:

(ūAj − cj ).xj = 0 ∀j = 1, ..., n

(Aj = jième colonne de A)


Si un programme linéaire a des contraintes d’inégalités alors, à
l’optimum:
- Une variable duale correspondant à une contrainte non
saturée est nécessairement nulle.
- A une variable duale strictement positive correspond
nécessairement une contrainte saturée.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Programmation linéaire, Sensibilité , Variables duales


et coûts marginaux

Soit le problème:

min c̄.x̄

P(b̄) Ax̄ = b̄

x̄ > 0

On étudie les variations de z(b) = c.x̄ = ū.b̄ la solution


optimale de P( b̄) en fonction de b.
Pour b̄ fixée soit B une base optimale de P(b̄), et ū = cB .B −1
les variables duales optimales.
On note cB .B −1 les multiplicateurs du simplexe.
On a que c̄j − ū.Aj ≥ 0 pour les j hors-base.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Programmation linéaire, Sensibilité , Variables duales


et coûts marginaux

Si on perturbe b̄ et b̄0 on obtient :



min c̄.x̄

0
P(b̄ ) Ax̄ = b̄ avec b̄0 = b̄ + ∆b

x̄ > 0

Mais ū = cB .B −1 ne dépend pas de b̄ et reste toujours une


solution duale.
Si le nouveau vecteur b̄0 vérifie B −1 .b̄0 ≥ 0, la base B est à la
fois primale et duale réalisable, et par conséquence optimale.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Programmation linéaire, Sensibilité , Variables duales


et coûts marginaux

Par ailleurs, B reste optimale ∀ ∆b tel que :

B −1 .(b̄ + ∆b̄) ≥ 0

Donc : si B −1 b̄ > 0, ∃ ε > 0 tel que b̄ < ε


Z (b̄) = ū.b̄0 = ū.b̄ + u.∆b

∂Z (b̄)
=⇒ = ui est le coût marginal.
∂bi

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Programmation linéaire, Algorithme primal-dual


min z = c̄.x̄
 (
max ω = ū.b̄
(P) A.x¯ = b̄ (D)
 ū.A 6 c
x̄ > 0

Soit ū une solution du dual, c’est à dire un vecteur ligne


ū = (u1 , ..., um ) vérifiant : c̃ = c − ū.A > 0
Si x̄ est une solution de (P) => A.x̄ = b̄ alors x̄ est solution
optimale de (P) <=> x̄ est solution optimale du problème
suivant :

min z̃ = c̃.x̄ = c̄ x̄ − ū.A.x̄ = (c − u.A)x̄

(P̃) A.x ¯ = b̄

x̄ ≥ 0

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Programmation linéaire, Algorithme primal-dual

Ce sera le cas, en particulier si:


(Condition de complémentarité)
si xj > 0 ⇒ cj − ū.Aj = 0
si cj − ū.Aj > 0 ⇒ xj = 0
c’est à dire en n’autorisant une composante xj de x à devenir
positive que si c̃j = 0, on respecte les conditions de
complémentaire.
Cela donne l’algorithme primal-dual.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Programmation linéaire, Algorithme primal-dual


1) Etant donnée une solution duale quelconque ū, on essaye
de déterminer une solution x̄ de (P) telle que :
 
j/xj > 0 ⊂ J(ū) = j/c̄j = 0
La recherche d’une telle solution se fera en résolvant le
programme linéaire suivant:
min ρ = m
 P


 i=1 yi

A · x + y = b



PR(u) x >0

xj = 0 ∀∈/ J(u)





y ≥0

à partir de la solution de base réalisable :


yi = bi
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire

Programmation linéaire, Algorithme primal-dual

Supposons que bi > 0.


2) Deux cas :
a) Si à l’optimum de PR(u), on a ρ = 0 , alors nécessairement
ȳ = 0, et la solution x est une solution réalisable de (P)
telle que :
sup(x̄) < J(ū)
Comme les conditions de complémentarité sont satisfaites
avec u, (x, u) est un couple de solutions optimales
respectivement pour le primal et le dual.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Programmation linéaire, Algorithme primal-dual

Si à l’optimum de PR(u), on a encore ρ > 0, cela veut dire qu’il


n’existe pas de solution de (P) telle que :

xj (cj − u · Aj ) = 0, ∀j

On va changer des variables duales pour obtenir un nouveau


programme restreint PR(u 0 ).

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Programmation linéaire, Algorithme primal-dual


Choix de u 0 :
e ∗ la solution du problème dual de PR(u) :
Soit ω


 max ωe·b

avec les contraintes :



e · Aj ≤ 0
ω j ∈ J(u)

e≤J
ω





e de signe quelconque
ω

⇒ 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

Problèmes non linéaires sans contraintes

Dans Rn muni de la norme euclidienne, on cherche a calculer,


quand elle existe, la solution du problème suivant:
Calculer x̄ ∈ Rn tel que

J(x̄) = inf n J(x) (6)


x∈R

Exemple:
inf 3 x2 + 2 y2 (7)
(x,y )∈R2

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

J(x) = inf J(x)


x∈C

Problème : Unicité ?

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

En général la convexité stricte de la fonction coût nous fournit


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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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)

Si J est convexe sur le convexe C, alors la condition (8) est


suffisante pour que x soit un point de minimun global du
problème d’optimisation.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Exemple :

Soit J(x) = 12 (Ax, x) + (b, x) + c avec A symétrique définie


positive,
J est strictement convexe.
J(x) ≥ 12 λ1 ||x||2 − ||b||||x|| + c, λ1 > 0, la plus petite
valeur propre de A.
Donc il existe une valeur x ∈ Rn unique minimisant J.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Conditions necéssaires d’optimalite du 1er et 2nd ordre

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.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Exemple, conditions nécessaires

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

Then x T = (1, 2) est un minimun.

min J(x, y ) = x 2 + y 3 − 2xy − y


(x,y )∈R2

2x − 2y 0
∇J(x, y ) = ( )=( )
3y 2 − 2x − 1 0

a comme solution: (x, y ) = (− 31 , − 13 ) ou (x, y ) = (1, 1). Par ailleurs:

2 −2
∇2 J(x, y ) = ( )
−2 6y

Then x T = (1, 1) est un minimun car ∇2 J(1, 1)  0 et (− 13 , − 13 ) n’est pas un


minimun car ∇2 J(− 31 , − 13 ) n’est pas définie.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Figure: Représentation graphique du gradient.

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

Condition nécessaire et suffisante


Ici on va introduire la convexité.
Théorème :
Soit J(x) deux fois dérivable en x.
Si ∇J(x) = 0.
et si ∇2 J(x) est définie positive; (∇2 J(x)d, d) ≥ α||d||2
alors x est un minimum local strict de J(x).
Théorème :
Si J(x) est une fonction convexe et continuement différentiable,
une condition nécessaire et suffisante pour que x soit un
optimum global de J(x) sur Rn est que

∇J(x) = 0

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Résolution numérique de problèmes non linéaires


sans contraintes
Principe général de résolution
Enjeux de la résolution, calculer x tel que J(x) réalise le

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 sera obtenu en introduisant une perturbation dans x k dans


une direction d k à déterminer :

x k +1 = x k − ρk d k

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Problèmes

Bien choisir la direction d k , bien choisir le pas ρ, tel que


x k → x dans Rn .
Vitesse de convergence.
Stabilité par rapport aux erreurs de calcul.
Complexité.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Superlinéaire d’ordre q si:


||x k +1 − x ∗ ||
lim =0
k −→∞ ||x k − x ∗ ||q

Si q = 2 on parle de convergence quadratique (Cas de


Newton).
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire

Méthodes du premier ordre


Méthode de Gauss-Seidel
On résout en faisant évoluer x k → x k +1 une coordonnée à la
fois, en cherchant à minimiser la fonction :

ϕi (t) = J(x ki + tei ), avec i = 1, ..., n (9)


x ki
= (x1k +1 , ...xi−1
k +1 k
, xi , ..., xik ) (10)

Si la fonction ϕ(t) n’est pas différentiable en t = 0 (c’est à dire


si J n’est pas différentiable), alors on peut utiliser une méthode
de minimisation unidimensionnelle non différentiable et on
obtient ainsi une méthode de minimisation pour des problèmes
non différentiables, un peu comme les méthodes de
Resenbrock, Davies, Surann et Campey.
Voire Applied Non Linear Programming, David Himmelblau, Mc
Graws-Hill (1972)
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire

Méthode du gradient

x k +1 = x k − ρ ∇J(x k ) avec ρ > 0


C’est à dire que l’on considère comme direction d’évolution du
point x k la direction de la plus profonde descente

∇J(x k )
d = −
∇J(x k )

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Algorithme du Gradient

a) Soit k = 0; x 0 ∈ R;  > 0 ou encore τa , τ1 > 0


b) Pour k = 0,... faire :
Calculer J(x k ) et ∇J(x k )
Test d’arrêt: si une des inégalités suivantes est verifiée stop

∇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

x k +1 = x k − ρk ∇J(x k ) et aller à (b)

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Règle d’Armijo ou condition d’Armijo


Soient d une direction de descente, ω1 ∈]0, 1[ et ν ∈]0, 1[ , on
cherche η ∈ {ν, ν 2 , ν 4 ....} tel que:
J(xk + η d) ≤ J(xk ) + ω1 η(∇J(xk )t d)

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Si J est continûment différentiable avec la propriété :

lim J(x) = +∞
||x||→∞

alors ∀ x 0 point de départ, la méthode du gradient converge


vers un point stationnaire de J.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Application de la méthode du Gradient


Soit x 0 = (0, 0) et  = 0.1
−2
∇f (x 0 ) = ()
8
p √
alors k∇f (x 0 )k = (−2)2 + (4)2 = 20 > 
0 −2 2ρ
Soit x 1 = x 0 − ρ∇f (x 0 ) = ( ) − ρ( )=( )
0 8 −8ρ
avec ρ le minimun de la fonction φ(ρ) = f (x 0 − ρ∇f (x 0 )) pour
ρ ≥ 0.

φ(ρ) = f (ρ, −8ρ)


1
= (2 ρ)2 + (−8ρ)2 − 2 (2 ρ) + 8(−8ρ) + 18
2
= 66ρ2 − 68ρ + 18
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire

alors φ0 (ρ) = 132ρ − 68 et donc ρ = 0, 52.


Alors
1
x1 = ( )
−4
et
−1
∇f (x 1 ) = ( )
0
p √
k∇f (x 1 )k = (−1)2 + (0)2 = 1=1>

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

1 −1 1 + 1ρ
Soit x 2 = ( ) − ρ( )=( ) donc
−4 0 −4

φ(ρ) = f (1 + 1ρ, −4)


1
= (1 + 1ρ)2 + (−4)2 − 2(1 + 1ρ) + 8(−4) + 18
2
1 1
= ρ2 − ρ −
2 2

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

alors φ0 (ρ) = ρ − 1 et donc ρ = 1.


alors
2
x2 = ( )
−4
et
0
∇f (x 2 ) = ( )
0
p √
k∇f (x 2 )k = (0)2 + (0)2 = 0 = 0 <  then STOP

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Méthode du gradient conjugué

Soit A une matrice symétrique n × n, définie positive

J : Rn → R

1 t
x → J (x) = x A · x − bt · x
2

J 0 (x) = A · x − b

J 00 (x) = A ⇒ J est strictement convexe


⇒ ∃! minimum x ∗ tel que Ax ∗ = b

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Deux vecteurs v1 et v2 ∈ Rn sont conjugués par rapport à A si

v1t · A · v2 = 0

Supposons que d1 , ..., dk soient k vecteurs deux à deux


conjugués.
Si dans la méthode du gradient on remplace la direction de
descente −∇J (x k ) par dk , alors x k +1 est défini par :

J (x k +1 ) = min+ J (x k + ρdk )
ρ∈R

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

telle que dkt +1 Adk = 0

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

dkt +1 Adk = (−∇J (x k +1 ) + βdk )t Adk


= −∇J (x k +1 )Adk + βdkt Adk
=0
∇J (x k +1 )t Adk
⇒β=−
dkt Adk

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Algorithme du gradient conjugué pour des formes


quadratiques
Etape 0 : x 0 ∈ Rn et tol > 0 ; k = 1 ; d0 = −∇J (x 0 )
Etape k : TEST D’ARRET. Si ∇J (x k ) 6 tol STOP
Sinon
Calculer :
∇J (x k )t dk
ρk = −
dkt Adk

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

Algorithme du gradient conjugué, cas général.


Etape 0 : x 0 ∈ Rn et tol > 0 ; k = 1 ; d0 = −∇J (x 0 )

Etape k : TEST D’ARRET. Si ∇J (x k ) 6 tol STOP
Sinon
Calculer ρk minimisant :
 
ϕ (ρ) = J x k + ρdk ρk /ϕ ρk = min J x k + ρdk
  
ρ≥∞

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

Forme de Polak Riviere :


∇J t (x k +1 ) ∇J (x k +1 ) − ∇J (x k )
 
k
β =
∇J (x k ) 2

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 .

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Soit la suite x k k >0 tel qu’à chaque itération, x k +1 minimise




localement le fonctionnel quadratique suivant :

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 − (∇2 J(x k ))−1 ∇J(x k )


Alors on obtient l’algorithme suivant:

x k +1 = x k + δx

avec
∇2 J(x k )δx = −∇J(x k )

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

On introduit donc le parametre ρk

x k +1 = x k − ρk (∇2 J(x k ))−1 ∇J(x k )

avec ρk tel que

J(x k +1 ) = minρ≥0 J(x k − ρ(∇2 J(x k ))−1 ∇J(x k ))

−(∇2 J(x k ))−1 ∇J(x k ) sera une direction de descente si


(∇2 J(x k ))−1 est définie positive, sinon on fera
∇2 J(x k ) → ∇2 J(x k ) + µId avec µ suffisament grand pour que
la nouvelle matrice soit définie positive.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Algorithme de la méthode de Newton

Soit x 0 ∈ B(x, δ) avec δ à déterminer. Soient τr et τa donnés.


Tant que k∇J(x k )k > τr k∇J(x 0 )k + τa , faire
a) Calculer ∇2 J(x k )
b) Calculer une factorisation LDLt de ∇2 J(x k )
c) Résoudre LDLt δ = −∇J(x k ) ( si D > 0)
d) Calculer ρk tel que ϕ(ρk ) = minρ>0 J(x k + ρδ)
e) Faire x k +1 = x k + ρk δ
f) Evaluer ∇J(x k +1 )

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

⇒ x k +1 = x k − (∇2 J(x k ) + ∆k )−1 (∇J(x k ) + εk )


⇒k ek +1 k≤ K (k ek k2 + k ∆k kk ek k +εk )

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Calcul des dérivées

Si au lieu de calculer ∇J(x k )t ω, on calcule :


(
k
0 si ω = 0
Dh (J)(x , ω) = ω
J(x k +h kωk )−J(x k )
h si ω 6= 0

C’est à dire si on calcule une approximation par différences


finies Dh (J)(x k ; ω) ⇒ on obtient une approximation du gradient
en calculent Dh (J)(x k , ei ), i = 1, ..., n avec ei le ième vecteur
canonique.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Problème des Moindres Carrés Non Linéaire

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

Soit r (x)t = (r1 (x), r2 (x), ....rm (x)) et r : Rn → Rm , avec


ri (x), i = 1, ...m non linéaire.
Si r est linéaire alors on obtient un problème des moindres
carrés classique.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Exemple

Ce problème peut être considéré comme une méthode de


résolution de m équations non-linéaires:

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Exemple 2

Ajustement des données : supposons que ont possède un


ensemble de données :

(t1 , y1 ), (t2 , y2 ), ....., (tm , ym )

Ont veut déterminer une fonction φ(t, x) non-linéaire en x


minimisant :
Xm
J(x) = (ri (x))2
i=1

avec ri (x) = φ(ti , x) − yi ; i = 1, ..., m


En général m >> n.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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)

Alors ∇J(x) = g(x) = m t


P
i=1 ri (x) ∇ri (x) = F (x) r (x) et
l’Hessien :
m
X
2
∇ J(x) = G(x) = (∇ri (x)∇ri (x)t + ri (x)∇2 ri (x))
i=1
m
X
= F (x)t F (x) + ri (x)∇2 ri (x) = F (x)t F (x) + S(x)
i=1

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Méthode de Newton

Soit la suite {xk }k définie par :

xk +1 = xk − G(xk )−1 g(xk )

car l’approximation quadratique de J(x) en xk est

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Donc

xk +1 = xk − (F (xk )t F (xk ) + S(xk ))−1 F (xk )t r (xk )

problème le calcul de S(xk ) car cela implique le calcul :

∇2 ri (x); i = 1, ..., m

Idée : n egliger S(xk ) ou l’approcher en utilisant les dérivées


premières
Rq : si ri (xk ) → 0 ou si ri (x) est quasi-linéaire alors S(xk ) → 0.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Méthode de Gauss-Newton

On néglige S(xk ), équivalent à une linéarisation locale :

xk +1 = xk − (F (xk )t F (xk ))−1 F (xk )t r (xk )

ou encore :

F (xk )t F (xk )sk = −F (xk )t r (xk )


xk +1 = xk + sk

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Algorithme de Gauss-Newton

0 Etape 0 : x 0 ∈ Rn et tol > 0 ; k = 0



1 Etape k : TEST D’ARRET. Si ∇J(x k ) 6 tol STOP
2 Sinon
Résoudre :

F (xk )t F (xk )sk = −F (xk )t r (xk )

xk +1 = xk + sk
k = k + 1 aller à 1

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Exemple
Soient r1 (x) = x + 1; r2 (x) = λ x 2 + x − 1 et
2
X
J(x) = (ri (x))2
i=1

alors n = 1 et m = 2; la solution est x ∗ = 0.


 ∂r1   
∂x 1
F (x) = ∂r2 =
∂x
2λx + 1

alors F (x)t F (x) = 1 + (2λx + 1)2 et


 
t x +1
F (x) r (x) = (1, 2λx+1) = x+1+(2λx+1)(λx 2 +x−1)
λx 2 + x + 1

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

2λ2 xk3 + λ xk2 + 2λ xk


xk +1 =
1 + (2λxk + 1)2
Si λ = 0.1

k 1 2 3 4 5 6
xk 1 0,13 0,01 0,001 0,0001 0,00001

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Methode Quasi Newton

Les méthodes Quasi-Newton sont une généralisation de la


méthode de Newton :

x k +1 = x k − ρk [∇2 J(x k )]−1 ∇J(x k )

avec ∇2 J(x k ) définie positive. C’est à dire si :

dk = −[∇2 J(x k )]−1 ∇J(x k )

alors
x k +1 = x k + ρk dk

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Problème : Le calcul de ∇2 J(x k ) ∀ k et le caractère défini


positif.

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 )

avec ρk tel que :

J(x k +1 ) = min J(x k − ρHk J(x k ))


ρ>0

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

La matrice Hk est modifiée à chaque itération, de telle manière


que, pour une function quadratique de la forme :

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 .

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Pour caractèriser Hk , on impose la relation :

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

avec αk scalaire et ~u k un vecteur.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

En posant δk = x k +1 − x k et γk = ∇J(x k +1 ) − ∇J(x k ), on


obtient :
Hk +1· γk = δk
⇒ (Hk + ∆k ) · γk = δk

⇒ (Hk + αk u~k .u~kt ) · γk = δk

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Algorithme Davidon-Fletcher-Powell (DFP)

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

J(x k +1 ) = min J(x k − ρHk ∇J(x k ))


ρ>0

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Algorithme DFP

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 :
δk .δkt Hk · γk .γkt · Hk
Hk +1 = Hk + −
δkt .γk γkt · Hk · γk
5) k ← k + 1
6) Test d’arret vérifié ou retour en 1).

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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 :

γkt · Hk · γk δk .δkt δh · γkt · Hk + Hk · γk · δkt


Hk +1 = Hk +[1+ ]. t −
δkt .γk δk .γk δkt .γk

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

Si δkt .γk > 0, la positivité des matrices Hk est préservée.


Convergente
Méthode de la plus forte pente (gradient)
lim kX k +1 −X ∗ k
k →∞ kX k −X ∗ k < σ linéaire
Méthode du gradient conjugué
lim kX k +n −X ∗ k
k →∞ kX k −X ∗ k = 0 superlinéaire sur n étapes
Méthodes quasi newtoniennes
lim kX k +1 −X ∗ k
k →∞ kX k −X ∗ k = 0 superlinéaire
Méthode de Newton
lim kX k +1 −X ∗ k
k →∞ kX k −X ∗ k2 = 0 Convergence quadratique

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Problèmes avec contraintes, Méthodes Duales

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

J fonction coût en général non linéaire, hi fonctions


non-linéaires, les contraintes.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Lagrangien

Le Lagrangien est une fonction à valeurs dans R définie par:


(
L : Rn × Rm → R
Pm
(x, λ) → J(x) + j=1 λj hj (x)

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)

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Qualification des contraintes

Soit x ∗ argument minimum de la fonction J(x).


Soit I = {i : hi (x ? ) = 0}:.
On dira que les contraintes sont qualifiées si les vecteurs
∇hi (x ∗ ), i ∈ I sont linéairement indépendents.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Conditions necéssaires d’optimalite

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

exemple

min f (x1 , x2 ) = x12 + x22 − 4x1 + 4


Avec : g1 (x1 , x2 ) = −x1 + x2 − 2 ≤ 0
g2 (x1 , x2 ) = x12 − x2 + 1 ≤ 0
g3 (x1 , x2 ) = x1 ≥ 0
g4 (x1 , x2 ) = x2 ≥ 0

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 .

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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 )

Les conditions nécessaires d’optimalite de Karush, Kuhn et Tucker:


         
2x1 − 4 −1 2x1 −1 0
∇Lx (x1 , x2 , λ1 , λ2 , λ3 , λ4 ) = + λ1 + λ2 + λ3 + λ4
2x2 1 −1 0 −1
=0
λ1 (−x1 + x2 − 2) = 0
λ2 (x12 − x2 + 1) = 0
λ3 x1 = 0
λ4 x2 = 0
−x1 + x2 − 2 ≤ 0
x12 − x2 + 1 ≤ 0
x1 ≥ 0, x2 ≥ 0, λi ≥ 0, i = 1, 2, 3, 4.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

exemple

Figure: courbes de niveaux Figure: vu en 3D

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Point Col ou Point Selle


On dit qu’un point (x ? , λ? ) ∈ Rn × Rm est un point col ou un
point selle de la fonction Lagrangien si x ? est un argument
minimum de la fonction:
(
L : Rn −→ R
L(x, λ? ) = J(x) + m ?
P
j=1 λj hj (x)

et si le point λ? est argument maximum de la function:


( m
L : R+ −→ R
L(x ? , λ) = J(x ? ) + m ?
P
j=1 λj hj (x )

c’est à dire:
m
∀ λ ∈ R+ L(x ? , λ) ≤ L(x ? , λ? ) ≤ L(x, λ? ) ∀ x ∈ Rn

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

sup L(x ? , λ) = L(x ? , λ? ) = inf n L(x, λ? )


λ∈R+m x∈R

Auteur: Jean Rodolphe Roche Cours d’Optimisation  


Introduction
Programmation linéaire
Programmation non-linéaire

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

sup inf L(x, λ) = L(x ? , λ? ) = inf n sup L(x, λ)


λ∈R+m x∈Rn x∈R λ∈R+m

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

L‘intèrêt fondamental de la notion de point selle ou point col est


que: sous certaines conditions toute solution du problème (P)
est également premier argument d’un point selle (x ? , λ? ) du
Lagrangien associé au problème (P) considéré, et
réciproquement si (x ? , λ? ) est point selle de ce même
Lagrangien.
Le second argument λ? d’un tel point selle (x ? , λ? ) est un
multiplicateur de Lagrange généralisé est n’est autre que le
m
vecteur de R+ qui intervient dans les relations de Karush
Kuhn Tucker .

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Fonction duale

m
Soit pour λ ∈ R+ la fonction ω(λ) défini par:

ω(λ) = inf n L(x, λ)


x∈R

Si il existe xλ? tel que L(xλ? , λ) = infx∈Rn L(x, λ) alors

ω(λ) = minn L(x, λ) = L(xλ? , λ)


x∈R

et
∇x L(xλ? , λ) = 0

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

La recherche du point-col, lorsque il existe, peut se faire


précisément en résolvant le problème dual:
n
(D) maxλ∈R+m w(λ) = maxλ∈R+m {minx∈Rn L(x, λ)}

Propriété 1 (Théorème faible de la dualité)


m
∀λ ∈ R+ w(λ) ≤ w(λ? ) ≤ J(x ? )

x ? solution optimale du problème primal et λ? solution optimale


du problème dual.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Propriété 2 (Concavité de la fonction duale)


La fonction duale w(λ) est concave en λ.

Cette propriété est absolument générale et ne suppose rien sur


la convexite de J et hi , i = 1, ..., m.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Propriété 3 (Théorème de la dualité)


a) Si le problème primal (P) admet un point col
m
(x? , λλ ) ∈ Rn × R+ alors on a:

w(λ? ) = J(x ? )

avec

w(λ? ) = maxm w(λ) et J(x ? ) = min J(x)


λ∈R+ hi (x)≤0,i=1,...,m

Autrement dit, la valeur optimale du problème primal (P) est


égale à la valeur optimale du problème dual (D).

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

b) Réciproquement, s’il existe x ? solution optimale de (P) et


λ? tel que:
w(λ? ) = J(x ? )
alors (P) admet un point-col et (x ? , λ? ) est un tel point col.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Retour à l’exemple 1:
min J(x1 , x2 ) = x12 + x22
(x1 ,x2 )∈R2

avec h1 (x1 , x2 ) = 2x1 + x2 + 4 ≤ 0


J(x1 , x2 ) est une fonction convexe et h1 (x1 , x2 ) aussi , alors il
existe un point selle (x ∗ , λ∗ ).
w(λ∗ ) = J(x ∗ )

!
Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire

suite de l’exemple

→ L(x1 , x2 , λ) = x12 + x22 + λ(2x1 + x2 + 4) = x12 + x22 + 2x1 λ + x2 λ + 4λ


 
2 0
→ ∇2x L(x1 , x2 , λ) =
0 2
donc L est convexe comme fonction de x.

→ 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(λ) = − 45 λ2 + 4λ fonction concave.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

suite de l’exemple, problème dual

→ maxλ≥0 w(λ) ⇒ maxλ≥0 − 45 λ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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Retour à la programmation linéaire

n
X
minn c t .x = ci xi
x∈R
i=1
b − A.x ≤ 0
A ∈ Rm × Rn , c ∈ Rn et c ∈ Rm

→ L(x, λ) = c.x + λt (b − Ax) = (c − λt A)x + λt b

→ w(λ) = minx∈Rn {(c − λt A)x + λt b}


(
λt b si c − λt A = 0
→ w(λ) =
−∞ si c − λt A 6= 0

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Retour à la programmation linéaire, problème dual

n
(D) maxλ∈Rm w(λ)

Alors 

 max λt b
(D) c − λt A = 0

λ > 0, (λ ∈ Rm+)

D’autre part les conditions de Karush Kuhn Tucker qui sont


nécessaires et suffisantes montrent qu’à l’optimun:

λi (bi − A.x) = 0, ∀ i = 1, ...m

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

problème quadratique

Soit A ∈ Rn×n définie positive.


(
min 21 x t Ax − bt x
(P)
Cx ≤ d, C ∈ Rm×n ; d ∈ Rm

→ L(x, λ) = 1 t
2
x Ax − bt x + λt (Cx − d) = 1 t
2
x Ax − (bt − λt C)x − λt d

→ w(λ) = minx∈Rn L(x, λ) = L(xλ , λ) ⇒ ∇x L(x, λ) = 0

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

problème quadratique

Mais Axλ = b − C t λ alors


1
w(λ) = − (b − C t λ)t xλ − λt d
2
1
= − (b − C t λ)t A−1 (b − C t λ) − λt d
2
1 1
= − λt CA−1 C t λ + λt (CA−1 b − d)− bt A−1 b
2 | {z } | {z }| 2 {z }
B c h
1
= − λt Bλ + λt c + h
2

avec B définie positive si le rang(C) = m .


µt Bµ = µt CA−1 C t µ = λt A−1 λ ≥ 0 et = 0 sii λ = 0

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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+

P + (λ)i = Max{λi , 0}, i = 1, ...m

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Le vecteur xλ étant la solution du problème de minimisation


sans contraintes:

trouver xλ ∈ Rn : L(xλ , λ) = minn L(x, λ)


x∈R

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Algorithme d’Uzawa et de Arrow-Hurwicz

a) Soit λ0 ≥ 0 and k = 0
b) ∀k = 0, ...... faire: Calculer xk et w(λk ) xλ tq
w(λk ) = L(xk , λk )

L(xk , λk ) = minn L(x, λk ) (11)


x∈R
m
X
= minn J(x) + λki hi (x) (12)
x∈R
i=1

c) Calculer ∇λ w(λk ); c’est à dire: hi (xk ), i = 1, ..., m

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

d) Calculer λk +1 :

λk +1 = max{λk + ρk ∇λ w(λk ), 0}

où ρk est le pas de déplacement à l’étape k .


e) Si le test d’arrêt est vérifié: STOP Sinon faire k ← k + 1 et
retourner en (b)
Remarque:

λk1 + ρk h1 (xk )
 
 . 
k k
 
λ + ρk ∇λ w(λ ) = 
 . 

 . 
λkm + ρk hm (xk )

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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}

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Méthodes des Pénalites

(
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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Problème Pénalisé

(PP) minn Θ(x), avec Θ(x) = J(x) + R(x)


x∈R

avec R(x) la fonction de pénalisation:


m
X
n
∀x ∈ R R(x) = r (hi (x))
i=1

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

avec ∀x hi+ (x) = max{0; hi (x)}.


Alors le problème (P) est remplacé par le problème
d’optimisation sans contraintes suivant:

(Pρ ) minn Θ(x, ρ), avec Θ(x, ρ) = J(x) + ρR(x)


x∈R

où ρ > 0 est le coeff. de pénalité.


Auteur: Jean Rodolphe Roche Cours d’Optimisation
Introduction
Programmation linéaire
Programmation non-linéaire

Les méthodes de pénalités sont généralement mises en oeuvre


sous la forme itérative suivante:
On commence par choisir ρ1 > 0 pas trop élvée puis on résout:

min Θ(x, ρ1 ) ⇒ x(ρ1 )


x∈Rn

Si R(x(ρ1 )) est suffisament faible ⇒ x(ρ1 ) est une bonne


approximation de la solution optimale, sinon on choisira un
coeff. de pénalités ρ2 > ρ1 et on recommence.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

On commence par choisir t1 > 0.


Si la quantite t1 B(x1 ) est suffisament faible alors x 1 est une
bonne approximation de la solution optimale.
Sinon on choisira t2 < t1 et on recherchera x 2 = x 2 (t2 ).

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Méthodes directes d’optimisation avec contraintes,


méthode du gradient projeté
Considerons le problème suivant:
(
Min f (x)
(P)
x ∈C

C est l’ensemble détermine par les contraintes.


Lorsque l’on minimize sur un ensemble C une fonction convexce f par la methode du
gradient il n’est pas sûr que x k ∈ C a chaque itération de la méthode du gradient:

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

Il est nécessaire de ramener x k +1 sur C par une projection:

Pc : R → C
x → Pc (x) ∈ C.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

(∇f (x) − ∇f (y ), x − y ) ≥ αkx − y k2



Si ρk ∈ [β1 , β2 ] tel que 0 < β1 < β2 < M avec M tel que:

k∇f (x) − ∇f (y )k ≤ Mkx − y k

Alors la suite {x n }n≥0 d’itérés par la méthode du gradient


projeté converge vers la solution du problème de minimisation.

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Méthode de Euler Lagrange pour des contraintes


d’égalite
Soit la problème:

1 t
Min f (x) = x Ax − bt x
2
Cx = c

avec A une matrice n × n définie strictement positive, b ∈ Rn , C une matrice m × n,


c ∈ Rm .
Alors le Lagrangien est le suivant:

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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Méthode de Euler Lagrange pour des contraintes


d’égalite
C’est à dire:
1
∇x ( x t Ax − bt x + λt (Ax − b)) = 0
2
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

Méthode de Euler Lagrange, cas non quadratique


(
min J(x)
h(x) = 0

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

avec L(x, λ) = J(x) + (λ, h(x)) = J(x) + λt h(x) la Lagrangien du problème.


L’équation (13) est non linéaire et donc on peut la résoudre par la méthode de Newton.
Donc on construit une suite {x k , λk }n∈N tel que:

∇2xx L(x k , λk ) ∇h(x k )t


  k 
∇J(x k )
  
d
= k +1 = −
∇h(x k ) 0 λ h(x k )

et alors x k +1 = x k + ρk d k avec ρk tel que J(x k +1 ) ≤ J(x k ).

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Méthode de programmation quadratique successive


(SQP)
(
min f (x)
(14)
hi (x) = 0, i = 1, ..., m

Si f ∈ C 2 (Rn ), convexe et hi ∈ C 1 (Rn ), convexe aussi, alors par Taylor on a:

hi (x k + d k ) = h − i(x k ) + ∇hi (x k )t d k + o(kd k k), i = 1, ..., m (15)


1
k k k k t k
f (x + d ) = f (x ) + ∇f (x ) d + d t ∇2 f (x k )d k + o(kd k k2 ) (16)
2

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, λ? ).

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Si on applique Taylor on obtient:

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

Donc on cherche à chaque itération de minimiser


( t t
minx∈Rn L(x k , λk ) + d k ∇x L(x k , λk ) + 21 d k ∇2x,x L(x k , λk )d k
Dh(x k )d k + h(x k ) = 0

avec Dh(x k ) le Jacobien de h(x k ).

∂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

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

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

c’est à dire calculer d k st λk +1 solution de:


 2
∇xx L(x k , λk ) Dh(x k )t
  k 
∇J(x k )
 
d
= k +1 = −
Dh(x k ) 0 λ k
h(x )

b) Alors calculer ρk telque L(x k + ρk d k , λk ) ≤ L(x k , λk ) et alors x k +1 = x k + ρk d k

Auteur: Jean Rodolphe Roche Cours d’Optimisation


Introduction
Programmation linéaire
Programmation non-linéaire

Cas d’un problème plus général



minx∈Rn f (x)

hi (x) = 0, i = 1, ..., m1

gj (x) = 0, j = 1, ...m2

Alors le Lagrangien est le suivant :

L(x, λ, µ) = f (x) + λt h(x) + µt g(x)

avec λ ∈ Rm1 et µ ∈ Rm2 .


Algorithme:
m
Soient: x 0 ∈ Rn ; (λ0 , µ0 ) ∈ Rm1 × R+2 .
itération k
i) Résoudre:

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

ii) Soit ρk telque L(x k + ρk d k , λk , µk ) ≤ L(x k , λk , µk ) et alors x k +1 = x k + ρk d k

Auteur: Jean Rodolphe Roche Cours d’Optimisation

Vous aimerez peut-être aussi