• Aucun résultat trouvé

Activation rapide de contraintes entre deux ´etapes cons´ecutives

8.3 Algorithme GP-AC-GC am´elior´e

8.3.3 Activation rapide de contraintes entre deux ´etapes cons´ecutives

La majorit´e des ´etapes de GC ne servent principalement qu’`a activer des contraintes de borne inactives (le GC s’arrˆetant d`es qu’une contrainte de borne non active est ren-contr´ee), jusqu’`a convergence vers un ensemble de travail W stable (cf. d´efinition8.3.1

suivante) o`u on minimisera compl`etement (P L)jW(ou partiellement avec le test d’arrˆet de Rosen).

D´efinition 8.3.1 On dit qu’un ensemble de travail W est stable lorsque le chemin suivi

par le GC pour minimiser compl`etement (ou partiellement avec le test d’arrˆet de Rosen)

le probl`eme (P L)jW est admissible pour les contraintes de borne inactives de J .

Comme l’algorithme II.6 de GP-AC-GC classique n’active qu’une seule contrainte de borne `a la fois entre deux ´etapes cons´ecutives de GC, un nombre important d’´etapes de GC risquent d’ˆetre g´en´er´ees afin de parvenir `a un ensemble de travail W stable. Ces ´etapes cons´ecutives de GC sont ch`eres en temps CPU pour deux raisons. La premi`ere raison est que, ind´ependamment du nombre d’it´erations de GC effectu´ees, chaque ´etape de GC a un coˆut fixe relativement important dˆu `a l’initialisation du pr´econditionneur de HW (cf. section8.2.3). La deuxi`eme raison est que chaque it´eration de GC n´ecessite un produit matrice-vecteur relativement coˆuteux dans notre application. De plus, on observe souvent que peu d’it´erations de GC sont n´ecessaires avant de rencontrer une borne et donc, que le crit`ere quadratique du probl`eme (P L)jW n’est que tr`es l´eg`erement minimis´e. Ainsi, le coˆut cumul´e en temps CPU engendr´e par l’identification d’un ensemble de travail W stable dans l’algorithme II.6 peut s’av´erer tr`es rapidement important (dans le pire des cas il faudra nI ´etapes de GC pour converger vers un ensemble W stable : apr`es un changement de phase GP =⇒ GC, on d´emarre le premier GC avec aucune contrainte de bornes actives W = ∅, puis on les active toutes une par une par des ´etapes de GC cons´ecutives). En pratique, on a d´ej`a observ´e ce probl`eme o`u beaucoup d’´etapes de GC

Section 8.3 173

sont g´en´eralement n´ecessaires pour parvenir `a un ensemble de travail W stable. Afin de rem´edier d’y remedier, nous avons mis au point une technique d’activation rapide de contraintes entre chaque ´etape de GC. Pour ce faire, apr`es chaque ´etape de GC, nous avons choisi d’utiliser une m´ethode de descente avec projection sur l’ensemble des contraintes inactives J . On l’appellera par la suite m´ethode de direction projet´ee (DP). La m´ethode DP est similaire `a la m´ethode GP sauf que l’on s’autorise ici `a projeter une direction qui peut ˆetre diff´erente de celle form´ee par l’oppos´e du gradient. Comme la projection d’une direction autre que l’oppos´ee du gradient n’est pas n´ecessairement une direction de descente, pour s’assurer que le chemin projet´e est de descente on veillera `a ce que

d = (dδm, dy) satisfasse :     

(a) Pour α petit, P[l,u](y + αdy) = y + αdy

(b) La direction d est une direction de descente du crit`ere quadratique de (P L)j (c) (dy)i > 0 si yi = li et (dy)i < 0 si yi = ui

(8.25) Quelques remarques sur ces propri´et´es :

1. Les conditions (a) et (b) assurent que l’on fait bien d´ecroˆıtre le crit`ere quadratique de (P L)j en se d´eplac¸ant dans la direction projet´ee de d.

2. La condition (c) assure que l’on se d´eplace dans l’ensemble de travail W courant et donc que l’on ne va pas d´esactiver des contraintes par projection de la direction d. En g´en´eral cette condition n’est pas indispensable. Dans notre cas elle est utile car nous voulons utiliser la m´ethode DP pour activer des contraintes sans en d´esactiver apr`es une ´etape de GC (´etape dans laquelle yJ sort des bornes).

Afin d’appliquer la m´ethode DP, apr`es une minimisation par GC du probl`eme (P L)jW, on a besoin de choisir un point de d´epart XJ admissible et une direction d `a projeter (la direction de descente devant v´erifier les propri´et´es de (8.25)). Pour ce faire, trois types d’approches diff´erentes sont envisageables.

Premi`ere possibilit´e (non test´ee). On r´esout compl`etement (8.12) par GC sans tenir compte des bornes sur yJ et on note bXJ sa solution. Si le point bXJ =

 c δm b y  n’est pas admissible, i.e.y /b∈ [l, u], alors on applique la m´ethode DP avec pour point de d´epart le

point XJ0 qui correspond au point XJ initialisant l’´etape de GC et avec pour direction

d = bXJ − XJ0. Cette approche revient `a modifier l´eg`erement la premi`ere possibilit´e du GC d´ecrite dans la section 8.2.2. Or nous avons d´ej`a rejet´e cette approche car elle est tr`es coˆuteuse en temps CPU : un grand nombre d’it´erations de GC est n´ecessaire avant d’obtenir la solution XJ du syst`eme (8.12).

Deuxi`eme possibilit´e (la possibilit´e retenue). On choisit d’utiliser la deuxi`eme possi-bilit´e du GC d´ecrite dans la section8.2.2. Si yJ sort des bornes au cours des it´erations de GC on note XJiborne la solution obtenue par GC tronqu´e juste avant la sortie des bornes et de mˆeme on note XJiborne+1 la solution obtenue par GC tronqu´e juste apr`es la sortie des bornes (iborne repr´esente l’indice d’it´eration de GC obtenue juste avant la sortie des bornes). Ensuite on applique la m´ethode DP avec pour point de d´epart le point XJiborne et

avec pour direction d = XJiborne+1− XJiborne (notons qu’il existe une variante ou on pren-dra d = XJiborne+1− XJ0). Cette possibilit´e permet de minimiser le nombre d’it´erations de GC `a effectuer `a chaque ´etape de GC.

Troisi`eme possibilit´e (non test´ee). On r´esout partiellement (8.12) par GC avec le crit`ere de Rosen, tout en faisant ´evoluer yJ de mani`ere `a minimiser le crit`ere quadratique de

(P L)jW. Si yJ ne sort pas des bornes alors tout se passe comme dans la deuxi`eme possi-bilit´e du GC d´ecrite dans la section8.2.2. Sinon, si yJ sort des bornes, alors on d´esactive le crit`ere de Rosen, et on pousse les it´erations de GC jusqu’`a satisfaction d’un nouveau crit`ere :

k(gδm, g(yJ))k ≤ γDPkQWg(yW)k.

Ce nouveau crit`ere, que l’on appellera crit`ere de la Direction Projet´ee, est semblable au crit`ere de Rosen sauf que, cette fois-ci, la constante γDP du crit`ere doit ˆetre choisie sup´erieure `a 1 : γDP ≥ 1 (on peut voir ce nouveau crit`ere comme le crit`ere de Rosen

“re-lax´e”, nous prenons en pratique γDP = 102). Une fois le crit`ere de la Direction Projet´ee satisfait on note XJDP la solution obtenue par le GC. Puis on applique la m´ethode DP avec pour point de d´epart le point XJ0 qui correspond au point XJ initialisant l’´etape de GC et avec pour direction d = XJDP − XJ0. Cette approche permet de trouver une direction de projection pour l’´etape DP mieux ´equilibr´ee que la direction choisie dans la deuxi`eme possibilit´e pr´ec´edente. Elle devrait donc permettre d’activer des contraintes qui ont potentiellement plus de chance de figurer dans l’ensemble des contraintes actives en la solution du probl`eme (P L)j. En d’autre termes, cette approche permet de diminuer le nombre total de phases de GC g´en´er´ees par l’algorithme GP-AC-GC. Reste mainte-nant `a savoir si cette diminution compense l’augmentation du nombre d’it´erations de GC provoqu´ees par l’´equilibrage de la direction .

Une remarque sur la m´ethode DP :

1. On peut se demander pourquoi dans les possibilit´es pr´ec´edentes on n’a pas utilis´e la technique de la section 8.3.1qui consiste `a projeter d en y seulement. En fait, la direction form´ee par le vecteur

 0 dy



n’a aucune garantie d’ˆetre une direction de descente du crit`ere quadratique de (P L)j. Comme cela contredit la propri´et´e

(b) de (8.25), on ne peut donc pas envisager cette technique dans le cadre de notre m´ethode DP.

Comme pour le crit`ere d’arrˆet de Rosen, l’´etape suppl´ementaire de DP `a l’int´erieur du code GP-AC-GC a ´et´e mise en œuvre pour diminuer le nombre d’it´erations de GC. Parmi les trois possibilit´e diff´erentes pour programmer une ´etape de DP (voir ci-dessus) nous avons retenue la seconde possibilit´e. Ainsi, en pratique, pour savoir si cette ´etape suppl´ementaire de DP est efficace, on r´ealise un profil de performance (voir l’article [50] et l’annexeEpour la construction et l’interpr´etation d’un profil de performance) dans le-quel on compare le nombre d’it´erations de GC effectu´ees avec ou sans cette ´etape. Dans la figure8.2, nous avons trac´e ce profil de performance : il compare le nombre d’it´erations de GC r´ealis´ees par le code GP-AC-GC sans l’´etape suppl´ementaire de DP (courbe rouge) et celui avec cette ´etape suppl´ementaire (courbe verte en pointill´e). Ce profil de performance

Section 8.3 175 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2 2.1 2.2 x

Fig. 8.2 Profil de performance sur les it´erations de GC : Avec (courbe verte en pointill´e) ou sans (courbe rouge) l’´etape de DP

a ´et´e obtenu en testant tous les exemples de notre biblioth`eque de mod`eles en tomogra-phie de r´eflexion (cf. annexeDpour la description de cette biblioth`eque de mod`eles). Pour chaque exemple test´e, nous avons not´e le nombre total d’it´erations de GC effectu´ees lors de la premi`ere it´eration de GN. Cette figure montre clairement que le code GP-AC-GC avec l’´etape de DP (seconde possibilit´e) est le plus performant : la courbe verte est situ´ee au-dessus de la courbe rouge. Pour environ 85% des exemples test´es (voir valeur obtenue pour τ = 1), le nombre d’it´erations de GC obtenu par le code GP-AC-GC avec l’´etape de DP est inf´erieur `a celui obtenu par le code sans cette ´etape. De plus, pour chaque probl`eme le code avec l’´etape de DP n’est jamais moins bon que 1, 9 fois ce qu’a fait le code sans cette ´etape alors que le code sans l’´etape de DP est parfois 2, 2 fois moins bon que le code avec cette ´etape (i.e., le code sans l’´etape de DP demande parfois 2, 2 fois plus d’it´erations de GC).