Vous êtes sur la page 1sur 3

École Supérieure Privée d’Ingénierie et de Technologies

TP optimisation sans contrainte en di-


mension quelconque

Classes : 4DS Semestre : 1 Année universitaire: 2019/2020

L’objectif de ce TP est d’utiliser différentes méthodes d’optimisation afin d’approcher la


solution du problème:

(P) min J(X),


X∈Rn

où J : Rn → R fonction objective continue definie par:


1
∀X ∈ Rn , J(X) = < AX, X > − < b, X >,
2
où b ∈ Rn et A ∈ Mn (R) est une matrice symétrique définie positive.
 
2 −1 0 . . . ... 0
 −1 2 −1 . . . ... . 
 
 0 −1 2 −1 . . ... . 
   
 .
 0 −1 2 −1 . ... .  1
 .
 . 0 −1 2 −1 ... . 

 1 

A= . . . . . . ... .  , et b = 
 . .

 . . . . . . ... .   . 

 . . . . . . ... .  1

 . . . . . . ... . 
 
 . . . . . −1 2 −1 
0 . −. . . 0 −1 2

Remarque 1 Il est important d’exploiter le format creux de la matrice A afin de diminuer


les temps de calcul

1. Programmer en python la fonction J et la représenter dans le cas n = 2 sur le pavé


[−20, 20] × [−20, 20].

2. Programmer en python le gradient de J.

1
1 Partie 1: Algorithme de gradient à pas fixe
Le schéma général de l’algorithme de gradient à pas fixe est donné par la suite (Xk )k∈N
d’élément de Rn telle que:


X0 ∈ Rn quelconque
Xk+1 = Xk − ρ∇J(Xk ) ∀k ∈ N
où ρ est un réel positif.

1. Ecrire une fonction python prenant en argument ρ > 0 un pas fixe et X0 ∈ Rn , un


vecteur d’initialisation, et ε > 0 la précision afin de mettre en oeuvre l’algorithme du
gradient à pas fixe.

2. Tester l’algorithme sur la fonction J pour différentes valeurs de n, n = 2, 10, 15, 20, 30, 40, 50
pour un ρ = 0.5, ρ = 1 et ρ = 2.

3. Tracer la courbe représentant le nombre d’itération en fonction de la valeur de n.

4. Tester l’algorithme du gradient à pas fixe on changant le critère d’arrêt. Ces critère
sont:

(a) ||∇J(Xk )|| ≤ ε ⇒ Xk solution. (Condition nécessaire d’optimalité du premier


ordre).
(b) En pratique, le test d’optimalité n’est pas toujours satisfait et on devra faire
appel à d’autres critères.
• ||Xk+1 − Xk || ≤ ε||Xk || stagnation de la solution.
• |J(Xk+1 ) − J(Xk )| ≤ ε|J(Xk )| stagnation de la fonction.
• Nombre d’itération dépassont un seuil fixe à l’avance k < IterM ax.

Analyser les résultats et commenter.

2 Partie 2: Algorithme de gradient à pas optimal


Le schéma général de l’algorithme de gradient à pas optimal est donné par la suite (Xk )k∈N
d’élément de R3 telle que:


X0 ∈ Rn quelconque
Xk+1 = Xk − ρk ∇J(Xk ) ∀k ∈ N
où ρk est un réel positif.

2
1. Soit X ∈ Rn et d ∈ Rn , écrire une fonction python permettant de minimiser la
fonction ϕ(t) = J(X + td).
2. Programmer l’algorithme de gradient à pas optimal pour différentes valeurs de n,
n = 2, 10, 15, 20, 30, 40, 50, 100.
3. Tracer la courbe représentant le nombre d’itération en fonction de la valeur de n.
4. Analyser les résultats et commenter.

3 Partie 3: Méthode du gradient conjugué


Le schéma général de l’algorithme du gradient conjugué est donné par la suite (Xk )k∈N
d’élément de Rn telle que:


 X0 ∈ Rn quelconque, r0 = AX0 − b etd0 = −r0

 < rk , dk >
Xk+1 = Xk + ρk dk , ρk = −


< Adk , dk >

 rk+1 = AXk+1 − b
||rk+1 ||2



dk+1 = −rk+1 + βk dk , βk :=


||rk ||2

1. Faire une étude bibliographique sur l’algorithme du gradient conjugué.


2. Programmer l’algorithme du gradient conjugué pour différentes valeurs de n, n =
2, 10, 15, 20, 30, 40, 50, 100 pour un ρ = 0.5.
3. Tracer la courbe représentant le nombre d’itération en fonction de la valeur de n.
4. Analyser les résultats et commenter.

Comparer à l’aide d’un tableau ou d’une figure la rapidité de convergence de chacune des
deux algorithmes, ainsi le temps de calcul par python suivant les différentes valeurs prises
par n.

4 Partie 4: Régrassion linéaire


Dans cette partie la fonction J est définie par:
N
1X
J(a, b) = (yi − (axi + b))2
2 i=1

Avec (xi , yi ), i = 1, ..N un nuage de point donner par le fichier univariatel inearr egressiond ataset.cvs.
Appliquer les algorithmes de gradient à pas fixe , pas optimal et du gradient conjugué pour
déterminer le minimum de J.

Vous aimerez peut-être aussi