• Aucun résultat trouvé

Remplacer l’espace par le temps : l’algorithme de viabilit´e lourd

via-bilit´e lourd

Pour traiter des probl`emes de dimension sup´erieure, nous proposons, dans cette section, d’approcher les noyaux de viabilit´e discrets en temps par l’ensemble des points viables jus-qu’`aT fix´e. Les coordonn´ees de ces points sont not´ees dans un fichier mais n’ont pas besoin d’ˆetre conserv´ees en m´emoire.

3.4.1 Le principe de l’algorithme de viabilit´e lourd

Cet algorithme est inspir´e par le principe d’inertie. Selon ce principe, le contrˆole doit rester constant tant que la viabilit´e du syst`eme n’est pas en danger, autrement dit, le contrˆole doit rester constant tant que l’´etat du syst`eme appartient `a l’int´erieur du noyau de viabilit´e. Lorsque ce contrˆole ne permet plus de contenir l’´etat du syst`eme dans le noyau de viabilit´e, il est remplac´e par le contrˆole le plus proche appartenant `a l’ensemble de r´egulation afin d’assurer la viabilit´e du syst`eme.

SoientX :=Rn, nous consid´erons les inclusions diff´erentielles du type :

(

x0 = f(x, u)

u ∈ U(x), pour presque toutt ∈R+, (3.49) o`uf :X×Rm →X etU :X Rm.

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

Comme dans la section3.1, pour unρ >0fix´e, nous associons `a cette inclusion diff´erentielle le sch´ema explicite de discr´etisation d’Euler, et notons Gρ la correspondance d´efinie par Gρ= 1 +ρF etgρla fonction d´efinie pargρ= 1 +ρf :

Gρ(x) ={gρ(x, u)|u∈U(x)} et le syst`eme discret en temps s’´ecrit :

(

xn+1 = gρ(xn, un)pour toutn ≥0

un ∈ U(xn). (3.50)

Les ensemblesU(x)sont discr´etis´es. Soientxun point deK ⊂Xferm´e etuun contrˆole appartenant `aU(x), nous consid´erons le successeurydexpar la dynamique discr`ete en temps gρ. Siyappartient `aK, alors nous choisissons parmi les contrˆolesv ∈U(y)l’un de ceux qui sont les plus proches de upuis nous appliquons gρ `a nouveau. Notonsz le successeur dey ainsi obtenu. Si z n’appartient pas `a K, nous remplac¸onsv par un autre contrˆole de U(y), proche de v et non encore test´e puis nous appliquons gρ `a nouveau. S’il ne reste plus de contrˆole `a tester dansU(y), c’est le contrˆole associ´e `axqui est modifi´e.

Ainsi, les dur´ees de plusieurs ´evolutions issues dexet restant dansK sont ´evalu´ees et la plus grande d’entre elles est m´emoris´ee, notons-laT. Les informations obtenues durant cette phase d’exploration sont des minorants des dur´ees de vie futures maximales dexet des successeurs appartenant aux ´evolutions suivies.

En appliquant la dynamique r´etrograde−Gρnous obtenons des minorants des dur´ees de vie pass´ees maximales dexet de ces pr´ed´ecesseurs mais surtout des minorants des dur´ees de vie futures des pr´ed´ecesseurs dex. C’est la phase d’exploitation.

3.4.2 La description de l’impl´ementation de l’algorithme

Le programme que nous avons d´evelopp´e ex´ecute la tˆache suivante : cr´eer une base de donn´ees contenant des coordonn´ees de points de l’espace des ´etats, le plus grand des mino-rants trouv´es de leur dur´ee de vie pour la dynamiqueGρ, ainsi que les contrˆoles associ´es `a l’´evolution correspondant `a la plus grande des dur´ees de vie trouv´ees.

En choisissant pourT une valeur seuil, ces points peuvent ´egalement ˆetre class´es en viables jusqu’`aT et non viables jusqu’`aT.

Les param`etres

Les param`etres sont la dimension de l’espace des ´etats X (xdim), la dimension de l’es-pace des contrˆolesU(udim), la valeur seuil de la dur´ee de vie qui s´epare les points«viables»,

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

dans le sens viables jusqu’`aT, des «non viables»(T), le pas de temps (ρ), le pas d’espace (precision), le pas de discr´etisation du i`eme contrˆole (ei) et les deux conditions d’arrˆet : le nombre d’actions maximal que l’algorithme est autoris´e `a r´ealiser (nombredessais) et l’ob-jectif, la proportion de points de la grille de pas d’espaceprecisiondont le statut (viable ou non viable) doit ˆetre d´etermin´e (pourcentageseuilremplissage).

Les entr´ees

La dynamique n’est pas d´ecrite par l’inclusion diff´erentielleF(x, u)avecu∈U(x), mais par le sch´ema discret associ´egρ(x, u). La dynamique r´etrograde est d´ecrite par −gρ(x, u). L’ensembleK est d´efini par une proc´edure qui associe `ax ∈ X la valeur 1 sixest dansK et 0 sinon. De mˆeme, l’ensemble des contrˆoles admissiblesU(x)est d´efini par une proc´edure qui associe `aula valeur 1 siuest dansU(x)et 0 sinon. `A l’initialisation, unxdansK et un udansU(x)sont choisis arbitrairement.

Les structures

Nous avons d´efini trois structures :

– la structurelisteX: lors du d´eroulement de l’algorithme, deuxlisteXsont cr´ees. L’une est une liste qui contient les coordonn´ees des points viables associ´es `a leur dur´ee de vie maximale (un entier plus grand queT ou 0 si le point appartient `a un cycle) et les contrˆoles qui permettent d’atteindre cette dur´ee de vie maximale. L’autre est une liste de coordonn´ees de points non viables associ´es `a leur dur´ee de vie maximale (un entier plus petit que T) et les contrˆoles qui permettent d’atteindre cette dur´ee de vie maximale,

– la structure trame est une liste qui contient les informations relatives `a l’´evolution courante, c’est `a dire essentiellement les contrˆoles d´ej`a test´es en chaque point de sa trajectoire,

– la structurecyclesenregistre les pseudo-cycles (un pseudo-cycle est rep´er´e lorsque deux ´etats du syst`eme `a deux instants diff´erents sont plus proches que le pas d’espace). Ces structures ´echangent des informations :

– une proc´edure ajoute `a lalisteXdes points non viables le dernier point de la trajec-toire enregistr´e danstramed`es que les dur´ees de vie de toutes les ´evolutions discr`etes issues de ce point sont calcul´ees et sont plus petites que T. La mˆeme proc´edure est utilis´ee pour ajouter `a lalisteXdes points viables les successeurs pour la dynamique r´etrograde d’un point viable,

enre-CHAPITRE 3. LES ALGORITHMES DE CALCUL DE NOYAUX DE VIABILIT ´E 83

gistr´ee dans la structuretrame. Les cyles ´eventuels sont m´emoris´es dans la structure

cycles.

Les proc´edures principales de l’algorithme de viabilit´e lourd

La proc´edure CalculUsuivant associe `a x et au dernier contrˆole test´e en ce point le prochain contrˆole `a tester de la description discr`ete de U(x). Le nombre de contrˆoles `a tester en xd´epend des param`etres ei et, suivant le principe d’inertie, le prochain contrˆole `a tester est le plus proche au sens de la distance associ´ee `a la normeL1 du contrˆole test´e au pas pr´ec´edent. Les contrˆoles discrets issus deU(x)sont ordonn´ees par distance associ´ee `a la normeL1 croissante au premier contrˆole test´e deU(x). Ils sont test´es dans cet ordre jusqu’`a ce que l’un d’entre eux induise une ´evolution viable sur un pas de temps.

La proc´edure UnEssai calcule les coordonn´ees du successeury du dernier point xde la trajectoire enregistr´ee dans la structuretrame. Siyappartient `aK et siyn’a pas encore ´et´e list´e en tant que point viable ou non viable,yest ajout´e `a la structure trame. Sinon, le prochain contrˆole `a tester est calcul´e. S’il n’y a plus de contrˆole `a tester,xest list´e en tant que point non viable et supprim´e de la structuretrame. Cette proc´edure enregistre ´egalement la dur´ee de vie maximale et les contrˆoles associ´es.

La proc´edureUnEssaiInvest la mˆeme queUnEssaipour la dynamique r´etrograde.

Les boucles de l’algorithme de viabilit´e lourd

L’algorithme de viabilit´e lourd comporte deux boucles : la boucle d’exploration (Fig.

3.10) et la boucle d’exploitation (Fig.3.11).

La boucle d’exploration est pr´ec´ed´ee par le choix au hasard d’un x dans K et d’un contrˆoleu∈ U(x). Dans cette boucle, une action consiste `a appliquer la dynamique discr`ete ant´erograde au dernier point de la trajectoire enregistr´e dans la structuretrame. Le premier contrˆole test´e est celui qui est le plus proche du contrˆole utilis´e au pas pr´ec´edent sur la tra-jectoire. Si le successeur n’est pas dansK, le contrˆole suivant est test´e par ordre de distance associ´ee `a la normeL1 croissante au contrˆole initial. La boucle se termine lorsque :

– une ´evolution d’une dur´ee de vie ´egale `aT est trouv´ee,xest alors d´eclar´e viable, – un cycle a ´et´e d´etect´e, tous les points enregistr´es dans la structure trame sont alors

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

– le nombre d’action autoris´enombredessaisest atteint,

– toutes les ´evolutions discr`etes issues dexont ´et´e test´ees,xest alors d´eclar´e non viable. La boucle d’exploitation est activ´ee si la boucle d’exploration pr´ec´edente a trouv´e des points viables. Dans cette boucle, une action consiste `a appliquer la dynamique discr`ete r´etrograde aux points viables enregistr´es dans la structuretrame`a l’issue de la phase d’ex-ploration. Tous les successeurs pour la dynamique r´etrograde des points viables sont d´eclar´es viables. Cette boucle se termine lorsque :

– le nombre d’action autoris´enombredessaisest atteint,

– toutes les ´evolutions discr`etes issues de tous les points viables ont ´et´e test´ees.

Apr`es une boucle d’exploitation, la performance de l’algorithme est ´evalu´ee. La fonction d’´evaluation est la proportion de points de la grille de pas d’espaceprecisiondont le statut (viable ou non viable) a ´et´e d´etermin´e. Si le pourcentage fix´e,pourcentageseuilremplissage n’est pas atteint, une nouvelle boucle d’exploration commence.

FIG. 3.10 – Algorithme de viabilit´e lourd - Phase d’exploration. Les coordonn´ees des points repr´esent´es par des grands disques rouges ainsi que les contrˆoles qui permettent de passer de l’un `a l’autre sont enregistr´es dans la structuretrame, ils constituent l’´evolution active : cette ´evolution issue dexreste dansK durant 5 pas de temps au moins. Les coordonn´ees des points repr´esent´es par des carr´es bleus pleins ou vides sont not´es non viables dans la structure

listeXavec la dur´ee de vie ´egale `a 1 pour les carr´es bleus vides et ´egale `a 2 pour les carr´es bleus pleins.

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

FIG. 3.11 – Algorithme de viabilit´e lourd - Phase d’exploitation. Si x est d´eclar´e viable `a la suite de la phase d’exploration, la phase d’exploitation va chercher tous ses pr´ed´ecesseurs pour les d´eclarer viables ´egalement. Les coordonn´ees des points repr´esent´es par des disques pleins verts ainsi que les contrˆoles qui permettent de passer de l’un `a l’autre sont enregistr´es dans la structure trame, ils constituent l’´evolution active qui ´evolue afin de recenser tous les pr´ed´ecesseurs dexappartenant `aK. Les coordonn´ees des pr´ed´ecesseurs recens´es (points repr´esent´es par des carr´es vides bleus) sont not´es viables dans la structurelisteX.