• Aucun résultat trouvé

4.4 Un sch´ema implicite centr´e

5.1.1 Principe de l’algorithme de r´esolution QPB

Nous avons utilis´e un algorithme de r´esolution du probl`eme (5.1) combinant une m´ethode de gra-dient avec projection et une m´ethode d’activation de contraintes (voir [43] pour une pr´esentation de la m´ethode des contraintes actives). Des factorisations de Cholesky sont utilis´ees pour la minimisa-tion, pour la r´esolution de syst`emes lin´eaires, lorsque les contraintes sont fix´ees. Ces factorisations de Cholesky sont mises `a jour lors de l’activation ou la d´esactivation de contraintes. On appellera, dans la suite, l’algorithme de r´esolution QPB (Quadratic Programming with Bounds) (il s’agit du code N2QP1 de la librairie MODULOPT de l’Inria). Les ´etapes de la r´esolution sont d´ecrites dans l’algorithme 1. Elles sont expliqu´ees dans ce qui suit.

Le principe de l’algorithme est de minimiser J sur des chemins obtenus par projection surK d’une demi-droite issue du point courant vk, le long de laquelle J d´ecroˆıt. A chaque minimum local trouv´e sur un chemin, on red´efinit une nouvelle direction de descente et un nouveau chemin. L’algorithme s’arrˆete quand un minimum satisfait les conditions d’optimalit´e, `a une pr´ecision num´erique εabs pr`es. On constate en particulier que l’algorithme trouve la solution du probl`eme en un nombre fini d’´etapes. A chaque ´etape, la direction de descente dk peut ˆetre calcul´ee de deux mani`eres, soit comme la direction oppos´ee au gradient (comme pour la m´ethode du gradient avec projection), soit par une direction de Cholesky-Newton sur la face active. La face active, `a l’it´eration k, est l’ensemble des points de K, qui poss`edent les mˆemes contraintes actives (ou satur´ees) que le point courant vk. La pr´esence d’it´erations de gradient avec projection est utile pour d´eterminer rapidement l’ensemble des contraintes actives que poss`ede la solution (voir [38] comme r´ef´erence qui ´etablit cette propri´et´e). Mais le gradient avec projection est une m´ethode de r´esolution qui converge lentement. La pr´esence d’it´erations de Cholesky-Newton permet d’acc´el´erer la convergence de l’algorithme car une it´eration de Cholesky-Newton donne directement le minimum de la fonctionnelle sur la face activ´ee.

Pour chacun des choix de direction, on recherche un minimum local de J sur une ligne bris´ee issue du point courant vk. Ce minimum local d´efinit le point vk+1 de la mani`ere suivante:

vk+1 = PK(vk+ αkdk), avec αk≥ 0, et PK repr´esente la projection surK. (5.2) La projection est n´ecessaire car, sinon, le point suivant vk+1 peut sortir du convexe K. C’est la projection de la direction dk surK qui engendre une ligne bris´ee (voir figure 5.1).

dk vk y

z

x

Fig. 5.1 – Projection de la direction de descente dk sur le convexe K

La direction dk est r´eactualis´ee `a chaque it´eration k. Calcul des pas αk

Le pas αk est d´etermin´e comme le premier minimum local de la fonctionnelle α7→ J(PK(vk+ α dk)).

Une fois αk connu, on peut calculer vk+1 par (5.2). ´

Etape du gradient avec projection

Cette ´etape est r´ealis´ee si le bool´een do gpstep est ´egal `a “true” (voir tableau de l’algorithme 1), c’est-`a-dire si on a trouv´e le minimum sur la face activ´ee et si ce minimum n’active pas de nouvelles contraintes. Dans ce cas, la direction de descente est dk =−gk, o`u gk = Avk+ b. Les ´etapes de gra-dient avec projection sont n´ecessaires car le gragra-dient avec projection permet d’identifier les contraintes actives de la solution.

´

Etape de Cholesky-Newton

Cette ´etape est r´ealis´ee si le bool´een do gpstep est ´egal `a “false”, c’est-`a-dire si le nombre de pas cons´ecutifs de gradient avec projection est ´egal `a 5 ou bien si le nombre de contraintes activ´ees et d´esactiv´ees est nul (c’est-`a-dire si le gradient avec projection avance peu). On limite le nombre de pas cons´ecutifs de gradient avec projection car le gradient avec projection converge lentement et un pas de Cholesky-Newton permet d’acc´el´erer la convergence. Dans cette ´etape, la direction de descente est diff´erente de celle de l’´etape du gradient avec projection. Pour la d´eterminer, on la calcule comme la solution du probl`eme de minimisation suivant, o`u les indices k sont provisoirement omis, v d´esigne le point courant (v ∈ K) et A repr´esente les indices des contraintes actives de v.

Trouver d∈ IRn tel que min

dA=0J(v + d) o`u vA = lbA. (5.3) Les indices A et I d´esignent respectivement les indices correspondant aux contraintes actives (ou satur´ees), aux contraintes inactives, du point courant v. Il est connu que la condition d’optimalit´e du probl`eme (5.3) est donn´ee par

(A d)I + (Av + b)I = 0, (A d)I+ gI = 0 o`u g = Av + b.

On d´ecompose la matrice A en sous-matrices en utilisant la sym´etrie de A: A =



AAA AAI AAI AII



La condition d’optimalit´e de (5.3) se r´e´ecrit donc:

AIIdI + gI = 0, dA= 0.

On constate que le pas αkcalcul´e pour la direction de descente de Cholesky-Newton vaut 1, c’est-`a-dire que le minimum calcul´e sur le chemin est toujours le minimum sur la face active. Plus pr´ecis´ement, au lieu de calculer la direction de descente d, cela revient `a chercher un nouveau point ˜v tel que

Trouver ˜v∈ IRn tel que min

˜ vA=lbA

J(˜v) o`u vA= lbA.

Mais il peut y avoir plusieurs ´etapes de Cholesky-Newton cons´ecutives. C’est le cas si le minimum trouv´e lors de la premi`ere it´eration de Cholesky active une nouvelle contrainte. Dans ce cas, il y aura au moins deux it´erations de Cholesky-Newton cons´ecutives.

Principe de l’algorithme de r´esolution QPB

algorithme 1 Algorithme de r´esolution

1: v0 point initial admissible (i.e. v0≥ lb)

2: Initialisation `a l’it´eration k = 0: g0 = Av0+ b

3: do gpstep=true, do gpstep old=false

4: while Norme du gradient des indices non satur´es > εabs do

5: Calcul du nombre d’´etapes cons´ecutives de Cholesky-Newton

6: if do gpstep=true then

7: if do gpstep old=false then

8: n cons gpstep = 0

9: else

10: n cons gpstep = n cons gpstep + 1

11: end if

12: end if

13: do gpstep old=do gpstep

14: Choix de la direction de descente selon la valeur de do gpstep

15: if do gpstep=true then

16: Choix de la direction de descente dk =−gk (pas du gradient avec projection)

17: else

18: Choix de la direction de descente dk = pas de Cholesky-Newton

19: end if

20: Calcul du premier minimum local de J sur la ligne bris´ee α→ PK(vk+ α dk). On en d´eduit αk. Mise `a jour du gradient, des indices satur´es et non satur´es, de nd´esactiv´ees et nactiv´ees. nd´esactiv´ees = nombre de contraintes d´esactiv´ees entre l’it´eration k et k + 1

= nb de contraintes actives (ou satur´ees) en k, inactives (ou non satur´ees) en k + 1, nactiv´ees = nombre de contraintes activ´ees entre l’it´eration k et k + 1.

On pose vk+1= PK(vk+ αkdk).

21: Test des contraintes activ´ees et d´esactiv´ees pour choisir l’´etape suivante.

22: if do gpstep=true then

23: if nd´esactiv´ees + nactiv´ees = 0 ou n cons gpstep = 5 then

24: do gpstep=false 25: end if 26: else 27: if nactiv´ees = 0 then 28: do gpstep=true 29: end if 30: end if 31: k = k + 1 32: end while

Documents relatifs