• Aucun résultat trouvé

Algorithme d’approximation de bassins de capture dans l’espace d’état initial

pace d’état initial avec des SVMs

Dans le chapitre 1, nous avons proposé un algorithme qui approche un bassin de capture dans l’es- pace d’état initial en utilisant une méthode d’apprentissage. Nous proposons dans cette section d’utiliser les SVMs comme méthode d’apprentissage. Nous étendons ensuite la procédure au cas où l’on travaille sur plusieurs pas de temps. Finalement, nous décrivons l’algorithme général d’approximation, en utili- sant les SVMs.

4.2.1

Respect des conditions d’application de l’algorithme

Les algorithmes 3.2 et 3.3 convergent vers le bassin de capture si la procédure d’apprentissage respecte les conditions suivantes :

– pour l’algorithme par l’extérieur : ∃λ ≥ 1 tel que ∀x ∈ Ln h, d(x, C n h) ≤ λβ(h), ∀x ∈ K\Ln h, d(x, Kh\Chn) ≤ β(h). (4.12)

– pour l’algorithme par l’intérieur :

∀x ∈ Ln h, d(x, C n h) ≤ β(h), ∃λ ≥ 1 tel que ∀x ∈ K\L(Cn h), d(x, Kh\Chn) ≤ λβ(h). (4.13)

Afin de respecter ces conditions, la procédure de classification ne doit pas faire d’erreur de classification et ne pas avoir d’irrégularités supérieures à β(h). Nous n’avons aucune démonstration rigoureuse que les SVMs respectent ces conditions mais il existe des arguments qui laissent penser que ce sera géné- ralement le cas, en choisissant correctement les paramètres de la fonction (paramètres C et σ dans les équations (2.9) et (2.11)). En posant λ = 1, les conditions (4.12) et (4.13) sont identiques et sont les mêmes que dans l’algorithme général présenté dans le chapitre 1. Le respect des conditions du théorème, avec λ = 1, est discuté dans le chapitre 2.

A chaque itération de l’algorithme, on construit un vecteur d’apprentissage S, constitué de l’en- semble des points xhde Kh, associés à l’étiquette +1 si xh∈ Chnet −1 sinon. On calcule une fonction

SVM à partir de S pour obtenir la fonction de classification fnet on définit l’ensemble Ln

hcomme suit :

Lnh= {x ∈ K tel que fn(x) ≥ 0} . (4.14)

4.2.2

Méthode d’optimisation pour trouver un contrôle qui permet de capturer

la cible

4.2.2.1 Optimisation sur un pas de temps

De la même façon que dans le chapitre 2, utiliser des SVMs pour définir l’approximation courante d’un bassin de capture permet d’utiliser une méthode d’optimisation pour chercher un contrôle viable. On évite ainsi l’augmentation exponentielle du temps de calcul lorsque la dimension de l’espace des contrôles augmente. A la différence de l’algorithme décrit dans le chapitre 2 où l’on cherche s’il existe au moins un contrôle qui va permettre de rester à l’intérieur de l’approximation courante du noyau, on recherche ici s’il existe au moins un contrôle qui va permettre à un point d’atteindre l’approximation du bassin de capture au temps précédent.

Par construction, on a à l’itération n + 1, Chn+1⊂ Cn

h (les points qui peuvent atteindre la cible avant le

temps n.dt sans quitter K vont pouvoir également l’atteindre avant le temps (n + 1).dt). Ainsi, il suffit de tester uniquement les points xh∈ Kh\Chnpour définir l’ensemble C

n+1

h : maximiser f n(x

h) fournit

un contrôle qui permet à la trajectoire xh(.) d’atteindre Lnh, si un tel contrôle existe. A partir d’un point

x, on réalise une descente de gradient jusqu’à trouver la suite de contrôle (uj)jqui maximise la fonction

fn(x) :

u∗= arg max

u∈U (x)fn(x + ϕ(x, u)dt), (4.15)

et on note x∗le point atteint en utilisant le contrôle u∗.

A la première itération, la fonction f0n’est pas définie analytiquement. En pratique, on pose :

Ch0= {xh∈ Khtel que xh∈ C} , (4.16)

et on calcule la première fonction SVM à partir de l’ensemble d’apprentissage S, constitué des points de Khavec une étiquette +1 si xh∈ Ch0et une étiquette −1 sinon.

4.2. ALGORITHME D’APPROXIMATION DE BASSINS DE CAPTURE DANS L’ESPACE D’ÉTAT INITIAL 61

4.2.2.2 Optimisation sur j pas de temps

De la même façon que décrit dans le chapitre 2, il est possible de déterminer une séquence de j pas de temps à chaque itération. Dans ce cas, à l’itération n, Lnhest l’approximation (par l’intérieur ou par l’extérieur) de CaptG(K, C, n.j.dt). On définit itérativement la trajectoire partant du point x :



t(x, u1) = x + ϕ(x, u1)dt,

t(x, u1, ..., uj) = t(x, u1, ..., uj−1) + ϕ(t(x, u1, ..., uj−1), uj)dt.

(4.17)

De la même façon que pour l’optimisation à un pas de temps, on utilise une descente de gradient pour maximiser la fonction fn.j(t(x, u1, ..., uj)), ce qui fournit un contrôle, s’il existe, qui permet à la tra-

jectoire d’atteindre Lnh.

Posons nT = dtT, le nombre d’itérations nécessaires pour obtenir le bassin de capture au temps T .

Lorsque (nT mod j) 6= 0, le nombre de pas à la dernière incrémentation de la grille doit être adapté

afin de respecter la contrainte sur la dimension temps y ∈ [0; T ].

4.2.3

Simplification de l’algorithme

Dans le chapitre 2, nous avons remarqué que le calcul de la distance µβ(h) dans les algorithmes 3.2 et 3.3 n’est pas directe à calculer. De plus, cette opération tend à produire des approximations prudentes et nous avons constaté, pour certains exemples au moins, qu’elle augmente l’effet diffusif. On peut utiliser une règle plus simple pour définir les ensembles Lnh:

– pour l’approximation par l’extérieur

Chn+1= {xh∈ Khtel que fn(x∗h) ≥ −δ et (x ∗

h) ∈ K} , (4.18)

– pour l’approximation par l’intérieur

Chn+1= {xh∈ Khtel que fn(x∗h) > δ et (x ∗

h) ∈ K} . (4.19)

Dans les équations (4.18) et (4.19), on choisit δ = 1 car cela limite la définition de l’approximation à une des marges de la SVM. Pour l’approximation par l’intérieur, les points qui sont vecteurs de support avec une étiquette −1 sont situés à l’intérieur de l’approximation et proches de la frontière de la SVM. Pour l’approximation par l’extérieur, l’approximation n’inclut pas les points qui sont vecteurs de support avec une étiquette +1. Cette procédure tend à satisfaire une condition plus stricte que (4.12) et (4.13), mais qui ne la garantit pas.

4.2.4

Erreur empirique d’approximation

Nous avons vu dans le chapitre 3 que l’aire entre les deux approximations (par l’extérieur et l’inté- rieur) permet d’obtenir, pour un exemple donné, une estimation informatique de l’erreur d’approxima- tion. Cependant, l’aire entre ces deux ensembles n’est pas directe à calculer. On choisit une méthode plus simple et facile à mettre en oeuvre : on sait que l’approximation par l’intérieur (notée Ihp) est incluse dans l’approximation par l’extérieur (notée Ehp), et Ihp ⊂ CaptF(K, C) ⊂ Eph. Ainsi, sur un exemple

donné, on dénombre l’ensemble des points xh ∈ Kh tels que xh ∈ Ehpet xh ∈ I/ hp, ce qui donne une

approximation grossière de l’aire entre les deux ensembles. Afin de supprimer l’effet taille de la grille, on divise ensuite le total obtenu par le nombre de points contenus dans l’approximation par l’extérieur, afin d’obtenir une estimation empirique de l’erreur d’approximation  sur un exemple donné :

 = Card({xh∈ E p het xh∈ I/ hp}) Card({xh∈ E p h}) . (4.20)

4.2.5

Algorithme général d’approximation de bassins de capture avec des SVMs

L’algorithme 4.2 décrit l’algorithme général d’approximation d’un bassin de capture en temps fini T . La procédure est détaillée ici dans le cas d’une approximation par l’extérieur mais le cas par l’intérieur peut en être facilement déduit : au lieu de tester si fn(xh) ≥ −1 (ou fn(x∗h) ≥ −1), on teste si

fn(xh) > 1 (ou fn(x∗h) > 1). On se fixe un temps maximal de capture T ∈ R

+, et on suppose que (n T

mod j) = 0 afin de simplifier la présentation de l’algorithme.

Algorithme 4.2 Algorithme général d’approximation par l’extérieur d’un bassin de capture dans l’es- pace d’état initial

S ← ∅ n = 0

// Initialisation

Pour tout xh∈ KhFaire

Si xh∈ C Alors S ← SS(xh, +1) Sinon S ← SS(xh, −1) Fin si Fin pour

// Itérations suivantes, pour j pas de temps Faire

Calculer fn(x) à partir de S

Pour tout xh∈ KhFaire

Si fn(xh) ≥ −1 Alors S ← SS(xh, +1) Sinon Si (fn(x∗h) ≥ −1) et (x ∗ h∈ K) Alors S ← SS(xh, +1) Sinon S ← SS(xh, −1) Fin si Fin si Fin pour Calculer fn(x) à partir de S S → ∅ n = n + j Jusqu’à n = nT Renvoyer fn(x)