Vous êtes sur la page 1sur 4

Chapitre 3 : Optimisation

1- Introduction :

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


résoudre analytiquement ou numériquement les problèmes qui consistent à minimiser ou
maximiser une fonction sur un ensemble.

L'optimisation consiste en l’étude des problèmes qui s'expriment de la manière suivante :


Étant donné une fonction f : A → R définie sur un ensemble A à valeurs dans l'ensemble R
( )
des nombres réels trouver un élément x de A tel que f x ≤ f ( x ) pour tous les x dans A

On dit que l'on cherche à minimiser la fonction f sur l'ensemble A et on note :

inf f ( x ) ou inf { f (x ) / x ∈ A}
x∈A

La fonction f est appelée sous différents noms : fonction-coût ou simplement coût, fonction-
objectif ou simplement objectif, critère, etc.

Le point x est appelé solution du problème d'optimisation (ou minimum). On l'appelle aussi
parfois une solution globale pour le distinguer des solutions locales. On dit qu'il s'agit d'un
()
minimum strict si l’élément x ∈ A et f x < f ( x ) pour tout x ∈ A − x{}
Remarque :

Le problème de minimisation peut être vu aussi comme un problème de maximisation en


écrivant :

sup f ( x ) = − inf (− f ( x ))
x∈A x∈A

Les domaines d’application de l’optimisation sont très variés, on peut citer :

optimisation d’un trajet, de la forme d’un objet, d’un prix de vente, d’une réaction chimique,
du contrôle aérien, du rendement d’un appareil, du fonctionnement d'un moteur, de la gestion
des lignes ferroviaires, du choix des investissements économiques, de la construction d’un
navire, etc.

2- Types d’optimisation :

Les problèmes d’optimisation se divisent en deux types: l’optimisation sans contrainte et


l’optimisation avec contraintes. Dans les deux cas, le but consiste à trouver les valeurs qui
maximisent ou minimisent une fonction. Toutefois, dans l’optimisation avec contraintes, les
solutions sont soumises à des restrictions (contraintes).

1
3- Algorithmes d’optimisation :

3-1- Définition :

Un algorithme d’optimisation est une procédure mathématique qui permet d’obtenir les
minimums (ou maximums) d’une fonction réelle f .En général la solution recherchée est un
sous-espace A⊂ Rn qui est soumis à un ensemble de contraintes (conditions sur les variables),
qui sont exprimées comme un système d’équations et inéquations. Les éléments de A sont
appelés solutions admissibles et possèdent souvent des bornes supérieures et inférieures
xl ≤ x ≤ xu ∈ A
Les algorithmes d’optimisation sont des processus itératifs que génèrent une séquence de
valeurs x n +1 à partir d’un point de départ x0 . Un algorithme est convergent quand pour

n’importe quel point de départ, la séquence arrive à la solution (maximum ou minimum). Les
algorithmes d’optimisation ont besoin en général des dérivées de premier et deuxième degré
de la fonction. Pour le calcul du gradient d’une fonction, on peut utiliser une approximation
par exemple par les différences finies.
3-2- Catégories de problèmes résolus par les algorithmes d’optimisation :

Les algorithmes d’optimisation s’utilisent en de nombreux problèmes : pour trouver les zéros
de fonctions, pour minimiser la distance entre des points de mesure et une courbe (moindres
carrés), intersections de fonctions et pour résoudre des systèmes d’équations à une ou
plusieurs variables. En général, il n’y a pas de méthode idéale et ça dépend de la forme de la
fonction à étudier et du type du problème à analyser.
3-3 Paramètres d’un algorithme d’optimisation
3-3-1. Approximation Initiale
Pour initialiser l’algorithme, il est nécessaire d’avoir une approximation initiale x0 de la
solution (point de départ). Le choix d’une bonne approximation initiale détermine la
convergence ou non à la solution.
3-3.2. Nombre d’Itérations
Un algorithme d’optimisation utilise un processus récursif en calculant à chaque une nouvelle
itération une nouvelle solution jusqu’à ce que le critère de convergence soit atteint. En
résumé, c’est une boucle de répétition où la nouvelle solution est construite à partir des
solutions antérieures.
3-3.3. Vitesse de convergence
Quand on parle de convergence proche d’une solution, on parle de la vitesse à laquelle la
solution à chaque itération approche de sa valeur finale.
Le choix d’un algorithme avec une haute convergence est important pour les problèmes d’une
certaine complexité ou avec de multiples paramètres.
3-3.4. Critère d’arrêt
C’est un choix déterminé utilisé pour arrêter le processus de calcul. Il existe plusieurs critères
d’arrêt. Les plus utilisées sont :
a) Nombre maximal d’itérations Nmax

2
b) Comparaison d’une norme à une valeur très petite : f (xn ) < ε
c) Différence entre deus solutions successives : xn − xn−1 < ε
en général la valeur de ε est prise très petite (de l’ordre de 10-4, 10-6, …).
4- Algorithmes sans contraintes :
Il existe deux catégories d’algorithmes sans contraintes :
a)- Les algorithmes déterministes : avec les mêmes données et les mêmes points de départ,
ces algorithmes exécuteront toujours la même suite d'opérations et les solutions seront
prévisibles.
b)- Les algorithmes stochastiques : ce sont des algorithmes qui reposent sur des estimations
aléatoires et qui doivent deviner à chaque itération quelle est la solution la plus adéquate.
4-1- L’algorithme de descente du gradient :
L’algorithme de descente du gradient s'applique lorsqu’on cherche le minimum d'une fonction
dont on connaît l'expression analytique, qui est dérivable, mais dont le calcul direct du
minimum est difficile.
L’algorithme de descente du gradient (à pas fixe) est résumé comme suit :

(0 )
étape 1 : choisir un point de départ x = x0
pour k =1, 2,….,N
étape 2 : calculer g (k −1) = ∇f x (k −1) ( )
(k ) ( k −1)
étape 3 : calculer x =x − α g (k −1)
finpour k

tel que : ∇f x ( ( ) ) =  ∂∂f x(x ) , ∂∂f x(x ) ,...., ∂∂f x(x ) et α est le pas de convergence.
k

 1 2 n 

On peut améliorer la vitesse de convergence de l’algorithme en utilisant un pas variable. On


aura alors l’algorithme de descente du gradient (à pas variable) qui est résumé comme suit :
(0 )
étape 1 : choisir un point de départ x = x 0
pour k =1, 2,….,N
étape 2 : calculer g (k −1) = ∇f x (k −1) ( )
1
étape 3 : calculer α k =
k
(k ) ( k −1)
étape 4 : calculer x = x − α k g (k −1)
finpour k

3
4-2- L’algorithme du gradient conjugué:

L’algorithme du gradient conjugué est une version améliorée de l’algorithme de descente du


gradient dans lequel on utilise deux gradients ( d k et β k ). Les étapes de cet algorithme sont
résumées comme suit :

(0 )
Etape 1 : choisir un point de départ x = x0
Etape 2 : calculer f 0 = f x ( ( ))
et ∇f 0 = ∇f x
0
( ( )) 0

Etape 3 : initialiser d 0 = ∇f 0
pour k =1, 2,….,N
(k ) ( k −1)
Etape 4 : calculer x = x − α d k -1
Etape 5 : calculer ∇f x (k ) ( )
Etape 6 : calculer β k =
( ( ) ) ∇f (x ( ) )
∇f x
k T k

∇f (x ) ∇f (x ( ) )
( ) k −1 T k −1

= ∇f (x ) + β d
( ) k
Etape 7 : calculer d k k k −1

finpour k

4-3- L’algorithme de Newton :


Le principe de l’algorithme de Newton repose sur l’idée que la fonction f à minimiser est
deux fois dérivables ce qui permet d’utiliser la deuxième dérivée pour construire la matrice
hessienne H tel que :
(k )
( ) [ ( ) ( )
(k )
si on a l’expression du gradient g x = g1 x , g 2 x ,...., g n x
(k ) (k )
( )]
alors la matrice hessienne sera de la forme suivante :


( )
 ∂g1 x (k ) ( )
∂g1 x
(k )
. .
∂g1 x 
(k )

( )
(k )
 ∂x1 ∂x 2(k ) ∂x n(k ) 


( ) ( )
 ∂g 2 x (k ) ∂g 2 x (k )
. .
∂g 2 x 
(k )

( )
( )
H x =  ∂x1
(k ) (k )
∂x 2(k ) ∂x n(k )  =
 . . . . . 
 . . . . . 

 n∂g( ) x
(k )
∂g ( )
n x
(k )
. .
∂g n x
(k ) 
 ( )
 ∂x1(k ) ∂x 2(k ) ∂x n(k ) 
Les étapes de cet algorithme sont résumées comme suit :
(0 )
Etape 1 : choisir un point de départ x = x0
pour k =1, 2,….,N
Etape 2 : calculer le gradient g x (k ) ( )
Etape 3 : calculer la matrice hessienne H x (k ) ( )
Etape 4 : calculer x (k )
=x
( k −1)
−H −1
(x )g (x ( ) )
(k ) k

finpour k

Vous aimerez peut-être aussi