• Aucun résultat trouvé

I.2 Algorithmes et transport optimal dynamique

I.2.1 Méthodes de "splitting proximal"

Ces méthodes de splitting proximal se fondent toutes sur l’exploitation de l’opérateur proxi-mal, que nous définissons ci-dessous :

Définition 1.2-12. L’opérateur proximal ([4] chapitre 12)

Soit H un espace de Hilbert. Soit f une fonction de H dans R propre, s.c.i. et convexe, et soit x ∈ H. L’opérateur proximal de f en x, noté Proxf(x) est l’unique minimiseur de f+12|x− ·|2 dans H. Autrement dit :

Proxf(x) = argmin y∈H f(y) +1 2|yx| 2 (1.2-55)

On peut caractériser l’opérateur proximal par la relation suivante :

y= Proxf(x) ⇔ x−y∈∂φ(y). (1.2-56)

Il est à noter que l’opérateurProxf (de même queid−Proxf) estfermement non-expansifs, c’est à dire que

∀x, y∈H, kProxf(x)−Proxf(y)k2 ≤ hx−y, Proxf(x)−Proxf(y)i (1.2-57)

énonçons également une propriété utile, liant l’opérateur proximal def avec celui de sa trans-formée de Legendre f : l’identité de Moreau,

Proxγf = id−γProxf /γ(·/γ) (1.2-58)

Remarque 1.2-15. La relation 1.2-56 montre qu’un point a deH minimise la fonction f si et seulement si a= Proxf(a). En effet,

a∈argminf ⇔ 0∈∂f(a) ⇔ a−a∈∂f(a).

Chercher un minimiseur d’une fonction convexef revient donc à chercher un point fixe à l’opéra-teurProxf. C’est la raison pour laquelle il est possible de développer à partir de l’opérateur proxi-mal de nombreux algorithmes basés sur la recherche de points fixes d’opérateurs non-expansifs (voir la sectionII.3, chapitre II), ces derniers disposant déjà d’une littérature assez large [4]. Remarque 1.2-16. Un cas assez fréquent dans les problèmes d’optimisation convexe, est le cas d’une optimisation convexe sous contraintes (comme c’est le cas de notre problème de transport optimal), où l’espace des contraintes est un ensemble convexe ferméC. Cependant ces problèmes peuvent toujours se ramener à un problème d’optimisation convexe classique (sans contrainte), en ajoutant à la fonctionnelle convexe à minimiser d’origine, une fonctionnelle indicatrice de l’ensemble C. Autrement dit, en notantF la fonctionnelle convexe à minimiser sur C, on a

argmin

x∈C

F(x) = argmin

x

(F(x) +ιC(x)), où la fonctionnelleιC indicatrice de l’ensemble C s’écrit :

ιC(x) =

(

0, si x∈C,

+∞ sinon. (1.2-59)

La fonctionnelle ιC est propre, semi-continue inférieurement et convexe sur H. Or l’utilisation d’algorithmes de proximal splitting voir juste en dessous) pour résoudre ce type de problèmes, requiert en général le calcul des opérateurs proximaux associés (séparément) à la fonctionnelle F et à la fonctionnelle ιC : or, il s’avère qu’un calcul simple montre que l’opérateur proximal

ProxιC associé à cette dernière est en fait un opérateur de projection orthogonalesur C. Cette égalité entre l’opérateur proximal associé à l’indicatrice d’un ensemble convexe fermé et l’opérateur de projection orthogonale sur ce même convexe peut également se révéler très utile pour le calcul de l’opérateur proximal associé à une fonctionnelle homogène : en effet, si une fonctionF est homogène (i.e. siλ >0,F(λx) =λF(x)), alors sa transformée de LegendreF est

une indicatrice d’un ensemble convexe fermé (indicatrice au sens de l’équation (1.2-59)). Notons K cet ensemble convexe fermé : FK. Or, d’après l’identité de Moreau (1.2-58), on a alors

ProxF = id−ProxF= id−ProxιK = id−ProjK.

Autrement dit le calcul de l’opérateur proximal ProxF se ramène à celui de ProjK la projection orthogonale sur l’ensemble K. Ce cas sera également présent dans notre problème de transport optimal : en effet, le terme d’énergie Ke définie en (1.2-51) est homogène !

Énonçons quelques algorithmes d’optimisation convexe courant faisant appel à l’opérateur proxi-mal : dans tous ces algorithmes, H désignera un espace de Hilbert.

A. L’algorithme du point proximal

Commençons par le plus naturel de ces algorithmes : soit f une fonction de H dans R propre, s.c.i. et convexe tel que argminf 6=∅.

Algorithme 1. Point proximal

Soitx0∈H, et soitγ >0. On définit la suite(xn)n par la récurrence :

∀n∈N, xn+1 = Proxγf(xn).

Alors la suite (xn)n est une suite minimisante de f, et converge faiblement vers un point x∈argmin f.

Pour la preuve, on pourra appliquer le Théorème2.3-5(p.64). En effet,argmin f 6=∅, c’est à dire

Fix(Proxγf) 6=∅, pourFix(Proxγf) désignant l’ensemble des points fixes de Proxγf, pour tout

γ > 0 (le paramètre γ est ici un paramètre d’ajustement permettant d’accélérer l’algorithme). Pour plus de précisions sur l’algorithme du point proximal, voir par exemple [4].

B. L’algorithme Forward-Backward

Cet algorithme traite le cas où l’on doit minimiser la somme d’une fonction f de H dans R propre, s.c.i. et convexe, et d’une fonction h de H dans R convexe, différentiable sur H et de gradient 1/β-lipschitzienne, pour β >0, telles que argmin(f +h)6=∅.

Algorithme 2. Forward-Backward

Soit x0 ∈H, et soient γ ∈]0,2β[et λ∈]0, δ[avec δ= min(1, β/γ) + 1/2. On définit la suite

(xn)n par la récurrence :

∀n∈N, xn+1= (1−λ)xn+λProxγf(xn−γ∇h(xn)).

Alors la suite (xn)n converge faiblement dans H vers un pointx∈argmin(f+h), et la suite

∇h(xn) converge fortement dans H vers le point ∇h(x).

Pour la preuve, voir par exemple [4].

C. L’algorithme Forward-Backward Généralisé

Cet algorithme est une généralisation de l’algorithme 2 pour le cas où on aurait à minimiser la somme de plusieurs fonctions convexes avec une fonction convexe lisse. Pour simplifier, prenons

simplement le cas de la somme de deux fonctions f et g, propres, s.c.i. et convexes, et d’une fonction h convexe, différentiable sur H et de gradient 1/β-lipschitzienne (β > 0), telles que

argmin(f +g+h)6=∅.

Algorithme 3. Forward-Backward Généralisé

Soient x0, y0 ∈H, et soient γ ∈]0,2β[et λ∈]0, δ[ avecδ= min(1, β/γ) + 1/2. On définit les suites (xn)n, (yn)n, et (un)n par la récurrence :

∀n∈N,      un=αxn+ (1−α)yn, xn+1=xn+λ Prox(γ/α)f[2un−xn−γ∇h(un)]−un , yn+1=yn+λ Prox(γ/(1α))g[2un−yn−γ∇h(un)]−un . Alors la suite (un)n converge faiblement dansH vers un point u∈argmin(f +g+h).

Pour la preuve, voir par exemple [70].

D. L’algorithme de Douglas-Rachford

Un algorithme un peu plus complexe dans le cas où on aurait à minimiser la somme de deux fonctionsf etg, toutes deux propres, s.c.i. et convexes telles queargmin(f+g)6=∅. Ici, contrai-rement aux deux algorithmes précédent, aucune des deux fonctions n’est supposée plus régulière.

Algorithme 4. Douglas-Rachford

Soient x0, y0 ∈ H, et soient γ > 0 et λ ∈]0,2[. On définit les suites (xn)n et (yn)n par la récurrence :

∀n∈N, (

xn+1 =xn+λ(Proxγf(2yn−xn)−yn), yn+1= Proxγg(xn+1).

Alors les suites (xn)n et (yn)n convergent faiblement dans H, respectivement vers des points x et y vérifiant y= Proxγg(x)∈argmin(f +g).

La preuve est similaire à celle de l’algorithme 1. Pour plus de précisions sur l’algorithme de Douglas-Rachford, voir par exemple [50,28]

E. L’algorithme Primal-Dual

Soient iciH et H0 deux espaces de Hilbert. Cet algorithme permet de résoudre un problème de minimisation d’une fonctionnelle du typef◦ϕ+g, oùf :H0Retg:H→Rsont deux fonctions propres, s.c.i. et convexes, etϕun isomorphisme deHdansH0, telles queargmin (f◦ϕ+g)6=∅. L’idée de cet algorithme est de traiter la forme primale -duale de ce problème sous la forme d’un problème de recherche de point selle, c’est à dire de déterminer

argmin x∈H [f(ϕ(x)) +g(x)] = argmin x∈H max y∈H0[hϕ(x), yiH0+g(x)−f(y)],

en rappelant que la transformée de Legendre def s’écrit :

f(y0) = max z hz, y0iH0−f(z) ⇔ f(z0) = max y hz0, yiH0−f(y) .

Algorithme 5. Primal-Dual

Soient x0 =u0 ∈H, y0 ∈H, et soient γ, σ >0, λ∈]0,1[. On définit les suites(xn)n, (yn)n, et(un)n par la récurrence : ∀n∈N,      yn+1 = Proxγf(yn+γϕ(un)), xn+1= Proxσg(xn−σϕ?(yn+1)), un=xn+1+λ(xn+1−xn), oùϕ? :H0 →H désigne l’adjoint de l’isomorphisme ϕ:H→H0.

Alors les suites(un)net(xn)nconvergent fortement dansHvers un pointx∈argmin (f ◦ϕ+g); la suite (yn)n converge, quant à elle, vers faiblement dansH0 vers un point y ∈H vérifiant f(ϕ(x)) =hϕ(x), yi −f(y).

Pour la preuve, voir par exemple [24] ou [42].

Remarque 1.2-17. Le problème ci-dessus peut également être traité par l’algorithme 3 de Forward-Backward Généralisé, en le reformulant de la façon suivante :

argmin x [f(ϕ(x)) +g(x)] = argmin (x,y)∈Graph(ϕ) [f(y) +g(x)] = argmin x,y f(y) +g(x) +ιGraph(ϕ)(x, y) = argmin x,y [F(x, y) +G(x, y)]

avec F(x, y) =f(y) +g(x) et G(x, y) =ιGraph(ϕ)(x, y), où l’ensembleGraph(ϕ) est le graphe de l’opérateur ϕ, c’est à dire que Graph(ϕ) = {(x, y) ∈H×H, y = ϕ(x)} : ensemble convexe et fermé si ϕest linéaire continu.

Les fonctionnelles F et G sont propres, convexes et semi-continues inférieurement : il est donc possible d’appliquer l’algorithme 3, en prenant ici une fonction nulle pour le terme lisse (i.e. pour la fonction différentiable de gradient lipschitzien), et en remarquant que

• On a ProxF(x, y) = (Proxf(x),Proxg(y)) : calculer l’opérateur ProxF revient donc à calculer indépendamment les opérateurs Proxf et Proxg.

• D’après la Remarque1.2-16, on aProxG= ProxιGraph(ϕ) = ProjGraph(ϕ). Calculer l’opéra-teur ProxG revient donc à calculer la projection orthogonale dans H×H sur l’ensemble convexe fermé Graph(ϕ).

Ceci sera la méthode que nous utiliserons dans le chapitreVlorsque nous aurons à traiter ce type problème.

Revenons maintenant au problème (1.2-53) de transport optimal dynamique.