• Aucun résultat trouvé

Garder en m´emoire les derniers contrˆoles viables

Dans le document en fr (Page 74-77)

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.

CemOA : archive ouverte d'Irstea / Cemagref

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}mi=1. Tout contrˆole discretuddeH peut ˆetre rep´er´e par des coordonn´ees enti`eres et positives{ci}mi=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 :

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{ci}mi=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 =

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 u1d,rel vaut bien 1. Comme pour tous les contrˆoles suivants, il faut v´erifier queu1d,rel appartient bien `aU(x).

und,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

CemOA : archive ouverte d'Irstea / Cemagref

CHAPITRE 3. LES ALGORITHMES DE CALCUL DE NOYAUX DE VIABILIT ´E 71 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 unposition = Pm−1

i=0 2iui6=0 qui code l’emplacement des p ≤ m coordonn´ees non nulles. Cet entier peut prendreCmp valeurs diff´erentes correspondant auxCmp 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.

un+1d,relse d´eduit deund,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)), alorsun+1d,relest 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 un+1d,rel est caract´eris´e par {v0, un−++ 1, unposition} 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)alorsun+1d,rel est caract´eris´e par{v0,0, un+1position}avec∀w ∈ Pp,m,w < unpositionouun+1position < 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)alorsun+1d,rel 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 un+1d,rel est caract´eris´e par {u0,0, v0} avec u0 = argmin(Pp−1,m) et v0 =argmin(V(argmin(Wd,p−1))).

CemOA : archive ouverte d'Irstea / Cemagref

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 alorsun+1d,relest 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.

Dans le document en fr (Page 74-77)