Sous-sections
Participants : Hervé Marchand,
Sophie Pinchinat, Stéphane Riedweg.
Mots clés : système dynamique
polynomial, synthèse de contrÔleur, logiques pour le
contrÔle, commande optimale, modèle hiérarchique .
Résumé :
Sur la base des modèles d'automates
symboliques [18], nous nous intéressons à l'étude de
logiques pour la spécification mais aussi la classification
d'objectifs de contrÔle. Nécessairement couplées à ce
travail, nous étudions des méthodes de calculs effectives
des contrÔleurs correspondants. De plus, sur la base des
résultats de [15] nous nous sommes intéressés à des
méthodes de synthèse de contrÔleurs optimaux pour des
systèmes partiellement observés. En parallèle, de manière à
réduire la complexité des algorithmes de synthèse de
contrÔleurs, nous regardons actuellement comment conserver
la hiérarchie implicite des systèmes lors du calcul d'un
contrÔleur.
Si des objectifs de contrÔle importants, tels que
l'invariance, sont relativement bien cernés, d'autres types
d'objectifs sont encore mal maîtrisés. Nous étudions
l'utilisation de la logique pour exprimer les objectifs de
contrÔle et des méthodes de manipulation de logique pour
synthétiser un contrÔleur. Notons qu'à l'heure actuelle peu
de travaux abordent ces problèmes par ce biais.
Pour le moment, nous nous restreignons à l'approche
suivante : le système à contrÔler sera décrit par un modèle
de jeu entre le système et son environnement
. Les objectifs de
contrÔle reviennent à énoncer l'existence de stratégies
(gagnantes) pour le système, et peuvent donc être exprimés
par des logiques (e.g., la logique «Alternating-time Temporal
Logic» (ATL)). Il est alors intéressant
d'exploiter les techniques de «model-checking» (e.g.
ATL) pour décider de l'existence d'une
solution au contrÔle. Toutefois, cette technique ne permet
aucunement la construction effective de la solution. Nous
étudions donc des enrichissements d'algorithmes de
model-checking pour intégrer une construction. De plus, le
cadre logique peut être étudié pour l'expression des
propriétés qualitatives de la solution obtenue, e.g.,
unicité, maximalité, etc. des contrÔleurs. Ce travail se
situe au carrefour de plusieurs domaines, tels que les
logiques (ATL,
-calcul, logiques monadiques du second
ordre...), les techniques de model-checking, la théorie des
automates (automates de mots infinis, automates
d'arbres...).
Basé sur une modélisation du système sous forme d'un automate
explicite [15], nous avons regardé le problème de
la synthèse de contrÔleur optimal appliquée à un système
partiellement observé (seul un sous-ensemble des événements
incontrÔlables est observable)[33]. L'idée de la commande optimale est de
calculer un contrÔleur qui pilote un système de manière à
forcer celui-ci à achever une tâche en minimisant un certain
critère de performance. Dans notre approche, des coûts sont
affectés à chaque événement. À partir de cette fonction de
coût, il est possible de définir le coût d'une trajectoire
comme étant la somme des coûts des événements qui
interviennent dans cette trajectoire. Le but du contrÔleur
est alors de restreindre le comportement du système de
manière à ce que celui-ci n'emprunte que des trajectoires de
coûts minimaux.
Dans le cadre de l'observation partielle, notre solution
se décompose en deux étapes. Le point de départ est une
machine à états finis qui représente le comportement global
du système, incluant son comportement non-observable.
Premièrement, nous dérivons du système partiellement observé
un observateur, appelé C-Observer. Cette étape est
nécessaire puisque l'on ne peut espérer du contrÔleur qu'il
pilote le système à partir des événements non observables du
système. Toutefois, lors de cette abstraction, nous
«mémorisons» une approximation du coût des trajectoires
non-observables entre deux événements observables du système.
Cette approximation correspond au pire (i.e., le plus élevé)
des coûts des différentes trajectoires entre deux événements
observables. En effet comme ces trajectoires ne sont pas
observables, il n'est pas possible de retrouver le coût de
celles-ci une fois que l'on a projeté le système sur les
composantes observables. Notre but étant de calculer un
contrÔleur qui minimise le coût de trajectoires, il est
nécessaire de stocker ces approximations de coûts dans
l'observateur de manière à réaliser un contrÔle le plus
précis possible. Basé sur le modèle du C-Observer,
nous avons défini, d'une part une nouvelle notion de
contrÔlabilité de manière à éviter que le système contrÔlé ne
se trouve en deadlock sans que l'on puisse
l'observer de l'extérieur, et d'autre part une nouvelle
manière de calculer le coût des trajectoires du système.
Durant la seconde étape, modulo une rapide transformation du
C-observer permettant de ramener le coût d'un état sur
les événements admissibles dans cet état, nous utilisons
l'algorithme présenté dans [SL98] pour synthétiser une sous-machine
optimale du C-Observer. À partir de cette
sous-machine, il est possible de dériver un contrÔleur
permettant de contrÔler le système de manière optimale.
Ces travaux sont conduits en collaboration avec Stéphane
Lafortune de l'université du Michigan, Ann Arbor, MI,
USA.
Que ce soit en vérification ou en synthèse de contrÔleurs, la
méthodologie appliquée est le plus souvent la suivante : les
systèmes à contrÔler et/ou à vérifier sont à l'origine
spécifiés de manière hiérarchique (analyse descendante en
génie logiciel). Puis la synthèse et/ou la vérification
s'appliquent sur le système mis à plat (toute modularité
verticale a été oubliée). Sachant que la complexité des
algorithmes de calcul croît exponentiellement avec le nombre
d'états des systèmes mis en parallèle et imbriqués, il semble
très important de chercher à garder cette hiérarchie lors du
calcul des contrÔleurs. L'objectif est d'étudier des
techniques générales de simplification portant à la fois sur
le système à contrÔler et sur les algorithmes de synthèse.
Dans ce contexte, la prise en compte de la modularité
verticale semble être une voie prometteuse : il est possible
de spécifier des objectifs de contrÔle à différents niveaux
selon la «vue» que l'on a du système (e.g., objectif
d'ordonnancement de tâches à haut niveau, objectifs de
sécurité propres, plus bas dans la hiérarchie). Le problème
est relativement ardu. Comment synthétiser des contrÔleurs à
un certain niveau de la hiérarchie qui restent génériques
lorsqu'on les «plonge» dans un contexte de plus haut niveau ?
Un premier modèle hiérarchique a été décrit. Il s'agit
d'une généralisation des structures de Kripke hiérarchiques
développées par [AY98]. Le modèle hiérarchique
(HFSM, pour «Hierarchical Finite State
machine») que nous considérons peut être caractérisé par une
collection de structures imbriquées
K1,...Kn
, où K1 représente le plus haut
niveau de la HFSM. À un niveau intermédiaire,
la structure Ki
est une HFSM, pour laquelle les états sont
soit des «états ordinaires» soit des «macro-états
b» qui sont constitués d'un
ensemble de structures
(Kj)j
Jb
2
Ki + 1,...,
Kn
, évoluant en
parallèle. Chaque structure peut avoir plusieurs états
initiaux (resp. finaux). Le comportement d'une structure est
le suivant : lorsque le système transite dans un macro-état
b, toutes les structures
associées à b sont activées
et initialisées dans un de leurs états initiaux. A
contrario, la sortie d'un macro-état est synchronisée
avec la fin des tâches associées aux différentes structures
de b (i.e., chaque structure
est dans un état final). Entre deux états (ordinaires ou
macro), le comportement de la structure est similaire à celui
d'un automate plat. Les études en cours visent à généraliser
les algorithmes de synthèse de contrÔleurs (invariance,
atteignabilité, etc.) à ce nouveau modèle. Ceci nécessite
notamment l'introduction d'une nouvelle définition de
contrÔlabilité, incluant une certaine notion de
«liveness».