• Aucun résultat trouvé

Garder en m´emoire les derniers contrˆoles viables

3.2 Am´eliorer l’impl´ementation de l’algorithme de viabilit´e

3.2.2 Garder en m´emoire les derniers contrˆoles viables

Motivations

Pour d´eterminer si un point de la grille doit ˆetre retir´e ou non, il faut tester si au moins un de ses successeurs appartient `a la grille (3.30). Si aucun successeur n’appartient `a la grille, le point est retir´e. Ces successeurs sont d´efinis en g´en´eral par une correspondanceG:X X. Nous nous int´eressons au cas o`u

G(x) :=g(x, u)avecu∈U(x).

Si effectivement un des successeurs appartient `a la grille, la r´eponse `a la suite des tests est qu’il faut conserver le point initial et cette r´eponse est obtenue d’autant plus rapidement qu’un successeur appartenant `a la grille apparaˆıt tˆot dans la liste des successeurs `a tester.

De nombreux exemples de noyaux de viabilit´e calcul´es analytiquement ou de mani`ere approch´ee par l’algorithme de viabilit´e ont des fronti`eres qui pr´esentent peu ou pas de singu-larit´es.

CHAPITRE 3. LES ALGORITHMES DE CALCUL DE NOYAUX DE VIABILIT ´E 70

Le fait de tester en priorit´e, pour un pointx, les successeurs calcul´es en utilisant des contrˆoles proches de ceux qui ont permis de trouver un successeur sur la grille pour un point voisin de xpermet un gain de temps dans les zones o`u le contrˆole viable varie peu.

Description de l’algorithme permettant de tester les contrˆoles du plus proche au plus ´eloign´e du contrˆole de r´ef´erence

L’ensemble compactU(x)∈Rm des contrˆoles admissibles au pointxd´epend dex. Nous supposons qu’il existe un hypercube H = Qm

i=1[ai, bi] tel que∀x ∈ K, U(x) ⊂ H. Ces contrˆoles sont discr´etis´es suivant les pas{ei}m

i=1. Tout contrˆole discretuddeH peut ˆetre rep´er´e par des coordonn´ees enti`eres et positives{ci}m

i=1 etud = {. . . , ai +ci.ei, . . .}. Nous d´efinissons la distance entre deux contrˆoles `a partir de la normeL1sur la diff´erence de leurs coordonn´ees enti`eres : d(ud, vd) = m X i=1 |ci(ud)−ci(vd)|.

Soientx un point de la grille `a tester ety un point voisin dex conserv´e car son successeur calcul´e avec le contrˆoleudde coordonn´ees{c

i}m

i=1appartient `a la grille.

Le premier successeur dex `a tester est celui calcul´e avecudsi bien sˆurud∈U(x). Ensuite il faut tester ceux qui sont `a une distance de 1 deudtout en appartenant `aU(x), puis 2,... La valeur,dmax, de la distance maximale entreudetud ∈ U(x)d´epend des coordonn´ees du contrˆole discret de r´ef´erenceud:

dmax = m−1 X i=0 max(ci,bi−ai ei −ci).

Les contrˆoles `a tester sont rep´er´es par leurs coordonn´ees enti`eres relatives par rapport `a ud contrˆole de r´ef´erence.

Les coordonn´ees relatives du contrˆole `a tester apr`esudsont prises ´egales `a

u1d,rel ={−1,0, . . . ,0}.

La distance entre ud et u1

d,rel vaut bien 1. Comme pour tous les contrˆoles suivants, il faut v´erifier queu1

d,rel appartient bien `aU(x).

un

d,rel ={u0, . . . , um−1}est enti`erement d´etermin´e par :

– le vecteur vn de dimension p qui contient la valeur absolue des p coordonn´ees non nulles deund,rel dans le mˆeme ordre que dansund,rel. L’ensembleV(vn)des vecteursv de dimensionpdont les coordonn´ees sont celles devn `a une permutation pr`es est tota-lement ordonn´e par la relation d’ordre lexicographique. Soitd=Pp−1

i=0 vn(i).Wd,p est l’ensemble des vecteursvde dimensionpde coordonn´ees enti`eres strictement positives

CHAPITRE 3. LES ALGORITHMES DE CALCUL DE NOYAUX DE VIABILIT ´E 71

telles que ∀i ∈ {0, . . . , p−2}, v(i) ≤ v(i+ 1)et Pp−1

i=0 v(i) = d. Cet ensemble est ´egalement totalement ordonn´e par l’ordre lexicographique.

– l’entier un+ = Pm−1

i=0 2j(i)ui>0 avec j d´efini par j(0) = 0 et j(n + 1) = j(n) si un = 0etj(n+ 1) = j(n) + 1siun 6= 0. Cet entier code le signe despcoordonn´ees non nulles. Il peut prendre toutes les valeurs enti`eres entre 0 (toutes les coordonn´ees non nulles sont n´egatives) et2p−1(toutes les coordonn´ees non nulles sont positives). – l’entier un

position = Pm−1

i=0 2iui6=0 qui code l’emplacement des p ≤ m coordonn´ees non nulles. Cet entier peut prendreCp

m valeurs diff´erentes correspondant auxCp m com-binaisons dep´el´ements parmim. NotonsPp,ml’ensemble de ces valeurs. La plus petite valeur dePp,m vaut Pp−1

i=0 2i et correspond `ap premi`eres coordonn´ees non nulles. La plus grande valeur vaut Pp−1

i=0 2m−1−i

et correspond `a p derni`eres coordonn´ees non nulles. Lorsquep=m,Pm,mne contient qu’une seule valeur2m−1.

und,rel+1 se d´eduit deun

d,relsuivant les six r`egles suivantes. Une fois l’une de ces r`egles appliqu´ee les suivantes sont ignor´ees.

R`egle 1 sivn <max(V(vn)), alorsund,rel+1 est caract´eris´e par{vn+1, un+, unposition}avecvn+1 tel que∀v ∈V(vn),v < vnouvn+1 < v.

Ni les valeurs absolues, ni les emplacements, ni le signe des coordonn´ees relatives non nulles ne sont modifi´es. Leurs valeurs absolues sont uniquement permut´ees.

R`egle 2 si un

−+ < 2j −1 alors und,rel+1 est caract´eris´e par {v0, un

−++ 1, un

position} avec v0 =

argmin(V(vn)).

Ni les valeurs absolues, ni les emplacements des coordonn´ees relatives non nulles ne sont modifi´es. Les signes le sont. Les valeurs absolues sont permut´ees pour obtenir l’arrangement le plus petit suivant l’ordre lexicographique.

R`egle 3 siunposition < max(Pp,m)alorsund,rel+1 est caract´eris´e par{v0,0, unposition+1 }avec∀w ∈ Pp,m,w < unpositionouunposition+1 < wetv0 =argmin(V(vn)).

Les emplacements des coordonn´ees relatives non nulles sont modifi´es. Les signes des valeurs non nulles sont tous n´egatifs. Leurs valeurs absolues sont permut´ees pour obte-nir l’arrangement le plus petit suivant l’ordre lexicographique.

R`egle 4 sivn <max(Wd,p)alorsund,rel+1 est caract´eris´e par{v0,0, u0}avec u0 =argmin(Pp,m)etv0 =argmin(V(wn+1))

o`uwn+1tel que∀w∈Wd,p,w < vnouwn+1 < w.

Les valeurs des coordonn´ees relatives non nulles sont modifi´ees. Elles sont plac´ees aux ppremi`eres coordonn´ees. Les signes des valeurs non nulles sont tous n´egatifs. Leurs valeurs absolues sont permut´ees pour obtenir l’arrangement le plus petit suivant l’ordre lexicographique.

R`egle 5 si p > 1 alors und,rel+1 est caract´eris´e par {u0,0, v0} avec u0 = argmin(Pp−1,m) et v0 =argmin(V(argmin(Wd,p−1))).

CHAPITRE 3. LES ALGORITHMES DE CALCUL DE NOYAUX DE VIABILIT ´E 72

Le nombre de valeurs non nulles est modifi´e. Les valeurs des coordonn´ees relatives non nulles sont modifi´ees pour obtenir lesp−1valeurs dont l’arrangement est le plus petit suivant l’ordre lexicographique. Elles sont plac´ees auxppremi`eres coordonn´ees. Les signes des valeurs non nulles sont tous n´egatifs. Leurs valeurs absolues sont permut´ees pour obtenir l’arrangement le plus petit suivant l’ordre lexicographique.

R`egle 6 sid < dmax alorsund,rel+1 est caract´eris´e par{u0,0, v0}avec

u0 =argmin(Pmin(d+1,m),m)etv0 =argmin(V(argmin(Wd+1,min(d+1,m)))).

La distance est augment´ee de 1. Le nombre de valeurs non nulles est modifi´e. Les va-leurs des coordonn´ees relatives non nulles sont modifi´ees pour obtenir lesp−1valeurs dont l’arrangement est le plus petit suivant l’ordre lexicographique. Elles sont plac´ees aux p premi`eres coordonn´ees. Les signes des valeurs non nulles sont tous n´egatifs. Leurs valeurs absolues sont permut´ees pour obtenir l’arrangement le plus petit suivant l’ordre lexicographique.

R`egle 7 Il n’y a plus de contrˆole `a tester.