Descriptif :
La supervision de programmes (logiciels) --- ou pilotage de programmes --- est une technique d'intelligence artificielle qui repose sur des méthodes de planification de l'exécution des programmes, du contrôle de leurs résultats avec reprise éventuelle en cas d'évaluation non satisfaisante. Ceci s'effectue grâce à la formalisation de la connaissance sur l'utilisation des différents programmes. Ce savoir-faire est stocké dans une base de connaissances exprimé dans un langage métier ; il comprend des descriptions des programmes (entrées, sorties, paramètres...) et des règles d'utilisation (inititalisation et ajustement des paramètres, choix entre plusieurs programmes alternatifs, modalités de reprise d'exécution...). La base est ensuite exploitée par un moteur de supervision (indépendant de l'application) qui établit et assure le suivi du plan d'exécution. L'ensemble base plus moteur constitue donc un système à base de connaissances.
Dans l'équipe Orion, nous avons appliqué ce type de système à divers domaines comme l'analyse d'images médicales, la vidéo-surveillance, le calcul scientifique en hydraulique... On obtient ainsi une supervision intelligente qui apporte de la souplesse en assurant l'adaptation du système à des situations variées, à des changements d'environnement ou a des défaillances matérielles.
Orion dispose d'outils génériques pour la génération de systèmes à base de connaissances en général, la plateforme LAMA. Cette plateforme, développée en C++, repose sur des architectures logicielles mettant en oeuvre des "frameworks" de composants réutilisables. Cette approche favorise la souplesse de conception et de configuration des éléments logiciels d'un système à base de connaissances, leur évolution et leur facilité de maintenance, ainsi que leur adaptation à une tâche particulière. Ainsi, afin de valider l'approche, notre équipe l'a appliquée à diverses tâches dont la supervision de programmes, conduisant en particulier à un moteur de supervision nommé Pegase+ et au langage métier d'expression des connaissances associé, Yakl.
Jusqu'à présent, les applications que nous avons traitées étaient essentiellement "mono-site" (non réparties) et sans aspect temporel majeur. Cependant, deux expériences ont été menées, l'une utilisant des agents mobiles pour distribuer un système de supervision en imagerie médicale, l'autre pour le traitement en temps réel d'images vidéo. Ces deux expériences ont constitué des études de faisabilité sans aucune étude théorique associée.
Dans les applications actuelles aussi bien les programmes que les données ou les connaissances peuvent être répartis sur plusieurs sites. En outre les applications qui nous intéressent (analyse d'images, reconnaissance d'activités spatio-temporelles) sont de nature événementielle et doivent s'exécuter en temps réel.
Le sujet de thèse vise à étendre les fonctionnalités et l'architecture de nos outils de supervision de programmes afin, d'une part, de prendre en compte les aspects temporels (temps logique pour le séquencement d'événement, temps physique pour le fonctionnement en temps réel) et, d'autre part, de supporter le déploiement réparti des composants de l'application.
Le modèle de temps et celui de la répartition sont bien évidemment interdépendants, ne serait-ce que par les problèmes liés aux performances.
Cette thèse touche à la fois aux domaines du génie logiciel, de l'intelligence artificielle, et des systèmes en temps réel. En génie logiciel, on s'intéresse plus particulièrement aux architectures distribuées, aux méthodes reposant sur les transformation de modèles (model-driven architecture ou MDA), aux agents mobiles. En intelligence artificielle, on s'intéresse à la modélisation du temps et à la représentation de connaissances temporelles et réparties. Pour le temps réel, on s'intéresse aux modèles événementiels et aux techniques de parallélisation de calculs (multiprocesseurs, Grid...).
Profil recherché :