• Aucun résultat trouvé

4.6 Un système de contrôle et d’apprentissage

4.6.1 ESCHER est un système de contrôle

La tâche première d’ESCHER est de contrôler un système inconnu (ou du moins dont on ne connaît que les entrées et les sorties). Les Agents Contrôleurs sont responsables de la valeur définie sur leur entrée. Nous exprimons ici de manière un peu plus formelle l’activité de ce type d’agent.

Si on note ut la valeur courante de la variable d’entrée et at l’action appliquée au cycle

de vie t par l’Agent Contrôleur correspondant, la prochaine valeur de la variable d’entrée s’exprime comme :

ut+1=ut+at

L’Agent Contrôleur choisit atà chaque cycle de vie t en fonction de ses représentations, qui

sont composées de :

– Ct, l’ensemble des niveaux de criticités des Agents Critères, mis à jour au cycle de vie t. – Pt, l’ensemble des propositions des Agents Contextes valides au cycle de vie t.

La proposition d’un Agent Contexte m valide au cycle de vie t de l’Agent Contrôleur est notée :

pmt := (amt , Ftm) ∈ Pt

où amt est une action et Ftm est un ensemble de fonctions de prévision de niveaux de criticité. Ainsi une fonction ftm,i ∈ Fm

l’Agent Contexe m suite à l’application de l’action amt :

ftm,i(amt ) =cti +δm(amt ) (4.1)

où cit ∈ Ct est la criticité de l’Agent Critère i perçue au cycle de vie t, et δm est une fonction

résultant de l’apprentissage de l’Agent Contexte m. En pratique, un Agent Contexte m envoie une proposition d’action am

t accompagnée de l’ensemble des valeurs ftm,i(amt ), et non un

ensemble de fonctions ftm,i calculables. L’expression 4.1 avait seulement pour but de faire apparaître explicitement une partie de l’apprentissage des Agents Contextes, dont nous reparlerons plus tard.

Pour chaque proposition pmt , on définit la fonction fmaxm comme celle qui retourne le plus haut niveau de criticité (en d’autres termes celle qui correspond à l’Agent Critère le plus critique) :

fmaxm := ftm ∈ Ftm, ftm(amt ) =max

f∈Fm t

(f(amt ))

C’est sur les valeurs des fmaxm qu’il reçoit que l’Agent Contrôleur base son choix, du moins dans le cas nominal.

4.6.1.1 Cas nominal

Dans le cas nominal, l’action at est choisie comme celle de la proposition dont la prévision

de niveau de criticité est la plus basse tout en étant inférieure au niveau de criticité maximum courant :

at := ai ∈ At, fmaxi (ai) =minm (fmaxm (am)) ∧fmaxi (ai) ≤maxCt (4.2)

oùAtest l’ensemble des actions des propositions valides au cycle de vie t.

Le cas nominal est un cas idéal dans lequel l’Agent Contrôleur a reçu des propositions adéquates, c’est-à-dire parmi lesquelles il existe au moins une action permettant de faire baisser la criticité. Malheureusement, il ne se trouve pas toujours dans ce cas.

4.6.1.2 Situations de Non-Coopération

En effet, si :

@fmaxi ∈Ftm, fmaxi (ai) ≤maxCt (4.3)

alors l’Agent Contrôleur ne se trouve pas dans le cas nominal mais dans une situation de non-coopération. L’équation 4.2 ne s’applique donc pas et le choix de at sera dicté par une

partie de la résolution de la SNC. Il peut s’agir de la SNC 1 ou de la SNC 2.

SNC 1 Le premier cas se présente lorsque le procédé contrôlé se trouve dans une zone de son espace d’états encore non explorée par ESCHER. Il n’y a par conséquent aucun Agent Contexte valide, ce qui implique quePt=∅, et doncAt =∅. L’Agent Contrôleur va alors se

baser sur son action précédente et sur ce qu’il a observé des niveaux de criticité pour définir l’action à appliquer. at:= ( at−1 si maxCt<maxCt−1 −at−1 sinon

Les deux autres cas surviennent lorsque l’Agent Contrôleur a bien une ou plusieurs propositions, mais qu’aucune n’est satisfaisante (c’est-à-dire qu’aucune ne prévoit une baisse du niveau de criticité maximum, voir condition 4.3). Il s’agit de la SNC 2. On noteAl’ensemble de toutes les actions possibles pour l’Agent Contrôleur. On a donc à tout cycle de vie t : At⊆ A.

SNC 2 - Cas 1 SiAt = A, c’est que tout a déjà été tenté. On ne peut pas diminuer le niveau de criticité maximum. Le processus de décision de l’action est alors relancé, en se basant cette fois-ci sur le deuxième Agent Critère le plus critique et en ajoutant la contrainte de ne pas dégrader la criticité maximum. Si aucune décision n’est prise, on continue, itérativement, de passer à l’Agent Critère immédiatement moins critique. Si aucune action n’est choisie après la dernière itération, il n’y a rien de mieux à faire que de sélectionner l’action qui fait le moins augmenter le niveau de criticité maximum.

at := ai ∈ At, fmaxi (ai) =minm (fmaxm (am))

SNC 2 - Cas 2 Enfin, lorsque At 6= ∅∧ At 6= A, cela signifie que certaines actions n’ont

pas encore été essayées dans l’état courant du procédé. On noteAc = A − At l’ensemble de ces actions candidates, c’est-à-dire celles qui ne sont pas en train d’être proposées. L’Agent Contrôleur suppose que parmi ces actions s’en trouve une convenable, il va expérimenter en tirant aléatoirement une de ces actions dans Ac.

at :=rand(Ac)

La loi de probabilité sur Ac est uniforme dans le cas général. Cependant il existe des cas particuliers, qui ressemblent à la SNC 1 et pour lesquels une action prévaut par rapport aux autres :

(

P(at= at−1|at−1 ∈ Ac∧maxCt <maxCt−1) =1

P(at= −at−1| −at−1 ∈ Ac∧maxCt >maxCt−1) =1

La formalisation présentée ici concerne uniquement l’activité de contrôle d’un Agent Contrôleur. Les aspects de couplage avec son groupe d’Agents Contextes, auxquels il envoie des feedbacks ont été négligés car ils concernent la deuxième facette de ESCHER.

De manière générale, la résolution des SNC ne se réduit pas au choix d’une action "de secours" à appliquer, elle provoque également la création, l’ajustement, et la suppression des Agents Contextes. Cela permet aux agents d’être de plus en plus adaptés, et donc au système de tendre vers l’adéquation fonctionnelle.