Critères de Wolfe

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher

En optimisation, les critères de Wolfe sont un ensemble d'inégalités permettant d'optimiser la méthode de recherche linéaire ; plus précisément, cela permet de sélectionner un pas adéquat pour la recherche linéaire.

Description[modifier | modifier le code]

Soit f:\mathbb R^n\to\mathbb R une fonction de classe C^k, et soit \mathbf{p}_k une direction de descente. Un pas \alpha_k est considéré comme satisfaisant les critères de Wolfe si les 2 inégalités suivantes sont vérifiées:

i) f(\mathbf{x}_k+\alpha_k\mathbf{p}_k)\leq f(\mathbf{x}_k)+c_1\alpha_k\mathbf{p}_k^{\mathrm T}\nabla f(\mathbf{x}_k) ;
ii) \mathbf{p}_k^{\mathrm T}\nabla f(\mathbf{x}_k+\alpha_k\mathbf{p}_k)\geq c_2\mathbf{p}_k^{\mathrm T}\nabla f(\mathbf{x}_k).

Avec 0<c_1<c_2<1. La première inégalité i) est connue sous le nom de condition d'Armijo (ou condition de Goldstein ou condition de Goldstein-Armijo) et la seconde ii) comme la condition de courbure. La condition i) impose que \alpha_k permette de décroître suffisamment f, et la condition ii) assure que le taux d'accroissement de la fonction \phi(\alpha)=f(\mathbf{x}_k+\alpha\mathbf{p}_k) en \alpha_k est plus grand que c_2 celui en 0.

Les critères de Wolfe donnent une façon économique de point de vue algorithmique de calculer le pas permettant de diminuer \phi dépendant de \alpha\in\mathbb R. Cependant, les conditions peuvent donner une valeur pour le pas qui n'est pas proche d'un minimum de \phi. Si on modifie la condition de courbure de la manière suivante :

iia) \big|\mathbf{p}_k^{\mathrm T}\nabla f(\mathbf{x}_k+\alpha_k\mathbf{p}_k)\big|\leq c_2\big|\mathbf{p}_k^{\mathrm T}\nabla f(\mathbf{x}_k)\big|

alors i) et iia) prises ensemble sont appelées conditions fortes de Wolfe, puisque \alpha_k est forcément proche d'un point critique de \phi.

Référence[modifier | modifier le code]

(en) J. Nocedal et S. J. Wright, Numerical optimization, Springer Verlag, NY, 1999

Articles connexes[modifier | modifier le code]