Contribution à la considération du comportement des plates-formes d'exécution logicielles temps réel - Thèse Informatique

Contribution à la considération du comportement des plates-formes d'exécution logicielles temps réel - thèse Informatique - Revenir à l'accueil

 

Autres thèses en informatique :

[TXT]

 APISENSE-a-distribut..> 05-Jan-2015 08:09  5.7M  

[TXT]

 APISENSE-terminaux-i..> 04-Jan-2015 21:53  5.4M  

[TXT]

 Addition-formulae-on..> 04-Jan-2015 21:26  3.0M  

[TXT]

 Architecture-de-comm..> 05-Jan-2015 08:04  4.4M  

[TXT]

 Catalogage-de-petits..> 05-Jan-2015 08:06  3.8M  

[TXT]

 Classification-et-ca..> 04-Jan-2015 11:58  1.3M  

[TXT]

 Collaboration-de-tec..> 04-Jan-2015 21:27  2.4M  

[TXT]

 Completion-combinato..> 05-Jan-2015 08:11  2.6M  

[TXT]

 Contributions-a-la-v..> 04-Jan-2015 21:51  5.4M  

[TXT]

 Cryptographie-sur-le..> 05-Jan-2015 08:01  3.4M  

[TXT]

 Detection-de-rails-m..> 05-Jan-2015 08:04  5.1M  

[TXT]

 Environnements-urbai..> 05-Jan-2015 08:03  6.3M  

[TXT]

 Equilibrage-de-charg..> 04-Jan-2015 21:25  3.2M  

[TXT]

 Evaluation-analytiqu..> 05-Jan-2015 08:07  3.5M  

[TXT]

 Faciliter-le-develop..> 04-Jan-2015 21:56  4.4M  

[TXT]

 Factorisation-matric..> 04-Jan-2015 11:59  2.7M  

[TXT]

 Generation-automatiq..> 03-Jan-2015 22:04  2.6M  

[TXT]

 Gestion-de-la-variab..> 04-Jan-2015 21:55  4.8M  

[TXT]

 Idéalisation-d-asse..> 04-Jan-2015 11:57  2.1M  

[TXT]

 Inference-d-invarian..> 04-Jan-2015 11:58  1.5M  

[TXT]

 Integration-de l-inf..> 04-Jan-2015 21:25  3.4M  

[TXT]

 Intelligence-en-essa..> 05-Jan-2015 08:03  5.6M  

[TXT]

 Interrogation-de-gra..> 03-Jan-2015 22:04  2.9M  

[TXT]

 La-gestion-du-trafic..> 03-Jan-2015 22:01  4.1M  

[TXT]

 Langage-de-mashup-Th..> 04-Jan-2015 21:24  4.1M  

[TXT]

 Les-logiciels-de-ges..> 03-Jan-2015 22:03  3.1M  

[TXT]

 Lh-rs-p2p-une-nouvel..> 04-Jan-2015 11:59  2.7M  

[TXT]

 Mesure-de-la-fragili..> 04-Jan-2015 21:24  3.8M  

[TXT]

 Meta-modelisation-du..> 04-Jan-2015 21:56  4.1M  

[TXT]

 Methode-de-classific..> 04-Jan-2015 11:58  1.3M  

[TXT]

 Methode-de-game-desi..> 05-Jan-2015 08:10  4.2M  

[TXT]

 Methodes-sequentiell..> 04-Jan-2015 21:27  2.2M  

[TXT]

 Mise-en-oeuvre-appli..> 04-Jan-2015 21:54  4.4M  

[TXT]

 Modele-et-experience..> 05-Jan-2015 08:01  3.8M  

[TXT]

 Modelisation-d-une-a..> 04-Jan-2015 21:53  5.0M  

[TXT]

 Modelisation-et-dete..> 04-Jan-2015 11:57  1.6M  

[TXT]

 Normalisation-et-App..> 03-Jan-2015 22:01  4.1M  

[TXT]

 Nouvelles-approches-..> 05-Jan-2015 08:09  2.3M  

[TXT]

 Planification-d-une-..> 05-Jan-2015 08:06  4.1M  

[TXT]

 Prise-en-compte-de-l..> 03-Jan-2015 22:04  2.8M  

[TXT]

 Qualification-system..> 04-Jan-2015 21:26  2.8M  

[TXT]

 Reconnaissance-de-co..> 03-Jan-2015 22:03  3.6M  

[TXT]

 Segmentation-supervi..> 04-Jan-2015 11:58  1.3M  

[TXT]

 Services-de-repartit..> 03-Jan-2015 21:59  4.7M  

[TXT]

 Techniques-visuelles..> 04-Jan-2015 21:27  2.7M  

[TXT]

 The-Emergence-of-Mul..> 03-Jan-2015 22:05  2.5M  

[TXT]

 Trigraphes-de-Berge-..> 03-Jan-2015 22:02  3.9M  

[TXT]

 Un-ilot-formel-pour-..> 05-Jan-2015 08:07  3.1M  

[TXT]

 Vers-une-capitalisat..> 03-Jan-2015 22:00  4.6M
Congrès d'informatique :

[TXT]

 Application-Agnostic..> 03-Jan-2015 21:16  2.1M  

[TXT]

 Continuity-Editing-f..> 03-Jan-2015 17:35  4.0M  

[TXT]

 Double-WP-Vers-une-p..> 03-Jan-2015 17:36  4.0M  

[TXT]

 Effective-Reproducib..> 03-Jan-2015 21:18  2.0M  

[TXT]

 Enforcing-reuse-and-..> 03-Jan-2015 21:17  2.0M  

[TXT]

 Extracting-Bounded-s..> 03-Jan-2015 21:19  4.0M  

[TXT]

 Fingerprint-Quality-..> 03-Jan-2015 21:16  2.1M  

[TXT]

 GPU-Load-Balance-Gui..> 03-Jan-2015 21:18  4.0M  

[TXT]

 Minkowski-sum-of-pol..> 03-Jan-2015 21:17  2.0M  

[TXT]

 Quality-Assessment-o..> 03-Jan-2015 21:16  2.1M  

[TXT]

 Rester-statique-pour..> 03-Jan-2015 17:35  4.0M  

[TXT]

 The-Power-of-Polynom..> 03-Jan-2015 21:16  2.1M  
Cours d'informatique :

[TXT]

 Analyse-numerique-Co..> 03-Jan-2015 17:33  3.0M  

[TXT]

 Approches-m-k-firm-p..> 03-Jan-2015 17:27  3.7M  

[TXT]

 COURS-LA-CULTURE-INF..> 03-Jan-2015 17:25  3.8M  

[TXT]

 CRYPTANALYSE-DE-RSA-..> 03-Jan-2015 17:33  3.0M  

[TXT]

 Cours-Interconnexion..> 03-Jan-2015 17:34  3.0M  

[TXT]

 Cours-d-Analyse-et-C..> 03-Jan-2015 17:22  3.9M  

[TXT]

 Efficient-C++finite-..> 03-Jan-2015 17:30  3.5M  

[TXT]

 Efficient-C++finite-..> 03-Jan-2015 17:31  3.2M  

[TXT]

 Fondements-de-l-Info..> 03-Jan-2015 17:22  4.0M  

[TXT]

 INTRODUCTION-A-L-INF..> 03-Jan-2015 17:24  3.8M  

[TXT]

 Informatique-et-Ling..> 03-Jan-2015 17:24  3.8M  

[TXT]

 Initiation-a-l-infor..> 03-Jan-2015 17:26  3.8M  

[TXT]

 Intelligence-Artific..> 03-Jan-2015 15:16  2.5M  

[TXT]

 Introduction-a-l-ana..> 03-Jan-2015 17:27  3.7M  

[TXT]

 Introduction-a-la-ge..> 03-Jan-2015 17:26  3.8M  

[TXT]

 Le-routage-externe-B..> 03-Jan-2015 17:32  3.1M  

[TXT]

 Le-systeme-d-informa..> 03-Jan-2015 17:32  3.1M  

[TXT]

 Lecture1_Linear_SVM_..> 03-Jan-2015 14:57  2.4M  

[TXT]

 Lecture2_Linear_SVM_..> 03-Jan-2015 14:56  2.4M  

[TXT]

 Lecture3_Linear_SVM_..> 03-Jan-2015 14:56  2.4M  

[TXT]

 Lecture4_Kenrels_Fun..> 03-Jan-2015 14:55  2.4M  

[TXT]

 Lecture5_Kernel_SVM...> 03-Jan-2015 14:55  2.4M  

[TXT]

 Lecture6_SVDD.pdf.htm   03-Jan-2015 14:54  2.4M  

[TXT]

 Lecture7_Cross_Valid..> 03-Jan-2015 14:54  2.4M  

[TXT]

 Lecture8_Multi_Class..> 03-Jan-2015 14:57  2.4M  

[TXT]

 Lecture9_Multi_Kerne..> 03-Jan-2015 14:53  2.5M  

[TXT]

 Lecture10_Outilier_L..> 03-Jan-2015 14:53  2.5M  

[TXT]

 Les-reseaux-sans-fil..> 03-Jan-2015 15:17  2.5M  

[TXT]

 NooJ-pour-l-Intellig..> 03-Jan-2015 17:30  3.2M  

[TXT]

 Outils-Logiques-pour..> 03-Jan-2015 15:15  2.8M  

[TXT]

 Presentation-de-la-r..> 03-Jan-2015 17:33  3.0M  

[TXT]

 Projet-IP-SIG-Signal..> 03-Jan-2015 15:16  2.5M  

[TXT]

 Robotique-Mobile-PDF..> 03-Jan-2015 15:16  2.6M  

[TXT]

 Systeme-informatique..> 03-Jan-2015 15:17  2.5M  

[TXT]

 Systemes-Multi-Agent..> 03-Jan-2015 17:28  3.5M  

[TXT]

 Tutoriel-Android-TP-..> 03-Jan-2015 14:57  2.3M  

[TXT]

 Understanding-SVM-th..> 03-Jan-2015 14:57  2.4M  

[TXT]

 Une-histoire-de-la-m..> 03-Jan-2015 17:28  3.5M  

[TXT]

 Une-introduction-aux..> 03-Jan-2015 17:31  3.1M  

[TXT]

 Vers-une-signalisati..> 03-Jan-2015 17:25  3.8M 
Contribution `a la consid´eration du comportement des plates-formes d’ex´ecution logicielles temps r´eel C´edrick Lelionnais To cite this version: C´edrick Lelionnais. Contribution `a la consid´eration du comportement des plates-formes d’ex´ecution logicielles temps r´eel. Software Engineering. Ecole Centrale de Nantes, 2014. ´ French. HAL Id: tel-01093814 https://hal.archives-ouvertes.fr/tel-01093814 Submitted on 11 Dec 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Thèse de Doctorat Cédrick LELIONNAIS Mémoire présenté en vue de l’obtention du grade de Docteur de l’École centrale de Nantes sous le label de l’Université de Nantes Angers Le Mans École doctorale : Sciences et technologies de l’information, et mathématiques Discipline : Informatique et Applications Unité de recherche : Institut de Recherche en Communications et Cybernétique de Nantes (IRCCyN) Soutenue le 2 juillet 2014 Contribution à la considération du comportement des plates-formes d’exécution logicielles temps réel JURY Président : M. Patrick MARTINEAU, Professeur, Polytech’Tours, France Rapporteurs : M. Jean-Philippe BABAU, Professeur, Université Bretagne Occidentale, France M. Patrick MARTINEAU, Professeur, Polytech’Tours, France Examinateurs : M. Sébastien GÉRARD, Docteur, CEA Saclay Nano-INNOV, France M. Marc PANTEL, Maître de conférences, ENSEEIHT-IRIT, France M. Jérôme DELATOUR, Enseignant Chercheur, Groupe ESEO, France Directeur de thèse : M. Olivier H. ROUX, Professeur, École Centrale de Nantes, FranceRemerciements Je tiens en premier lieu à remercier Jérôme Delatour qui m’a co-encadré tout au long de cette thèse. Sa clairvoyance, son soutien, son altruisme et son expertise ont grandement contribué à la concrétisation de ce travail. Je le remercie aussi de m’avoir fait confiance et de m’avoir porté jusque là. Je remercie également mon directeur de thèse, Olivier H. Roux, pour ses précieux conseils et son orientation précise tout au long de notre recherche. Son savoir m’a permis de prendre les bonnes décisions. J’adresse aussi mes remerciements à Jean-Philippe Babau et à Patrick Martineau qui ont accepté de juger ce travail en qualité de rapporteurs. Leurs retours pertinents ont été très constructifs pour l’avenir de cette contribution. Merci également à Sébastien Gérard et à Marc Pantel d’avoir consenti à faire partie de mon jury de soutenance de thèse. Cette thèse est issue d’une collaboration entre l’équipe TRAME du groupe ESEO et l’équipe Temps Réel de l’Institut de Recherche en Communications et Cybernétique de Nantes (IRCCyN). Je tiens par conséquent à remercier l’ensemble des membres de ces deux équipes et plus particulièrement, Charlotte Seidner et Matthias Brun qui ont largement participé à la réussite de cette thèse. Je souhaite également remercier Camille, Frédéric, Mickaël, Jonathan, Guillaume et Sébastien qui m’ont aidé, soutenu et conseillé tout au long de ces années. Je tiens aussi à remercier Ladji qui partageait mon bureau et qui m’a beaucoup épaulé à travers notamment de grands moments de convivialité. Je veux aussi joindre à mes remerciements, les membres du département SEA de l’ESEO et tout particulièrement Patrick Plainchault, responsable du département qui m’a permis d’enseigner, ainsi que Joseph et Cristina avec qui j’ai eu la chance d’enseigner. Plus largement, je souhaite remercier l’ensemble des membres de l’ESEO avec qui j’ai eu le plaisir de travailler. Mes remerciements s’adressent une nouvelle fois à Jean-Philippe Babau et Sébastien Faucou qui ont aussi accepté de faire partie de mon comité de thèse. Enfin, mes derniers remerciements sont réservés à ma famille et mes proches qui m’ont beaucoup soutenu durant cette thèse. Je tiens à remercier plus chaleureusement Elisabeth et Guy, sans qui ce travail n’aurait jamais pu aboutir. Pour terminer, je tiens naturellement à témoigner du soutien exceptionnel que m’a procuré Hélène, les mots qu’elle a su trouver, la force qu’elle m’a donnée, l’attitude positive qu’elle incarnait et bien plus encore, la joie immense qu’elle m’a offerte en mettant au monde nos deux petits garçons.À Théodore et Léandre.Table des matières Introduction v Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v Problématique générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi Objectifs de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii I Problématique détaillée et état de l’art 1 1 Problématique détaillée 3 1.1 Conception détaillée des systèmes embarqués temps réel . . . . . . . . . . 5 1.2 Mise en œuvre dans une ingénierie dirigée par les modèles . . . . . . . . . 10 1.3 Caractérisation de la problématique . . . . . . . . . . . . . . . . . . . . . 16 1.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2 État de l’art 21 2.1 Présentation de SEXPISTOOLS et de RTEPML . . . . . . . . . . . . . . . . 23 2.2 Le comportement des plates-formes logicielles d’exécution dans l’IDM . . . 30 2.3 Positionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 II Prise en compte du comportement d’une plate-forme d’exécution 43 3 Modélisation du comportement avec RTEPML 45 3.1 Intégration d’un modèle comportemental de plate-forme . . . . . . . . . . 48 3.2 Intégration d’un modèle comportemental d’application . . . . . . . . . . . 51 3.3 Modélisation des prototypes comportementaux . . . . . . . . . . . . . . . 52 3.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 4 Composition du comportement de la plate-forme et de l’applicatif 61 4.1 Stratégie de considération du comportement . . . . . . . . . . . . . . . . . 64 4.2 Processus de considération du comportement . . . . . . . . . . . . . . . . 66 4.3 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 5 Formalisation de la composition 99 5.1 Composition de TPNs basée sur des rôles . . . . . . . . . . . . . . . . . . 101 5.2 Composition appliquée au comportement de plate-forme . . . . . . . . . . 106 5.3 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110iv Table des matières 6 Validation expérimentale 113 6.1 Prototype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 6.2 Modélisation d’une autre plate-forme . . . . . . . . . . . . . . . . . . . . 116 6.3 Application sur un exemple . . . . . . . . . . . . . . . . . . . . . . . . . . 119 6.4 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 Conclusion 125 III Annexes 127 A Guide conceptuel avec SEXPISTOOLS 129 B Métamodèle de RTEPML 137 Listes des figures, tableaux, algorithmes 146 Bibliographie 156Introduction Contexte Les Systèmes Embarqués Temps Réel (SETRs) sont rencontrés dans de nombreux secteurs d’activités tels que l’aéronautique, l’automobile, la téléphonie mobile ou bien encore la robotique, etc. Les ingénieurs des SETRs sont alors confrontés à produire de plus en plus de systèmes complexes et innovants [11], avec des cycles de développement réduits à moindres coûts de production [44]. Optimiser le temps de mise sur le marché (time to market) de ces systèmes est devenu un enjeu majeur pour les entreprises du domaine dans le but d’être plus compétitives. Afin de répondre à ces contraintes de développement, trois axes se démarquent aujourd’hui pour améliorer la productivité des SETRs : – La portabilité des applications temps réel : doit être assurée pour s’adapter facilement aux exigences hétérogènes des supports d’exécution matériels ; – La réutilisabilité des processus de développement doit aussi permettre une migration rapide de ces applications temps réel dans le cas de déploiements vers d’autres supports d’exécution ; – La maintenabilité des SETRs doit enfin faciliter l’intervention des parties prenantes selon leurs préoccupations métiers en vue de modification ou de réparation. Afin de décomplexifier et d’alléger la mise en œuvre des SETRs, les systèmes d’exploitation temps réel (RTOSs, Real-Time Operating Systems) [89] sont devenus des élé- ments incontournables du développement de tels systèmes. En effet, du fait de la grande hétérogénéité des supports d’exécution matériels, les RTOSs apportent un niveau d’abstraction nécessaire au portage des applications logicielles. Ces RTOSs représentent par conséquent des supports d’exécution (ou plates-formes) logiciels pour ces applications. Toutefois, ces RTOSs se sont beaucoup diversifiés ; ce qui rend leur considération moins triviale à travers les processus de développement des SETRs. Les RTOSs présentent des mécanismes et offrent des services qui conditionnent fortement les instructions classiques de la programmation [76]. Cette diversité de mise en œuvre et ce savoir-faire ont contraint les développeurs à s’abstraire aussi des RTOSs. L’Ingénierie Dirigée par les Modèles (IDM) [60] prône cette indépendance en offrant un cadre méthodologique aux ingénieurs du génie logiciel pour s’abstraire des plates-formes d’exécution durant la phase de conception. Une telle initiative met en exergue l’utilisation de langages de modélisation et d’outils de transformation pour représenter et manipuler des modèles conceptuels de haut niveau d’abstraction. Cette avancée a permis aux développeurs d’établir eux-mêmes des suites d’outils (tool suites en anglais) en vue de partiellement automatiser leurs activités de développement. Ces suites d’outils s’appuient sur une architecture dirigée par les modèles (MDA, Model Driven Architecture) dans laquelle une description conceptuelle de haut niveau d’abstraction permet la représentation de l’application indépendamment de la plate-forme (PIM, Platform Independant Model). Des transformations de modèles se succèdent alors pour raf- finer ce PIM et ainsi générer une représentation de l’application dépendante de la plateforme visée pour l’exécution (PSM, Platform Specific Model). La notion de modèle de description de plate-forme (PDM, Platform Description Model) est aussi évoquée au sein duvi Introduction MDA dans le but de mieux la considérer à travers les transformations IDM. Problématique générale Dans ce contexte, un grand nombre de suites d’outils ont été développées à ce jour. Parmi celles rencontrées, deux grandes familles se distinguent pour soit générer du code exécutif, soit générer des modèles formels. Les motivations avancées par ces contributions résultent de l’intégration d’activités de développement au plus tôt dans la conception. De ce fait, elles permettent respectivement d’appliquer des activités de : – Déploiement des applications logicielles : le niveau d’abstraction évoqué précédemment oblige les développeurs à raffiner les modèles conceptuels jusqu’à des modèles de code implémentable et spécifique à une plate-forme particulière. Le déploiement se résume alors à un mapping des concepts applicatifs vers les services offerts par la plate-forme logicielle dans le but de les exécuter ; – Vérification de propriétés non-fonctionnelles : une telle abstraction implique aussi de vérifier sur ces modèles conceptuels que les SETRs puissent satisfaire les contraintes exigées par les applications logicielles comme par exemple les contraintes temporelles. Pourtant, ces deux familles révèlent un problème dual dans l’interprétation comportementale des plates-formes d’exécution logicielles temps réel. D’un côté, les suites qui se focalisent sur la génération de code ne proposent pas de formalisation des applications une fois déployées. De l’autre côté, les suites qui se focalisent sur la génération de modèles formels manquent d’exhaustivité dans la prise en compte des mécanismes et des services des plates-formes. Ces suites offrent certes la possibilité d’appliquer des activités de vérifi- cation, mais celles-ci n’interviennent qu’en amont du déploiement. Le fait de ne pas rendre possible l’application d’activités de vérification après dé- ploiement peut engendrer des retours chronophages sur la conception d’un système. Cette réalité contredit les gages d’amélioration de la productivité mentionnés plus haut. Existe-t-il alors une solution pour mener à la fois des activités de déploiement et des activités de véri- fication, à un niveau de conception détaillée des SETRs au sein d’une même suite d’outils ? Comment procéder pour considérer au mieux le comportement des plates-formes à travers une telle suite d’outils ? Objectifs de recherche Pour répondre à ces questions, cette thèse complète en partie une stratégie de dé- ploiement d’applications temps réel multiplates-formes dans un contexte IDM de conception détaillée des SETRs. Cette stratégie est supportée par une suite d’outils appelée SEXPISTOOLS (pour Software Execution Platform Inside Tools) en cours d’élaboration au sein de notre équipe. L’orientation prise est d’offrir la possibilité de générer, indépendamment de la plate-forme envisagée pour le déploiement, à la fois du code et des modèles formels tout en considérant le comportement des plates-formes d’exécution logicielles temps réel. Afin de répondre aux trois critères d’amélioration de la productivité que nous avons introduits, SEXPISTOOLS s’appuie sur les points suivants pour : – Considérer un plus grand nombre de plates-formes d’exécution logicielles temps réel en paramètre des processus de génération dans le but de produire un déploiement multiplates-formes ; – Utiliser des règles de transformation génériques les plus indépendantes possible au regard de la plate-forme considérée en paramètre des processus de génération ;Introduction vii – Séparer les préoccupations métiers (i.e., le choix de déploiement d’application, la considération des plates-formes, les règles de transformation et les activités de vérification et de validation) afin de clarifier les interventions de chaque spécialiste du domaine métier. Afin de garantir ces préconisations, la notion de PDM a été introduite dans SEXPISTOOLS. Cependant, la version proposée ne précise pas comment représenter le comportement des plates-formes. De plus, le processus de déploiement actuellement développé ne permet pas de générer des modèles formels de conception détaillée des SETRs. Notre objectif est donc double : 1. Représenter le comportement des plates-formes et par conséquent l’intégrer dans un PDM. 2. Considérer ce comportement à travers un processus de génération de modèles formels. Notre approche s’appuie sur une transformation visant à construire un modèle formel entier du SETR à concevoir, en incluant la plate-forme d’exécution et ce quelque soit la plate-forme considérée. Cette transformation compose plusieurs fragments de modèles formels indépendamment de la plate-forme ciblée. Chacun de ces fragments représente une partie du modèle formel qui capture le comportement du SETR déployé. Précisons toutefois que l’objectif n’est pas de définir un outil de vérification et de validation. Nous cherchons seulement à générer des modèles comportementaux formels d’applications déployées qui serviront de supports de vérification. Contributions Cette étude contribue à la représentation et à la considération du comportement des plates-formes d’exécution logicielles dans une IDM dédiée au déploiement d’applications temps réel, en se focalisant sur les cinq points suivants : Une extension d’un langage de modélisation des plates-formes d’exécution logicielles temps réel est apportée pour représenter le comportement de ces plates-formes. Ce langage est un outil de SEXPISTOOLS, appelé RTEPML (Real-Time Embedded Platform Modeling Language). RTEPML [12] permet de décrire structurellement ces plates-formes dans un contexte de développement utilisant des DSMLs (Domaine Specific Modeling Languages) comme alternative aux langages de modélisation généralistes : GPMLs (Generic Purpose Modeling Languages, dont UML [65] est un représentant, y compris dans ses formes profilées). Une adaptation est aussi établie au sein de RTEPML, quant à la traduction formelle du comportement en Réseaux de Petri Temporels (TPN, Time Petri Net en anglais) [59] [10]. La mise en œuvre d’un processus de génération de modèles formels de SETRs au sein d’une IDM est proposée pour considérer à la fois l’applicatif et le comportement des plates-formes d’exécution. Elle complète le processus déjà mis en œuvre au sein de SEXPISTOOLS pour le déploiement multiplates-formes d’applications temps réel. Ce processus s’appuie sur des règles de transformation indépendantes de toute plate-forme pour composer des modèles comportementaux en TPN d’applications déployées. Une formalisation de la composition de modèles comportementaux en TPN d’applications déployées est décrite pour augmenter la confiance dans l’implémentation de cette composition au sein du processus de génération.viii Introduction Un exemple d’application pour illustrer le cas d’un déploiement multiplatesformes est présenté. Le comportement de deux plates-formes d’exécution logicielles temps réel (OSEK/VDX [66] et VxWORKS [93]) est considéré à travers ce déploiement. Plan Ce mémoire est constitué de deux parties distinctes. La première partie vise à cibler davantage la contribution de cette thèse en matière de considération du comportement des plates-formes d’exécution logicielles temps réel dans une IDM. La seconde partie expose cette contribution qui propose une telle considération dans un processus de génération de modèles formels en TPN d’applications déployées. La première partie est divisée en deux chapitres. Le chapitre 1 détaille la problématique de cette étude de manière à identifier les besoins nécessaires pour représenter et considérer le comportement des plates-formes. Le chapitre 2 présente notre suite d’outils SEXPISTOOLS et un état de l’art des travaux qui contribuent à la considération du comportement des plates-formes dans un processus de génération. Une synthèse vient positionner nos axes de recherche vis-à-vis des contributions arborées dans ce chapitre pour compléter SEXPISTOOLS. Ce positionnement tient compte des critères d’amélioration de la productivité évoqués dans cette introduction. La seconde partie englobe les quatre derniers chapitres. Le chapitre 3 vise à enrichir le langage de modélisation RTEPML pour décrire le comportement des plates-formes. Il définit les nouveaux concepts utiles à une telle description en intégrant ceux des TPNs pour traduire formellement le comportement. Le chapitre 4 développe la stratégie de composition adoptée pour compléter le processus de déploiement avec un processus de considération du comportement. Les règles de transformation nécessaires à la composition sont présentées. Le chapitre 5 formalise la composition avancée en complément du processus exposé dans le chapitre 4. Une nouvelle définition de la composition de TPNs est aussi donnée pour éviter toute ambiguïté de synchronisation des descriptions. Le chapitre 6 synthétise cette contribution en s’appuyant sur un cas d’étude simplifié. Un exemple d’implantation du processus est illustré dans l’optique de générer des modèles formels en TPN exploitables avec l’outil de vérification Roméo [53]. Enfin, la présentation de ce mémoire se termine par une conclusion générale dans laquelle un bilan de la thèse est dressé. Des perspectives d’évolution des contributions présentées sont aussi apportées.Première partie Problématique détaillée et état de l’artProblématique détaillée 1 Sommaire 1.1 Conception détaillée des systèmes embarqués temps réel . . . . . . . 5 1.1.1 Les systèmes embarqués temps réel . . . . . . . . . . . . . . . 5 1.1.2 Analyse et conception orientée objet . . . . . . . . . . . . . . . 7 1.2 Mise en œuvre dans une ingénierie dirigée par les modèles . . . . . 10 1.2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.2.2 Processus de développement . . . . . . . . . . . . . . . . . . . 12 1.3 Caractérisation de la problématique . . . . . . . . . . . . . . . . . . 16 1.3.1 Représentation des plates-formes logicielles d’exécution . . . . 16 1.3.2 Considération des plates-formes logicielles d’exécution . . . . . 18 1.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 C e chapitre émet des hypothèses sur le contexte de cette étude, tout en posant le vocabulaire employé, pour guider de manière didactique le lecteur à la problématique détaillée de cette thèse. Ce chapitre s’organise en quatre sections. La première contextualise notre étude vers la conception détaillée des systèmes embarquées temps réel. L’ingénierie adoptée est ensuite présentée dans le but d’encadrer notre contexte de travail : l’IDM. La section suivante caractérise la problématique de cette étude sur la considération des plates-formes logicielles d’exécution en modélisant leur comportement. Enfin, nous synthétiserons les grandes lignes de la problématique dans la dernière section.1.1. Conception détaillée des systèmes embarqués temps réel 5 1.1 Conception détaillée des systèmes embarqués temps réel Le contexte général de la conception détaillée des SETR est posé ici pour focaliser le domaine métier sur celui du logiciel embarqué temps réel. 1.1.1 Les systèmes embarqués temps réel Un système embarqué Définition d’un système embarqué est un système, à la fois électronique et informatique, qui permet de contrôler et de commander un procédé physique [89]. Chaque système mis en œuvre doit répondre à des exigences fonctionnelles de l’équipement dans lequel il est intégré 1 . La conception de tels systèmes impose des activités qui concernent, d’une part, le traitement de l’équipement ; d’autre part, les intéractions avec l’équipement (voire d’autres équipements) et celles avec l’environnement physique ou humain [80] 2 . Le système est parfois qualifié de système “enfoui” de part l’absence d’interface homme-machine (IHM) et, par conséquent, l’absence d’intéraction directe avec un utilisateur. Une spécificité qualifie un système embarqué de “temps réel” (ou SETR) lorsque ce Catégorisation dernier est contraint par l’évolution dynamique ou comportementale du procédé auquel il est lié [31] [89]. Un système temps réel ne signifie pas pour autant qu’il est rapide, il doit plutôt réagir aux stimulii extérieurs à l’équipement dans un temps pertinent pour l’équipement. Cela implique que la satisfaction comportementale d’un SETR résulte de l’approbation d’une multitude de contraintes induites par le procédé physique. Ces contraintes sont considérées de différentes manières : elles peuvent être de sûreté de fonctionnement [17], d’enfouissement [5] ou encore temporelles [2]. Des nuances sont alors à préciser selon le respect absolu ou partiel de ces contraintes par le système. Dans ce sens, une catégorisation des SETRs a permis de les classer en fonction du niveau de contraintes respectées. Ainsi, ces SETRs sont qualifiés de : – critiques s’ils nécessitent le respect strict des contraintes ; – fermes s’ils admettent le non respect de certaines contraintes suivant le contexte de l’application ; – souples s’ils tolèrent une probabilité de contraintes non satisfaites. Hypothèse 1 Les systèmes concernés par cette étude sont embarqués et temps réel. Le champ des applications couvert par ces systèmes peut s’étendre jusqu’aux systèmes critiques. Toutefois, l’objectif de cette thèse se limitera aux contraintes de sûreté de fonctionnement et temporelles. La mise en œuvre d’un SETR repose sur un ensemble de composantes illustrées sur la Mise en œuvre figure 1.1. Il peut être vu comme une superposition verticale de composants tels que (1) l’application logicielle qui contrôle le procédé physique, (2) le support d’exécution matériel et/ou logiciel qui exécute l’application et (3) des périphériques tels que les capteurs (fournissant des informations comme des mesures ou des évènements) et les actionneurs (commandés par l’application en fonction des informations et des évènements traités). Le composant central d’un SETR est par conséquent le support d’exécution agencé en une ou deux plates-formes. L’une, matérielle, s’articule autour de quatre architectures : (a) monoprocesseur, (b) multiprocesseur ou (c) multicœur pour paralléliser les traitements 1. Par exemple, un système de régulation de vitesse dans un véhicule automobile, ou bien encore un programmateur dans une machine à laver 2. Par exemple, le vent qui ralentirait le véhicule, ou bien encore, l’individu qui arrêterait sa machine à laver en cours de fonctionnement6 Chapitre 1. Problématique détaillée FIGURE 1.1 – Constitution d’un SETR au sein d’un équipement lorsqu’une puissance de calcul est nécessaire et enfin (d) distribuée pour servir une installation éclatée géographiquement ; tandis que l’autre, logicielle, se concrétise par un programme dont l’exécution est (a) autonome sur le support d’exécution matériel, ou bien (b) dépendant d’un système d’exploitation qui est une couche intermédiaire entre les deux plates-formes. Pour résumer, le traitement d’une application embarquée temps réel s’effectue par l’implantation des fonctionnalités du système soit dans des circuits matériels spécifiques tels que les ASIC (Application Specific Integrated Circuit) et les FPGA (Field Programmable Gate Array), soit dans un programme logiciel s’exécutant sur un processeur. Des techniques de conception conjointe (co-design) existent pour mettre en œuvre la con- figuration matérielle et la programmation logicielle [94] [82]. Hypothèse 2 Nous admettons ici que la plate-forme logicielle est vue comme un exécutif indépendant de la plate-forme matérielle. Par la suite, nous nous focaliserons sur la mise en œuvre d’applications embarquées s’exécutant sur des plates-formes logicielles ; chaque plate-forme intègrera un système d’exploitation temps réel dans une architecture monoprocesseur. Le système d’exploitation intégré ne sera pas imposé, mais le concepteur pourra plutôt orienter son choix parmi un ensemble de systèmes d’exploitation disponibles. Les La mise en œuvre plates-formes logicielles d’exécution logicielle d’un SETR s’appuie aussi sur la capacité à établir un lien entre l’occurrence d’un évènement et le traitement d’une action fonctionnelle associée à cet évènement. Deux approches découlent de cette particularité, à savoir l’approche « synchrone » et l’approche « asynchrone » [78]. L’approche synchrone est basée sur le déclenchement synchronisé des actions par leurs évènements avec la fin de l’action qui était en cours de traitement. Chaque occurrence est ainsi mémorisée et considérée simultanément en temps nul par le système vis-à-vis de la dynamique du procédé contrôlé. Il en résulte une non concurrence des actions. La programmation des systèmes synchrones est effectuée sous la forme de systèmes échantillonnés dans lesquels la durée d’exécution des actions est inférieure à la période d’échantillonnage [16]. L’approche asynchrone, contrairement à l’approche synchrone, est basée sur le dé- clenchement des actions de façon asynchrone durant l’action en cours de traitement. Les occurrences d’évènements sont observées continuellement et considérées aussitôt en temps non nul par le système. Il en résulte un parallélisme et une mise en concurrence des actions.1.1. Conception détaillée des systèmes embarqués temps réel 7 L’approche asynchrone correspond mieux à notre champ d’étude, étant donné que nous voulons considérer la concurrence au sein des plates-formes logicielles d’exécution. Les systèmes d’exploitation propices à un tel paradigme sont appelés multitâches. Dans ce cadre, les actions prévues par une application sont amenées à être interrompues durant leurs traitements ; ces actions sont communément appelées des tâches qui sont des unités, ou fils, d’exécution séquentielle. La concurrence entre les tâches est orchestrée par des mécanismes offerts par les systèmes d’exploitation, portant sur : la synchronisation, la communication et l’accès à des ressources partagées 3 . Les accès concurrents aux ressources logicielles qui composent l’exécutif sont dirigés par une politique d’ordonnancement. Chaque politique est appliquée par un ordonnanceur qui est lui-même un composant de l’exécutif et peut être définie « en ligne » ou « hors ligne ». Une politique dite « en ligne » privilégie l’exécution de la tâche de plus forte priorité. Une distinction est faite quant à la définition des priorités selon une base de critères liés à l’ensemble des tâches concurrentes, tels que leurs échéances ou leurs périodes d’exécution [54]. Notons, toutefois, que l’interruption ou la préemption des tâches concurrentes avec ce genre de politique peut être inhibée au profit d’une autre. Une politique dite « hors ligne » impose la séquentialité des tâches à exécuter. L’ordonnanceur est dans ce cas considéré comme un séquenceur. Outre la politique d’ordonnancement qui consiste à allouer les ressources d’un système d’exploitation dans une approche asynchrone, l’observation continue des occurrences des évènements est différenciée selon deux démarches. Une démarche de cadencement par les évènements (event triggered) oblige le système à réagir à chaque évènement par un appel à l’exécutif. Les exécutifs temps réel OSEK/VDX-OS [66], ARINC-653 [1] et VxWORKS [93] sont des exemples mettant en œuvre cette démarche. Une démarche de cadencement par le temps (time triggered) oblige le système à réagir à un seul évènement externe provenant d’une horloge périodique par un appel à l’exécutif. Le procédé est ainsi scruté à chaque période. Ce principe coïncide avec une planification des tâches « hors ligne ». Les exécutifs temps réel MARS [45] et OASIS [22] sont des exemples mettant en œuvre cette démarche. Hypothèse 3 La mise en œuvre logicielle des plates-formes d’exécution vise des systèmes d’exploitation multitâches conformément à l’approche asynchrone. Nous nous pencherons sur des systèmes, dont les exécutifs seront régis par une politique d’ordonnancement « en ligne », cadencés par les évènements (event triggered). 1.1.2 Analyse et conception orientée objet Le développement des SETRs La plate-forme au cœur de la conception suit majoritairement le parangon de développement nommé cycle en V (figure 1.2) qui, initialement, a été adopté pour le génie logiciel. Ce cycle de développement anticipe les tests attendus de la partie montante dès les phases de spécification et de conception de la partie descendante. Cette stratégie offre l’avantage de vérifier et de valider, de manière ascendante, le développement du SETR selon des exigences fonctionnelles (i.e., ce que doit faire le SETR) et non fonctionnelles (i.e., la manière dont le SETR exécute ce qu’il doit faire) établies respectivement en spécification et en conception. Comme illustré en gris sur la figure 1.2, la conception est divisée en deux niveaux d’abstraction : 3. Notons que ces mécanismes sont gérés par l’exécutif du système d’exploitation8 Chapitre 1. Problématique détaillée ❙♣é❝✐✜❝❛t✐♦♥ ❈♦♥❝❡♣t✐♦♥ ●é♥ér❛❧❡ ❈♦♥❝❡♣t✐♦♥ ❉ét❛✐❧❧é❡ ❈♦❞❡ ❚❡sts ❯♥✐t❛✐r❡s ❚❡sts ❞✬■♥té❣r❛t✐♦♥ ❚❡sts ❞❡ ❱❛❧✐❞❛t✐♦♥ FIGURE 1.2 – Place de la conception dans le cycle en V – La conception générale représente l’étape de plus haut niveau. Elle définit l’architecture logicielle du système à concevoir vis-à-vis de la spécification. Les entités fonctionnelles sont modélisées et agencées structurellement afin de représenter les échanges internes, mais aussi externes au système. – La conception détaillée représente l’étape de plus bas niveau. Elle identifie les composants logiciels du système vis-à-vis de l’architecture précédemment définie. Chaque composant est décrit de manière exhaustive en précisant chaque traitement unitaire à exécuter. Hypothèse 4 Dans notre cas d’étude, nous différencierons la conception détaillée de la conception générale, de part la prise en compte des plates-formes logicielles d’exécution temps réel. Vers une Devant la complexité conception orientée objet et détaillée et le besoin de diminuer les temps de développement des SETRs, des méthodologies d’analyse et de conception se sont succédées [7] en se calquant sur le cycle en V. La première grande évolution connue réside dans une approche dite fonctionnelle. Cette approche trouve son origine dans les langages procéduraux. Elle met en évidence les fonctions décomposables du système à implémenter en s’appuyant sur une hiérarchie descendante. La représentation des données avec cette approche est dissociée du traitement de ces données à travers les fonctions décomposées. Basée sur cette approche, la méthode graphique SA-RT (Structured Analysis for Real-Time) [37][92] est venue enrichir les premières méthodes fonctionnelles, telles que SADT (Structured Analysis Design Technique) [57], afin de s’adapter au domaine du temps réel. Cet enrichissement est fondé sur une vision dynamique du système réagissant aux stimuli de l’environnement dans lequel il se trouve et contraint par le temps. Les approches fonctionnelles ont permis d’améliorer la vérification (i.e., les tests d’intégration et unitaires) et la validation (i.e., les tests de validation) structurées des fonctions des systèmes respectivement durant les phases de conception et de spécification. Seulement, dans une approche structurée, l’évolution des besoins tout au long du développement peut entraîner une dégénérescence de la topologie du parcours hiérarchique des fonctions du système. Ces approches devenues caduques, ont laissé peu à peu la place à d’autres approches de développement dites orientée objet [9] [77]. L’approche orientée objet est aujourd’hui largement adoptée par les concepteurs du génie logiciel. Avec cette approche, un système peut être représenté de manière abstraite par un modèle qui rassemble un ensemble d’objets dissociés, identifiés et définis par des propriétés. Ces propriétés représentent soit des attributs qui sont des données caractérisant l’état de l’objet, soit des méthodes (ou opérations) qui sont des actions qui caractérisent le comportement de l’objet en agissant sur les valeurs des attributs. La particularité de cette approche tient alors du fait qu’elle rassemble les données et leurs traitements associés au1.1. Conception détaillée des systèmes embarqués temps réel 9 sein d’un unique objet. La fonctionnalité du système représenté prend son sens dans les relations (e.g., héritage, agrégation, composition, etc.) qui permettent aux différents objets d’interagir. Au fil du temps, des méthodes basées sur cette approche sont apparues pour améliorer le développement des SETRs. Au début elles contribuaient davantage à l’analyse des besoins (i.e., la spécification) en terme de description des spécificités temps réel au sein d’objets composés. Afin de valider ces descriptions au cours de la spécification, les méthodes HOOD/PNO (Hierarchical Object Oriented Design with Petri Net Objects) [67] et UML/PNO (Unified Modeling Language with Petri Net Objects) [24] ont vu le jour en apportant une représentation comportementale à ces objets. Une traduction est par conséquent semi-automatisée pour générer un représentation formelle de ces objets en réseaux de Petri [69] et ainsi y appliquer des activités de simulation et de vérification formelle. Les outils de vérification employés pour de telles activités s’appuient sur des méthodes de preuve formelle ou bien de model-checking [74] [62]. Depuis d’autres travaux ont étendu leurs recherches afin de mettre en œuvre des méthodes orientées objets plus portées vers la conception des SETRs. Cette volonté émane du besoin de répondre aux exigences non-fonctionnelles des SETRs et de vérifier ces exigences dès la phase de conception. Dans un contexte UML, la méthodologie ACCOR [70] vient étendre la spécification d’objets temps réel du SETR à concevoir avec des concepts actifs. Ces concepts actifs [36] regroupent à la fois : – Des boîtes aux lettres pour échanger des messages de données entre les objets temps réel ; – Un contrôleur de concurrence et d’état pour arbitrer le traitement de ces messages suivant les états et la mise en concurrence des objets. Les objets actifs ainsi obtenus constituent un modèle de conception générale qui peut ensuite être formalisé pour vérifier des propriétés non-fonctionnelles telles que des propriétés de sûreté de fonctionnement ou de non blocage. Toujours dans un contexte UML, une autre contribution a posé un cadre méthodologique intégrant des exigences non-fonctionnelles temporelles dans la conception des SETRs. Cette méthodologie [34] associe UML avec SysML qui a été étendu pour décrire ces exigences temporelles sous la forme de diagrammes. La vérification de propriétés temporelles peut s’opérer suite à la génération d’observateurs formels à partir des diagrammes d’exigences. À ce jour, aucune méthodologie n’est supposée offrir la possibilité d’appliquer des activités de vérification en phase de conception détaillée. En effet, les méthodes proposées se veulent générales pour ne pas dépendre d’une plate-forme logicielle d’exécution temps réel spécifique. La diagramme d’activités de la figure 1.3 résume globalement cette situation. Sur ce diagramme, le flux qui mène la conception générale d’un système (i.e., mod- élisation des objets actifs) à son déploiement (i.e., implémentation du code spécifique à une plate-forme d’exécution) 4 est représenté. La vérification impliquant au préalable une formalisation est ici distinguée des autres acteurs du domaine métier (i.e., ceux du génie logiciel embarqué temps réel) qui interviennent entre la conception et le déploiement. De manière itérative, le diagnostic donné par la vérification peut orienter le flux des activités vers la redéfinition du modèle d’objets actifs. Cette approche valide l’intégration du système dès la phase de conception. Une fois le modèle d’objets actifs validé, ce dernier doit être détaillé unitairement pour spécifier chaque objet en fonction de la plate-forme d’exécution. Cependant, la vérification sur ce modèle détaillé n’étant pas appliquée, des tests unitaires 4. Nous considérons le déploiement comme la mise en exécution de l’application sur la plate-forme logicielle10 Chapitre 1. Problématique détaillée FIGURE 1.3 – Diagramme d’activités de la conception orientée objet : place de la vérification doivent être envisagés après déploiement. En cas de comportement non attendu durant cette phase, un retour vers la phase de conception détaillée, voire même vers la phase de conception générale serait inévitable. Hypothèse 5 Nous présumons par conséquent qu’une recherche est nécessaire pour amener le développement des SETRs, vers leur vérification en phase de conception dé- taillée ; c’est-à-dire en spécifiant une plate-forme particulière. Nous nous appuierons sur une méthodologie orientée objet. Cette méthodologie s’oriente vers une approche basée sur les modèles. Dans ce qui suit, l’ingénierie avec laquelle nous envisageons d’intégrer la vérification en phase de conception détaillée est présentée. 1.2 Mise en œuvre dans une ingénierie dirigée par les modèles Dans cette section, la méthodologie abordée précédemment pour la conception des SETRs va être contextualisée dans une ingénierie dirigée par les modèles (IDM). Cette contextualisation vient soulever les besoins nécessaires à la vérification des SETRs en phase de conception détaillée au sein d’une IDM.1.2. Mise en œuvre dans une ingénierie dirigée par les modèles 11 1.2.1 Introduction L’IDM (ou MDE pour Model Driven Engineeringen anglais) est une ingénierie générative qui centre son activité de développement sur les modèles. Son but est avant tout technique pour aider les ingénieurs du génie logiciel à la production et à la maintenance de logiciels. Elle permet de traduire différents modèles tout au long du processus de développement, suivant le degré de raffinement recherché. Un modèle représente Modèles & métamodèles ainsi le système dans une phase bien déterminée de son développement. Pour une utilisation pratique par le biais d’outils informatiques, un modèle doit être décrit dans un langage particulier. Plusieurs descriptions de modèles sont rendues possible à partir d’un même modèle de langage, appelé métamodèle. Finalement, un métamodèle est une abstraction d’un langage de modélisation. De même, il existe un métamétamodèle qui est une abstraction d’un langage de modélisation de langages de modélisation. Aussi une relation de conformité existe entre un modèle et son métamodèle. Il s’ensuit qu’un modèle se conforme à son métamodèle ; nous adopterons par la suite la notation c2 pour conforms to en anglais. Comme nous l’avons introduit, Transformation de modèles la génération d’un modèle escompté peut s’obtenir après une ou plusieurs transformations de modèles pour remplir un rôle particulier du développement. Une transformation est une fonction qui permet la création d’un ensemble de modèles cibles à partir d’un ensemble de modèles sources. Chaque ensemble de modèles se conforme à un même ensemble de métamodèles. Une transformation de modèles est décrite à partir des métamodèles sources et cibles et non pas à partir des modèles eux-mêmes. Cette stratégie privilégie la réutilisation de la transformation quels que soient les modèles qui se conforment aux métamodèles sources et cibles. Dans le cas où les deux ensembles de métamodèles sources et cibles sont identiques, la transformation est dite endogène, sinon elle est dite exogène. Afin d’expliquer le principe de base d’une transformation de modèle, la figure 1.4 suivante expose le cas d’un processus de développement conçu pour modi- fier un modèle de formes imbriquées (la modélisation est issue d’une autre étude [87]). A travers cet exemple, nous considérons que les ensembles de modèles et les ensembles de métamodèles sont des singletons. Sur cette figure, Exemples de transformations le cycle du processus évolue de la gauche vers la droite. Le niveau d’abstraction des modèles est représenté à la verticale. Le métamétamodèle MMM est constitué d’un ensemble d’objets (ou de concepts) permettant de décrire des formes qui peuvent être spécialisées et composées. Deux métamodèles MM1 et MM2 se conforment tous deux à MMM pour permettre la description de rectangles dont certains sont des carrés. Une nuance est toutefois faite entre leurs concepts pour que d’un côté, un carré puisse posséder un rectangle (par héritage un carré) ou un rond, et de l’autre côté, un carré puisse posséder un triangle ou une ellipse. Ce sont sur ces concepts que deux transformations sont ici décrites pour accomplir le processus de modification ; l’une (T1->2), endogène, vient permuter les ronds avec les carrés, tandis que l’autre (T2->3), exogène, vient remplacer les ronds par des triangles et les carrés par des ellipses. Chaque transformation de modèles est constituée d’un certain nombre de règles qui sont décrites dans un modèle de transformation (ici M(T1->2) ou M(T2->3)). Ces règles peuvent être décrites de manière ordonnée (impérative) ou non (déclarative) suivant le métamodèle de transformation (ici MM(T1->2) ou MM(T2->3)) fourni par le langage de transformation de modèles utilisé 5 [38]. Précisons que chaque métamodèle de transformation se conforme aussi à un métamétamodèle qui dans notre cas est différent de MMM. En effet, ce dernier est 5. Notons que le métamodèle de transformation aurait pu être le même si le langage de transformation avait été le même pour les deux transformations12 Chapitre 1. Problématique détaillée FIGURE 1.4 – Exemple de processus de modification de formes dans une IDM décrit pour un espace technique qui se restreint à celui des formes géométriques. Pour des raisons de clarté, il n’a pas été représenté ici. L’algorithme 1.1 ci-après montre un exemple de règle qui pourrait être décrite dans M(T2->3) pour remplacer des ronds par des triangles. Comme illustré ici, chaque règle de transformation effectue génériquement les modifications à l’ensemble des ronds du modèle source, en s’appuyant sur les concepts des métamodèles source et cible. 1.2.2 Processus de développement Comme nous l’avons abordée précédemment, la conception détaillée des SETRs implique de spécifier chaque objet actif d’un modèle de conception générale en fonction de la plate-forme logicielle d’exécution ciblée pour le déploiement. Cette nécessité laisse entrevoir un enrichissement de ce modèle en intégrant la plate-forme au sein de la conception. En conséquence, l’élaboration d’un processus de développement dans une IDM semble intéressante pour traduire automatiquement ce modèle. L’approche L’intégration MDA des plates-formes d’exécution (non uniquement propre au domaine du temps réel) dans un processus de développement vise finalement à générer un modèle de l’application exécutable du système. Pour y parvenir, l’IDM met à disposition un cadre méthodologique pour intégrer progressivement les concepts et les mécanismes spécifiques à la plate-forme visée (e.g., la concurrence, les tâches d’exécution propres à la plate-forme,1.2. Mise en œuvre dans une ingénierie dirigée par les modèles 13 ALGORITHME 1.1 – Règle de remplacement de ronds par des triangles Métamodèle source : MM1 : le métamodèle qui décrit des ronds Métamodèle cible : MM2 : le métamodèle qui décrit des triangles Concept source : C : le concept Carré ∈ MM1 Élement impliqué : t : un triangle (conforme à Triangle ∈ MM2) début si ∃ C.rond alors correspondance avec le concept Carré ∈ MM2 triangle ← t ellipse ← ∅ etc.). L’initiative MDA (Model Driven Architecture) [60], promue par l’OMG, a vu le jour au début des années 2000 pour mettre en œuvre de tels processus de développement. Cette architecture distingue les modèles indépendants de toute plate-forme d’exécution (PIM, Platform Independant Model), de ceux spécifiques à une plate-forme d’exécution (PSM, Platform Specific Model). Le passage d’un modèle à un autre peut se faire au moyen d’une succession de transformations, comme introduit précédemment, selon le niveau d’abstraction requis. Cet enchaînement de transformations peut finalement aboutir au déploiement de l’application dans un espace technique destiné au codage. Le PSM résultant peut dans ce cas être utilisé pour générer du code 6 implémentable sur une plate-forme particulière. La figure 1.5 présente une succession de transformations conduisant à la génération de code. Chaque transformation peut intégrer une description de la plate-forme (PDM, Platform Description Model). Toutefois, la notion de description de plate-forme évoquée à l’instant n’est pas encore très bien définie avec l’initiative MDA. Elle peut soit faire partie intégrante du modèle de transformation, soit être passée en paramètre de la transformation. La notion de PDM est la plupart du temps mise de côté tellement peu de travaux se sont adressés sur son contenu. Hypothèse 6 Représenter la plate-forme dans un PDM paraît être la piste la plus propice pour intégrer une telle description dans une conception détaillée. L’implantation La conseption détaillée dans un contexte MDA de la conception dans un processus de développement IDM optimise le flux des activités que nous avons présenté figure 1.3. La figure 1.6 détaille le processus de développement qui pourrait être globalement mis en œuvre au sein d’une architecture MDA. Les activités de définition des modèles d’objets sont précisés par des activités automatisées de génération de modèles représentant chacune un processus. Chaque processus peut finalement comporter plusieurs transformations comme annoncé dans l’approche MDA. La vérification apparaît toujours en phase de conception générale. Néanmoins, cette configuration permet d’automatiser la conception détaillée dans un processus duquel le PDM est passé 6. Le générateur de code est en réalité une transformation de modèle – à ceci près que le code généré est un modèle textuel.14 Chapitre 1. Problématique détaillée FIGURE 1.5 – Initiative MDA avec intégration de descriptions de plates-formes en paramètre. Les règles des transformations apparaissent de façon globale en paramètres de l’ensemble des processus sur ce diagramme. Hypothèse 7 Cette contextualisation de la conception détaillée n’étant pas suffisante pour y appliquer des activités de vérification, nous ciblerons notre recherche vers un processus de génération de modèles formels d’applications exécutables. Il sera intégré dans le processus de conception détaillée. Approches Le choix des métamodèles conceptuelles pour la métamodélisation est important dans l’élaboration d’un processus de développement. La généricité des transformations du processus à mettre en œuvre réside en effet dans la généralisation des concepts et des relations qui décrivent la syntaxe abstraite du langage de modélisation. Deux courants sont distingués pour concevoir un métamodèle. D’un côté, les GPMLs Generic Purpose Modeling Languages regroupent les langages de modélisation dits “généralistes”. UML (Unified Modeling Language) [65], standardisé par l’OMG (Object Management Group), en est le principal représentant. Les concepts génériques de ces métamodèles tendent à la définition prolifique des concepts de modélisation. La conception de tels langages de modélisation favorise la réutilisation des transformations de part leur généricité, mais aussi de part l’homogénéité des outils employés. Le principal inconvénient réside cependant dans la difficulté de localiser un concept dédié au champ d’application. Comme réponse à ce problème, l’OMG a proposé d’étendre UML en introduisant des profils métiers [35] dans le but de raffiner les concepts visés. A l’instar du domaine du temps réel, le profil UML-MARTE (Modeling and Analysis of Real-Time and Embedded systems) [63] est le plus approprié.1.2. Mise en œuvre dans une ingénierie dirigée par les modèles 15 FIGURE 1.6 – La conception orientée objet dans une IDM : place du processus de développement De l’autre côté, les DSMLs Domain Specific Modeling Languages regroupent les langages de modélisation dits “dédiés” à un domaine particulier. Les DSMLs, a contrario des profils UML, ne se basent pas sur le métamodèle UML. La conception d’un DSML 7 restreint entièrement le langage de modèlisation au domaine visé et allège ainsi la localisation des concepts pour la modélisation. AADL (Architecture Analysis & Design Language, standardisé par la SAE (Society of Automotive Engineer) fait parti des DSMLs dédiés au domaine du temps réel. La conception de ces métamodèles et des outils peut s’avérer très coûteuse, puisqu’elle fait appel à des spécialistes du domaine métier. Néanmoins, plusieurs environnements consacrés à la génération automatique d’outils ont vu le jour pour assister de tels développements, à l’image de GME (Generic Modeling Environment) [23], EMP (Eclipse Modeling Project) [28] ou bien encore TOPCASED [33]. D’un côté comme de l’autre, les GPMLs et les DSMLs garantissent des avantages mais ils présentent aussi des inconvénients. A ce stade, il est difficile d’envisager plus une approche conceptuelle qu’une autre. Le choix se profilera davantage dans la caractérisation de la problématique.. 7. Un DSML se conforme en général à des méta-métamodèles tels que le MOF de l’OMG ou Ecore du projet EMF16 Chapitre 1. Problématique détaillée 1.3 Caractérisation de la problématique Les deux sections précédentes nous ont permis de délimiter le champ d’application de cette étude : élaborer un processus de génération de modèles formels utile à la vérification des propriétés non-fonctionnelles des SETRs en phase de conception détaillée. Ce processus doit permettre la génération de modèles d’applications exécutables qui sont exploitables par des outils de vérification. Pour y parvenir, un cadre méthodologique tel que l’initiative MDA a été présenté pour nous aider à considérer la plate-forme logicielle d’exécution temps réel ciblée dans un PDM. Deux points importants restent cependant en suspens avec l’approche MDA : – La représentation des plates-formes logicielles d’exécution temps réel dans un PDM : nous devons déterminer quelle métamodélisation adopter pour une telle représentation ; – La considération des plates-formes logicielles d’exécution temps réel dans une IDM : nous devons déterminer de quelle manière une telle représentation doit être consid- érée au sein du processus à mettre en œuvre. 1.3.1 Représentation des plates-formes logicielles d’exécution Une métamodélisation adaptée repose avant tout sur la définition de la syntaxe abstraite d’un langage de modélisation qui répond à nos besoins. Ces besoins sont évoqués ci-après en fonction de ce qui caractérisent les plates-forme d’exécution et de l’approche de représentation des plates-formes d’exécution. 1.3.1.1 Caractérisation des plates-formes Composantes Les plates-formes logicielles temps réel logicielles sont considérées comme un “ensemble de sous-systèmes et de technologies” qui fournissent les capabilités nécessaires pour supporter l’exécution d’une application logicielle [8]. La représentation des plates-formes d’exécution logicielles est caractérisée par un ensemble de composantes visibles depuis l’interface de programmation (API, Application Programming Interface) [58] [3]. Une identification plus en adéquation avec l’approche MDA [88] a cependant mis en exergue les besoins structurels et comportementaux de modélisation de cette API et a abouti à la caractérisation des quatre axes suivants : Les ressources (tâches, sémaphores, boîtes aux lettre, etc.) sont vus comme une représentation structurelle des concepts exécutifs offerts par les plates-formes d’exécution. Cette notion permet par conséquent de décrire les mécanismes des plates-formes à travers des entités aux capacités d’exécution et d’instanciation restreintes. Les services représentent structurellement les primitives offertes par les ressources pour les utilisateurs de l’API. Nous pouvons noter comme exemple de primitives, la création ou la destruction d’une tâche. Les règles d’utilisation décrivent les contraintes et les patrons d’utilisation des ressources et des services. Le non respect de ces règles peut entraîner un dysfonctionnement dans l’exécution d’une application interfacée avec la plate-forme. Par exemple, suivant la plate-forme visée, un service appelé dans une routine d’exécution qui est bloquant, ne garantie pas forcément la mise en œuvre d’une application. Le cycle de vie décrit le comportement observable des ressources et des services. Il représente donc l’aspect comportemental des plates-formes d’exécution depuis l’interface de programmation.1.3. Caractérisation de la problématique 17 La représentation des règles d’utilisation implique une réflexion en terme de choix dé- cisionnel quant à la plate-forme la mieux adaptée pour l’exécution des applications. Or, la priorité dans cette étude est de permettre la vérification de propriétés non-fonctionnelles des SETRs qui dépendent du cycle de vie des ressources et des services des plates-formes. Hypothèse 8 Par conséquent, nous nous focaliserons uniquement sur une représentation structurelle et comportementale des plates-formes d’exécution. Les règles d’utilisation ne seront pas abordées ici. 1.3.1.2 Approches de représentation Une étude Distinction des approches prospective [12] a recensé dans notre équipe de recherche, trois démarches de représentation des plates-formes dans un contexte IDM. Cette prospection a été menée dans les deux approches conceptuelles de métamodélisation. Les approches de représentation sont décrites ici pour les deux approches conceptuelles de métamodélisation. Nous verrons que chaque représentation amène à considérer différemment les plates-formes à travers le processus de développement à mettre en œuvre, et ce quelque soit l’objectif (analyses, dé- ploiements, simulations, etc). L’approche enfouie offre une représentation des concepts exécutifs des plates-formes, soit par un programme [90], soit par un modèle formaté [85]. Dans le premier cas, le programme est directement implémenté la transformation de modèles. Dans le second cas, le modèle formaté est passé en paramètre de la transformation de modèles. Dans les deux cas, cette approche destine la description de la plate-forme à un traitement unique lié à une seule plate-forme. En effet, les concepts exécutifs n’apparaissent pas dans un métamodèle précis. La transformation ne peut établir de correspondances entre les concepts des métamodèles source et cible, et les concepts exécutifs de la plate-forme. Cette approche est donc délicate puisqu’une modification dans l’une des composantes (i.e., application, plate-forme ciblée, règles de transformation) du processus de développement à mettre en œuvre peut compromettre sa réutilisation. L’approche implicite offre une autre manière de décrire les plates-formes d’exécution. Dans cette démarche, l’API de la plate-forme d’exécution apparaît dans le métamodèle. Chaque modèle de plate-forme correspond ainsi à un métamodèle différent [46] [81]. Cette approche facilite l’identification des concepts exécutifs au sein des transformations de mod- èles. Cependant, tout comme l’approche enfouie, la considération implicite ne favorise pas la réutilisation de processus. Le métamodèle étant dédié à une unique plate-forme d’exé- cution, les règles impliquées dans les transformations ne peuvent que s’appuyer sur les concepts de la plate-forme considérée. Une alternative à cette approche met en évidence un métamodèle pivot. Ce métamodèle regroupe les concepts exécutifs rencontrés dans la plupart des plates-formes d’exécution [26] [83]. Ce type de métamodèle introduit une première transformation dans laquelle une plate-forme plus abstraite est considérée. Une seconde transformation vient affiner le processus en spécifiant la plate-forme ciblée. Néanmoins, seule une partie du processus de développement (la première transformation) peut être maintenue avec cette approche. L’approche explicite consiste à décrire chaque plate-forme d’exécution dans un mod- èle. En conséquence, chaque modèle est conforme au même métamodèle dans lequel les concepts exécutifs génériques sont identifiés de manière abstraite. Contrairement aux approches précédentes, chaque modèle peut être considéré indépendamment des autres sans modifier les transformations puisque le métamodèle impliqué est unique. Avec cette approche, les processus sont donc réutilisables et plus génériques en raison de règles de trans-18 Chapitre 1. Problématique détaillée formation indépendantes des plates-formes d’exécution ciblées. Cette approche peut permettre aussi de bien séparer les préoccupations métiers et ainsi de rendre chaque intervention indépendante vis-à-vis des autres 8 . Hypothèse 9 L’approche explicite semble prédominer les deux autres approches vis-à-vis de la généricité des transformations. Nous nous pencherons donc sur cette approche. 1.3.2 Considération des plates-formes logicielles d’exécution Comparaison La même étude entre contexte GPML et contexte DSML prospective [12] que précédemment a permis d’identifier plusieurs approches de considération de plate-forme pour le compte d’un processus de déploiement d’applications temps réel. Dans cette prospection, les considérations sont comparées en fonction de l’approche de représentation et des deux approches conceptuelles de métamod- élisation. L’approche explicite nous intéressant plus particulièrement, nous présentons figure 1.7 ici les deux approches de considération qui ont été retenues dans un contexte GPML et dans un contexte DSML. Ces deux approches résultent de contributions effectuées dans notre équipe. Du côté des GPMLs, le package SRM (Software Resource Modeling) du profil UMLMARTE [87] permet de modéliser la structure des plates-formes à partir d’un modèle de domaine du logiciel embarqué temps réel. L’implantation d’un motif de conception « RESSOURCE-SERVICE » au sein de ce package, permet de définir des concepts exécutifs de la plate-forme ciblée par stéréotypage. La figure 1.7(a) de gauche, nous montre la considération d’une représentation de la plate-forme (PDM) décrite explicitement avec SRM. L’ensemble des modèles se conforment au même métamodèle UML, ce qui offre un contexte unifié entre les domaines de l’application, de la plate-forme et du déploiement de l’application sur la plate-forme. Cette unification existe suite à l’importation, dans UML, du package SRM, considéré comme un profil pour simplifier, et du profil du domaine de l’application. La métamodèlisation unifiée UML apporte une mise en relation interne des concepts de l’application avec ceux de la plate-forme, via des stéréotypes, pour générer un modèle de l’application déployée avec la transformation T1 9 . Le déploiement est assuré en générant des instances des concepts exécutifs de la plate-forme pour les besoins de l’application. (a) Contexte UML : profil SRM (b) Contexte DSML : RTEPML FIGURE 1.7 – Approches de considération du PDM Dans un contexte DSML, le langage de modélisation RTEPML (Real-Time Embedded Platform Modeling Language) est né de l’implantation du modèle de domaine de SRM. Ce langage qui est entièrement dédié au domaine du logiciel embarqué temps réel, aide à la représentation structurelle des concepts exécutifs des plates-formes d’exécution. Il contribue à l’outillage de processus au sein d’une même suite d’outils appelé SEXPISTOOLS (Software Execution Platform Inside Tools). La figure 1.7(b) de droite expose cette fois la 8. Dans le chapitre suivant, un état de l’art montre que ce n’est pas toujours le cas 9. Le modèle de transformation n’est pas représenté ici.1.4. Synthèse 19 considération du PDM décrit avec RTEPML. Les métamodèles de l’application et de la plateforme (RTEPML) sont dans ce cas disjoints. Contrairement à l’approche précédente, la mise en relation des concepts est effectuée au niveau de RTEPML pour générer un modèle de l’application déployée intégrée dans le modèle de la plate-forme. Les mécanismes utiles à l’exécution de l’application apparaissent dans RTEPML pour permettre une telle représentation dans le modèle de plate-forme. Pour cette raison, ce modèle qui décrit l’application déployée est aussi conforme à RTEPML. Excepté le fait que la mise en relation des concepts diffère selon le contexte, ces deux approches répondent finalement aux mêmes critères de qualité mentionnés en introduction. L’approche explicite offre tout d’abord une généricité des règles de transformations qui profite à la réutilisabilité des processus de déploiement. Puis la mise en relation des concepts de l’application avec ceux de l’exécutif au niveau de la métamodélisation, de surcroît dans une approche explicite, assure la portabilité des applications vers un grand nombre de plates-formes. Enfin, la séparation des domaines de l’application et de la plate-forme, ajoutée à l’indépendance des processus vis-à-vis des plates-formes d’exécution, facilite la maintenabilité des déploiements en phase de conception détaillée. Néanmoins, seule une description structurelle des applications déployées sont possibles avec ces deux approches. Les avantages qu’elles offrent nous laisse penser que la consid- ération d’une représentation comportementale des plates-formes doit être menée suivant les deux approches conceptuelles de métamodélisation. Une contribution s’est déjà orientée vers cette considération comportementale avec SRM [30] en se basant sur les services d’exécution pour de la génération de code (se reporter au chapitre 2 à la page 30 pour une synthèse de ces travaux). Hypothèse 10 De ce fait, nous considérerons une représentation comportementale des plates-formes logicielles avec SEXPISTOOLS pour contribuer aussi dans un contexte DSML. 1.4 Synthèse Dans ce chapitre, le champ d’application de cette étude a été ciblé. Il se concentrera sur la génération de modèles formels d’applications temps réel déployées sur des plates-formes logicielles d’exécution. Cette contribution vient renforcer la vérification des SETRs en phase de conception détaillée. L’objectif n’est pas de traiter la vérification mais plutôt d’offrir la possibilité d’appliquer des activités de vérification. Les sytèmes concernés par cette étude sont multitâches, monoprocesseurs, cadencés par les évènements dans une approche asynchrone. Un processus de génération de modèles formels a été avancé pour être intégré dans un processus existant de déploiement multiplates-formes d’applications temps réel. Dans une mesure plus détaillée que les conceptions actuelles, la considération du comportement des plates-formes logicielles d’exécution temps réel durant le déploiement a été proposée. La suite d’outils SEXPISTOOLS qui est développée dans notre équipe a été choisie pour contribuer à un tel processus et se place dans un cadre méthodologique telle que l’initiative MDA. Au sein de cette suite, le langage de modélisation RTEPML, qui permet actuellement de représenter explicitement la structure des plates-formes dans une approche DSML, a été retenu pour aussi représenter leur comportement. Ce cadre de travail a cependant soulevé deux points importants qui ont été caractérisés : Nous proposons une représentation explicite du comportement des plates-formes logicielles d’exécution temps réel au sein d’un PDM. La syntaxe abstraite de RTEPML doit20 Chapitre 1. Problématique détaillée par conséquent être étendue pour définir les concepts comportementaux nécessaires à cette représentation. Nous avons déjà caractérisé le besoin de représenter le cycle de vie des ressources et des services. Toutefois, comment adapter cette représentation à celle proposée par RTEPML ? Autre point abordé est la considération de ce PDM dans le processus que nous voulons mettre en œuvre. Le processus de déploiement actuel qui est implémenté dans SEXPISTOOLS pour le déploiement multiplates-formes a été élaboré selon une certaine approche de considération. Il intègre l’application déployée dans le modèle de la plate-forme. Néanmoins, la prise en compte du comportement dans la représentation de la plate-forme a-t-elle un impact sur cette approche de considération ? Comment appliquer de façon corollaire le nouveau processus de génération de modèles formels au processus de déploiement existant ? Pour orienter nos axes de recherche, un état de l’art de SEXPISTOOLS et des contributions en lien avec notre problématique est proposé dans le chapitre suivant.État de l’art 2 Sommaire 2.1 Présentation de SEXPISTOOLS et de RTEPML . . . . . . . . . . . . 23 2.1.1 SEXPISTOOLS dans un contexte IDM . . . . . . . . . . . . . . 23 2.1.2 Représentation explicite des plates-formes avec RTEPML . . . . 23 2.1.3 Déploiement sur une plate-forme décrite par RTEPML . . . . . 26 2.2 Le comportement des plates-formes logicielles d’exécution dans l’IDM 30 2.2.1 Outils d’aide au déploiement . . . . . . . . . . . . . . . . . . . 30 2.2.2 Outils d’aide à la génération de modèles en vue de vérification . 35 2.2.3 Outils d’aide au déploiement et à la vérification . . . . . . . . . 38 2.3 Positionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.3.1 Constatations . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.3.2 Orientations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 C e chapitre vise à positionner les contributions de cette étude vis-à-vis des travaux existants. Ce chapitre s’organise en trois sections. La première section présente notre suite d’outils SEXPISTOOLS qui ne considère actuellement que la structure des plates-formes logicielles d’exécution dans un processus de déploiement d’applications temps réel. La seconde section expose les outils qui ont déjà contribué à la considération du comportement des plates-formes logicielles d’exécution dans une IDM. Enfin la dernière section positionne nos axes de recherche vis-à-vis des outils présentés pour aussi considérer le comportement des plates-formes dans SEXPISTOOLS.2.1. Présentation de SEXPISTOOLS et de RTEPML 23 2.1 Présentation de SEXPISTOOLS et de RTEPML Grâce à l’approche explicite sur laquelle est basée la considération des plates-formes logicielles d’exécution au sein du processus de déploiement implémenté dans SEXPISTOOLS, un grand nombre de plates-formes décrites structurellement peuvent être capitalisées. Nous présentons ici le langage de modélisation RTEPML, ainsi que le processus de déploiement, tels qu’ils sont développés. 2.1.1 SEXPISTOOLS dans un contexte IDM Placée dans un contexte IDM, l’activité de SEXPISTOOLS (voir figure 2.1) se substitue à la génération de modèles de conception détaillée, déjà évoquée dans la figure 1.6. Le processus actuellement implémenté vient automatiser le déploiement multiplates-formes dès la phase de conception. La plate-forme d’exécution considérée explicitement en paramètre du processus de déploiement est préalablement décrite par un langage de modélisation. FIGURE 2.1 – Génération d’un modèle de conception détaillée avec SEXPISTOOLS Comme illustrée sur cette figure, l’activité de SEXPISTOOLS privilégie l’intervention des spécialistes du déploiement et de la plate-forme logicielle d’exécution temps réel visée. L’activité de déploiement se distingue bien de l’activité de description de la plate-forme, ce qui permet à chaque spécialiste d’agir indépendamment. 2.1.2 Représentation explicite des plates-formes avec RTEPML La description des plates-formes est représentée explicitement dans un PDM grâce au langage de modélisation RTEPML. Sa syntaxe abstraite est une alternative du package SRM d’UML-MARTE qui a été abordé dans le chapitre précédent 1 à la page 18. RTEPML a gardé la même taxonomie que SRM pour identifier structurellement les ressources logicielles d’un grand nombre de plates-formes d’exécution temps réel [86]. Ces ressources sont décrites par des concepts exécutifs dont des rôles ont été identifiés pour les repérer dans RTEPML. Les concepts sont catégorisés de la manière suivante 1 : – Les ressources concurrentes (ConcurrentResource) : une distinction est faite entre celles qui sont activées par un ordonnanceur (SchedulableResource) et celles activées 1. Les rôles sont précisés à chaque fois en italique.24 Chapitre 2. État de l’art suite à une interruption (InterruptResource) 2 ; – Les ressources d’intéraction (InteractionResource) : ces ressources sont caté- gorisées en deux sous-familles : – les ressources de synchronisation (SynchronizationResource) : elles synchronisent les ressources concurrentes. Parmi ces ressources, nous pouvons noter les mécanismes d’exclusion mutuelle (MutualExclusionResource) et de notification (NotificationResource) qui permettent le contrôle des flots d’exécution ; – les ressources de communication (CommunicationResource) : elles servent de communication de données destinées aux ressources concurrentes. Parmi ce ressources, nous pouvons noter les mécanismes d’échange de données par variable partagée (SharedDataComResource) et par message (MessageComResource) qui permettent la gestion des flots de données. – Les routines (Routine) : les routines servent de points d’entrées à l’exécution des ressources concurrentes ; – Les compteurs (TimerResource) : les compteurs comptabilisent les bases de temps servant de référence aux temps d’exécution ; – Les partitions mémoires (MemoryPartition) : elles permettent la représentation d’espaces, plus ou moins restreints, d’adressages affectés à des ressources concurrentes. Précisons que les ressources de gestion n’ont pas été identifiées au sein de RTEPML. Celles-ci couvrent essentiellement l’allocation des ressources matérielles (tels que le processeur ou la mémoire) et la gestion des périphériques [63]. En revanche, RTEPML reconnaît les types de données natifs à une plate-forme d’exécution. Le concept de type de données (DataType) a été intégré dans RTEPML pour identifier les différents genres possibles (e.g., booléens, caractères, entiers, flottants, etc.). D’autres rôles ont aussi été identifiés pour caractériser ces concepts par le biais d’attributs ou de relations vers d’autres concepts. Un extrait de RTEPML est donné figure 2.2 montrant le fondement de la modélisation des ressources et des services des platesformes logicielles d’exécution temps réel. Un exemple d’assignation de rôles identifiés par référencement est présenté. FIGURE 2.2 – Extrait du DSML RTEPML : modélisation structurelle des ressources et des services Sur cette figure, le concept de ressource Resource est un concept abstrait qui généralise l’ensemble des ressources logicielles présentées précédemment. Chaque catégorie de concept de ressource est hiérarchisée grâce à la relation d’héritage : une ressource ordonnançable (SchedulableResource) hérite d’une ressource concurrente (ConcurrentResource). 2. Les alarmes se distinguent par leur activation sur une valeur de référence par un compteur (TimerResource)2.1. Présentation de SEXPISTOOLS et de RTEPML 25 Chaque ressource peut ensuite être caractérisée : une ressource est munie de propriétés (ResourceProperty) et fournit des services (ResourceService) qui sont paramétrables (ServiceParameter). Si nous prenons maintenant l’exemple d’une ressource concurrente, certains rôles identifiés servent de références à la caractérisation de propriétés telles que des élé- ments de priorité (priorityElements), de point d’entrée (entryPointElements), etc. D’autres aussi permettent la caractérisation de services tels que des services d’activation (activateServices), de terminaison (terminateServices) 3 , etc. Nous illustrons ci-après deux cas de figure d’utilisation de RTEPML pour représenter un extrait du PDM de la norme OSEK/VDX. Le premier donne un exemple de description de ressource, tandis que le deuxième montre comment décrire un prototype de conception. 2.1.2.1 Description de ressource La figure 2.3 expose une représentation simple de définition d’une tâche OSEK/VDX dans un PDM conforme à RTEPML. FIGURE 2.3 – Représentation simple d’une plate-forme OSEK/VDX avec RTEPML Sur cette figure, la tâche (Task) est définie dans le PDM conformément au concept de ressource ordonnançable (SchedulableResource 4 ). Cette tâche est caractérisée par sa prior- 3. Tous les rôles ne seront bien évidemment pas abordés ici. Pour une plus description plus détaillée, se reporter aux travaux de définition de RTEPML [12] 4. Les rôles de ressources apparaissent en gras entre crochets sur le PDM26 Chapitre 2. État de l’art ité (priority) qui est définie comme un entier conformément au concept de type entier (IntegerType). Cette propriété joue le rôle d’élément de priorité (priorityElements 5 ) pour la tâche. De même, deux autres rôles permettent de compléter la définition de cette tâche : son point d’entrée (entryPoint) et le service de terminaison (terminateTask()) qu’offre cette tâche pour se terminer à la fin de son exécution 6 . Enfin une fonction (Function) qui est conforme au concept de routine (Routine) est aussi définie pour préciser le point d’entrée de la tâche. Un guide conceptuel d’utilisation de RTEPML est fourni en annexe à la page 131 afin de mieux comprendre la démarche adoptée pour décrire les ressources d’une plate-forme. 2.1.2.2 Description des prototypes de conception Certaines plates-formes ne fournissent pas de ressources dédiées à l’exécution de traitements particuliers. Néanmoins, un agencement des ressources doit permettre la mise en œuvre de ces ressources dédiées. C’est la raison pour laquelle la notion de prototype de conception a été adoptée dans RTEPML. Pour illustrer l’emploi de cette notion, la figure 2.4 décrit la représentation d’une tâche périodique définie sur une plate-forme OSEK/VDX. La mise en œuvre de telles ressources est rendue possible dans RTEPML grâce au concept Prototype. Chaque ressource dédiée (Resource) peut en effet se voir attribuer un prototype qui est constitué d’instances de ressources (PrototypeResourceInstance) et d’associations (PrototypeResourceInstanceAssociation) pour agencer ces instances. Un certain de nombre de rôles (i.e., PrototypePeriodElements et PrototypePriorityElements dans notre cas de figure) ont été définis, par référencement, au sein de chaque ressource dédiée pour identifier les instances qui la composent. Ce mécanisme a été adopté pour caractériser les ressources dédiées à partir des rôles (i.e., respectivement PeriodElements et PriorityElements) qui caractérisent les ressources qui typent (type) les instances. Pour illustrer cet agencement, nous avons décrit une tâche périodique (PeriodicTask) dans un PDM conformément au concept de ressource ordonnançable (SchedulableResource). Un prototype a été conçu pour cette tâche périodique qui est composée d’une tâche (Task) et d’une alarme (Alarm). Cette composition est conforme à l’agencement d’une instance de ressource typée par Task (T1) avec celle typée par Alarm (A1). La tâche périodique est finalement caractérisée par sa priorité (T1.priority) et sa période (T1.period) après identification des instances au sein de la tâche périodique et caractérisation des ressources types. Notons qu’il est possible de préciser une instance maîtresse (ici T1) au sein du prototype grâce au rôle masterInstance. Un guide conceptuel d’utilisation de RTEPML est fourni en annexe à la page 131 afin de mieux comprendre la démarche adoptée pour décrire les prototypes de conception d’une plate-forme. 2.1.3 Déploiement sur une plate-forme décrite par RTEPML La plate-forme d’exécution une fois décrite est considérée à travers le processus de déploiement qui a été implémenté dans SEXPISTOOLS. Par conséquent, le processus a pour but de déployer une description de l’application sur la plate-forme considérée. Sur la figure 2.1, l’activité de déploiement s’appuie sur des règles qui établissent des correspondances entre le modèle de l’application (PIM) et le modèle de la plate-forme d’exécution (PDM) pour générer un modèle de l’application spécifique à la plate-forme considérée (PSM). Plusieurs approches ont été mentionnées pour mettre en relation les éléments du 5. Les rôles de propriétés et de services sont annotés en gras sur le PDM 6. La norme OSEK/VDX impose que ce service soit appelé par la tâche en exécution avant de s’endormir2.1. Présentation de SEXPISTOOLS et de RTEPML 27 FIGURE 2.4 – Représentation d’une tâche périodique OSEK/VDX avec RTEPML PIM et du PDM dans la génération d’un PSM [12]. Celle retenue ici est l’intégration de l’application dans la plate-forme. 2.1.3.1 Intégration de l’application Cette approche introduit un mécanisme générique d’intégration de l’application dans RTEPML. Ce mécanisme est, non pas basé sur les concepts de l’application, mais sur l’instanciation des concepts de ressources mises à contribution pour l’exécution de l’application. Cette instanciation se rapproche de l’artefact de modélisation présenté précédemment sur la figure 2.4 pour décrire les prototypes de conception. Toutefois, contrairement aux instances de prototypes de conception, cette instanciation est liée à l’application et non à28 Chapitre 2. État de l’art la plate-forme. La figure 2.5 présente par conséquent les concepts de cette instanciation intégrés dans RTEPML. La création de ces instances pour l’application apparaît lors du dé- ploiement ; elle est présentée dans la figure 2.6. FIGURE 2.5 – Intégration de l’application dans RTEPML La représentation d’une plate-forme peut intégrer plusieurs applications (Application) déployées. Ces applications sont intégrées dans RTEPML de manière simplifiée ; chaque application est en effet constituée d’instances de ressources (ApplicationResourceInstance), chacune typée par la ressource qu’elle incarne. Le traitement de l’application telles que les instructions conditionnelles ne sont pas considérées ici. La plate-forme dispose alors d’une dualité entre les instances qui dépendent de l’application et les ressources qui dépendent de la plate-forme. Une instance peut être enrichie 1) par des propriétés (ResourceInstanceProperty) pour exprimer les valeurs des propriétés associées à la ressource type, et 2) par une liste ordonnée d’appels de services (CallService) qui caractérisent les ressources qui typent les instances visées par ces appels 7 . Par exemple : – Pour une instance de ressource concurrente, celle-ci pourrait être enrichie par une propriété qui vient préciser la valeur de la priorité de la ressource concurrente ; – Pour une instance de routine d’exécution, celle-ci pourrait être enrichie par l’appel du service de terminaison pour exécuter l’arrêt d’une ressource concurrente. Un enrichissement d’instance résulte du renseignement d’informations spécifiques à l’application. Ce renseignement est effectué par des règles de correspondances durant le déploiement illustré ci-après. 2.1.3.2 Processus de déploiement La figure 2.6 illustre un cas simple de déploiement par intégration d’application mis en œuvre dans SEXPISTOOLS. L’application (PIM) représente une activité très simple de robotique 8 dont le but serait d’afficher un message “HelloWorld” sur un écran. L’applica- 7. Une liste d’appels de paramètres (CallParameter) pour chaque service appelé est aussi possible. Mais celle-ci n’est pas représentée ici pour plus de lisibilité 8. Le métamodèle d’application Robot est donné à titre indicatif. En réalité, il ne correspond à une technologie précise ; les règles du processus de déploiement sont générées selon le cas2.1. Présentation de SEXPISTOOLS et de RTEPML 29 tion est déployée sur une plate-forme OSEK/VDX dont la description (PDM) est passée en paramètre du processus de déploiement. FIGURE 2.6 – Simple déploiement d’application vers une plate-forme OSEK/VDX Les règles de transformation du processus de déploiement sont définies indépendamment de la plate-forme ciblée 9 . Cette indépendance est permise grâce à la notion de rôle présentée précédemment. Le déploiement est réalisé en établissant une correspondance (ou mapping en anglais) entre chaque concept de l’application et celui nécessaire à son exé- cution sur la plate-forme considérée. Ce mapping consiste à localiser le rôle du concept exécutif qui correspond à chaque concept de l’application à travers le PDM. Une fois la correspondance établie, la structure du concept exécutif localisé est instanciée conformément au modèle de l’application intégré dans RTEPML. Chaque instance est par la suite enrichie par la spécification de ses caractéristiques à partir des informations données par les concepts de l’application, en fonction des rôles appropriés. Toutes ces instances spécifiées constituent finalement le modèle de l’application déployée (PSM). Sur la figure 2.6, une tâche (Task) a été instanciée (HelloWorld : Task) pour permettre l’exécution du sous-programme (Main) de l’activité d’affichage (HelloWorld) de l’application. La tâche est caractérisée par un point d’entrée (entryPoint) sur une fonction d’exécution (Function) qui a aussi été instanciée (Main : Function). Les deux instances créées ont été enrichies pour spécifier une priorité à la tâche et un appel du service de terminaison depuis la fonction d’exécution pour stopper la tâche. Un guide conceptuel synthétisé sur l’enchaînement des règles du processus de dé- ploiement est fourni en annexe à la page 131 afin de mieux comprendre l’instanciation des ressources, ainsi que la spécification des propriétés et des appels de service. 9. Pour autant, la généricité de ces règles repose sur leur génération qui provient de templates sources et de modèles de déploiement et de décision, tous deux conformes à un métamodèle de déploiement30 Chapitre 2. État de l’art 2.2 Le comportement des plates-formes logicielles d’exécution dans l’IDM Cette section recense les travaux existants, basés sur une approche IDM, pour améliorer la conception détaillée des SETRs. Ces travaux visent le déploiement des applications temps réel et considèrent le comportement des plates-formes logicielles d’exécution. Cet état de l’art complète ceux des travaux abordés [87] [12] dans le chapitre 1 précédent à la page 18. Deux axes sont privilégiés dans cet état de l’art : l’aide au déploiement, voire à la génération de code et l’aide à la génération de modèles formels d’applications déployées. 2.2.1 Outils d’aide au déploiement Les outils présentés ici orientent vers la génération de code. Ils s’adonnent à considérer le comportement des plates-formes pour faire face aux exigences hétérogènes des platesformes. Cette implication demande une grande flexibilité de la part de ces outils. 2.2.1.1 Analyse temporelle après déploiement Présentation de Fujaba Fujaba est l’approche un environnement de développement open source qui s’appuie sur l’IDM pour concevoir des systèmes logiciels implémentés en Java à partir de modèles UML. Il intègre aussi des outils de transformation pour passer du code à la modélisation (reverse engineering). Plusieurs extensions peuvent être apportées, dont l’une s’oriente vers la modélisation et l’analyse temporelle des SETRs critiques. Dans ce sens, une extension des Statecharts UML a été apportée à l’outil Fujaba pour considérer les contraintes temps réel : Real-Time Statecharts [14]. Les Real-Time Statecharts combinent à la fois les avantages qu’offrent les machines à états avec ceux des automates temporisés ; des annotations peuvent être ajoutées par l’utilisateur pour préciser des contraintes temporelles sur les états et les transitions. Ainsi, nous pourrions imaginer la modélisation d’un thread périodique avec son temps d’exécution critique (ou Worst Case Execution Time). Une telle représentation peut être utilisée pour de l’analyse d’ordonnancement et pour de la génération de code java ou C++. Représentation La modélisation et considération de contraintes de temps du comportement du SETR global (PIM) est dans un premier temps décrite en Real-Time Statechart. Le PIM intègre par conséquent des contraintes temps réel qui ont été spécifiées au préalable. Ensuite un algorithme de partage et de synthèse vient générer le PSM dans lequel les composants du système (objets actifs) ont été déployés orthogonalement avec des paramètres d’ordonnancement. Le PSM généré est conforme au profil UML-SPT (Schedubality, Performance and Time). La réunification des Real-Time Statecharts et de SPT au sein d’UML permet ainsi l’annotation des contraintes temporelles sur les objets actifs déployés. Le processus se déroule en deux temps : (1) la génération d’un diagramme de déploiement UML dans lequel des intéractions sont représentées de manière structurelle entre instances des composants du système, puis (2) le mapping entre les instances et les objets actifs annotés de Worst Case Execution Time. Précisons qu’une description de la plate-forme (Platform Model) est considérée en paramètre du processus pour renseigner des informations telles que les contraintes temporelles, le processeur, le système d’exploitation, etc. Synthèse de Cette contribution l’approche offre aussi l’avantage d’analyser des propriétés temporelles. A l’image du métamodèle des Real-Time Statecharts, un plugin UML permet d’intégrer dans Fujaba le métamodèle des automates temporisés hiérarchiques (Hierarchical Timed Automata en anglais) [15]. Par conséquent, une double transformation permet de générer un mod- èle formel qui décrit un automate temporisé qui peut être exploité par un model-checker2.2. Le comportement des plates-formes logicielles d’exécution dans l’IDM 31 tel que UPPAAL [6]. Cependant, malgré l’intérêt porté pour contraindre temporellement le système à travers le déploiement, le modèle de plate-forme est considéré de manière enfouie via un modèle formaté. De plus, les composantes logicielles qui caractérisent la plate-forme n’apparaissent pas clairement. La généricité de représentation de la plate-forme permet certes la réutilisabilité du processus de déploiement, mais elle limite le portage vers différentes plates-formes. 2.2.1.2 Spécification du code par configurabilité de règles TransPI L’outil TransPI [56] Présentation générale de l’approche a été élaboré pour générer du code C implémentable sur des plates-formes logicielles d’exécution temps réel conformes au standard POSIX. Il peut même être configuré pour cibler d’autres plates-formes non conformes à POSIX. Le code exécutif est généré en deux temps : (1) un premier code indépendant de toute plate-forme est synthétisé à partir d’un modèle comportemental de l’application, puis (2) le code final est obtenu en intégrant les interfaces de programmation de l’application (API, Application Programming Interface) spécifiques à la plate-forme visée. Le modèle comportemental de l’application passé en entrée du synthétiseur de code regroupe le flux des données échangées et les APIs génériques à l’ensemble des plates-formes. La définition Le comportement des plates-formes de ces APIs génériques provient d’une sous-catégorie de la structure du standard POSIX 1003.1-2004 : le volume des interfaces systèmes. Les APIs identifiées ont été réparties suivant les composants suivants : les gestionnaires de tâches, de mémoire, de fichiers, de réseau, de périphériques, d’alimentation, ainsi que les services du temps réel. Le code synthétisé repose alors sur des patrons qui uniformisent l’usage des APIs génériques. Dans un second temps, l’outil TransPI est utilisé pour traduire le code précédemment synthétisé en un code spécifique à la plate-forme ciblée. La traduction est basée sur un langage de transformation qui permet la définition d’un ensemble de règles venant affiner les patrons du code synthétisé. Cet affinage vient transformer les APIs génériques en APIs spécifiques, puis vient ajouter des segments de code pour les besoins de la plate-forme ciblée. Le code généré est décrit en langage C et représente le comportement d’une plateforme spécifique et conforme à POSIX. Afin de s’adapter aux plates-formes non conformes à POSIX, TransPI est configurable pour soit modifier ou soit ajouter des règles pour cibler particulièrement une plate-forme spécifique. L’environnement Synthèse de l’approche offre comme principal atout une généricité dans le déploiement du code, puisque la plate-forme visée est conforme au standard POSIX. Toutefois cette approche est qualifiée d’“implicite” avec pivot, car seule la première partie du processus est générique en considérant une représentation abstraite du comportement générique des APIs. La représentation comportementale de la plate-forme visée est ensuite considérée concrètement comme un pivot dans la seconde partie du processus au moyen de règles configurables. Autre constat est qu’avec cette approche, seule une sous-partie de POSIX a été considérée pour la représentation des plates-formes. Cette délimitation nous laisse penser que certaines plates-formes comme ARINC-653-653 [1] qui présente des partitions mémoires, ne peuvent pas être considérées. De plus, cette adaptation coûte en terme de réutilisabilité. À chaque nouvelle plate-forme, l’utilisateur doit en effet intervenir sur l’outil pour configurer de nouvelles règles. Une lacune de cette approche est la non-possibilité d’exercer des activités de vérification, puisqu’il n’y a pas de description formelle des plates-formes. Seule une analyse statique du code généré est applicable après déploiement.32 Chapitre 2. État de l’art 2.2.1.3 Flexibilité par paramétrage du code Présentation Suite d’outils impliquant AADL Cette étude [41] générale de l’approche s’est penchée sur la génération de code multiplates-formes. Un processus de déploiement a été réalisé pour traduire un code spé- cifique à la plate-forme visée. De la même manière que précédemment, le déploiement est assuré en deux temps ; (1) la traduction automatique d’un code indépendant de la plateforme issu d’un modèle comportemental d’application logicielle commune à toute plateforme, puis (2) la génération d’un code spécifique à la plate-forme concernée. La traduction nous importe peu ici puisqu’elle ne considère pas une plate-forme particulière. La deuxième transformation est plus spécifique en considérant en paramètres les capabilités de la plateforme ciblée : d’une part, l’architecture matérielle et logicielle, et d’autre part, des bribes de code de l’API. Représentation Les capabilités structurelles du comportement des plates-formes de la plate-forme visée sont spécifiées avec le langage de description d’architecture AADL (Architecture Analysis & Design language) [79] standardisé par la SAE (Society of Automotive Engineer). AADL permet la description d’architectures du domaine des systèmes temps réel embarqués critiques. Un modèle AADL rassemble un ensemble de composants à la fois matériels (processors, devices et busses) et logiciels (data, threads et processes). Il est possible de compléter la définition des composants en leur annexant un comportement (Annex behavior_specification). Ce dernier apporte à chaque composant une extension à un sous-langage qui exprime un système d’états-transitions. Cependant, le comportement est décrit de manière statique dans AADL ; la syntaxe est annexée sans préciser la sémantique d’exécution. Les plates-formes décrites avec ce langage de modélisation sont plutôt vues comme des représentations abstraites. En conséquence, les aspects comportementaux des concepts exécutifs dépendants d’une plate-forme sont décrits sous forme de bribes de code. Chacune représente l’implémentation d’un composant AADL conformément à la plate-forme spécifiée. Chaque bribe est catégorisée selon le composant AADL à implémenter. Considération du Le déploiement comportement des plates-formes est réalisé en composant le code indépendant de toute plate-forme avec les bribes de code dépendantes de la plate-forme considérée. Une correspondance est établie en amont entre les composants de l’architecture AADL et les bribes de code pour capturer celles qui sont spécifiques à la plate-forme cible. Les liens sont rendus possibles à travers l’algorithme de transformation par le biais d’une méthode de paramétrage des bribes de code. Chaque bribe est en fait parsemée de fonctions avec des paramètres d’entrée pour permettre à l’algorithme de retourner des morceaux de code relatant des informations externes qui figurent sur le modèle d’architecture AADL. Cette méthode offre une flexibilité au déploiement pour répondre au besoin de migration d’applications sur des plates-formes dont le comportement est hétérogène. Synthèse de Malheureusement, l’approche aucune solution n’est proposée à ce jour pour formaliser l’application à un niveau plus détaillé que le PIM dans lequel la plate-forme est considérée de façon abstraite. Comme TransPI, le manque de formalisation du comportement ne permet pas l’emploi d’activités de vérification une fois le déploiement effectué. 2.2.1.4 Modularité par identification du code avec des rôles Présentation SRM Une autre générale de l’approche contribution s’est appuyée sur le package SRM du profil UML-MARTE [87] pour considérer le comportement des plates-formes dans un contexte GPML [30]. Le package SRM déjà abordé dans le chapitre précédent 1 à la page 18 permet la représentation explicite des plates-formes d’un point de vue structurel. Afin de combler le manque de comportement, un heuristique d’identification des comportements liés aux ressources et aux services d’exécution a été intégré dans le package SRM. Ensuite, chaque modèle de la plate-2.2. Le comportement des plates-formes logicielles d’exécution dans l’IDM 33 forme détaillé avec SRM et cet heuristique est intégré dans un processus de déploiement multiplates-formes. Ce processus s’appuie sur la mise en relation interne des concepts de l’application avec ceux de la plate-forme (voir à la page 18) en associant les comportements identifiés sur le modèle de la plate-forme aux opérations du modèle de l’application. Afin de comprendre Représentation du comportement des plates-formes le principe adopté pour représenter le comportement, nous devons revenir sur la façon dont la structure de la plate-forme est représentée. Elle est similaire à celle permise avec RTEPML puisque ce dernier est fondé sur SRM (page 23). La défi- nition des ressources de la plate-forme visée est permise grâce aux stéréotypes UML du package SRM (sous forme de diagramme de classe UML) ; une tâche ordonnançable est par exemple définissable au moyen du stéréotype «swSchedulableResource» selon la plateforme. Une fois les ressources définies, ces concepts peuvent être enrichis par des attributs et des opérations pour préciser respectivement leurs propriétés et leurs services d’exécution ; une priorité et un service de création ou de destruction dans le cas de notre tâche. L’identification de ces propriétés et de ces services est rendue possible par référencement du stéréotype. Comme avec RTEPML, la notion de “rôle” [87] [12] est employée pour une telle identification ; l’opération de création joue par exemple un rôle de createServices au sein du stéréotype «swSchedulableResource». L’heuristique d’identification adopté assigne un comportement sur les opérations (e.g., la création, l’initialisation ou bien encore l’appel à la fonction d’entrée d’une routine d’exé- cution, etc.) des ressources du modèle de la plate-forme. De ce fait, un comportement est encapsulé dans un UML OpaqueBehavior pour chacune de ces opérations. Ce comportement est représenté sous forme de bribe de code pour apporter une sémantique d’exécution indépendamment de la logique de l’application. La syntaxe pour chaque bribe de code correspond au langage de programmation imposé par la plate-forme. Un processus Considération du comportement des plates-formes vient ensuite automatiser le déploiement d’application sur des platesformes Java ou C++/POSIX qui globalisent un grand nombre d’exécutifs temps réel. Ce déploiement s’opère en deux temps : (1) une réification structurelle des concepts du modèle de l’application en établissant des correspondances avec ceux du modèle de la plate-forme, puis (2) une génération des aspects comportementaux en implantant des mécanismes de concurrence et d’intéraction. La réification s’appuie sur une transformation impliquant un modèle de correspondance dans lequel chaque stéréotype du métamodèle de l’application (sous-profil HLAM de MARTE UML dans cette contribution : High-Level Application Modeling) est défini concrètement en corrélation avec un stéréotype de SRM. A l’instar d’une ressource ordonnançable, une entité concurrente dans HLAM est stréotypée par «RtFeature». Par conséquent, le concept RtFeature sera annoté par le stéréotype «swSchedulableResource» de SRM au sein du modèle de correspondance 10. Des règles de correspondance viennent par la suite parcourir ce modèle comme un pivot sémantique afin d’établir les liens nécessaires au déploiement. La spécification des éléments de la plate-forme est effectuée à travers ces règles en localisant les rôles joués au sein des stéréotypes concernés. Les comportements abordés précédemment dans la représentation de la plate-forme ne concernent finalement que des comportements intrinsèques des ressources. Seulement, les comportements liés aux mécanismes de concurrence, de communication et de synchronisation mettent en jeu plusieurs ressources en fonction du comportement de l’application. Pour cette raison, une activité représentant un aspect fonctionnel de l’application peut être assignée à un service d’exécution de la plate-forme (comme par exemple, la protection d’écriture et de lecture d’une donnée partagée par un sémaphore) à travers la transformation 10. A noter qu’il en est de même pour les propriétés et les services.34 Chapitre 2. État de l’art de modèles. Ce comportement est décrit par le concepteur de l’application (indépendamment de la plate-forme) sous forme de diagramme d’activité dans un patron de conception. Il vient référencer le comportement encapsulé (OpaqueBehavior) dans l’opération du service d’exécution appelé pour la création et l’initialisation du mécanisme impliqué (comme celui du sémaphore pour la protection d’une variable partagée). Une fois le modèle de l’application déployée (PSM) obtenu, des générateurs de code standard UML/Java et UML/C++ traduisent le PSM en code exécutable Java et C++. Ainsi, l’association des comportements encapsulés dans des OpaqueBehavior avec ceux des aspects fonctionnels de l’application liés aux mécanismes de la plate-forme apporte une syntaxe bas niveau aux modèles générés qui est proche du code. Synthèse de La démarche l’approche proposée ici ne vient pas modifier le package SRM, puisque des concepts tels que OpaqueBehavior) et des outils de modélisation tels que les diagrammes d’activités existent déjà dans UML pour représenter le comportement. Elle s’appuie sur une approche “explicite” qui avait été initialement implantée dans SRM [87] pour représenter et considérer génériquement les plates-formes lors de déploiements multiplates-formes. La réutilisabilité et la portabilité est donc assurée. Cependant, la généricité syntaxique et sémantique d’UML bride un peu la bonne séparation des préoccupations dans un contexte comportemental. En effet, le comportement est représenté selon deux points de vue : le comportement exécutif encapsulé dans les OpaqueBehavior et les actions haut niveau d’appels de services d’exé- cution implantés dans des patrons de conception. Bien que, dans les deux cas, tout ait été mis en œuvre pour que le comportement soit représenté indépendamment de l’application, deux styles de représentation sont nécessaires pour implanter l’ensemble des mécanismes des plates-formes. En outre, aucune analyse comportementale est évoquée dans cette étude. 2.2.1.5 Tests de faisabilité de déploiement Introduction de DRIM Le processus l’approche DRIM [61] est une approche qui vise à réduire le gap entre la phase de conception et celle d’implémentation des applications temps réel sur des plates-formes d’exécution logicielles. Il offre un guide méthodologique aux concepteurs des SETRs pour décider de la plate-forme la mieux appropriée à l’application, dans le respect de contraintes temporelles. Deux étapes sont alors proposées pour, d’une part, appliquer des tests d’implémentabilité, et d’autre part, générer des modèles d’implémentation selon la plate-forme spécifiée. Représentation La représentation de plate-forme abstraite d’analyse des plates-formes est rendue explicite grâce à son métamodèle éponyme qui est une extension du profil UML-MARTE. Cette extension offre la possibilité de modéliser les plates-formes de manière abstraite pour l’analyse temporelle. Elle permet aussi d’intégrer un modèle de l’application au sein du modèle de la plate-forme concrète. La représentation du comportement réside par conséquent dans l’association des concepts d’analyse avec les concepts structurels issus du package SRM. Considération de Une batterie de tests contraintes temporelles est dans un premier temps proposée pour évaluer la faisabilité d’un déploiement d’application. Un modèle de conception plus haut niveau de l’application (i.e., avant déploiement) est comparé avec le modèle abstrait d’analyse pour établir les contraintes temporelles à implémenter. Puis, les tests sont appliqués en corrélation avec la plate-forme visée pour s’assurer du bon déploiement. Lorsque le verdict est révélé positif, une seconde phase de portage de l’application est opérée vers la plate-forme désignée. À noter que dans le cas contraire, une phase de refactoring permet de fournir un nouveau modèle de conception initial qui respecte à la fois les contraintes initiales et le portage. Synthèse de Ce processus l’approche est une alternative intéressante de considération des plates-formes dans le but de vérifier l’implémentabilité d’une application temps réel. La méthode respecte2.2. Le comportement des plates-formes logicielles d’exécution dans l’IDM 35 l’approche de représentation explicite pour associer des concepts abstraits d’analyse temporelle à ceux de la plate-forme ciblée par le déploiement. DRIM offre aussi un cadre de rétro-ingénierie adapté aux concepteurs des SETRs. Cependant, ce cadre méthodologique ne propose pas de processus de génération de modèles dédiés à la vérification formelle des applications déployées. 2.2.2 Outils d’aide à la génération de modèles en vue de vérification La considération du comportement des plates-formes d’exécution par la modélisation formelle au cœur de la conception des SETRs permet la vérification de ces systèmes. L’ensemble des contributions qui sont abordées dans cette sous-section se sont focalisées sur la formalisation d’applications en intégrant le déploiement. L’intérêt porté pour une telle formalisation, implique une dépendance de l’application au comportement des platesformes au sein des suites d’outils qui sont présentés ci-après. 2.2.2.1 Analyse comportementale de systèmes embarqués GME GME (Generic Modeling Environment) [23] contribue Le comportement des plates-formes à la description structurelle et comportementale des plates-formes d’exécution. Cet environnement intègre le langage de modélisation PML (Platform Modeling Language) qui se destine à la description explicite de plates-formes d’exécution et d’analyse. Ceci étant, les plates-formes visées avec ce langage ne sont pas explicitement dédiées au domaine du temps réel. PML permet, entre autres, de modéliser les ressources et les signatures des services qu’offre une plate-forme logicielle ainsi que leurs contraintes d’utilisation. En outre, cet environnement propose des outils d’assistance pour migrer une application d’un système à un autre et permet, de surcroît, d’intégrer des langages de modélisation formelle. Les descriptions rendues possibles peuvent être utilisées par la suite pour des activités de vérification et de validation. Grâce au langage de Synthèse de l’approche modélisation PML, GME est adapté pour vérifier des contraintes non-fonctionnelles d’un système déployé puisque les plates-formes sont représentées et considérées de manière détaillée. Malheureusement, la généricité de PML utilisé au sein de GME ne favorise pas le traitement de domaines particuliers tels que celui du temps réel. Autre problème soulevé avec cette approche est la non séparation des règles de transformation exprimées pour le portage d’application vis-à-vis de la modélisation des plates-formes. Les descriptions des règles se confondent avec celles des ressources et des services des plates-formes d’exécution. Metropolis Metropolis [71] Le comportement des plates-formes supporte la conception et l’analyse de systèmes embarqués hétérogènes basée sur la méthodologie Platform-Based Design [73]. Son métamodèle permet de décrire des concepts de plate-forme d’exécution d’un haut niveau d’abstraction. Le comportement est représenté explicitement par le biais de notions d’activités concurrentes (Process) et de communication entre les activités (Media). D’un point de vue analytique, cet environnement offre la possiblité d’utiliser des langages formels basés sur la logique LTL (Linear Temporal Logic) pour vérifier des propriétés fonctionnelles ou non-fonctionnelles d’applications qui peuvent être déployées sur une large gamme de plates-formes d’exécution. Le déploiement est assuré en établissant des relations (Mapping) entre les composants du système et les concepts de la plate-forme visée. Avec son Synthèse de l’approche environnement METROII [21], cette approche offre une meilleure séparation des besoins que GME. Pour autant et pour les mêmes raisons que précédemment, cet environnement n’est pas idéalement proposé pour le domaine du temps réel. Aussi d’un point36 Chapitre 2. État de l’art de vue vérification, celle-ci rendue possible après déploiement porte sur un niveau de pré- cision qui n’est pas suffisamment détaillé en raison d’une considération des plates-formes d’un haut niveau d’abstraction. 2.2.2.2 Synthèse formelle du comportement des systèmes embarqués Présentation ACSR + TROS Dans un soucis générale de l’approche de vérification comportementale des SETRs, une approche formelle [42] a défini une synthèse comportementale d’application déployée sur une plateforme particulière. Pour ce faire, l’application et la plate-forme visée par le déploiement sont modélisées séparément. L’application est, d’un côté, décrite par un statechart étendu (TROS, Timed and Resource-oriented Statecharts), tandis que la plate-forme ciblée est, de l’autre côté, formalisée avec l’aide d’un algèbre de processus (ACSR, Algebra of Communicating and Shared Resources). La sémantique d’exécution de TROS permet l’expressivité d’annotations temporelles et de contraintes liées aux ressources de la plate-forme sur la modélisation de l’application. Ces annotations permettent, par la suite, au modèle TROS d’intéragir avec l’algèbre ACSR et une composition des deux vient conclure le processus de synthèse du comportement de l’application déployée. Comportement Un travail lié aux ressources et aux contraintes temporelles préliminaire avait transposé le problème de considération de la plate-forme dans une IDM pour obtenir un TROS de l’application contrainte par la plate-forme au sens général. Le principe est basé sur une transformation du modèle comportemental de l’application en précisant les ressources logicielles de la plate-forme allouées (i.e., les ressources ordonnançables, l’allocation du processeur, l’assignation des priorités, les ressources partagées) et les contraintes temporelles (i.e., les pires temps d’exécution). Chaque fonctionnalité de l’application est représentée orthogonalement par un Statechart UML dans un modèle d’entrée (PIM) de la transformation. Un algorithme vient alors étendre le PIM pour générer un modèle comportemental de l’application (PSM) en TROS. Dans ce PSM, les ressources allouées et les contraintes temporelles sont annotées par des actions temporisées qui viennent compléter les Statecharts du PIM. Les ressources ordonnançables assignées d’une priorité nécessaires à l’application sont annotées en nombre limité suivant la plate-forme choisie. Les contraintes temporelles sont annotées en fonction du temps d’exécution alloué pour le traitement de chaque fonction (correspondance avec une ressource ordonnançable) au sein de l’application. Le PSM une fois obtenu, une traduction est nécessaire pour formaliser le TROS en un algèbre de processus ACSR. Pour ce faire, les actions temporisées sont extraites du modèle TROS et ensuite traduites formellement en ACSR. Le comportement temporisé et ordonnancé du système peut ainsi être contrôlé par bi-simulation au moyen de l’outil de vérification VERSA [18]. Comportement Cette transformation lié aux contraintes de l’API d’une plate-forme particulière a révélé un manque d’exhaustivité dans la considération du comportement de la plate-forme. Le comportement lié aux mécanismes d’intéraction de l’API de la plate-forme considérée n’est pas pris en compte dans le PSM généré. Dans une vision étendue [43], une représentation formelle de ce comportement a été adoptée pour une description plus détaillée de la plate-forme. Par conséquent, l’ensemble des services offerts par la plate-forme pour la gestion des ressources (e.g., l’ordonnancement et la synchronisation des ressources ordonnançables, la communication entre les ressources, etc.) sont représentés indépendamment. Cette représentation est décrite formellement avec l’aide de l’algèbre de processus ACSR. Une synthèse de composition parallèle entre le modèle TROS (PSM) généré de l’application avec les contraintes et l’algèbre de processus ACSR a été formalisée. Cette synthèse permet de vérifier des propriétés non-fonctionnelles sur le modèle composé, toujours avec l’outil VERSA. La figure 2.7 représente un exemple de synchronisation entre une application simple d’affichage d’un message “HelloWorld” (repris de l’exemple de la figure 2.6) et une plate-forme OSEK/VDX. L’activité d’affichage de l’application a dans un2.2. Le comportement des plates-formes logicielles d’exécution dans l’IDM 37 premier temps été transformée vers un PSM pour contraindre temporellement son exécution et déployée sur une tâche basique d’OSEK/VDX. Puis le PSM est composé avec un algèbre qui vient décrire le cycle de vie du mécanisme de blocage de l’ordonnanceur dans une plate-forme OSEK/VDX (pour l’exemple, cette description est appelée PDM même si nous ne nous trouvons pas dans un contexte MDA). L’objectif ici est de bloquer l’ordonnanceur pendant l’exécution de la tâche afin d’éviter toute préemption. FIGURE 2.7 – Composition parallèle d’une application avec une plate-forme OSEK/VDX avec ACSR + TROS Sur le PSM généré, à gauche de la figure, l’application est décrite suivant les états de la tâche OSEK/VDX. La transformation est venue contraindre le déclenchement des transitions tr1, tr3 et tr4 en y intercalant des actions temporisées {(proc,2)} (pour simplifier elles ne sont pas temporisées ici). À chaque action temporisée, le processeur proc est alloué et une priorité de 2 est assignée. Notons que deux actions partageant le même processeur pourraient être envisagées simultanément (e.g., deux tâches prêtes avant exécution). Dans ce cas là, l’action la plus prioritaire est exécutée. Enfin sur ce modèle, certains évènements peuvent être diffusés dans le but d’interagir avec les mécanismes de la plate-forme. Ces évènements sont aussi prioritisés et apparaissent entre parenthèses : l’évènement de diffusion (getResource !,2) représente par exemple le service offert pour verrouiller l’ordonnanceur (l’explication est donnée juste après dans la description du PDM). Lorsque un évènement diffusé se synchronise avec un mécanisme de la plate-forme, la transition concernée par cet évènement est déclenchée. Dans l’exemple que nous venons de citer, un changement d’état de la tâche en exécution est effectué une fois l’ordonnanceur verrouillé, afin d’éviter toute préemption (i.e., passage dans l’état RUNNING non Preemptive). Sur la droite de la figure, le PDM décrit, sur la partie haute, un système de transitions simplifié du comportement du verrouillage de l’ordonnanceur avec la norme OSEK/VDX. Le mécanisme utilisé pour un tel verrouillage consiste dans l’acquisition et le relâchement d’une ressource OSEK/VDX partagée 11 pour coordonner les accès concurrents de tâches de priorités différentes. Dans OSEK/VDX, il est possible de consid- 11. Une ressource est le nom donné à une ressource partagée dans la norme OSEK/VDX38 Chapitre 2. État de l’art érer l’ordonnanceur comme une ressource grâce au nom prédéfini RES_SCHEDULER. Sur le système de transitions, les états de RES_SCHEDULER sont représentés, ainsi que les services d’acquisition et de relâchement décrits cette fois par des évènements de synchronisation, respectivement pour le verrouillage et le déverrouillage de l’ordonnanceur. Le cycle de vie de ce mécanisme est détaillé via l’algèbre de processus ACSR situé en dessous du système. Les états éponymes du système sont remplacés par des processus (i.e., RES_SCHEDULER_RELEASED et RES_SCHEDULER_OCCUPIED) qui évoluent sous l’activation des évènements de synchronisation pour décrire le passage d’un état à un autre. A l’instar du verrouillage de l’ordonnanceur, celui-ci intervient à chaque occurrence de l’évènement getResource ? qui fait passer l’ordonnanceur de l’état RES_SCHEDULER_RELEASED vers l’état RES_SCHEDULER_OCCUPIED. Synthèse de La synthèse l’approche des deux modèles est donc respectivement fondée sur l’émission et la réception des évènements de diffusion et de synchronisation. Cette méthodologie est en adéquation avec notre problématique de conception détaillée des SETRs. Elle est sensibilisée par la représentation formalisée du comportement des mécanismes spécifiques des plates-formes logicielles d’exécution temps réel. Une vérification détaillée des SETRs est rendue possible en considérant la plate-forme qui contraint fortement l’application à déployer. Néanmoins, cette étude ne rentre pas dans un cadre de processus de déploiement. Une transformation a pourtant été implémentée dans un contexte MDA [42], mais elle ne considère que des contraintes haut niveau des plates-formes dans une approche implicite sans pivot. 2.2.3 Outils d’aide au déploiement et à la vérification Les suites d’outils présentées maintenant mutualisent les déploiements la génération de modèles formels. Cet mutualisation offre l’avantage d’appliquer des activités de vérification sur les modèles d’applications déployées utiles à la génération de code. 2.2.3.1 Simulation comportementale après déploiement Présentation de Ptolemy Le projet l’approche Ptolemy [47] est consacré à la conception, la modélisation et la simulation hétérogène de sytèmes concurrents. Il permet la description de modèles d’exécution ou MoCs (Model of Computation) pour représenter le comportement de ces systèmes. Ces modèles supportent la conception orientée acteur (actor-oriented design) axée sur la concurrence et la communication entre les composants d’un SETR. Les composants sont ainsi perçus comme des acteurs. Cette méthodologie est comparée à la conception orientée objet. A l’image des méthodes qui permettent d’agir sur les valeurs des attributs des objets, des ports permettent d’interfacer les acteurs les uns avec les autres pour envoyer et recevoir des données. Représentation Le métamodèle orienté et considération des mécanismes temps réel acteur introduit dans son atelier PtolemyII est aussi adapté aux SETRs. Il permet en effet la représentation des SETRs cadencés par des évènements sous formes de MoCs multitâches temporisés (Timed Multitasking) [55]. Des composants peuvent ainsi être utilisés pour représenter explicitement des applications temps réel tout en considérant les mécanismes exécutifs liés aux plates-formes logicielles (e.g., les temps d’exécution, la préemption, etc.). Les MoCs peuvent par la suite être traduits en différentes sémantiques, même formelles, pour soit générer du code C/C++ ou Java [75], soit y appliquer des activités de simulation et vérification [72]. Synthèse de Ptolemy offre l’approche une dualité de déploiement code-formalisation très complète permettant de considérer le comportement des SETRs dans leur ensemble. Cependant, les composants issus de cette approche orientée acteur, se destinent uniquement à la modélisation structurelle des applications temps réel déployées et non à celle des plates-formes. Cette consid-2.3. Positionnement 39 ération implicite des plates-formes pénalise la séparation des domaines de l’application et des plates-formes d’exécution qui n’apparaît pas distinctement. 2.3 Positionnement Dans cette section, nous proposons de revenir sur l’ensemble des travaux présentés dans ce chapitre et mis à contribution pour représenter et considérer le comportement des platesformes logicielles d’exécution temps réel dans une IDM. Les contributions ont été caté- gorisées de différentes manières dans des tableaux de synthèse. Cette classification permet d’extraire les avantages et les inconvénients portés par chaque contribution vis-à-vis de notre suite d’outils SEXPISTOOLS. Cette comparaison positionne finalement nos axes de recherche en réponse aux questions posées dans le chapitre 1 à la page 19 pour compléter SEXPISTOOLS. 2.3.1 Constatations Le premier tableau 2.1 présenté ci-après met en évidence les approches adoptées par chaque contribution pour représenter le comportement des plates-formes logicielles d’exé- cution. Les outils sont différenciés dans ce tableau selon ceux utilisés pour le déploiement, ceux utilisés pour générer des modèles en vue d’activités de vérification et ceux utilisés dans les deux cas. ❵ Outils ❵❵❵❵❵❵❵❵❵❵❵ Représentation Enfouie Implicite Explicite sans pivot avec pivot Déploiement TransPI ✓ Fujaba ✓ impliquant AADL ✓ SRM ✓ DRIM ✓ Vérification GME ✓(1) Metropolis ✓(1) ACSR + TROS ✓(2) Dépl. et Vérif. Ptolemy ✓ (1) Moins adapté au domaine du temps réel. (2) Représentation formelle du comportement des plates-formes, mais pas dans un contexte MDA. TABLE 2.1 – Approche de représentation du comportement adoptée par chaque outil Le premier constat que nous pouvons faire est que seuls quatre outils ont opté pour une approche de représentation explicite. Ils proposent en effet un métamodèle pour décrire les plates-formes logicielles d’exécution. Néanmoins, aucun de ces outils n’est réellement destiné à la vérification formelle. GME et Metropolis qui contribuent pour la génération de modèles formels sont en effet moins adaptés au domaine du temps réel, tandis que SRM40 Chapitre 2. État de l’art et DRIM sont plutôt orientés génération de code. Néanmoins, DRIM propose des activités d’analyse temporelle. Nous pouvons aussi retenir la stratégie adoptée pour décrire le comportement des platesformes avec SRM et ACSR + TROS. Ces travaux se sont assurément focalisés sur la description de chaque ressource, voire même de chaque service avec SRM. D’un côté SRM via UML permet soit d’assigner un comportement exécutif sous forme de bribe de code, à chaque ressource grâce à la notion d’OpaqueBehavior, soit de définir un patron de conception sous forme de diagramme d’activités, à chaque service d’exécution. De l’autre côté, la synthèse ACSR + TROS, malgré l’absence de métamodèle pour la représentation des platesformes, considère formellement le comportement de chaque mécanisme lié à une ressource sous forme d’algèbre de processus. Dans le second tableau 2.2, les outils sont comparés suivant les trois critères de qualité présentés en introduction. Cette comparaison reflète l’impact de l’approche de représentation sur la considération du comportement des plates-formes dans un contexte MDA. ❵ Framework ❵❵❵❵❵❵❵❵❵❵❵ Critères Réutilisabilité Portabilité Maintenabilité Déploiement TransPI − ++ − Fujaba + − − impliquant AADL + ++ + SRM ++ ++ ++(1) DRIM ++ ++ ++ Vérification GME ++ −(2) − Metropolis ++ −(2) + ACSR + TROS + −(3) − Dépl. et Vérif. Ptolemy ++ + − (1) Le comportement est néanmoins considéré de deux manières différentes. (2) Le comportement est moins bien considéré pour le domaine du temps réel. (3) Le comportement est uniquement modélisé de manière formelle en réponse à l’hétérogénéité des plates-formes. Notation : −− (Pas adapté), − (Peu adapté), + (Adapté), ++ (Très adapté) ; TABLE 2.2 – Évaluation des outils sur la considération du comportement à travers leurs critères de qualité Un premier point montre le peu d’outils adaptés à la maintenabilité des SETRs. Ce critère tient sur la bonne séparation des domaines de compétence en vue de l’indépendance de chaque intervenant sur la conception de ces systèmes. Or, l’emploi de technologies diverses et variées entraînent parfois certaines dépendances vis-à-vis des méthodologies adoptées, à l’image de GME où la description de la plate-forme est un amalgame de concepts exé- cutifs et de règles de transformation. Il en est de même pour Fujaba qui offre une approche représentation enfouie des plates-formes. Cette manière de représenter oblige le spécialiste de la transformation à être dépendant de la plate-forme. Autre exemple, cette fois avec Ptolemy qui ne distingue pas explicitement le comportement de la plate-forme à celui de l’application. Un bémol est mis sur SRM qui offre une bonne séparation des préoccupations métiers. L’approche exige néanmoins de considérer le comportement de deux manières différentes, ce qui oblige le spécialiste à une double réflexion dans l’approche de représenta-2.3. Positionnement 41 tion. DRIM est mieux adapté sur ce point, ce processus distingue aisément les interventions des parties prenantes. Sur un autre critère, les générateurs de code montrent une meilleure flexibilité que les outils servant à la génération de modèles destinés à la vérification. Ceci est dû aux approches explicite et implicite avec pivot qui obligent à employer des stratégies d’adaptabilité pour considérer les représentations hétérogènes des plates-formes, à travers les processus. Ces stratégies sont mises en œuvre de différentes façons, à savoir par le biais de règles de transformations configurables pour TransPI, ou bien par paramétrage de code pour l’approche impliquant AADL, mais encore via des rôles d’identification pour le package SRM. Une nuance est toutefois à noter quant à GME et Metropolis. Malgré les efforts consentis pour représenter explicitement les plates-formes, ces outils ne privilégient pas la considération de plates-formes hétérogènes telles que celles du domaine du temps réel. 2.3.2 Orientations Les contributions que nous venons de comparer permettent de distinguer plusieurs axes de recherche pour répondre aux questions soulevées dans la problématique détaillée à la page 19. Nous avons donc orienté nos travaux : Vers une extension de RTEPML Le but recherché est de dédier aussi notre langage de modélisation à la représentation explicite du comportement des plates-formes logicielles d’exécution temps réel. Cette approche doit faciliter l’indépendance de chaque spécialiste d’une plate-forme particulière contrairement à GME et Metropolis qui, de part leur généricité, ne conviennent pas au domaine du temps réel. Vers l’intégration de concepts comportementaux dans RTEPML À l’image du package SRM, un certain nombre de concepts doivent être identifiés au sein du métamodèle pour représenter le cycle de vie de chaque ressource et de chaque service d’exécution d’une plate-forme particulière. Vers l’intégration de concepts formels dans RTEPML La stratégie recherchée se rapproche de la synthèse formelle mise en oeuvre pour la conception détaillée des SETRs avec ACSR + TROS. La vérification de propriétés non fonctionnelles d’applications déployées exige la considération du comportement de chaque mécanisme lié à la plate-forme considérée. Cette considération réside donc dans la formalisation du cycle de vie de chaque ressource et de chaque service. Vers la perpétuation de la notion de rôles dans RTEPML Le processus de génération de modèles formels que nous cherchons à mettre en œuvre doit être flexible comme TransPI, l’environnement qui implique AADL, ou bien encore SRM. Le processus de déploiement implémenté dans SEXPISTOOLS repose déjà sur cette notion de rôles pour localiser les concepts structurels et hétérogènes des plates-formes. Des rôles doivent par conséquent être identifiés d’un point de vue comportemental.42 Chapitre 2. État de l’art Vers l’intégration du comportement de l’application dans le modèle de la plate-forme L’approche de considération des plates-formes adoptée dans le processus de dé- ploiement de SEXPISTOOLS doit être respectée. Il est somme toute légitime de s’appuyer sur la méthode qui intègre l’application déployée dans le modèle de la plate-forme, pour aussi y intégrer son comportement. Vers un processus propre à la génération de modèles formels L’indépendance des activités de vérification vis-à-vis de la génération de code doit être assurée. Dans un contexte similaire à celui de Fujaba et de Ptolemy, SEXPISTOOLS doit offrir un processus dual pour générer, d’un côté, du code implémentable et générer, de l’autre côté, des modèles formels pour la vérification du comportement non-fonctionnel des applications déployées. Nous ne nous intéresserons pas à la génération de code dans cette thèse.Deuxième partie Prise en compte du comportement d’une plate-forme d’exécutionModélisation du comportement avec RTEPML 3 Sommaire 3.1 Intégration d’un modèle comportemental de plate-forme . . . . . . 48 3.1.1 Comportement des ressources et des services . . . . . . . . . . 48 3.1.2 Éléments de comportement . . . . . . . . . . . . . . . . . . . . 49 3.1.3 Identification de rôles . . . . . . . . . . . . . . . . . . . . . . . 50 3.2 Intégration d’un modèle comportemental d’application . . . . . . . 51 3.2.1 Clonage d’éléments de comportement . . . . . . . . . . . . . . 51 3.2.2 Référencement des éléments de comportement . . . . . . . . . 51 3.3 Modélisation des prototypes comportementaux . . . . . . . . . . . . 52 3.3.1 Justification du choix du langage de modélisation . . . . . . . . 53 3.3.2 Héritage d’élément de comportement . . . . . . . . . . . . . . 55 3.3.3 Identification de rôles de composition . . . . . . . . . . . . . . 56 3.3.4 Identification de rôles de mécanismes spécifiques . . . . . . . . 57 3.3.5 Représentation du comportement d’une plate-forme . . . . . . . 58 3.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 D e part sa syntaxe abstraite, le langage de modélisation RTEPML permet de représenter explicitement les plates-formes logicielles d’exécution temps réel. Ce langage permet la description de PDM en distinguant la plate-forme de l’application qui est intégrée. Dans ce chapitre, nous proposons une extension de RTEPML afin d’exprimer aussi le comportement des plates-formes d’exécution au sein d’un même PDM. Au même titre que la partie structurelle présentée dans le chapitre précédent, l’objectif ici est d’intégrer un modèle comportemental de l’application déployée en vue du processus de génération de modèles formels. Une approche est donnée ici dans l’optique de composition d’un tel mod- èle comportemental. Une première section étend la syntaxe abstraite de RTEPML en vue de représenter le comportement des plates-formes. Puis, une seconde section vient intégrer un modèle comportemental de l’application au sein du modèle de la plate-forme. Ensuite, cette syntaxe est couplée avec un langage de modélisation du comportement en vue d’une traduction formelle. Aussi, la notion de rôles abordée dans le chapitre précédent sera confortée à travers46 Chapitre 3. Modélisation du comportement avec RTEPML ce chapitre pour expérimenter la composition du modèle comportemental de l’application déployée. Une synthèse vient conclure ce chapitre dans une dernière section.48 Chapitre 3. Modélisation du comportement avec RTEPML 3.1 Intégration d’un modèle comportemental de plate-forme L’extension de RTEPML est fondée sur l’implantation d’un modèle comportemental de la plate-forme dans le modèle structurel introduit dans la présentation de RTEPML au chapitre précédent à la page 23. Dans une vision générale, le modèle comportemental vient compléter le modèle structurel en associant des fragments comportementaux aux ressources et aux services. Cette philosophie s’appuie sur la façon dont les outils de notre état de l’art, notamment SRM et ACSR + TROS, ont cherché à représenter le comportement des composantes logicielles des plates-formes d’exécution temps réel. 3.1.1 Comportement des ressources et des services L’idée retenue est montrée sur la figure 3.1 1 . A l’image des ressources qui font partie intégrante du modèle structurel de plate-forme, les fragments comportementaux viennent constituer le modèle comportemental de plate-forme. Ces fragments sont appelées des prototypes comportementaux (BehavioralPrototype) pour donner un sens à la définition originale des comportements des ressources qui composent ce modèle comportemental. Ainsi, chaque ressource peut se voir assigner un prototype comportemental pour représenter son cycle de vie au sein de la plate-forme. Une précision est à donner quant à l’attribut name de BehavioralPrototype. Cette attribut qualifie chaque prototype comme un élément nommé [25] et permet ainsi de les identifier à travers les modèles. Cet attribut de nommage apparaî- tra dans les autres concepts que nous introduirons, comme c’était déjà le cas dans RTEPML. FIGURE 3.1 – Extrait du DSML RTEPML étendu : les prototypes comportementaux Les prototypes comportementaux ont été classés de façon similaire à la hiérarchisation des ressources logicielles (voir au chapitre précédent à la page 23) initialement proposée dans RTEPML [12]. La figure 3.2 décrit cette hiérarchie. Toutes les familles n’ont pas été représentées afin d’alléger la description. Seules les trois grandes familles qui vont nous intéresser par la suite apparaissent ici. Les partitions mémoires ne seront pas évoquées puisque nous nous sommes orientés vers les contraintes temporelles et non spatiales. Aussi, les prototypes comportementaux ne concernent pas uniquement les ressources. Les services qui sont offerts par les ressources et visibles depuis les APIs des plates-formes ont un impact direct sur le comportement des ressources. Pour cette raison, sur l’extrait ci-dessus, chaque prototype comportemental est constitué de descriptions comportementales (BehavioralPrototypeService) de services. Prenons l’exemple d’une ressource ordonnançable (i.e., une tâche) ; celle-ci peut être impactée par un service d’acquisition d’une 1. Tout au long de ce chapitre, tout concept ou toute relation existant avant l’extension comportementale de RTEPML apparaît en gris dans les extraits présentés3.1. Intégration d’un modèle comportemental de plate-forme 49 FIGURE 3.2 – Extrait du DSML RTEPML étendu : hiérarchie des prototypes comportementaux ressource d’exclusion mutuelle (i.e., un sémaphore). Si cette ressource d’exclusion mutuelle n’est pas disponible au moment où la ressource ordonnançable appelle ce service d’acquisition, elle pourrait être mise en attente par l’ordonnanceur et ainsi libérer le processeur pour une autre ressource concurrente en attente d’exécution. 3.1.2 Éléments de comportement Le sens donné à chaque prototype comportemental tient sur l’agencement des éléments qui vont constituer une telle description. RTEPML doit permettre de décrire génériquement le comportement des plates-formes logicielles à travers ces descriptions. Comme précisé sur la figure 3.3, nous considérons par conséquent que chaque prototype peut être constitué d’un ensemble d’éléments de comportement. Le concept BehaviorElement permet la représentation abstraite de ces éléments qui peuvent être soit des éléments de comportement composite, soit des éléments de comportement atomique. Le concept d’élément de comportement composite Composite tient de l’application du patron de conception d’objet composite conçu pour la manipulation récursive d’un ensemble d’objets similaires. Il répond ici à la possibilité de définir un élément de comportement pouvant regrouper récursivement des sous-éléments de comportement. Ainsi un élément de comportement composite se différencie d’un élément de comportement atomique (concept Atomic) qui est un élément de comportement simple. FIGURE 3.3 – Extrait du DSML RTEPML étendu : les éléments de comportement Cette orientation se vérifie concrètement avec l’exemple de la figure 2.7 du chapitre précédent. Dans cet exemple, le cycle de vie d’une tâche OSEK/VDX est décrit sous forme de machine à états adapté pour le temps réel avec le langage de modélisation TROS. Bien50 Chapitre 3. Modélisation du comportement avec RTEPML que cette description apparaît dans un PSM, elle peut très bien s’apparenter à un prototype comportemental d’un PDM constitué de plusieurs éléments. Dans ce cas, certains de ces élé- ments (e.g., état, transition, etc.) se conformeraient à des éléments de comportement atomique, tandis que d’autres (e.g., action temporisée, évènement diffusé, etc.) se conformeraient à des éléments de comportement composite. 3.1.3 Identification de rôles Dans le chapitre précédent à la page 23, nous avons introduit la notion de rôles pour repérer des propriétés et des services au sein des ressources. Au même titre que cette identi- fication structurelle, ces rôles ont été dupliqués sur l’aspect comportemental. Ils permettent ainsi de repérer respectivement des éléments de comportement et des prototypes comportementaux de service au sein des prototypes comportementaux de ressources. Contrairement aux services, aucun concept comportemental n’a été associé aux propriétés. Cette raison tient du fait qu’une propriété vient soit quantifier, soit qualifier une ressource. En conséquence, l’impact comportemental qu’arbore une propriété se résume au rôle que joue un élément de comportement au sein d’un prototype comportemental. La figure 3.4 représente un extrait de cette duplication de rôles. FIGURE 3.4 – Extrait du DSML RTEPML étendu : duplication des rôles Sur cette figure, les rôles priorityElements et periodElements ont par exemple été dupliqués pour identifier les éléments de comportement qui jouent les rôles d’éléments de priorité et d’éléments de période au sein du prototype comportemental d’une ressource concurrente. Pour illustrer ce besoin, revenons sur l’exemple de la tâche OSEK/VDX, figure 2.7 décrite avec le langage de modélisation TROS. Au sein de cette description, la priorité de la tâche est annotée au travers d’actions temporisées. Cette annotation se conformerait donc à un élément de comportement atomique. Ainsi, grâce à la duplication du rôle priorityElements entre une ressource concurrente et un élément de comportement, l’annotation pourrait être identifiée. Les services sont aussi identifiables à travers les prototypes comportementaux des ressources à l’image du rôle terminateServices. Ce rôle permet l’identification des prototypes comportementaux de service qui jouent les rôles de services de terminaison. Comme nous l’avons mentionné plus haut à la page 48, les services sont décrits par des éléments de comportement qui sont soit atomiques, soit composites. Dans notre exemple de tâche3.2. Intégration d’un modèle comportemental d’application 51 OSEK/VDX, un appel à un service de terminaison de la tâche est représenté soit par un évènement simple qui se conformerait à un élément de comportement atomique, soit par un évènement diffusé. L’évènement diffusé est rencontré dans le cadre du verrouillage et du déverrouillage de l’ordonnanceur. Dans ce cas de figure, l’évènement diffusé est décrit par un ensemble d’éléments qui contraignent son émission (e.g., allocation du processeur, priorité, etc.). Ces évènements se conformeraient du coup à des éléments de comportement composite. 3.2 Intégration d’un modèle comportemental d’application Dans RTEPML, l’application est intégrée au sein du modèle de la plate-forme. Cette stratégie répond au besoin de modélisation détaillée de l’application déployée. Ce dé- ploiement se traduit par l’instanciation des concepts de la plate-forme considérée pour l’exécution des concepts de l’application. Dans cette prespective, la notion de concept d’instance de ressource a été introduite dans RTEPML pour enrichir le modèle de plate-forme et mettre en œuvre l’application. Une relation de typage existe déjà entre une instance et la ressource qu’elle incarne au sein de l’application (cf, Intégration de l’application dans RTEPML, page 26). Nous avons étendue cette configuration d’un point de vue comportemental en préservant la notion d’instanciation sur les ressources. 3.2.1 Clonage d’éléments de comportement De façon similaire au modèle de plate-forme, l’application intègre un modèle comportemental, conformément à la figure 3.5. Ce modèle comportemental (ApplicationBehavioralModel) est le recueil des éléments de comportement issus des prototypes comportementaux. Ces éléments se conforment aussi au concept abstrait BehaviorElement mais ils diffèrent cependant des éléments contenus dans les prototypes comportementaux. C’est pour cette raison que la multiplicité des cardinalités sur les classes contenantes sont de 0..1. L’intégration d’un modèle comportemental de l’application repose donc sur la duplication des éléments qui constituent chaque prototype concerné par l’application. En effet, seuls les prototypes associés aux ressources qui typent les instances de l’application devront être instanciés. De ce fait, chaque ensemble d’éléments instanciés devra subir une duplication dans le but de caractériser chaque élément suivant l’application. Ce mécanisme est l’objet du chapitre. De par son principe qui consiste à dupliquer des éléments instanciés, nous l’appellerons clonage. Les éléments clonés clonedElements constituent par conséquent le modèle comportemental de l’application. Contrairement à la partie structurelle, nous n’avons pas voulu définir de concept pour décrire le comportement des instances. Définir un concept abstrait d’instance d’un prototype comportemental reviendrait à représenter des concepts inutiles sur le modèle de l’application. Ces concepts ne serviraient qu’à une mise en relation intermédiaire entre des éléments de comportement clonés et les instances de ressources (ou les appels de services) à l’origine du clonage. Un référencement est suffisant pour établir une telle mise en relation. 3.2.2 Référencement des éléments de comportement Nous venons de mettre en évidence le clonage d’éléments de comportement pour le compte de l’application. Ce mécanisme va entraîner la dispersion d’ensemble de ces élé- ments qui résultent de l’instanciation des prototypes comportementaux. Cette manœuvre soulève d’idée d’assembler les ensembles d’éléments clonés afin de composer un modèle52 Chapitre 3. Modélisation du comportement avec RTEPML FIGURE 3.5 – Extrait du DSML RTEPML étendu : les éléments de comportement clonés comportement global de l’application. Or, cette composition découle de la structure de l’application. Les concepts structurels de l’application alors impliqués dans cette composition sont les instances de ressources et les appels de services. La figure 3.6 propose cette anticipation. FIGURE 3.6 – Extrait du DSML RTEPML étendu : référencement des éléments clonés Chaque élément de comportement peut être affecté de plusieurs instances de ressource (rootInstances) ou de plusieurs appels de services (rootCalls) de l’application. Le terme root sera retrouvé par la suite pour désigner les instances et les appels à l’origine du clonage des éléments. En effet, seuls les ressources et les services sont associés à des prototypes comportementaux. La pluralité des cardinalités affectées sur ces affectations est promue par l’assemblage des ensembles d’éléments de comportement issus de prototypes différents. Nous verrons dans le chapitre suivant que cet assemblage demande de fusionner certains éléments qui n’ont pas la même origine. 3.3 Modélisation des prototypes comportementaux Nous venons de parcourir la nouvelle version abstraite de RTEPML qui a été étendue pour représenter le comportement. Cette syntaxe est volontairement découplée d’un langage spécifique de modélisation du comportement dans le but de garder une généricité de représentation des prototypes comportementaux. Toutefois, un choix doit être fait quant au3.3. Modélisation des prototypes comportementaux 53 langage qui permet d’exprimer ce comportement pour qu’il soit exploitable, dans notre cas, par des outils de vérification. En vue d’appliquer des activités de vérification, le choix d’un langage formel est justifié dans un premier temps. Puis, notre stratégie de représentation du comportement des prototypes dans ce langage est exposé sans remettre en cause la syntaxe de RTEPML. 3.3.1 Justification du choix du langage de modélisation Le choix d’un langage formel pour modéliser le comportement résulte du compromis entre sa puissance de représentation et sa puissance de validation. C’est le cas des réseaux de Petri (PN, Petri Net) [69] qui ont un grand pouvoir d’expression même si sa puissance de représentation s’avère non concise. Ces réseaux ont été développés pour recouvrir la modélisation du comportement de systèmes importants tels que les systèmes de production, les systèmes automatisés, les systèmes informatiques ou bien encore les systèmes de communication, etc. Les PNs permettent de modéliser les systèmes à évènements discrets qui donnent lieu à des phénomènes de synchronisation et de concurrence sans l’aspect temporel. Pour palier ce manque d’expressivité, les réseaux de Petri temporels (TPN, Time Petri Net) [59] [10] ont été adoptés. Cette extension des PNs, permet de représenter des contraintes d’échéances à intervalles de temps continu par l’intermédiaire d’horloges. La construction des modèles comportementaux recherchée doit aboutir à des modèles d’application multitâche de systèmes temps réel. En conséquence, nous avons choisi les TPNs pour traduire le comportement des prototypes comportementaux. Ce langage exprime formellement des modèles avec du synchronisme et du parallélisme. De plus, le temps réel implique des contraintes temporelles. Les TPNs répondent aussi au besoin sémantique de représentation de l’évolution du temps grâce aux horloges. Dans un TPN, une horloge implicite et un intervalle de temps sont associés à chaque transition du réseau. Cette horloge mesure le temps à partir du moment où la transition est continuellement activée, tandis que la transition est interprétée comme une condition de franchissement : la transition, une fois activée, est seulement franchissable (ou tirable) si la valeur ou la valuation de son horloge appartient à son intervalle de temps. La définition formelle des TPN va maintenant être donnée. Nous représenterons par N l’ensemble des nombres naturels, R≥0 l’ensemble des nombres réels non négatifs, ∅ l’ensemble vide, et 0 le vecteur nul. Définition 1 (TPN) Un TPN T est un tuple hP, T, Pre, Post, m0, Isi où : – P est un ensemble non vide et fini de places; – T est un ensemble non vide et fini de transitions; – Pre : P × T → N est la fonction d’incidence arrière ; – Post : P × T → N est la fonction d’incidence avance ; – m0 est le marquage initial du réseau ; – Is : T → N × (N ∪ {+∞}) assigne un intervalle de temps statique à chaque transition. Le marquage d’un TPN T est une application de P vers N donnant pour chaque place le nombre de jetons qu’elle contient. Une transition t ∈ T est dite sensibilisée par un marquage m, désigné par t ∈ enabled(m), si l’ensemble de ses places d’entrée contiennent "suffisamment" de jetons ; plus formellement, enabled(m) = { t ∈ T | ∀p ∈ P, m(p) ≥ Pre(p, t) }. Une transition t ∈ T est dite nouvellement sensibilisée par le franchissement d’une transition tf à partir d’un marquage m, désigné par t ∈↑ enabled (m, tf ), si elle est sensibilisée par le marquage final mf défini ∀p ∈ P, mf (p) = m(p) − Pre(p, tf ) + Post(p, tf ) mais54 Chapitre 3. Modélisation du comportement avec RTEPML non par le marquage intermédiaire mi défini ∀p ∈ P, mi(p) = m(p) − Pre(p, tf ). Plus formellement, ↑enabled(m, tf ) = enabled(mf ) T ((T \ enabled(mi)) ∪ {tf }). Enfin, pour tout intervalle Is, nous désignons par Is ↓ le plus petit intervalle gauche fermé que peut contenir Is avec pour borne minimale 0. Pour chaque transition tr, xtr représente l’horloge associée. Les valuations sur l’ensemble des horloges { xtr | tr ∈ T } sont considérées et par abus de langage, nous écrivons v(tr) au lieu de v(xtr) pour désigner la valuation de l’horloge associée avec tr. Afin de modéliser des comportements tels que des exécutions conditionnelles, des mé- canismes de préemption, etc., les TPN ont été étendus avec des arcs de lecture (représentés par la suite avec un carré blanc au lieu d’une flèche normale) et des arcs d’inhibition (représentés avec un cercle blanc). Ces arcs ont seulement un impact sur les règles de sensibilisation du réseau. Ils n’ont en effet aucun impact sur le marquage obtenu par le franchissement d’une transition : les arcs de lecture testent la présence de jetons dans les places sans les consommer, tandis qu’un arc d’inhibition est utilisé pour stopper l’écoulement du temps sur une transition, aussi longtemps que la place qui se trouve en entrée de l’arc reste marquée par au moins un jeton. Définition 2 (TPN avec arcs de lecture/inhibition) Un TPN avec des arcs de lecture et d’inhibition (RI_TPN) est un tuple TRI = hT , Read, Inhi où : – T = hP, T, Pre, Post, m0, Isi est un TPN, – Read : P × T → N est la fonction de lecture ; – Inh : P × T → N ∪ {+∞} est la fonction d’inhibition 2 . Non formellement, une transition est sensibilisée “s’il existe suffisamment de jetons” dans les places reliées par soit des arcs d’entrée ou soit des arcs de lecture et “s’il n’existe pas trop de jetons” dans les places reliées par des arcs d’inhibition. Plus formellement, la définition de l’ensemble des transitions sensibilisées par un marquage m est modifié comme suit : enabled(m) = {t ∈ T | ∀p ∈ P, Inh(p, t) > m(p) ≥ max(Pre(p, t), Read(p, t))} La définition de l’ensemble des transitions nouvellement sensibilisées à partir d’un marquage m par le franchissement d’une transition tf est semblablement modifiée. Définition 3 (Sémantique des RI_TPN) La sémantique opérationnelle d’un TPN avec des arcs de lecture et d’inhibition TRI défini au-dessus est donnée par le système de transitions temporisé S = (Q, q0 →) tel que : – Q = N P × R T ≥0 ; – q0 = (m0, 0); – →∈ Q × (T ∪ R≥0) × Q est la relation de transition qui est composée des relations de transition discrète et continue suivantes : – la relation de transition discrète est définie : ∀tf ∈ T par (m, v) tf −→ (m′ , v′ ) si et seulement si : – (tf ∈ enabled (m); – v(tf ) ∈ Is(tf ); – ∀p ∈ P, m′ (p) = m(p) − Pre(p, tf ) + Post(p, tf ); – ∀t ∈ T, v ′ (t) = ( 0 if t ∈↑enabled (m, tf ) v(t) otherwise ; – la relation de transition continue est définie : ∀d ∈ R≥0 par (m, v) d −→ (m, v′ ) si et seulement si ∀t ∈ enabled(m), ∀δ ∈]0; d], (v(t) + δ) ∈ Is ↓ (t). 2. Si aucun arc d’inhibition relie une transition t vers une place p, alors Inh(p, t) = +∞.3.3. Modélisation des prototypes comportementaux 55 3.3.2 Héritage d’élément de comportement La modélisation désirée requiert de coupler RTEPML avec le métamodèle des TPNs. Ce couplage repose sur un mécanisme qui pour autant ne doit pas compromettre l’utilisation de RTEPML à travers le processus de génération de modèles formels (en TPN pour ce qui nous concerne). Comme abordé, les règles de transformation que nous voulons mettre en œuvre, doivent uniquement manipuler les concepts de RTEPML et non ceux des TPNs. Le terme couplage évoque finalement l’introduction de techniques de composition de modèles ou de métamodèles dans une IDM [19] [32]. Ces techniques s’adonnent à l’utilisation d’un mécanisme tel que le matching pour établir des correspondances entre les concepts en vue d’une représentation couplée. Cependant ces techniques ne favorisent pas l’idée d’indépendance du concepteur qui chercherait à modéliser formellement une plateforme. Cette solution oriente en effet la conception vers une modélisation conjointe de la plate-forme entre un utilisateur de RTEPML et un utilisateur des TPNs. De plus, un mapping entre les différents concepts serait nécessaire pour établir les correspondances à travers les règles de transformation du processus de génération. Le couplage doit donc s’opérer dans RTEPML. Une autre solution est d’intégrer le mé- tamodèle des TPNs dans celui de RTEPML. Une possibilité consisterait alors à associer les concepts des deux métamodèles par des relations. Cette manœuvre a pour avantage de préserver la syntaxe de RTEPML, contrairement au mécanisme de composition. Composer des concepts de RTEPML avec ceux des TPNs reviendrait à manipuler les concepts des TPNs au sein des règles de transformation. La solution que nous proposons couple les concepts des TPNs avec ceux de RTEPML par le biais du mécanisme d’héritage. La figure 3.7 décrit les conséquences de ce choix. FIGURE 3.7 – Extrait du DSML RTEPML étendu : héritage d’élément de comportement atomique Dans cet extrait, tous les concepts des TPNs pouvant être associés à des rôles de RTEPML héritent du concept Atomic. Cette stratégie permet la représentation formelle de chaque élément de comportement atomique au sein d’un prototype comportemental et ainsi de les identifier. Cette extension est suffisamment simple pour qu’elle ne soit pas détaillée. Toutefois, une précision est à noter quant aux concepts TokenMarking et StaticIntervalBounding. Ces deux concepts apparaissent ici pour permettre leur quantification, notamment grâce à l’attribut val. À l’instar du déclenchement d’une transition que nous chercherions à borner pour contraindre l’exécution périodique d’une ressource concurrente, le bor-56 Chapitre 3. Modélisation du comportement avec RTEPML nage de son intervalle statique serait identifiable au moyen du rôle periodElements de la figure 3.4. Précisons aussi que le poids des arcs (résultat des fonctions d’incidence avant et arrière) pourrait être vu comme un élément de comportement atomique. Mais dans la suite de cette étude, de tels éléments ne seront pas associés à des rôles. 3.3.3 Identification de rôles de composition L’intégration de concepts formels tels que ceux des TPNs dans RTEPML offre la possibilité de formaliser la représentation des prototypes comportementaux. Ainsi chaque élé- ment de comportement correspond soit à une description formelle si il est composite, soit à un élément formel si il est atomique. Comme nous l’avons déjà annoncé à la page 51, ces éléments de comportement sont amenés à être clonés puis composés suivant le modèle comportemental de l’application à déployer. Cette démarche laisse entrevoir la nécessité d’identifier les éléments de comportement qui jouent un rôle de point de connexion à travers les prototypes comportementaux. Elle vient compléter le référencement des éléments de comportement à la page 51. Des rôles ont donc été identifiés dans ce but. La figure 3.8 met en évidence un ensemble de rôles adaptés pour cibler les points de connexion d’un prototype comportemental d’une ressource concurrente. Ces rôles ont été pensés en fonction des mécanismes et des échanges possibles avec les autres ressources et les services des plates-formes logicielles. Précisons toutefois que des rôles de composition ont aussi été identifiés pour le compte des prototypes comportementaux de service. Néanmoins, ces rôles ont volontairement été confondus avec ceux des prototypes comportementaux des ressources puisqu’ils jouent les mêmes rôles. Ce choix évite ainsi une redondance d’informations entre les rôles joués au sein d’un même prototype d’une ressource et ceux joués au sein des prototypes des services qui caractérisent la ressource. FIGURE 3.8 – Extrait du DSML RTEPML étendu : assignation de rôles de composition Pour illustrer, imaginons un service de terminaison d’une tâche ordonnançable dont le comportement se conformerait au concept SchedulableResourceBehavior. D’un point de vue comportemental, le service de terminaison fait passer la tâche d’un état “en exécution” à un état “terminé”. Par conséquent, les rôles de composition resumedState et terminatedState ont été identifiés à la fois au sein du prototype comportemental de service qui joue3.3. Modélisation des prototypes comportementaux 57 le rôle de terminateServices et au sein du prototype comportemental de ressource concurrente ConcurrentResourceBehavior. Cette identification multiple de rôles implique de ce fait une pluralité des cardinalités sur l’ensemble des rôles de composition et évite des doublons entre les prototypes des ressources et ceux des services. Les rôles identifiés dans cet exemple ne représentent pas une liste exhaustive. Ceux qui apparaissent ici sont utiles à la représentation qui suit dans ce chapitre, page 58, comme : – processor : l’élément qui joue le rôle de “processeur”. Cet élément permet à ces ressources de concurrencer leurs exécutions en se le partageant mutuellement ; – start et end : les éléments qui jouent les rôles de “début” et de “fin” d’exécution d’une ressource concurrente. L’attribut role a aussi été ajouté au concept d’élément de comportement. Il permet à chaque élément cloné d’être traçable au sein des ensembles d’éléments clonés référencés (voir page 51) tout au long de la composition. 3.3.4 Identification de rôles de mécanismes spécifiques D’autres descriptions sont à prendre en considération d’un point de vue comportemental. Elles influent notamment sur les interactions entre les ressources concurrentes et proviennent de mécanismes spécifiques à la plate-forme. Comme mécanisme, nous pouvons retenir le principe d’ordonnancement des ressources concurrentes. Parmi ces spécificités propres aux plates-formes, l’ordonnancement coopératif (cooperative scheduling) consiste par exemple à empêcher la mise en exécution d’une ressource concurrente éligible si une autre de priorité supérieure est aussi éligible. Comme tout autre exemple, nous pouvons aussi retenir l’ordonnancement préemptif basé sur les priorités qui cette fois va rendre éligible une ressource concurrente de priorité inférieure en exécution lorsqu’une autre de priorité supérieure se trouve éligible. Suivant le langage de modélisation utilisé pour exprimer ces mécanismes, il est plus ou moins nécessaire de les identifier au cœur des descriptions comportementales. À l’image du langage TROS déjà abordé dans le chapitre précédent sur la figure 2.7, la préemption apparaît implicitement à travers la modélisation. Les priorités sont à ce sujet précisées de manière atomique sur les actions temporisées. Cependant, certaines traductions à l’instar des TPNs exigent une “mise à plat” de ces mécanismes de part leurs expressivités. Dans le cadre d’un ordonnancement coopératif traduit en TPN, nous pourrions tout simplement imaginer un arc inhibiteur qui viendrait désactiver la mise en exécution d’une ressource concurrente. Dans l’optique de décrire ces mécanismes, des rôles complètent ceux de composition pour identifier des éléments de comportement (voir figure 3.9) nécessaires à de telles descriptions. Ils permettent ainsi une prise en compte explicite de ces mécanismes quelque soit le langage de modélisation choisi pour la traduction. Dans cet extrait, seuls quelques rôles identifiés pour de tels mécanismes sont montrés. Mais la possibilité d’étendre ces rôles à l’ensemble des prototypes comportementaux est illustrée à l’instar des rôles mutualAcquisitionScheduling et mutualReleasingScheduling identifié au sein du prototype MutualExclusionResourceBehavior. Ces rôles ont particulièrement été identifiés pour repérer les éléments de comportement décrivant un ordonnancement suite à une exclusion mutuelle (e.g., la mise en attente d’une ressource ordonnançable sur la prise d’un mutex ou bien encore le fait de la rendre éligible suite au relâchement de ce même mutex). La considération de telles descriptions n’est pas sans conséquences au sein du processus que nous cherchons à mettre en place. Elles font en effet l’objet d’un clonage spécifique que nous détaillerons dans le prochain chapitre.58 Chapitre 3. Modélisation du comportement avec RTEPML FIGURE 3.9 – Extrait du DSML RTEPML étendu : assignation de rôles de mécanismes spécifiques 3.3.5 Représentation du comportement d’une plate-forme Une première expérimentation [48] a mis en exergue la représentation du comportement d’une plate-forme OSEK/VDX. Elle a permis d’isoler les prototypes comportementaux de cette norme en fragments de TPN. Cet exercice a permis finalement de reproduire la dé- marche qu’effectuerait le concepteur pour modéliser sa plate-forme OSEK/VDX en TPN. La figure 3.10 retranscrit cet exercice en s’appuyant sur le PDM introduit dans le chapitre précédent, sur la figure 2.6. Trois fragments de TPNs ont été définis avec RTEPML étendu et viennent compléter le PDM structurel initialement prévu. Le fragment principal décrit le cycle de vie du prototype comportemental d’une tâche OSEK/VDX (TaskBehavior). Un second fragment décrit le cycle de vie du service de terminaison d’une tâche OSEK/VDX (TerminateTaskBehavior). Enfin, un troisième fragment étend le fragment principal en illustrant le mécanisme d’ordonnancement coopératif 3 qui vient inhiber l’exécution de la tâche (InhibitorAction). Les rôles behavior, terminateServices et cooperativeScheduling identifiés au sein de RTEPML associent respectivement ces fragments de TPN. Conformément à RTEPML, les trois fragments sont représentés par des éléments de comportement atomiques. Toutefois, l’ensemble des atomes de l’action d’inhibition sont considérés sous forme d’élé- ment de comportement composite. Cette configuration émane de la localisation collective des atomes de cette action en TPN à travers le rôle cooperativeScheduling. La configuration de ces fragments de TPN n’a pas été disposée de manière arbitraire. La distinction a certes été faite en fonction des rôles de composition, mais aussi en fonction de la démarche adoptée pour fusionner les éléments de comportement. L’orientation prise se focalise sur la fusion de places. Cette approche pose moins de problèmes qu’une fusion de transitions [68] [84]. La fusion de transitions nécessite une formalisation plus complexe en raison des intervalles statiques des transitions à fusionner qui pourraient être différents. La fusion de places est moins conséquente puisqu’elle n’engage seulement un nouveau marquage de la place fusionnée. Nous verrons dans le chapitre 5 la formalisation adoptée. En conséquence, l’ensemble des places visées par la composition sont annotées au sein du prototype comportemental via les rôles prévus à cet effet. À titre d’exemple, le rôle resumedState permet de repérer les places RUNNING_P et RUNNING sur les trois fragments 3. La représentation d’un tel mécanisme n’a d’intérêt que si l’application contient au moins deux activités concurrentes de priorités différentes3.4. Synthèse 59 FIGURE 3.10 – Représentation d’un PDM OSEK/VDX en TPN : tâche, service de terminaison et inhibition de TPN. Pour des raisons de clarté, les places fusionnables seront représentées par la suite avec des doubles ronds comme sur la figure 3.10. Elles se distingueront des places non fusionnables qui seront représentées par des simples ronds. 3.4 Synthèse Dans ce chapitre, le langage de modélisation de plates-formes logicielles d’exécution temps réel RTEPML a été enrichi dans le but de représenter le comportement qui émane des mécanismes des systèmes d’exploitation temps réel. Cette considération implique de décrire le cycle de vie des concepts exécutifs tels que les ressources et les services offerts par ces systèmes d’exploitation. Dans ce sens, un modèle comportemental de plate-forme a été intégré dans la syntaxe de RTEPML pour assigner des prototypes comportementaux aux concepts exécutifs. Chaque prototype comportemental est constitué d’éléments de comportement composites ou atomiques traduisibles dans un langage formel tel que les TPNs. Cette nouvelle syntaxe offre la possibilité de définir un certain nombre de fragments comportementaux en TPN, mais aussi de localiser des points de connexion utiles à la composition de ces fragments. La localisation de ces points de connexion est établie indépendamment du langage formel qui pourrait être différent des TPNs. Par la suite, seuls les TPNs ont été retenus pour traduire le comportement. Les points de connexion sont représentés par des places et oriente la composition vers de la fusion de places. Une description textuelle plus large de l’extension comportementale de RTEPML est donnée en annexe 139 complétant ainsi la syntaxe abstraite de l’ensemble des ressources et des services qui avait déjà été introduite [12] de manière structurelle. Cette description couvre uniquement une partie des prototypes comportementaux dont les rôles de composition60 Chapitre 3. Modélisation du comportement avec RTEPML ont pu être identifiés. La syntaxe proposée est donc susceptible d’être étendue pour couvrir la totalité des concepts comportementaux en ajoutant d’autres rôles de composition. Cependant, l’identité de ces rôles manquants qui devront être considérés à l’avenir ne doit en aucun cas impacter le processus que nous voulons mettre en œuvre. La composition doit par conséquent se généraliser autour des trois grandes familles de même niveau hiérarchique (i.e., les ressources concurrentes, les ressources d’interaction et les routines) que nous avons figurées au tout début de ce chapitre sur la figure 3.2.Composition du comportement de la 4 plate-forme et de l’applicatif Sommaire 4.1 Stratégie de considération du comportement . . . . . . . . . . . . . 64 4.1.1 Intégration dans le processus de déploiement . . . . . . . . . . 64 4.1.2 Adjonction au processus de déploiement . . . . . . . . . . . . . 65 4.1.3 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.2 Processus de considération du comportement . . . . . . . . . . . . . 66 4.2.1 Clonage d’éléments : application sur les instances . . . . . . . . 67 4.2.2 Clonage d’éléments : application sur les services . . . . . . . . 72 4.2.3 Clonage d’éléments : application sur les associations . . . . . . 75 4.2.4 Clonage d’éléments : application sur les mécanismes spécifiques 80 4.2.5 Composition d’éléments : application sur les routines . . . . . . 86 4.2.6 Composition d’éléments : application sur les points d’entrée . . 89 4.2.7 Composition d’éléments : application sur les ressources concurrentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.2.8 Composition d’éléments : application sur les ressources d’interaction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.3 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 L e langage de modélisation RTEPML a été étendu au comportement. Le processus de déploiement qui considère explicitement les descriptions de plates-formes d’exécution doit être renforcé pour considérer le comportement. Nous présentons dans ce chapitre une stratégie pour générer des modèles comportementaux en TPN d’applications déployées sur des plates-formes explicitement considérées. Les règles de transformation sont détaillées indépendamment du langage formel employé pour la traduction du comportement. Ce chapitre s’organise en trois sections. La première section justifie la stratégie adoptée pour une telle génération. La seconde section s’articule autour de deux axes pour composer l’application déployée avec le comportement de la plate-forme considérée. Le premier axe introduit le clonage des prototypes comportementaux, tandis62 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif que le second axe assemble les prototypes clonés. Enfin la dernière section conclue sur la stratégie et le processus proposés.64 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif 4.1 Stratégie de considération du comportement Dans le positionnement du chapitre 2 à la page 41, nous avons promu un processus de génération de modèles formels indépendant de la génération de code. Cette indépendance offre dans ce cas la possibilité de vérifier des propriétés non-fonctionnelles des SETRs à concevoir avant même l’implémentation du code. Toutefois, il reste à définir quelle stratégie adopter pour considérer le comportement des plates-formes logicielles d’exécution vis-à-vis du déploiement des applications temps réel. Un travail préliminaire a ciblé notre choix pour savoir quelle était la meilleure façon d’établir de nouvelles règles de transformation tout en profitant du processus de dé- ploiement. Deux stratégies sont stipulées. 4.1.1 Intégration dans le processus de déploiement La première idée a été de modifier le processus de déploiement déjà mis en œuvre [12]. Par conséquent, cette solution propose de considérer explicitement le comportement des plates-formes d’exécution durant le déploiement. La figure 4.1 montre le synoptique de SEXPISTOOLS dans ce contexte. L’enchainement des processus apparaît du haut vers le bas. FIGURE 4.1 – Synoptique de SEXPISTOOLS : intégration du processus de considération du comportement Considérer le comportement de la plate-forme considérée à travers le déploiement implique d’intégrer le processus de considération au sein du processus de déploiement. Dans cet exemple, la plate-forme considérée est choisie parmi un ensemble de PDMs passés en paramètre de la transformation X2RTEPML (e.g., celle considérée pourrait être celle de la4.1. Stratégie de considération du comportement 65 figure 3.10) du chapitre précédent. Le PSM comportemental généré est par conséquent celui d’un TPN composé d’une application intégrée dans une plate-forme OSEK/VDX. Cette représentation peut par la suite servir de point de départ à un générateur de code spéci- fique à la norme OSEK/VDX ou à un traducteur formel en TPN. D’un côté, le processus de génération de code apparaît juste ici à titre indicatif pour positionner le processus de génération de modèles formels que nous cherchons à mettre en œuvre. De l’autre côté, le traducteur formel est intégré au processus de génération de modèles formels. Une traduction formelle du PSM généré est en effet nécessaire pour exploiter ce dernier avec un outil de vérification. Bien que cette méthode propose tout de suite un raffinement très détaillé de l’application déployée, elle ne privilégie pas une bonne séparation des processus mis en jeu. Le processus de considération du comportement qui fait partie intégrante du processus de déploiement, doit demeurer aussi partie intégrante du processus de génération de modèles formels. Cette imbrication des processus n’apporte donc pas d’indépendance du déploiement vis-à-vis de la génération de modèles formels. 4.1.2 Adjonction au processus de déploiement La configuration suivante consiste cette fois à distinguer le processus de déploiement du processus de considération du comportement. La figure 4.2 expose ce cas de figure. Dans un premier temps, le processus de déploiement génère uniquement la structure de l’application déployée sur le PSM 1 qui pourrait être celle obtenue dans l’exemple de la figure 2.6 au chapitre 2. Pour autant, le comportement de la plate-forme considéré durant le déploiement apparaît dans le PSM 1 puisque le PDM décrit ce comportement. L’introduction du comportement de la plate-forme ne change pas la transformation X2RTEPML puisque les règles non modifiées s’appuient uniquement sur les concepts structurels. Le processus de considération du comportement engendre dans un second temps la création d’une nouvelle transformation endogène RTEPML2RTEPML. Cette transformation compose uniquement le comportement de l’application déployée à partir du PSM 1 dans lequel le comportement de la plate-forme et la structure de l’application sont déjà intégrés. Le PSM 2 généré représente également le TPN composé d’une application intégrée dans une plate-forme OSEK/VDX. Avec cette approche, les processus sont bien séparés. Le processus de considération du comportement qui fait partie intégrante du processus de génération de modèles formels n’est pas imbriqué dans le processus de déploiement. Il est finalement adjoint à ce processus. 4.1.3 Synthèse La stratégie adoptée [49] résulte de la deuxième configuration. Une transformation endogène est nécessaire pour composer un PSM comportemental d’une application déployée en TPN. Une vision plus détaillée est donnée figure 4.3 montrant le résultat escompté de cette transformation. Sur cette figure, le fruit de la composition est intégré dans la plate-forme à l’image du TPN de l’application au sein du PSM 2 généré. La suite de ce chapitre dispose les règles qui vont permettre une telle représentation en suivant deux grands axes : – Clonage : des éléments de comportement pour les besoins de l’application. Des correspondances doivent être établies entre les concepts structurels de l’application dé- ployée et les concepts comportementaux de la plate-forme visée par le déploiement ;66 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif FIGURE 4.2 – Synoptique de SEXPISTOOLS : adjonction du processus de considération du comportement – Composition : des éléments clonés pour la construction du TPN de l’application. Les places à fusionner doivent être localisées à partir des rôles de composition introduits dans le chapitre précédent. La figure présentée ci-dessus expose finalement le processus de génération de modèles formels. Toutefois, la traduction formelle illustrée aussi sur cette figure n’est pas décrite dans ce chapitre. Elle sera donnée dans le chapitre 6. 4.2 Processus de considération du comportement Comme mentionné dans le chapitre précédent, l’intégration du comportement de l’application déployée dans le modèle de plate-forme exige de composer un certain nombre de fragments comportementaux. Ces fragments sont issus de prototypes comportementaux qui sont associés aux ressources et aux services de la plate-forme et qui sont au préalable clonés vis-à-vis de l’application déployée. Dans cette section, les règles de transformation mises en œuvre au sein du processus de composition suivent une hiérarchie impérative. La cohérence d’un tel processus implique un enchainement des règles de façon ordonnée. Les règles suivantes sont donc présentées de manière algorithmique dans l’ordre logique de leurs déclenchements. Elles sont aussi détaillées tout en maintenant une généricité d’implémentation au regard de la plate-forme considérée et du langage de modélisation utilisé pour la traduction des prototypes comportementaux.4.2. Processus de considération du comportement 67 FIGURE 4.3 – Simple composition d’application avec une plate-forme OSEK/VDX 4.2.1 Clonage d’éléments : application sur les instances Le principe général d’intégration du comportement de l’application réside dans le premier algorithme 4.1 présenté ci-dessous. La première étape nécessite d’intégrer la structure de l’application déployée dans le nouveau modèle de plate-forme à générer. Puisque le modèle source (PSM 1) représente le déploiement, cette structure est déjà intégrée dans la plate-forme explicitement considérée. Par conséquent, une simple correspondance des classes du métamodèle source de plate-forme (MMp) avec elles-mêmes (identité puisque le métamodèle source est identique au métamodèle cible) apparaît en premier lieu pour68 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif dupliquer la plate-forme dans le nouveau modèle à générer (PSM 2). ALGORITHME 4.1 – Principe d’intégration d’un modèle comportemental d’application : clonage des prototypes comportementaux Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) début // Dupliquer la plate-forme et l’application déployée pour chaque classe mp ∈ MMp faire correspondance avec mp // (identité) pour chaque instance de ressource ari χ ApplicationResourceInstance ∈ MMp faire si ∃ ari.type.behavior alors // Cloner le prototype comportemental ruleCloneBehavioralPrototype(ari.type.behavior, ari) Une fois la plate-forme dupliquée, le clonage des prototypes comportementaux est permis pour chaque instance de ressource (conforme à 1 la classe ApplicationResourceInstance de MMp) de l’application déployée. L’appel à la règle de transformation ruleCloneBehavioralPrototype est conditionnée par l’existence ou non d’un prototype comportemental associé à la ressource qui type l’instance concernée (localisation par le biais de ari.type.behavior au sein de MMp). L’algorithme 4.2 en détaille le principe. ALGORITHME 4.2 – Règle d’application d’un prototype comportemental (ruleCloneBehavioralPrototype) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Concept source : mbp : la classe BehavioralPrototype de MMp Élement impliqué : ari : l’instance à l’origine du clonage, conforme à la classe ApplicationResourceInstance de MMp Notation : bp : le prototype comportemental à cloner, conforme à mbp début pour chaque élément de comportement be ∈ bp.elements faire si be χ Atomic ∈ MMp alors // Générer un élément atomique à partir d’un prototype comportemental ruleCreateAtomicElementFromBehavioralPrototype(be, ari) 1. Nous noterons χ pour décrire la relation de conformité tout au long des algorithmes présentés4.2. Processus de considération du comportement 69 Chaque prototype comportemental localisé avec la règle précédente est passé en paramètre de cette nouvelle règle puisqu’il se conforme au concept source BehavioralPrototype. Il est parcouru ici pour localiser tous les éléments de comportement qui le constituent et qui devront être clonés. L’instance de ressource à l’origine du clonage, est aussi impliquée dans cette règle (conformité avec le concept impliqué ApplicationResourceInstance). Comme relaté dans le chapitre précédent à la page 49, les éléments de comportement parcourus peuvent être décrits soit de manière composite, soit de manière atomique avec RTEPML. Nous nous intéressons pour le moment à la description atomique de ces éléments, puisque le langage de modélisation utilisé pour traduire formellement chaque prototype comportemental est les TPNs. La syntaxe abstraite des TPNs associe effectivement des éléments de comportement atomiques (voir figure 3.7, page 55). Le clonage des éléments de comportement composites sera introduit plus loin dans ce chapitre, notamment pour préciser le comportement de mécanismes spécifiques des plates-formes. Dans ce contexte, cette règle se poursuit avec le déclenchement de la règle ruleCreateAtomicElementFromBehavioralPrototype dont le but est de générer des éléments atomiques clonés issus du prototype comportemental source. L’algorithme 4.3 précise son fonctionnement. ALGORITHME 4.3 – Génération d’un élément de comportement atomique (ruleCreateAtomicElementFromBehavioralPrototype) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Concept source : ma : la classe Atomic de MMp Élement impliqué : ari : l’instance de ressource à l’origine de la génération, conforme à la classe ApplicationResourceInstance de MMp Notation : abe : l’élément de comportement atomique à cloner, conforme à ma début correspondance avec Atomic ∈ MMp rootInstances ← {ari} name ← abe.name +′ _ ′ + ari.name Le concept source est cette fois le concept Atomic de RTEPML. Chaque élément de comportement qui s’y conforme sera caractérisé à travers cette règle. Afin de garantir une identité atomique pour chaque élément considéré, l’instance de ressource est une nouvelle fois impliquée servant d’instance root à la caractérisation. Une correspondance est donc établie, au sein de cette règle, entre l’élément de comportement atomique source et un nouvel élément conformément au concept Atomic. Le nouvel élément créé contient de nouvelles informations qui proviennent de l’application. L’instance de ressource root est assignée au moyen de rootInstances. Grâce à la référence opposée à rootInstances (cf. Référencement des éléments de composrtement, page 51), l’élé- ment nouvellement créé est ajouté parmi les éléments clonés référencés pour cette instance. Ce niveau de précision aura son importance au moment de la composition à la page 86. En-70 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif fin, cette création incorpore aussi un nommage pour préciser davantage le nouvel élément quant à son identité à travers le modèle à générer. La création d’éléments atomiques introduite précédemment n’apporte pas un niveau de granularité suffisant de modélisation comportementale des instances de ressource de l’application déployée. Certaines propriétés définies sur les ressources peuvent effectivement influer sur la quantification ou la qualification de certains éléments de comportement. De ce fait, des rôles de propriétés identifiés au sein des ressources de la plate-forme (cf. Identification de rôles, page 50) ont été dupliqués au sein des prototypes comportementaux. L’algorithme suivant 4.4 vient enrichir la règle ruleCreateAtomicElementFromBehavioralPrototype en considérant l’impact comportemental que procurent certaines propriétés sur les éléments créés (les modifications apportées à l’ensemble des algorithmes seront par la suite pointées par le symbole ➤). L’impact comportemental engendré par ces propriétés se résume à la valuation des éléments créés. ALGORITHME 4.4 – Génération d’un élément de comportement atomique (ruleCreateAtomicElementFromBehavioralPrototype)(➤propriétés) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Concept source : ma : la classe Atomic de MMp Élement impliqué : ari : l’instance de ressource à l’origine de la génération, conforme à la classe ApplicationResourceInstance de MMp Notation : abe : l’élément de comportement atomique à cloner, conforme à ma début correspondance avec Atomic ∈ MMp ... ➤ pour chaque rôle r ∈ getPropertyRoles(ari.type.behavior) faire ➤ si abe = getAtomicElement(ari.type.behavior, r) alors ➤ pour chaque propriété p ∈ ari.properties faire ➤ si p.property =getProperty(ari.type, r) alors // Valuer l’élément cloné en fonction d’une propriété ➤ val ← getPropertyValue(p, r) Dans cet algorithme, un certain nombre de fonctions apparaissent pour retourner des informations. Suivant les besoins, ces informations peuvent provenir soit du modèle de la plate-forme (structure ou comportement) ou soit de l’application intégrée dans le modèle de la plate-forme. Dans tous les cas, ces informations sont localisables au moyen des concepts de RTEPML. À travers les prochains algorithmes, nous retiendrons le terme helper de pour désigner ces fonctions. Ce terme est en effet rencontré dans certains langages de transformation tels que ATL [4] pour remplir ces fonctions. Ces helpers ne seront pas systématiquement détaillés. Toutefois, leurs principes seront précisés. L’algorithme précédent se décompose en quatre points visant ainsi la valuation de l’élé-4.2. Processus de considération du comportement 71 ment créé : 1. une recherche introspective est dans un premier temps effectuée sur le prototype comportemental de l’instance impliquée dans cette règle, afin de retourner l’ensemble des rôles de propriétés joués. Pour y parvenir, cette recherche est lancée sur le concept de RTEPML auquel se conforme le prototype ari.type.behavior, passé en paramètre du helper getPropertyRoles; 2. l’existence d’un rôle de propriété joué par l’élément atomique source abe est ensuite vérifiée au sein du prototype comportemental. Le helper getAtomicElement contribue à la localisation du rôle de propriété en localisant l’élément atomique source qui joue ce rôle ; 3. le rôle de propriété une fois localisé, celui-ci va permettre alors de localiser la propriété recherchée au sein de l’instance root, dans l’optique de valuer l’élément créé. La localisation est réalisée en retournant la propriété qui joue ce rôle au sein de la ressource type ari.type, par l’intermédiaire du helper getProperty ; 4. la valeur de la propriété p est finalement retournée par le helper getPropertyValue. Cette valeur peut être traduite selon l’expressivité du langage de modélisation employé pour décrire la valeur de l’élément de comportement. Le rôle de propriété est par conséquent passé en paramètre du helper pour identifier la traduction à réaliser. Chaque élément de comportement qui joue un rôle de composition doit aussi être tracé au moment du clonage (cf. Identification de rôles de composition, page 56). L’algorithme 4.5 complète alors la règle ruleCreateAtomicElementFromBehavioralPrototype en attribuant à chaque élément créé le rôle joué par l’élément à l’originaire du clonage. ALGORITHME 4.5 – Génération d’un élément de comportement atomique (ruleCreateAtomicElementFromBehavioralPrototype)(➤rôle de composition) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Concept source : ma : la classe Atomic de MMp Élement impliqué : ari : l’instance de ressource à l’origine de la génération, conforme à la classe ApplicationResourceInstance de MMp Notation : abe : l’élément de comportement atomique cloné à générer, conforme à ma début correspondance avec Atomic ∈ MMp ... ➤ pour chaque rôle r ∈ getCompositionRoles(ari.type.behavior) faire ➤ si abe = getAtomicElement(ari.type.behavior, r) alors // Caractériser l’élément cloné selon le rôle joué pour la composition ➤ role ← r.name +′ _ ′ + ari.name De façon similaire à getPropertyRoles, une introspection est réalisée sur le prototype comportemental impliqué, pour retourner l’ensemble des rôles de composition. Le helper72 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif getAtomicElement est ensuite réutilisé pour localiser cette fois le rôle de composition joué par l’élément source abe. Une fois localisé, le rôle de composition est annoté sur l’élément de comportement créé en l’identifiant selon l’application. Pour ce faire, le nom de l’instance impliquée est ajouté à celui du rôle d’origine, à l’image du nommage des éléments créés. Une remarque est à préciser quant à l’emploi des deux helpers getPropertyRoles et getCompositionRoles. Une traduction est effectivement appliquée au sein de ces helpers pour distinguer les types de rôles rencontrés (i.e., rôles de propriété ou bien rôles de composition). Ceci étant, cette distinction ne dépend uniquement de RTEPML. Une mise en application des règles qui viennent d’être présentées est illustrée figure 4.4 pour montrer une première étape d’intégration d’un modèle comportemental d’application. Cet exemple s’appuie sur le clonage du prototype comportemental d’une alarme OSEK/VDX préalablement instanciée sur le PSM 1 après déploiement de l’application. Le modèle comportemental obtenu après exécution des règles apparaît dans la partie Application du PSM 2 généré. Les éléments de TPN qui constituent le prototype comportemental AlarmBehavior ont ainsi été clonés et nommés avec le suffixe Alarm qui correspond au nom de l’instance root impliquée. Sur le TPN obtenu, l’intervalle statique de la transition a aussi été borné suivant la valeur de la propriété cycletime de l’instance. L’application de l’algorithme 4.4 vient successivement : 1. localiser le rôle periodElements à travers le concept AlarmBehavior de RTEPML ; 2. localiser l’élément period (i.e., les bornes basse et haute de l’intervalle statique) qui joue ce rôle ; 3. localiser la propriété cycletime qui joue ce même rôle, sur la ressource Alarm qui type l’instance éponyme ; 4. localiser la valeur 50 qui renseigne la propriété cycletime, sur l’instance. Enfin, chaque place clonée dont l’élément source joue un rôle de composition dans le prototype AlarmBehavior a été annotée du rôle localisé. Chaque rôle est suffixé par le nom de l’instance Alarm et apparaît sous forme d’exposant en gras italique, sur chaque place annotée (e.g., enable_Alarm et activation_Alarm). Nous venons de voir une première mise en œuvre du processus dont le principe réside dans le clonage d’éléments de comportement. Ce clonage s’applique ici sur les instances de ressources. Le processus a par conséquent été enrichi pour aussi traiter les services. 4.2.2 Clonage d’éléments : application sur les services Le principe de base d’intégration d’un modèle comportemental d’application a été repris pour couvrir les services offerts par les ressources. Plus exactement, ce sont les appels de service possédés par les instances dans l’application qui sont concernés par cette seconde étape. Dans RTEPML, une séquence ordonnée d’appels de service est accessible depuis toute instance de ressource. Nous verrons par la suite que ces séquences d’appels sont principalement déployées à travers les instances de routine. Cependant, comme l’attribution d’une séquence d’appels est permissive à l’ensemble des instances, les règles qui vont suivre s’appliquent à l’ensemble des instances de ressources 2 . L’algorithme 4.6 étend le principe d’intégration d’un modèle comportemental en appelant la règle ruleCloneBehavioralPrototypeService pour chaque service appelé (conforme à la classe CallService de MMp). 2. Précisons toutefois que des contraintes type OCL (dans UML) ont déjà été appliquées sur les règles du processus de déploiement pour se focaliser seulement sur les routines d’exécution4.2. Processus de considération du comportement 73 FIGURE 4.4 – Intégration du comportement : clonage d’une alarme OSEK/VDX Cette fois, pour chaque appel de service, le déclenchement de la règle de clonage est conditionné par l’existence d’un service au sein de la ressource qui type l’instance référencée par cet appel. Si c’est le cas, un prototype comportemental de ce service existe pour cet appel. La démarche est la suivante : 1. une recherche introspective est premièrement appliquée sur la ressource type, dans le but de retourner l’ensemble des rôles de services joués au sein de cette ressource. La recherche est concentrée sur le concept de RTEPML auquel se conforme cs.ref.type, passée en paramètre du helper getServiceRoles; 2. l’existence d’un service cs.service (qualifié par l’appel de service) qui joue ce rôle au sein de la ressource type est vérifiée par le biais du helper getService. 3. le prototype comportemental du service appelé est finalement localisé à travers le prototype comportemental associé à la ressource type cs.ref.type.behavior. Pour ce faire, le helper getBehavioralPrototypeService retourne le prototype correspondant au rôle localisé précédemment. L’algorithme de la règle ruleCloneBehavioralPrototypeService n’est pas présenté ici puisqu’il s’appuie sur le même que la règle ruleCloneBehavioralPrototype 4.2. Les élé- ments de comportement qui constituent le prototype comportemental de service sont parcourus afin d’être clonés. De nouveaux éléments de comportement peuvent alors être créés, caractérisés en fonction du service appelé.74 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif ALGORITHME 4.6 – Principe d’intégration d’un modèle comportemental d’application : clonage des prototypes comportementaux(➤services) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) début // Dupliquer la plate-forme et chaque application déployée pour chaque classe mp ∈ MMp faire correspondance avec mp // (identité) pour chaque instance de ressource ari χ ApplicationResourceInstance ∈ MMp faire // Cloner le prototype comportemental ... ➤ pour chaque service appelé cs ∈ ari.call faire ➤ pour chaque rôle r ∈ getServiceRoles(cs.ref.type) faire ➤ si cs.service = getService(cs.ref.type, r) alors // Cloner le prototype comportemental de service ➤ ruleCloneBehavioralPrototypeService(cs, getBehavioralPrototypeService(cs.ref.type.behavior, r)) La génération des éléments de comportement clonés issus de prototypes comportementaux de service est cette fois exécutée avec la règle ruleCreateAtomicElementFromBehavioralPrototypeService. Cette règle est présentée dans l’algorithme 4.7. Elle est appelée pour chaque élément de comportement conforme au concept source Atomic de RTEPML. Une fois encore nous nous intéressons uniquement aux éléments de comportement atomiques. Une correspondance avec ce même concept source Atomic est réalisée pour créer un clone de l’élément atomique source. La caractérisation de l’élément créé est cependant légèrement différente de celle d’un élément cloné issu d’un prototype comportemental de ressource. L’identification est assurée selon l’instance référencée par l’appel de service cs.ref impliqué dans cette règle. Le nom du service contenu dans la ressource type de l’instance référencée par le service appelé cs.service.name est cette fois intercalé dans le suffixe de nommage. Le but est de distinguer les éléments clonés d’une même séquence d’appels. En effet, sans cette distinction, les éléments clonés de deux appels de service qui référencent une même instance de ressource (e.g., deux services de prise et de relâchement d’un sémaphore) auraient la même identité. La figure 4.5 reprend une partie de l’exemple de l’application HelloWorld pour illustrer cette deuxième phase d’intégration d’un modèle comportemental d’application. Cette fois, les éléments du prototype comportemental du service de terminaison d’une tâche OSEK/VDX TerminateTaskBehavior ont été clonés et nommés avec le suffixe HelloWorld. Les éléments clonés sont identifiés en intercalant le nom du service de terminaison terminateTask au suffixe. En appliquant l’algorithme 4.6, le prototype comportemental du service appelé a été localisé au moyen du helper getBehavioralPrototypeService après avoir successivement : 1. localisé le rôle terminateServices à travers le concept SchedulableResource de RTEPML ; 2. localisé le service appelé terminateTask qui joue ce rôle ;4.2. Processus de considération du comportement 75 ALGORITHME 4.7 – Génération d’un élément de comportement atomique (ruleCreateAtomicElementFromBehavioralPrototypeService) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Concept source : ma : la classe Atomic de MMp Élement impliqué : cs : l’appel de service à l’origine de la génération, conforme à la classe CallService de MMp Notation : abe : l’élément de comportement atomique cloné à générer, conforme à ma début correspondance avec Atomic ∈ MMp rootCalls ← {cs} name ← abe.name +′ _ ′ + cs.service.name +′ ( ′ +cs.ref.name +′ ) ′ pour chaque rôle r ∈ getPropertyRoles(cs.ref.type.behavior) faire si abe = getAtomicElement(cs.ref.type.behavior, r) alors pour chaque propriété p ∈ cs.ref.properties faire si p.property =getProperty(cs.ref.type, r) alors // Valuer l’élément cloné en fonction d’une propriété val ← getPropertyValue(p, r) pour chaque rôle r ∈ getCompositionRoles(cs.ref.type.behavior) faire si abe = getAtomicElement(cs.ref.type.behavior, r) alors // Caractériser l’élément cloné selon le rôle joué pour la composition role ← r.name +′ _ ′ + cs.ref.name 3. localisé le prototype comportemental TerminateTaskBehavior qui joue ce même rôle, sur le prototype comportemental TaskBehavior associé à la ressource type. Les instances générées sur le modèle de l’application déployée avant intégration du comportement peuvent parfois être associées. Ces associations ont un impact non négligeable d’un point de vue comportemental puisqu’elles incarnent des interactions entre les instances concernées. Nous devons par conséquent considérer ces associations au moment de la création du clonage des éléments de comportement. 4.2.3 Clonage d’éléments : application sur les associations Les associations apparaissent lors du déploiement de l’application suite au clonage de prototypes de conception. Pour rappel, ces prototypes permettent d’agencer des instances de ressource dans le but de définir des ressources non fournies pas la plate-forme consid- érée (cf. Prototypes de conception à la page 23). À travers ces agencements, des associations peuvent alors être tissées de manière structurelle entre les instances du prototype. Le processus de déploiement reproduit ainsi ces mêmes associations entre les instances de ressources générées à partir de ces prototypes sur le modèle de l’application déployée. Le clonage des prototypes comportementaux qui décrivent ces instances de ressources76 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif FIGURE 4.5 – Intégration du comportement : clonage d’un service de terminaison d’une tâche OSEK/VDX associées doit en conséquence marquer les éléments de comportement ciblés par ces associations. Nous avons déjà vu précédemment comment repérer les éléments clonés en vue de la composition de fragments comportementaux. Cette stratégie est préservée ici en annotant des rôles sur les éléments ciblés par ces associations. L’algorithme 4.8 reprend celui présenté pour la création d’éléments de comportement issus de prototypes comportementaux de ressources. La principale modification apportée se concentre sur l’annotation de l’élément créé avec le rôle de composition qui a été préalablement localisé. Un aiguillage dirige cette annotation selon que l’instance est associée ou non : 1. l’instance impliquée est tout d’abord observée dans le modèle de l’application dé- ployée pour vérifier si elle est reliée avec une autre instance. L’observation se fait au moyen du helper hasAssociatedInstance qui passe en revue l’ensemble des associations au sein de l’application. Ces associations se conforment au concept Resource-4.2. Processus de considération du comportement 77 ALGORITHME 4.8 – Génération d’un élément de comportement atomique (ruleCreateAtomicElementFromBehavioralPrototype) (➤rôle de composition d’instances associées [prototype de conception]) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Concept source : ma : la classe Atomic de MMp Élement impliqué : ari : l’instance de ressource à l’origine de la génération, conforme à la classe ApplicationResourceInstance de MMp Notation : abe : l’élément de comportement atomique cloné à générer, conforme à ma début correspondance avec Atomic ∈ MMp // Caractériser l’élément cloné selon l’instance ... pour chaque rôle r ∈ getCompositionRoles(ari.type.behavior) faire si abe = getAtomicElement(ari.type.behavior, r) alors // Caractériser l’élément cloné selon le rôle joué pour la composition... ➤ si hasAssociatedInstance(ari) alors ➤ role ← r.name +′ _ ′ + getMasterAssociatedInstance(ari).name ➤ sinon role ← r.name +′ _ ′ + ari.name InstanceAssociation de RTEPML. Lorsque l’instance passée en paramètre du helper est capturée parmi les “images” source et cible d’une association, la valeur vrai est retournée. 2. le rôle est ensuite annoté sur l’élément cloné si l’information précédente est véri- fiée. Le nom du rôle de composition est alors suffixé par le nom de l’instance maître associée qui est localisée à l’aide du helper getMasterAssociatedInstance. Le choix de privilégier l’instance maître pour le nommage des rôles de composition est légitime. En vue de la composition, les rôles destinés à la localisation des éléments impliqués doivent au maximum être identiques. L’instance maître étant le seul moyen de repérer une instance commune à l’ensemble des instances d’un même prototype de conception, nous l’avons choisie pour suffixer les rôles de composition. L’algorithme 4.9 donne un aperçu du helper getMasterAssociatedInstance pour préciser son utilité. L’instance de ressource passée en paramètre du helper étant associée, elle est de ce fait issue d’un prototype de conception. Au sein de ce prototype localisé avec le helper getDesignPrototype, l’instance maître masterInstance peut ensuite être retrouvée. L’instance de ressource qui a été déployée à partir de cette instance maître peut alors être repérée grâce au helper getInstance. La mise en application de ce dernier helper vise à localiser parmi les instances de ressources maîtres déployées, celle qui est associée avec l’instance de ressource ari. Notons tout de même que l’instance de ressource maître peut s’avérer être la même que78 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif ALGORITHME 4.9 – Localisation d’une instance associée maître issue d’un prototype de conception (getMasterAssociatedInstance) Entrées : ari : une instance de ressource associée, conforme à la classe ApplicationResourceInstance de MMp Résultat : l’instance maître associée avec ari et toutes deux issues du même prototype de conception début retourner getInstance(getDesignPrototype(ari).masterInstance) ari. Nous sommes revenus sur la figure 2.4 de la page 23 pour illustrer l’intégration du comportement d’instances issues d’un prototype de tâche périodique OSEK/VDX dans une application. La figure 4.6 expose ce genre de situation dans laquelle une activité périodique a initialement été déployée sur une tâche OSEK/VDX et ainsi provoqué la génération de deux instances associées sur le PSM 1. Ces deux instances, la tâche HelloWorld et l’alarme Alarm, sont associées par la relation alarm représentant le fait que la tâche est cadencée par une alarme. Les prototypes comportementaux TaskBehavior et AlarmBehavior décrivant les ressources types de ces instances ont été clonés. Les éléments créés ont ainsi été intégrés dans le modèle de l’application dé- ployée sur le PSM 2. Parmi les éléments créés, ceux qui jouent un rôle pour la composition ont été annotés de ce rôle conformément à l’algorithme que nous venons de présenter. Le suffixe ajouté à l’ensemble des éléments annotés correspond au nom de l’instance maître qui joue le rôle de maître dans la relation d’association. Cette instance maître a été localisée au moyen du helper getMasterAssociatedInstance après avoir successivement : 1. vérifier l’existence de l’association alarm à travers le modèle de l’application dé- ployée ; 2. localiser le prototype de conception à l’origine de cette association au sein de la ressource PeriodicTask ; 3. localiser l’instance maître dans le prototype localisé avec le rôle masterInstance. Dans notre exemple, l’instance désignée est celle typée par la tâche (i.e., T1) ; 4. retourner l’instance de ressource HelloWorld correspondante déployée dans l’application. Cette démarche a aussi été adoptée pour les services appelés qui ont pour référence l’une des instances associées. L’ensemble des éléments clonés qui jouent un rôle de composition sont en effet annotés par ce rôle suffixé du nom de l’instance maître associée. Dans le cas de la tâche périodique OSEK/VDX, nous pourrions imaginer son déclenchement initial au moyen d’un service offert par l’alarme OSEK/VDX. L’instance de référence à cet appel de service équivaudrait alors à l’alarme. Mais la tâche étant désignée comme l’instance maître dans cette association, les rôles de composition annotés sur les éléments clonés issus du prototype comportemental de ce service devraient alors être suffixés par cette tâche. L’algorithme n’est pas présenté ici puisqu’il est calqué sur l’algorithme 4.8 en remplaçant le paramètre d’instance ari par celui de l’instance référencée par l’appel de service cs.ref dans les helpers.4.2. Processus de considération du comportement 79 FIGURE 4.6 – Intégration du comportement : clonage d’un prototype de tâche périodique OSEK/VDX Depuis le début de cette section, le clonage s’appuie sur les éléments de comportement atomiques en raison de l’expressivité des TPNs. Toutefois, nous allons profiter de ce concept d’élément de comportement composite pour traiter le cas des mécanismes spécifiques (cf. Rôles pour les mécanismes spécifiques à la page 57) rencontrés sur les plates-formes80 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif logicielles. 4.2.4 Clonage d’éléments : application sur les mécanismes spécifiques De base, les éléments de comportement composites sont constitués de sous-éléments de comportement qui peuvent être soit atomiques, soit de nouveau composites. Cette configuration, bien répandue dans la modélisation orientée objet, engage un clonage récursif des sous-élements de comportement. Pour cette raison, l’algorithme 4.10 complète la règle de clonage d’un prototype comportemental en considérant les éléments composites. ALGORITHME 4.10 – Règle d’application d’un prototype comportemental (ruleCloneBehavioralPrototype)(➤élément de comportement composite) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Concept source : mbp : la classe BehavioralPrototype de MMp Élement impliqué : ari : l’instance à l’origine du clonage, conforme à la classe ApplicationResourceInstance de MMp Notation : bp : le prototype comportemental à cloner, conforme à mbp début pour chaque élément de comportement be ∈ bp.elements faire // Condition d’atomicité ... ➤ si be χ Composite ∈ MMp alors // Cloner l’élément composite ➤ ruleCloneCompositeBehaviorElement(be, ari) Pour chaque élément rencontré dans le prototype comportemental source qui se conforme à la classe Composite de MMp, une sous-règle de clonage est appelée. La règle ruleCloneCompositeBehaviorElement a pour objectif de parcourir les sous-éléments de l’élé- ment sélectionné dans le but de les cloner à leur tour. Cette règle est décrite dans l’algorithme 4.11. Chaque sous-élément de comportement est tour à tour discerné selon que l’élément est de nature atomique ou composite. Dans le cas où le sous-élément est atomique, la rè- gle ruleCreateAtomicElementFromBehavioralPrototype (voir algorithme 4.3) est une nouvelle fois mise à contribution pour créer un clone de cet élément. Dans le cas où le sous- élément s’avère être composite, la règle ruleCloneCompositeBehaviorElement est appelée de manière itérative. Cette introduction au clonage des éléments de comportement composites nous permet de mieux aborder la prise en compte des mécanismes spécifiques. À l’image du mécanisme d’ordonnancement coopératif avancé précédemment sur la figure 3.10 à la page 58, un ensemble d’éléments atomiques (e.g., InhibitorAction) peut être imbriqué dans le prototype comportemental d’une ressource (e.g., respectivement TaskBehavior). Cet arrangement vise4.2. Processus de considération du comportement 81 ALGORITHME 4.11 – Règle d’application d’un élément de comportement composite (ruleCloneCompositeBehaviorElement) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Concept source : mc : la classe Composite de MMp Élement impliqué : ari : l’instance de ressource à l’origine du clonage, conforme à la classe ApplicationResourceInstance de MMp Notation : cbe : l’élément de comportement composite à cloner, conforme à mc début pour chaque sous-élément de comportement sbe ∈ cbe.subelements faire si sbe χ Atomic ∈ MMp alors // Générer le sous-élément atomique à partir d’un prototype comportemental ruleCreateAtomicElementFromBehavioralPrototype(sbe, ari) si sbe χ Composite ∈ MMp alors // Cloner le sous-élément composite ruleCloneCompositeBehaviorElement(sbe, ari) à spécifier le comportement de la ressource contrainte par ce type de mécanisme. Cette description qui vise à étendre celle du prototype comportemental associé implique de modifier le clonage de ce dernier. L’algorithme 4.12 revient sur la règle ruleCloneBehavioralPrototype. Cet algorithme est étendu pour traiter le clonage des éléments de comportement qui jouent un rôle spécifique dans la description de certains mécanismes. Lorsqu’un de ces éléments est rencontré au sein du prototype comportemental source, cet élément est orienté vers un clonage spécifique suivant sa nature : 1. un test est dans un premier temps appliqué pour vérifier si un rôle de mécanisme est joué par l’élément de comportement sélectionné. Le helper hasSpecificMechanismRole retourne la valeur vrai si le test est vérifié ; 2. une recherche introspective vient ensuite retourner l’ensemble des rôles de mécanismes spécifiques joués au sein du prototype comportemental. La recherche est focalisée sur le concept de RTEPML auquel se conforme le prototype bp, passé en paramètre du helper getSpecificMechanismRoles; 3. les instances concernées par le mécanisme identifié à travers chaque rôle sont ensuite rassemblées à l’aide du helper getConcernedInstances. Le nombre d’instances retournées avec ce helper varie en fonction du nombre d’instances qui interagissent avec l’instance ari passée en paramètre, vis-à-vis du mécanisme localisé ; 4. le nombre d’instances concernées impose finalement un clonage multiple de l’élé- ment de comportement. Pour chaque instance concernée, le clonage de l’élément est orienté selon sa nature et conditionné selon le rôle qu’il joue au sein du prototype comportemental source. Les helpers getAtomicElement et getCompositeElement corrèlent l’élément de comportement à cloner avec le mécanisme joué.82 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif ALGORITHME 4.12 – Règle d’application d’un prototype comportemental (ruleCloneBehavioralPrototype)(➤mécanisme spécifique) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Concept source : mbp : la classe BehavioralPrototype de MMp Élement impliqué : ari : l’instance à l’origine du clonage, conforme à la classe ApplicationResourceInstance de MMp Notation : bp : le prototype comportemental à cloner, conforme à mbp début pour chaque élément de comportement be ∈ bp.elements faire ➤ si hasSpecificMechanismRole(bp, be) alors ➤ pour chaque rôle r ∈ getSpecificMechanismRoles(bp) faire ➤ pour chaque instance concernée aric ∈ getConcernedInstances(ari, r) faire // Générer l’élément atomique à partir d’un mécanisme spécifique ➤ si beχ Atomic ∈ MMp et be = getAtomicElement(bp, r) alors ➤ ruleCreateAtomicElementFromSpecificMechanism(be, ari, aric) // Cloner l’élément composite qui décrit un mécanisme spécifique ➤ si beχ Composite ∈ MMp et be = getCompositeElement(bp, r) alors ➤ ruleCloneSpecificCompositeBehaviorElement(be, ari, aric) ➤ sinon // Générer ou cloner normalement selon la nature de l’élément de comportement ... Dans le cas où l’élément de comportement doit être cloné spécifiquement, deux nouvelles règles rentrent en jeu. La première règle ruleCreateAtomicElementFromSpeci- ficMechanism adapte le principe de création d’un clone d’élément atomique en consid- érant l’instance concernée par le mécanisme localisé. Cette règle est décrite dans l’algorithme 4.13. Le principe de caractérisation d’élément atomique se différencie légèrement de celui vu précédemment dans l’algorithme 4.3. La principale variante réside dans le nommage de l’élément cloné et du rôle de composition annoté. L’instance concernée par le mécanisme localisé dans la règle précédente doit en effet interagir avec cet élément. Ce dernier est de ce fait caractérisé en fonction de cette instance. La seconde règle ruleCreateCloneSpecificCompositeBehaviorElement adapte quant à elle le principe de clonage d’un élément composite toujours en fonction de l’instance concernée par le mécanisme localisé. Cette règle est décrite dans l’algorithme 4.14. Comme dans l’algorithme 4.12, cette règle vise à appeler les deux règles ruleCreateAtomicElementFromSpecificMechanism et ruleCloneSpecificCompositeBehaviorElement, mais cette fois quelque soit l’information obtenue avec le helper hasSpeci-4.2. Processus de considération du comportement 83 ALGORITHME 4.13 – Génération d’un élément de comportement atomique spécifique (ruleCreateAtomicElementFromSpecificMechanism) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Concept source : ma : la classe Atomic de MMp Élements impliqués : ari : l’instance de ressource à l’origine de la génération, conforme à la classe ApplicationResourceInstance de MMp aric : l’instance de ressource concernée par un mécanisme, conforme à la classe ApplicationResourceInstance de MMp Notation : abe : l’élément de comportement atomique spécifique cloné à générer, conforme à mabe début correspondance avec Atomic ∈ MMp rootInstances ← {ari} name ← abe.name +′ _ ′ + aric.name // Condition de valuation de l’élément cloné en fonction d’une propriété ... pour chaque rôle r ∈ getCompositionRoles(ari.type.behavior) faire si abe = getAtomicElement(ari.type.behavior, r) alors // Caractériser l’élément cloné selon le rôle joué pour la composition role ← r.name +′ _ ′ + aric.name ficMechanismRole. Le même principe de création d’élément atomique ou de clonage d’élé- ment composite que précédemment, est appliqué ici. Si un des sous-éléments joue un rôle de mécanisme spécifique (différent de celui impliqué au début de cette règle), ce nouveau mécanisme implique la considération de nouvelles instances. Sinon, le principe est appliqué pour le mécanisme localisé précédemment selon l’instance concernée. Nous sommes revenus sur le mécanisme d’ordonnancement coopératif pour illustrer la mise œuvre d’un mécanisme spécifique. Pour rappel, ce type de mécanisme permet de prioritiser l’exécution de tâches ordonnançables de façon coopérative. La figure 4.7 représente sur le PSM 1, une application déployée constituée de trois tâches ordonnançables avec des priorités différentes. Au cœur du prototype comportemental TaskBehavior, l’action inhibiteur InhibitorAction a été définie pour décrire le mécanisme d’ordonnancement coopératif d’une tâche. Elle est représentée sous la forme d’un élément de comportement composite. À la suite de la transformation, le prototype comportemental d’une tâche a été cloné trois fois en raison du nombre d’instances représentées dans l’application. Par mesure de clarté, les éléments clonés générés sur le PSM 2 n’apparaissent pas entièrement pour les instances HelloWorld2 et HelloWorld3. Ceci étant, l’action inhibiteur est bien représentée. Chaque clone de tâche moins prioritaire a été étendu de manière à intégrer autant d’actions inhibiteurs que de tâches plus prioritaires. En se focalisant sur la tâche la moins prioritaire, le clonage a été appliqué après avoir84 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif ALGORITHME 4.14 – Règle d’application d’un élément de comportement composite spécifique (ruleCloneSpecificCompositeBehaviorElement) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Concept source : mc : la classe Composite de MMp Élements impliqués : ari : l’instance de ressource à l’origine de la génération, conforme à la classe ApplicationResourceInstance de MMp aric : l’instance de ressource concernée par un mécanisme, conforme à la classe ApplicationResourceInstance de MMp Notation : cbe : l’élément de comportement composite à cloner, conforme à mc début pour chaque sous-élément de comportement sbe ∈ cbe.subelements faire si hasSpecificMechanismRole(bp, sbe) alors // Clonage du sous-élément en fonction d’un nouveau mécanisme spécifique ... sinon si sbe χ Atomic ∈ MMp alors // Générer le sous-élément atomique à partir d’un mécanisme spécifique ruleCreateAtomicElementFromSpecificMechanism(sbe, ari, aric) si sbe χ Composite ∈ MMp alors // Cloner le sous-élément composite qui décrit un mécanisme spécifique ruleCloneSpecificCompositeBehaviorElement(sbe, ari, aric) successivement : 1. vérifier l’existence d’un élément de comportement jouant le rôle de mécanisme cooperativeScheduling au sein du prototype comportemental. En l’occurrence, il s’agit ici de l’action InhibitorAction ; 2. repérer le nombre d’instances concernées par ce mécanisme. Le nombre retourné équivaut à deux en raison des deux tâches plus prioritaires. Remarquons ici que pour ce mécanisme, le rôle priorityElements a été considéré pour localiser les propriétés de priorité des tâches ; 3. vérifier la nature de l’élément de comportement qui est composite dans notre cas ; 4. cloner chaque atome de cet élément composite en le caractérisant avec l’instance concernée à chaque itération (i.e., HelloWorld2 puis HelloWorld3). Cette manœuvre adaptée aux mécanismes des plates-formes logicielles concerne aussi les services appelés. Ces derniers peuvent en effet être impliqués dans certains mécanismes. Prenons l’exemple du service de relâchement d’un mutex. Dans la situation où ce mutex est relâché suite à l’appel de ce service, un certain nombre d’instances de ressources ordonnançables en attente de ce même mutex peuvent alors être rendues éligibles par l’ordonnanceur. Le nombre d’instances concernées est dans ce cas déterminé selon les instances susceptibles d’acquérir ce mutex, à travers le modèle de l’application déployée.4.2. Processus de considération du comportement 85 FIGURE 4.7 – Intégration du comportement : clonage de 3 tâches OSEK/VDX avec ordonnancement coopératif La mise en œuvre de tels mécanismes sur les services est alors calquée sur les règles que nous venons de voir à partir de l’algorithme 4.10. Les règles les concernant n’ont pas été décrites puisque la seule différence réside dans la substitution de l’instance ari par l’appel86 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif de service. Reprenons l’exemple du service de relâchement d’un mutex. Un rôle a été identi- fié dans RTEPML pour localiser le comportement d’une action permettant de rendre éligible une ressource ordonnançable sur un relâchement de ce genre (cf. Identification de rôles de mécanismes spécifiques, page 57). Grâce à ce rôle, une telle action peut être localisée parmi les éléments de comportement qui constituent le prototype comportemental d’un tel service. En conséquence, cette action peut être clonée spécifiquement selon le nombre d’instances concernées. Nous avons passé en revue l’ensemble des règles retenues pour l’intégration d’éléments de comportement clonés dans un modèle d’application déployée. Ces éléments, une fois générés, sont disposés de manière orthogonale sur le modèle. Cette répartition fragmentaire nous amène à devoir les composer. Afin de localiser les points de connexion à travers ces fragments, les éléments qui remplissent cette fonction ont chacun été annotés d’un rôle de composition au moment du clonage. De plus, chaque ensemble d’éléments a été affecté de l’instance de ressource (ou du service appelé) qui est l’origine de leur clonage (root). Tous ces traceurs vont être exploités maintenant à travers la composition des fragments. Les fragments ne peuvent évidemment pas être composés de manière arbitraire. À l’image des routines d’exécution, certaines compositions sont à effectuer individuellement avant d’arriver à un modèle global. 4.2.5 Composition d’éléments : application sur les routines Le comportement des instances de routines d’exécution constitue la base de notre composition. Les services d’exécution qui sont appelés depuis ces routines sont à l’origine de la concurrence et des interactions entre les ressources. Les fragments comportementaux qui représentent ces appels doivent donc être agencés de façon séquentielle en respectant l’ordre des appels rencontrés dans le modèle d’application déployée. L’algorithme 4.15 revient sur le principe d’intégration du comportement en ajoutant cette première étape de composition. ALGORITHME 4.15 – Principe d’intégration d’un modèle comportemental d’application : composition des éléments de comportement clonés(➤routines) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Notation : ➤ IR : l’ensemble des instances de routines {ariR|ariR.typeχ Routine ∈ MMp} début // Dupliquer la plate-forme et chaque application déployée ... // Cloner les prototypes comportementaux ... // Composer les routines d’exécution ➤ pour chaque instance de routine ariR ∈ IR faire ➤ pour chaque service appelé csR ∈ ariR.call faire // Composer la routine avec le prochain service appelé ➤ ruleComposeRoutineCalls(ariR, csR) Dans cette première étape, seules les instances de routines sont impliquées. Nous par-4.2. Processus de considération du comportement 87 tons du principe que l’ensemble de ces instances IR a déjà été listé au sein de l’application. Par conséquent, les services appelés depuis chaque instance de routine ariR sont atteignables. De ce fait, chaque fragment d’éléments clonés qui représente un service appelé csR est assemblé tour à tour, pour former le comportement de l’instance de routine. Pour chaque appel sélectionné, la règle ruleComposeRoutineCalls est alors appelée. L’algorithme 4.16 en détaille le principe. ALGORITHME 4.16 – Règle de composition d’une routine d’exécution (ruleComposeRoutineCalls) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Concept source : mari : la classe ApplicationResourceInstance de MMp Élement impliqué : csR : le service appelé à composer, conforme à la classe CallService de MMp Notation : ariR : l’instance de routine à composer, conforme à mari début pour chaque élément cloné ce ∈ ariR.clonedElements faire si ceχ Atomic ∈ MMp alors si getMatchCallElement(ce, csR) 6= ∅ alors // Générer un élément atomique fusionné à partir d’une composition ruleCreateAtomicElementFromComposition(getMatchCallElement(ce, csR), ce) ariR.clonedElements ← {csR.clonedElements} Dans cette règle, l’objectif est de fusionner les éléments clonés qui sont annotés de rôles de composition au sein des fragments à composer. Les éléments sont pris en compte uniquement s’ils sont de nature atomique. En effet, les fragments de comportement étant décrits en TPN, nous avons orienté leur composition vers la fusion de places qui sont des éléments atomiques (cf. Représentation du comportement d’une plate-forme, page 58). L’exécution de cette règle permet in fine de référencer les éléments clonés de l’appel impliqué vers ceux de l’instance de routine. Cette règle étant déclenchée à chaque nouvel appel, chaque élément cloné ce qui aura été référencé sur l’instance de routine peut potentiellement être fusionné avec un des éléments référencés sur ce nouvel appel. L’élément correspondant dans csR est retourné à l’aide du helper getMatchCallElement. Si cette correspondance est établie, une règle de création d’un élément fusionné (ruleCreateAtomicElementFromComposition) est appelée avec comme paramètres les éléments localisés. En aparté, nous devons préciser comment ces correspondances sont établies à travers le helper getMatchedCallElement. Lors du clonage des appliqué sur les appels de service, les rôles annotés sur les éléments clonés d’un appel de service ont été suffixés en fonction de l’identité de l’instance référencée par cet appel. Ce parti pris tient de la légitimité de composition entre un fragment de comportement d’un service appelé avec celui qui décrit l’instance référencée (e.g., service de terminaison avec la tâche ciblée). Dans ce cas, les éléments clonés à fusionner sont ceux dont les rôles ont été suffixés de façon homonyme. Néanmoins, cette correspondance ne peut se limiter ici à une telle équivalence entre les88 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif rôles. La figure 4.8 appuie cette idée. FIGURE 4.8 – Intégration du comportement : composition d’une routine OSEK/VDX avec 2 appels de services Un extrait de modèle formel en TPN représente ici deux fragments obtenus pour deux services appelés depuis la même routine Main. Ces deux services sont appelés successivement pour 1) activer la tâche HelloWorld2 et 2) terminer la tâche HelloWorld. Ces deux fragments doivent par conséquent être assemblés dans cet ordre pour composer la routine. Cet extrait montre que, dans ce cas précis, seules les places caractérisées par les rôles end_HelloWorld2 et start_HelloWorld sont à fusionner (i.e., celles reliées avec un arc en pointillés). Ce constat soulève l’idée que deux éléments clonés à fusionner ne sont pas obligatoirement annotés avec des rôles équivalents. De ce fait, certaines adaptations doivent s’opérer dans le helper getMatchCallElement au cas par cas selon le langage de modélisation employé pour la traduction des éléments. Une attention particulière sera par conséquent nécessaire pour éviter toute ambiguïté de composition. Une formalisation de cette composition est présentée dans le chapitre 5 suivant pour faire état de ces correspondances en TPN. Ceci sert de transition à l’introduction de l’algorithme 4.17. Ce dernier décrit la règle ruleCreateAtomicElementFromComposition appelée lorsqu’une correspondance entre deux éléments clonés à fusionner a été trouvée. Cette règle est une version générique et simplifiée de fusion entre un élément de comportement atomique source et un élément ciblé. Elle implique la création d’un nouvel élé- ment atomique dans lequel sont centralisées les informations qui caractérisent ces éléments source et cible. La caractérisation de ce nouvel élément débute par l’affectation des instances root de l’élément ciblé à celles du nouvel élément. Comme lors de la création des éléments nouvellement clonés, cette affectation est aussi nécessaire pour le traçage des élé- ments fusionnés qui devront être considérés par la suite dans de nouvelles compositions. La caractérisation se poursuit par une succession de helpers appelés getMergedName, getMergedName et getMergedRole. Ces helpers retournent respectivement le nom, la valeur et le rôle annoté sur le nouvel élément. Comme pour la mise en correspondance des éléments à fusionner, le renseignement de ces informations doit être adapté sur le nouvel élément fusionné en fonction des informations qui caractérisent les éléments source et cible. La for-4.2. Processus de considération du comportement 89 ALGORITHME 4.17 – Génération d’un élément de comportement atomique fusionné (ruleCreateAtomicElementFromComposition) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Concept source : mabe : la classe Atomic de MMp Élement impliqué : abet : l’élément de comportement atomique cloné cible à fusionner, conforme à la classe Atomic de MMp Notation : abes : l’élément de comportement atomique cloné source à fusionner, conforme à mabe début correspondance avec Atomic // Caractériser l’élément atomique fusionné rootInstances ← {abet.rootInstances} name ← getMergedName(abes, abet) val ← getMergedValue(abes, abet) role ← getMergedRole(abes, abet) setMergedAtomicElement(abes, abet) malisation décrite dans le chapitre 5 suivant donne une idée plus précise de ces adaptations en TPN. En dernier lieu, le helper setMergedAtomicElement caractérise l’élément fusionné selon d’autres critères qui sont abstraits au niveau de RTEPML. D’un point de vue TPN, ces critères concernent d’une part, les relations d’arcs entrants et d’arcs sortants associées entre les places et les transitions (cf. Héritage d’élément de comportement, page 55) et d’autre part, le marquage des places. Une introspection sur la classe Atomic de RTEPML est nécessaire pour parcourir l’ensemble des relations associées sur les classes filles de Atomic incarnées par les concepts en TPN. Une définition formelle de la composition en TPN vient fixer cette caractérisation dans le chapitre suivant. L’étape suivante de composition doit ensuite être appliquée sur les points d’entrées des ressources concurrentes. Le but est de lier le cycle de vie de ces ressources vis-à-vis de leurs exécutions (i.e., les routines d’exécutions). 4.2.6 Composition d’éléments : application sur les points d’entrée Dans RTEPML, le rôle de point d’entrée est affecté à une propriété de ressource concurrente. Comme nous l’avons déjà évoqué (cf. Représentation explicite des plates-formes, page 2.1.2), un point d’entrée a pour but de pointer le traitement exécutif associé à une ressource concurrente. Ce traitement est caractérisé par une routine d’exécution. Lorsqu’une ressource concurrente a été instanciée durant le déploiement, cette propriété sert à renseigner l’instance de routine qui traitera l’exécution de l’instance concurrente. L’instance de routine concernée est référencée par cette propriété de point d’entrée au sein de l’application déployée. D’un point de vue comportemental, cette propriété n’implique pas la valuation d’élé-90 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif ment de comportement comme nous l’avons vu dans l’algorithme 4.4. Elle est gérée comme une étape de la composition. Chaque routine composée est ensuite associée avec la ressource concurrente qui pointe sur la routine appropriée. L’algorithme 4.18 étend le principe d’intégration d’un modèle comportemental d’application, en ajoutant la composition des points d’entrée. ALGORITHME 4.18 – Principe d’intégration d’un modèle comportemental d’application : composition des éléments de comportement clonés(➤points d’entrée) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Notations : IR : l’ensemble des instances de routines {ariR|ariR.typeχ Routine ∈ MMp} ➤ IC : l’ensemble des instances de ressources concurrentes {ariC |ariC .typeχ ConcurrentResource ∈ MMp} début // Dupliquer la plate-forme et chaque application déployée ... // Cloner les prototypes comportementaux ... // Composer les routines d’exécution ... // Composer les points d’entrée ➤ pour chaque instance de ressource concurrente ariC ∈ IC faire ➤ pour chaque rôle r ∈ getPropertyRoles(ariC .type) faire ➤ si r = getEntryPointElementRole(ariC .type) alors ➤ pour chaque propriété p ∈ ariC .properties faire ➤ si p.property =getProperty(ariC .type, r) alors // Composer la ressource concurrente avec son point d’entrée ➤ ruleComposeInstances(p.ref, ariC ) Cette seconde étape agit pour chaque instance de ressource concurrente ariC préalablement repérée dans l’ensemble IC au sein de l’application. Chaque instance de ressource concurrente va être composée avec son point d’entrée localisé. Ainsi, successivement : 1. les rôles de propriété joués au sein de la ressource qui type l’instance concurrente ariC.type sont en premier lieu localisés à l’aide du emphhelper getPropertyRoles déjà présenté ; 2. le rôle de point d’entrée est ensuite isolé parmi les rôles précédemment localisés, grâce au helper getEntryPointElementRole. Ce helper sert uniquement ici de traduction pour retourner le rôle désiré ; 3. la propriété qui joue ce rôle de point d’entrée est enfin localisée parmi les propriétés de l’instance de ressource concurrente sélectionnée. Nous retrouvons le helper getProperty pour cela. Une fois la propriété localisée, la règle de composition ruleComposeInstances est appelée afin de composer l’instance de ressource concurrente ariC avec son point d’entrée4.2. Processus de considération du comportement 91 p.ref. Cette règle est détaillée dans l’algorithme 4.19. Elle est générique à l’ensemble des instances dont les fragments d’éléments clonés doivent s’associer. ALGORITHME 4.19 – Règle de composition de deux instances (ruleComposeInstances) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Concept source : mari : la classe ApplicationResourceInstance de MMp Élement impliqué : arit : l’instance cible à composer, conforme à la classe ApplicationResourceInstance de MMp Notation : aris : l’instance source à composer, conforme à mari début pour chaque élément cloné ce ∈ aris.clonedElements faire si ceχ Atomic ∈ MMp alors si getMatchInstanceElement(ce, arit)6= ∅ alors // Générer un élément atomique fusionné à partir d’une composition ruleCreateAtomicElementFromComposition(ce, getMatchInstanceElement(ce, arit)) arit.clonedElements ← {aris.clonedElements} Le principe de cette règle est finalement le même que celui mentionné dans l’algorithme 4.16 pour composer les appels de service d’une routine. Son exécution permet in fine de référencer les éléments clonés de l’instance source vers ceux de l’instance cible impliquée. La mise en correspondance des éléments clonés à fusionner intervient cette fois grâce au helper getMatchInstanceElement. Il a pour paramètre cible une instance de ressource et non un appel de service. Nous avons bien affaire à des fragments d’éléments clonés qui représentent des instances. Afin de donner un aperçu d’une telle composition, la figure 4.9 montre deux fragments en TPN clonés qui décrivent une instance de ressource concurrente et celle d’une routine préalablement composée. La tâche HelloWorld a pour point d’entrée la routine principale Main. Dans cet extrait, le comportement de la routine est composée d’une séquence arbitraire d’appels de service. Nous pouvons constater ici la non connaissance des rôles annotés sur les places de début et de fin de cette routine. Ces rôles dépendent bien évidemment des services appelés. Les places devant être fusionnées sont celles de début et de fin de la routine d’exécution qui sont reliées par des arcs en pointillés. Cette fois, l’adaptation est faite au cœur du helper getMatchInstanceElement pour localiser les éléments annotés des rôles start_HelloWorld et end_HelloWorld) de la tâche. Le comportement des ressources concurrentes associées avec leurs routines d’exécution est maintenant formé. L’étape suivante se concentre sur l’ensemble des ressources concurrentes, y compris celles qui n’ont pas de points d’entrée.92 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif FIGURE 4.9 – Intégration du comportement : composition d’une tâche OSEK/VDX avec son point d’entrée 4.2.7 Composition d’éléments : application sur les ressources concurrentes La mise en concurrence de telles ressources repose avant tout sur le partage d’une ressource commune : le processeur. Ce dernier peut aussi être représenté comme une ressource d’interaction. Ceci étant, nous le verrons dans la sous-section suivante, page 94, les ressources concurrentes interagissent entre elles au moyen des services appelés. Or, bien souvent les plates-formes n’offrent pas de services pour directement manipuler le processeur. Pour cette raison, un rôle processor a été identifié au sein du prototype comportemental associé au concept de ConcurrentResource dans RTEPML. Les éléments clonés qui jouent ce rôle doivent en l’occurrence être fusionnés à ce stade de la composition. Dans la première partie présentée, nous avons annoncé le clonage d’éléments issus de mécanismes spécifiques. Selon le mécanisme, un certain nombre de ressources concurrentes peuvent être impliquées et avoir un impact sur l’ordonnancement de la ressource concurrente à l’origine du clonage. En conséquence, ces mécanismes sont aussi mis en jeu en fusionnant ces éléments à ce moment de la composition. Les éléments issus des associations entre instances de prototypes de conception sont aussi concernés par cette étape de la composition. Si les instances sont typées par des ressources concurrentes, les éléments engagés seront fusionnés ici. Un enrichissement du principe d’intégration de modèle comportemental d’application est par conséquent présenté dans l’algorithme 4.20. Il tient compte de la composition des éléments clonés pour chaque instance de ressource concurrente sélectionnée à travers le modèle de l’application déployée. La mise en œuvre d’une telle composition consiste à assembler tour à tour les éléments clonés de chaque instance de ressource concurrente. Chaque instance listée dans IC est passée en paramètre de la règle de composition ruleComposeInstances comme l’instance source. Elle est composée avec l’instance située juste après dans la liste qui, quant à elle, est considérée comme l’instance cible. Comme pour les appels de service, un helper nommé getNextConcurrentResource vient retourner l’instance de ressource concurrente cible. Une simplification du résultat escompté est illustrée figure 4.10. Dans cet extrait, deux tâches HelloWorld et HelloWorld2 qui doivent être mises en concurrence sont décrites suivant leurs TPNs respectifs. Leurs routines ne sont pas représentées ici4.2. Processus de considération du comportement 93 ALGORITHME 4.20 – Principe d’intégration d’un modèle comportemental d’application : composition des éléments de comportement clonés(➤ressources concurrentes) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Notations : IR : l’ensemble des instances de routines {ariR|ariR.typeχ Routine ∈ MMp} ➤ IC : l’ensemble ordonné des instances de ressources concurrentes {ariC |ariC .typeχ ConcurrentResource ∈ MMp} début // Dupliquer la plate-forme et chaque application déployée ... // Cloner les prototypes comportementaux ... // Composer les routines d’exécution ... // Composer les points d’entrée ... // Composer les ressources concurrentes ➤ pour chaque instance de ressource concurrente ariC ∈ IC faire ➤ si getNextConcurrentResource(ariC )6= ∅ alors // Composer la ressource concurrente avec la prochaine listée ➤ ruleComposeInstances(ariC , getNextConcurrentResource(ariC )) FIGURE 4.10 – Intégration du comportement : composition de deux tâches OSEK/VDX en concurrence pour plus de clarté. Dans la norme OSEK/VDX, aucun service n’offre la possibilité de mettre une tâche en exécution. De fait, le processeur est décrit à travers le comportement d’une tâche OSEK/VDX (i.e., PROCESSOR_HelloWorld). En admettant alors que HelloWorld soit la première instance listée, l’assemblage est réalisé après localisation de l’élément annoté du rôle processor_HelloWorld2 au sein du TPN qui décrit HelloWorld2. Cette composition intègre aussi le mécanisme d’ordonnancement coopératif déjà men-94 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif tionné à la page 80. La mise en jeu de ce mécanisme est rendue possible grâce à la fusion des éléments READY_HelloWorld2. Pour parvenir à la localisation de ces éléments, la mise en correspondance des rôles homonymes activatedState_HelloWorld2 a été établie. Ainsi, la tâche HelloWorld2 est rendue plus prioritaire. Cette configuration met en exergue le problème que nous avons introduit au sujet du marquage des places fusionnées. Dans notre exemple, les places PROCESSOR_HelloWorld et PROCESSOR_HelloWorld2 sont toutes deux marquées d’un jeton. Dans ce cas précis, un seul jeton doit apparaître au moment de la fusion puisque cette place décrit le processeur. Nous devons donc bien déterminer un marquage générique afin d’éviter toute ambiguïté. Les ressources concurrentes peuvent directement interagir entre elles (e.g., activation de tâche, etc.), mais bien souvent elles interagissent aussi par le biais des ressources d’interaction (e.g., synchronisation à l’aide d’un évènement, message échangé au moyen d’une boîte aux lettres, etc.). Le comportement de ces ressources d’interaction a un rôle important dans la composition finale du modèle comportemental à générer. 4.2.8 Composition d’éléments : application sur les ressources d’interaction Cette phase complète le TPN formé précédemment lors de la mise en concurrence des ressources concurrentes. L’objectif ici est de composer chaque ressource d’interaction avec l’ensemble des ressources concurrentes assemblées précédemment. Comme pour les ressources concurrentes, les ressources d’interaction offrent des services pour qu’elles puissent être manipulées. L’assemblage de ces ressources d’interaction passe donc par ces service qui ont déjà été inclus dans les routines d’exécution. L’algorithme 4.21 termine le travail de composition en sélectionnant une à une chaque instance de ressource d’interaction dans une liste ordonnée II . Le principe reste le même qu’avec les ressources concurrentes, à ceci près que l’instance cible de composition est représentée cette fois par la dernière instance de ressource concurrente ariC. Cette dernière instance référence en effet l’ensemble des éléments clonés assemblés lors des précédentes compositions. Chaque instance d’interaction ariI listée dans l’ensemble II est ainsi composée à travers la règle ruleComposeInstances, comme instance source. La figure 4.11 offre un aperçu du résultat attendu après une telle composition. Elle s’appuie sur l’exemple de la ressource allouée dans OSEK/VDX pour bloquer l’ordonnanceur (cf. Composition parallèle avec ACSR et TROS, figure 2.7) et ainsi éviter toute préemption. Cette configuration impliquerait alors de considérer un mécanisme spécifique pour inhiber la préemption. Dans le cas présenté, nous nous abstrayons volontairement de ce mé- canisme afin de se concentrer uniquement sur la composition des ressources d’interaction. Les deux mêmes tâches que précédemment se partagent cette fois la ressource d’interaction Res_Scheduler. Chacune pointe sur une routine d’exécution. Dans la première routine, un service est appelé pour relâcher Res_Scheduler dans le but de rendre la tâche HelloWorld préemptable. Puis dans la seconde routine, un service est appelé à son tour pour acquérir Res_Scheduler dans le but d’inhiber HelloWorld2 de toute préemption. Les deux tâches qui ont précédemment été composées via le processeur sont une nouvelle fois reliées par la ressource d’interaction Res_Scheduler. Les éléments FREE_Res_Scheduler et BUSY_Res_Scheduler qui décrivent cette ressource sont fusionnés avec les éléments localisés grâce aux rôles homonymes countState_Res_Scheduler et discountState_Res_Scheduler.4.3. Synthèse 95 ALGORITHME 4.21 – Principe d’intégration d’un modèle comportemental d’application : composition des éléments de comportement clonés(➤ressources d’interaction) Métamodèle source : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Métamodèle cible : MMp : le métamodèle de plate-forme d’exécution (RTEPML) Notations : IR : l’ensemble des instances de routines {ariR|ariR.typeχ Routine ∈ MMp} IC : l’ensemble ordonné des instances de ressources concurrentes {ariC |ariC .typeχ ConcurrentResource ∈ MMp} ➤ II : l’ensemble ordonné des instances de ressources d’interaction {ariI |ariI .typeχ InteractionResource ∈ MMp} début // Dupliquer la plate-forme et chaque application déployée ... // Cloner les prototypes comportementaux ... // Composer les routines d’exécution ... // Composer les points d’entrée ... // Composer les ressources concurrentes pour chaque instance de ressource concurrente ariC ∈ IC faire si getNextConcurrentResource(ariC )6= ∅ alors // Composer la ressource concurrente avec la prochaine listée ruleComposeInstances(ariC , getNextConcurrentResource(ariC )) ➤ sinon // Poursuivre la composition avec la prochaine ressource d’interaction ➤ pour chaque instance de ressource d’interaction ariI ∈ II faire // Composer la ressource d’interaction avec l’ensemble ➤ ruleComposeInstances(ariI , ariC ) 4.3 Synthèse Une stratégie a été proposée dans ce chapitre pour considérer le comportement des plates-formes d’exécution logicielles après déploiement d’une application temps réel. Un processus a donc été avancé dans le but de générer un modèle global composé à la fois de l’application déployée et du comportement de la plate-forme considérée. Un certain nombre de règles de transformation ont aussi été définies de manière impérative dans l’optique de séquentialiser le processus de génération. Ces règles ont séparées en deux principaux axes : 1) le clonage des prototypes comportementaux associés aux ressources et aux services offerts par la plate-forme considérée pour les besoins de l’application déployée (i.e., suivant le nombre d’instances de ressources et d’appels de service) et 2) la composition des prototypes clonés pour former le modèle global du comportement de l’application déployée. Le premier axe est réparti en deux parties disjointes comme en témoigne la figure 4.12. Toutefois dans les deux cas, la transformation aboutit à la création d’éléments atomiques clonés issus de prototypes comportementaux. La divergence des deux orientations prises96 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif FIGURE 4.11 – intégration du comportement : composition avec une ressource d’intéraction OSEK/VDX aux travers des règles de clonage provient de la spécificité de certains mécanismes des plates-formes considérées. Cette orientation (partie droite de la figure) peut générer une multiplicité des prototypes clonés selon l’application. En réalité, deux autres axes complèteraient cette hiérarchie. Il s’agit des services qui sont supportés de la même façon que les ressources. La séquentialité des règles pour les services étant identique à celle des ressources, ces deux axes ne sont pas représentés sur cette figure. FIGURE 4.12 – Hiérarchie des règles de clonage mises à contribution dans le processus Le second axe apparaît sur la figure 4.13. Il aboutit au même point, celui de créer des éléments atomiques fusionnés issus de la composition des prototypes comportementaux clonés. Le chemin parcouru est néanmoins divisé en deux en raison de la nature des fragments de comportement à composer. D’un côté, les instances de routine d’exécution sont4.3. Synthèse 97 constituées au regard des services appelés depuis chacune d’entre elles. De l’autre côté, le modèle global est constitué au fur et à mesure en fonction des instances de routine, de ressource concurrente et de ressource d’interaction. FIGURE 4.13 – Hiérarchie des règles de composition mises à contribution dans le processus Ces règles ont été réalisées indépendamment de la plate-forme considérée, mais aussi indépendamment du langage de modélisation adopté pour la traduction des prototypes comportementaux. Elles s’appuient en effet sur les concepts de RTEPML et non sur ceux des TPNs. La notion de rôles que nous avons abordée dans la présentation de RTEPML permet cette transparence au moment de cloner et de composer. Toutefois, nous avons rencontré certaines dépendances vis-à-vis des TPNs au moment de développer ces règles. Le tableau 4.1 expose ces dépendances au travers des fonctions (ou helpers) de localisation et de traduction rencontrées tout au long du processus. Les dépendances au sein de RTEPML sont aussi caté- gorisées selon la structure, le comportement et l’application intégrée. Ces dernières restent cependant génériques quelque soit la plate-forme considérée. Les fonctions qui dépendent de l’expressivité du langage de modélisation du comportement comme les TPNs, s’articulent autour de deux points importants : – la mise en correspondance des éléments clonés à fusionner dans l’optique de localiser les points de connexion des fragments de comportement à composer. Même si la localisation est indépendante des TPNs grâce aux rôles de composition, la synchronisation des fragments de comportement en dépend néanmoins ; – la caractérisation des éléments clonés fusionnés afin d’éviter toute ambiguïté de composition. Cette caractérisation est aussi générique, mais la synchronisation évoquée à l’instant nécessite de préciser quelles informations sont à prendre en compte au moment de la fusion. De plus, les relations entre les places sous-jacentes aux éléments clonés en fusion et les autres éléments doivent être ajustées sur les places fusionnées. Devant de telles précisions, le chapitre suivant complète ce processus en apportant une formalisation de la composition en TPN.98 Chapitre 4. Composition du comportement de la plate-forme et de l’applicatif RTEPML TPN Structure Comportement Application Fonctions (ou helpers) getP ropertyRoles ✓ getAtomicElement ✓ getP roperty ✓ getP ropertyV alue ✓ ✓ getCompositionRoles ✓ getServiceRoles ✓ getService ✓ getBehavioralP rototypeService ✓ hasAssociatedInstance ✓ getM asterAssociatedInstance ✓ hasSpecif icMechanismRole ✓ getSpecif icMechanismRoles ✓ getConcernedInstances ✓ getCompositeElement ✓ getM atchCallElement ✓ ✓ ✓ getMergedN ame ✓ ✓ ✓ getMergedV alue ✓ ✓ ✓ getMergedRole ✓ ✓ ✓ setMergedAtomicElement ✓ ✓ ✓ getEntryP ointElementRole ✓ getM atchInstanceElement ✓ ✓ ✓ getNextConcurrentResource ✓ TABLE 4.1 – Fonctions mises à contribution et dépendances dans le processusFormalisation de la composition 5 Sommaire 5.1 Composition de TPNs basée sur des rôles . . . . . . . . . . . . . . . 101 5.1.1 Les Time Petri Nets avec rôles . . . . . . . . . . . . . . . . . . 101 5.1.2 Clonage de TPNs avec rôles . . . . . . . . . . . . . . . . . . . 101 5.1.3 Clonage spécifique de TPNs avec rôles . . . . . . . . . . . . . 102 5.1.4 Synchronisation de TPNs basée sur les rôles . . . . . . . . . . . 104 5.2 Composition appliquée au comportement de plate-forme . . . . . . 106 5.2.1 Composition des routines d’exécution . . . . . . . . . . . . . . 107 5.2.2 Composition des points d’entrée . . . . . . . . . . . . . . . . . 108 5.2.3 Composition des ressources concurrentes . . . . . . . . . . . . 109 5.2.4 Composition des ressources d’interactions . . . . . . . . . . . . 109 5.3 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 D ans ce chapitre, une formalisation de la composition qui vient d’être présentée est proposée. Cette contribution qui a déjà fait l’objet de publications [50][51] cherche à véri- fier la faisabilité d’une telle démarche de composition en TPN. Elle répond aussi à certaines adaptations de composition évoquées au moment de fusionner des éléments telles que les places. Ce chapitre s’organise en trois sections. La première section introduit les fondamentaux des opérations de clonage et de composition de TPNs basée sur la notion de rôle. La section suivante s’appuie sur ces opérateurs pour illustrer la composition d’un modèle comportemental en TPN d’une application déployée sur une plate-forme. Enfin, la dernière section donne une synthèse de la formalisation proposée.5.1. Composition de TPNs basée sur des rôles 101 5.1 Composition de TPNs basée sur des rôles Cette section donne une manière d’aborder la construction d’un modèle global d’une application déployée à partir de fragments comportementaux qui vont être interconnectés. Ces fragments représentent les prototypes comportementaux en TPN de la plate-forme ciblée, sur lesquels des rôles ont été projetés. Les prototypes subissent un clonage en fonction de l’application. Les clones ainsi obtenus sont synchronisés suivant les rôles attribués pour former le modèle global. 5.1.1 Les Time Petri Nets avec rôles Dans RTEPML, l’attribut role a été ajouté au concept d’élément de comportement dans le but d’annoter les éléments clonés d’un rôle en vue de la composition (cf. Identification de rôles de composition, page 56). Ensuite, nous avons convenu que dans le cadre d’une traduction des prototypes comportementaux en TPN, les éléments clonés qui sont amenés à être fusionnés au fil de la composition ne pouvaient être que des places (cf. Représentation du comportement d’une plate-forme, page 58). Ces hypothèses nous amènent à étendre la définition des TPNs avec la notion de rôles. Cette définition vient étendre celle déjà abordée dans le chapitre 3 (cf. Justification du choix du langage de modélisation formelle, page 53) pour la modélisation des TPNs avec arcs de lecture et d’inhibition. Définition 4 (RI_TPN avec rôles) Un RI_TPN avec des rôles est un tuple N = hTRI, R, λi où : – TRI est un RI_TPN, – R est un ensemble fini de rôles, – λ : P → R ∪ {⊥} est la fonction d’assignation d’un rôle à une place avec ⊥ précisant qu’aucun rôle n’est assigné à une place. Ci-après, quelques notations et quelques propriétés de cette fonction sont énumérées : 1. Pλ = {p ∈ P | λ(p) 6= ⊥} est l’ensemble des places avec un rôle ; 2. λ\Pλ : Pλ → R est une fonction injective d’assignation d’un rôle ; 3. λ −1 : R ∪ {⊥} → P ∪ {∅} tel que    ∀r ∈ R, λ −1 (r) = ( p si λ(p) = r ∅ sinon λ −1 (⊥) = ∅ Notons que la sémantique opérationnelle d’un RI_TPN avec rôles N = hTRI, R, λi est la même que celle d’un RI_TPN. En effet, l’utilisation de rôles au sein de la définition d’un RI_TPN n’impacte pas sur sa sémantique. 5.1.2 Clonage de TPNs avec rôles Dans le chapitre précédent, le clonage des éléments de comportement (cf. Clonage d’éléments, page 67) est présenté comme une étape intermédiaire du processus de consid- ération du comportement. Une même instance de prototype comportemental peut en effet être dupliquée plusieurs fois selon le nombre d’instances de ressources et d’appels de services présents sur le modèle de l’application déployée. En conséquence, un opérateur de clonage a été défini formellement pour les fragments comportementaux en RI_TPN avec rôles, conformément à la caractérisation des éléments clonés donnée à travers les algorithmes de clonage.102 Chapitre 5. Formalisation de la composition Seuls les éléments de comportement atomiques tels que les places, les transitions, mais aussi les rôles annotés sont identifiés pour cet opérateur 1 . La caractérisation s’appuie principalement sur le nom des instances de ressources auxquelles les éléments de comportement clonés sont liés. Toutefois, les éléments de comportement clonés qui sont liés aux appels de service doivent être caractérisés selon le nom des instances référencées pour ces appels. Cette double caractérisation est à prendre en considération si la nature du RI_TPN à composer représente un service appelé. Dans ce dernier cas, le nommage des rôles est appliqué distinctement de celui des places et des transitions. Soit N = hP, T, Pre, Post, m0, Is, Read, Inh, R, λi, un RI_TPN avec rôles qui représente une instance de prototype comportemental (de ressource ou de service) à cloner. Les arguments suivants root et ref renseignent respectivement : – le suffixe retenu pour nommer les places et les transitions suivant l’identité de l’instance de ressource ou de l’appel de service à l’origine du clonage (cf. Revenir au clonage d’éléments pour avoir connaissance de ce suffixe selon la nature du prototype comportemental) ; – le suffixe retenu pour nommer les rôles suivant l’identité d’une instance de ressource référencée dans le cas où c’est un appel de service qui est à l’origine du clonage. Si c’est une instance de ressource qui est à l’origine du clonage, alors cette instance sera considérée comme l’instance de ressource référencée. La fonction de nommage ⇁ est une fonction bijective de Set vers Set′ où Set ∈ {P, T, R}. Définition 5 (Clonage de RI_TPN avec rôles) Le clonage d’un RI_TPN N avec des rôles est noté par Nclone = Clone(N , root, ref) = hProot, Troot, Preroot, Postroot, m0−root, Is−root, Readroot, Inhroot, Rref , λrooti. Sa définition est la suivante : Nclone = Clone(N , root, ref) = N Proot = {proot tel que ∀p ∈ P et p ⇁ proot}, Troot = {troot tel que ∀t ∈ T et t ⇁ troot}, Rref = {rref tel que ∀r ∈ R et r ⇁ rref }, ∀p ∈ P, ∀t ∈ T, ∀r ∈ R, tel que p ⇁ proot, t ⇁ troot, et r ⇁ rref nous avons : Preroot(proot, troot) = Pre(p, t), Postroot(proot, troot) = Post(p, t), Readroot(p, t) = Readroot(proot, troot), Inhroot(p, t) = Inhroot(proot, troot), λroot(p) = r ssi λroot(proot) = rref λroot(p) = ⊥ ssi λroot(proot) = ⊥ 5.1.3 Clonage spécifique de TPNs avec rôles Nous avons soulevé précédemment le besoin de décrire partiellement certains mécanismes spécifiques rencontrés sur les plates-formes d’exécution logicielles. Un mécanisme peut entraîner un clonage spécifique d’un fragment comportemental en RI_TPN selon un certain nombre d’instances de ressources concernées (cf. Clonage des mécanismes spéci- fiques, page 80). Du fait de la spécificité de chaque mécanisme, une formalisation est nécessaire et doit être appliquée au cas par cas. Évidemment, nous ne verrons pas l’ensemble de 1. La caractérisation qui va suivre ne concerne que le nommage d’éléments clonés. Pour cette raison, les autres éléments de comportement atomiques tels que les arcs, le marquage des places, etc., ne sont pas identifiés ici car leur nommage n’impactera pas sur la composition.5.1. Composition de TPNs basée sur des rôles 103 ces mécanismes dans ce chapitre. Pour cette raison, nous nous sommes basés sur un exemple simple de mécanisme rencontré sur toutes les plates-formes. Le mécanisme proposé est celui de l’ordonnancement coopératif basé sur des priorités fixes. Ce mécanisme est rencontré dans les applications temps réel au moment où des ressources concurrentes telles que des tâches ordonnançables deviennent éligibles en attente du processeur. Dans ce contexte, les tâches de priorités inférieures doivent être inhibées par celles de priorités supérieures. L’ordonnancement coopératif intervient en partie à travers le mécanisme de préemption. Néanmoins, ce dernier étant plus conséquent à mettre en application avec les TPNs, il ne sera pas formalisé ici. La préemption implique en effet de prévoir à la fois de stopper l’exécution des tâches de priorités inférieures vis-à-vis des tâches éligibles de priorités supérieures et d’inhiber les services appelés depuis les routines d’exécution pointées par les tâches préemptées. Un cas d’ordonnancement coopératif a été illustré dans le chapitre précédent sur la figure 4.7. Le RI_TPN NHelloW orld = Clone(N , root, ref) représenté sur cette figure a dans un premier temps été obtenu suite au clonage du prototype comportemental TaskBehavior avec ref = root = HelloW orld. Puis, le RI_TPN qui décrit l’action d’inhibition InhibitorAction a quant à lui été cloné deux fois puisque les deux tâches HelloWorld2 et HelloWorld3 sont de priorités supérieures. Cette illustration nous montre que des arcs d’inhibitions ont dû être connectés à la transition qui permet de passer de l’état READY_HelloWorld à l’état RUNNING_HelloWorld, mais aussi qu’un ensemble de places ont été clonées spécifiquement en fonction des tâches de priorités supérieures. Formellement, ce cas particulier nous amène à définir un opérateur adapté pour étendre le clonage d’un prototype comportemental de ressource concurrente traduit en RI_TPN avec rôles, dans un contexte d’ordonnancement coopératif. Soit Nclone = hProot, Troot, . . . , λrooti un RI_TPN avec rôles qui a été préalablement cloné comme vu précédemment, et qui représente une instance de ressource concurrente. N cpsch clone = hP cpsch root , Tcpsch root , . . . , λcpsch root i représente l’extension apportée à Nclone selon un ensemble de n instances de ressources concurrentes concernées par ce mécanisme d’ordonnancement coopératif. Cet ensemble est décrit par INS = {ins1, ins2, . . . , insn} et représente des instances avec des priorités supérieures. Définition 6 (Clonage spécifique de RI_TPN avec rôles) Ordonnancement coopératif de ressources concurrentes : L’extension de Nclone en concurrence avec n instances dans un contexte d’ordonnancement coopératif est noté par : N cpsch clone = CoopSched(Nclone, INS) avec ∀t ∈ Troot, ∃Pre(λ −1 (activatedStateref ), t) ∈ Preroot et ∃Post(λ −1 (resumedStateref ), t) ∈ Postroot Formellement, cette définition donne : – R cpsch ref = Rref ∪ RINS avec RINS = S ∀i∈[1,n] {rinsi } ; – P cpsch root = Proot ∪ PINS avec PINS = S ∀i∈[1,n] {pinsi } ; – T cpsch root = Troot ; – λ cpsch root : P cpsch root → R cpsch ref est définie par : – ∀p ∈ P cpsch root \ PINS, λ cpsch root (p) = λroot(p) – ∀p ∈ PINS et ∀i ∈ [1, n], λ cpsch root (p) = rinsi avec rinsi ∈ RINS – Precpsch root : P cpsch root × T cpsch root → N est définie ∀p ∈ P cpsch root et ∀t ∈ T cpsch root par Precpsch root (p, t) = Preroot(p, t);104 Chapitre 5. Formalisation de la composition – Postcpsch root : P cpsch root × T cpsch root → N est définie ∀p ∈ P cpsch root et ∀t ∈ T cpsch root par Postcpsch root (p, t) = Postroot(p, t); – m0 cpsch root : P cpsch root → N est défini ∀p ∈ P cpsch root par m0 cpsch root ( (p) = m0root(p) si p ∈ P cpsch root \ PINS m0INS(p) si p ∈ PINS avec m0INS défini par m0INS : PINS → N ; – Is cpsch root : T cpsch root → I est défini ∀t ∈ T cpsch root par Is cpsch root (t) = Isroot(t); – Readcpsch root : P cpsch root × T cpsch root → N est définie ∀p ∈ P cpsch root et ∀t ∈ T cpsch root par Readcpsch root (p, t) = Readroot(p, t); – Inhcpsch root : P cpsch root × T cpsch root → N est définie ∀p ∈ P cpsch root et ∀t ∈ T cpsch root par Inhcpsch root (p, t) =    Inhroot(p, t) si p ∈ P cpsch root \ PINS 1 si    p ∈ PINS t ∈ T cpsch root , ∃Pre(λ −1 (activatedStateref ), t) ∈ Preroot et ∃Post(λ −1 (resumedStateref ), t) ∈ Postroot Cette formalisation soulève un problème d’adaptabilité du processus de considération du comportement. La connexion des arcs d’inhibition sur la transition qui permet de rendre la ressource concurrente exécutable est traduite par la formalisation de la fonction d’inhibition Inhcpsch root . À travers cette définition formelle, nous avons admis que tous les arcs d’inhibition clonés issus de ce mécanisme d’ordonnancement coopératif devaient être connectés sur cette même transition (i.e., celle entourée par les places annotées des rôles activatedStateref et resumedStateref ). Dans la réalité ce sera le cas, mais imaginons une toute autre définition comportementale de ce mécanisme dans laquelle d’autres arcs entreraient en jeu ; il nous serait alors impossible de localiser les arcs qui doivent être connectés. Des rôles n’ont en effet pas été identifiés pour ce genre de situation qui présente un cas particulier de représentation dépendant de l’expressivité des TPNs. 5.1.4 Synchronisation de TPNs basée sur les rôles Afin de synchroniser les fragments clonés en RI_TPN, nous devons clarifier la définition d’une composition de RI_TPN qui sera basée sur les rôles annotés sur les places. Soit un ensemble N1, . . . , Nn de n RI_TPNs Ni = hPi , Ti , Prei , Posti , m0i , Isi , Readi , Inhi , Ri , λii avec rôles que nous cherchons à composer tel que ∀k 6= k ′ ∈ [1, n] =⇒ Tk ∩ Tk ′ = ∅ et Pk ∩ Pk ′ = ∅. Le résultat de la composition N = hP, T, Pre, Post, m0, Is, R, λi des précédents RI_TPNs avec rôles sera alors précisé par N = N1||N2|| . . . ||Nn. Pour compléter cette composition, nous définissons une fonction de fusion de places dont les rôles assignés et impliqués dans la composition seront pris en compte en paramètres. La fonction de fusion ֒→ est une fonction partielle de (R1 ∪ {•}) × (R2 ∪ {•}) × · · · × (Rn ∪ {•}) → P × R dans laquelle • représente un symbole particulier visant à préciser qu’un RI_TPN n’est pas concerné par une fusion particulière. Nous étendons alors la définition de la fonction d’assignation inverse avec λ −1 (•) = ∅. La composition de n RI_TPNs avec m fusions est notée par  N1|| . . . ||Nn  (r 1 1, . . . , r1 n) ֒→ (p 1 , r1 ) . . . (r m 1 , . . . , rm n ) ֒→ (p m, rm)5.1. Composition de TPNs basée sur des rôles 105 avec ∀i ∈ [1, n], ∀j ∈ [1, m] , r j i ∈ Ri , r j ∈ R et p j ∈ P, et ∀k ∈ [1, m], k 6= j ⇒ r k i 6= r j i Nous utiliserons par la suite les notations suivantes : – Soit P merged i ⊆ Pi l’ensemble des places du réseau Ni fusionnées par la composition. Formellement, P merged i = S ∀j∈[1,m] {λ −1 i (r j i )} – Soit P ֒→ ⊆ P l’ensemble des places du réseau N obtenues par la fusion. Formellement, P ֒→ = S ∀j∈[1,m] {p j} Définition 7 (Composition de RI_TPN avec rôles) La composition de n RI_TPNs Ni avec la fonction de fusion ֒→ notée : N =  N1|| . . . ||Nn  (r 1 1, . . . , r1 n) ֒→ (p 1 , r1 ) . . . (r m 1 , . . . , rm n ) ֒→ (p m, rm) est définie par : – R =  S ∀i∈[1,n] Ri \ S ∀j∈[1,m] {r j i }   ∪  S ∀j∈[1,m]  r j  ; – P =  S ∀i∈[1,n] Pi \ P merged i  ∪ P ֒→ ; – T = S ∀i∈[1,n] Ti ; – λ : P → R est définie par : – ∀p ∈ P \ P ֒→ signifiant que ∃i tel que p ∈ Pi alors λ(p) = λi(p) – ∀p j ∈ P ֒→, signifiant que p est le résultat d’une fusion, λ(p j ) = r j – Pre : P × T → N est définie ∀p ∈ P et ∀t ∈ Ti ⊆ T par Pre(p, t) =    Prei(p, t) si p ∈ P \ P ֒→ et p ∈ Pi Prei(p ′ , t), si    p ∈ P ֒→ et p ′ ∈ Pi (. . . , rk i , . . .) ֒→ (p, λ(p)) λi(p ′ ) = r k i 0 sinon. – Post : P × T → N est définie ∀p ∈ P et ∀t ∈ Ti ⊆ T par Post(p, t) =    Posti(p, t) si p ∈ P \ P ֒→ et p ∈ Pi Posti(p ′ , t), si    p ∈ P ֒→ et p ′ ∈ Pi (. . . , rk i , . . .) ֒→ (p, λ(p)) λi(p ′ ) = r k i 0 sinon. – m0 : P → N est définie ∀p ∈ P par : m0(p) =    m0i (p) si p ∈ P \ P ֒→ et p ∈ Pi Pn i=1 m0i λ −1 (r k i )  si ( p ∈ P ֒→ (r k 1 , . . . , rk n ) ֒→ (p, λ(p)) – Is : T → I est défini ∀t ∈ T par : Is(t) = Isi (t) if t ∈ Ti ; – Read : P × T → N est définie ∀p ∈ P et ∀t ∈ Ti ⊆ T comme Pre(p, t); – Inh : P × T → N est définie ∀p ∈ P et ∀t ∈ Ti ⊆ T comme Pre(p, t) À titre d’exemple, soit N =  N1||N2||N3  (r1, r2, •) ֒→ (p, r) la composition parallèle de 3 TPNs, i.e., N1, N2 et N3, où la place p1 ∈ P1 tel que λ1(p1) = r1 et la place106 Chapitre 5. Formalisation de la composition p2 ∈ P2 tel que λ2(p2) = r2 sont fusionnées. Le nom de la place obtenue par la fusion dans N est p ∈ P et son rôle est λ(p) = r ∈ R. Propriété 1 (Associativité) La composition de RI_TPNs avec rôles est associative suivant : N1||N2||N3 ! (r1, r2, r3) ֒→ (p, r) =  N1||N2  (r1,r2)֒→(p12,r12) ||N3 ! (r12,r3)֒→(p,r) = N1|| N2||N3  (r2,r3)֒→(p23,r23) ! (r1,r23)֒→(p,r) Propriété 2 (Commutativité) La composition de RI_TPNs avec rôles est aussi commutative : N1||N2 ! (r 1 1, r1 2) ֒→ (p 1 , r1 ) . . . (r k 1 , rk 2 ) ֒→ (p k , rk ) = N2||N1 ! (r 1 2, r1 1) ֒→ (p 1 , r1 ) . . . (r k 2 , rk 1 ) ֒→ (p k , rk ) 5.2 Composition appliquée au comportement de plate-forme La composition de RI_TPNs avec rôles ayant été formalisée, cette section expose de manière générique la construction d’un modèle comportemental d’application déployée. Afin de couvrir l’ensemble des règles de composition décrites dans le chapitre précédent, cette construction s’appuie sur une illustration mettant en application deux ressources concurrentes, périodiques et de priorités différentes, pointant chacune sur une routine d’exé- cution. Les ressources interagissent entre elles par le bais d’une ressource d’exclusion mutuelle. Le mécanisme d’ordonnancement retenu pour cette application est coopératif. Les ressources concurrentes ne sont donc pas préemptables. Nous avons dû faire un choix de plate-forme pour l’exécution de l’application. Comme déjà abordé, l’acquisition d’une ressource d’exclusion mutuelle non disponible nécessite de réordonnancer les ressources concurrentes. Ce mécanisme n’ayant pas été présenté, nous avons décidé de nous en abstraire. La plate-forme OSEK/VDX qui nous a servi de support de présentation tout au long de ce mémoire n’utilise pas ce mécanisme. Toutefois, le partage de ressource d’exclusion mutuelle avec cette norme implique le mécanisme de priorité plafond PCP pour éviter les inversions de priorités et les deadlocks [66]. Ce mécanisme est plus compliqué à mettre en œuvre et exige une formalisation particulière puisque la gestion des priorités est dynamique. En conséquence, nous avons choisi une plate-forme quelconque qui, sur le principe se comporte comme une pseudo norme OSEK/VDX. Elle ne réordonnance pas les ressources concurrentes lorsque la ressource d’exclusion mutuelle n’est pas disponible. La construction reprend les fragments comportementaux clonés en RI_TPN pour les assembler. À chaque étape de composition, les fragments concernés sont synchronisés avec l’opérateur de composition précédemment défini. Pour chaque opération, les rôles assignés sur les places fusionnables sont partiellement mis en correspondance en paramètres des5.2. Composition appliquée au comportement de plate-forme 107 fonctions de fusion. Pour des raisons de clarté et conformément aux règles de composition, la construction est scindée ici en quatre étapes de composition, à partir des équations (5.1) à (5.4). La première équation (5.1) décrit la composition d’une routine d’exécution (NR). L’équation (5.2) suivante décrit la composition entre une ressource concurrente et son point d’entrée (NEP ). Puis, l’équation (5.3) décrit la composition de l’ensemble des ressources concurrentes (NCR). Enfin, l’équation (5.4) finalise la composition en intégrant les ressources d’interactions (NIR). La figure 5.1 illustre la construction au regard de l’application qui a été introduite. Sur cette illustration, les fragments comportementaux en RI_TPN préalablement clonés et prêts pour la composition sont représentés dans des encadrés en pointillés. Les ressources concurrentes sont représentées par deux tâches ordonnançables : Task1 et Task2, Task2 étant la plus prioritaire. Ces tâches sont respectivement cadencées par deux alarmes : Alarm1 et Alarm2 pour assurer leurs périodicités. Elles interagissent au moyen d’une ressource d’exclusion mutuelle représentée par Mutex. Chaque tâche pointe sur une routine d’exécution dans laquelle trois services sont appelés dans l’ordre suivant : 1. une acquisition de Mutex : getφ(Mutex) avec φ ∈ [1, 2] 2. un relâchement de Mutex : releaseφ(Mutex) 3. une terminaison de la tâche exécutée : terminateφ(Taskφ) Enfin, comme nous nous trouvons dans un contexte d’application monoprocesseur, le processeur Proc apparaît aussi dans ce modèle, comme une ressource d’interaction. Il permet ainsi de mettre en concurrence les tâches avant leurs mises en exécution. Les places fusionnables sont représentées en double cercle et celles prêtes à être fusionnées sont reliées par des arcs crochets (pour symboliser la fonction de fusion) en pointillés, en gras et repérés d’une lettre correspondant à l’étape de composition. Les rôles restent indiqués en haut à droite des places. 5.2.1 Composition des routines d’exécution Le principe de composition qui suit est applicable à l’ensemble des routines d’exécution et généralise formellement la composition des services appelés. Il répond au besoin soulevé dans l’algorithme 4.16 du chapitre précédent qui consistait à mettre en correspondance les rôles de composition utiles à la localisation des places fusionnables. Soit une séquence de n services appelés depuis une même routine d’exécution : {NS1 , NS2 , . . . , NSn} tels que ∀i ∈ [1, n], NSi = Clone(NS, Si , ref_Si) avec NS l’instance du prototype comportemental en RI_TPN du service à cloner, Si le suffixe de nommage des places et des transitions du RI_TPN cloné correspondant au service appelé et ref_Si le suffixe de nommage des rôles du RI_TPN cloné correspondant à l’instance de ressource référencée par l’appel du service. La construction d’une routine implique alors n − 1 compositions, chacune pouvant avoir mj fusions de places avec j ∈ [1, n − 1]. Le RI_TPN avec rôles résultant NR est donné par l’équation (5.1) en précisant les rôles concernés à chaque opération de composition. Illustration 1 (Voir figure 5.1) ∀φ ∈ [1, 2], en appliquant l’équation 5.1 aux ensembles {Ngetφ(Mutex) , Nreleaseφ(Mutex) , Nterminateφ(T askφ) }, nous obtenons les RI_TPNs NT askφBody qui représentent les routines d’exécution destinées aux tâches Task1 et Task2. Les places qui sont fusionnées lors des deux opérations de composition sont reliées par les arcs crochets repérés par l’indice (a).108 Chapitre 5. Formalisation de la composition NR =  NS1 ||NS2  (endref_S1 , startref_S2 ) ֒→ (SS1→S2 , ⊥) (r 2 S1 , r2 S2 ) ֒→ (p 2 S2 , r2 S2 ) . . . (r m1 S1 , r m1 S2 ) ֒→ (p m1 S2 , r m1 S2 ) ||NS3  (endref_S2 , startref_S3 ) ֒→ (SS1S2→S3 , ⊥) (r 2 S1S2 , r2 S3 ) ֒→ (p 2 S3 , r2 S3 ) . . . (r m2 S1S2 , r m2 S3 ) ֒→ (p m2 S3 , r m2 S3 ) . . . ||NSn ! (endref_Sn−1 , startref_Sn ) ֒→ (SS1S2...Sn−1→Sn , ⊥) (r 2 S1S2...Sn−1 , r2 Sn ) ֒→ (p 2 Sn , r2 Sn ) . . . (r mn−1 S1S2...Sn−1 , r mn−1 Sn ) ֒→ (p mn−1 Sn , r mn−1 Sn ) (5.1) avec ∀k ∈ [1, mj ] et n ≥ 2 si k ≥ 2 alors r k S1...Sj = r k Sj+1 NEP =  NCτ ||NR  (startCτ , startref_S1 ) ֒→ (S, ⊥) (endCτ , endref_Sn ) ֒→ (E, ⊥) (r 3 Cτ , r3 R) ֒→ (p 3 Cτ , r3 R) . . . (rmCτ , rmR ) ֒→ (pmCτ , rmR ) (5.2) avec ∀k ∈ [1, m] si k ≥ 3 alors r k Cτ = r k R NCR =  NEP1 ||NEP2  (processorEP 1 , processorEP 2 ) ֒→ (PEP 1→EP 2 , processorP roc) (r 2 EP 1 , r2 EP 2 ) ֒→ (p 2 EP 2 , r2 EP 2 ) . . . (r m1 EP 1 , r m1 EP 2 ) ֒→ (p m1 EP 2 , r m1 EP 2 ) . . . ||NEPqC  (processorP roc, processorEP qC ) ֒→ (PEP 1...EP qC−1→EP qC , processorP roc) (r 2 EP 1...EP qC−1 , r2 EP qC ) ֒→ (p 2 EP qC , r2 EP qC ) . . . (r mqC−1 EP 1...EP qC−1 , r mqC−1 EP qC ) ֒→ (p mqC−1 EP qC , r mqC−1 EP qC ) (5.3) avec ∀kC ∈ [1, mjC ] et qC ≥ 2 si kC ≥ 2 alors r kC EP1...EPjC = r kC EPjC+1 NIR =  NCR||NI1  (r 1 P , r1 I1 ) ֒→ (p 1 I1 , r1 I1 ) . . . (r m1 P , r m1 I1 ) ֒→ (p m1 I1 , r m1 I1 ) . . . ||NIqI  (r 1 P I1...IqI−1 , r1 IqI ) ֒→ (p 1 IqI , r1 IqI ) . . . (r mqI P I1...IqI−1 , r mqI IqI ) ֒→ (p mqI IqI , r mqI IqI ) (5.4) avec ∀kI ∈ [1, mjI ] et qI ≥ 1, r kI P IjI −1 = r kI IjI 5.2.2 Composition des points d’entrée Le principe de composition suivant s’applique à l’ensemble des ressources concurrentes pointant sur une routine d’exécution. Il établit cette fois les rôles qui doivent être mis en correspondance entre les instances de ressources et leurs points d’entrée (voir algorithme 4.19 du chapitre précédent). Soit une routine NR préalablement composée et pointée par une ressource concurrente décrite par : NCτ = Clone(NC, Cτ , Cτ ) avec NC l’instance du prototype comportemental en RI_TPN de la ressource concurrente à cloner et Cτ le suffixe de nommage des places, des transitions et des rôles du RI_TPN cloné correspondant à l’instance de la ressource concurrente. La construction d’une ressource concurrente avec son point d’entrée implique alors 1 seule composition pouvant avoir m fusions de places. Le RI_TPN avec rôles résultant NEP est donné par l’équation (5.2) en précisant les rôles concernés à chaque opération de composition. Nous admettons ici que les éventuelles extensions de NCτ dues au clonage de mécanismes spécifiques aient déjà été appliquées dans cette équation.5.2. Composition appliquée au comportement de plate-forme 109 Illustration 2 (Voir figure 5.1) ∀φ ∈ [1, 2], en appliquant l’équation 5.2 aux ensembles {NT askφ, NT askφBody}, nous obtenons les RI_TPNs NT askφ_withBody qui représentent les tâches Task1 et Task2 composées de leurs corps exécutifs. Les places qui sont fusionnées lors des deux opérations de composition sont reliées par les arcs crochets repérés par l’indice (b). Avant de composer, du fait de sa priorité inférieure, NT ask1 a été étendue en appliquant l’opérateur de clonage spécifique à l’ordonnancement coopératif tel que CoopSched(NT ask1, {T ask2}). 5.2.3 Composition des ressources concurrentes Les ressources concurrentes étant composées de leurs routines d’exécution, elles peuvent maintenant être composées entre elles. La principale raison évoquée pour cette étape est la mise en concurrence des ressources vis-à-vis du processeur. Mais elle permet aussi de composer les ressources en fonction des mécanismes spécifiques (e.g., Task1 inhibée par Task2 pour l’ordonnancement coopératif) et des associations issues de prototypes de conception (i.e., Task1 cadencée périodiquement par Alarm1). Soit un ensemble constitué de qC ressources concurrentes préalablement composées avec leurs corps exécutifs et décrites ∀iC ∈ [1, qC] par : NEPiC . La construction de l’ensemble des ressources concurrentes implique alors qC −1 compositions, chacune pouvant avoir mjC fusions de places avec jC ∈ [1, qC−1]. Le RI_TPN avec rôles résultant NCR est donné par l’équation (5.3) en précisant les rôles concernés à chaque opération de composition. Illustration 3 (Voir figure 5.1) ∀φ ∈ [1, 2], en appliquant l’équation 5.3 à l’ensemble {NT askφ_withBody, NAlarmφ}, nous obtenons le RI_TPN NDeployedApplication qui représente l’application déployée avec l’ensemble des ressources concurrentes sans les ressources d’interactions. Les places qui sont fusionnées lors de cette opération de composition sont reliées par les arcs crochets repérés par l’indice (c). 5.2.4 Composition des ressources d’interactions Les ressources d’interactions représentent la dernière étape de composition. Dans une composition en RI_TPN, les ressources d’interactions viennent finalement compléter la composition des ressources concurrentes. Le travail avait déjà été amorcé dans la composition des routines d’exécution puisque les ressources d’interaction concernées par l’application sont référencées par les appels de service. Soit un ensemble constitué de qI ressources d’interactions décrites ∀iI ∈ [1, qI ] par : NIiI = Clone(NI , IiI , IiI ) avec NI l’instance du prototype comportemental en RI_TPN de la ressource d’interaction à cloner, IiI le suffixe de nommage des places, des transitions et des rôles du RI_TPN cloné correspondant aux instances de ressource d’interactions. La construction de l’ensemble des ressources d’interactions avec l’ensemble des ressources concurrentes NCR préalablement composé implique alors qI compositions, chacune pouvant avoir mjI fusions de places avec jI ∈ [1, qI ]. Le RI_TPN avec rôles résultant NIR est donné par l’équation (5.4) en précisant les rôles concernés à chaque opération de composition. Illustration 4 (Voir figure 5.1) En appliquant l’équation 5.4 à l’ensemble {NDeployedApplication, NMutex, NP roc}, nous obtenons le RI_TPN NDeployedApplication qui représente l’application globale déployée et complétée avec les ressources d’interactions. Les places qui sont fusionnées lors de cette opération de composition sont reliées par les arcs crochets repérés par l’indice (d).110 Chapitre 5. Formalisation de la composition ENABLE Alarm1 enable Task1 LAPSE Alarm1 [inc;inc ] increment Alarm1 [period;period ] cycle Alarm1 ACTIVATION Alarm1 activation Task1 ACTIVATION Task1 activation Task1 SUSPENDED Task1 terminatedState Task1 [0;0 ] resume Task1 READY Task1 activatedState Task1 READY Task2 activatedState Task2 activate Task1 [0;0 ] PROCESSOR Task1 processor Task1 resumedState Task1 RUNNING Task1 start Task1 START Task1 execute Task1 [0;0 ] end Task1 END Task1 NAlarm1 NTask1 NTask1 withBody ENABLE Alarm2 enable Task2 LAPSE Alarm2 [inc;inc ] increment Alarm2 [period;period ] cycle Alarm2 ACTIVATION Alarm2 activation Task2 ACTIVATION Task2 activation Task2 SUSPENDED Task2 terminatedState Task2 [0;0 ] resume Task2 READY Task2 activatedState Task2 [0;0 ] activate Task2 PROCESSOR Task2 processor Task2 resumedState Task2 RUNNING Task2 start Task2 START Task2 [0;0 ] execute Task2 end Task2 END Task2 NAlarm2 NTask2 NTask2 withBody end Mutex END get1(Mutex) countState Mutex FREE get1(Mutex) discountState Mutex BUSY get1(Mutex) start Mutex START get1(Mutex) [0;0 ] get get1(Mutex) [0;0 ] getBypass get1(Mutex) Nget1(Mutex) end Mutex END get2(Mutex) countState Mutex FREE get2(Mutex) discountState Mutex BUSY get2(Mutex) start Mutex START get2(Mutex) [0;0 ] get get2(Mutex) [0;0 ] getBypass get2(Mutex) Nget2(Mutex) end Mutex END release1(Mutex) countState Mutex FREE release1(Mutex) discountState Mutex BUSY release1(Mutex) start Mutex START release1(Mutex) [0;0 ] release release1(Mutex) [0;0 ] releaseBypass release1(Mutex) Nrelease1(Mutex) end Mutex END release2(Mutex) countState Mutex FREE release2(Mutex) discountState Mutex BUSY release2(Mutex) start Mutex START release2(Mutex) [0;0 ] release release2(Mutex) [0;0 ] releaseBypass release2(Mutex) Nrelease2(Mutex) PROCESSOR terminate1(Task1) processor Task1 end Task1 END terminate1(Task1) resumedState Task1 RUNNING terminate1(Task1) terminatedState Task1 SUSPENDED terminate1(Task1) start Task1 START terminate1(Task1) [0;0 ] terminate terminate1(Task1) Nterminate1(Task1) PROCESSOR terminate2(Task2) processor Task2 end Task2 END terminate2(Task2) resumedState Task2 RUNNING terminate2(Task2) terminatedState Task2 SUSPENDED terminate2(Task2) start Task2 START terminate2(Task2) [0;0 ] terminate terminate2(Task2) Nterminate2(Task2) NTask1Body NTask2Body PROCESSOR Proc processor Proc NProc countState Mutex FREE Mutex discountState Mutex BUSY Mutex NMutex NDeployedApplication (a) (a) (a) (a) (a) (a) (a) (a) (b) (b) (b) (b) (b) (b) (b) (b) (b)(b) (c) (c) (c) (c) (c) (c) (d) (d) (d) FIGURE 5.1 – Modèle d’application déployée avec partage de ressource d’exclusion mutuelle composé en RI_TPN 5.3 Synthèse La formalisation qui vient d’être présentée avait deux objectifs : 1) s’assurer du bon enchaînement des règles du processus de considération du comportement et 2) compléter les règles de composition qui avaient révélé un besoin de s’adapter au langage de traduction du comportement. De manière à décrire formellement la composition en RI_TPN, les opéra-5.3. Synthèse 111 teurs de clonage et de composition ont été définis dans la première section. Puis, dans la seconde section, ces opérateurs ont été utilisés pour formaliser la composition de modèles de SETRs (i.e., application avec le comportement de la plate-forme visée pour le déploiement) en RI_TPN. La formalisation a démontré que les règles étaient en adéquation avec la composition en RI_TPN. L’enchaînement a été respecté et les informations nécessaires à l’adaptation des règles avec les RI_TPN ont pu être identifiées de manière générique. Les rôles servent en effet à mettre en correspondance et à localiser les places à fusionner. Les fonctions de fusion qui apparaissent sur chaque opération de composition renseignent ces informations. La définition formelle de l’opérateur de composition a aussi permis de fixer la caractérisation des places fusionnées vis-à-vis des relations d’arcs entrants et d’arcs sortants. Elle vient aussi préciser le nouveau marquage qui résulte de la somme des marquages source et cible. Cette définition de nouveau marquage oblige cependant à bien définir les marquages initiaux des RI_TPNs à assembler. Le marquage doit être défini à un seul endroit pour éviter toute accumulation de jetons au fil de la composition. Nous avons par conséquent adopté l’idée de ne marquer que les prototypes comportementaux des ressources, plutôt que ceux des services. À travers l’application déployée, ces derniers peuvent effectivement être appelés conjointement pour une même instance de ressource référencée. À l’instar du mutex dans notre illustration, le marquage est porté sur le RI_TPN NMutex et non sur les RI_TPNs Ngetφ(Mutex) et Nreleaseφ(Mutex) qui décrivent les services appelés pour acquérir et relâcher le mutex. Enfin un dernier point est à souligner. Comme abordé dans ce chapitre, le niveau d’expressivité des TPNs est si exhaustif qu’il peut limiter le clonage générique des mécanismes spécifiques. À l’image de l’ordonnancement coopératif, l’opérateur qui a été défini dépend fortement de la représentation du RI_TPN à cloner spécifiquement. L’assignation de rôles étant réservée aux places, la connexion d’éléments autres que les places peut se révéler ambigüe.Validation expérimentale 6 Sommaire 6.1 Prototype . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 6.1.1 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . 115 6.1.2 Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116 6.2 Modélisation d’une autre plate-forme . . . . . . . . . . . . . . . . . 116 6.3 Application sur un exemple . . . . . . . . . . . . . . . . . . . . . . . 119 6.3.1 Description du cas d’étude . . . . . . . . . . . . . . . . . . . . 119 6.3.2 Composition en TPN . . . . . . . . . . . . . . . . . . . . . . . 120 6.4 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 C e chapitre montre un exemple de notre processus de génération de modèles formels en TPN. Il traite un cas d’étude théorique visant deux noyaux temps réel : OSEK/VDX et VxWORKS. Ce chapitre est composé de quatre sections. Une implémentation de notre prototype est tout d’abord présentée dans la première section. Une autre modélisation en TPN d’un autre noyau temps réel est ensuite proposée. Un exemple d’application est alors déployé pour générer deux modèles comportementaux visant deux plates-formes (OSEK/VDX et VxWORKS). Un bilan de cette mise en application est finalement donné dans la dernière section.6.1. Prototype 115 6.1 Prototype La stratégie de considération du comportement des plates-formes que nous avons adoptée (cf. Adjonction au processus de déploiement, page 65) aboutit à la composition de mod- èles d’application déployée avec la représentation explicite de la plate-forme considérée. Une première implémentation de ce processus a été développée dans une transformation. Cette transformation est présentée en premier lieu. Toutefois, le modèle généré avec cette transformation doit être traduit dans un format exploitable par un outil de vérification. Un exemple d’extraction est décrit dans un deuxième temps. 6.1.1 Implémentation Nous avons choisi le langage de transformation Kermeta [91] [27] car il semblait correspondre à nos besoins d’implémentation. Kermeta est adapté à la métamodélisation et plus particulièrement à l’exécutabilité des métamodèles. C’est un projet open source directement inspiré du MOF [64] (Meta Object Facility) qui est un standard de l’OMG pour décrire structurellement des métamodèles dans un contexte MDA. Il peut être vu comme un métamétamodèle auquel est ajouté un langage permettant la définition d’actions sur les métamodèles, pour offrir cette exécutabilité. À l’image d’Ecore du projet EMF [29] (Eclipse Modeling Framework), Kermeta est utilisé comme un langage orienté objet. Élaborer une transformation de modèles avec Kermeta revient finalement à développer un métaprogramme objet qui vient lire ou écrire dans les métaclasses des métamodèles impliqués. L’exécutabilité repose sur le tissage d’aspects qui viennent enrichir les métaclasses sans en modifier le contenu. Cette idée nous intéressait particulièrement pour suivre une logique impérative dans l’exécution de nos règles de transformation à travers les métaclasses. Néanmoins, malgré l’indépendance de notre processus de génération vis-à-vis du langage de transformation, certaines propriétés d’implémentation devaient être respectées. Kermeta répond à ces contraintes, puisqu’il permet : – d’établir des règles impératives (notamment pour la composition) ; – d’appeler des règles récursivement (précisément pour le clonage des éléments composites) ; – de contraindre l’exécution de règles (pour restreindre leur applicabilité à certains élé- ments) ; – de facilement adapter certains traitements (comme la localisation ou la traduction d’informations à travers divers modèles) sur les règles ; L’ensemble des règles qui ont été décrites dans le chapitre 4 ont été implémentées en Kermeta. La transformation prend par conséquent en entrée RTEPML qui a été étendu au comportement. Grâce à l’approche par aspect, les métaclasses de RTEPML ont été enrichies d’opérations permettant l’exécution de nos règles. Le listing 6.1 donne un exemple d’implémentation en Kermeta d’une des règles du processus de considération du comportement. Il reprend la règle ruleCreateAtomicElementFromBehavioralPrototype décrite à travers les algorithmes 4.3 à 4.5. Dans cet exemple, la métaclasse Atomic de RTEPML, qui représente le concept source de la règle, a bien été “aspectée” et une opération a été ajoutée pour exécuter la caractérisation d’un élément atomique cloné. 1 aspect class Atomic 2 { 3 /** 4 * @operation : createAtomicElementFromBehavioralPrototype 5 * @param : ari The instance described by the behavioral prototype116 Chapitre 6. Validation expérimentale 6 * owning atomic element to clone 7 */ 8 operation createAtomicElementFromBehavioralPrototype( 9 ari : ApplicationResourceInstance): Void is do 10 var abe : Atomic init self 11 // Correspondance with the cloned atomic element 12 self.rootInstances.add(ari) 13 self.name := abe.name + "_" + ari.name 14 ari.type.behavior.getPropertyRoles.each{ r | 15 if abe = ari.type.behavior.getAtomicElement(r) then 16 ari.properties.each{ p | 17 if p.~property = ari.type.getProperty(r) then 18 self.val = p.getPropertyValue(r) 19 end 20 } 21 end 22 } 23 ari.type.behavior.getCompositionRoles.each{ r | 24 if abe = ari.type.behavior.getAtomicElement(r) then 25 self.role = r.name + "_" + ari.name 26 end 27 } 28 end 29 } Listing 6.1 – Règle de création d’élément atomique à partir d’un prototype comportemental La version proposée n’est qu’en phase de prototypage. Toutefois, un ensemble d’exemples servant de tests unitaires ont pu être mis en place, ainsi que des cas d’étude [49] [50] ; l’un d’entre est ensuite présenté dans ce chapitre. Il restera à développer des suites de tests plus exhaustives pour augmenter la confiance dans ce prototype. Néanmoins, ce dernier nous permet une première validation expérimentale de nos règles de transformation, ainsi que du processus. 6.1.2 Extraction La mise en application d’activités de vérification exige de traduire les modèles comportementaux générés au format imposé par l’outil de vérification. Cette traduction est de ce fait spécifique. Elle reste cependant nécessaire à l’intégrité du processus de génération de modèles formels (cf. Adjonction au processus de déploiement, page 65). La figure 6.1 reprend ce processus qui figurait sur la figure 4.2 dans laquelle la stratégie de considération du comportement avait été exposée. Comme annoncé, l’implémentation que nous proposons pour ce processus est réalisée à l’aide de l’outil Kermeta. Dans cette configuration, le PSM 2 est finalement interprété comme un modèle pivot à partir duquel n’importe quelle traduction pourrait être appliquée. Dans notre cas, nous avons choisi d’implémenter un traducteur formel dédié à transcrire le modèle TPN d’application déployée en une description textuelle exploitable par l’outil de vérification Roméo [53]. Nous avons donc élaboré une transformation RTEPML2Romeo qui transcrit les éléments de comportement du modèle source (objets TPN) en un arbre textuel au format XML. La mise en œuvre de cette transformation en Kermeta s’appuie sur l’approche par aspects pour extraire de ces éléments, via les métaclasses TPN de RTEPML, les données nécessaires au balisage du fichier XML. 6.2 Modélisation d’une autre plate-forme Afin de mettre en évidence la réutilisabilité et la portabilité de notre approche, nous avons utilisé notre processus pour générer un modèle formel d’application sur une autre6.2. Modélisation d’une autre plate-forme 117 FIGURE 6.1 – Processus de génération de modèles formels en RI_TPN vers Roméo plate-forme. Cette plate-forme est le noyau VxWORKS [93] qui est aussi beaucoup utilisé dans le secteur industriel. Nous avons choisi cette plate-forme dans l’optique du cas d’étude qui va être illustré dans la section suivante. Nous aurons en effet besoin de représenter une tâche périodique. Similairement à OSEK/VDX, le noyau VxWORKS ne contient pas intrinsèquement de ressource dédiée à la périodicité d’une tâche. Nous devons donc modéliser ce concept par l’intermédiaire d’un prototype de conception (cf. Description des prototypes de conception, page 23). Une tâche VxWORKS périodique peut être représentée en associant une tâche, avec un watchdog et avec un sémaphore binaire. La tâche est dans ce cas cadencée par le watchdog qui libère cycliquement le sémaphore. Lorsque le sémaphore est libéré, la tâche qui est en attente acquiert le sémaphore et réentre dans sa routine d’exécution. La figure 6.2 reprend le cheminement intégral pour générer un modèle formel en TPN d’une application déployée sur une plate-forme VxWORKS, traduit pour Roméo. Sur cette figure, le PDM de cette plateforme qui a été représenté explicitement avec RTEPML est considéré en paramètre du processus de déploiement. Un zoom sur ce PDM est fourni pour distinguer les ressources impliquées dans le prototype de conception d’une tâche périodique (PeriodicTask), ainsi que les prototypes comportementaux qui ont été attribués. Les prototypes comportementaux représentés sont les suivants : – TaskBehavior : le comportement de la tâche dans lequel le mécanisme d’ordonnancement coopératif est décrit ; – SemaphoreBehavior : le comportement du sémaphore qui contient aussi des prototypes comportementaux de services pour son acquisition (SemTakeBehavior) et son relâchement (SemGiveBehavior) ; – WatchdogBehavior : le comportement du watchdog qui contient aussi un prototype comportemental de service pour son activation (WdStartBehavior) ; À travers ce PDM, les rôles utiles à la localisation des éléments lors du déploiement et lors de la composition des fragments de comportement en RI_TPN clonés ont aussi été assignés. Une remarque est à préciser au sujet des services d’acquisition et de relâchement du sémaphore. Les prototypes comportementaux de ces services intègrent respectivement les mécanismes de mise en attente et d’éligibilité de la tâche, puisque le concept de tâche est la seule ressource concernée par ces mécanismes. Notons aussi que le marquage initial des prototypes a seulement été effectué sur les ressources et non sur les services comme118 Chapitre 6. Validation expérimentale FIGURE 6.2 – Processus de génération de modèle formel en TPN avec considération d’une plate-forme VxWORKS mentionné à la fin du chapitre précédent. En ce qui concerne le marquage du sémaphore6.3. Application sur un exemple 119 (SemaphoreBehavior), celui-ci est initialisé sur la place EMPTY pour que la tâche puisse être mise en attente dès la fin de sa première exécution. Ce marquage est certes adapté pour l’application qui va être présentée juste après. Mais, avec RTEPML, il est facile de définir plusieurs ressources du même type (e.g., sémaphore vide ou sémaphore plein) auxquelles un prototype comportemental est attaché. Cette modélisation nous permet d’être optimiste quant à la généricité de représentation des noyaux temps réel. La notion de rôles compte évidemment beaucoup dans l’interpré- tation des choix de représentation. Finalement, les descriptions restent assez proches d’un noyau à l’autre, ce qui nous promet de passer rapidement d’un portage à un autre quelque soit l’application. 6.3 Application sur un exemple Nous mettons ici en application notre processus de génération de modèles formels dans un contexte de déploiement multiplates-formes. L’exemple est adapté d’un cas d’étude d’une application multitâches [13] mise dans un contexte d’ordonnancement coopératif. Ce cas d’étude avait déjà été présenté dans une de nos contributions [51]. L’expérimentation qui repose sur ce cas a pour objectif de valider notre processus en s’appuyant sur deux plates-formes aux comportements et aux APIs différents. Ces plates-formes sont la norme OSEK/VDX qui a servi d’illustration tout au long de ce mémoire et le noyau VxWORKS [93] que nous venons d’aborder dans la section précédente. 6.3.1 Description du cas d’étude L’application comporte trois activités concurrentes temps réel qui sont déployées sur trois tâches ordonnançables Task1, Task2 et Task3. La concurrence de ces trois tâches est mise en œuvre suivant une politique d’ordonnancement non préemptive basée sur des propriétés fixes. Leurs caractéristiques sont les suivantes : – Task1 est périodique de période P1 = a avec a ∈ [0, +∞[ et un temps d’exécution C1 ∈ [10, 20]. – Task2 est sporadique avec seulement un délai minimal de P2 = 2a unités de temps entre deux activations. Le temps d’exécution de Task2 est C2 ∈ [18, 28]. – Enfin, Task3 est périodique de période P3 = 3a unités de temps et a un temps d’exé- cution C3 ∈ [20, 28]. Ces trois tâches sont définies dans cet ordre de priorités : Task1 > Task2 > Task3. La période a de Task1 est un paramètre qui détermine la condition limite d’ordonnançabilité des tâches. L’application est ordonnançable si chaque activité a au moins une instance en exécution. La condition suffisante d’ordonnançabilité en mode non préemptif exige alors une charge processeur U telle que : U = Xn i=1 (Ci/Pi) ≤ 1 (6.1) avec n représentant le nombre de tâches, Ci précisant le pire temps d’exécution de chaque tâche et Pi indiquant la période (respectivement le délai minimal) de chaque tâche périodique (respectivement tâche sporadique) Taski. À titre d’exemple, nous avons cherché à composer cette application déployée avec le comportement de la plate-forme considérée, à l’aide de notre processus. Puis, la propriété d’ordonnançabilité que nous venons d’évoquer a été vérifiée sur les deux modèles générés dans le but de retrouver le domaine de validité théorique (i.e., avant déploiement)120 Chapitre 6. Validation expérimentale du paramètre a. Après calcul et conformément à une autre étude [40], le domaine attendu est a ≥ 44. 6.3.2 Composition en TPN Comme nous avons pu le voir dans le chapitre précédent, la composition d’un RI_TPN peut très vite exploser d’un point de vue combinatoire. Pour cette raison et pour simpli- fier, les figures 6.3 et 6.4 donnent les compositions établies en RI_TPN, uniquement sur la tâche Task3 (NT ask3) après avoir respectivement considérer le comportement de la norme OSEK/VDX et du noyau VxWORKS. Task3 a été préférée puisqu’elle présente le cas le plus complexe de composition due à sa priorité la plus basse. La localisation d’un mécanisme d’ordonnancement coopératif dans les PDMs a provoqué la création d’arcs d’inhibition sur la transition resume_Task3. En conséquence, le RI_TPN NT ask3 cloné a subi l’extension suivante CoopSched(NT ask3, {T ask1, T ask2}). Task3, comme les deux autres tâches, pointe sur une routine très simplifiée qui consiste juste à s’exécuter dans le temps imparti. Sur les deux modèles, la routine est constituée soit d’un service de terminaison (Nterminate3(T ask3)) pour la norme OSEK/VDX, soit d’un service de prise du sémaphore (NsemT ake3(Sem3)) avec mise en attente de la tâche pour le noyau VxWORKS. Le temps d’exécution C3 a aussi été intégré dans la description de ces services appelés, suite à la composition. Il est en effet possible, sur chaque prototype comportemental de service, d’assigner un rôle d’exécution (cf. rôle executionElements, figure 6.2) à un élément de comportement pour valuer ce temps d’exécution. Dans notre exemple, ce rôle est assigné sur le bornage de l’intervalle statique de la transition située entre les places START_terminate3(Task3) (respectivement START_semTake3(Sem3)) et DEADLINE_terminate3(Task3) (respectivement DEADLINE_semTake3(Sem3)) du RI_TPN Nterminate3(T ask3) (respectivement NsemT ake3(Sem3)). Rappelons aussi que les rôles apparaissent en gras, en haut à doite des places fusionnables, pour mettre en évidence les points de connexion utiles à la composition des RI_TPNs. Ces places fusionnables, toujours connectées par des arcs crochets, représentent celles localisées lors de la composition de Task3 avec sa routine d’exécution conformément à l’équation (5.2) 1 . Les fragments associés issus des prototypes de conception sont ensuite composés en appliquant les équations (5.3) et 5.4. Le même raisonnement est évidemment appliqué sur Task1 et Task2 avant d’être elles-mêmes composer avec Task3, toujours en respectant les équations (5.3) et (5.4). Une fois les modèles composés, ils ont pu être vérifiés en utilisant Roméo. Les systèmes composés sont ordonnançables si les deux RI_TPNs sont saufs; c’est-à-dire il existe au plus un jeton dans chaque place. Cette propriété doit par conséquent être satisfaite en appliquant la logique temporelle suivante : AG[0,∞]bounded(1) qui dénote que pour tous les chemins du réseau parcourus, le marquage des places doit être, au maximum, borné à 1, dans un temps infini [74] [62]. Les résultats obtenus sur les deux RI_TPNs avec Roméo sont les suivants : ——- Checking property AG[0,inf]bounded(1) on TPN : "/home/clelionnais/TPN/OSEKVDX_NonPreemptiveApplication.xml" Waiting for response... Result : {a >= 44 } ——- 1. Il en est de même pour Watchdog3 qui présente aussi une routine d’exécution6.3. Application sur un exemple 121 ENABLE Alarm3 enable Task3 LAPSE Alarm3 ACTIVATION Alarm3 activation Task3 SUSPENDED Task3 terminatedState Task3 ACTIVATION Task3 activation Task3 [0;0 ] increment Alarm3 [3a;3a ] cycle Alarm3 [0;0 ] resume Task3 READY Task3 activatedState Task3 READY Task1 activatedState Task1 READY Task2 activatedState Task2 [0;0 ] activate Task3 PROCESSOR Task3 processor Task3 resumedState Task3 RUNNING Task3 start Task3 START Task3 execute Task3 [0;0 ] end Task3 END Task3 NTask3 NAlarm3 PROCESSOR terminate3(Task3) processor Task3 end Task3 END terminate3(Task3) resumedState Task3 RUNNING terminate3(Task3) terminatedState Task3 SUSPENDED terminate3(Task3) start Task3 START terminate3(Task3) [0;0 ] terminate terminate3(Task3) DEADLINE terminate3(Task3) [20;28 ] delay terminate3(Task3) Nterminate3(Task3) PROCESSOR Proc processor Proc NProc (c) (b) (b) (b) (b) (b) (d) FIGURE 6.3 – Description en RI_TPN d’une tâche périodique déployée sur une plate-forme OSEK/VDX Checking property AG[0,inf]bounded(1) on TPN : "/home/clelionnais/TPN/VxWorks_NonPreemptiveApplication.xml" Waiting for response... Result : {a >= 44 } Les résultats correspondent bien à la valeur théorique mentionnée plus haut. Dans cet exemple, la vérification nous donne satisfaction puisque la valeur théorique du domaine de validité annoncée avant déploiement est respectée après déploiement, et ce dans les deux cas122 Chapitre 6. Validation expérimentale ENABLE Watchdog3 enable Task3 [3a;3a ] cycle Watchdog3 ACTIVATION Watchdog3 activation Task3[0;0 ] resume Watchdog3 ELAPSE Watchdog3 execute Watchdog3 [0;0 ] start Task3 START Watchdog3 END Task3 end Task3 STOP Task3 [0;0 ] stop Watchdog3 PROCESSOR Watchdog3 processor Task3 NWatchdog3 START wdStart3(Watchdog3) start Task3 ENABLE wdStart3(Watchdog3) enable Task3 END wdStart3(Watchdog3) end Task3 [0;0 ] wdStart wdStart3(Watchdog3) NwdStart3(Watchdog3) START semGive3(Sem3) start Task3 semGive semGive3(Sem3) [0;0 ] END semGive3(Sem3) end Task3 FULL semGive3(Sem3) countState Task3 EMPTY semGive3(Sem3) discountState Task3 PENDED semGive3(Sem3) suspendedState Task3 READY semGive3(Sem3) activatedState Task3 [0;0 ] wake semGive3(Sem3) NsemGive3(Sem3) PENDED Task3 suspendedState Task3 [0;0 ] resume Task3 READY Task3 activatedState Task3 READY Task1 activatedState Task1 READY Task2 activatedState Task2 PROCESSOR Task3 processor Task3 resumedState Task3 EXECUTING Task3 start Task3 START Task3 execute Task3 [0;0 ] end Task3 END Task3 NTask3 start Task3 START semTake3(Sem3) [20;28 ] delay semTake3(Sem3) DEADLINE semTake3(Sem3) [0;0 ] semTake semTake3(Sem3) end Task3 END semTake3(Sem3) PROCESSOR semTake3(Sem3) processor Task3 resumedState Task3 EXECUTING semTake3(Sem3) [0;0 ] pend semTake3(Sem3) suspendedState Task3 PENDED semTake3(Sem3) FULL semTake3(Sem3) countState Task3 EMPTY semTake3(Sem3) discountState Task3 NsemTake3(Sem3) countState Task3 EMPTY Sem3 discountState Sem3 FULL Sem3 NSem3 processor Proc PROCESSOR Proc NProc (a) (b) (b) (b) (b) (b) (b) (b) (b) (c) (c) (c) (c) (c) (d) (d) (d) FIGURE 6.4 – Description en RI_TPN d’une tâche périodique déployée sur une plate-forme VxWORKS proposés. Cette propriété de sécurité est ici nécessaire, mais bien évidemment, elle est loin d’être suffisante. D’autres propriétés pourraient être vérifiées montrant qu’un mauvais choix de plate-forme ou bien même de mécanisme au sein d’une plate-forme compromettrait le6.4. Bilan 123 déploiement. Alternativement, nous aurions pu représenter le comportement de la périodicité autrement qu’avec une alarme. Avec le noyau VxWORKS par exemple, l’application d’un délai permet de différer la suite de l’exécution d’une tâche pendant une durée spécifiée. En pratique, cette mise en œuvre pour le compte d’une tâche périodique peut engendrer une dérive temporelle qui biaiserait le domaine de validité théorique. 6.4 Bilan Ce chapitre avait pour objectif de montrer une mise en application de notre processus de génération de modèles formels en TPN. Un cas d’étude d’une application déployée sur deux plates-formes aux comportements différents (OSEK/VDX et VxWORKS) a été proposé. Deux modèles comportementaux ont ainsi pu être composés indépendamment de la plateforme considérée pour le déploiement. Une vérification simple a de surcroît été menée sur les modèles générés, pour s’assurer d’une limite d’ordonnançabilité théorique d’un système après déploiement. Cette approche contribue dans son intégralité aux trois points évoqués dans l’introduction, pour améliorer la productivité des SETRs : – La portabilité : La facilité de traduction des prototypes comportementaux grâce à RTEPML et à l’expressivité des TPNs permet de représenter le comportement de différentes plates-formes logicielles d’exécution temps réel. En choisissant la plateforme qui nous intéresse en paramètre de notre processus de génération, nous pouvons rapidement porter une application et ainsi désigner la plate-forme la plus appropriée à la conception d’un système ; – La réutilisabilité : La notion de rôles que nous avons adoptée pour localiser les éléments à travers les modèles, a permis d’établir des règles de transformation génériques pour la composition. Cette valeur ajoutée apporte précisément plus de flexibilité dans la réutilisation de notre processus de génération ; – La maintenabilité : Enfin, l’indépendance des intervenants est favorisée puisque les préoccupations métiers ont été séparées. Le concepteur du SETR peut définir son type d’application sans se soucier du déploiement. Il peut ensuite intégrer son application dans une plate-forme particulière qui a été préalablement définie par un spécialiste du RTOS. Ce dernier peut indépendamment modéliser sa plate-forme soit d’un point de vue structurel, soit d’un point de vue comportemental. Le concepteur peut ensuite utiliser notre processus pour successivement déployer son application et la formaliser une fois déployée. La formalisation obtenue offre la possibilité d’appliquer des activités de vérification. Un expert dans ce domaine peut par conséquent retourner un verdict au concepteur après avoir vérifié les propriétés fonctionnelles et non fonctionnelles qui lui ont été spécifiées. Comme nous l’avons déjà mentionné, cette mise en application n’avait pas pour vocation d’établir un recueil de propriétés à vérifier. Cette expérimentation de vérification que nous avons ajoutée a seulement permis de valider notre stratégie de considération du comportement basée sur les rôles. Par la suite, d’autres plates-formes devront néanmoins être considérées pour renforcer la généricité de notre approche.Conclusion Bilan L’objectif principal de cette thèse était de fournir une approche de considération du comportement des plates-formes d’exécution logicielles temps réels dans un cadre de dé- ploiement d’application multiplates-formes. Elle s’inscrit dans une ingénierie générative dirigée par les modèles telle que l’IDM, afin d’intégrer des activités de vérification après déploiement d’applications logicielles. La genèse de cette approche relève du manque d’application de ces activités à un niveau de conception détaillé des SETRs. En première partie, un état de l’art (chapitre 2) a introduit notre suite d’outils SEXPISTOOLS (pour Software Execution Platform Inside Tools). Cette suite intègre le langage de modélisation RTEPML (Real Time Embedded Platform Modeling Language) pour représenter explicitement les plates-formes. Aussi, un processus de génération y avait été ajouté pour considérer ces représentations à travers un processus de déploiement. Grâce à l’approche de représentation explicite, le processus avait alors été développé indépendamment de la plateforme visée, ce qui apporte plus de généricité. Cependant, dans l’état, le comportement des plates-formes n’était pas représentable avec RTEPML. De plus, aucune vérification ne pouvait être menée avec cette suite. Un positionnement a donc été établi vis-à-vis d’autres suites d’outils qui ont contribué à la considération du comportement des plates-formes dans une IDM. Deux grandes familles ont pu être isolées avec d’un côté, les suites qui se sont orientées vers la génération de code et de l’autre côté, celles qui se sont tournées vers la génération de modèles formels. Seulement dans les deux situations et ce malgré l’intérêt porté pour considérer le comportement, rares sont celles qui participent à la fois au dé- ploiement et à la vérification. Lorsque c’est le cas, elles ne favorisent pas l’amélioration de la productivité des SETRs. Dans une deuxième partie, nos contributions ont été détaillées. En premier lieu, des concepts comportementaux ont été ajoutés dans RTEPML (chapitre 3) pour aussi représenter explicitement le comportement des plates-formes. Une traduction a de plus été intégrée pour représenter formellement ce comportement en TPN. Des rôles ont été identifiés pour localiser des éléments utiles à la composition d’un modèle d’application déployée. Cette stratégie a ensuite permis de rédiger des règles de transformation indépendantes du langage de modélisation du comportement, pour le compte d’un processus de considération explicite du comportement des plates-formes (chapitre 4). Tout au long du processus, des fragments comportementaux sont assemblés pour obtenir un modèle global. Les fragments ayant été définis en TPN, une formalisation de cet assemblage (chapitre 5) a aussi été posée pour nous assurer du bon enchaînement des règles de transformation. Un cas d’étude simplifié a finalement été donné pour composer deux modèles comportementaux d’une même application déployée sur deux plates-formes différentes (chapitre 6).126 Conclusion Perspectives Les perspectives sont nombreuses et nous les présentons ici selon leur ordre logique de traitement. Approfondir l’approche La version du processus implémenté est pour le moment un prototype qui permet de générer des modèles formels en TPN exploitables par l’outil de vérification Roméo. Un certain nombre de rôles ont pu être identifiés pour la composition de tels modèles. Toutefois, d’autres rôles devront certainement être ajoutés pour prendre en compte d’autres mé- canismes de plates-formes d’exécution logicielles. Nous prévoyons donc de représenter d’autres plates-formes avec RTEPML, à l’image de la norme ARINC-653 [1] qui présente des contraintes spatiales. De plus, nous avons employé l’outil de transformation Kermeta pour implémenter le processus de considération du comportement. Le processus n’étant qu’un prototype, nous programmons d’uniformiser l’implémentation avec le langage de transformation ATL qui a été utilisé pour le processus de déploiement. La prise en compte de mécanismes d’ordonnancement plus spécifiques est aussi prévue. Dans cette thèse, notre implication s’est focalisée sur la représentation de priorités fixes. D’autres politiques d’ordonnancement [20] demandent aussi de considérer les priorités dynamiques. Les mécanismes liés à ces politiques devront aussi être considérés dans notre approche. Une approche de rétro-ingénierie [61] s’est récemment focalisée sur l’analyse d’ordonnançabilité en considérant explicitement les politiques d’ordonnancement. Cette dé- marche peut nous aider à mieux aborder cette prise en compte. La formalisation proposée a soulevé certaines limites de considération des mécanismes spécifiques avec les TPNs. À l’instar du mécanisme d’ordonnancement coopératif présenté, le clonage itératif de fragments comportementaux oblige à connecter des éléments qui ne sont pas localisables avec des rôles. L’utilisation de fonctions a solutionné certaines adaptations de composition dans le processus, mais elles se basent quand même sur ces rôles. Nous devons par conséquent trouver une stratégie plus générique de composition. Nous envisageons d’utiliser des langages de traduction formelle plus haut niveau que les TPNs, à l’instar des Scheduling TPNs [52] qui intègrent le mécanisme de préemption. Étendre l’approche Ce besoin d’utiliser d’autres classes de modélisation du comportement nous oblige à étendre notre stratégie d’intégration des concepts formels au sein de RTEPML. De manière similaire à notre approche de représentation explicite du comportement des plates-formes, nous projetons d’apporter à RTEPML une adaptabilité de traduction du comportement. Offrir la possibilité aux concepteurs de modéliser le comportement des plates-formes avec le langage de leur choix apporterait plus de souplesse à notre approche de considération. Cette orientation amènerait en outre à ouvrir nos recherches dans un contexte GPML avec le profil UML-MARTE. En effet, le comportement dans UML peut être représenté par l’intermédiaire de langages tels que les Statecharts UML. Adapter une traduction du comportement des plates-formes dans RTEPML avec ces langages permettrait de réinjecter dans UML-MARTE les descriptions obtenues.Troisième partie AnnexesGuide conceptuel avec SEXPI A STOOLS131 Cette annexe propose un ensemble de diagrammes d’activités de SEXPISTOOLS. En premier lieu, un guide conceptuel sur l’utilisation du langage de modélisation RTEPML est fourni pour savoir comment définir un modèle structurel de plate-forme d’exécution logicielle temps réel. Puis, un second guide vient présenter comment le processus de dé- ploiement s’exécute pour générer un modèle structurel global d’application déployée en considérant une représentation explicite de la plate-forme ciblée. La partie comportementale n’apparaît pas ici puisque l’extension de RTEPML et les règles de considération du comportement sont respectivement détaillées dans les chapitres 3 et 4. Définition d’un modèle structurel de plate-forme avec RTEPML La figure A.1 permet de visualiser le flux d’activités qui mène à la définition d’un PDM structurel. L’implantation du motif «Ressource-Service» dans RTEPML oriente le concepteur à définir lui-même les concepts exécutifs et les services offerts par la plate-forme à représenter. La figure A.2 permet de visualiser le flux d’activités qui mène à la définition de prototypes de conception au sein d’un PDM structurel. Le concepteur peut ainsi définir certains concepts exécutifs qui n’existent pas sur la plate-forme à représenter, mais qui peuvent être mis en œuvre par agencement de concepts existants dans un prototype de conception. Génération d’un modèle structurel d’application déployée La figure A.3 permet de visualiser le flux d’activités du processus de déploiement qui mène à la génération d’un modèle d’application déployée sur une plate-forme définie (guide présenté précédemment). Le diagramme illustre l’enchaînement des règles de correspondances entre les concepts applicatifs et les ressources logicielles avec ou sans prototype de conception. La création d’instances des ressources définies et de propriétés d’instances pour les besoins de l’application est précisée. Toutefois, la génération de ces règles de correspondances, comme abordée dans le chapitre 2 page 26, n’est pas précisée ici. Pour plus de clarté, la figure A.4 apporte plus de précisions quant à l’activité de création des appels de services. Cette activité est en effet présentée sous forme de macro dans la figure A.3 ci-dessus. Pour cette raison, le diagramme ci-après illustre l’enchaînement des règles de création des appels de service au sein des instances de ressources.132 Annexe A. Guide conceptuel avec SEXPISTOOLS FIGURE A.1 – Guide conceptuel pour la définition des ressources et des services avec RTEPML133 FIGURE A.2 – Guide conceptuel pour la définition de prototypes de conception avec RTEPML134 Annexe A. Guide conceptuel avec SEXPISTOOLS FIGURE A.3 – Guide du processus de déploiement avec création d’instances de ressources135 FIGURE A.4 – Guide du processus de déploiement avec création d’appels de servicesMétamodèle de RTEPML B139 Le métamodèle du langage RTEPML a été introduit dans le chapitre 2, page 23. Il a été ensuite étendu dans le chapitre 3. Le listing B.1 suivant revient sur le métamodèle structurel de RTEPML [12] en ne présentant ici que l’aspect comportemental. Listing B.1 – Métamodèle du langage RTEPML (en KM3 [39]) 1 -- @name RTEPML 2 -- @version 1.0 3 -- @authors cedrick.lelionnais@eseo.fr (@irccyn.ec-nantes.fr) 4 -- @description Real Time Embedded Platform Modeling Language 5 -- @nsURI RTEPML 6 -- @nsPrefix RTEPML 7 8 package RTEPML { 9 10 --------------------------------------------------------------- 11 -- + -- Located and Named Elements 12 --------------------------------------------------------------- 13 14 abstract class LocatedElement { 15 -- already present in RTEPML 16 attribute location[0-1] : String; 17 attribute commentsBefore[*] ordered : String; 18 attribute commentsAfter[*] ordered : String; 19 } 20 21 abstract class NamedElement extends LocatedElement { 22 -- already present in RTEPML 23 attribute name : String; 24 } 25 26 --------------------------------------------------------------- 27 -- 1 -- Platform Model and Platform Behavioral Model 28 --------------------------------------------------------------- 29 30 class PlatformModel extends NamedElement { 31 -- add platform behavioral model concept 32 reference platformBehavioralModel container : PlatformBehavioralModel; 33 } 34 35 class PlatformBehavioralModel extends NamedElement { 36 -- add behavioral prototype concept 37 reference prototypes[*] container : BehavioralPrototype; 38 } 39 40 --------------------------------------------------------------- 41 -- 1.1 -- Resource and Behavioral Prototype 42 --------------------------------------------------------------- 43 44 abstract class Resource extends NamedElement { 45 -- add behavioral prototype concept 46 reference behavior[0-1] : BehavioralPrototype; 47 } 48 49 abstract class BehavioralPrototype extends NamedElement { 50 -- add both behavioral prototype service and behavior element concepts 51 reference services[*] container : BehavioralPrototypeService; 52 reference elements[*] container : BehaviorElement; 53 -- add execution role concept 54 reference executionElements[*] : BehaviorElement; 55 } 56 57 --------------------------------------------------------------- 58 -- 1.2 -- Resource Instance and Resource Instance Property 59 --------------------------------------------------------------- 60 61 abstract class ResourceInstance extends NamedElement { 62 reference clonedElements[*] : BehaviorElement oppositeOf refInstances; 63 }140 Annexe B. Métamodèle de RTEPML 64 65 --------------------------------------------------------------- 66 -- 1.3 -- Call Service and Behavioral Prototype Service 67 --------------------------------------------------------------- 68 69 class CallService extends LocatedElement { 70 reference clonedElements[*] : BehaviorElement oppositeOf refCalls; 71 } 72 73 class BehavioralPrototypeService extends NamedElement { 74 -- add behavior element concept 75 reference elements[*] : container : BehaviorElement; 76 } 77 78 --------------------------------------------------------------- 79 -- 1.4 -- Data Type 80 --------------------------------------------------------------- 81 82 --------------------------------------------------------------- 83 -- 1.5 -- Routine and Routine Behavior 84 --------------------------------------------------------------- 85 86 class RoutineBehavior extends BehavioralPrototype {} 87 88 --------------------------------------------------------------- 89 -- 1.6 -- Behavior Element 90 --------------------------------------------------------------- 91 92 abstract class BehaviorElement extends NamedElement { 93 -- add an assigned role concept 94 attribute role : String; 95 reference [0-1] : BehavioralPrototype oppositeOf elements; 96 reference [0-1] : BehavioralPrototypeService oppositeOf elements; 97 reference applicationBehavioralModel[0-1] : ApplicationBehavioralModel oppositeOf clonedElements; 98 reference refInstances[*] : ResourceInstance oppositeOf clonedElements; 99 reference refCalls[*] : CallService oppositeOf clonedElements; 100 } 101 102 class Composite extends BehaviorElement { 103 -- add sub behavior element concept 104 reference subElements[*] container : BehaviorElement; 105 } 106 107 class Atomic extends BehaviorElement { 108 attribute val : String; 109 } 110 111 --------------------------------------------------------------- 112 -- 2 -- Artefacts 113 --------------------------------------------------------------- 114 115 --------------------------------------------------------------- 116 -- 2.1 -- Prototype 117 --------------------------------------------------------------- 118 119 --------------------------------------------------------------- 120 -- 2.2 -- Application and Application Behavioral Model 121 --------------------------------------------------------------- 122 123 class Application extends NamedElement { 124 -- add application behavioral model concept 125 reference applicationBehavioralModel container : ApplicationBehavioralModel; 126 } 127 128 class ApplicationBehavioralModel extends NamedElement { 129 -- add cloned behavior element concept 130 reference clonedElements[*] container : BehaviorElement oppositeOf applicationBehavioralModel;141 131 } 132 133 --------------------------------------------------------------- 134 -- 3 -- Behavioral Prototypes 135 --------------------------------------------------------------- 136 137 --------------------------------------------------------------- 138 -- 3.1 -- Concurrent Resource Behavior 139 --------------------------------------------------------------- 140 141 abstract class ConcurrentResourceBehavior extends BehavioralPrototype { 142 -- add property role concepts 143 reference activationCapacityElements[*] : BehaviorElement; 144 reference periodElements[*] : BehaviorElement; 145 reference priorityElements[*] : BehaviorElement; 146 reference stackSizeElements[*] : BehaviorElement; 147 reference entryPointElements[*] : ResourceProperty; 148 149 -- add service role concepts 150 reference activateServices[*] : BehavioralPrototypeService; 151 reference resumeServices[*] : BehavioralPrototypeService; 152 reference suspendServices[*] : BehavioralPrototypeService; 153 reference terminateServices[*] : BehavioralPrototypeService; 154 reference enableConcurrencyServices[*] : BehavioralPrototypeService; 155 reference disableConcurrencyServices[*] : BehavioralPrototypeService; 156 157 -- add composition role concepts 158 reference activation[*] : BehaviorElement; 159 reference activatedState[*] : BehaviorElement; 160 reference resumedState[*] : BehaviorElement; 161 reference terminatedState[*] : BehaviorElement; 162 reference suspendedState[*] : BehaviorElement; 163 reference priorityActivatedState[*] : BehaviorElement; 164 reference priorityResumedState[*] : BehaviorElement; 165 reference processor[*] : BehaviorElement; 166 reference start[*] : BehaviorElement; 167 reference end[*] : BehaviorElement; 168 169 -- add specific mecanism role concepts 170 reference cooperativeScheduling[*] : BehaviorElement; 171 reference priorityPreemptiveScheduling[*] : BehaviorElement; 172 reference fifoScheduling[*] : BehaviorElement; 173 reference lifoScheduling[*] : BehaviorElement; 174 } 175 176 --------------------------------------------------------------- 177 -- 3.1.1 -- Interrupt Resource Behavior 178 --------------------------------------------------------------- 179 180 abstract class InterruptResourceBehavior extends ConcurrentResourceBehavior { 181 -- add property role concepts 182 reference vectorElements[*] : ResourceProperty; 183 reference maskElements[*] : ResourceProperty; 184 185 -- add service role concepts 186 reference routineConnectServices[*] : ResourceService; 187 reference routineDisconnectServices[*] : ResourceService; 188 } 189 190 class InterruptBehavior extends InterruptResourceBehavior { 191 -- add composition role concepts 192 reference enable[*] : BehaviorElement; 193 } 194 195 class AlarmBehavior extends InterruptResourceBehavior {} 196 197 --------------------------------------------------------------- 198 -- 3.1.2 -- Schedulable Resource Behavior 199 --------------------------------------------------------------- 200142 Annexe B. Métamodèle de RTEPML 201 class SchedulableResourceBehavior extends ConcurrentResourceBehavior { 202 -- add property role concepts 203 reference deadlineElements[*] : ResourceProperty; 204 reference deadlineTypeElements[*] : ResourceProperty; 205 reference timeSliceElements[*] : ResourceProperty; 206 207 -- add service role concepts 208 reference joinServices[*] : ResourceService; 209 reference yieldServices[*] : ResourceService; 210 reference delayService[*] : ResourceService; 211 212 -- add other scheduling mecanisms role concepts 213 } 214 215 --------------------------------------------------------------- 216 -- 3.2 -- Memory Partition Behavior 217 --------------------------------------------------------------- 218 219 class MemoryPartitionBehavior extends BehavioralPrototype { 220 -- add property role concepts 221 reference memorySpaceElements[*] : ResourceProperty; 222 223 -- add service role concepts 224 reference forkService : ResourceService; 225 reference exitService : ResourceService; 226 } 227 228 --------------------------------------------------------------- 229 -- 3.3 -- Interaction Resource Behavior 230 --------------------------------------------------------------- 231 232 abstract class InteractionResourceBehavior extends BehavioralPrototype { 233 -- add property role concepts 234 reference waitingPolicyElements[*] : ResourceProperty; 235 236 -- add composition role concepts 237 reference activatedState[*] : BehaviorElement; 238 reference priorityActivatedState[*] : BehaviorElement; 239 reference resumedState[*] : BehaviorElement; 240 reference priorityResumedState[*] : BehaviorElement; 241 reference suspendedState[*] : BehaviorElement; 242 reference terminatedState[*] : BehaviorElement; 243 reference processor[*] : BehaviorElement; 244 reference start[*] : BehaviorElement; 245 reference end[*] : BehaviorElement; 246 } 247 248 --------------------------------------------------------------- 249 -- 3.3.1 -- Synchronisation Resource Behavior 250 --------------------------------------------------------------- 251 252 abstract class SynchronisationResourceBehavior extends InteractionResourceBehavior {} 253 254 --------------------------------------------------------------- 255 -- 3.3.1.1 -- Mutual Exclusion Resource Behavior 256 --------------------------------------------------------------- 257 258 class MutualExclusionResourceBehavior extends SynchronisationResourceBehavior { 259 -- add property role concepts 260 reference accessTokenElements[*] : ResourceProperty; 261 262 -- add service role concepts 263 reference acquireServices[*] : ResourceService; 264 reference releaseServices[*] : ResourceService; 265 266 -- add composition role concepts 267 reference countState[*] : BehaviorElement; 268 reference discountState[*] : BehaviorElement; 269143 270 -- add specific mechanism role concepts 271 reference mutualAcquisitionScheduling[*] : BehaviorElement; 272 reference mutualReleasingScheduling[*] : BehaviorElement; 273 } 274 275 --------------------------------------------------------------- 276 -- 3.3.1.2 -- Notification Resource Behavior 277 --------------------------------------------------------------- 278 279 class NotificationResourceBehavior extends SynchronisationResourceBehavior { 280 -- add property role concepts 281 reference occurenceCountElements[*] : ResourceProperty; 282 reference maskElements[*] : ResourceProperty; 283 284 -- add service role concepts 285 reference flushServices[*] : ResourceService; 286 reference signalServices[*] : ResourceService; 287 reference waitServices[*] : ResourceService; 288 reference clearServices[*] : ResourceService; 289 290 -- add composition role concepts 291 reference clearedState[*] : BehaviorElement; 292 reference signaledState[*] : BehaviorElement; 293 reference memorizedState[*] : BehaviorElement; 294 295 -- add specific mechanism role concepts 296 reference waitingScheduling[*] : BehaviorElement; 297 reference signalingScheduling[*] : BehaviorElement; 298 } 299 --------------------------------------------------------------- 300 -- 3.3.2 -- Communication Resource Behavior 301 --------------------------------------------------------------- 302 303 abstract class CommunicationResourceBehavior extends InteractionResourceBehavior {} 304 305 --------------------------------------------------------------- 306 -- 3.3.2.1 -- Message Com Resource Behavior 307 --------------------------------------------------------------- 308 309 class MessageComResourceBehavior extends CommunicationResourceBehavior { 310 -- add property role concepts 311 reference messageSizeElements[*] : ResourceProperty; 312 reference messageQueueCapacityElements[*] : ResourceProperty; 313 314 -- add service role concepts 315 reference sendServices[*] : ResourceService; 316 reference receiveServices[*] : ResourceService; 317 318 -- add composition role concepts 319 reference pendedState[*] : BehaviorElement; 320 reference postedState[*] : BehaviorElement; 321 322 -- add specific mechanism role concepts 323 reference sendingScheduling[*] : BehaviorElement; 324 reference receivingScheduling[*] : BehaviorElement; 325 } 326 327 --------------------------------------------------------------- 328 -- 3.3.2.2 -- Shared Data Com Resource Behavior 329 --------------------------------------------------------------- 330 331 class SharedDataComResourceBehavior extends CommunicationResourceBehavior { 332 -- add service role concepts 333 reference readServices[*] : ResourceService; 334 reference writeServices[*] : ResourceService; 335 } 336 337 ---------------------------------------------------------------144 Annexe B. Métamodèle de RTEPML 338 -- 4 -- Timer Resource Behavior 339 --------------------------------------------------------------- 340 341 class TimerResourceBehavior extends BehavioralPrototype { 342 -- add property role concepts 343 reference durationElements[*] : ResourceProperty; 344 345 -- add composition role concepts 346 reference enable[*] : BehaviorElement; 347 } 348 }Table des figures 1.1 Constitution d’un SETR au sein d’un équipement . . . . . . . . . . . . . . . . . . . 6 1.2 Place de la conception dans le cycle en V . . . . . . . . . . . . . . . . . . . . . . 8 1.3 Diagramme d’activités de la conception orientée objet : place de la vérification . . . . . . 10 1.4 Exemple de processus de modification de formes dans une IDM . . . . . . . . . . . . . 12 1.5 Initiative MDA avec intégration de descriptions de plates-formes . . . . . . . . . . . . 14 1.6 La conception orientée objet dans une IDM : place du processus de développement . . . . 15 1.7 Approches de considération du PDM . . . . . . . . . . . . . . . . . . . . . 18 2.1 Génération d’un modèle de conception détaillée avec SEXPISTOOLS . . . . . . . . . . 23 2.2 Extrait du DSML RTEPML : modélisation structurelle des ressources et des services . . . . 24 2.3 Représentation simple d’une plate-forme OSEK/VDX avec RTEPML . . . . . . . . . . . 25 2.4 Représentation d’une tâche périodique OSEK/VDX avec RTEPML . . . . . . . . . . . . 27 2.5 Intégration de l’application dans RTEPML . . . . . . . . . . . . . . . . . . . . . . 28 2.6 Simple déploiement d’application vers une plate-forme OSEK/VDX . . . . . . . . . . . 29 2.7 Composition parallèle d’une application avec une plate-forme OSEK/VDX avec ACSR + TROS 37 3.1 Extrait du DSML RTEPML étendu : les prototypes comportementaux . . . . . . . . . . 48 3.2 Extrait du DSML RTEPML étendu : hiérarchie des prototypes comportementaux . . . . . . 49 3.3 Extrait du DSML RTEPML étendu : les éléments de comportement . . . . . . . . . . . . 49 3.4 Extrait du DSML RTEPML étendu : duplication des rôles . . . . . . . . . . . . . . . . 50 3.5 Extrait du DSML RTEPML étendu : les éléments de comportement clonés . . . . . . . . 52 3.6 Extrait du DSML RTEPML étendu : référencement des éléments clonés . . . . . . . . . . 52 3.7 Extrait du DSML RTEPML étendu : héritage d’élément de comportement atomique . . . . 55 3.8 Extrait du DSML RTEPML étendu : assignation de rôles de composition . . . . . . . . . 56 3.9 Extrait du DSML RTEPML étendu : assignation de rôles de mécanismes spécifiques . . . . 58 3.10 Représentation d’un PDM OSEK/VDX en TPN : tâche, service de terminaison et inhibition . 59 4.1 Synoptique de SEXPISTOOLS : intégration du processus de considération du comportement 64 4.2 Synoptique de SEXPISTOOLS : adjonction du processus de considération du comportement 66 4.3 Simple composition d’application avec une plate-forme OSEK/VDX . . . . . . . . . . . 67 4.4 Intégration du comportement : clonage d’une alarme OSEK/VDX . . . . . . . . . . . . 73 4.5 Intégration du comportement : clonage d’un service de terminaison d’une tâche OSEK/VDX 76 4.6 Intégration du comportement : clonage d’un prototype de tâche périodique OSEK/VDX . . 79 4.7 Intégration du comportement : clonage de 3 tâches OSEK/VDX avec ordonnancement coopératif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.8 Intégration du comportement : composition d’une routine OSEK/VDX avec 2 appels de services 88 4.9 Intégration du comportement : composition d’une tâche OSEK/VDX avec son point d’entrée 92 4.10 Intégration du comportement : composition de deux tâches OSEK/VDX en concurrence . . 93 4.11 intégration du comportement : composition avec une ressource d’intéraction OSEK/VDX . . 96 4.12 Hiérarchie des règles de clonage mises à contribution dans le processus . . . . . . . . . 96 4.13 Hiérarchie des règles de composition mises à contribution dans le processus . . . . . . . 97146 Table des figures 5.1 Modèle d’application déployée avec partage de ressource d’exclusion mutuelle composé en RI_TPN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 6.1 Processus de génération de modèles formels en RI_TPN vers Roméo . . . . . . . . . . 117 6.2 Processus de génération de modèle formel en TPN avec considération d’une plate-forme VxWORKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118 6.3 Description en RI_TPN d’une tâche périodique déployée sur une plateforme OSEK/VDX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 6.4 Description en RI_TPN d’une tâche périodique déployée sur une plateforme VxWORKS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 A.1 Guide conceptuel pour la définition des ressources et des services avec RTEPML . . . . . 132 A.2 Guide conceptuel pour la définition de prototypes de conception avec RTEPML . . . . . . 133 A.3 Guide du processus de déploiement avec création d’instances de ressources . . . . . . . 134 A.4 Guide du processus de déploiement avec création d’appels de services . . . . . . . . . 135Liste des tableaux 2.1 Approche de représentation du comportement adoptée par chaque outil . . . . . . . . . 39 2.2 Évaluation des outils sur la considération du comportement à travers leurs critères de qualité 40 4.1 Fonctions mises à contribution et dépendances dans le processus . . . . . . . . . . . . 98Liste des Algorithmes 1.1 Règle de remplacement de ronds par des triangles . . . . . . . . . . . . . . . 13 4.1 Intégration du comportement : clonage prototypes comportementaux . . . . 68 4.2 ruleCloneBehavioralPrototype . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.3 ruleCreateAtomicElementFromBehavioralPrototype . . . . . . . . . . . . . 69 4.4 ruleCreateAtomicElementFromBehavioralPrototype(➤propriétés) . . . . . . . 70 4.5 ruleCreateAtomicElementFromBehavioralPrototype(➤rôle de composition) . . . 71 4.6 Intégration du comportement : clonage prototypes comportementaux(➤services) 74 4.7 ruleCreateAtomicElementFromBehavioralPrototypeService . . . . . . . . . 75 4.8 ruleCreateAtomicElementFromBehavioralPrototype(➤prototype de conception) . 77 4.9 getMasterAssociatedInstance . . . . . . . . . . . . . . . . . . . . . . . . . 78 4.10 ruleCloneBehavioralPrototype(➤élément de comportement composite) . . . . . . . 80 4.11 ruleCloneCompositeBehaviorElement . . . . . . . . . . . . . . . . . . . . . 81 4.12 ruleCloneBehavioralPrototype(➤mécanisme spécifique) . . . . . . . . . . . . . 82 4.13 ruleCreateAtomicElementFromSpecificMechanism . . . . . . . . . . . . . . 83 4.14 ruleCloneSpecificCompositeBehaviorElement . . . . . . . . . . . . . . . . 84 4.15 Intégration du comportement : composition d’éléments clonés(➤routines) . . . 86 4.16 ruleComposeRoutineCalls . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 4.17 ruleCreateAtomicElementFromComposition . . . . . . . . . . . . . . . . . 89 4.18 Intégration du comportement : composition d’éléments clonés(➤points d’entrée) 90 4.19 ruleComposeInstances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 4.20 Intégration du comportement : composition d’éléments clonés(➤concurrence) . 93 4.21 Intégration du comportement : composition d’éléments clonés(➤interactions) . 95Bibliographie [1] Airlines Electronic Engineering Committee. Avionics Application Software Standard Interface, ARINC Specification 653-1, October 2003. Aeronautical radio INC., Annapolis, Maryland, USA. [2] Ahmad Badreddin Alkhodre. Développement formel de systèmes temps réel à l’aide de SDL et IF. PhD thesis, INSAL, France, September 2004. [3] Colin Atkinson and Thomas Kühne. A generalized notion of platforms for modeldriven development. pages 119–136. 2005. [4] ATLAS group. ATL : ATLAS Transformation Language, ATL User Manual, version 0.7. LINA & INRIA, Nantes, France, February 2006. [5] Jean-Philippe Babau. Formalisation et structuration des architectures opérationnelles pour les systèmes embarqués temps réel. Hdr, INSA de Lyon, December 2005. [6] Gerd Behrmann, Alexandre David, and Kim G. Larsen. A tutorial on uppaal. In M. Bernardo and F. Corradini, editors, International School on Formal Methods for the Design of Computer, Communication, and Software Systems, SFM-RT 2004. Revised Lectures, volume 3185 of Lecture Notes in Computer Science, pages 200–237. Springer Verlag, 2004. [7] A. Benzina. Analyse et Conception des Systèmes Temps Réels : Translation d’une Approche Fonctionnelle à une Approche Orientée Objet. PhD thesis, Université Paul Sabatier, Toulouse, France, Décembre 1997. [8] S. Beydeda, M. Book, and V. Gruhn. Model-driven software development. Springer eBooks collection : Computer science. Springer, 2005. [9] G. Booch. Object-oriented development. Software Engineering, IEEE Transactions on, SE-12(2) :211–221, Feb 1986. [10] Marc Boyer and Olivier H. Roux. On the compared expressiveness of arc, place and transition time Petri nets. Fundamenta Informaticae, 88(3) :225–249, 2008. [11] Manfred Broy. Challenges in Automotive Software Engineering. In Proceedings of the 28th International Conference on Software Engineering, ICSE ’06, pages 33–42, New York, NY, USA, 2006. ACM. [12] Matthias Brun. Contribution à la considération explicite des plates-formes d’exécution logicielles lors d’un processus de déploiement d’application. PhD thesis, École Centrale de Nantes, Nantes, France, Octobre 2010. [13] G. Bucci, A. Fedeli, L. Sassoli, and E. Vicario. Timed State Space Analysis of RealTime Preemptive Systems. Software Engineering, IEEE Transactions on, 30(2) :97– 111, February 2004. [14] S. Burmester and H. Giese. The Fujaba Real-Time Statechart Plugin. In Proc. of the first International Fujaba Days 2003, Kassel, Germany, 2003. [15] S. Burmester, H. Giese, M. Hirsch, and D. Schilling. Incremental Design and Formal Verification with UML/RT in the FUJABA Real-Time Tool Suite. In Proc. of the International Workshop on Specification and Validation of UML Models for Real Time and152 Bibliographie Embedded Systems, SVERTS2004, Satellite Event of the 7th International Conference on the Unified Modeling Language, UML2004, 2004. [16] Paul Caspi, Grégoire Hamon, and Marc Pouzet. Systèmes Temps-réel : Techniques de Description et de Vérification – Théorie et Outils, volume 1, chapter Lucid Synchrone, un langage de programmation des systèmes réactifs, pages 217–260. Hermes, 2006. [17] Damien Chabrol. Etude, conception et mise en oeuvre d’un protocole de communication synchrone tolérant aux fautes et prédictible sur des composants réseaux standards. PhD thesis, Université Paris Sud, Paris, France, Juin 2006. [18] Duncan Clarke, Insup Lee, and Hong liang Xie. Versa : A tool for the specification and analysis of resource-bound real-time systems. Journal of Computer and Software Engineering, 3, 1995. [19] Mickaël Clavreul. Composition de Modèles et de Métamodèles : Séparation des Correspondances et des Interprétations pour Unifier les Approches de Composition Existantes. These, Université Rennes 1, December 2011. final draft. [20] Francis Cottet and Anne-Marie Déplanche. Encylcopédie de l’informatique et des systèmes d’information, chapter Ordonnancement temps réel et ordonnançabilité d’une application, pages 740–760. Vuibert, 2006. [21] Abhijit Davare, Douglas Densmore, Trevor Meyerowitz, Alessandro Pinto, Alberto Sangiovanni-Vincentelli, Guang Yang, Haibo Zeng, and Qi Zhu. A next-generation design framework for platform-based design. In DVCon 2007, February 2007. [22] Vincent. David, Christophe. Aussaguès, Stéphane. Louise, Philippe Hilsenkopf, Bertrand. Ortolo, and Christophe. Hessler. The OASIS based qualified display system. In Lecture Notes in Computer Science, 17th International Conf. on Computer Safety, Reliability and Security Fourth American Nuclear Society International Topical Meeting on Nuclear Plant Instrumentation, Controls and Human-Machine Interface Technologies (NPIC&HMIT 2004), Columbus, Ohio. September, 2004., September 2004. [23] James Davis. Gme : The generic modeling environment. In Companion of the 18th Annual ACM SIGPLAN Conference on Object-oriented Programming, Systems, Languages, and Applications, OOPSLA ’03, pages 82–83, New York, NY, USA, 2003. ACM. [24] Jérôme Delatour. Contribution á la spécification des systèmes temps réel : l’approche UML/PNO. PhD thesis, Université Paul Sabatier, Toulouse, France, Septembre 2003. [25] Jérôme Delatour, Raphaël Marvie, and Guillaume Savaton. Workshop on Metamodel Pattern, MP2006. In 2èmes Journées sur l’Ingénierie Dirigée par les Modèles, Lille, Juin 2006. [26] Jérôme Delatour, Frédéric Thomas, Guillaume Savaton, and Sébastien Faucou. Mod- èle de plate-forme pour l’embarqué : première expérimentation sur les noyaux temps réel. In Actes des 1ère Journées sur l’Ingénierie Dirirgée par les Modèles, IDM05, pages 209–216, Paris, France, juin 2005. [27] Zoé Drey, Cyril Faucher, Franck Fleurey, Vincent Mahé, and Didier Vojtisek. Kermeta language reference manual. Triskell group - IRISA/INRIA. [28] Eclipse. Eclipse Modeling Project. http ://www.eclipse.org/modeling/. [29] Eclispe Modeling Framework. EMF Core. http ://www.eclipse.org/modeling/emf/. [30] Wassim El Hajj Chehade. Contribution au Déploiement Multiplateforme d’Applications Multitâches par la Modélisation Comportementale Haut Niveau des Services d’Exécution. PhD thesis, Laboratoire d’Ingénierie Dirigée par les Modèles des Systèmes Temps Réels Embarqués (LISE) - CEA Saclay, 2011.Bibliographie 153 [31] Jean-Pierre Elloy. Le temps réel. Rapport établi par le Groupe de réflexion du CNRSSPI, TSI 7(5), Hermes, 1988. [32] Jean-Rémy Falleri, Marianne Huchard, Mathieu Lafourcade, and Clémentine Nebut. Metamodel Matching for Automatic Model Transformation Generation. In Krzysztof Czarnecki, Ileana Ober, Jean-Michel Bruel, Axel Uhl, and Markus Völter, editors, Model Driven Engineering Languages and Systems, volume 5301 of Lecture Notes in Computer Science, pages 326–340. Springer Berlin Heidelberg, 2008. [33] Pierre Farail and Patrick Gaufillet. TOPCASED : un environnement de développement open source pour les systèmes embarqués. In Journée de travail NEPTUNE, numéro 2, Paris , France, pages 16–20. Génie logiciel, GL & IS, Meudon, France, Mai 2005. [34] B. Fontan. Méthodologie de conception de systèmes temps réel et distribués en contexte UML/SysML. These, Université Paul Sabatier - Toulouse III, January 2008. 08047 08047. [35] L. Fuentes-Fernández and A. Vallecillo-Moreno. An introduction to uml profiles. UPGRADE, European Journal for the Informatics Professional, 5(2) :5–13, April 2004. [36] S. Gérard, C. Mraidha, F. Terrier, and B. Baudry. A UML-Based Concept for High Concurrency : The Real-Time Object. In ISORC, pages 64–67. IEEE Computer Society, 2004. [37] D. J. Hatley and I. A. Pirbhai. Strategies for Real-Time System Specification. Dorset House Publishing, New York, NY, USA, 1987. [38] Frédéric Jouault. Contribution à l’étude des langages de transformation de modèles. PhD thesis, Université de Nantes, Nantes, France, 2006. [39] Frédéric Jouault, Jean Bézivin, and Ivan Kurtev. TCS : a DSL for the specification of textual concrete sysntaxes in model engineering. In In GPCE’06 : Proceedings of the 5th international conference on Generative programming and component engineering, pages 249–254, New York, NY, USA, 2006. ACM. [40] A. Jovanovic, D. Lime, and O. H. Roux. Integer Parameter Synthesis for Timed Au- ´ tomata. In Nir Piterman and Scott Smolka, editors, 19th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2013), volume 7795 of Lecture Notes in Computer Science, pages 401–415, Roma, Italy, March 2013. Springer. [41] B. Kim, I. Lee, L. T. X. Phan, and O. Sokolsky. Platform dependent code generation of real-time embedded software. In Proceedings of the ACM/IEEE 4th International Conference on Cyber-Physical Systems, ICCPS ’13, pages 246–246, New York, NY, USA, 2013. ACM. [42] Jin Hyun Kim, Jin-Young Choi, Inhye Kang, and Insup Lee. Uml behavior models of real-time embedded software for model-driven architecture. J. UCS, 16(17) :2415– 2434, 2010. [43] Jinhyun Kim, Inhye Kang, Jin-Young Choi, Insup Lee, and Sungwon Kang. Formal synthesis of application and platform behaviors of embedded software systems. Software & Systems Modeling, pages 1–21, 2013. [44] Hermann Kopetz. The complexity challenge in embedded system design. In 11th IEEE International Symposium on Object-Oriented Real-Time Distributed Computing (ISORC 2008), pages 3–12, Orlando, Florida, USA, May 2008. IEEE Computer Society.154 Bibliographie [45] Hermann Kopetz, Andreas Damm, Christian Koza, Marco Mulazzani, Wolfgang Schwabl, Christoph Senft, and Ralph Zainlinger. Distributed fault-tolerant real-time systems : The MARS approach. IEEE Micro, 9(1) :25–40, 1989. [46] P. Kukkala, J. Riihimâki, M. Hännikäinen, T. D. Hämäläinen, and K. Kronlöf. UML 2.0 Profile for Embedded System Design. In Design, Automation and Test in Europe (DATE’05), Vol.2, pages 710–715., Los Alamitos, CA, USA, March 2005. IEEE Computer Society. [47] Edward A. Lee. Overview of the Ptolemy project. Technical Report UCB/ERL M03/25, EECS Department, University of California, Berkeley, July 2003. [48] C. Lelionnais and J. Delatour. Towards a Behavioral Modeling of Real-Time Kernel in a Model-Driven Development Approach. In The 4th Junior Researcher Workshop on Real-Time Computing (JRWRTC 2010) in conjunction with the 18th International Conference on Real-Time and Network Systems (RTNS 2010), Toulouse, France, November 2010. [49] Cédrick Lelionnais, Matthias Brun, Jérôme Delatour, Olivier H. Roux, and Charlotte Seidner. Formal Behavioral Modeling of Real-time Operating Systems. In Leszek A. Maciaszek, Alfredo Cuzzocrea, and José Cordeiro, editors, In 14th International Conference Enterprise Information Systems - Model Driven Development for Information Systems (MDDIS 2012), pages 407–414. SciTePress, June 2012. [50] Cédrick Lelionnais, Matthias Brun, Jérôme Delatour, Olivier Henri Roux, and Charlotte Seidner. Formal composition based on roles within a model driven engineering approach. In In 5th International Conference on Advances in System Testing and Validation Lifecycle (VALID 2013), pages 27–32, Venice, Italie, November 2013. IARA. [51] Cédrick Lelionnais, Matthias Brun, Jérôme Delatour, Olivier Henri Roux, and Charlotte Seidner. Formal Synthesis of Real-Time System Models in a MDE Approach. International Journal on Advances in Systems and Measurement, 7(1&2) :À venir, 2014. [52] Didier Lime and Olivier H. Roux. Formal verification of real-time systems with preemptive scheduling. Real-Time Systems, 41(2) :118–151, 2009. [53] Didier Lime, Olivier H. Roux, Charlotte Seidner, and Louis-Marie Traonouez. Romeo : A parametric model-checker for Petri nets with stopwatches. In Stefan Kowalewski and Anna Philippou, editors, 15th International Conference on Tools and Algorithms for the Construction and Analysis of Systems (TACAS 2009), volume 5505 of Lecture Notes in Computer Science, pages 54–57, York, United Kingdom, March 2009. Springer. [54] C.-L. Liu and James W. Layland. Scheduling algorithms for multiprogramming in a hard-real-time environment. J. ACM, 20(1) :46–61, 1973. [55] J Liu and E.A. Lee. Timed Multitasking for Real-Time Embedded Software. Control Systems, IEEE, 23(1) :65–75, Feb 2003. [56] J. C. Maeng, D. Na, Y. Lee, and M. Ryu. Model-driven development of rtos-based embedded software. In Proceedings of the 21st International Conference on Computer and Information Sciences, ISCIS’06, pages 687–696, Berlin, Heidelberg, 2006. Springer-Verlag. [57] D. A. Marca and C. L. McGowan. SADT : Structured Analysis and Design Technique. McGraw-Hill, Inc., New York, NY, USA, 1987. [58] Raphaël Marvie, Laurence Duchien, and Mireille Blay-Fornarino. Les plates-formes d’exécution et l’IDM, chapter 4, pages 71–86. Number ISBN : 2-7462-1213-7. Hermes, January 2006.Bibliographie 155 [59] P. M. Merlin. A Study of the Recoverability of Computing Systems. PhD thesis, 1974. AAI7511026. [60] J. Miller and J. Mukerji. Model Driven Architecture (MDA) Guide, version 1.0.1. Technical report, June 2003. [61] Rania Mzid. Rétro-ingénierie des plateformes pour le déploiement des applications temps réel. PhD thesis, Université de Bretagne Occidentale, Brest, France, Mai 2014. [62] Nicolas Navet. Systèmes temps réel 1 - Techniques de description et de vérification. Hermes - Lavoisier, 2006. [63] Object Management Group (OMG). UML Profile for Modeling and Analysis of Real Time and Embbeded Systems (MARTE), version 1.1. Technical report, June 2011. [64] Object Management Group (OMG). Meta Object Facility (MOF) Core Specification, version 2.0, January 2006. http ://www.omg.org/mof/. [65] Object Management Group (OMG). Unified Modeling Language (UML) : Superstructure, version 2.1.2, November 2007. http ://www.omg.org/mda/. [66] OSEK/VDX Group. OSEK/VDX Operating System Specification, version 2.2.3. Technical report, February 2005. http ://www.osek-vdx.org/. [67] M. Paludetto. Sur la Commande de Procédés Industriels : une Méthodologie Basée Objets et Réseaux de Petri. PhD thesis, Université Paul Sabatier, Toulouse, France, Décembre 1991. [68] F. Peres, B. Berthomieu, and F. Vernadat. On the composition of time petri nets. Discrete Event Dynamic Systems, 21(3) :395–424, September 2011. [69] C. A. Petri. Kommunikation mit Automaten. PhD thesis, Institut für Instrumentelle Mathematik, Bonn, 1962. [70] T. H. Phan, S. Gérard, and F. Terrier. Languages for System Specification. chapter Real-time System Modeling with ACCORD/UML Methodology : Illustration Through an Automotive Case Study, pages 51–70. Kluwer Academic Publishers, Norwell, MA, USA, 2004. [71] A. Pinto. Metropolis Design Guidelines. Technical report, University of California, Berkeley, USA, November 2004. [72] Stefan Resmerita, Patricia Derler, and Edward A. Lee. Modeling and simulation of legacy embedded systems. Technical Report EECS-2010-38, UC Berkeley, April 2010. [73] Alberto Sangiovanni-Vincentelli and Grant Martin. Platform-based design and software design methodology for embedded systems. IEEE Des. Test, 18(6) :23–33, 2001. [74] Philippe Schnoebelen, Béatrice Bérard, Michel Bidoit, François Laroussinie, and Antoine Petit. Vérification de logiciels : techniques et outils du model-checking. Vuibert, April 1999. [75] Martin Schoeberl, Christopher Brooks, and Edward A. Lee. Code generation for embedded java with ptolemy. In Proceedings of the 8th IFIP Workshop on Software Technologies for Future Embedded and Ubiquitous Systems (SEUS 2010), October 2010. [76] Michael L. Scott. Programming Language Pragmatics. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2000. [77] Sally Shlaer and Stephen J. Mellor. Object-oriented Systems Analysis : Modeling the World in Data. Yourdon Press, Upper Saddle River, NJ, USA, 1988.156 Bibliographie [78] Françoise Simonot-Lion and Yvon Trinquet. Encyclopédie de l’informatique et des systèmes d’information, chapter Exemple de systèmes temps réel et choix d’implé- mentation, pages 723–732. Vuibert, 2006. [79] Society of Automotive Engineer (SAE). Architecture Analysis & Design Language (AADL) AS5506, version 1.0, 2004. [80] Syntec Informatique, RNT Logiciel. Livre Blanc des premières Assises Françaises du Logiciel Embarqué. Number 6. Collection ThémaTIC, March 2007. [81] Tivadar Szemethy and Gabor Karsai. Pml : a transformation language for platform modeling. ECEASST, 4, 2006. [82] S. Taha. Modélisation Conjointe Logiciel/Matériel de Systèmes Temps Réel. PhD thesis, Université de Lille 1, May 2008. [83] S. Taha, A. Radermacher, S. Gérard, and J-L. Dekeyzer. An Open Framework for Hardware Detailed Modeling. In IEEE proceedings SIES’2007, number 1-4244-0840- 7, pages 118–125, Lisbon, Portugal, July 2007. IEEE. [84] F. Taïani, M. Paludetto, and J. Delatour. Composing Real-Time Objects : A Case for Petri Nets and Girard’s Linear Logic. In Object-Oriented Real-Time Distributed Computing, 2001. ISORC-2001. Proceedings. Fourth IEEE International Symposium on, pages 298–305. IEEE, 2001. [85] The MathWorks. Real-Time Workshop User’s Guide. The MathWorks Inc., Natick, MA, USA, September 2007. [86] F. Thomas, J. Delatour, F. Terrier, and S. Gerard. Towards a Framework for Explicit Platform-Based Transformations. In Object Oriented Real-Time Distributed Computing (ISORC), 2008 11th IEEE International Symposium on, pages 211–218, May 2008. [87] Frédéric Thomas. Contribution à la prise en compte des plates-formes logicielles d’exécution dans une ingénierie générative dirigée par les modéles. PhD thesis, Université d’Evry, Sarclay, France, Novembre 2008. [88] Frédéric Thomas, Jérôme Delatour, François Terrier, Matthias Brun, and Sébastien Gérard. Contribution á la modélisation explicite des plates-formes d’exécution pour l’IDM. L’Objet, 13(4) :9–32, 2007. [89] Yvon Trinquet and Jean-Pierre Elloy. Systèmes d’exploitation temps réel. Techniques de l’ingénieur, Traité Contrôle et Mesures, Mars 1999. [90] Thomas Vergnaud and Bechir Zalila. Ocarina, a compiler for the AADL. Technical report, Paris, France, 2006. http ://ocarina.enst.fr. [91] Didier Vojtisek, François Tanguy, and Cyril Faucher. Kermeta user interface guide. Triskell group - IRISA/INRIA. [92] P. T. Ward and S. J. Mellor. Structured Development for Real-Time Systems. Prentice Hall Professional Technical Reference, 1991. [93] WindRiver. VxWORKS Programmer’s Guide, version 6.9., February 2011. [94] Wayne Wolf and Jorgen Staunstrup. Hardware/Software CO-Design : Principles and Practice. Kluwer Academic Publishers, Norwell, MA, USA, 1997.Thèse de Doctorat Cédrick LELIONNAIS Titre : Contribution à la considération du comportement des plates-formes d’exécution logicielles temps réel Title: Contribution to the Consideration of the Behavior of Real-Time Software Execution Platforms Résumé La conception et le développement des systèmes temps réels embarqués (SETRs) sont très complexes du fait d’un grand nombre de plates-formes d’exécution. Ces systèmes doivent aussi répondre à des exigences non-fonctionnelles telles que les contraintes temporelles. L’Ingénierie Dirigée par les Modèles (IDM) répond à la diversité de mise en oeuvre de tels systèmes. Plusieurs suites de développement tirent ainsi profit de l’IDM pour générer automatiquement du code spécifique à une plate-forme à partir de descriptions de conception haut niveau des SETRs. De tels outils considèrent alors des exigences non-fonctionnelles en générant des modèles formels pour intégrer des activités de vérification. Cependant, la considération du comportement des plates-formes d’exécution logicielles demeure un problème majeur. D’un côté, les générateurs de code manquent bien souvent de généricité de considération, de l’autre, la génération de modèles formels s’abstrait en partie des mécanismes de ces plates-formes. Est-il alors possible de considérer à la fois génériquement et formellement ce comportement ? Ce travail s’intègre dans une suite d’outils durant une phase de déploiement multiplates-formes. La stratégie adoptée repose sur la composition d’un modèle d’application déployée avec celui du comportement de la plate-forme visée, dans une IDM. Le comportement est traduit formellement avec les classiques réseaux de Petri temporels (ou Time Petri Net (TPNs)). Une formalisation est alors proposée pour composer un TPN global indépendamment de la plate-forme considérée. À titre d’exemple, la génération de TPNs d’une application exécutée sur deux plates-formes différentes (OSEK/VDX et VxWORKS) est enfin donnée. Abstract Both design and development of Real-Time Embedded Systems (RTES) are very complex because of the wide range of execution platforms. These systems must also meet non-functional requirements such as time constraints. Model Driven Engineering (MDE) is particularly suitable for handling the diversity of implementation targets. Therefore, several RTES development suites leverage MDE by automatically generating platform-specific code from high-level design models. Such tools may also take non-functional requirements into account by integrating verification activities. These activities typically rely on the generation of formal models from the same high-level design descriptions used for code generation. However, the consideration of the behavior of software execution platforms stays a major problem. On the one hand, code generators often reveal a lack of consideration genericity, on the other hand, the generation of formal models partly overlooks mecanisms of these platforms. How can the behavior both generically and formally be considered ? The presented work is part of a tool suite during a multiplatform deployment phase. The adopted strategy relies on the composition of a deployed application model with a model of the behavior of the targeted platform, within a MDE. Behavior is formally translated with classical Time Petri Nets (TPNs). A formalization is then proposed to compose a global TPN regardless of the considered platform. As an illustration, we finally give a generation example of TPNs describing an application deployed on two different platforms (OSEK/VDX and VxWORKS). Mots clés Conception, Systèmes d’exploitation temps réel, Ingénierie Dirigée par les Modèles (IDM), Langage de modélisation dédié, Comportement de plate-forme, Réseaux de Petri Temporels, Déploiement, Modèle formel, Modèle de description de plate-forme. Key Words Design, Real-Time Operating Systems (RTOSs), Model Driven Engineering (MDE), Domain-specific modeling Language (DSML), Platform behavior, Time Petri Nets (TPNs), Deployment, Formal model, Platform Description Model (PDM). L’UNIVERSITÉ NANTES ANGERS LE MANS Mod`ele de comportement communicatif conventionnel pour un agent en interaction avec des humains : Approche par jeux de dialogue Guillaume Dubuisson Duplessis To cite this version: Guillaume Dubuisson Duplessis. Mod`ele de comportement communicatif conventionnel pour un agent en interaction avec des humains : Approche par jeux de dialogue. Artificial Intelligence. INSA de Rouen, 2014. French. . HAL Id: tel-01017542 https://tel.archives-ouvertes.fr/tel-01017542v2 Submitted on 8 Jul 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.THÈSE Présentée à : L’Institut National des Sciences Appliquées de Rouen En vue de l’obtention du grade de : Docteur en Informatique Par : Guillaume DUBUISSON DUPLESSIS Intitulée : Modèle de comportement communicatif conventionnel pour un agent en interaction avec des humains Approche par jeux de dialogue 23 mai 2014 Devant le jury composé de : Rapporteurs : Frédéric Landragin - Chargé de Recherche CNRS, Laboratoire LATTICE Nicolas Sabouret - Professeur, Université Paris-Sud Examinateurs : Catherine Pelachaud - Directrice de Recherche CNRS, TELECOM ParisTech Jean-Christophe Routier - Professeur, Université Lille 1 Directeur : Jean-Pierre Pécuchet - Professeur, INSA de Rouen Encadrants scientifiques : Nathalie Chaignaud - Maître de Conférences, INSA de Rouen Jean-Philippe Kotowicz - Maître de Conférences, INSA de RouenPréambule Résumé Cette thèse a pour objectif l’amélioration des capacités communicatives des agents logiciels en interaction avec des humains. Dans ce but, nous proposons une méthodologie basée sur l’étude d’un corpus d’interactions Homme-Homme orientées vers la réalisation d’une tâche. Ce corpus est exploité en deux étapes essentielles : son enrichissement via une phase d’annotation et l’extraction de régularités. Nos travaux se concentrent sur les motifs d’interaction, c’est-à-dire les régularités observées au niveau de l’interaction dialogique. Nous étudions les structures de haut niveau spécifiables à partir de ces motifs dans le but de produire un modèle d’interaction pour un agent pouvant s’intégrer dans un processus délibératif. Pour modéliser de tels motifs dialogiques, nous proposons un cadre qui s’appuie sur les jeux de dialogue. Celui-ci se base sur les notions d’engagement social et de tableau de conversation qui permettent de s’abstraire des dispositions privées des agents prenant part à l’interaction. Nous illustrons la spécification de jeux de dialogue en appliquant l’ensemble des étapes de notre méthodologie à un corpus de dialogues orientés tâche. Les jeux spécifiés sont validés en montrant qu’ils décrivent de façon appropriée les motifs apparaissant dans le corpus de référence. Enfin, nous montrons l’intérêt interprétatif et génératif de notre modèle pour le fondement du comportement communicatif conventionnel d’un agent interagissant avec un humain. Nous implémentons ce modèle dans Dogma, un module exploitable par un agent afin de réguler son comportement communicatif dans un dialogue impliquant deux interlocuteurs. Abstract This research work aims at improving the communicative behaviour of software agents interacting with humans. To this purpose, we present a data-driven methodology based on the study of a taskoriented corpus consisting of Human-Human interactions. This corpus is processed in two main steps : its enrishment through an annotation phase and a regularity extraction phase. Our research work focuses on interaction patterns, that is to say regularities observed at the level of dialogical interaction. We study high-level structures that can be specified from these patterns. These structures form the basis of the interaction model for an agent that can be integrated into a deliberative process. We present a framework to specify dialogue games from these patterns based on the notion of social commitments and conversational gameboard. This framework is independent of the private states of interacting agents. We exemplify the specification of dialogue games by implementing all the steps of our methodology on a task-oriented corpus. The produced games are validated by showing that they appropriately describe the patterns appearing in a reference corpus. Eventually, we show that an agent can take advantage of our model to regulate its conventional communicative behaviour on both interpretative and generative levels. We implement this model into Dogma, a module that can be used by an agent to manage its communicative behaviour in a two-interlocutor dialogue.ii Remerciements Je tiens à remercier en premier lieu les rapporteurs de cette thèse, Frédéric Landragin et Nicolas Sabouret, pour l’intérêt porté à mes travaux et pour leurs remarques pertinentes et enrichissantes. Je remercie également Catherine Pelachaud pour m’avoir fait l’honneur de présider le jury et pour avoir éveillé ma curiosité sur la prise en compte de l’émotion dans la gestion du dialogue, ainsi que Jean-Christophe Routier pour avoir accepté d’examiner mon travail et pour avoir attiré mon regard sur les systèmes multiagent. Je tiens à remercier mon directeur de thèse, Jean-Pierre Pécuchet, pour la confiance qu’il m’a toujours accordée et pour m’avoir soutenu à chaque sollicitation. Un grand merci à Nathalie Chaignaud et Jean-Philippe Kotowicz, mes directeurs scientifiques qui m’ont suivi depuis mes débuts dans le département Génie Mathématique de l’INSA jusqu’à l’aboutissement de ce travail. Merci d’avoir toujours été là pour moi quand j’en avais besoin, et de m’avoir laissé une grande liberté dans mes travaux de recherche. Je tiens à souligner leur travail exemplaire de relecture et de correction aussi bien pour le manuscrit que pour la soutenance. Je souhaite tout particulièrement associer Alexandre Pauchet à mon encadrement scienti- fique. Merci pour ton dynamisme, ta curiosité, ton regard critique toujours pertinent, les discussions diverses et variées, les relectures, les corrections, et j’en passe ! Tu as permis de faire avancer et aboutir ces travaux. Merci à Philippe Mathieu de m’avoir accueilli au sein de l’équipe SMAC du Laboratoire d’Informatique Fondamentale de Lille (LIFL) en tant qu’ATER pendant cette quatrième année très enrichissante. J’en profite pour remercier tous les membres de cette équipe de recherche d’une qualité et d’un dynamisme exemplaire. Un grand merci à Maxime Morge pour son intérêt pour mon travail, pour ses remarques pertinentes et pour le concert d’Oldelaf ! Merci à Brigitte, Jean-François et Sandra pour leur gentillesse, leur compétence et l’aide qu’ils m’ont accordée tout au long de ce périple au LITIS. Merci à Nicolas Delestre, Nicolas Malandain, Romain Hérault et Laurent Vercouter pour les discussions enrichissantes à propos de l’enseignement et de la recherche. Merci à l’équipe ASI du midi avec qui j’ai passé des moments conviviaux, très plaisants et remplis de trolls : Alain, Gilles, Nico D., Nico M., Pierrick, Romain, Elsa, . . . Merci aux doctorants croisés tout au long de la thèse pour leur sympathie : Émilien, Amandine, Florian, Louise, Amnir, Yadu, Damien, et les lillois Lisa et Fabien. Merci à mes amis dont la présence compte beaucoup pour moi : Clément, Aurélie C., Nico, Philippine, Arnaud, Emma, Zach, Diana, Polo, Cocaux, Vincent, Claire, Carlo, André, Julien, Aurélie B., Rémi F., Ovidiu, Alina, Joseph, . . . Merci aux points de suspension qui représentent les amis que j’ai oublié de citer et qui me pardonneront. Merci à ma famille pour son soutien permanent : maman, papa, Aurélien, Justine, Romain, et Paul ! Merci enfin à Virginie avec qui je partage ma vie et qui m’a soutenu dans cet accomplissement.Table des matières Introduction 1 I Positionnement 9 1 Fondements pour la modélisation du dialogue 11 1.1 Généralités sur le dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1.1 Le dialogue est une activité conjointe et opportuniste . . . . . . . . . . . . . 11 1.1.2 Gestion de la tâche sous-jacente et gestion de la communication . . . . . . . 14 1.2 Actes de langage et actes de dialogue . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.2.1 Actes de langage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.2.2 Des actes de langage aux actes de dialogue . . . . . . . . . . . . . . . . . . 19 1.3 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2 Modélisation du dialogue : intention versus convention 29 2.1 Approches intentionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.1.1 Fondements des approches intentionnelles . . . . . . . . . . . . . . . . . . . 30 2.1.2 Approches par planification . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.1.3 Principales mises en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.1.4 Avantages et limites des approches intentionnelles . . . . . . . . . . . . . . . 38 2.2 Approches conventionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.2.1 Fondements des approches conventionnelles . . . . . . . . . . . . . . . . . . 39 2.2.2 Modèles fondés sur la structuration . . . . . . . . . . . . . . . . . . . . . . . 42 2.2.3 Modèles fondés sur les questions en discussion . . . . . . . . . . . . . . . . . 46 2.2.4 Avantages et limites des approches conventionnelles . . . . . . . . . . . . . . 52 2.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3 Vers des modèles mixtes à base de jeux de dialogue 57 3.1 Fondements des jeux de dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.1.1 Les jeux de dialogue comme scripts partagés . . . . . . . . . . . . . . . . . . 58 3.1.2 Les jeux de dialogue comme recettes partagées . . . . . . . . . . . . . . . . 60 3.1.3 Les jeux de dialogue comme projet conjoint . . . . . . . . . . . . . . . . . . 62 3.1.4 Synthèse sur la métaphore des jeux de dialogue . . . . . . . . . . . . . . . . 64 3.2 Les jeux de dialogue pour l’interaction Homme-Machine . . . . . . . . . . . . . . . . 64 3.2.1 Les jeux comme réseau de transition récursif . . . . . . . . . . . . . . . . . . 65 3.2.2 Les jeux comme unités de type initiative-réponse cohérentes . . . . . . . . . 66 3.2.3 Les jeux comme structures pour l’engagement dans le dialogue . . . . . . . . 69 3.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 3.3.1 Vers un modèle normatif des jeux de dialogue basé sur les engagements . . . 74iv Table des matières 3.3.2 Avantages et limites des jeux de dialogue . . . . . . . . . . . . . . . . . . . 78 3.3.3 Vers des modèles mixtes fondés sur des jeux de dialogue . . . . . . . . . . . 81 II Analyse des interactions humaines 83 4 Corpus Cogni-CISMeF 85 4.1 Constitution du corpus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.1.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 4.1.2 Recueil du corpus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 4.1.3 Transcription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 4.2 Processus de recherche d’information . . . . . . . . . . . . . . . . . . . . . . . . . . 88 4.2.1 Modèle standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 4.2.2 Un processus opportuniste . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 4.2.3 Un processus stratégique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.3 Analyse des entretiens du corpus . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.3.1 Situation dialogique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.3.2 Structure globale des entretiens . . . . . . . . . . . . . . . . . . . . . . . . . 91 4.3.3 Stratégies et tactiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.3.4 Rôles des participants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 5 Annotation du corpus et extraction de motifs 105 5.1 Processus d’annotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 5.1.1 Segmentation du dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 5.1.2 Configuration du processus d’annotation . . . . . . . . . . . . . . . . . . . . 108 5.1.3 Résultats du processus d’annotation . . . . . . . . . . . . . . . . . . . . . . 112 5.1.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 5.2 Processus d’extraction de motifs dialogiques . . . . . . . . . . . . . . . . . . . . . . 126 5.2.1 Configuration du processus d’extraction . . . . . . . . . . . . . . . . . . . . 127 5.2.2 Résultats du processus d’extraction . . . . . . . . . . . . . . . . . . . . . . . 128 5.2.3 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 5.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 III Modélisation des interactions humaines et mise en œuvre 143 6 Formalisation des motifs d’interaction 145 6.1 Modèle de l’engagement social et tableau de conversation . . . . . . . . . . . . . . . 145 6.1.1 Modèle de l’engagement social . . . . . . . . . . . . . . . . . . . . . . . . . 146 6.1.2 Tableau de conversation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 6.1.3 Interprétation des engagements du tableau de conversation . . . . . . . . . . 156 6.2 Jeux de dialogue et jeux de communication . . . . . . . . . . . . . . . . . . . . . . 158 6.2.1 Modèle de jeu de dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 6.2.2 Modèle de jeu de communication . . . . . . . . . . . . . . . . . . . . . . . . 161 6.2.3 Combinaisons et établissement de jeux de dialogue . . . . . . . . . . . . . . 161 6.2.4 Interprétation des jeux de dialogue dans le tableau de conversation . . . . . . 163Table des matières v 6.3 Spécification empirique de jeux depuis le corpus Cogni-CISMeF . . . . . . . . . . 163 6.3.1 Représentation du contenu sémantique . . . . . . . . . . . . . . . . . . . . . 164 6.3.2 Actes de dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 6.3.3 Jeu de communication et jeux de dialogue . . . . . . . . . . . . . . . . . . . 169 6.3.4 Couverture du corpus par les jeux définis . . . . . . . . . . . . . . . . . . . . 176 6.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 7 Mise en œuvre du modèle 183 7.1 Dogma : « DialOgue Game MAnager » . . . . . . . . . . . . . . . . . . . . . . . . 183 7.1.1 Architecture d’un système de dialogue Homme-Machine . . . . . . . . . . . 184 7.1.2 Exploitation des jeux de dialogue par un gestionnaire de dialogue . . . . . . . 184 7.1.3 Présentation de Dogma . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 7.1.4 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 7.2 Traces de fonctionnement de Dogma . . . . . . . . . . . . . . . . . . . . . . . . . 189 7.2.1 Tableau de conversation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 7.2.2 Exemple de jeu de requête . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 7.2.3 Exemple de jeu de question à choix multiples . . . . . . . . . . . . . . . . . 194 7.2.4 Exemple d’emboîtement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 7.3 Vers une validation de Dogma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 7.3.1 Test « à la Turing » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 7.3.2 Développement de systèmes de dialogue . . . . . . . . . . . . . . . . . . . . 207 7.4 Discussion : vers un agent dialogique utilisant les jeux . . . . . . . . . . . . . . . . . 207 Conclusion 211 Annexes 215 A Annexes de l’analyse du corpus Cogni-CISMeF 217 A.1 Le schéma XML d’annotation pour un acte de dialogue dans Gate . . . . . . . . . . 217 A.2 Alignement entre la taxonomie d’actes de dialogue de Loisel et DIT++ . . . . . . . 221 A.3 Annexes des résultats du processus d’annotation . . . . . . . . . . . . . . . . . . . . 223 A.3.1 Exemples de dialogues annotés du corpus Cogni-CISMeF . . . . . . . . . 223 A.3.2 Proportion des tours de parole annotés . . . . . . . . . . . . . . . . . . . . . 229 A.3.3 Accords inter-annotateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . 229 A.3.4 Analyse au niveau des segments fonctionnels . . . . . . . . . . . . . . . . . . 233 A.3.5 Analyse au niveau des dimensions . . . . . . . . . . . . . . . . . . . . . . . 234 A.3.6 Co-occurrence des dimensions . . . . . . . . . . . . . . . . . . . . . . . . . 236 A.3.7 Analyse au niveau des fonctions communicatives . . . . . . . . . . . . . . . 237 A.4 Annexes du processus d’extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . 247 A.4.1 Répartition entre le corpus d’extraction et le corpus de référence . . . . . . . 247 A.4.2 Cas de la fonction ExecNegativeAutoFB . . . . . . . . . . . . . . . . . . . . 248 A.4.3 Présence des motifs dans les entretiens du corpus d’extraction . . . . . . . . 248 A.4.4 Exemples supplémentaires d’instance de motif . . . . . . . . . . . . . . . . . 250vi Table des matières B Annexes du modèle 261 B.1 Événéments internes issus des jeux de dialogue . . . . . . . . . . . . . . . . . . . . 261 B.2 Jeu de communication de contextualisation . . . . . . . . . . . . . . . . . . . . . . 261 B.3 Jeu de dialogue de question à choix multiples . . . . . . . . . . . . . . . . . . . . . 261 C Annexes de la mise en œuvre 265 C.1 Exemples de code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265 C.2 Traces de fonctionnement du système . . . . . . . . . . . . . . . . . . . . . . . . . 268 C.2.1 Refus d’entrée dans le jeu . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268 C.2.2 Échec d’un jeu de question/réponse . . . . . . . . . . . . . . . . . . . . . . 269 C.2.3 Jeu d’évaluation : exemple de correction . . . . . . . . . . . . . . . . . . . . 273 Liste des dialogues 275 Liste des codes sources 278 Liste des algorithmes 280 Bibliographie 283Liste des tableaux 1 Organisation préférentielle des paires adjacentes . . . . . . . . . . . . . . . . . . . 5 1.1 Niveaux de la gestion de l’interaction selon Clark . . . . . . . . . . . . . . . . . . 15 1.2 Actes conversationnels multi-niveaux . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.1 Exemple de représentation d’un acte "Informer" comme une action de plan . . . . 33 2.2 Exemple de spécification d’une tâche dialogique de salutations dans DTask . . . 37 2.3 Gestion de feedbacks du système dans GoDiS . . . . . . . . . . . . . . . . . . . . 52 3.1 Exemple de jeu de dialogue d’aide dans l’approche de Levin et Moore . . . . . . 59 3.2 Exemples de jeux de dialogue dans l’approche de Mann . . . . . . . . . . . . . . 61 3.3 Exemple de macrojeu de présentation d’information dans l’approche de Mann . . 62 3.4 Exemple du jeu de dialogue d’explication dans l’approche de Maudet . . . . . . . 72 3.5 Jeu de communication d’évaluation dans l’approche de Maudet . . . . . . . . . . 73 4.1 Conventions de transcription du corpus Cogni-CISMeF . . . . . . . . . . . . . 88 4.2 Occurrences des différents types de verbalisation dans le corpus . . . . . . . . . . 93 4.3 Répartition des tactiques de réparation dans le corpus . . . . . . . . . . . . . . . 100 5.1 Segmentation et multifonctionnalité . . . . . . . . . . . . . . . . . . . . . . . . . 107 5.2 Répartition des dialogues par annotateur dans le processus d’annotation . . . . . 110 5.3 Nombre de fonctions communicatives annotées par corpus et par annotateur . . . 112 5.4 Proportion des tours de parole annotés dans le corpus . . . . . . . . . . . . . . . 113 5.5 Exemples de fonctions communicatives par dimension associées à un exemple typique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 5.6 Accord inter-annotateur pour la tâche de segmentation . . . . . . . . . . . . . . . 115 5.7 Accord inter-annotateur pour les tâches de segmentation et d’étiquetage par dimension . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 5.8 Accord inter-annotateur pour les tâches de segmentation et d’étiquetage pour les fonctions générales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 5.9 Nombre de fonctions par segment fonctionnel par annotateur, par corpus et au total . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 5.10 Répartition des segments fonctionnels en fonction du rôle . . . . . . . . . . . . . 118 5.11 Nombre d’actes de dialogue par tour en fonction du rôle . . . . . . . . . . . . . . 118 5.12 Proportions de fonctions annotées par dimension sur l’ensemble du corpus CogniCISMeF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 5.13 Proportion de fonctions annotées par catégories . . . . . . . . . . . . . . . . . . . 121 5.14 Répartition des fonctions dans la dimension Task par catégorie pour l’expert et le demandeur. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121viii Liste des tableaux 5.15 Répartition des fonctions dans la dimension Task pour la catégorie des fonctions fournissant de l’information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 5.16 Répartition des fonctions dans la dimension Task pour la catégorie des fonctions de discussion d’actions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123 5.17 Répartition des fonctions dans la dimension Task pour la catégorie des fonctions de recherche d’information . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124 5.18 Synthèse des fonctions annotées dans la dimension Auto-feedback . . . . . . . . . 125 5.19 Extrait des motifs dialogiques de vérification (catégorie de recherche d’information)131 5.20 Motifs dialogiques de question ouverte et de question à choix multiples . . . . . . 134 5.21 Motifs dialogiques de discussion d’action . . . . . . . . . . . . . . . . . . . . . . . 135 5.22 Motif dialogique d’accord (catégorie de transfert d’information) . . . . . . . . . . 138 6.1 Événements et combinaisons d’événements pour les engagements dialogiques en action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 6.2 Fonctionnalités générales du tableau de conversation . . . . . . . . . . . . . . . . 150 6.3 Opérations générales sur les engagements en action et propositionnel (création, suppression et annulation) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 6.4 Opérations sur les engagements en action (contextualisés ou non) . . . . . . . . . 151 6.5 Prédicats concernant les descriptions d’événement . . . . . . . . . . . . . . . . . 153 6.6 Relations entre un engagement en action dialogique et l’occurrence d’un événement154 6.7 Jeu de dialogue de requête . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 6.8 Opérations générales sur les engagements conjoints sur un jeu de dialogue . . . . 160 6.9 Fonctions des actes de dialogue de contextualisation . . . . . . . . . . . . . . . . 162 6.10 Exemples de propositions dans notre représentation sémantique . . . . . . . . . . 166 6.11 Exemples de question dans notre représentation sémantique . . . . . . . . . . . . 167 6.12 Relations de résolution et de pertinence . . . . . . . . . . . . . . . . . . . . . . . 167 6.13 Fonctions des actes de dialogue considérés dans notre formalisation . . . . . . . . 168 6.14 Type de contenu sémantique des actes de dialogue . . . . . . . . . . . . . . . . . 169 6.15 Jeu de communication d’évaluation : effets directs . . . . . . . . . . . . . . . . . 170 6.16 Jeu de communication d’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . 171 6.17 Jeu de communication d’évaluation : cas de la correction . . . . . . . . . . . . . . 171 6.18 Conditions d’entrée, de succès et d’échec des jeux de vérification, de vérification négative et de question oui/non . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 6.19 Jeu de dialogue de vérification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172 6.20 Jeu de dialogue de vérification négative . . . . . . . . . . . . . . . . . . . . . . . 172 6.21 Jeu de dialogue d’interrogation polaire . . . . . . . . . . . . . . . . . . . . . . . . 173 6.22 Jeu de dialogue d’interrogation ouverte . . . . . . . . . . . . . . . . . . . . . . . . 174 6.23 Jeu de dialogue de suggestion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 6.24 Jeu de dialogue d’offre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175 6.25 Jeux utilisables par un interlocuteur afin de modifier les états des engagements extra-dialogiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 6.26 Résultats de l’étude de la couverture des jeux . . . . . . . . . . . . . . . . . . . . 178Table des figures 1 Vision schématique des usages d’un corpus de traces enrichies pour la conception d’un agent interactif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Étapes de notre méthodologie basée sur un corpus . . . . . . . . . . . . . . . . . 4 1.1 Fonctions générales de DIT++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.2 Extraits des fonctions spécifiques à certaines dimensions de DIT++ . . . . . . . 26 2.1 Automate de l’initiateur pour la demande d’information dans l’approche de Pauchet 45 3.1 Jeu de dialogue de demande d’information dans l’approche de Lewin . . . . . . . 65 3.2 « Initiative-response units » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.3 Structure générale d’un jeu de dialogue dans l’approche d’Hulstijn . . . . . . . . 67 3.4 Échange de recherche d’information dans l’approche d’Hulstijn . . . . . . . . . . 68 3.5 Séquencement de jeux dans l’approche d’Hulstijn . . . . . . . . . . . . . . . . . . 68 3.6 Exemple de séquencement de jeux de recherche d’information dans l’approche d’Hulstijn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 4.1 Récolte et transcription de corpus dans notre méthodologie . . . . . . . . . . . . 85 4.2 Situation dialogique entre l’expert, l’utilisateur et CISMeF dans l’expérimentation 91 4.3 Structure des dialogues de recherche d’information collaborative observée . . . . 91 4.4 Enchaînement idéalisé des tactiques de réparation en fonction des résultats de la requête . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.1 Annotation du corpus Cogni-CISMeF et extraction de régularités . . . . . . . . 105 5.2 Répartition observée des instances de motifs dialogiques par catégorie dans le corpus d’extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 5.3 Répartition observée des instances de motifs dialogiques de recherche d’information dans le corpus Cogni-CISMeF . . . . . . . . . . . . . . . . . . . . . . . . . 131 5.4 Répartition observée des instances de motifs dialogiques de discussion d’action dans le corpus Cogni-CISMeF . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 5.5 Répartition observée des motifs dialogiques de transfert d’information dans le corpus Cogni-CISMeF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 5.6 Motif dialogique de correction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 6.1 États d’un engagement propositionnel . . . . . . . . . . . . . . . . . . . . . . . . 146 6.2 États d’un engagement en action. . . . . . . . . . . . . . . . . . . . . . . . . . . . 147 6.3 États d’un engagement conjoint sur un jeu de dialogue . . . . . . . . . . . . . . . 148 6.4 Principe de l’évolution du tableau de conversation en fonction de l’occurrence d’événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 6.5 Principe du jeu de communication de contextualisation pour un jeu de dialogue . 163x Table des figures 6.6 Structure sous-jacente commune aux jeux de dialogue d’interrogation ouverte et d’interrogation à choix multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . 173 7.1 Architecture de Dogma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187Introduction Des agents en interaction avec les humains, limités par leurs capacités dialogiques Les interactions entre des humains et des agents logiciels sont de plus en plus répandues, bénéficiant du rapprochement entre l’Interaction Homme-Machine (IHM) et l’Intelligence Arti- ficielle (IA) [Horvitz 1999a,Horvitz 2007,Lieberman 2009]. L’éventail des agents visant à offrir des capacités d’interaction proche des capacités humaines est important. Nous pouvons citer les agents interface [Lieberman 1997], les agents virtuels intelligents [Swartout 2006], les agents conversationnels animés [Cassell 2000] et les agents assistants d’initiative mixte [Tecuci 2007] 1 . Dans ce document, nous parlons plus généralement d’agent interactif pour désigner un agent destiné à interagir avec un humain. La conception d’agent interactif implique l’intégration de nombreux domaines de l’IA [Swartout 2006, Tecuci 2007] incluant la représentation des connaissances, la résolution de problème et la planification, l’acquisition de connaissances et l’apprentissage, les systèmes multiagent, la théorie du discours et l’interaction Homme-Machine. Sans surprise, la conception d’agents en interaction directe avec les humains est une tâche réputée difficile (voir par exemple les problé- matiques soulevées par l’interaction d’initiative mixte [Tecuci 2007] ou encore les environnements mixtes [Swartout 2006]). Les humains utilisent des processus de communication et de raisonnement complexes auxquels les agents doivent s’adapter. Un défi dans la conception des interactions Homme-Machine se situe en particulier au niveau de la problématique de la communication. La gestion du dialogue est vue comme un point clé car c’est un moyen de communication effi- cace pour les humains qui requiert peu ou pas d’entraînement pour être utilisé [Tecuci 2007]. De plus, c’est le moyen le plus à même de permettre la réalisation d’un véritable système collaboratif d’initiative mixte [Ferguson 2007]. La gestion du dialogue reste cependant un point délicat pour les Agents Conversationnels Animés (ACA) [Swartout 2006,Ales 2012]. Ainsi, la plupart des systèmes existants n’intègrent que des modules de gestion de dialogue basiques (e.g., voir le projet SEMAINE [Schroder 2010]). Une première approche consiste à rechercher des motifs textuels dans les énoncés de l’utilisateur vus comme une séquence de mots (e.g., le célèbre ELIZA [Weizenbaum 1966] ou l’« Artificial Intelligence Markup Language » (AIML) [Wallace 2003]). Des règles spécifient le motif textuel recherché et la réponse à produire par le système. Elles permettent au système de produire sa réponse en confrontant les règles à l’énoncé de l’utilisateur. Ce type d’approche ne donne que l’illusion d’un dialogue cohérent. La deuxième approche est particulièrement répandue (voir, e.g., le cas des systèmes de dialogue dans le domaine médical [Bickmore 2006]). Elle consiste à repré- senter la structure du dialogue via un automate fini (éventuellement hiérarchique) où chaque état représente l’état du dialogue et chaque transition, étiquetée par un énoncé, conduit à un nouvel 1. Respectivement, traductions de : « Autonomous Interface Agent », « Intelligent Virtual Agents » (IVAs), « Embodied Conversational Agents » (ECAs) et « Mixed-Initiative Assisting Agent » (MIAA)2 Introduction état (voir, e.g., [McTear 2004]). Cette approche décrit la structure de l’ensemble du dialogue. En pratique, elle s’avère rigide et limitée à des dialogues menés par le système. Enfin, l’approche « par cadre » 2 voit le dialogue comme un processus de renseignement d’un formulaire contenant un ensemble d’emplacements (cf., e.g., [Aust 1995] et le standard VoiceXML [Oshry 2007]). Les emplacements correspondent généralement à des informations nécessaires au système. La rigidité du modèle est réduite par l’algorithme de contrôle qui est chargé de déterminer les interventions du système sur la base du cadre. Par exemple, l’utilisateur peut remplir plusieurs emplacements avec un seul énoncé (ce qui était impossible avec l’approche précédente). Néanmoins, toutes ces approches se limitent aux dialogues menés par le système et dont les contributions sont fixées par avance. Elles ne laissent que peu de place à l’initiative de l’utilisateur. Une méthodologie pour concevoir le comportement des agents interactifs Notre point de vue sur la modélisation des interactions Homme-Machine se fonde sur le postulat que la conception d’agents en interaction avec les humains peut être améliorée par l’étude et l’analyse des interactions Homme-Homme et Homme-Machine. Dans ce but, nous adoptons une démarche interdisciplinaire mêlant psychologie cognitive et intelligence artificielle [Chaignaud 1996,Pauchet 2006]. La modélisation de la cognition humaine passe selon nous par l’étude de corpus de traces Homme-Homme [Chaignaud 1996,Pauchet 2006]. Dans cette perspective, nous laissons de côté les approches qui visent à travailler sur des exemples artificiellement créés (comme les « donkey sentences » [Geach 1962] ou bien des dialogues artificiels). Cette décision est motivée, d’une part, par le fait que l’accord sur l’acceptabilité des exemples créés est difficile à obtenir. D’autre part, ce genre d’approches conduit à la modélisation de phénomènes sans se préoccuper de savoir s’ils apparaissent fréquemment dans l’usage. Au contraire, une approche par corpus permet de se concentrer sur des phénomènes observables, attestés et quantifiables. De plus, l’accord est plus facile à obtenir que sur des exemples artificiels. Néanmoins, il est nécessaire d’être conscient des limites des approches par corpus. Premièrement, l’étude d’un corpus résulte d’une construction élaborée dans un cadre précis. En tant que telle, la généricité des résultats obtenus est à démontrer. Ensuite, un corpus ne fait pas apparaître de manière exhaustive l’ensemble des phénomènes que l’on cherche à étudier. L’étude de corpus est une approche inductive qui va de pair avec l’intervention de connaissances extérieures. Enfin, il faut bien garder à l’esprit qu’un corpus est une source de connaissances à partir de laquelle il est possible d’élaborer des modèles. Cependant, la quantité de phénomènes qui y occurrent est souvent loin de la quantité des phénomènes in fine modélisés. En ce sens, et en particulier dans le cas du dialogue, il est pour le moment illusoire de penser pouvoir modéliser l’ensemble des phénomènes observés car ils impliquent les champs de la pragmatique et de la sémantique dont les frontières restent mal connues [Maudet 2003b,Prévot 2004,Ginzburg 2010,Ginzburg 2012]. Nous prescrivons néanmoins l’usage de corpus de véritables dialogues Homme-Homme pour la modélisation des interactions Homme-Machine. La principale motivation est que les interactions Homme-Homme sont riches et naturelles. En conséquence, leur étude permet d’améliorer les systèmes d’interaction Homme-Machine existants afin de tendre vers une interaction plus fluide et plus naturelle. De plus, un certain nombre d’études met en évidence l’utilité de corpus Homme- 2. Traduction de « Frame-based approach »3 Homme pour la modélisation des interactions Homme-Machine [Bilange 1991a, Pauchet 2006, Loisel 2008,Orkin 2013]. Notre méthodologie s’appuie sur un corpus de traces Homme-Homme. Ces traces sont récoltées suite à une expérimentation conçue spécifiquement et mettant en interaction des participants. Elles incluent généralement l’enregistrement [Chaignaud 2000,Pauchet 2006,Orkin 2013] (i) des actions physiques liées à la tâche (e.g., ajout d’un mot clé à une requête d’un moteur de recherche, envoi de la requête, etc.), (ii) des interactions dialogiques entre les participants. Schématiquement (cf. figure 1), il est possible d’analyser sur deux niveaux ce corpus pour la Figure 1: Vision schématique des usages d’un corpus de traces enrichies pour la conception d’un agent interactif. Les cadres en trait plein représentent les points abordés dans cette thèse. Les cadres en pointillé représentent les suites potentielles de cette thèse. production du modèle d’un agent prenant le rôle d’un des participants [Chaignaud 2000,Pauchet 2006,Orkin 2013] : au niveau de la tâche (e.g., en terme de planification) et au niveau des interactions entre les participants. Ces analyses se focalisent sur la recherche de régularités dans les traces sous forme de motifs récurrents au niveau de la tâche et au niveau de l’interaction dialogique [Chaignaud 2000,Pauchet 2006,Orkin 2013]. L’approche « Collective Artificial Intelligence » [Orkin 2009] est proche de notre démarche aussi bien au niveau méthodologique (récolte de traces Homme-Homme et étude des motifs ré- currents) que par l’objectif d’amélioration du comportement des agents interagissant avec des humains. Elle se concentre sur les agents interagissant avec des humains dans des environnements virtuels (EV) comme un jeu vidéo. Leur approche permet d’apprendre automatiquement des scripts [Schank 1977] (connaissances socialement établies) sans intervention humaine depuis un grand nombre de logs d’interaction Homme-Homme incluant des actions physiques dans un EV et des énoncés saisis via un chat. Cette approche n’implique pas de structures de haut niveau (e.g., des buts et sous-buts). Les plans d’actions automatiquement appris sont définis en terme de séquences d’actions issues des logs. De même pour les instances de dialogue qui sont défi- nies en terme de séquence de motifs textuels de surface. Plans d’action et instances de dialogue sont stockés dans une mémoire collective, qui est exploitée par une architecture d’agent appelée proposition-critique [Orkin 2009]. Dans cette architecture, l’agent réévalue les plans disponibles dans la mémoire collective dès qu’il détecte une anomalie dans son plan courant (partie proposition) pour sélectionner le plan qui dévie le moins de la norme (partie critique). La conclusion de cette approche après expérimentation est que des agents basés sur ces structures de bas niveau permettent d’assurer une faible cohérence locale au niveau de l’interaction mais pas de cohérence globale [Orkin 2009]. Cette étude montre qu’il est nécessaire de considérer des structures de haut4 Introduction niveau pour la tâche (e.g., hiérarchie de buts) et le dialogue (e.g., formaliser les énoncés en terme de types de phrase et de contenu sémantique) pour atteindre une cohérence globale. Il est ainsi nécessaire d’exploiter un corpus via des structures de haut niveau intégrables dans le processus délibératif d’un agent interactif. Contrairement à leur objectif initial, elle montre la nécessité d’intégrer l’humain dans le processus global afin d’enrichir les annotations avec de nouvelles connaissances au niveau de la tâche et du dialogue. L’intervention humaine peut être directe de façon manuelle ou semi-automatique (e.g., [Orkin 2010, Ales 2012]). Elle peut également être indirecte via l’usage d’outils d’annotation automatique entraînés sur des annotations effectuées par des humains (e.g., [Stolcke 2000] en annotation automatique d’actes de dialogue). À la lumière de ces résultats, notre méthodologie vise à représenter un corpus de traces sous forme matricielle via une étape d’enrichissement du corpus réalisée par intervention humaine directe ou indirecte. Cette forme matricielle permet l’extraction de motifs récurrents définis comme une séquence d’annotations dont l’arrangement se produit dans plusieurs traces [Ales 2012]. Ces régularités doivent ensuite être exploitées pour spécifier des structures de plus haut niveau. Ce document se focalise sur les interactions dialogiques entre les participants et vise la production d’un modèle d’interaction pour un agent interactif capable de s’intégrer dans un processus délibératif plus général intégrant le niveau de la tâche (représenté par les traits pleins sur la figure 1). L’application de la méthodologie dans cette thèse se décompose en étapes pré- sentées en figure 2 [Ales 2012]. Elle est fondée sur la collecte d’un corpus de dialogues à partir Collecte et numérisation signaux bruts Transcription et codage dialogues bruts dialogues annotés Extraction de régularités modèle Annotation Figure 2: Étapes de notre méthodologie basée sur un corpus de dialogues [Ales 2012] d’une expérimentation impliquant des utilisateurs visés par le futur système. La collecte peut être effectuée en format audio, vidéo ou directement textuel (e.g., via un chat). Puisque notre méthodologie est ascendante, les expérimentations doivent dépendre de la tâche visée par le futur agent. Nous encourageons l’usage de corpus de dialogues finalisés (i.e., orientés vers la réalisation d’une tâche précise). L’étape de transcription permet de transcoder les données brutes dans un format exploitable pour l’analyse. Elle permet de conserver un certain niveau de détails (énoncé, prosodie, pauses, etc.). Les caractéristiques à conserver dépendent des phénomènes que l’agent doit exhiber. L’étape d’annotation est l’étape d’enrichissement du corpus réalisée de manière directe ou indirecte par intervention humaine. Elle permet d’ajouter des connaissances en fonction de critères définis par un schéma d’annotation prédéfini (e.g., actes de dialogue, émotion, etc.). Cette étape inclut généralement une phase de segmentation visant à décomposer le corpus en unités définies par le schéma d’annotation choisi. À l’issue de cette étape, une représentation multidimensionnelle de chaque unité d’interaction est obtenue, conduisant à l’obtention d’une représentation matricielle du corpus. Les motifs d’interaction sont extraits par la suite, et constituent la base du modèle d’interaction de l’agent. Compte tenu de notre représentation matricielle, un motif dialogique est défini comme une séquence d’annotations dont l’arrangement se produit dans plusieurs dialogues.5 Motifs d’interaction et structure du dialogue Notre étude se concentre sur l’extraction et la modélisation de motifs récurrents dans les traces d’interaction dialogique appelés motif d’interaction ou motif dialogique. Allwood constate trois types de régularités dans le dialogue [Allwood 1994] : (i) celles qui dépendent des relations au sein d’un énoncé entre ses différentes parties, (ii) celles qui dépendent des relations entre énoncés, (iii) et celles qui dépendent des relations entre des facteurs globaux et les énoncés. Ici, énoncé est à prendre au sens d’unité de conversation. Les régularités qui nous intéressent sont celles qui dépendent des relations entre les énoncés. Autrement dit, un motif dialogique est une séquence ordonnée d’énoncés qui réapparaît fréquemment dans plusieurs dialogues (par exemple, une paire question/réponse) [Hulstijn 2000a]. L’étude des corpus de dialogues Homme-Homme fait apparaître un certain nombre de motifs dialogiques identifiables par des caractéristiques de surface des énoncés (voir, e.g., [Levin 1977, Mann 1988, Hulstijn 2000b, Pauchet 2006]). Parmi ces études, les plus influentes proviennent du champ de l’analyse de la conversation [Schegloff 1973, Sacks 1974]. Ce dernier se concentre sur l’étude de corpus de conversations retranscrites, sans a priori théorique tel que des schémas d’annotation. Le but est de produire une analyse objective issue de l’observation de régularités dans les corpus. L’analyse conversationnelle a notamment mis en avant la notion de tour de parole et a décrit précisément le processus de gestion de tour de parole entre les interlocuteurs. Ces travaux sont généralement utilisés comme point de départ dans les systèmes de dialogue HommeMachine (voir, e.g., [Kronlid 2008]). Ce champ a également montré que les énoncés ont tendance à intervenir sous forme de paires dans une conversation : les paires adjacentes [Schegloff 1973]. L’exemple classique est la paire question/réponse. Selon [Schegloff 1973], les paires adjacentes ont les propriétés suivantes : (i) Elles consistent en deux énoncés ordonnés : la première partie et la seconde partie. (ii) Les deux parties sont produites par des locuteurs différents. (iii) Chaque partie est typée de manière à spécifier quelle partie vient en premier et laquelle en second. (iv) La forme et le contenu de la seconde partie dépendent du type de la première partie. (v) Étant donnée la première partie, la seconde partie de la paire est conditionnellement pertinente – i.e., pertinente et prévisible – en tant qu’énoncé suivant. Ces observations ont conduit certains chercheurs à proposer l’idée plus large d’organisation préférentielle [Levinson 1983]. L’idée est que les secondes parties des paires adjacentes peuvent être classées selon un ordre préférentiel. Cet ordre est lié au caractère habituel de l’énoncé. Publiquement, les initiateurs d’une paire préfèrent son accomplissement à sa modification, sa modification à son refus et son refus à sa non-considération. Le tableau 1 présente quelques exemples d’organisation préférentielle de paires adjacentes. Première partie Question Requête Offre Seconde partie . . . préférée Réponse attendue Acceptation Acceptation . . . non-préférée Réponse inattendue Refus Refus Tableau 1: Organisation préférentielle des paires adjacentes Le champ de l’analyse de la conversation est fécond. Il a produit de nombreux résultats dont la mise en avant de la notion de paire adjacente, le motif d’interaction dialogique minimal. Il a également montré la structuration de la conversation sous forme de combinaisons de paires adjacentes (pré-séquence et emboîtement). Cette approche est descriptive et l’utilisation directe6 Introduction de ces résultats est difficile. Elle montre néanmoins que le dialogue est un objet structuré sans imposer pour autant une structure rigide. L’idée pour un modèle de dialogue est de produire des structures qui vont expliquer l’émergence de structures telles que celles mises en avant par l’analyse de la conversation. Localement, le dialogue est structuré au niveau des paires adjacentes. Au niveau intermédiaire, le dialogue est structuré par les combinaisons de séquences. Globalement, le dialogue est structuré par l’agencement des séquences (e.g., salutations/réalisation de la tâche/clôture). Notre problématique Comme nous l’avons déjà dit, cette thèse vise à observer et modéliser les motifs d’interaction dans l’objectif de leur intégration dans une architecture d’agent délibératif interagissant avec un humain. En outre, les questions centrales de cette thèse sont : sur quelle base théorique peut-on interpréter ces motifs d’interaction ? Ces motifs d’interaction ont-ils un intérêt pour la modélisation du dialogue pour un agent interactif ? Si oui, quelles sont les structures adaptées à la modélisation des motifs d’interaction pour produire un modèle de l’interaction pour un agent en interaction avec un humain ? Le point défendu est que les motifs récurrents sont les manifestations de conventions d’interactions dialogiques observées dans et parfois au-delà du corpus. Les conventions d’interaction dialogiques sont alors l’objet d’étude privilégié. Nous défendons l’intérêt de la modélisation de ces motifs récurrents dans le cadre plus général de la modélisation des conventions dialogiques. La gestion de l’interaction avec un utilisateur humain pour la réalisation d’une tâche est alors conçue comme mêlant deux niveaux : un haut niveau constitué de raisonnements délibératifs, et un bas niveau constitué de comportements réactifs guidés par les conventions dialogiques. Dans cette optique, il est possible de concevoir un modèle conventionnel des interactions enrichi par les motifs récurrents observés dans plusieurs corpus. Ce modèle peut être exploité par un agent en interaction avec un humain pour gérer la part conventionnelle de l’interaction. Plan de la thèse Ce document est constitué de trois parties. La première partie présente notre positionnement par rapport à certains travaux antérieurs. Nous y parcourons les différentes approches de modélisation du dialogue pour parvenir à la conclusion de la nécessité d’aller vers des approches mixtes. Nous nous intéressons en particulier à la métaphore des jeux de dialogue qui semble prometteuse pour ce genre d’approche. La deuxième partie décrit les étapes de recueil, d’annotation et d’extraction de motifs d’interaction de notre méthodologie appliquées à un corpus de dialogues entre un expert et un utilisateur pour une tâche de recherche d’information dans le domaine médical. La troisième partie présente le formalisme adopté pour modéliser les conventions d’interaction dialogique basé sur les jeux de dialogue. Nous définissons les jeux de dialogue correspondant aux motifs que nous avons extraits. Puis nous présentons la mise en œuvre de Dogma 3 : un module normatif de l’interaction conventionnelle basé sur les jeux de dialogue et utilisable par un agent interactif pour la gestion de la part conventionnelle du dialogue. Ces trois parties se décomposent en les 7 chapitres suivants : 3. Dogma pour « DialOgue Game MAnager »7 — Le chapitre 1 introduit des notions indispensables à la modélisation du dialogue pour l’interaction Homme-Machine. Il détaille les caractéristiques du dialogue Homme-Homme qui entrent en jeu dans nos travaux. Nous nous intéressons à la théorie des actes de langage, fondement des modèles de l’énoncé en intelligence artificielle. Nous soulignons l’intérêt de passer à une approche contextuelle des actes de dialogue. — Le chapitre 2 présente deux grandes catégories d’approche de modélisation du dialogue qui diffèrent par leur interprétation des motifs d’interaction. Les approches intentionnelles interprètent ces régularités comme la preuve d’un plan de la part des interlocuteurs tandis que les approches conventionnelles les voient comme des conventions établies. Après avoir exposé des exemples représentatifs de chacune de ces approches, nous soulignons les arguments en faveur de leur complémentarité. — Le chapitre 3 présente les approches mixtes qui cherchent à combiner les avantages des approches intentionnelles et conventionnelles. Nous nous concentrons sur la métaphore des jeux de dialogue qui vise à définir une structure permettant de formaliser les motifs d’interaction observés dans des conversations humaines en vue de leur intégration dans un processus délibératif. Nous défendons l’intérêt d’aller vers une architecture d’agent mixte réactive/délibérative basée sur les jeux de dialogue vus comme structure d’engagements. — Le chapitre 4 illustre les phases de récolte et de transcription de notre méthodologie sur le corpus Cogni-CISMeF. Les entretiens du corpus sont décrits par l’exposition d’une structure haut niveau commune, relative à la tâche de recherche d’information collaborative. — Le chapitre 5 présente la réalisation des processus d’annotation du corpus Cogni-CISMeF et d’extraction de motifs dialogiques sur le corpus annoté. Les résultats de chacun de ces processus sont analysés et récapitulés. La réalisation de ces étapes conduit à la constitution d’une bibliothèque de motifs d’interaction récurrents prenant majoritairement la forme de paires adjacentes. — Le chapitre 6 expose un cadre pour modéliser les motifs dialogiques observés dans le corpus Cogni-CISMeF, basé sur l’approche des jeux de dialogue comme structure d’engagements. La spécification des jeux de dialogue depuis les motifs dialogiques que nous avons extraits est illustrée. Ces jeux forment la base du modèle d’interaction d’un agent interactif. La couverture de ces jeux est validée face au corpus de référence conservé à cet effet lors du processus d’extraction. — Le chapitre 7 montre l’intérêt des jeux de dialogue pour la gestion du comportement communicatif conventionnel d’un agent interactif. Il présente la mise en œuvre du modèle dans Dogma, un module basé sur les jeux de dialogue exploitable par un agent interactif afin de réguler son comportement communicatif. Des exemples illustrant le fonctionnement du module sont exposés. Nous décrivons plusieurs scénarios d’évaluation pour Dogma à moyen et long terme. Puis, nous donnons quelques pistes pour l’intégration de ce système dans le processus délibératif d’un agent interactif.Première partie PositionnementChapitre 1 Fondements pour la modélisation du dialogue Sommaire 1.1 Généralités sur le dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 1.1.1 Le dialogue est une activité conjointe et opportuniste . . . . . . . . . . . . . . 11 1.1.2 Gestion de la tâche sous-jacente et gestion de la communication . . . . . . . . 14 1.2 Actes de langage et actes de dialogue . . . . . . . . . . . . . . . . . . . . . . . 16 1.2.1 Actes de langage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.2.2 Des actes de langage aux actes de dialogue . . . . . . . . . . . . . . . . . . . 19 1.3 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Ce chapitre introduit les notions indispensables à la modélisation du dialogue pour l’interaction Homme-Machine. La section 1.1 se concentre sur la présentation des caractéristiques importantes du dialogue dans cette optique. Puis, nous abordons en section 1.2 la théorie des actes de langage qui est à la base du modèle de l’énoncé dominant en intelligence artificielle. Enfin, nous dressons une synthèse en section 1.3 qui apporte un regard critique sur la théorie des actes de langage à la lumière des caractéristiques du dialogue que nous avons présentées. 1.1 Généralités sur le dialogue Dans cette section, nous présentons les caractéristiques importantes du dialogue HommeHomme pour la modélisation de l’interaction Homme-Machine à propos d’une tâche. Nous limitons nos considérations au dialogue à deux participants. Le but de cette section est de présenter un ensemble de notions utilisées dans la suite du manuscrit. Dans un premier temps, nous voyons que le dialogue est une activité conjointe où les interlocuteurs cherchent à se coordonner (cf. section 1.1.1). Nous soulignons la vision opportuniste du dialogue qui insiste sur le fait que le dialogue est co-construit et co-contrôlé par les interlocuteurs. Puis, nous traitons de la multidimensionnalité du dialogue (cf. section 1.1.2). Le dialogue sert à gérer la tâche sous-jacente mais également l’interaction en elle-même. Conséquence de la multidimensionnalité du dialogue, nous constatons que les énoncés des interlocuteurs sont souvent multifonctionnels et abordent plusieurs dimensions de la gestion du dialogue simultanément. 1.1.1 Le dialogue est une activité conjointe et opportuniste Les activités conjointes sont un type particulier d’activités collectives (une activité dans laquelle plusieurs individus prennent part). Pour Clark [Clark 1996] (p. 37-38), une activité12 Chapitre 1 : Fondements pour la modélisation du dialogue conjointe est une activité : (i) qui est effectuée par deux participants ou plus ; (ii) dans laquelle les participants jouent un rôle public ; (iii) dans laquelle les participants essayent d’établir et d’atteindre des buts publics ; (iv) dans laquelle les participants peuvent poursuivre des buts privés ; (v) qui est composée d’actions ou d’activités conjointes ; (vi) dans laquelle les participants sont susceptibles d’utiliser des procédures spécifiques pour atteindre leurs buts ; (vii) dans laquelle les participants s’accordent sur un début et une fin ; (viii) qui peut être simultanée ou séquencée. L’exemple classique d’une activité conjointe est celle d’un duo en musique. Les activités conjointes se décomposent en actions conjointes. Ces dernières sont elles-même constituées d’actions individuelles. Celles-ci peuvent se décomposer en deux sous-types qui se différencient par la notion clé de coordination : les actions autonomes et les actions participatives. L’individu qui réalise une action autonome ne cherche pas à se coordonner avec un autre participant. Au contraire, une action conjointe requiert la coordination des actions individuelles de deux personnes ou plus, i.e. répondre à la question « qui fait quoi et quand ? ». Une action conjointe est donc plus que la somme des actions individuelles. Au-delà même de la coordination, un individu qui agit conjointement doit prendre en compte les actions des autres participants et les considérer comme faisant partie de l’action conjointe. Ces actions individuelles d’une action conjointe sont les actions participatives. [Clark 1996] suggère qu’une action conjointe peut être coordonnée parce qu’elle peut se voir attribuer : (i) une entrée dans l’action conjointe, (ii) un corps, i.e. l’action conjointe en elle-même, et (iii) une sortie de l’action conjointe. Autrement dit, les participants doivent aller d’un état où ils ne sont pas engagés dans l’action conjointe, à un état où ils y sont engagés puis de nouveau dans un état hors de l’action conjointe. Dans une telle action, les participants doivent se coordonner sur ces trois caractéristiques. Pour assurer la synchronisation de leurs actions, les participants doivent se coordonner sur l’entrée et la sortie de chaque action conjointe. Selon [Clark 1996], les participants y arrivent en suivant des stratégies de coordination (cadence, enchaînement, . . . ) qui sont caractérisées par le principe de synchronisation : dans les activités conjointes, les participants synchronisent leurs processus principalement en coordonnant les temps d’entrée et les actions participatives pour chaque action conjointe. Autrement dit, les actions conjointes sont principalement organisées autour de leurs entrées et des actions participatives attendues. Clark avance l’idée de projet conjoint. Un projet conjoint est une action conjointe proposée par un des participants qui peut être acceptée et réalisée par tous (ou bien refusée). Considérons les deux énoncés du dialogue 1.1 qui forment une paire adjacente. Celle-ci peut être vue comme la réalisation de l’activité conjointe suivante : 1. S et H participe à un échange d’information. 2. S participe à 1 en posant une question. 3. H participe à 1 en répondant à la question. S1 : ca date de quand ça ? H2 : oh il est de 82 Dialogue 1.1 – Un exemple de projet conjoint d’échange d’information (entretien VD06) Selon Clark, la première partie de l’échange est une question qui forme une proposition d’entrée dans un projet conjoint. Elle établit les participants (le locuteur et son interlocuteur),1.1. Généralités sur le dialogue 13 le temps d’entrée (marqué par la réalisation de la question) et enfin le contenu de l’action conjointe. En outre, la question produite est également l’action participative de l’interlocuteur S attendue dans l’action conjointe. La réponse à la question réalise l’acceptation du projet conjoint en plus de la réalisation de l’action participative attendue. Les projets conjoints mettent en avant le fait que le dialogue est contrôlé conjointement par les interlocuteurs : l’entrée dans un projet commun requiert l’engagement des deux participants. L’auteur va même plus loin en posant que les paires adjacentes sont les projets communs minimaux. L’idée est qu’une paire adjacente établit avec un effort conjoint minimum les participants, le temps d’entrée et le contenu de l’action conjointe. Les participants sont établis par l’initiateur de la première partie de la paire et son destinataire. Le temps d’entrée est marqué par le déclenchement de la première partie de la paire. Le contenu est déterminé par la première partie de la paire et la seconde partie attendue. Enfin, Clark défend une vision opportuniste du dialogue : les participants s’engagent dans une activité conjointe complexe sans pouvoir connaître à l’avance ce qu’ils vont y faire. Le dialogue est vu comme une activité dans laquelle les actions des participants sont locales et opportunistes. Pour Clark, le dialogue est contrôlé conjointement par les interlocuteurs via des projets conjoints. Il émerge alors sous la forme de projets communs étendus. Ces derniers sont obtenus par combinaison de projets communs minimaux, i.e. les paires adjacentes. Le champ de l’analyse de la conversation fait apparaître que la stricte adjacence n’est pas toujours respectée. Les paires adjacentes sont en fait utilisées pour créer des séquences plus longues via des combinaisons de séquences : la pré-séquence et l’emboîtement. Les pré-séquences sont des séquences qui préparent une autre séquence en vérifiant que des conditions préparatoires sont vérifiées (e.g., pré-question, pré-invitation, pré-requête). Le dialogue 1.2 présente un exemple de pré-séquence de clôture. S1 : Est-ce que vous voudriez préciser quelque chose ? H2 : Non c’est bon S3 : donc on va s’arrêter là H4 : Ok. Dialogue 1.2 – Exemple de pré-séquence de clôture (entretien AL06). La séquence d’énoncés [1;2] prépare la séquence d’énoncés [3;4]. Les séquences emboîtés 1 sont des exemples typiques qui ne respectent pas l’adjacence stricte. Classiquement, elles prennent la forme d’une ou plusieurs séquences s’emboîtant entre deux parties d’une paire adjacente (e.g., pour introduire une clarification, une explication, une reformulation). Le dialogue 1.3 présente un exemple d’emboîtement de paires adjacentes. S1 : Tu viens au cinéma avec nous ce soir ? H2 : Vous allez voir quel film ? S3 : On va voir « Holy Motors ». H4 : OK, je viens. Dialogue 1.3 – Exemple de séquences emboîtées. Entre la première partie de paire S1 et la seconde partie H4 est emboîtée la séquence [2;3]. Enfin, Clark propose la notion d’enchaînement [Clark 1996]. L’idée est que la seconde partie 1. Traduction de « Side sequence ».14 Chapitre 1 : Fondements pour la modélisation du dialogue d’une paire forme généralement la première partie d’une autre. Le dialogue 1.4 présente un exemple de séquence en trois temps de type question/réponse/évaluation. S1 : donc c’est des douleurs articulaires à quel niveau ? H2 : au niveau des genoux et autres S3 : d’accord Dialogue 1.4 – Exemple de séquences enchaînées (entretien AL06) de type question/réponse/é- valuation. Ainsi, les projets communs minimaux jouent le rôle de briques minimales dans la construction d’une interaction étendue. En résumé, le dialogue peut être vu comme une activité conjointe opportuniste [Clark 1996]. Plus précisément, le dialogue implique la combinaison d’actions conjointes à différents niveaux. 1.1.2 Gestion de la tâche sous-jacente et gestion de la communication Axe régissant et axe incident La complexité de l’étude et de la modélisation du dialogue est due à l’une de ses grandes forces : le dialogue sert à faire progresser la tâche qui le motive, mais surtout il est utilisé pour la gestion des processus de communication. En d’autres termes, le dialogue sert à gérer la tâche sous-jacente, et le dialogue en lui-même ! À ce sujet, Luzzati distingue deux axes de déroulement du dialogue [Luzzati 1989]. L’axe régissant est dédié à la réalisation de la tâche tandis que l’axe incident est dédié à la gestion de l’interaction (e.g., les sous-dialogues de clarification). En cas de problème de communication, le dialogue change d’axe pour passer sur l’axe incident. On parle alors de dialogue incident (e.g., les deux derniers tours de parole de : « Je m’appelle Guillaume. – Pardon ? – Je suis Guillaume. »). Clark propose la notion de track qui affine la vision proposée par Luzzati [Clark 1996]. Soulignons la présence de deux tracks : la première pour gérer la tâche sous-jacente (ce que Clark nomme l’« official business »), et la deuxième pour gérer la communication qui a lieu sur la track 1. Il précise que ces tracks sont récursives mais dépassent rarement les profondeurs 3 ou 4. Enfin, il note que la présence de meta-communication n’a pas pour unique but de corriger des problèmes. Au contraire, les interventions meta-communicatives sont systématiques et essentielles au bon déroulement de la communication. Il note la présence de signaux spécialement dédiés à la meta-communication comme les « ok », « mmh mmh », les hochements de tête, les sourires, etc. Ainsi, il ne faut pas réduire la meta-communication à une vision simpliste où le dialogue se déroulerait en segment strictement sur un axe ou l’autre. Les signaux produits recouvrent généralement les deux axes. La dissociation entre les deux axes de déroulement du dialogue est une première étape vers la considération de sa complexité. Mais la gestion de la communication intègre différents processus qui peuvent intervenir sur plusieurs niveaux. Processus de gestion de l’interaction et niveaux La gestion de l’interaction fait apparaître différents processus. Allwood propose le concept d’« Interactive Communication Management (ICM) » pour désigner la communication en rapport avec la gestion de l’interaction dialogique [Allwood 1995]. Il distingue la gestion des tours1.1. Généralités sur le dialogue 15 de parole, la structuration du dialogue (comme l’introduction de sujet de discussion, e.g., « Abordons la question de l’interopérabilité des systèmes ») et les feedbacks (signaux de retour). En plus de l’ICM, il distingue une dimension de gestion de la communication personnelle 2 dé- diée aux processus que le locuteur met en jeu lors de la production de son énoncé (e.g., des auto-corrections). Bunt divise la gestion de l’interaction en plusieurs dimensions [Bunt 2009]. Il considère les dimensions de feedbacks, de structuration du dialogue, de gestion de tour de parole et de gestion de la communication personnelle envisagées par Allwood. Il ajoute la gestion du temps (e.g., les pauses), la gestion du contact, la gestion de la communication du partenaire (e.g., la complétion d’une réponse). Plusieurs auteurs ont mis en évidence le fait que ces processus interviennent sur plusieurs niveaux. Allwood liste quatre niveaux sur lesquels peut intervenir la gestion de la communication : le contact (gestion de l’attention), la perception, la compréhension et le niveau de réaction [Allwood 1995]. De la même manière, Clark indique que l’usage du langage implique au moins quatre niveaux différents d’actions conjointes [Clark 1996] présentés dans le tableau 1.1. Niveau Action du locuteur (A) Action de l’allocutaire (B) 4 A propose un projet conjoint w à B B considère la proposition w de A 3 A signifie p à B B comprend p 2 A présente un signal s à B B identifie s 1 A exécute un comportement c pour B B est attentif à c Tableau 1.1: Niveaux de la gestion de l’interaction selon Clark [Clark 1996] Le niveau 1 est le niveau de gestion de l’attention. Les interlocuteurs s’assurent qu’ils sont en mesure de percevoir les messages des participants du dialogue. Le niveau 2 peut être vu comme le niveau de perception, tandis que le niveau 3 est celui de la compréhension. Enfin le dernier niveau consiste en la proposition d’une action conjointe considérée par le partenaire. Selon Clark, ces niveaux forment une échelle d’actions avec les propriétés de causalité ascendante, de réalisation ascendante et d’évidence descendante. La causalité ascendante spécifie que les actions d’un niveau inférieur sont exécutées afin de réaliser les actions du niveau supérieur. Ainsi, B est attentif au comportement de A afin de pouvoir identifier le signal présenté par A, et ainsi de suite jusqu’au niveau 4. Cette propriété conduit à celle de « réalisation ascendante » qui stipule que les actions ne peuvent être réalisées que du niveau le plus bas vers un des niveaux supérieurs dans l’échelle d’actions. Pour finir, cette dernière propriété implique l’évidence descendante : dans une échelle d’actions, l’évidence de réussite d’un niveau est également la preuve de réussite des niveaux qui lui sont inférieurs. Ainsi, comprendre une question (niveau 3) implique que la question a été perçue (niveau 2) et que le contact a été établi (niveau 1). Cependant, la question peut ne pas être acceptée (niveau 4). Bunt affine ces niveaux et considère : l’attention, la perception, l’interprétation, l’évaluation et l’exécution [Bunt 2009]. Selon nous, les niveaux d’interprétation et d’évaluation sont à rapprocher du niveau de compréhension de Clark (niveau 3). Il s’agit de comprendre le signal d’un point de vue sémantique (établir la fonction communicative et le contenu sémantique) et pragmatique (e.g., la question a-t-elle déjà été répondue ?). Ces niveaux sont préparatoires au niveau d’exécution qui correspond au niveau de considération chez Clark, et de réaction chez Allwood. Le dialogue est multidimensionnel : il est utilisé pour faire progresser sa tâche sous-jacente et 2. Traduction de « Own Communication Management » (OCM)16 Chapitre 1 : Fondements pour la modélisation du dialogue différents processus de gestion de l’interaction. La prochaine section traite de l’impact de cette multidimensionnalité sur les signaux produits par les interlocuteurs. Multifonctionnalité des énoncés Les énoncés de dialogue sont souvent multifonctionnels [Allwood 1992, Traum 1992, Bunt 2011b] : un énoncé aborde plusieurs dimensions du dialogue simultanément. Cela est principalement dû à la multidimensionnalité du dialogue qui est lui-même utilisé afin de gérer la tâche sous-jacente (obtenir une information, négocier un accord, etc.) mais aussi l’interaction (gestion des tours de parole, du contact, de la compréhension, etc.). Une étude empirique sur des corpus de dialogues Homme-Homme a montré dans le plus contraignant des cas qu’en moyenne un énoncé sur trois aborde deux dimensions du dialogue [Bunt 2011b]. « Le plus contraignant des cas » est à comprendre au sens où un énoncé est la plus précise des unités segmentables dans le dialogue. Le dialogue 1.5 présente un exemple d’énoncé multifonctionnel. S1 : [. . . ] on peut enlever analyse H2 : alors enlevons analyse S3 : et diagnostic H4 : oui Dialogue 1.5 – Exemple de dialogue entremêlant avancement de la tâche et gestion de l’interaction (entretien VD06) Il est tiré de notre corpus de réalisation d’une tâche de recherche d’information entre un utilisateur et un expert du moteur de recherche CISMeF. L’énoncé S1 est une suggestion d’ajouter le mot-clé « analyse » à la requête. Elle est acceptée par l’énoncé H2. Remarquons que cette acceptation est réalisée en répétant une partie de l’énoncé de suggestion. Stricto sensu, cette répétition n’est pas indispensable comme le démontre l’énoncé H4 qui est une acceptation par un simple « oui » à une suggestion de suppression du mot-clé « diagnostic » (énoncée en S3). L’énoncé H2 est en fait sur les deux axes de communication : sur l’axe régissant, c’est une acceptation d’une suggestion et sur l’axe incident, c’est un feedback positif précisant que la suggestion a été perçue et comprise. C’est un énoncé multifonctionnel. Nous approfondissons la question de la multifonctionnalité des énoncés lors du processus d’annotation de notre corpus (cf. section 5.1.1). La modélisation du dialogue nécessite la considération de ses constituants : les énoncés échangés par les interlocuteurs. Intéressons-nous maintenant aux modèles existants permettant leur modélisation. 1.2 Actes de langage et actes de dialogue Dans cette section, nous présentons le modèle de l’énoncé dominant en intelligence artificielle : l’acte de langage (cf. section 1.2.1). Nous soulignons l’inadéquation du modèle de l’acte de langage pour la modélisation du dialogue Homme-Homme au regard des propriétés présentées dans la section 1.1 (cf. section 1.2.2). Nous présentons une alternative qui consiste à considérer plus généralement des actes de dialogue (cf. section 1.2.2).1.2. Actes de langage et actes de dialogue 17 1.2.1 Actes de langage La théorie des actes de langage [Austin 1962,Searle 1969] issue de la philosophie du langage est à la base de nombreux travaux en intelligence artificielle sur la modélisation du dialogue et des systèmes de dialogue. L’idée fondatrice de cette théorie peut se résumer à la célèbre expression « Dire c’est faire » [Austin 1962]. L’intérêt de cette théorie pour l’intelligence artificielle est que l’usage de la langue peut être vu comme la réalisation d’une action « classique ». Notion d’acte de langage Austin remarque que les énoncés performatifs contiennent l’action qu’ils dénotent. Par exemple, dire « Je baptise ce bateau le Queen Elizabeth » c’est faire l’action du baptême à condition qu’on ait la légitimité de le faire. Pour Austin, tout énoncé est un acte appelé acte de langage contenant trois composantes [Austin 1962] : — l’acte locutoire : acte physique d’énonciation (le dire). — l’acte illocutoire : acte qui traduit les intentions du locuteur envers son ou ses interlocuteurs (le faire). La reconnaissance de l’acte illocutoire est appelée effet illocutoire [Searle 1969]. Les question, affirmation, suggestion sont des actes illocutoires et leurs reconnaissances des effets illocutoires. — l’acte perlocutoire : acte par lequel le locuteur cherche à produire des effets perlocutoires (ou perlocutions) sur son interlocuteur. Les effets perlocutoires peuvent être voulus (e.g., la réalisation de l’ordre « Ferme la porte ! ») ou non (e.g., éclatement de rire du destinataire suite à une menace). Ainsi, ordonner « Haut les mains ! » à un interlocuteur, c’est réaliser : 1. l’acte locutoire par l’énonciation de l’énoncé ; 2. l’acte illocutoire d’ordre dont l’effet illocutoire est la reconnaissance de cet ordre par l’interlocuteur ; 3. l’acte perlocutoire qui est l’acte par lequel le locuteur cherche à obtenir l’effet perlocutoire (ici le fait que l’interlocuteur lève les mains). Notons que la réalisation de l’effet perlocutoire est postérieure à la reconnaissance de l’acte illocutoire (effet illocutoire). Ainsi, le partenaire peut très bien avoir reconnu l’ordre et refuser de s’y soumettre. D’autre part, signalons que l’expression « acte de langage » est souvent utilisée abusivement pour désigner l’acte illocutoire. Apport de la logique illocutoire À la suite d’Austin, Searle replace la théorie des actes de langage dans une théorie des intentions [Searle 1969]. Énoncer une proposition résulte de l’intention de la produire tandis que la comprendre c’est interpréter l’intention sous-jacente, dans le contexte où elle a été produite. Il pose la notation fonctionnelle F(p) où p représente le contenu propositionnel et F la force illocutoire appliquée à p. Ces travaux ont été poursuivis dans la formalisation d’une logique illocutoire du discours [Searle 1985,Vanderveken 1990]. Il propose une taxonomie de forces illocutoires des actes de langage basée sur la notion de but illocutoire. Le but illocutoire d’un acte illocutoire peut être vu comme l’effet perlocutoire public voulu (e.g., faire faire quelque chose, engager le locuteur sur la réalisation d’une action, etc.).18 Chapitre 1 : Fondements pour la modélisation du dialogue Notons qu’un locuteur accomplissant un acte illocutoire peut avoir d’autres buts perlocutoires en plus du but illocutoire. Par exemple, un locuteur peut vouloir embarrasser une personne tout en poursuivant le but illocutoire de lui faire faire quelque chose. De plus, chaque but illocutoire peut être associé à une direction d’ajustement. La taxonomie est la suivante : — Les assertifs qui servent à décrire des faits (e.g., « Il pleut. »). Le but est de rendre le contenu propositionnel conforme au monde (direction « mots vers monde »). — Les directifs qui visent à faire faire quelque chose à l’interlocuteur (e.g., « Sers moi une tasse de café ! »). Le but est de rendre le monde conforme au contenu propositionnel (direction « monde vers mots »). — Les promissifs qui obligent le locuteur à réaliser une action (e.g., « Je te promets que je viendrai »). Le but est de rendre le monde conforme au contenu propositionnel (direction « monde vers mots »). — Les déclaratifs qui rendent vrais des faits par leur simple énonciation (e.g., « Je vous déclare unis par les liens sacrés du mariage »). La direction d’ajustement est double : le monde s’ajuste au contenu propositionnel et réciproquement. — Les expressifs qui expriment l’état d’esprit du locuteur (e.g., « Je suis désolé »). La direction d’ajustement est vide. Deux notions principales sont associées à un acte de langage : son succès et sa satisfaction. Les conditions de succès d’un acte sont déterminées par sa force illocutoire et son contenu propositionnel. Elles précisent les circonstances dans lesquelles le locuteur a réalisé l’acte avec succès. Elles incluent des conditions préparatoires et des conditions de sincérité. Par exemple, un certain nombre de conditions doivent être remplies avant de réaliser la requête « Ferme la porte ! ». Le locuteur doit être sincère : il veut que la porte soit fermée. En outre, d’autres conditions doivent être vérifiées comme le fait qu’il doit y avoir une porte et un interlocuteur. Les conditions de satisfaction déterminent les circonstances dans lesquelles l’acte de langage est satisfait. Ces circonstances sont décrites dans le contenu propositionnel de l’acte. Ainsi, un acte est satisfait si son contenu propositionnel est rendu vrai selon la direction d’ajustement au monde déterminée par son but illocutoire. Par exemple, une requête est satisfaite quand son destinataire produit la situation décrite dans le contenu propositionnel de l’acte (dans notre cas, s’il ferme la porte). Actes de langage indirects Les actes de langage indirects remettent en cause l’hypothèse selon laquelle il est possible de déterminer le type d’un acte en se basant uniquement sur la forme de surface de l’énoncé (i.e., la forme linguistique). Un acte indirect est un acte non littéral accompli au moyen d’un autre acte, appelé acte littéral. Cela inclut des exemples comme : — « Il fait froid ! » dont l’acte littéral est de type assertif et dont l’acte indirect peut être, par exemple, une requête pour fermer la fenêtre. — « Est-ce que tu peux me passer le sel ? » qui prend la forme d’une question mais est très certainement une requête. Une observation intéressante est qu’il est possible de répondre aussi bien à l’acte littéral, l’acte indirect ou aux deux en même temps ! [Clark 1996] (pp. 216–218). Ainsi, il paraît tout à fait possible d’acquiescer l’assertion « Il fait froid ! », d’acquiescer l’assertion et de fermer la1.2. Actes de langage et actes de dialogue 19 fenêtre, ou de simplement fermer la fenêtre. L’objet d’un modèle de dialogue incluant des actes de langage indirect est de préciser sur quelle base ces inférences peuvent être faites. 1.2.2 Des actes de langage aux actes de dialogue Dans cette section, nous présentons un regard critique sur les actes de langage classiques. Face aux difficultés rencontrées par les actes de langage, nous présentons une vision alternative : l’approche contextuelle. Nous voyons ensuite comment cette approche contextuelle est mise à profit par les actes de dialogue. Critique des actes de langage La théorie des actes de langage est celle qui s’est imposée afin de représenter les unités conversationnelles (i.e., les énoncés) en intelligence artificielle. Cependant, la prise en compte du cadre dialogique soulève un certain nombre de problèmes. Nous soulignons en particulier les point suivants : — le caractère non monologique du dialogue : les interlocuteurs sont engagés dans une activité conjointe complexe (cf. section 1.1.1). L’allocutaire n’est pas un auditeur passif (voir, e.g., la notion d’uptake [Austin 1962,Clark 1996]). — le caractère multidimensionnel du dialogue : le dialogue sert à gérer la tâche sous-jacente mais aussi l’interaction elle-même (cf. section 1.1.2). — le caractère multifonctionnel des énoncés : dès que le caractère multidimensionnel du dialogue est pris en compte, on constate que les énoncés peuvent réaliser plusieurs actes communicatifs contrairement à ce que prétend la théorie des actes de langage (cf. section 1.1.2). La prise en compte de la multidimensionnalité du dialogue et de la multifonctionnalité pose problème aux approches traditionnelles des actes de langage. Ces approches se sont principalement intéressées au cas idéalisé où les processus de gestion de l’interaction n’interviennent pas. Cela a conduit certains chercheurs à s’orienter vers l’approche contextuelle des actes de langage qui permet de prendre plus largement en compte le contexte du dialogue plutôt que de se limiter aux intentions et croyances des interlocuteurs. Contexte du dialogue La notion de contexte du dialogue a été étudiée par différents auteurs (e.g., [Clark 1996, Bunt 2000,Ginzburg 2012]). La définition qui nous semble la plus claire et la plus intéressante pour notre travail est celle de Bunt [Bunt 1996, Bunt 2000, Bunt 2011a]. Elle est issue d’un travail liant à la fois l’analyse de dialogue et la conception de système de dialogue. Bunt définit le contexte du dialogue de la manière suivante : « Le contexte du dialogue est la totalité des conditions qui influencent l’interprétation ou la génération d’énoncés dans le dialogue. » [Bunt 2000] Notons tout d’abord que cette notion de contexte dépasse amplement le cadre du contexte en linguistique qui est généralement réduit au co-texte. Cette définition inclut un grand nombre de facteurs généraux qui peuvent influencer le comportement communicatif d’un interlocuteur comme sa fatigue ou son éventuelle animosité pour l’autre interlocuteur.20 Chapitre 1 : Fondements pour la modélisation du dialogue Pour rendre cette notion plus tractable, Bunt différencie le contexte global (qui ne peut pas être changé par le dialogue) du contexte local (qui peut être changé par le dialogue). Plus précisément, le contexte local est défini de la manière suivante : « Le contexte local est la totalité des conditions qui peuvent être changées par l’interprétation d’énoncés du dialogue. » [Bunt 2011a] Le temps qu’il fait (soleil, pluie, . . . ) fait partie du contexte global tout comme le fait que le dialogue prenne place entre un médecin et un patient, que le dialogue soit un débat philosophique ou un dialogue de réservation de billet de train, etc. En contrepartie, l’historique du dialogue courant fait partie du contexte local puisqu’il est changé par le cours du dialogue. Bunt propose de diviser le contexte en cinq catégories [Bunt 1996] : cognitif, physique et perceptuel, social, sémantique et linguistique. Pour chaque catégorie, il faut distinguer l’aspect global « figé » de l’aspect local « dynamique ». D’un point de vue global, le contexte cognitif inclut le but qui a motivé l’entrée dans le dialogue appelée la tâche sous-jacente. Il contient également un modèle des autres participants au dialogue tels que leurs identités, leurs capacités communicatives (machine, enfant, adulte, . . . ), leurs niveaux d’expertise vis-à-vis de la tâche sous-jacente (e.g., qui peuvent dépendre de la relation patient/docteur, élève/professeur, client/vendeur, etc.). À un grain plus fin, ce contexte inclut la représentation des croyances attribuées aux interlocuteurs relativement à la tâche et aux processus de communication. Par exemple, il peut représenter les problèmes qui peuvent intervenir à certains niveaux dans les processus de reconnaissance et de génération des interlocuteurs du participant au dialogue. C’est ce contexte local qui indique la présence d’un problème de perception du dernier énoncé. Le contexte physique et perceptuel représente la situation de dialogue. Globalement, il s’agit d’un ensemble de paramètres qui ont une influence directe sur la disponibilité des canaux communicatifs et perceptuels. Certains paramètres comme la co-présence, la visibilité et l’audibilité des partenaires, ont une influence sur les modalités de communication comme les gestes, les regards, la parole. Ainsi, un dialogue face à face (en co-présence) permet aux interlocuteurs de s’exprimer via des gestes, des regards, et bien sûr la parole. Tandis qu’un dialogue téléphonique (médiatisé) réduit les moyens d’expression à la parole. Localement, ce contexte inclut des informations comme la présence, l’attention et la disponibilité des partenaires de l’activité dialogique. Le contexte social représente les droits, obligations et contraintes relatifs aux aspects sociaux du dialogue. Cela inclut des conventions dialogiques (e.g., « de rien » après un remerciement) et aussi la relation sociale des participants (élève/professeur, client/vendeur, etc.). Les contextes sémantique et linguistique regroupent des conditions principalement dynamiques. Le contexte sémantique contient les informations relatives à l’état de la tâche sousjacente au dialogue. Au niveau local, le contexte d’un individu représente sa perception de la tâche en cours, ainsi que ses objectifs courants en rapport avec cette tâche. Enfin, le contexte linguistique représente l’état du dialogue. C’est-à-dire qu’il inclut les événements communicatifs passés (historique du dialogue) et les événements communicatifs en cours de réalisation (e.g., la production d’un énoncé d’un participant du dialogue). Approche contextuelle des actes de langage L’approche contextuelle des actes de langage emprunte la vision de la théorie des actes de langage selon laquelle l’usage de la langue peut être vu comme la réalisation d’actions commu-1.2. Actes de langage et actes de dialogue 21 nicatives. Cela a conduit aux approches contextuelles [Hamblin 1970,Bunt 1996,Bunt 2000] ou « information-state approach » [Larsson 2000b,Traum 2003]. Ces approches envisagent les effets des actes en terme de changement sur les états d’information ou contexte des participants. Autrement dit, les actions communicatives sont des fonctions de contexte vers contexte [Bunt 1996]. L’idée est de se concentrer sur le contexte dans lequel l’acte est survenu en plus de sa forme de surface. L’acte est ensuite utilisé pour mettre à jour le contexte. Ainsi, un énoncé comme « Sais-tu quelle heure il est ? » peut en fonction du contexte être interprété comme une véritable question ou une menace (le destinataire est en retard à son rendez-vous). S’il est interprété comme une question, le destinataire met alors à jour son état d’information en incluant le fait qu’une question demandant s’il connaît l’heure a été posée par son partenaire. Néanmoins, si le locuteur a utilisé cet énoncé pour reprocher le retard de son interlocuteur, l’état d’information sera mis à jour sur la base du reproche. Dans ce cas, il est possible que l’état d’information ne contienne pas le fait qu’une question sur l’heure a été explicitement posée. Selon Bunt [Bunt 1996, Bunt 2009], l’acte de langage est une fonction communicative (e.g., une question, un reproche, une requête) appliquée à un contenu sémantique. La fonction communicative exprime ce que le locuteur tente de réaliser, et le contenu sémantique décrit l’information qui est traitée. De manière plus formelle, un acte de dialogue est un opérateur de mise à jour de l’état d’information produit par l’application d’une fonction communicative à un contenu sémantique. Il est intéressant de noter que ce qui différencie l’approche « classique » des actes de langage et l’approche contextuelle tient au contenu de l’état d’information. Si celui-ci se résume aux croyances et intentions de l’ensemble des interlocuteurs, l’approche contextuelle se transforme en une reformulation de la théorie classique. L’approche contextuelle devient particulièrement intéressante lorsque le contexte est plus large et englobe plusieurs aspects de la multidimensionnalité du dialogue (cf. section 1.1.2). En fonction de ce que représente le « contexte », on parle d’acte de langage ou bien d’acte de dialogue. Actes de dialogue Les actes de dialogue tentent de dépasser les limites des actes de langage en incluant la multidimensionnalité du dialogue. Le contexte considéré va alors prendre en compte les états mentaux des interlocuteurs et plus largement l’état du dialogue (e.g., l’historique du dialogue). De nouveaux actes vont faire leur apparition pour gérer les processus d’interaction comme la gestion des tours de parole, de la structuration du dialogue, etc. (cf. section 1.1.2). C’est le cas des actes de feedbacks qui permettent de gérer l’établissement d’un énoncé à différents niveaux de communication (contact, perception, compréhension, réaction). Par exemple, Larsson [Larsson 2003] présente une mise en œuvre du concept d’« Interactive Communication Management » [Allwood 1995]. Nous distinguons deux principaux angles d’attaque pour la définition des actes de dialogue : l’approche multi-niveaux qui se concentre sur les niveaux d’interaction et l’approche multidimensionnelle qui se concentre sur les dimensions de la gestion de l’interaction. Taxonomie multi-niveaux d’actes de dialogue Une première tentative de modélisation d’actes de dialogue a été réalisée par les actes de conversation multi-niveaux [Traum 1992, Poesio 1997]. Ils entendent généraliser les actes de langage en éliminant certaines hypothèses non réalistes pour le dialogue comme le fait qu’un acte de langage est produit de manière isolée22 Chapitre 1 : Fondements pour la modélisation du dialogue par un locuteur pour un allocutaire passif. Ils se concentrent sur la notion de niveaux de l’interaction (cf. section 1.1.2). Ils distinguent quatre niveaux reproduits dans le tableau 1.2 : sous-énonciation (Sub UU), énonciation (UU), unité de discours (DU) et discours (Multiple DUs). À chaque niveau correspond un ensemble d’actes : les actes de tour de parole au niveau sous-énonciation, les actes d’établissement 3 au niveau énonciation, les actes noyaux au niveau unité de discours qui correspondent aux actes illocutoires « classiques », et enfin les actes d’argumentation au niveau le plus élevé. Il faut bien noter que les trois premiers niveaux représentent des processus différents et ne sont pas réductibles les uns aux autres [Traum 1992] (p. 4). Le « niveau argumentation » ne semble pas être un niveau au sens où nous les avons présentés. Ce niveau est en fait généré par des séquences d’actes noyaux, contrairement aux autres niveaux qui sont eux générés par les actes locutoires [Poesio 1997] (p. 318). Ce niveau inclut d’autres structures telles que les jeux de dialogue [Poesio 1998b] (p. 2). Niveau Type d’acte Exemples Sub UU Tour de parole take-turn, keep-turn, release-turn, assign-turn UU Établissement initiate, continue, ack, repair, reqRepair, reqAck, cancel DU Actes « noyaux » inform, WHQ, YNQ, accept, request, reject, suggest, offer, promise Multiple DUs Argumentation Elaborate, Summarize, Clarify, Q&A, Convince, Find-Plan Tableau 1.2: Actes conversationnels multi-niveaux [Traum 1992,Poesio 1997] Dans la suite de leurs travaux [Poesio 1997], le sous-niveau d’acte locutoire est ajouté. Il consiste en un acte utter permettant la production d’énoncés. Précisons qu’un acte locutoire peut générer plusieurs actes [Poesio 1997,Poesio 1998b]. Ainsi, un simple « ok » peut générer les actes ack au niveau établissement et accept au niveau DU. Les énoncés deviennent alors multifonctionnels (cf. section 1.1.2). Pour comprendre les interactions entre ces niveaux, intéressons-nous au processus d’établissement proposé. Celui-ci a été modélisée par Traum [Traum 1994a] en s’appuyant sur le modèle de Clark et Schaefer [Clark 1989]. Il est vu comme la réalisation d’actes d’établissement. Un DU comprend une phase initiale de présentation par le locuteur et une phase d’acceptation par l’allocutaire (qui peut être implicite). Il correspond à une contribution au sens de [Clark 1989]. La phase de présentation peut s’étendre sur plusieurs énonciations (UU), par exemple via l’acte continue. Le changement radical par rapport à la théorie classique des actes de langage est qu’un acte de niveau noyau ne prend effet qu’une fois qu’il a été établi. Le dialogue 1.6 est un exemple tiré de [Traum 1992] et présente l’établissement d’une suggestion. Le tour M1 commence par un acte d’établissement initiate qui ouvre un nouveau DU. Cet acte est poursuivi par une succession d’actes continue qui ajoutent des éléments au DU en cours. La production d’un acte ack au tour S2 permet au contenu du DU d’intégrer le terrain commun. À la suite de ce tour de parole, l’acte suggest a été établi. Néanmoins, les auteurs 3. Traduction du terme « grounding » [Clark 1989]1.2. Actes de langage et actes de dialogue 23 précisent que, dans ce cas particulier, le tour S2 n’est pas un accept au niveau DU. En d’autres termes, la suggestion n’a pas été acceptée au niveau de la tâche sous-jacente au dialogue. UU DU M1 : um and hook up the boxcar to the engine, initiate move it from Dansville to Corning, continue load up some oranges into the boxcar, continue and then move it on to Bath. continue suggest S2 : okay ack Dialogue 1.6 – Exemple de dialogue annoté avec des actes de niveaux UU et DU (tiré de [Traum 1992]). DIT++ Le cadre DIT++ [Bunt 2009] inclut une taxonomie multidimensionnelle de fonctions communicatives qui étend la taxonomie de la théorie « Dynamic Interpretation Theory » (DIT) [Bunt 1996]. Cette théorie propose une taxonomie de fonctions indépendantes de l’application pour l’analyse du dialogue Homme-Homme et pour la conception de système de dialogue. Elle adopte une approche multidimensionnelle de l’analyse du dialogue. La participation au dialogue est vue comme la réalisation de plusieurs activités en parallèle de la part des interlocuteurs (cf. section 1.1.2). Acte de dialogue, fonction communicative et contenu sémantique Les interlocuteurs prennent part à ces activités en réalisant des actes de dialogue. Dans la continuité des approches contextuelles, un acte de dialogue est vu comme une opération de mise à jour de l’état d’information des interlocuteurs. Un acte de dialogue est constitué d’une fonction communicative et d’un contenu sémantique. La fonction communicative exprime ce que le locuteur essaye de faire tandis que le contenu sémantique décrit l’information traitée. En d’autres termes, la fonction communicative spécifie la façon dont va être utilisé le contenu sémantique pour mettre à jour l’état d’information. Plus précisément, l’opération de mise à jour de l’état d’information dépend du locuteur, de l’interlocuteur et de la dimension [Bunt 2011c]. Notion de dimension Chacune des activités se déroule dans une dimension. Une dimension est définie comme étant un aspect de la participation au dialogue [Bunt 2011b] : 1. dans lequel les interlocuteurs peuvent intervenir au moyen d’actes de dialogue ; 2. qui peut être traité indépendamment des autres aspects considérés. La première condition spécifie que les aspects de la communication considérés doivent avoir une existence empirique. La seconde condition précise que les dimensions doivent être orthogonales. L’orthogonalité est entendue dans le sens de [Bunt 2011b] où les fonctions communicatives attribuables à une dimension ne sont pas pleinement déterminées par les fonctions dans les autres dimensions. Chaque activité est concernée par un type d’information différent (e.g., la gestion des tours de parole est concernée par l’attribution du tour de parole, le contenu des actes de gestion de la tâche est spécifique à la tâche sous-jacente, etc.). Ainsi, le type de contenu sémantique d’un acte de dialogue est déterminé par la dimension dans laquelle il intervient.24 Chapitre 1 : Fondements pour la modélisation du dialogue Enfin, l’ensemble des fonctions communicatives pouvant être utilisées dans une dimension respecte la contrainte suivante : pour chaque paire de fonctions communicatives qui peuvent être utilisées dans une dimension, soit les deux fonctions sont mutuellement exclusives, soit l’une est une spécialisation de l’autre (e.g., Confirm de Answer). DIT++ propose l’utilisation de dix dimensions issues de l’étude d’un ensemble de corpus de dialogue et respectant la définition précédente [Bunt 2009] : Task/Activity Actes de dialogue qui contribuent à l’avancement de l’activité sous-jacente au dialogue. Auto-feedback Actes de dialogue par lesquels le locuteur fournit des informations sur son traitement de l’énoncé précédent. Allo-feedback Actes de dialogue par lesquels le locuteur exprime son avis concernant le traitement de son précédent énoncé par l’autre interlocuteur, ou qu’il sollicite de l’information à propos de ce traitement. Contact Management Actes de dialogue afin d’établir ou de maintenir le contact. Turn Management Actes de dialogue concernés par l’attribution du rôle de locuteur. Time Management Actes de dialogue signalant que le locuteur a besoin d’un peu de temps pour formuler sa contribution. Discourse Structuring Actes de dialogue permettant de structurer explicitement la conversation (e.g., en annonçant le prochain acte de dialogue ou en proposant un changement de sujet). Own Communication Management Actes de dialogue qui indiquent que le locuteur est en train de modifier sa contribution courante. Partner Communication Management Actes de dialogue produits par le participant n’étant pas le locuteur afin de corriger ou d’assister le locuteur dans la formulation de sa contribution au dialogue. Social Obligations Management Actes de dialogue qui s’occupent des conventions sociales telles que les salutations. Les fonctions communicatives DIT++ propose une taxonomie de fonctions communicatives influencée par des schémas d’annotation précédents (e.g., DAMSL [Allen 1997] et TRAINS [Allen 1995]). Cette taxonomie inclut 88 fonctions communicatives et est constituée de deux parties : les fonctions générales et les fonctions spécifiques à certaines dimensions (e.g., Apology, Turn Grab). Les fonctions générales sont représentées sur la figure 1.1. Un extrait des fonctions spécifiques est représenté sur la figure 1.2. Les fonctions générales sont divisées en quatre hiérarchies. Les deux premières sont les fonctions de recherche d’information (qui incluent différents types de question) et les fonctions fournissant de l’information (e.g., Inform, Agreement). Les fonctions de discussion d’action sont classiquement décomposées entre les fonctions promissives (e.g., Promise, Offer) et les fonctions directives (e.g., Request, Suggestion). Notons que chacune de ces catégories forme une hiérarchie où les fonctions sont soit mutuellement exclusives (e.g., Confirm/Disconfirm, AcceptOffer/DeclineOffer), soit des spécialisations (e.g., PosiCheck spécialise le type de question oui/non représenté par l’acte PropositionalQuestion). Au contraire d’une fonction générale, une fonction spécifique ne peut intervenir que dans une dimension donnée. La figure 1.2 présente des exemples de fonctions spécifiques pour neuf1.2. Actes de langage et actes de dialogue 25 General-purpose functions Information-transfer functions Action-discussion functions Information-seeking functions Information-providing functions Question Inform Commissives Directives Offer Address Suggestion Suggestion Indirect Request Instruct Propositional Question Choice Question Set Question Answer Agreement Disagreement Check Question Posi-Check Nega-Check Disconfirm Confirm Correction Promise Accept Suggestion Decline Suggestion Threat Address Request Accept Request Decline Request Request Address Offer AcceptOffer DeclineOffer Figure 1.1: Fonctions générales de DIT++ [Bunt 2009]26 Chapitre 1 : Fondements pour la modélisation du dialogue Dimension-specific functions Auto-Feedback Allo-Feedback Time Contact PCM Turn OCM DS SOM Turn-initial Turn Accept Turn Take Turn Grab Turn-final Turn Assign Turn Release Turn Keep Positive Pos. Attention Pos. Perception (...) Pos. Execution Negative Neg. Attention (...) Neg. Execution Positive Negative Elicitation (...) Stalling Pausing Contact Indication Contact Check Completion Correct- misspeaking Error sign. Retract Self- correction Opening Pre- closing (...) I-Greeting R-Greeting Self-Intro R-Self-Intro Apology Accept-Ap. Thanking Acc.-Thanking I-Goodbye R-Goodbye Figure 1.2: Extraits des fonctions spécifiques à certaines dimensions de DIT++ [Bunt 2009]1.3. Synthèse 27 dimensions (Task exclue) comme la fonction Turn Accept dans la dimension Turn Management et la fonction Thanking dans la dimension Social Obligation Management. Segment fonctionnel Enfin, Bunt propose de segmenter le dialogue en segments fonctionnels, un segment fonctionnel étant défini comme « . . . une portion minimale de comportement communicatif qui a une fonction communicative. De telles portions n’ont pas besoin d’être grammaticalement correctes ou contiguës et peuvent avoir plus d’une fonction communicative. » [Bunt 2011b]. Notons qu’un segment possède au plus une fonction par dimension. En conséquence, les « énoncés multifonctionnels » dans DIT++ sont des segments fonctionnels qui peuvent être vus comme des combinaisons d’opérations de mise à jour de l’état d’information correspondant à chaque acte de dialogue [Bunt 2009,Bunt 2011b]. Structuration de l’état d’information Une question qui se pose est le lien entre l’état d’information et les dimensions présentées. En particulier, quel est le contenu de cet état d’information et comment est-il structuré ? Comme nous l’avons déjà dit (cf. section 1.2.2), l’approche contextuelle devient particulièrement intéressante dès le moment où le contexte intègre des notions qui vont au-delà des états mentaux des interlocuteurs comme des informations sur le cadre dialogique (e.g., historique du dialogue). Une première approche pourrait être de considérer un état d’information contenant un composant par dimension afin de représenter les informations indispensables à chaque aspect de l’activité dialogique. À ce propos, [Bunt 2011a] propose de regrouper certaines dimensions dans une version de l’état d’information en cinq composants : linguistique (historique du dialogue, . . . ), sémantique (état de la tâche sous-jacente, . . . ), cognitif (état des processus d’interprétation et de génération des énoncés, . . . ), physique et perceptuel (état de la situation interactive, . . . ) et social (gestion des aspects sociaux comme les salutations). 1.3 Synthèse Dans un premier temps, ce chapitre a présenté le dialogue comme une activité conjointe opportuniste où les interlocuteurs cherchent à coordonner leurs contributions de manière à coconstruire et à co-contrôler le dialogue. Nous avons abordé la multidimensionnalité du dialogue qui sert à gérer la tâche sous-jacente mais également l’interaction en elle-même. En conséquence, les énoncés des interlocuteurs sont souvent multifonctionnels et abordent plusieurs dimensions de la gestion du dialogue simultanément. Puis, ce chapitre a été l’occasion de présenter le modèle de l’énoncé qui est à la base de nombreux travaux en intelligence artificielle : l’acte de langage. Historiquement, l’étude des énoncés par la théorie des actes de langage a précédé son intégration dans le cadre plus large de la modélisation du dialogue. Seulement cette intégration a soulevé de nombreux problèmes parmi lesquels nous avons souligné les aspects non-monologiques du dialogue, sa multidimensionnalité et la multifonctionnalité des énoncés. Face à ces problèmes, l’alternative semble d’étendre la portée des actes de langage à la prise en compte plus large du contexte du dialogue. Il s’agit alors de considérer une approche contextuelle des actes de dialogue. Parmi les taxonomies existantes, nous avons présenté les actes multiniveaux et DIT++ qui permettent de prendre en compte la multidimensionnalité du dialogue et la multifonctionnalité des énoncés. Notons que les actes de langage et de dialogue sont des modèles de l’énoncé et non du28 Chapitre 1 : Fondements pour la modélisation du dialogue dialogue. Il est nécessaire d’expliquer comment les motifs dialogiques et des structures comme celles mises en avant par l’analyse conversationnelle émergent.Chapitre 2 Modélisation du dialogue : intention versus convention Sommaire 2.1 Approches intentionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.1.1 Fondements des approches intentionnelles . . . . . . . . . . . . . . . . . . . . 30 2.1.2 Approches par planification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 2.1.3 Principales mises en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 2.1.4 Avantages et limites des approches intentionnelles . . . . . . . . . . . . . . . . 38 2.2 Approches conventionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2.2.1 Fondements des approches conventionnelles . . . . . . . . . . . . . . . . . . . 39 2.2.2 Modèles fondés sur la structuration . . . . . . . . . . . . . . . . . . . . . . . . 42 2.2.3 Modèles fondés sur les questions en discussion . . . . . . . . . . . . . . . . . . 46 2.2.4 Avantages et limites des approches conventionnelles . . . . . . . . . . . . . . . 52 2.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 Dans ce chapitre, nous présentons deux grandes catégories d’approches de modélisation du dialogue généralement perçues comme opposées. Nous débutons par un aperçu des approches intentionnelles qui se focalisent sur les intentions des interlocuteurs pour expliquer la structure du dialogue (cf. section 2.1). Nous poursuivons ensuite par la présentation des approches conventionnelles qui délaissent les intentions pour se concentrer sur l’aspect conventionnel de l’interaction dialogique (cf. section 2.2). Enfin, nous discutons la prétendue opposition de ces approches (cf. section 2.3). 2.1 Approches intentionnelles Dans cette section, nous effectuons un bref survol du vaste champ des approches intentionnelles de la modélisation du dialogue. Dans ce type d’approche, les motifs d’interaction sont interprétés comme la preuve d’un plan de la part des interlocuteurs [Hulstijn 2000a]. Les régularités sont vues comme un épiphénomène des intentions sous-jacentes et de la rationalité des interlocuteurs. Nous commençons cette section par une présentation des fondements théoriques de ce type d’approche (cf. section 2.1.1). Nous présentons ensuite trois approches représentatives (cf. section 2.1.2). Puis, nous abordons les principales mises en œuvre inspirées des modèles intentionnels (cf. section 2.1.3). Enfin, nous discutons les avantages et limites de ce type de modèle (cf. section 2.1.4).30 Chapitre 2 : Modélisation du dialogue : intention versus convention 2.1.1 Fondements des approches intentionnelles Intention individuelle Les travaux sur l’intentionnalité comme ceux de Bratman [Bratman 1987] ont donné naissance au modèle BDI [Rao 1995], influant dans le champ de l’intelligence artificielle. Ce modèle tire son nom des trois attitudes mentales qu’il considère pour fonder le comportement rationnel d’un agent : les croyances (B pour « Belief »), les désirs (D pour « Desire ») et les intentions (I). Ces notions définissent une sémantique aux algorithmes de planification. Les croyances représentent la vision que l’agent a du monde (environnement et autres agents). Ces croyances peuvent être incorrectes, incomplètes ou incertaines. Elles évoluent au fur et à mesure des interactions entre l’agent et le monde (notamment via sa perception du monde qui peut amener à changer ses croyances). Les désirs représentent les états du monde souhaités par l’agent. Ils peuvent être contradictoires ou irréalisables. Le processus de délibération est le processus par lequel l’agent choisit les désirs qu’il va poursuivre (ses buts). Les intentions d’un agent sont donc les désirs qu’un agent souhaite accomplir. En d’autres termes, une intention est un but que l’agent s’engage à tenter de réaliser personnellement. Une architecture BDI permet d’assurer une certaine stabilité à l’agent. Les intentions permettent à l’agent de ne pas reconsidérer ses actions en permanence. En effet, une fois une intention adoptée, l’agent tente de la réaliser jusqu’à son accomplissement ou jusqu’à ce qu’elle devienne irréalisable. D’autres critères d’abandon peuvent bien entendu entrer en jeu. Notons que cette notion d’intention individuelle semble insuffisante pour caractériser les intentions « collectives » qui surgissent lors d’activités conjointes. Cela conduit à la considération de dérivé de l’intention comme l’« intention que » [Grosz 1996] (cf. section 2.1.2). Il est important de distinguer les plans des recettes [Pollack 1990]. Une recette est une suite d’actions permettant de décomposer une action complexe en actions plus simples. Elle peut se présenter sous une forme hiérarchique constituée de buts et de sous-buts : c’est un arbre appelé graphe de recette. Elle correspond au savoir-faire de l’agent. Par exemple, je peux avoir une recette pour aller de mon appartement à la gare de ma ville qui consiste en une suite d’actions : aller à pied jusqu’à la station Joffre-Mutualité, prendre le métro direction Boulingrin, descendre à la station Gare Rue Verte, etc. Néanmoins, ce n’est pas parce que je connais cette recette que j’ai l’intention de la faire. La nuance est qu’un plan, version attitude mentale, réfère à l’adoption d’une intention qui guide les actions futures de l’agent (une sorte d’« engagement » à la réalisation d’une action future). Si je planifie d’aller à la gare de ma ville, j’ai alors cette intention. J’ai donc le plan de le faire (en plus de la recette précédemment décrite). Précisons que les premières approches par planification que nous présentons ne font pas la distinction (cf. sections 2.1.2 et 2.1.2) et considèrent les plans sous l’angle de la recette. Dans le dialogue, la notion d’intention intervient au moins au niveau de l’acte illocutoire d’un acte de langage (cf. section 1.2.1). La notion d’intention communicative de Grice [Grice 1957] peut également entrer en jeu. Néanmoins, la distinction entre la force illocutoire et l’intention communicative ne fait pas consensus dans les approches intentionnelles [Maudet 2002a]. Dans tous les cas, une fois l’intention sous-jacente à l’acte du locuteur reconnue, il est nécessaire d’expliquer ce qui pousse l’interlocuteur à répondre.2.1. Approches intentionnelles 31 Hypothèses de coopération La notion de coopération dans le dialogue a été définie par Grice [Grice 1975]. Selon cet auteur, les interlocuteurs doivent se conformer au principe de coopération pour permettre l’échange d’information : « Que votre contribution conversationnelle corresponde à ce qui est exigé de vous, au stade atteint par celle-ci, par le but ou la direction acceptée de l’échange dans lequel vous êtes engagés. » [Grice 1975] Les célèbres « maximes de Grice » sont issues de ce principe de coopération : les maximes de quantité (faites que votre contribution soit aussi informative que requise par le but de l’échange mais pas plus), de qualité (ne pas dire ce que vous pensez être faux, ou ce pour quoi vous manquez de preuve), de pertinence (soyez pertinent), de manière (évitez de vous exprimer de manière obscure, évitez l’ambiguïté, soyez brefs et ordonnés). Ces maximes sont des règles « normatives » qui sont souvent transgressées. Leur transgression amorce un processus d’inférence chez l’interlocuteur appelé implicature qui permet de dépasser le sens littéral des énoncés. Prenons par exemple, un échange comme : S1 : Tu viens à la soirée ce soir ? H2 : J’ai du boulot. Le deuxième énoncé viole la maxime de quantité. En reconnaissant cette transgression, S comprend que H ne viendra pas en supposant qu’il est coopératif. Sperber et Wilson réduisent les maximes de Grice au principe de présomption optimale de pertinence [Sperber 1989]. La pertinence d’un énoncé est évaluée en fonction du rapport entre les effets qu’il produit et les efforts que la production de ces effets demande. Les éléments permettant d’évaluer cette pertinence sont néanmoins difficile à déterminer. Structure intentionnelle L’idée sous-jacente de toutes les approches intentionnelles est que la structure du dialogue résulte des intentions et de la coopérativité des interlocuteurs [Maudet 2002a,Pasquier 2005]. La structure intentionnelle a été exhibée et mise en relation avec deux autres structures par Grosz et Sidner [Grosz 1986]. Pour ces auteurs, la structure d’un dialogue peut se décomposer de la façon suivante : — la structure linguistique (les énoncés agrégés en segments (DS pour Dialogue Segment)) ; — la structure intentionnelle (ensemble des buts des segments du dialogue qui constituent des sous-buts contribuant au but global du dialogue. Le but d’un DS est un DSP pour Dialogue Segment Purpose) ; — l’état attentionnel (focus dynamique du dialogue, i.e. les objets, propriétés et relations qui sont saillants à un moment donné du dialogue, en connexion avec les deux autres structures). Les DSP sont vus comme des intentions au niveau du discours qui ont vocation à être reconnues à l’instar des intentions au niveau des énoncés (cf. section 2.1.1). Des exemples sont « avoir l’intention qu’un agent réalise une action », « avoir l’intention qu’un agent croie un fait », « avoir l’intention qu’un agent connaisse les propriétés d’un objet », etc. Grosz et Sidner présentent deux relations possibles entre les DSP : domination : DSP1 domine DSP2 si et seulement si la réalisation de DSP2 contribue à la réalisation de DSP1.32 Chapitre 2 : Modélisation du dialogue : intention versus convention satisfaction-précédence : DSP1 pré-satisfait DSP2 si et seulement si la satisfaction de DSP1 est une condition nécessaire à la réalisation de DSP2. Le dialogue entre deux participants (ou plus) est motivé par une tâche sous-jacente. La variété des tâches sous-jacentes au dialogue est importante. Elle peut être tout simplement « passer le temps », négocier, réaliser une activité collaborative comme « monter un meuble ensemble », etc. Le dialogue est alors utilisé pour l’activité [Clark 1996]. Nous pouvons nous interroger sur les liens entre la structure linguistique et la structure intentionnelle ainsi qu’entre la structure intentionnelle et la structure de la tâche sous-jacente. Pour Grosz et Sidner, la structure linguistique traduit la structure intentionnelle. Cette dernière se reflète dans la structure linguistique tout particulièrement dans les imbrications entre DS qui correspondent à des imbrications au niveau de la structure intentionelle. Quid des liens entre le structure intentionnelle et la structure de l’activité sous-jacente ? Grosz et Sidner sont très claires sur ce point : la structure intentionnelle n’est ni identique, ni isomorphe à la structure de l’activité sous-jacente. La raison en est que la structure intentionnelle contient des DSP qui sont particuliers à l’exécution de la tâche et du dialogue. Autrement dit, certains événements vont survenir pendant le dialogue, qui trouveront leur écho dans la structure intentionnelle mais pas dans la structure de la tâche (qui n’est pas capable de prévoir tous les cas). Un des exemples proposés par Grosz et Sidner est un dialogue orienté tâche où un expert tente d’apprendre à un apprenti à démonter un volant de voiture. Le plan de la tâche inclut des sous-plans pour trouver les vis de fixation, les dévisser, trouver un tournevis, etc. Néanmoins, le plan ne peut pas inclure des plans pour des évènements imprévus (que faire quand on ne trouve pas les vis ou que le seul tournevis disponible n’est pas adéquat ?). 2.1.2 Approches par planification La théorie des actes de langage (cf. section 1.2.1) a naturellement conduit à envisager les actes de langage comme des actions dans un système de planification « classique ». En effet, elle permet de faire le lien entre d’une part buts et intentions, et actions et dialogue d’autre part. Nous avons choisi de nous restreindre à la présentation de trois approches intentionnelles qui nous semblent représentatives : l’approche par plan « fondatrice » (cf. section 2.1.2), l’approche par plan face à la gestion du dialogue (cf. section 2.1.2), et enfin, l’approche par plan partagé (cf. section 2.1.2). En outre, toutes ces approches ont contribué à des systèmes interactifs avec un utilisateur humain. Compte tenu de la masse importante de références bibliographiques sur les approches intentionnelles, nous invitons le lecteur à se référer aux lectures suivantes s’il souhaite de plus amples détails [Maudet 2002a,Pasquier 2005]. En particulier, nous n’abordons pas les approches de la théorie de l’interaction rationnelle [Cohen 1990a, Sadek 1991]. Cette décision est motivée par le fait que ces approches sont trop complexes pour être mises en œuvre telles quelles dans des systèmes réels [Pasquier 2005]. En outre, les simplifications opérées pour leur implémentation font tendre ces approches vers celles de la planification « classique » [Pasquier 2005,Ferguson 2007]. Approche par planification classique Les approches par planification s’inspirent de la formalisation de STRIPS [Fikes 1972]. Il s’agit de trouver le meilleur chemin dans un espace d’états pour passer d’un état initial à un état final en appliquant des opérateurs (i.e. des actions) permettant de passer d’un état à un2.1. Approches intentionnelles 33 autre. Les états sont représentés par un ensemble de faits dans une représentation logique. Les actions sont définies par des préconditions (qui doivent être vérifiées afin de pouvoir appliquer l’action) et des effets (qui déterminent quels sont les faits qui sont ajoutés ou supprimés). À cela s’ajoutent un entête (un nom et un ensemble de paramètres) et un corps qui permet de décomposer une action en sous-action. Un plan est défini comme étant une séquence bien formée d’actions de telle sorte que les préconditions des actions sont atteintes par les effets des actions précédentes. Le modèle pionnier de l’utilisation de la planification pour la modélisation du dialogue est celui de Allen, Cohen et Perrault [Cohen 1979,Allen 1980]. Il se base sur la capacité du locuteur à reconnaître le plan de son interlocuteur afin de produire la réponse la plus pertinente. Dans cette approche, les interlocuteurs sont dotés d’états mentaux (buts, et différents types de croyances). Les actes de langage sont formalisés comme n’importe quelle autre action. Le tableau 2.1 présente un exemple de l’acte « Informer » présenté avec le formalisme d’une action de plan (L est le locuteur, I l’interlocuteur et P la proposition). INFORMER(L, I, P) Préconditions : L VEUT INFORMER(L, I, P) L SAIT P Effets : I SAIT P Corps : L DIRE P à I Tableau 2.1: Exemple de représentation d’un acte "Informer" comme une action de plan. L est le locuteur, I l’interlocuteur et P la proposition. Dans cette approche, la reconnaissance du plan par l’interlocuteur peut être considérée comme un processus de planification inversée. L’interlocuteur reconnaît le plan à partir de la connaissance des opérateurs et des règles de construction de plan : — L VEUT Action ⇒ L VEUT Effet — L VEUT Préconditions ⇒ L VEUT Action — L VEUT Corps ⇒ L VEUT Action La reconnaissance du plan du locuteur inclut la reconnaissance à l’insu. Celle-ci implique l’application de règles d’inférence basées sur ces règles de construction. Par exemple (où Pred est une précondition de l’action Act) : (I CROIT (L VEUT Pred)) ⇒ (I CROIT (L VEUT Act)) Cette règle d’inférence signifie que si L veut obtenir les préconditions de l’action Act, c’est qu’il souhaite sans doute réaliser Act. Une fois que le but et le plan du locuteur ont été inférés, l’interlocuteur peut construire un plan permettant d’aider à la réalisation de ce but. La coopérativité de l’interlocuteur est ainsi assimilée à l’adoption de but. La reconnaissance de plan en cours de conversation permet de déterminer des réponses coopératives. Par exemple, la question « À quelle heure est la prochaine séance pour le film “Superman” ? » laisse supposer que le locuteur possède le but d’aller voir le film en question. Pour cela, il possède un plan lui permettant de déterminer l’horaire de la prochaine séance mais aussi le numéro de la salle. La reconnaissance de ce plan de la part de l’interlocuteur lui permet34 Chapitre 2 : Modélisation du dialogue : intention versus convention de générer une réponse coopérative du type : « La prochaine séance est à 17h50. Le film sera diffusé en salle 12. ». Cette approche admet deux limites. La première est que la reconnaissance se limite à l’analyse d’un seul énoncé. Or la reconnaissance de plan repose plus généralement sur plusieurs énoncés [Carberry 1990]. Ensuite, la structure intentionnelle est identique à la structure de la tâche sous-jacente. Cependant, nous avons vu que ces deux structures n’étaient pas isomorphes (cf. section 2.1.1). Cette deuxième critique nous conduit à considérer l’approche de Litman et Allen qui tente de différencier les apports du domaine et les apports spécifiques à la gestion du dialogue. Approche par plans du domaine et du discours Afin de prendre en compte la non-isomorphie entre la structure de la tâche et la structure intentionnelle (e.g., par l’intervention de dialogue de clarification), Litman et Allen proposent de différencier deux types de plans [Litman 1990]. D’un côté, il s’agit de considérer les plans du domaine qui modélisent la tâche sous-jacente. De l’autre côté, il s’agit de considérer les plans du discours qui sont des meta-plans permettant de manipuler la structure des autres plans. Les auteurs listent trois types de relation que peuvent entretenir les plans : la relation de continuation (qui permet de commencer l’exécution du plan du domaine ou de poursuivre son déroulement), la relation de clarification (qui permet d’identifier un paramètre du plan ou de proposer une correction au plan courant), et la relation de changement de sujet (qui permet d’introduire un nouveau plan). Ils proposent alors cinq meta-plans de dialogue issus de ces trois relations : suivre-plan, identifier-paramètre, corriger-plan, introduire-plan et modifier-plan. La structure du dialogue est modélisée par une pile de plans du domaine et de meta-plans. La pile globale est composée de sous-piles pour chaque étape du plan du domaine. Chaque nouveau plan introduit est soit un plan correspondant à un nouveau pas de plan du domaine, soit un meta-plan relié au dernier plan introduit. De cette manière, il est possible de gérer les demandes de clarification emboîtées. Ce modèle permet de gérer des dialogues qui ne sont pas directement dans le plan du domaine. Par exemple, via la relation de clarification, il est possible de gérer des dialogues comme : S1 : Où peut-on assister à la projection de « Superman » ? H2 : Dans la salle au fond à droite. S3 : Quelle salle ? H4 : La salle 12 située au fond à droite. Les tours 3 et 4 constituent un sous-dialogue de clarification. Ce sous-dialogue ne fait pas partie d’un plan du domaine. Il s’agit d’identifier un paramètre du plan en cours (ici la salle où le film est projeté). Il s’agit donc d’un empilement d’un meta-plan identifier-parametre relié par une relation de clarification au plan du domaine. Il est cependant possible de trouver des interventions dialogiques de telle manière qu’elles ne soient ni une étape de plan de domaine, ni reliée les unes aux autres par les relations proposées. Par exemple : S1 : Je désire voir un film. Quand commence la séance pour « Superman » ? H2 : À 19h30. S3 : Et pour « Batman » ? H4 : À 19h50. Ici l’interlocuteur souhaite évaluer plusieurs alternatives, i.e. plusieurs plans à sa disposition. Des2.1. Approches intentionnelles 35 extensions considérant un troisième niveau de résolution de problème ont été proposées [Lambert 1991]. Approches par planification collaborative Grosz et Kraus ont présenté dans leur article « Collaborative plans for complex group action » un formalisme de plans pour l’action d’un groupe d’agents collaboratifs [Grosz 1996]. En partant des travaux de Pollack [Pollack 1990], ce formalisme spécifie deux types de plans défi- nis en terme d’attitudes mentales (croyances et désirs) : les plans partagés et les plans partiels. Elles introduisent la notion d’intention que qui permet de représenter l’engagement de chaque participant envers le but commun. Comme le nom le laisse à penser, les plans partagés sont des plans qui incorporent les actions de plusieurs participants. Le processus de planification est rendu d’autant plus compliqué que le nombre d’agents pris en compte dans le plan est important. Pour simplifier ce problème, les agents ont généralement une base de données de plans pré-calculés, appelés recettes, dans laquelle ils peuvent sélectionner des plans sans avoir besoin de tout recalculer. Certains aspects ont besoin d’être établis avant la réalisation de l’activité conjointe par un plan partagé. Les participants doivent : 1. se mettre d’accord sur le but conjoint à atteindre ; 2. se mettre d’accord sur l’ensemble des recettes possibles (i.e., le par quel moyen réaliser l’action) ; 3. se mettre d’accord sur la répartition des tâches et l’ordonnancement de la réalisation (i.e., le qui va faire quoi quand) ; 4. et enfin, s’engager sur la réussite des actions des autres participants selon les paramètres précédemment sélectionnés. Cette approche permet de justifier les comportements coopératifs dans l’activité sans référer à une notion d’intention collective [Searle 1990]. L’aspect collectif de l’activité est capturé par le plan partagé et la notion d’intention que. Néanmoins, ces plans partagés doivent être adoptés par les participants. Une hypothèse de coopération doit être faite : il est nécessaire de supposer une entente pour élaborer un plan partagé. Il est d’autant plus difficile de calculer à long terme des plans partagés que les actions dépendent d’autres participants. Si on ajoute à cela un environnement dynamique, comme par exemple le dialogue, il devient clair que les agents ne peuvent pas planifier « du premier coup » à long terme. Cela a conduit à l’introduction de la notion de plans partiels qui vont permettre de représenter partiellement les actions à entreprendre et qui ont vocation à être complétés au fur et à mesure. De la même manière, les agents peuvent avoir des recettes partielles qui sont des spécifications partielles pré-calculées de combinaisons d’actions pour atteindre un certain but. Résumons la situation. L’approche par planification collaborative permet de distinguer les habituels plans « individuels » des plans partagés. Ce sont ces plans partagés qui permettent de capturer la dimension collective de l’activité. En d’autres termes, les participants collaborent sur la mise en place d’un plan partagé qui forme alors l’activité conjointe. Néanmoins, les participants ne sont pas contraints de tout prévoir à l’avance car ils peuvent manipuler des plans partiels, i.e. des plans qui ne sont pas complètement spécifiés. Et pour le dialogue ? L’idée est que les interlocuteurs s’embarquent dans une interaction avec un plan partiel, qu’il s’agit de préciser au fur et à mesure de l’interaction.36 Chapitre 2 : Modélisation du dialogue : intention versus convention L’application de cette théorie au dialogue a été étudiée par Lochbaum [Lochbaum 1994, Lochbaum 1998]. Son point de vue est que les interlocuteurs dialoguent pour compléter des plans partiels (individuels ou partagés, au niveau du discours ou au niveau de la tâche). Cette approche considère l’intervention de sous-dialogues comme étant soit contributoire à un autre plan (e.g., un sous-dialogue pour s’accorder sur une recette), soit la satisfaction d’un plan est nécessaire à l’exécution de l’autre (pré-satisfaction). Lochbaum considère notamment que les sous-dialogues de clarification sont des sous-dialogues qui doivent être satisfaits afin de déterminer un paramètre pour le plan suivant. Selon Lochbaum, les plans partagés modélisent exactement les DSP (cf. section 2.1.1) en un seul et même formalisme. Les modèles intentionnels sont à la source de la mise en œuvre de systèmes d’interaction Homme-Machine sur lesquels nous allons maintenant nous pencher. 2.1.3 Principales mises en œuvre Une grande force des approches intentionnelles est d’apporter une réponse globale unifiée autour de la notion d’intention à plusieurs problématiques du dialogue. En schématisant, nous pouvons résumer la situation de la manière suivante. Un énoncé est vu comme une action « classique » grâce à la théorie des actes de langage. L’interprétation d’un énoncé est vue comme l’inférence de son intention sous-jacente. Et la réponse est générée par un mécanisme de plani- fication associé à des hypothèses de coopération. Ce cadre a permis la réalisation de nombreux systèmes qui ont une forte influence dans le domaine de l’interaction Homme-Machine comme les systèmes TRAINS [Ferguson 1996,Allen 2000] et Collagen [Rich 2001]. Les systèmes fondateurs Le système TRAINS [Ferguson 1996,Allen 2000] a été l’un des premiers systèmes à gérer un dialogue avec un humain dans le cadre de la résolution collaborative de problème. Il est issu d’un travail important de récolte et d’analyse de corpus de dialogues oraux orientés tâche. Il a conduit à la conception de plusieurs systèmes dénommés TRAINS servant à interroger en langue naturelle une base de données contenant des horaires de trains. Le système TRIPS [Ferguson 1998], successeur de TRAINS, est conçu pour assister un humain dans une tâche de gestion de situations de crise. Le système et l’humain collaborent à la construction de plans d’évacuation. Ce système ajoute au dialogue naturel l’utilisation de graphiques (cartes, tableaux, etc.) pour améliorer la compréhension mutuelle. En se basant sur ces travaux, Ferguson et Allen ont récemment proposé une approche pour la conception et la mise en œuvre d’agent assistant pour la résolution collaborative de problèmes basée sur une architecture BDI [Ferguson 2007]. Les travaux sur la planification collaborative et son application à la modélisation du dialogue (cf. section 2.1.2) ont conduit à la réalisation de Collagen (Collaborative Agent) [Rich 2001]. Ce système inclut un modèle de la tâche basé sur la planification collaborative [Grosz 1996] ainsi qu’un modèle de l’état de l’interaction référençant les croyances et intentions des interlocuteurs (cf. état attentionnel du dialogue, section 2.1.1). Ces deux modèles sont ensuite exploités par les algorithmes d’interprétation [Lochbaum 1998] et de génération de dialogue. Collagen est utilisé en tant que middleware pour la réalisation de systèmes collaboratifs en interaction avec un utilisateur humain. Par exemple, il a été utilisé pour la réalisation de DiamondHelp [Rich 2007], un système collaboratif permettant d’assister un utilisateur sur une tâche. Ce système est illustré sur des tâches d’assistance d’un utilisateur telles que la programmation d’une machine à laver moderne ou la configuration d’un thermostat.2.1. Approches intentionnelles 37 L’émergence de nouveaux systèmes inspirés de l’approche par planification Plus récemment, de nouveaux systèmes s’inspirant de l’approche par planification ont émergé. Nous citons RavenClaw et DTask. RavenClaw [Bohus 2009b] est un gestionnaire de dialogue indépendant de la tâche basé sur une approche par planification. La gestion du dialogue est opérée de manière indépendante de la tâche sur la base d’un réseau hiérarchique de tâches 1 . Les aspects spécifiques à la tâche sont spécifiés via ce plan hiérarchique. Ce dernier inclut la planification des actions du système (e.g., informer l’utilisateur, rechercher dans une base de données, etc.) ou des actions bilatérales à l’initiative du système telles qu’une demande d’information. RavenClaw intègre des processus de gestion de l’interaction indépendant de la tâche sous-jacente au dialogue. Ces processus sont principalement liés à la reconnaissance vocale. Par exemple, ils permettent au système de demander des confirmations ou des reformulations, tandis que l’utilisateur peut demander au système de répéter les derniers énoncés. En somme, RavenClaw permet de gérer des dialogues fortement liés à une tâche pouvant être décrite simplement par un plan hiérarchique. DTask [Bickmore 2009] est un gestionnaire de dialogue conçu pour modéliser et exécuter des dialogues menés par le système fournissant des entrées à choix multiples pour saisir les contributions de l’utilisateur humain. Dans le même esprit que RavenClaw, la structure du dialogue est liée à la structure de la tâche sous-jacente décrite par un plan décomposant les buts et sous-buts des participants. Le point qui nous intéresse particulièrement dans cette approche est que la plus petite tâche conjointe dialogique est décrite sous la forme d’une paire adjacente. Celle-ci consiste en un énoncé du système associé à une liste de réponses possibles de l’utilisateur humain. Le tableau 2.2 présente un exemple de spécification d’une paire adjacente tirée de [Bickmore 2009]. Utilisateur Énoncé Système How are you ? Utilisateur 1. I am good. How are you ? 2. Good. Tableau 2.2: Exemple de spécification d’une tâche dialogique de salutations dans DTask [Bickmore 2009] Cette paire décrit un échange de salutations ritualisé entre les interlocuteurs. Elle consiste en la production de l’énoncé initiatif « How are you ? » par le système. L’utilisateur est alors confronté à un choix : il peut choisir de répondre par une des deux propositions présentées dans le tableau 2.2. Notons que la réponse 1 (« I am good. How are you ? ») clôture la paire par l’énonciation de « I am good. » et initie une nouvelle paire par « How are you ? » (bien que cela ne soit pas explicitement modélisé de cette manière dans cette approche). Cette nouvelle initiation peut être suivie par une réponse du système telle que « Great. Thanks for asking ! » [Bickmore 2009]. L’approche DTask a été récemment étendue dans Disco for Games (D4g) [Rich 2012], présenté comme le successeur de Collagen. Dans cette dernière itération, le système ne se limite pas aux paires adjacentes mais intègre des sous-dialogues complets spécifiques à l’application. Maintenant que nous avons vu les principaux modèles intentionnels et leurs mises en œuvre plus ou moins directes, intéressons-nous aux avantages et limites d’une telle approche. 1. De l’anglais « Hierarchical Task Network » (HTN).38 Chapitre 2 : Modélisation du dialogue : intention versus convention 2.1.4 Avantages et limites des approches intentionnelles Les approches intentionnelles possèdent de nombreux avantages [Maudet 2002a, Pasquier 2005]. Tout d’abord, les approches intentionnelles ont la capacité de produire des réponses coopératives qui devancent les attentes de l’interlocuteur en se basant sur la reconnaissance du plan sous-jacent à l’interaction (e.g., « – Vendez-vous des billets de train pour Lille ? – Tout à fait ! Ils coûtent 20 euros. »). Ensuite, en analysant la partie du plan de l’interlocuteur qui est erronée, le système est capable d’établir une stratégie de reprise pertinente vis-à-vis du but de l’interlocuteur [Pollack 1990] (e.g., « – Je vais voir “Superman”. Donnez moi un billet pour la salle 10. – La salle 10 ne diffuse pas “Superman”. Vous devriez prendre un billet pour la salle 12. »). Enfin, ces approches ne dépendent pas de règles issues d’observations empiriques sur la structuration des conversations qu’il est souvent facile de mettre en défaut. En ce sens, elle dispose d’une grande flexibilité au prix peut-être d’une dépendance au domaine renforcée. Un ensemble de critiques a été émis à l’encontre des approches intentionnelles [Traum 1994b, Clark 1996, Maudet 2002a,Pasquier 2005]. Parmi toutes ces critiques, nous retenons celles qui sont liées à un point de vue théorique et celles liées à un point de vue pratique. D’un point de vue théorique, le rôle central de l’intention dans ces approches est à remettre en cause. En effet, la plupart des dialogues présente des phases d’interaction ritualisée qui ont été mises en avant par l’analyse de la conversation (e.g., remerciements, échange de salutations, etc.). La reconnaissance de l’intention sous-jacente semble exagérée dans ces cas. Ceci soulève la question de la pertinence des attitudes mentales considérées (croyances, désirs et intention) et de leur adéquation pour modéliser complètement le comportement conversationnel d’un système. Ces attitudes ne permettent pas de prendre convenablement en compte le caractère collectif et social du dialogue. Ainsi, elles ne suffisent pas pour expliquer des réponses telles que « Je ne sais pas. » à une question. Deux solutions principales sont considérées. D’une part, une stratégie consiste à augmenter ces attitudes d’autres notions comme les pressions interactives [Bunt 1996] ou les obligations [Traum 1994b]. D’autre part, il s’agit de considérer le dialogue comme une activité conjointe [Lochbaum 1994, Grosz 1996]. Néanmoins, cette approche du problème est sujette à controverse sur la notion d’intention collective et de l’introduction de dérivés de l’intention [Searle 1990, Grosz 1996]. De plus, les formalismes proposés pour formaliser la notion d’action conjointe (où l’action des participants est expliquée par la participation à l’activité jointe) restent limités à la considération d’une activité collaborative. En conséquence, elles ne permettent pas de prendre en compte les situations dialogiques conflictuelles comme le débat où il n’y a pas de but commun établi entre les interlocuteurs [Traum 1994b]. Notons que doter un système de dialogue coopératif de capacités lui permettant de rentrer dans un débat avec un utilisateur peut avoir un intérêt. Par exemple, un agent assistant peut essayer de convaincre son utilisateur que la date qu’il a choisi pour un rendez-vous n’est pas la plus adaptée. En somme, les approches intentionnelles n’indiquent pas comment caractériser le fait que les interlocuteurs prennent part à des activités conjointes (collaboratives ou non) dans lesquelles ils peuvent compter sur certaines actions les uns des autres. Enfin, la dernière critique tient en la nature opportuniste du dialogue [Clark 1996] (cf. section 1.1.1). La vision opportuniste défend l’idée selon laquelle le dialogue n’est pas une activité planifiée : le dialogue ne semble planifié qu’a posteriori. Les participants s’engagent dans le dialogue sans savoir à l’avance ce qu’ils vont y faire. Bien entendu, cela n’empêche pas le fait que les participants entretiennent des objectifs préalables à la conversation. La raison principale de la nature opportuniste du dialogue est qu’il est co-construit et co-géré par ses participants. En2.2. Approches conventionnelles 39 conséquence, un participant ne peut rien faire sans l’autre. Compte tenu du fait qu’un participant ne peut pas savoir à l’avance ce que l’autre va faire, le dialogue ne peut pas être planifié. Le dialogue semble donc être une activité conjointe nécessitant quasiment d’être replanifiée au tour par tour, réduisant ainsi l’intérêt de la planification. Cette observation est corroborée par l’observation que certaines séquences d’actes ne peuvent pas être planifiées [Pulman 1998] (typiquement, les demandes de clarifications). Une réponse partielle à ce problème a été apportée par les plans partagés [Lochbaum 1994, Grosz 1996] qui ont vocation à être complétés par les participants. D’un point de vue pratique, il est indispensable de préciser que les approches intentionnelles sont difficiles à mettre en œuvre dans des systèmes réels. D’une part, le mécanisme de reconnaissance de plans est très complexe et difficile à mettre en place [Cohen 1997]. Qui plus est, les algorithmes de reconnaissance de plans sont combinatoirement intractables dans le pire des cas et indécidables dans certains cas [Bylander 1991]. Enfin, les approches par plans sont dé- pendantes du domaine. Il est indispensable de définir les recettes couvrant l’ensemble des cas possibles. 2.2 Approches conventionnelles Dans cette section, nous abordons l’aspect conventionnel de certaines approches de modélisation du dialogue pour l’interaction Homme-Machine. Là où les approches intentionnelles interprètent les motifs d’interaction comme un épiphénomène des intentions des interlocuteurs, les approches conventionnelles les voient comme des conventions établies et ne se focalisent pas sur les intentions sous-jacentes. Dans un premier temps, nous présentons les fondements des approches conventionnelles (cf. section 2.2.1). Ensuite, nous abordons les approches étudiant la structuration des motifs d’interaction et qui visent à produire des règles décrivant des sé- quences admissibles de types d’énoncés (cf. section 2.2.2). Puis, nous voyons les modèles fondés sur les questions en discussion qui illustrent l’ensemble des concepts des approches conventionnelles (cf. section 2.2.3). Enfin, nous discutons les avantages et limites de ce type de modèle (cf. section 2.2.4). 2.2.1 Fondements des approches conventionnelles Alors que les approches intentionnelles se focalisent sur la « partie privée » en s’intéressant aux attitudes mentales des interlocuteurs, les approches conventionnelles se concentrent sur ce qui est partagé par les participants durant le dialogue. En d’autres termes, les approches conventionnelles s’intéressent à la partie « publique ». C’est généralement ce dont il est question lorsqu’on aborde la notion de fonds commun. Fonds commun et tableau de conversation La notion de fonds commun L’idée de fonds commun 2 remonte à Stalnaker [Stalnaker 1979] et Lewis [Lewis 1979]. Stalnaker utilise le concept de fonds commun qui garde une trace de l’état courant du dialogue. Il est vu comme un ensemble non structuré de propositions enrichi par les assertions des interlocuteurs. Ainsi, un interlocuteur réalisant une assertion modifie le fonds commun (e.g., en ajoutant la proposition). Lewis, quant à lui, dresse un parallèle entre 2. Traduction de l’anglais « common ground », également traduit « terrain commun »40 Chapitre 2 : Modélisation du dialogue : intention versus convention le dialogue et le baseball. Il imagine le fonds commun (nommé « conversational scoreboard » pour l’occasion) comme un tableau permettant de garder une trace de l’interaction dialogique au même titre qu’un panneau d’affichage sur un terrain de sport. Le fonds commun pour le dialogue est généralement vu comme incluant un fonds commun général établi par le contexte global (cf. section 1.2.2) et un fonds commun conversationnel (en lien avec le contexte local, cf. section 1.2.2) qui est établi au cours du dialogue par le processus d’établissement (le grounding). Plusieurs formalisations du fonds commun existent dont certaines sont sujettes à controverse sur leur plausibilité cognitive [Clark 1996]. La formalisation communément établie est celle de base partagée [Lewis 1969] : p est une information commune pour les membres d’une communauté C si et seulement si : 1. Chaque membre de C possède l’information que la base b est établie. 2. b indique à tous les membres de C que tous les membres de C possèdent l’information que b est établie. 3. b indique à tous les membres de C que p. La notion de base partagée doit être vue comme une situation commune à partir de laquelle il est possible de dériver certaines informations, et que ces informations sont également partagées avec les membres de la communauté C. Ainsi, si je me trouve à un concert de rock avec une amie, et qu’un groupe s’installe sur la scène, je peux déduire de la situation que le fait « il y a un groupe sur la scène » fait partie du fonds commun. Soulignons que les informations contenues dans le fonds commun ne sont pas exactement des informations partagées mais plutôt des informations supposées partagées. C’est pourquoi les versions du tableau de conversation des interlocuteurs peuvent varier au cours du dialogue. Tableau de conversation En terme de modélisation du dialogue par les approches conventionnelles, il est plus courant de parler de tableau de conversation. C’est la partie du fonds commun qui représente l’état du dialogue entre les participants. Le contenu du tableau de conversation inclut des « éléments classiques » comme l’historique du dialogue (ce qui a été dit). D’autres éléments peuvent y être inclus comme certains éléments du contexte local (cf. section 1.2.2). Le contenu du tableau dépend des éléments pris en compte dans la modélisation du dialogue. Lewis avance l’idée d’accommodation pour décrire le principe selon lequel le tableau de conversation peut évoluer de manière à rendre correct un coup dialogique (i.e., un acte contextuel). Imaginons un tableau de conversation contenant une représentation des questions en cours de discussion entre les interlocuteurs sous forme d’une pile. Il est possible qu’un interlocuteur choisisse de répondre non pas à la dernière question posée (au sommet de la pile) mais à l’avant dernière question. Une accommodation de tableau est alors effectuée afin de faire passer l’avant dernière question en tête, de manière à l’interpréter comme la question répondue (cf. section 2.2.3). Contexte et tableau de conversation Les liens entre contexte dialogique (cf. section 1.2.2) et tableau de conversation nécessitent d’être précisés. Le tableau de conversation réfère généralement à la partie publique (ou partagée) de l’état d’information qui modélise le contexte dialogique. À ce sujet, Ginzburg présente cinq types de structuration possibles du contexte dialogique2.2. Approches conventionnelles 41 en terme d’informations publiques et privées intervenant dans le comportement conversationnel des interlocuteurs (A et B représentent les interlocuteurs) [Ginzburg 2012] (p. 64) 3 : 1. A : 〈A.private〉, B : 〈B.private〉 2. A : 〈public〉, B : 〈public〉 3. A : 〈A.private, A.B.private〉, B : 〈B.private, B.A.private〉 4. A : 〈public, A.private〉, B : 〈public, B.private〉 5. A : 〈A.public, A.private〉, B : 〈B.public, B.private〉 Ces modèles permettent de distinguer les éléments privés (e.g., attitudes privées) et publics (e.g., tableau de conversation) pris en compte dans la modélisation du dialogue. Le modèle 1 renie l’existence d’une partie publique. C’est un extrême où le comportement dialogique des agents n’est expliqué que par leurs propres attitudes privées. En conséquence, le tableau de conversation n’existe pas. Le modèle 2 considère l’autre extrême : le comportement dialogique est uniquement expliqué par des facteurs publics. Le contenu du tableau de conversation est entièrement partagé entre les interlocuteurs. C’est ce dernier qui explique tous les comportements dialogiques. Le modèle 3, comme le premier modèle, renie l’existence d’une partie publique. Les agents ne considèrent que leurs attitudes privées et leur représentation des attitudes privées de leur interlocuteur. Il s’agit de la vision communément admise dans les approches intentionnelles. Le modèle 4 divise les facteurs jouant sur le comportement dialogique entre une partie publique partagée entre les interlocuteurs et une partie privée. La partie publique représente le « conversational scoreboard » de Lewis. Enfin, le dernier modèle relativise la partie publique du point de vue de l’agent : le contenu du tableau de conversation peut admettre des variations. Le comportement dialogique d’un agent est expliqué par sa représentation de la partie publique et ses attitudes privées. La différence principale entre les approches 4 et 5 réside dans la posture adoptée face à l’ajout d’une information incertaine dans le tableau conversationnel. Dans la première approche, il s’agit de n’enregistrer que les informations établies. Dans la seconde, il s’agit d’enregistrer toutes les informations en prévoyant des mécanismes de révision. Cela nous amène à nous intéresser au mécanisme d’établissement de l’information (le grounding). Mécanisme d’établissement Le processus par lequel le fonds commun est établi et par lequel de nouvelles informations intègrent le fonds commun est appelé grounding [Clark 1989]. L’objectif de ce processus est d’établir ce qui a été dit comme étant public. Cela inclut la forme d’un énoncé, sa fonction, son contenu et ses implications. Ce processus conduit les interlocuteurs à produire des feedbacks (cf. section 1.1.2). Dans ce processus, les interlocuteurs essayent d’atteindre un critère – le critère de grounding [Clark 1989] – qui spécifie qu’ils doivent atteindre un niveau où le locuteur et l’allocutaire croient que l’allocutaire a compris l’énoncé de manière suffisante pour le but courant. Pour cela, les interlocuteurs réalisent des contributions qui se décomposent en deux phases (A et B sont les interlocuteurs) : Phase de présentation A produit un énoncé u vers son interlocuteur B. A attend alors un indice de la part de B qui peut lui faire croire que B a compris ce qu’il voulait dire par u. 3. A.B.private est la représentation de A des attitudes privées de B (et réciproquement pour B.A.private).42 Chapitre 2 : Modélisation du dialogue : intention versus convention Phase d’acceptation B accepte l’énoncé en montrant qu’il a compris (ou pas) ce que A veut dire par u. B suppose alors qu’une fois que A enregistre l’indice, il croira que B a compris (ou pas). Ce n’est qu’après la phase d’acceptation que l’énoncé est ajouté dans le fonds commun. Pré- cisons que la phase d’acceptation ne suit pas nécessairement de manière immédiate la phase de présentation. Des contributions peuvent venir s’intercaler entre les deux phases. Les indices produits peuvent être positifs ou négatifs. Concernant les indices positifs, Clark en propose une liste hiérarchisée (du moins fort au plus fort) : (a) B montre qu’il continue d’être attentif. (b) B produit un énoncé pertinent à la suite. (c) B acquiesce. (d) B reformule ou complète l’énoncé de A. (e) B répète l’énoncé de A. De même pour les indices négatifs : (a) B engage un dialogue de clarification. (b) B répète l’énoncé en faisant une erreur. (c) B n’est plus attentif. (d) B produit un énoncé non pertinent à la suite. (e) B déclare ne pas comprendre. Notons que le processus est récursif : une phase d’acceptation est elle-même une phase de présentation pour une nouvelle contribution. Pour éviter une récursion infinie, les auteurs invoquent le principe selon lequel les indices diminuent progressivement de force. Ce modèle a reçu beaucoup d’attention en intelligence artificielle. Pour plus de détails, voir [Traum 1992,Traum 1994a,Poesio 1998b,Traum 1999] dont nous avons présenté un aperçu en section 1.2.2. Le fonds commun permet l’établissement de régularités au sein d’une communauté généralement désignées par le terme convention. Conventions et motifs d’interaction Une convention est une règle générale adoptée par une communauté pour la résolution d’un problème de coordination [Lewis 1969]. Par exemple, se serrer la main est une solution conventionnelle dans une communauté au problème récurrent de comment se saluer. En d’autres termes, une convention est une régularité qui existe au sein d’une communauté, sans avoir nécessairement fait l’objet d’un accord explicite. Ces régularités font partie du fonds commun des membres de cette communauté [Clark 1996]. Les régularités qui nous intéressent sont les motifs d’interaction définis en introduction de ce document. Au contraire des approches intentionnelles où le lien provient de l’intention et des hypothèses de coopération, on suppose ici l’existence d’un lien conventionnel entre les énoncés. Le problème n’est pas de savoir comment ces régularités sont apparues. On suppose leur existence (i.e., leur appartenance au fonds commun) et on suppose que les interlocuteurs sont prêts à s’y conformer. Ces régularités présentent un intérêt simplificateur pour la modélisation du dialogue. Dans une régularité de ce type, il n’est par exemple pas nécessaire de réaliser des analyses complexes sur l’intention sous-jacente. Nous nous intéressons en premier lieu aux approches qui se concentrent sur les propriétés structurelles de ces régularités. 2.2.2 Modèles fondés sur la structuration Nous débutons cette section par les grammaires de dialogue qui cherche à déterminer la structure du dialogue en terme de constituants. Puis nous traitons des approches par protocole qui sont généralement utilisées afin de modéliser les motifs d’interaction.2.2. Approches conventionnelles 43 Grammaires de dialogue La modélisation du dialogue fondée sur la structuration cherche à déterminer la structure sous-jacente du dialogue en terme de constituants. L’idée est alors de modéliser les liens que ces constituants entretiennent. Cette idée est analogue à la décomposition grammaticale d’une phrase (e.g., de type « Sujet + Verbe + Complément »). Ici, on cherche à faire la même chose mais avec le dialogue. L’idée est donc de trouver des grammaires de dialogue [Polanyi 1984, Roulet 1987]. Le modèle genevois est l’exemple par excellence du modèle structurel du dialogue humain [Roulet 1987, Moeschler 1989]. Il définit un cadre strict d’analyse en constituants hié- rarchiques et d’analyse fonctionnelle. Les constituants du dialogue considérés sont les suivants (du plus simple au plus complexe) : — L’acte est l’unité d’analyse minimale (cf. section 1.2.1). — L’intervention est constituée d’au moins un acte. Elle est dite simple si elle ne contient qu’un acte, sinon elle est dite composée. — L’échange est la plus petite unité interactive. Il est constitué au maximum de trois interventions. La première intervention possède la fonction initiative, la deuxième réactive et l’éventuelle troisième évaluative. — La séquence est constituée d’un ou plusieurs échanges reliés par un fort degré de cohérence sémantique et/ou pragmatique. — L’interaction est composée d’une ou plusieurs séquences. Elle est délimitée par la rencontre et la séparation des deux interlocuteurs. En plus des règles structurelles qui définissent les enchaînements possibles des constituants du dialogue (e.g., sous forme de grammaire hors contexte), le modèle ajoute des fonctions illocutoires (initiative, réactive, évaluative, . . . ). Le système de dialogue Homme-Machine SUNDIAL [Bilange 1991b] exploite le modèle structurel genevois. L’idée de ces travaux est d’utiliser les structures proposées pour construire un contexte du dialogue. Ce contexte de dialogue est ensuite exploité pour prédire les actes qui peuvent être joués par le système ou l’utilisateur à un moment donné de la conversation. Plus précisément, une initiative ouvre un échange. L’interlocuteur est alors mis en situation de réaction. Cela le pousse à produire une intervention réactive qui peut elle-même conduire l’initiateur de l’échange à produire une intervention évaluative. C’est un modèle en trois temps initiatif/- réactif/évaluatif. La force de ce système est d’isoler dans son architecture un module du dialogue, qui représente la structure courante du dialogue, des autres modules (tâche, linguistique, etc.). En tenant compte de la structure du dialogue, le module du dialogue produit des descriptions des prochains énoncés possibles de la part du système et des prédictions à propos des prochains énoncés possibles de la part de l’utilisateur. Néanmoins, le module de la tâche conserve un rôle important dans ces étapes de prédictions et de générations. En outre, aucune contrainte sur le contenu des actes de dialogue n’est représentée dans la structure du dialogue. Protocoles de communication Définition Un protocole de communication est un type de politique de conversation définie comme un ensemble de « contraintes générales sur les séquences de messages sémantiquement cohérents menant à un but » [Greaves 2000]. Un protocole spécifie des séquences d’actes communicatifs attendus en fonction de l’état de la conversation pour la réalisation d’une tâche précise.44 Chapitre 2 : Modélisation du dialogue : intention versus convention Le formalisme généralement adopté pour représenter un protocole est l’automate à états finis (e.g., le célèbre « Request for Action » de Winograd et Flores [Winograd 1986]). Dans un tel automate, les états représentent l’état de la conversation et les transitions représentent les actes communicatifs réalisables. Un protocole de communication peut être vu comme un projet conjoint conventionnel entre les interlocuteurs [Pasquier 2005]. Un projet conjoint est une activité conjointe proposée par l’un de ses participants et acceptée par le reste des participants (cf. section 1.1.1). Un tel projet possède une phase d’entrée, un corps et une sortie. Chaque participant doit s’engager dans l’action conjointe. Une fois que cela est fait, les participants exécutent leurs actions participatives. Sous cet angle, un protocole peut être vu comme une spécification d’un enchaînement d’activités participatives (ou d’autres actions conjointes). Notons que les phases d’engagement et de désengagement de l’activité conjointe sont généralement contraintes par la tâche qui implique l’usage du protocole. Les protocoles de communication sont particulièrement utilisés dans le domaine de la communication multiagent (voir, e.g., KQML [Finin 1994] et FIPA-ACL [FIPA 2000]). Certains protocoles ont été utilisés pour la modélisation des interactions Homme-Homme. Nous présentons l’une de ces approches. Modéliser les communications humaines par des protocoles Dans le cadre de la modé- lisation d’interactions humaines pour la planification multiagent, Pauchet a proposé un modèle de l’interaction basé sur l’utilisation d’automate temporisé [Pauchet 2006]. Le modèle d’interaction se base sur l’étude d’un corpus d’interactions Homme-Homme (constitué d’échanges de mails pour une tâche de réservation de voyage). Cette étude a fait apparaître la présence de motifs d’interactions appelées échanges qui se répartissent en quatre catégories : demande d’information, proposition d’information, envoi spontané d’information et traitement des erreurs. Ces échanges sont caractérisés par : (i) le rôle des participants : initiateur de l’échange ou partenaire, (ii) un but de l’initiateur qui motive l’échange, (iii) un état de satisfaction (réalisation ou non du but de l’initiateur), et (iv) un état de succès (établissement de l’échange entre les interlocuteurs). Pauchet propose une modélisation sous forme d’automates temporisés des échanges. Ainsi, chaque échange admet une paire d’automates décrivant les règles conventionnelles pour l’initiateur et l’autre participant de l’échange 4 . Les transitions dans les automates temporisés sont associées à 3 éléments : (i) une garde portant sur les valeurs des chronomètres (aussi appelés horloge), utilisée pour spécifier des contraintes de temps, (ii) une étiquette représentant une action, et (iii) des actions de remise à zéro de certaines horloges. La notion de temps dans les échanges (et donc dans les automates temporisés) a été introduite pour considérer la clôture des échanges en cas d’inactivité en terme d’occurrence d’actes de langage au bout d’un certain délai (cf. [Pauchet 2006], p. 109). Les actions des transitions sont des actions dialogiques d’envoi ou de réception d’actes de langage. Une action d’envoi (send) dans l’automate de l’initiateur de l’échange (Xini où X est une lettre identifiant l’échange) admet son action conjuguée (receive) dans l’automate de l’interlocuteur de l’échange (Xint). La figure 2.1 (p. 45) présente l’automate de l’initiateur pour l’échange de demande d’information. Ce dernier présente un motif d’interaction permettant à l’initiateur de demander des informations à son interlocuteur. Cet 4. Comme le signale Pauchet, « Chaque échange aurait pu être représenté avec un automate. Cependant, utiliser deux automates par échange permet de mettre en avant le point de vue de chaque interlocuteur. » [Pauchet 2006] (pp. 110-111).2.2. Approches conventionnelles 45 échange permet d’utiliser des performatives de demande d’information (query), de raffinement de la demande (refine) ou d’annulation (cancel). Figure 2.1: Automate de l’initiateur pour la demande d’information dans l’approche de Pauchet [Pauchet 2006] L’approche de Pauchet dépasse le cadre conventionnel strict en proposant un lien avec les attitudes mentales de l’agent. Dans l’esprit des approches intentionnelles, Pauchet présente une sémantique mentaliste [Singh 1998] aux actes de langage utilisés. Ils sont vus comme des opé- rateurs ayant des préconditions et des effets en terme d’états mentaux des participants. Par exemple, les préconditions de l’acte inform spécifient que le locuteur croit la proposition P (hypothèse de sincérité) et a le désir d’informer l’interlocuteur de cette proposition. L’envoi du message conduit le locuteur à ajouter à ses croyances la proposition pSent(M) où M est le message. La réception du message conduit le partenaire à ajouter dans ses croyances la proposition P. Pauchet note la présence de dialogues incidents dans le corpus étudié (cf. section 1.1.2). Ceux-ci correspondent à des « énoncés non-attendus » dans le cours idéal de l’interaction. Le principal type de dialogue incident est dû à une demande d’information sous spécifiée nécessitant une clarification. Pour gérer ce cas, Pauchet a mis en place un acte de dialogue spécial refine qui permet de compléter la demande (cf. états s1 et s7 de l’échange représenté figure 2.1). De manière générale, « Il y a un dialogue incident à chaque émission d’une performative de type refine » [Pauchet 2006] (p. 98). La solution proposée pour gérer ces digressions est donc sur l’axe intra-échange plutôt que sur l’axe inter-échange. Le principal avantage de cette solution est d’être simple et efficace. Néanmoins, on peut se demander si cette solution ne nuit pas à la portée de l’échange qui semble être sur l’axe de la tâche sous-jacente du dialogue alors que le refine semble agir sur l’axe interactionnel du dialogue. Pauchet note par ailleurs que cette46 Chapitre 2 : Modélisation du dialogue : intention versus convention solution ne couvre pas l’ensemble des cas observés dans le corpus, à savoir une imbrication de refine. 2.2.3 Modèles fondés sur les questions en discussion Dans cette section, nous présentons la théorie « Question Under Discussion » (QUD) 5 du linguiste Ginzburg. Puis, nous voyons comment cette théorie a été mise en œuvre dans le système de dialogue implémenté GoDiS. Questions en discussion La théorie « Question Under Discussion » (QUD) est une théorie conventionnelle fondée sur une sémantique formelle des questions [Ginzburg 1994,Ginzburg 1996,Ginzburg 2012]. Ce qui fait l’originalité de ce modèle est que Ginzburg propose une version structurée d’un tableau de conversation nommé « dialogue gameboard » (DGB) en plus de la sémantique des questions. Ginzburg étudie les effets des couples question-réponse sur le tableau conversationnel. Le tableau est enrichi par des coups dialogiques 6 qui sont des actes de dialogue contextuels (cf. section 1.2.2). Nous allons maintenant aborder plus en détails cette théorie. Nous nous intéressons tout d’abord à la sémantique des conditions de résolution de ces questions. Puis, nous voyons la structure de la DGB inclue dans le cadre plus large du « State Of Affair » (SOA). Enfin, nous présentons brièvement les effets des questions et assertions sur la DGB. Relations entre questions et réponses Nous présentons de manière informelle les relations entre les questions et les réponses déterminées par Ginzburg. Une présentation plus complète est disponible dans [Ginzburg 1995a, Ginzburg 1995b, Ginzburg 1996]. Ginzburg propose une vue théorique de la sémantique formelle sur la notion de question basée sur la théorie des situations de Barwise et Perry [Barwise 1981]. Dans le modèle de Ginzburg, une question est vue comme une expression en attente d’un ou plusieurs arguments (la ou les réponses à la question). La réponse peut être une proposition ou une simple expression (une réponse courte). Une question est représentée par une lambda expression typée. La réponse à cette question doit être du type de la question. Ginzburg propose un ensemble de relations liant une question et ses réponses et les questions entre elles que nous allons maintenant présenter. Réponses à propos Les réponses à propos 7 sont des réponses qui sont liées à une question indépendamment de leur exactitude ou du niveau de détails. L’avantage de considérer les questions à propos est d’éliminer les réponses n’ayant aucun rapport avec la question. Considérons l’exemple du dialogue 2.1. 5. Cette théorie est également appelée KoS [Ginzburg 2012]. 6. Traduction de « dialogue move » 7. Traduit de l’anglais aboutness et about2.2. Approches conventionnelles 47 S1 : Est-ce que Paul vient demain ? H2 : oui H’2 : non H”2 : peut-être H”’2 : J’adore le chocolat. Dialogue 2.1 – Exemple de réponses à propos dans l’approche de Ginzburg (réponses H’, H” et H”’). Dans le dialogue 2.1, les trois premières réponses de H sont à propos. Le dernier énoncé abordant le chocolat n’est pas considéré comme étant une réponse. Réponses résolvantes La notion de réponse résolvante à une question est définie par Ginzburg comme permettant de capturer le point de vue relatif d’un agent qui estime que sa question a été discutée suffisamment pour être considérée comme terminée et passer à un autre sujet. Ce qui signifie que : (i) la réponse résout positivement ou négativement la question sémantiquement, (ii) les inférences liées à cette réponse permettent de remplir les buts de l’agent qui a posé la question. La notion de résolution est nécessairement relative à l’agent. En d’autres termes, le fait qu’une réponse soit résolvante dépend des buts de l’agent. S1 : Quelle heure est-il ? H’2 : Pas loin de 19h ! H”2 : Il est 10h04min32sec. Dialogue 2.2 – Exemples de la relativité de la notion de résolution dans l’approche de Ginzburg Le dialogue 2.2 présente un exemple de deux réponses illustrant la relativité de la notion de résolution. Le première réponse (H’2) est résolvante dans le contexte de deux collègues de bureau s’interrogeant sur l’heure pour savoir s’il est temps de rentrer chez eux par exemple. La deuxième réponse (H”2) est résolvante dans un contexte de deux chimistes tentant de mesurer avec précision le temps d’exécution d’une réaction chimique. Dans le premier contexte, la deuxième réponse (« Il est 10h04min32sec. ») semblerait trop précise. Alors que dans le deuxième contexte, la première réponse (« Pas loin de 19h ! ») ne serait pas résolvante. Relation de dépendance entre questions Ginzburg définit également une relation de dépendance entre deux questions : q1 dépend de q2 si et seulement si q1 est résolue par un fait τ seulement si q2 est aussi résolue par τ . L’exemple classique pour illustrer la relation de dépendance entre questions est reporté dans le dialogue 2.3. S1 : Qui a assassiné John ? H2 : Qui était en ville hier ? Dialogue 2.3 – Exemple de questions dépendantes dans l’approche de Ginzburg Dans le dialogue 2.3, la question « Qui a assassiné John » dépend de « qui était en ville hier ». De manière symétrique, il est possible de définir la relation d’influence. Ainsi, si q1 dépend de q2 alors q2 influence q1.48 Chapitre 2 : Modélisation du dialogue : intention versus convention Le tableau de conversation Afin de structurer le fonds commun conversationnel de chacun des interlocuteurs au cours du dialogue, Ginzburg introduit la dialogue gameboard (DGB) [Ginzburg 1994,Ginzburg 1996,Ginzburg 2012]. Cet objet est dit quasi-partagé (cf. section 2.2.1). En effet, chaque interlocuteur possède sa propre version de la DGB. Des différences peuvent apparaître entre les DGB des participants du fait d’une communication imparfaite. Selon Ginzburg, si les deux tableaux sont différents les agents vont chercher à identifier et corriger ces différences. La DGB présente trois champs : — FACTS : ensemble de faits mutuellement acceptés ; — QUD (Question Under Discussion) : ensemble partiellement ordonné qui spécifie les questions en cours de discussion. Si q est maximale dans QUD, il est possible de fournir une information spécifique à q (notamment en passant par des réponses courtes comme des ellipses). Ainsi, cette structure permet de mettre en avant les questions qui sont saillantes dans la conversation. Larsson remarque que les questions dans QUD possèdent les caractéristiques suivantes [Larsson 2002a] (p. 156) : (a) elles sont ouvertes à la discussion ; (b) elles sont disponibles pour une résolution elliptique ; (c) elles sont explicitement posées ; (d) elles sont non encore résolues. — LATEST-MOVE : le ou les derniers coups dialogiques. En outre, Ginzburg propose de représenter les buts de l’interlocuteur et ses capacités inférentielles. Contrairement à la DGB qui est quasi-partagée, cette partie est privée. Elle est appelée unpublicized mental situation (UNPUB-MS(DP)) 8 . Nous avons vu que le fait qu’une réponse soit résolvante était relative à l’interlocuteur. Cela revient à dire que c’est relatif à UNPUBMS(DP). L’ensemble DGB et UNPUB-MS(DP) est nommé State of Affair (SOA). Il forme une structuration du contexte de type 5 vu en section 2.2.1 avec une partie publique relative au point de vue de l’agent et une partie privée. À chaque instant, un interlocuteur peut donc choisir entre ajouter quelque chose à la DGB ou aborder une question du champ QUD. Les règles de mise à jour de la DGB s’appuient sur la sémantique précédemment définie (cf. section 2.2.3). A priori, n’importe quelle question peut être posée tant qu’elle n’est pas résolue (i.e., si une réponse résolvante a déjà été donnée ou bien que cette réponse se trouve dans FACTS). Dès que le locuteur pose une question q, le locuteur et son interlocuteur l’ajoute au champ QUD. L’allocutaire peut alors accepter la question. Dans ce cas il doit produire une réponse spécifique à q. Les énoncés qui sont disponibles comme réponse spécifique à une question sont les suivants : (a) une réponse résolvante ; (b) des réponses à propos ; (c) une question influençant q ; (d) des réponses à propos des questions influençantes. Enfin, la question maximale q dans QUD est dépilée lorsque que : (a) un fait résout q relativement à UNPUB-MS(DP) (où DP est celui qui a produit la question) ; (b) aucune information à propos de q ne peut être fournie. L’avantage de QUD est de proposer une version structurée d’un tableau de conversation ainsi que des protocoles de mises à jour. Cette théorie est le point de départ choisi par Larsson pour le système GoDiS que nous allons maintenant aborder. « Issue-based Dialogue Management » GoDiS [Larsson 2000a] et son successeur IBiS [Larsson 2002a] sont des modèles de dialogue basés sur QUD et implémentés en Prolog avec le framework trindikit [Larsson 2000b, Lars- 8. DP = « Dialogue Participant »2.2. Approches conventionnelles 49 son 2002b]. Nous référons à ces systèmes en utilisant le nom GoDiS. GoDiS est un exemple complet de gestionnaire de dialogue basé sur une approche contextuelle (cf. section 1.2.2). La génération et l’interprétation des énoncés sont perçus comme la mise à jour et l’exploitation d’un état d’information représentant le contexte et l’état du dialogue à un instant donné. En outre, GoDiS intègre des mécanismes d’accommodation de l’état d’information (cf. section 2.2.1). Pour finir, GoDiS gère certains processus de gestion de la communication (cf. sections 1.1.2 et 2.2.1). En somme, ce système est la parfaite illustration de l’approche contextuelle associée à la mise en œuvre de mécanismes d’accommodation et de gestion du dialogue. La présence de mécanismes de planification dans GoDiS peut interroger sur sa classification en tant qu’approche conventionnelle de la modélisation du dialogue. GoDiS utilise des plans de dialogue figés qui ont un double rôle : fonder le comportement coopératif du système et repré- senter les relations de dépendance entre les questions. Ces plans de dialogue sont à différencier des plans du domaine utilisés dans les approches intentionnelles. Les plans du domaine sont utilisés comme base de raisonnement pour la production du comportement coopératif (éventuellement dialogique) du système. Ainsi, les approches intentionnelles ne nécessitent pas de plan de dialogue. Grossièrement, un plan dans GoDiS représente une décomposition d’une question en un ensemble de questions influençantes. Pour répondre à une question sur le prix d’un voyage, le plan représente le soulèvement d’autres questions (villes de départ et d’arrivée, moyen de transport, . . . ). Ces plans sont figés et représentent une connaissance procédurale pour mener le dialogue. GoDiS évite ainsi les processus de reconnaissance d’intention et d’inférence de plan [Larsson 2002a] (pp. 33-34). En outre, les énoncés de l’utilisateur ne sont pas analysés en terme d’intention sous-jacente. Un ou plusieurs coups dialogiques sont attribués à un énoncé sur la base de marqueurs linguistiques de surface. En somme, GoDiS fonde son comportement coopératif dialogique sur des connaissances procédurales conventionnelles. L’absence de plan du domaine et de mécanisme de reconnaissance d’intention nous pousse à ranger GoDiS parmi les approches conventionnelles. L’état d’information GoDiS s’articule autour de l’état d’information (IS). C’est une repré- sentation structurée du contexte et de l’état du dialogue à un instant donné. L’état d’information de GoDiS se structure de la façon suivante :                               PRIVATE :           AGENDA : OpenQueue(Action) PLAN : OpenStack(PlanConstruct) BEL : Set(Proposition) TMP : " USR : Tmp SYS : Tmp # NIM : OpenQueue(Pair(DP,Move))           SHARED :              COM : Set(Proposition) ISSUES : OpenStack(Question) QUD : OpenStack(Question) ACTIONS : OpenStack(Action) PM : OpenQueue(Move) LU : " SPEAKER : Participant MOVES : Set(Move) #                                            L’état d’information suit le principe du State of Affair de Ginzburg. Ainsi, il est séparé en50 Chapitre 2 : Modélisation du dialogue : intention versus convention deux parties : une privée et une partagée. La partie privée (PRIVATE) équivaut au UNPUB-MS de Ginzburg. Elle est principalement utilisée pour la gestion de la planification. Elle est constituée d’un champ PLAN qui stocke les plans qui sont en train de se dérouler (les questions qui vont être posées, etc.). Ces plans définissent des relations de dépendance entre les questions. Par exemple, une question pour connaître le prix d’un voyage est dépendante de questions concernant la ville de départ, la ville d’arrivée et le moyen de transport. Le champ PLAN a une portée sur le « long terme » contrairement au champ AGENDA dont la portée est plus courte. Ce dernier va en effet gérer les actions à faire dans un futur très proche (poser une question, répondre à une question, etc.). Le champ BEL (belief) est un ensemble de propositions représentant les connaissances du système et qui ne sont pas encore partagées (e.g., le prix du billet de train avant d’être communiqué à l’utilisateur). Le champ NIM (non-integrated moves) est une structure permettant de stocker les coups dialogiques qui n’ont pas encore été intégrés par le système. Il est utilisé lors des mécanismes de grounding. Enfin, le champ TMP est une structure temporaire permettant de sauvegarder les champs importants de l’IS afin de permettre un retour en arrière. En effet, le système suppose que l’utilisateur va comprendre ce qu’il dit. Cependant, si l’utilisateur marque son incompréhension par un feedback négatif (e.g., « Pardon ? »), le champ TMP/SYS permet de revenir en arrière. De la même manière, le système va supposer qu’il comprend tout ce que lui dit l’utilisateur. Si ce n’est pas le cas, c’est le champ TMP/USR qui va permettre de restaurer les champs et de fournir une réaction appropriée. La partie partagée (SHARED) est l’équivalent de la DGB de Ginzburg. C’est la représentation des informations partagées par les interlocuteurs pendant le dialogue. Elle est constituée du champ COM (commitments) qui est un ensemble de propositions qui ont été établies. Le champ ISSUES représente les questions qui sont en cours, qui ne sont pas résolues et qui ne sont pas QUD-maximales (ce qui revient à dire qu’elle ne sont pas disponibles pour une résolution par une réponse courte). Le champ QUD, quant à lui, représente les questions qui ont les mêmes propriétés que les précédentes mais qui sont QUD-maximales. Le champ ACTIONS regroupe les actions en cours. Le champ PM (previous moves) contient l’ensemble des coups dialogiques associés aux précédents énoncés qui ont été établis (i.e., l’historique du dialogue). Enfin, le champ LU (Last Utterance) stocke l’interlocuteur et l’énoncé précédent qui a été intégré par le système. Gestion du dialogue Le système est constitué d’un ensemble de modules et de ressources. Les modules ont accès en lecture et/ou écriture à l’état d’information. Les ressources servent à inclure les éléments spécifiques au domaine d’application. La gestion du dialogue dans GoDiS est effectuée en fonction de l’état d’information et en mettant à jour l’état d’information à l’aide de règles. Ces règles sont spécifiées dans les modules du « Dialogue Move Engine » (DME). Ces dernières sont constituées d’un nom, d’une liste de préconditions et d’une liste d’effets. Si les préconditions d’une règle sont vérifiées, alors les effets de la règle sont appliqués. Le DME inclut deux modules principaux. Le premier est le module update qui regroupe un ensemble de règles dont le rôle est de gérer le processus d’interprétation des coups dialogiques effectués par les interlocuteurs. Il inclut les règles d’intégration qui permettent d’intégrer les coups dialogiques (answer, ask, etc.) du système et de l’utilisateur dans l’IS. Le second module select contient les règles permettant au système de (i) sélectionner les prochains coups dialogiques qu’il va effectuer, et (ii) trouver une nouvelle action à effectuer (en fonction du plan courant ou de l’état de l’IS). L’application des règles est coordonnée par des algorithmes de mise à jour spécifiques à chaque module. Ces algorithmes contraignent l’ordre d’exécution des règles. Dans2.2. Approches conventionnelles 51 le cas des modules select et update, ces algorithmes vont appeler les règles de chaque module dans un ordre fixé. L’étape de sélection permet au système de générer des actions dialogiques ou de se mettre en attente d’une action de la part de l’utilisateur. Après chaque action dialogique, l’algorithme de mise à jour de l’état d’information est appelé. Le système retourne alors à la phase de sélection. En sus, Larsson propose un ensemble de règles permettant d’accommoder l’état d’information à un coup dialogique inattendu de l’utilisateur. Gestion de l’accommodation Larsson propose un ensemble de mécanismes permettant de gérer l’accommodation de l’état d’information en fonction des réponses données par l’utilisateur [Larsson 2002a,Cooper 2010]. Ce mécanisme permet de prendre en compte des coups dialogiques inattendus par l’état courant du dialogue. Un premier type d’accommodation permet de répondre à une question qui n’a pas encore été posée. L’accommodation de plan permet à l’utilisateur de répondre à une question qui n’est pas en discussion. Le système infère alors la question et intègre sa réponse. L’accommodation globale permet à l’utilisateur de répondre en avance à une question dès lors qu’elle fait partie du plan courant. Cela permet de prendre en compte des « sur-réponses » comme dans l’exemple : « – Où souhaitez-vous aller ? – À Paris, depuis Rouen, en train ». Au niveau de l’IS, cette accommodation se déroule du champ /private/plan vers le champ /shared/issues. Un second type d’accommodation permet à l’utilisateur de changer la réponse qu’il a donnée à une question et cela à n’importe quel moment du dialogue. Ce mécanisme, appelé ré- accommodation, permet de remplacer la réponse présente dans /shared/com par la nouvelle réponse. Le système est capable de re-soulever (reraising) un plan. En effet, il est nécessaire de re-considérer les réponses des questions qui sont dépendantes de la question dont la réponse a été modifiée. Gestion de la communication Larsson propose des mécanismes de gestion des feedbacks en partant des niveaux de communication d’Allwood et de Clark (cf. section 1.1.2) [Larsson 2002a, Larsson 2003]. Les feedbacks sont des coups dialogiques sur différents niveaux. Le système est capable de produire des feedbacks positifs du niveau perception jusqu’au niveau acceptation. Il est également capable de produire des feedbacks négatifs sur l’ensemble des niveaux. En outre, le système peut produire des demandes explicites de clarification au niveau compréhension. Ces feedbacks sont illustrés dans le tableau 2.3. Les feedbacks utilisables par l’utilisateur et pouvant être traités par le système sont plus réduits. Celui-ci peut produire des feedbacks négatifs au niveau perception. De plus, il peut accepter ou rejeter des questions. Certains travaux ont étudié plus en détails les demandes de clarification de l’utilisateur et leur intégration à GoDiS [Purver 2004]. Synthèse sur le système GoDiS GoDiS est un exemple complet de système de dialogue implémenté basé sur la structuration d’un contexte dialogique. La structuration et la sémantique des questions et des réponses sont issues de la théorie QUD du linguiste Ginzburg. Il a été utilisé avec succès comme base pour construire d’autres systèmes. Par exemple, il a permis de concevoir un système de dialogue pour un lecteur multimédia [Hjelm 2005] ou encore un système d’interaction multimodale embarqué dans une voiture [Larsson 2011]. Il est également à la base de Cogni-CISMeF, un prototype52 Chapitre 2 : Modélisation du dialogue : intention versus convention Niveau Exemples Contact - « I didn’t hear anything from you. » Perception - « Pardon ? », « I didn’t hear what you said. » + « I heard “to Paris”. » Compréhension - « I don’t understand. » (sémantique) + « Paris. » (répétition/reformulation) Compréhension - « I don’t quite understand. » (pragmatique) n « To Paris, is that correct ? » + « To Paris. » Réaction/Acceptation - « Sorry, Paris is not a valid destination. » + « Okay. » Tableau 2.3: Gestion de feedbacks du système dans GoDiS [Larsson 2003]. « - » = feedback négatif, « + » = feedback positif, « n » = feedback neutre. d’agent assistant pour la recherche d’information auquel nous avons contribué [Loisel 2011,Loisel 2012]. Nous défendons l’idée que GoDiS est un système de dialogue proposant des mécanismes de gestion de phénomènes dialogiques avancés indépendants de la tâche en s’appuyant sur un état d’information. Il reste néanmoins limité à une tâche de recherche d’information simple tout en étant difficile à étendre. 2.2.4 Avantages et limites des approches conventionnelles Nous avons présenté certains aspects conventionnels représentatifs de modèles du dialogue pour l’interaction Homme-Machine. Au contraire des approches intentionnelles qui se focalisent sur les attitudes privées des agents, les approches conventionnelles se basent sur les notions de fonds commun et de convention mettant en avant ce qui est partagé par les interlocuteurs. Les approches conventionnelles supposent l’existence d’un lien conventionnel entre les énoncés qui se concrétise par l’existence de régularités, les motifs d’interaction. Le problème n’est pas de savoir comment ces régularités sont apparues. Leur existence est supposée, tout comme le fait que les interlocuteurs sont socialement poussés à s’y conformer. Ce sont ces dernières suppositions qui peuvent laisser penser que les approches conventionnelles ne feraient que décrire des motifs expliqués par les approches intentionnelles. Nous revenons sur ce point en section 2.3. De manière générale dans ces approches, un énoncé est cohérent s’il correspond à ce qui est conventionnellement attendu au cours du dialogue. Les approches conventionnelles structurelles étudient les motifs d’interaction sans se focaliser sur les intentions sous-jacentes. Cela provient de l’observation qu’un grand nombre de types d’énoncés ne semble pas être consciemment émis mais plutôt conventionnellement déclenché par le contexte (l’exemple canonique étant les salutations). Ces études conduisent à la production de règles décrivant les séquences admissibles de types d’énoncés (e.g., sous forme de protocoles ou de grammaires de dialogue). La faiblesse la plus criante de ces approches structurelles est très certainement leur manque de flexibilité. Elles sont souvent mises en défaut par un énoncé non-attendu comme illustré par les problèmes de dynamique des échanges de Pauchet (cf. section 2.2.2). Cela nous amène à une critique plus générale des protocoles de communication [Maudet 2002b]. Nous avons pu voir que les protocoles manquaient de flexibilité. En particulier, il est indispensable de préférer un ensemble de petits protocoles qu’il est possible de composer. En2.2. Approches conventionnelles 53 outre, les protocoles pour l’interaction Homme-Machine mêlent généralement la modélisation de plusieurs niveaux de l’interaction (cf. section 1.1.2). Dans l’idéal, les protocoles devraient se contenter de gérer les actions participatives propres au niveau sur lequel ils interviennent. Or, nous constatons l’intégration dans leur modélisation d’autres préoccupations comme la gestion des entrée/sortie de l’activité conjointe et des processus de gestion de l’interaction (voir, par exemple, les actes cancel, refine et notUnderstood de l’approche de Pauchet). En tant qu’activité conjointe, il est nécessaire d’étudier les mécanismes qui permettent aux participants du dialogue d’établir le protocole en usage. Ensuite, le formalisme d’automate semble trop rigide. Il est en particulier difficile de considérer des messages inattendus par le protocole. Enfin, les protocoles représentent des projets conjoints conventionnels. À cet égard, l’approche de Pauchet (comme bien d’autres approches) réserve un rôle ambigu aux protocoles. D’un côté, les protocoles sont des dispositifs de coordination partagés par les interlocuteurs (i.e., faisant partie du fonds commun). D’un autre côté, la sémantique mentaliste spécifie des conditions d’applicabilité des actes de langage en terme d’attitudes privées. Le télescopage des niveaux public et privé brouille la portée de tels protocoles. En tant que dispositif partagé de coordination, il semble nécessaire de fournir des spécifications à un haut niveau d’abstraction et idéalement indépendantes des spécificités des participants impliqués dans la communication (plus particulièrement, des dispositions privées comme les croyances et les désirs qui correspondent davantage à un niveau lié à l’intentionnalité et à la tâche sous-jacente). Une alternative consiste à spécifier une sémantique publique [Singh 1991,Yolum 2004]. Nous avons également abordé l’approche QUD qui se focalise sur la formalisation du tableau de conversation en terme de questions et de leurs réponses. En tant que telle, nous pouvons la considérer comme une approche se focalisant sur l’étude du motif d’interaction question/réponse. Un énoncé est cohérent en fonction du tableau de conversation s’il soulève une nouvelle question ou s’il est spécifique à une question posée (réponse résolvante, à propos, question dépendante, etc.). Notons à ce propos qu’elle envisage le cas d’une question adjacente à une autre dépassant le strict motif question/réponse. Cette approche étudie finement le rôle des questions dans le dialogue mais délaisse les autres types d’énoncés (requêtes, suggestions, salutations, assertions, etc.). Enfin, l’approche de GoDiS basée sur QUD nous a permis d’illustrer des concepts comme la structuration du tableau de conversation, une approche contextuelle des actes de dialogue, l’accommodation, et la gestion de la communication. La force de ce système est de gérer de nombreux phénomènes dialogiques de manière indépendante de la tâche. L’accommodation tire partie des relations de dépendance entre les questions et de la partie publique de l’état d’information représentant les questions en discussion. Elle permet de prendre en compte certains coups dialogiques inattendus. La gestion de l’interaction intègre des coups dialogiques sur plusieurs niveaux inspirés d’Allwood et de Clark. Cela permet au système et à l’utilisateur de gérer des cas simples de problèmes de perception, compréhension et acceptation. L’interaction est gérée de manière contextuelle sans avoir recours à des meta-plans. En outre, le modèle du dialogue se concentre sur les questions en leur donnant un statut sémantique privilégié. Les plans de dialogue se résument à des actions permettant de poser ou de répondre à des questions. Ainsi, l’intervention du domaine se cantonne aux ressources qui spécifient des lexiques et des plans de dialogue (i.e., les questions à poser et leurs relations de dépendance). Néanmoins, GoDiS se limite à la modélisation des questions/réponses dans le dialogue en se basant sur QUD. La taxonomie d’actes de dialogue liés à la tâche est fortement réduite. L’ajout de nouveaux actes de dialogue est une tâche loin d’être triviale comme le démontre la tentative de Loisel d’intégration des actes inform, suggest et offer [Loisel 2008]. Le défaut majeur de l’approche adoptée par GoDiS de54 Chapitre 2 : Modélisation du dialogue : intention versus convention mise à jour de l’état d’information sous forme de règles est qu’il est difficile de prédire les effets des règles et de leurs interactions lorsque leur nombre devient trop important. Ainsi, une règle gère souvent plusieurs aspects du dialogue (mise à jour conventionnelle du tableau, gestion de l’interaction et de l’accommodation, gestion des plans de dialogue). En conséquence, la système est difficile à étendre. L’ajout de règles augmente la difficulté de prédire le comportement du système. Pour conclure, précisons que les approches conventionnelles capturent la cohérence locale des énoncés. Il reste néanmoins nécessaire d’expliquer comment émerge une cohérence globale sur l’ensemble du dialogue. En d’autres termes, il est nécessaire d’expliquer la structure sousjacente à l’agencement des motifs d’interaction. Par exemple, Pauchet tente de dépasser le cadre conventionnel strict en définissant un but de l’initiateur motivant l’échange. Ce but est relié à l’intention générée par l’architecture BDI de l’agent utilisant les protocoles. Un germe d’idée apparaît : les approches intentionnelles capturent la cohérence à haut niveau tandis que les protocoles assurent la cohérence locale. Néanmoins, cette approche repose sur de fortes hypothèses de coopération. En ne définissant qu’un but de l’initiateur motivant l’échange, cette approche explique la participation du partenaire en terme d’adoption de but. Or, cette hypothèse n’est pas tenable pour des dialogues où les buts des interlocuteurs divergent (e.g., argumentation). Rappelons qu’il est possible d’entretenir des dialogues conflictuels tout en étant parfaitement coopératif (cf. section 2.1.4). De manière générale, il est nécessaire d’expliquer le lien entre l’aspect conventionnel local du dialogue (i.e., les motifs d’interaction), ce qui motive les interlocuteurs à participer à ces activités locales et l’émergence de structure de plus haut niveau comme la structure intentionnelle du dialogue. 2.3 Discussion Les approches intentionnelles et conventionnelles de la modélisation du dialogue sont généralement vues comme rivales [Pulman 1998,Hulstijn 2000a,Maudet 2001]. Alors que les approches intentionnelles se concentrent sur l’agent et ses états mentaux, les approches conventionnelles se focalisent sur la structure du contexte dialogique. D’autre part, les unités d’interaction utilisées diffèrent dans leur définition. D’un côté, l’approche intentionnelle relie les actes de langage aux intentions des agents via la force illocutoire. De l’autre côté, on parle plus volontiers de coups dialogiques qui sont vus comme des fonctions modifiant le contexte dialogique au sens large 9 . Enfin, les approches conventionnelles telles que les grammaires de dialogue sont généralement perçues comme des approches descriptives à l’opposé des approches intentionnelles qui sont vues comme génératives. Pourtant, un certain nombre de chercheurs proposent de voir ces approches comme complémentaires et d’aller vers des agents dialogiques délibératifs/réactifs [Traum 1997, Pulman 1998, Hulstijn 2000a, Lewin 2000, Maudet 2001]. Cette complémentarité vient du fait que les processus de communication peuvent être considérés comme des actions conjointes entre un locuteur et ses allocutaires [Clark 1996]. La caractéristique clé d’une action conjointe est la coordination d’actions participatives par au moins deux personnes. En partant du constat que les humains ne peuvent pas délibérer indéfiniment dans une activité opportuniste et dynamique telle 9. Comme nous l’avons vu (cf. section 1.2.2), ces approches diffèrent en fait en fonction de ce que représente le contexte dialogique. Si celui-ci se résume aux états mentaux, alors les coups dialogiques correspondent aux actes de langage classiques.2.3. Discussion 55 que le dialogue, on parvient à la conclusion que la coordination doit reposer sur des dispositifs tels que les conventions. De manière intéressante, les théories de l’action et de la planification conjointe (e.g., [Grosz 1996]) font également apparaître ce besoin d’enchaînement stéréotypique d’actions (appelé recettes) et de protocoles conventionnels de régulation de la coopération [Hulstijn 2000b]. Si les processus de communication sont eux-mêmes vus comme des actions conjointes, alors ils doivent également admettre leurs propres recettes. Il est donc nécessaire de déterminer ces recettes et les structures pour les manipuler. Comme le précise [Maudet 2001], ces modèles de l’action conjointe pour la communication doivent capturer l’idée de coopération sur plusieurs niveaux comme au jeu d’échec où il est possible de coopérer sur l’activité du jeu tout en poursuivant des buts opposés (chaque joueur souhaite gagner la partie). Or, ces modèles sont pour le moment limités aux actions conjointes strictement coopératives. En outre, il est clair que les approches intentionnelles ne capturent pas tous les phénomènes dialogiques dès lors que le dialogue est vu comme une activité opportuniste et sociale. Non seulement certains énoncés sont susceptibles d’être déclenchés conventionnellement par la situation mais en plus certaines séquences d’actes ne peuvent pas être planifiées [Pulman 1998] (typiquement les demandes de clarification). Les approches conventionnelles ne se contentent donc pas de décrire les motifs expliqués par les approches intentionnelles. Au contraire, elles permettent de capturer d’autres phénomènes comme par exemple des phénomènes sociaux (e.g., répondre « Je ne sais pas. » à une question). Enfin, il semble excessif que nous planifions toutes nos interventions comme des salutations, des remerciements (e.g., « de rien ! ») ou même nos réponses à des questions (sauf lorsqu’on souhaite être coopératif). D’un point de vue pratique, la prise en compte d’une partie conventionnelle permet de simplifier la gestion du dialogue.Chapitre 3 Vers des modèles mixtes à base de jeux de dialogue Sommaire 3.1 Fondements des jeux de dialogue . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.1.1 Les jeux de dialogue comme scripts partagés . . . . . . . . . . . . . . . . . . . 58 3.1.2 Les jeux de dialogue comme recettes partagées . . . . . . . . . . . . . . . . . 60 3.1.3 Les jeux de dialogue comme projet conjoint . . . . . . . . . . . . . . . . . . . 62 3.1.4 Synthèse sur la métaphore des jeux de dialogue . . . . . . . . . . . . . . . . . 64 3.2 Les jeux de dialogue pour l’interaction Homme-Machine . . . . . . . . . . . . 64 3.2.1 Les jeux comme réseau de transition récursif . . . . . . . . . . . . . . . . . . . 65 3.2.2 Les jeux comme unités de type initiative-réponse cohérentes . . . . . . . . . . 66 3.2.3 Les jeux comme structures pour l’engagement dans le dialogue . . . . . . . . . 69 3.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 3.3.1 Vers un modèle normatif des jeux de dialogue basé sur les engagements . . . . 74 3.3.2 Avantages et limites des jeux de dialogue . . . . . . . . . . . . . . . . . . . . 78 3.3.3 Vers des modèles mixtes fondés sur des jeux de dialogue . . . . . . . . . . . . 81 Parmi les approches mixtes, nous pouvons distinguer celles qui cherchent à adapter les approches intentionnelles en y ajoutant de nouvelles attitudes comme les obligations [Traum 1994b] ou les pressions interactives [Bunt 1996] de celles qui s’intéressent à capturer dans des structures spécifiques les motifs d’interaction apparaissant au cours du dialogue telles que les jeux de dialogue. L’approche par jeux de dialogue a été défendue de manière convaincante comme étant une structure à considérer pour lier approche intentionnelle et approche conventionnelle [Hulstijn 2000a,Maudet 2001]. C’est donc naturellement que nous nous intéressons à cette approche en particulier. La section 3.1 parcourt les fondements de la notion de jeux de dialogue pour l’interaction Homme-Machine. La section 3.2 présente plusieurs formalisations envisagées afin de capturer cette notion. La section 3.3 souligne les avantages des jeux de dialogue pour la modélisation des interactions Homme-Machine, et montre l’intérêt du formalisme basé sur les engagements sociaux. 3.1 Fondements des jeux de dialogue L’intuition des jeux de dialogue provient des jeux de langage de Wittgenstein qui conçoit la communication dans son activité sociale [Wittgenstein 1958] : les énoncés sont des coups dans une activité qui la font progresser et celle-ci contraint les coups possibles en retour.58 Chapitre 3 : Vers des modèles mixtes à base de jeux de dialogue Les jeux de dialogue ont reçu beaucoup d’attention dans le domaine de la dialectique formelle [Hamblin 1970, Walton 1995] et dans le domaine des systèmes multiagent [Maudet 2002b,Pasquier 2005]. Pour notre part, nous nous intéressons aux jeux de dialogue utilisés pour expliquer le dialogue humain et pour générer des dialogues artificiels à destination des humains. L’idée de ces jeux est de fournir une structure permettant de formaliser les motifs d’interaction observés dans des conversations humaines. La section 3.1.1 présente les jeux de dialogue comme scripts partagés. Puis, la section 3.1.2 précise les jeux de dialogue en les envisageant comme recettes partagées. La section 3.1.3 af- fine cette dernière vision en présentant les jeux de dialogue comme projets conjoints. Enfin, la section 3.1.4 synthétise les caractéristiques essentielles des jeux de dialogue. 3.1.1 Les jeux de dialogue comme scripts partagés Une des premières études de corpus de dialogues Homme-Homme qui a conduit à la structuration de jeux de dialogue dans un but computationnel a été présentée par Levin et Moore [Levin 1977]. L’analyse d’une soixantaine de transcriptions de communications Homme-Homme via un chat a permis de mettre en avant la présence de nombreuses régularités dans les échanges sous la forme de motifs récurrents s’étendant sur plusieurs tours de parole. Les efforts se sont concentrés sur les caractéristiques essentielles de ces motifs sous la forme d’une structure appelée jeu de dialogue. La structure d’un jeu de dialogue est composée de 3 champs : — Paramètres : ils représentent les éléments qui varient dans les instances d’un jeu de dialogue. Ici, il s’agit des participants et du sujet de l’interaction. — Spécifications des paramètres : elles consistent en un ensemble de prédicats sur les paramètres permettant d’expliciter les buts des participants ainsi que leurs connaissances. Ces aspects restent constants lors de l’interaction. — Composants : ils représentent les aspects qui évoluent lors de l’interaction. Il s’agit d’un ensemble de sous-buts des participants, partiellement ordonnés dans le temps. Ils contiennent aussi bien des actions dialogiques que des actions physiques sur le monde. Les auteurs illustrent leur propos avec le jeu de dialogue d’aide reproduit dans le tableau 3.1. Ce jeu de dialogue d’aide possède en paramètres les participants (assistant et demandeur) et l’objet du jeu qui est la tâche t. La spécification des paramètres précise le contexte d’occurrence de ce motif d’interaction. Elle indique que le demandeur d souhaite réaliser la tâche t et qu’il en a le droit. Cependant, il n’est pas en mesure de la réaliser seul. L’assistant souhaite aider d à réaliser t et en a la capacité. Les composants présentent une décomposition en sous-buts. Dans ce cas, d doit décrire la situation (quel événement attendu a été observé) et le problème (quel événement attendu n’a pas été observé). a doit ensuite lui proposer la solution sous la forme d’une action qui permet de déclencher l’événement voulu. Le dialogue 3.1 présente une instanciation d’un tel jeu (énoncés [5;6]). Les auteurs ont également défini d’autres jeux de dialogue : demande d’action, demande d’information, investigation, instruction, mécontentement. Ces jeux sont tous collaboratifs dans le sens où ils présentent des sous-buts des participants complémentaires les uns aux autres. En plus de la structuration des jeux de dialogue, Levin et Moore se sont intéressés à l’entrée et à la sortie des jeux de dialogue par les interlocuteurs. L’entrée s’effectue par une phase de proposition du jeu (bid). Elle permet d’identifier le jeu, d’indiquer l’intérêt de l’initiateur à3.1. Fondements des jeux de dialogue 59 Paramètres a : Assistant d : Demandeur t : Tâche Spécifications des paramètres d est une personne a est une personne d veut réaliser la tâche t a veut rendre d capable de réaliser t d est autorisé à réaliser la tâche t a est capable de permettre à d de réaliser t d n’est pas en mesure de réaliser t Composants d veut que a sache quel événement attendu a été observé d veut que a sache quel événement attendu e1 n’est pas survenu a veut que d connaisse l’action act1 qui va lui permettre de réaliser e1 a veut que d réalise cette action act1 Tableau 3.1: Exemple de jeu de dialogue d’aide dans l’approche de Levin et Moore poursuivre ce jeu et d’en identifier les paramètres. La caractéristique de cette phase est qu’elle peut être effectuée de plusieurs manières qui sont souvent brèves, voir complètement implicites. Le dialogue 3.1 présente un exemple d’entrée explicite. Une phase de bid (S1) est suivie d’une phase d’acceptation (H2) qui permet de reconnaître que le bid a été fait, d’identifier le jeu proposé et ses paramètres et d’accepter de poursuivre le jeu ainsi paramétré. Les auteurs soulignent que la fin d’un jeu peut prendre la même forme que son entrée : une phase de bid suivie d’une phase d’acceptation. Ils notent la présence de trois autres possibilités : l’interruption ou la terminaison spontanée causée soit par la satisfaction des buts du jeu, soit par l’impossibilité de la satisfaction de ces buts. S1 : Je peux te poser une question ? H2 : OK S3 : Tu connais bien les systèmes GNU/Linux ? H4 : Oui ! S5 : Je me suis connecté en SSH sur mon serveur web. J’ai voulu lancer Firefox mais il ne s’est pas affiché. Ça m’a mis : « Error : no display specified ». H6 : Il faut que tu actives la redirection du serveur X. Fais un « ssh -X » [. . . ] Dialogue 3.1 – Jeux de dialogue de demande d’information puis d’aide, bid explicite avec les énoncés 1 et 2 Au-delà de la structuration intra-jeu, les auteurs abordent deux agencements possibles entre les jeux (i.e. structuration inter-jeu) : le pré-séquencement et l’imbrication des jeux de dialogue. Deux jeux de dialogue peuvent s’articuler sous forme d’une séquence. Le premier jeu sert à initier l’autre jeu. Par exemple, le dialogue 3.1 présente un pré-séquencement de deux jeux (énoncés [1;2] et [3;4]). Le premier permet d’effectuer un bid pour entrer dans le second. Le jeu de recherche d’information dans les énoncés [3;4] sert à vérifier certains paramètres du jeu de dialogue d’aide dans les deux derniers énoncés [5;6]. Ce dernier a pour but de résoudre un problème sur un système GNU/Linux avec la commande SSH. Les auteurs précisent que les jeux peuvent s’imbriquer les uns dans les autres. Ils ajoutent que l’imbrication stricte des jeux n’est60 Chapitre 3 : Vers des modèles mixtes à base de jeux de dialogue pas nécessaire, et qu’en fait les participants passent souvent d’un jeu à un autre. Cette première approche des jeux de dialogue, fondée sur l’étude d’un corpus de dialogue Homme-Homme, permet de dresser les contours de la structure sous-jacente. Levin et Moore ont mis en évidence des éléments de la structure intra-jeu et de la dynamique inter-jeu. Cette approche admet plusieurs limites. Les jeux de dialogue sont structurés en terme de buts et sousbuts sous forme de scripts partagés [Schank 1977]. Ils consistent en une liste – partagée entre les interlocuteurs – d’actions à réaliser, aussi bien physiques que dialogiques. C’est ce genre de structure que cherche à apprendre automatiquement l’approche de [Orkin 2013]. Ici, les jeux de dialogue ne capturent pas uniquement les conventions des interactions dialogiques. Ils sont une anticipation des modèles de l’action et de la planification conjointe [Grosz 1996]. Enfin, ils sont tous collaboratifs puisque les buts décrits sont complémentaires. Ils ne permettent pas en l’état de prendre en compte des situations dialogiques conflictuelles comme une dispute ou un débat. 3.1.2 Les jeux de dialogue comme recettes partagées Mann (collègue de Levin et Moore) a ensuite formalisé plus clairement la notion de jeu de dialogue [Mann 1988] 1 . Sa formalisation présente quelques variations par rapport à la version de Levin et Moore que nous allons souligner. Les participants ont des rôles à l’intérieur d’un jeu de dialogue : I pour Initiateur, et R pour Responder que nous traduisons par Partenaire. Un jeu de dialogue est vu comme un triplet (IP, GR, CC) : — IP (Illocutionary Point) : le but de l’initiateur du jeu — GR (Goal Responder) : ensemble non vide de buts du partenaire — CC (Conventional Conditions) : ensemble de descriptions du monde du point de vue de I appelé conditions conventionnelles du jeu. Un jeu de dialogue entre deux participants est vu comme un moment particulier de l’interaction où : (i) les rôles des participants sont fixés (initiateur ou partenaire), (ii) chacun des participants poursuit ses propres buts à travers la réalisation de ce jeu (pas nécessairement compatibles), et (iii) un ensemble de conditions conventionnelles sont adoptées pendant la durée du jeu. Mann propose des exemples de jeu de dialogue (non exhaustifs) [Mann 1988] (p. 515), reportés dans le tableau 3.2. En plus des conditions conventionnelles spécifiques à chaque jeu de dialogue, Mann a extrait un ensemble de conditions conventionnelles communes à tous les jeux : 1. I poursuit l’IP comme but. 2. I croit que réaliser l’IP est possible. 3. I croit que réaliser les GR est possible pour R. 4. I a le droit de réaliser l’IP. 5. I a le droit d’utiliser le jeu de dialogue. 6. L’IP n’a pas déjà été réalisé. 7. R a le désir de réaliser les GR. De la même manière que Levin et Moore, Mann décompose l’entrée dans un jeu de dialogue en deux phases : une proposition d’entrée (un bid) et son acceptation (souvent implicites). Proposer 1. Le papier a été publié en 1978 dans un livre qui n’est jamais paru, il a été re-publié en 1988 après avoir circulé librement dans les laboratoires.3.1. Fondements des jeux de dialogue 61 Jeu IP GR CC Investigation I sait si R sait Q R informe I de sa connaissance de Q I sait Q Aide I est capable d’effectuer A I est capable d’effectuer A R est capable d’aider I à effectuer A I a le droit d’effectuer A Demande d’information I sait Q I sait Q R sait Q Dispute R croit P R justifie que I I croit P ne devrait pas croire P R ne croit pas P Demande de permission I sait que R approuve que I réalise A. R choisit si I a le droit d’effectuer A I n’a pas le droit de réaliser A sans la permission de R I sait ce choix I veut réaliser A Demande d’action R effectue A R effectue A R n’effectuerait pas A sinon. Présentation d’information R sait P R sait P Les connaissances de R et P peuvent être réconciliées. I sait P Tableau 3.2: Exemples de jeux de dialogue selon Mann. I est l’initiateur du jeu, R le partenaire. Q représente une information. A représente une action. P représente une proposition. IP = but de l’initiateur, GR = buts du partenaire, CC = conditions conventionnelles du jeu. l’entrée d’un jeu consiste notamment à : (i) consentir à poursuivre l’IP du jeu, (ii) demander à ce que R poursuive les GR, et (iii) proposer d’adopter les CC du jeu pendant toute sa durée (ou jusqu’à ce que d’autres conditions les remplacent). Mann signale que plusieurs jeux peuvent être ouverts en même temps. En conséquence, une proposition de clôture d’un jeu peut concerner un jeu (ouvert) différent du dernier jeu ouvert. De plus, il note que la fermeture d’un jeu peut entraîner des fermetures en cascade des autres jeux ouverts. C’est le cas des jeux imbriqués où les participants peuvent se rendre compte dans un jeu fils que l’IP du jeu parent n’est pas atteignable, ce qui peut provoquer la clôture de jeux fils en chaîne. Mann s’intéresse principalement à l’imbrication des jeux de dialogue en définissant la notion de compatibilité d’une proposition d’entrée dans un jeu avec son contexte. En somme, une proposition d’emboîtement de jeu est valide si l’IP de ce nouveau jeu contribue à un jeu déjà ouvert. Les jeux de dialogue formalisés par Mann présentent de nouvelles caractéristiques intéressantes par rapport à la version de Levin et Moore. La première différence de taille est que les structures définies ne représentent que des actions dialogiques des interlocuteurs. Les jeux de dialogue voient ainsi leur cadre recentré : ils passent de scripts partagés (mêlant actions nondialogiques et dialogiques) à des « recettes » qui cristallisent les caractéristiques essentielles des échanges dialogiques récurrents. Mann a exhibé une partie générique des jeux sous la forme de conditions conventionnelles standards qui peuvent être complétées par des conditions conventionnelles spécifiques à chaque jeu. Enfin, en dissociant IP et GR, Mann permet d’appréhender62 Chapitre 3 : Vers des modèles mixtes à base de jeux de dialogue des jeux qui ne sont pas collaboratifs. C’est-à-dire des jeux dont les buts des participants ne sont pas compatibles (voir compétitifs) comme le jeu de dispute ou de demande de permission. 3.1.3 Les jeux de dialogue comme projet conjoint Mann a proposé plus récemment une généralisation de la théorie des jeux de dialogue sous le nom de « Dialogue Macrogame Theory » [Mann 2002] pour modéliser des dialogues naturels Homme-Homme. Cette généralisation raffine la vision du jeu de dialogue précédemment pré- senté : il est vu comme une activité conjointe impliquant la poursuite d’un but conjoint (au sens de [Clark 1996]). En conséquence, cela amène Mann à revoir sous cette perspective les notions d’établissement du jeu et les actions qu’il qualifie d’« unilatérales ». Un macrojeu de dialogue est vu comme une activité conjointe, groupant les intentions des participants du dialogue pour la coordination de leur activité. Plus précisément, un macrojeu est une convention définie comme un ensemble de trois buts : 1. le but de l’initiateur, 2. le but du partenaire, 3. et un but conjoint. Mann précise que ces trois buts n’ont pas de rapport hiérarchique. Néanmoins, il est attendu des joueurs qu’ils maintiennent une structure hiérarchique de leurs propres buts (en particulier dans les emboîtements de jeu). 19 jeux ont ainsi été définis parmi lesquels le jeu de présentation d’information (cf. tableau 3.3) tiré de [Mann 2002]. Les buts des jeux ne sont pas figés et incluent des arguments non spécifiés tels que l’« information particulière » du macrojeu de présentation d’information. De plus, Mann précise que les macrojeux sont voués à décrire des dialogues généraux et pas uniquement des dialogues orientés tâche. Ainsi, les buts d’une instance d’un macrojeu peuvent être des buts d’une tâche particulière, mais pas nécessairement. But de l’initiateur fournir une information particulière au destinataire But du partenaire identifier et recevoir l’information particulière fournie But conjoint le partenaire vient à posséder l’information particulière Tableau 3.3: Exemple de macrojeu de présentation d’information dans l’approche de Mann [Mann 2002] Lorsque le jeu est joué, les participants vont maintenir dans leur mémoire deux buts : leur but propre et le but conjoint. De manière générale, le cours du dialogue est sous le contrôle des deux participants. L’établissement, l’abandon et la clôture des jeux sont réalisés conjointement et en coordination à l’aide d’actions particulières. Mann propose de voir ces mécanismes sous la forme de négociation : un jeu est proposé par l’initiateur, et le partenaire peut refuser ou accepter cette proposition. L’acceptation conduit à l’ouverture du jeu. De la même manière, la fermeture du jeu est proposée par un des deux participants. Cette fermeture peut être acceptée ou refusée. Mann souligne que la phase d’entrée dans le jeu est la plupart du temps implicite. Néanmoins, certaines situations d’incompréhension peuvent les rendre explicites. Dans le cas où la proposition d’entrée dans le jeu est rejetée, le but conjoint n’est pas établi. Cela peut intervenir dans la situation où une personne fournit une information qui n’est pas nécessaire à son destinataire. De la même manière, Mann précise que les jeux se terminent le plus souvent par l’accomplissement apparent du but conjoint du jeu. Ainsi, répondre correctement à une question sera généralement perçu comme le moment où poursuivre la recherche d’une réponse3.1. Fondements des jeux de dialogue 63 à la question prend fin. Le dialogue 3.2 présente un exemple de phases d’entrée et de sortie implicites. S1 : As-tu faim ? H2 : Oui ! Dialogue 3.2 – Jeu de dialogue de demande d’information, phase d’entrée et de sortie implicite Afin de synthétiser ces éléments, nous proposons d’analyser le dialogue 3.2 selon [Mann 2002]. L’énonce S1 réalise les deux actions suivantes : 1. la proposition d’entrée dans le jeu, et 2. la poursuite du but conjoint proposé. Tandis que l’énoncé H2 réalise trois actions : 1. l’acceptation d’entrée dans le jeu, 2. la poursuite du but conjoint établi, et 3. une proposition de sortie du jeu par satisfaction. Les jeux de dialogue ainsi définis sont des projets conjoints au sens de Clark (cf. section 1.1.1). Mann précise que les jeux peuvent s’imbriquer les uns dans les autres. Néanmoins, cette imbrication n’est qu’une affaire de portée du macrojeu : un jeu est imbriqué dans un autre si son ouverture et sa fermeture sont situées entre l’ouverture et la fermeture du jeu parent. Contrairement à sa précédente théorie [Mann 1988], cette définition n’intègre pas la notion de buts. La définition est alors généralisée par rapport à la théorie des jeux de dialogue. En contrepartie, les macrojeux ne représentent qu’une vue partielle de la structure du dialogue. Mann note la présence dans les dialogues d’une classe d’actions qui n’impliquent pas la poursuite de buts conjoints et qui tiennent généralement en un tour de parole. Il les nomme actions unilatérales et les regroupe en 3 catégories : « Media Management », « Politeness », « Acknowledgement ». Il s’agit d’actions telles que des actions de gestion de l’interaction comme l’établissement du contact illustré dans l’exemple suivant : « – Apollo 13, Houston. – Go ahead – Roger. » (tiré de [Mann 2002], p. 9). Dans ce dernier exemple, chaque énoncé réalise une action de la catégorie « Media Management ». Mann propose la théorie des macrojeux de dialogue destinée à la représentation des dialogues naturels Homme-Homme. Il indique que la théorie des macrojeux présentée se limite à un dialogue bipartite (i.e. à deux participants). En tant que telle, elle est insuffisante à la représentation d’un dialogue multipartite et nécessite un travail d’adaptation. Les macrojeux de dialogue proposés par Mann apportent des éléments intéressants supplémentaires aux précé- dentes théories. Tout d’abord, notons que ces nouveaux jeux englobent la définition qu’il avait précédemment présenté. Mann adopte une vision des jeux de dialogue comme étant un projet conjoint, le conduisant ainsi à définir un jeu en associant un but conjoint aux participants à un ensemble de buts spécifiques à chaque participant. Cette vision a deux grandes conséquences. La première est que le contrôle du dialogue est coordonné dans le cas général par les deux participants. L’établissement du jeu est vu comme étant une négociation : les buts constituants les jeux sont acceptés et rejetés de manière conjointe plutôt que de manière individuelle. Ensuite, Mann dégage lors de son analyse l’existence d’actions unilatérales qui, selon lui, ne participent pas à la poursuite d’un but conjoint. Enfin, cette nouvelle vision des jeux de dialogue couvre des dialogues qui ne sont pas nécessairement orientés tâche. Néanmoins, les buts décrits dans la64 Chapitre 3 : Vers des modèles mixtes à base de jeux de dialogue définition du jeu peuvent recouper des buts liés à la tâche. En conséquence, les buts décrits par la structure intentionnelle sont inclus dans les buts des macrojeux. En outre, ces jeux permettent de représenter la cohérence du dialogue d’une manière indépendante de la tâche. Cependant, Mann précise que ces jeux n’ont pas vocation à expliquer la cohérence de tout dialogue naturel et qu’un ensemble de théories sera nécessaire afin d’y parvenir. 3.1.4 Synthèse sur la métaphore des jeux de dialogue Dans cette section, nous avons étudié les travaux fondateurs des jeux de dialogue pour l’analyse et la modélisation du dialogue humain. Ces travaux se basent sur l’étude de corpus de dialogues Homme-Homme, et plus particulièrement sur l’étude des conventions émergeant sous forme de motifs d’interaction identifiables au niveau de surface des énoncés. À la lumière de ces travaux, nous dressons le bilan des caractéristiques essentielles des jeux de dialogue. La métaphore du jeu de dialogue est essentiellement normative (à l’opposé d’une recette). C’est une structure permettant de décrire les droits et obligations ainsi que les buts et les actions dialogiques possibles des participants en fonction de l’avancement d’une activité d’un certain type. Cette métaphore permet de voir l’aspect opportuniste du dialogue comme la combinaison d’activités vues par la métaphore des jeux. Par raffinement successif, les propriétés suivantes ont émergées. Un jeu de dialogue est une activité conjointe bornée avec un début, un corps et une fin [Clark 1996]. Deux participants prennent part à cette activité en endossant un rôle (initiateur du jeu ou partenaire). L’initiateur projette l’exécution du jeu qui doit être acceptée par le partenaire. Autrement dit, le jeu est établi conjointement (c’est un projet commun). Dans le cas général, le contrôle du dialogue est coordonné par les deux participants. Les règles du jeu spécifient les coups dialogiques autorisés (les actions participatives) pour chaque participant. Les règles ne se limitent pas à la spécification de séquences de coups et peuvent également spécifier le contenu des coups dialogiques [Hulstijn 2000a] ou des interdictions [Maudet 2001]. Les participants sont appelés à jouer leurs rôles en réalisant les coups attendus par l’état courant du jeu. L’occurrence d’un coup détermine en retour un nouvel état du jeu. Les participants poursuivent des buts non nécessairement compatibles. Certains jeux non-collaboratifs peuvent faire intervenir un aspect gagnant/perdant. En outre, les jeux sont des structures combinables (e.g., pré-séquence, emboîtement 2 , . . . ). Dans leur dernière évolution, les jeux de dialogue permettent de représenter des conventions d’une manière indépendante de la tâche. Enfin, les jeux de dialogue nécessitent d’être associés à d’autres théories, notamment pour assurer la cohérence de la structure intentionnelle du dialogue. 3.2 Les jeux de dialogue pour l’interaction Homme-Machine Dans cette partie, nous voyons comment la métaphore des jeux de dialogue a été utilisée pour produire des modèles de dialogue pour l’interaction Homme-Machine. La section 3.2.1 présente la formalisation des jeux de dialogue comme réseau de transition récursif. La section 3.2.2 s’intéresse à la formalisation des jeux de dialogue par des unités de type initiative-réponse cohérentes. Enfin, la section 3.2.3 décrit une formalisation des jeux en tant que structures capturant les engagements des interlocuteurs. 2. Nous utilisons de manière interchangeable « emboîtement » et « imbrication »3.2. Les jeux de dialogue pour l’interaction Homme-Machine 65 3.2.1 Les jeux comme réseau de transition récursif Nous présentons dans cette partie l’approche formalisée et implémentée des jeux de dialogue de Lewin [Lewin 2000] dans le cadre du projet TRINDI [Larsson 2000b]. Dans l’approche de Lewin [Lewin 2000], le contexte dialogique inclut un tableau d’engagements (qui se résume à un ensemble de propositions) et un ensemble de « Proposition Under Discussion » (PUD). Les actes de dialogue sont des actes contextuels constitués d’une fonction et d’un contenu sémantique. La fonction détermine comment mettre à jour les PUD et le contenu sémantique définit avec quoi mettre à jour cet ensemble. Les jeux de dialogue ont un type (e.g., information, salutations, interrogation, . . . ) et un contenu sous forme de proposition. Les règles du jeu sont formalisées sous la forme d’un réseau de transition récursif. Les états du réseau de transition représentent l’état du jeu. Les arcs sont étiquetés par un coup dialogique ou par un autre jeu de dialogue qui sera alors emboîté. L’emboîtement de jeux n’est pas limité. La figure 3.1 présente un exemple de jeu de demande d’information. Ce jeu peut être ouvert par deux coups dialogiques – qw (pour query) ou qw-r (pour restricted-query) – suivis d’une réponse (rw). Le demandeur peut alors terminer le jeu par un coup de reconnaissance (ack) ou demander une confirmation (cnf). Les réponses possibles à une demande de confirmation sont des confirmations positives (ryes) ou négatives (rno), ou une correction de réponses (rmod). Les couples confirmation/correction de réponse envisagés sont du type : « Tu rentres à Reims ce week-end ? – Non, à Rouen ! ». QW game 1 2 qw qw-r 3 rw 4 cnf 5 ack Ryes|Rno|Rmod Figure 3.1: Jeu de dialogue de demande d’information dans l’approche de Lewin [Lewin 2000] Les jeux de dialogue mettent à jour les engagements lorsqu’ils se terminent. Ils sont sémantiquement vus comme des structures permettant de prendre des engagements dans le dialogue. Enfin, une séquence d’énoncés réalise une instance d’un jeu si la séquence des types de coup générée est acceptée par le réseau de transition. Notons que le premier coup dialogique d’un jeu établit le jeu et son contenu. Cette approche se concentre sur la formalisation des règles du jeu de dialogue sous la forme d’un réseau de transition récursif qui définit les enchaînements d’actes. La dynamique des jeux de dialogue considérée est celle de l’emboîtement de jeux. Elle permet de distinguer deux niveaux de gestion du dialogue pour l’agent : le niveau des actes de dialogue et le niveau des jeux de dialogue. Enfin, bien qu’il considère des jeux avec un nombre d’états assez important, Lewin conclut que, de son point de vue, les jeux sont essentiellement des structures planifiées de la forme initiative-réponse ou initiative-réponse-feedback. Ce point de vue est illustré dans les travaux de [Morge 2013]. Ils envisagent la régulation de la communication entre un agent virtuel vendeur et un humain par des échanges, formalisés par des automates à états finis. Ils proposent un échange de recherche d’information (une question66 Chapitre 3 : Vers des modèles mixtes à base de jeux de dialogue pouvant être suivie d’une réponse ou d’une admission d’ignorance) et un échange de délibération (une proposition qui peut être acceptée ou refusée). Ces échanges sont combinés en phase qui les enchaîne séquentiellement et dynamiquement. Une phase de recherche d’information est par exemple constituée de plusieurs échanges de recherche d’information. Le comportement de l’agent consiste à détecter les besoins de l’utilisateur via une phase de recherche d’information, puis à proposer des produits via une phase de délibération. 3.2.2 Les jeux comme unités de type initiative-réponse cohérentes Hulstijn a proposé de modéliser les motifs récurrents d’actes de dialogue par des jeux de dialogue (suivant la définition de Mann) [Hulstijn 2000a]. Ses travaux sont mis en application par [Dastani 2001] qui propose une méthodologie pour construire des protocoles de négociation flexibles basés sur les jeux de dialogue. Le framework proposé est prétendu assez générique pour être applicable à d’autres types de dialogue (cf. [Hulstijn 2000a,Hulstijn 2000b]). Les agents considérés peuvent avoir des intérêts concurrents, mais ils partagent au moins un but commun qui est de coordonner leurs actions. Pour représenter les actions coordonnées, les auteurs utilisent des représentations partielles sous forme de recettes [Grosz 1996]. Un type particulier de ces recettes sont les jeux de dialogue. Un dialogue est vu comme une suite cohérente d’énoncés. Les énoncés peuvent être décomposés en actes de dialogue comprenant une fonction communicative appliquée à un contenu sémantique. La fonction communicative de l’acte de dialogue peut avoir un effet sur la tâche (activité sous-jacente qui motive le dialogue) et/ou sur les processus d’interaction (comme les feedbacks). L’échange d’énoncés entre les participants enrichit un tableau conversationnel qui garde les traces des déclarations faites et des engagements pris. L’objectif d’un modèle du dialogue est alors de combiner les actes de dialogue en des échanges cohérents et utiles. Les auteurs définissent la notion clé de cohérence. Un acte de dialogue dans un dialogue de négociation est cohérent avec le contexte du dialogue si [Dastani 2001] : 1. la fonction relative à la tâche de l’acte correspond à un plan de la tâche qui peut permettre à l’agent d’atteindre ses buts apparents, et 2. la fonction relative à l’interaction de l’acte se conforme aux règles de l’interaction courante. En fonction de l’attitude de l’agent et de qui a l’initiative, 1 ou 2 prime. La cohérence est donc décomposée en deux niveaux, celui de la tâche et celui de l’interaction. La cohérence au niveau de la tâche peut impliquer des inférences complexes relatives à la planification tenant compte du contexte du dialogue. Mais comme le fait remarquer Hulstijn [Hulstijn 2000b], le niveau de l’acte de dialogue n’est pas celui qui est intéressant au niveau de la planification. Par exemple, l’effet escompté d’une question est d’obtenir la réponse. Dans la théorie des actes de langage, cela signifie que la condition de succès de l’acte de question implique sa réponse (un autre acte de langage). Autrement dit, une question n’a d’intérêt que dans un échange de type question-réponse. Hulstijn en conclut que les actes de dialogue n’ont de sens pour la planification que comme partie d’un échange et plus particulièrement d’une unité initiative-réponse. Il ajoute que ces unités sont les plus petites actions qui peuvent être encore appelées conjointes. Ce qui conduit à la conclusion suivante : la cohérence au niveau de l’interaction peut être cernée par des recettes pré-compilées modélisées par les jeux de dialogue. La fonction communicative liée à l’interaction est un coup dans un jeu de dialogue. Ce coup peut être initiatif ou réactif. Les auteurs notent que les initiatives et les réponses sont souvent reliées par une structure en triangle (figure 3.2) composée d’une initiative suivie d’une réponse3.2. Les jeux de dialogue pour l’interaction Homme-Machine 67 qui peut être positive ou négative, ou sinon d’un nouvel essai. Par exemple, une proposition est une initiative, une acceptation de cette proposition correspond à une réponse positive, un refus à une réponse négative et une contre-proposition peut être vue comme un nouvel essai. L’exécution par les interlocuteurs d’une IR-unit conduit à un ajout d’information dans leur fonds commun (modélisé par le tableau conversationnel). Ainsi, une réponse positive a un effet de grounding [Clark 1989]. Par exemple, bien répondre à une question est un feedback fort et implicite indiquant la bonne attention, perception, interprétation et compréhension de cette dernière. Initiative Unité IR Nouvelle tentative Réponse positive Response négative Réparation Figure 3.2: « Initiative-response units » tiré de [Hulstijn 2000a] Les jeux de dialogue pour la négociation La structure générale d’un jeu de dialogue suit cette structure en triangle. Elle est présentée en figure 3.3. exchange(a, b, ζ) = initiative(a, b, η); (pos_response(b, a, ζ) | neg_response(b, a, ζ) | retry(a, b, ξ)), where Ma,b  coherent(η, ζ) Figure 3.3: Structure générale d’un jeu de dialogue dans l’approche d’Hulstijn tirée de [Dastani 2001]. Le « ; » symbolise la séquentialité. Un échange entre deux interlocuteurs a et b, initié par a, est suivi par une réponse de b soit positive, soit négative ou d’un nouvel essai de a. η, ζ et ξ représentent les contenus sémantiques. Ma,b représente le contexte (partagé) du dialogue. En plus des enchaînements d’actes, les jeux de dialogue spécifient des contraintes sémantiques sur les contenus. Ainsi, un échange est permis si la contrainte de cohérence entre les contenus sémantiques des initiatives et des réponses est remplie (ce qui est représenté par Ma,b  coherent(η, ζ) dans la figure 3.3). La figure 3.4 présente un exemple d’échange basé sur la structure décrite en figure 3.3. Cet exemple décrit un échange de demande d’information. La relation de cohérence porte dans ce68 Chapitre 3 : Vers des modèles mixtes à base de jeux de dialogue information_seeking(a, b, ψ) =question(a, b, ?φ); (answer(b, a, ψ) | clarification_question(b, a, ?χ)), where Ma,b 2 ¬ψ (consistent) where Ma,b 2 ψ (informative) where Ma,b  relevant(?φ, ψ) where Ma,b  licensed(?φ, ψ) Figure 3.4: Échange de recherche d’information dans l’approche d’Hulstijn tiré de [Dastani 2001] cas sur le contenu sémantique de la réponse. Celui-ci doit être consistant, informatif, pertinent et suffisant par rapport à la question. Les jeux de dialogue peuvent être combinés dynamiquement et statiquement La structure en triangle des IR-units peut laisser à penser qu’une réponse doit intervenir immédiatement après une initiative. Les auteurs précisent que ce n’est pas le cas : plusieurs jeux peuvent être ouverts en même temps. Ainsi, une structure présentant des emboîtements de type (I(IR)(IR)R) est possible. Aucune contrainte de cohérence n’est clairement explicitée pour ce type de combinaison. Notons que ce type de combinaison est dynamique. Les jeux peuvent également être statiquement séquencés ou chaînés. De la même manière que pour les actes de dialogue, des relations de cohérence vont permettre d’expliciter la façon dont les jeux peuvent être combinés. game(a, b,(η.ζ)) =exchange(a, b, η); game(a, b, ζ); where Ma,b  coherent(η, ζ) Figure 3.5: Séquencement de jeux dans l’approche d’Hulstijn tiré de [Dastani 2001]. Le résultat d’un tel échange est la combinaison des résultats exprimée par le « . ». La figure 3.5 présente la définition du séquencement dans cette approche. Les jeux peuvent ainsi être séquencés autant de fois que nécessaire pourvu que la relation de cohérence soit respectée. information_exchange(a, b, φ ∧ ψ) = information_seeking(a, b, φ);information_exchange(a, b, ψ) where Ma,b ?χ such that Ma,b  relevant(?χ, φ) and Ma,b  relevant(?χ, ψ) Figure 3.6: Exemple de séquencement de jeux de recherche d’information dans l’approche d’Hulstijn tiré de [Dastani 2001]3.2. Les jeux de dialogue pour l’interaction Homme-Machine 69 S1 : Est-ce que j’ai besoin d’un visa pour voyager ? H2 : Tu pars d’où ? S3 : De France. H4 : Tu vas où ? S5 : En Chine. H6 : Alors oui ! Dialogue 3.3 – Exemple de dialogue de séquencement de jeux de recherche d’information aux énoncés [2;3] et [4;5] par rapport à la question de plus haut niveau posée au tour 1 La figure 3.6 présente un exemple qui spécifie que des échanges de demande d’information peuvent être séquencés quand ils continuent d’être pertinents (via la relation « relevant ») par rapport à une question de plus haut niveau (des questions dépendantes dans la terminologie de Ginzburg, cf. section 2.2.3). Le dialogue 3.3 illustre informellement le type de séquencement capturé par cette définition. Une question sur la nécessité d’un visa est soulevée au tour de parole S1. Pour y répondre, deux jeux de recherche d’information sont séquencés (énoncés [2;3] et [4;5]) dont les réponses sont pertinentes par rapport à la question initialement posée. Les échanges peuvent également être chaînés. Deux jeux J1 et J2 sont chaînés si et seulement si l’acte de dialogue réponse du jeu J1 est l’acte initiatif du jeu J2. L’exemple le plus démonstratif de cette combinaison est l’enchaînement proposition/contre-proposition/. . . où la contre-proposition joue le rôle à la fois de réponse négative dans l’échange n, et le rôle initiatif (en tant que proposition) dans l’échange n + 1. 3.2.3 Les jeux comme structures pour l’engagement dans le dialogue Sur le modèle des systèmes dialectiques [Hamblin 1970, Walton 1995], Maudet envisage les jeux de dialogue comme des structures capturant les engagements que les interlocuteurs contractent pendant le dialogue [Maudet 2001]. Notion d’engagement social Les engagements sociaux sont à distinguer des états privés des agents tels que croyance et désir. Les engagements sociaux sont des engagements qui lient un agent à une communauté [Singh 1991, Castelfranchi 1995]. Les caractéristiques des engagements sociaux sont les suivantes (reprises et adaptées de [Walton 1995,Singh 1999,Maudet 2001,Pasquier 2005]). Les engagements sont sociaux. Ils sont contractés envers d’autres membres d’une communauté (à distinguer des engagements d’un agent envers lui-même [Cohen 1990b]. Dans le cas du dialogue, les engagements sont pris envers les autres interlocuteurs. On appelle débiteur la personne qui s’engage et créditeur la personne envers qui l’engagement est pris. Les engagements sont publics et accessibles aux membres de la communauté. Ils sont géné- ralement stockés dans un tableau appelé commitment store qui a pour vocation de faire partie de la zone publique de l’état d’information d’un système de dialogue. Les engagements sont propositionnels ou en action. Usuellement, les engagements sont distingués entre ceux dirigés vers le présent (les engagements propositionnels) et ceux dirigés vers le futur (les engagements en action). Les engagements propositionnels portent sur l’état du70 Chapitre 3 : Vers des modèles mixtes à base de jeux de dialogue monde (e.g., « Paris est la capitale de France ») tandis que les engagements en action portent sur des actions à réaliser dans le futur (« Demain, j’irai nager. »). Cette vision est toutefois simplificatrice puisqu’il est tout à fait possible de contracter des engagements propositionnels dirigés vers le futur, i.e., décrivant un état du monde futur (« La vaisselle sera faite avant midi. »). Il existe une tendance à aller vers une uniformisation du traitement de ces deux types d’engagements [Singh 2008]. Les engagements peuvent être conditionnels. À l’instar d’une règle (« si tu me payes, je te livre la commande »), un engagement peut être conditionnel. Un engagement conditionnel tient si sa condition est remplie. La considération de ces types d’engagements peut être effectuée via des engagements d’ordre supérieur (e.g., des engagements permettant de créer de nouveaux engagements) [Singh 1999,Maudet 2001,Pasquier 2005], ou en envisageant les engagements conditionnels comme fondamentaux [Singh 2008]. Les engagements sont dialogiques ou extra-dialogiques. Dans le dialogue, on distingue les engagements dialogiques qui sont pris dans un contexte local particulier (e.g., un jeu de dialogue), des engagements extra-dialogiques qui sont pris dans le contexte de la tâche sous-jacente du dialogue. Les engagements sont explicites ou implicites. Les engagements explicites sont créés par l’occurrence d’actes communicatifs. Les engagements implicites sont associés à une connaissance partagée de la communauté qui n’a pas été explicitée (e.g., les règles d’un cadre dialogique comme un protocole). Les engagements sont datés, i.e., pris à un moment donné. Enfin, les engagements peuvent être ordonnés. Certains engagements en action sont prioritaires sur d’autres car ils doivent être satisfaits en priorité. Par exemple, on répond généralement à la dernière question qui a été posée, remplissant l’engagement de réponse créé par la question, avant de considérer la suivante. Le tableau de conversation et les engagements sociaux Dans l’approche de Maudet, l’état du dialogue est représenté par un tableau de conversation qui enregistre les engagements sociaux pris par les interlocuteurs à un instant du dialogue. Maudet distingue les engagements sociaux pour deux interlocuteurs entre ceux qui sont propositionnels et ceux qui sont en action. Les engagements en proposition C(x, p) expriment qu’un agent x s’engage dans le présent sur une proposition p envers y (non précisé pour alléger l’écriture). Par exemple, si x dit à y : « Paris est la capitale de la France », il contracte l’engagement C(x, capital(france, paris)) signifiant que x est engagé envers y sur la proposition capital(france, paris). Les engagements en action sont contextualisés par le jeu j dans lequel ils sont pris. Ils peuvent prendre les formes suivantes : — Cj (x, α) : exprime que x s’engage à ce que α survienne : « Je vais en Roumanie l’été prochain. » — Cj (x, α1|α2) : exprime que x s’engage à ce que l’événement α1 ou α2 survienne. — Cj (x,¬α) : exprime que x s’engage à ce que l’événement α ne survienne pas. La formalisation considère les engagements conditionnels utilisés pour modéliser la consé- quence (contextualisés par le jeu j dans lequel ils sont pris) : — Cj (x, α ⇒ β) : x s’engage à ce que, si l’événement α se produit, l’opération β est réalisée sur le tableau.3.2. Les jeux de dialogue pour l’interaction Homme-Machine 71 — Cj (x, α ∗⇒ β) : x s’engage à ce que, à chaque fois que l’événement α se produit, l’opération β est réalisée sur le tableau. Enfin, les engagements conjoints sont utilisés pour engager les interlocuteurs sur un jeu j : C({x, y}, j). Le tableau d’engagements évolue grâce à un ensemble d’opérations (création, satisfaction, annulation, prioritarisation) qui permettent de créer, supprimer, annuler et ordonner les engagements. Les actes de dialogues Les actes de dialogues considérés par Maudet sont des actes contextuels multiniveaux constitués d’une fonction et d’un contenu sémantique. Les niveaux considérés sont le niveau informationnel et le niveau de contextualisation. Le premier niveau permet aux interlocuteurs d’échanger de l’information et leur contenu est propositionnel. Par exemple, affirme(x, beau) est l’acte par lequel x affirme la proposition « Il fait beau. ». Le deuxième niveau permet aux interlocuteurs de modifier le jeu de dialogue courant (i.e. le contexte local de l’interaction). Par exemple, prop.entrée(y, interrogation(p)) est l’acte par lequel y propose d’entrer dans un jeu d’interrogation. Les jeux de dialogue sont des structures qui capturent les engagements créés durant le dialogue Les jeux représentent des conventions entre des interlocuteurs et sont des structures partagées et bilatérales. Maudet propose la distinction de deux types de jeux : les jeux de dialogue et les jeux de communication. Un jeu de dialogue est un cas particulier d’activité conjointe activée temporairement pendant le dialogue dans un but spécifique (e.g., pour l’obtention d’une information, pour la demande de réalisation d’une action, etc.). Certains représentent un motif d’interaction local dans le dialogue. Ils doivent être établis par les participants du dialogue (les jeux de dialogue peuvent être ouverts, fermés ou proposés). Les jeux de communication sont dédiés à des processus de gestion de l’interaction plus généraux (comme la contextualisation, la compréhension mutuelle, la gestion des tours de parole, etc.) et sont toujours activés. Les jeux de dialogue sont définis par des conditions objectives qui portent sur des engagements sociaux, et non sur des dispositions subjectives des interlocuteurs comme des états mentaux. Celles-ci sont de trois types : entrée définit l’état du tableau de conversation afin de permettre l’entrée dans le jeu. succès définit l’état du tableau qui correspond au succès du jeu. échec définit l’état du tableau qui correspond à l’échec d’un jeu. Maudet adopte une hypothèse simplificatrice concernant les conditions d’échec : elle consiste en l’énonciation d’un coup dialogique vide [Maudet 2001] (p. 125). Les jeux sont également définis par des règles qui précisent les engagements conversationnels que les interlocuteurs contractent lorsqu’ils entrent dans le jeu. Par exemple, ces engagements précisent les actes attendus ou interdits dans le cadre du jeu. Ils vont guider le comportement dialogique des interlocuteurs. Cette définition permet de distinguer deux propriétés des jeux. Un jeu est collaboratif si et seulement si les conditions de succès pour l’initiateur et le partenaire sont identiques. Il est symétrique si et seulement les règles qui s’appliquent aux deux joueurs sont identiques.72 Chapitre 3 : Vers des modèles mixtes à base de jeux de dialogue Le tableau 3.4 présente l’exemple du jeu d’explication. Ce jeu est collaboratif et asymétrique. Il permet à l’initiateur de demander une explication au partenaire sur une proposition p. Les conditions d’entrée se résument à ce que le partenaire soit engagé sur la proposition p. Celle-ci traduit le fait qu’on ne peut pas demander une explication sur une proposition à quelqu’un s’il n’est pas engagé sur celle-ci. Les règles peuvent se lire comme suit. L’initiateur s’engage à jouer un défi sur la proposition. Le partenaire s’engage à jouer une explication (sous la forme d’un affirme) ou à retirer son engagement si le défi est joué. Ce jeu incorpore une règle différente d’une règle de production d’actes de dialogue. Ici, il s’agit d’une interdiction. Le partenaire ne peut pas justifier la proposition sur laquelle il est engagé en affirmant cette même proposition. Le jeu est un succès lorsque le partenaire est engagé sur un ensemble de propositions qui permet de supporter la proposition p. initiateur (x) partenaire (y) entrée C(y, p) succès C(y, s) tq. s  p C(y, s) tq. s  p règles défi(x, p) défi(x, p) ⇒ créer(y, Cj (y, affirme(y, s)|retrait(y, p)|vide(y))) ¬affirmer(y, p) Tableau 3.4: Exemple du jeu de dialogue d’explication dans l’approche de Maudet [Maudet 2001]. j = explication(p). Les jeux de dialogue constituent des contextes dialogiques au sein desquels les interlocuteurs contractent des engagements conversationnels les uns envers les autres. Ces engagements vont guider leurs comportements dialogiques. Notons que la différenciation des conditions de succès entre l’initiateur et le partenaire du jeu permet de considérer des jeux collaboratif ou non. Cette formalisation admet l’avantage de pouvoir spécifier les jeux à plusieurs niveaux de granularité. Les engagements peuvent être utilisés pour spécifier précisément des enchaînements d’actes attendus comme dans les approches de Lewin (cf. section 3.2.1) ou d’Hulstijn (cf. section 3.2.2). Mais ils peuvent également spécifier des prérogatives générales qui devront être suivies (e.g., ne pas se contredire dans un jeu d’argumentation). Les jeux de communication Les jeux de communication sont spécifiés sous la forme d’engagements conditionnels persistants (Cj (−, α ∗⇒ β)). Notons que les jeux de communication n’ont ni condition d’entrée ni condition de sortie puisqu’ils sont activés en permanence. Maudet propose deux jeux de communication, celui de contextualisation et celui d’évaluation, tout en précisant que d’autres phénomènes comme l’établissement (cf. section 2.2.1) ont vocation à être spécifiés sous cette forme. Le jeu d’évaluation permet de capturer l’idée que les interlocuteurs tentent de s’accorder sur l’état du monde durant le dialogue. Les interlocuteurs ont donc tendance à évaluer ce qui est dit en concédant ou contredisant. Le tableau 3.5 présente la spécification de ce jeu de communication. À chaque affirmation (par l’acte affirme), l’allocutaire contracte l’engagement d’évaluer positivement (via l’acte concède) ou négativement (via l’acte contredit) la proposition. Un interlocuteur contredit contracte l’engagement lui permettant de retirer son engagement sur la proposition affirmée (via l’acte retrait).3.2. Les jeux de dialogue pour l’interaction Homme-Machine 73 Événements (α) Opérations (β) affirme(x, p) créer(x, Cev(y, concède(y, p)|contredit(y, p))) créer(x, C(x, p)) concède(x, p) créer(x, C(x, p)) retrait(x, p) annuler(x, C(x, p)) contredit(x, p) créer(x, Cev(y,retrait(y, p))) créer(x, C(x,¬p)) Tableau 3.5: Jeu de communication d’évaluation dans l’approche de Maudet [Maudet 2001] L’approche de Maudet est la seule à considérer explicitement l’établissement du jeu de dialogue via le jeu de contextualisation [Maudet 2003a]. Le jeu correspond au mécanisme de négociation proposé par Mann (cf. section 3.1.3). Il traduit le fait que les interlocuteurs négocient l’entrée et la sortie du jeu sous la forme d’une proposition suivie d’une acceptation ou d’un refus. Pour ce faire, les interlocuteurs peuvent produire des actes de contextualisation pour ouvrir un jeu (prop.entrée, acc.entrée, ref.entrée) ou pour fermer un jeu ouvert (prop.sortie, acc.sortie, ref.sortie). La dynamique des jeux de dialogue Maudet envisage deux possibilités de combinaison de jeux de dialogue : le pré-séquencement et l’emboîtement. La notion de pré-séquencement traduit le fait que le premier jeu prépare la réalisation du second. La difficulté de ce type de combinaison est que la pré-séquence est souvent observée a posteriori, une fois que le deuxième jeu a été joué. Maudet s’intéresse à un type particulier (et plus simple) de pré-séquence qu’il nomme pré-séquence informée. Il s’agit du cas où le jeu préparé est connu à l’avance, i.e., j1 pré-séquence j2 si j1 est ouvert alors que j2 est proposé. Une telle combinaison est envisageable pour s’assurer que les conditions d’entrée du jeu sont vérifiées. C’est la cas où une proposition d’entrée dans un jeu a été jouée de manière sous-spécifiée (les conditions d’entrées ne sont pas toutes vérifiées) et où un second jeu a été ouvert pour établir les conditions d’entrée manquantes. Nous avons rencontré les emboîtements de jeux dans l’ensemble des approches que nous avons présentées. L’idée peut se résumer ainsi : un jeu j2 est emboîté dans j1 si le jeu j2 est ouvert alors que le jeu j1 était déjà ouvert. Quelles sont les conséquences d’un emboîtement de jeux ? Maudet en liste trois. Premièrement, les engagements contractés dans le jeu emboîté sont prioritaires sur les engagements du jeu parent. Cela traduit l’idée que le contexte dialogique le plus spécifique est aussi le plus saillant. Généralement, on répond à la dernière question qui a été posée avant de répondre aux autres (cet exemple devient contre-exemple quand on parle de questions coordonnées). Ensuite, le jeu parent domine ses jeux emboîtés. La conséquence de cette observation est que l’annulation du jeu parent conduit à l’annulation de ses jeux emboîtés. Enfin, les engagements du jeu emboîté peuvent être contradictoires avec les engagements du jeu parent. Dans ce cas, la règle de priorité s’applique. Un acte de dialogue peut violer un engagement d’un jeu j uniquement dans le cas où cela lui permet de satisfaire un engagement d’un jeu emboîté dans j.74 Chapitre 3 : Vers des modèles mixtes à base de jeux de dialogue 3.3 Discussion Dans cette discussion, nous défendons l’intérêt d’aller vers une architecture d’agent mixte réactive/délibérative basée sur les jeux de dialogue vus comme des structures d’engagements. Nous montrons dans la section 3.3.1 l’intérêt du formalisme basé sur les engagements. Puis nous soulignons les avantages qui font des jeux de dialogue une structure à considérer pour des agents interactifs (cf. section 3.3.2). Enfin, nous synthétisons notre point de vue sur les modèles mixtes à base de jeux de dialogue (cf. section 3.3.3). 3.3.1 Vers un modèle normatif des jeux de dialogue basé sur les engagements Dans cette section, nous explorons les liens entre les formalisations de jeux de dialogue présentées et la structure intentionnelle. Deux points de vue sur le lien entre structure du dialogue et jeux de dialogue se dégagent. Ensuite, nous comparons les approches présentées sur certaines caractéristiques générales des jeux de dialogue (vues en section 3.1) : les phases de vie d’un jeu, la structuration intra et inter-jeu et la prise en compte de l’axe de l’interaction. Enfin, nous soulignons l’intérêt de concevoir les jeux de dialogue comme structures pour l’engagement dans le dialogue. Jeux de dialogue et structure intentionnelle du dialogue Lewin, Hulstijn et Maudet abordent explicitement le problème des jeux de dialogue et des liens avec les processus de délibération des agents. Deux points de vue semblent se distinguer. Le premier est partagé par Lewin et Hulstijn : les jeux de dialogue sont essentiellement des unités de type initiative-réponse planifiées par les agents. Le second point de vue est celui de Maudet : certains jeux sont planifiés et trouvent pleinement leur ancrage dans la structure intentionnelle du dialogue, et certains jeux et certaines combinaisons de jeux s’ancrent dans une structure intermédiaire motivée dialogiquement (plutôt qu’intentionnellement). Nous allons présenter plus précisément ces deux visions. « Dialogue games are recipes for joint action » La vision des jeux de dialogue de Hulstijn [Hulstijn 2000b, Hulstijn 2000a] provient de la réponse à la question suivante : si l’on considère les processus de communication eux-mêmes comme des actions conjointes représentées dans un formalisme de l’action et de la planification conjointe, alors quelles sont les recettes partielles ? Pour Hulstijn la structuration du dialogue est fondamentalement sur deux niveaux : Structure locale : Ensemble de règles utilisées localement de manière réactive par les agents (par exemple, les règles à l’intérieur des jeux). Structure globale : Donnée par la structure inter-jeu issue de la structure intentionnelle. Pour résumer, le dialogue est vu comme une activité conjointe entre les interlocuteurs. Le dialogue est une activité extrêmement dynamique, il paraît donc peu plausible que les interlocuteurs puissent délibérer à l’infini. La coordination de cette activité doit reposer sur un précédent établi ou sur certaines conventions. Comme dans toute activité répétitive, certaines situations sont récurrentes et deviennent par conséquent familières. La coordination des actes de dialogue peut se baser sur des motifs d’interaction conventionnels formalisés par les jeux de dialogue. Pour Hulstijn, les jeux de dialogue (tels que définis section 3.2.2) sont les recettes pour l’action conjointe.3.3. Discussion 75 L’idée est que les agents planifient au niveau des jeux. Notons que ce point de vue est également partagé par Lewin (cf. section 3.2.1). Le modèle DTask (cf. section 2.1.3) peut être vu comme une mise en œuvre simplifiée de cette approche au niveau de surface des énoncés. Néanmoins, la vision des jeux de dialogue comme recettes pour l’action jointe est réductrice [Maudet 2001]. Le premier point concerne le statut des jeux. Si ces derniers sont vus comme des prêt-à-planifier, ils ne permettent pas de prendre en compte une variété de sous-dialogues qui ne peuvent pas être planifiés comme les dialogues de clarification (e.g., dialogue 3.5, p. 76). Et de manière plus générale, les jeux de la version d’Hulstijn sont des structures qui ne fournissent finalement que la part conventionnelle des plans des modèles de l’action conjointe collaborative. De cette dernière remarque naît la seconde critique. Certains types de dialogue ne peuvent pas trouver leur place dans un modèle de l’action conjointe collaborative. Il suffit de prendre le cas du débat où il semble difficile de soutenir qu’il y a effectivement collaboration entre les interlocuteurs. Ceux-ci coopèrent effectivement sur une activité commune qui va les contraindre, sans pourtant que cette activité ne soit un plan partagé. De prêt-à-planifier à guide de comportement Le mécanisme sous-jacent des jeux de dialogue doit être plus flexible tout en contraignant les actions dialogiques. C’est tout l’objet de la formalisation des jeux de dialogue comme des structures pour l’engagement de Maudet (cf. section 3.2.3). Les jeux de dialogue ne sont plus vus comme des recettes à inclure dans les plans partagés. Ils sont vus comme des guides pour le comportement communicatif que les agents peuvent décider de suivre ou pas. Le comportement des agents est guidé par les engagements qu’ils contractent au fur et à mesure de la conversation. Cette vision permet de gagner en flexibilité puisque des jeux opportunistes (clarification, évaluation, etc.) peuvent être ouverts à tout moment. Que devient alors la relation entre les jeux de dialogue et la structure intentionnelle ? La réponse la plus aboutie à notre connaissance est apportée par Maudet [Maudet 2001]. Il souligne que les jeux peuvent être combinés pour former une structure plus complexe sans besoin de se référer à la structure intentionnelle, par exemple par des emboîtements ou des pré- séquences (éventuellement informées). La rupture avec la vision précédente tient donc en cette idée qu’au cours d’un dialogue certains jeux sont planifiés et d’autres sont ouverts de manière plus réactive. Le dialogue 3.4 présente une structure d’emboîtement dominé par les buts. L’enchaînement des jeux est alors expliqué par la structure intentionnelle. La motivation à jouer au jeu j2 est dominée au niveau de la structure intentionnelle par la motivation à jouer au jeu j1. J1 : Est-ce que Diana vient avec nous au cinéma ? G2 : Est-ce que Zach vient ? J3 : Non ! G4 : Diana ne viendra pas alors. Dialogue 3.4 – Emboîtement intentionnellement fonctionnel : j2 ([2;3]) est dominé par j1 ([1;4]) Les jeux ouverts de manière réactive incluent les dialogues incidents. Il s’agit par exemple de dialogues de clarification, correction, d’évaluation, etc. Le dialogue 3.5 présente un tel exemple. Ce type d’emboîtement consiste en un changement d’axe dans le dialogue pour passer dans la gestion de l’interaction. Il s’agit d’un emboîtement réactif d’un jeu de communication. Pour synthétiser, Maudet distingue trois niveaux de structuration [Maudet 2001] :76 Chapitre 3 : Vers des modèles mixtes à base de jeux de dialogue S1 : Comment t’appelles-tu ? G2 : GDD S3 : Pardon ? G4 : Je m’appelle Guillaume ! Dialogue 3.5 – Emboîtement interactionnellement fonctionnel : le jeu de communication ([2;4]) est emboîté dans le jeu de dialogue ([1;4]). Structure locale : Elle provient des règles contractées lors des jeux de dialogue. Structure intermédiaire : Elle est issue de règles et contraintes qui n’ont pas besoin de se référer au niveau intentionnel. Elle traduit l’occurrence de dialogues incidents. Structure globale : Elle provient de la structure intentionnelle, il s’agit des jeux planifiés par des structures de délibération discursive. Comparaison des approches présentées Nous analysons désormais les points communs et les divergences des formalismes de jeu de dialogue au regard de la métaphore décrite en section 3.1.4. Nous comparons les approches sur la prise en compte des « phases de vie » d’un jeu identifiées par Levin, Moore et Mann : entrée/pratique/sortie (cf. section 3.1). Puis nous étudions le pouvoir expressif des formalismes concernant les règles de jeu (i.e., la structure intra-jeu). Nous constatons ensuite les différentes combinaisons de jeux proposées par les formalismes. Pour finir, nous examinons la prise en compte des axes du dialogue (tâche et gestion de l’interaction, cf. section 1.1.2) dans les jeux de dialogue. Les phases de vie d’un jeu de dialogue Des trois approches que nous avons considérées, la seule à modéliser les phases d’ouverture, pratique et fermeture d’un jeu est l’approche de Maudet via le jeu de communication de contextualisation (cf. section 3.2.3). La structuration intra-jeu (règles) Les trois versions apportent des contraintes structurelles plus ou moins forte. La version automate permet de spécifier facilement des enchaînements d’actes attendus. En contrepartie, il est nécessaire de spécifier les jeux de la manière la plus complète possible, le risque étant de perdre en flexibilité et réutilisabilité. La version unité IR part d’un a priori fort, à savoir la structure triangulaire générique. La partie spécifique des jeux s’appuie sur les actes de dialogue initiatifs et réactifs ainsi que sur les contraintes sémantiques. C’est la seule approche présentée à considérer ce genre de contraintes. Enfin, la version engagement semble être celle qui offre la plus grande souplesse structurelle car elle permet de spécifier très localement et partiellement les séquences attendues tout en permettant une plus grande variété de règles (e.g., les interdictions de coup dialogique). De plus, c’est le tableau de conversation qui est plus largement pris en compte dans la version engagement pour déterminer les prochains coups possibles. Cela inclut le dernier coup dialogique joué mais également d’autres informations comme les engagements contractés au cours du dialogue. Cette richesse peut être un avantage par rapport à la version automate au contexte beaucoup plus réduit.3.3. Discussion 77 La structuration inter-jeu Trois types de structuration inter-jeu sont évoqués : (i) emboî- tement (ou imbrication), (ii) pré-séquence, et (iii) enchaînement. Le dernier n’est abordé que par la formalisation d’Hulstijn. Comme dans la structuration intra-jeu, Lewin et Maudet ne s’intéressent qu’aux contraintes structurelles qui pèsent sur les structures inter-jeu. La formalisation de Lewin permet d’emboî- ter des jeux de manière infinie grâce aux réseaux de transition récursifs. Selon ce dernier, les contraintes sur la profondeur de l’emboîtement proviennent de la structure intentionnelle qui permet de combiner les jeux. La formalisation de Maudet précise les contraintes structurelles dans le jeu de contextualisation. Celles-ci permettent de gérer les intercalements de jeu (c’est un type de négociation entre jeu), les pré-séquences et les emboîtements. Il s’agit de contracter des engagements adéquats qui vont permettre d’accepter l’entrée des jeux dès l’atteinte des conditions de succès du jeu intercalé ou des conditions d’entrée du jeu pré-séquencé dans le cas du pré-séquencement. Ce dernier précise qu’il est nécessaire de définir des contraintes de cohérence au niveau des types de jeux et des sujets des jeux. Ces aspects peuvent nécessiter de se référer aux structures intentionnelles des interlocuteurs. Enfin, la formalisation d’Hulstijn permet aux jeux de s’emboîter dynamiquement (par exemple (I(IR)(IR)R)). De la même manière que Lewin, cette structuration dynamique provient de la structure intentionnelle des interlocuteurs (i.e., comment les jeux sont planifiés). Similairement à la structuration intra-jeu, Hulstijn définit récursivement le séquencement de jeu de manière générique : il consiste en une séquence d’un échange (IR) suivi d’un jeu (qui peut lui même être une séquence). Le séquencement doit respecter une contrainte sémantique sur les contenus sémantiques des actes. La structuration d’enchaînement est un cas limite des séquences : c’est le cas où l’acte réponse d’un échange est également initiatif de l’échange qui suit. Typiquement, les structures enchaînées sont de type question/réponse/évaluation ou de type proposition/contre-proposition/etc. Ces deux dernières structurations sont statiques (les structurations doivent être prédéfinies avant l’utilisation). Axes de dialogue et jeux de dialogue Le dialogue est une activité complexe, notamment parce qu’elle évolue sur deux axes, celui de la tâche et celui de l’interaction, et que le dernier axe peut lui-même être décomposé en dimensions et niveaux (cf. section 1.1.2). Quel est l’impact de ces observations sur les différentes approches de formalisation des jeux de dialogue ? Seule l’approche de Maudet fait apparaître explicitement le niveau de la gestion de l’interaction via les jeux de communication. Ces derniers modélisent les conventions implicites présentes dans tout type de conversation comme la fonction évaluative, le grounding, la gestion des tours de parole, etc. Maudet ne présente pas explicitement des jeux de communication pour le grounding ou la gestion des tours de parole, mais signale que l’alliance entre les engagements et les actes multi-niveaux paraît suffisante pour modéliser ces processus. Les autres approches mêlent ces deux axes. C’est le cas par exemple des automates présentés par Lewin, et plus particulièrement de celui de demande d’information (figure 3.1, p. 65). En effet, les transitions entre les états 3 et 4 sont en fait un mécanisme minimal de feedback permettant de gérer des couples confirmation/correction via les actes cnf, Ryes, Rno, Rmod (cf. section 3.2.1). En conclusion, sur les 4 approches présentées, seule l’approche de Maudet distingue jeux de communication et jeux de dialogue dans le but de modéliser les processus de gestion de l’interaction. Cette distinction est motivée par la généricité des jeux de communication qui sont présents dans toute conversation.78 Chapitre 3 : Vers des modèles mixtes à base de jeux de dialogue Vers un modèle normatif des jeux de dialogue basé sur les engagements De l’ensemble des formalisations présentées, celle de Maudet semble sortir du lot. Cette approche est plus complète dans la formalisation de la métaphore des jeux de dialogue par sa considération explicite de l’établissement de jeux, sa considération explicite de l’axe de l’interaction du dialogue et son pouvoir expressif plus grand dans les règles (e.g., via les interdictions). En outre, cette approche affine les liens entre la structure du dialogue, la structure intentionnelle et les jeux de dialogue en faisant apparaître un niveau intermédiaire (cf. section 3.3.1). Au-delà de ces caractéristiques, c’est une approche qui propose une structure tractable pour des agents dialogiques via la notion d’engagement traduisant l’aspect normatif de la métaphore des jeux de dialogue. Nous rejoignons le point de vue de Maudet et proposons d’aller vers des jeux de dialogue vus comme des structures capturant les engagements que les interlocuteurs contractent pendant le dialogue. 3.3.2 Avantages et limites des jeux de dialogue Dans cette partie, nous présentons les limites générales des jeux de dialogue et leurs avantages pour la modélisation du dialogue pour un agent interagissant avec un humain. Puis nous nous intéressons aux avantages et limites spécifiques de la vision des jeux de dialogue comme structures pour l’engagement. Limites des jeux de dialogue Avant d’aborder les avantages, notons tout d’abord quelques limites de la structure de jeu de dialogue. La métaphore des jeux de dialogue est essentiellement normative et conduit à des modèles comme ceux de Maudet (cf. section 3.2.3) motivant les agents à se conformer à un comportement plutôt que de les contraindre (comme les protocoles). La problématique de l’intégration de notions sociales dans le processus délibératif d’un agent interactif est une question ouverte. Le comportement des agents doit être normatif pour prendre en compte les jeux de dialogue en cours et agir en fonction des engagements qu’ils ont contractés, et délibératif pour prendre en compte leurs désirs et intentions. Cependant, il est possible de spécifier de manière procédurale la balance entre le comportement réactif et le comportement délibératif dans le cas particulier de certains systèmes [Traum 1997,Larsson 2002a,Orkin 2013]. En outre, les agents interactifs sont de plus en plus amenés à interagir dans des environnements ouverts [Bohus 2009a] et multipartites [Traum 2004, Kronlid 2008]. À cet égard, la métaphore des jeux de dialogue nécessite un travail d’adaptation non trivial [Mann 2002]. Avantages des jeux de dialogue Dans cette partie, nous recensons les avantages des jeux de dialogue en complétant des observations antérieures [Hulstijn 2000b, Maudet 2001, Pasquier 2005]. De solides arguments permettent de supporter le fait que les jeux de dialogue sont les structures à considérer pour modéliser le dialogue à partir de motifs d’interaction, et en particulier le dialogue HommeMachine. Les jeux ont une réalité empirique Les jeux peuvent être analysés à partir de caractéristiques de surface des énoncés [Kowtko 1991, Carletta 1997]. Des expériences d’annotations sur3.3. Discussion 79 le corpus de dialogues d’orientation MAPTASK ont permis de montrer qu’il y avait peu d’erreurs entre des annotateurs novices et des annotateurs experts quand il s’agissait de classifier un énoncé en terme de coups dialogiques et de jeux [Carletta 1997]. Les jeux sont donc perçus de manière intuitive par les interlocuteurs. Néanmoins, cette étude a mis en avant le fait que la notion d’emboîtement était difficile à cerner pour les annotateurs novices [Lewin 2000]. Les jeux peuvent être spécifiés à partir des motifs dialogiques L’idée des jeux de dialogue est de proposer une structure afin de répertorier les conventions d’interactions dialogiques. L’étude des corpus de dialogues Homme-Homme fait apparaître un certain nombre de motifs dialogiques identifiables par des caractéristiques de surface des énoncés (voir, e.g., [Levin 1977,Mann 1988,Hulstijn 2000b,Pauchet 2006]). Ces motifs prennent notamment la forme de paires adjacentes [Sacks 1974, Hulstijn 2000a] (e.g., question/réponse, suggestion/acceptation) voire de motifs en trois temps initiatif/réactif/évaluatif [Bilange 1991b, Clark 1996] (e.g., question/réponse/évaluation). Une métaphore utile pour modéliser ces motifs d’interaction est celle des jeux de dialogue telle que définie en section 3.1 [Hulstijn 2000b,Maudet 2001]. Celle-ci permet de lier ingénieusement les buts des interlocuteurs (non-nécessairement compatibles) aux attentes que les interlocuteurs peuvent avoir les uns envers les autres en terme de participation à l’activité (i.e., les actions participatives). En somme, les jeux de dialogue permettent de capturer des activités dialogiques similaires à une partie d’échec et qui font défaut aux modèles de l’action et de la planification conjointe actuels limités aux activités strictement collaboratives. L’idée est donc de formaliser des jeux de dialogue à partir de ces motifs d’interaction [Hulstijn 2000b,Hulstijn 2000a]. Ces derniers peuvent être vus comme une manifestation des règles du jeu de dialogue. En outre, il semble possible d’extraire des jeux indépendants du domaine [Hulstijn 2000b, Mann 2002]. Il devient alors envisageable de constituer une bibliothèque de jeux pour modéliser et construire des systèmes de dialogue, ou comme le présente Hulstijn : « If we are looking for a library with tools to model and build dialogue systems for different applications, the level of these games are the right level. » 3 [Hulstijn 2000b] (p. 198) Les jeux sont utiles pour la gestion du dialogue Les jeux sont des structures prédictives qui spécifient entre autres les actions participatives autorisées des interlocuteurs en fonction de l’état du jeu. Une étude sur le corpus MAPTASK démontre à ce propos que prendre en compte la structure de jeu permet d’améliorer significativement les prédictions sur les actes de dialogue [Poesio 1998a]. En outre, les structures de jeux de dialogue peuvent être utilisées par un gestionnaire de dialogue sur deux niveaux [Maudet 2002a] : l’interprétation d’actes de dialogue et leur géné- ration. Au niveau interprétatif, les jeux rendent possible la production d’un ensemble d’actes conventionnellement attendus, et permettent éventuellement de simplifier le processus de reconnaissance d’intentions. Au niveau génératif, les jeux donnent une motivation conventionnelle à la production de certains actes. Les jeux permettent de décomposer plus finement la structure du dialogue Enfin, comme nous l’avons vu en section 3.3.1, les jeux de dialogue permettent de décomposer plus fine- 3. L’expression « these games » réfère aux jeux de dialogue tels que définis par Mann [Mann 1988]80 Chapitre 3 : Vers des modèles mixtes à base de jeux de dialogue ment la structure du dialogue. En particulier, ils permettent d’expliquer certains enchaînements de jeux sans avoir besoin de référer à la structure intentionnelle. En outre, ils permettent de raf- finer la coopération dialogique avec le mécanisme d’établissement du jeu de dialogue. Dans le cas général, le contrôle du dialogue est coordonné par les deux participants : l’entrée et la sortie des jeux de dialogue sont gérées par un mécanisme de négociation (bien que souvent implicite). Cette caractéristique prend tout son intérêt dans des dialogues d’initiative mixte [Horvitz 1999a, Allen 1999] où les interlocuteurs se partagent l’initiative en fonction de leur expertise (voir par exemple les agents assistants d’initiative mixte [Tecuci 2007]). Avantages et limites de jeux de dialogue vus comme structure d’engagements En sus des avantages généraux des jeux de dialogue, l’approche par engagements admet certains avantages spécifiques [Maudet 2002b,Pasquier 2005]. L’adoption d’une sémantique publique et d’un tableau de conversation permet de ne pas contraindre de manière directe les attitudes mentales utilisées par les agents dialogiques. Théoriquement, les jeux ainsi définis peuvent être utilisés dans une grande variété d’architectures d’agents. Par exemple, les jeux peuvent être utilisés de manière procédurale « à la GoDiS » [Larsson 2002a] ou dans une architecture BDI adaptée aux notions sociales. En outre, le tableau de conversation conserve une trace plus riche du dialogue sur laquelle le système peut fonder sa réponse. La contrepartie est que ce niveau public ne dispense pas de la nécessité d’un niveau privé [Pasquier 2005]. Les jeux doivent être utilisés par un agent capable de raisonner sur cette partie publique afin de l’intégrer à leur processus délibératif [Pasquier 2003]. Les approches par engagements sont plus flexibles. Les engagements motivent les agents dialogiques à se conformer aux conventions sans les contraindre. Elles permettent de gérer plus facilement des messages inattendus qui peuvent s’intégrer dans un autre jeu. À ce sujet, les jeux de dialogue sont des structures combinables favorisant la gestion du dialogue par un ensemble de jeux plutôt que par une seule et même structure rigide comme un protocole. Néanmoins, il est nécessaire de spécifier d’une façon ou d’une autre les combinaisons possibles entre les jeux. Cette tâche est d’autant plus ardue que les combinaisons peuvent provenir de sources différentes (structure intentionnelle ou raisons conventionnelles). Des éclaircissements sont nécessaires sur ces notions. Enfin, la notion d’engagement permet de spécifier des jeux à plusieurs niveaux de granularité (e.g., enchaînements précis d’actes ou prérogatives générales). Elle permet de s’adapter à une grande variété de motifs. En outre, l’adoption d’une sémantique publique permet de spécifier les jeux de dialogue de manière déclarative accroissant leur clarté. L’approche des jeux de dialogue par les engagements sociaux de Maudet admet des limites. Premièrement, la notion d’engagement social nécessite d’être approfondie [Pasquier 2005]. En particulier, il est nécessaire de spécifier clairement le cycle de vie des engagements (création, satisfaction, violation, etc.) [Chaib-Draa 2006]. Deuxièmement, la structure de jeux proposée par Maudet est limitée. Les conditions d’échec ne sont pas pleinement exploitées (et se résument à la production d’un coup dialogique vide). Ensuite, Hulstijn précise que la cohérence au niveau interactionnel est aussi bien une question de fonctions des actes de dialogue que de contraintes sémantiques sur le contenu des actes (cf. section 3.2.2). Dans la version engagement, les règles des jeux permettent de spécifier des coups attendus (via un engagement en action) ou des enchaînements de coups (via un engagement conditionnel). En l’état, elles ne permettent pas de prendre en compte des contraintes sémantiques. Troisièmement, la contextualisation des jeux3.3. Discussion 81 est limitée et ne permet pas de proposer une entrée dans un jeu sans en spécifier son but (e.g., « Je peux te poser une question ? ») [Maudet 2001]. Enfin, cette formalisation perçoit le tableau de conversation comme étant strictement partagé entre les interlocuteurs (cf. modèle 4, section 2.2.1). Or, la gestion de mécanismes de communication comme le grounding peut nécessiter la relativisation de cette partie publique du point de vue de l’agent [Larsson 2003]. 3.3.3 Vers des modèles mixtes fondés sur des jeux de dialogue Nous avons parcouru les approches des jeux de dialogue pour la modélisation du dialogue Homme-Homme et Homme-Machine qui nous paraissent les plus pertinentes. Les motifs d’interaction observables lors de l’analyse des corpus semblent clairement être des manifestations de conventions, nécessaires à la coordination de l’activité dialogique vue comme une activité conjointe. Nous avons vu que les motifs d’interaction étaient les parties émergées de l’iceberg qui ne rendent pas clairement compte de la contextualisation des jeux, de l’agencement inter-jeu et de la séparation entre les deux axes du dialogue (tâche et interaction). En conséquence, l’analyse des motifs d’interaction peut conduire à plusieurs formalisations de granularités différentes. Cette étude nous a permis de nous rendre compte que le véritable intérêt des jeux était de cristalliser les conventions dialogiques dans une structure pouvant être intégrée à un processus délibératif. Nous avons vu que les jeux étaient plus que des recettes pour l’action conjointe directement intégrable dans des plans partagés. Une vision plus juste semble de les voir comme des guides pour l’activité dialogique qu’il est possible de suivre, ou de transgresser. En d’autres termes, les jeux de dialogue sont essentiellement normatifs. Pour finir, la formalisation de Maudet semble la plus complète et offre le plus de souplesse. Elle nécessite encore du travail aussi bien sur les relations de cohérence sémantique, le jeu de contextualisation et l’intégration des jeux de dialogue dans un agent délibératif implémenté. Comme [Hulstijn 2000b, Maudet 2001], nous proposons d’aller vers une architecture hybride réactive/délibérative où une théorie de l’action conjointe servira de sémantique aux motifs d’interaction décrits comme des jeux de dialogue. Nous rejoignons le point de vue de Maudet et considérons les jeux de dialogue comme des structures d’engagements [Maudet 2001].Deuxième partie Analyse des interactions humainesChapitre 4 Corpus Cogni-CISMeF Sommaire 4.1 Constitution du corpus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.1.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 4.1.2 Recueil du corpus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 4.1.3 Transcription . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 4.2 Processus de recherche d’information . . . . . . . . . . . . . . . . . . . . . . . 88 4.2.1 Modèle standard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 4.2.2 Un processus opportuniste . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 4.2.3 Un processus stratégique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.3 Analyse des entretiens du corpus . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.3.1 Situation dialogique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.3.2 Structure globale des entretiens . . . . . . . . . . . . . . . . . . . . . . . . . . 91 4.3.3 Stratégies et tactiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.3.4 Rôles des participants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Dans ce chapitre, nous illustrons les phases de récolte de corpus et de transcription de notre méthodologie (cf. figure 4.1). Nous présentons le corpus que nous utilisons pour illustrer notre démarche méthodologique. Nous abordons sa constitution (cf. section 4.1). Puis nous nous intéressons à la tâche de recherche d’information (RI) (cf. section 4.2). Enfin, nous présentons les entretiens de notre corpus en étudiant la tâche de RI collaborative sous-jacente dans la perspective à long terme de réalisation d’un agent assistant d’initiative mixte (cf. section 4.3). Collecte et numérisation signaux bruts Transcription et codage dialogues bruts dialogues annotés Extraction de régularités modèle Annotation Figure 4.1: Récolte et transcription de corpus dans notre méthodologie. Le fond coloré indique les étapes traitées dans ce chapitre. 4.1 Constitution du corpus Notre méthodologie encourage l’usage de corpus de dialogues finalisés (i.e., orientés vers la réalisation d’une tâche précise). Il est indispensable de préciser que ces dialogues possèdent des86 Chapitre 4 : Corpus Cogni-CISMeF caractéristiques simplifiant leur étude au regard de « conversations libres » (même si certains chercheurs considèrent que tout dialogue possède une tâche sous-jacente, e.g., [Clark 1996]). Lorsque la tâche sous-jacente est bien définie (e.g., plus précise qu’une tâche comme « passer le temps »), les dialogues sont moins complexes qu’une communication humaine en général. Ils fournissent un cadre contraint plus aisément formalisable. Certains travaux ont ainsi montré empiriquement que le vocabulaire employé par les interlocuteurs dans un dialogue est très dé- pendant de sa tâche sous-jacente et qu’il y a peu de recoupement entre les différentes tâches [Allwood 2001]. En outre, la tâche influence la structure du dialogue [Grosz 1986]. Nous avons vu que c’était cette caractéristique qui était exploitée par les approches intentionnelles (cf. section 2.1). Le lien entre le dialogue et la tâche permet de caractériser plus facilement les rôles des participants et leurs buts que lors d’une conversation libre. Enfin, la variété des interactions est également moindre dans des dialogues finalisés. Cette section détaille les objectifs à long terme qui ont motivé la constitution du corpus Cogni-CISMeF de dialogues finalisés (section 4.1.1). Elle décrit le recueil du corpus (section 4.1.2) et sa transcription (section 4.1.3). 4.1.1 Objectifs Notre objectif à long terme est la construction d’un agent assistant d’initiative mixte [Tecuci 2007] pour la recherche d’information (RI) avec le système CISMeF [Darmoni 2000]. CISMeF 1 est un moteur de recherche spécialisé dans l’indexation de ressources médicales en langue française. Il propose une interface graphique et un langage de requête permettant de décomposer une requête en éléments issus d’un lexique contrôlé (le MeSH, « Medical Subject Headings »). La terminologie CISMeF comporte des mots-clés, des qualificatifs (symptômes, traitements, etc.), des méta-termes (spécialités médicales) et des types de ressources (base de données, périodique, images, . . . ). Le système s’est étoffé en offrant la possibilité d’effectuer des requêtes étendues. Or, l’utilisateur est souvent peu enclin à l’utilisation de requêtes complexes pourtant plus efficaces. CISMeF présente des difficultés d’utilisation qui justifient la conception d’un agent assistant [Loisel 2008]. En synthèse, CISMeF propose des fonctionnalités avancées qui ne sont pas à la portée de l’utilisateur lambda sans un apprentissage important. Ce système propose un langage de requête complet (connecteurs booléens, recherche en mots-clés majeurs, recherche limitée, etc.) mais difficile d’utilisation. En outre, l’utilisateur doit connaître la terminologie CISMeF, i.e. le vocabulaire contrôlé utilisé pour indexer les ressources dans le moteur de recherche. En d’autres mots, l’utilisateur doit connaître les rouages du système pour pouvoir l’utiliser à son potentiel maximum. Par exemple, une demande comme « médicaments pour le paludisme » peut être traduite dans une requête constituée du mot-clé « paludisme », du qualificatif « thérapeutique » et du type de ressources « patient ». Un ensemble de fonctionnalités avancées est accessible à l’utilisateur pour mener à bien sa recherche, mais est rarement utilisé en pratique. CISMeF est victime de la crise de l’utilisabilité [Rich 2007] : au-delà des fonctionnalités basiques, les utilisateurs sont perdus. Cette observation est appuyée par les expérimentations de [Loisel 2008] qui montrent que même des étudiants de médecine en 2ème année formés à CISMeF ne sont pas capables d’utiliser les fonctionnalités avancées du moteur de recherche. Le prototype Cogni-CISMeF basé sur GoDiS [Larsson 2002a] a constitué une première tentative de développer un agent assistant pour une tâche de RI sur CISMeF [Loisel 2008]. 1. « Catalogue et Index des Sites Médicaux de langue Française », disponible à l’URL www.cismef.org4.1. Constitution du corpus 87 Cogni-CISMeF est sujet aux limites de GoDiS, qui est difficile à étendre pour une tâche complexe et pour l’ajout de nouveaux coups dialogiques. Cogni-CISMeF a été victime du passage à l’échelle et n’a pas pu dépasser le stade de prototype [Loisel 2012]. Cette expérience a en partie motivé la mise en place de la méthodologie sur laquelle se base cette thèse. 4.1.2 Recueil du corpus Nous utilisons dans cette thèse le corpus constitué lors du projet Cogni-CISMeF 2 [Loisel 2008]. Il est constitué de dialogues d’assistance sur une tâche de RI médicale entre un expert CISMeF et un utilisateur. Le recueil de corpus a été effectué par raffinage successif sur plusieurs expérimentations [Loisel 2008]. Lors de ces expérimentations, un expert du système CISMeF se retrouve en tête à tête avec un demandeur qui apporte une formulation de son besoin d’information d’ordre médical. Celui qui occupe la fonction d’expert dispose d’un accès à CISMeF et est chargé de mener la recherche en coopération avec le demandeur. L’expert doit dans le même temps verbaliser tout ce qu’il est en train de faire. Les dialogues sont enregistrés afin d’être retranscrits et les logs des requêtes sont récupérés par le système. L’entretien se clôt lorsque la réponse satisfait le demandeur, ou qu’il semble qu’aucune réponse ne puisse être trouvée. Deux membres du projet Cogni-CISMeF ont joué les rôles d’expert. Pour éviter toute connivence entre personnes, les membres du projet les moins familiers avec le laboratoire ont réalisé cette expérimentation en jouant le rôle d’expert. Les demandeurs sont des membres du laboratoire LITIS (secrétaires, administrateur réseau, doctorants, enseignants-chercheurs). Les utilisateurs sont représentatifs de l’audience visée par le futur système puisqu’ils ne sont pas spécialistes du domaine médical et qu’ils souhaitent obtenir des réponses à des interrogations d’ordre médical. L’intervention des deux experts a permis de contraster les démarches. Le corpus est constitué des retranscriptions des 21 dialogues enregistrés entre les 2 experts et les 21 volontaires. Il contient environ 37 000 mots. Il est constitué de deux sous-corpus caractérisés par la personne qui a joué le rôle d’expert : le corpus AL (12 entretiens) et le corpus VD (9 entretiens). Nous référons aux dialogues du corpus en précisant l’identifiant du corpus suivi du numéro de l’entretien (par exemple, VD05 réfère à l’entretien no 5 du corpus VD). 4.1.3 Transcription Les entretiens ont été manuellement retranscrits par Irina Lenka, étudiante en sociolinguistique chevronnée sur les tâches de retranscription. Des conventions de transcription ont été définies (cf. tableau 4.1). Ces dernières permettent de marquer certaines intonations (af- firmative, interrogative, exclamative) et des phénomènes courants dans le dialogue oral (faux départ, pause, insistance). La prosodie détaillée (intonation, rythme, accentuations, etc.) n’a pas été annotée car elle nécessite un effort long et important ainsi que des compétences spécifiques. Une limite notable de ce travail réside dans le fait qu’il se limite à la transcription de la partie verbale d’une interaction en co-présence. Il est important de préciser que l’interaction via d’autres modalités n’a pas été annotée (mouvements de la tête, expressions faciales, . . . ). Nous revenons sur ce point dans les limites de notre processus d’annotation. 2. Projet financé par le Programme Interdisciplinaire TCAN du CNRS 2004-200788 Chapitre 4 : Corpus Cogni-CISMeF Symbole Description Exemple ? Intonation interrogative « alors ensuite c’est des crises / crises d’angoisse / dans le sens banal ? » ! Intonation exclamative « Ah ! » - Faux départ « donc là on est un syno- / l’épilepsie ça doit être représenté par synonyme » / Pause « Les symptômes / qu’est-ce que c’est exactement le symptômes » : Insistance « Euh : : » xxx Mot ou passage non reconnu « efficacité de la xxx xxx et des interventions concernant le style de vie » (. . . ) Phénomènes non verbaux (rires) <. . . > Transcription incertaine « ah on a trois choses / enregistrement du sommeil » “. . . ” Lecture à l’écran « alors le cinq on a “le diagnostic est pris en charge du trouble anxieux généralisé” » Tableau 4.1: Conventions de transcription du corpus Cogni-CISMeF 4.2 Processus de recherche d’information Notre corpus de dialogues est centré sur la réalisation d’une tâche de RI réalisée collaborativement entre un expert du moteur de recherche et un demandeur. Dans cette section, nous présentons quelques modèles du processus de RI réalisé par un individu isolé. Nous insistons sur les caractéristiques essentielles de ce processus. Le lecteur intéressé par le domaine de la RI peut trouver de plus amples informations dans [Hearst 2009]. 4.2.1 Modèle standard Le processus de RI est généralement perçu comme une instance particulière d’un processus de résolution de problème [Marchionini 1989]. Ce processus implique un chercheur ayant un besoin d’information identifié. Le problème est alors de combler ce manque d’information. Une fois le besoin d’information spécifié, le chercheur établit un plan de recherche qu’il exécute au travers de la recherche en elle-même. Il évalue les résultats trouvés pour éventuellement réitérer le processus entier. La RI est vue comme un processus itératif décomposable en une succession d’étapes [Sutcliffe 1998,Broder 2002,Marchionini 2008] : (i) identification d’un besoin d’information, (ii) spécification de la requête (formulation du besoin d’information, expression de ce besoin dans le moteur de recherche, etc.), (iii) exécution de la requête, (iv) évaluation des ressources obtenues, (v) reformulation de la requête si nécessaire et répétition du cycle jusqu’à obtention de résultats satisfaisants ou abandon de la recherche. 4.2.2 Un processus opportuniste Le modèle standard est limité sur deux aspects. D’un côté, le processus est vu comme impliquant un besoin d’information statique. De l’autre, l’individu est vu comme raffinant successivement sa requête jusqu’à tomber sur un ensemble de documents répondant à son besoin d’information initial. Certaines études ont démontré justement que le besoin d’information dans4.2. Processus de recherche d’information 89 ce processus n’est pas statique et que l’objectif n’est pas de déterminer une unique requête retournant un ensemble de documents répondant au besoin d’information [Bates 1989, O’Day 1993]. [Bates 1989] propose le modèle de « berry-picking » 3 qui insiste sur deux points. Le premier est que le besoin d’information du chercheur évolue en fonction des ressources trouvées lors de la recherche. Une information rencontrée à un moment peut conduire la recherche dans une direction nouvelle et imprévue. Le second est que le besoin d’information n’est pas satisfait par un unique ensemble de documents obtenu à la fin de la recherche, mais par une sélection de ressources récoltées tout au long du processus. En synthèse, le processus de RI est un processus fondamentalement opportuniste dont le cheminement est prégnant face au résultat final. 4.2.3 Un processus stratégique Coup, tactique, stratagème et stratégie Le comportement d’un individu dans un processus de recherche peut être analysé comme un processus stratégique [Bates 1979, Bates 1990]. Ce point de vue a pour but de caractériser aussi bien le comportement d’expert de la RI mettant en œuvre des stratégies planifiées et délibérées, que le comportement plus réactif d’un chercheur lambda. Il s’agit de caractériser la base sur laquelle sont choisies les actions pour passer à l’étape suivante de la recherche. [Bates 1990] décompose l’activité de recherche en niveaux en s’appuyant sur son précédent travail sur les tactiques de recherche [Bates 1979]. Le premier niveau est celui des coups. Un coup est l’unité minimale d’analyse. Il s’agit d’une action qui prend part à l’activité de recherche (e.g., « saisir la formulation de la recherche », « saisir un opérateur booléen ET », . . . ). Le deuxième niveau est celui des tactiques. Il s’agit d’un ou plusieurs coups ayant pour but de poursuivre la recherche en prenant en compte l’état courant (e.g., changer un terme en un plus général comme « cholestérol HDL » par « cholestérol », produire une première requête incluant la plupart des termes de la formulation du besoin d’information, ou au contraire produire une première requête en minimisant sa taille). Le troisième niveau est celui des stratagèmes. Il s’agit d’un ensemble de coups et/ou tactiques conçu pour exploiter un domaine particulier de la RI par une procédure systématique. Par exemple, le domaine peut être un index de citation et le stratagème peut consister à partir d’une citation pour déterminer l’ensemble des travaux l’ayant citée. Un autre stratagème peut consister à chercher tous les travaux d’un auteur traitant d’un sujet particulier. Enfin, une stratégie est un plan global pour la recherche entière pouvant contenir coups, tactiques et/ou stratagèmes. Un plan global est difficile à spécifier de par la nature opportuniste du processus de recherche [Bates 1990]. Il faut noter que ces activités représentent des niveaux différents non réductibles les uns aux autres (une stratégie n’est pas une simple succession de stratagèmes, eux-mêmes succession de tactiques). Chacun de ces niveaux sont conceptuellement différents. En outre, [Bates 1990] précise que les tactiques et les stratagèmes ne sont pas les uniques niveaux envisageables au dessus des coups. Stratégies incrémentales Deux principaux types de stratégies incrémentales ont été observés lors du processus de RI [Hearst 2009]. Ils peuvent être envisagés comme des stratégies partielles complétées de manière opportuniste pendant le processus. La première stratégie est nommée « orientee- 3. « Berry-picking » peut être traduit par « cueillette de baies »90 Chapitre 4 : Corpus Cogni-CISMeF ring » 4 [O’Day 1993]. À l’image d’une course d’orientation, cette stratégie vise à partir d’une requête générale pour la raffiner progressivement suite aux indices accumulés. Elle est constituée de trois grandes étapes : (i) spécifier une courte requête générale, (ii) évaluer et inspecter les ressources obtenues, et (iii) modifier la requête en conséquence pour itérer le processus. Cette stratégie est généralement opposée à la stratégie de téléportation [Teevan 2004]. Contrairement à l’« orienteering », cette dernière vise à spécifier une requête le plus précisément possible afin de se « téléporter » directement aux ressources répondant au besoin d’information. 4.3 Analyse des entretiens du corpus Dans cette section, nous analysons la tâche de RI qui motive le dialogue. Comme précédemment évoqué, la tâche sous-jacente contribue à restreindre la complexité des conversations. En outre, elle influence la structure globale du dialogue [Grosz 1986] (voir, e.g., la structure globale d’un dialogue de réservation de billet d’avion [Bilange 1991a] ou de transaction [Hulstijn 2000b]). Nous étudions l’influence de la tâche de RI sur les entretiens du corpus et en particulier sur la structure globale du dialogue. À notre connaissance, peu de travaux existent sur la tâche de RI en situation de co-présence entre un utilisateur et un expert du moteur de recherche en dehors des travaux de Loisel [Loisel 2008]. Les travaux les plus proches se situent au niveau de la définition de la RI collaborative qui s’inspire du web social [Golovchinsky 2008,Shah 2008]. Dans la suite de cette section, nous présentons une étude originale du processus de RI en situation de co-présence. Elle se base sur un rapport technique qui décortique les dialogues des entretiens en dé- taillant les différentes phases et l’évolution de la requête [Dubuisson Duplessis 2013]. Dans la section 4.3.1, nous précisons la situation dialogique entre l’expert et le demandeur. Nous présentons ensuite la structure globale du dialogue que nous avons observée (cf. section 4.3.2). Puis, nous synthétisons les stratégies et les tactiques employées par les interlocuteurs (cf. section 4.3.3). Enfin, nous abordons les rôles des participants dans cette interaction (cf. section 4.3.4). 4.3.1 Situation dialogique La situation de collaboration entre l’expert et le demandeur est représentée en figure 4.2. Les deux partenaires font face au mode avancé du moteur de recherche CISMeF. Ils dialoguent pour faire avancer la tâche de RI. L’expert manipule l’ordinateur et l’enquêté l’observe. [Golovchinsky 2008] propose de caractériser la situation de collaboration entre des partenaires sur une tâche de RI selon trois dimensions pertinentes : intention, simultanéité et situation. L’intention caractérise la façon dont le besoin d’information est établi entre les partenaires. Elle peut être explicite (le besoin d’information est explicitement établi par les partenaires) ou implicite (le besoin d’information est inféré par un des collaborateurs, e.g., via les actions de l’utilisateur). La collaboration peut être synchrone (les collaborateurs s’influencent en temps réel) ou asynchrone. Enfin, les collaborateurs peuvent être en situation de co-présence ou non. Dans notre cas, la situation de collaboration sur la tâche de RI est explicite, synchrone et en situation de co-présence. 4. « Orienteering » peut être traduit par « course d’orientation »4.3. Analyse des entretiens du corpus 91 Expert Application observe communique interagit (CISMeF) Utilisateur Figure 4.2: Situation dialogique entre l’expert, le demandeur et CISMeF dans l’expérimentation (adaptée de [Rich 2001]) 4.3.2 Structure globale des entretiens Les dialogues de notre corpus montrent une même structure globale. Le dialogue se dé- coupe en phases qui jouent chacune un rôle dans l’avancement de la tâche. Nous présentons cette décomposition d’une manière générale puis nous décrivons plus précisément chacune des étapes. L’enchaînement des phases est représenté sur la figure 4.3. Les dialogues commencent généralement par une phase d’ouverture qui consiste en des salutations. Ouverture Verbalisation Construction de la requête Lancement de la requête Présentation des résultats et évaluation Réparation Clôture Figure 4.3: Structure des dialogues de recherche d’information collaborative observée. Les phases colorées représentent une séquence de recherche d’information. Le dialogue de recherche commence réellement à la phase de verbalisation du besoin d’information qui est toujours présente. Cette dernière rend explicite le besoin d’information du demandeur entre les interlocuteurs. Ce besoin n’est pas figé et peut être raffiné par la suite (e.g., dans les phases d’évaluation et de réparation). La verbalisation est suivie d’une phase de construction de la première requête qui va dépendre du besoin explicité. Une fois cette première requête construite, elle est lancée. Il s’ensuit une phase de présentation des ressources trouvées et d’évaluation des résultats. Suite à cette phase d’évaluation, deux possibilités se présentent : (i) les résultats sont complètement satisfaisants, ou bien (ii) les résultats sont partiellement satisfaisants ou non satisfaisants. Dans le premier cas, le dialogue de recherche se termine par une phase de clôture. Cette phase de clôture peut déboucher sur l’arrêt de la RI ou sur l’exécution d’une recherche sur un nouveau sujet. Par exemple, l’entretien AL09 fait apparaître deux sé- quences de recherche : une sur des problèmes d’articulation, l’autre sur des problèmes d’eczéma athopique. Dans le deuxième cas, l’expert et le demandeur entrent dans une phase de réparation de la requête qui va dépendre des résultats obtenus. La réparation conduit au lancement d’une nouvelle requête et à une nouvelle évaluation des résultats. Il est important de noter la présence du cycle de modification de la requête constitué des phases de lancement de la requête,92 Chapitre 4 : Corpus Cogni-CISMeF de présentation et d’évaluation des résultats, et de réparation de la requête. Ceci est le cœur du dialogue de RI collaborative et met en avant la nature itérative du processus. Tous les dialogues du corpus présentent au moins une fois la réalisation de ce cycle de réparation. La phase de clôture est atteinte après la phase de présentation et d’évaluation des résultats soit parce que les résultats obtenus sont satisfaisants, soit parce que la recherche est abandonnée car les interlocuteurs jugent qu’aucun résultat ne pourra être obtenu. Cependant, nous ne pouvons pas exclure le fait que le dialogue puisse se terminer à n’importe quel moment (même si cela n’a pas été observé). Nous définissons une séquence de recherche comme la succession des étapes de verbalisation, de construction de la requête et du cycle de modification de la requête. Les dialogues de RI peuvent inclure plusieurs séquences situées entre les phases d’ouverture et de clôture. Phases d’ouverture et de clôture La phase d’ouverture consiste en de simples salutations. Cette phase est facultative. Pré- cisons que les entretiens du corpus Cogni-CISMeF commence par une phase de demande d’informations sur le demandeur spécifique à l’expérimentation (nom, prénom, âge, etc.). La phase de clôture fait apparaître des propositions de lancement d’une nouvelle séquence (e.g., « est-ce que vous avez une question sur un autre domaine ? » (AL09)) ou d’arrêts (e.g., « donc je crois qu’on va en rester là non ? – d’accord ça marche » (AL04)). Phase de verbalisation La phase de verbalisation permet d’établir le sujet de la recherche entre les interlocuteurs (i.e., les thématiques de la recherche). La suite de la tâche de construction/réparation de la requête se base sur ce besoin d’information identifié et établi. Nous avons relevé trois principales formes de verbalisation à la suite de la sollicitation de l’expert. La première forme est constituée d’une étape de formulation du demandeur suivie d’un éventuel feedback de l’expert. Par exemple, la phase de verbalisation dans l’entretien AL01 est la suivante : — Formulation (demandeur) : « donc j’ai une amie qui est épileptique et je voudrais savoir quel est le risque pour la grossesse » — Évaluation (expert) : « ok, donc la question est suffisamment précise » La deuxième forme consiste en une formulation du demandeur reprise et reformulée par l’expert. Cette reformulation peut être suivie de précisions spontanées du demandeur. Par exemple, la phase de verbalisation dans l’entretien AL03 est la suivante : — Formulation (demandeur) : « donc il a toujours la périarthrite ». — Reformulation (expert) : « donc vous voulez des informations sur la périarthrite ». — Précisions spontanées (demandeur) : « les soins et puis pour savoir l’évolution ». Enfin, la troisième forme consiste en une formulation du demandeur suivie de demandes de précisions de l’expert. Celle-ci est illustrée dans l’entretien VD02 : — Formulation (demandeur) : « enfin je voudrais parler de leucémie en fait » — Demande de précisions (expert) : « alors des choses un petit peu plus précises sur la leucémie »4.3. Analyse des entretiens du corpus 93 — Précisions (demandeur) : « les symptômes / qu’est-ce que c’est exactement ? les symptômes » Le tableau 4.2 présente les proportions observées de ces formes de verbalisation dans le corpus. On observe une majorité de formulation « simple » (57%) suivie par la formulation conduisant à des demandes de précisions (24%). Enfin, le dernier type (formulation/reformulation) est observé dans 19% des cas. Forme VD AL Total Formulation1 4 8 12 (57%) Formulation/Reformulation1 1 3 4 (19%) Formulation/Demande de précisions/Précisions 4 1 5 (24%) Tableau 4.2: Occurrences des différents types de verbalisation dans le corpus Phase de construction de la requête De manière générale, la problématique de cette phase est de trouver les termes de la terminologie CISMeF adaptés à la verbalisation de l’enquêté. Dans le meilleur des cas, il existe des termes dans la terminologie identiques aux termes de la verbalisation de l’enquêté (e.g., « leucé- mie », VD02). Dans le pire des cas, le terme est absent de la terminologie. L’expert et l’enquêté doivent donc collaborer pour trouver des termes de la terminologie approchant la verbalisation de l’utilisateur. Nous revenons sur cette problématique dans la section 4.3.3. Phase de lancement de la requête La phase de lancement de la requête consiste à exécuter la requête élaborée par les partenaires. Cette phase est souvent implicite. Cependant, il arrive qu’elle soit explicite dans certaines situations, par exemple : « ok / alors on lance la recherche avec uniquement néphrite [. . . ] » (VD08). Phase d’évaluation La phase de présentation et d’évaluation des résultats est l’une des plus importantes du dialogue de recherche. C’est dans cette phase que l’enquêté et l’expert jugent la qualité des ressources obtenues. De manière générale, l’expert présente les résultats au demandeur. Il le sollicite pour juger l’adéquation des ressources obtenues par rapport à ses attentes (e.g., « vous allez me dire si ça vous convient ou pas et pourquoi » (VD02), « Est-ce que le document no x vous intéresse ? » (VD03)). Les résultats obtenus peuvent être : (i) satisfaisant, (ii) partiellement satisfaisant, i.e. pas adapté au profil de l’utilisateur (ressources pour médecin) ou n’abordant pas l’ensemble des thèmes de la requête, ou (iii) pas satisfaisant, i.e. document hors sujet ou déjà obtenu par une précédente requête. L’objet de cette phase est également d’envisager la poursuite de la recherche ou son arrêt. 1. Éventuellement suivie d’une phase de précisions spontanées du demandeur94 Chapitre 4 : Corpus Cogni-CISMeF Phase de réparation Enfin, les phases de réparation de la requête montrent que l’expert et le demandeur mettent en place un ensemble de tactiques permettant de modifier la requête pour récolter des ressources répondant au besoin d’information. Nous les étudions plus en détails dans la section 4.3.3. Dans cette phase, les partenaires proposent des coups ou des tactiques afin d’établir un plan de modification de la requête. Les dialogues 4.1 et 4.2 sont des exemples de réparation de requête. Dans le dialogue 4.1, l’expert propose une tactique de reformulation de la requête (énoncé A1). Il suggère au demandeur d’ajouter « néphrite » à la nouvelle requête. Ce dernier l’accepte (énoncé B2). Ensuite, la proposition de l’expert d’enlever le terme « membres inférieurs » (énoncé A3) est acceptée par le demandeur (énoncé B4). Finalement, l’expert suggère de ne pas enlever « membres inférieurs » mais de le conserver en mot-clé (énoncé A5). Cette suggestion n’est pas considérée par l’enquêté qui demande l’exécution de la requête avec « néphrite », i.e. l’exécution du plan de modification précédemment établi (énoncé B6). L’expert exécute alors ce plan de modification (énoncé A7). En synthèse, les interlocuteurs s’engagent dans une tactique de reformulation. Ils co-construisent un plan constitué de coups modifiant la requête. Le plan élaboré est finalement exécuté. A1 : les pistes qu’on a prises ne fonctionnent pas donc on va essayer de partir sur autre chose / on parle d’une néphrite tout à l’heure / vous voulez qu’on essaie de ce côté là B2 : on peut essayer A3 : donc j’enlève membres inférieurs B4 : ouais A5 : ou je le rajoute en mot clé B6 : bon allons y sur néphrite voir un peu ce qu’il y a A7 : en mot clé cismef je tape néphrite après avoir enlevé membres inférieures Dialogue 4.1 – Exemple de dialogue de réparation de requête (VD08). A est l’expert, B est le demandeur. Dans le dialogue 4.2, l’expert propose une tactique d’élargissement de la recherche (énoncé A1). Comme dans le précédent dialogue, les partenaires élaborent conjointement un plan de modification de la requête. Ici, c’est principalement le demandeur qui propose les coups à effectuer (énoncés B4 et B6) et qui sont validés par l’expert (énoncés A5 et A7). Dans la suite de l’élaboration du plan, l’expert propose de rajouter le qualificatif « diagnostic » (énoncé A8) bien que sa suppression ait été précédemment validée (énoncé A7). Le demandeur accepte et propose l’exécution du plan (énoncé B9). L’exécution du plan est acceptée et effectuée par l’expert (énoncé A10). 4.3.3 Stratégies et tactiques Nous présentons maintenant la stratégie menée par l’expert observée dans le corpus. Nous appelons tactique initiale une tactique qui apparaît dans la phase de construction de la requête et tactique de réparation une tactique qui apparaît dans la phase de réparation. De manière générale, nous avons observé que l’expert met en place un processus de recherche incrémental.4.3. Analyse des entretiens du corpus 95 A1 : [. . . ] bah peut-être qu’on peut essayer d’élargir la recherche dans ce cas là si on regarde un petit peu les mots qu’on a mis / B2 : on a quand même pas mis grand chose A3 : bah non alors B4 : pourquoi enlever / on peut enlever analyse A5 : alors enlevons analyse B6 : et diagnostic A7 : oui [. . . ] A8 : [. . . ] j’aurais presque envie de mettre diagnostic quand même parce que / parce que on va voir ce que ça donne B9 : oui normalement c’est un diagnostic / ok / essayons comme ça A10 : on va essayer comme ça sinon on enlèvera encore des choses pour arriver à avoir des / donc je relance la recherche avec l’accès thématique cancéro le mot clé cismef colon et puis le qualificatif diagnostic sans précision du type de ressource qu’on recherche Dialogue 4.2 – Exemple de dialogue de réparation de requête (VD06). A est l’expert, B est le demandeur. Stratégie globale Une stratégie globale débute par une tactique initiale suivie d’une série de tactiques de ré- paration de la requête permettant de collecter des documents. Les tactiques sont élaborées en collaboration avec le demandeur. Nous avons observé deux types de stratégie globale correspondant aux deux experts. La première consiste à partir d’une requête précise pour ensuite la généraliser au fur et à mesure (corpus VD). C’est une stratégie de téléportation. La seconde consiste à partir d’une requête vague pour la préciser successivement ensuite (corpus AL). C’est une stratégie d’orienteering. La stratégie globale influence les tactiques de réparation utilisées comme nous le détaillons en fin de section. Tactiques initiales Tactique de téléportation L’expert du corpus VD mène une tactique initiale principalement directive et stéréotypée. Elle consiste à remplir un maximum de champs du formulaire de recherche avancée en collaboration avec l’enquêté. Elle se décompose de la manière suivante : 1. Préciser la requête en utilisant l’accès thématique de CISMeF i.e. préciser un thème général (e.g. « Anatomie », « Biologie », « cardiologie », etc.). 2. Préciser le ou les mots-clés (généralement extrait de la phase de verbalisation). 3. Préciser des qualificatifs associés aux mots-clés (e.g. « épidémiologie » associé au mot-clé « paludisme »). 4. Préciser le type de ressources (e.g. « article de périodique », « bande dessinée »). Cette tactique est une tentative de téléportation aux ressources répondant aux besoins d’information. Le dialogue 4.3 présente un exemple complet d’élaboration d’une première requête entre l’expert et le demandeur. Cette phase est dirigée par l’expert. Les partenaires déterminent96 Chapitre 4 : Corpus Cogni-CISMeF l’accès thématique (énoncés A1 à A5). Puis, ils fixent le mot-clé (énoncés A5 à A7). Enfin, ils précisent des qualificatifs (énoncés A7 à A17) et un type de ressources (énoncés A17 à A19). Tactique d’orienteering Contrairement au corpus VD, la tactique initiale de l’expert du corpus AL ne semble pas clairement figée. On observe néanmoins un certain nombre de caractéristiques. L’expert ne cherche pas à créer une requête précise mais au contraire, une plutôt générale. Dans ce but, il semble avoir une préférence pour préciser dans un premier temps uniquement une spécialité médicale dans laquelle s’insère la recherche. Cette tactique est une mise en œuvre de l’orienteering. Le dialogue 4.4 présente un exemple de spécification d’une requête générale entre l’expert et le demandeur. Tactiques de réparation Une fois la première requête lancée, les interlocuteurs vont évaluer les résultats. Nous avons pu observer dans le corpus les tactiques mises en place par les interlocuteurs pour trouver des ressources adéquates. L’élément central est la phase d’évaluation qui va conduire à choisir entre trois types de tactiques : la précision, la généralisation et la reformulation que nous mettons en relation avec les tactiques initiales de téléportation et d’« orienteering » en fin de section. Tactiques de précision L’idée des tactiques de précision est d’augmenter l’adéquation entre les ressources obtenues et les attentes de l’enquêté. Généralement, la précision d’une requête conduit à obtenir moins de documents. Ces tactiques sont utilisées quand (i) des résultats sont obtenus (quelque soit le nombre), et (ii) les ressources observées sont partiellement satisfaisantes 5 . Ce type de tactiques dépend du critère qui rend les ressources partiellement satisfaisantes. Nous avons observé deux critères qui motivent les réparations de la requête. Le premier critère dépend de la spécificité des résultats par rapport à ce qu’attend le demandeur. Ce point est clairement connecté à son profil. Les résultats peuvent être trop spécialisés (i.e., les ressources abordent des notions trop spécifiques). Au contraire, les résultats peuvent être insuffisamment précis (i.e., les ressources abordent des notions trop générales). Le second critère dépend des thèmes de la recherche. Si la requête est incomplète (i.e. elle ne recouvre pas tous les thèmes de la recherche) alors les interlocuteurs vont essayer de la préciser. Les tactiques de précisions visent généralement à ajouter un élément à la requête (ajout d’un mot-clé, d’un qualificatif, d’un type de ressources, d’une spécialité médicale, etc.). C’est par exemple le cas de l’entretien AL02 où l’expert propose de préciser avec le type de ressources « patient » : « on va voir on lance la recherche/ ce qu’on obtient/ voilà ah / on a beaucoup plus de documents / cinquante-et-une ressources / donc on a peut-être même trop / [. . . ] on peut lancer sur les documents qui sont spécifiques pour les patients ». Néanmoins, d’autres précisions peuvent exister comme substituer un terme de la requête par un plus précis (e.g., les partenaires substituent « cholestérol » par « cholestérol HDL » lors de l’entretien AL12). Tactiques de généralisation L’idée des tactiques de généralisation est de tenter d’obtenir une requête qui retourne des résultats pour ensuite utiliser des tactiques de précision/reformulation. Ces tactiques sont utilisées quand (i) aucun résultat n’est obtenu, et (ii) la requête est composée (i.e., il est possible de la simplifier en lui soustrayant des éléments). Dans le cas où il 5. Intuitivement, la précision d’une requête si peu de ressources sont obtenues semble inutile. Cependant quelques cas ont été recensés dans notre corpus.4.3. Analyse des entretiens du corpus 97 A1 : donc on va y aller / alors accès thématique on va dire que c’est grosso modo l’ensemble des spécialités médicales [. . . ] est-ce que vous voyez des choses dans lesquelles vous auriez envie de classer votre demande sur la leucémie / je fais défiler donc B2 : le menu déroulant A3 : le menu déroulant [. . . ] si vous ne trouvez rien c’est pas grave on mettra rien / peut-être que B4 : jusque là j’ai pas vu A5 : D’accord / ok je continue à faire dérouler / y’a rien / donc nous ne mettons rien en accès thématique / en mot clé bah écoutez je vous propose de mettre leucémie B6 : leucémie A7 : leucémie / D’ailleurs il me le propose / on va le mettre directement et le qualificatif permet de préciser un tout petit peu ce mot clé / donc par rapport à votre question / de la même façon je vais faire dérouler le menu et vous allez me dire si vous voyez des choses B8 : chimiothérapie A9 : alors chimiothérapie ok / alors vous souhaitez mettre d’autres qualificatifs B10 : oui A11 : D’autres précisions / alors on va aller chercher [. . . ] B12 : diagnostic A13 : diagnostic ok [. . . ] ok je continue à faire dérouler le menu de qualificatifs B14 : effets indésirables A15 : effets indésirables / ok / alors effets indésirables / donc je continue à faire dérouler [. . . ] le menu déroulant B16 : sang A17 : allons-y / sang et de toute façon là je pense que ça va être à peu près tout [. . . ] alors souhaitez-vous qu’on aille regarder dans un type de ressource particulier relatif aux associations / base de données / bibliothèque médicale / etc / ou quelque chose qui soit spécifique pour les patients B18 : ouais A19 : oui / alors je mets type de ressource : patient / bon on va le lancer comme ça [. . . ] Dialogue 4.3 – Exemple de dialogue de construction de requête initiale avec la tactique de télé- portation (VD02). A est l’expert, B est le demandeur.98 Chapitre 4 : Corpus Cogni-CISMeF A1 : [. . . ] alors donc on a plusieurs domaines / alors déjà on va commencer par l’accès thématique / ça nous permet d’avoir accès à différentes branches mé- dicales // donc pour le dos euh : // alors je regarde s’il y a quelque chose qui va convenir sinon on va faire autrement [. . . ] B2 : c’est peut-être un truc osthéo A3 : oui c’est ça / alors donc ostéopathie merci /euh : // non ils ont pas ça dans l’annuaire / B4 : rhumatologue / rhumatologie dans la première / A5 : d’accord / euh : donc on va essayer ça / avec rhumatologie / donc je lance la recherche comme ça Dialogue 4.4 – Exemple de dialogue de construction de requête initiale avec la tactique d’orienteering (AL05). A est l’expert, B est le demandeur. n’est pas possible de généraliser la requête, les interlocuteurs vont soit reformuler un des termes (ou plusieurs), soit abandonner la requête. Les tactiques de généralisation conduisent généralement à supprimer un élément de la requête (mot-clé, qualificatif, etc.) ou à substituer un terme par un plus général. Le dialogue 4.2 (p. 95) présente un exemple de tactique de généralisation. Tactiques de reformulation Les tactiques de reformulation interviennent lorsque les ressources obtenues sont directement rejetées par les interlocuteurs. Il s’agit du cas où les ressources sont clairement non satisfaisantes. Le constat d’inadéquation entre la requête et ce qui est attendu par le demandeur est généralement explicité (e.g., « les pistes qu’on a prises ne fonctionnent pas donc on va essayer de partir sur autre chose » (VD08), cf. dialogue 4.1). En outre, les tactiques de reformulation sont choisies dès le moment où les partenaires n’ont pas la possibilité d’appliquer les tactiques de généralisation et de précision. La reformulation de la requête peut reposer sur des termes précédemment énoncés durant la discussion et qui n’ont pas encore servi à construire une requête. Les tactiques de reformulation conduisent généralement à altérer ou substituer un élément de la requête (e.g., par l’utilisation de synonyme) ou à utiliser une nouvelle combinaison de termes précédemment évoqués. Le dialogue 4.1 (p. 94) présente un exemple de tactique de reformulation. Synthèse de l’usage des tactiques La figure 4.4 représente l’enchaînement idéalisé des tactiques en fonction des résultats de la requête (nombre de résultats et satisfaction). Les phases du dialogue sont représentées sur la figure par des rectangles, les décisions par des losanges et les tactiques par des ellipses. Le premier critère sur lequel se base le choix de la tactique est le nombre de résultats obtenus après le lancement de la requête. Si le nombre de résultat est nul, la tactique à choisir dépend de la requête. Si elle est généralisable, la tactique choisie est la généralisation sinon la reformulation. Si le nombre de résultats est strictement positif, le choix de tactique dépend de l’adéquation des résultats avec les attentes de l’enquêté. Si les résultats sont satisfaisants, le dialogue de recherche passe à la phase de clôture. Cela signifie que la recherche est un succès et que les interlocuteurs soit interrompent leur collaboration, soit passent à une nouvelle séquence. Si les résultats récoltés jusqu’alors sont partiellement satisfaisants, la tactique choisie sera la précision. Sinon, si les résultats ne sont pas satisfaisants (i.e. hors sujet), la tactique choisie est la reformulation.4.3. Analyse des entretiens du corpus 99 Ce schéma présente une tendance dans le choix des tactiques qui n’est pas toujours respectée. Marginalement, nous avons observé des modifications de requête issues de l’inspiration du moment d’un des collaborateurs. Par exemple, deux entretiens de notre corpus (AL01 et VD06) font apparaître des modifications de requête combinant une tactique de généralisation et l’ajout spontané d’un terme (motivé par « on va essayer contre-indications [. . . ] à tout hasard » dans AL01, et la volonté du demandeur dans VD06). Réparation Évaluation Première requête Lancement de la requête Résultat ? Clôture Préciser Reformuler Généraliser Généralisable ? Non Oui 0 résultat Satisfaction ? Résultat Satisfaisant Partiellement satisfaisant Non satisfaisant Figure 4.4: Enchaînement idéalisé des tactiques de réparation en fonction des résultats de la requête. Les phases du dialogue sont représentées par des rectangles, les décisions par des losanges et les tactiques par des ellipses. Le tableau 4.3 présente la répartition des tactiques dans le corpus. Globalement, nous constatons que les trois types sont répartis uniformément (approx. 30 instances de tactiques recensées pour chaque type). Dans le détail, nous observons qu’une grande majorité des tactiques de réparation utilisées dans la stratégie globale de téléportation sont des généralisations (53% du total, expert VD). Ceci s’explique par le fait que les requêtes trop précises retournent rarement des résultats dans CISMeF. Au contraire, la stratégie globale d’orienteering ne conduit qu’à très peu de tactiques de généralisation (8% du total, expert AL). Elle implique principalement des tactiques de précisions (48%) et de reformulation (44%). Ceci s’explique par le fait que la stratégie d’orienteering consiste à adapter la requête en fonction des résultats obtenus. En synthèse, la stratégie globale influence les tactiques de réparation utilisées dans le processus de recherche. La téléportation conduit à l’utilisation de tactiques de généralisation tandis que l’orienteering conduit à préciser ou reformuler la requête. 4.3.4 Rôles des participants Dans cette section, nous nous intéressons aux rôles des participants dans la situation de RI collaborative. Dans un premier temps, nous présentons brièvement l’initiative mixte dans un100 Chapitre 4 : Corpus Cogni-CISMeF Tactiques VD AL Total Précisions 11 (23,4%) 23 (47,9%) 34 (35,8%) Généralisation 25 (53,2%) 4 (8,3%) 29 (30,5%) Reformulation 11 (23,4%) 21 (43,8%) 32 (33,7%) 47 48 95 Tableau 4.3: Répartition des tactiques de réparation dans le corpus contexte de résolution collaborative de problème. Puis nous abordons le type d’interaction majoritairement observé dans le corpus. Enfin, nous présentons quelques éléments clés des processus mis en jeu par l’expert dans ce corpus. Initiative mixte dans un contexte de résolution collaborative de problème En interaction Homme-Machine, on différencie généralement trois grands types d’interaction du point de vue du système [Allen 1999]. Le système peut être réactif. Il s’agit de systèmes qui se contentent de réagir aux ordres de l’utilisateur. L’initiative est conservée par l’humain. Typiquement, l’application se présente sous la forme d’une interface graphique qui va être manipulée par un utilisateur (e.g., un éditeur de texte, navigateur web, etc.). À l’autre extrême, on observe les systèmes directifs. Il s’agit de systèmes qui contrôlent rigidement le flot de l’interaction. C’est alors l’utilisateur qui réagit aux sollicitations du système. Les meilleurs exemples sont les centres d’appel où l’utilisateur doit appuyer sur des touches pour naviguer dans le menu. Entre les deux se situe l’initiative mixte dans un contexte de résolution de problème entre un humain et des agents qui a émergé de différents travaux [Horvitz 1999b, Allen 1999, Horvitz 2007, Tecuci 2007]. L’initiative mixte suppose un entrelacement naturel et efficient des contributions des utilisateurs et des agents déterminé par leurs connaissances relatives, leurs compétences, et par le contexte de résolution du problème plutôt que par des rôles fixés. Ceci permet à chaque participant de contribuer à ce qu’il fait le mieux au moment approprié. L’idée de l’interaction d’initiative mixte est résumée dans [Allen 1999] (p. 14) : « L’interaction d’initiative mixte laisse les agents travailler de manière plus efficiente en équipe – c’est la clé. Le secret est de laisser les agents qui connaissent sur le moment la meilleure façon de procéder coordonner les autres agents. ». L’initiative mixte se manifeste généralement dans les systèmes de dialogue capables d’avoir à la fois l’initiative (« Quel type de document souhaitez-vous ? ») et de permettre à l’utilisateur de prendre l’initiative (« En fait, je voudrais modifier le mot-clé dans la requête. »). Néanmoins, l’interaction d’initiative mixte va au-delà en incluant plus largement la résolution de problème collaborative. L’initiative mixte dans ce contexte est illustrée par un entrelacement de contributions de ses différents participants. Rôles de l’expert et du demandeur Le rôle des interlocuteurs dans la situation de collaboration de notre expérimentation peut se caractériser par les degrés de familiarité avec l’outil CISMeF et le domaine de la médecine [Golovchinsky 2008]. Dans notre expérimentation, l’expert possède l’expertise de l’outil et est novice du domaine tandis que l’utilisateur est novice de l’outil et novice du domaine. Nous avons constaté que ces rôles d’expert et de demandeur donnent des responsabilités différentes. Le demandeur est à l’origine du besoin d’information d’ordre médical qui motive la RI.4.3. Analyse des entretiens du corpus 101 En outre, il est capable de juger de l’intérêt des ressources retournées par le moteur de recherche. L’expert possède les connaissances et les compétences lui permettant d’utiliser efficacement le moteur de recherche CISMeF et de répondre à des questions à propos de CISMeF (e.g., terminologie, fonctionnement, types de ressources indexées, etc.). Il possède un ensemble de stratégies et de tactiques afin de mener la recherche et de récolter des ressources satisfaisantes pour le demandeur. En outre, il a la responsabilité de mener la RI en collaboration avec le demandeur. Il l’aide à construire sa première requête. Il lui présente un ensemble de ressources résultant de l’exécution de la requête. Il évalue, en collaboration avec le demandeur, l’adéquation entre les ressources et le besoin d’information. Enfin, les partenaires modifient conjointement la requête afin de récolter des ressources satisfaisant le besoin d’information du demandeur. La situation place l’expert en initiateur puisqu’il est chargé de mener la recherche en guidant le demandeur. En outre, c’est lui qui manipule le moteur de recherche. Néanmoins, les différentes phases de la tâche donnent l’initiative à l’un ou l’autre des participants en fonction de leurs capacités. Les phases de verbalisation et de construction de la première requête sont principalement menées par l’expert (cf. dialogue 4.3, p. 97). La phase d’évaluation donne l’initiative au demandeur qui sait le type d’information qu’il souhaite obtenir. La phase de réparation de la requête est clairement d’initiative mixte (cf. dialogue 4.2, p. 95). En outre, certains dialogues présentent des prises d’initiative spontanées du demandeur dans les phases normalement dirigées par l’expert (cf. dialogue 4.4, p. 98). Par exemple, bien que présentant une procédure systématique pour la conception d’une première requête, l’expert VD accepte les prises d’initiative des demandeurs qui souhaitent lancer la requête avec un unique mot-clé. En somme, l’interaction observée est radicalement d’initiative mixte. Capacités de l’expert mises en jeu En sus des capacités dialogiques et interactives dont l’expert doit faire preuve, nous notons la présence de capacités spécifiques à la tâche de RI. Dans cette partie, nous synthétisons certaines capacités de l’expert pour proposer des termes complétant la requête. Nous nous intéressons aux critères qui entrent en jeu dans l’évaluation des ressources. Enfin, nous soulignons son expertise vis-à-vis du moteur CISMeF ainsi que sa coopérativité envers les buts proposés par le demandeur. Proposition de termes Nous avons noté un certain nombre de sources utilisées par l’expert pour proposer des termes au demandeur. La première source est les termes extraits de la verbalisation du besoin d’information. L’expert est capable de proposer des termes en utilisant la terminologie CISMeF. Par exemple, il est capable de proposer « donneur de tissus » à partir du terme « don » dans l’entretien VD01. L’expert extrait des termes des notices des ressources retournées par une requête. Ces termes sont ceux qui indexent la ressource. L’extraction est souvent explicite, comme par exemple : « on parle apparemment des ’troubles anxieux’ » (AL02). Elle intervient dans les phases d’évaluation et de réparation de la requête. L’expert est capable de proposer l’ajout de termes à la requête en se basant sur le profil de l’enquêté. Dans notre corpus, il s’agit principalement pour l’expert de proposer l’ajout du type de ressources « patient ». L’expert re-propose des termes évoqués pendant l’interaction comme des termes de la verbalisation ou des expressions soulevées lors de l’analyse des ressources dans la phase d’évaluation.102 Chapitre 4 : Corpus Cogni-CISMeF Enfin, l’expert utilise ses connaissances sur le domaine pour proposer spontanément des termes au demandeur. C’est notamment le cas dans l’entretien VD09 où l’enquêté recherche des documents sur la prévention du glaucome. L’expert propose alors spontanément d’ajouter la spécialité médicale « ophtalmologie » compte-tenu du fait qu’il sait que le glaucome est une maladie dégénérative du nerf optique. Évaluation des ressources L’expert est capable d’évaluer les ressources dans certains cas. Les critères « simples » se basent sur (i) le nombre de ressources retournées par la requête (trop ou pas assez de documents), et (ii) sur le fait que les résultats obtenus ont déjà été présentés au demandeur. D’autres critères impliquant un raisonnement plus avancé de l’expert peuvent intervenir. Il peut ainsi déterminer que les résultats sont manifestement hors sujet. Dans l’entretien VD04, l’expert est capable de juger les résultats retournés comme inadéquats car ils abordent des maladies rares et non un problème de calvitie. Ensuite, l’expert se base sur le fait que les ressources ne recouvrent qu’un sous-ensemble des thèmes de la recherche (e.g., les ressources parlent de « sport » mais pas des « inconvénients du sport »). L’expert peut également évaluer que les résultats sont en inadéquation avec le profil de l’enquêté (e.g., les documents sont pour des spécialistes). Les autres critères impliquent des raisonnements plus poussés sur les attentes de l’enquêté. Il est cependant intéressant de remarquer des cas particuliers spécifiques au moteur de recherche CISMeF. Par exemple, l’expert est capable de juger un document comme étant trop général dans l’entretien AL05 car il est indexé par un grand nombre de mots-clés de domaines différents. Expertise vis-à-vis de CISMeF L’expertise de l’expert se manifeste proactivement et ré- activement. L’expert propose proactivement des explications sur les éléments de la terminologie à chaque fois qu’il en introduit un. Il définit par exemple ce qu’est un accès thématique (e.g., « alors accès thématique on va dire que c’est grosso modo l’ensemble des spécialités médicales » (VD02)), un qualificatif (e.g., « le qualificatif permet de préciser un tout petit peu ce mot-clé » (VD02)) ou le fonctionnement de CISMeF (e.g., « bon on va lancer comme ça [. . . ] il va aller chercher donc sur internet l’ensemble des sites que cismef a répertorié » (VD02)). En outre, l’expert apporte son expertise sur la requête et la terminologie qui font la spécificité de CISMeF. Ses compétences et connaissances spécifiques à CISMeF lui permettent de mettre à portée du demandeur des fonctionnalités qu’il ne connaît pas (e.g., « on va essayer au lieu de mettre en mot-clé, mettre en plein texte genou / pour voir les articles de la médecine du sport où intervient le mot genou » (AL06)). Enfin, l’expert est disponible pour répondre aux demandes opportunistes du demandeur sur CISMeF. C’est le cas dans l’entretien AL10 où le demandeur interroge l’expert après la première requête : « donc document c’est / c’est des documents qui / c’est quel type de document parce que je ne sais pas où se fait la recherche en fait / ». Il s’ensuit un sous-dialogue de 9 tours de parole entre les interlocuteurs pour répondre aux questions sur CISMeF. Adoption de but Enfin, l’expert n’hésite pas à adopter les buts du demandeur en laissant de côté le but conjoint courant. Par exemple, le demandeur de l’entretien VD03 indique à l’expert qu’il cherche un terme dont une définition est « l’idée qu’un médicament perde son efficacité quand on l’utilise ». L’expert adopte alors le but du demandeur et lui propose de regarder la liste des mots-clés CISMeF pour essayer de trouver un terme correspondant à la définition.4.4. Synthèse 103 4.4 Synthèse Dans ce chapitre, nous avons présenté les étapes de collecte et de transcription du corpus Cogni-CISMeF. Ce dernier est au cœur de l’extraction de motifs d’interaction dialogique que nous souhaitons modéliser dans cette thèse. Nous avons donné une description des dialogues du corpus. Nous avons caractérisé leur tâche sous-jacente qui consiste en la réalisation collaborative d’une recherche d’information sur CISMeF entre un expert et un utilisateur. Cette caractérisation s’est appuyée sur l’étude du processus de RI dans le cas individuel. Nous avons vu que la tâche de RI collaborative met en jeu un processus itératif, opportuniste, stratégique et interactif entre les participants. La structure globale des dialogues dans une situation de collaboration entre un expert CISMeF et un demandeur suit des étapes similaires à celles d’un processus de RI individuel : identification du besoin d’information, spécification de la requête, évaluation des résultats puis réitération du processus entier. Chaque phase implique une interaction entre les participants. La phase de verbalisation permet de rendre la collaboration sur la RI explicite. La RI est menée stratégiquement par les partenaires. La stratégie globale est caractérisée par la tactique initiale (orienteering ou téléportation). La phase d’évaluation conduit à la reconsidération du besoin d’information sur la base des résultats observés. La requête est modifiée par l’élaboration conjointe d’une tactique de réparation. En outre, les participants possèdent un rôle définissant leurs compétences complémentaires vis-à-vis de la collaboration. Ces résultats complètent le travail de [Loisel 2008] qui s’était focalisé sur l’étude des questions/réponses apparaissant dans le corpus. Nous avons souligné un certain nombre d’indices tout au long de notre étude de la tâche qui pourront être utilisés dans l’objectif plus global de conception d’un agent assistant d’initiative mixte pour la RI dans CISMeF. Nous laissons en suspens la question de l’élaboration d’un tel agent. Le reste de notre travail de thèse se concentre plus généralement sur les capacités dialogiques des agents interactifs. Nous soulignons néanmoins que la conception d’un agent assistant pour la RI s’inscrit dans la problématique plus large de la collaboration sur une tâche de RI. Un des objectifs qui en découle est la réalisation de systèmes qui vont collaborer explicitement avec l’utilisateur. À l’opposé des systèmes en boîte noire comme le célèbre Google, l’idée est de permettre à l’utilisateur de diriger sa recherche [Bates 1990]. Il est alors nécessaire de casser la supposition selon laquelle le système et ses concepteurs savent mieux que l’utilisateur. Il s’agit de rendre le contrôle à l’utilisateur en lui cachant le moins de détails (e.g., rendre explicite la façon dont l’information est recherchée par le système, quels documents ont été rejetés et pourquoi, etc.) tout en lui fournissant une assistance automatique améliorant la réalisation de sa tâche.Chapitre 5 Annotation du corpus et extraction de motifs Sommaire 5.1 Processus d’annotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 5.1.1 Segmentation du dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 5.1.2 Configuration du processus d’annotation . . . . . . . . . . . . . . . . . . . . . 108 5.1.3 Résultats du processus d’annotation . . . . . . . . . . . . . . . . . . . . . . . 112 5.1.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 5.2 Processus d’extraction de motifs dialogiques . . . . . . . . . . . . . . . . . . . 126 5.2.1 Configuration du processus d’extraction . . . . . . . . . . . . . . . . . . . . . 127 5.2.2 Résultats du processus d’extraction . . . . . . . . . . . . . . . . . . . . . . . . 128 5.2.3 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 5.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 Dans ce chapitre, nous illustrons les phases d’annotation du corpus et d’extraction de ré- gularités de notre méthodologie en les appliquant au corpus Cogni-CISMeF (cf. figure 5.1). La section 5.1 présente l’étape d’annotation du corpus. Cette étape réalise l’enrichissement du Collecte et numérisation signaux bruts Transcription et codage dialogues bruts dialogues annotés Extraction de régularités modèle Annotation Figure 5.1: Annotation du corpus Cogni-CISMeF et extraction de régularités. Le fond coloré indique les étapes traitées dans ce chapitre. corpus en s’appuyant sur le schéma d’annotation DIT++. Elle consiste en la segmentation du corpus en unités et à leur annotation avec des fonctions communicatives. À l’issue de ce processus, une représentation multidimensionnelle de chaque unité d’interaction est obtenue. Cette représentation est exploitée afin d’extraire des motifs dialogiques, c’est-à-dire des séquences d’unité d’interaction récurrentes. Le processus d’extraction de motifs dialogiques est développé en section 5.2. Enfin, nous concluons ce chapitre en commentant les évolutions envisageables de notre méthodologie (cf. section 5.3).106 Chapitre 5 : Annotation du corpus et extraction de motifs 5.1 Processus d’annotation Cette section présente la tâche d’annotation du corpus Cogni-CISMeF. Nous nous intéressons dans un premier temps à la définition de l’unité de sens dans le dialogue humain désignée par le terme « énoncé » (section 5.1.1). Ensuite, nous abordons la mise en place du processus d’annotation (section 5.1.2). Après avoir abordé le schéma d’annotation et les moyens utilisés pour réaliser cette tâche, nous présentons une analyse des résultats obtenus (section 5.1.3). Enfin, nous synthétisons l’essentiel des conclusions de ce processus d’annotation (section 5.1.4). 5.1.1 Segmentation du dialogue L’étude du dialogue sous l’angle de la réalisation d’actions communicatives présuppose un moyen de déterminer les portions de comportement communicatif réalisant ces actions. Intuitivement, l’énoncé est vu comme l’unité réalisant au moins une action communicative (voire plus pour un énoncé multifonctionnel, cf. section 1.1.2). L’identification de ces unités est appelée la segmentation du dialogue. Cette opération est loin d’être triviale dès lors que l’on considère la multidimensionnalité et la multifonctionnalité du dialogue [Larsson 1998,Bunt 2011b]. Dans cette section, nous nous intéressons à la définition de cette unité de sens dans le dialogue. Bunt apporte un éclairage enrichissant sur cette question [Bunt 2011b] en s’appuyant sur les apports d’Allwood [Allwood 1992]. Il distingue plusieurs formes de multifonctionnalité : sé- quentielle, discontinue, chevauchante, entrelacée et simultanée. Les quatre premiers types sont illustrés dans le tableau 5.1 et concernent des cas de multifonctionnalité liés à la segmentation du dialogue. La multifonctionnalité séquentielle consiste en un tour de parole composé d’une séquence de parties distinctes ayant chacune une fonction communicative différente. L’exemple du tableau 5.1 peut être analysé comme la succession suivante : feedback (« Donc ce que c’est exactement les symptômes »), feedback (« OK »), suggestion (« Donc on y va aller »), affirmation (« Alors accès thématique on va dire que c’est grosso modo l’ensemble des spécialités médicales ») et question (« Est-ce que vous voyez des choses »). Il s’agit du cas le plus simple où le tour peut être décomposé en une succession d’unités réalisant chacune un acte différent. La multifonctionnalité discontinue consiste en un énoncé interrompu par l’occurrence d’un autre. L’énoncé « on va voir [. . . ] ce qu’on obtient » est un énoncé discontinu par l’intervention de l’unité « on lance la recherche ». Le type « chevauchant » consiste en une partie d’un énoncé qui a une fonction communicative propre différente de l’énoncé complet. C’est le cas du feedback positif « on peut mettre de côté un des documents » dans la réponse complète « mais bien sûr on peut mettre de côté un des documents ». Enfin, il est possible que deux énoncés soient entrelacés. La segmentation des unités de sens dans le dialogue a une influence sur l’attribution de leurs fonctions communicatives. Ces unités doivent être définies de manière à prendre en compte les formes de multifonctionnalité liées à la segmentation du dialogue. Contrairement aux formes que nous venons d’aborder, la multifonctionnalité simultanée n’est pas connectée à la segmentation. Elle réfère au fait qu’un énoncé réalise simultanément plusieurs fonctions. Dans l’exemple « – Quelle est la capitale de France ? – Paris », la réponse « Paris » est simultanément une réponse et un feedback fort de compréhension. Cette simultanéité peut s’expliquer de deux façons [Bunt 2011b] : (i) soit parce que l’énoncé contient des indicateurs de surface démontrant la réalisation de fonctions dans des dimensions différentes (appelée multifonctionnalité indépendante), (ii) soit parce que l’énoncé réalise une fonction en impliquant d’autres (comme dans l’exemple précédent).5.1. Processus d’annotation 107 Type Exemple Séquentielle « Donc ce que c’est exactement les symptômes / OK / Donc on y va aller / Alors accès thématique on va dire que c’est grosso modo l’ensemble des spécialités médicales / Est-ce que vous voyez des choses » (VD02) Discontinue « on va voir on lance la recherche/ ce qu’on obtient » (AL02) Chevauchante S1 : on peut mettre de côté un des documents là ? H2 : mais bien sûr on peut mettre de côté un des documents (VD06) Entrelacée « Trente euros pour une clé USB . . . est-ce que Paul n’en aurait pas une à te prêter. . . c’est un peu cher ! . . . ou peut-être Coralie ? » Tableau 5.1: Segmentation et multifonctionnalité Nous pouvons nous interroger sur le sens à accorder au terme « énoncé ». En effet, la manière de segmenter a un impact direct sur la multifonctionnalité des unités choisies. Intuitivement, il semble nécessaire d’adopter une définition permettant d’éliminer les formes de multifonctionnalité séquentielle, discontinue, chevauchante et entrelacée. Pourtant, l’état de l’art foisonne de définitions très différentes. L’unité parfois employée en tant qu’énoncé est le tour de parole. Un tour de parole est « une unité dans le dialogue oral qui correspond à une portion de l’élocution d’un locuteur, délimitée par une absence d’activité ou par l’activité d’un autre interlocuteur » [Allwood 1992]. Cette définition d’énoncé offre une unité d’étude grossière et ignore de fait les formes de multifonctionnalité précédemment présentée. Il est courant de segmenter un tour de parole en unité plus fine étant soit une forme nominale, soit une unité grammaticale bien formée pouvant être vue comme la réalisation linguistique d’un acte de langage (voir, e.g., la notion de « c-unit » [Weisser 2003]). Ces unités sont alors prises pour énoncé. Cette dernière définition permet d’envisager la multifonctionnalité séquentielle mais échoue à considérer les trois autres formes. Alternativement, Bunt propose de voir l’énoncé sous l’angle du segment fonctionnel défini comme étant « . . . une portion minimale de comportement communicatif qui a une fonction communicative. De telles portions n’ont pas besoin d’être grammaticalement correctes ou contiguës et peuvent avoir plus d’une fonction communicative. » [Bunt 2011b] (cf. section 1.2.2). Le dialogue 5.1 présente un exemple de segment fonctionnel sur plusieurs tours (tours 1, 3, 5) clôturé par une complétion du partenaire (tour 6), et coupé par des interventions du partenaire (tours 2 et 4). Chacun des autres tours forme également son propre segment fonctionnel (tours 2, 4, 6, 7). Ce dialogue est présenté annoté avec les fonctions communicatives de DIT++ en annexe A.3.1. Le segment fonctionnel est une unité d’analyse intéressante pour le dialogue. Il permet d’éliminer de par sa définition les formes de multifonctionnalité séquentielle, discontinue, chevauchante et entrelacée. Seule persiste la multifonctionnalité simultanée. Cette dernière est en partie gérée par le fait qu’un segment fonctionnel dans DIT++ peut être annoté par une fonction communicative par dimension (cf. section 1.2.2). Notons qu’un segment fonctionnel peut être très court (« euh : ») ou très long, et s’étaler sur plusieurs tours de parole. C’est l’unité d’analyse que nous adoptons pour notre tâche d’annotation.108 Chapitre 5 : Annotation du corpus et extraction de motifs Expert1 : [. . . ]donc on a dit qu’on mettait Enquêté2 : attention Expert3 : néphrite Enquêté4 : ouais Expert5 : et qu’on gardait Enquêté6 : membres inférieurs Expert7 : D’accord [. . . ] Dialogue 5.1 – Exemple de segment sur plusieurs tours de parole (entretien VD08). 5.1.2 Configuration du processus d’annotation Dans cette section, nous présentons les paramètres d’annotation du corpus Cogni-CISMeF. Dans un premier temps, nous décrivons le schéma d’annotation choisi et nous fournissons les dé- tails sur les moyens (humains et autres) mis en œuvre pour l’annotation. Enfin, nous décrivons la stratégie d’annotation choisie. Pour finir, nous soulignons les limites du processus d’annotation. Schéma d’annotation Nous avons choisi le cadre DIT++ qui fournit un schéma d’annotation multidimensionnel associé à une taxonomie de fonctions communicatives (cf. section 1.2.2). Le framework DIT++ est attractif pour la conception du comportement communicatif d’un agent interactif pour plusieurs raisons [Bunt 2009]. Il propose une taxonomie de fonctions indépendante de l’application pour l’analyse du dialogue Homme-Homme et pour la conception de système de dialogue (et plus particulièrement du gestionnaire de dialogue). Tout d’abord, DIT++ propose une taxonomie riche de fonctions communicatives. Sa force est de clarifier la portée des fonctions communicatives en les regroupant dans les aspects du dialogue auxquels elles prennent part (i.e., les dimensions). L’existence et la pertinence des dix dimensions proposées ont été validées empiriquement [Petukhova 2009a,Petukhova 2009b]. Ensuite, une approche multidimensionnelle de l’annotation du dialogue permet une analyse plus précise de la communication Homme-Homme. Malgré sa richesse, une telle approche facilite l’annotation [Petukhova 2007, Bunt 2009]. Ceci est permis grâce à la distinction de dimensions chacune relative à un aspect de la communication bien défini. Le travail de l’annotateur peut alors se décomposer en deux étapes. Premièrement, il s’agit de considérer les aspects de la communication abordés par l’unité de comportement communicatif. Cela consiste à choisir la ou les dimensions traitées par le segment. Ensuite, l’annotateur détermine à un grain plus fin la ou les fonctions communicatives réalisées. En outre, le choix de la fonction est simplifiée par la structure taxonomique de DIT++ qui met en avant des fonctions incompatibles ou spécialisées (cf. section 1.2.2). La taxonomie permet d’éviter à l’annotateur la considération de fonctions non pertinentes. De plus, les dimensions telles que définies dans DIT++ permettent au schéma d’être utilisé partiellement. L’annotation ou l’analyse d’un corpus de dialogues peut n’utiliser qu’un sous-ensemble des dimensions proposées. Enfin, DIT++ est accompagné d’une documentation précise en ligne [Bunt 2010] 1 comprenant (i) l’ensemble de la taxonomie de fonctions communicatives associées à des descriptions détaillées, (ii) un guide complet de conseils pour les tâches d’annotation, et (iii) des exemples de dialogues Homme-Homme et Homme-Machine 1. Disponible à l’URL http://dit.uvt.nl/5.1. Processus d’annotation 109 annotés. Au-delà de l’étude de corpus, DIT++ semble attrayant pour la réalisation effective d’un agent interactif. Tout d’abord, l’utilisation de techniques d’apprentissage pour la reconnaissance automatique des fonctions communicatives de DIT++ semble encourageante [Geertzen 2007,Geertzen 2009a, Bunt 2009]. Tout comme l’annotation humaine, elle peut bénéficier des avantages fournis par la décomposition en dimensions et la structure taxonomique des fonctions communicatives. Ensuite, DIT++ est très prometteur pour les agents interactifs tels que les agents conversationnels animés par son extensibilité [Petukhova 2007] et son support de la multifonctionnalité. En effet, il est possible d’étendre DIT++ par l’ajout de nouvelles dimensions proprement définies pour inclure d’autres aspects tels que les émotions [Ekman 1999]. DIT++ peut aussi être utile pour l’interprétation de comportements communicatifs non verbaux (e.g., mouvements de la tête, expressions faciales) [Bunt 2009]. Une étude réalisée dans le projet AMI 2 a montré que l’ensemble des fonctions communicatives réalisées par un comportement non verbal a pu être adéquatement décrit par les fonctions de DIT++ [Bunt 2009]. Pour finir, l’utilisation du schéma DIT++ dans un système de dialogue permet d’envisager la génération d’énoncés multifonctionnels [Keizer 2006] qui peuvent être réalisés de manière multimodale par un ACA (via la combinaison d’expressions faciales et de langage parlé). Dans son travail sur le corpus Cogni-CISMeF, Loisel avait dressé une taxonomie d’actes de langage lors de son analyse [Loisel 2008] en partant de celle de [Weisser 2003]. Notons que cette taxonomie est incluse dans DIT++. L’annexe A.2 présente l’alignement entre les fonctions de la taxonomie de Loisel et DIT++. Moyens et corpus Quatre annotateurs ont réalisé cette tâche d’annotation, notés A, G, J et N. Les annotateurs ont déjà réalisé une telle tâche d’annotation mais ne sont pas experts du schéma DIT++. J’ai donc mis en place une formation à la taxonomie. Cette formation a présenté de manière détaillée les concepts et la taxonomie de DIT++, des exemples de dialogue Homme-Homme annotés et la stratégie d’annotation (présentée dans la suite du document). Les annotateurs étaient ensuite invités à réaliser une série d’exercices d’annotations basés sur les exemples fournis dans la documentation de DIT++ [Bunt 2010]. Ces exercices leur ont permis de confronter leurs annotations à celles de référence. Pour cette tâche, les annotateurs avaient à leur disposition les ressources suivantes : (i) la description générale des concepts de DIT++ [Bunt 2009], (ii) la documentation du schéma incluant la description de l’ensemble des dimensions et des fonctions [Bunt 2010], (iii) les hiérarchies de fonctions (cf. figures 1.1 et 1.2), (iv) des exemples de dialogues annotés 3 , et (v) le guide d’annotation 4 . Nous avons retiré de l’analyse deux entretiens : AL01 et VD01. Pour une raison inconnue, l’entretien AL01 ne comporte qu’un tour de parole de la part du demandeur et ne présente donc pas d’intérêt pour l’étude du comportement communicatif. L’entretien VD01 fait apparaître un expert rencontrant des difficultés pour mener de front la recherche avec le demandeur et la manipulation de l’interface. Cet entretien a permis à l’expert de s’approprier l’environnement d’expérimentation. En tout, un total de 18 entretiens a été considéré dans le processus 2. AMI=Augmented Multi-party Interaction (http://www.amiproject.org) 3. Disponibles aux URL : http://dit.uvt.nl/is-examples.html et http://dit.uvt.nl/ annotated-examples.html 4. Disponible à l’URL : http://dit.uvt.nl/AnnoGuide.html110 Chapitre 5 : Annotation du corpus et extraction de motifs d’annotation. Le corpus AL contient 10 entretiens tandis que le corpus VD en possède 8. Le tableau 5.2 présente la répartition des entretiens entre les annotateurs. Chaque dialogue a été annoté par deux personnes. L’annotateur G (moi-même) a annoté l’ensemble du corpus tandis que les trois autres ont chacun annoté un tiers du corpus. AL02 AL03 AL04 AL05 AL06 AL07 AL09 AL10 AL11 AL12 Annot. 01 G G G G G G G G G G Annot. 02 N J N J A N A J A N VD02 VD03 VD04 VD05 VD06 VD07 VD08 VD09 Annot. 01 G G G G G G G G Annot. 02 N N J J A J A A Tableau 5.2: Répartition des dialogues par annotateur dans le processus d’annotation. A, G, N et J sont les identifiants des annotateurs. L’annotation a été réalisée au moyen de l’outil d’annotation Gate [Cunningham 2011] (« General Architecture for Text Engineering » 5 ) en version 6.1. Nous y avons créé un schéma d’annotation qui permet de standardiser les annotations manuelles réalisées dans les dialogues. Ce schéma d’annotation sous forme XML est disponible dans le listing A.1 en annexe A.1. Il définit le type d’annotation « acte de dialogue » comme étant constitué de trois features : (i) le locuteur qui peut prendre la valeur « Expert » ou « Enquêté », (ii) la dimension qui peut prendre comme valeur l’une des dimensions de DIT++, et (iii) la fonction communicative qui peut prendre comme valeur une des fonctions communicatives de DIT++. L’annotation d’un segment fonctionnel consiste en l’annotation de plusieurs « actes de dialogue » sur la même zone de texte (en respectant la contrainte d’au plus une fonction communicative par dimension). Stratégie d’annotation Le processus d’annotation est constitué de deux parties : (i) la segmentation des tours de parole en segments fonctionnels (cf. section 5.1.1), et (ii) l’étiquetage de segments fonctionnels avec zéro ou une fonction communicative par dimension. Comme nous l’avons vu en section 5.1.1, un segment fonctionnel peut avoir simultanément plusieurs fonctions soit parce que l’énoncé contient des indicateurs de surface démontrant la réalisation de fonctions dans des dimensions différentes, soit parce que l’énoncé réalise une fonction en impliquant d’autres. Nous avons choisi la stratégie d’annotation « strictement basée sur des indicateurs » [Bunt 2011b]. Il a été demandé aux annotateurs de marquer les fonctions communicatives directement reconnaissables depuis les caractéristiques linguistiques du segment fonctionnel, tout en tenant compte du passé du dialogue. Les indicateurs explicites fournissent une base claire sur laquelle justifier l’attribution d’une fonction communicative. Il est en revanche plus difficile de spécifier sur quelle base une fonction en implique une autre (voir à ce sujet [Bunt 2011b]). En outre, il a été conseillé aux annotateurs d’annoter les segments en se mettant à la place de l’allocutaire essayant de comprendre ce que le locuteur veut dire. L’idée est d’inférer le contexte dialogique dans lequel est l’allocutaire afin d’interpréter le comportement communicatif du locuteur. Dans l’esprit des approches contextuelles, il a été demandé aux annotateurs de se méfier de la forme linguistique de l’énoncé. L’annotation ne doit pas porter sur ce que le locuteur dit mais 5. Site web de Gate : http://gate.ac.uk/5.1. Processus d’annotation 111 sur ce qu’il veut dire. Ainsi, un énoncé comme « On y va ? » est très certainement une suggestion plutôt qu’une question. Enfin, il a été demandé aux annotateurs d’assigner des fonctions communicatives aussi précises que possible pourvu qu’ils aient des preuves (contexte, linguistique, etc.) pour justifier le choix d’une fonction plus spécifique. Par exemple, une CheckQuestion est plus spécifique qu’une PropositionalQuestion (oui/non) dans le sens où elle attend une réponse positive. Dans le doute, les annotateurs ont été invités à sélectionner la fonction parente de la fonction spécifique. Enfin, il a été demandé aux annotateurs de n’annoter que les segments pour lesquels ils avaient assez d’indices pour déterminer une fonction communicative, ainsi que les parties du dialogue relatives à la tâche de recherche d’information collaborative sur CISMeF. Limites du processus d’annotation Notre annotation admet des limites. Tout d’abord, nous prenons la liberté d’amoindrir la clause de minimalité dans la définition de segment fonctionnel en accord avec le guide d’annotation [Bunt 2010]. Ensuite, nous faisons abstraction de tout comportement non-verbal dans le corpus Cogni-CISMeF. Enfin, ce processus se limite à l’annotation de fonctions communicatives et délaisse les aspects sémantiques. Segmentation Les segments fonctionnels que nous avons générés depuis les annotations ne respectent pas strictement la contrainte de minimalité afin de simplifier la segmentation du dialogue, en accord avec le guide d’annotation [Bunt 2010]. Nous avons enfreint la règle de minimalité des segments fonctionnels pour les courtes interventions dans les dimensions de Own Communication Management (OCM) (e.g., hésitations, auto-corrections, . . . ) et de Time Management (e.g., « euh : »). Lorsqu’un segment fonctionnel contenant une fonction communicative de ces dimensions est inclus dans un autre segment fonctionnel, alors les fonctions sont automatiquement attribuées au segment fonctionnel englobant en post-traitement (et le petit segment fonctionnel est supprimé). Ensuite, les segments fonctionnels chevauchants (cf. section 5.1.1) ont été fusionnés pour ne former qu’un seul segment. En outre, un segment fonctionnel peut intervenir sur plusieurs tours de parole (cf. dialogue 5.1, p. 108). Or, les annotations dans Gate sont nécessairement continues. Nous adoptons la convention du guide d’annotation qui indique de décomposer le segment fonctionnel multi-tour en autant de segments que de tours possédant les mêmes actes de dialogue. Transcription Nous annotons la partie verbale retranscrite d’une interaction multimodale (cf. section 4.1.3). Nous n’avons donc pas en notre possession des indices non-verbaux tels que des mouvements de tête ou des expressions faciales. [Bunt 2009] précise que les comportements non-verbaux interviennent pour quatre buts principaux : (i) insister ou articuler le contenu sé- mantique des actes de dialogue, (ii) insister ou supporter les fonctions communicatives exprimées verbalement, (iii) réaliser un ou plusieurs actes de dialogue en parallèle de la contribution dialogique courante du partenaire (sans prise de tour de parole), ou (iv) exprimer une autre fonction communicative en parallèle de ce que le locuteur exprime verbalement. [Bunt 2009] précise que le dernier point intervient beaucoup plus rarement que les trois autres. Les points (i) et (ii) nous permettent de prendre conscience que nous perdons des indices permettant de choisir les fonctions communicatives. Tandis que les deux derniers points montrent que nous n’annotons pas112 Chapitre 5 : Annotation du corpus et extraction de motifs l’ensemble des fonctions communicatives exprimées, en particulier celles concernant la gestion de l’interaction (point (iii)). Sémantique Le processus d’annotation se limite à l’attribution de fonctions communicatives à des segments fonctionnels. De ce fait, nous laissons de côté l’aspect sémantique qui nécessite à lui seul un travail hors de portée de cette thèse (voir les conclusions de [Loisel 2008] et le travail de [Prévot 2004]). Ainsi, le contenu sémantique des actes n’est pas annoté. De la même manière, nous n’annotons pas de relations entre les segments fonctionnels. Ce genre de relation a été mis en avant par les grammaires de dialogue [Polanyi 1984] ou encore par les relations rhétoriques de la SDRT [Asher 2003] (e.g., narration, conséquence, explication, justification, élaboration). La raison de cette éviction est que nous ne disposons pas de base tractable sur laquelle fonder l’annotation de relations. Par exemple, le schéma DIT++ ne propose actuellement aucune taxonomie claire des relations entre les segments. 5.1.3 Résultats du processus d’annotation Cette section s’intéresse aux résultats chiffrés et commentés du processus d’annotation. Elle débute par une présentation de chiffres permettant de quantifier globalement le processus. Puis, elle présente les résultats de la confrontation des annotations réalisées par les deux annotateurs. Le calcul de l’accord inter-annotateur et ses résultats sont discutés. Ensuite, la constitution des tours de parole et des segments fonctionnels en terme de fonction communicative est étudiée. Puis, l’importance relative des dimensions observées dans le corpus est analysée. Enfin, nous entrons dans le détail des segments en étudiant les fonctions les plus courantes dans les principales dimensions. Généralités Les résultats ont été produits à l’aide de plugins Gate qui ont été développés pour l’occasion. Ces derniers se basent sur les annotations manuelles. Le tableau 5.3 présente le détail du nombre de fonctions communicatives annotées par corpus et par annotateur. Ce processus a conduit à l’annotation de 6343 fonctions communicatives par les couples d’annotateurs. L’annotateur 1 a annoté légèrement plus de fonction que l’annotateur 2 (51% du total). Le corpus VD regroupe approximativement 59% des annotations. Cela s’explique par le fait que les entretiens de ce corpus sont plus longs en terme de tours de parole. Corpus AL (10) Corpus VD (8) Total G 1340 (51%) 1904 (51%) 3244 (51%) A, J ou N 1285 (49%) 1814 (49%) 3099 (49%) Total 2625 3718 6343 Tableau 5.3: Nombre de fonctions communicatives annotées par corpus et par annotateur Le tableau 5.4 présente le nombre de tours de parole total par corpus ainsi que le nombre de tours de parole finalement annotés. Suite à la stratégie choisie (cf. section 5.1.2), les annotateurs avaient pour indication de ne pas considérer un tour de parole soit par manque d’indice rendant l’intervention d’un interlocuteur difficilement interprétable en dehors du contexte (9% du total des tours de parole n’ont pu être étiquetés pour cette raison), soit si les tours de parole n’étaient5.1. Processus d’annotation 113 pas en rapport avec l’utilisation de CISMeF (18% des tours de parole). Cette situation est principalement intervenue à la fin des dialogues du corpus VD. Le détail de ces comptes par entretien est disponible en annexe A.3.2. En somme, un total de 1056 tours de parole a été annoté par chaque annotateur représentant 73% du corpus initial. La majorité des tours non annotés a été volontairement exclue de par leur intervention dans une conversation libre hors du cadre CISMeF. Nombre de tours Tours annotés Hors CISMeF Incompréhensible Corpus AL 271 269 (99%) 0 2 (1%) Corpus VD 1174 787 (67%) 266 (23%) 121 (10%) Total 1445 1056 (73%) 266 (18%) 123 (9%) Tableau 5.4: Proportion des tours de parole annotés dans le corpus. La colonne « Hors CISMeF » dénombre les tours non-annotés car ne faisant pas partie de la tâche de RI sur CISMeF. La colonne « Incompréhensible » décompte les tours de parole dont les indices étaient insuffisants pour déterminer des fonctions communicatives. Le tableau 5.5 présente quelques exemples de fonctions représentatives du corpus. Il indique la fonction communicative, la dimension dans laquelle elle intervient et un exemple illustratif tiré du corpus. L’annexe A.3.1 présente cinq extraits de dialogue annotés. Ces exemples commentés illustrent les six dimensions suivantes : Task, Auto-feedback, Allo-feedback, Time Management, Turn Management et Partner Communication Management. Accords inter-annotateur Calcul de l’accord inter-annotateur Nous avons effectué une analyse de l’accord interannotateur (IAA) en terme de précision, rappel et F-mesure (F1 score) [Rijsbergen 1979,Manning 1999]. Nous délaissons le coefficient Kappa (κ) [Cohen 1960, Carletta 1996] limité à une tâche d’annotation où le corpus a été pré-segmenté. L’annexe A.3.3 présente le détail des calculs de précision, rappel et F-mesure. Les résultats du calcul de l’IAA se divisent en trois catégories : strict, lenient et average. Celles-ci varient par leur façon de considérer les annotations qui se chevauchent sans se confondre : le mode strict considère les annotations qui se chevauchent comme incorrectes alors que le mode lenient les considère correctes. Le mode average est une moyenne des deux modes précédents. Le calcul de l’IAA pour la phase d’étiquetage ne prend pas en compte la taxonomie de DIT++ : une fonction Check Question et une fonction Yes/No Question sont considérées comme étant aussi différentes qu’un Thanking et une Yes/No Question. Des mé- triques taxonomiques ont été proposées pour DIT++ mais prennent uniquement en compte la phase d’étiquetage sans considérer la phase de segmentation [Geertzen 2009b]. En conclusion, les IAAs présentés ici peuvent être considérés comme ceux du pire des cas, sauf indication contraire. Tous les IAA ont été calculés en prenant les annotations de l’annotateur 1 comme l’ensemble de référence et les annotations de l’annotateur 2 comme l’ensemble de comparaison. Intervertir ces deux ensembles conduit à échanger précision et rappel. Ce calcul est réalisé par le plugin « Inter-Annotator Agreement » 6 préexistant dans Gate. Nous nous intéressons dans un premier temps à l’IAA sur la tâche de segmentation seule. Puis, nous abordons le cas de l’IAA pour la combinaison des tâches de segmentation et d’étiquetage. 6. Documentation du plugin « Inter-Annotator Agreement » de Gate disponible à l’URL suivante : http: //gate.ac.uk/sale/tao/splitch10.html#sec:eval:iaaplugin.114 Chapitre 5 : Annotation du corpus et extraction de motifs Dimension Fonction communicative Exemples Task Inform « on a 115 articles » (AL07), « on cherche mais on ne trouve pas toujours » (VD05) Agreement « exactement c’est tout à fait ça » (VD05) Suggestion « donc ce que je vous propose c’est qu’on remette effort du coup » (VD05) Offer « vous avez une autre question ? » (AL07) (ici, il s’agit d’une offre pour réaliser une nou- velle recherche) Request « essayez avec clairance » (VD07) SetQuestion « comment on fait pour garder les documents ? » (VD06) PropositionalQuestion « il y a pas un synonyme de cette maladie ? » (AL03) CheckQuestion « vous voulez savoir les traitements de manière générale finalement ? » (AL12) ChoiceQuestion « alors on a créatinine quinaz ou créatinine ? » (VD07) Time Management Stalling « euh », « bah » Auto-feedback AutoPositive « OK », « oui », « mmhm mmhm » PerceptNegativeAutoFB « pardon ? » (VD07) ExecNegativeAutoFB « J’en sais rien » (VD04) OCM Retraction « là on trouve de nombreux / beaucoup plus de choses » (AL06) Self-correction « il me semble que c’était / ah non peut-être pas non » (AL07) Turn Management Turn Grab « S : je me couche tôt et je suis dans mon lit et je dors pas et A : d’accord » (AL04) Turn Assign « donc je vous écoute » (AL03), « allez-y » (VD03) Allo-feedback EvalFBElicitation « . . . non ? » (VD04), « . . . c’est ça ? » (VD05), « . . . on est bien d’accord ? » (VD05) SOM Apology « excusez-moi » (VD05) Thanking « je vous remercie beaucoup » (VD02) Thanking-downplay « nickel c’est moi » (VD02) PCM Completion « S : si on fait ça je crois que ça va nous donner A : un document spécifique » (AL10) Tableau 5.5: Exemples de fonctions communicatives par dimension associées à un exemple typique. OCM = Own Communication Management, SOM = Social Obligation Management, PCM = Partner Communication Management.5.1. Processus d’annotation 115 Accord inter-annotateur sur la segmentation L’IAA sur la phase de segmentation est présenté dans le tableau 5.6. L’accord obtenu sur la phase de segmentation est fort. Nous obtenons en effet des scores supérieurs ou égaux à 0.93 dans chaque mode. Les IAA par corpus sont disponibles en annexe A.3.3. L’IAA sur la segmentation est légèrement meilleur sur le corpus VD (F-mesure à 0.97 en mode average) que sur le corpus AL (F-mesure à 0.94 en mode average). Cette différence peut s’expliquer par la longueur des tours de parole de l’expert AL, plus difficile à segmenter (cf. section 5.1.3). Strict Lenient Average R P F R P F R P F 0.93 0.94 0.94 0.97 0.98 0.98 0.95 0.96 0.96 Tableau 5.6: Accord inter-annotateur pour la tâche de segmentation. R = Rappel, P = Précision, F = F-mesure (F1 score). Ces résultats nous permettent d’approfondir l’étude de l’accord en ajoutant la phase d’étiquetage. Accord inter-annotateur sur la segmentation et l’étiquetage par dimension Le tableau 5.7 présente l’IAA par dimension pour l’étiquetage des fonctions communicatives. Les proportions de fonction par dimension sont également fournies. Nous revenons sur les dimensions en section 5.1.3. Notons que les dimensions sont ordonnées dans le tableau de résultats par proportion de fonction décroissante. Strict Lenient Average Dimension R P F R P F R P F Prop. Task 0.84 0.85 0.84 0.86 0.87 0.87 0.85 0.86 0.86 68.30% Time Management 0.75 0.8 0.77 0.81 0.86 0.83 0.78 0.83 0.8 9.93% Auto-Feedback 0.77 0.8 0.79 0.8 0.83 0.81 0.79 0.81 0.8 9.44% OCM 0.43 0.49 0.46 0.47 0.54 0.5 0.45 0.52 0.48 5.31% Turn Management 0.37 0.73 0.49 0.41 0.8 0.54 0.39 0.76 0.51 2.76% Allo-Feedback 0.63 0.54 0.58 0.66 0.56 0.61 0.64 0.55 0.59 1.19% SOM 0.43 0.69 0.53 0.48 0.76 0.59 0.46 0.72 0.56 1.18% PCM 0.86 0.91 0.89 0.86 0.91 0.89 0.86 0.91 0.89 1.09% Discourse Structuring 0.67 0.57 0.62 0.75 0.64 0.69 0.71 0.61 0.65 0.41% Contact Management 0.67 0.46 0.55 0.89 0.62 0.73 0.78 0.54 0.64 0.35% Global 0.77 0.81 0.79 0.81 0.84 0.82 0.79 0.83 0.81 Tableau 5.7: Accord inter-annotateur pour les tâches de segmentation et d’étiquetage par dimension. R = Rappel, P = Précision, F = F-mesure (F1 score). OCM = Own Communication Management, PCM = Partner Communication Management, SOM = Social Obligation Management. Quatre dimensions se distinguent en terme de proportion de fonctions annotées : la dimension Task (68.30%), la dimension Time Management (9.93%), la dimension Auto-Feedback (9.44%) et celle de Own Communication Management (OCM, 5.31%). Nous obtenons un accord fort pour la dimension Task dont les scores dépassent 0.84 dans tous les modes. La F-mesure pour les autres dimensions (exceptée OCM) dépasse 0.8 (mode average) ce que nous qualifions d’accord116 Chapitre 5 : Annotation du corpus et extraction de motifs fiable. En outre, les scores en terme de rappel, précision et F-mesure de ces dimensions sont supérieurs à 0.75 dans tous les modes. Nous revenons sur le cas de la dimension OCM dans la suite de cette section. Les accords sur les autres dimensions sont plus variés. Les dimensions Allo-feedback, Contact Management et Discourse Structuring entretiennent des F-mesures comprises entre 0.59 et 0.65 (mode average). Les accords dans ces dimensions sont modérés. Ils sont pénalisés par des scores de précision relativement faibles (compris entre 0.55 et 0.61 en mode average). Les dimensions Social Obligation Management (SOM) et Turn Management possèdent des F-mesures situées entre 0.51 et 0.56 (mode average). Les accords dans ces dimensions sont modérés bas. Notons que ces dimensions possèdent une forte précision (supérieure à 0.69 dans tous les modes) et sont pénalisées par un faible rappel (0.39 et 0.46 en mode average). Enfin, notons l’accord fort obtenu par la dimension Partner Communication Management (PCM) dont la principale fonction communicative est la complétion de la locution du partenaire (cf. dialogue 5.1, p. 108). Les scores de cette dimension dépassent 0.86 dans tous les modes. Il reste la dimension OCM dont les scores démontrent un accord faible équilibré entre rappel et précision. Impact de la propriété taxonomique de DIT++ Comme nous l’avons précédemment évoqué, le calcul de l’IAA ne prend pas en compte les propriétés taxonomiques de DIT++. Pour étudier l’impact de ces propriétés, nous avons re-calculé l’IAA en considérant que toutes les fonctions partageant la même racine sont équivalentes (cf. figures 1.1 et 1.2, p. 25). Notons que cette méthode réalise des équivalences abusives. Une fonction Correction est ainsi équivalente à un Answer. Cependant, les fonctions de la dimension OCM forment une branche taxonomique de trois fonctions se spécialisant. Les considérer comme équivalentes revient à ne donner aucune importance au degré de spécificité choisi lors de l’étiquetage de ces fonctions. Les résultats de ce nouveau calcul sont présentés en annexe A.9. Trois dimensions voient leur score augmenter (les autres restant inchangées). La dimension Task et Allo-feedback augmentent légèrement leur F-mesure de 0.02 point (en mode average). La dimension OCM voit ses scores considérablement croître. En mode average, sa précision passe à 0.62, son rappel à 0.72 et sa F-mesure à 0.67 atteignant ainsi un accord modéré haut. L’accord faible initialement obtenu est donc principalement dû au degré de spécificité choisi dans l’étiquetage des fonctions. Accord inter-annotateur sur les fonctions générales Rappelons que les fonctions géné- rales peuvent intervenir dans toutes les dimensions et en particulier dans la dimension Task. Le calcul de cet accord permet de vérifier l’uniformité de l’IAA de la dimension Task par rapport aux catégories de fonctions y intervenant. Le tableau 5.8 présente le calcul de l’IAA en ne prenant en compte que les fonctions générales de DIT++. Nous avons regroupé ces fonctions dans les catégories initiales de la taxonomie : fonctions de recherche d’information (« informationseeking »), fonctions fournissant de l’information (« information-providing ») et fonctions de discussion d’actions (« action-discussion »). L’accord sur les fonctions fournissant de l’information est fort. Les scores sont tous supérieurs à 0.84 et la F-mesure en mode average est de 0.87. Les deux autres catégories présentent un accord fiable avec des scores globalement supérieurs à 0.75. En outre, la F-mesure est de 0.81 pour les fonctions de discussion d’action et de 0.77 pour les fonctions de recherche d’information.5.1. Processus d’annotation 117 Strict Lenient Average Catégories R P F R P F R P F Action-discussion 0.8 0.79 0.8 0.83 0.82 0.83 0.82 0.8 0.81 Information-providing 0.84 0.88 0.86 0.87 0.9 0.88 0.85 0.89 0.87 Information-seeking 0.75 0.75 0.75 0.78 0.78 0.78 0.77 0.76 0.77 Tableau 5.8: Accord inter-annotateur pour les tâches de segmentation et d’étiquetage pour les fonctions générales. R = Rappel, P = Précision, F = F-mesure (F1 score). Accord inter-annotateur sur les corpus AL et VD Nous avons également souhaité savoir si des disparités existaient entre l’annotation du corpus AL et celle du corpus VD. L’annexe A.3.3 présente les tableaux de l’IAA par dimension pour le corpus AL et pour le corpus VD. L’accord global sur le corpus VD est fiable. La F-mesure en mode average est de 0.82 et les scores sont tous supérieurs à 0.8. De même, l’accord sur le corpus AL est fiable. La F-mesure en mode average est de 0.77 et les scores sont tous supérieurs à 0.72. Les accords sur les deux corpus sont fiables avec un léger avantage au corpus VD. Analyse au niveau des tours de parole et des segments fonctionnels Dans cette section, nous analysons les résultats du processus d’annotation en terme d’unités d’interaction produites, i.e. en terme de segments fonctionnels. Puis nous tentons de faire ressortir les caractéristiques du corpus qui apparaissent au niveau des tours de parole. Analyse au niveau des segments fonctionnels 5486 segments fonctionnels ont été annotés dans le corpus Cogni-CISMeF dont 58.9% appartiennent au corpus VD (3232), et 41.1% au corpus AL (2254). Nous avons cherché à connaître le nombre moyen de fonctions communicatives par segment fonctionnel pour la stratégie choisie et la définition de segment fonctionnel choisie (cf. section 5.1.2). Le tableau 5.9 présente la synthèse des résultats par annotateur et par corpus ainsi que le résultat global. L’annexe A.3.4 présente le détail des données et des calculs par annotateur, par corpus et par entretiens. Un segment fonctionnel est en moyenne constitué de 1.16 fonctions communicatives sans réelle différence entre le corpus AL et VD. Nous pouvons noter que l’annotateur 1 possède un ratio légèrement supérieur à celui de l’annotateur 2. Cela est cohérent avec la différence observée dans le nombre de fonctions annotées. Ces résultats sont légèrement inférieurs à ceux obtenus par [Bunt 2011b] pour la même stratégie. Le ratio obtenu est de 1.3. La principale explication de la différence est que nous manquons la partie non-verbale, absente dans le cas de [Bunt 2011b] (leurs dialogues ne sont pas en situation de co-présence). Néanmoins, ces résultats restent très proches. En outre, un tour de parole est en moyenne constitué de 2.60 segments fonctionnels dans notre corpus. Ceci nous permet de confirmer l’hypothèse de multifonctionnalité défendue dans [Bunt 2011b]. Annotateur 1 2 Total Corpus AL 1.19 1.14 1.16 Corpus VD 1.17 1.13 1.15 Total 1.16 Tableau 5.9: Nombre de fonctions par segment fonctionnel par annotateur, par corpus et au total118 Chapitre 5 : Annotation du corpus et extraction de motifs Nous nous sommes ensuite intéressés à la répartition des segments fonctionnels entre l’expert et le demandeur. Le tableau 5.10 présente la répartition des segments fonctionnels entre les interlocuteurs pour chaque corpus et au total. Sur l’ensemble du corpus, l’activité communicative de l’expert est plus intense que l’activité du demandeur (trois quarts des segments fonctionnels). Dans le détail, on note une différence claire entre le corpus AL et le corpus VD. L’expert du corpus AL produit un peu plus de 80% des segments fonctionnels alors que celui du corpus VD n’en produit que les deux tiers. La différence entre l’expert et le demandeur s’explique par le fait que l’expert est chargé de mener la recherche tout en verbalisant ses actions. La différence entre les deux experts s’explique, quant à elle, par le fait que l’expert AL est beaucoup plus directif que l’expert VD. Rôle AL VD Total Demandeur 17.10% 31.40% 25.50% Expert 82.90% 68.60% 74.50% Tableau 5.10: Répartition des segments fonctionnels en fonction du rôle Analyse au niveau des tours de parole Comme précédemment évoqué, 1056 tours de parole ont été annotés dans ce processus par chaque annotateur (1 et 2). 269 tours ont été annotés dans le corpus AL contre 787 dans le corpus VD. Les entretiens du corpus AL sont constitués en moyenne de 26.9 tours de parole (écart type de 11.5). Les entretiens du corpus VD sont constitués en moyenne de 98.4 tours de parole (écart type de 45.6). Le détail du nombre de tours de parole par entretien est donné en annexe A.3.2. Les entretiens du corpus AL sont en moyenne plus court que les entretiens du corpus VD. Afin de caractériser plus précisément l’activité communicative de l’expert et du demandeur, nous avons étudié le nombre d’actes de dialogue en moyenne par tour et par corpus. Le tableau 5.11 présente le nombre d’actes de dialogue par tour en fonction du corpus, de l’annotateur et du rôle. Les tours de parole de l’expert AL contiennent en moyenne beaucoup plus d’actes avec un fort écart type (6.88 actes en moyenne pour un écart type de 7.26). Les tours de parole de l’expert VD contiennent en moyenne moins d’actes que l’expert AL (2.80) avec un écart type plus faible (2.68). Le nombre d’actes par tour pour le demandeur est dans le même ordre de grandeur dans les deux corpus et se situe entre 1 et 1.5 actes en moyenne pour un faible écart type. (a) Corpus AL Annotateur 1 2 Total Expert (m) 6.88 6.87 6.88 Demandeur (m) 1.46 1.47 1.47 Expert (∆) 7.20 7.33 7.26 Demandeur (∆) 0.87 1.00 0.94 (b) Corpus VD Annotateur 1 2 Total Expert (m) 2.83 2.77 2.80 Demandeur (m) 1.30 1.28 1.29 Expert (∆) 2.71 2.65 2.68 Demandeur (∆) 0.69 0.7 0.69 Tableau 5.11: Nombre d’actes de dialogue par tour en fonction du rôle. m = moyenne, ∆ = écart type.5.1. Processus d’annotation 119 Analyse au niveau des dimensions Le tableau 5.12 présente la proportion de fonctions annotées par dimension sur l’ensemble du corpus Cogni-CISMeF. Quatre dimensions se distinguent en terme de proportion de fonctions annotées : la dimension Task (68.30%), la dimension Time Management (9.93%), la dimension Auto-Feedback (9.44%) et celle de Own Communication Management (OCM, 5.31%). Deux tiers des fonctions ont pour but d’avancer la tâche sous-jacente au dialogue tandis qu’un tiers concerne la gestion des processus d’interaction. Sur ces quatre dimensions, deux sont liées à des activités monologiques concernant les processus d’élocution du locuteur. Il s’agit des dimensions OCM (e.g., auto-corrections, hésitations) et Time Management (e.g., pauses). La dimension Autofeedback a pour vocation de gérer les retours sur les processus de compréhension des énoncés à différents niveaux (attention, perception, interprétation, évaluation, exécution). Dimension Proportion Task 68.30% Time Management 9.93% Auto-Feedback 9.44% OCM 5.31% Turn Management 2.76% Allo-Feedback 1.19% SOM 1.18% PCM 1.09% Discourse Structuring 0.41% Contact Management 0.35% Tableau 5.12: Proportions de fonctions annotées par dimension sur l’ensemble du corpus CogniCISMeF. OCM = Own Communication Management, PCM = Partner Communication Management, SOM = Social Obligation Management. L’annexe A.3.5 contient les données sur la proportion de fonctions annotées par dimension, par corpus et par annotateur, desquelles est issu le tableau 5.12. Les corpus AL et VD font ressortir les quatre mêmes dimensions majoritaires sans variation significative entre les annotateurs. Une différence notable entre les deux corpus concerne la dimension Time Management. Cette dernière est nettement plus présente dans le corpus AL (17.29%) que dans le corpus VD (4.74%). Ce phénomène s’explique par les longs tours de parole de l’expert AL qui impose l’usage de segments pour combler les temps d’attente (e.g., « euh », « alors »). En outre, le corpus VD possède proportionnellement plus de fonctions dans la dimension Auto-feedback (11.83%) que le corpus AL (6.07%). Cela s’explique par les interventions plus fréquentes du demandeur dans ce corpus qui nécessitent l’usage de feedbacks afin d’assurer la compréhension mutuelle. Les deux autres dimensions principales (Task et OCM) interviennent dans les mêmes proportions. Nous nous sommes intéressés à la co-occurrence des dimensions dans le corpus CogniCISMeF. Le tableau A.16 en annexe A.3.6 présente la matrice de co-occurrence des dimensions. Pour les cinq dimensions principales, nous obtenons les co-occurrences suivantes (ordonnées par proportion d’occurrence décroissante) : Task : Own Communication Management, Time Management, Auto-feedback, Turn Management.120 Chapitre 5 : Annotation du corpus et extraction de motifs Time Management : Task, Turn Management, Own Communication Management, Autofeedback. Auto-feedback : Task, Partner Communication Management, Turn Management, Time Management. Own Communication Management : Task, Time Management, Turn Management. Turn Management : Task, Time Management, Own Communication Management, Partner Communication Management. Une fonction de la dimension Task co-occurre principalement avec des fonctions permettant de gérer l’élocution ou le tour de parole. Il s’agit des dimensions OCM, Time Management et Turn Management. Elle co-occurre également avec la production de feedback (dimension Autofeedback). Un élément notable est la co-occurrence des dimensions Auto-feedback et Turn Management avec la dimension PCM. Cette dernière dimension contient des fonctions permettant de récupérer le tour de parole en aidant un partenaire à conclure son élocution. Les interlocuteurs saisissent cette occasion pour produire des feedbacks (i.e., compléter pour montrer la compré- hension). De manière intéressante, nous obtenons des co-occurrences de dimensions similaires au corpus AMI [Bunt 2009] (voir annexe A.3.6). Analyse au niveau des fonctions communicatives Dans cette section, nous nous intéressons aux fonctions intervenant dans les dimensions principales (Task, Time Management, Auto-feedback et OCM). L’annexe A.3.7 présente les données pour les autres dimensions. Le tableau 5.13 présente les proportions de fonctions annotées par catégorie de la taxonomie DIT++. Sans surprise, nous retrouvons en tête les catégories de fonctions générales fournissant de l’information, de discussion d’action et, en cinquième position, de demande d’information. Ces fonctions interviennent en grande majorité dans la dimension Task qui est la dimension la plus représentée. Ensuite, nous retrouvons en bonne place les fonctions spécifiques aux dimensions principales observées en section 5.1.3. Il s’agit des catégories de Time Management, d’Autofeedback, d’OCM et de Turn Management. En queue de tableau, nous observons les fonctions des dimensions minoritaires. Sur les 88 fonctions communicatives disponibles dans DIT++, 64 fonctions ont été utilisées dans notre annotation. Une grande partie des fonctions non-utilisées sont les fonctions dans les dimensions Auto- et Allo-feedback (que nous traitons dans la suite du document). Dimension Task La dimension Task représente approximativement deux tiers du total des fonctions communicatives annotées. En tout, 4333 fonctions ont été annotées dans cette dimension. Sur ce total, 3180 ont été produites par l’expert et 1153 par le demandeur. Nous analysons les fonctions produites par les interlocuteurs au regard des trois catégories de fonctions générales : les fonctions fournissant de l’information (« information-providing »), les fonctions de recherche d’information (« information-seeking ») et les fonctions de discussion d’action (« action-discussion »). Le tableau 5.14 présente les proportions de fonctions par caté- gorie pour l’expert et pour le demandeur. Les catégories affichent des proportions semblables pour les deux rôles. La catégorie des fonctions fournissant de l’information arrive en tête avec un peu plus de 60% des fonctions. Elle est suivie par la catégorie de discussion d’action qui5.1. Processus d’annotation 121 Catégorie Proportion Information-providing 44.00% Action-discussion 20.90% Time management 9.80% Auto-feedback 8.80% Information-seeking 5.50% OCM 5.30% Turn management 2.80% PCM 1.10% Allo-feedback 0.60% SOM 0.60% Contact management 0.30% Discourse Structure 0.30% Tableau 5.13: Proportion de fonctions annotées par catégories (a) Expert Catégorie Proportion Information-providing 61.23% Action-discussion 31.60% Information-seeking 7.17% (b) Demandeur Catégorie Proportion Information-providing 65.74% Action-discussion 27.06% Information-seeking 7.20% Tableau 5.14: Répartition des fonctions dans la dimension Task par catégorie pour l’expert et le demandeur.122 Chapitre 5 : Annotation du corpus et extraction de motifs s’établit alentour des 30%. Enfin, la catégorie de recherche d’information affiche une proportion de fonctions autour des 7%. Les tableaux 5.15 présentent les fonctions fournissant de l’information apparaissant dans la dimension Task pour l’expert et le demandeur. Tout d’abord, les mêmes fonctions interviennent dans un ordre identique entre l’expert et le demandeur. La catégorie est dominée par la fonction Inform. S’ensuit la fonction Agreement permettant d’affirmer un accord. On trouve par la suite les fonctions de réponses aux questions (Answer, Confirm, Disconfirm). Enfin, la queue de la catégorie est constituée des fonctions de désaccord (Correction et Disagreement) dont la proportion est faible. (a) Expert Fonction Prop. rel. Prop. abs. Inform 91.53% 38.20% Agreement 3.85% 1.60% Answer 2.16% 0.90% Disconfirm 1.03% 0.40% Confirm 0.87% 0.40% Correction 0.51% 0.20% Disagreement 0.05% 0.00% (b) Demandeur Fonction Prop. rel. Prop. abs. Inform 65.96% 29.80% Agreement 11.21% 5.10% Answer 10.16% 4.60% Confirm 7.65% 3.50% Disconfirm 3.30% 1.50% Disagreement 0.92% 0.40% Correction 0.79% 0.40% Tableau 5.15: Répartition des fonctions dans la dimension Task pour la catégorie des fonctions fournissant de l’information. La proportion relative (« Prop. rel. ») désigne la proportion de la fonction dans la catégorie à laquelle elle appartient. La proportion absolue (« Prop. abs. ») désigne la proportion de la fonction dans l’ensemble des fonctions observées produites en fonction du rôle (expert ou demandeur). Le nombre élevé d’Inform aussi bien pour l’expert que pour le demandeur mérite un éclaircissement. Plusieurs raisons expliquent ce résultat. La première raison provient de la segmentation. Nous avons choisi comme unité le segment fonctionnel dont une des propriétés est la minimalité. Ainsi, une longue assertion est souvent ségmentée en plusieurs unités informatives (e.g., l’assertion « j’aimerais savoir enfin par rapport au sommeil / donc je suis régulièrement fatigué et je n’arrive pas forcément à dormir par rapport à cette fatigue / je me couche tôt et je suis dans mon lit et je dors pas » (AL04) conduit à l’obtention de quatre segments avec une fonction Inform). Ce point fait débat dans la communauté [Larsson 1998]. Nous avons choisi de respecter la minimalité des segments pour notre tâche. Ensuite, l’expert doit verbaliser le déroulement de l’expérimentation. Cela le conduit à informer de la requête en cours et des opérations qu’il réalise. Enfin, de nombreuses phases de la recherche d’information contiennent des interventions informatives. C’est le cas des phases de verbalisation et d’évaluation des ressources. En outre, l’expert a un rôle informatif envers le demandeur au regard de l’outil CISMeF. Toutes ces raisons contribuent à la proportion élevée d’actes Inform. Les tableaux 5.16 présentent les fonctions de discussion d’action pour l’expert et le demandeur. Ils mettent en évidence la prédominance de la fonction Suggestion pour les deux rôles. C’est une fonction directive permettant d’engager l’allocutaire ou les deux interlocuteurs sur la réalisation d’une action (e.g., « On y va ? »). Cette fonction est utilisée pour proposer des tactiques de modification de la requête (e.g., « on va rentrer comme mot-clé troubles de l’alimentation » (AL07)). Elle est particulièrement marquée au niveau de surface des énoncés par l’usage du « on » et du « nous ».5.1. Processus d’annotation 123 (a) Expert Fonction Prop. rel. Prop. abs. Suggestion 61.99% 13.40% Offer 14.03% 3.00% AcceptSuggestion 7.06% 1.50% Request 4.88% 1.10% AcceptRequest 4.28% 0.90% Instruct 3.58% 0.80% Promise 3.08% 0.70% DeclineSuggestion 0.70% 0.20% AcceptOffer 0.20% 0.00% AddressRequest 0.10% 0.00% DeclineRequest 0.10% 0.00% (b) Demandeur Fonction Prop. rel. Prop. abs. Suggestion 34.29% 6.40% AcceptSuggestion 25.00% 4.60% Request 18.27% 3.40% AcceptOffer 8.01% 1.50% DeclineOffer 4.81% 0.90% AcceptRequest 3.21% 0.60% DeclineSuggestion 1.92% 0.40% AddressSuggestion 1.28% 0.20% AddressOffer 0.96% 0.20% AddressRequest 0.96% 0.20% Offer 0.64% 0.10% DeclineRequest 0.32% 0.10% Instruct 0.32% 0.10% Tableau 5.16: Répartition des fonctions dans la dimension Task pour la catégorie des fonctions de discussion d’actions. La proportion relative (« Prop. rel. ») désigne la proportion de la fonction dans la catégorie à laquelle elle appartient. La proportion absolue (« Prop. abs. ») désigne la proportion de la fonction dans l’ensemble des fonctions observées produites en fonction du rôle (expert ou demandeur). Les fonctions de discussion d’action utilisées par l’expert sont majoritairement des initiatives (Suggestion, Offer, Request, Instruct et Promise) aussi bien pour l’expert AL que VD. Elles représentent 87.56% des usages dans cette catégorie. Dans une minorité de cas (12.44%), l’expert emploie des fonctions réactives (AcceptSuggestion, DeclineSuggestion, AcceptOffer, Accept/Decline/Address Request). En somme, l’expert est principalement une force de proposition d’action. On pourrait s’attendre à un demandeur principalement réactif à la vue des résultats de l’expert. Ce n’est pas ce que nous avons observé. Le demandeur équilibre ses contributions entre fonctions initiatives (53.52%) et réactives (47.43%). Ainsi, le demandeur propose approximativement autant qu’il réagit. En outre, son comportement réactif est caractérisé par une large variété de fonctions réactives (Accept/Decline/Address Suggestion, Accept/Decline/Address Request, Accept/Decline/Address Offer). Soulignons néanmoins la très faible présence des fonctions AddressSuggestion, AddressRequest et AddressOffer qui représentent moins de 1% des fonctions du demandeur. Son comportement initiatif est caractérisé par l’usage de suggestions et de requêtes (via les fonctions Suggestion et Request). Toutes les suggestions d’action ne sont pas verbalement validées. Ainsi, le corpus fait intervenir plus de fonctions initiatives Suggestion que de fonctions réactives (Accept/Decline/Address Suggestion). Le tableau A.19 en annexe A.3.7 présente le détail des fonctions considérées par l’expert et le demandeur. Sur les 623 suggestions de l’expert, seules 88 sont verbalement considérées. Ce faible nombre peut s’expliquer par (i) l’absence des indices non verbaux (e.g., la suggestion est acceptée ou refusée par un mouvement de la tête) (ii) la position dominante de l’expert dans l’expérimentation qui suggère une action et la réalise en supposant l’accord du demandeur. Au contraire, il est intéressant de remarquer que les suggestions du demandeur sont verbalement considérées par l’expert dans 73% des cas. Cette proportion monte à 79% des cas124 Chapitre 5 : Annotation du corpus et extraction de motifs pour les requêtes. Les tableaux 5.17 présentent les fonctions de recherche d’information pour l’expert et le demandeur. Ils font apparaître dans les deux cas une majorité de questions à réponse déterminée. En premier lieu arrivent les questions de vérification (CheckQuestion, PosiCheck et NegaCheck) suivies des questions à choix multiples et des questions oui/non. Les questions ouvertes (qui, que, quoi, où, quand, comment, etc.) constituent un peu plus de 25% des questions de l’expert et 31% des questions du demandeur. (a) Expert Fonction Prop. rel. Prop. abs. Check Question 48.25% 2.40% Set Question 25.88% 1.26% Choice Question 8.77% 0.40% Nega-check 6.58% 0.30% Propositional Q. 6.58% 0.30% Posi-check 3.95% 0.20% (b) Enquêté Fonction Prop. rel. Prop. abs. Check Question 57.83% 2.90% Set Question 31.33% 1.55% Choice Question 3.61% 0.20% Propositional Q. 4.82% 0.20% Posi-check 2.41% 0.10% Tableau 5.17: Répartition des fonctions dans la dimension Task pour la catégorie des fonctions de recherche d’information. La proportion relative (« Prop. rel. ») désigne la proportion de la fonction dans la catégorie à laquelle elle appartient. La proportion absolue (« Prop. abs. ») désigne la proportion de la fonction dans l’ensemble des fonctions observées produites en fonction du rôle (expert ou demandeur). Dimension Auto-feedback L’annotation de fonctions dans la dimension Auto-feedback a mis en avant la difficulté d’analyse des niveaux des processus impliqués (attention, perception, compréhension, évaluation, exécution) à partir des indices de surface des énoncés. Il est en effet difficile de dire à quel niveau agissent exactement des interventions comme « ok », « oui », ou encore « mmh ». Le tableau 5.18 présente une synthèse pour la dimension Auto-feedback dont les détails sont donnés en annexe A.3.7. Il regroupe en quatre catégories les fonctions intervenant dans cette dimension : la catégorie AutoPositive (représentant la fonction du même nom), les fonctions générales, les fonctions négatives (fonctions spécifiques de la dimension exprimant un problème de communication) et les fonctions positives (fonctions spécifiques de la dimension témoignant d’un succès de compréhension, AutoPositive exclu). Sur l’ensemble du corpus, 90% des fonctions annotées dans cette dimension sont des AutoPositive. Cette fonction prévue dans la taxonomie DIT++ est un feedback positif sous-spécifié ne précisant pas le niveau de retour. Ce résultat implique deux conclusions. La première est que l’existence des niveaux de communication ne peut pas être empiriquement démontrée depuis l’annotation de notre corpus. Notons néanmoins la présence de signaux négatifs aisément identifiables comme un « Je ne sais pas » après une question (ExecNegativeAutoFB) ou un « Pardon ? » (PerceptNegativeAutoFB). Dans tous les cas, nos résultats attestent de l’existence de signaux de retour. Ensuite, notre corpus fait apparaître une communication de bonne qualité entre nos interlocuteurs comme noté par [Loisel 2008]. Les retours négatifs ne recouvrent en effet que 2.7% des fonctions de la dimension Auto-feedback et 0.2% des fonctions totales (contre 8.4% pour les AutoPositive). Cette observation est supportée par le faible nombre de fonctions annotées dans la dimension Allo-feedback qui va de pair avec la dimension Auto-feedback lors de mauvaise compréhension. À ces signaux négatifs peuvent5.1. Processus d’annotation 125 s’ajouter les fonctions générales qui consistent en des questions de vérification. L’un dans l’autre, les retours négatifs n’atteignent que 0.70% du total de fonctions. Fonction Prop. relative Prop. absolue AutoPositive 89.86% 8.40% Fonctions générales 5.74% 0.50% Fonctions négatives 2.70% 0.20% Autres fonctions positives 1.69% 0.10% Tableau 5.18: Synthèse des fonctions annotées dans la dimension Auto-feedback. La proportion relative désigne la proportion de la fonction dans la catégorie à laquelle elle appartient. La proportion absolue désigne la proportion de la fonction dans l’ensemble des fonctions observées produites. Autres dimensions principales Le cas des dimensions Time Management et Own Communication Management sont plus simples car elles n’impliquent que peu de fonctions. L’annexe A.3.7 présente les données en détail pour chacune de ces dimensions. La dimension Time Management fait apparaître un usage massif de la fonction Stalling qui permet au locuteur de gagner du temps pour formuler sa contribution. La dimension Own Communication Management met en avant deux fonctions : Retraction et sa spécialisation Self-correction. La première permet au locuteur de retirer une partie de ce qu’il a dit dans le même tour de parole (e.g., hésitations). La seconde permet au locuteur de corriger une erreur faite dans le même tour (e.g., auto-correction). 5.1.4 Synthèse Nous avons étudié notre corpus en terme d’unités d’interaction multifonctionnelles : les segments fonctionnels. Ces derniers ont émergé d’une tentative de doter l’expression « énoncé » d’une définition rigoureuse [Bunt 2011b]. La production de segments fonctionnels dans notre corpus est réalisée au travers du processus d’annotation. Celui-ci est constitué de deux parties : la segmentation (i.e., l’identification des unités d’interaction dans les tours de parole) et l’étiquetage (i.e., l’attribution d’une ou plusieurs fonctions communicatives aux segments). Nous avons adopté la stratégie d’étiquetage de fonctions communicatives strictement basée sur des indicateurs (marqueurs de surface, historique du dialogue, etc.). L’annotation a été réalisée en utilisant la taxonomie DIT++ au moyen de l’outil d’annotation Gate [Cunningham 2011]. Quatre annotateurs ont travaillé sur cette tâche. Les 18 entretiens de notre corpus ont chacun été annotés par deux annotateurs. Ce processus a conduit à l’étiquetage de fonctions communicatives par les deux annotateurs sur les segments fonctionnels couvrant 73% du corpus initial. La majorité des tours non annotés a été volontairement exclue de par son intervention dans une conversation libre hors du cadre CISMeF. Compte tenu de la décomposition en segmentation et étiquetage de la tâche d’annotation, nous avons exploré la mesure de l’accord entre les annotateurs (IAA) en terme de précision, rappel et F-mesure (F1 score). Globalement, l’accord obtenu entre les annotateurs est fiable. En particulier, l’accord sur la segmentation est fort. L’IAA par dimension sur la tâche d’étiquetage révèle un accord fiable pour les dimensions principales 7 qui représentent 93% des fonctions communicatives annotées. La dimension Task, qui représente deux tiers des fonctions 7. Il s’agit des dimensions Task, Time Management, Auto-feedback, Own Communication Management.126 Chapitre 5 : Annotation du corpus et extraction de motifs annotées, s’illustre avec un accord fort. Ce dernier est uniformément réparti sur l’ensemble des catégories de fonctions communicatives intervenant dans cette dimension. Globalement, les résultats de notre tâche d’annotation permettent de confirmer la multifonctionnalité des énoncés aussi bien pris au sens de segment fonctionnel qu’au sens de tour de parole. L’analyse en terme de dimension permet d’affirmer que deux tiers des fonctions ont pour but d’avancer la tâche sous-jacente du dialogue tandis qu’un tiers concerne la gestion des processus d’interaction. En outre, quatre dimensions se distinguent en terme de proportion de fonctions annotées : la dimension Task, la dimension Time Management, la dimension Auto-Feedback et celle de Own Communication Management. Une étude de la co-occurrence des dimensions a montré qu’une fonction de la dimension Task co-occurre principalement avec des fonctions permettant de gérer l’élocution du locuteur, de produire des feedback ou de gérer les tours de parole. Enfin, l’annotation de fonctions dans la dimension Auto-feedback a mis en avant la difficulté d’analyse des niveaux des processus impliqués (attention, perception, compréhension, évaluation, exécution) à partir des indices de surface des énoncés. La quasi-totalité des fonctions annotées dans cette dimension sont des feedbacks positifs sous-spécifiés. Notre étude atteste néanmoins l’existence de signaux de retour et souligne la difficulté d’y attribuer un niveau. Notre corpus comporte majoritairement des signaux de retour positif confortant l’observation de [Loisel 2008]. Notre analyse a permis de souligner des différences entre le corpus AL et le corpus VD. La première différence concerne la longueur des entretiens. Ceux du corpus AL sont en moyenne trois à quatre fois plus courts que les entretiens du corpus VD en terme de tours de parole. La seconde différence provient des experts. L’expert AL est communicativement plus actif que l’expert VD en terme de nombre de segments fonctionnels produits par rapport au demandeur ou en terme de nombre d’actes de dialogue par tour de parole. Au-delà des différences entre les experts AL et VD, nous avons observé que l’expert est communicativement plus actif que le demandeur. Cette observation se base aussi bien sur le nombre de segments fonctionnels produits que sur le nombre d’actes de dialogue en moyenne par tour. Une analyse des fonctions de la dimension Task a permis de voir que l’expert et le demandeur utilisent proportionnellement les mêmes catégories de fonctions. La différence principale survient dans la catégorie des fonctions de discussion d’action. L’expert produit majoritairement des fonctions initiatives (suggestion, offre et requête). Le demandeur, quant à lui, est équilibré entre les fonctions initiatives (suggestion et requête) et réactives (acception ou refus). Outre les limites citées p. 111, la limite inhérente à ce type d’analyse est qu’elle est faite a posteriori. Malgré les précautions prises, nous ne pouvons pas exclure un biais dans l’interpré- tation des énoncés dû à la possession de la totalité du dialogue, et en particulier de la réponse suivant l’énoncé en cours d’interprétation. Il est néanmoins difficile de se défaire de cette limite. Le processus d’annotation a conduit à la représentation du corpus Cogni-CISMeF sous la forme de séquences d’unité d’interaction multidimensionnelle. C’est cette représentation qui est exploitée pour l’extraction de motifs dialogiques. 5.2 Processus d’extraction de motifs dialogiques Cette section présente le processus d’extraction de motifs dialogiques réalisé sur une partie du corpus Cogni-CISMeF. Nous abordons dans un premier temps la mise en place du processus d’extraction (cf. section 5.2.1). Ensuite, nous présentons les motifs dialogiques obtenus (cf. section 5.2.2). Enfin, nous synthétisons les conclusions de ce processus d’annotation (cf. section 5.2.3).5.2. Processus d’extraction de motifs dialogiques 127 5.2.1 Configuration du processus d’extraction Dans cette section, nous présentons la configuration du processus d’extraction de motifs. Nous commençons par décrire la constitution d’un corpus de référence et d’un corpus d’extraction. Puis nous justifions la restriction de notre champ d’étude à la dimension Task. Enfin, nous présentons le processus d’extraction de motifs dialogiques. Corpus de référence et corpus d’extraction Avant de débuter le processus d’extraction, nous avons constitué un corpus de référence en sélectionnant aléatoirement un tiers du corpus. Ce dernier contient 6 entretiens sur 18 dont trois entretiens du corpus AL (AL02, AL05, AL09) et trois entretiens du corpus VD (VD03, VD08, VD09). Les douze autres entretiens forment le corpus d’extraction utilisé pour le processus d’extraction. Le corpus de référence est exploité à des fins de validation, notamment en terme de couverture des jeux de dialogue modélisés depuis les motifs dialogiques extraits lors du processus d’extraction. En conséquence, il a été analysé après avoir proposé le modèle de jeux de dialogue. Choix de la dimension Task Nous concentrons nos efforts sur l’étude de la seule dimension Task. Ceci est rendu possible grâce à la propriété de partialité du schéma d’annotation DIT++ (cf. section 5.1.2). Chaque dimension a été conçue de manière à ne représenter qu’une activité bien définie du dialogue, dont l’existence empirique a été démontrée et dont l’orthogonalité a été empiriquement validée. Cette décision est motivée par un constat réaliste : le dialogue est une activité complexe mêlant gestion de la tâche et gestion de la communication sur plusieurs niveaux. Il n’est pour le moment pas envisageable de mener dans une seule thèse la modélisation de l’ensemble de ces activités parallèles intervenant dans le dialogue. Ce constat est appuyé par l’existence de thèses consacrées uniquement à certains processus intervenant dans le dialogue (e.g., le grounding [Traum 1994a], la gestion des tours de parole [Kronlid 2008]). Il est donc indispensable de délimiter notre champ d’étude tout en gardant à l’esprit l’existence et la nécessité d’intégrer d’autres activités intervenant dans le dialogue. Nous avons choisi de nous limiter à la dimension Task car elle présente de nombreux avantages. Premièrement, la dimension Task prévaut sur les autres dimensions en terme de nombre de fonctions communicatives dans le corpus Cogni-CISMeF. Elle représente en effet deux tiers du corpus. Comme précédemment noté, l’accord inter-annotateur sur cette dimension est fort et uniformément réparti sur l’ensemble des catégories de fonctions communicatives y intervenant. Ensuite, les dimensions Time et Own Communication Management sont principalement monologiques dans le sens où elles concernent des hésitations et des auto-corrections du seul locuteur. Elles ne sont donc pas de bons candidats à l’extraction de motifs d’interaction entre deux interlocuteurs. Enfin, l’annotation dans la dimension Auto-feedback a démontré la difficulté d’identification des niveaux de la communication à partir des formes de surface des énoncés. Cette dimension est dominée par l’usage de la fonction de feedback positif sous-spécifié. Elle n’est donc pas un bon candidat pour la modélisation des processus de feedback essentiellement sur plusieurs niveaux (voir, e.g., [Larsson 2003]). Nous ferons néanmoins une unique exception en intégrant à certains motifs dialogiques la fonction ExecNegativeAutoFB qui est un feedback négatif au niveau exécution. Nous préciserons dans les motifs dialogiques où elle intervient les raisons qui nous ont poussé à l’intégrer.128 Chapitre 5 : Annotation du corpus et extraction de motifs Le corpus d’extraction est constitué de 2825 fonctions communicatives dans la dimension Task dont 2072 sont produites par l’expert et 753 par le demandeur. Sous ces trois aspects, le corpus d’extraction représente 65% du total du corpus Cogni-CISMeF. Processus itératif de recherche de motifs dialogiques L’extraction de motif dialogique, que j’ai moi-même réalisée, est un processus itératif principalement manuel. La constitution des motifs dialogiques se base sur l’extraction de séquences de segments fonctionnels récurrentes. En conséquence de la restriction à la dimension Task, nous nous intéressons uniquement aux segments fonctionnels qui possèdent une fonction annotée dans cette dimension (auxquels nous ajoutons les segments fonctionnels contenant la fonction ExecNegativeAutoFB dans la dimension Auto-feedback). Les segments fonctionnels que nous considérons ne possèdent qu’un seul acte de dialogue constitué de la fonction annotée dans la dimension Task et du contenu sémantique déterminé par la forme de surface du segment. Pour cette raison, nous parlons également de séquences d’actes voire de séquences de fonctions pour désigner la séquence de segments fonctionnels. La détection de séquences de segments fonctionnels récurrents se fonde pour chaque segment sur (i) la fonction annotée dans la dimension Task, et sur (ii) la forme linguistique du segment fonctionnel qui fournit le contenu sémantique. La prise en compte de ces deux paramètres permet de différencier les séquences de segments fonctionnellement liés (« – donc c’est des douleurs articulaires à quel niveau ? – au niveau des genoux et autres » (AL06)) de ceux qui ne le sont pas comme les énoncés ignorés par un des interlocuteurs (« – mais peut-être que c’est euh trop spécifique ? – donc l’anorexie et les problèmes du même genre ? – oui » (AL07)). En outre, nous ne considérons que les séquences qui incluent au moins un segment produit par chaque interlocuteur. Autrement dit, cette séquence doit évoluer sur au moins deux tours de parole. La sélection d’une séquence de segments fonctionnels dépend de sa récurrence, i.e., son apparition dans des entretiens du corpus. Pour être récurrente, elle doit apparaître dans au moins deux entretiens. Un motif dialogique est formé par le regroupement de certaines séquences. Les critères de regroupement sont liés dans notre cas à l’acte initiatif des séquences. Par exemple, toutes les séquences débutant par un acte de question à choix multiples sont regroupées dans le motif de question à choix multiples. Une instance d’un motif dialogique est la réalisation de l’une de ses séquences. Nous verrons que les motifs dialogiques extraits possèdent une instance dans plus d’un tiers des entretiens (soit 4 entretiens sur 12). Une fois les motifs dialogiques détectés et annotés manuellement dans les entretiens, nous avons calculé les proportions d’occurrence inter-motif dialogique (i.e., la proportion d’apparition d’un type de motif par rapport aux autres) et intra-motif (i.e., la proportion d’apparition de la séquence de fonctions formant l’instance du motif dialogique). 5.2.2 Résultats du processus d’extraction Cette section présente les résultats du processus d’extraction. Elle débute par une présentation globale des catégories de motifs dialogiques observés. Les motifs dialogiques sont ensuite présentés et illustrés par des exemples du corpus d’extraction. Enfin, nous abordons la couverture des motifs dialogiques extraits en terme de fonctions communicatives et de tours de parole.5.2. Processus d’extraction de motifs dialogiques 129 Répartition des motifs dialogiques Le processus d’extraction de motifs dialogiques a conduit à l’obtention de 11 motifs dialogiques évoluant principalement dans la dimension Task. Nous les avons regroupés dans trois grandes catégories. 6 motifs ont été observés dans la catégorie de recherche d’information, 3 dans la catégorie de discussion d’action et enfin 2 motifs dans la catégorie de transfert d’information. Ces régularités sont constituées de fonctions générales. La fonction ExecNegativeAutoFB de la dimension Auto-feedback n’intervient que dans la catégorie de recherche d’information. 431 instances de motifs dialogiques ont été observées dans l’ensemble du corpus d’extraction. Elles impliquent l’usage d’environ 860 fonctions communicatives provenant en large majorité de la dimension Task. Il est indispensable de préciser que la correspondance entre les catégories de motifs dialogiques et les catégories de fonctions communicatives (abordées dans le processus d’annotation) ne peut pas se faire de façon immédiate. Ainsi, les motifs dialogiques de recherche d’information sont constitués de fonctions communicatives des catégories de recherche d’information et de fonctions fournissant de l’information (Answer, Confirm et Disconfirm). Les motifs dialogiques de transfert d’information sont formés d’un sous-ensemble de fonctions fournissant de l’information (Inform, Agreement, Disagreement et Correction). Enfin, les motifs dialogiques de discussion d’action sont constitués des fonctions communicatives de la catégorie du même nom. La répartition observée des instances de motifs dialogiques par catégorie ne fait pas apparaître une catégorie clairement dominante (cf. figure 5.2). Environ 40% des motifs appartiennent à la catégorie de recherche d’information. Un peu plus d’un tiers des motifs proviennent de la catégorie de discussion d’action. Enfin, les instances de motifs de transfert d’information représentent environ 26% des instances totales. 33,87% 40,14% 25,99% Discussion d'action Recherche d'information Transfert d'information Figure 5.2: Répartition observée des instances de motifs dialogiques par catégorie dans le corpus d’extraction La répartition des catégories de motifs peut sembler surprenante lorsque l’on prend en compte les proportions des fonctions communicatives y intervenant. En effet, les fonctions les plus observées dans le corpus (Inform et Suggestion) interviennent dans les catégories de motifs dialogiques contenant le moins d’instances. La principale raison tient au fait que l’expert produit des tours de parole contenant beaucoup d’actes de dialogue qui ne sont pas verbalement considérés par le demandeur (cf. section 5.1.3). Or, les motifs dialogiques ne prennent en compte que les sé- quences d’actes de dialogue au niveau de la dimension Task impliquant les deux interlocuteurs. Nous avons précédemment vu que la catégorie de fonctions fournissant de l’information est dés- équilibrée par un nombre élevé de fonctions Inform (cf. section 5.1.3). Ceci est imputable à la stratégie de segmentation et à la verbalisation de l’expérimentation de la part de l’expert.130 Chapitre 5 : Annotation du corpus et extraction de motifs En conséquence, un nombre important de fonctions Inform n’a pas vocation à être dans un motif dialogique. Nous avions également vu qu’une large majorité des fonctions de Suggestion produites par l’expert n’est pas verbalement considérée par le demandeur. Une grande part des fonctions de Suggestion produites ne fait partie d’aucun motif dialogique. Ainsi, une proportion importante de fonctions fournissant de l’information et de discussion d’action ne contribuent pas à des motifs dialogiques, ce qui explique la répartition observée des instances de motifs dialogiques par catégorie. Enfin, tous les motifs dialogiques admettent une de leur instance dans au moins un tiers des dialogues. L’annexe A.4.3 fournit le détail de la présence des motifs dialogiques dans les entretiens du corpus d’extraction. Motifs dialogiques observés Forme des motifs Comme envisagé dans [Schegloff 1973, Clark 1996, Lewin 2000, Hulstijn 2000b], nous avons principalement observé des motifs dialogiques de type initiative-réponse. Sur les 11 motifs découverts, 10 sont des motifs en deux temps, et un seul est un motif en trois temps. Un motif en deux temps est une paire adjacente avec des secondes parties de paire préférées ou non. Le motif en trois temps est un enchaînement de paires. Chaque motif en deux temps extrait prend la forme d’un acte de dialogue initiatif suivi par un des actes de dialogue réponse possibles associé à sa proportion d’occurrence observée dans le corpus d’extraction. L’initiateur du motif est l’interlocuteur qui produit la première partie de la paire tandis que le partenaire est celui qui réagit dans la seconde partie de la paire. Nous présentons maintenant pour chaque catégorie, les motifs qui y interviennent. Nous nous efforçons de donner pour chaque motif un ou plusieurs exemples d’instances tirés du corpus. Le lecteur intéressé peut trouver plus d’exemples en annexe A.4.4. Motifs dialogiques de recherche d’information Les motifs dialogiques de recherche d’information permettent à l’initiateur de s’enquérir d’une information auprès du partenaire. Nous avons observé 6 motifs qui correspondent aux 6 types de questions présents dans la catégorie « information-seeking » de la taxonomie DIT++. Ces motifs sont exclusivement de type initiative-réponse. Chacun de ces motifs est initié par un acte dont la fonction est une spé- cialisation de la fonction Question (i.e., CheckQuestion, PosiCheck, NegaCheck, SetQuestion, ChoiceQuestion ou PropositionalQuestion). La figure 5.3 présente la répartition des différents motifs dialogiques de cette catégorie. La répartition des motifs dialogiques est cohérente par rapport à la proportion observée des fonctions de la catégorie « information-seeking » dans le corpus (cf. section 5.1.3). Schématiquement, les trois quarts des motifs dialogiques sont initiés par des fonctions représentant des questions à réponse déterminée (CheckQuestion, PosiCheck, NegaCheck, ChoiceQuestion et PropositionalQuestion). En particulier, nous observons une domination des motifs dialogiques initiés par des questions de vérification (CheckQuestion, PosiCheck et NegaCheck) qui représentent un peu moins de 62% du total. Ces derniers sont suivis du motif de question à choix multiples (8, 67%) et du motif de question oui/non (6, 36%). L’autre quart est représenté par le motif dialogique initié par une fonction représentant une question ouverte (SetQuestion). La particularité des motifs de recherche d’information est la considération de la fonction spé- cifique ExecNegativeAutoFB de la dimension Auto-feedback, relative au niveau de l’interaction5.2. Processus d’extraction de motifs dialogiques 131 49,13% 6,36% 4,05% 6,36% 8,67% 25,43% Vérification Vérification positive Vérification négative Question oui/non Question à choix multiple Question ouverte Figure 5.3: Répartition observée des instances de motifs dialogiques de recherche d’information dans le corpus Cogni-CISMeF d’exécution (cf. section 1.1.2). Ce niveau est le plus haut niveau dans le traitement d’un énoncé. Il suit les niveaux d’attention, de perception, d’interprétation et d’évaluation. Il s’agit du niveau où la fonction et le contenu sémantique de l’acte ont été établis (via les niveaux d’attention jusqu’à l’interprétation) et l’acte a été vérifié comme étant consistant avec l’état d’information (via le niveau d’évaluation). L’exécution correspond à la réaction qui peut rencontrer certains problèmes. Par exemple, « exécuter » une question consiste à déterminer sa réponse. Un échec de cette exécution conduit à un feedback négatif de niveau exécution (ExecNegativeAutoFB) traduisant un « je ne sais pas ». L’avantage des feedbacks négatifs est qu’ils sont très souvent explicites et reconnaissables grâce à des marqueurs de surface (« pardon ? », « je ne sais pas ») [Bunt 2010]. Nous avons choisi de considérer l’acte ExecNegativeAutoFB parce qu’il est (i) toujours observé après une fonction de type question (l’annexe A.4.2 présente les fonctions qui la précèdent), (ii) aisément reconnaissable par des marqueurs de surface, et (iii) c’est le seul acte de niveau d’exécution observé dans le corpus. Les motifs dialogiques de vérification Nous avons observé quatre motifs dialogiques de vérification d’une proposition. Ces motifs permettent de vérifier la valeur de vérité d’une proposition. Ils varient par la fonction communicative utilisée dans l’acte initiatif. Un extrait des motifs dialogiques de vérification est présenté dans le tableau 5.19. Question oui/non Vérification d’une information Première partie PropositionalQuestion CheckQuestion Seconde partie . . . préférée Answer (90.91%) Confirm (45.45%) . . . non-préférée ExecNegativeAutoFB (9.09%) Disconfirm (37.88%) Answer (15.15%) ExecNegativeAutoFB (1.52%) Tableau 5.19: Extrait des motifs dialogiques de vérification (catégorie de recherche d’information) Le motif dialogique de question oui/non est initié par la fonction PropositionalQuestion (cf. tableau 5.19). Cette dernière est la fonction parente des fonctions de vérification (CheckQuestion, PosiCheck et NegaCheck). Elle permet d’obtenir la valeur de vérité de la proposition formant son contenu sémantique sans aucun a priori sur celle-ci. Ce motif a été peu observé dans notre corpus (6.36% des instances de motifs de la catégorie recherche d’information). Il possède une instance dans un tiers des entretiens. La seconde partie de paire préférée est un acte Answer132 Chapitre 5 : Annotation du corpus et extraction de motifs donnant la valeur de vérité de la proposition (90.91% des cas). Un exemple d’instance dans ce cas est présenté dans le dialogue 5.2. Task S1 : il y a pas un synonyme de cette maladie ? PropositionalQuestion H2 : non Answer Dialogue 5.2 – Exemple d’un motif de type question oui/non avec seconde partie de paire pré- férée (entretien AL03) La seconde partie de paire non-préférée intervient dans 9.09% des cas. Il s’agit d’un feedback d’exécution négative illustré par le dialogue 5.3. Task AutoFB S1 : C’est très handicapant vous pensez PropositionalQuestion AutoPositive H2 : J’en sais rien ExecNegativeAutoFB Dialogue 5.3 – Exemple d’un motif de type question oui/non avec seconde partie de paire nonpréférée (entretien VD04) Le second motif que nous abordons est celui de vérification d’une information initié par la fonction CheckQuestion. Cette dernière est une spécialisation de la fonction PropositionalQuestion qui se différencie par le fait qu’elle s’attend à ce que la véracité de la proposition formant son contenu sémantique soit confirmée par le partenaire. Ce motif dialogique est celui qui a été le plus observé dans le corpus (49.13% des cas). Il apparaît dans l’ensemble des entretiens du corpus d’extraction. Il est présenté dans le tableau 5.19. L’acte CheckQuestion est suivi dans 45.45% des cas du corpus d’extraction par la seconde partie de paire préférée Confirm. Celle-ci permet de confirmer que le contenu propositionnel est vrai. Le dialogue 5.4 présente un exemple d’instantiation de ce motif dans ce cas. Task S1 : vous voulez savoir les traitements de manière générale finalement ? CheckQuestion H2 : voilà / oui c’est ça Confirm Dialogue 5.4 – Exemple d’un motif de type vérification avec seconde partie de paire préférée (entretien AL12) Ce motif dialogique admet trois secondes parties de paire non-préférées. La plus courante se manifeste par un acte Disconfirm qui déclare la proposition comme étant fausse (37.88% des cas observés). Le dialogue 5.5 propose un exemple d’instantiation du motif dans ce cas. La seconde partie de paire est dans 15.15% des cas observés une fonction Answer. Il s’agit d’un cas d’altération du projet conjoint [Clark 1996] : le partenaire altère la question initiale de manière à pouvoir produire une réaction qu’il peut et souhaite produire. Dans le cas d’une question de vérification, le partenaire altère le projet de manière à ne pas confirmer ni infirmer l’objet de la question. Le dialogue 5.6 présente un exemple d’un telle altération. Au tour S1, l’interlocuteur demande l’ajout de la spécialité médicale « médecine du sport » à la requête. Son partenaire entame alors une question de vérification afin de s’assurer que la spécialité médicale5.2. Processus d’extraction de motifs dialogiques 133 Task S1 : C’est le même que tout à l’heure ? CheckQuestion H2 : non c’est pas le même Disconfirm Dialogue 5.5 – Exemple d’un motif de type vérification avec seconde partie de paire non-préférée (entretien VD05) est bien en lien avec le besoin d’information (tour H2). L’autre interlocuteur réagit en répondant en fait à la question « quelle serait la requête si les interlocuteurs ajoutaient la spécialité médicale », avant d’émettre des réserves (tour S3). Notons qu’il n’infirme, ni ne confirme le lien entre la spécialité médicale et le besoin d’information. Son interlocuteur accepte alors la requête (tour H4). Task S1 : sinon t’avais des trucs t’avais dans la médecine du sport j’ai vu qu’il y avait médecine de sport Request H2 : et ça serait lié aussi à la médecine de sport ? CheckQuestion S3 : caries médecine de sport Answer enfin [. . . ] je dis ça Inform H4 : non c’est une très bonne idée AcceptRequest Dialogue 5.6 – Exemple de motif de type vérification avec altération du projet conjoint (entretien AL11) Enfin, la dernière seconde paire non-préférée est la production d’un acte ExecNegativeAutoFB traduisant l’impossibilité de trouver une réponse (observée dans une minorité de cas). La fonction CheckQuestion admet deux spécialisations : PosiCheck et NegaCheck. La première spécialisation est une question de vérification sous-entendant de manière plus forte que le partenaire va confirmer la proposition (« – alors plus précisémment ce serait le genou alors ? – oui » (AL06)). La seconde spécialisation sous-entend que le partenaire va infirmer la proposition (« – vous ne voyez pas grand chose non plus ? – [. . . ] rien / je vois rien » (VD04)). Elle est généralement marquée par l’emploi de la négation. Ces deux spécialisations ont produit deux nouveaux motifs dialogiques. Ces derniers représentent de manière cumulée un peu plus de 10% des motifs de la catégorie recherche d’information. Ils apparaissent tous deux dans un tiers des entretiens du corpus d’extraction. Chacun de ces motifs n’inclut qu’un seul acte initiatif et un seul acte réactif. Nous n’avons observé dans le corpus que des confirmations de la véracité d’une proposition (motif de vérification positive) ou de sa fausseté (motif de vérification négative). Cela peut s’expliquer par la stratégie d’annotation nécessitant des annotateurs des indices clairs pour annoter des fonctions spécialisées. Le motif dialogique de question ouverte Un peu plus d’un quart des motifs de recherche d’information sont des instances du motif dialogique de question ouverte initié par la fonction SetQuestion (cf. tableau 5.20). Ce motif intervient dans 9 entretiens sur 12. La seconde paire préférée est constituée d’une fonction Answer et intervient dans 94.87% des cas. Cette fonction permet d’apporter une réponse à la question. Le dialogue 5.7 présente un exemple d’une instance d’un tel motif dialogique. La seconde paire non-préférée a été observée dans 5.13% des134 Chapitre 5 : Annotation du corpus et extraction de motifs cas. Il s’agit d’un feedback négatif de niveau exécution. Le dialogue 5.8 présente un exemple de dialogue avec une seconde paire non-préférée. De manière intéressante, la réponse à la question se fait en deux temps (tour H2). Dans le premier temps, le locuteur fournit un feedback de compréhension positif de la question d’un niveau inférieur au niveau d’exécution (qui a été annoté par la fonction AutoPositive). Puis il fournit un feedback négatif d’exécution. Question ouverte Question à choix multiples Première partie SetQuestion ChoiceQuestion Seconde partie . . . préférée Answer (94.87%) Answer (93.34%) . . . non-préférée ExecNegativeAutoFB (5.13%) ExecNegativeAutoFB (6.67%) Tableau 5.20: Motifs dialogiques de question ouverte et de question à choix multiples Task S1 : quel est le spécialiste de la peau c’est qui ? SetQuestion H2 : dermatologie Answer Dialogue 5.7 – Exemple de motif de type question ouverte avec seconde partie de paire préférée (entretien VD04) Task AutoFB S1 : comment on fait pour garder les documents ? SetQuestion H2 : comment on fait pour garder les documents AutoPositive ça c’est une bonne question ExecNegativeAutoFB Dialogue 5.8 – Exemple d’un motif de type question ouverte avec seconde partie de paire nonpréférée (entretien VD06) Le motif dialogique de question à choix multiples Le motif de question à choix multiples (cf. tableau 5.20) constitue 8.67% des instances observées de la catégorie. Il apparaît dans 5 entretiens sur 12. Ce motif dialogique est initié par la fonction ChoiceQuestion. Le contenu sémantique associé à cette fonction représente une liste de propositions alternatives. La seconde partie de paire préférée consiste en un acte Answer dont le contenu sémantique est la proposition choisie comme étant vraie dans les propositions alternatives (93.34% des cas). Le dialogue 5.9 est un exemple d’une telle séquence. De la même manière que pour le motif de question ouverte, la seconde partie de paire non-préférée est l’acte ExecNegativeAutoFB informant de l’échec à choisir une proposition parmi les alternatives. Motifs dialogiques de discussion d’action Les motifs dialogiques de discussion d’action permettent à un interlocuteur de demander ou d’offrir la réalisation d’une action qui doit être validée par le partenaire. Ils représentent 33.87% du total des instances de motifs observées. Nous avons observé trois motifs dialogiques de type initiative-réponse. Chacun de ces motifs est initié par un acte dont la fonction est Suggestion, Request ou Offer. La figure 5.4 présente la répartition observée dans le corpus Cogni-CISMeF des instances de motifs de discussion.5.2. Processus d’extraction de motifs dialogiques 135 Task AutoFB S1 : c’est uniquement sur le genou ? sur les problèmes d’articulation en général ? ChoiceQuestion H2 : en général Answer S3 : en général AutoPositive Dialogue 5.9 – Exemple de motif de type question à choix multiples avec seconde partie de paire préférée (entretien AL06) 60,27% 21,92% 17,81% Suggestion Requête Offre Figure 5.4: Répartition observée des instances de motifs dialogiques de discussion d’action dans le corpus Cogni-CISMeF Cette répartition est cohérente par rapport à la proportion des trois fonctions initiatives observée dans le corpus pour l’expert et le demandeur (cf. section 5.1.3). On observe une majorité d’instances de motifs initiées par une fonction Suggestion qui arrive en tête des fonctions de discussion d’action utilisées par l’expert et le demandeur. Les proportions des instances de motifs dialogiques initiées par des fonctions Request et Offer sont relativement équilibrées et oscillent chacune autour de 20% du total des instances de motifs de discussion d’action. Les motifs dialogiques de discussion d’action sont synthétisés dans le tableau 5.21. Suggestion Requête Offre Première partie Suggestion Request Offer Seconde partie . . . préférée AcceptSuggestion (94.25%) AcceptRequest (96.88%) AcceptOffer (40%) . . . non-préférée DeclineSuggestion (5.75%) DeclineRequest (3.12%) DeclineOffer (60%) Tableau 5.21: Motifs dialogiques de discussion d’action Le motif de suggestion d’action intervient dans 11 entretiens sur 12. Il est initié par la fonction Suggestion (cf. tableau 5.21). Celle-ci est associée à un contenu sémantique décrivant une action. À la différence des fonctions Offer et Request, l’action décrite dans le contenu sémantique peut impliquer le destinataire de l’action ou bien les deux interlocuteurs. C’est pourquoi elle est souvent marquée linguistiquement par l’emploi du « nous » ou du « on ». La seconde partie de paire préférée est une acceptation de la suggestion via l’acte AcceptSuggestion (observée dans 94.25% des cas). Le dialogue 5.10 présente un exemple de ce cas. L’initiateur suggère à son partenaire de réaliser l’action d’ajout du mot-clé « troubles de l’alimentation » dans le tour S1. Cette suggestion est acceptée par le partenaire dans le tour suivant. La seconde partie de paire136 Chapitre 5 : Annotation du corpus et extraction de motifs non-préférée est un refus de l’action suggérée réalisé via l’acte DeclineSuggestion. Cette seconde partie a été très peu observée (5.75% des cas). Le dialogue 5.11 présente un exemple de suggestion déclinée. L’initiateur suggère l’ajout de « colon » à la requête. Le partenaire accepte dans un premier temps avant de s’auto-corriger et de décliner la suggestion (tour H2). L’analyse du corpus au niveau des fonctions fait apparaître une seconde paire non-préférée envisageable pour ce motif dialogique : l’acte AddressSuggestion. Cette dernière permet d’accepter conditionnellement l’action suggérée. Nous ne l’avons pas considérée dans le motif dialogique car elle n’apparaît que très minoritairement dans le corpus (deux apparitions cantonnées au même entretien VD04). Task S1 : on va rentrer comme mot clé troubles de l’alimentation Suggestion H2 : ça marche AcceptSuggestion Dialogue 5.10 – Exemple de motif de type suggestion avec seconde partie de paire préférée (entretien AL07) Task S1 : faudrait colon quand même Suggestion H2 : moi je le mettrais bien bah quoi qu’on la là DeclineSuggestion Dialogue 5.11 – Exemple de motif de type suggestion avec seconde partie de paire non-préférée (entretien VD06) Le motif de demande de réalisation d’action apparaît dans la moitié des entretiens. Il est initié par l’acte Request. L’initiateur demande au destinataire de cet acte de réaliser l’action décrite dans son contenu sémantique. La réalisation de l’action est conditionnée par l’acceptation du partenaire ce qui explique les deux secondes parties de paire observées (cf. tableau 5.21). La seconde partie de paire préférée est celle qui intervient dans la grande majorité des cas (96.88%). Il s’agit de l’acceptation de la requête par le partenaire via l’acte AcceptRequest. Le dialogue 5.12 illustre un cas de requête acceptée. De la même façon que le motif de suggestion, la seconde partie de paire non-préférée est un refus de réaliser la requête. Ce cas a été très peu observé (3.13%). La fonction AddressRequest qui pourrait former un autre cas de seconde paire non-préférée n’a pas été retenue. Elle permet au partenaire d’accepter conditionnellement la réalisation de l’action. Son éviction tient au fait qu’elle n’apparaît que trois fois dans le corpus d’extraction sans réel accord entre les annotateurs. Task AutoFB S1 : essayez avec clairance Request H2 : alors je l’essaie en mot clé AcceptRequest S3 : ouais c’est clairance Inform AutoPositive H4 : ok AutoPositive Dialogue 5.12 – Exemple de motif de type requête avec seconde partie de paire préférée (entretien VD07). L’instance de motif est initiée au tour S1 et la requête est acceptée au tour H2. Enfin, le dernier motif dialogique de discussion d’action détecté est celui d’offre de réalisation5.2. Processus d’extraction de motifs dialogiques 137 d’une action qui intervient dans deux tiers des entretiens (cf. tableau 5.21). Contrairement aux deux précédents motifs qui sont directifs, celui-ci est un promissif. En produisant l’acte Offer, l’initiateur propose à son partenaire de réaliser lui-même l’action décrite dans le contenu sémantique. La réalisation est conditionnée par l’acceptation du partenaire d’où sont issues les deux secondes parties de paires observées. La seconde partie de paire préférée est une acceptation via l’acte AcceptOffer. Contrairement aux deux motifs précédents, cette acceptation n’a pas été observée en majorité écrasante puisqu’elle n’apparaît que dans 60% des cas. Le dialogue 5.13 présente un exemple d’une offre acceptée. L’initiateur propose au partenaire de réaliser la recherche automatique du mot-clé « créatinine » dans le texte d’un document. Cette proposition est acceptée. La seconde partie de paire non-préférée est un refus de l’offre via l’acte DeclineOffer. Elle suit une offre dans 40% des cas. Le dialogue 5.14 présente un exemple de refus. Il ne faut pas se fier à la forme linguistique. L’offre prend la forme d’une question (tour S1) mais est en fait une proposition de lancer une nouvelle séquence de recherche collaborative (i.e., l’expert se propose d’assister le demandeur sur un nouveau sujet de recherche). Cette dernière est refusée. Cet exemple illustre le cas le plus fréquent de refus : l’expert offre la possibilité au demandeur de débuter une nouvelle séquence de recherche à la fin de l’entretien. Cette offre est refusée dans la quasi-totalité des entretiens (excepté l’entretien AL09). Nous avions vu la très faible proportion de la fonction AddressOffer lors de l’analyse des fonctions du corpus. Cette fonction n’est pas présente dans le corpus d’extraction. Task S1 : alors ce que je vous propose puisqu’il y a pas mal de choses à lire c’est d’aller chercher notre mot clé créatinine dans ce texte Offer H2 : ouais AcceptOffer Dialogue 5.13 – Exemple de motif de type offre avec seconde partie de paire préférée (entretien VD07) Task S1 : vous avez une autre question ? Offer H2 : non non non DeclineOffer Dialogue 5.14 – Exemple de motif de type offre avec seconde partie de paire non-préférée (entretien AL07) Motifs dialogiques de transfert d’information Les motifs dialogiques de transfert d’information représentent un échange strictement informationnel. Ils permettent aux interlocuteurs de s’accorder sur les faits qu’ils affirment (i.e. l’état du monde). Nous avons observé deux motifs dialogiques, l’un en deux temps (motif d’accord) et l’autre en trois temps (motif de correction). La figure 5.5 présente la répartition de ces motifs en terme de nombre d’instances observées dans le corpus. Cette catégorie est largement dominée par le motif d’accord (94.64% des instances observées). Nous avons observé marginalement le motif de correction (5.36% des cas). Le motif d’accord intervient dans 11 entretiens sur 12. Il possède deux actes initiatifs : Inform et Answer (cf. tableau 5.22). Autrement dit, les actes initiatifs sont des actes informatifs engageant leur locuteur sur son contenu propositionnel. Le motif d’accord est ainsi initié par un138 Chapitre 5 : Annotation du corpus et extraction de motifs 94,64% 5,36% Accord Correction Figure 5.5: Répartition observée des motifs dialogiques de transfert d’information dans le corpus CogniCISMeF acte informatif. Le partenaire peut alors réagir en exprimant son accord ou son désaccord. La seconde partie de paire préférée du motif est un acte Agreement (environ 99% des cas). Il permet d’exprimer un accord sur le contenu propositionnel de l’acte initiatif. Le dialogue 5.15 présente un exemple d’une instance du motif dans ce cas. L’initiateur affirme que les résultats retournés par la requête sont insatisfaisants comme les précédents obtenus (tour S1). Le partenaire affirme alors son accord (tour H2). La seconde partie de paire non-préférée est l’expression d’un désaccord via l’acte Disagreement. Elle n’a été observée que marginalement (1.01% des cas). Accord Première partie Acte informatif (Inform et Answer) Seconde partie . . . préférée Agreement (98.99%) . . . non-préférée Disagreement (1.01%) Tableau 5.22: Motif dialogique d’accord (catégorie de transfert d’information) Task S1 : C’est exactement la même chose en fait Inform H2 : humm, humm tout à fait Agreement Dialogue 5.15 – Exemple de motif d’accord avec seconde partie de paire préférée (entretien VD02) Le motif dialogique de correction est un cas particulier de désaccord observé dans un tiers des entretiens (cf. figure 5.6). De la même manière que le motif d’accord, il est initié par un acte informatif (Inform ou Answer). Cet acte est suivi par un acte de Correction. La fonction Correction est une spécialisation de la fonction Disagreement. En plus d’exprimer un désaccord, cette fonction propose un nouveau contenu sémantique qui a vocation à remplacer le contenu sémantique de l’acte informatif initiatif. Dans deux tiers des cas observés, cette correction est acceptée via l’acte Agreement. Dans l’autre tiers, l’instance s’arrête à l’acte de Correction. Le dialogue 5.16 présente un exemple de correction en trois temps. Dans le premier tour, le locuteur affirme que l’exécution de la requête retourne les mêmes documents qu’une requête précédente5.2. Processus d’extraction de motifs dialogiques 139 (tour S1). Son partenaire le corrige alors en lui précisant qu’il y a en fait plus de documents (tour H2). L’initiateur accepte alors la correction dans le dernier tour. {Inform|Task} {Correction|Task} 66,67% {Answer|Task} 33,33% {Agreement|Task} 66,67% Figure 5.6: Motif dialogique de correction Task S1 : alors nous retombons de nouveau sur la même chose que tout à l’heure Inform H2 : ah peut-être un peu plus Correction S3 : oui Agreement Dialogue 5.16 – Exemple de motif de type correction en trois temps (entretien VD04) Couverture des motifs dialogiques dans le corpus d’extraction Jusqu’alors nous avons présenté les motifs dialogiques sans préciser leur taux global d’apparition dans le corpus, i.e., la couverture des motifs. Une première approche pour quantifier la couverture du corpus d’extraction par les motifs dialogiques extraits est de comparer le nombre de fonctions communicatives intervenant dans une instance de motif au nombre de fonctions communicatives total dans la dimension Task. Le ratio obtenu est faible : seules 30.4% des fonctions communicatives de la dimension Task interviennent dans un motif. Néanmoins, nos motifs sont principalement des paires adjacentes impliquant la production d’une fonction communicative pour chaque interlocuteur. Or, l’expert produit 73.3% des fonctions communicatives dans le corpus d’extraction quand le demandeur en produit 26.7%. Compte tenu du fait que les motifs sont principalement en deux temps, les fonctions communicatives impliquées peuvent difficilement excéder le double des fonctions produites par le demandeur, soit 53.4% du total. Il est donc normal que le taux de couverture soit faible en terme de fonctions communicatives. Si nous regardons de plus près la constitution d’un tour de parole (cf. section 5.1.3), nous constatons la présence d’un bon nombre de segments fonctionnels isolés, i.e., non verbalement considérés par l’autre interlocuteur. C’est en particulier le cas des tours de parole de l’expert. Le dialogue 5.17 présente un exemple contenant des segments isolés. Le tour H2 est une longue prise de parole dans laquelle l’expert accepte la suggestion d’ajouter la spécialité médicale à la requête énoncée par le demandeur dans le tour S1. Il modifie également proactivement la requête à la suite des résultats rencontrés. À la fin de l’exemple, les deux interlocuteurs s’accordent sur l’intérêt des ressources. Sur les 13 segments fonctionnels, seuls 4 font partie d’un motif dialogique. Deux forment une instance d’un motif de suggestion et deux autres constituent une instance d’un motif d’accord. Notons que les segments isolés incluent des fonctions Inform et Suggestion précédemment discutées en section 5.1.3.140 Chapitre 5 : Annotation du corpus et extraction de motifs Task S1 : et des choses comme traumatologie ça serait : : Suggestion H2 : oui la thraumatologie ça serait bien AcceptSuggestion ah oui effectivement je n’ai pas pensé à mettre ça Inform on va voir ce qu’on obtient comme ça Suggestion (l’expert ajoute la spécialité médicale traumatologie à la requête et lance la requête) alors trois ressources Inform apparemment un qui concerne l’épaule / le sport / hmm : : et encore un truc sur xxx Inform allez on va encore chercher autre chose plutôt que arthralgie Suggestion on va rester dans thraumatologie et on va mettre genou Suggestion une nouvelle piste Inform (l’expert change le mot-clé « arthralgie » par « genou ») là on a 33 ressources Inform alors effectivement / ça s’annonce bien Inform S3 : ah oui il y a des choses là Agreement Dialogue 5.17 – Exemple de longue prise de parole de l’expert (entretien AL10) Afin d’avoir une mesure plus juste de la couverture réelle des motifs dialogiques extraits, nous avons dénombré le nombre de tours de parole engagés dans un motif dialogique. Un tour de parole est engagé dans un motif dialogique si et seulement si : (i) il inclut au moins un segment fonctionnel possédant une fonction dans la dimension Task (ou une fonction ExecNegativeAutoFB dans la dimension Auto-feedback), et (ii) il contient au moins un segment fonctionnel faisant partie d’une instance d’un motif dialogique extrait. Les tours de parole ne contenant aucun segment fonctionnel avec une fonction dans la dimension Task (ou une fonction ExecNegativeAutoFB dans la dimension Auto-feedback) sont exclus du compte. Dans le dialogue 5.17, les trois tours de parole sont engagés dans un motif dialogique. Le tour S1 fait partie d’un motif de suggestion, le tour S3 d’un motif d’accord et le tour H2 des deux motifs (suggestion et accord). Cette mesure met l’accent sur l’enchaînement des tours de parole plutôt que sur une couverture en terme de fonctions communicatives. Elle permet de caractériser le nombre de tours de parole liés par le déroulement de motifs dialogiques (ou une fonction ExecNegativeAutoFB dans la dimension Auto-feedback). 1129 tours de parole sont éligibles dans le corpus d’extraction, soit 83.4% du total de ce corpus. Les autres tours de parole ne contiennent aucun segment fonctionnel avec une fonction dans la dimension Task (ou une fonction ExecNegativeAutoFB dans la dimension Auto-feedback). Près de deux tiers (64.1%) des tours de parole considérés sont engagés dans au moins un motif dialogique. Les 35.9% non couverts peuvent s’expliquer par plusieurs raisons. La principale est que l’enchaînement de tour de parole est expliqué par une évolution sur l’axe de la gestion de l’interaction (50.2% des cas). Cela inclut des tours de parole suivis par des feedbacks de retour positif (« oui », « ok », « humm humm »), par des complétions de la part du partenaire, par des demandes de clarification ou encore par des prises de parole intempestives (marquées par l’usage de la fonction Turn Grab dans la dimension Turn Management). La seconde raison5.2. Processus d’extraction de motifs dialogiques 141 est la présence de tours de parole isolés (39.8% des cas). Il s’agit de tours de parole dont la transcription seule ne permet pas de conclure à un lien avec les tours précédents. Ils ne sont pas verbalement considérés par les interlocuteurs. Les 10% de cas restants sont marginaux. Dans 6.2% des cas, l’enchaînement des tours de parole démontre la présence d’un motif partiel. Les motifs impliqués sont principalement les motifs de discussion d’action. Il s’agit de requête ou de suggestion réalisées sans acceptation verbale (AcceptSuggestion/AcceptRequest). Dans une minorité de cas (2.6%), l’enchaînement des tours est expliqué par l’usage d’une fonction non couverte par un motif. Il s’agit des fonctions Instruct, AddressSuggestion et AddressRequest. Précisons que ces tours de parole représentent moins de 1% des tours considérés au total. Enfin, nous avons observé quelques phénomènes d’emboîtement de motifs ne respectant pas la stricte adjacence (1.2% des cas). 5.2.3 Synthèse Nous avons décomposé le corpus Cogni-CISMeF en deux sous-corpus : le corpus de référence constitué aléatoirement d’un tiers du corpus et le corpus d’extraction formé par les deux tiers restant. Seul le corpus d’extraction a été utilisé lors de l’extraction de motifs dialogiques. L’annotation multidimensionnelle du corpus avec le schéma DIT++ a permis de prendre en compte la complexité du dialogue qui implique la réalisation de plusieurs activités en parallèle. En outre, la définition des dimensions dans DIT++ rend possible l’exploitation partielle du corpus annoté pour l’analyse. Nous avons choisi d’exploiter cette caractéristique en limitant notre travail d’extraction à la principale dimension : la dimension Task. Ce choix est motivé par la volonté de ne pas mener de front la modélisation de l’ensemble des processus parallèles intervenant dans le dialogue qui nécessitent chacun une étude rigoureuse. La dimension Task semble la plus adaptée : c’est elle qui permet d’avancer la tâche sous-jacente au dialogue et elle prévaut naturellement en terme de fonctions communicatives. Le processus d’extraction est un processus itératif et manuel consistant en la détection de motifs dialogiques dans les entretiens, puis en l’annotation de ceux-ci. Les motifs dialogiques sont constitués de séquences de segments fonctionnels récurrentes dans les entretiens et qui incluent des interventions de la part des deux interlocuteurs. Ces séquences prennent en compte aussi bien la fonction dans la dimension Task que le contenu sémantique au travers de la forme de surface du segment fonctionnel. 11 motifs d’interaction constitués de fonctions générales et de la fonction ExecNegativeAutoFB ont été détectés. Nous les avons regroupés en 3 catégories : recherche d’information (6 motifs), transfert d’information (2 motifs) et discussion d’actions (3 motifs). Comme envisagé par de nombreux chercheurs [Schegloff 1973,Clark 1996,Lewin 2000,Hulstijn 2000b], nous avons principalement observé des motifs initiative-réponse constitués d’une paire adjacente avec une seconde partie de paire préférée ou non. Chaque motif extrait prend la forme d’un acte de dialogue initiatif suivi par un des actes de dialogue réponse possibles (associés à sa proportion d’occurrence observée dans le corpus d’extraction). Enfin, nous avons constaté que deux tiers des tours de parole susceptibles de contribuer à un motif dialogique sont effectivement engagés dans un motif. Le tiers restant est majoritairement impliqué dans des phénomènes interactionnels de non-considération ou d’évolution sur l’axe de l’interaction, volontairement exclus de notre étude.142 Chapitre 5 : Annotation du corpus et extraction de motifs 5.3 Discussion Ce chapitre a présenté les deux étapes d’exploitation du corpus : son enrichissement (via l’annotation) et l’extraction de motifs dialogiques. Le corpus a été transformé en une séquence d’unités multidimensionnelles produites par les interlocuteurs : les segments fonctionnels. La participation de ces unités dans les différentes activités parallèles du dialogue a été vue comme la production de fonctions communicatives dans plusieurs dimensions théoriquement fondées. Le processus d’annotation a ainsi conduit à l’obtention d’une représentation du corpus où chaque unité forme une ligne dont les colonnes sont constituées du locuteur, de la forme de surface du segment ainsi que des fonctions annotées dans les dix dimensions considérées. L’usage du schéma multidimensionnel DIT++ a permis de prendre en compte la richesse qui fait la complexité du dialogue. Le corpus ainsi transformé a rendu possible la recherche et l’extraction de motifs dialogiques récurrents impliquant la participation des deux interlocuteurs. Ces motifs ont été extraits manuellement sur la base de la fonction annotée dans la dimension Task, du contenu sémantique tiré de la forme de surface du segment et enfin de l’interlocuteur. En somme, cette étape a permis de déterminer des fragments d’interaction que l’on souhaite voir reproduit par un agent interactif. Nous avons constitué une bibliothèque initiale de 11 motifs d’interaction qui vont nous servir de base pour la création du modèle d’interaction d’un agent interactif. Le rôle de l’humain dans ces deux étapes de la méthodologie a été prégnant. Les seules interventions automatiques ont eu pour but d’exploiter les annotations réalisées manuellement afin de produire des statistiques. La réalisation manuelle de ces étapes est chronophage et nécessite un effort d’apprentissage non négligeable (notamment du schéma d’interaction pour les annotateurs). Elle a permis la réalisation des étapes cruciales : (i) la segmentation des unités de sens dans le dialogue, (ii) l’étiquetage multidimensionnel de ces unités, et (iii) la découverte et l’extraction de motifs dialogiques récurrents. Selon nous, l’évolution de la méthodologie dépend des possibilités de semi-automatiser les phases d’annotations et d’extraction [Ales 2012]. L’automatisation complète de ces deux étapes en est au stade de travaux de recherche. Les résultats acquis ne permettent pas pour le moment l’utilisation opérationnelle d’outils. Dans cette direction, le corpus Cogni-CISMeF annoté peut servir de base pour l’entraînement d’algorithme d’apprentissage sur la reconnaissance d’actes de dialogue. Nous pensons, comme [Orkin 2013], que la solution la plus réaliste consiste à envisager ces étapes sous la forme d’un processus collaboratif entre l’humain et la machine. Plusieurs équilibres sont alors possibles selon les responsabilités accordées à l’un ou à l’autre. [Orkin 2013] propose de confier à l’humain la responsabilité d’annoter les motifs (sous forme de séquences d’actions représentant une tâche) afin de spécifier les relations entretenues entre des fragments de comportements, et de sélectionner les fragments que l’agent doit reproduire. À l’exécution, le processus délibératif de l’agent consiste à rechercher des fragments de comportement contextuellement pertinent à rejouer à chaque instant, basé sur les motifs de comportements observés.Troisième partie Modélisation des interactions humaines et mise en œuvreChapitre 6 Formalisation des motifs d’interaction Sommaire 6.1 Modèle de l’engagement social et tableau de conversation . . . . . . . . . . . 145 6.1.1 Modèle de l’engagement social . . . . . . . . . . . . . . . . . . . . . . . . . . 146 6.1.2 Tableau de conversation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 6.1.3 Interprétation des engagements du tableau de conversation . . . . . . . . . . . 156 6.2 Jeux de dialogue et jeux de communication . . . . . . . . . . . . . . . . . . . . 158 6.2.1 Modèle de jeu de dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 6.2.2 Modèle de jeu de communication . . . . . . . . . . . . . . . . . . . . . . . . . 161 6.2.3 Combinaisons et établissement de jeux de dialogue . . . . . . . . . . . . . . . 161 6.2.4 Interprétation des jeux de dialogue dans le tableau de conversation . . . . . . . 163 6.3 Spécification empirique de jeux depuis le corpus Cogni-CISMeF . . . . . . . . 163 6.3.1 Représentation du contenu sémantique . . . . . . . . . . . . . . . . . . . . . . 164 6.3.2 Actes de dialogue . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 6.3.3 Jeu de communication et jeux de dialogue . . . . . . . . . . . . . . . . . . . . 169 6.3.4 Couverture du corpus par les jeux définis . . . . . . . . . . . . . . . . . . . . . 176 6.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179 Dans ce chapitre, nous présentons un cadre pour modéliser les motifs dialogiques observés dans le corpus Cogni-CISMeF. Ce cadre permet de spécifier des enchaînements d’actes attendus. Il est fondé sur l’approche des jeux de dialogue vus comme des structures capturant les engagements que les interlocuteurs contractent pendant le dialogue (cf. section 3.2.3). La section 6.1 décrit notre modèle de l’engagement social pour formaliser les jeux. Ces engagements sont associés à un tableau de conversation qui représente l’état courant du dialogue en stockant les engagements contractés par les interlocuteurs. La section 6.2 présente les structures de jeux de dialogue et de communication basées sur les engagements précédemment définis. Ce formalisme est illustré dans la section 6.3 présentant la spécification des jeux de dialogue et de communication depuis les motifs dialogiques observés dans notre corpus. Enfin, nous concluons ce chapitre en soulignant les avancées et les limites de notre modèle de jeux de dialogue (cf. section 6.4). 6.1 Modèle de l’engagement social et tableau de conversation Cette section débute par la formalisation de la notion d’engagement social dans le cadre de notre modèle (cf. section 6.1.1). Nous abordons ensuite le tableau de conversation qui contient les engagements sociaux, et son évolution suite à l’occurrence d’événements (cf. section 6.1.2).146 Chapitre 6 : Formalisation des motifs d’interaction Nous terminons cette section en donnant une interprétation des engagements contenus dans le tableau de conversation (cf. section 6.1.3). 6.1.1 Modèle de l’engagement social Dans cette section, nous présentons notre modèle de l’engagement social inspirés des travaux de référence de [Maudet 2001, Pasquier 2005, Chaib-Draa 2006] (cf. section 3.2.3). Nous envisageons trois types d’engagements : les engagements propositionnels (extra-dialogiques, de type PropCommitment), les engagements en action (dialogiques, de type ActionCommitment, et extra-dialogiques, de type GameActionCommitment) et les engagements conjoints sur les jeux de dialogue (extra-dialogiques, de type DialogueGameCommitment). Dans la suite du document, nous utilisons le symbole « : » afin de représenter la relation « est de type » (expr : Type signifie que expr est de type Type). Formellement : c : Commitment ssi c : PropCommitment ou c : ActionCommitment ou c : GameActionCommitment ou c : DialogueGameCommitment Un engagement standard est un engagement propositionnel ou un engagement en action (dialogique ou non). Nous excluons les engagements conjoints sur les jeux de dialogue de ces engagements. Formellement : c : StandardCommitment ssi c : PropCommitment ou c : ActionCommitment ou c : GameActionCommitment Engagement propositionnel Un engagement propositionnel (PropCommitment) capture le fait qu’un interlocuteur s’engage au présent sur une proposition envers un autre interlocuteur. Un tel engagement prend la forme C(x,y,p,t,s) signifiant que l’engagement « x est engagé envers y sur la proposition p » est dans l’état s depuis le temps t. Dans un soucis de simplification, nous ne considérons que les propositions dirigées vers le présent (i.e., décrivant l’état du monde tel qu’il est). Cela nous conduit à n’envisager que deux états pour un engagement propositionnel représenté en figure 6.1. Un engagement propositionnel est initialement inactif (Ina). À la suite de sa création, l’engagement passe en état créé (Crt), dit actif. Un engagement créé peut être annulé par son interlocuteur et retourne alors à l’état inactif. Dans la perspective d’uniformisation des engagements propositionnels et en action, il semble raisonnable d’étendre ces états vers ceux des engagements en action. Cette perspective nécessite néanmoins des recherches supplémentaires dont les premiers pas peuvent se baser sur [Singh 2008]. Ina Crt création annulation Figure 6.1: États d’un engagement propositionnel. L’état grisé est actif. Engagement en action Un engagement en action capture le fait qu’un interlocuteur s’engage au présent à ce qu’une action survienne dans le futur.6.1. Modèle de l’engagement social et tableau de conversation 147 Un engagement en action extra-dialogique prend la forme C(x,y,α,t,s) signifiant que l’engagement « x est engagé envers y sur la réalisation de l’action α » est dans l’état s depuis le temps t. Les états considérés pour les engagements en action sont présentés en figure 6.2. Initialement, un engagement en action est dans l’état inactif (Ina). Cet engagement peut alors être créé. La tentative de création peut conduire à l’échec de la tentative de création (Fal) ou à la création effective (Crt). Un engagement dans l’état Crt est alors actif. Un engagement actif peut être violé le conduisant à l’état Vio. Il s’agit de la situation dans laquelle les conditions de satisfaction spécifiées par le contenu ne peuvent plus être remplies. Un engagement actif peut être satisfait le conduisant à l’état Ful. Un engagement en action est satisfait si son contenu a été effectué. Ina échec Fal Crt création Ful Vio satisfaction violation Figure 6.2: États d’un engagement en action. L’état grisé est actif. Les états présentés en figure 6.2 constituent une première approche simplifiée qui a l’avantage d’être extensible. En effet, il est possible d’envisager d’autres états comme l’annulation, la mise en attente, l’expiration, etc. (voir, e.g., [Chaib-Draa 2006,Telang 2012]). Les engagements en action dialogiques sont au cœur de la spécification des jeux de dialogue et de communication. Ceux-ci prennent la même forme que les engagements en action extra-dialogiques à l’exception du fait qu’ils sont contextualisés dans un jeu j noté en indice : Cj(x,y,α,t,s). En outre, le contenu de ces engagements dialogiques sont des descriptions d’évé- nements (de type Description) devant survenir dans le futur. Ces descriptions peuvent être simples (DescÉvénement) ou composées (cf. tableau 6.1). Par exemple, la description simple de l’événement « inform(x, –) » représente un coup dialogique Inform produit par x dont le contenu sémantique est quelconque. Nous supposons l’existence du prédicat : correspond(e : Événement, α : DescÉvénement) Celui-ci est vrai si l’événement e satisfaisait la description de l’événement α, faux sinon. Par exemple, l’événement dialogique inform(x, p) correspond à la description de l’événement inform(x, –). Classiquement, ces descriptions d’événements peuvent être combinées de manière à exprimer le choix et la négation (cf. tableau 6.1). En outre, ces engagements peuvent être conditionnels. Un tel engagement est exprimé sous la forme d’un engagement d’ordre supérieur [Singh 1999]. α ⇒ β signifie que si un événement survient et correspond à la description α, alors l’opération β est réalisée sur le tableau de conversation. α ∗⇒ β signifie qu’à chaque fois qu’un événement survient et correspond à la description α, alors l’opération β est réalisée sur le tableau de conversation. Les engagements en action dialogiques vont permettre aux interlocuteurs de s’engager sur des règles de production conduisant à la modification du tableau de conversation, et donc des engagements des interlocuteurs.148 Chapitre 6 : Formalisation des motifs d’interaction Nom Type Notation Remarques Description simple DescÉvénement α Négation Negation ¬α α : DescÉvénement Choix Choix α1|α2 α1 : DescÉvénement α2 : DescÉvénement ou Choix Conditionnelle Conditionnelle α ⇒ β α : DescÉvénement ou Choix β : Operation Conditionnelle CondPersistante α ∗⇒ β α : DescÉvénement ou Choix persistante β : Operation Tableau 6.1: Événements et combinaisons d’événements pour les engagements dialogiques en action Engagement conjoint sur un jeu de dialogue Enfin, nous considérons les engagements conjoints sur les jeux de dialogue. Ces engagements sont extra-dialogiques, bien que leur contenu soit un jeu de dialogue. Ils prennent la forme : C({x,y},j,t,s) signifiant que l’engagement « x et y sont engagés conjointement sur le jeu de dialogue j » est dans l’état s depuis le temps t. Ces engagements sont conjointement établis via le mécanisme de contextualisation que nous présentons en section 6.2.3. Les états de ces engagements correspondent aux différentes étapes d’entrée et de sortie d’un jeu de dialogue (cf. figure 6.3). Initialement, les interlocuteurs ne sont engagés sur aucun jeu de dialogue (état Ina). L’entrée dans un jeu peut être suggérée par un des interlocuteurs, faisant passer l’engagement conjoint à l’état Sugg. Cette suggestion peut conduire à un refus (retour à l’état Ina) ou à la création de l’engagement conjoint sur le jeu de dialogue (état Open). Un engagement dans l’état Open est actif (le jeu de dialogue est établi, et ses règles entrent en considération dans le comportement communicatif des interlocuteurs). Un engagement sur un jeu peut alors être déchargé via la fermeture du jeu, conduisant l’engagement à l’état Closed. Ina Sugg suggestion refus Open création Closed fermeture Figure 6.3: États d’un engagement conjoint sur un jeu de dialogue. L’état grisé est actif. Raccourcis d’écriture Afin d’alléger l’écriture et la lecture des engagements sociaux, nous réalisons quelques simplifications d’écriture. Puisque nous ne considérons que les engagements pris dans un dialogue avec deux interlocuteurs, nous omettons le créditeur de l’engagement et n’indiquons que le dé- biteur de celui-ci. En outre, nous ne précisons pas le paramètre temporel lorsqu’il n’est pas indispensable. Par exemple : ◦ L’engagement propositionnel extra-dialogique C(x,y,p,t,Crt) se réécrit C(x,p,Crt) ◦ L’engagement en action dialogique (contextualisé dans le jeu j) Cj(y,x,α|β,t,Ful) se réécrit Cj(y,α|β,Ful)6.1. Modèle de l’engagement social et tableau de conversation 149 6.1.2 Tableau de conversation Dans cette section, nous introduisons les opérations générales réalisables sur le tableau de conversation en rapport avec les engagements propositionnels et en action. Nous fournissons la spécification de certains algorithmes essentiels permettant de cerner au plus près le fonctionnement du système. Principe du tableau de conversation Le tableau de conversation représente l’état du dialogue entre les interlocuteurs à un instant donné (cf. section 2.2.1). Puisque nous n’abordons pas les mécanismes de grounding et les problèmes de communication 1 , le tableau de conversation représente la partie publique du contexte dialogique supposée strictement partagée (cf. modèle 4, section 2.2.1). Ti symbolise le tableau de conversation au temps i (le temps courant). Nous utilisons une simple théorie des instants où « < » est la relation de précédence. Nous distinguons deux grands types d’événements : les événements externes (ÉvénementExterne) et les événements internes (ÉvénementInterne). Les événements externes peuvent être dialogiques (e.g., un évé- nement d’énonciation d’un acte de dialogue) ou extra-dialogiques (e.g., un événement comme lumière_allumée dénotant la réalisation de l’action d’activation de la lumière). Les événements internes sont des événements déclenchés par l’atteinte d’un état du tableau (présentés dans la suite de cette section). Le principe de l’évolution du tableau de conversation en fonction de l’occurrence des évé- nements est présenté en figure 6.4. À chaque occurrence d’un événement externe, le tableau de conversation évolue et le temps est incrémenté. La modification du tableau de conversation peut provoquer des occurrences d’événements internes. Ces derniers vont contribuer à modifier le tableau sans pour autant faire progresser le temps. Le tableau de conversation et son évolution sont abordés en section 7.2 dans les exemples de fonctionnement du module développé dans cette thèse. Occurrence d'un événement externe Occurrence d'événements internes Figure 6.4: Principe de l’évolution du tableau de conversation en fonction de l’occurrence d’événements Opérations réalisables sur le tableau de conversation Cette section présente les fonctionnalités générales du tableau de conversation ainsi que les opérations (de type Operation) réalisables sur celui-ci pour les engagements propositionnels et les engagements en action. Fonctionnalités générales du tableau de conversation Le tableau de conversation inclut un commitment store, i.e., un ensemble d’engagements partiellement ordonné. Ce tableau supporte trois fonctionnalités spécifiées dans le tableau 6.2. Il est possible d’interroger le tableau 1. Nous avons limité notre travail à celui de la dimension Task (cf. section 5.2.1).150 Chapitre 6 : Formalisation des motifs d’interaction sur l’appartenance (ou la non-appartenance) de n’importe quel engagement. Notons que le paramètre temps est facultatif lors de ces recherches puisque celui-ci ne se contente que d’établir le temps du dernier changement d’état de l’engagement. En outre, il est possible de déterminer si deux engagements du tableau sont en relation d’ordre ou non, i.e., si un engagement est prioritaire vis-à-vis d’un autre. L’opération de prioritarisation permet d’ordonner deux engagements du tableau. Après l’application de cette opération, les deux engagements sont ordonnés dans le tableau de conversation. Les jeux de dialogue ont une influence sur la prioritarisation des engagements dialogiques que nous précisons en section 6.2.1. Nom Fonctionnalité Préconditions Résultat Appartenance a Tic vrai si c∈Ti , faux sinon c : Commitment Non-appartenance Ti2c Équivalent à ¬(Tic) c : Commitment Priorité Tic1≺c2 Tic1, Tic2 vrai si c1 est prioritaire sur c2, c1, c2 : Commitment faux sinon Prioritarisation prio(c1,c2,Ti) Tic1, Tic2 Tic1≺c2 c1, c2 : Commitment ¬(Tic2≺c1) (voir extension en section 6.2.1) a. Lorsque le temps t n’est pas précisé, l’appartenance signifie qu’il existe un temps t tel que l’engagement appartient au tableau de conversation. Par exemple, TiC(x,y,p,s) ⇐⇒ ∃t t. q. TiC(x,y,p,t,s). Tableau 6.2: Fonctionnalités générales du tableau de conversation Opérations sur le tableau de conversation Le tableau 6.3 présente les opérations de création et de suppression applicables sur le tableau de conversation pour des engagements standards. L’opération de création permet de passer un engagement de l’état inactif à l’état Crt dans le tableau courant. Après l’application de cette opération, le tableau de conversation contient l’engagement dont l’état est désormais Crt et le paramètre temporel est le temps courant. L’opération de suppression permet de désactiver n’importe quel engagement en action ou propositionnel actif (i.e., le faire passer à l’état Ina). Il diffère de l’annulation pour les engagements propositionnels (qui se contente de désactiver un engagement en état Crt). La différence est fine compte tenu des états que nous considérons. Néanmoins, dans la perspective de l’extension de notre modèle en discernant de nouveaux états, les deux opérations ont vocation à être distinguées. L’opération de suppression est principalement utilisée pour désactiver des engagements dialogiques dès lors que leur contexte local n’a plus lieu d’exister. Enfin, le tableau 6.4 présente la spécification des opérations d’échec, de satisfaction et de violation d’engagements en action (dialogique ou extra-dialogique). Ces opérations permettent de changer l’état d’un engagement en action vers les états Fal, Vio et Ful en s’assurant que les conditions sont bien réunies (notamment en terme d’état courant de l’engagement). Par exemple, les préconditions des opérations de satisfaction et de violation spécifient que l’engagement doit être initialement dans l’état Crt. Chaque opération prend le tableau de conversation courant Ti en paramètre. Par application partielle de ses autres arguments, chaque opération peut être réduite en une opération ne prenant que l’argument Ti . Par exemple, une fois l’interlocuteur et l’engagement fixés, l’unique paramètre6.1. Modèle de l’engagement social et tableau de conversation 151 Nom Opération Préconditions Effet(s) Création créer(x,c,Ti) Tic Ti2c c : StandardCommitment s=Ina TiC{j}(–,–,–,i,Crt) (=c’) c=C{j}(–,–,–,t,s) t ≤ i L’interlocuteur x crée l’engagement c’ dans le tableau de conversation Ti . Suppression supprimer(x,c,Ti) Tic Ti2c c : StandardCommitment s6=Ina TiC{j}(–,–,–,i,Ina) c=C{j}(–,–,–,t,s) t ≤ i L’interlocuteur x supprime l’engagement c du tableau de conversation Ti . Annulation annuler(x, c, Ti) Tic Ti2c c : PropCommitment s=Crt TiC(–,–,–,i,Ina) c=C(–,–,–,t,s) t ≤ i L’interlocuteur x annule l’engagement c du tableau de conversation Ti . Tableau 6.3: Opérations générales sur les engagements en action et propositionnel (création, suppression et annulation). « – » dénote les champs inchangés dans les opérations. « {j} » représente l’éventuel contexte dialogique de l’engagement. Nom Opération Préconditions Effet(s) Échec échec(x,c,Ti) Tic Ti2c c : ActionCommitment ou s=Ina TiC{j}(–,–,α,i,Fal) c : GameActionCommitment t ≤ i La tentative de créer c a c=C{j}(–,–,α,t,s) échoué. Satisfaction satisfaire(c,Ti) Tic Ti2c c : ActionCommitment ou s=Crt TiC{j}(–,–,α,i,Ful) c : GameActionCommitment t ≤ i c est satisfait dans Ti . c=C{j}(–,–,α,t,s) Violation violer(c,Ti) Tic Ti2c c : ActionCommitment ou s=Crt TiC{j}(–,–,α,i,Vio) c : GameActionCommitment t ≤ i c est violé dans Ti . c=C{j}(–,–,α,t,s) Tableau 6.4: Opérations sur les engagements en action (contextualisés ou non). « – » dénote les champs inchangés dans les opérations. « {j} » représente l’éventuel contexte dialogique de l’engagement.152 Chapitre 6 : Formalisation des motifs d’interaction manquant de l’opération de création est le tableau de conversation. Cette forme réduite se révèle très pratique puisqu’elle nous permet de traiter uniformément les opérations réalisables sur le tableau de conversation. Nous exploitons cette caractéristique dans la rédaction des algorithmes de la suite de cette section. Raccourcis d’écriture Afin d’alléger l’écriture et la lecture des spécifications de jeux de dialogue et de jeux de communication, nous omettons la plupart du temps le paramètre symbolisant le tableau de conversation courant dans les opérations. En outre, nous ne précisons pas entièrement les opérations de création, d’échec et d’annulation dans les spécifications pour les combinaisons conditionnelles (α ⇒ β) et conditionnelles persistantes (α ∗⇒ β). Nous nous contentons de préciser l’état de l’engagement tel qu’il va être créé dans le tableau. Ces raccourcis d’écriture sont illustrés dans les trois exemples suivants : ◦ α ⇒ créer(x,C{j}(x,–,–,Ina)) se réécrit α ⇒ C{j}(x,–,–,Crt) ◦ α ⇒ échec(x,C(x,α’,Ina)) se réécrit α ⇒ C(x,α’,Fal) ◦ α ⇒ annuler(x, C(x,p,Crt)) se réécrit α ⇒ C(x,p,Ina) Évolution du tableau de conversation Dans cette section, nous décrivons l’évolution des engagements en action dialogique et le mécanisme d’événement interne que nous considérons. Nous donnons deux algorithmes réalisant l’évolution du tableau de conversation suite à l’occurrence d’événements. Évolution des engagements en action dialogique Nous n’optons pas pour un profil pré- cis des engagements extra-dialogiques. L’établissement de la satisfaction ou de la violation d’un engagement en action extra-dialogique est problématique [Pasquier 2005] (p. 134). Il semble en effet difficile de déterminer un processus général de cet établissement. Celui-ci dépend des caractéristiques de l’action et de la situation dans laquelle se trouvent les interlocuteurs. Dans le cas particulier où les interlocuteurs sont en co-présence et que l’action sur laquelle un interlocuteur est engagé produit un résultat immédiat et observable pour les deux interlocuteurs (e.g., « allumer la lumière »), l’établissement peut être effectué sur une base événementielle comme pour les engagements en action dialogique. Néanmoins, ce cas est loin d’être général. La solution pratique communément adoptée consiste à concevoir un jeu de décharge où l’interlocuteur indique s’il a satisfait l’action (e.g., « J’ai ajouté le mot-clé paludisme avec succès ») ou non (voir, e.g., [Larsson 2002a] (p. 218)). Nous reportons la tâche de spécification de l’établissement de la satisfaction ou de la violation d’un engagement en action extra-dialogique au moment de la spécification de la tâche sur laquelle va intervenir l’agent dialogique. Une description d’événement peut être persistante ou non. Elle peut également être affectée, violée ou satisfaite par l’occurrence d’un événement. Ces différents aspects sont capturés dans notre modèle par des prédicats définis dans le tableau 6.5. Nous discernons les descriptions d’évé- nements entre celles qui sont persistantes et celles qui ne le sont pas. Une description persistante n’est jamais satisfaite par l’occurrence d’un événement. Dans notre modèle, seules les combinaisons de type « conditionnelle persistante » sont persistantes. Cette propriété a un impact sur l’évolution des engagements suite à l’occurrence d’un événement. En effet, un engagement dont le contenu est persistant n’est jamais satisfait (i.e., il ne passe jamais à l’état Ful). La relation d’affection permet de déterminer si une description est affectée par l’occurrence d’un événément.6.1. Modèle de l’engagement social et tableau de conversation 153 Cette relation permet de distinguer les descriptions concernées par l’occurrence d’un événément de celles qui ne le sont pas. Une description simple est affectée si l’événement correspond à la description. Une négation est affectée si la description simple dont elle est composée est affectée. Un choix est affecté si au moins un de ses éléments l’est. Pour finir, une description conditionnelle est affectée si sa prémisse l’est. Une description est violée si c’est une négation qui est affectée par l’occurrence d’un événement. Ces trois relations nous permettent de définir la satisfaction d’une description d’événement. Une description d’événement non persistante est satisfaite par l’occurrence d’un événement si elle est affectée par cet événement sans être violée. De la même manière, nous définissons deux prédicats permettant de récupérer une opération d’une description d’événement en fonction de l’occurrence d’un événement. Une description d’événement possède une opération si elle est conditionnelle et qu’elle est affectée par l’occurrence de l’événement. Dans ces conditions, il est alors possible d’obtenir l’opération détenue par la description d’événement. Prédicat Description (α) Résultat estPersistant(α) α’ ∗⇒ β vrai α1 : DescÉvénement faux ¬α’, α1’|α2’, α’ ⇒ β estAffectéPar(α, e) α1 : DescÉvénement correspond(e, α1) ¬α’ estAffectéPar(α’, e) α1’|α2’ estAffectéPar(α1’, e) ou estAffectéPar(α2’, e) α’ ⇒ β, α’ ∗⇒ β estAffectéPar(α’, e) estVioléPar(α, e) ¬α’ estAffectéPar(α’, e) α1 : DescÉvénement faux α1’|α2’ α’ ⇒ β, α’ ∗⇒ β estSatisfaitPar(α, e) estAffectéPar(α, e) et ¬estVioléPar(α, e) et ¬estPersistant(α) possèdeOperation(α, e) α’ ⇒ β, α’ ∗⇒ β estAffectéPar(α, e) α1 : DescÉvénement faux ¬α’, α1’|α2’ obtenirOperation(α, e) α’ ⇒ β, α’ ∗⇒ β β (Précondition : possèdeOperation(α, e)) : Operation Tableau 6.5: Prédicats concernant les descriptions d’événement. Chaque prédicat est défini en fonction de la forme des descriptions (colonne « Description »). La valeur du prédicat est donnée dans la colonne « Résultat ». α : Description, e : Événement. Nous définissons ces mêmes relations sur les engagements en action dialogique (cf. tableau 6.6). Un engagement est persistant dès lors que son contenu l’est. En outre, un engagement actif est affecté, violé et satisfait de la même manière que son contenu. Un engagement qui n’est pas dans un état actif ne peut pas être affecté, violé ou satisfait. La possession et l’obtention d’une opération depuis un engagement en action dialogique actif sont déléguées au contenu de l’engagement. Un tel engagement possède une opération s’il est actif et si son contenu possède une opération à réaliser sur le tableau de conversation en vertu de l’occurrence d’un événement. Similairement, il est possible d’obtenir l’opération à appliquer de l’engagement actif, s’il en possède une.154 Chapitre 6 : Formalisation des motifs d’interaction Prédicat Définition estPersistant(c) estPersistant(α) estAffectéPar(c, e) s=Crt et estAffectéPar(α, e) estVioléPar(c, e) s=Crt et estVioléPar(α, e) estSatisfaitPar(c, e) s=Crt et estSatisfaitPar(α, e) possèdeOperation(c, e) s=Crt et possèdeOperation(α, e) obtenirOperation(c, e) si s=Crt alors obtenirOperation(α, e) Tableau 6.6: Relations entre un engagement en action dialogique et un événement. c : GameActionCommitment, c=Cj(–,–,α,s), e : Événement Muni de ces relations, nous pouvons présenter l’algorithme 6.1 réalisant l’évolution du tableau de conversation pour un de ses engagements dialogiques en action suite à l’occurrence d’un événement (interne ou externe). L’engagement en action dialogique peut ne pas être affecté par l’occurrence d’un événement, il est alors laissé inchangé. Dans le cas contraire, l’engagement peut être violé ou non par l’événement. S’il est violé, l’opération de violation est appliquée sur l’engagement. S’il n’est pas violé, l’engagement est satisfait à condition qu’il ne soit pas persistant. Si cet engagement est porteur d’une opération à réaliser sur le tableau de conversation, celle-ci est récupérée et appliquée. L’évolution totale du tableau de conversation à la suite d’un événement est réalisée par l’application de l’algorithme 6.1 pour chaque engagement dialogique en action initialement présent (i.e., avant que toute modification n’intervienne). On note cette opération : evolution(e : Événement, Ti : TableauDeConversation) Occurrence d’événements internes Chaque modification du tableau de conversation par un événement externe peut déclencher l’occurrence d’événements internes. Nous optons pour un mécanisme très simple d’événement interne. Chaque événement interne est défini par une condition de déclenchement sur l’état du tableau de conversation (trigger). Dès lors que cette condition est vérifiée, un événement interne est généré et appliqué sur le tableau de conversation. Un événement interne n’est généré qu’une fois pour un temps t donné. Par exemple, un événement interne engagementPropositionnelExistant(y, p) peut être généré dès lors que y s’engage sur la proposition p. Son trigger est alors la fonction qui vérifie l’appartenance de l’engagement 2 : is : TableauDeConversation 7→ isC(y,p,Crt) Les événements internes sont principalement utilisés pour vérifier l’atteinte des conditions d’entrée et de sortie des jeux de dialogue. On suppose l’existence d’une procédure permettant de gérer l’évolution du tableau de conversation à partir d’un ensemble de générateurs d’événement interne notée : evolutionViaInternalEvent(ensGenerator : EnsInternalEventGenerator, is : TableauDeConversation) Cette procédure fait évoluer le tableau de conversation via l’ensemble d’événements générés. Elle se charge de déterminer les nouveaux événements internes pouvant être générés et fait de nouveau évoluer le tableau de conversation jusqu’à ce qu’aucun événement interne nouveau ne soit généré. 2. « is » pour « Information State »6.1. Modèle de l’engagement social et tableau de conversation 155 Algorithme 6.1 Algorithme de mise à jour d’un engagement dialogique en action suite à l’occurrence d’un événement. Nom: EvolutionEngagementDialogiqueEnAction Role: Réalise l’évolution du tableau de conversation pour un engagement dialogique en action donné suite à l’occurrence d’un événement. Entrée: c : GameActionCommitment, e : Événement Sortie:  Entrée/Sortie: Ti : TableauDeConversation Déclaration: op : Operation debut si estAffectéPar(c, e) alors si estVioléPar(c, e) alors violer(c,Ti) sinon si ¬estPersistant(c) alors satisfaire(c,Ti) finsi si possèdeOperation(c, e) alors // Récupération de l’opération déclenchée par l’occurrence de l’événement op ← obtenirOperation(c, e) // Application de l’opération au tableau de conversation op(Ti) finsi finsi finsi fin156 Chapitre 6 : Formalisation des motifs d’interaction Mise à jour du tableau de conversation suite à un événement externe L’algorithme 6.2 présente les opérations strictement nécessaires à la mise à jour du tableau de conversation. Cette opération est réalisée en deux étapes essentielles. La première consiste à faire évoluer l’ensemble des engagements suite à l’occurrence de l’événement externe (via l’algorithme 6.1). La seconde vise à déclencher l’ensemble des événements internes générés par le nouvel état du tableau de conversation, qui vont eux-mêmes contribuer à modifier le tableau. La copie n’est pas stricto sensu indispensable dès lors que nous limitons le tableau de conversation à une vision où il est public et strictement partagé. Néanmoins, cette étape devient indispensable dès lors que la partie publique est relativisée du point de vue de l’interlocuteur (cf. section 2.2.1). En effet, il est souvent nécessaire de conserver les tableaux précédents afin de modéliser des mécanismes de retour en arrière suite à un grounding trop optimiste (voir, e.g., [Larsson 2003]). Nous faisons donc apparaître cette étape qui sera nécessaire dans des évolutions futures. Cet algorithme ne fait apparaître que les éléments relatifs à l’évolution des engagements du tableau. Néanmoins, d’autres opérations complémentaires peuvent être envisagées comme le stockage de l’événement externe dans l’historique de l’interaction. Ces opérations dépendent des champs supplémentaires au commitment store présents dans le tableau de conversation. Algorithme 6.2 Algorithme de mise à jour du tableau de conversation suite à l’occurrence d’un événement externe. Nom: EvolutionTableauDeConversation Role: Réalise l’évolution des engagements du tableau de conversation suite à l’occurrence d’un événement externe. Entrée: Ti : TableauDeConversation, e : ÉvénementExterne, ensGenerator : EnsInternalEventGenerator Sortie: Ti+1 : TableauDeConversation Entrée/Sortie:  Déclaration:  debut // Copie du tableau de conversation courant Ti+1 ← copie(Ti) // Évolution des engagements à partir de l’événement externe evolution(e, Ti+1) // Évolution du tableau de conversation depuis les événements internes evolutionViaInternalEvent(ensGenerator, Ti+1) fin 6.1.3 Interprétation des engagements du tableau de conversation Le tableau de conversation représente les engagements pris par les différents interlocuteurs à un moment donné de l’interaction. Ces engagements représentent des positions sur des propositions (engagements propositionnels) et des engagements sur la réalisation de certaines actions (engagements en action dialogiques ou extra-dialogiques) ou de règles de production (engagements en action dialogique). Ces engagements vont contraindre le comportement des interlocuteurs. En particulier, les engagements en action dialogique vont contraindre le comportement communicatif d’un interlocuteur. Nous définissons dans cette section les notions d’événement dialogique attendu, régulier et interdit. La notion d’attente est illustrée en section 7.2 dans les6.1. Modèle de l’engagement social et tableau de conversation 157 exemples de fonctionnement du système que nous avons développé. Nous notons α1|. . . |α|. . . |αn le fait que l’événement α apparaisse dans une alternative. Un événement dialogique e est attendu par le tableau de conversation Ti si et seulement si ∃α telle que : ◦ TiCj(–,–,α,Crt) ou TiCj(–,–,α1|. . . |α|. . . |αn,Crt), et ◦ correspond(e, α) On note le prédicat qui retourne vrai lorsque l’événement e est attendu par le tableau de conversation is, et faux sinon : estAttendu(e : ÉvénementDialogique, is : TableauDeConversation) De la même façon, le prédicat estAttenduPar(e : ÉvénementDialogique, j : Jeu, is : TableauDeConversation) retourne vrai lorsque l’événement dialogique e est attendu par le jeu (de dialogue ou de communication) j dans le tableau de conversation is. Un événement dialogique e viole un engagement du tableau de conversation Ti si et seulement si ∃ α telle que : ◦ TiCj(–,–,¬α,Crt), et ◦ correspond(e, α) On note le prédicat qui retourne vrai lorsque l’événement e viole un engagement du tableau de conversation is, et faux sinon : viole(e : ÉvénementDialogique, is : TableauDeConversation) Un événement dialogique e est régulier vis-à-vis du tableau de conversation Ti si et seulement si : ◦ il ne viole aucun engagement (i.e., ¬viole(e, Ti)), ou ◦ s’il viole un engagement c1, il est attendu par un engagement c2 tel que c2 est prioritaire sur c1. Formellement, (¬viole(e, Ti)) ou (∀c∈Ti tel que estVioléPar(c, e), ∃c’ tel que Tic’≺c et estSatisfaitPar(c’, e)) On note le prédicat qui retourne vrai lorsque l’événement e est régulier par rapport au tableau de conversation is, et faux sinon : estRégulier(e : ÉvénementDialogique, is : TableauDeConversation) Il est important de remarquer qu’un événement dialogique e peut être régulier et non attendu. Un événément dialogique e est interdit par rapport au tableau de conversation Ti si et seulement si il n’est pas régulier. Formellement, estInterdit(e : ÉvénementDialogique, is : TableauDeConversation) ⇐⇒ ¬estRégulier(e, is)158 Chapitre 6 : Formalisation des motifs d’interaction 6.2 Jeux de dialogue et jeux de communication Cette section définit la structure de jeux de dialogue adoptée dans notre modèle (cf. section 6.2.1) puis la structure de jeux de communication (cf. section 6.2.2). Nous abordons les combinaisons possibles entre les jeux de dialogue et l’établissement des jeux via le mécanisme de contextualisation (cf. section 6.2.3). Enfin, nous donnons une interprétation des jeux de dialogue représentés dans le tableau de conversation (cf. section 6.2.4). 6.2.1 Modèle de jeu de dialogue Nous définissons dans un premier temps la structure de jeux de dialogue que nous envisageons. Puis nous spécifions les opérations sur les jeux de dialogue ayant un impact sur le tableau de conversation. Définition Un jeu de dialogue (de type JeuDeDialogue) est un couple de la forme htype,sujeti où type appartient à l’ensemble des types de jeux de dialogue existants (e.g., requête, interrogation) et sujet forme le but du jeu dans le langage d’expression du sujet du jeu. Nous notons usuellement un jeu sous la forme type(sujet) (e.g., requête(α) réfère au jeu de requête dont le but est l’action α). Un jeu de dialogue est défini en terme d’engagements sociaux. C’est un quintuplet caractérisé pour l’initiateur et le partenaire par des : conditions d’entrée : celles-ci spécifient l’état dans lequel doit se trouver le tableau de conversation permettant l’entrée dans le jeu de dialogue. Cet état réfère à des engagements extradialogiques. Par exemple, les conditions d’entrée du jeu de requête d’action spécifient que le partenaire ne doit pas être déjà engagé sur l’action demandée. conditions de sortie subdivisées en : conditions de succès : celles-ci spécifient l’état du tableau de conversation qui correspond au succès. Cet état réfère à des engagements extra-dialogiques. conditions d’échec : celles-ci spécifient l’état du tableau de conversation correspondant à l’échec du jeu. Cet état réfère à des engagements extra-dialogiques. règles : elles spécifient les enchaînements d’actes attendus ou interdits dans le contexte du jeu en terme d’engagements en action dialogiques. effets : il s’agit de règles particulières qui spécifient les effets contextualisés des actes de dialogue en terme de production d’engagements extra-dialogiques. Afin d’illustrer cette structure, nous présentons le jeu de dialogue de requête qui permet à l’initiateur du jeu de proposer la réalisation d’une action au partenaire qui peut accepter ou refuser (cf. tableau 6.7). Ce jeu a émergé du motif précédemment observé (cf. section 5.2.2). Le jeu est présenté sous la forme d’une structure bilatérale qui présente pour l’initiateur et le partenaire les conditions d’entrée, de succès et d’échec, ainsi que les règles et les effets. Le type du jeu est « requête » et son but est une action α. Les conditions sont spécifiées sous la forme d’engagements extra-dialogiques qui doivent tenir dans le tableau de conversation pour que les conditions soient atteintes. Les conditions d’entrée du partenaire spécifient qu’il ne doit pas être déjà engagé sur l’action α, aussi bien sur sa réalisation que sur sa non-occurrence. Les conditions6.2. Jeux de dialogue et jeux de communication 159 de succès sont identiques pour les deux interlocuteurs. Elles stipulent que le jeu est un succès dès lors que le partenaire est engagé sur la réalisation de l’action α. Au contraire, les conditions d’échec précisent pour les deux interlocuteurs que le jeu est un échec si la tentative d’engager le partenaire sur α échoue. Chaque règle et chaque effet est spécifié sous la forme d’un engagement en action dialogique que nous ne précisons pas. Ainsi, la règle « request(x, α) » de l’initiateur est équivalente à Cj(x,request(x, α),Ina) 3 . Les règles de l’initiateur du jeu spécifient qu’il est engagé à jouer un acte Request. Les règles du partenaire du jeu précisent qu’il est engagé à jouer un acte AcceptRequest ou DeclineRequest à condition que l’initiateur remplisse son engagement. Enfin, les effets du partenaire indiquent que jouer un acte AcceptRequest a pour effet dans le contexte de ce jeu de l’engager sur la réalisation de α. Au contraire, jouer un acte DeclineRequest a pour effet dans le contexte de ce jeu de l’engager sur l’échec de la tentative de la création de l’engagement sur α. Ces effets produisent des engagements extra-dialogiques qui permettent d’atteindre les conditions de succès ou d’échec. j=requête(α) Initiateur (x) Partenaire (y) Entrée C(y,α,Ina) et C(y,¬α,Ina) Succès C(y,α,Crt) C(y,α,Crt) Échec C(y,α,Fal) C(y,α,Fal) Règles request(x, α) request(x, α) ⇒ Cj(y,acceptRequest(y, α)|declineRequest(y, α),Crt) Effets acceptRequest(y, α) ⇒ C(y,α,Crt) declineRequest(y, α) ⇒ C(y,α,Fal) Tableau 6.7: Jeu de dialogue de requête. α : Action À chaque jeu de dialogue j est associé un ensemble d’événements internes relatifs aux conditions d’entrée et de sortie du jeu (présentés en détail dans le tableau B.1 de l’annexe B.1). Ces évé- nements sont déclenchés dès lors que des conditions d’entrée, d’échec ou de succès sont atteintes par le tableau de conversation. Ces événements internes sont utilisés dans le jeu de contextualisation (cf. section 6.2.3). Par exemple, le déclenchement de l’événement atteintSuccèsInitiateur(j) engage l’initiateur à proposer la sortie du jeu. Opérations sur les jeux de dialogue Avant de présenter les opérations sur les jeux de dialogue, nous affinons notre définition de la relation de priorité entre les engagements. Pour deux jeux de dialogue ouverts dans le tableau de conversation Ti , on note la relation de priorité plus succinctement : Tij2≺j1 (signifiant que j2 est prioritaire sur j1) 4 . Dans le cas particulier des engagements en action dialogique, la priorité au niveau des jeux contextualisant provoque la même priorité au niveau des engagements. Ainsi : Tij2≺j1 ⇒ ∀c1=Cj1 (–,–,–,–,–), ∀c2=Cj2 (–,–,–,–,–) alors Tic2≺c1 Cette propriété étend la relation de priorité précédemment définie (cf. section 6.1.2). En outre, un jeu de dialogue j2 est prioritaire sur un jeu de dialogue j1 s’il est emboîté dans celui-ci (cf. section 6.2.3). La relation de priorité a un impact sur la fermeture des jeux de dialogue. 3. La règle est en état inactif tant qu’elle n’a pas été effectivement créée, i.e. jusqu’au moment de l’ouverture du jeu. 4. Cette notation est équivalente à TiC(–,j2,Open)≺C(–,j1,Open).160 Chapitre 6 : Formalisation des motifs d’interaction Le tableau 6.8 présente les opérations réalisables sur les engagements conjoints sur un jeu de dialogue. Ces opérations correspondent aux transitions entre les différents états dans lesquels ce type d’engagement peut se trouver (Ina, Sugg, Open, Closed). Avant d’être conjointement établi (état Open), un engagement de jeu passe par un état suggéré (Sugg). Dans cet état, l’engagement peut être unilatéralement annulé par un interlocuteur (e.g., celui à qui le jeu a été suggéré). Les opérations de suggestion et d’annulation de jeu permettent, respectivement, de créer l’engagement de jeu dans l’état Sugg et d’annuler cette création. La création de l’engagement de jeu correspond à l’établissement conjoint du jeu de dialogue. Cette opération ne se résume pas à modifier l’état de l’engagement conjoint sur le jeu. En effet, elle est accompagnée de la création des règles et des effets du jeu dans le tableau de conversation. Formellement, ∀ cj∈ règlesInitiateur(j)∪règlesPartenaire(j)∪effetsInitiateur(j)∪effetsPartenaire(j), créer(x,cj ,Ti) Enfin, la fermeture d’un jeu de dialogue provoque la clôture du contexte local engendré par le jeu, modélisé par les engagements dialogiques. L’opération de fermeture conduit à changer l’état de l’engagement conjoint mais aussi à la suppression de tous les engagements contextualisés par j. Formellement, ∀c tel que c=Cj(–,–,–,–,–) et Tic, supprimer(x,c,Ti) En outre, la fermeture d’un jeu de dialogue j provoque la clôture de tous les jeux emboîtés dans celui-ci. Formellement, ∀j’ tel que Tij’≺j, fermerJeu(x,j’,Ti) Nom Opération Préconditions Effet(s) Suggestion suggJeu(x,j,ini,par,Ti) TiC({ini, par},j,Ina) Ti2C({ini, par},j,Ina) TiC({ini, par},j,i,Sugg) Annulation annulerSuggJeu(x,j,Ti) TiC(–,j,Sugg) Ti2C(–,j,Sugg) TiC(–,j,i,Ina) Création créerJeu(x,j,Ti) TiC(–,j,Sugg) Ti2C(–,j,Sugg) TiC(–,j,i,Open) + Création des règles + Création des effets Fermeture fermerJeu(x,j,Ti) TiC(–,j,Open) Ti2C(–,j,Open) TiC(–,j,i,Closed) + Suppression des engagements contextualisés + Annulation des jeux emboîtés Tableau 6.8: Opérations générales sur les engagements conjoints sur un jeu de dialogue. x représente l’interlocuteur qui réalise l’action. « ini » représente l’initiateur du jeu, « par » représente le partenaire du jeu. j : JeuDeDialogue.6.2. Jeux de dialogue et jeux de communication 161 6.2.2 Modèle de jeu de communication Les jeux de communication que nous utilisons sont identiques à ceux de l’approche de Maudet (cf. section 3.2.3) et sont définis par un type (e.g., contextualisation, évaluation). Ils sont dédiés à gérer des processus généraux d’interaction (comme la compréhension mutuelle, la gestion des tours de parole, . . . ), et sont toujours activés. Ils sont spécifiés sous la forme d’engagements en action dialogiques persistants : Cj(–,α ∗⇒ β,Crt) (où α : Description et β : Operation). Deux jeux de communication sont considérés dans notre travail : le jeu de contextualisation (cf. section 6.2.3) et le jeu d’évaluation formalisant les motifs du corpus Cogni-CISMeF (cf. section 6.3.3). 6.2.3 Combinaisons et établissement de jeux de dialogue Cette section décrit les combinaisons de jeux de dialogue considérées dans notre modèle, ainsi que le jeu de communication de contextualisation. Combinaisons de jeux de dialogue À la suite de Maudet (cf. section 3.2.3), nous considérons trois types de combinaisons observées dans le dialogue humain : le séquencement, le pré-séquencement et l’emboîtement. D’autres combinaisons peuvent être envisagées comme, par exemple, l’itération (répétition du jeu n fois) ou le choix [McBurney 2002]. Séquencement Le séquencement de jeux de dialogue, noté j2 ; j1, est une combinaison permettant de capturer la négociation de l’ouverture d’un jeu (« Je peux te poser une question ? – Laisse moi t’en poser une avant ! – OK. »). Une telle combinaison permet de proposer de jouer le jeu j2 jusqu’à l’atteinte de ses conditions de succès, avant de jouer le jeu j1. Dans notre modèle, établir une combinaison j2 ; j1 consiste à ouvrir le jeu j2 tandis que le jeu j1 reste suggéré. Une fois le jeu j2 joué avec succès, le jeu j1 est ouvert. Nous n’imposons aucune contrainte sur le séquencement de jeux de dialogue. Pré-séquencement Le pré-séquencement informé de jeux de dialogue est un séquencement particulier (cf. section 3.2.3). De la même manière que pour le séquencement, un jeu j1 est pré-séquencé par j2, noté j2 j1, si j2 est ouvert alors que j1 est suggéré. À la différence d’un séquencement, un pré-séquencement par un jeu j2 sert à établir les conditions d’entrée du jeu j1. En d’autres termes, les conditions de succès de j2 doivent être incluses dans les conditions d’entrée de j1 [Maudet 2001]. Les pré-séquencements valides doivent être spécifiés au niveau du domaine. Nous posons le prédicat : estValidePreSéquence(j2 : JeuDeDialogue, j1 : JeuDeDialogue) Celui-ci retourne vrai si le pré-séquencement de j1 par j2 (j2 j1) est autorisé, faux sinon. Emboîtement L’emboîtement est une combinaison de deux jeux de dialogue ouverts dont l’un est le jeu parent et l’autre est le jeu fils (cf. section 3.2.3). Nous notons l’emboîtement du jeu j2 dans j1 : j2 1, et ∀i, 1 ≤ i ≤ n alors qi : YNQ ◦ q : WHQ si q=?X.predn(c1, . . . , cn−1, X) avec n ≥ 1, où X : Var, ∀i t.q. 1 ≤ i ≤ n − 1 alors ci : Ind et predn : Predn (q est dite paramétrée par les constantes ci) Le tableau 6.11 présente quelques exemples de question. Sémantique Exemple {?patient, ?etudiant, ?medecin} « Êtes-vous un patient, un étudiant en médecine ou un médecin ? » ?etudiant « Êtes-vous un étudiant en médecine ? » ?definition(eczema) « Est-ce que “eczéma” possède une définition dans la terminologie ? » ?X.nom(X) « Comment vous appelez-vous ? » ?X.synonyme(paludisme, X) « Quel est un synonyme de paludisme ? » ?X.traduction(varicelle, anglais, X) « Quelle est une traduction de varicelle en anglais ? » Tableau 6.11: Exemples de question dans notre représentation sémantique Relations entre questions et propositions Enfin, nous reprenons deux relations entre questions et propositions proposées par [Larsson 2002a] issues de la théorie QUD : la relation de résolution et la relation de pertinence (cf. section 2.2.3). Ces relations sont définies dans le tableau 6.12. Question Réponses. . . . . . résolvantes . . . pertinentes non résolvantes ?X.predn(c1, . . . , cn−1, X) predn(c1, . . . , cn−1, a) ¬predn(c1, . . . , cn−1, a) ?p p, ¬p néant {?p1, . . . , ?pn} pi , 1 ≤ i ≤ n ¬pi , 1 ≤ i ≤ n Tableau 6.12: Relations de résolution et de pertinence (n’inclut pas les restrictions sémantiques s’appliquant aux constantes) La relation de résolution détermine si une proposition résout une question. On simplifie la définition proposée dans QUD en ne prenant pas en compte le point de vue relatif de l’agent. Cette relation est supposée partagée par les interlocuteurs. Nous notons cette relation : resolves (p, q) avec p : Proposition, q : Question Elle est vraie lorsque la proposition p résout la question q, sinon elle est fausse. Cette relation est définie dans le tableau 6.12. Notons que les restrictions sémantiques jouent un rôle essentiel dans les conditions de résolution puisqu’elles déterminent les propositions correctement construites. Elles ne sont pas représentées dans le tableau. La définition de cette relation est dépendante du domaine. La relation de pertinence est une simplification de la notion d’« à propos » proposée dans QUD. Elle permet d’identifier les propositions qui sont en rapport avec une question sans né- cessairement la résoudre. Elle se présente sous la même forme que la relation de résolution : relevant (p, q) avec p : Proposition, q : Question168 Chapitre 6 : Formalisation des motifs d’interaction Elle est vraie si la proposition p est pertinente vis-à-vis de la question q, sinon elle est fausse. Notons que toutes les propositions résolvantes sont pertinentes : resolves (p, q) ⇒ relevant (p, q) Le tableau 6.12 regroupe les réponses pertinentes non résolvantes. De la même façon que la relation de résolution, cette relation est dépendante du domaine. Nous ajoutons la relation de pertinence stricte. Une proposition est strictement pertinente vis-à-vis d’une question si elle est pertinente sans être résolvante. Formellement, strictlyRelevant (p, q) ⇐⇒ relevant (p, q) et ¬ resolves (p, q) 6.3.2 Actes de dialogue Les actes de dialogue que nous considérons sont multidimensionnels et multiniveaux. Ils proviennent de l’analyse du corpus Cogni-CISMeF (cf. chapitre 5). Les fonctions de ces actes sont regroupées dans le tableau 6.13 qui présente pour chaque fonction, sa dimension et son niveau. Dimension Niveau Fonctions Task Standard Inform, Answer, Disconfirm, Confirm, Agreement, Disagreement, Correction, AcceptCorrection, DeclineCorrection PropositionalQuestion, CheckQuestion, PosiCheck, NegaCheck, SetQuestion, ChoiceQuestion Offer, AcceptOffer, DeclineOffer, Request, AcceptRequest, DeclineRequest, Suggestion, AcceptSuggestion, DeclineSuggestion Auto-feedback Exécution ExecNegativeAutoFB Tableau 6.13: Fonctions des actes de dialogue considérés dans notre formalisation Suite à notre restriction à la dimension Task dans le processus d’extraction (cf. section 5.2.1), nous nous limitons aux actes de niveau standard (i.e., les actes « noyaux » dans l’approche multiniveaux, cf. section 1.2.2), à l’acte ExecNegativeAutoFB de niveau exécution et aux actes de niveaux contextualisation (cf. section 6.2.3). Notre formalisation ne prend pas en compte les niveaux inférieurs (du niveau d’attention jusqu’au niveau d’évaluation) qui permettent d’établir la fonction et le contenu d’un acte, et de vérifier l’adéquation de l’occurrence de l’acte par rapport à l’état courant du dialogue. Ces processus nécessitent une étude particulière (voir, e.g., [Traum 1994a, Larsson 2003, Bunt 2007]). Ils ont vocation à s’intégrer dans notre modèle via les jeux de communication, et nécessitent des études complémentaires. Notons que les jeux de dialogue n’interviennent qu’aux niveaux où les actes ont été complètement établis (exécution et standard). Chaque événement dialogique d’énonciation d’un acte de dialogue est un quadruplet hdimension, fonction, locuteur, contenu sémantiquei (excepté Correction, AcceptCorrection et DeclineCorrection que nous traitons dans la suite du document). Nous omettons la dimension à ce stade du modèle puisqu’il n’existe aucune ambiguïté sur la dimension d’une fonction. Nous notons ce quadruplet : fonction(locuteur, contenu). Par exemple, inform(x, p) représente6.3. Spécification empirique de jeux depuis le corpus Cogni-CISMeF 169 l’événement d’énonciation par le locuteur x de l’acte de dialogue réalisé dans la dimension Task dont la fonction est Inform et le contenu sémantique est p. Le type de contenu sémantique des actes est synthétisé dans le tableau 6.14. Celui-ci est conditionné par la catégorie de la fonction de l’acte. Les actes de transfert d’information possèdent un contenu sémantique de type Proposition, les actes de discussion d’action ont un contenu de type Action, et l’acte ExecNegativeAutoFB est associé à un contenu sémantique de type Question. Enfin, les actes de recherche d’information se voient attribuer un type de contenu sémantique dépendant de leur fonction. Les fonctions permettant de poser des questions polaires sont associées au type YNQ (question oui/non). L’acte SetQuestion possède un contenu sémantique de type WHQ (question ouverte), et l’acte ChoiceQuestion a un contenu sémantique de type ALTQ (question à choix multiples). Fonction Type de contenu sémantique Inform, Answer, Disconfirm, Confirm, Agreement, Disagreement Proposition PropositionalQuestion, CheckQuestion, PosiCheck, NegaCheck YNQ SetQuestion WHQ ChoiceQuestion ALTQ ExecNegativeAutoFB Question Offer, AcceptOffer, DeclineOffer, Request, AcceptRequest, DeclineRequest, Suggestion, AcceptSuggestion, DeclineSuggestion Action Tableau 6.14: Type de contenu sémantique des actes de dialogue L’événement provoqué par l’énonciation d’un acte de dialogue de Correction est un quintuplet hdimension, fonction, locuteur, contenu 1, contenu 2i. Cet événement porte sur deux propositions (de type Proposition). La première représente la proposition corrigée par la deuxième. Par exemple, correction(x, beau, pleut) 7 représente l’événement dialogique d’énonciation par le locuteur x de l’acte de dialogue de Correction de la proposition beau par pleut. Dans l’esprit des approches contextuelles, nous avons ajouté deux actes AcceptCorrection et DeclineCorrection de la même forme que Correction, et qui représentent respectivement, une acceptation de la correction (marquée dans le motif dialogique par une simple Agreement) ou un refus de la correction. Cette décision est motivée par le fait qu’affirmer un accord après une correction est selon nous différent d’affirmer un accord après un acte informatif (sans correction comme Inform, Answer, etc.). Comme ces deux acceptations provoquent des effets différents sur le tableau de conversation, elles doivent être représentées par des actes différents. 6.3.3 Jeu de communication et jeux de dialogue Cette section présente le jeu de communication et les jeux de dialogue spécifiés depuis les motifs dialogiques observés dans le corpus Cogni-CISMeF. 7. beau est le prédicat représentant la proposition « Il fait beau. » et pleut est le prédicat représentant la proposition « Il pleut ».170 Chapitre 6 : Formalisation des motifs d’interaction Jeu de communication Nous considérons deux jeux de communication dans notre modèle : le jeu de contextualisation précédemment évoqué (cf. section 6.2.3) et le jeu d’évaluation. Les effets d’un jeu de communication sont spécifiés sous la forme Cj(–,α ∗⇒ β,Crt) signifiant que chaque interlocuteur est engagé sur les règles du jeu de communication j de manière persistante. Le jeu d’évaluation vise à capturer les effets des actes de transfert d’information supposés valides dans toute conversation. Il est noté « ev » dans les engagements dialogiques. Ce jeu permet aux interlocuteurs de s’accorder sur l’état du monde. Il intègre deux objectifs. Premièrement, il permet de définir les effets directs de l’occurrence de certains actes de dialogue sur le tableau de conversation. Ces effets sont toujours valides pendant le dialogue. Les effets directs des actes de dialogue sont regroupés dans le tableau 6.15. La première ligne du tableau définit l’effet propositionnel de l’acte Inform. Elle indique que l’occurrence de cet acte engage son locuteur sur son contenu sémantique. Notons que la fonction Inform est la fonction parente de l’ensemble des fonctions de transfert d’information. Cette hiérarchie représente un cas de multifonctionnalité simultanée (cf. section 5.1.1). Ainsi, répondre à une question (Answer) est aussi informer de la réponse, tout comme exprimer un désaccord (Disagreement) permet d’informer de ce désaccord. Ces fonctions spécialisent la fonction Inform. Selon nous, les actes Answer et Agreement possèdent le même effet direct que l’acte Inform. Cependant, l’acte Disagreement spécialise cet effet. Il n’engage pas son interlocuteur sur la proposition formant son contenu sémantique mais sur sa négation. Précisons que les actes Confirm et Disconfirm ont un effet dépendant du jeu de dialogue dans lequel ils prennent part, et ne voient pas leurs effets définis dans le jeu d’évaluation. Notons le faible nombre d’effets directs. Ceci est tout à fait normal puisque les autres effets des actes sont définis dans le cadre des jeux de dialogue. α β inform(x, p) C(x,p,Crt) f(x,p) C(x,p,Crt) disagreement(x, p) C(x,¬p,Crt) f ∈ {Answer, Agreement} Tableau 6.15: Jeu de communication d’évaluation : effets directs Le second objectif du jeu d’évaluation est de modéliser les motifs dialogiques d’accord et de correction observés dans notre corpus et qui permettent aux interlocuteurs de s’accorder sur l’état du monde (cf. section 5.2.2). Ces motifs sont capturés par les effets présentés dans le tableau 6.16. La correspondance entre les motifs dialogiques et la spécification est immédiate. L’occurrence d’un acte informatif (Inform ou Answer) engage l’autre interlocuteur à affirmer son accord sur ce qui a été dit (Agreement), son désaccord (Disagreement) ou à proposer une correction au locuteur (Correction). Nous introduisons une contrainte sémantique en spécifiant que le partenaire y s’engage à jouer un acte de Correction dont les contenus sémantiques sont en relation de correction. L’effet de l’acte de correction est particulier et est défini dans le tableau 6.17. Une correction de p par s conduit à engager le locuteur sur ¬p (une correction est également un désaccord sur la proposition initiale) et à engager le locuteur sur s. Le partenaire s’engage alors à accepter une correction ou à la refuser. Une acceptation de correction a pour effets d’annuler l’engagement sur la proposition corrigée, et de créer un engagement sur la proposition de correction. Un refus6.3. Spécification empirique de jeux depuis le corpus Cogni-CISMeF 171 α β f(x,p) Cev(y,agreement(y, p)|disagreement(y, p)|correction(y, p, s),Crt) avec correction (p, s) f ∈ {Inform, Answer} Tableau 6.16: Jeu de communication d’évaluation de correction amène à ne pas changer les engagements propositionnels des interlocuteurs. Ce dernier acte a été ajouté par rapport au motif dialogique initialement observé (cf. section 5.2.2) dans un souci de complétude. Il n’a cependant pas été observé dans notre corpus. α β correction(x, p, s) C(x,¬p,Crt) C(x,s,Crt) Cev(y,acceptCorrection(y, p, s)|declineCorrection(y, p, s),Crt) acceptCorrection(x, p, s) C(x,p,Ina) C(x,s,Crt) declineCorrection(x, p, s) Tableau 6.17: Jeu de communication d’évaluation : cas de la correction Jeux de dialogue Dans cette section, nous présentons la modélisation des motifs dialogiques de recherche d’information et de discussion d’action sous la forme de jeux de dialogue. Vérification d’une proposition Nous avons vu que la vérification de la valeur de vérité d’une proposition se décline en quatre motifs dialogiques (vérification, vérification positive, vérification négative et question oui/non). Ces motifs ont conduit à la spécification de trois jeux de dialogue qui visent tous à demander au partenaire de déterminer la valeur de vérité d’une proposition. Ces trois jeux de dialogue possèdent les mêmes conditions d’entrée, de succès et d’échec, et diffèrent par leurs règles et leurs effets. Ces conditions sont regroupées dans le tableau 6.18. Les conditions d’entrée de ces jeux spécifient que le partenaire ne doit pas être déjà engagé sur la proposition vérifiée ni sur sa négation, et qu’il ne doit pas être engagé sur le fait qu’il ne connaît pas la réponse. Les conditions de succès sont atteintes dès lors que le partenaire est engagé sur la proposition vérifiée ou sur sa négation. Enfin, les conditions d’échec indiquent que le jeu est un échec lorsque le partenaire s’engage sur le fait qu’il ne peut pas trouver de réponse. Initiateur (x) Partenaire (y) Entrée C(y,p,Ina) et C(y,¬p,Ina) et C(y,fail(q),Ina) Succès C(y,p,Crt) ou C(y,¬p,Crt) C(y,p,Crt) ou C(y,¬p,Crt) Échec C(y,fail(q),Crt) C(y,fail(q),Crt) Tableau 6.18: Conditions d’entrée, de succès et d’échec des jeux de vérification, de vérification négative et de question oui/non. p est le but du jeu, q=?p. Le premier jeu de dialogue que nous présentons est celui de vérification, disponible dans le172 Chapitre 6 : Formalisation des motifs d’interaction tableau 6.19. Il regroupe les motifs dialogiques de vérification d’une information et de vérification positive dont les actes initiatifs sont liés par une relation de spécialisation. Le but du jeu est la proposition p. Les règles précisent que l’initiateur s’engage à jouer un acte CheckQuestion ou PosiCheck dont le contenu sémantique (?p) est de type YNQ. Une fois cet acte joué, le partenaire est engagé à jouer un acte Confirm, Disconfirm ou ExecNegativeAutoFB. Les effets stipulent que, dans le contexte du jeu, jouer un acte Confirm engage le locuteur sur son contenu sémantique, jouer un acte Disconfirm engage sur la négation de son contenu sémantique, et que jouer un acte ExecNegativeAutoFB engage sur la proposition fail(q). Les effets conduisent à créer des engagements extra-dialogiques permettant d’atteindre les conditions de succès ou d’échec. j=vérification(p) Initiateur (x) Partenaire (y) Règles checkQuestion(x, q)|posiCheck(x, q) checkQuestion(x, q)|posiCheck(x, q) ⇒ Cj(y,confirm(y, p)|disconfirm(y, p)| execNegativeAutoFB(y, q),Crt) Effets confirm(y, p) ⇒ C(y,p,Crt) disconfirm(y, p) ⇒ C(y,¬p,Crt) execNegativeAutoFB(y, q) ⇒ C(y,fail(q),Crt) Tableau 6.19: Jeu de dialogue de vérification. p est le but du jeu, q=?p. Ce jeu de dialogue ne couvre pas le cas d’altération du projet conjoint observé dans le motif de vérification et qui représente 15.15% des cas observés. L’altération du projet conjoint conduit à modifier le jeu courant. Il s’agit d’une situation liée à la contextualisation du jeu et qui ne concerne pas directement la définition du jeu. Nous y revenons en section 6.3.4. La prise en compte de ce phénomène nécessite un approfondissement de la notion de contextualisation. Ce travail est conservé pour des approfondissements futurs. Le jeu de vérification négative est présenté dans le tableau 6.20. Il formalise le motif dialogique de vérification négative qui vise à confirmer ou infirmer la négation d’une proposition (e.g., « PAS mardi ? – Je te confirme, pas mardi ! »). Ce jeu est similaire à celui de vérification à l’exception de l’acte initiatif (NegaCheck) et des effets des actes Confirm et Disconfirm. Dans le contexte de ce jeu, si le partenaire joue un acte Confirm, il va confirmer la négation de la proposition, et donc s’engager sur cette négation. À l’inverse, jouer un acte Disconfirm conduit le partenaire à s’engager sur la proposition initiale. j=vérificationNegative(p) Initiateur (x) Partenaire (y) Règles negaCheck(x, q) negaCheck(x, q) ⇒ Cj(y,confirm(y, p)|disconfirm(y, p)| execNegativeAutoFB(y, q),Crt) Effets confirm(y, p) ⇒ C(y,¬p,Crt) disconfirm(y, p) ⇒ C(y,p,Crt) execNegativeAutoFB(y, q) ⇒ C(y,fail(q),Crt) Tableau 6.20: Jeu de dialogue de vérification négative. p est le but du jeu, q=?p.6.3. Spécification empirique de jeux depuis le corpus Cogni-CISMeF 173 Le jeu d’interrogation polaire est présenté dans le tableau 6.21. Il formalise le motif dialogique de question oui/non. Les règles spécifient que l’initiateur du jeu est engagé à jouer un acte PropositionalQuestion. À la suite de cet acte, le partenaire est engagé à jouer un acte Answer confirmant ou infirmant la proposition, ou un acte ExecNegativeAutoFB. Ici, les effets ne défi- nissent que celui de l’acte ExecNegativeAutoFB identique à ceux des jeux de dialogue précédents. L’effet de l’acte Answer est déjà défini dans le jeu de communication d’évaluation qui factorise les effets communs à tous les jeux de dialogue. j=interrogationPolaire(p) Initiateur (x) Partenaire (y) Règles propositionalQuestion(x, q) propositionalQuestion(x, q) ⇒ Cj(y,answer(y, p)| answer(y,¬p)|execNegativeAutoFB(y, q),Crt) Effets execNegativeAutoFB(y, q) ⇒ C(y,fail(q),Crt) Tableau 6.21: Jeu de dialogue d’interrogation polaire. p est le but du jeu, q=?p. Interrogation ouverte et interrogation à choix multiples Les motifs de question ouverte et de question à choix multiples ont chacun donné jour à un jeu de dialogue, respectivement, d’interrogation ouverte et d’interrogation à choix multiples. Ces deux jeux possèdent une structure sous-jacente commune liée à la sémantique des conditions de résolution choisie (cf. figure 6.6). Chaque jeu débute par un acte initiatif joué par l’initiateur. À la suite de cet acte, le partenaire peut donner autant de réponses strictement pertinentes (i.e., pertinentes et non résolvantes) qu’il souhaite. Le jeu se termine avec succès dès qu’une réponse résolvante est enfin donnée, ou sur un échec si le partenaire indique qu’il ne trouve pas de réponse. En cours Réponse strictement pertinente ExecNegativeAutoFB Échec Succès Réponse résolvante Acte initiatif Figure 6.6: Structure sous-jacente commune aux jeux de dialogue d’interrogation ouverte et d’interrogation à choix multiples Le jeu d’interrogation ouverte est donné dans le tableau 6.22. Le but de ce jeu est une question q telle que q : WHQ. Les conditions d’entrée précisent que le partenaire ne doit pas déjà être engagé sur une proposition qui résout la question, ou sur le fait qu’il ne connaît pas de réponse à la question. Les conditions de succès sont atteintes quand le partenaire est engagé sur une proposition qui résout la question. Les conditions d’échec indiquent que le jeu est un échec lorsque le partenaire s’engage sur le fait qu’il ne peut pas trouver la réponse. Les règles précisent que l’initiateur s’engage à jouer un acte initiatif SetQuestion. Ensuite, le jeu suit la structure commune précédemment décrite. Les effets stipulent que, dans le contexte de ce jeu, jouer un acte ExecNegativeAutoFB engage le partenaire sur la proposition fail(q). Le jeu d’interrogation à choix multiples est donné en annexe B.3. Contrairement au jeu pré-174 Chapitre 6 : Formalisation des motifs d’interaction j=interrogationOuverte(q) Initiateur (x) Partenaire (y) Entrée C(y,p,Ina) avec resolves (p, q) et C(y,fail(q),Ina) Succès C(y,p,Crt) avec resolves (p, q) C(y,p,Crt) avec resolves (p, q) Échec C(y,fail(q),Crt) C(y,fail(q),Crt) Règles setQuestion(x, q) setQuestion(x, q) ⇒ Cj(y,answer(y, p)| execNegativeAutoFB(y, q),Crt) avec relevant (p, q) answer(y, s) ∗⇒ Cj(y,answer(y, p)| execNegativeAutoFB(y, q),Crt) avec strictlyRelevant (s, q), relevant (p, q) Effets execNegativeAutoFB(y, q) ⇒ C(y,fail(q),Crt) Tableau 6.22: Jeu de dialogue d’interrogation ouverte. q : WHQ cédent, le but est une question q telle que q : ALTQ. Les conditions d’entrée, de succès, d’échec et les effets sont identiques au jeu d’interrogation ouverte. La différence principale tient en l’acte initiatif qui est un acte ChoiceQuestion. Les règles traduisent alors le mécanisme précédemment décrit. Notons que les contraintes sémantiques sont différentes du jeu d’interrogation ouverte en raison de la différence de type de la question. Discussion d’action Les trois motifs dialogiques d’action ont conduit à la formalisation de deux jeux de dialogue directifs (suggestion et requête) et un jeu de dialogue promissif (offre). Le jeu de dialogue de suggestion permet à l’initiateur de proposer la réalisation d’une action au partenaire qui peut alors accepter ou refuser. Il est donné dans le tableau 6.23. Ce jeu formalise le motif de suggestion. Son but est une action α. Les conditions d’entrée du jeu de suggestion spécifient que le partenaire ne doit pas être déjà engagé sur l’action suggérée α, i.e., ni sur son occurrence ni sur sa non-occurrence. Les conditions de succès sont identiques pour les deux interlocuteurs : elles affirment que le partenaire doit s’engager à réaliser α. Symétriquement, les conditions d’échec sont atteintes si la tentative d’engager le partenaire sur α échoue. Les règles spécifient que l’initiateur du jeu est engagé à jouer un acte Suggestion. Le partenaire est engagé à jouer un acte AcceptSuggestion ou DeclineSuggestion si l’initiateur remplit son engagement. Enfin, les effets définissent que jouer un acte AcceptSuggestion ou DeclineSuggestion, dans le contexte de ce jeu, engage le partenaire sur la réalisation de α ou sur l’échec de la création de l’engagement sur la réalisation de α. Le jeu de dialogue de requête est similaire au jeu de suggestion (les actes doivent être substitués par Request, AcceptRequest et DeclineRequest). Sa spécification complète a servi d’exemple afin d’illustrer la structure de jeu de dialogue (cf. section 6.2.1). Enfin, le jeu d’offre permet à l’initiateur de proposer de réaliser une action pour le partenaire qui peut accepter ou refuser. Il est donné dans le tableau 6.24 et formalise le motif d’offre. Le but de ce jeu est une action α. Les conditions d’entrée du jeu d’offre spécifient que l’initiateur ne doit pas être engagé sur l’action offerte α, i.e., ni sur son occurrence, ni sur sa non-occurrence. Les conditions de succès précisent pour les deux interlocuteurs que le jeu est un succès si l’initiateur contracte l’engagement de réaliser α. À l’inverse, les conditions d’échec stipulent que le jeu est un6.3. Spécification empirique de jeux depuis le corpus Cogni-CISMeF 175 j=suggestion(α) Initiateur (x) Partenaire (y) Entrée C(y,α,Ina) et C(y,¬α,Ina) Succès C(y,α,Crt) C(y,α,Crt) Échec C(y,α,Fal) C(y,α,Fal) Règles suggestion(x, α) suggestion(x, α) ⇒ Cj(y,acceptSuggestion(y, α)| declineSuggestion(y, α),Crt) Effets acceptSuggestion(y, α) ⇒ C(y,α,Crt) declineSuggestion(y, α) ⇒ C(y,α,Fal) Tableau 6.23: Jeu de dialogue de suggestion. α : Action échec si la tentative de l’initiateur de s’engager sur α échoue. Les règles déclarent que l’initiateur est engagé à jouer un acte Offer. Le partenaire est engagé à accepter cette offre (AcceptOffer) ou à la refuser (DeclineOffer) dès le moment où elle est faite. Enfin, les effets définissent que jouer un acte AcceptOffer ou DeclineOffer dans le contexte de ce jeu engage l’initiateur sur la réalisation de α ou sur l’échec de la création de l’engagement sur la réalisation de α. j=offre(α) Initiateur (x) Partenaire (y) Entrée C(x,α,Ina) et C(x,¬α,Ina) Succès C(x,α,Crt) C(x,α,Crt) Échec C(x,α,Fal) C(x,α,Fal) Règles offer(x, α) offer(x, α) ⇒ Cj(y,acceptOffer(y, α)| declineOffer(y, α),Crt) Effets acceptOffer(y, α) ⇒ C(x,α,Crt) declineOffer(y, α) ⇒ C(x,α,Fal) Tableau 6.24: Jeu de dialogue d’offre. α : Action Synthèse Dans cette section, nous avons spécifié un jeu de communication (celui d’évaluation) et huit jeux de dialogue collaboratifs à partir des onze motifs dialogiques observés dans le corpus Cogni-CISMeF. La finalité de ces jeux est la modification des états des engagements extradialogiques (propositionnel ou en action). Le tableau 6.25 présente les jeux à la disposition d’un interlocuteur x afin de modifier l’état courant d’un engagement extra-dialogique. Par exemple, si un interlocuteur souhaite s’engager envers son partenaire sur la réalisation d’une action (e.g., « Je te sers un café ? »), il peut choisir le jeu d’offre. Ce tableau montre la complétude du modèle vis-à-vis de la formalisation des engagements choisie. Nous avons laissé de côté les états Ful et Vio pour les engagements en action car l’atteinte de ces états dépend de l’application. Nous constatons que l’annulation des engagements propositionnels (état Crt vers Ina) n’est que partiellement prise en compte. Il n’existe actuellement aucun jeu permettant à un interlocuteur d’annuler un de ses engagements propositionnels. Ces limites dans notre modèle proviennent du fait que les seuls cas d’annulation observés dans le corpus Cogni-CISMeF sont liés à l’acte de Correction. En outre, ces cas sont marginaux (cf. section 5.2.2).176 Chapitre 6 : Formalisation des motifs d’interaction Engagement État courant État désiré Jeu(x) C(x,y,α) Ina Crt Offre Ina Fal Offre C(y,x,α) Ina Crt Requête, Suggestion Ina Fal Requête, Suggestion C(x,y,p) Ina Crt Jeu d’évaluation (via Inform a ) Crt Ina – C(y,x,p) Ina Crt Jeux de recherche d’information Crt Ina Jeu d’évaluation (via Correction) a. En supposant que tout acte Inform est attendu par le jeu d’évaluation. Tableau 6.25: Jeux utilisables par un interlocuteur afin de modifier les états des engagements extradialogiques. α : Action, p : Proposition 6.3.4 Couverture du corpus par les jeux définis Cette section présente la mise en place, la réalisation et les résultats d’une étude visant à évaluer la couverture des règles des jeux définis dans notre modèle sur le corpus de référence. Configuration du processus Cette étude porte sur le corpus de référence (un tiers du corpus Cogni-CISMeF) constitué lors du processus d’extraction et qui n’a pas été analysé (cf. section 5.2.1). Le corpus de référence a été annoté avec DIT++ sur l’ensemble des dimensions. Il représente approximativement le tiers du corpus Cogni-CISMeF en terme de tours de parole, de segments fonctionnels et de fonctions communicatives. Deux chercheurs de notre laboratoire ont pris part à cette tâche. Ces derniers n’étaient impliqués ni dans le processus d’extraction de motifs dialogiques, ni dans le processus de formalisation. Ils étaient néanmoins familiers avec les concepts d’actes de dialogue comme modèle de l’énoncé ainsi qu’avec la théorie QUD sur laquelle se base notre sémantique des questions. Avant d’entamer ce processus, nous leur avons présenté le schéma d’annotation DIT++ sur la base de la formation opérée lors du processus d’annotation. Nous avons ensuite présenté le jeu de communication d’évaluation et les 8 jeux de dialogue que nous avons définis. Les jeux ont été exposés comme des structures capturant les engagements que les interlocuteurs contractent durant le dialogue. En ce sens, nous avons expliqué aux deux chercheurs que les règles des jeux prescrivent des séquences d’actes de dialogue conventionnellement attendues. L’aspect déclaratif des jeux a clairement facilité la compréhension de ces structures. Chacun des jeux a été accompagné d’exemples de dialogue issus du corpus d’extraction et disponibles en annexe A.4.4. Ces exemples ont illustré les enchaînements d’actes prescrits par les jeux. Enfin, la sémantique des questions et les simplifications opérées vis-à-vis de la théorie de QUD leur ont été décrites. L’objectif de cette étude est de confronter les enchaînements de tours de parole aux règles définies dans nos jeux de manière à quantifier leur couverture. Il a été demandé aux deux chercheurs de considérer chaque enchaînement de tours de parole motivé par une évolution sur la dimension Task ou sur la dimension Auto-feedback via la fonction ExecNegativeAutoFB. Ces enchaînements forment une séquence de segments fonctionnels incluant un segment produit par chaque interlocuteur. Pour chacune de ces séquences, les volontaires avaient pour tâche de vérifier6.3. Spécification empirique de jeux depuis le corpus Cogni-CISMeF 177 si l’enchaînement de fonctions qu’elle représente était décrit par un jeu de communication ou un jeu de dialogue (indépendamment de sa contextualisation). Si l’enchaînement n’est décrit que partiellement (comme un acte initiatif suivi d’un acte inattendu dans le cadre d’un jeu) alors il est décompté comme un enchaînement ne correspondant pas au jeu. Par exemple, une question ouverte qui est posée et ignorée par le partenaire est décomptée comme un enchaînement partiel ne correspondant pas au jeu d’interrogation ouverte. Afin de détecter les séquences de tours de parole et leur adéquation avec un jeu, il a été demandé aux deux chercheurs de ne considérer que les segments fonctionnels ayant une fonction annotée dans la dimension Task (ou une fonction ExecNegativeAutoFB). Néanmoins, ils avaient accès aux annotations sur l’ensemble des dimensions leur permettant ainsi de faire la part entre les enchaînements de tours de parole motivés par la gestion de l’interaction et ceux motivés par la gestion de la tâche. En outre, il leur a été demandé de tenir compte de la forme linguistique du segment qui fournit le contenu sémantique. La cohérence sémantique spécifiée par les jeux n’a été vérifiée qu’informellement (notamment pour les jeux d’interrogation ouverte et à choix multiples). Le jeu d’évaluation présente un cas particulier via l’ajout des actes AcceptCorrection et DeclineCorrection. Ces ajouts ont été opérés lors de la formalisation, a posteriori de l’annotation du corpus de référence avec le schéma DIT++. En conséquence, les deux chercheurs ont eu pour consigne de considérer toute fonction Agreement ou Disagreement suivant un acte de Correction comme équivalente, respectivement, aux fonctions AcceptCorrection et DeclineCorrection. Ce processus permet de produire un ratio entre les enchaînements prescrits par un jeu et ceux partiellement prescrits. Ce ratio permet de quantifier la couverture des enchaînements de fonctions communicatives prescrits par les jeux que nous avons définis avec une prise en compte informelle de la sémantique, et en faisant abstraction du processus de contextualisation (la plupart du temps implicite dans les conversations humaines [Levin 1977,Mann 1988,Mann 2002]). Avant de répartir les entretiens du corpus de référence entre les deux chercheurs, nous leur avons demandé de réaliser tous deux le processus sur l’entretien VD03 constitué de 102 tours de parole. Cet exercice a permis d’analyser la correspondance entre les ratios produits. Ce test a été concluant puisqu’aucune différence significative concernant les ratios n’a été observée entre les chercheurs. Ils se sont ensuite répartis les entretiens. Le chercheur 1 s’est chargé des entretiens AL05, AL09 et VD09 tandis que le chercheur 2 s’est occupé des entretiens AL02 et VD08 auxquels ont été ajouté les résultats de l’entretien VD03. Résultats du processus 356 séquences ont été mises en évidence par les deux chercheurs. Nous obtenons des résultats similaires à ceux du corpus d’extraction en terme de tours de parole impliqués dans une séquence et en terme de proportion de catégories de jeux représentées. Dans le détail, les séquences correspondant à un enchaînement prescrit par un jeu couvrent approximativement deux tiers des tours de parole du corpus de référence, tandis que les séquences ne correspondant pas à un enchaînement couvrent environ 10% des tours de parole. Les tours de parole non couverts par une séquence correspondent à une évolution sur l’axe de l’interaction (env. 25% des tours de parole). La catégorisation des séquences dont l’enchaînement est prescrit par un jeu est similaire à celle des motifs dialogiques observés dans le corpus d’extraction. C’est-à-dire qu’environ 25% des séquences ont un enchaînement prescrits par le jeu d’évaluation (catégorie de transfert d’information). Les 75% des séquences restantes se répartissent de manière équilibrée entre la catégorie de recherche d’information (jeux de dialogue de vérification, vérification négative,178 Chapitre 6 : Formalisation des motifs d’interaction interrogation polaire, ouverte et à choix multiples) et la catégorie de discussion d’action (jeux de dialogue de requête, suggestion et d’offre). Les résultats de ce processus sont donnés dans le tableau 6.26 qui présente pour chaque jeu la proportion de séquences observées dont l’enchaînement de fonctions communicatives est prescrit. La conclusion globale est que 83.4% des séquences détectées par les volontaires dans le corpus de référence ont pu être mises en correspondance avec les règles des jeux que nous avons spécifiées. Plus précisément, nous pouvons voir que les scores sont tous au-delà de 66% indiquant une adéquation fiable entre les dialogues que nous modélisons et les jeux définis. Évaluation Vérification Vérification neg. Int. polaire Int. ouverte Int. choix multiples 100% 69.7% 66.7% 66.7% 88.6% 87.5% Suggestion Requête Offre 84.8% 72.7% 78.1% Tableau 6.26: Résultats de l’étude de la couverture des jeux. Proportion de séquences qui correspondent à un enchaînement prescrit par un jeu. En outre, nous avons étudié les 16.6% de cas où il n’était pas possible de trouver une correspondance. Nous avons identifié deux grandes catégories : les cas liés à la structure inter-jeu et les cas liés à la structure intra-jeu. La première catégorie est elle-même décomposable en deux sous-catégories. Dans la première, le partenaire ignore délibérément l’énoncé de l’initiateur dans 10% des cas. C’est ce que Clark appelle un retrait du projet conjoint [Clark 1996] et peut être illustré par : « – si vous voulez qu’on aille dessus on peut y aller (Offer) – je rappelle que le 13 était intéressant. (Inform) » (VD03). La prise en compte dans notre modèle de ces cas se situe au niveau de la contextualisation du jeu de dialogue. Ici, la contextualisation est implicite : l’acte initiatif du jeu est également une proposition d’entrée dans le jeu (cf. section 3.1.3). La réponse à l’acte initiatif est implicitement un refus d’entrée dans le jeu de par le fait qu’elle ne constitue pas une contribution allant dans le sens du jeu. Dans la seconde sous-catégorie, le partenaire ouvre un jeu emboîté qui rend obsolète le jeu parent dans environ 45% des cas. C’est illustré par l’exemple suivant : « – bon est-ce qu’il y a des choses qui vous parlent par rapport à votre demande initiale ? – bah est-ce qu’il y a un mot clé prévention ? – on l’a pas rajouté. » (VD09). La prise en compte dans notre modèle doit se faire par une spécification claire de la notion de contribution entre jeu parent et jeu emboîté. En effet, certains emboîtements semblent adresser des conditions indispensables au succès du jeu parent tandis que d’autres paraissent facultatifs (voir, e.g., GoDiS qui gère des questions emboîtées indispensables et d’autres facultatives). Cette notion de contribution a alors une incidence sur la fermeture des jeux emboîtés. La seconde grande catégorie, liée à la structure intra-jeu, peut également être décomposée en deux sous-catégories. Le premier cas prédomine (environ 35%) et apparaît lorsque le partenaire semble prendre un « raccourci » dans un motif d’interaction plus grand. Cela inclut certains cas d’actes de dialogue indirects et apparaît fréquemment lors du jeu de requête et lors du jeu de vérification (CheckQuestion). Par exemple : « – vous pouvez me la formuler en une vraie phrase ou pas (CheckQuestion) – “qu’est-ce qu’on sait sur l’évolution des traitements actuels sur la migraine” (Inform) » (VD03). Ces structures trouvent deux échos possibles dans notre modèle. La première contribution peut être analysée comme un acte de contextualisation explicite (une proposition d’entrée dans un jeu de requête). La réalisation de l’action demandée remplit alors l’engagement en action extra-dialogique qui aurait été contracté si le jeu de requête6.4. Discussion 179 avait été mené à son terme (par la succession des actes Request et AcceptRequest et des actes de contextualisation adéquats). Une autre façon de percevoir cette structure est de considérer que la première contribution est un acte initiant un jeu de vérification (sur la capacité du partenaire) pré-séquençant un jeu de requête (dans notre exemple, sur la formulation). Les deux jeux sont alors implicitement satisfaits par la réalisation de l’action demandée. D’une façon ou d’une autre, la prise en compte de ces phénomènes la plus prometteuse semble être sur l’axe de la communication implicite et de mécanismes d’accommodation. Pour une prospection de ces aspects, nous invitons le lecteur intéressé à se référer au chapitre 6 de [Maudet 2001] et à [Larsson 2002a]. Le second cas que nous avons détecté est lorsque le partenaire altère sa réponse par rapport à ce qui est attendu dans le motif pour produire une chose à laquelle il peut et souhaite réagir (approx. 10%), appelée une altération du projet conjoint [Clark 1996]. Cela peut être illustré par l’exemple : « – alors vous ne connaissez pas l’équivalent de zomig (CheckQuestion) – C’est une famille de produit » (VD03). Ces cas ont été volontairement exclus de notre étude (cf. section 6.3.3). Le partenaire n’est plus passif : il altère le jeu courant de vérification proposé par l’initiateur vers un jeu d’interrogation ouverte (« Qu’est-ce que le “zomig” ? »). Ce type d’altération a vocation à être modélisé via des mécanismes d’accommodation concernant la contextualisation des jeux de dialogue. 6.4 Discussion Ce chapitre a présenté un cadre pour modéliser des motifs dialogiques observés dans un corpus, basé sur des travaux théoriques antérieurs dans le champ des jeux de dialogue. Ce cadre s’appuie sur la notion d’engagement social qui permet de donner une sémantique publique aux jeux de dialogue. Leurs spécifications sont indépendantes des dispositions privées des agents prenant part à l’interaction. Les jeux de dialogue sont vus comme des projets conjoints activés temporairement pendant le dialogue pour un but spécifique. Ils constituent des contextes dialogiques au sein desquels les interlocuteurs contractent des engagements qui vont guider leurs comportements communicatifs. Ils définissent des enchaînements d’actes attendus, et les effets de l’occurrence de ces actes en terme de modifications du tableau de conversation. La formalisation des engagements sociaux et des jeux de dialogue présentée raffine celle proposée par Maudet (cf. section 3.2.3). Notre formalisation d’engagement social clarifie leur cycle de vie par l’usage d’un état de l’engagement. Elle distingue clairement les engagements extra-dialogiques (proposition, action et jeux) des engagements dialogiques en action qui vont contraindre le comportement communicatif des interlocuteurs. En outre, nous considérons explicitement les engagements conjoints sur les jeux de dialogue dans divers états de contextualisation. Le tableau de conversation représente les positions des interlocuteurs sur des propositions, les engagements sur la réalisation d’actions et la structure intermédiaire du dialogue sous la forme de jeux suggérés, ouverts ou fermés. Ce dernier évolue sous l’impulsion d’événements externes (dialogiques ou non) et d’événements internes déclenchés par l’atteinte de certains états du tableau. La formalisation de jeux de dialogue que nous utilisons ajoute des conditions d’échecs définies en terme d’état du tableau de conversation, la définition des effets contextualisés des actes de dialogue dans le cadre d’un jeu de dialogue, et la possibilité de spécifier des contraintes de cohérence sémantique dans les enchaînements d’actes. Le cadre que nous proposons cantonne l’intervention du domaine d’application à trois grands aspects. Le premier est celui des actions extra-dialogiques dont il est nécessaire de spécifier l’atteinte des états de succès (Ful) et d’échec (Vio). Nous avons noté que la solution communément admise consiste en un jeu de décharge180 Chapitre 6 : Formalisation des motifs d’interaction aisément intégrable à notre approche. Le deuxième est celui de la sémantique des énoncés dont nous avons vu qu’il est nécessaire en pratique de restreindre au domaine d’application. Enfin, le dernier aspect est la spécification des combinaisons de jeux de dialogue possibles. Cette spécification peut dans un premier temps se baser sur des plans de dialogue [Larsson 2002a]. Enfin, notre formalisation bénéficie d’un ensemble d’avantages que nous avons déjà présentés en section 3.3.2. Nous avons illustré la spécification des jeux de dialogue depuis des motifs dialogiques en mettant en œuvre l’ensemble des étapes de notre méthodologie sur un corpus orienté vers une tâche de recherche d’information dans le domaine médical. Nos jeux spécifient des enchaînements d’actes conventionnellement attendus. Cette spécification tire partie d’une sémantique précédemment utilisée sur le corpus Cogni-CISMeF et inspirée de GoDiS. Une étude de la couverture des règles des jeux (de communication et de dialogue) a été réalisée par deux chercheurs sur le corpus de référence constitué lors du processus d’extraction. Elle a permis de montrer qu’une large majorité des enchaînements de fonctions communicatives dans la dimension Task apparaissant dans ce corpus est prescrite par les jeux que nous avons définis. En outre, cette étude a permis de pointer les limites de notre modèle. Notre modèle d’engagement social différencie engagement propositionnel (dirigés vers le pré- sent) et engagement en action (dirigés vers le futur). Il est tout à fait possible de contracter un engagement propositionnel dirigé vers le futur (« Les documents seront triés demain. ») ou un engagement vers le passé (« Hier, j’ai recherché ton livre toute la soirée »). Il existe une volonté théorique d’uniformisation du traitement des engagements propositionnels et en action [Singh 2008]. Ce problème semble étroitement lié au langage de contenu des engagements [Pasquier 2005]. Des avancées théoriques dans cette direction peuvent bénéficier directement à notre modèle de l’engagement social. Notre modèle ne considère qu’un nombre réduit d’états pour les engagements sociaux. Nous avons vu que le formalisme d’engagement proposé constitue un minimum vital qui nous a permis de donner une sémantique publique satisfaisante aux motifs dialogiques observés dans le corpus. C’est une première approche simplifiée qui a l’avantage d’être extensible. Il est possible d’envisager d’autres états comme l’annulation, la mise en attente, l’expiration, etc. [ChaibDraa 2006,Telang 2012]. Dans la perspective d’uniformisation des engagements propositionnels et en action, il semble raisonnable d’étendre ces états vers ceux des engagements en action. Notre modèle de jeu de dialogue requiert la spécification manuelle des combinaisons possibles de jeux de dialogue. Ces combinaisons peuvent être motivées intentionnellement ou dialogiquement (cf. section 3.3.1). Il est nécessaire d’approfondir les raisons conduisant à certaines combinaisons et pas à d’autres (notamment dans le cas de l’emboîtement). Suite à la restriction à la dimension Task opérée dans le processus d’extraction, notre modèle se limite à la modélisation de la communication au niveau de la tâche. Nous avons laissé de côté tous les problèmes de communication pouvant intervenir aux niveaux inférieurs (attention, perception, interprétation, etc.). En conséquence, le tableau de conversation modélisé représente une partie publique strictement partagée par les interlocuteurs. La considération des autres niveaux de la communication va éventuellement nécessiter la relativisation du point de vue de l’agent du tableau de conversation. Ces processus de gestion de l’interaction nécessitent une étude particulière, et ont vocation à s’intégrer dans notre modèle via les jeux de communication. Enfin, notre modèle se limite à la modélisation de la communication explicite. L’étude de la couverture des règles des jeux de dialogue permet de pointer cette limitation. Les cas noncouverts par notre modèle sont majoritairement liés au fait que nous nous sommes limités aux phénomènes explicites. Cependant, la communication humaine est souvent implicite. Ceci trans-6.4. Discussion 181 paraît de manière criante au niveau de la contextualisation des jeux de dialogue. En effet, notre étude a permis de confirmer la quasi absence des actes de contextualisation : ce mécanisme est réalisé de manière implicite dans les dialogues naturels. Cela conduit à des propositions d’entrée et des refus implicites (cf. section 3.1.3). L’extension du mécanisme de contextualisation à la communication implicite a vocation à prendre en compte des cas de retrait et d’altération du projet conjoint. Une piste de recherche s’ouvre au niveau de la prise en compte des phénomènes implicites et de mécanismes d’accommodation.Chapitre 7 Mise en œuvre du modèle Sommaire 7.1 Dogma : « DialOgue Game MAnager » . . . . . . . . . . . . . . . . . . . . . . 183 7.1.1 Architecture d’un système de dialogue Homme-Machine . . . . . . . . . . . . 184 7.1.2 Exploitation des jeux de dialogue par un gestionnaire de dialogue . . . . . . . . 184 7.1.3 Présentation de Dogma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185 7.1.4 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188 7.2 Traces de fonctionnement de Dogma . . . . . . . . . . . . . . . . . . . . . . . 189 7.2.1 Tableau de conversation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 7.2.2 Exemple de jeu de requête . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 7.2.3 Exemple de jeu de question à choix multiples . . . . . . . . . . . . . . . . . . 194 7.2.4 Exemple d’emboîtement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201 7.3 Vers une validation de Dogma . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 7.3.1 Test « à la Turing » . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 7.3.2 Développement de systèmes de dialogue . . . . . . . . . . . . . . . . . . . . . 207 7.4 Discussion : vers un agent dialogique utilisant les jeux . . . . . . . . . . . . . . 207 Ce chapitre montre l’apport des jeux de dialogue vus comme une structure capturant les engagements pour la gestion du comportement communicatif conventionnel d’un agent interactif. La section 7.1 décrit l’intérêt interprétatif et génératif des jeux de dialogue pour un agent interactif. Elle présente Dogma, un module normatif de gestion de l’interaction conventionnelle qui tire partie des jeux de dialogue pour fonder le comportement communicatif conventionnel d’un agent interactif. La section 7.2 illustre le fonctionnement de Dogma à travers trois exemples mêlant jeux de dialogue, jeux de communication et combinaisons de jeux. La section 7.3 envisage plusieurs scénarios d’évaluation pour Dogma à moyen et long terme. Enfin, la section 7.4 synthétise ce chapitre et donne quelques pistes pour l’intégration des jeux de dialogue dans le processus délibératif d’un agent interactif. 7.1 Dogma : « DialOgue Game MAnager » Cette section s’intéresse à l’exploitation des jeux de dialogue par le gestionnaire de dialogue d’un agent interactif. La section 7.1.1 synthétise brièvement l’architecture d’un système de dialogue Homme-Machine et pointe l’importance du gestionnaire de dialogue. La section 7.1.2 pré- sente l’intérêt computationnel des jeux de dialogue fondés sur les engagements. La section 7.1.3 présente le module de gestion de l’interaction développé dans cette thèse, et décrit son architecture haut niveau. La section 7.1.4 fournit certains détails de sa mise en œuvre.184 Chapitre 7 : Mise en œuvre du modèle 7.1.1 Architecture d’un système de dialogue Homme-Machine L’architecture classique d’un système de dialogue Homme-Machine consiste en un ensemble de modules communiquant les uns avec les autres permettant de produire le comportement du système. Comme noté par [Landragin 2013], il n’existe pas d’architecture de référence fiable et générique pouvant être appliquée à n’importe quel système de dialogue. Ceci est principalement dû au fait que chaque système possède des capacités différentes en terme d’entrée (i.e., d’interprétation de la contribution de l’utilisateur en fonction des modalités d’expression) et de sortie (i.e., de réalisation de la contribution du système). En conséquence, chaque système admet une architecture qui lui est propre. Néanmoins, un certain nombre de composants sont récurrents et peuvent être identifiés. L’architecture d’un système de dialogue s’articule autour de trois grandes tâches [Jokinen 2010,Landragin 2013] : l’acquisition et l’interprétation du comportement communicatif de l’utilisateur, la gestion du comportement dialogique du système, et enfin, la génération effective du comportement du système. Elle intègre un ensemble de modules d’interprétation permettant d’acquérir la contribution de l’utilisateur (reconnaissance vocale, caméra, clavier, etc.) et de la transformer en une représentation computationnelle utilisable par le gestionnaire de dialogue. Ce dernier permet d’intégrer la contribution de l’utilisateur et de générer celle du système. Celle-ci est réalisée par un ensemble de modules de génération (synthèse vocale, animation de la représentation graphique d’un agent animé, etc.). Une grande constante de ces architectures est la centralité du gestionnaire de dialogue. Ce module est le cœur du système [Jokinen 2010,Landragin 2013]. Schématiquement, il inclut deux grands composants [Jokinen 2010]. Le premier est l’état d’information (ou modèle du contexte du dialogue). Ce composant enregistre les éléments pertinents du contexte dialogique (cf. section 1.2.2) nécessaires à l’interprétation du comportement communicatif de l’utilisateur et à la génération des contributions dialogiques du système. Ce modèle ne se limite pas à la représentation de l’avancement de la tâche sous-jacente mais inclut des éléments des contextes linguistique, sémantique, physique et perceptuel, et social [Bunt 2011a]. Le second est le module de contrôle du dialogue. Ce module est responsable du comportement communicatif du système : sur la base de l’état d’information, il détermine ce que le système doit faire. Le rôle du gestionnaire de dialogue est donc double. Il est responsable de la mise à jour de l’état d’information suite à l’intervention d’événements dialogiques provenant de l’utilisateur ou du système (rôle interprétatif), et régit le comportement communicatif du système (rôle génératif). 7.1.2 Exploitation des jeux de dialogue par un gestionnaire de dialogue Les systèmes de dialogue Homme-Machine inspirés des systèmes dialectiques présentent un intérêt pour la modélisation de l’interaction Homme-Machine [Yuan 2011]. Leur principal atout réside dans leur nature normative : les engagements contractés pendant la communication contraignent le comportement communicatif des interlocuteurs. D’un point de vue computationnel, ces modèles présentent deux grands intérêts pour un agent interactif. Ils ont un intérêt interprétatif qui va nous permettre de déterminer la légalité d’un coup provenant de l’utilisateur. De là, un agent peut adapter sa réaction en fonction d’un coup légal ou non. Ces modèles ont également un intérêt génératif : ils permettent d’assister le système pour la production d’une réponse en limitant l’attention à l’ensemble des coups légaux. Cela conduit typiquement à réduire l’espace des réponses possibles pour l’agent et facilite le processus de délibération sur la réponse à produire.7.1. Dogma : « DialOgue Game MAnager » 185 Un gestionnaire de dialogue peut faire un usage avantageux des relations définies entre un événement dialogique et le tableau de conversation (cf. sections 6.1.3 et 6.2.4). D’un point de vue interprétatif, un modèle fondé sur les engagements sociaux envisage la légalité d’un coup dialogique en fonction de l’état du dialogue selon plusieurs angles [Maudet 2001] : interdiction un coup peut être interdit par les engagements contractés durant l’interaction (relation estInterdit) attente un coup peut être attendu par un engagement contracté durant l’interaction (relation estAttendu) priorité un coup attendu peut être prioritaire sur les autres coups (relation estPrioritaire) Le rôle interprétatif d’un gestionnaire de dialogue basé sur les jeux de dialogue tels que nous les avons présentés consiste à classer un événement dialogique selon ces critères, et à réagir en conséquence. Ce rôle est illustré par l’algorithme 7.1 qui présente la structure générale du comportement du gestionnaire de dialogue. Un événement dialogique autorisé, attendu et prioritaire conduit à la mise à jour du tableau de conversation via l’algorithme 6.2 précédemment décrit. La gestion des interdictions, des inattendus et des événements non-prioritaires dépend de l’agent interactif modélisé. Elle est déléguée à la conception de l’agent. Une grande variété de comportements peut être mise en place. Par exemple, GoDiS inclut une règle « irrelevantFollowup » [Larsson 2002a] (p. 141) permettant d’interpréter un acte inattendu après une question du système comme un refus d’aborder la question. D’autres systèmes d’interaction Homme-Machine pour le débat interdisent purement et simplement les coups non légaux [Yuan 2008]. Notre modèle permet de déterminer les coups conventionnellement attendus en fonction du tableau de conversation. Cette propriété présente un intérêt aussi bien du point de vue interpré- tatif que génératif. Pour ce dernier point, nous proposons de classer les événements dialogiques attendus en fonction des jeux dans lesquels ils prennent part, puis par précédence conversationnelle. L’idée, déjà évoquée en section 6.2.4, est qu’il existe à un moment donné un ensemble de jeux de dialogue ouverts et saillants, ordonnés par leurs temps de passage à l’état Open (du plus récent au plus ancien). Chaque jeu entretient un ensemble d’événements dialogiques attendus dans son cadre. Cet ensemble est lui-même ordonné par le temps de passage des engagements à l’état actif (du plus récent au plus ancien). Nous partons du principe que les jeux de communication sont moins saillants que les jeux de dialogue. La structure est alors complétée par l’ensemble ordonné des événements attendus dans le cadre des jeux de communication. De cette manière, nous obtenons un ensemble ordonné d’événements dialogiques prioritaires qui peut être exploité par le processus délibératif d’un agent. Cette structure est illustrée dans les exemples de fonctionnement du système que nous avons développés, et qui sont présentés en section 7.2. 7.1.3 Présentation de Dogma Dogma (pour « DialOgue Game MAnager ») est un module normatif de gestion de l’interaction conventionnelle basé sur les jeux de dialogue, utilisable par un agent interactif lors d’un dialogue impliquant deux interlocuteurs. Dogma adopte l’approche par état d’information (ISU) [Larsson 2000b, Traum 2003] et est centré autour de la mise à jour et de l’exploitation du commitment store localisé dans la partie publique de l’état d’information du gestionnaire de dialogue. Dogma met en œuvre les spécifications présentées dans les sections 6.1 et 6.2. Il implémente notamment les algorithmes précédemment présentés et les opérations réalisables sur le tableau de conversation.186 Chapitre 7 : Mise en œuvre du modèle Algorithme 7.1 Structure de l’algorithme de gestion de dialogue basé sur les jeux de dialogue. Nom: GestionnaireDeDialogue Role: Met à jour le tableau de conversation suite à l’occurrence d’un événement externe dialogique Entrée: Ti : TableauDeConversation , e : ÉvénementDialogique, ensGenerator : EnsInternalEventGenerator Sortie: Ti+1 : TableauDeConversation Entrée/Sortie: t : Temps Déclaration:  debut // Progression du temps t ← incrementeTemps(t) // Classement du coup dialogique dans différentes catégories si estInterdit(e, Ti) alors // Gestion de l’événement dialogique interdit . . . à définir. . . sinon si ¬estAttendu(e, Ti) alors // Gestion d’un événement dialogique inattendu . . . à définir. . . sinon si ¬estPrioritaire(e, Ti) alors // Gestion d’un événement dialogique non prioritaire . . . à définir. . . sinon // Le coup est autorisé, attendu et prioritaire : c’est un coup pertinent // Mise à jour du tableau de conversation Ti+1 ← evolutionTableauDeConversation(e, ensGenerator, Ti) finsi finsi finsi fin L’architecture dans laquelle s’intègre Dogma est présentée en figure 7.1. L’élément central de cette architecture est l’état d’information qui est classiquement subdivisé en une partie publique (le tableau de conversation) et une partie privée. C’est dans cette partie publique que s’intègre le composant central de Dogma : le commitment store. Ce dernier est constitué d’un ensemble d’engagements contractés par les interlocuteurs, partiellement ordonné par la relation de priorité. Il contient pour chaque interlocuteur les engagements propositionnels (extra-dialogiques) et en action (extra-dialogiques et dialogiques) dont il est débiteur. Il inclut également l’ensemble des jeux de dialogue sur lesquels les interlocuteurs sont engagés dans différents états de contextualisation. Le commitment store est maintenu à jour suite à l’occurrence d’événements externes par le gestionnaire d’engagements qui a accès en lecture et en écriture à cette partie du tableau de conversation. Ce module met en œuvre l’algorithme 6.2, et se charge de faire évoluer l’ensemble des engagements suite à l’occurrence d’un événement externe et des événements internes7.1. Dogma : « DialOgue Game MAnager » 187 subséquents. Ce composant est sollicité par le module de contrôle du gestionnaire de dialogue. Dogma fournit deux modules ayant accès en lecture au commitment store et permettant de l’exploiter : le module arbitre et le module de gestionnaire du comportement conventionnel. Le module arbitre permet de juger de la légalité d’un événement dialogique. Il accède au commitment store afin de déterminer si l’événement est interdit, attendu ou prioritaire. Ce composant est sollicité par l’algorithme de contrôle du gestionnaire de dialogue dans sa phase interprétative (dont la structure suit l’algorithme 7.1). Le module de gestion du comportement conventionnel exploite le commitment store afin d’identifier les descriptions d’événements dialogiques attendus de la part de chaque interlocuteur. Il permet d’ordonner les événements dialogiques prioritaires en fonction des jeux de dialogue en cours comme précisé en section 7.1.2. Ce module donne accès aux jeux de dialogue en cours ou passé (i.e., tous les jeux dont l’état n’est pas Ina). Il permet de déterminer les jeux saillants, le jeu de dialogue courant et les événements dialogiques attendus dans le cadre de chaque jeu (de communication ou de dialogue). Ce module donne des motivations conventionnelles à la production de certains actes en fonction des engagements en action dialogiques contractés et des jeux en cours. Ces éléments peuvent entrer en ligne de compte dans le processus délibératif de l’agent interactif (cf. section 7.4). État d'information Public Commitment Store Proposition Action Jeux Privé événement(s) en entrée Arbitre Gestionnaire d'engagements Gestionnaire de comportement conventionnel Contrôle événement(s) en sortie Jeux de dialogue Jeux de communication Domaine Événements dialogiques Figure 7.1: Architecture de Dogma Les trois principales ressources configurant Dogma sont : la librairie des événements dialogiques considérés, la librairie des jeux de communication et enfin la librairie des jeux de dialogue. Ces trois ressources permettent de définir les coups dialogiques utilisables par les interlocuteurs ainsi que les jeux sur lesquels les utilisateurs vont pouvoir s’engager durant l’interaction. Ces ressources spécifient un système normatif d’interaction déclinable sur plusieurs domaines d’application. Une instantiation possible de ces ressources est celle que nous avons spécifiée en section 6.3. Enfin, la ressource domaine fournit les éléments dépendants du domaine d’application de l’agent interactif. Cette ressource spécifie notamment les éléments relatifs au domaine de la sémantique des énoncés, les événements externes, et les combinaisons autorisées entre les jeux de dialogue.188 Chapitre 7 : Mise en œuvre du modèle 7.1.4 Implémentation Plusieurs frameworks de développement de systèmes de dialogue basés sur un état d’information existent parmi lesquels nous pouvons citer trindikit [Larsson 2002b], Dipper [Bos 2003] (basé sur trindikit), et trindikit.py [Ljunglöf 2009]. trindikit est très certainement le framework le plus populaire dans le milieu académique. Il a permis de développer plusieurs prototypes dont GoDiS (cf. section 2.2.3), et est à la base de Dipper. trindikit est un projet libre 1 , développé dans un dialecte de Prolog appelé Sicstus Prolog. Malheureusement, cette implémentation pose des problèmes pour la mise en œuvre d’un système de dialogue [Ljunglöf 2009]. Bien qu’étant un projet libre, trindikit est basé sur une implémentation propriétaire de Prolog. En outre, l’architecture modulaire de ce framework est fondée sur l’« Open Agent Architecture » (OAA) [Martin 1999] qui n’est plus en développement actif depuis 2007, laissant envisager des problèmes de compatibilité. trindikit.py est né en 2009 afin de surmonter ces problèmes. Son objectif est de proposer une alternative entièrement libre de trindikit basée sur le langage Python 2 . Cependant, à l’heure où nous écrivons, l’activité de ce projet semble être au point mort (dernière activité en septembre 2010). De plus, les développeurs signalent explicitement que le code comporte actuellement des erreurs et n’est pas documenté. Le développement de notre prototype Dogma est parti du constat qu’aucune alternative existante n’est satisfaisante. Nous nous sommes tournés vers le langage Scala [Odersky 2008] 3 afin de développer Dogma. Le code source de Dogma est sous license GPLv3 et est actuellement hébergé à l’URL https://labanquise.insa-rouen.fr/projects/dogma/. L’annexe C.1 présente des exemples de code tiré de Dogma et montre l’implémentation du jeu de dialogue de requête et du jeu de communication d’évaluation. Dogma a vocation à s’intégrer dans le module de gestion de dialogue de la plateforme AgentSlang [Serban 2013] développée dans l’équipe de recherche Modélisation, Interation et Usage (MIU) du LITIS. Cette plateforme fournit une architecture distribuée pour le développement d’agent interactif. Dogma a été utilisé avec succès afin d’implémenter deux systèmes normatifs d’interaction. Le premier système est celui spécifié dans cette thèse à partir de l’étude du corpus Cogni-CISMeF (cf. section 6.3). C’est ce système que nous utilisons afin de produire des traces de fonctionnement en section 7.2. Le second système a été conçu et implémenté par Coralie Farges lors de son stage de Master [Farges 2013]. Cette étude a consisté en l’application de notre méthodologie sur un corpus de dialogues Homme-Homme dans le contexte du jeu de société Négoces 4 . Elle a conduit à l’annotation du corpus en terme d’actes de dialogue suivie de la détection de motifs d’interaction récurrents. Ces motifs ont été formalisés dans le cadre théorique proposé au chapitre 6. Cette formalisation a conduit à l’implémentation des jeux de dialogue via Dogma afin de produire un système normatif de l’interaction dans le cadre du jeu Négoces. 1. Le code source de trindikit est disponible à l’URL : http://sourceforge.net/projects/trindikit (dernière mise à jour : 15/04/2013) 2. Le code source de trindikit.py est disponible à l’URL : https://code.google.com/p/py-trindikit (dernière mise à jour : 17/09/2010) 3. Scala est développé à l’École Polytechnique Fédérale de Lausanne (EPFL), http://www.scala-lang.org/ (dernière mise à jour : 03/12/2013) 4. Le jeu Négoces a été conçu par François Tréca (http://www.negoces.fr, dernière consultation le 20/12/2013).7.2. Traces de fonctionnement de Dogma 189 7.2 Traces de fonctionnement de Dogma Dans cette section, nous présentons trois exemples de fonctionnement qui illustrent les caractéristiques du modèle et les capacités de Dogma. La section 7.2.1 introduit le tableau de conversation utilisé lors des exemples. La section 7.2.2 décrit le déroulement complet d’un jeu de dialogue requête, de son établissement à sa clôture. Ensuite, la section 7.2.3 illustre une sé- quence d’actes dépassant le simple cadre de la paire adjacente et entremêlant jeu de dialogue et jeu de communication d’évaluation. Enfin, la section 7.2.4 introduit un exemple d’emboîtement de jeux. Trois traces de fonctionnement supplémentaires sont disponibles en annexe C.2. Elles traitent des cas marginaux d’échec et de correction. 7.2.1 Tableau de conversation Ces exemples impliquent un tableau de conversation minimal. Il inclut l’historique du dialogue en terme d’événements dialogiques (champ « Tours »), les engagements propositionnels et en action contractés par les interlocuteurs (colonnes Cx et Cy) et les engagements conjoints des interlocuteurs x et y sur les jeux de dialogue (champ Cxy Jeu). En outre, le jeu de dialogue saillant est précisé s’il existe. Pour chaque interlocuteur, nous précisons les propositions sur lesquelles il est engagé (ligne Cp), les actions extra-dialogiques dans les états Crt (ligne Ca(Crt)) et Fal (ligne Ca(Fal)), et les engagements en action dialogiques (ligne CdA). Les engagements affichés sont les engagements actifs. Pour chaque tableau de conversation, Dogma présente son exploitation en terme d’actes attendus et d’actes interdits. Nous n’affichons que les actes attendus puisque nos jeux ne pré- sentent aucune règle d’interdiction. Les actes attendus sont ordonnés en fonction de la saillance des jeux et de l’instant auquel les engagements ont été contractés. Les jeux de communication sont identifiés par ctx (contextualisation) et ev (évaluation). Dans Dogma, les jeux de dialogue et les jeux de communication sont gérés uniformément. Les règles de ces jeux sont chargées lorsque le jeu est ouvert. Pour les jeux de communication, les règles sont chargées au lancement du système puisqu’ils sont toujours actifs. Les règles des jeux de dialogue sont chargées à l’ouverture du jeu et déchargées à leur fermeture. Afin d’améliorer la lisibilité du tableau de conversation, nous ne faisons pas apparaître les règles des jeux de communication. Nous exhibons les traces du système qui démontrent leur application. Pour éviter de surcharger le tableau de conversation, l’acte de contextualisation poursuit a été évincé des exemples. Cet acte est joué chaque fois qu’un acte de niveau inférieur attendu est appliqué au tableau. Les traces sont générées par Dogma au format LATEX. Ces traces sont post-traitées de manière à accroître la lisibilité du tableau de conversation : le contenu des actes de contextualisation est factorisé par l’identifiant du jeu (précisé dans la partie Cxy Jeu), le but du jeu est factorisé par une expression plus générique (α, p, . . . ), et certaines propositions sont également factorisées. 7.2.2 Exemple de jeu de requête Ce premier exemple présente l’établissement et le déroulement d’un jeu de dialogue. Il illustre le jeu de contextualisation qui capture explicitement l’établissement par les interlocuteurs du projet conjoint formé par le jeu. Il montre la façon dont les règles du jeu évoluent sous l’impulsion d’événements dialogiques produits par les interlocuteurs. En particulier, il souligne l’application des règles de production qui permettent de spécifier des enchaînements d’actes. Cet exemple190 Chapitre 7 : Mise en œuvre du modèle illustre également l’intervention d’événements internes relatifs à l’état du tableau de conversation. Il présente la création d’engagements extra-dialogiques qui vont persister à l’issue du déroulement du jeu de dialogue. Enfin, il montre à chaque étape l’exploitation du tableau de conversation qui génère des motivations conventionnelles à la production de certains actes. Ce premier exemple présente un jeu de dialogue de requête sur l’action « ajouterMotCle(grippe) » qui forme le but du jeu. Il débute par un acte de contextualisation de proposition d’entrée dans ce jeu (« Je peux vous demander de réaliser une action ? »). De tels actes de proposition d’entrée sont toujours attendus. Un extrait de traces est présenté ci-dessous : Regular act prop.entrée(x, Request(ajouterMotCle(grippe))) ... 1) Fulfilling commitment: C(x, y, prop.entrée(x,Request(ajouterMotCle(grippe)))=>create(x, C(y, x, acc.entrée(y,Request(ajouterMotCle(grippe)))|ref.entrée(y,Request(ajouterMotCle(grippe)))| prop.entrée(y,Ys~>Request(ajouterMotCle(grippe)))|prop.entrée(y,Ys;Request(ajouterMotCle(grippe))), Ina):ctx),Crt):ctx 2) Adding a commitment: C(y, x, acc.entrée(y, Request(ajouterMotCle(grippe)))|ref.entrée(y, Request(ajouterMotCle(grippe)))|prop.entrée(y, Ys~>Request(ajouterMotCle(grippe)))|prop.entrée(y, Ys;Request(ajouterMotCle(grippe))), Crt):ctx ... 3) Adding a suggested game: Request(ajouterMotCle(grippe))_g0 4) Executing internal events: EntryConditionsReached(g0, x), EntryConditionsReached(g0, y), FullEntryConditionsReached(g0) L’événement dialogique conduit à satisfaire un engagement pris dans le cadre du jeu de contextualisation (ligne 1). Cette satisfaction engage l’autre interlocuteur à accepter ou à refuser cette proposition d’entrée, ou bien à proposer un pré-séquencement ou un séquencement de jeux de dialogue (ligne 2). L’engagement conjoint sur le jeu est établi en état Sugg (ligne 3). En outre, des événements internes sur l’atteinte des conditions d’entrée sont générés (ligne 4). Ceux-ci n’ont aucun effet sur le tableau courant compte-tenu de son état. Le tableau de conversation et son exploitation sont alors les suivants :                      Tours: prop.entrée(x, g0)  Cx Cy Cp ∅ ∅ Ca(Crt) ∅ ∅ Ca(Fal) ∅ ∅ CdA ∅ ∅ Cxy Jeu:    Sugg. : Request(ajouterMotCle(grippe))=g0 Ouv. : Ferm. : Saillants : ∅                           Actes attendus : ctx, ev: acc.entrée(y, g0) | ref.entrée(y, g0) | prop.entrée(y, Ys g0) | prop.entrée(y, Ys ; g0)   L’exploitation du tableau de conversation spécifie que les seuls actes attendus sont de la part de l’interlocuteur y. Il s’agit pour lui d’accepter ou de refuser l’entrée dans le jeu, ou bien de7.2. Traces de fonctionnement de Dogma 191 proposer une combinaison de jeu. Le terme Ys représente une variable devant être remplacée par une proposition de jeu valide. L’interlocuteur y accepte alors l’entrée dans le jeu via l’acte adéquat attendu (acc.entrée(y, g0)). Le cas du refus est présenté en annexe C.2.1. Regular act acc.entrée(y, Request(ajouterMotCle(grippe))) ... 1) Adding an opened game: Request(ajouterMotCle(grippe))_g0 2) Loading a game: Request(ajouterMotCle(grippe))_g0 ... 3) Adding a commitment: C(x, y, FailureConditionsReached(Request(ajouterMotCle(grippe))_g0, x)| SuccessConditionsReached(Request(ajouterMotCle(grippe))_g0,x)=>create(x, C(x, y, prop.sortie(x, Request(ajouterMotCle(grippe))), Ina):ctx), Crt):ctx 4) Adding a commitment: C(y, x, FailureConditionsReached(Request(ajouterMotCle(grippe))_g0, y)| SuccessConditionsReached(Request(ajouterMotCle(grippe))_g0,y)=>create(y, C(y, x, prop.sortie(y, Request(ajouterMotCle(grippe))), Ina):ctx), Crt):ctx 5) Adding a commitment: C(x, y, prop.entrée(x, Ys 5 10 15 20 25 218 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF 30 35 40 45 50 55 60 65 70 75 A.1. Le schéma XML d’annotation pour un acte de dialogue dans Gate 219 80 85 90 95 100 105 110 115 120 125 130220 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF 135 140 145 150 155 160 165 Listing A.1: Schéma d’annotation pour un acte de dialogue dans le processus d’annotation.A.2. Alignement entre la taxonomie d’actes de dialogue de Loisel et DIT++ 221 A.2 Alignement entre la taxonomie d’actes de dialogue de Loisel et DIT++ Le tableau A.1 présente l’alignement entre la taxonomie proposée par Loisel [Loisel 2008] et DIT++. Nous pouvons constater que les actes de dialogue proposés par Loisel possèdent tous un équivalent dans DIT++. En outre, la taxonomie proposée par Loisel ne couvre que les trois dimensions sur les dix proposées par DIT++ : Task, Auto-feedback et Social Obligation Management.222 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF Acte Équivalent DIT++ Acte Équivalent DIT++ Acte Équivalent DIT++ Inform Inform RequestInfo Hiérarchie Question Offer Offer RequestDirective Request Direct Instruct Suggest Suggestion Answer Answer ShortAnswer Answer Accept AcceptOffer Refuse DeclineOffer Acknowledge ExecPositiveAutoFB icm:con*neg AttentNegativeAutoFB icm:con*pos AttentPositiveAutoFB icm:per*neg PerceptNegativeAutoFB icm:per*pos PerceptPositiveAutoFB icm:sem*pos InterprPositiveAutoFB icm:sem*neg InterprNegativeAutoFB icm:und*neg EvalNegativeAutoFB icm:und*pos EvalPositiveAutoFB icm:und*chk CheckQuestion(AF) icm:acc*pos ExecPositiveAutoFB icm:acc*neg ExecNegativeAutoFB icm:acc*chk CheckQuestion(AF) Greet Initial Greeting Thanks Thanking Thanks-return Thanking-downplay InformIntent Promise Bye Initial Goodbye Tableau A.1: Alignement entre la taxonomie de Loisel [Loisel 2008] et DIT++. Les fonctions générales sont appliquées dans la dimension Task sauf si précisé autrement. AF = Auto-feedback.A.3. Annexes des résultats du processus d’annotation 223 A.3 Annexes des résultats du processus d’annotation Ces annexes présentent des données et résultats supplémentaires du processus d’annotation. L’annexe A.3.1 présente des dialogues annotés issus du corpus Cogni-CISMeF. L’annexe A.3.2 fournit le détail des tours de parole (total, annoté, exclu) pour chaque entretien du corpus. L’annexe A.3.3 présente de plus amples détails sur l’accord inter-annotateur. Elle approfondit la définition de précision, rappel et F-mesure. Elle affiche des résultats supplémentaires de calcul d’accord. L’annexe A.3.4 présente le détail de l’analyse au niveau des segments fonctionnels par corpus (AL et VD), par entretien et par annotateur. L’annexe A.3.5 fournit le détail de l’analyse des dimensions par corpus (AL et VD) et par annotateur. L’annexe A.3.6 présente la matrice de co-occurrence de dimension du corpus CogniCISMeF. Elle décrit également des résultats de co-occurrence disponibles dans la littérature. Enfin, l’annexe A.3.7 fournit l’analyse des fonctions communicatives par dimension. A.3.1 Exemples de dialogues annotés du corpus Cogni-CISMeF Cette section présente cinq exemples de dialogue. Précisons que ces exemples présentent des annotations possibles. La tâche étant interprétative, d’autres solutions peuvent s’avérer valables. La section A.3.1 présente deux exemples de dialogue évoluant principalement sur la dimension Task. Le premier exemple propose un court dialogue de suggestions d’ajout de mot-clé. Il illustre les dimensions Task et Auto-feedback. Le deuxième exemple implique les dimensions Task, Autofeedback et Time Management. Les trois autres exemples sont situés dans la section A.3.1. Ils illustrent des dialogues mêlant gestion de la tâche et gestion de l’interaction. Les deux premiers dialogues impliquent les dimensions Task, Auto-feedback et Allo-feedback. Enfin, le troisième implique cinq dimensions : Task, Auto-feedback, Allo-feedback, Turn Management et Partner Communication Management. Exemple de dialogue progressant sur la tâche Le dialogue A.1 présente un exemple de dialogue évoluant sur l’avancement de la tâche et illustrant l’enchaînement de deux suggestions. Cet extrait est annoté sur deux dimensions : Task et Auto-feedback. Task AutoFB S1 : on peut enlever analyse Suggestion A2 : alors enlevons analyse AcceptSuggestion AutoPositive S3 : et diagnostic Suggestion A4 : oui AcceptSuggestion Dialogue A.1 – Exemple de dialogue annoté (entretien VD06) : une succession de deux suggestions. Cet extrait est annoté sur deux dimensions : Task et la dimension Auto-feedback. AutoFB = Auto-feedback Dans le premier tour de parole (S1), l’interlocuteur S propose d’enlever le mot-clé « analyse »224 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF de la requête, ce qui a été annoté comme une fonction communicative Suggestion dans la dimension Task. Dans le deuxième tour (A2), l’interlocuteur A accepte cette suggestion. Notons qu’il fournit également un feedback positif en répétant une partie de la suggestion « enlevons analyse ». Il s’agit d’un segment fonctionnel annoté sur deux dimensions : avec la fonction communicative Suggestion sur la dimension Task, et la fonction communicative AutoPositive spécifique à la dimension Auto-feedback. Il s’ensuit une seconde suggestion qui consiste à supprimer le mot-clé « diagnostic » de la requête, annotée de la même manière que la première suggestion (tour S3). Cette seconde suggestion est acceptée au quatrième tour de parole mais cette fois sans feedback explicite ce qui conduit à une annotation avec la fonction AcceptSuggestion sur la dimension Task. Le dialogue A.2 présente un exemple de dialogue évoluant principalement sur l’avancement de la tâche. C’est un dialogue qui intervient entre l’expert et le demandeur sur la sélection de qualificatifs lors de la construction de la première requête. Cet exemple implique les dimensions Task, Auto-feedback et Time Management. Dans le tour S1, l’expert définit au demandeur ce qu’est un qualificatif. Il lui décrit la procédure de sélection de qualificatif. Puis, il demande au demandeur de l’informer des qualificatifs intéressants. Le demandeur informe l’expert d’un qualificatif intéressant (« chimiothérapie ») dans le tour A2. L’expert produit alors un signal de retour et demande à l’utilisateur s’il souhaite continuer la sélection de qualificatif (tour S3). Celui-ci accepte (tour A4). L’expert confirme la continuation de l’activité de sélection de qualificatif bien qu’il réalise un lapsus entre « accès thématique » et « qualificatif » (tour S5). La sélection de qualificatif continue jusqu’au tour S11. Les partenaires sélectionnent les qualificatifs « diagnostic », « effets indésirables » et « sang ». Notons l’utilisation par l’expert de la fonction communicative Pausing dans la dimension Time Management dans les tours S5, S7 et S9. À chacun de ces tours, l’expert suspend le dialogue afin d’inscrire le qualificatif choisi par le demandeur. L’expert interrompt alors la sélection de qualificatif. Il offre la possibilité au demandeur de regarder les types de ressources spécifiques pour les patients. L’utilisateur accepte cette offre (tour A12). Dans le tour S13, l’expert produit un feedback positif de l’acceptation de l’offre par l’utilisateur. Il l’informe qu’il ajoute le type de ressources « patient » à la requête. Il suggère ensuite de lancer la requête.A.3. Annexes des résultats du processus d’annotation 225 Task AutoFB Time M S1 : et le qualificatif permet de préciser un tout petit peu ce mot clé / donc par rapport à votre question Inform c’est de la même façon Inform je vais faire dérouler le menu Inform et vous allez me dire si vous voyez des choses Instruct A2 : chimiothérapie Inform S3 : alors chimiothérapie ok AutoPositive alors vous souhaitez mettre d’autres qualificatifs CheckQuestion A4 : oui Confirm S5 : D’autres précisions alors on va aller chercher / accès thématique Inform non c’est pas accès thématique c’est qualificatif voilà donc je mets en fait / j’inscris qualificatif Pausing [. . . ] A6 : diagnostic Inform S7 : diagnostic ok AutoPositive donc je vais aller l’écrire diagnostic Pausing ok je continue à faire dérouler le menu de qualificatifs Inform A8 : effets indésirables Inform S9 : effets indésirables / ok AutoPositive alors effets indésirables Pausing donc je continue à faire dérouler les types de ressources / donc alors le menu déroulant Inform A10 : sang Inform S11 : allons-y / sang AutoPositive et de toute façon là je pense que ça va être à peu près tout Inform [. . . ] alors souhaitez-vous qu’on aille regarder dans un type de ressource particulière relative aux associations / base de données / bibliothèque médicale / etc / ou quelque chose qui soit spécifique pour les patients Offer A12 : ouais AcceptOffer S13 : oui AutoPositive alors je mets type de ressource : patient Inform AutoPositive bon on va le lancer comme ça Suggestion Dialogue A.2 – Exemple de dialogue annoté (entretien VD02) : sélection de qualificatif dans la construction de la première requête. La dimension Own Communication Management a été volontairement exclue pour améliorer la lisibilité. AutoFB = Auto-feedback, Time M = Time Management.226 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF Exemples de dialogues progressant sur l’axe de la tâche et de l’interaction Le dialogue A.3 présente un exemple de demande de verbalisation du besoin d’information du demandeur. Cet exemple implique les dimensions Task, Auto-feedback et Allo-feedback. Task AutoFB AlloFB S1 : alors formulez-moi une de vos demandes alors comme en langage naturel j’allais dire Request A2 : vous êtes sociologue Inform c’est ça EvalFBElicitation S3 : moi je suis linguiste Correction A4 : linguistique / psycho-linguistique / sociolinguistique ChoiceQuestion S5 : non sociolingue Answer A6 : sociolinguistique CheckQuestion S7 : sociolinguistique Confirm A8 : D’accord AutoPositive alors comment je vais formuler ma demande AcceptRequest AutoPositive oui je dois simplement poser une question CheckQuestion S9 : oui vous me posez une question Confirm AutoPositive Dialogue A.3 – Exemple de dialogue annoté (entretien VD05) : demande de verbalisation du besoin d’information. AutoFB = Auto-feedback, AlloFB = Allo-feedback. L’expert demande à l’utilisateur de verbaliser sa demande (tour S1). Le demandeur ne considère pas cette requête avant le tour A8. Avant cela, il affirme la profession de l’expert et lui demande d’évaluer son assertion (tour A2). Une analyse alternative peut considérer ce tour comme étant une CheckQuestion. L’expert corrige l’utilisateur en lui précisant qu’il est linguiste (tour S3). Le demandeur surenchérit en interrogeant l’expert sur son champ d’étude (tour A4). L’expert lui répond qu’il est « sociolingue » (tour S5). S’ensuit un sous-dialogue de clarification (tours A6, S7 et A8) où l’utilisateur demande à l’expert de confirmer qu’il appartient au champ de la sociolinguistique (tour A6). Ce que l’expert fait (tour S7). Le demandeur produit un signal de retour positif (tour A8). Il considère dans le même tour la requête initiale. Il demande alors à l’expert de lui confirmer s’il doit énoncer son besoin d’information sous forme de question. Ce dernier lui confirme (tour S9). Le dialogue A.4 implique les dimensions Task, Auto-feedback et Allo-feedback.A.3. Annexes des résultats du processus d’annotation 227 Task AutoFB AlloFB S1 : qu-est-ce que vous entendez par problèmes avec la nourriture ? SetQuestion A2 : euh : la relation qu’une personne peut entretenir vis- à-vis du fait d’ingérer des aliments Answer donc typiquement j’ai pensé à l’anorexie mais bon Inform S3 : d’accord AutoPositive A4 : mais peut-être que c’est euh trop spécifique ? CheckQuestion S5 : donc l’anorexie et les problèmes du même genre ? CheckQuestion A6 : oui Confirm S7 : donc on va essayer de trouver euh : en tapant anorexie déjà Suggestion Dialogue A.4 – Exemple de dialogue annoté (entretien AL07) : question/réponse suivie de clarifications. La dimension Time Management a été volontairement exclue pour améliorer la lisibilité. AutoFB = Auto-feedback, AlloFB = Allo-feedback. Les trois premiers tours présentent un exemple d’un échange question/réponse (tour S1 et début du tour A2) suivi d’un don d’information spontané (fin du tour A2). Dans le tour A4, l’utilisateur pose une question à l’expert qui ne sera jamais considérée. L’expert demande en contrepartie une confirmation de l’information donnée par le demandeur en A2 (tour S5). Ce que l’utilisateur lui fournit (tour A6). L’expert suggère alors de lancer la requête avec le mot-clé « anorexie » (tour S7). Le dialogue A.5 propose l’annotation du dialogue 5.1 que nous avons déjà rencontré en section 5.1.1. Il implique les dimensions Task, Auto-feedback, Allo-feedback, Turn Management et Partner Communication Management. Dans le premier tour de parole de ce dialogue, l’utilisateur (S) demande à l’expert (A) de garder les mots-clés « membres inférieurs » et « néphrite ». Les interlocuteurs sont interrompus par un problème technique. Ce problème est verbalisé par le début du tour A2 de l’expert. Dans la suite du dialogue, l’expert va accepter la requête du demandeur en la répétant (tours A2, A4, A6). Ces trois tours forment le même segment fonctionnel. Ils sont tous annotés avec la fonction AcceptRequest sur la dimension Task, et la fonction AutoPositive sur la dimension Auto-feedback (puisqu’en répétant la requête, l’interlocuteur donne un feedback positif). Le segment fonctionnel est interrompu par l’autre interlocuteur dans le tour S3 qui l’informe de faire attention. Ce tour est annoté par une fonction Inform sur la dimension Task associée à une prise de tour de parole via la fonction Turn Grab de la dimension Turn Management. Le demandeur interrompt de nouveau l’expert dans le tour S5. Dans celui-ci, il valide la compréhension de la requête par l’expert, i.e. il donne son avis sur les processus de l’expert engagés dans la compréhension du tour S1. Ce retour positif est annoté comme une fonction AlloPositive dans la dimension Allo-feedback. Ce retour est associé à une prise de parole inattendue (Turn Grab). Le demandeur réalise la même opération au tour S7 à l’exception de la prise de parole qui est implicitée par une complétion (annotée par la fonction Completion dans la dimension Partner Communication Management). Pour finir, l’expert produit un retour positif de la complétion du demandeur (tour A8). Il suggère alors de lancer la requête.228 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF Task AutoFB AlloFB Turn M PCM S1 : [. . . ] on va garder membres inférieurs / on va garder néphrite et Request A2 : pourquoi / bon c’est pas grave je vais revenir en disant que ça m’est déjà arrivée / dans ce cas là je vais vous noter en 009bis et je serais que c’est vous / donc on a dit qu’on mettait AcceptRequest AutoPositive S3 : attention Inform Turn Grab A4 : néphrite AcceptRequest AutoPositive S5 : ouais AlloPositive Turn Grab A6 : et qu’on gardait AcceptRequest AutoPositive S7 : membres inférieurs AlloPositive Completion A8 : D’accord AutoPositive alors allons-y Suggestion Dialogue A.5 – Exemple de dialogue annoté (VD08) : segment fonctionnel sur plusieurs tours de parole. En italique est représentée la verbalisation du problème technique survenu. Le texte en bleu représente le segment fonctionnel sur plusieurs tours. AutoFB = Auto-feedback, AlloFB = Allo-feedback, Turn M = Turn Management, PCM = Partner Communication Management.A.3. Annexes des résultats du processus d’annotation 229 A.3.2 Proportion des tours de parole annotés Cette annexe fournit le détail des tours de parole (total, annoté, exclu) pour chaque entretien du corpus. Le tableau A.2 présente l’analyse pour le corpus AL tandis que le tableau A.3 présente les résultats pour le corpus VD. Les tours de parole peuvent être exclus parce qu’ils font partie d’une discussion libre hors du cadre CISMeF (ligne « Hors CISMeF ») ou parce qu’ils ne sont pas interprétables compte tenu des indices (ligne « Incompréhensible »). On peut remarquer que les tours « Hors CISMeF » et « incompréhensibles » interviennent principalement dans le corpus VD. AL02 AL03 AL04 AL05 AL06 AL07 AL09 AL10 AL11 AL12 Tours 11 19 22 32 23 36 43 43 12 30 271 Annoté 11 19 22 32 23 34 43 43 12 30 269 (99%) Hors CISMeF 0 0 Incompréhensible 2 2 (1%) Tableau A.2: Proportion des tours de parole annotés sur le corpus AL VD02 VD03 VD04 VD05 VD06 VD07 VD08 VD09 Tours 70 149 91 253 189 107 196 119 1174 Annoté 42 102 56 184 131 81 116 75 787 (67%) Hors CISMeF 0 0 23 65 56 14 80 28 266 (23%) Incompréhensible 28 47 12 4 2 12 0 16 121 (10%) Tableau A.3: Proportion des tours de parole annotés sur le corpus VD A.3.3 Accords inter-annotateur Calcul de l’accord inter-annotateur en terme de précision, rappel et F-measure L’accord inter-annotateur en terme de précision, rappel et F-measure permet de comparer deux ensembles d’annotation : l’ensemble de référence et l’ensemble de comparaison. Une annotation de l’ensemble de comparaison est dite correcte si elle est présente dans l’ensemble de référence. La précision mesure le nombre d’annotation correcte identifiée dans l’ensemble de comparaison proportionnellement au nombre total d’annotation de cet ensemble. Une précision élevée indique une inclusion forte des annotations de l’ensemble de comparaison dans l’ensemble des annotations de référence. Le rappel mesure le nombre d’annotation correcte identifiée dans l’ensemble de comparaison proportionnellement au nombre total d’annotation de l’ensemble de référence. Un rappel élevé indique qu’un nombre important d’annotation de l’ensemble de référence appartient également à l’ensemble de comparaison. Il est nécessaire d’associer une pondération entre précision et rappel. En effet, il est facile d’obtenir une précision de 100% (il suffit de ne rien identifier) ou un rappel maximum (il suffit d’annoter l’ensemble des annotations possibles). La F-mesure est généralement utilisée afin de pondérer précision et rappel. Précision, rappel et F-mesure sont calculés de la manière suivante : Precision = Correct + 1 2 Partial Correct + Spurious + Partial Recall = Correct + 1 2 Partial Correct + Missing + Partial230 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF F-measure = (β 2 + 1)P × R (β 2P) + R « Correct » représente le nombre d’annotation appartenant aux deux ensembles (référence et comparaison). « Partial » représente le nombre d’annotation se chevauchant entre l’ensemble de référence et l’ensemble de comparaison (voir ci-après). « Missing » représente le nombre d’annotation appartenant à l’ensemble de référence et n’appartenant pas à l’ensemble de comparaison. « Spurious » représente le nombre d’annotation appartenant à l’ensemble de comparaison et n’appartenant pas à l’ensemble de référence. Le paramètre β dans le calcul de la F-measure peut être fixé, par exemple, de la manière suivante : — β = 1, la précision et le rappel sont pondérés de façon égale (F1 score) — β = 0.5, la précision pèse deux fois plus que le rappel — β = 2, le rappel pèse deux fois plus que la précision Notons que les annotations partielles peuvent être considérées selon trois catégories : strict, lenient et average. Celles-ci varient par leur façon de considérer dans le calcul de la précision et du rappel les annotations qui se chevauchent sans se confondre. Le mode strict considère les annotations qui se chevauchent comme incorrectes alors que le mode lenient les considère correctes. Le mode average est une moyenne des deux modes précédents. Scores Accord ≥ 0, 85 Accord fort Entre 0, 70 et 0, 85 Accord fiable Entre 0, 5 et 0, 7 Accord modéré < 0, 5 Accord faible Tableau A.4: Relation entre accord et valeur de l’IAA Le tableau A.4 présente le lien entre accord et valeur des scores de précision, rappel et F-mesure que nous avons fixé. Accord inter-annotateur sur la segmentation par corpus Le tableau A.5 fournit le calcul de l’IAA pour le corpus AL tandis que le tableau A.6 fournit le calcul de l’IAA pour le corpus VD. On peut noter que les scores du corpus VD sont légèrement plus élevés que ceux du corpus AL. Strict Lenient Average R P F R P F R P F 0,91 0,91 0,91 0,97 0,97 0,97 0,94 0,94 0,94 Tableau A.5: Accord inter-annotateur pour la tâche de segmentation sur le corpus AL. R = Rappel, P = Précision, F = F-measure (F1 score).A.3. Annexes des résultats du processus d’annotation 231 Strict Lenient Average R P F R P F R P F 0,95 0,96 0,95 0,97 0,99 0,98 0,96 0,98 0,97 Tableau A.6: Accord inter-annotateur pour la tâche de segmentation sur le corpus VD. R = Rappel, P = Précision, F = F-measure (F1 score). Accord inter-annotateur sur la segmentation et l’étiquetage par corpus Le tableau A.7 présente l’accord inter-annotateur pour les tâches de segmentation et d’étiquetage par dimension sur le corpus AL. En comparaison des résultats globaux (cf. section 5.1.3), le corpus démontre des scores nettement plus faibles dans les dimensions Turn Management et SOM. Les scores restent globalement supérieurs à 0.72, dénotant un accord fiable. Strict Lenient Average Dimension R P F R P F R P F Prop. Task 0,77 0,78 0,78 0,82 0,83 0,82 0,8 0,8 0,8 65,93% Time Management 0,78 0,8 0,79 0,87 0,9 0,88 0,82 0,85 0,84 17,29% Auto-Feedback 0,72 0,71 0,72 0,76 0,75 0,76 0,74 0,73 0,74 6,07% OCM 0,36 0,39 0,38 0,44 0,47 0,45 0,4 0,43 0,42 5,22% Turn Management 0,22 0,59 0,32 0,24 0,65 0,35 0,23 0,62 0,34 2,86% PCM 0,7 0,78 0,74 0,8 0,89 0,84 0,75 0,83 0,79 0,84% Discourse Structuring 0,57 0,5 0,53 0,71 0,62 0,67 0,64 0,56 0,6 0,57% Allo-Feedback 0,43 0,6 0,5 0,43 0,6 0,5 0,43 0,6 0,5 0,49% Contact Management 0,6 0,6 0,6 1 1 1 0,8 0,8 0,8 0,42% SOM 0 0 0 0,25 1 0,4 0,12 0,5 0,2 0,31% Global 0,72 0,75 0,74 0,78 0,82 0,8 0,75 0,78 0,77 Tableau A.7: Accord inter-annotateur pour les tâches de segmentation et d’étiquetage par dimension sur le corpus AL. R = Rappel, P = Précision, F = F-measure (F1 score). OCM = Own Communication Management, PCM = Partner Communication Management, SOM = Social Obligation Management. Le tableau A.8 présente l’accord inter-annotateur pour les tâches de segmentation et d’étiquetage par dimension sur le corpus VD. Les résultats sont comparables aux résultats globaux (cf. section 5.1.3). Les scores restent globalement supérieurs à 0.8, dénotant un accord fiable.232 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF Strict Lenient Average Dimension R P F R P F R P F Prop. Task 0,86 0,87 0,87 0,88 0,89 0,88 0,87 0,88 0,88 69,98% Auto-Feedback 0,79 0,84 0,81 0,81 0,86 0,83 0,8 0,85 0,82 11,83% OCM 0,41 0,52 0,46 0,45 0,57 0,5 0,43 0,55 0,48 5,38% Time Management 0,7 0,75 0,73 0,71 0,76 0,74 0,71 0,76 0,73 4,74% Turn Management 0,46 0,78 0,58 0,49 0,84 0,62 0,48 0,81 0,6 2,68% SOM 0,48 0,7 0,57 0,5 0,74 0,6 0,49 0,72 0,58 1,80% Allo-Feedback 0,64 0,51 0,57 0,68 0,54 0,6 0,66 0,53 0,59 1,69% PCM 0,88 0,96 0,92 0,88 0,96 0,92 0,88 0,96 0,92 1,28% Contact Management 1 0,38 0,55 1 0,38 0,55 1 0,38 0,55 0,30% Discourse Structuring 0,8 0,67 0,73 0,8 0,67 0,73 0,8 0,67 0,73 0,29% Global 0,8 0,83 0,81 0,81 0,85 0,83 0,8 0,84 0,82 Tableau A.8: Accord inter-annotateur pour les tâches de segmentation et d’étiquetage par dimension sur le corpus VD. R = Rappel, P = Précision, F = F-measure (F1 score). OCM = Own Communication Management, PCM = Partner Communication Management, SOM = Social Obligation Management. Accord inter-annotateur sans impact hiérarchique Le calcul de l’IAA ne prend pas en compte les propriétés taxonomiques de DIT++. Pour étudier l’impact de ces propriétés, nous avons re-calculé l’IAA en considérant que toutes les fonctions partageant la même racine sont équivalentes (cf. figures 1.1 et 1.2, p. 25). Par exemple, une Check Question et une Propositional Question sont vues comme équivalentes. Notons que cette méthode réalise des équivalences abusives. Une fonction Correction est ainsi équivalente à un Answer. Les résultats de ce nouveau calcul sont présentés dans le tableau A.9. Trois dimensions voient leur score augmenter (les autres restant inchangées). La dimension Task et Allo-feedback augmentent légèrement leur F-mesure de 0.02 point (en mode average). La dimension OCM voit ses scores considérablement croître. En mode average, sa précision passe à 0.62, son rappel à 0.72 et sa F-mesure à 0.67 atteignant ainsi un accord modéré haut.A.3. Annexes des résultats du processus d’annotation 233 Strict Lenient Average Dimension R P F R P F R P F Task 0,85 0,86 0,86 0,89 0,9 0,89 0,87 0,88 0,88 Time Management 0,75 0,8 0,77 0,81 0,86 0,83 0,78 0,83 0,8 Auto-Feedback 0,79 0,82 0,8 0,81 0,84 0,83 0,8 0,83 0,81 OCM 0,59 0,68 0,63 0,66 0,76 0,71 0,62 0,72 0,67 Turn Management 0,37 0,73 0,49 0,41 0,8 0,54 0,39 0,76 0,51 Allo-Feedback 0,63 0,54 0,58 0,69 0,59 0,63 0,66 0,56 0,61 SOM 0,43 0,69 0,53 0,48 0,76 0,59 0,46 0,72 0,56 PCM 0,86 0,91 0,89 0,86 0,91 0,89 0,86 0,91 0,89 Discourse Structuring 0,67 0,57 0,62 0,75 0,64 0,69 0,71 0,61 0,65 Contact Management 0,67 0,46 0,55 0,89 0,62 0,73 0,78 0,54 0,64 Global 0,8 0,83 0,81 0,83 0,87 0,85 0,81 0,85 0,83 Tableau A.9: Accord inter-annotateur pour les tâches de segmentation et d’étiquetage par dimension sans impact hiérarchique. R = Rappel, P = Précision, F = F-measure (F1 score). OCM = Own Communication Management, PCM = Partner Communication Management, SOM = Social Obligation Management. A.3.4 Analyse au niveau des segments fonctionnels Cette annexe présente le détail de l’analyse au niveau des segments fonctionnels par corpus (AL et VD), par entretien et par annotateur. Chaque tableau présente le nombre de fonctions annotées, le nombre de segments et le ratio du nombre de fonction par segment. Le tableau A.10 présente les résultats pour l’annotation du corpus AL par l’annotateur 1. Le tableau A.11 pré- sente les résultats pour l’annotation du corpus AL par l’annotateur 2. Le tableau A.12 présente les résultats pour l’annotation du corpus VD par l’annotateur 1. Le tableau A.13 présente les résultats pour l’annotation du corpus VD par l’annotateur 2. AL02 AL03 AL04 AL05 AL06 AL07 AL09 AL10 AL11 AL12 Total Fonctions 83 51 154 152 167 128 179 184 93 149 1340 Segments 68 45 134 127 134 112 148 156 69 134 1127 Fonctions / Segment 1,22 1,13 1,15 1,20 1,25 1,14 1,21 1,18 1,35 1,11 1,19 Tableau A.10: Nombre de fonctions communicatives et de segments fonctionnels pour chaque entretien du corpus AL pour l’annotateur 1 AL02 AL03 AL04 AL05 AL06 AL07 AL09 AL10 AL11 AL12 Total Fonctions 70 54 143 156 167 115 175 171 100 134 1285 Segments 67 49 136 128 137 111 147 150 72 130 1127 Fonctions / Segment 1,05 1,10 1,05 1,22 1,22 1,04 1,19 1,14 1,39 1,03 1,14 Tableau A.11: Nombre de fonctions communicatives et de segments fonctionnels pour chaque entretien du corpus AL pour l’annotateur 2234 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF VD02 VD03 VD04 VD05 VD06 VD07 VD08 VD09 Total Fonctions 154 251 176 365 318 194 247 199 1904 Segments 134 235 159 315 248 178 202 160 1631 Fonctions / Segment 1,15 1,07 1,11 1,16 1,28 1,09 1,22 1,24 1,17 Tableau A.12: Nombre de fonctions communicatives et de segments fonctionnels pour chaque entretien du corpus VD pour l’annotateur 1 VD02 VD03 VD04 VD05 VD06 VD07 VD08 VD09 Total Fonctions 143 229 172 345 297 192 243 193 1814 Segments 133 227 160 310 242 178 192 159 1601 Fonctions / Segment 1,08 1,01 1,08 1,11 1,23 1,08 1,27 1,21 1,13 Tableau A.13: Nombre de fonctions communicatives et de segments fonctionnels pour chaque entretien du corpus VD pour l’annotateur 2 A.3.5 Analyse au niveau des dimensions Cette annexe fournit le détail de l’analyse des dimensions par corpus (AL et VD) et par annotateur. Les tableaux A.14 présentent la proportion de fonctions annotées dans chaque dimension et pour chaque annotateur pour le corpus AL. Ils font également apparaître la synthèse pour le corpus AL. Les tableaux A.15 présentent la proportion de fonctions annotées dans chaque dimension et pour chaque annotateur pour le corpus VD. Ils font également apparaître la synthèse pour le corpus VD. De manière intéressante, les corpus AL et VD font ressortir les quatre mêmes dimensions majoritaires sans variation significative entre les annotateurs. Une différence notable entre les deux corpus concerne la dimension Time Management. Cette dernière est nettement plus pré- sente dans le corpus AL (17.29%) que dans le corpus VD (4.74%). Ce phénomène s’explique par les longs tours de parole de l’expert AL qui impose l’usage de segments pour combler les temps d’attente (e.g., « euh », « alors »). En outre, le corpus VD possède proportionnellement plus de fonctions dans la dimension Auto-feedback (11.83%) que le corpus AL (6.07%). Cela s’explique par les interventions plus fréquentes du demandeur dans ce corpus qui nécessitent l’usage de feedbacks afin d’assurer la compréhension mutuelle. Les deux autres dimensions principales (Task et OCM) interviennent dans les mêmes proportions.A.3. Annexes des résultats du processus d’annotation 235 (a) Détail par annotateur pour le corpus AL Annotateur 1 Annotateur 2 Total Allo-Feedback 0.52% 0.47% 0.49% Auto-Feedback 5.83% 6.32% 6.07% Contact Management 0.44% 0.39% 0.42% Discourse Structuring 0.52% 0.62% 0.57% Own Communication Management 5.15% 5.29% 5.22% Partner Communication Management 0.83% 0.84% 0.84% Social Obligations Management 0.46% 0.15% 0.31% Task 64.84% 67.08% 65.93% Time Management 17.46% 17.11% 17.29% Turn Management 3.95% 1.72% 2.86% (b) Synthèse pour le corpus AL Dimension Proportion Task 65.93% Time Management 17.29% Auto-Feedback 6.07% OCM 5.22% Turn Management 2.86% PCM 0.84% Discourse Structuring 0.57% Allo-Feedback 0.49% Contact Management 0.42% SOM 0.31% Tableau A.14: Proportions de fonctions par dimension dans le corpus AL par annotateur et au total236 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF (a) Détail par annotateur pour le corpus VD Annotateur 1 Annotateur 2 Total Allo-Feedback 1, 45% 1, 93% 1, 69% Auto-Feedback 11, 92% 11, 73% 11, 83% Contact Management 0, 15% 0, 45% 0, 30% Discourse Structuring 0, 26% 0, 33% 0, 29% Own Communication Management 5, 89% 4, 85% 5, 38% Partner Communication Management 1, 29% 1, 26% 1, 28% Social Obligations Management 2, 10% 1, 49% 1, 80% Task 68, 79% 71, 22% 69, 98% Time Management 4, 78% 4, 69% 4, 74% Turn Management 3, 30% 2, 04% 2, 68% (b) Synthèse pour le corpus VD Dimension Proportion Task 69.98% Auto-Feedback 11.83% OCM 5.38% Time Management 4.74% Turn Management 2.68% SOM 1.80% Allo-Feedback 1.69% PCM 1.28% Contact Management 0.30% Discourse Structuring 0.29% Tableau A.15: Proportions de fonctions par dimension dans le corpus VD par annotateur et au total A.3.6 Co-occurrence des dimensions Le tableau A.16 présente la matrice de co-occurrence de dimension pour le corpus CogniCISMeF. Chaque ligne affiche le nombre relatif de fois qu’un segment fonctionnel contenant une fonction dans la dimension en tête de ligne possède également une fonction dans la dimension en colonne. Nous obtenons les co-occurrences suivantes pour les cinq dimensions principales (ordonnées par proportion d’occurrence décroissante) : Task : Own Communication Management, Time Management, Auto-feedback, Turn Management. Auto-feedback : Task, Partner Communication Management, Turn Management, Time Management. Time Management : Task, Turn Management, Own Communication Management, Autofeedback. Own Communication Management : Task, Time Management, Turn Management.A.3. Annexes des résultats du processus d’annotation 237 Turn Management : Task, Time Management, Own Communication Management, Partner Communication Management. Le corpus AMI obtient les co-occurrences de dimensions suivantes (ordonnées par proportion d’occurrence décroissante) [Bunt 2009] 1 : Task : Turn Management, Own Communication Management, Social Obligation Management, Auto-feedback Auto-feedback : Turn Management, Task, Time Management, Discourse Structuring Time Management : Task, Turn Management, Auto-feedback Own Communication Management : Task, Turn Management Turn Management : Time Management, Task, Auto-feedback, Own Communication Management, Allo-feedback De manière intéressante, nous pouvons constater que 14 dimensions sur 18 se recoupent avec nos résultats de co-occurrence (soit environ 78%). A.3.7 Analyse au niveau des fonctions communicatives Cette annexe fournit l’analyse des fonctions communicatives qui interviennent dans les 10 dimensions de DIT++ (i.e. Task, Time Management, Own Communication Management, Autofeedback, Turn Management, Allo-feedback, Social Obligation Management, Partner Communication Management, Discourse Structuring et Contact Management). Dimension Task Les tableaux A.17 présentent la proportion de fonctions annotées observée dans la dimension Task pour l’expert et le demandeur. Le tableau A.18 informe de la proportion de fonctions annotées observée dans la dimension Task de manière globale. Le tableau A.19 présente la considération verbale des fonctions d’initiative d’action (suggestion, requête, offre) produites par l’expert ou par le demandeur. Il est intéressant de noter que la considération verbale des initiatives de l’expert est rare (14% pour les suggestions, 29% pour les requêtes et 30% pour les offres). Ces faibles chiffres peuvent s’expliquer par (i) l’absence des indices non verbaux (e.g., l’initiative est acceptée ou refusée par un mouvement de la tête) (ii) la position dominante de l’expert dans l’expérimentation qui suggère une action et la réalise en supposant l’accord du demandeur. Au contraire, il est essentiel de remarquer que la considé- ration verbale des initiatives du demandeur est élevée (73% pour les suggestions, 79% pour les requêtes et 100% pour les offres). 1. En gras, nous représentons les co-occurrences également présentes dans notre corpus238 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF Task Auto-F. Allo-F. Turn M. Time M. DS Contact M. OCM PCM SOM Task 2.63% 0.11% 2.38% 5.13% 0.14% 0.09% 6.20% 0.66% 0.11% Auto-Feedback 18.83% 0.00% 1.79% 1.46% 0.00% 0.00% 0.65% 1.95% 0.49% Allo-Feedback 6.58% 0.00% 3.95% 1.32% 0.00% 0.00% 5.26% 6.58% 0.00% Turn Management 53.57% 5.61% 1.53% 19.39% 0.51% 2.04% 3.57% 3.57% 1.53% Time Management 33.28% 1.33% 0.15% 5.60% 0.00% 0.00% 5.45% 0.15% 0.29% Discourse Structuring 22.22% 0.00% 0.00% 3.70% 0.00% 11.11% 0.00% 0.00% 7.41% Contact Management 16.67% 0.00% 0.00% 16.67% 0.00% 12.50% 8.33% 0.00% 0.00% OCM 70.18% 1.03% 1.03% 1.80% 9.51% 0.00% 0.51% 0.00% 1.29% PCM 37.18% 15.38% 6.41% 8.97% 1.28% 0.00% 0.00% 0.00% 0.00% SOM 6.25% 3.75% 0.00% 3.75% 2.50% 2.50% 0.00% 6.25% 0.00% Tableau A.16: Co-occurrence des dimensions dans le corpus Cogni-CISMeF. Chaque ligne affiche le nombre relatif de fois qu’un segment fonctionnel contenant une fonction dans la dimension en tête de ligne possède également une fonction dans la dimension en colonne. DS = Discourse Structuring, OCM = Own Communication Management, PCM = Partner Communication Management, SOM = Social Obligation Management.A.3. Annexes des résultats du processus d’annotation 239 (a) Expert Fonction Prop. globale Inform 38.20% Suggestion 13.40% Offer 3.00% Check Question 2.40% Agreement 1.60% AcceptSuggestion 1.50% Set Question 1.26% Request 1.10% AcceptRequest 0.90% Answer 0.90% Instruct 0.80% Promise 0.70% Choice Question 0.40% Confirm 0.40% Disconfirm 0.40% Nega-check 0.30% Propositional Question 0.30% Correction 0.20% DeclineSuggestion 0.20% Posi-check 0.20% AcceptOffer 0.00% Address Request 0.00% DeclineRequest 0.00% Disagreement 0.00% (b) Demandeur Fonction Prop. globale Inform 29.80% Suggestion 6.40% Agreement 5.10% AcceptSuggestion 4.60% Answer 4.60% Confirm 3.50% Request 3.40% Check Question 2.90% Set Question 1.55% AcceptOffer 1.50% Disconfirm 1.50% DeclineOffer 0.90% AcceptRequest 0.60% Correction 0.40% DeclineSuggestion 0.40% Disagreement 0.40% Address Offer 0.20% Address Request 0.20% Address Suggestion 0.20% Choice Question 0.20% Propositional Question 0.20% DeclineRequest 0.10% Instruct 0.10% Offer 0.10% Posi-check 0.10% Tableau A.17: Répartition des fonctions dans la dimension Task240 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF Fonction Prop. globale Inform 36.00% Suggestion 11.50% Agreement 2.50% Check Question 2.50% AcceptSuggestion 2.30% Offer 2.30% Answer 1.90% Request 1.70% Set Question 1.34% Confirm 1.20% AcceptRequest 0.80% Disconfirm 0.70% Instruct 0.60% Promise 0.50% AcceptOffer 0.40% Choice Question 0.40% Correction 0.30% Propositional Question 0.30% DeclineOffer 0.20% DeclineSuggestion 0.20% Nega-check 0.20% Posi-check 0.20% Address Request 0.10% Address Suggestion 0.10% Disagreement 0.10% Address Offer 0.00% DeclineRequest 0.00% Tableau A.18: Répartition globale des fonctions dans la dimension Task (a) Initiative par l’expert, considération par le demandeur Fonction Total Considérée Suggestion 623 88 Request 49 14 Offer 141 43 (b) Initiative par le demandeur, considération par l’expert Fonction Total Considérée Suggestion 107 78 Request 57 45 Offer 2 2 Tableau A.19: Considération verbale des fonctions initiatives d’action Dimension Time Management Les tableaux A.20 présentent la proportion de fonctions annotées observée dans la dimension Time Management pour l’expert et le demandeur et de manière globale. Cette dimension s’illustre par une majorité écrasante de Stalling aussi bien pour l’expert que le demandeur.A.3. Annexes des résultats du processus d’annotation 241 (a) Expert Fonction Prop. globale Stalling 10.20% Pausing 1.70% Inform 0.10% (b) Demandeur Fonction Prop. globale Stalling 4.10% Pausing 0.20% Inform 0.10% (c) Global Fonction Prop. globale Stalling 8.60% Pausing 1.30% Inform 0.10% Tableau A.20: Répartition des fonctions dans la dimension Time Management Dimension Own Communication Management Les tableaux A.21 présentent la proportion de fonctions annotées observée dans la dimension Own Communication Management pour l’expert et le demandeur et de manière globale. Cette dimension s’illustre par l’usage de deux fonctions Self-correction et Retraction de la part de l’expert et du demandeur. (a) Expert Fonction Prop. globale Self-correction 2.90% Retraction 2.30% Error signaling 0.00% (b) Demandeur Fonction Prop. globale Self-correction 3.60% Retraction 2.00% (c) Global Fonction Prop. globale Self-correction 3.10% Retraction 2.20% Error signaling 0.00% Tableau A.21: Répartition des fonctions dans la dimension Own Communication Management Dimension Auto-feedback Les tableaux A.22 présentent la proportion de fonctions annotées observée dans la dimension Auto-feedback pour l’expert et le demandeur et de manière globale. Cette dimension s’illustre par une majorité écrasante de feedback positif sous-spécifié (AutoPositive).242 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF (a) Expert Fonction Prop. globale AutoPositive 8.70% Check Question 0.30% EvalPositiveAutoFeedback 0.10% ExecNegativeAutoFeedback 0.10% Inform 0.10% PerceptNegativeAutoFeedback 0.10% Posi-check 0.10% Set Question 0.10% AutoNegative 0.00% EvalPositiveAlloFeedback 0.00% InterprPositiveAutoFeedback 0.00% PerceptPositiveAutoFeedback 0.00% (b) Demandeur Fonction Prop. globale AutoPositive 7.40% Check Question 0.30% EvalPositiveAutoFeedback 0.20% AutoNegative 0.10% ExecNegativeAutoFeedback 0.10% InterprNegativeAutoFeedback 0.10% PerceptNegativeAutoFeedback 0.10% Posi-check 0.10% (c) Global Fonction Prop. globale AutoPositive 8.40% Check Question 0.30% EvalPositiveAutoFeedback 0.10% ExecNegativeAutoFeedback 0.10% Inform 0.10% PerceptNegativeAutoFeedback 0.10% Posi-check 0.10% Set Question 0.10% AutoNegative 0.00% InterprNegativeAutoFeedback 0.00% InterprPositiveAutoFeedback 0.00% PerceptPositiveAutoFeedback 0.00% Tableau A.22: Répartition des fonctions dans la dimension Auto-feedback Dimension Turn Management Les tableaux A.23 présentent la proportion de fonctions annotées observée dans la dimension Turn Management pour l’expert et le demandeur et de manière globale. Les fonctions apparaissant dans cette dimension sont majoritairement des fonctions spécifiques. Notons que le demandeur réalise la majorité des prises de parole intempestives (Turn Grab). Ceci s’explique par le fait que l’expert parle beaucoup. Il doit en effet mener la recherche en tant que spécialiste de CISMeF et également verbaliser ce qu’il fait pour l’expérimentation. Le demandeur est donc amené à interrompre l’expert pour s’exprimer. Cette remarque se vérifie également par l’usage de fonctions dans la dimension Partner Communication Management.A.3. Annexes des résultats du processus d’annotation 243 (a) Expert Fonction Prop. globale Turn Keep 0.80% Turn Grab 0.60% Turn Assign 0.20% Turn Release 0.10% Agreement 0.00% Turn Take 0.00% (b) Demandeur Fonction Prop. globale Turn Grab 4.50% Turn Release 0.30% Turn Assign 0.20% Turn Take 0.20% Turn Keep 0.10% (c) Global Fonction Prop. globale Turn Grab 1.70% Turn Keep 0.60% Turn Assign 0.20% Turn Release 0.10% Turn Take 0.10% Agreement 0.00% Tableau A.23: Répartition des fonctions dans la dimension Turn Management Dimension Allo-feedback Les tableaux A.24 présentent la proportion de fonctions annotées observée dans la dimension Allo-feedback pour l’expert et le demandeur et de manière globale. Cette dimension est faiblement représentée dans notre corpus. Elle va de pair avec la dimension Auto-feedback lors de mauvaises compréhension. Globalement, c’est l’usage de signaux de retour positif sous-spécifiés (AlloPositive) et de confirmation aux questions de vérification dans la dimension Auto-feedback qui est majoritaire. Notons la présence de fonctions permettant la demande de retours sur ce qui a été dit (EvalFBElicitation) illustrées par l’exemple suivant : « C’est quand même une belle maladie ça, non ? » (VD04).244 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF (a) Expert Fonction Prop. globale AlloPositive 0.20% Confirm 0.10% EvaluationFeedbackElicitation 0.10% Request 0.10% AlloNegative 0.00% Answer 0.00% Set Question 0.00% (b) Demandeur Fonction Prop. globale Confirm 0.80% AlloPositive 0.70% Answer 0.40% EvaluationFeedbackElicitation 0.40% Disconfirm 0.20% Inform 0.20% AttentionFeedbackElicitation 0.10% Check Question 0.10% InterprNegativeAlloFeedback 0.10% (c) Global Fonction Prop. globale AlloPositive 0.30% Confirm 0.30% EvaluationFeedbackElicitation 0.20% Answer 0.10% Disconfirm 0.10% Request 0.10% AlloNegative 0.00% AttentionFeedbackElicitation 0.00% Check Question 0.00% Inform 0.00% InterprNegativeAlloFeedback 0.00% Set Question 0.00% Tableau A.24: Répartition des fonctions dans la dimension Allo-feedback Dimension Social Obligation Management Les tableaux A.25 présentent la proportion de fonctions annotées observée dans la dimension Social Obligation Management pour l’expert et le demandeur et de manière globale. Cette dimension est faiblement représentée dans notre corpus. Notons la présence des fonctions spécifiques de la dimension (Thanking, Thanking-downplay, Apology, Apology-downplay).A.3. Annexes des résultats du processus d’annotation 245 (a) Expert Fonction Prop. globale Apology 0.40% Agreement 0.20% Inform 0.20% Thanking 0.10% Answer 0.00% Apology-downplay 0.00% Check Question 0.00% Disconfirm 0.00% Offer 0.00% Request 0.00% (b) Demandeur Fonction Prop. globale Inform 0.50% Apology 0.20% Apology-downplay 0.10% Check Question 0.10% Choice Question 0.10% DeclineOffer 0.10% Initial greeting 0.10% Offer 0.10% Posi-check 0.10% Thanking 0.10% Thanking-downplay 0.10% (c) Global Fonction Prop. globale Apology 0.40% Inform 0.30% Agreement 0.10% Apology-downplay 0.10% Thanking 0.10% Answer 0.00% Check Question 0.00% Choice Question 0.00% DeclineOffer 0.00% Disconfirm 0.00% Initial greeting 0.00% Offer 0.00% Posi-check 0.00% Request 0.00% Thanking-downplay 0.00% Tableau A.25: Répartition des fonctions dans la dimension SOM Dimension Partner Communication Management Les tableaux A.26 présentent la proportion de fonctions annotées observée dans la dimension Partner Communication Management pour l’expert et le demandeur et de manière globale. Cette dimension s’illustre par l’usage de la fonction Completion. Notons que celle-ci est majoritairement utilisée par le demandeur afin de récupérer le tour de parole (cf. annexe A.3.7 sur la dimension Turn Management).246 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF (a) Expert Fonction Prop. globale Completion 0.50% (b) Demandeur Fonction Prop. globale Completion 2.70% (c) Global Fonction Prop. globale Completion 1.10% Tableau A.26: Répartition des fonctions dans la dimension PCM Dimension Discourse Structuring Les tableaux A.27 présentent la proportion de fonctions annotées observée dans la dimension Discourse Structuring pour l’expert et le demandeur et de manière globale. Cette dimension est faiblement représentée dans notre corpus. (a) Expert Fonction Prop. globale Opening 0.20% Preclosing 0.10% Inform 0.00% Topic introduction 0.00% Topic shift 0.00% Topic shift annoucement 0.00% (b) Demandeur Fonction Prop. globale Inform 0.10% Preclosing 0.10% Topic shift 0.10% (c) Global Fonction Prop. globale Opening 0.20% Inform 0.10% Preclosing 0.10% Topic introduction 0.00% Topic shift 0.00% Topic shift annoucement 0.00% Tableau A.27: Répartition des fonctions dans la dimension Discourse Structuring Dimension Contact Management Les tableaux A.28 présentent la proportion de fonctions annotées observée dans la dimension Contact Management pour l’expert et le demandeur et de manière globale. Cette dimension est faiblement représentée dans notre corpus.A.4. Annexes du processus d’extraction 247 (a) Expert Fonction Prop. globale Contact Indication 0.30% Inform 0.00% (b) Demandeur Fonction Prop. globale Contact Indication 0.20% Inform 0.10% Request 0.10% (c) Global Fonction Prop. globale Contact Indication 0.30% Inform 0.00% Request 0.00% Tableau A.28: Répartition des fonctions dans la dimension Contact Management A.4 Annexes du processus d’extraction Ces annexes présentent des données et résultats supplémentaires du processus d’extraction. L’annexe A.4.1 présente les données détaillées de répartition entre le corpus d’extraction et le corpus de référence. L’annexe A.4.2 fournit des précisions sur les fonctions qui précèdent une fonction ExecNegativeAutoFB. L’annexe A.4.3 présente le détail de l’intervention d’instances de motifs dialogiques dans les entretiens du corpus d’extraction. Enfin, l’annexe A.4.4 fournit des exemples supplémentaires de dialogue tirés du corpus d’extraction illustrant chacun des motifs dialogiques extraits. A.4.1 Répartition entre le corpus d’extraction et le corpus de référence Cette annexe présente la constitution des corpus de référence et des corpus d’extraction. Le tableau A.29 rappelle la distribution des entretiens du corpus Cogni-CISMeF entre les corpus de référence et d’extraction. Le tableau A.30 présente la répartition des tours de parole, des segments fonctionnels et des fonctions communicatives entre le corpus d’extraction et le corpus de référence (en proportion et en chiffres). AL02 AL03 AL04 AL05 AL06 AL07 AL09 AL10 AL11 AL12 Sélectionné × × × × × × × VD02 VD03 VD04 VD05 VD06 VD07 VD08 VD09 Sélectionné × × × × × Tableau A.29: Dialogues sélectionnés pour l’extraction manuelle des motifs d’interaction248 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF Tour Segment Fonction Corpus d’extraction 1354 (64.11%) 3626 (66.10%) 4166 (65.68%) Corpus de référence 758 (35.89%) 1860 (33.90%) 2177 (34.32%) Total 2112 (1056 × 2) 5486 6343 Tableau A.30: Répartition des tours de parole, des segments fonctionnels et des fonctions communicatives entre le corpus d’extraction et le corpus de référence A.4.2 Cas de la fonction ExecNegativeAutoFB La figure A.1 présente les fonctions qui précèdent la fonction ExecNegativeAutoFB observées dans le corpus Cogni-CISMeF. On constate que la fonction ExecNegativeAutoFB a été exclusivement observée en réaction à des fonctions représentant une question (CheckQuestion, SetQuestion, ChoiceQuestion et PropositionalQuestion). {Check Question|Task} {ExecNegativeAutoFeedback|AutoFeedback} 16,67% {Set Question|Task} 33,33% {Choice Question|Task} 33,33% {Propositional Question|Task} 16,67% Figure A.1: Occurrence de la fonction ExecNegativeAutoFB A.4.3 Présence des motifs dans les entretiens du corpus d’extraction Cette annexe présente la présence des motifs dialogiques dans les entretiens du corpus d’extraction. Un motif dialogique est présent dans un entretien s’il possède une instance dans l’entretien annoté par l’annotateur 1 ou dans l’entretien annoté par l’annotateur 2. Le tableau A.31 présente la présence des motifs dans le corpus AL tandis que le tableau A.32 présente la présence des motifs dans le corpus VD. Le tableau A.33 présente la synthèse de la présence des motifs dialogiques dans les entretiens du corpus d’extraction.A.4. Annexes du processus d’extraction 249 AL 3 4 6 7 10 11 12 Bilan Question oui/non × × 2/7 Vérification × × × × × × × 7/7 Vérification positive × × 2/7 Vérification négative × 1/7 Question ouverte × × × × × 5/7 Question à choix multiples × × 2/7 Suggestion × × × × × × 6/7 Requête × × 2/7 Offre × × × 3/7 Accord × × × × × × 6/7 Correction × 1/7 Tableau A.31: Présence des motifs dans les entretiens du corpus AL VD 2 4 5 6 7 Bilan Question oui/non × × 2/5 Vérification × × × × × 5/5 Vérification positive × × 2/5 Vérification négative × × × 3/5 Question ouverte × × × × 4/5 Question à choix multiples × × × 3/5 Suggestion × × × × × 5/5 Requête × × × × 4/5 Offre × × × × × 5/5 Accord × × × × × 5/5 Correction × × × 3/5 Tableau A.32: Présence des motifs dans les entretiens du corpus VD Motif Bilan Question oui/non 4/12 Vérification 12/12 Vérification positive 4/12 Vérification négative 4/12 Question ouverte 9/12 Question à choix multiples 5/12 Suggestion 11/12 Requête 6/12 Offre 8/12 Accord 11/12 Correction 4/12 Tableau A.33: Bilan de la présence des motifs dans les entretiens250 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF A.4.4 Exemples supplémentaires d’instance de motif Cette annexe présente des exemples supplémentaires d’instances de motifs dialogiques facilement compréhensibles hors du contexte du dialogue. Pour chaque motif dialogique, un graphe représentant le motif en question est fourni. Chaque nœud du graphe représente l’occurrence d’une fonction communicative dans une dimension. Chaque arc indique une suite possible réalisée par un autre interlocuteur. Les étiquettes sur les arcs informent de la proportion observée dans le corpus d’extraction. Motif de question oui/non {Propositional Question|Task} {Answer|Task} 90,91% {ExecNegativeAutoFeedback|AutoFeedback} 9,09% Figure A.2: Motif dialogique d’interrogation oui/non Task S1 : alors "pathologie de la xxx xxx" / est-ce que ça vous dit quelque chose ? PropositionalQuestion A2 : ça se pourrait bien / oui Answer Dialogue A.6 – Exemple d’un motif de type question oui/non avec seconde partie de paire pré- férée (entretien AL03) Motif de vérification {Check Question|Task} {Disconfirm|Task} 37,88% {ExecNegativeAutoFeedback|AutoFeedback} 1,52% {Answer|Task} 15,15% {Confirm|Task} 45,45% Figure A.3: Motif dialogique de vérification d’une information Task S1 : donc vous voulez des informations sur la périarthrite ? CheckQuestion A2 : voilà Confirm Dialogue A.7 – Exemple d’un motif de type vérification avec seconde partie de paire préférée (entretien AL3)A.4. Annexes du processus d’extraction 251 Task S1 : alors vous souhaitez mettre d’autres qualificatifs finalement ? CheckQuestion A2 : oui Confirm Dialogue A.8 – Exemple d’un motif de type vérification avec seconde partie de paire préférée (entretien VD2) Task S1 : C’est tout ce qu’il y a ? CheckQuestion A2 : non Disconfirm Dialogue A.9 – Exemple d’un motif de type vérification avec seconde partie de paire non-préférée (entretien VD04) Task S1 : mais il était vraiment enlevé ? CheckQuestion A2 : je vais vérifier Inform il n’était pas enlevé Disconfirm Dialogue A.10 – Exemple d’un motif de type vérification avec seconde partie de paire nonpréférée (entretien VD05) Motif de vérification positive {Posi-check|Task} {Confirm|Task} 100,00% Figure A.4: Motif dialogique de vérification positive d’une information Task S1 : alors plus précisémment ce serait le genou alors ? PosiCheck A2 : oui Confirm Dialogue A.11 – Exemple d’un motif de type vérification positive (entretien AL06) Task S1 : alors vu la présentation de la fenêtre je suppose qu’il y en a une bonne quantité derrière ? PosiCheck A2 : oui tout à fait Confirm Dialogue A.12 – Exemple d’un motif de type vérification positive (entretien VD05)252 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF Task S1 : ca vous va ? PosiCheck A2 : ouais Confirm Dialogue A.13 – Exemple d’un motif de type vérification positive (entretien VD07) Motif de vérification négative {Nega-check|Task} {Confirm|Task} 100,00% Figure A.5: Motif dialogique de vérification négative d’une information Task S1 : on n’avait pas le mot diagnostic ? NegaCheck A2 : si Confirm Dialogue A.14 – Exemple d’un motif de type vérification negative (entretien VD02) Task S1 : vous ne voyez pas grand chose non plus ? NegaCheck A2 : bah j’essaie / j’essaie je regarde Inform rien / je vois rien Confirm Dialogue A.15 – Exemple d’un motif de type vérification negative (entretien VD04) Motif de question ouverte {Set Question|Task} {ExecNegativeAutoFeedback|AutoFeedback} 5,13% {Answer|Task} 94,87% Figure A.6: Motif dialogique de demande d’information ouverte Task S1 : donc c’est des douleurs articulaires à quel niveau ? SetQuestion A2 : au niveau des genoux et autres Answer Dialogue A.16 – Exemple de motif de type question ouverte avec seconde partie de paire préférée (entretien AL06)A.4. Annexes du processus d’extraction 253 Task S1 : ça serait dans quelle discipline de sport ? SetQuestion A2 : le rugby pour le rugby Answer Dialogue A.17 – Exemple de motif de type question ouverte avec seconde partie de paire préférée (entretien AL06) Task S1 : donc document c’est / c’est des documents qui / c’est quel type de document parce que je ne sais pas où se fait la recherche en fait ? SetQuestion A2 : alors la recherche ça se fait / par un ensemble de documents médicaux qui sont dans un annuaire / c’est-à-dire qui ont été sélectionnés par un équipe de documentalistes spécialisés en médecine Answer S3 : et ces documents c’est quoi c’est des rapports ? c’est des articles de journaux c’est SetQuestion A4 : des documents / il y a tout ce qui va s’adresser aux médecins euh : des cours pour les étudiants en médecine Answer Dialogue A.18 – Exemple de motif de type question ouverte avec seconde partie de paire préférée (entretien AL10) Motif de question à choix multiples {Choice Question|Task} {ExecNegativeAutoFeedback|AutoFeedback} 6,67% {Answer|Task} 93,34% Figure A.7: Motif dialogique de demande d’information à choix multiples Task S1 : dans les types de ressources est-ce qu’on va plutôt chercher des choses dans les associations / dans les bases de données / bibliothèque médicale / étude d’évaluation / forum / hôpital / image / des choses sur des lignes de consensus de professionnels / des matériels de l’enseignement / des documents pour les patients / des périodiques / des rapports techniques / des recommandations ou un service hospitalier ChoiceQuestion A2 : oh service hospitalier pour essayer Answer Dialogue A.19 – Exemple de motif de type question à choix multiples avec seconde partie de paire préférée (entretien VD07)254 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF Task AutoFB S1 : alors on a créatinine quinaz ou créatinine ChoiceQuestion A2 : moi je mettrais que créatinine Answer S3 : on met que créatinine AutoPositive Dialogue A.20 – Exemple de motif de type question à choix multiples avec seconde partie de paire préférée (entretien VD07) Motif de suggestion {Suggestion|Task} {AcceptSuggestion|Task} 94,25% {DeclineSuggestion|Task} 5,75% Figure A.8: Motif dialogique de suggestion d’action Task S1 : bon on va quand même le lancer comme ça Suggestion A2 : oui AcceptSuggestion Dialogue A.21 – Exemple de motif de type suggestion avec seconde partie de paire préférée (entretien VD05) Task S1 : on va essayer de voir si on obtient des choses spécifiques pour les patients Suggestion donc qu’ils soient spécifiques pour les médecins ou pour les étudiants en médecine Inform A2 : d’accord AcceptSuggestion Dialogue A.22 – Exemple de motif de type suggestion avec seconde partie de paire préférée (entretien AL07) Task AutoFB S1 : en mot clé bah écoutez je vous propose de mettre leucémie Suggestion A2 : leucémie AcceptSuggestion AutoPositive Dialogue A.23 – Exemple de motif de type suggestion avec seconde partie de paire préférée (entretien VD02)A.4. Annexes du processus d’extraction 255 Task S1 : donc ce que je vous propose c’est qu’on remette effort du coup Suggestion A2 : oui / oui AcceptSuggestion Dialogue A.24 – Exemple de motif de type suggestion avec seconde partie de paire préférée (entretien VD05) Task S1 : et si on essayait de transformer le mal à la tête en migraine pour essayer de trouver un synonyme Suggestion A2 : oui / oui / bien sûr AcceptSuggestion Dialogue A.25 – Exemple de motif de type suggestion avec seconde partie de paire préférée (entretien VD05) Task S1 : bon alors donc on essaie quelque chose avec cancérologie et diagnostic Suggestion A2 : ouais AcceptSuggestion Dialogue A.26 – Exemple de motif de type suggestion avec seconde partie de paire préférée (entretien VD06) Task AutoFB S1 : diagnostic de l’insuffisance rénale donc créatinine / analyse de sang / méthode / donc Inform A2 : on peut regarder ça éventuellement Suggestion S3 : on peut regarder éventuellement AcceptSuggestion AutoPositive Dialogue A.27 – Exemple de motif de type suggestion avec seconde partie de paire préférée (entretien VD07) Task S1 : alors peut-être qu’on pourrait mettre dans quelque chose qui serait une espèce de mot clé taux de créatinine normal pour voir ce que ça donne Suggestion A2 : oui AcceptSuggestion Dialogue A.28 – Exemple de motif de type suggestion avec seconde partie de paire préférée (entretien VD07)256 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF Motif de requête {Request|Task} 96,88% {AcceptRequest|Task} {DeclineRequest|Task} 3,13% Figure A.9: Motif dialogique de demande de réalisation d’action (requête) Task S1 : vous me dites si vous voyez des choses Request A2 : D’accord AcceptRequest Dialogue A.29 – Exemple de motif de type requête avec seconde partie de paire préférée (entretien VD05) Motif d’offre {Offer|Task} 40,00% {DeclineOffer|Task} {AcceptOffer|Task} 60,00% Figure A.10: Motif dialogique d’offre de réalisation d’action Task S1 : est-ce que vous avez des questions sur un autre domaine ou ? ? Offer A2 : oui bah non je vois pas de : DeclineOffer Dialogue A.30 – Exemple de motif de type offre avec seconde partie de paire non-préférée (entretien AL10) Task S1 : donc je vais sur le texte lui-même / je vais le visualiser [. . . ] Offer A2 : ouais faut chercher là-dedans AcceptOffer Dialogue A.31 – Exemple de motif de type offre avec seconde partie de paire préférée (entretien VD06)A.4. Annexes du processus d’extraction 257 Task S1 : par contre colon j’aurais presque envie de mettre diagnostic quand même parce que / parce que on va voir ce que ça donne Offer A2 : oui normalement c’est un diagnostic AcceptOffer Dialogue A.32 – Exemple de motif de type offre avec seconde partie de paire préférée (entretien VD06) Task S1 : je vais essayer / je vais retourner donc je retourne sur la page et je relance la recherche Offer A2 : ouais AcceptOffer Dialogue A.33 – Exemple de motif de type offre avec seconde partie de paire préférée (entretien VD06) Motif d’accord {Inform|Task} {Agreement|Task} 90,82% 1,02% {Disagreement|Task} {Answer|Task} 8,16% Figure A.11: Motif dialogique d’accord Task S1 : mais ça doit pas être ça Inform A2 : non à mon avis non Agreement Dialogue A.34 – Exemple de motif d’accord avec seconde partie de paire préférée (entretien AL04) Task S1 : on a 115 articles Inform A2 : oui oui Agreement Dialogue A.35 – Exemple de motif de type accord avec seconde partie de paire préférée (entretien AL07)258 Chapitre A : Annexes de l’analyse du corpus Cogni-CISMeF Task S1 : donc que c’est un accès que n’importe qui peut avoir l’accès Inform A2 : tout à fait Agreement Dialogue A.36 – Exemple de motif d’accord avec seconde partie de paire préférée (entretien AL10) Task S1 : là on a 33 ressources alors effectivement / ça s’annonce bien Inform A2 : ah oui il y a des choses là Agreement Dialogue A.37 – Exemple de motif d’accord avec seconde partie de paire préférée (entretien AL10) Task S1 : donc là on a abouti à un truc qui n’a rien à voir Inform A2 : voilà Agreement Dialogue A.38 – Exemple de motif d’accord avec seconde partie de paire préférée (entretien AL12) Task S1 : bon on le trouve pas dans l’accès thématique Inform A2 : non Agreement Dialogue A.39 – Exemple de motif d’accord avec seconde partie de paire préférée (entretien VD05) Task S1 : on cherche mais on ne trouve pas toujours Inform A2 : exactement c’est tout à fait ça Agreement Dialogue A.40 – Exemple de motif d’accord avec seconde partie de paire préférée (entretien VD05) Task AutoFB S1 : ces deux là on les avait déjà vues Inform A2 : déjà vues aussi Agreement AutoPositive S3 : la troisième ? CheckQuestion A4 : toujours les trois mêmes Answer S5 : toujours les trois mêmes Agreement AutoPositive Dialogue A.41 – Exemple de motif de type accord avec seconde partie de paire préférée (entretien VD06)A.4. Annexes du processus d’extraction 259 Motif de correction {Inform|Task} {Correction|Task} 66,67% {Answer|Task} 33,33% {Agreement|Task} 66,67% Figure A.12: Motif dialogique de correction Task S1 : vous êtes sociologue c’est ça Inform A2 : moi je suis linguiste Correction Dialogue A.42 – Exemple de motif de type correction en deux temps (entretien VD05)Annexe B Annexes du modèle B.1 Événéments internes issus des jeux de dialogue Le tableau B.1 présente les événements internes liés aux jeux de dialogue. Ces événements sont déclenchés dès lors que des conditions d’entrée, d’échec ou de succès sont atteintes par le tableau de conversation. Ces événements internes sont utilisés dans le jeu de contextualisation. Événement interne Description atteintEntréeInitiateur(j) Déclenché si les conditions d’entrée de l’initiateur sont atteintes atteintEntréePartenaire(j) Déclenché si les conditions d’entrée du partenaire sont atteintes atteintSuccèsInitiateur(j) Déclenché si les conditions de succès de l’initiateur sont atteintes atteintSuccèsPartenaire(j) Déclenché si les conditions de succès du partenaire sont atteintes atteintÉchecInitiateur(j) Déclenché si les conditions d’échec de l’initiateur sont atteintes atteintÉchecPartenaire(j) Déclenché si les conditions d’échec du partenaire sont atteintes atteintEntrée(j) Déclenché si la conjonction des conditions d’entrée de l’initiateur et du partenaire est atteinte. atteintÉchec(j) Déclenché si la disjonction des conditions d’échec de l’initiateur et du partenaire est atteinte. atteintSuccès(j) Déclenché si la disjonction des conditions de succès de l’initiateur et du partenaire est atteinte. atteintSortie(j) Déclenché si la disjonction des conditions de succès et d’échec de l’initiateur et du partenaire est atteinte. Tableau B.1: Événements internes relatifs aux jeux de dialogue. j : JeuDeDialogue. B.2 Jeu de communication de contextualisation Le tableau B.2 présente le jeu de communication de contextualisation. Celui-ci permet d’établir un jeu de dialogue ou des combinaisons de jeux de dialogue. B.3 Jeu de dialogue de question à choix multiples Le tableau B.3 présente le jeu de dialogue de question à choix multiples. Le but est une question q telle que q : ALTQ. Les conditions d’entrée précisent que le partenaire ne doit pas déjà être engagé sur une proposition qui résout la question, ou sur le fait qu’il ne connaît pas262 Chapitre B : Annexes du modèle α β prop.entrée(x, j) Cctx(y, acc.entrée(y, j)|ref.entrée(y, j)|prop.entrée(y, j’ ; j)|prop.entrée(y, j’ j) ,Crt) C({x,y},j,Sugg) prop.entrée(x, j’ ; j) Cctx(y, acc.entrée(y, j’ ; j)|ref.entrée(y, j’ ; j) ,Crt) C({x,y},j’,Sugg) prop.entrée(x, j’ j) Cctx(y, acc.entrée(y, j’ j)|ref.entrée(y, j’ j) ,Crt) C({x,y},j’,Sugg) prop.entrée(x, j’, ligne 34) et d’une alternative (via l’opérateur 1 *|, ligne 35). Elle stipule que le partenaire (partner) est engagé à jouer un AcceptRequest ou un DeclineRequest dès lors que l’initiateur joue un acte Request. Cette règle de production implique l’action de création d’un engagement définie dans Dogma (Create, ligne 34). La méthode getPropositionalEffectsFor (ligne 40) fonctionne de la même manière que la méthode getRulesFor. Elle permet de définir les effets des actes AcceptRequest et DeclineRequest produits par le partenaire (lignes 46-49). Les règles de production font intervenir les opérations de création (Create, ligne 47) et d’échec (Failure, ligne 49) fournies par Dogma. class RequestGame private ( initiator: Interlocutor, partner: Interlocutor, goal: ActionProposition) extends DialogueGame(...) { 5 // Entry and exit conditions def getEntryConditionsFor(speaker: Interlocutor): GameCondition = { if (isInitiator(speaker)) { GameCondition.success } else { 10 InactiveActionCommitment(partner, initiator, goal.action) && InactiveActionCommitment(partner, initiator, goal.action.neg) } } 15 def getSuccessExitConditionsFor(speaker: Interlocutor): GameCondition = { ExistActionCommitment(C(partner, initiator, goal.action)) } def getFailureExitConditionsFor(speaker: Interlocutor): GameCondition = { 20 ExistActionCommitment(C(partner, initiator, goal.action, Fal)) } // Rules def getRulesFor(speaker: Interlocutor)(instance: DialogueGameInstance): Set[ AnyGameCommitment] = { 25 if (isInitiator(speaker)) { Set( // Request C(instance, initiator, partner, Request(initiator, goal))) 30 } else { Set( // Production rule C(instance, partner, initiator, Request(initiator, goal) ==> Create(partner, 35 C(instance, partner, initiator, AcceptRequest(partner, goal) ∗| DeclineRequest(partner, goal))))) } } 1. L’opérateur d’alternative commence par un « * » pour des raisons de priorité inhérentes au langage.C.1. Exemples de code 267 // Effects 40 def getPropositionalEffectsFor(speaker: Interlocutor)(instance: DialogueGameInstance) : Set[AnyGameCommitment] = { if (isInitiator(speaker)) { Set() } else { Set( 45 // AcceptRequest and DeclineRequest C(instance, partner, initiator, AcceptRequest(partner, goal) ==> Create(partner, C(partner, initiator, goal. action))), C(instance, partner, initiator, DeclineRequest(partner, goal) ==> Failure(partner, C(partner, initiator, goal.action)))) 50 } } } Listing C.1: Extrait du code du jeu de dialogue de requête dans Dogma Le listing C.2 présente un extrait du jeu de communication d’évaluation. Les quatre premières lignes définissent le jeu de communication comme impliquant plusieurs interlocuteurs (speakers). Ce jeu hérite de la classe CommunicationGame de la librairie Dogma qui né- cessite la définition de la méthode getRulesFor. Cette méthode permet d’obtenir les règles du jeu pour l’interlocuteur speaker. Elle retourne un ensemble d’engagements dialogiques (Set[AnyGameCommitment]). Les règles du jeu sont spécifiées en tant que règles de production conditionnelles persistantes (via l’opérateur =*=>, lignes 9 et 14). La première règle spécifie les effets directs des actes informatifs Inform, Answer et Disagreement (lignes 7-10). Elle fait intervenir une alternative (via l’opérateur *|) qui définit que l’intervention d’un événement dialogique Inform, Answer ou Agreement conduit à engager le locuteur sur son contenu sémantique (via l’opération de création Create, ligne 10). Le contenu sémantique est spécifié par une variable P qui s’unifie avec celui de l’événement intervenu (pourvu que sa fonction et son interlocuteur soient identiques à celles de la description). La seconde règle spécifie les effets directs de l’acte Disagreement (lignes 12-15). Elle conduit à engager le locuteur du Disagreement sur la négation de son contenu sémantique (P.neg, ligne 15). Les autres règles du jeu d’évaluation sont spécifiées sur le même modèle. class EvaluationGame private (speakers: Interlocutor*) extends CommunicationGame with GameVariables { 5 def getRulesFor(speaker: Interlocutor): Set[AnyGameCommitment] = Set( // InformativeAct(_, p) -> C(_,p) C(this, speaker, otherSpeaker(speaker), Inform(speaker, P) ∗| Answer(speaker, P) ∗| Agreement(speaker, P) =*=> 10 Create(speaker, C(speaker, otherSpeaker(speaker), P))), // Disagreement(_, p) -> C(_, ~p) C(this, speaker, otherSpeaker(speaker), Disagreement(speaker, P)268 Chapitre C : Annexes de la mise en œuvre =*=> 15 Create(speaker, C(speaker, otherSpeaker(speaker), P.neg)))) ... } Listing C.2: Extrait du code du jeu de communication d’évaluation C.2 Traces de fonctionnement du système Ces annexes présentent trois exemples supplémentaires de traces générées par Dogma. L’annexe C.2.1 présente le cas du refus d’entrée dans un jeu de dialogue suite à un acte de proposition d’entrée. L’annexe C.2.2 présente un jeu de question ouverte dont l’exécution conduit à l’échec du jeu. Enfin, l’annexe C.2.3 présente un exemple de correction. C.2.1 Refus d’entrée dans le jeu Cet exemple présente un jeu de dialogue de requête sur l’action ajouterMotCle(grippe) qui forme le but du jeu. Il débute par un acte de contextualisation de proposition d’entrée dans ce jeu (« Je peux vous demander de réaliser une action ? »). Cet acte établit l’engagement conjoint sur le jeu de dialogue en état Sugg.                      Tours: prop.entrée(x, g4)  Cx Cy Cp ∅ ∅ Ca(Crt) ∅ ∅ Ca(Fal) ∅ ∅ CdA ∅ ∅ Cxy Jeu:    Sugg. : Request(ajouterMotCle(grippe))=g4 Ouv. : Ferm. : Saillants : ∅                           Actes attendus : ctx, ev: acc.entrée(y, g4) | ref.entrée(y, g4) | prop.entrée(y, Ys g4) | prop.entrée(y, Ys ; g4)   L’exploitation du tableau de conversation spécifie que les seuls actes attendus sont de la part de l’interlocuteur y. Il s’agit pour lui d’accepter ou de refuser l’entrée dans le jeu, ou bien de proposer une combinaison de jeu. Le terme Ys représente une variable devant être remplacée parC.2. Traces de fonctionnement du système 269 une proposition de jeu valide. L’interlocuteur y refuse l’entrée dans le jeu.                      Tours: ref.entrée(y, g4), prop.entrée(x, g4)  Cx Cy Cp ∅ ∅ Ca(Crt) ∅ ∅ Ca(Fal) ∅ ∅ CdA ∅ ∅ Cxy Jeu:    Sugg. : Ouv. : Ferm. : Saillants : ∅                         Le jeu suggéré est alors retiré. Le tableau de conversation retourne dans sa situation initiale, à l’exception de l’historique du dialogue qui garde la trace de la tentative d’ouverture du jeu de dialogue. C.2.2 Échec d’un jeu de question/réponse Cette trace présente l’exécution d’un jeu de dialogue de question ouverte sur la question « Quel est un synonyme d’eczéma ? » (?X.synonyme(eczema, X)) initié par l’interlocuteur x. La proposition de jeu est acceptée par l’interlocuteur y. Le jeu de question ouverte est alors établi entre les interlocuteurs, conduisant au tableau de conversation ci-après.270 Chapitre C : Annexes de la mise en œuvre  Tours: acc.entrée(y, g5), prop.entrée(x, g5)  Cx Cy Cp ∅ ∅ Ca(Crt) ∅ ∅ Ca(Fal) ∅ ∅ CdA ⌊setQuestion(x, q)⌋:g5 ⌊execNegativeAutoFB(y, q) ⇒ C(y,fail(q),Crt)⌋:g5, ⌊setQuestion(x, q) ⇒ Cg5(y,answer(y,P2) avec rel(P2, q) | execNegativeAutoFB(y, q),Crt)⌋:g5, ⌊answer(y,P) avec strictRel(P, q) ∗⇒ Cg5(y,answer(y,P2) avec rel(P2, q) | execNegativeAutoFB(y, q),Crt)⌋:g5 CxyJeu:  Sugg. : Ouv. : OpenInterrogation(?X.synonyme(eczema, X))=g5 Ferm. : Saillants : g5   q=?X.synonyme(eczema, X)  Actes attendus : g5: setQuestion(x, q) ctx, ev: prop.entrée(y, Ys. HAL Id: tel-01083606 https://tel.archives-ouvertes.fr/tel-01083606 Submitted on 17 Nov 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es. Etude de la synchronisation temporelle dans les systèmes MIMO-OFDM appliqués aux réseaux mobiles Thèse soutenue le 26.02.2014 devant le jury composé de : Régis LENGELLE Professeur à l’Université Technologie de Troyes / président Françoise PALADIAN Professeur à l’Université Blaise-Pascal / rapporteuse Joumana FARAH Professeur à l’Université Saint-Esprit de Kaslik / rapporteuse Ghaïs EL ZEIN Professeur à l’INSA de Rennes / examinateur Bilal BEYDOUN Professeur à l’Université Libanaise / Directeur de thèse Fabienne NOUVEL Maître de Conférences, HDR, à l’INSA de Rennes / Directrice de thèse THESE INSA Rennes sous le sceau de l’Université européenne de Bretagne en cotutelle avec l’Université Libanaise pour obtenir le titre de DOCTEUR DE L’INSA DE RENNES Spécialité : Electronique et Télécommunications présentée par Ali RACHINI ECOLE DOCTORALE : Matisse LABORATOIRE : IETREtude de la synchronisation temporelle dans les systèmes MIMO-OFDM appliqués aux réseaux mobiles Ali RACHINI En partenariat avec Document protégé par les droits d’auteur REMERCIEMENTS Au terme de ce travail, je voudrais adresser une pensée à tous ceux qui, de quelque manière que ce soit, par un conseil, une idée, un coup de main ou, tout simplement leur amitié, m’ont aidée à le réaliser. Ce travail de recherche est le fruit d’une convention en cotutelle entre l’Université Libanaise et l’INSA de Rennes. La présente étude a été réalisée au sein du Laboratoire IETR de l’INSA de Rennes du coté français et le groupe GET de l’université Libanaise du coté libanais. Je tiens à exprimer mes sincères remerciements à mon directeur de thèse monsieur Bilal BEYDOUN, professeur à la faculté des sciences de l’université Libanaise qui m’a accueilli dans son laboratoire et qui m’a donné l’opportunité d’effectuer ce travail, de ses conseils scientifiques tout au long de la thèse, sa grande disponibilité, ces encouragements et de la confiance qu’il m’a accordée. Je remercie vivement ma directrice de thèse, Mme. Fabienne NOUVEL, professeur à l’INSA de Rennes, d’avoir assuré la direction de ce travail, et de m’avoir apporté la rigueur scientifique nécessaire à son bon déroulement, je tiens également à le remercier de sa gentillesse et sa grande disponibilité. Le partage de l’ensemble de ses connaissances m’a toujours permis de travailler dans les meilleures conditions.Je ne sais comment exprimer ma gratitude à ces deux personnes autrement qu’en leur promettant d’agir comme eux avec des étudiants dans ma situation, si un jour l’occasion m’en est donnée. Je tiens particulièrement à exprimer mes plus vifs remerciements à monsieur Ghais EL-ZEIN, professeur à l’INSA de Rennes, pour la gentillesse qu’il a manifestée à mon égard durant cette thèse et pour tous les conseils. Je tiens à remercier, Monsieur Régis LENGELLE, directeur de l’école doctorale à l’université de technologie de Troyes, d’avoir participé à ce jury, en tant que président. Je remercie vivement Mme. Françoise PALADIAN, directrice de l’Ecole Doctorale des Sciences Pour l’Ingénieur (EDSPI) de Clermont Ferrand, et Mme. Joumana FARAH, professeur à l’université Saint-Esprit de Kaslik (USEK), qui ont accepté d’être les rapporteuses de cette thèse, et je les en remercie, de même que pour leur participation au jury. Elles ont également contribué par leurs nombreuses remarques et suggestions à améliorer la qualité de ce mémoire, et je leur en suis très reconnaissant. Je remercie tous les membres du laboratoire IETR, groupe GET, INSA et EDST. Ces remerciements ne seraient pas complets sans mentionner le soutien et les encouragements fournis tout au long de ces années par mes amis et mes proches. Un merci tout particulier va à mes parents pour leur aide précieuse à la finalisation de ce travail, bien entendu ma mère, mes frères, mes sœurs et ma fiancée, Mariam.Table des matières Page Liste des tableaux v Table des figures x Acronym xiii Notation xvi I Introduction Générale 1 II Systèmes multi-porteuses et multi-antennes 7 II.1 La technique OFDM . . . . . . . . . . . . . . . . . . . . . . . . 11 II.1.1 Chaîne de transmission d’un système OFDM . . . . . . . 12 II.1.2 Expression du signal OFDM . . . . . . . . . . . . . . . . 14 II.1.3 Préfixe cyclique (CP) . . . . . . . . . . . . . . . . . . . . 16 II.1.4 Avantages et inconvénients de l’OFDM . . . . . . . . . . 17 II.1.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . 18 II.2 La technique MIMO . . . . . . . . . . . . . . . . . . . . . . . . 19 II.2.1 Principe de la technique MIMO . . . . . . . . . . . . . . 19 II.2.2 Codage temps-espace (STC) . . . . . . . . . . . . . . . . 21 II.2.2.1 Le code temps-espace en blocs (STBC) . . . . . 21 II.2.2.2 Les codes temps-espace en treillis (STTC) . . . 23 II.3 La combinaison MIMO-OFDM . . . . . . . . . . . . . . . . . . 24 II.3.1 Canal MIMO . . . . . . . . . . . . . . . . . . . . . . . . 25 II.3.2 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . 28 II.4 La synchronisation . . . . . . . . . . . . . . . . . . . . . . . . . 28II.4.1 La synchronisation fréquentielle . . . . . . . . . . . . . . 29 II.4.1.1 Le décalage de la fréquence porteuse (Carrier Frequency Offset (CFO)) . . . . . . . . . . . . 29 II.4.1.2 Etudes antérieures sur la synchronisation fré- quentielle . . . . . . . . . . . . . . . . . . . . 31 II.4.2 La synchronisation temporelle . . . . . . . . . . . . . . . 32 II.4.2.1 Etudes antérieures sur la synchronisation temporelle . . . . . . . . . . . . . . . . . . . . . . 32 II.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 III Séquences de synchronisation 47 III.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 III.2 Les différentes séquences existantes . . . . . . . . . . . . . . . . 49 III.2.1 Séquences pseudo-aléatoires (Pseudo Noise Sequence (PN)) 50 III.2.2 Les séquences de Gold . . . . . . . . . . . . . . . . . . . 52 III.2.2.1 Fonctions de corrélation des séquences de Gold 53 III.2.3 Les séquences de Walsh-Hadamard . . . . . . . . . . . . 55 III.2.4 Les séquences CAZAC (Constant Amplitude Zero AutoCorrelation) . . . . . . . . . . . . . . . . . . . . . . . . . 57 III.2.5 Les séquences TCH (Tomlinson, Cercas and Hughes) . . . 61 III.2.6 Les séquences ZCZ (Zero Correlation Zone) . . . . . . . 62 III.3 Critères pour sélectionner une séquence particulière . . . . . . . . 65 III.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 IV Les méthodes proposées 73 IV.1 Système de transmission . . . . . . . . . . . . . . . . . . . . . . 74 IV.1.1 Modélisation du canal de propagation . . . . . . . . . . . 77 IV.1.2 Modélisation du signal reçu . . . . . . . . . . . . . . . . 77 IV.2 Les techniques proposées pour la synchronisation temporelle . . . 78IV.2.1 Méthodes de préambule court (Génération dans le domaine temporel) . . . . . . . . . . . . . . . . . . . . . . . . . . 78 IV.2.1.1 Première structure de préambule court (P r_Court_1) 78 IV.2.1.2 Deuxième structure de préambule court (P r_Court_2) 80 IV.2.1.3 Algorithme de détection de pic de synchronisation 81 IV.2.2 Méthodes de préambule compact (Génération dans le domaine fréquentiel) . . . . . . . . . . . . . . . . . . . . . 82 IV.2.2.1 Première structure de préambule compact (P r_Compact_1) 84 IV.2.2.2 Deuxième structure de préambule compact (P r_Compact_2) 87 IV.2.2.3 Troisième structure de préambule compact (P r_Compact_3) 90 IV.2.2.4 Quatrième structure de préambule compact (P r_Compact_4) 93 IV.2.2.5 Algorithme de détection de pic de synchronisation 96 IV.2.3 Méthodes de zéro padding . . . . . . . . . . . . . . . . . 98 IV.2.3.1 Première structure de zéro padding (Z_P ad_1) 98 IV.2.3.2 Deuxième méthode de zéro padding (Z_P ad_2) 102 IV.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 V Les résultats de simulation 109 V.1 Simulation des méthodes de préambule court . . . . . . . . . . . 110 V.1.1 Paramètres de simulations . . . . . . . . . . . . . . . . . 110 V.1.2 Résultats de simulations de P r_Court_1 . . . . . . . . . 111 V.1.2.1 Simulation avec les séquences d’Hadamard . . . 112 V.1.2.2 Simulation avec d’autres séquences . . . . . . . 113 V.1.3 Résultats de simulations de P r_Court_2 . . . . . . . . . 116 V.2 Simulation des méthodes de préambule compact . . . . . . . . . . 119 V.2.1 Paramètres de simulations . . . . . . . . . . . . . . . . . 120 V.2.2 Résultats de simulations de la méthode de préambule compact . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 V.2.2.1 Résultats de simulations de P r_Compact_1 . . 122V.2.2.2 Résultats de simulations de P r_Compact_2 . . 125 V.2.2.3 Résultats de simulations de P r_Compact_3 . . 129 V.2.2.4 Résultats de simulations de P r_Compact_4 . . 132 V.2.3 Les performances de la méthode de préambule compact . 134 V.3 Résultats de simulations des méthodes de zéro padding . . . . . . 137 V.3.1 Résultats de simulations de Z_P ad_1 . . . . . . . . . . . 137 V.3.2 Résultats de simulations de Z_P ad_2 . . . . . . . . . . . 140 V.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 VI Conclusions et perspectives 149 VI.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149 VI.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 Liste de publications 153Liste des tableaux III.1 Comparaison entre les différentes séquences de synchronisation . 67 V.1 Paramètres de simulation de la méthode de préambule court . . . . 110 V.2 Puissance moyenne et délai du canal de propagation (méthodes de préambule court) . . . . . . . . . . . . . . . . . . . . . . . . . . 111 V.3 Paramètres de simulations de méthodes de préambule compact . . 120 V.4 Puissance moyenne du canal de Rayleigh à trajets multiples (mé- thodes de préambule compact) . . . . . . . . . . . . . . . . . . . 121 V.5 Comparaison de la probabilité d’acquisition avec différents systèmes MIMO-OFDM et différentes longueurs de FFT de la mé- thode Z_P ad_1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 V.6 Comparaison de la probabilité d’acquisition de différents systèmes MIMO-OFDM et différentes longueurs de FFT de la méthode Z_P ad_2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143Table des figures II.1 Schéma bloc d’un système de transmission OFDM . . . . . . . . . . . . . . 13 II.2 Illustration de la protection contre les interférences entre symboles OFDM assurée par le CP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 II.3 Schéma simplifié d’un système MIMO-OFDM avec un codage STBC . . . . 26 II.4 Canal MIMO Nt × Nr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 II.5 Décalage de la fréquence porteuse (CFO) . . . . . . . . . . . . . . . . . . . 30 II.6 Structure de trame d’un système MIMO-OFDM avec les codes LS . . . . . . 34 II.7 Structure de préambule proposée dans le domaine fréquentiel dans [48] . . . 35 II.8 Structure de préambule basée sur des séquences partielles de Zadoff-Chu dans [53]. (a) dans le domaine fréquentiel et (b) dans le domaine temporel . . . . . . . . 36 III.1 Structure de la trame de synchronisation dans les systèmes DTMB . . . . . . 51 III.2 Fonctions d’autocorrélation et d’intercorrélation de séquences pseudo-aléatoires de taille 1023 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 III.3 Fonctions d’autocorrélation et d’intercorrélation de Séquences Gold de taille 1023 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 III.4 Fonctions d’autocorrélation et d’intercorrélation de séquences d’Hadamard de taille 1024 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 III.5 Séquence CAZAC avec une amplitude constante . . . . . . . . . . . . . . . . 58 III.6 Fonctions d’autocorrélation et d’intercorrélation de séquences CAZAC de longueur 1024 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 III.7 Fonctions d’autocorrélation et d’intercorrélation de séquences TCH de taille 256 63 III.8 Fonctions d’autocorrélation et d’intercorrélation de séquences ZCZ de taille 512 64IV.1 Système de transmission MIMO-OFDM-STBC . . . . . . . . . . . . . . . . 75 IV.2 Préambules de synchronisation pour la première structure de la méthode de préambules courts (P r_Court_1) . . . . . . . . . . . . . . . . . . . . . . . 79 IV.3 Préambules de synchronisation pour la deuxième structure de la méthode de préambules courts (P r_Court_2) . . . . . . . . . . . . . . . . . . . . . . . 81 IV.4 Schéma général de la détection du pic de synchronisation pour les méthodes de préambules courts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 IV.5 Structure générale de la trame : préambule de synchronisation + symboles OFDM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 IV.6 Schéma de préambules de synchronisation pour P r_Compact_1 dans le domaine fréquentiel sur les différentes antennes d’émission . . . . . . . . . . . 84 IV.7 Fonction d’autocorrélation du préambule de P r_Compact_1, LF F T =256 . . 85 IV.8 Représentation du préambule dans le domaine temporel de P r_Compact_1, LF F T = 256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 IV.9 Schéma de préambules de synchronisation pour la P r_Compact_2 dans le domaine fréquentiel sur les différentes antennes d’émission . . . . . . . . . . 88 IV.10 Fonction d’autocorrélation du préambule de P r_Compact_2, LF F T =256 . . 88 IV.11Représentation du préambule dans le domaine temporel de P r_Compact_2, LF F T = 256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 IV.12 Schéma des préambules de synchronisation pour P r_Compact_3 dans le domaine fréquentiel sur les différentes antennes d’émission . . . . . . . . . . . 91 IV.13 Fonction d’autocorrélation du préambule de P r_Compact_3, LF F T =256 . . 91 IV.14Représentation du préambule dans le domaine temporel de P r_Compact_3, LF F T = 256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 IV.15 Schéma de préambules de synchronisation pour P r_Compact_4 dans le domaine fréquentiel sur les différentes antennes d’émission . . . . . . . . . . . 94 IV.16 Fonction d’autocorrélation du préambule de P r_Compact_4, LF F T =256 . . 94 IV.17Représentation du préambule dans le domaine temporel de P r_Compact_4, LF F T = 256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95IV.18 Schéma général du préambule de synchronisation de la Z_P ad_1 dans le domaine fréquentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 IV.19 Schéma de préambules de synchronisation de Z_P ad_1 dans le domaine fré- quentiel sur les différentes antennes d’émission . . . . . . . . . . . . . . . . 99 IV.20 Fonction d’autocorrélation de la Z_P ad_1, LF F T =256 . . . . . . . . . . . . 100 IV.21Représentation du préambule dans le domaine temporel de Z_P ad_1, LF F T = 256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 IV.22 Schéma général du préambule de synchronisation de Z_P ad_2 dans le domaine fréquentiel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 IV.23 Schéma de préambules de synchronisation de Z_P ad_2 dans le domaine fré- quentiel sur les différentes antennes d’émission . . . . . . . . . . . . . . . . 103 IV.24 Fonction de corrélation de la Z_P ad_2, LF F T = 256 . . . . . . . . . . . . . 103 IV.25Représentation du préambule dans le domaine temporel de Z_P ad_2, LF F T = 256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 V.1 Préambules de synchronisation pour un système 2 × 2 (P r_Court_1) . . . . 111 V.2 Probabilité d’acquisition de la synchronisation temporelle de méthode de pré- ambule court P r_Court_1 . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 V.3 Probabilité d’acquisition de la synchronisation temporelle en fonction de SNR et un seuil de détection à 96%, de méthode de préambule court P r_Court_1 . 113 V.4 Probabilité d’acquisition de la synchronisation temporelle en fonction de SNR et un seuil de détection à 97%, de méthode de préambule court P r_Court_1 . 114 V.5 Probabilité d’acquisition de la synchronisation temporelle en fonction de SNR et un seuil de détection à 96%, de méthode de préambule court P r_Court_1 . 115 V.6 Probabilité d’acquisition de la synchronisation temporelle en fonction de SNR et un seuil de détection à 98%, de méthode de préambule court P r_Court_1 . 116 V.7 Probabilité d’acquisition de la synchronisation temporelle dans un canal de à trajets-multiples + AWGN, seuil = 91%, de méthode de préambule court P r_Court_2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117V.8 Probabilité d’acquisition de la synchronisation temporelle dans un canal à trajets multiples + AWGN, seuil = 89%, de méthode de préambule court P r_Court_2118 V.9 Comparaison de la probabilité d’acquisition de la synchronisation temporelle de méthode de préambule court P r_Court_2 avec différents seuils et séquences119 V.10 Structure de préambule dans le domaine fréquentiel sur chaque antenne d’émission - P r_Compact_1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 V.11 Probabilité d’acquisition de synchronisation temporelle de méthode de préambule compact P r_Compact_1 avec LF F T = 1024 . . . . . . . . . . . . . . . 123 V.12 Probabilité d’acquisition de synchronisation temporelle de méthode de préambule compact P r_Compact_1 avec LF F T = 512 . . . . . . . . . . . . . . . 124 V.13 Comparaison entre P r_Compact_1 et la méthode de préambule de sous-bande dans [5],LF F T = 256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125 V.14 Structure de préambule dans le domaine fréquentiel sur chaque antenne d’émission - P r_Compact_2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 V.15 Performances de la synchronisation temporelle de la méthode de préambule compact P r_Compact_2, LF F T = 1024 . . . . . . . . . . . . . . . . . . . . 126 V.16 Performances de la synchronisation temporelle de la méthode de préambule compact P r_Compact_2, LF F T = 512 . . . . . . . . . . . . . . . . . . . . 127 V.17 Comparaison entre P r_Compact_2 et la méthode de préambule de sous-bande dans [5], LF F T = 256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 V.18 Structure de préambule dans le domaine fréquentiel sur chaque antenne d’émission - P r_Compact_3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129 V.19 Performances de probabilité de la synchronisation temporelle de la méthode de préambule compact P r_Compact_3, LF F T = 1024 . . . . . . . . . . . . 130 V.20 Performances de probabilité de la synchronisation temporelle de la méthode de préambule compact P r_Compact_3 (LF F T = 512) . . . . . . . . . . . . 130 V.21 Comparaison entre P r_Compact_3 et la méthode de préambule de sous-bande dans [5], LF F T = 256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131V.22 Structure de préambule dans le domaine fréquentiel sur chaque antenne d’émission - P r_Compact_4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 V.23 Performances de probabilité de la synchronisation temporelle de la méthode de préambule compact P r_Compact_4 (LF F T = 1024) . . . . . . . . . . . . 133 V.24 Performances de probabilité de la synchronisation temporelle de la méthode de préambule compact P r_Compact_4 (LF F T = 512) . . . . . . . . . . . . 133 V.25 Comparaison entre P r_Compact_4 et la méthode de préambule de sous-bande dans [5], LF F T = 256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134 V.26 Comparaison entre les quatres méthodes de préambule compact, LF F T = 1024, MIMO-OFDM 2 × 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 V.27 Comparaison entre les quatres méthodes de préambule compact, LF F T = 1024, MIMO-OFDM 4 × 4 . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 V.28 Structure générale de préambule de (Z_P ad_1) dans le domaine fréquentiel . 137 V.29 Performances de probabilité de la synchronisation temporelle de la méthode de zero padding Z_P ad_1, LF F T = 1024 . . . . . . . . . . . . . . . . . . . 138 V.30 Performances de la synchronisation temporelle de la méthode de zero padding Z_P ad_1, LF F T = 512 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138 V.31 Comparaison entre la méthode de zero padding Z_P ad_1 et la méthode de préambule de sous-bande dans [5], LF F T = 256 . . . . . . . . . . . . . . . . 139 V.32 Structure générale du préambule de synchronisation de la méthode de zéro padding Z_P ad_2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 V.33 Performances de la synchronisation temporelle de la méthode de zero padding Z_P ad_2, LF F T = 1024 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 V.34 Performances de la synchronisation temporelle de la méthode de zero padding Z_P ad_2, LF F T = 512 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 V.35 Comparaison entre Z_P ad_2 et la méthode de préambule de sous-bande dans [5], LF F T = 256 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143ACRONYM 3GPP 3rd Generation Partnership Project AWGN Additive White Gaussian Noise BLAST Bell Laboratories Layered Space-Time CAN Convertisseur Analogique Numérique CAZAC Constant Amplitude Zero AutoCorrelation CDMA Code Division Multiplexing Systems CFO Carrier Frequency Offset CNA Convertisseur Numérique Analogique CP Cyclic Prefix DAB Digital Audio Broadcasting DFT Discrete Fourier Transform DS-CDMA Direct Sequence-Code Division Multiple Access DTMB Digital Terrestrial/Television Multimedia Broadcasting DVB Digital Video Broadcasting FFT Fast Fourier Transform GCL Generalized Chirp-Like GI Guard Interval GPS Global Positioning System HSPA+ evolved High-Speed Packet Access ICI Inter-Carrier Interference IDFT Inverse Discrete Fourier Transform IFFT Inverse Fast Fourier TransformISI Inter-Symbol Interference LAN Local Area Network LS Loosely Synchronous LTE Long Term Evolution MAI Multiple Access Interference MIMO Multiple Input and Multiple Output MMSE Minimum Mean Squared Error MRRC Maximal Ratio Receive Combining MSE Mean Square Error NO-STBC Non Orthogonal Space-Time Block Codes O-STBC Orthogonal Space-Time Block Codes OFDM Orthogonal Frequency Division Multiplexing PAPR Peak-to-Average Power Ratio PN Pseudo Noise Sequence PSK Phase Shift Keying Q-STBC Quasi-orthogonal Space-Time Block Codes QAM Quadrature Amplitude Modulation QPSK Quadrature Phase Shift Keying RFO Residual Frequency Offset STBC Space-Time Block Codes STC Space Time Code STTC Space-Time Trellis Codes SUI Stanford University Interim UPSP Unequal Period Synchronization Patterns WLAN Wireless Local Area Network Wi-Fi WIreless FIdelity WiMax Worldwide Interoperability for Microwave Access ZCZ Zero Correlation Zone ZF Zero ForcingNOTATION Symbole Description Ts Durée d’un symbole OFDM (sans CP) Td Durée de données dans un symbole OFDM PSY NC Probabilité d’acquisition de synchronisation temporelle Nsc Nombre de sous-porteuses ∆f Espacement minimal entre les sous-porteuses pour garder l’orthogonalité Tg Durée du préfixe cyclique Ttot Durée totale d’un symbole OFDM Gk Coefficient d’égalisation Hk Réponse fréquentielle du canal xk Symboles complexes modulés Ti Antenne i d’émission Rj Antenne j de réception fk Fréquence de sous-porteuses si(t) Signal OFDM transmis fc Fréquence centrale du signal fe Fréquence d’échantillonage τmax Délai maximum de propagation dans un canal à trajets multiples r(t) Signal OFDM reçu w(t) Bruit blanc additif gaussien (AWGN) Nt Nombre d’antennes à l’émissionNr Nombre d’antennes en réception (.) † Opération de transconjugué H Matrice du canal MIMO N0 Densité spectrale de puissance monolatérale du bruit blanc S Matrice du codeur d’Alamouti I Matrice identité Vs Vecteur des signaux transmis Vr Vecteur des signaux récus Vw Vecteur de AWGN Lij Nombre total de trajets multiples entre Ti et Rj lij Trajet entre Ti et Rj αlij Gain du trajet lij θlij Phase du trajet lij Tlij Retard du trajet lij Fetx Fréquence d’échantillonnage à l’emission Ferx Fréquence d’échantillonnage à la réception Fptx Fréquence porteuse à l’emission Fprx Fréquence porteuse à la réception Rxx Fonction d’autocorrélation Rxy Fonction d’intercorrélation ⊗ Ou-exclusif W H Matrice Walsh-Hadamard xu Préambule de synchronisation dans le domaine temporel Xu Préambule de synchronisation dans le domaine fréquentiel Fm Nombres de Fermat LCP Taille du CP Lpr Taille du préambule LF F T Taille de FFT/IFFT LC Taille de la séquence de synchronisationseqj Séquence locale sur Rj Lseq Taille de la séquence locale seqj ˆindk Estimation de la synchronisation temporelle (.) ∗ Operation du conjugué P r_Court_1 Première méthode de préambule court P r_Court_2 Deuxième méthode de préambule court P r_Compact_1 Première méthode de préambule compact P r_Compact_2 Deuxième méthode de préambule compact P r_Compact_3 Troisième méthode de préambule compact P r_Compact_4 Quatrième méthode de préambule compact Z_P ad_1 Première méthode de zéro padding Z_P ad_2 Deuxième méthode de zéro padding thb Seuil de détection estiméCHAPITRE I INTRODUCTION GÉNÉRALE La présente thèse s’est déroulée dans le cadre de la collaboration entre l’université Libanaise et le réseau UT-INSA, dont l’objectif est de former par la recherche des doctorants Libanais dans les laboratoires de l’Université Libanaise et des établissements des réseaux UT et INSA. Le programme porte sur la mise en place de cotutelles de thèse. Les travaux de recherche sont réalisés dans les laboratoires de l’Université Libanaise et du réseau UT-INSA selon un principe d’alternance qui est défini dans la convention de cotutelle de thèse signée entre l’université Libanaise et l’Etablissement du réseau UT INSA qui accueille le doctorant. Dans ce contexte, cette thèse en cotutelle s’est effectuée entre le laboratoire IETR de l’INSA de Rennes et le groupe GET de l’université Libanaise. Elle s’articule autour des systèmes MIMO-OFDM. Ces systèmes sont équipés de plusieurs antennes d’émission et de plusieurs antennes de réception, afin d’augmenter soit la capacité de Shannon associée aux traditionnels systèmes SISO (Single Input / Single Output), soit accroître la fiabilité. L’évolution rapide dans les systèmes de communications sans-fil et l’utilisation de téléphone mobile, les services satellite, l’internet sur les réseaux sans fil et les réseaux locaux ont besoin de débit de données très élevé et d’une grande 1CHAPITRE I. INTRODUCTION GÉNÉRALE fiabilité. Ces débits ont augmenté rapidement dans les nouvelles applications de transmission de données de nouvelle génération. Pour répondre aux contraintes de la limitation du spectre disponible, les systèmes à porteuses multiples possèdent également une haute efficacité spectrale à cause de l’orthogonalité et le débit total s’approche du débit de Nyquist. Toutefois, le débit maximum atteignable est limité par la capacité de Shannon. La technique de multiplexage par répartition orthogonale de la fréquence (Orthogonal Frequency Division Multiplexing (OFDM)) est devenue incontournable dans les systèmes de transmission sans fil. L’OFDM a été adopté dans plusieurs normes sans fil telles que les systèmes de radiodiffusion numérique terrestre (Digital Audio Broadcasting (DAB)), la télédiffusion numé- rique terrestre (Digital Video Broadcasting-Terrestrial (DVB-T)), la norme IEEE 802.11a/g / Wi-Fi [1] et le réseau local (Local Area Network (LAN)) de norme IEEE 802.16a/WiMax [2]. Il est également utilisé dans les systèmes mobiles sans fil MC-HSPA (Multi Carrier-High Speed Packet data Access) de troisième géné- ration, et dans les réseaux mobiles de nouvelle génération (Long Term Evolution (LTE)) et 4G. D’autre part, l’approche du système de transmission à multi-entrées/multisorties (Multiple Input-Multiple Output (MIMO)), peut produire des gains importants, à la fois, pour les liens et les capacités du réseau, sans transmission de puissance supplémentaire ou sans consommation de bande passante supplémentaire. Des données identiques sont codées et transmises par différentes antennes, ce gain de diversité est utilisé pour combattre les évanouissements du canal et pour augmenter les performances au niveau de la réception. L’autre cas d’utilisation des techniques MIMO est celui du gain en capacité, différentes données sont transmises sur différentes antennes pour augmenter le débit de transmission. Les signaux transmis subissent des réfractions et diffractions causées par les arbres, les bâtiments, les mouvements de personnel, les véhicules et les autres 2équipements qui se déplacent dans l’environnement de transmission. Ces signaux reçus sont atténués et affectés par les différents canaux de transmission. Dans les systèmes OFDM et plus généralement dans les systèmes MIMOOFDM, la synchronisation est une question importante. Elle se divise en deux parties, la synchronisation temporelle et la synchronisation fréquentielle. La synchronisation temporelle se fait, d’une part par la synchronisation grossière qui consiste à estimer le début de chaque trame reçue, et d’autre par la synchronisation fine qui détecte le début de chaque symbole OFDM dans la trame reçue. Le principe de la synchronisation fréquentielle est de trouver le déphasage de fré- quence entre les fréquences à l’émission et à la réception. Une erreur de synchronisation entraîne la perte de l’orthogonalité des sousporteuses du début de trames reçues et donc une dégradation de la performance du système. C’est pourquoi il est important d’avoir un algorithme de synchronisation robuste à la réception, et de connaître son effet sur les performances du système. Ce document est divisé en quatre chapitres. Dans le premier chapitre, une brève introduction des techniques de transmission OFDM et MIMO-OFDM est présentée. Les systèmes OFDM consistent à diviser la bande passante en plusieurs sous-porteuses orthogonales. L’insertion d’un préfixe cyclique (Cyclic Prefix (CP)), dans un système OFDM, permet d’éviter l’interférence entre symboles (Inter Symbol Interference (ISI)) et l’interférence entre porteuses (Inter Carrier Interference (ICI)). Les modulateur et démodulateur OFDM sont réalisés par les deux fonctions IFFT (Inverse Fast Fourier Transform) et FFT (Fast Fourier Transform) respectivement. Dans la deuxième partie de ce chapitre, la technique et les schémas d’implémentations du système MIMO, basés 3CHAPITRE I. INTRODUCTION GÉNÉRALE sur la technologie de réseaux d’antennes à l’émission et à la réception sont introduits. Ensuite, la mise en oeuvre de la combinaison MIMO-OFDM est présentée. Nous expliquerons finalement le problème de synchronisation. Dans tout système de communication, les émetteurs et les récepteurs doivent être synchronisés au niveau de la couche physique avant toute analyse des données par les applications. Un format spécial de séquences est généralement utilisé pour la synchronisation. Ces séquences sont appelées séquences de synchronisation. Dans le deuxième chapitre, nous évoquons les différents types de séquences de synchronisation pour les systèmes MIMO-OFDM. Nous comparons les performances de ces séquences au niveau de leurs fonctions d’autocorrélation et d’intercorrélation. Le troisième chapitre est consacré à la proposition de nouvelles méthodes de synchronisation temporelle. Un préambule de synchronisation est ajouté au dé- but de chaque trame de données. Plusieurs méthodes basées sur les formes de séquences sont discutées. A la réception, et dans un canal à trajets multiples, une fonction d’autocorrélation ou d’intercorrélation est appliquée pour estimer le pic de la synchronisation temporelle. Le quatrième et dernier chapitre concerne l’analyse des performances des mé- thodes proposées, à travers les résultats de simulations de la probabilité d’acquisition de synchronisation. Une comparaison des résultats des méthodes proposées avec ceux des méthodes existantes est effectuée. 4Bibliographie [1] Institute of Electrical and Electronics Engineers, IEEE 802.11g : Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications : Further Higher Data Rate Extension in the 2.4 GHz Band, 2003. [2] Institute of Electrical and Electronics Engineers, IEEE 802.16a : Air Interface for Fixed and Mobile Broadband Wireless Access Systems : Medium Access Control Modifications and Additional Physical Layer Specifications for 2-11 GHz, Apr. 2003. 5CHAPITRE I. INTRODUCTION GÉNÉRALE 6CHAPITRE II CONTEXTE DE L’ÉTUDE : SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES Sommaire II.1 La technique OFDM . . . . . . . . . . . . . . . . . . . . . . 11 II.1.1 Chaîne de transmission d’un système OFDM . . . . . 12 II.1.2 Expression du signal OFDM . . . . . . . . . . . . . . 14 II.1.3 Préfixe cyclique (CP) . . . . . . . . . . . . . . . . . . 16 II.1.4 Avantages et inconvénients de l’OFDM . . . . . . . . 17 II.1.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . 18 II.2 La technique MIMO . . . . . . . . . . . . . . . . . . . . . . 19 II.2.1 Principe de la technique MIMO . . . . . . . . . . . . 19 II.2.2 Codage temps-espace (STC) . . . . . . . . . . . . . . 21 II.3 La combinaison MIMO-OFDM . . . . . . . . . . . . . . . 24 II.3.1 Canal MIMO . . . . . . . . . . . . . . . . . . . . . . 25 II.3.2 Conclusion . . . . . . . . . . . . . . . . . . . . . . . 28 II.4 La synchronisation . . . . . . . . . . . . . . . . . . . . . . . 28 II.4.1 La synchronisation fréquentielle . . . . . . . . . . . . 29 II.4.2 La synchronisation temporelle . . . . . . . . . . . . . 32 II.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 7CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES Depuis leur développement dans les années 1990, les techniques de transmissions multi-porteuses, encore appelées couramment OFDM, ont donné lieu à de nombreux standards de communications, qu’ils soient filaires ou sans fil. Ainsi, cette technique est-elle utilisée par les systèmes de télédiffusion numérique terrestre (Digital Video Broadcasting (DVB)-T), par la norme IEEE 802.11a/g (WIreless FIdelity (Wi-Fi)) [1, 2], par la norme IEEE 802.16 a (Worldwide Interoperability for Microwave Access (WiMax)) [3]. L’OFDM est utilisé également dans les systèmes mobiles sans fil MC-HSPA (Multi Carrier-High Speed Packet data Access) de troisième génération et dans les réseaux mobiles de nouvelle génération (LTE). Ce principe de multiplexage fréquentiel a évolué dans les années 60 vers la parallélisation en fréquence des informations à transmettre [4]. Les données de durée Td très courte sont réparties sur plusieurs canaux fréquentiels modulés à bas débit. Ces canaux correspondent à un ensemble de Nsc sous-porteuses orthogonales entre elles. Les symboles transmis sur chaque sous-porteuse ont une durée T s = Nsc.Td, où Ts est la durée d’un symbole. Pour que la technique OFDM soit efficace, il est important d’assurer la noninterférence entre sous-porteuses, en limitant le recouvrement entre les sous-canaux. Pour cela, l’orthogonalité entre les sous-porteuses sera garantie par la fonction porte de mise en forme utilisée comme support temporel. Cette fonction porte engendre un spectre en sinus cardinal pour chacune des sous-porteuses. La condition d’orthogonalité est obtenue en choisissant un espacement entre les sous-porteuses minimal (∆f = 1 Ts ). 8Depuis une dizaine d’année, les applications basées sur internet (IP) se sont fortement développées et les systèmes de télécommunications sont soumis à une demande accrue en débit et qualité de service. Pour les communications sans fil, une nouvelle technique est apparue et est basée sur l’utilisation de plusieurs antennes, indépendantes ou non, tant en émission qu’en réception. Cette technique MIMO, pour Multiple-Input/Multiple-Output, permet d’envoyer des informations en parallèle depuis plusieurs antennes d’émission et de les combiner à la réception, pour accroître le débit ou assurer de meilleures performances. Ce concept a été introduit par J.Winters [5] en 1987 pour des systèmes de communications basiques, puis les laboratoires "Bell Labs" ont élaboré un démonstrateur BLAST (Bell Laboratories Layered Space-Time) en 1996 exhibant des efficacités spectrales de l’ordre de 40 bit/s/Hz avec un réseau d’antennes 8×8. Les études sur ces systèmes ont montré un gain non négligeable de capacité du canal [6], permettant d’atteindre les débits requis par les applications de type IP. Les systèmes actuels, qui ne sont pourvus que d’une antenne à l’émission et à la réception (Single Input/Single Output (SISO)) ne tirent parti que de la diversité temporelle et/ou fré- quentielle. Les systèmes MIMO permettront de profiter d’un ordre supplémentaire de diversité apporté par cette dimension spatiale. Plusieurs schémas d’implémentations du système MIMO sont possibles : ils diffèrent par la procédure utilisée à l’émission de données, et par le nombre d’antennes utilisées au niveau de l’émetteur ou du récepteur. Afin d’optimiser la diversité spatiale du canal de transmission et de réduire les effets d’évanouissements du canal, les techniques mises en œuvre concernent le codage en blocs temps-espace (Space-Time Block Codes (STBC)) [7, 8] et les codes temps-espace de treillis (Space Time Trellis Codes (STTC)) [9]. Il semble alors naturel de combiner les deux techniques OFDM et MIMO, afin de converger vers un système MIMO-OFDM. Notons que la combinaison entre 9CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES ces techniques est présentée dans la norme 802.11n [10]. Cette combinaison permet d’exploiter les diversités temporelles, fréquentielles et spatiales. En effet, les codes temps-espace tirent profit de la diversité spatiale, mais ne sont pas conçus pour exploiter celle des canaux sélectifs en fréquence. Pourtant, les futurs systèmes de communications poussés par les besoins en débit, utilisent des bandes de fréquence de plus en plus importantes, où le canal est alors sélectif en fréquence. Une façon d’exploiter la diversité fréquentielle dans le contexte MIMO est de recourir à l’OFDM et de le combiner au codage temps-espace (Space Time Code (STC)). Suivant la nature du codage, plusieurs associations sont réalisables et le lecteur pourra se référer à [11] pour une présentation assez complète des combinaisons. Parmi les études à l’IETR, nous pouvons citer les travaux de thèse de J. M. Auffray [12] et C. LeGuellaut [13]. Dans tous les systèmes de communications sans fil et surtout dans les systèmes OFDM et MIMO-OFDM, la synchronisation est primordiale. Les récepteurs ne connaissent pas le début et la fin des symboles OFDM, donc le placement de la fenêtre FFT. Par ailleurs, ils disposent de leur propre fréquence d’échantillonnage, asynchrone avec celle de l’émetteur. Ces deux points font apparaître deux notions de synchronisation : temporelle et fréquentielle. Une erreur de synchronisation temporelle en réception peut entraîner la perte de l’orthogonalité des sous-porteuses. C’est pourquoi il est important d’avoir un algorithme de synchronisation robuste et de connaître son effet sur les performances du système. Dans ce chapitre, nous donnerons d’abord un court rappel des techniques de modulation OFDM et MIMO, tout en décrivant leurs architectures. Ensuite, la mise en œuvre de la combinaison MIMO-OFDM est présentée. Nous expliquerons finalement le problème de synchronisation. 10II.1. LA TECHNIQUE OFDM II.1 La technique OFDM Dans la technique OFDM, la bande de fréquence disponible est divisée en plusieurs sous-canaux orthogonaux, porteurs de symboles indépendants. Le signal OFDM est la somme de tous ces symboles de données portés par les sousporteuses. Comme chacune des porteuses occupe une bande très étroite, les distorsions d’amplitude et de retard introduites par le canal sont quasi plates et peuvent être facilement égalisées. Chang a montré dans [4] qu’un certain nombre de porteuses portant chacune un débit b et qui sont espacées en fréquence de b/2 pourraient être transmises sans interférences entre symboles (ISI) et entre porteuses (ICI) et que le taux de transmission peut atteindre la limite de Nyquist [14] lorsque le nombre de sous-canaux est très grand. Saltzberg [15] a analysé les performances des systèmes OFDM et conclut que l’efficacité d’un système OFDM doit s’appuyer sur la réduction de l’interférence entre les porteuses adjacentes. Afin de réaliser simplement le multiplex fréquentiel orthogonal, Saltzberg et Weinstein [16] ont montré que l’utilisation de la transformée de Fourier discrète (Discrete Fourier Transform (DFT)) permet de produire facilement le symbole OFDM porté par Nsc de sous-porteuses orthogonales. Par ailleurs, les perturbations du canal de propagation induisent, entre autre, la perte d’orthogonalité entre les sous-porteuses et l’apparition d’interférences entre symboles OFDM, ou ISI, dues aux trajets multiples. Pour éliminer celles-ci, une solution consiste à accroître le nombre Nsc de sous-porteuses pour augmenter la durée symbole Ts. Cependant cette technique se heurte à différentes contraintes technologiques ou environnementales. Une autre technique consiste à l’insertion d’un intervalle de garde [17] ou préfixe cyclique (CP) d’une durée Tg, supérieure ou égale à l’étalement maximal de la réponse impulsionnelle du canal. Le CP est en général une copie de la dernière partie d’un symbole OFDM. Dès lors la partie utile Ts de chaque symbole OFDM ne sera plus affectée par les ISI. La durée totale 11CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES Ttot du symbole OFDM se voit donc augmentée et devient égale Ttot = Ts + Tg. II.1.1 Chaîne de transmission d’un système OFDM La chaîne de transmission dans les systèmes OFDM se divise en deux parties, l’émetteur et le récepteur. A l’émission, les bits de la source binaire sont modulés et génèrent des symboles complexes prenant leurs valeurs dans un alphabet fini correspondant à une modulation numérique donnée comme la modulation d’amplitude en quadrature (Quadrature Amplitude Modulation (QAM)) ou la modulation par sauts de phase (Phase-shift keying (PSK)). Ces symboles xk sont répartis sur les Nsc sous-porteuses. Les sous-porteuses dans le domaine fréquentiel sont espacées de ∆f = 1 Ts . La transformée de Fourier discrète inverse (Inverse Fast Fourier Transform (IFFT) ou Inverse Discrete Fourier Transform (IDFT)) permet de générer le signal dans le domaine temporel constitué de Nsc échantillons. En général, toutes les Nsc sous-porteuses sont modulées en utilisant les symboles de données, mais certaines sous-porteuses sont des porteuses pilotes. Les pilotes (Estimation Pilots (EP)) sont connus au niveau des émetteurs et des récepteurs et sont utilisés pour l’estimation du canal. Le nombre de pilotes insérés entre les données dépend du canal et de la précision requise pour l’estimation de canal. Les symboles pilotes peuvent être répartis sur plusieurs symboles OFDM consécutifs. Après la fonction IDFT, le préfixe cyclique (CP) de longueur Tg est ajouté pour éliminer l’interfé- rence entre symboles tout en gardant l’orthogonalité entre les sous-porteuses. Le symbole OFDM est alors transmis à l’étage radio-fréquence comportant la conversion numérique-analogique et la translation sous fréquence porteuse. La figure II.1 représente le schéma général d’un système de transmission OFDM en bande de base. 12II.1. LA TECHNIQUE OFDM Fig. II.1 – Schéma bloc d’un système de transmission OFDM En réception, le CP qui peut présenter de l’interférence avec des symboles adjacents est enlevé et le symbole OFDM est remis au démodulateur. Celui-ci réalise une transformée de Fourier (FFT) qui transpose les symboles OFDM, porteurs de données utiles et/ou de pilotes, du domaine temporel au domaine fréquentiel. En raison des distorsions induites par le canal de transmission, la correction de celui-ci consiste en une pondération sur chaque sous-porteuse. Les coefficients de pondération sont obtenus grâce aux symboles pilotes, dont la valeur est connue au niveau du récepteur. L’égalisation de canal consiste, à partir des coefficients du canal H(k), à générer les coefficients d’égalisation permettant de compenser les effets du canal. L’égalisation est effectuée dans le domaine fréquentiel. Il existe différentes techniques d’égalisation, les plus utilisées étant les techniques de for- çage à zéro (Zero Forcing (ZF)) et la méthode des moindres carrés (Minimum Mean Squared Error (MMSE)) [18]. 13CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES L’égaliseur ZF permet d’annuler complètement la dispersion apportée par le canal. Il applique l’inverse de la réponse fréquentielle du canal Hk. Le coefficient Gk d’égalisation s’exprime : Gk = 1 Hk = H∗ k |Hk| 2 (II.1) Ainsi, la combinaison de canal et l’égaliseur ZF donne une réponse fréquentielle uniforme et une phase linéaire Gk ∗ Hk = 1. Cependant, l’égaliseur ZF ignore la présence de bruit blanc additif gaussien (Additive White Gaussian Noise (AWGN)). De plus, en présence d’évanouissements profonds, il amplifie le terme de bruit, dégradant alors les performances globales du système. La technique MMSE nécessite une estimation du rapport signal à bruit (Signalto-Noise Ratio (SNR)) sur chacune des sous-porteuses. Cette technique tient compte du rapport signal à bruit dans le calcul du coefficient d’égalisation. Le coefficient d’égalisation de MMSE s’exprime par : Gk = H∗ k |Hk| 2 + 1 γk avec Hk 6= 0 (II.2) Le coefficient γk est calculé à partir de l’estimation du rapport signal à bruit par sous-porteuse, induisant une complexité supplémentaire. Après l’égalisation, les symboles de données sont démodulés selon la technique de modulation numérique utilisée à l’émission afin de récupérer les bits transmis. II.1.2 Expression du signal OFDM Les symboles complexes xk sont répartis sur les Nsc sous-porteuses de fré- quences fk = f0 + k∆f = f0 + k/Ts, k ∈ [0, Nsc − 1] avec f0 la plus petite 14II.1. LA TECHNIQUE OFDM sous-porteuse. L’espacement entre les sous-porteuses est ∆f = 1 Ts , cet espacement est le critère d’orthogonalité pour le système OFDM. Le signal OFDM peut s’exprimer soit dans le domaine temporel, soit dans le domaine fréquentiel. L’expression normalisée du signal OFDM transmis sur l’antenne d’émission Ti est donnée par : si(t) = 1 p Nsc N Xsc−1 k=0 ℜe  xkΠ(t)e j.2π.fk.t (II.3) où 1 p Nsc est le terme de normalisation en puissance. L’équation II.3 s’exprime : si(t) = 1 p Nsc N Xsc−1 k=0 ℜe    xkΠ(t)e j2π  f0+ k Ts  t    (II.4) Soit fc la fréquence centrale du signal, telle que fc = f0 + Nsc 2 . 1 Ts , on obtient pour expression de s : si(t) = ℜ    Π(t)e j2πfct N Xsc−1 k=0 p xk Nsc e j2π  k− Nsc 2  t Ts    (II.5) qui peut encore s’exprimer par : si(t) = ℜ  X(t)Π(t)e j2πfct (II.6a) où X est l’enveloppe complexe du signal modulé et s’écrit : Xi(t) = N Xsc−1 k=0 p xk Nsc e j2π  k− Nsc 2  t Ts (II.7) Le spectre de Xi(t) est compris dans l’intervalle [−Nsc/2Ts, Nsc/2Ts]. D’après le théorème de Shannon, la fréquence d’échantillonnage pour construire le signal Xi est fe = Nsc/Ts. L’équation II.7 peut s’exprimer : 15CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES Xi  nTs Nsc  = N Xsc−1 k=0 p xk Nsc e j2πn k − Nsc/2 Nsc  (II.8a) Xi  nTs Nsc  = (−1)n N Xsc−1 k=0 p xk Nsc e j2πn k Nsc | {z } IFFT (II.8b) L’équation II.8b montre qu’un modulateur OFDM est réalisé par une transformée de Fourier inverse (IFFT) de taille Nsc. La sortie de l’IFFT est un signal discret dans le domaine temporel avec un intervalle d’échantillonnage Ts/Nsc où Ts est la durée d’un symbole OFDM sans l’intervalle de garde (CP). A la ré- ception, une transformation de Fourier discrète directe (FFT) du signal reçu est réalisée pour retrouver les symboles émis. II.1.3 Préfixe cyclique (CP) Comme précisé précédemment, il est nécessaire de rajouter le CP de durée Tg après l’opération de IFFT. Le CP est une copie de la dernière partie du symbole OFDM comme indique la figure II.2. Pour éliminer complètement les interfé- rences entre symboles, la taille du CP doit être plus grande que le délai maximum (τmax) de propagation dans un canal à trajets multiples soit Tg ≥ τmax. Notons qu’après son insertion, l’espacement entre les sous-porteuses est toujours ∆f = 1/Ts, alors que la durée des symboles OFDM est Ttot = Ts + Tg, ce qui entraîne la perte d’orthogonalité entre les sous-porteuses. Au niveau du récepteur, la condition d’orthogonalité entre les sous-porteuses sera restaurée si durant la fenêtre rectangulaire de durée Ts, chacune des composantes sinusoïdales du symbole OFDM comprend un nombre entier de périodes même en présence d’un canal dispersif en temps. La suppression de l’intervalle de garde permet de restituer l’orthogonalité entre les sous-porteuses. De plus, comme l’intervalle de 16II.1. LA TECHNIQUE OFDM Préfixe cyclique Données utiles Tg Ts Ttot Tg Temps de données utiles Temps total du symbole Temps du CP ߬௠௔௫ Trajets multiples Fig. II.2 – Illustration de la protection contre les interférences entre symboles OFDM assurée par le CP garde est la recopie des échantillons de fin de symbole OFDM, cet intervalle peut être exploité pour la synchronisation temporelle du signal OFDM. Le canal de propagation sera modélisé par sa réponse impulsionnelle h(t). Le signal reçu est le signal transmis convolué avec la réponse impulsionnelle du canal auquel se rajoute du bruit. Soit r(t) le signal OFDM reçu, ce signal est présenté dans l’équation II.9 : r(t) = s(t) ∗ h(t) + w(t) (II.9) où w(t) est le bruit blanc additif gaussien (AWGN). II.1.4 Avantages et inconvénients de l’OFDM Les avantages de la technique OFDM sont nombreux : 1. Le modulateur et le démodulateur peuvent être réalisés en utilisant une IFFT et une FFT respectivement. 17CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES 2. La technique OFDM dispose d’une très grande flexibilité tant dans l’allocation de bits par sous-porteuse que dans l’allocation de débit dans un contexte multi-utilisateurs. 3. Les interférences entre symboles (ISI) et entre porteuses (ICI) peuvent être évitées à l’émission et corrigées en réception. 4. Les techniques multi-porteuses sont robustes en termes d’égalisation. Malgré ces avantages, l’OFDM présente quelques points faibles : 1. L’OFDM est sensible au décalage fréquentiel qui peut causer une perte d’orthogonalité entre les sous-porteuses. 2. L’OFDM est sensible aux non linéarités des amplificateurs. Le signal peut présenter un PAPR (Peak to Average Power Ratio) très élevé, engendrant la saturation des blocs analogiques [19]. II.1.5 Conclusion Le principe de la technique OFDM consiste à répartir un flux de données à haut débit sur plusieurs flux à faible débit. Ces derniers sont transmis simultanément sur des sous-porteuses orthogonales. La somme de ces sous-porteuses constitue le signal OFDM transmis. Le signal transmis se propage dans un canal à trajets multiples et subit des distorsions. A la réception, des versions décalées du même signal sont reçues avec des interférences entre symboles OFDM. Pour éliminer cette interférence, un préfixe cyclique (CP) de durée supérieure à l’étalement maximal des retards du canal est ajouté au début de chaque symbole OFDM à l’émission. En réception, les opérations inverses sont réalisées, ainsi que les opérations d’estimation et d’égalisation du canal. 18II.2. LA TECHNIQUE MIMO II.2 La technique MIMO Les systèmes multi-antennes (MIMO) ont été introduits par Jack Winters [5] pour les laboratoires Bell. Les systèmes MIMO [20] utilisent un réseau d’antennes à la fois en émission et en réception. Le principe du MIMO s’est fortement dé- veloppé dans les communications sans fil car il peut augmenter le débit de transmission sans accroître la bande passante ou la puissance d’émission. Il atteint cet objectif en répartissant la puissance d’émission sur les différentes antennes. Deux approches sont possibles pour la mise en œuvre de systèmes MIMO : l’approche dite de "multiplexage spatial" et l’approche dite de "diversité spatiale". Dans le premier cas, on cherche à augmenter le débit, alors que le second s’attache à minimiser le taux d’erreur binaire (TEB). Ces systèmes MIMO ont été proposés dans plusieurs normes de communication sans fil modernes telles que IEEE 802.11n (Wi-Fi), la 4G, le LTE, la 3GPP (3rd Generation Partnership Project), WiMax et HSPA+ (evolved High-Speed Packet Access). II.2.1 Principe de la technique MIMO Les techniques MIMO utilisent un réseau d’antennes à l’émission et à la ré- ception. Ces techniques présentent de bonnes performances dans les canaux à trajets multiples, mais ces derniers provoquent aussi les problèmes des interférences entre les symboles transmis (ISI) [21]. Les techniques MIMO mises en œuvre se divisent en trois catégories : 1. La diversité spatiale MIMO [22, 23] : La diversité spatiale consiste à envoyer le même flux de données simultanément sur les différentes antennes à l’émission. A la réception, plusieurs répliques du signal sont reçues sur chacune des antennes et sont combinées de façon cohérente. Cette combi- 19CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES naison permet de réduire l’atténuation du signal et de compenser les évanouissements introduits par le canal de transmission. Cette diversité nécessite l’usage de codes temps-espace comme les codes d’Alamouti [7] dont le rendement est de 1. La diversité spatiale présente une bonne efficacité quand les sous-canaux MIMO sont décorrélés les uns des autres. De plus, quand le nombre d’antennes à l’émission augmente, la puissance du signal reçu à un instant donné augmente, améliorant ainsi la détection du signal. 2. Le multiplexage spatial MIMO [22, 23] : Le multiplexage spatial transmet les différents flux de données sur les différentes antennes d’émission afin d’augmenter les débits de transmission du système MIMO. La capacité de transmission d’un système de transmission est définie comme le débit de transmission maximum possible offrant une probabilité d’erreur très faible [24]. La capacité du canal d’un système MIMO est définie par l’équation II.10 [6, 20] : C = log2  det  INr + ρ Nt HH†  bps/Hz. (II.10) avec – Nt : Le nombre d’antennes à l’émission. – Nr : Le nombre d’antennes en réception. – INr : Matrice d’identité Nr × Nr. – (.) † : L’opération de transconjugué. – H : La matrice du canal MIMO Nt × Nr. – ρ = P No.B : Le rapport signal-à-bruit sur une antenne de réception. – P : La puissance totale transmise. – N0 : La densité spectrale de puissance monolatérale du bruit blanc (AWGN). Les signaux reçus sont décodés et combinés pour reformer le message transmis. Comme pour la diversité spatiale MIMO, les sous-canaux de propagation doivent être décorrélés. 20II.2. LA TECHNIQUE MIMO 3. Le MIMO - Beamforming [22, 23] : La technique Beamforming peut être utilisée avec n’importe quel système d’antennes et notamment avec les systèmes MIMO. Cette technique est utilisée pour créer une certaine directivité des antennes d’émission afin d’orienter le faisceau et répondre aux conditions requises telles que l’amplitude et la phase. Notre étude s’intéresse plus particulièrement à la technique de diversité spatiale. Cette technique est basée sur le codage temps-espace présenté dans la section suivante. II.2.2 Codage temps-espace (STC) Le codage temps-espace est utilisé dans les communications sans fil pour transmettre simultanément un flux de données unique sur plusieurs antennes d’émission à des instants différents. L’objectif de ce codage est d’exploiter les différentes versions reçues de données afin d’améliorer la fiabilité de leur transfert [23]. Les codes temps-espace peuvent être divisés en deux catégories : les codes tempsespace en blocs (STBC) et les codes temps-espace en treillis (STTC). II.2.2.1 Le code temps-espace en blocs (STBC) Le code temps-espace en blocs (STBC) [7, 25] est une stratégie de transmission d’un flux de données dans un système MIMO exploitant la diversité spatiale et accroît la fiabilité de transmission. Ce type de codage est divisé en trois approches [25] principales que sont : les codes temps-espace en blocs orthogonaux (Orthogonal Space-Time Block Codes (O-STBC)), les codes temps-espace en blocs non-orthogonaux (Non Orthogonal Space-Time Block Codes (NO-STBC)) et les codes temps-espace en blocs quasi-orthogonaux (Quasi-orthogonal SpaceTime Block Codes (Q-STBC)) qui appartiennent à la classe des NO-STBC. Les signaux qui sont codés avec l’O-STBC sont orthogonaux les uns aux 21CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES autres. Cette orthogonalité réduit dès lors l’interférence entre les différents signaux transmis et améliore la performance du récepteur qui distingue les différents signaux reçus. Les codes (O-STBC) offrent par ailleurs une faible complexité de décodage et ils sont souvent préférés aux codes en treillis présentés ci-après qui sont plus performants mais plus complexes. Le code d’Alamouti [7] est le premier code O-STBC qui fournit une diversité spatiale maximale sans aucune perte de débit avec deux antennes à l’émission. La matrice du codeur d’Alamouti pour un système MIMO 2 × 2 est donnée par : S =   s1 s2 −s ∗ 2 s ∗ 1   (II.11) Les lignes représentent les instants d’émission (t) et (t+Ts) des symboles (dimension temporelle) et les colonnes représentent les antennes 1 et 2 utilisées pour la transmission de données (dimension spatiale). Au cours de la première transmission, les symboles s1 et s2 sont transmis simultanément sur la première et la deuxième antenne respectivement. Dans la deuxième période de transmission, les symboles −s ∗ 2 et s ∗ 1 sont transmis sur la première et la deuxième antenne d’émission respectivement où "*" représente le conjugué. Les lignes et les colonnes de la matrice S sont orthogonales entre elles, en effet : SS† =   s1 s2 −s ∗ 2 s ∗ 1     s ∗ 1 −s2 s ∗ 2 s1   =   |s1| 2 + |s2| 2 0 0 |s1| 2 + |s2| 2   =  |s1| 2 + |s2| 2  I2 où I2 est une matrice identité 2 × 2. Cette propriété permet au récepteur de détecter s1 et s2 par une opération de traitement de signal linéaire simple. Les 22II.2. LA TECHNIQUE MIMO signaux reçus par l’antenne j aux instants (t + k.Ts), k ∈ {0, 1}, sont notés r k j et s’expriment par : (Se) =    r 1 1 = r1(t) = h1,1(t)s1 + h2,1(t)s2 + w 1 1 (t) r 2 1 = r1(t + Ts) = −h1,1(t + Ts)s ∗ 2 + h2,1(t + Ts)s ∗ 1 + w 2 1 (t) r 1 2 = r2(t) = h1,2(t)s1 + h2,2(t)s2 + w 1 2 (t) r 2 2 = r2(t + Ts) = −h1,2(t + Ts)s ∗ 2 + h2,2(t + Ts)s ∗ 1 + w 2 2 (t) (II.12) où w k j représente le bruit AWGN sur l’antenne j de réception. Pour simplifier la tâche du récepteur lors de la combinaison des signaux reçus r k j , Alamouti dans [7] a proposé que le canal soit invariant sur deux temps-symbole donc les notions de temps (t et t + Ts) disparaissent dans l’équation II.12. Cette équation peut donc être exprimée : (Se) =    r 1 1 = h1,1.s1 + h2,1.s2 + w 1 1 r 2 1 = −h1,1.s∗ 2 + h2,1.s∗ 1 + w 2 1 r 1 2 = h1,2.s1 + h2,2.s2 + w 1 2 r 2 2 = −h1,2.s∗ 2 + h2,2.s∗ 1 + w 2 2 (II.13) A la réception, une recombinaison [7] de signaux reçus est donnée par l’équation II.14. se1 = h ∗ 1,1 .r1 1 + h2,1.(r 2 1 ) ∗ + h ∗ 1,2 .r1 2 + h2,2.(r 2 2 ) ∗ se2 = h ∗ 2,1 .r1 1 − h1,1.(r 2 1 ) ∗ | {z } contribution de l’antenne 1 + h ∗ 2,2 .r1 2 − h1,2.(r 2 2 ) ∗ | {z } contribution de l’antenne 2 (II.14) II.2.2.2 Les codes temps-espace en treillis (STTC) Les codes temps-espace en treillis (STTC) ont été découverts par Vahid Tarokh et al. [9, 26]. Les codes STTC [27–29] servent simultanément pour le codage de canal et le gain en diversité. Considérons le cas général des STTC en utilisant une 23CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES modulation 2 n − P SK et Nt antennes d’émission. Le codeur STTC comprend un bloc d’entrée de n bits et ν blocs mémoires de n bits (2 nν états). A chaque instant t, tous les bits d’un bloc sont remplacés par les n bits du bloc précédent. Le bit k du bloc l est associé aux Nt coefficients multiplicatifs cmi k,l où i ∈ {1, Nt}. Un codeur STTC est ainsi défini par sa matrice génératrice CM comprenant Nt × n(ν + 1) coefficients : CM =           cm1 1,1 · · · cm1 n,1 · · · cm1 1,ν+1 · · · cm1 n,ν+1 . . . . . . cmi 1,1 · · · cmi n,1 · · · cmi 1,ν+1 · · · cmi n,ν+1 . . . . . . cmNt 1,1 · · · cmNt n,1 · · · cmNt 1,ν+1 · · · cmNt n,ν+1           Les symboles générés en sortie du codeur pour l’antenne i sont donnés par l’équation II.15 suivante : x i t = Xn k Xν+1 l b t−l+1 k cmi k,l mod 2n (II.15) L’inconvénient principal de ce type de codage est sa complexité de décodage qui croît de façon exponentielle avec le nombre d’antennes d’émission. II.3 La combinaison MIMO-OFDM Les concepts de MIMO ont été développés depuis de nombreuses années pour les communications sans fil. L’une des premières applications MIMO dans ce contexte a été proposée par Winters [5] en 1984. Winters a proposé cette technique pour une transmission multi-utilisateurs, aboutissant au dépôt de brevet [30] de la technique MIMO. En 1996, Raleigh [31] et Foschini [32] ont proposé de nouvelles approches pour améliorer l’efficacité des systèmes MIMO. 24II.3. LA COMBINAISON MIMO-OFDM Plusieurs paramètres décrivent la qualité d’une liaison de données sans fil, les paramètres fondamentaux sont la vitesse de transmission, la fiabilité de transmission et la portée d’émission. Par conséquent, la vitesse de transmission peut être augmentée en réduisant la portée de transmission et la fiabilité. Cependant, avec la combinaison de systèmes MIMO-OFDM, les trois paramètres fondamentaux peuvent être améliorés en même temps [33, 34]. La technique MIMO peut être combinée avec n’importe quel type de modulation, mais les recherches récentes suggèrent que la combinaison entre les systèmes MIMO et les systèmes OFDM est la plus efficace [33]. La combinaison des techniques MIMO et OFDM a été adoptée dans les communications sans fil [35, 36] en raison des nombreux avantages de l’OFDM [37] et des avantages des systèmes MIMO. A titre d’exemple, la technique MIMOOFDM est utilisée dans la norme IEEE 802.11n [10] de communication sans fil pour augmenter la capacité du canal ainsi que dans la technique LTE [38] et WiMax [39]. La figure II.3 est un schéma simplifié d’un système MIMO-OFDM (2 × 2). Ce schéma montre les positions de blocs STBC et OFDM. II.3.1 Canal MIMO Les antennes de réception reçoivent des différentes versions des signaux émis. Si les antennes d’émission et de réception sont bien espacées alors les signaux re- çus sont suffisamment non-corrélés, cette dé-corrélation peut également être obtenue par l’utilisation d’antennes dont le diagramme de rayonnement crée cette orthogonalité. Il existe donc un canal entre chaque antenne d’émission et chaque antenne de réception. 25CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES Canal MIMO Codeur STBC Modulateur OFDM Modulateur OFDM CNA CNA Symboles Symboles Décodeur STBC Démod. OFDM Démod. OFDM CAN CAN Estimation du canal Fig. II.3 – Schéma simplifié d’un système MIMO-OFDM avec un codage STBC Soient Nt , Nr et Hij le nombre d’antennes d’émission, de réception et la fonction de transfert complexe du canal de transmission entre Ti et Rj respectivement. Cette fonction de transfert est représentée par une matrice de dimension Nt × Nr qui décrit complètement le comportement du canal. Cette fonction est donnée par l’équation II.16 : [H] =        H1,1 H1,2 . . . H1,Nr H2,1 H2,2 . . . H2,Nr . . . . . . . . . . . . HNt,1 HNt,2 . . . HNt,Nr        (II.16) La figure II.4 représente le canal MIMO entre les différentes antennes de transmission. Si Vs représente le vecteur des signaux transmis par les antennes d’émission, Vr représente le vecteur des signaux reçus et Vw le vecteur de AWGN. L’expression du signal reçu est donnée par les équations II.17 et II.18 : Vr = HVs + Vw (II.17) 26II.3. LA COMBINAISON MIMO-OFDM ܰଵ ܰଶ ܰ௧ ܰଵ N2 ݎܰ ℎଵ,ଵ ℎଵ,ଶ ℎଵ,ே௥ ℎே௧,ே௥ ℎே௧,ଵ ℎଶ,ଶ ℎଶ,ଵ Canal MIMO ܰ௧ × ܰ௥ ܰ௧ antennes d’émission ܰ௥ antennes de réception Fig. II.4 – Canal MIMO Nt × Nr        r1 r2 . . . rNr        =        H1,1 H1,2 . . . H1,Nr H2,1 H2,2 . . . H2,Nr . . . . . . . . . . . . HNt,1 HNt,2 . . . HNt,Nr        ×        s1 s2 . . . sNt        +        w1 w2 . . . wNr        (II.18) Le canal entre chaque émetteur/récepteur est un canal à trajets multiples, le nombre de ces trajets multiples est supposé être le même pour tous les canaux MIMO disponibles. L’expression analytique de la réponse impersonnelle du canal Hi,j à trajets multiples donnée par l’équation II.19 : Hi,j (t) = X Lij lij=1 [αlij e −jθ(t)lij ] (II.19) où θ(t)lij est la phase du trajet lij est donnée par l’équation II.20 : θ(t)lij = 2πfcT (t)lij (II.20) 27CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES avec : Lij : Le nombre total de trajets multiples entre Ti et Rj . lij : Le trajet entre Ti et Rj . αlij : Le gain du trajet lij . Tlij : Le retard du trajet lij . Le récepteur doit pouvoir compenser l’effet du canal sur chaque antenne. L’égalisation est combinée au décodage temps-espace. II.3.2 Conclusion Dans cette partie, nous avons présenté la combinaison entre les deux techniques MIMO et OFDM. Les différents signaux transmis par les différentes antennes d’émission peuvent être séparés au niveau des récepteurs. Les systèmes de codage temps-espace sont utilisés pour améliorer la robustesse et la fiabilité du système. Le problème principal dans les systèmes de transmission sans-fil et notamment dans les systèmes MIMO-OFDM est la synchronisation. Les récepteurs doivent résoudre ce problème afin de récupérer les données transmises. Ce problème de synchronisation est présenté dans la section suivante. II.4 La synchronisation La réception des symboles OFDM dans les systèmes MIMO-OFDM peut être décomposée en trois phases : l’estimation du canal multi-trajets, la synchronisation fréquentielle et la synchronisation temporelle. Cette dernière peut être à nouveau divisée en deux parties : la synchronisation de trame et la synchronisation symboles (dans notre cas les symboles OFDM). Dans cette thèse, l’étude porte principalement sur le problème de la synchronisation temporelle dans les 28II.4. LA SYNCHRONISATION systèmes MIMO-OFDM. C’est une question très importante car un mauvais placement de la fenêtre FFT peut conduire à une perte significative de performances. C’est pourquoi il est important d’avoir des algorithmes robustes pour estimer cette synchronisation temporelle afin de détecter le début de chaque symbole OFDM, et ce sur chaque antenne en réception. Dans le cadre du système de transmission MIMO-OFDM, l’émetteur et le ré- cepteur qui sont asynchrones seront synchronisés lors de la réception des diffé- rents symboles OFDM. Parmi les solutions possibles, celles basées sur l’utilisation de séquences ou motifs particuliers sont présentées dans le chapitre III. Dans la littérature, plusieurs méthodes de synchronisation temporelle et fré- quentielle ont été publiées ( [40–49]). Dans la suite de ce paragraphe, nous allons présenter certaines méthodes de synchronisation fréquentielle et temporelle. II.4.1 La synchronisation fréquentielle La synchronisation fréquentielle est l’une des tâches les plus importantes dans les systèmes MIMO-OFDM. A l’émission, le système dispose de sa fréquence d’échantillonnage Fetx permettant de générer les différents échantillons du signal OFDM qui sont ensuite transposés sur la fréquence porteuse Fptx. En réception, le récepteur ne connaît pas la fréquence Fetx, il est par conséquent asynchrone à la fois en fréquence et en phase. Sa fréquence porteuse peut aussi être décalée vis à vis de la fréquence Fptx. Les écarts vont donc engendrer différents types d’erreurs dits de timing ou rythme. II.4.1.1 Le décalage de la fréquence porteuse (CFO) Le décalage de la fréquence porteuse (CFO) représente la différence entre la fréquence porteuse de l’émetteur et celle du récepteur. Nous notons les principales 29CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES sources de CFO : a) Le déphasage entre la fréquence de l’émetteur et du récepteur MIMOOFDM : En raison de la différence de phase entre les fréquences émetteur et récepteur, le signal après modulation sera centré sur une fréquence δf au lieu d’être centré sur DC (0 MHz), où δf = |Fptx − Fprx| comme l’indique la figure II.5. Fréquence 0 Signal en bande de base Fréquence ࢚࢞࢖ࡲ Signal sur porteuse ௙ߜ Fréquence Signal en bande de base Fréquence Signal sur porteuse Démodulation Modulation ࢞࢘࢖ࡲ Fig. II.5 – Décalage de la fréquence porteuse (CFO) b) Effet Doppler : L’Effet Doppler est une autre source du CFO. Dans le cas de récepteurs mobiles, la fréquence porteuse au niveau du récepteur (Fprx) peut varier en raison de l’effet Doppler. c) Le décalage avec la fréquence d’échantillonnage : Le décalage entre les fréquences d’échantillonnage entre la source de données (Fetx) et la destination (Ferx) présente une autre source du CFO. 30II.4. LA SYNCHRONISATION II.4.1.2 Etudes antérieures sur la synchronisation fréquentielle Dans cette section, nous allons présenter quelques méthodes utilisées pour réaliser la synchronisation fréquentielle dans des systèmes MIMO-OFDM. L’étude dans [40] propose une approche pour la synchronisation fréquentielle en se basant sur l’algorithme de maximum de vraisemblance (Maximum-Likelihood (ML)) pour corriger à la fois le CFO et effectuer l’estimation de canal dans un système MIMO-OFDM 2 × 2. Dans cette approche, un préambule est appliqué au début de chaque trame de données pour la synchronisation. Les symboles de données sont modulés par une modulation de type QPSK (Quadrature Phase Shift Keying). L’estimateur ML présente de bonnes performances pour l’estimation du canal et du CFO, mais sa complexité dépend du nombre de points d’estimation recherchés. Pour corriger les interférences introduites par le CFO entre porteuses, les auteurs dans [41] ont étudié le problème de synchronisation fréquentielle dans des systèmes MIMO-OFDM 6 × 6 et 6 × 4. Ils ont proposé des séquences d’apprentissage qui sont composées de séquences pseudo-aléatoires (PN) répétées pour distinguer les antennes et pour estimer le CFO. A chaque antenne d’émission doit être attribuée une séquence d’apprentissage unique. Les séquences PN ont de bonnes fonctions de corrélation. L’inconvénient de cette méthode est la taille de la séquence d’apprentissage. La longueur de la séquence d’apprentissage est Lpr et celle de la séquence PN est Lc telle que Lpr > Lc, par conséquent la dernière séquence PN de la séquence d’apprentissage peut être incomplète. Ceci provoque une dégradation de la performance des séquences PN. Les résultats de simulation de cette méthode montrent que pour un rapport signal sur bruit (SNR) de 1 dB le MSE (Mean Square Error) égale à 10−3 dans un système MIMO 6 × 6. Dans [43], les auteurs ont étudié l’estimation du CFO dans un système MIMOOFDM. Ils ont proposé un algorithme d’estimation "sous-optimal" utilisant les séquences CAZAC (voir sec. III.2.4) comme séquences d’apprentissage. La sé- 31CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES quence CAZAC sur la deuxième antenne d’émission est une version décalée cycliquement de celle de la première antenne. Les résultats de simulation de cette méthode, pour LC = 64 (LC est la taille de la séquence CAZAC), montrent que la MSE peut atteindre 10−3 pour un SNR de 0 dB et MSE = 10−5 pour un SNR à 20 dB. Par conséquent, les séquences CAZAC présentent de bonnes propriétés de corrélation mais cette méthode ne présente pas de bons avantages pour la synchronisation par rapport aux autres méthodes existantes surtout dans un canal à trajets multiples. A la reception, la fonction d’inter-corrélation du signal reçu avec une séquence locale, fait apparaître plusieurs pics de corrélation qui sont décalés de la même valeur, car le signal reçu constitué de la somme de plusieurs versions décalées d’une même séquence CAZAC. II.4.2 La synchronisation temporelle La deuxième tâche importante dans un système MIMO-OFDM est la synchronisation temporelle, qui se répartit en deux phases : a) La synchronisation de trame ou la synchronisation temporelle grossière : La tâche de la synchronisation de trame permet d’estimer le début d’une trame par l’utilisation d’un préambule. b) La synchronisation de symbole ou la synchronisation temporelle fine : La tâche de synchronisation de symbole permet d’identifier le début du symbole OFDM dans un train binaire. La synchronisation de symbole dans un système MIMO-OFDM consiste à positionner la fenêtre FFT sur le train d’échantillons reçus. II.4.2.1 Etudes antérieures sur la synchronisation temporelle Plusieurs méthodes de synchronisation temporelle, pour des systèmes OFDM et MIMO-OFDM, ont été proposées dans [45–48]. Ces méthodes sont majoritairement basées sur l’approche de préambule. 32II.4. LA SYNCHRONISATION L’article [47] propose une méthode de synchronisation fréquentielle et temporelle pour un système MIMO-OFDM en utilisant les codes LS (Loosely Synchronous) comme séquences d’apprentissage et de détection de début de trame. Ces séquences LS ont des fonctions d’autocorrélation et d’intercorrélation optimales et rendent la synchronisation précise. Dans cette méthode, le processus de la synchronisation considéré se décompose en quatre étapes. La première étape consiste à estimer la synchronisation temporelle grossière puis, dans la deuxième étape, à estimer la synchronisation fréquentielle grossière grâce à la transformée de Fourier rapide (FFT) avec une interpolation quadratique dans le domaine fréquentiel. La troisième étape consiste à détecter les symboles OFDM et à estimer le canal en utilisant les codes LS, la quatrième étape consiste à l’estimation fréquentielle fine. La structure de la trame avec les codes LS est représentée dans la figure II.6. Un préambule est attribué à chaque trame OFDM pour distinguer les antennes et estimer le décalage fréquentiel à la réception. Chaque préambule est composé de deux codes LS répétés et d’un "gap" qui est introduit entre ces codes pour éviter l’effet dispersif du canal. Les auteurs montrent que plus la séquence est longue, meilleures sont les performances. Cependant, l’accroissement de la longueur engendre plus de rotation de phase. Par ailleurs, la structure des préambules utilisée et le processus de la synchronisation sont relativement complexes. Cette méthode est simulée avec un système MIMO-OFDM (2 × 1) et un canal de type ITU-VA (International Telecommunication Union). Les auteurs montrent que pour un SNR de 5 dB, la probabilité d’acquisition de synchronisation est égale à 70%. Dans le chapitre V, nous comparons les résultats de simulation de notre méthode proposée [50] appelée "méthode de préambule court" (section IV.2.1) avec ceux de la méthode proposée par Wang Jian et al. [47]. 33CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES Antenne 1 Données gap C1 gap S1 gap C1 gap S1 gap Antenne 2 Données gap C2 gap S2 gap C2 gap S2 gap Antenne M Données gap Cm gap Sm gap Cm gap Sm gap Fig. II.6 – Structure de trame d’un système MIMO-OFDM avec les codes LS Hung Chin a présenté dans [48] un système MIMO-OFDM présentant à la fois du décalage temporel et fréquentiel. Les auteurs proposent une solution basée sur la conception de préambules spéciaux, où différentes séquences d’apprentissage sont en cascade et sont utilisées séparément pour faciliter l’estimation de la synchronisation temporelle et l’estimation de CFO. Dans cet article, les auteurs proposent un préambule compact ayant la même longueur qu’un symbole OFDM, avec un algorithme unique pour la synchronisation temporelle et l’estimation de CFO. Le préambule proposé est constitué des séquences CAZAC où ce préambule est porté par une sous-bande dont les sous-bandes adjacentes sont espacées par des bandes de garde pour réduire l’interférence entre bandes. Les structures de préambules utilisées dans cette approche sont présentées dans la figure II.7. Selon les auteurs, les résultats des simulations indiquent que l’approche proposée présente de bonnes performance vis à vis de la méthode proposée dans [51] 34II.4. LA SYNCHRONISATION Fig. II.7 – Structure de préambule proposée dans le domaine fréquentiel dans [48] qui est basée sur l’UPSP (Unequal Period Synchronization Patterns). Cette mé- thode est simulée avec un système MIMO-OFDM (2 × 1 et 3 × 1). Ces résultats ont montré que pour un MIMO-OFDM (3 × 1), la probabilité d’acquisition de la synchronisation temporelle est de 70% pour un SNR = 5 dB. Dans le chapitre V, nous comparons les résultats de simulation de notre méthode proposée [52] appelée "méthode de préambule compact" (section IV.2.2) avec ceux de la méthode proposée par Chin-Liang et al. [53]. La méthode proposée dans [48] souffre de plusieurs limitations telles que la complexité pour générer des structures de préambules pour un grand nombre d’antennes d’émission. En effet, le préambule de synchronisation est divisé en sous-bande, quand le nombre d’antennes d’émission augmente, la taille des sousbandes doit diminuer pour prendre en considération toutes les antennes d’émis- 35CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES sion. Par conséquent, à la réception, la probabilité de détection de synchronisation diminue à cause de la longueur de séquence de synchronisation. Pour résoudre le problème de la limitation du nombre d’antennes, il faut donc augmenter la taille du préambule de synchronisation. Dans ce cas, les auteurs doivent faire face à une autre limitation qui est le débit. En 2012, Chin-Liang et Hung-Chin ont proposé dans [53] un préambule de synchronisation constitué de séquences CAZAC partielles de type Zadoff-Chu [54], pour des systèmes MIMO-OFDM coopératifs. Dans cette approche, les préambules de synchronisation sont séparés les uns des autres, à la fois, dans le domaine temporel et dans le domaine fréquentiel. Cette séparation est utilisée pour éliminer l’interférence mutuelle dans les deux domaines. Le principe de la corrélation est utilisé. Les structures de préambules utilisés dans cette approche sont présentées dans la figure II.8. Fig. II.8 – Structure de préambule basée sur des séquences partielles de Zadoff-Chu dans [53]. (a) dans le domaine fréquentiel et (b) dans le domaine temporel 36II.5. CONCLUSION Cette approche est simulée avec un système MIMO-OFDM et un canal de type vehicle-A [55]. Les résultats de simulation de cette approche présentent de meilleures performances que la méthode proposée dans [51] pour des systèmes MIMO-OFDM 2 × 2 coopératifs. Comme précédemment, les performances de cette approche se dégradent quand le nombre d’antennes d’émission croît et quand la taille de préambule utilisée décroît. II.5 Conclusion Dans ce chapitre, un bref rappel des techniques de transmission OFDM et MIMO-OFDM a été donné. Dans un système OFDM, la bande totale est divisée en plusieurs sous-bandes en utilisant plusieurs sous-porteuses orthogonales. Un préfixe cyclique (CP), de longueur plus grande que le délai maximum de propagation du canal, permet d’éviter les interférences de type ISI et ICI. La modulation et la démodulation sont respectivement réalisées en utilisant la IFFT et la FFT respectivement. Comme le canal est pratiquement constant pour chaque sous-porteuse, l’égalisation peut être effectuée en divisant le symbole de données par le coefficient de canal estimé correspondant. Dans la deuxième partie du chapitre, la technique MIMO a été introduite. Les différents flux de données sont transmis en parallèle sur les différentes antennes d’émission. Le modèle de canal à trajets multiples est défini, ainsi que la matrice de canal. Cette matrice ne dépend pas seulement du nombre des antennes d’émission et de réception, mais aussi de la sélectivité en fréquence du canal. Par conséquent, la technique MIMO permet d’améliorer les performances des systèmes en réduisant les effets d’évanouissements dans un canal multi-trajets. Après la combinaison de deux techniques MIMO et OFDM, le problème de synchronisation est présenté. Il existe dans la littérature plusieurs techniques de synchronisation. Nous avons présenté les avantages et les inconvénients de certaines de ces méthodes. 37CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES 38II.5. CONCLUSION Bibliographie [1] Institute of Electrical and Electronics Engineers, IEEE 802.11a : Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications : High-speed Physical Layer in the 5 GHz Band, Sept. 1999. [2] Institute of Electrical and Electronics Engineers, IEEE 802.11g : Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) specifications : Further Higher Data Rate Extension in the 2.4 GHz Band, 2003. [3] Institute of Electrical and Electronics Engineers, IEEE 802.16a : Air Interface for Fixed and Mobile Broadband Wireless Access Systems : Medium Access Control Modifications and Additional Physical Layer Specifications for 2-11 GHz, Apr. 2003. [4] R. W. Chang, “Synthesis of Band-Limited Orthogonal Signals for Multichannel Data Transmission,” Bell Systems Technical Journal, vol. 45, pp. 1775–1796, Dec. 1966. [5] J. Winters, “Optimum combining in digital mobile radio with cochannel interference,” Selected Areas in Communications, IEEE Journal on, vol. 2, no. 4, pp. 528–539, 1984. [6] I. E. Telatar, “Capacity of multi-antenna gaussian channels,” European Transactions On Telecommunications, vol. 10, pp. 585–595, 1999. [7] S. Alamouti, “A simple transmit diversity technique for wireless communications,” Selected Areas in Communications, IEEE Journal on, vol. 16, pp. 1451–1458, Oct 1998. 39CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES [8] V. Tarokh, H. Jafarkhani, and A. Calderbank, “Space-time block codes from orthogonal designs,” Information Theory, IEEE Transactions on, vol. 45, no. 5, pp. 1456–1467, 1999. [9] V. Tarokh, N. Seshadri, and A. Calderbank, “Space-time codes for high data rate wireless communication : performance criterion and code construction,” Information Theory, IEEE Transactions on, vol. 44, no. 2, pp. 744–765, 1998. [10] Institute of Electrical and Electronics Engineers, IEEE Standard 802.11n : Wireless LAN Medium Access Control (MAC)and Physical Layer (PHY) Specifications Amendment 5 : Enhancements for Higher Throughput, Oct 2009. [11] W. Zhang, X.-G. Xia, and K. Ben Letaief, “Space-time/frequency coding for mimo-ofdm in next generation broadband wireless systems,” Wireless Communications, IEEE, vol. 14, pp. 32–43, Jun 2007. [12] J. Auffray, "Systèmes MIMO à porteuses multiples : étude et optimisation de la combinaison de codes temps-espace et des techniques MC-CDMA". PhD thesis, INSA de Rennes, Rennes, Jun 2004. [13] C. L. Guellaut, "Prototypage d’un système MIMO-MC-CDMA sur plateforme hétérogène". PhD thesis, INSA de Rennes, Rennes, January 2009. [14] J. Blackledge, Digital Signal Processing : Mathematical and Computational Methods, Software Development and Applications. Horwood, 2003. [15] B. Saltzberg, “Performance of an efficient parallel data transmission system,” Communication Technology, IEEE Transactions on, vol. 15, no. 6, pp. 805– 811, 1967. [16] B.R.Saltzberg and S.B.Weinstein, “Fourier transform communication systems,” in Computer Machinery Conference, Pine Mountain, 1969. [17] A. Peled and A. Ruiz, “Frequency domain data transmission using reduced computational complexity algorithms,” in Acoustics, Speech, and Signal 40II.5. CONCLUSION Processing, IEEE International Conference on ICASSP ’80., vol. 5, pp. 964– 967, 1980. [18] J. Mark and W. Zhuang, Wireless Communications and Networking. Prentice Hall, 2003. [19] M. B. Arun Gangwar, “An overview : Peak to average power ratio in ofdm system & its effect,” International Journal of Communication and Computer Technologies, vol. 01, September 2012. [20] G. J. Foschini and M. J. Gans, “On limits of wireless communications in a fading environment when using multiple antennas,” Wireless Personal Communications, vol. 6, pp. 311–335, 1998. [21] D. Goeckel and G. Ananthaswamy, “On the design of multidimensional signal sets for ofdm systems,” Communications, IEEE Transactions on, vol. 50, no. 3, pp. 442–452, 2002. [22] D. Dromard and D. Seret, "Architecture des réseaux". Pearson, 2nd ed., Jun 2013. [23] H. Jafarkhani, Space-Time Coding : Theory and Practice. New York, NY, USA : Cambridge University Press, 1st ed., 2010. [24] B. V. Branka Vucetic, Jinhong Yuan, Space-Time Coding. Wiley, 1st ed., 2003. [25] V. Tarokh, H. Jafarkhani, and A. Calderbank, “Space-time block codes from orthogonal designs,” Information Theory, IEEE Transactions on, vol. 45, no. 5, pp. 1456–1467, 1999. [26] V. Tarokh, N. Seshadri, and A. Calderbank, “Space-time codes for high data rate wireless communication : performance criteria,” in Communications, 1997. ICC ’97 Montreal, Towards the Knowledge Millennium. 1997 IEEE International Conference on, vol. 1, pp. 299–303 vol.1, 1997. 41CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES [27] J.-C. Guey, M. Fitz, M. Bell, and W.-Y. Kuo, “Signal design for transmitter diversity wireless communication systems over rayleigh fading channels,” Communications, IEEE Transactions on, vol. 47, pp. 527–537, Apr 1999. [28] V. Tarokh, N. Seshadri, and A. Calderbank, “Space-time codes for high data rate wireless communication : performance criterion and code construction,” Information Theory, IEEE Transactions on, vol. 44, no. 2, pp. 744–765, 1998. [29] Q. Yan and R. Blum, “Optimum space-time convolutional codes,” in Wireless Communications and Networking Confernce, 2000. WCNC. 2000 IEEE, vol. 3, pp. 1351–1355 vol.3, 2000. [30] J. Winters, “Wireless pbx/lan system with optimum combining,” Jan. 27 1987. US Patent 4,639,914. [31] G. Raleigh and J. Cioffi, “Spatio-temporal coding for wireless communications,” in Global Telecommunications Conference, 1996. GLOBECOM ’96. ’Communications : The Key to Global Prosperity, vol. 3, pp. 1809–1814 vol.3, 1996. [32] G. J. Foschini., “Layered space-time architecture for wireless communication in a fading environment when using multi-element antennas,” Bell Laboratories Technical Journal, vol. 33, pp. 41–59, October 1996. [33] D. R. Company, “Using mimo-ofdm technology to boost wireless lan performance today.” White Paper, Jun 2005. [34] H. Sampath, S. Talwar, J. Tellado, V. Erceg, and A. Paulraj, “A fourthgeneration mimo-ofdm broadband wireless system : design, performance, and field trial results,” Communications Magazine, IEEE, vol. 40, no. 9, pp. 143–149, 2002. [35] A. van Zelst and T. Schenk, “Implementation of a mimo ofdm-based wireless lan system,” Signal Processing, IEEE Transactions on, vol. 52, pp. 483 – 494, Feb. 2004. 42II.5. CONCLUSION [36] G. Stuber, J. Barry, S. McLaughlin, Y. Li, M. Ingram, and T. Pratt, “Broadband mimo-ofdm wireless communications,” Proceedings of the IEEE, vol. 92, pp. 271 – 294, Feb 2004. [37] J. G. Proakis, Digital Communications. McGraw-Hill, 4th ed., 2000. [38] G. Stuber, J. Barry, S. McLaughlin, Y. Li, M.-A. Ingram, and T. Pratt, “Broadband mimo-ofdm wireless communications,” Proceedings of the IEEE, vol. 92, no. 2, pp. 271–294, 2004. [39] S. Alex and L. Jalloul, “Performance evaluation of mimo in ieee802.16e/wimax,” Selected Topics in Signal Processing, IEEE Journal of, vol. 2, no. 2, pp. 181–190, 2008. [40] S. Salari, M. Heydarzadeh, and J. Cances, “Joint maximum-likelihood frequency synchronization and channel estimation in mimo-ofdm systems with timing ambiguity,” in Wireless Communication Systems (ISWCS), 2012 International Symposium on, pp. 954–958, 2012. [41] L. He, “Frequency synchronization in mimo ofdm systems,” in Wireless Communications Networking and Mobile Computing (WiCOM), 2010 6th International Conference on, pp. 1–4, 2010. [42] L. Koschel and A. Kortke, “Frequency synchronization and phase offset tracking in a real-time 60-ghz cs-ofdm mimo system,” in Personal Indoor and Mobile Radio Communications (PIMRC), 2012 IEEE 23rd International Symposium on, pp. 2281–2286, 2012. [43] Y. Wu, J. W. M. Bergmans, and S. Attallah, “Carrier frequency offset estimation for multiuser mimo ofdm uplink using cazac sequences : Performance and sequence optimization.,” EURASIP J. Wireless Comm. and Networking, vol. 2011, 2011. [44] R. Jose and K. Hari, “Maximum likelihood algorithms for joint estimation of synchronisation impairments and channel in multiple input multiple output- 43CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES orthogonal frequency division multiplexing system,” Communications, IET, vol. 7, no. 15, pp. 1567–1579, 2013. [45] S. Chang and B. Kelley, “Time synchronisation for ofdm-based wlan systems,” Electronics Letters, vol. 39, pp. 1024 – 1026, June 2003. [46] J. Zhang, “A novel symbol synchronization method for ofdm systems in sfn channels,” Consumer Electronics, IEEE Transactions on, vol. 54, pp. 1550 –1554, November 2008. [47] W. Jian, L. Jianguo, and D. Li, “Synchronization for mimo ofdm systems with loosely synchronous (ls) codes,” in Wireless Communications, Networking and Mobile Computing, 2007. WiCom 2007. International Conference on, pp. 254 –258, Sept. 2007. [48] H.-C. Wang and C.-L. Wang, “A compact preamble design for synchronization in distributed mimo ofdm systems,” in Vehicular Technology Conference (VTC Fall), 2011 IEEE, pp. 1–4, Sept. 2011. [49] A. SAEMI, "Synchronisation des systèmes de transmission MIMO-OFDM". PhD thesis, Université de Limoges, Limoges, september 2007. [50] A. Rachini, A. Beydoun, F. Nouvel, and B. Beydoun, “Timing synchronisation method for mimo-ofdm system using orthogonal preamble,” in Telecommunications (ICT), 2012 19th International Conference on, pp. 1–5, 2012. [51] F. Guo, D. Li, H. Yang, and L. Cai, “A novel timing synchronization method for distributed mimo-ofdm system,” in Vehicular Technology Conference, 2006. VTC 2006-Spring. IEEE 63rd, vol. 4, pp. 1933–1936, 2006. [52] A. Rachini, A. Beydoun, F. Nouvel, and B. Beydoun, “A novel compact preamble structure for timing synchronization in mimo-ofdm systems using cazac sequences,” in International Conference on Communications, Computation, Networks and Technologies (INNOV), pp. 1–6, 2013. 44II.5. CONCLUSION [53] C.-L. Wang, H.-C. Wang, and Y.-Y. Chen, “A synchronization scheme based on partial zadoff-chu sequences for cooperative mimo ofdm systems,” in Wireless Communications and Networking Conference (WCNC), 2012 IEEE, pp. 925–929, 2012. [54] R. Frank, S. Zadoff, and R. Heimiller, “Phase shift pulse codes with good periodic correlation properties (corresp.),” Information Theory, IRE Transactions on, vol. 8, pp. 381 –382, October 1962. [55] I.-R. T. G. 8/1, “Guidelines for evaluation of radio transmission technologies for imt-2000,” in Recommendation ITU-R M.1225, 1999. 45CHAPITRE II. SYSTÈMES MULTI-PORTEUSES ET MULTI-ANTENNES 46CHAPITRE III LES SÉQUENCES DE SYNCHRONISATION DANS LES SYSTÈMES MIMO-OFDM Sommaire III.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . 48 III.2 Les différentes séquences existantes . . . . . . . . . . . . . 49 III.2.1 Séquences pseudo-aléatoires (PN) . . . . . . . . . . . 50 III.2.2 Les séquences de Gold . . . . . . . . . . . . . . . . . 52 III.2.3 Les séquences de Walsh-Hadamard . . . . . . . . . . 55 III.2.4 Les séquences CAZAC (Constant Amplitude Zero AutoCorrelation) . . . . . . . . . . . . . . . . . . . . . . . 57 III.2.5 Les séquences TCH (Tomlinson, Cercas and Hughes) . 61 III.2.6 Les séquences ZCZ (Zero Correlation Zone) . . . . . 62 III.3 Critères pour sélectionner une séquence particulière . . . . 65 III.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 47CHAPITRE III. SÉQUENCES DE SYNCHRONISATION La synchronisation temporelle dans les systèmes de communications sans fil est une étape très importante. Dans la littérature plusieurs méthodes ont été proposées et nombre d’entre elles se basent sur le préambule. Il s’agit d’envoyer des séquences connues par le récepteur au début de chaque trame transmise afin de détecter le début de celle-ci. Dans ce chapitre nous décrivons les différentes structures des séquences possibles et nous présentons les différents critères pour sé- lectionner une séquence particulière parmi les séquences présentées. Le choix des séquences qui seront étudiés dans ce chapitre est justifié dans la partie conclusion. III.1 Introduction Les systèmes OFDM et MIMO/OFDM présentent de multiples avantages mais également des difficultés. Un des inconvénients est la sensibilité de synchronisation de ces systèmes [1–3]. Plus précisément, un défaut de synchronisation temporelle provoque des interférences entre symboles et peut conduire à une forte dégradation des performances. Pour assurer la bonne détection des trames au récepteur, des symboles spé- ciaux peuvent être transmis au début de chaque trame OFDM. L’objectif de ce chapitre est de décrire les bonnes caractéristiques d’autocorrélation (Autocorrelation) et d’intercorrélation (Cross correlation) de ces symboles ou préambules, qui sont dites séquences de synchronisation. Une séquence de synchronisation doit présenter une fonction d’autocorrélation maximale pour un décalage nul. Deux fonctions sont intéressantes à analyser : l’autocorrélation et l’intercorrélation, ces deux fonctions mesurent le degré de ressemblance entre la séquence elle-même et entre deux séquences différentes 48III.2. LES DIFFÉRENTES SÉQUENCES EXISTANTES respectivement. Pour une séquence x (de valeur complexe) de longueur Lc, la fonction d’autocorrélation Rxx est donnée par : Rxx(k) = L Xc−1 n=0 x(k)x ∗ (n + k) (III.1) Où x ∗ est le complexe conjugué de la séquence x. Les deux valeurs idéales possibles de Rxx sont : Rxx =    Lc, n ≡ 0 mod Lc 0, n 6≡ 0 mod Lc La fonction d’intercorrélation (cross-correlation) est la corrélation d’une sé- quence x avec une autre séquence y. Cette fonction est donnée par : Rxy(k) = L Xc−1 n=0 x(k)y ∗ (n + k) (III.2) Le choix d’une séquence comme préambule pour la recherche de la synchronisation sera déterminé, d’une part par la fonction d’autocorrélation, qui doit pré- senter un pic maximal lors de la détection, et d’autre part par la fonction d’intercorrélation entre deux séquences qui doit être la plus faible possible en réception. Dans la suite du chapitre, nous présentons plusieurs séquences candidates à la génération d’un préambule pour la synchronisation des systèmes OFDM et MIMO-OFDM. Le choix des séquences est établi selon la longueur des séquences, leurs fonctions d’autocorrélation et d’intercorrélation. III.2 Les différentes séquences existantes L’élaboration du préambule de synchronisation se base sur l’utilisation d’une ou plusieurs séquences de même type ou non. Parmi celles-ci, les séquences pseudo- 49CHAPITRE III. SÉQUENCES DE SYNCHRONISATION aléatoires, les séquences de Gold, d’Hadamard, de CAZAC qui sont des candidats potentiels. Les séquences principales utilisées dans l’état de l’art sont décrites ciaprès : III.2.1 Séquences pseudo-aléatoires (PN) Les m-séquences [4] sont des séquences binaires pseudo-aléatoires (PN). Elles présentent une intercorrélation quasi nulle. Elles sont ainsi utilisées dans la synchronisation temporelle pour les systèmes OFDM et MIMO-OFDM [5, 6]. Dans [5] ces séquences sont aussi utilisées pour la synchronisation fréquentielle. Pour distinguer les antennes et pour estimer le CFO, chaque antenne d’émission dispose d’une séquence unique d’apprentissage. Les séquences d’apprentissage (préambule) sont composées de séquences PN répétées pour accroître la fiabilité de la détection. Les m-séquences possèdent une taille donnée par : P = 2n − 1 où n est le nombre de flip-flops (éléments mémoire) d’un registre à décalage binaire. L’avantage principal de séquences pseudo-aléatoire de taille maximale, est leur fonction d’autocorrélation périodique qui est très proche d’un Dirac alors que les lobes secondaires possèdent des pics de faible amplitude. La fonction d’auto-corrélation périodique normalisée de séquences pseudo-aléatoire (s) de taille maximale est donnée par : Rss(i) = 1 P P X−1 j=0 (−1)Sj⊗Si+j (III.3) où Rss =    1 si i mod P = 0 − 1 P si i mod P 6= 0 50III.2. LES DIFFÉRENTES SÉQUENCES EXISTANTES Les inconvénients majeurs de séquences PN sont les valeurs de leurs fonctions d’autocorrélation et d’inter-correlation apériodiques et le nombre de séquences de taille maximale générées n’est pas suffisant. On retrouve l’utilisation de ces séquences dans la norme de télévision mobile (Digital Terrestrial/Television Multimedia Broadcasting (DTMB)), norme pour la transmission numérique de la télévision en république de Chine [7]. J. Wu et al. [6] ont développé un algorithme pour la synchronisation temporelle et fréquentielle pour le système DTMB. Le processus d’estimation de décalage en fréquence est proposé en deux étapes. La première étape consiste à une estimation grossière du décalage fréquentiel en utilisant les m-séquences. La deuxième étape estime le dé- but de trame tout en estimant finement le décalage fréquentiel. La structure de la trame de synchronisation d’un système DTMB est représentée dans la figure III.1. Fig. III.1 – Structure de la trame de synchronisation dans les systèmes DTMB Par ailleurs, à partir de ces m-séquences, nous pouvons construire d’autres ensembles de séquences qui possèdent les caractéristiques proches de m-séquences mais avec un nombre de séquences disponibles plus grand. Ces séquences sont les séquences de Gold et de Kasami. Les fonctions d’autocorrélation et d’intercorrélation de m-séquences de longueur 1023 sont illustrées dans la figure III.2. Le polynôme générateur de sé- quence 1 (resp. séquence 2) est g1(x) = x 8 + x 6 + x 5 + x 4 + 1 (resp. g2(x) = 51CHAPITRE III. SÉQUENCES DE SYNCHRONISATION x 8 + x 7 + x 2 + x + 1). −200 −150 −100 −50 0 50 100 150 200 −500 0 500 1000 Fonctions d'autocorrélation et d'intercorrélation de séquences PN Indice Valeur du pic Autocorrélation −200 −150 −100 −50 0 50 100 150 200 −500 0 500 1000 Indice Valeur du pic Intercorrélation Fig. III.2 – Fonctions d’autocorrélation et d’intercorrélation de séquences pseudoaléatoires de taille 1023 III.2.2 Les séquences de Gold Les codes de Gold [8], également connus sous le nom de séquences de Gold et proposés par Robert Gold [8], sont des séquences binaires utilisées dans les télé- communications (Code Division Multiplexing Systems (CDMA)) et dans le système de localisation mondial (Global Positioning System (GPS)). Ces séquences sont construites par la combinaison de deux séquences pseudo aléatoires de pé- riode P = 2n − 1 [4]. L’ensemble de séquences construit par cette combinaison contient les deux séquences initiales et 2 n − 1 séquences ayant différentes positions de décalages. Le nombre total de séquences de Gold obtenues est de 2 n + 1 52III.2. LES DIFFÉRENTES SÉQUENCES EXISTANTES séquences. Soient g1(x) et g2(x) deux polynômes binaires primitifs qui gérèrent les sé- quences x et y respectivement. La famille de séquences de Gold obtenues est donnée par l’équation : Sgold(x, y) = {x, y, x ⊗ y, x ⊗ T −1 y, x ⊗ T −2 y, . . . , x ⊗ T −(Lc−1)y} (III.4) où T −p est un opérateur de décalages cycliques de valeur p vers la gauche, par exemple T −1 y = (y1, y2, y3, . . . , yLc−1, y0), et ⊗ est l’opération logique ouexclusif. III.2.2.1 Fonctions de corrélation des séquences de Gold Les propriétés de fonction d’autocorrélation des séquences de Gold ne sont pas aussi bonnes que celles de séquences pseudo-aléatoires, car leurs fonctions d’autocorrélation présentent des pics secondaires non négligeables. Cependant, ces séquences fournissent un grand nombre de séquences vis à vis des séquences pseudo-aléatoires. La fonction d’autocorrélation Rxx(τ ) d’une séquence de Gold de taille Lc est égale à Lc lorsque le décalage est nul (τ = 0). Soient X = (x0, . . . , xLc−1) et Y = (y0, . . . , yLc−1) deux séquences de longueur Lc, les fonctions d’autocorrélation (Rxx) de X et d’intercorrélation (Rxy) entre X et Y sont données par : Rxx(τ ) = L Xc−1 k=0 (−1)(Xk+X(k+τ)mod Lc ) (III.5) La fonction d’autocorrélation normalisée Rxx(τ ) est définie par : Rxx(τ ) =    1 pour τ = 0 − t(n) Lc , − 1 Lc , t(n) − 2 Lc pour τ 6= 0 (III.6) 53CHAPITRE III. SÉQUENCES DE SYNCHRONISATION où t(n) =    1 + 2 n+2 2 pour n pair 1 + 2 n+1 2 pour n impair et la fonction d’intercorrélation Rxy(τ ) entre deux séquences de Gold est dé- finie par : Rxy(τ ) = L Xc−1 k=0 (−1)(Xk+Y(k+τ)mod Lc ) (III.7) La valeur de la fonction d’intercorrélation normalisée Rxy(τ ) est définie par : Rxy(τ ) =  − t(n) Lc , − 1 Lc , t(n) − 2 Lc  (III.8) Les séquences de Gold sont proposées pour la synchronisation temporelle et fréquentielle dans les systèmes OFDM [9]. Dans cette approche, un préambule de synchronisation constitué de deux symboles d’apprentissage est utilisé comme un préambule pour la détection du début de trame et pour récupérer le décalage fréquentiel. L’inconvénient de séquences de Gold est leur fonction d’autocorrélation qui possède une grande valeur. La figure III.3 illustre les fonctions d’auto et d’intercorrélation pour deux sé- quences de Gold de taille 1023. 54III.2. LES DIFFÉRENTES SÉQUENCES EXISTANTES −200 −150 −100 −50 0 50 100 150 200 −500 0 500 1000 Fonctions d'autocorrélation et d'intercorrélation de séquences de Gold Indice Valeur du pic Autocorrélation −200 −150 −100 −50 0 50 100 150 200 −500 0 500 1000 Indice Valeur du pic Intercorrélation Fig. III.3 – Fonctions d’autocorrélation et d’intercorrélation de Séquences Gold de taille 1023 III.2.3 Les séquences de Walsh-Hadamard Les séquences de Walsh-Hadamard ou Hadamard [10] sont des séquences binaires (ou biphasées de valeurs -1 et 1) orthogonales utilisées notamment dans les systèmes à accès multiples par étalement de spectre. Elles sont aussi utilisées dans les systèmes MIMO dans l’étape de codage temps-espace [11]. Ces séquences se construisent récursivement à partir d’une matrice 2 × 2, appelée matrice d’Hadamard, de la manière suivante : 55CHAPITRE III. SÉQUENCES DE SYNCHRONISATION W H1 = h 1 i 1×1 , W H2 =   W H1 W H1 W H1 −W H1   2×2 , . . . , W H2n =   W Hn W Hn W Hn −W Hn   2n×2n Une matrice d’Hadamard W H d’ordre n satisfait la propriété suivante : W H.W HT = nIn (III.9) où In est la matrice d’identité n × n et W HT est la transposée de W H [12]. L’avantage principal des séquences d’Hadamard est l’orthogonalité entre les sé- quences. Elles ont de bonnes propriétés de corrélation et leur taille est égale 2 n où n ∈ N. A noter qu’il existe des séquences d’Hadamard de tailles multiples de 12 ou de 20 dont le principe de construction est similaire à celui présenté. La différence réside dans la matrice du départ qui est soit une matrice 12 × 12 ou une matrice 20 × 20. Les séquences d’Hadamard sont ainsi utilisées pour la détection de la synchronisation fréquentielle d’un système OFDM [13] et dans les systèmes DS-CDMA (Direct Sequence-Code Division Multiple Access) sur la voie descendante [14]. L. Koschel and A. Kortke dans [13] ont proposé une approche pour déterminer le décalage fréquentiel dans un système à 60 GHz. Dans ce cas, le préambule de synchronisation est constitué de deux parties, chacune comportant une séquence d’Hadamard. La figure III.4 illustre les fonctions d’autocorrélation et d’intercorrélation pour deux séquences d’Hadamard de taille 1024. Cependant, la fonction d’autocorré- lation de certaines séquences d’Hadamard présente des remontées de pics secondaires non négligeables. 56III.2. LES DIFFÉRENTES SÉQUENCES EXISTANTES −200 −150 −100 −50 0 50 100 150 200 −500 0 500 1000 Fonctions d'autocorrélation et d'intercorrélation de séquences d’Hadamard Indice Valeur du pic Autocorrélation −200 −150 −100 −50 0 50 100 150 200 −500 0 500 1000 Indice Valeur du pic Intercorrélation Fig. III.4 – Fonctions d’autocorrélation et d’intercorrélation de séquences d’Hadamard de taille 1024 III.2.4 Les séquences CAZAC (Constant Amplitude Zero AutoCorrelation) Les séquences CAZAC sont des séquences complexes caractérisées par leurs amplitudes uniformes. La figure III.5 illustre celles d’une séquence CAZAC de taille 1024. La fonction d’autocorrélation de ces séquences peut être représentée par une fonction delta δ (proche d’un Dirac), alors la fonction d’intercorrélation de deux séquences CAZAC est très proche de zéro. Les versions décalées cycliquement 57CHAPITRE III. SÉQUENCES DE SYNCHRONISATION −1 −0.5 0 0.5 1 −1 −0.5 0 0.5 1 Partie réelle Partie imaginaire Séquences CAZAC − taille 1024 Fig. III.5 – Séquence CAZAC avec une amplitude constante d’une séquence CAZAC donnent une fonction d’intercorrélation, avec d’autres séquences, proche de zéro. Par conséquent, une séquence CAZAC décalée cycliquement présente les mêmes propriétés que la séquence elle-même et toutes les versions décalées sont orthogonales les unes aux autres. Ces séquences possèdent de bonnes propriétés de corrélation périodique [15, 16]. Les séquences GCL (Generalized Chirp-Like) et Zadoff-Chu [17] sont connues comme des séquences CAZAC à valeurs complexes qui donnent lieu à un signal d’amplitude constante. Ces deux types de séquences sont très semblables et ont une phase inversée. 58III.2. LES DIFFÉRENTES SÉQUENCES EXISTANTES Les séquences CAZAC de type GCL sont données par l’équation III.10 suivante : xu(n) =    e −j πMn(n+1) Lc si Lc est impaire e −j πMn2 Lc si Lc est paire (III.10) Les séquences CAZAC de type Zadoff peuvent être exprimées selon l’équation III.11 suivante : xu(n) =    e j πMn(n+1) Lc si Lc est impaire e j πMn2 Lc si Lc est paire (III.11) où 0 ≤ n ≤ Lc − 1 Lc est la longueur de la séquence CAZAC, M ∈ N est un nombre premier avec Lc parmi les nombres entiers inférieurs à Lc et n ∈ {0, Lc − 1} est l’indice de la séquence. Ces séquences sont périodiques de période Lc d’où : xu(n + Lc) = xu(n) Soient u et v deux séquences CAZAC de taille Lc. Les fonctions d’autocorré- lation (éq. III.12a) et d’intercorrélation (éq. III.12b) entre u et v sont exprimées par : Ru,u(m) = 1 Lc L Xc−1 k=0 u(m + k)u ∗ (k) (III.12a) Ru,v(m) = 1 Lc L Xc−1 k=0 u(m + k)v ∗ (k) (III.12b) Ces deux fonctions présentent de bonnes propriétés de corrélation. 59CHAPITRE III. SÉQUENCES DE SYNCHRONISATION La figure III.6 présente les fonctions normalisées d’autocorrélation et d’intercorrélation de séquences Zadoff-Chu de longueur 1024. −1000 −800 −600 −400 −200 0 200 400 600 800 1000 0 0.2 0.4 0.6 0.8 1 Amplitude normalisée Indice Fonctions normalisées d'autocorrélation et d'intercorrélation de séquences CAZAC −1000 −800 −600 −400 −200 0 200 400 600 800 1000 0 0.2 0.4 0.6 0.8 1 Indice Amplitude normalisée Autocorrélation Intercorrélation Fig. III.6 – Fonctions d’autocorrélation et d’intercorrélation de séquences CAZAC de longueur 1024 Dans [18] W.Wei et al. ont utilisé ces séquences pour la recherche de synchronisation temporelle et fréquentielle, basée sur un préambule de synchronisation de longueur Lpr = 2Lc constitué de deux parties identiques et de même longueur Lc. Les résultats de simulation montrent de meilleures performances que les méthodes utilisant des séquences classiques en particulier dans le canal de Rayleigh. Avec 60III.2. LES DIFFÉRENTES SÉQUENCES EXISTANTES cette méthode, pour un système MIMO-OFDM 2 × 2, la probabilité d’acquisition de synchronisation temporelle est supérieure à 90% pour un SNR > −5 dB. Dans [19], les auteurs ont présenté une méthode de synchronisation temporelle basée sur les séquences CAZAC pour un système MIMO-OFDM 2 × 1. Un préambule de synchronisation est envoyé sur chaque antenne d’émission. Ces préambules sont des séquences CAZAC qui sont décalées cycliquement d’une distance D = 20. La taille du préambule de synchronisation est égale à la taille d’un symbole OFDM, soit Lpr = 512. La probabilité de la détection du pic pour la synchronisation temporelle dans un canal à trajets multiples est 80% pour un SNR > 6 dB. Dans [20], L. Li et al. ont mis en place un préambule basé sur les séquences de CAZAC pour la liaison descendante dans un système MIMO-OFDM. Dans cette méthode, chaque préambule est constitué de deux séquences différentes de synchronisation. Chaque séquence est divisée en deux symboles identiques qui sont constitués par des séquences CAZAC. Un CP est inséré au début et à la fin de chaque séquence. A la réception, une corrélation entre chaque deux symboles identiques est appliquée, il existe deux pics de la fonction de corrélation. Cette méthode est simulée avec un canal AWGN et COST 207 TU6. Ces résultats de simulation montrent que la probabilité de synchronisation de trame est égale à 1 pour un SNR > 7 dB. Le lecteur pourra également se référer à [18–20] pour des résultats complé- mentaires. III.2.5 Les séquences TCH (Tomlinson, Cercas and Hughes) Dans [21, 22], F. Cercas et al. ont étudié une nouvelle famille de codes TCH pour l’interface radio d’un récepteur mobile. Les séquences TCH sont des codes 61CHAPITRE III. SÉQUENCES DE SYNCHRONISATION binaires, cycliques, non linéaires et non systématiques de longueur Lc = 2m, où m est un nombre entier positif. Le premier polynôme qui génère le code TCH est nommé "B-TCH". Ce polynôme est généré d’une manière analytique et ensuite étendu pour augmenter les nombres de codes générés. Le polynôme "B-TCH" [21] ne peut être généré que pour des valeurs spécifiques de longueur Lc, qui sont les nombres de Fermat moins un (Fm − 1 = (22m + 1) − 1 = 22m ), à savoir, 2, 4, 16, 256 et 65 536 pour m = {0, 1, 2, 3, 4} respectivement. Ces séquences ont de bonnes propriétés d’autocorrélation dont les valeurs sont toujours 0, -4 et Lc quelle que soit la longueur de la séquence Lc, ce qui rend cette fonction d’autocorrélation très intéressante pour des grandes valeurs de Lc. Les inconvénients de ces séquences sont la valeur de leur fonction d’inter-corrélation qui a de grande valeur et le nombre de séquences générées n’est pas suffisant. Dans [23], les séquences TCH sont utilisées pour l’estimation du canal et la synchronisation dans un système MIMO. Le préambule de synchronisation est divisé en quatre séquences TCH courtes et répétées de taille 256. La taille totale du préambule est 1024. Ces séquences TCH répétées permettent d’estimer le décalage fréquentiel et d’estimer le canal. Les résultats de simulation de cette méthode présentent de bonnes performances pour un SNR = 16 dB. La figure III.7 illustre les fonctions d’autocorrélation et d’intercorrélation de séquences TCH de taille 256. III.2.6 Les séquences ZCZ (Zero Correlation Zone) Les séquences ZCZ ont été proposées pour réduire l’interférence de l’accès multiple (Multiple Access Interference (MAI)) dans les systèmes CDMA. Dans [24], P. Fan a proposé des séquences ZCZ binaires. Cependant, l’inconvénient mineur est le faible nombre de séquences générées. Pour résoudre ce pro- 62III.2. LES DIFFÉRENTES SÉQUENCES EXISTANTES −50 0 50 −100 0 100 200 300 Fonctions d'autocorrélation et d'intercorrélation de séquences TCH Indice Valeur du pic Autocorrélation −50 0 50 −100 0 100 200 300 Indice Valeur du pic Intercorrélation Fig. III.7 – Fonctions d’autocorrélation et d’intercorrélation de séquences TCH de taille 256 blème, Cha [25] a introduit une classe de séquences ternaires, dont les éléments sont dans l’alphabet 0, 1, -1 permettant d’avoir un nombre de séquences plus important. Fan dans [26, 27] et Cha dans [28] ont ainsi proposé plusieurs méthodes pour construire les séquences binaires ZCZ. Il existe une famille de séquences ZCZ qui sont orthogonales entre elles et aussi avec les versions décalées de séquences. Cependant, le décalage cyclique ne doit pas dépasser la zone dite zone de corrélation nulle (ZCZ) [29]. 63CHAPITRE III. SÉQUENCES DE SYNCHRONISATION En générale, les fonctions d’auto-corrélation et d’inter-corrélation de séquences ZCZ possèdent des lobes secondaires qui ont de grande valeurs. La figure III.8 illustre les fonctions d’autocorrélation et d’intercorrélation de séquences ZCZ de taille 512. −200 −150 −100 −50 0 50 100 150 200 −400 −200 0 200 400 600 Fonctions d'autocorrélation et d'intercorrélation de séquences ZCZ Indice Valeur du pic Autocorrélation −200 −150 −100 −50 0 50 100 150 200 −500 0 500 1000 Indice Valeur du pic Intercorrélation Fig. III.8 – Fonctions d’autocorrélation et d’intercorrélation de séquences ZCZ de taille 512 Dans [30], H. Xuefei et al. ont proposé un préambule de synchronisation de trame pour des systèmes MIMO-OFDM (2 × 2) en utilisant les codes ZCZ. Les préambules de synchronisation, sur chaque antenne d’émission, sont constitués de différentes séquences ZCZ de taille 256. Cette méthode est simulée avec un canal 64III.3. CRITÈRES POUR SÉLECTIONNER UNE SÉQUENCE PARTICULIÈRE SUI (Stanford University Interim), ce canal est constitué de 3 trajets (tap). Les résultats de simulation montrent que la probabilité de synchronisation de trame est égale à 1 pour un SNR = −10 dB. Ces séquences sont également utilisées pour l’estimation du canal. Dans [31], W. Zhang et al. ont utilisé ces séquences pour la synchronisation fréquentielle dans un système OFDM. Le préambule de synchronisation est constitué de deux séquences ZCZ. La précision d’estimation, de cette méthode, dans un canal Rayleigh à trajets multiples peut être entre 10−2 et 10−3 pour un SNR > 0 dB. III.3 Critères pour sélectionner une séquence particulière Suite à la présentation des différentes séquences candidates à la synchronisation temporelle dans un contexte MIMO/OFDM, il convient de faire un choix qui réponde aux critères principaux : • Ces séquences doivent être orthogonales entre elles pour éviter les interférences entre séquences lors des envois simultanés sur plusieurs antennes d’émission. • La longueur de ces séquences doit être égale à la longueur d’un symbole OFDM ou un multiple. De point de vue réalisation, si l’insertion du symbole de synchronisation est réalisée dans le domaine fréquentiel, elle se fait avant la FFT. Comme généralement la FFT est une puissance de 2, il semble donc préférable que la longueur de la séquence de synchronisation soit aussi une puissance de 2 et égale à la longueur d’un symbole OFDM ou un multiple de celle-ci. 65CHAPITRE III. SÉQUENCES DE SYNCHRONISATION • La fonction d’autocorrélation doit être maximale afin de détecter le pic de corrélation et par conséquent le début de la trame. • La fonction d’intercorrélation entre les différentes séquences doit être minimale pour distinguer les différents préambules et trames au niveau de chaque antenne de réception. Une comparaison des différentes caractéristiques des séquences de synchronisation est présentée dans le tableau III.1. Après l’analyse des différents critères de séquences de synchronisation, nous proposons d’utiliser les séquences CAZAC comme séquences de synchronisation pour notre système MIMO-OFDM car possédant de bonnes propriétés en terme de corrélation. Pour réaliser le performances de ces séquences, dans le chapitre IV, nous avons simulé d’autres types de séquences pour comparer leurs performances par rapport aux séquences CAZAC. 66III.3. CRITÈRES POUR SÉLECTIONNER UNE SÉQUENCE PARTICULIÈRE Tableau. III.1 – Comparaison entre les différentes séquences de synchronisation Séquences Hadamard CAZAC Gold PN TCH ZCZ Taille de séquence ( Lc) 2 n 2 n 2 n − 1 2 n − 1 2 2 n 2 2n+1 Longueur Paire Paire Impaire Impaire Paire Paire Nombre de codes générés Important Important Important Faible Faible Faible Orthogonalité Oui √ Oui √ Non N Non N Non N Non N Fonction d’intercorrélation Proche de 0 pour certaines séquences Proche de 0 Des pics secondaires Des pics secondaires Des pics secondaires Des pics secondaires Complexité de génération de séquences Simple Moyenne Moyenne Moyenne Complexe Complexe Adaptation au systèmes MIMO Non N Oui √ Non N Non N Non N Non N 67CHAPITRE III. SÉQUENCES DE SYNCHRONISATION III.4 Conclusion Dans tout système de communication, les émetteurs et les récepteurs doivent être synchronisés au niveau de la couche physique avant toute analyse des données par les applications. Un format spécial de séquences est généralement utilisé pour la synchronisation. Ces séquences sont appelées séquences de synchronisation. Dans le cas d’un système MIMO, où les différents émetteurs doivent être synchronisés avec les différents récepteurs, la synchronisation est plus délicate du fait des transmissions multiples simultanées dans la même bande passante du canal. Des séquences orthogonales peuvent être utilisées, mais la performance de la synchronisation dépend de l’orthogonalité de ces séquences. Dans le chapitre IV suivant, nous allons présenter les différentes méthodes proposées de la synchronisation temporelle dans les systèmes MIMO-OFDM. 68III.4. CONCLUSION Bibliographie [1] A. Palin and J. Rinne, “Enhanced symbol synchronization method for ofdm system in sfn channels,” in Global Telecommunications Conference, 1998. GLOBECOM 1998. The Bridge to Global Integration. IEEE, vol. 5, pp. 2788–2793 vol.5, 1998. [2] L. Da-Wei, T. You-xi, S. Dong-sheng, and L. Shao-qian, “Impact of timing error on ber performance of tdd pre-equalized ofdm systems,” in Personal, Indoor and Mobile Radio Communications, 2004. PIMRC 2004. 15th IEEE International Symposium on, vol. 1, pp. 714–718 Vol.1, 2004. [3] H. Steendam and M. Moeneclaey, “Sensitivity of orthogonal frequencydivision multiplexed systems to carrier and clock synchronization errors.,” SIGNAL PROCESSING, vol. 80, no. 7, pp. 1217–1229, 2000. [4] S. Marvin, J. Omura, and S. Robert, Spread Spectrum Communications Handbook. McGraw-Hill Professional, 1st ed., 2001. [5] L. He, “Frequency synchronization in mimo ofdm systems,” in Wireless Communications Networking and Mobile Computing (WiCOM), 2010 6th International Conference on, pp. 1–4, 2010. [6] J. Wu, Y. Chen, X. Zeng, and H. Min, “Robust timing and frequency synchronization scheme for dtmb system,” Consumer Electronics, IEEE Transactions on, vol. 53, no. 4, pp. 1348–1352, 2007. [7] W. Liang, W. Zhang, D. He, Y. Guan, Y. Wang, and J. Sun, “Digital terrestrial television broadcasting in china,” MultiMedia, IEEE, vol. 14, no. 3, pp. 92– 97, 2007. 69CHAPITRE III. SÉQUENCES DE SYNCHRONISATION [8] R. Gold, “Optimal binary sequences for spread spectrum multiplexing (corresp.),” Information Theory, IEEE Transactions on, vol. 13, pp. 619 –621, October 1967. [9] L. Najjar and M. Siala, “A new scheme for preamble detection and frequency acquisition in ofdm systems,” in Electronics, Circuits, and Systems, 2009. ICECS 2009. 16th IEEE International Conference on, pp. 1008–1011, 2009. [10] J. G. Proakis, Digital Communications. McGraw-Hill, 4th ed., 2000. [11] M. Baro and J. Ilow, “Space-time block codes based on diagonalized walsh-hadamard transform with simple decoupling,” in Vehicular Technology Conference Fall (VTC 2010-Fall), 2010 IEEE 72nd, pp. 1–5, 2010. [12] A. S. Madhukumar, C. Chen, K. Yang, and F. Chin, “Comparison of signature sequences for synchronization of uwb systems,” in Vehicular Technology Conference, 2004. VTC 2004-Spring. 2004 IEEE 59th, vol. 5, pp. 2585– 2589 Vol.5, May 2004. [13] L. Koschel and A. Kortke, “Frequency synchronization and phase offset tracking in a real-time 60-ghz cs-ofdm mimo system,” in Personal Indoor and Mobile Radio Communications (PIMRC), 2012 IEEE 23rd International Symposium on, pp. 2281–2286, 2012. [14] A. Amadei, U. Manzoli, and M. Merani, “On the assignment of walsh and quasi-orthogonal codes in a multicarrier ds-cdma system with multiple classes of users,” in Global Telecommunications Conference, 2002. GLOBECOM ’02. IEEE, vol. 1, pp. 841–845 vol.1, 2002. [15] M. M. Ran, “Clipping based papr reduction method for lte ofdma systems,” Int’l. J. Elec. Com. Stud., vol. 10, no. 7, pp. 1–5, 2010. [16] R. Nee and R. Prasad, OFDM for Wireless Multimedia Communications. Norwood, MA, USA : Artech House, Inc., 1st ed., 2000. 70III.4. CONCLUSION [17] R. Frank, S. Zadoff, and R. Heimiller, “Phase shift pulse codes with good periodic correlation properties (corresp.),” Information Theory, IRE Transactions on, vol. 8, pp. 381 –382, October 1962. [18] W. Wei and Y. Xiaolu, “A new synchronization method for mimo-ofdm systems with cazac sequence,” in Information Engineering (ICIE), 2010 WASE International Conference on, vol. 4, pp. 3 –5, Aug. 2010. [19] C. Feng, J. Zhang, Y. Zhang, and M. Xia, “A novel timing synchronization method for mimo ofdm systems,” in Vehicular Technology Conference, 2008. VTC Spring 2008. IEEE, pp. 913–917, 2008. [20] L. Li and P. Zhou, “Synchronization for b3g mimo ofdm in dl initial acquisition by cazac sequence,” in Communications, Circuits and Systems Proceedings, 2006 International Conference on, vol. 2, pp. 1035–1039, 2006. [21] F. Cercas, "A New Family of Codes for Simple Receiver Implementation". PhD thesis, Technical University of Lisbon, Lisbon, March 1996. [22] F. Cercas, M. Tomlinson, and A. Albuquerque, “Tch : A new family of cyclic codes length 2m,” in Information Theory, 1993. Proceedings. 1993 IEEE International Symposium on, p. 198, Jan 1993. [23] J. Silva, H. Silva, R. Dinis, E. Gomes, and N. Souto, “On the use of tch sequences for synchronization and channel estimation in mimo systems,” in Signal Processing and Communication Systems (ICSPCS), 2010 4th International Conference on, pp. 1–5, 2010. [24] P. Fan, N. Suehiro, N. Kuroyanagi, and X. Deng, “Class of binary sequences with zero correlation zone,” Electronics Letters, vol. 35, pp. 777 –779, May 1999. [25] J. Cha, “Class of ternary spreading sequences with zero correlation duration,” Electronics Letters, vol. 37, pp. 636 –637, May 2001. 71CHAPITRE III. SÉQUENCES DE SYNCHRONISATION [26] P. Fan, N. Suehiro, N. Kuroyanagi, and X. Deng, “Class of binary sequences with zero correlation zone,” Electronics Letters, vol. 35, no. 10, pp. 777–779, 1999. [27] X. Deng and P. Fan, “Spreading sequence sets with zero correlation zone,” Electronics Letters, vol. 36, no. 11, pp. 993–994, 2000. [28] J. Cha, S. Kameda, M. Yokoyama, H. Nakase, K. Masu, and K. Tsubouchi, “New binary sequences with zero-correlation duration for approximately synchronised cdma,” Electronics Letters, vol. 36, no. 11, pp. 991–993, 2000. [29] N. Suehiro, “A signal design without co-channel interference for approximately synchronized cdma systems,” Selected Areas in Communications, IEEE Journal on, vol. 12, pp. 837 –841, Jun 1994. [30] H. Xuefei and C. Jie, “Implementation frame synchronization for mimoofdm system with zcz-codes,” in Microwave, Antenna, Propagation and EMC Technologies for Wireless Communications, 2005. MAPE 2005. IEEE International Symposium on, vol. 1, pp. 241–244 Vol. 1, 2005. [31] W. Zhang, F. Zeng, X. Long, and M. Xie, “Improved mutually orthogonal zcz polyphase sequence sets and their applications in ofdm frequency synchronization,” in Wireless Communications Networking and Mobile Computing (WiCOM), 2010 6th International Conference on, pp. 1–5, 2010. 72CHAPITRE IV LES MÉTHODES PROPOSÉES Sommaire IV.1 Système de transmission . . . . . . . . . . . . . . . . . . . . 74 IV.1.1 Modélisation du canal de propagation . . . . . . . . . 77 IV.1.2 Modélisation du signal reçu . . . . . . . . . . . . . . 77 IV.2 Les techniques proposées pour la synchronisation temporelle 78 IV.2.1 Méthodes de préambule court (Génération dans le domaine temporel) . . . . . . . . . . . . . . . . . . . . 78 IV.2.2 Méthodes de préambule compact (Génération dans le domaine fréquentiel) . . . . . . . . . . . . . . . . . . 82 IV.2.3 Méthodes de zéro padding . . . . . . . . . . . . . . . 98 IV.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 73CHAPITRE IV. LES MÉTHODES PROPOSÉES Avant de présenter les méthodes de synchronisation temporelle proposées dans cette thèse, nous proposons une brève introduction à la problématique de la synchronisation dans les systèmes MIMO-OFDM. La synchronisation est un sujet abondamment étudié depuis de nombreuses années et de nombreux ouvrages traitent de ce domaine de manière très pédagogique et très complète. Cependant les systèmes MIMO-OFDM sont très sensibles aux problèmes de synchronisation et il faut alors proposer des méthodes de synchronisation performantes et capables de travailler avec des systèmes MIMO-OFDM N × M. Dans les deux précédents chapitres, nous avons rappelé les principes généraux des transmissions MIMO-OFDM et abordé la problématique de la synchronisation temporelle entre les émetteurs et les récepteurs. Plusieurs solutions sont possibles. L’objet de ce chapitre est de mesurer les performances des différentes approches dans des configurations MIMO-OFDM données. La synchronisation fréquentielle est supposée parfaite, l’égalisation et l’estimation du canal ne feront pas l’objet de cette thèse. Dans un premier temps, nous allons présenter notre système de transmission dans la section IV.1. Dans la section IV.2 nous discutons les différentes méthodes proposées pour la synchronisation temporelle. Les résultats de simulation de ces différentes méthodes sont présentés dans le chapitre V. IV.1 Système de transmission Notre système de transmission MIMO-OFDM est divisé en deux parties : l’émetteur et le récepteur. L’émetteur génère des trames constituées de symboles OFDM qui sont modulés en quadrature (QAM). Les symboles OFDM sont trans- 74IV.1. SYSTÈME DE TRANSMISSION mis sur plusieurs antennes en utilisant le codage temps-espaces en blocs (STBC). Le codage temps-espaces (STC) [1] est une technique utilisée dans les communications sans fil pour transmettre les flux de données à travers plusieurs antennes d’émission et de réception (MIMO). Deux approches sont utilisées pour la mise en place de MIMO : soit on recherche à accroître l’efficacité de transmission de données, soit on vise à augmenter le débit des données. Dans notre système, nous avons utilisé le codage en bloc Alamouti [2] qui transmet les mêmes symboles OFDM sur les différentes antennes d’émission à des instants différents. Le système de transmission est présenté dans la figure IV.1. Préambule de synchronisation IFFT IFFT + CP + CP CNA/ RF CNA/ RF Données Série/Parallèle Modulateur QAM Codeur STBC Domaine fréquentiel Domaine temporel Canal MIMO Module de Synchronisation FFT FFT - CP CAN/ RF CAN/ RF Domaine fréquentiel Domaine temporel - CP Données Parallèle/Série Démodulateur QAM Décodeur STBC Égaliseur Estimation du canal Ak Bk Ck Dk Et Ft Gt ࢚෢ࡳ ࢚෢ࡲ ࢚෢ࡱ ࢑෢ࡰ ࢑෢࡯ ࢑෢࡮ ࢑෢࡭ ࢚෢ࡹ ࢑෢ࡼ Fig. IV.1 – Système de transmission MIMO-OFDM-STBC Dans la figure IV.1, le générateur aléatoire produit le flux binaire (Ak), puis 75CHAPITRE IV. LES MÉTHODES PROPOSÉES le convertisseur série/parallèle est utilisé en vue de répartir les flux vers le modulateur QAM (Bk) selon l’ordre de la modulation et le nombre d’antennes. Ce modulateur a pour rôle de mapper le flux de bits selon une modulation QAM (Ck). Les symboles QAM sont alors introduits dans un codeur espace-temps en blocs (STBC) (Dk). Les données codées par le STBC sont transposées du domaine fré- quentiel au domaine temporel par le biais de l’IFFT (Et). L’intervalle de garde correspondant au préfixe cyclique (CP) est inséré après la IFFT (Ft) pour réduire les interférences de type ISI, et sera enlevé à la réception avant la FFT. Le dernier bloc avant la transmission de données (Gt) est un convertisseur numérique analogique (CNA). Le bloc que nous avons plus spécifiquement étudié dans notre système de transmission est celui de synchronisation. Ce bloc consiste à insérer le préambule de synchronisation dans le domaine fréquentiel ou temporel au début de chaque trame OFDM envoyée. Le signal émis si(t) par l’antenne d’émission Ti est donné par : si(t) = 1 p Nsc N Xsc−1 k=0 ℜe  xkΠ(t)e j.2π.fk.t (IV.1) où xk sont les symboles de sortie de la modulation STBC/OFDM, obtenus donc après la IFFT. La deuxième partie du système de transmission MIMO-OFDM est le récepteur. Le premier bloc après le convertisseur analogique numérique (CAN) (Gct) est le bloc de la synchronisation temporelle, ce bloc intervient dans le domaine temporel (Mct). Ensuite, le préfixe cyclique de chaque symbole OFDM est éliminé (Fbt). La fonction FFT transpose les données dans le domaine fréquentiel (Ect). Le bloc d’égalisation intervient pour corriger les effets du canal en prenant en compte les coefficients d’estimation du canal (Pck) obtenus dans le domaine fré- quentiel. Les symboles estimés sont décodés et combinés par le décodeur STBC 76IV.1. SYSTÈME DE TRANSMISSION (Dck). Ensuite, un démodulateur QAM permet de démoduler et de récupérer les informations binaires (Cck). La conversion parallèle/série permet la remise en forme du flux binaire (Ack). IV.1.1 Modélisation du canal de propagation Le canal entre les antennes d’émission Ti et celles de réception Rj , i ∈ {1, Nt} et j ∈ {1, Nr}, est à trajets multiples. La réponse impulsionnelle H(t) du canal peut être exprimée comme : H(t) = X L l=1 Hlδ(t − τl) (IV.2) où Hl est la matrice de coefficients du l ime trajet de taille Nt × Nr, δ est la fonction d’impulsion et L est le nombre maximum de trajets multiples. Hl est donnée par : Hl =        h l 1,1 h l 1,2 . . . hl 1,Nr h l 2,1 h l 2,2 . . . hl 2,Nr . . . . . . . . . . . . h l Nt,1 h l Nt,2 . . . hl Nt,Nr        (IV.3) IV.1.2 Modélisation du signal reçu Le signal reçu rj par l’antenne Rj est donné par : rj (t) = X Nt i=1 X L l=1  h l ij (t) ∗ si(t)  + wj (t) (IV.4) Où si est le signal transmis sur l’antenne Ti , wj est le bruit blanc additif gaussien (AWGN) et h l ij correspond au canal multi-trajets entre l’antenne d’émission Ti et celle de réception Rj . 77CHAPITRE IV. LES MÉTHODES PROPOSÉES Nous allons dans la suite proposer différentes techniques d’élaboration du pré- ambule de synchronisation. IV.2 Les techniques proposées pour la synchronisation temporelle Dans ce paragraphe, trois méthodes d’insertion de préambule sont discutées. L’une dans le domaine temporel, donc après la IFFT, les autres dans le domaine fréquentiel, c’est à dire lors de la construction des symboles OFDM. Il est à noter qu’en réception la recherche de synchronisation est effectuée dans le domaine temporel. IV.2.1 Méthodes de préambule court (Génération dans le domaine temporel) En général, les méthodes de synchronisation temporelle qui utilisent les pré- ambules longs, qui sont corrélés à la réception avec une séquence locale afin de détecter le pic de corrélation. Dans ce cas, nous obtenons un pic de corrélation qui a une amplitude théorique égale à la taille de cette séquence locale. D’autres méthodes de synchronisation temporelle utilisent des préambules courts où ces derniers sont répartis temporellement en deux ou plusieurs parties identiques. A la réception, la corrélation est effectuée en utilisant le préambule reçu uniquement. Les parties identiques sont corrélées et produisent un pic de corrélation dont la position sert à détecter le point de synchronisation. Par la suite, nous décrivons les différentes structures de préambule court. IV.2.1.1 Première structure de préambule court (P r_Court_1) La structure de synchronisation est appliquée à un système MIMO-OFDM 2 × 2 utilisant un codage STBC-Alamouti. La structure de préambule de syn- 78IV.2. LES TECHNIQUES PROPOSÉES POUR LA SYNCHRONISATION TEMPORELLE chronisation est donnée dans la figure IV.2. Cette structure consiste à envoyer un préambule de synchronisation en utilisant différentes séquences (Hadamard, CAZAC, ZCZ, TCH et Gold). Ces séquences ne sont pas modulées, elles sont envoyées comme étant des séquences réelles ou complexes, et chaque bit correspond à un échantillon du symbole total. �� �1 �2 �� �1 �2 �� Symbole OFDM �� �3 �4 �� �3 �4 �� Symbole OFDM Séquence 1 Séquence 1 Trame OFDM Préambule sur l’antenne d’émission �� Séquence 2 Séquence 2 Trame OFDM Préambule sur l’antenne d’émission �� Fig. IV.2 – Préambules de synchronisation pour la première structure de la méthode de préambules courts (P r_Court_1) Soient C1 et C2 (resp. C3 et C4) deux codes différents utilisés dans le préambule. Chaque code est de taille LC = LF F T 2 et C1 6= C2 (resp. C3 6= C4). La taille de la FFT (LF F T ), qui correspond à la taille d’un symbole OFDM, est telle que LF F T = 2 × LC. Le préambule sur chaque antenne est complété avec le CP de longueur LCP = LF F T 4 . La taille du préambule Lpr devient alors : Lpr = 2 × (LF F T + LCP ) = 2 × (2.LC + LCP ) (IV.5) 79CHAPITRE IV. LES MÉTHODES PROPOSÉES Ces préambules sont envoyés simultanément sur les deux antennes d’émission (T1 et T2). En réception, la synchronisation temporelle sur chaque antenne peut être estimée selon deux approches différentes : • Soit par une corrélation entre les séquences de préambule elles-mêmes. • Soit par une corrélation entre le signal reçu et une séquence locale, c’est à dire la séquence 1 sur T1 et/ou la séquence 2 sur T2. Dans cette méthode nous avons utilisé la deuxième approche afin d’estimer la synchronisation temporelle. L’avantage de cette structure réside dans la forte probabilité de détection du pic de synchronisation. Le CP utilisé au début de chaque préambule de synchronisation réduit l’erreur de détection et ne dégrade pas l’orthogonalité entre les codes. Par contre, la taille du préambule est égale à deux fois la taille d’un symbole OFDM, ce qui réduit le débit du système. Pour résoudre ce problème, nous proposons dans la section suivante une autre structure basée sur une construction en temporel. IV.2.1.2 Deuxième structure de préambule court (P r_Court_2) Cette structure consiste à envoyer une seule séquence de synchronisation au début de chaque trame OFDM. La structure de préambule est donnée dans la fi- gure IV.3. Chaque préambule envoyé sur chaque antenne est divisé en deux parties de longueur LC chacune et d’un CP de longueur LCP = LF F T 4 = LC 2 . La longueur de chaque préambule est Lpr = 2.LC + LCP = 5.LC 4 . Dans cette structure, chaque préambule est constitué de deux codes différents, C1, C2 sur la première antenne d’émission T1 et C3, C4 sur la deuxième antenne d’émission T2. 80IV.2. LES TECHNIQUES PROPOSÉES POUR LA SYNCHRONISATION TEMPORELLE �� �1 �2 �� Symbole OFDM �� �3 �4 �� Symbole OFDM �� �� Trame OFDM Préambule sur l’antenne d’émission �� �� �� Trame OFDM Préambule sur l’antenne d’émission �� Fig. IV.3 – Préambules de synchronisation pour la deuxième structure de la méthode de préambules courts (P r_Court_2) IV.2.1.3 Algorithme de détection de pic de synchronisation A la réception, la fonction de corrélation R est appliquée entre le signal reçu rj et une séquence locale seqj , de taille 2Lc + LCP , au niveau du récepteur Rj . Cette fonction est donnée par l’équation : Rrj ,seqj (k) = 2.Lc−X 1+LCP n=0  rj (k) ∗ seq∗ j (n + k)  (IV.6) L’idée principale de l’algorithme de synchronisation est d’estimer le pic de synchronisation temporelle. Après la fonction de corrélation, un bloc de détection de seuil est appliqué afin de détecter ce pic au-delà d’un seuil déterminé (th). Une fois que |Rrj ,seqj (k)| atteint le seuil, cela signifie que k est considéré comme le point de synchronisation temporelle, si non, le réglage du seuil diminue la valeur du seuil et l’operation recommence de nouveau pour détecter le pic de synchronisation. La figure IV.4 représente un schéma général de la détection de synchronisation. 81CHAPITRE IV. LES MÉTHODES PROPOSÉES Synchronisation Générateur de séquence locale Calculer la fonction de corrélation ℛ Sortie |ℛ�� ,���� | ��(�) Décodage STBC & Égalisation �ℎ � > �ℎ Détecteur de seuil �ℎ � Oui Non Détecteur du pic de synchronisation Réglage du seuil �ℎ Fig. IV.4 – Schéma général de la détection du pic de synchronisation pour les méthodes de préambules courts Les résultats de simulation de cette méthode sont présentés dans le chapitre V et ont été publiés dans [3]. Ces résultats présentent de bonnes performances même à faible SNR. L’inconvénient majeur de cette méthode est la génération du préambule dans le domaine temporel. Par conséquence, au niveau d’implémentation de cette méthode, nous avons besoin d’un module pour générer et appliquer les pré- ambules dans le domaine temporel. Nous avons évité ce problème dans les autres méthodes où le préambule est généré dans le domaine fréquentiel. IV.2.2 Méthodes de préambule compact (Génération dans le domaine fréquentiel) Nous proposons, dans cette partie, de nouvelles structures basées sur les sé- quences CAZAC afin d’accroître la probabilité de détection de la synchronisation temporelle. Les séquences CAZAC [4] sont caractérisées par une amplitude constante et une fonction d’intercorrélation proche de zéro. Pour chaque antenne d’émission Ti , un préambule utilisant une séquence CAZAC est inséré avant l’émission des symboles OFDM, l’ensemble constitue alors la trame. 82IV.2. LES TECHNIQUES PROPOSÉES POUR LA SYNCHRONISATION TEMPORELLE Tous les préambules sont générés et mappés sur les sous-porteuses dans le domaine fréquentiel. La structure générale des trames est illustrée dans la figure IV.5. Fig. IV.5 – Structure générale de la trame : préambule de synchronisation + symboles OFDM Dans ce cas, les séquences CAZAC [5] C(k) sont données par l’équation : C(k) = exp  jπM k2 LC  , k ∈ {0, LC − 1} (IV.7) où LC est la longueur de la séquence CAZAC avec LC = 2n , M ∈ N est un nombre premier avec LC parmi les nombres entiers inférieurs à LC et k ∈ {0, LC − 1} est l’indice de l’échantillon. Soient Lpr = LF F T + LCP la longueur du préambule et C la séquence CAZAC de taille LC = LF F T /2. Le terme C i k représente l’échantillon de la séquence CAZAC porté par la k-ième sousporteuse et transmis par l’antenne d’émission Ti . Nous notons c(m) le correspondant de C(k) dans le domaine temporel après une IFFT. Il convient de souligner que c(m) est aussi une séquence CAZAC de longueur LC [6]. Cette séquence c(m) est représentée par l’équation IV.8 : c(m) = 1 LC L XC −1 k=0 C(k).e j   2π LC  mk , m ∈ [0, LC − 1] (IV.8) Les différentes structures de préambules sont détaillées ci-après. 83CHAPITRE IV. LES MÉTHODES PROPOSÉES IV.2.2.1 Première structure de préambule compact (P r_Compact_1) Chaque préambule contient une séquence CAZAC (C) mappée sur les sousporteuses paires, et le −conjugue´ de C (−C ∗ ) est mappé sur les sous-porteuses impaires. La structure de préambule dans le domaine fréquentiel est présentée dans la figure IV.6. La taille de chaque séquence est LC avec LC =  LF F T 2  . �� � −�� �∗ �� � −�� �∗ ���−� � −���−� �∗ �� �� −�� ��∗ �� �� −�� ��∗ ���−� �� −���−� ��∗ �� � −�� �∗ �� � −�� �∗ ���−� � −���−� �∗ Émetteur 1 Émetteur 2 Émetteur �� ��� Sous-porteuses Fig. IV.6 – Schéma de préambules de synchronisation pour P r_Compact_1 dans le domaine fréquentiel sur les différentes antennes d’émission Bien qu’étant construite dans le domaine fréquentiel, la combinaison conserve de bonnes propriétés de corrélation dans le domaine temporel. La fonction de corrélation de ce préambule est présentée dans la figure IV.7. La figure IV.8 représente 84IV.2. LES TECHNIQUES PROPOSÉES POUR LA SYNCHRONISATION TEMPORELLE −200 −100 0 100 200 0 0.2 0.4 0.6 0.8 1 Indice Amplitude normalisée Fonction d’autocorrélation, LFFT=256 Fonction d’autocorrélation Fig. IV.7 – Fonction d’autocorrélation du préambule de P r_Compact_1, LF F T =256 les parties réelle et imaginaire du préambule de synchronisation dans le domaine temporel. L’allure du préambule dans le domaine temporel présente de bonnes propriétés de corrélation comme indique la figure IV.7. Les séquences C(k) et −C ∗ (k)sont exprimées selon les équations IV.9 et IV.10 respectivement : C(k) = exp  j πM k2 LC  = cos  πM k2 LC  + jsin  πM k2 LC  (IV.9) −C ∗ (k) = −exp  −j πM k2 LC  = −cos  πM k2 LC  + jsin  πM k2 LC  (IV.10) Soit XTi u (k) le préambule envoyé sur l’antenne d’émission Ti , ce préambule peut être exprimé, dans le domaine fréquentiel, comme : 85CHAPITRE IV. LES MÉTHODES PROPOSÉES 0 50 100 150 200 250 −1 −0.5 0 0.5 1 Indice Partie réelle 0 50 100 150 200 250 −1 −0.5 0 0.5 1 Indice Partie imaginaire Fig. IV.8 – Représentation du préambule dans le domaine temporel de P r_Compact_1, LF F T = 256 86IV.2. LES TECHNIQUES PROPOSÉES POUR LA SYNCHRONISATION TEMPORELLE X Ti u (k) =    C Ti  k 2  si k mod 2 = 0 −C ∗ Ti  k − 1 2  si k mod 2 6= 0 k ∈ {0, LF F T − 1} (IV.11) Les résultats de simulation de cette structure sont présentés dans le chapitre V et ont été publiés dans [7]. Dans cette méthode, la probabilité d’acquisition de synchronisation temporelle est supérieure à 90% pour les systèmes MIMO-OFDM 2 × 2 avec un SNR > −5 dB. IV.2.2.2 Deuxième structure de préambule compact (P r_Compact_2) Dans cette structure, nous avons divisé le préambule de synchronisation en deux parties de taille Lc = LF F T 2 chacune. La première partie est constituée d’une séquence CAZAC C tandis que la deuxième partie contient le −conjugue´ de la séquence C comme indiqué dans la figure IV.9. La fonction d’autocorrélation de ce préambule est présentée dans la figure IV.10. Comme pour la configuration précédente, différents préambules sont répartis sur les antennes d’émission et chaque préambule contient une séquence CAZAC et son conjugué. Nous présentons, dans la figure IV.11, les partie réelle et imaginaires du pré- ambule de synchronisation dans le domaine temporel avec une FFT de taille LF F T = 256. Dans cette figure, nous pouvons remarquer qu’il existe des valeurs réelles qui sont nulles, ce qui entraîne des lobes secondaires pour la fonction d’autocorrélation qui est présentée dans la figure IV.10. 87CHAPITRE IV. LES MÉTHODES PROPOSÉES �� � �� � ���−� � −�� �∗ −�� �∗ −���−� �∗ �� � �� � ���−� � −�� �∗ −�� �∗ −���−� �∗ �� �� �� �� ���−� �� −�� ��∗ −�� ��∗ −���−� ��∗ ��� Sous-porteuses Émetteur 1 Émetteur 2 Émetteur �� Fig. IV.9 – Schéma de préambules de synchronisation pour la P r_Compact_2 dans le domaine fréquentiel sur les différentes antennes d’émission −200 −100 0 100 200 0 0.2 0.4 0.6 0.8 1 Indice Amplitude normalisée Fonction d’autocorrélation, LFFT=256 Fonction d’autocorrélation Fig. IV.10 – Fonction d’autocorrélation du préambule de P r_Compact_2, LF F T =256 88IV.2. LES TECHNIQUES PROPOSÉES POUR LA SYNCHRONISATION TEMPORELLE 0 50 100 150 200 250 0 0.2 0.4 0.6 0.8 1 Indice Partie réelle 0 50 100 150 200 250 −1 −0.5 0 0.5 1 Indice Partie imaginaire Fig. IV.11 – Représentation du préambule dans le domaine temporel de P r_Compact_2, LF F T = 256 89CHAPITRE IV. LES MÉTHODES PROPOSÉES Nous avons utilisé les mêmes séquences que celles du cas précédent (équations IV.9 et IV.10). Soit XTi u le préambule envoyé sur l’antenne d’émission Ti dans le domaine fréquentiel : X Ti u (k) =    C Ti (k) si 0 ≤ k ≤ LC − 1 −C ∗ Ti (k − LC) si LC ≤ k ≤ LF F T − 1 (IV.12) IV.2.2.3 Troisième structure de préambule compact (P r_Compact_3) Cette structure est inspirée de la première structure. Nous proposons de géné- rer un préambule qui est constitué de séquences C et du conjugué de la séquence C noté C ∗ . Les échantillons de ces deux dernières séquences sont distribués sur les sous-porteuses paires et impaires respectivement comme indiqué dans la fi- gure IV.12. L’IFFT du préambule de cette structure est présentée dans la figure IV.14. L’enveloppe complexe de la partie réelle de cette structure, dans le domaine temporel, est divisée en deux parties identiques et symétriques. Comme pour la première structure (P c_Compact_1), cette combinaison possède de bonnes proprié- tés de corrélation, permettant ainsi de détecter le pic de corrélation en réception. La fonction d’autcorrélation de ce préambule est présentée dans la figure IV.13. Nous avons généré les séquences C(k) et C ∗ (k) selon les équations IV.13 et IV.14 respectivement : C(k) = exp  j πM k2 LC  = cos  πM k2 LC  + jsin  πM k2 LC  (IV.13) C ∗ (k) = exp  −j πM k2 LC  = cos  πM k2 LC  − jsin  πM k2 LC  (IV.14) 90IV.2. LES TECHNIQUES PROPOSÉES POUR LA SYNCHRONISATION TEMPORELLE �� � �� �∗ �� � �� �∗ ���−� � ���−� �∗ �� �� �� ��∗ �� �� �� ��∗ ���−� �� ���−� ��∗ �� � �� �∗ �� � �� �∗ ���−� � ���−� �∗ Émetteur 1 Émetteur 2 Émetteur �� ��� Sous-porteuses Fig. IV.12 – Schéma des préambules de synchronisation pour P r_Compact_3 dans le domaine fréquentiel sur les différentes antennes d’émission −200 −100 0 100 200 0 0.2 0.4 0.6 0.8 1 Indice Amplitude normalisée Fonction d’autocorrélation, LFFT=256 Fonction d’autocorrélation Fig. IV.13 – Fonction d’autocorrélation du préambule de P r_Compact_3, LF F T =256 91CHAPITRE IV. LES MÉTHODES PROPOSÉES 0 50 100 150 200 250 −1 −0.5 0 0.5 1 Indice Partie réelle 0 50 100 150 200 250 −1 −0.5 0 0.5 1 Indice Partie imaginaire Fig. IV.14 – Représentation du préambule dans le domaine temporel de P r_Compact_3, LF F T = 256 92IV.2. LES TECHNIQUES PROPOSÉES POUR LA SYNCHRONISATION TEMPORELLE Le préambule de synchronisation de cette structure est de taille Lpr = LF F T + LCP = 2.LC + LCP . Soit XTi u le préambule envoyé sur l’antenne d’émission Ti dans le domaine fréquentiel : X Ti u (k) =    C Ti  k 2  si k mod 2 = 0 C ∗ Ti  k − 1 2  si k mod 2 6= 0 k ∈ {0, LF F T − 1} (IV.15) IV.2.2.4 Quatrième structure de préambule compact (P r_Compact_4) Cette structure est basée sur la méthode de préambule compact P r_Compact_2. Le schéma du préambule de cette structure, dans le domaine fréquentiel, est pré- senté dans la figure IV.15. Il est divisé en deux parties, l’une contient les échantillons de C et l’autre contient ceux de C ∗ . Chaque partie est de taille LF F T 2 , la taille totale du préambule est Lpr = LF F T + LCP = 2.LC + LCP . La fonction d’autocorrélation du préambule de synchronisation dans le domaine temporel est présentée dans la figures IV.16. Dans cette figure, la fonction d’autocorrélation présente des pics secondaires d’amplitudes de 18% de la taille normalisée du pic de corrélation. Cette fonction de corrélation ne présente pas de bonnes propriétés de corrélation comme celles des méthodes de préambule compact P r_Compact_1 et P r_Compact_3. Une représentation de la structure du préambule de synchronisation dans le domaine temporel est présentée dans la figure IV.17. Dans cette figure, nous avons représenté les parties réelle et imaginaire du préambule de cette structure. 93CHAPITRE IV. LES MÉTHODES PROPOSÉES �� � �� � ���−� � �� �∗ �� �∗ ���−� �∗ �� � �� � ���−� � �� �∗ �� �∗ ���−� �∗ �� �� �� �� ���−� �� �� ��∗ �� ��∗ ���−� ��∗ ��� Sous-porteuses Émetteur 1 Émetteur 2 Émetteur �� Fig. IV.15 – Schéma de préambules de synchronisation pour P r_Compact_4 dans le domaine fréquentiel sur les différentes antennes d’émission −200 −100 0 100 200 0 0.2 0.4 0.6 0.8 1 Indice Amplitude normalisée Fonction d’autocorrélation, LFFT=256 Fonction d’autocorrélation Fig. IV.16 – Fonction d’autocorrélation du préambule de P r_Compact_4, LF F T =256 94IV.2. LES TECHNIQUES PROPOSÉES POUR LA SYNCHRONISATION TEMPORELLE 0 50 100 150 200 250 −1 −0.5 0 0.5 1 Indice Partie imaginaire 0 50 100 150 200 250 −1 −0.5 0 0.5 1 Indice Partie réelle Fig. IV.17 – Représentation du préambule dans le domaine temporel de P r_Compact_4, LF F T = 256 95CHAPITRE IV. LES MÉTHODES PROPOSÉES Soit XTi u est le préambule envoyé sur l’antenne d’émission Ti dans le domaine fréquentiel. Ce préambule est exprimé par : X Ti u (k) =    C Ti (k) si 0 ≤ k ≤ LC − 1 C ∗ Ti (k − LC) si LC ≤ k ≤ LF F T − 1 (IV.16) IV.2.2.5 Algorithme de détection de pic de synchronisation La méthode de préambule compact consiste à transmettre un seul préambule au début de chaque trame. Ce préambule est constitué de séquences CAZAC ayant des agencements différents. Soit x Ti u (m) le résultat de l’IFFT du préambule XTi u ( IV.11, IV.12, IV.15 et IV.16) qui peut être exprimé : x Ti u (m) = 1 LF F T LF F T X−1 k=0 X Ti u (k).e j   2π LF F T  mk , m ∈ {0, LF F T − 1} (IV.17) La fonction d’autocorélation du préambule de synchronisation dans le domaine temporel est donnée par : Rxu (p) = LF F T X−1 m=0 xu(m).x∗ u (m − p)  = 1 L 2 F F T LF F T X−1 m=0 LF F T X−1 k=0    Xu(k).e j   2π LF F T  mk × X ∗ u (k − p).e −j   2π LF F T  (m−p)k    = 1 L 2 F F T LF F T X−1 m=0 LF F T X−1 k=0 Xu(k).X∗ u (k − p).   LF F T X−1 k=0 e j   2π LF F T  pk  | {z } =LF F T = 1 LF F T LF F T X−1 k=0 Xu(k).X∗ u (k − p) (IV.18) 96IV.2. LES TECHNIQUES PROPOSÉES POUR LA SYNCHRONISATION TEMPORELLE Dans l’équation IV.18, nous trouvons que la fonction d’autocorrélation du préambule dans le domaine temporel est équivalente à celle dans le domaine fré- quentiel, ce qui montre les bonnes propriétés de ces différentes structure. Soit rj (t) le signal reçu sur l’antenne Rj . Ce signal peut être exprimé par : rj (t) = X Nt i=1 X L l=1  h l ij (t) ∗ si(t)  + wj (t) (IV.19) où h l ij est un canal à L trajets multiples entre l’antenne d’émission Ti et celle de la réception Rj , si(t) est le signal OFDM transmis et wj est le bruit blanc additif Gaussien (AWGN) du signal. A la réception, une séquence locale seqj , de taille LC, peut être générée selon la configuration de préambule retenue sur chaque antenne de réception Rj . La fonction de corrélation R est réalisée entre le signal reçu rj et la séquence locale seqj . Cette fonction de corrélation, dans le cas d’une séquence locale, est donnée par : Rrj ,seqj (k) = LF F T X−1 n=0  rj (k).seq∗ j (n + k)  (IV.20) où k est l’indice de l’échantillon correspondant à l’indice temporel. La synchronisation temporelle est estimée par le terme ˆindk. Ce terme est donné par : ˆindk = argmax n {kRrj ,seqj (k)k} (IV.21) 97CHAPITRE IV. LES MÉTHODES PROPOSÉES Le ˆindk représente l’estimation de la synchronisation temporelle avec k donnant l’indice de début de la trame reçue. Le début du premier symbole OFDM est obtenu par le placement relatif de la fenêtre de la FFT. IV.2.3 Méthodes de zéro padding La méthode de zéro padding consiste à diviser le préambule en quatre parties identiques. La taille de chaque partie LC est égale à la taille du CP : LC = LCP = LF F T 4 Pour les quatre parties, nous pouvons transmettre les séquences de synchronisation dans une ou deux parties. Les autres parties sont mises à zéro. En se basant sur cette approche, nous proposons les deux méthodes suivantes : IV.2.3.1 Première structure de zéro padding (Z_P ad_1) Cette structure repose sur une des structures qui sont présentées dans la partie IV.2.3. La structure générale du préambule dans le domaine fréquentiel est représentée dans la figure IV.18. Fig. IV.18 – Schéma général du préambule de synchronisation de la Z_P ad_1 dans le domaine fréquentiel 98IV.2. LES TECHNIQUES PROPOSÉES POUR LA SYNCHRONISATION TEMPORELLE Dans cette configuration, une seule partie contient une séquence de synchronisation de type CAZAC et de taille LC. Les autres parties contiennent des zéros. Un CP de taille LCP est ajouté, dans le domaine temporel, au début de la séquence de synchronisation. La taille du préambule est : Lpr = 4.LC + LCP = 5.LC La structure générale sur les différentes antennes d’émission dans un système MIMO-OFDM est présentée dans la figure IV.19. Fig. IV.19 – Schéma de préambules de synchronisation de Z_P ad_1 dans le domaine fréquentiel sur les différentes antennes d’émission 99CHAPITRE IV. LES MÉTHODES PROPOSÉES L’équation du préambule dans le domaine fréquentiel (XTi u ) peut être exprimée par : X Ti u (k) =    0 si 0 ≤ k ≤ 3LF F T 4 − 1 C Ti (k − 3LF F T 4 ) si 3LF F T 4 ≤ k ≤ LF F T − 1 (IV.22) La fonction d’autocorrélation du préambule de synchronisation de cette structure est présentée dans la figure IV.20. Cette fonction présente de bonnes proprié- tés de corrélation, ces propriétés assurent de bonnes estimation de trame au niveau des récepteurs. 0 100 200 300 400 500 0 0.2 0.4 0.6 0.8 1 Indice Amplitude normalisée Fonction d'autocorrélation Fig. IV.20 – Fonction d’autocorrélation de la Z_P ad_1, LF F T =256 100IV.2. LES TECHNIQUES PROPOSÉES POUR LA SYNCHRONISATION TEMPORELLE A la réception, une fonction de corrélation entre le signal reçu et une séquence locale de taille LF F T ou bien de taille LF F T + LCP est appliquée pour estimer le début de trames reçues. La figure IV.21 représente les parties réelle et imaginaire de la structure du préambule de synchronisation dans le domaine temporel. 0 50 100 150 200 250 −1 −0.5 0 0.5 1 Indice Partie réelle 0 50 100 150 200 250 −1 −0.5 0 0.5 1 Indice Partie imaginaire Fig. IV.21 – Représentation du préambule dans le domaine temporel de Z_P ad_1, LF F T = 256 101CHAPITRE IV. LES MÉTHODES PROPOSÉES IV.2.3.2 Deuxième méthode de zéro padding (Z_P ad_2) Cette structure utilise le zéro padding de façon quelque peu différente. Le pré- ambule est divisé en quatre parties, deux d’entre elles contiennent les séquences de synchronisation, les deux autres sont à zéro. La structure de préambule est donnée dans la figure IV.22. La figure IV.23 représente la structure générale des préambules sur les différentes antennes d’émission. Fig. IV.22 – Schéma général du préambule de synchronisation de Z_P ad_2 dans le domaine fréquentiel Soit XTi u le préambule envoyé sur l’antenne d’émission Ti dans le domaine fréquentiel : X Ti u (k) =    C Ti (k) si 0 ≤ k ≤ LF F T 4 − 1 C Ti (k − LF F T 2 ) si LF F T 2 ≤ k ≤ 3LF F T 2 − 1 0 si    LF F T 4 ≤ k ≤ LF F T 2 − 1 3LF F T 2 ≤ k ≤ LF F T − 1 (IV.23) La figure IV.24 représente la fonction d’autocorrélation du préambule de synchronisation. Cette fonction de corrélation présente d’autres pics secondaires. La figure IV.25 présente l’envelope des parties réelles et complexes du préambule dans le domaine temporel. 102IV.2. LES TECHNIQUES PROPOSÉES POUR LA SYNCHRONISATION TEMPORELLE Fig. IV.23 – Schéma de préambules de synchronisation de Z_P ad_2 dans le domaine fréquentiel sur les différentes antennes d’émission 0 100 200 300 400 500 0 0.2 0.4 0.6 0.8 1 Indice Fonction d'autocorrélation Amplitude normalisée Fig. IV.24 – Fonction de corrélation de la Z_P ad_2, LF F T = 256 103CHAPITRE IV. LES MÉTHODES PROPOSÉES 0 50 100 150 200 250 −1 −0.5 0 0.5 1 Indice Partie réelle 0 50 100 150 200 250 −1 −0.5 0 0.5 1 Indice Partie imaginaire Fig. IV.25 – Représentation du préambule dans le domaine temporel de Z_P ad_2, LF F T = 256 104IV.3. CONCLUSION IV.3 Conclusion Dans ce chapitre, nous avons proposé plusieurs méthodes pour la synchronisation temporelle où un préambule de synchronisation est ajouté au début de chaque trame de symboles OFDM. Ces différentes méthodes sont basées sur différentes séquences comme les séquences d’Hadamard et les séquences CAZAC qui ont de bonnes propriétés de corrélation. A la réception, une fonction d’autocorrélation ou d’intercorrélation est appliquée pour estimer le pic de la synchronisation en temporel. Dans le cas d’un canal à trajets multiples, après la corrélation, nous obtenons plusieurs pics de corrélation. Dans le chapitre V nous étudions les performances des méthodes proposées dans ce chapitre. 105CHAPITRE IV. LES MÉTHODES PROPOSÉES 106IV.3. CONCLUSION Bibliographie [1] V. Tarokh, A. Naguib, N. Seshadri, and A. Calderbank, “Space-time codes for high data rate wireless communication : performance criteria in the presence of channel estimation errors, mobility, and multiple paths,” Communications, IEEE Transactions on, vol. 47, pp. 199 –207, Feb 1999. [2] S. Alamouti, “A simple transmit diversity technique for wireless communications,” Selected Areas in Communications, IEEE Journal on, vol. 16, pp. 1451–1458, Oct 1998. [3] A. Rachini, A. Beydoun, F. Nouvel, and B. Beydoun, “Timing synchronisation method for mimo-ofdm system using orthogonal preamble,” in Telecommunications (ICT), 2012 19th International Conference on, pp. 1–5, 2012. [4] R. Frank, S. Zadoff, and R. Heimiller, “Phase shift pulse codes with good periodic correlation properties (corresp.),” Information Theory, IRE Transactions on, vol. 8, pp. 381 –382, October 1962. [5] D. Chu, “Polyphase codes with good periodic correlation properties (corresp.),” Information Theory, IEEE Transactions on, vol. 18, no. 4, pp. 531– 532, 1972. [6] P. Fan and M. Darnell, Sequence Design for Communications Applications. John Wiley & Sons Ltd., 1996. [7] A. Rachini, A. Beydoun, F. Nouvel, and B. Beydoun, “A novel compact preamble structure for timing synchronization in mimo-ofdm systems using cazac sequences,” in International Conference on Communications, Computation, Networks and Technologies (INNOV), pp. 1–6, 2013. 107CHAPITRE IV. LES MÉTHODES PROPOSÉES 108CHAPITRE V LES RÉSULTATS DE SIMULATION Sommaire V.1 Simulation des méthodes de préambule court . . . . . . . . 110 V.1.1 Paramètres de simulations . . . . . . . . . . . . . . . 110 V.1.2 Résultats de simulations de P r_Court_1 . . . . . . . 111 V.1.3 Résultats de simulations de P r_Court_2 . . . . . . . 116 V.2 Simulation des méthodes de préambule compact . . . . . . 119 V.2.1 Paramètres de simulations . . . . . . . . . . . . . . . 120 V.2.2 Résultats de simulations de la méthode de préambule compact . . . . . . . . . . . . . . . . . . . . . . . . . 121 V.2.3 Les performances de la méthode de préambule compact 134 V.3 Résultats de simulations des méthodes de zéro padding . . 137 V.3.1 Résultats de simulations de Z_P ad_1 . . . . . . . . . 137 V.3.2 Résultats de simulations de Z_P ad_2 . . . . . . . . . 140 V.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 109CHAPITRE V. LES RÉSULTATS DE SIMULATION Après avoir décrit les différentes méthodes dans le chapitre IV, nous allons évaluer leurs performances et les comparer avec d’autres méthodes proposées dans la littérature. Les méthodes sont évaluées en terme de probabilité d’acquisition de synchronisation et selon le rapport signal à bruit (SNR). V.1 Simulation des méthodes de préambule court La méthode de préambule court, présentée dans la section IV.2.1 est évaluée avec différentes séquences. Les paramètres et les résultats de simulation de cette méthode proposant deux structures sont présentés dans les sections suivantes : V.1.1 Paramètres de simulations Les paramètres de simulation de cette méthode sont précisés dans les deux tableaux V.1 et V.2. Certains paramètres sont utilisés dans le système LTE (Long Term Evolution) [1], comme le délai entre les différents trajets multiples et la puissance de chaque trajet. Tableau. V.1 – Paramètres de simulation de la méthode de préambule court Paramètre de simulation Valeur MIMO-OFDM 2 × 2 Taille de FFT/IFFT 1024 Taille de l’intervalle de garde (CP) LCP = LF F T /4 = 256 Type du canal Rayleigh à trajets-multiples et AWGN Type de séquences de synchronisation Hadamard, CAZAC, Gold et ZCZ Taille du code dans chaque séquence de synchronisation (LC) 512 Nombre de trajets-multiples 9 110V.1. SIMULATION DES MÉTHODES DE PRÉAMBULE COURT Tableau. V.2 – Puissance moyenne et délai du canal de propagation (méthodes de préambule court) Délai de propagation entre les différents trajetsmultiples en microsecondes [1] [0.0, 0.03, 0.15, 0.31, 0.37, 0.71, 1.09, 1.73, 2.51] La puissance de chaque trajet multiple en dB [1] [0.0, -1.5, -1.4, -3.6, -0.6, -9.1, -7.0, -12.0 ,-16.9] V.1.2 Résultats de simulations de P r_Court_1 Cette structure consiste à envoyer un préambule qui est composé de différentes séquences courtes (Hadamard, CAZAC, ZCZ, TCH et Gold). Cette structure de préambule de synchronisation est présentée dans la figure V.1. �� �1 �2 �� �1 �2 �� Symbole OFDM �� �3 �4 �� �3 �4 �� Symbole OFDM Séquence 1 Séquence 1 Trame OFDM Préambule sur l’antenne d’émission �� Séquence 2 Séquence 2 Trame OFDM Préambule sur l’antenne d’émission �� Fig. V.1 – Préambules de synchronisation pour un système 2 × 2 (P r_Court_1) Nous avons simulé la méthode P r_Court_1 avec les séquences d’Hadamard, CAZAC, ZCZ pour un système MIMO-OFDM 2 × 2. 111CHAPITRE V. LES RÉSULTATS DE SIMULATION V.1.2.1 Simulation avec les séquences d’Hadamard La première méthode proposée dans la section IV.2.1.1, figure V.1, a été simulée en utilisant les paramètres résumés dans les deux tableaux V.1 et V.2. Afin de comparer les performances de notre méthode avec la proposition de W. Jian [2], des simulations ont été réalisées avec une longueur de FFT égale à 1024. La fi- gure V.2 présente une comparaison entre la probabilité d’acquisition de synchronisation de ces deux méthodes. -10 -5 0 5 0 0.2 0.4 0.6 0.8 1 Synchronisation temporelle SNR (dB) Probabilité d'acquisition Code d'Hadamard, seuil = 95% Code d'Hadamard, seuil = 93% Loosely Synchronous (LS) Codes -2 -1 0 1 2 0.95 1 Fig. V.2 – Probabilité d’acquisition de la synchronisation temporelle de méthode de pré- ambule court P r_Court_1 Nous pouvons remarquer que toutes les trames OFDM peuvent être récupérées avec un rapport signal à bruit (SNR) −5 dB ≤ SNR ≤ 0 dB pour la méthode P r_Court_1 avec un seuil de détection égale à 95% du seuil normalisé, tandis que l’acquisition de probabilité de synchronisation PSY NC de la méthode proposée dans [2] utilisant les codes Loosely Synchronous (LS) permet la détection des trames OFDM à partir d’un SNR ≥ 0 dB. 112V.1. SIMULATION DES MÉTHODES DE PRÉAMBULE COURT V.1.2.2 Simulation avec d’autres séquences Dans cette section, la structure de préambule et les paramètres de simulation sont identiques au cas précédent, seules les séquences et seuils de détection diffèrent. Les figures V.3 et V.4 permettent de comparer l’efficacité de différentes sé- quences (Hadamard, CAZAC, Gold et ZCZ), qui sont décrites dans le chapitre III. Dans la figure V.3, le seuil de détection est fixé à 96%. La probabilité de synchronisation temporelle PSY NC = 99% pour un SNR de −2 dB pour les séquences d’Hadamard et CAZAC. La PSY NC = 98% pour un SNR de 0 dB pour les sé- quences de Gold et ZCZ. Les résultats de simulation de séquences d’Hadamard et CAZAC présentent de bonnes performances par rapport aux autres différentes séquences. −2 0 2 4 6 8 10 0.9 0.92 0.94 0.96 0.98 1 SNR en dB Probabilité d’acquisition Synchronisation temporelle, LFFT=1024, seuil=96% Séquence d’Hadamard Séquence CAZAC Séquence de Gold Séquence ZCZ Fig. V.3 – Probabilité d’acquisition de la synchronisation temporelle en fonction de SNR et un seuil de détection à 96%, de méthode de préambule court P r_Court_1 113CHAPITRE V. LES RÉSULTATS DE SIMULATION Dans la figure V.4, le seuil de détection est fixé à 97%. La PSY NC > 99% pour un SNR de 2 dB pour les deux types de séquences Hadamard et CAZAC. La PSY NC = 98% pour le même SNR pour les séquences de Gold et ZCZ. Dans cette figure, nous trouvons que les séquences Hadamard et CAZAC sont plus performantes par rapport aux séquence de Gold et ZCZ. −2 0 2 4 6 8 10 0.9 0.92 0.94 0.96 0.98 1 SNR en dB Probabilité d’acquisition Synchronisation temporelle, LFFT=1024, seuil=97% Séquence d’Hadamard Séquence CAZAC Séquence de Gold Séquence ZCZ Fig. V.4 – Probabilité d’acquisition de la synchronisation temporelle en fonction de SNR et un seuil de détection à 97%, de méthode de préambule court P r_Court_1 Le CP inséré au début de chaque préambule de synchronisation permet de compenser les interférences entre symboles et d’augmenter l’efficacité de la probabilité de l’acquisition de synchronisation temporelle (PSY NC) en réception. A la réception une fonction de corrélation est appliquée entre le signal reçu (rj ) et une séquence locale. Deux approches ont été présentée, la première consiste à corréler rj avec une séquence locale qui contient un CP, et l’autre consiste à corréler rj avec une séquence locale qui ne contient le CP. Les figures V.5 et V.6 représentent une comparaison entre les performances de séquences d’Hadamard et CAZAC pour ces deux approches pour différents seuil de détection. 114V.1. SIMULATION DES MÉTHODES DE PRÉAMBULE COURT −2 −1 0 1 2 3 4 5 6 0.94 0.95 0.96 0.97 0.98 0.99 1 Synchronisation temporelle, LFFT=1024, seuil=96% SNR en dB Probabilité d’acquisition Séquence d’Hadamard avec CP Séquence CAZAC avec CP Séquence d’Hadamard sans CP Séquence CAZAC sans CP Fig. V.5 – Probabilité d’acquisition de la synchronisation temporelle en fonction de SNR et un seuil de détection à 96%, de méthode de préambule court P r_Court_1 Ces résultats de simulations montrent que la PSY NC est plus grande si la corrélation est effectuée entre le signal reçu (rj ) et une séquence locale augmentée d’un CP (séquence locale + le CP). Les notations sur les figures : sequenceX avec CP : corrélation du signal reçu (rj ) et une séquence locale (seqj ) avec le CP. sequenceX sans CP : corrélation du signal reçu (rj ) et une séquence locale (seqj ) sans le CP. où sequenceX ∈ {Hadamard, CAZAC} 115CHAPITRE V. LES RÉSULTATS DE SIMULATION −2 −1 0 1 2 3 4 5 6 0.9 0.92 0.94 0.96 0.98 1 SNR en dB Probabilité d’acquisition Synchronisation temporelle, LFFT=1024, seuil=98% Séquence d’Hadamard avec CP Séquence CAZAC avec CP Séquence d’Hadamard sans CP Séquence CAZAC sans CP Fig. V.6 – Probabilité d’acquisition de la synchronisation temporelle en fonction de SNR et un seuil de détection à 98%, de méthode de préambule court P r_Court_1 V.1.3 Résultats de simulations de P r_Court_2 La deuxième méthode proposée dans la section IV.2.1.2 a été simulée en utilisant les mêmes paramètres les tableaux V.1 et V.2 mais avec un seul symbole de synchronisation. Les résultats de simulation de cette méthode sont présentés dans la figure V.7. Dans cette figure, nous comparons les performances de séquences d’Hadamard et CAZAC. Le seuil de détection est fixé à 91%. La PSY NC = 1 à un SNR ≥ −5 dB pour les séquences d’Hadamard et la PSY NC = 1 à un SNR ≥ −4 dB pour les séquences CAZAC. Cette approche est comparée avec la méthode proposée dans [3]. La figure V.7 montre la probabilité d’acquisition pour la synchronisation temporelle en fonc- 116V.1. SIMULATION DES MÉTHODES DE PRÉAMBULE COURT −6 −4 −2 0 0.8 0.9 1 Synchronisation temporelle, seuil = 91% SNR en dB Probabilité d’acquisition 95% Méthode proposée avec code CAZAC Méthode proposée avec code d’Hadamard Fig. V.7 – Probabilité d’acquisition de la synchronisation temporelle dans un canal de à trajets-multiples + AWGN, seuil = 91%, de méthode de préambule court P r_Court_2 tion du SNR dans un canal de Rayleigh à trajets multiples (différent du modèle de canal utilisé en LTE) et un canal AWGN. Le seuil de détection du pic de synchronisation est fixé à 89% du pic de corrélation normalisée. Il est remarqué, dans [3], que la probabilité d’acquisition de la synchronisation temporelle est égale à 1 pour un SNR ≥ −5 dB, tandis que dans notre approche, la probabilité d’acquisition de la synchronisation temporelle est égale à 1 à partir d’un SNR ≥ −6 dB pour les séquences d’Hadamard et la PSY NC = 1 à partir d’un SNR ≥ −4 dB pour les séquences CAZAC. Si le seuil de détection est ramené à 89%, la probabilité d’acquisition de la synchronisation temporelle peut être plus efficace pour une faible valeur de SNR comme le montre la figure V.8. 117CHAPITRE V. LES RÉSULTATS DE SIMULATION −8 −6 −4 −2 0 0.6 0.7 0.8 0.9 1 Synchronisation temporelle, seuil = 89% SNR en dB Probabilité d’acquisition Méthode proposée avec code d’Hadamard Méthode proposée avec code CAZAC Méthode proposée par Z. Gao, J. Xu, and Z. Zhang Fig. V.8 – Probabilité d’acquisition de la synchronisation temporelle dans un canal à trajets multiples + AWGN, seuil = 89%, de méthode de préambule court P r_Court_2 La figure V.9 représente une comparaison de performance de différentes sé- quences de synchronisation pour différents seuils de détection. Soient les quatres types de séquence, CAZAC, Hadamard, Gold et ZCZ, sont simulées avec les deux différents seuils de détection, 96% et 97%. Dans cette figure, nous remarquons que pour un seuil de détection égal à 96%, les séquences CAZAC et Hadamard présentent une synchronisation parfaite à partir d’un SNR ≥ 4 dB, autrement, à partir d’un SNR ≥ 6 dB, ces deux séquences présentent une synchronisation parfaite pour un seuil de détection égal à 96%. Dans la même figure, nous trouvons que les autres types de séquences, Gold et ZCZ, présentent de bonnes performances pour les deux différents seuils de dé- tection, 96% et 97% à partir d’un SNR ≥ 4 dBet6 dB respectivement, mais dans 118V.2. SIMULATION DES MÉTHODES DE PRÉAMBULE COMPACT −2 0 2 4 6 8 10 0.95 0.96 0.97 0.98 0.99 1 SNR en dB Probabilité d’acquisition (PSYNC ) Synchronisation temporelle, LFFT=1024, Pr_Court_1 Hadamard−seuil=96% CAZAC−seuil=96% Gold−seuil=96% ZCZ−seuil=96% Hadamard−seuil=97% CAZAC−seuil=97% Gold−seuil=97% ZCZ−seuil=97% Fig. V.9 – Comparaison de la probabilité d’acquisition de la synchronisation temporelle de méthode de préambule court P r_Court_2 avec différents seuils et séquences ces pour ces deux types de séquences, nous ne trouvons pas une synchronisation parfaite même pour un SNR ≥ 10 dB. Après les résultats de simulations dans la figure V.9, nous trouvons que les séquences CAZAC et Hadamard présentent de bonnes performances par rapport aux autres types de séquences et surtout pour les systèmes MIMO-OFDM. V.2 Simulation des méthodes de préambule compact Cette section présente les résultats de simulation des quatre propositions pré- sentés en IV.2.2. Ces résultats sont exprimés en pourcentage de bonne réception 119CHAPITRE V. LES RÉSULTATS DE SIMULATION de trames selon les valeurs de SNR. V.2.1 Paramètres de simulations Les simulations ont été réalisées en utilisant les paramètres présentés dans les deux tableaux V.3 et V.4. Le tableau V.3 présente la structure d’un système MIMO-OFDM, la taille de la FFT et les types de séquences utilisées. Tableau. V.3 – Paramètres de simulations de méthodes de préambule compact Paramètres de simulations Valeur Système MIMO-OFDM jusqu’à 8 × 8 Taille de FFT/IFFT (LF F T ) 1024, 512 et 256 Taille du Préfixe cycliques (LCP ) LF F T /4 Type du canal Canal de Rayleigh à trajets multiples et canal AWGN Type de séquences CAZAC Taille de séquences orthogonales (LC) LF F T /2 Nombre de symboles de synchronisation 1 Nombre de trajets multiples 6 SNR moyen sur toute la trame OFDM (Préambule + symboles OFDM) de 0 dB à 25 dB Le modèle de canal de Rayleigh à trajets multiples est proposé par le groupe IEEE 802.11 [4]. Ce canal a été adopté pour simuler 6 trajets multiples qui sont espacés de TS, où TS désigne la période d’échantillonnage. Une comparaison est faite entre notre méthode et celle proposée dans [5] en utilisant les paramètres de simulation des tableaux V.3 et V.4. Hung-Chin Wang et Chin-Liang Wang présentent dans [5] une méthode de synchronisation pour un système MIMO-OFDM distribué. Cette méthode consiste à envoyer le préambule dans le domaine fréquentiel, les séquences de synchronisation sont portées 120V.2. SIMULATION DES MÉTHODES DE PRÉAMBULE COMPACT Tableau. V.4 – Puissance moyenne du canal de Rayleigh à trajets multiples (méthodes de préambule compact) Délai de prorogation entre les différents trajets multiples [1] [0.Ts, 1.Ts, 2.Ts, 3.Ts, 4.Ts, 5.Ts] La puissance de chaque trajet multiple en dB [1] [0.8111, 0.1532, 0.0289, 0.0055, 0.0010, 0.0002] par des sous-bandes adjacentes. Ces sous-bandes adjacentes sont espacées par des bandes de garde pour réduire les interférences entre les sous-bandes. Dans [5] les séquences de synchronisation sont chargées sur une sous-bande de manière équidistante (par exemple, sous-bande 1 et sous-bande Nt) comme indiqué dans la figure II.7. L’approche des auteurs [5] présente plusieurs inconvénients, elle est limitée par le nombre des antennes et la taille du préambule. Supposons que la taille de préambule soit fixe, si le nombre des antennes augmente donc la taille des sousbandes doit être diminuée. Dans notre méthode de préambule compact, la taille de préambule n’est pas liée directement au nombre des antennes. Quel que soit les nombres des antennes d’émission, la taille de préambule est égale à la taille de la FFT. V.2.2 Résultats de simulations de la méthode de préambule compact L’idée principale de la méthode proposée est de détecter l’arrivée de paquets afin de détecter le début du symbole OFDM. Pour détecter le pic de synchronisation, une fonction de corrélation Rrj ,seqj est réalisée entre le signal reçu rj et une séquence locale seqj à l’antenne de réception Rj . La fonction générale de corrélation est rappelée dans l’équation V.1 suivante : 121CHAPITRE V. LES RÉSULTATS DE SIMULATION Rrj ,seqj (k) = X Lseq n=0  rj (k) ∗ seq∗ j (n + k)  (V.1) où Lseq est la taille de la séquence de corrélation et n est l’indice de l’échantillon qui correspondant à l’indice temporel. L’estimation de la synchronisation temporelle ( ˆindk) est donnée par : ˆindk = argmax k {kRrj ,seqj (k)k} (V.2) L’ ˆindk sera considéré comme le point de synchronisation temporelle ou le dé- but d’une trame. Le début du premier symbole OFDM est obtenu par le placement relatif de la fenêtre de la FFT. Sur chaque antenne de réception Rj , une fonction de corrélation Rrj ,seqj dans le domaine temporel est calculée afin de détecter le pic de synchronisation. V.2.2.1 Résultats de simulations de P r_Compact_1 La première méthode de préambule compact, section IV.2.2.1 consiste à envoyer un préambule qui est constitué d’une séquence CAZAC et de son "- conjugué" comme indique la figure V.10. ૙࡯ ૙࡯− ࢏ ૚࡯ ∗࢏ ૚࡯− ࢏ ࢀࡲࡲࡸ࡯ ∗࢏ ૛ ି૚ ࢀࡲࡲࡸ࡯− ࢏ ૛ ି૚ ∗࢏ ………………….. Fig. V.10 – Structure de préambule dans le domaine fréquentiel sur chaque antenne d’émission - P r_Compact_1 où LF F T est la longueur du préambule, C est la séquence CAZAC où C i k repré- sente le k ième échantillon de la séquence CAZAC dans le domaine des fréquences 122V.2. SIMULATION DES MÉTHODES DE PRÉAMBULE COMPACT −5 0 5 10 15 0.8 0.85 0.9 0.95 1 Synchronisation temporelle, LFFT=1024 SNR en dB Probabilité d’acquisition (PSYNC ) SISO 1x1 MIMO 2x2 MIMO 4x4 MIMO 8x8 Fig. V.11 – Probabilité d’acquisition de synchronisation temporelle de méthode de pré- ambule compact P r_Compact_1 avec LF F T = 1024 transmis sur l’antenne d’émission Ti et ∗ désigne le conjugué. La séquence CAZAC C est mappée sur les sous-porteuses impaires tandis que le −conjugue´ de C est mappé sur les sous-porteuses impaires. Les figures V.11 et V.12 présentent les probabilités d’acquisition de cette approche pour différentes tailles de FFT (LF F T = 1024, LF F T = 512 respectivement.) et différentes structures des systèmes SISO-OFDM (1 × 1) et MIMOOFDM (2 × 2, 4 × 4 et 8 × 8). La figure V.11 montre que la probabilité d’acquisition (PSY NC) s’approche de 1 pour les deux systèmes SISO-OFDM et MIMO-OFDM 2 × 2 à partir d’un SNR > −5 dB. Pour un système MIMO-OFDM 4×4, la PSY NC ≥ 97% à partir d’un SNR > 0 dB. La PSY NC ≥ 92% pour un système MIMO-OFDM 8 × 8 à partir d’un SNR > 0 dB. 123CHAPITRE V. LES RÉSULTATS DE SIMULATION −5 0 5 10 15 0.4 0.5 0.6 0.7 0.8 0.9 1 Synchronisation temporelle, LFFT=512 SNR en dB Probabilité d’acquisition (PSYNC ) SISO 1x1 MIMO 2x2 MIMO 4x4 MIMO 8x8 Fig. V.12 – Probabilité d’acquisition de synchronisation temporelle de méthode de pré- ambule compact P r_Compact_1 avec LF F T = 512 La figure V.12 représente la probabilité d’acquisition (PSY NC) pour une sé- quence de synchronisation de taille LF F T = 512. Cette figure montre que la PSY NC s’approche de 1 pour les deux systèmes SISO-OFDM et MIMO-OFDM 2 × 2 à partir d’un SNR > −5 dB. Pour les systèmes MIMO-OFDM 4 × 4, la PSY NC ≥ 95% à partir d’un SNR > 0 dB. Autrement, pour les systèmes MIMO-OFDM 8 × 8, la PSY NC ≥ 85% à partir d’un SNR > 0 dB. Après l’analyse de résultats de simulation dans les deux figures V.11et V.12, nous trouvons que les performances de la synchronisation temporelle se dégradent avec la taille de la séquence de synchronisation. Une comparaison entre notre approche et un autre schéma de synchronisation proposé dans [5], est présentée dans la figure V.13 (avec les paramètres des tableaux V.3 et V.4). 124V.2. SIMULATION DES MÉTHODES DE PRÉAMBULE COMPACT -5 0 5 10 15 20 25 0 0.2 0.4 0.6 0.8 1 Synchronisation temporelle, FFT=256 SNR en dB Probabilité d'acquisition MIMO 2x2 MIMO 3x3 Hung-Chin-Wang 2x2 Hung-Chin-Wang 3x3 Fig. V.13 – Comparaison entre P r_Compact_1 et la méthode de préambule de sousbande dans [5],LF F T = 256 Dans cette figure, nous avons simulé des systèmes MIMO-OFDM 2 × 2 et 3 × 3 avec un préambule de synchronisation de taille LF F T = 256. Cette figure montre que notre approche a de bonnes performances par rapport à la méthode dans [5], surtout à faible SNR. La probabilité d’acquisition dans notre approche est PSY NC ≥ 90% à partir d’un SNR ≥ 5 dB pour les cas MIMO-OFDM 2 × 2 et 3 × 3, tandis que la méthode proposée dans [5] montre que la probabilité d’acquisition est comprise entre 50% et 75% à partir d’un SNR ≥ 5 dB pour les les cas MIMO-OFDM 2 × 2 et 3 × 3. V.2.2.2 Résultats de simulations de P r_Compact_2 Cette méthode consiste à envoyer un préambule constitué de deux parties, dont une partie contient une séquence CAZAC et l’autre partie contient le "-conjugué" 125CHAPITRE V. LES RÉSULTATS DE SIMULATION de la séquence CAZAC, comme l’indique la figure V.14. ૙࡯ ૚࡯ ࢏ ࢀࡲࡲࡸ࡯ ࢏ ૛ ି૚ ࢏ ૙࡯- ∗࢏ ࢀࡲࡲࡸ࡯- ૛ ି૚ ∗࢏ ……… ………….. Fig. V.14 – Structure de préambule dans le domaine fréquentiel sur chaque antenne d’émission - P r_Compact_2 -5 0 5 10 15 20 25 0 0.2 0.4 0.6 0.8 1 Synchronisation temporelle SNR dB Probabilité d'acquisition Proposed SISO 1x1 Proposed MIMO 2x2 Proposed MIMO 4x4 Proposed MIMO 8x8 8 10 12 14 0.95 1 Fig. V.15 – Performances de la synchronisation temporelle de la méthode de préambule compact P r_Compact_2, LF F T = 1024 Les résultats des probabilités d’acquisition de la synchronisation temporelle sont présentés dans les figures V.15 et V.16 pour différentes taille de (LF F T = 1024 et LF F T = 512 respectivement). Différentes structures SISO-OFDM (1 × 1) 126V.2. SIMULATION DES MÉTHODES DE PRÉAMBULE COMPACT et MIMO-OFDM (2 × 2, 4 × 4 et 8 × 8) sont considérées. La figure V.15 montre que la probabilité d’acquisition (PSY NC) pour les systèmes SISO-OFDM et MIMO-OFDM 2×2 s’approche de 1 à partir d’un SNR > −5 dB. Pour les systèmes MIMO-OFDM 4 × 4, la PSY NC ≥ 95% à partir d’un SNR ≥ 0 dB, tandis que pour un système MIMO-OFDM 8×8 la PSY NC ≥ 90% à partir d’un SNR ≥ 3 dB. -5 0 5 10 15 20 25 0 0.2 0.4 0.6 0.8 1 Synchronisation temporelle SNR dB Probabilité d'acquisition SISO 1x1 MIMO 2x2 MIMO 4x4 MIMO 8x8 Fig. V.16 – Performances de la synchronisation temporelle de la méthode de préambule compact P r_Compact_2, LF F T = 512 La figure V.16 présente la probabilité d’acquisition de la synchronisation temporelle pour un FFT de taille LF F T = 512. La PSY NC subit une dégradation assez importante, pour les systèmes SISO, MIMO 2 × 2 et 4 × 4, par rapport aux résultats présentés dans la figure V.15 pour une taille de FFT LF F T = 1024. La PSY NC 127CHAPITRE V. LES RÉSULTATS DE SIMULATION s’approche de 1 à partir d’un SNR ≥ 0 dB pour les systèmes SISO-OFDM et MIMO-OFDM 2 × 2. Pour les systèmes MIMO-OFDM 4 × 4, la PSY NC ≥ 95% à partir d’un SNR ≥ 0 dB. Cette PSY NC ≥ 90% à partir d’un SNR ≥ 10 dB pour les systèmes MIMO-OFDM 8 × 8. Par conséquent, la valeur du pic de corrélation d’un préambule de taille LF F T = 1024 est plus grande que celle d’un préambule de taille LF F T = 512, ce qui permet une meilleure détection du pic de synchronisation. L’intercorrélation entre les préambules est également plus faible. -5 0 5 10 15 20 25 0 0.2 0.4 0.6 0.8 1 Synchronisation temporelle SNR dB Probabilité d'acquisition MIMO 2x2 MIMO 3x3 Hung-Chin-Wang 2x2 Hung-Chin-Wang 3x3 Fig. V.17 – Comparaison entre P r_Compact_2 et la méthode de préambule de sousbande dans [5], LF F T = 256 Une autre comparaison entre cette structure et celle proposée dans [5], est pré- sentée dans la figure V.17. Dans cette figure, les résultats de simulation montrent l’efficacité de notre méthode vis à vis de celle de [5], surtout pour un faible SNR tout en utilisant les paramètres de simulation présentés dans les tableaux V.3 et V.4 (canal de Rayleigh). 128V.2. SIMULATION DES MÉTHODES DE PRÉAMBULE COMPACT Dans cette figure, la probabilité d’acquisition PSY NC de notre approche est PSY NC ≥ 90% à partir d’un SNR ≥ 0 dB pour les systèmes MIMO-OFDM 2 × 2, et PSY NC ≥ 90% à partir d’un SNR ≥ 5 dB pour les systèmes MIMOOFDM 3 × 3, tandis que la méthode proposée dans [5] montre que la probabilité d’acquisition est comprise entre 50% et 75% à partir d’un SNR ≥ 5 dB pour les mêmes systèmes MIMO-OFDM. V.2.2.3 Résultats de simulations de P r_Compact_3 Dans cette section, nous présentons les résultats de simulation de la méthode de préambule compact P r_Compact_3. Cette méthode est rappelée dans la fi- gure V.18. ૙࡯ ૙࡯ ࢏ ૚࡯ ∗࢏ ૚࡯ ࢏ ࢀࡲࡲࡸ࡯ ∗࢏ ૛ ି૚ ࢀࡲࡲࡸ࡯ ࢏ ૛ ି૚ ∗࢏ ………………….. Fig. V.18 – Structure de préambule dans le domaine fréquentiel sur chaque antenne d’émission - P r_Compact_3 Les paramètres de simulations sont décrits dans les deux tableaux V.3 et V.4. Les figures V.19 et V.20 présentent la probabilité d’acquisition de la synchronisation temporelle en fonction du SNR selon différentes tailles de FFT, LF F T = 1024, LF F T = 512 respectivement. La figure V.19 montre que la probabilité d’acquisition PSY NC est accrue par rapport aux autres structures utilisées pour une taille de FFT LF F T = 1024. Dans cette figure, la PSY NC s’approche de 1 pour les systèmes SISO-OFDM et MIMOOFDM 2 × 2 à partir d’un SNR ≥ 0 dB, pour le même SNR, la PSY NC ≥ 95% pour les systèmes MIMO-OFDM 4 × 4. Pour les systèmes MIMO-OFDM 8 × 8, la PSY NC > 95% à partir d’un SNR ≥ 5 dB. 129CHAPITRE V. LES RÉSULTATS DE SIMULATION −5 0 5 10 15 0.75 0.8 0.85 0.9 0.95 1 Synchronisation temporelle, LFFT=1024 SNR en dB Probabilité d’acquisition (PSYNC ) SISO 1x1 MIMO 2x2 MIMO 4x4 MIMO 8x8 Fig. V.19 – Performances de probabilité de la synchronisation temporelle de la méthode de préambule compact P r_Compact_3, LF F T = 1024 -5 0 5 10 15 20 25 0 0.2 0.4 0.6 0.8 1 Synchronisation temporelle SNR dB Probabilité d'acquisition SISO 1x1 MIMO 2x2 MIMO 4x4 MIMO 8x8 Fig. V.20 – Performances de probabilité de la synchronisation temporelle de la méthode de préambule compact P r_Compact_3 (LF F T = 512) 130V.2. SIMULATION DES MÉTHODES DE PRÉAMBULE COMPACT -5 0 5 10 15 20 25 0 0.2 0.4 0.6 0.8 1 Synchronisation temporelle SNR dB Probabilité d'acquisition MIMO 2x2 MIMO 3x3 Hung-Chin-Wang 2x2 Hung-Chin-Wang 3x3 Fig. V.21 – Comparaison entre P r_Compact_3 et la méthode de préambule de sousbande dans [5], LF F T = 256 Dans la figure V.20, où LF F T = 512, la PSY NC s’approche de 1 pour les systèmes SISO-OFDM et MIMO-OFDM 2 × 2 à partir d’un SNR ≥ 0 dB. Pour les systèmes MIMO-OFDM 4 × 4, la PSY NC > 92% à partir d’un SNR ≥ 0 dB. La PSY NC > 80% à partir d’un SNR ≥ 5 dB pour les systèmes MIMO-OFDM 8 × 8. Nous remarquons toujours une dégradation des performances lorsque la longueur du préambule de synchronisation se décroît. La figure V.21 montre une comparaison de la probabilité d’acquisition de synchronisation temporelle PSY NC entre notre approche et la méthode proposée dans [5] pour les mêmes paramètres de simulations qui ont été considérés dans la section V.2.2. Comme précédemment, notre méthode de préambule compact P r_Compact_3 présente une meilleure détection de la synchronisation temporelle à faible SNR et une taille de FFT réduite. 131CHAPITRE V. LES RÉSULTATS DE SIMULATION V.2.2.4 Résultats de simulations de P r_Compact_4 La quatrième méthode de préambule compact est rappelée dans la figure V.22. Cette structure consiste à diviser le préambule de synchronisation en deux parties égales dont la première partie contient une séquence CAZAC C de taille LF F T /2 et l’autre partie contient le conjugué de C. ૙࡯ ૚࡯ ࢏ ࢀࡲࡲࡸ࡯ ࢏ ૛ ି૚ ૙࡯ ࢏ ࢀࡲࡲࡸ࡯ ∗࢏ ૛ ି૚ ∗࢏ ……… ………….. Fig. V.22 – Structure de préambule dans le domaine fréquentiel sur chaque antenne d’émission - P r_Compact_4 Les figures V.23 et V.24 présentent les résultats de simulation de cette structure avec différentes LF F T . Les résultats de simulation présentés dans la figure V.23 nous permettent de vérifier que le point de synchronisation temporelle peut être ré- cupéré pour un faible SNR pour un FFT de taille LF F T = 1024. Pour les systèmes SISO-OFDM, la PSY NC s’approche de 1 à partir d’un SNR ≥ −5 dB, pour un même SNR,la PSY NC > 95% pour les systèmes MIMO-OFDM 2 × 2. Pour les systèmes MIMO-OFDM 4 × 4, la PSY NC > 97% à partir d’un SNR ≥ 5 dB. Cette approche ne présente pas de bonnes performance pour les système MIMOOFDM 8 × 8. La figure V.24 présente les résultats de simulation avec un FFT de taille LF F T = 512. En comparant ces résultats avec les résultats de simulation pour une taille de FFT égale à 1024, nous trouvons une faible dégradation entre les deux résultats et notamment avec un système MIMO-OFDM 4 × 4 et 8 × 8. Nous avons comparé notre approche avec la méthode proposée dans [5], pour une taille de FFT LF F T = 256, utilisant les systèmes MIMO-OFDM 2×2 et 3×3. 132V.2. SIMULATION DES MÉTHODES DE PRÉAMBULE COMPACT −5 0 5 10 15 20 25 0.7 0.75 0.8 0.85 0.9 0.95 1 Synchronisation temporelle, LFFT=1024 SNR en dB Probabilité d’acquisition (PSYNC ) SISO 1x1 MIMO 2x2 MIMO 4x4 MIMO 8x8 Fig. V.23 – Performances de probabilité de la synchronisation temporelle de la méthode de préambule compact P r_Compact_4 (LF F T = 1024) −5 0 5 10 15 0.4 0.5 0.6 0.7 0.8 0.9 1 Synchronisation temporelle, LFFT=512 SNR en dB Probabilité d’acquisition (PSYNC ) SISO 1x1 MIMO 2x2 MIMO 4x4 MIMO 8x8 Fig. V.24 – Performances de probabilité de la synchronisation temporelle de la méthode de préambule compact P r_Compact_4 (LF F T = 512) 133CHAPITRE V. LES RÉSULTATS DE SIMULATION −5 0 5 10 15 20 25 0 0.2 0.4 0.6 0.8 1 Synchronisation temporelle, LFFT=256 SNR en dB Probabilité d’acquisition (PSYNC ) MIMO 2x2 MIMO 3x3 Hung−Chin−Wang 2x2 Hung−Chin−Wang 3x3 Fig. V.25 – Comparaison entre P r_Compact_4 et la méthode de préambule de sousbande dans [5], LF F T = 256 Ces résultats de simulations sont présentés dans la figure V.25. La probabilité de synchronisation de notre approche est PSY NC ≥ 90% pour les deux systèmes MIMO-OFDM 2 × 2 et 3 × 3 à partir d’un SNR ≥ 0 dB, par ailleurs, celle de la méthode proposée dans [5] est entre 50% et 75% à partir d’un SNR ≥ 5 dB pour les mêmes systèmes MIMO-OFDM. Nous pouvons noter que notre approche présente toujours de meilleurs résultats que celle de [5]. V.2.3 Les performances de la méthode de préambule compact Nous avons simulé une nouvelle méthode, qui nous l’appelé "méthode de préambule compact". Cette méthode est divisé en quatre structure différentes. Les résultats de simulation de ces quatre structure présentent des bonne performances contre d’autres méthodes. La combinaison d’une séquence CAZAC avec son conjugué ou bien avec son "-conjugué", présente une structure de préambule, dans le domaine temporel, intéressante pour avoir un pic de corrélation impor- 134V.2. SIMULATION DES MÉTHODES DE PRÉAMBULE COMPACT tante. La fonction d’autocorrélation de la première et la troisième méthode de pré- ambule compact (P r_Compact_1 et P r_Compact_3) est meilleure que celle de P r_Compact_2 et P r_Compact_4. La répartition du conjugué (ou le -conjugué) de séquence CAZAC sur les sous-porteuses impaires, dans le domaine fréquentiel, présente une petite dégradation de la performances de détection de synchronisation, mais dans tous les cas, cette méthode apporte de très bonnes performances contre certaines méthodes présentées dans cette section. Les deux figures V.26 et V.27 présentent une comparaison entre les quatres méthodes de préambule compact entre elles pour différents combinaison de de système MIMO. −5 0 5 10 15 0.9 0.92 0.94 0.96 0.98 1 SNR en dB Probabilité d’acquisition (PSYNC ) Synchronisation temporelle, MIMO−OFDM 2× 2, LFFT=1024 Pr_Compact_1 Pr_Compact_2 Pr_Compact_3 Pr_Compact_4 Fig. V.26 – Comparaison entre les quatres méthodes de préambule compact, LF F T = 1024, MIMO-OFDM 2 × 2 Dans la figure V.26, nous trouvons que pour les deux méthodes de préambule compact P r_Compact_1 et P r_Compact_2 présentent une synchronisation 135CHAPITRE V. LES RÉSULTATS DE SIMULATION −5 0 5 10 15 20 0.8 0.85 0.9 0.95 1 SNR en dB Probabilité d’acquisition (PSYNC ) Synchronisation temporelle, MIMO−OFDM 4 × 4, LFFT=1024 Pr_Compact_1 Pr_Compact_2 Pr_Compact_3 Pr_Compact_4 Fig. V.27 – Comparaison entre les quatres méthodes de préambule compact, LF F T = 1024, MIMO-OFDM 4 × 4 parfaite pour un SNR ≥ 5 dB, les deux autre méthodes présentent une synchronisation parfaite pour un SNR ≥ 6 dB sous les même conditions de simulations. Pour un système de transmission MIMO-OFDM 4 × 4, P r_Compact_1 et P r_Compact_3 présentent une synchronisation parfaite pour un SNR ≥ 10 dB, ainsi que les deux autres méthodes peuvent avoir une probabilité de synchronisation temporelle égale à 98% pour le même SNR. Dans ces deux figure, nous avons constaté qu’une dégradation de performance de la probabilité de synchronisation temporelle se présente quand les nombres des antennes dans un système MIMO augmente. 136V.3. RÉSULTATS DE SIMULATIONS DES MÉTHODES DE ZÉRO PADDING V.3 Résultats de simulations des méthodes de zéro padding La méthode de zéro padding, présentée dans la section IV.2.3, consiste à diviser le préambule en quatre parties identiques, chaque partie étant de taille égale à celle du préfixe cyclique CP. Nous avons étudié deux structures pour cette approche. Les simulations ont été réalisées en utilisant les paramètres donnés dans les tableaux V.3 et V.4. Dans cette section, nous avons simulé des systèmes MIMO-OFDM jusqu’à 16 × 16. V.3.1 Résultats de simulations de Z_P ad_1 Pour réaliser la synchronisation temporelle, le préambule de synchronisation, présenté dans la section IV.2.3.1, est transmis selon la figure V.28 dans le domaine fréquentiel. Cette méthode consiste à insérer une séquence CAZAC, dans le domaine fréquentiel, dans une partie de préambule, les trois autres parties étant à zéro. Fig. V.28 – Structure générale de préambule de (Z_P ad_1) dans le domaine fréquentiel Les deux figures V.29 et V.30 présentent la probabilité d’acquisition PSY NC pour des FFT de tailles LF F T = 1024 et LF F T = 256 respectivement. Dans la figure V.29, la taille de la FFT est LF F T = 1024, les résultats de simulation montrent que pour des systèmes MIMO-OFDM 2 × 2 et 4 × 4, la 137CHAPITRE V. LES RÉSULTATS DE SIMULATION −20 −15 −10 −5 0 5 10 15 0 0.2 0.4 0.6 0.8 1 Synchronisation temporelle, LFFT=1024 SNR en dB Probabilité d’acquisition (PSYNC ) MIMO 2x2 MIMO 4x4 MIMO 8x8 MIMO 16x16 Fig. V.29 – Performances de probabilité de la synchronisation temporelle de la méthode de zero padding Z_P ad_1, LF F T = 1024 −20 −15 −10 −5 0 5 10 15 0 0.2 0.4 0.6 0.8 1 Synchronisation temporelle, LFFT=512 SNR en dB Probabilité d’acquisition (PSYNC ) MIMO 2x2 MIMO 4x4 MIMO 8x8 MIMO 16x16 Fig. V.30 – Performances de la synchronisation temporelle de la méthode de zero padding Z_P ad_1, LF F T = 512 138V.3. RÉSULTATS DE SIMULATIONS DES MÉTHODES DE ZÉRO PADDING PSY NC > 97% à partir d’un SNR ≥ −10 dB et cette probabilité s’approche de 1 à partir d’un SNR ≥ −7 dB. Pour des systèmes MIMO-OFDM 8 × 8, la PSY NC > 96% à partir d’un SNR ≥ −5 dB. Tandis que, pour un système MIMO-OFDM 16 × 16, la PSY NC > 82% à partir d’un SNR ≥ −5 dB. La figure V.30 présente les résultats de simulation pour une FFT de taille LF F T = 512. Nous notons une légère dégradation de performance vis à vis du cas LF F T = 1024, la séquence de CAZAC étant plus courte ainsi que le CP. Nous avons aussi comparé nos résultats avec ceux de dans [5] avec les mêmes paramètres de simulations. Ces résultats de simulation sont présentés dans la fi- gure V.31. −5 0 5 10 15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Synchronisation temporelle, LFFT=256 SNR en dB Probabilité d’acquisition MIMO 2x2 MIMO 3x3 Hung−Chin−Wang 2x2 Hung−Chin−Wang 3x3 Fig. V.31 – Comparaison entre la méthode de zero padding Z_P ad_1 et la méthode de préambule de sous-bande dans [5], LF F T = 256 Cette figure montre que l’approche Zéro Padding présente de bonnes per- 139CHAPITRE V. LES RÉSULTATS DE SIMULATION formances vis à vis de [5] surtout pour un faible SNR. Dans notre approche, la PSY NC ≥ 95% à partie d’un SNR ≥ −5 dB pour les systèmes MIMO-OFDM 2 × 2 et 3 × 3, tandis que la méthode proposée dans [5] montre que la probabilité d’acquisition est comprise entre 50% et 75% à partir d’un SNR ≥ 5 dB pour les les cas MIMO-OFDM 2 × 2 et 3 × 3. Le tableau V.5 présente une synthèse de différents résultats obtenus, selon les configurations MIMO et taille de FFT. Tableau. V.5 – Comparaison de la probabilité d’acquisition avec différents systèmes MIMO-OFDM et différentes longueurs de FFT de la méthode Z_P ad_1 La probabilité d’acquisition de la première méthode de Zéro Padding Système MIMO-OFDM PSY NC Pour un SNR LF F T MIMO-OFDM 2x2 >99% >-7 dB 1024 >99% >-5 dB 512 MIMO-OFDM 4x4 >99% >-7 dB 1024 >95% >-5 dB 512 MIMO-OFDM 8x8 >96% >-5 dB 1024 >95% >0 dB 512 MIMO-OFDM 16x16 >82% >-5 dB 1024 >80% >-5 dB 512 Dans ce tableau, nous trouvons que cette méthode présente de bonnes performances pour les systèmes MIMO-OFDM 2 × 2 pour un faible SNR. Par consé- quence, une petite dégradation de performance de cette méthode se présente quand le nombre des antennes du système MIMO se diminue ou la taille du préambule de synchronisation se diminue. V.3.2 Résultats de simulations de Z_P ad_2 Cette méthode consiste à diviser le préambule en quatre parties dans le domaine fréquentiel : deux parties contiennent des séquences CAZAC pour la syn- 140V.3. RÉSULTATS DE SIMULATIONS DES MÉTHODES DE ZÉRO PADDING chronisation, les deux autres contiennent des zéros comme indiqué dans la figure V.32. Fig. V.32 – Structure générale du préambule de synchronisation de la méthode de zéro padding Z_P ad_2 Les résultats de simulation pour différentes longueurs de FFT, LF F T = 1024 et LF F T = 512, sont donnés dans les figures V.33 et V.34 respectivement. -20 -15 -10 -5 0 5 10 15 0 0.2 0.4 0.6 0.8 1 Synchronisation temporelle, FFT=1024 SNR en dB Probabilité d'acquisition MIMO 2x2 MIMO 4x4 MIMO 16x16 MIMO 8x8 Fig. V.33 – Performances de la synchronisation temporelle de la méthode de zero padding Z_P ad_2, LF F T = 1024 Le tableau V.6 donne la synthèse des probabilités d’acquisition selon les confi- gurations MIMO-OFDM et taille de FFT. Dans ce tableau, la probabilité de syn- 141CHAPITRE V. LES RÉSULTATS DE SIMULATION -20 -15 -10 -5 0 5 10 15 0 0.2 0.4 0.6 0.8 1 Synchronisation temporelle, FFT=512 SNR en dB Probabilité d'acquisition MIMO 2x2 MIMO 4x4 MIMO 8x8 MIMO 16x16 Fig. V.34 – Performances de la synchronisation temporelle de la méthode de zero padding Z_P ad_2, LF F T = 512 chronisation, pour un système MIMO-OFDM 2 × 2, est plus grand que 95% à partir d’un SNR de -4 dB pour une taille de LF F T = 1024, 512. Pour un système MIMO-OFDM 4 × 4, nous trouvons la même valeur de la probabilité de synchronisation mais à partir d’un SNR de 0 dB. Autrement, nous pouvons observer l’influence de la longueur de la séquence, ainsi que la dégradation lorsque le nombre d’antennes est très important. Nous avons aussi simulé cette approche pour une FFT de taille LF F T = 256 et pour des systèmes MIMO-OFDM 2 × 2 et 3 × 3. Les résultats de simulation sont comparées avec celles de [5]. Ces résultats sont présentés dans la figure V.35. Comme précédemment, notre approche reste plus performante que celle de [5] mais les performances sont réduites vis à vis des cas LF F T = 1024 et LF F T = 512. Nous remarquons que pour un SNR égale à 0 dB, cette approche présente une probabilité de synchronisation temporelle plus grande que 98% pour les deux 142V.3. RÉSULTATS DE SIMULATIONS DES MÉTHODES DE ZÉRO PADDING Tableau. V.6 – Comparaison de la probabilité d’acquisition de différents systèmes MIMO-OFDM et différentes longueurs de FFT de la méthode Z_P ad_2 La probabilité d’acquisition de la deuxième méthode de Zéro Padding Système MIMO-OFDM PSY NC Pour un SNR LF F T MIMO-OFDM 2x2 >95% >-5 dB 1024 >95% >-4 dB 512 MIMO-OFDM 4x4 >95% >0 dB 1024 >94% >0 dB 512 MIMO-OFDM 8x8 >90% >0 dB 1024 >88% >0 dB 512 MIMO-OFDM 16x16 >82% >5 dB 1024 >63% >5 dB 512 −5 0 5 10 15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Synchronisation temporelle, LFFT=256 SNR en dB Probabilité d’acquisition MIMO 2x2 MIMO 3x3 Hung−Chin−Wang 2x2 Hung−Chin−Wang 3x3 Fig. V.35 – Comparaison entre Z_P ad_2 et la méthode de préambule de sous-bande dans [5], LF F T = 256 143CHAPITRE V. LES RÉSULTATS DE SIMULATION systèmes MIMO-OFDM 2 × 2 et 3 × 3, tandis que la méthode dans [5] présente une probabilité de synchronisation PSY NC = 60%, 49% pour les deux systèmes MIMO-OFDM 2 × 2 et 3 × 3 respectivement pour la même valeur du SNR. V.4 Conclusion Dans le chapitre IV, nous avons proposé de nouvelles approches pour la synchronisation temporelle pour les systèmes MIMO-OFDM. Différents types de sé- quences, étudiées dans le chapitre III, sont simulées avec différentes configurations MIMO-OFDM (de 2 × 2 jusqu’à 16 × 16). Les résultats de simulation de la probabilité d’acquisition de synchronisation sont présentés dans ce chapitre. Selon les résultats de simulation avec différents systèmes MIMO-OFDM, les méthodes de préambule compact présentent de bons résultats notamment dans les cas MIMO-OFDM 4 × 4 et 8 × 8. Les séquences CAZAC sont des séquences orthogonales et complexes, elles présentent de bonnes caractéristiques de corrélation dans les canaux à trajets multiples. A la réception, la fonction de corrélation est appliquée pour détecter le pic de corrélation. L’amplitude du pic est liée à la taille de la séquence de synchronisation ou du préambule de synchronisation. Dans nos méthodes proposées, la taille du préambule de synchronisation est égale à la taille de la FFT. Suite aux simulations, nous remarquons une dégradation des performances quand la longueur du préambule décroît. Nous avons comparé notre approche avec d’autres méthodes existantes.Les résultats des simulations montrent que nos méthodes de préambule compact sont plus performantes (en termes de la probabilité d’acquisition) que les méthodes existantes notamment la méthode proposée par Chin dans [5]. 144V.4. CONCLUSION Nous avons proposé la méthode de zéro padding, cette méthode consiste à diviser le préambule de synchronisation en quatre parties de même longueur. Dans la première structure de cette méthode, nous avons ajouté une séquence CAZAC dans une seule partie de ce préambule, dans le domaine fréquentiel. Nous avons aussi développé une deuxième structure de cette méthode qui consiste à insérer une séquence CAZAC dans deux parties du préambule de synchronisation. Ces deux structures présentent de très bonnes détections de trames pour des faibles SNR (-15 dB,-10 dB et -5 dB) par rapport aux méthodes existantes. Nous avons simulé ces deux structures avec différentes longueurs de FFT. Les résultats de simulation montrent une légère dégradation de performance de détection de trames quand la longueur de FFT décroît, car à la réception, nous avons appliqué une fonction de corrélation du signal reçu avec une séquence locale, cette séquence a la même taille de LF F T . Tant que la taille de cette séquence est grande, donc la valeur de pic de corrélation est assez importante, nous pouvons le récupérer parmi les autres pics de corrélation en présence d’un canal à trajets multiples. 145CHAPITRE V. LES RÉSULTATS DE SIMULATION 146V.4. CONCLUSION Bibliographie [1] User Equipment (UE) Radio Transmission and Reception (FDD), tech. speci- fication TS 25.101, 3rd Generation Partnership Project (3GPP), 2008. [2] W. Jian, L. Jianguo, and D. Li, “Synchronization for mimo ofdm systems with loosely synchronous (ls) codes,” in Wireless Communications, Networking and Mobile Computing, 2007. WiCom 2007. International Conference on, pp. 254 –258, Sept. 2007. [3] Z. Gao, J. Xu, and Z. Zhang, “A synchronization scheme for mimo ofdm system,” in Communications, Circuits and Systems (ICCCAS), 2010 International Conference on, pp. 15 –18, July 2010. [4] B. O’Hara and A. Petrick, The IEEE 802.11 Handbook : A Designer’s Companion. Standards Information Network IEEE Press, 1999. [5] H.-C. Wang and C.-L. Wang, “A compact preamble design for synchronization in distributed mimo ofdm systems,” in Vehicular Technology Conference (VTC Fall), 2011 IEEE, pp. 1–4, Sept. 2011. 147CHAPITRE V. LES RÉSULTATS DE SIMULATION 148CHAPITRE VI CONCLUSIONS ET PERSPECTIVES VI.1 Conclusions La technique OFDM est devenue une technique populaire pour la transmission sans fil. Cette technique a été adoptée dans plusieurs normes sans fil telles que la norme 802.11a. L’OFDM convertit les données en un ensemble de sous-canaux parallèles. Les sous-porteuses sont séparées par une fréquence minimale requise pour maintenir l’orthogonalité dans les domaines temporel et fréquentiel. Plusieurs antennes peuvent être utilisées, à la fois, à l’émission et à la réception, ce réseau d’antennes est appelé MIMO. Un système MIMO est utilisé pour augmenter la capacité du canal, d’où différentes données sont transmises sur différentes antennes d’émission, ou bien, la technique MIMO est utilisée pour augmenter et améliorer la performance du système de transmission en utilisant les codes de blocs d’espace-temps (STBC). Les signaux transmis subissent des réflexions sur les obstacles, des distorsions qui affectent l’amplitude, la phase et la fréquence du signal. Ces signaux se propagent dans des canaux sélectifs en fréquence et à trajets multiples. A la réception, le retard entre deux versions du même signal induit des interférences entre symboles (ISI). Malgré les avantages des techniques MIMO et OFDM, le problème 149CHAPITRE VI. CONCLUSIONS ET PERSPECTIVES de synchronisation, entre les émetteurs et les récepteurs, reste présent. Ce problème est divisé en deux parties. La première partie concerne la synchronisation d’horloge (ou la synchronisation fréquentielle) à la réception, et la deuxième partie concerne la synchronisation de trames (ou la synchronisation temporelle) qui consiste à trouver le début de trame et le début des symboles utiles dans chaque trame. Cette thèse a porté sur la synchronisation temporelle dans les systèmes MIMOOFDM. L’objectif principal de cette thèse est d’étudier les techniques de synchronisation, les erreurs de synchronisation temporelle dans ces systèmes, les effets de décalage temporel sur la synchronisation, les performances des systèmes MIMOOFDM dans un canal à trajets multiples par rapport au SNR et par rapport au nombre des antennes MIMO, puis de comparer les résultats avec d’autres mé- thodes proposées dans la littérature. Le chapitre II, présente une introduction générale des différents systèmes de transmission et de différentes méthodes de synchronisation existantes. Dans cette thèse, nous avons étudié les caractéristiques et les performances de plusieurs séquences, dans le chapitre III, qui sont déjà utilisées dans le domaine de synchronisation pour les systèmes OFDM et MIMO-OFDM et d’autres systèmes. Les caractéristiques les plus importantes sont les deux fonctions d’autocorrélation et d’inter-corrélation. Après une comparaison de ces deux fonctions pour chacune des séquences, nous avons trouvé que les séquences CAZAC sont les plus adaptées aux nos besoins. Ces séquences sont complexes, orthogonales et possèdent de bonnes fonctions de corrélation. Ce chapitre se termine par une comparaison entre les propriétés de corrélation de différentes séquences de synchronisation. Le chapitre IV s’intéresse aux méthodes de synchronisation temporelle. Dans 150VI.1. CONCLUSIONS ce chapitre, nous avons proposé différentes méthodes pour la synchronisation temporelle. Dans la littérature, la plupart des méthodes de synchronisation sont basées sur l’insertion de préambules au début de chaque trame envoyée. Ces préambules sont constitués de données connues afin d’estimer le début de trames et le début de symboles OFDM. Pour détecter le préambule, une fonction de corrélation est appliquée à la réception, cette fonction peut être une corrélation avec une séquence locale ou bien une corrélation avec le préambule lui-même. Après une étude approfondie des séquences de synchronisation, nous avons proposé plusieurs méthodes pour la synchronisation temporelle. Ces méthodes consistent à envoyer au début de chaque trame OFDM un préambule de synchronisation qui contient des séquences connues. L’insertion de préambules sera effectuée dans le domaine temporel ou bien dans le domaine fréquentiel. A la réception, une fonction de corrélation est appliquée afin de détecter le pic de synchronisation et de récupérer les symboles OFDM. Les résultats de simulation complets de ces méthodes proposées ainsi que les résultats de simulation d’autres méthodes sont présentés dans le chapitre V. Le chapitre V traite les résultats de simulation de différentes méthodes proposées afin d’étudier les performances de systèmes MIMO-OFDM dans un canal à trajets multiples avec un AWGN. Dans ce chapitre, les résultats de simulation montrent que toutes nos méthodes proposées présentent de bonnes performances contre d’autres méthodes existantes, dans un canal à trajets multiples et la pré- sence d’un bruit blanc additif gaussien (AWGN). Ces méthodes présentent des bonnes performances en termes de la probabilité d’acquisition et pour un faible SNR et avec des systèmes MIMO jusqu’à 16 × 16. 151CHAPITRE VI. CONCLUSIONS ET PERSPECTIVES VI.2 Perspectives Dans ce travail, nous avons étudié le problème de la synchronisation temporelle pour les systèmes MIMO-OFDM en se basant sur différentes méthodes proposées dans le chapitre IV. Nos suggestions pour les futurs travaux peuvent inclure les éléments suivants : 1. Pour réduire les effets de CFO, une synchronisation fréquentielle est importante, cette synchronisation est préférable avant la réception des données. Par conséquent, les données utiles sont précédées de données prédéfi- nies, qui sont appelées le préambule. Notamment, il serait intéressant d’évaluer les performances de ces méthodes pour la synchronisation fréquentielle dans les systèmes MIMO-OFDM. 2. L’estimation de canal est un élément essentiel dans de nombreux systèmes de communication sans fil. Cette estimations de canal est également tirée de préambule de synchronisation. Par conséquent, il serait intéressant de tester la robustesse de ces méthodes dans l’estimation du canal et l’égalisation, afin de comparer leurs performances par rapport aux autres méthodes existantes. 3. Ces méthodes de synchronisation présentent de bonnes performances en termes du SNR dans des canaux sélectifs en fréquence. Donc, les futures travaux peuvent tester les performances de ces méthodes avec d’autres types de canaux. 152LISTE DE PUBLICATIONS Conférences Internationales 2012 Timing synchronisation method for MIMO-OFDM system using orthogonal preamble (A. Rachini, A. Beydoun, F. Nouvel, B. Beydoun), In Telecommunications (ICT), 2012 19th International Conference on, pp. 1-5, 2012. 2013 A novel compact preamble structure for timing synchronization in MIMOOFDM systems using CAZAC sequences (A. Rachini, A. Beydoun, F. Nouvel, B. Beydoun), International Conference on Communications, Computation, Networks and Technologies (INNOV), 2013 2nd International Conference on, pp. 1-6, 2013. 2014 Timing Synchronization of MIMO-OFDM Systems (A. Rachini, A. Beydoun, F. Nouvel, B. Beydoun), Lebanese Association for the Advancement of Science (LAAS), 2014 20th International Science Conference, pp. 149- 150, 2014. Journal 2012 A Novel Double Talk Echo Canceller Algorithm using Multi Delay Filter (H. Alaeddine , A. Beydoun, B. Beydoun, F. Khalil, A. Rachini), International Journal on Communications Antenna and Propagation (IRECAP), Vol. 3, No. 4, p.p. 199-205, ISSN 2039-5086, August 2013. 153Résumé L'évolution rapide dans les systèmes de communications sansfil couplée à l'utilisation de téléphones mobiles, des services satellite, de l'internet sur les réseaux sans fil et les réseaux locaux nécessitent un débit de données très élevé et une grande fiabilité. Ces débits ont augmenté rapidement dans les nouvelles applications de transmission de données de nouvelle génération. Pour répondre aux contraintes de la limitation du spectre disponible, les systèmes à porteuses multiples (OFDM), permettent une haute efficacité spectrale à cause de l'orthogonalité et un débit total s'approchant du débit de Nyquist. Par ailleurs, un système de réseaux des antennes à multi-entrées et multi-sorties (MIMO) apporte des gains importants, à la fois, pour les liens et les capacités du réseau, sans transmission de puissance supplémentaire ou sans consommation de la bande passante. La combinaison de ces deux systèmes (MIMO et OFDM) permet d’exploiter la robustesse de la liaison sur des canaux sélectifs en fréquence et sur des canaux non corrélés en espace. Une des problématiques de cette combinaison réside dans les méthodes de synchronisation. La synchronisation se divise en deux parties, la synchronisation temporelle et la synchronisation fréquentielle. La synchronisation temporelle se fait, d'une part par la synchronisation grossière qui consiste à estimer le début de chaque trame reçue, et d'autre par la synchronisation fine qui détecte le début de chaque symbole OFDM dans la trame reçue. Le principe de la synchronisation fréquentielle est de trouver le déphasage entre la fréquence à l'émission et la fréquence locale du récepteur. Dans une première partie, nous avons proposé des méthodes pour la synchronisation temporelle en se basant sur des séquences de synchronisation connues au niveau du récepteur. Nous avons réalisé une étude des différentes séquences existantes afin de comparer les efficacités de chacune de ces séquences pour la synchronisation dans un système MIMOOFDM. Dans une deuxième partie, un travail de simulation sous Matlab a été réalisé afin d'étudier les performances de nos méthodes proposées dans des canaux sélectifs en fréquence et à trajetsmultiples. Les résultats de simulations de ces méthodes expriment la probabilité d’acquisition de synchronisation temporelle selon le SNR. N° d’ordre : D14-03 Abstract The current wireless communication systems, mobile phones, satellite services and wireless internet networks require a very high data rate and a highly reliable degree. These rates have increased rapidly in the new applications of data transmission of new generation. To take into account the spectrum limitations, the OFDM has been proposed thanks the orthogonality between sub-carriers and the data rate that approaches to the Nyquist-Shannon sampling rate. Furthermore, the antennas technic (MIMO) can provide significant various gains, a diversity gain that improves the link reliability and the spatial multiplexing gain where different data streams are transmitted over different antennas. The combination of these two systems (MIMO and OFDM) allows to exploit the robustness of the link on the frequency-selective channels and uncorrelated channels in space.One of the issue in the combination MIO-OFDM resides on the synchronization methods. The synchronization is divided into sub parts, timing synchronization and frequency synchronization. Timing synchronization is also divided into two parts, firstly, the coarse timing synchronization is used to estimate the beginning of each received frame, and secondly, the fine timing synchronization which detects the beginning of each OFDM symbol in the received frame. The principle of the frequency synchronization is to find the shifted phase between the transmitted frequency and the local frequency at the receiver. In a first part, we have proposed different methods for timing synchronization based on synchronization sequences known at the receiver. We did a study for various existing sequences to compare the efficiencies of each of these sequences in timing synchronization for MIMO-OFDM systems. In a second part, Matlab’s simulations were conducted to study the performance of our proposed methods in multi-paths frequency-selective channels. Simulations results show the acquisition timing synchronization probability in terms of SNR. Utiliser la police Arial Taille 9 en bleu dans les champs texte « résumé » et « abstract » - Texte justifié - Ne pas dépasser le nombre de caractères des cadres de texte ci-dessus. Ne pas modifier la taille des cadres de texte Coordination Modulaire de Gestionnaires Autonomes par Controle Discret Soguy Mak Kar´e Gueye To cite this version: Soguy Mak Kar´e Gueye. Coordination Modulaire de Gestionnaires Autonomes par Controle Discret. Distributed, Parallel, and Cluster Computing. Universite de Grenoble, 2014. French. HAL Id: tel-01091302 https://hal.inria.fr/tel-01091302 Submitted on 5 Dec 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.THÈSE Pour obtenir le grade de DOCTEUR DE L’UNIVERSITÉ DE GRENOBLE Spécialité : Informatique Arrêté ministérial : 7 août 2006 Présentée par Soguy Mak-Karé GUEYE Thèse dirigée par Éric RUTTEN et codirigée par Noël DE PALMA préparée au sein Laboratoire d’Informatique de Grenoble (LIG) et INRIA Grenoble Rhône-Alpes et de L’Ecole Doctorale Mathématiques, Sciences et Technologies de l’Information, Informatique Coordination Modulaire de Gestionnaires Autonomes par Contrôle Discret Thèse soutenue publiquement le 03/12/2014, devant le jury composé de : Mr. Lionel SEINTURIER Professeur, Université Lille 1 - UFR IEEA - LIFL & FIL, Rapporteur Mme. Françoise BAUDE Professeur, Université de Nice Sophia-Antipolis, INRIA-UNS-CNRS, Rapporteur Mr. Hervé MARCHAND Chargé de Recherche, INRIA Rennes-Bretagne Atlantique, Examinateur Mr. Jean-marc FAURE Professeur, SupMéca, (LURPA), Examinateur Mr. Gwenaël DELAVAL Maître de conférence, Université Joseph Fourier - LIG, Examinateur Mr. Daniel HAGIMONT Professeur, INPT/ENSEEIHT, Examinateur Mr. Éric RUTTEN Chargé de Recherche, INRIA Grenoble Rhône-Alpes, Directeur de thèse Mr. Noël DE PALMA Professeur, Université Joseph Fourier - LIG, Co-Directeur de thèse2Abstract Computing systems have become more and more distributed and heterogeneous, making their manual administration difficult and error-prone. The Autonomic Computing approach has been proposed to overcome this issue, by automating the administration of computing systems with the help of control loops called autonomic managers. Many research works have investigated the automation of the administration functions of computing systems and today many autonomic managers are available. However the existing autonomic managers are mostly specialized in the management of few administration concerns. This makes necessary the coexistence of multiple autonomic managers for achieving a global system management. The coexistence of several managers make possible to address multiple concerns, yet requires coordination mechanisms to avoid incoherent management decisions. We investigate the use of control techniques for the design of coordination controllers, for which we exercise synchronous programming that provide formal semantics, and discrete controller synthesis to automate the construction of the controller. We follow a component-based approach, and explore modular discrete control allowing to break down the combinatorial complexity inherent to the state-space exploration technique. This improves scalability of the approach and allows constructing a hierarchical control. It also allows re-using complex managers in different contexts without modifying their control specifications. We build a component-based coordination of managers, with introspection, adaptivity and reconfiguration. This thesis details our methodology and presents case-studies. We evaluate and demonstrate the benefits of our approach by coordinating autonomic managers which address the management of availability, and the management of performance and resources optimization. Keywords. Computer systems, autonomic computing, component-based model, control loops, software reuse, discrete event systems, discrete controller synthesis, synchronous programming iRésumé Les systèmes informatiques sont devenus de plus en plus distribués et hétérogènes, ce qui rend leur administration manuelle difficile et source d’erreurs. L’administration autonome a été proposée comme solution à ce problème. Elle consiste à automatiser l’administration des systèmes informatiques à l’aide de boucles de contrôle appelées gestionnaires autonomes. De nombreux travaux de recherche se sont intéressés à l’automatisation des fonctions d’administration de systèmes informatiques et aujourd’hui, beaucoup de gestionnaires autonomes sont disponibles. Toutefois, les gestionnaires autonomes existants sont, la plupart, spécialisés dans la gestion de quelques aspects d’administration. Cela rend nécessaire la coexistence de plusieurs gestionnaires autonomes pour atteindre une gestion globale des systèmes. La coexistence de plusieurs gestionnaires permet la gestion de plusieurs aspects, mais nécessite des mécanismes de coordination afin d’éviter des décisions incohérentes. Nous étudions l’utilisation de techniques de contrôle pour la conception de contrôleurs de coordination, nous utilisons la programmation synchrone qui fournit des méthodes formelles, et la synthèse de contrôleur discret pour automatiser la construction de contrôleur. Nous suivons une approche à base de composants, et utilisons le contrôle discret modulaire qui permet de décomposer la complexité combinatoire inhérente à la technique d’exploration d’espace d’états. Cela améliore le passage à l’échelle de notre approche et permet la construction d’un contrôle hiérarchique. Notre approche permet la réutilisation de gestionnaires complexes dans des contextes différents, sans modifier leurs spécifications de contrôle. Nous construisons une coordination de gestionnaires basée sur le modèle à composants offrant introspection, adaptabilité et reconfiguration. Cette thèse présente notre méthodologie et des études de cas. Nous évaluons et démontrons les avantages de notre approche par la coordination de gestionnaires autonomes dédiés à la gestion de la disponibilité, et à la gestion de la performance et l’optimisation de ressources. Mots-clés. Systèmes informatiques, administration autonome, modèle à base de composants, boucles de contrôle, réutilisation de logiciels, systèmes à événements discrets, synthèse de contrôleur discret, programmation synchrone iiRemerciements Je tiens à adresser mes plus sincères remerciements et toute ma reconnaissance à mes directeurs de thèse, Mr Éric RUTTEN et Mr Noël DE PALMA, pour m’avoir offert la possibilité de faire cette thèse, pour leur soutien constant, leur présence, leur patience et leur confiance. Je remercie Mr Gwenaël DELAVAL pour sa présence et son aide tout au long de la thèse. Je tiens à remercier Mr Ahmed EL RHEDDANE, Mr Ibrahim SAFIEDDINE, Mr Alain TCHANA, pour leur présence et leur soutien durant toutes ces années. Je tiens également à remercier Mlle Édith GRAC et Mr Frédérico ALVARES pour avoir pris le temps de lire le manuscrit et de suggérer des corrections qui ont sans aucun doute contribué à améliorer la qualité du manuscrit. Je remercie mes collègues et toutes les personnes avec qui j’ai collaboré pendant toutes ces années. Je remercie également les membres du jury, qui ont accepté de juger mon travail : Mr Lionel SEINTURIER et Mme Françoise BAUDE pour avoir également accepté de rapporter la thèse, Mr Hervé MARCHAND, Mr Jean-marc FAURE, Mr Gwenaël DELAVAL, Mr Daniel HAGIMONT, pour avoir accepté d’examiner en profondeur le travail réalisé, ainsi que pour tous leurs commentaires constructifs. Je remercie mes amis, principalement Mlle Ndeye Fatou NDIAYE, qui a beaucoup contribué à l’organisation de la soutenance. Enfin, je remercie toutes les personnes qui de près ou de loin m’ont soutenu, encouragé ou assisté durant toutes ces années. Mes dernières pensées sont réservées à ma très chère famille... iiiivTable des matières Résumé i Remerciements iii Table des matières v 1 Introduction 1 1.1 Systèmes autonomes . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Coordination de gestionnaires autonomes . . . . . . . . . . . . . 2 1.3 Approche et contribution . . . . . . . . . . . . . . . . . . . . . . . 3 2 État de l’art 7 2.1 Administration autonome . . . . . . . . . . . . . . . . . . . . . . 8 2.1.1 Complexité des systèmes informatiques . . . . . . . . . . 9 2.1.1.1 Architecture multi-tiers . . . . . . . . . . . . . . 9 2.1.1.2 Centre de données: ressources à large échelle . 10 2.1.1.3 Limites de l’administration manuelle . . . . . . 10 2.1.2 Gestionnaire autonome . . . . . . . . . . . . . . . . . . . 11 2.1.2.1 Définition de gestionnaire autonome . . . . . . 11 2.1.2.2 Implémentation . . . . . . . . . . . . . . . . . . 13 2.1.3 Coordination de gestionnaires autonomes . . . . . . . . . 16 2.1.3.1 Besoin de coordination . . . . . . . . . . . . . . 16 2.1.3.2 Approches de coordination proposées . . . . . 17 2.1.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 Modèles réactifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2.1 Les langages synchrones . . . . . . . . . . . . . . . . . . . 21 vTABLE DES MATIÈRES 2.2.1.1 Heptagon/BZR . . . . . . . . . . . . . . . . . . 22 2.2.1.2 Implémentation des programmes synchrones . 25 2.2.2 Synthèse de contrôleur discret (SCD) . . . . . . . . . . . 26 2.2.2.1 Synthèse de contrôleur avec Heptagon/BZR . . 27 2.2.2.2 Synthèse modulaire avec Heptagon/BZR . . . 29 2.2.3 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3 Méthodologie de coordination de gestionnaires autonomes 35 3.1 Spécification de la coordination . . . . . . . . . . . . . . . . . . . 36 3.1.1 Modélisation d’un gestionnaire autonome . . . . . . . . 36 3.1.1.1 Comportement . . . . . . . . . . . . . . . . . . . 37 3.1.1.2 Contrôlabilité . . . . . . . . . . . . . . . . . . . . 38 3.1.2 Modélisation de la coordination . . . . . . . . . . . . . . 39 3.1.2.1 Modélisation de la coexistence . . . . . . . . . . 39 3.1.2.2 Spécification d’une stratégie de coordination . 40 3.1.3 Modélisation modulaire de la coordination . . . . . . . . 41 3.1.3.1 Contrôle décentralisé . . . . . . . . . . . . . . . 41 3.1.3.2 Spécification modulaire et hiérarchique . . . . . 42 3.2 Mise en oeuvre de la coordination . . . . . . . . . . . . . . . . . 44 3.2.1 Le modèle à composants Fractal . . . . . . . . . . . . . . 44 3.2.1.1 Composant Fractal . . . . . . . . . . . . . . . . . 44 3.2.1.2 Introspection et reconfiguration . . . . . . . . . 46 3.2.1.3 Fractal ADL . . . . . . . . . . . . . . . . . . . . 46 3.2.2 Composant de gestionnaire autonome . . . . . . . . . . . 47 3.2.3 Coordination à base de composants . . . . . . . . . . . . 48 3.2.3.1 Coordination de gestionnaires . . . . . . . . . . 48 3.2.3.2 Coordination hiérarchique . . . . . . . . . . . . 50 3.3 Comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4 Gestion de la performance et de l’optimisation de ressources d’un système dupliqué 55 4.1 Gestionnaires autonomes non coordonnés . . . . . . . . . . . . . 56 4.1.1 Gestionnaire d’auto-dimensionnement: Self-sizing . . . . 56 viTABLE DES MATIÈRES 4.1.2 Gestionnaire d’auto-régulation de fréquence CPU: Dvfs 58 4.2 Problèmes d’optimisation de ressources . . . . . . . . . . . . . . 59 4.3 Conception du contrôleur de coordination . . . . . . . . . . . . . 60 4.3.1 Modélisation du contrôle des gestionnaires . . . . . . . . 60 4.3.1.1 Modélisation du contrôle de self-sizing . . . . . 61 4.3.1.2 Modélisation de l’état global des Dvfs . . . . . 63 4.3.2 Spécification de la coordination . . . . . . . . . . . . . . . 64 4.3.2.1 Stratégie de coordination . . . . . . . . . . . . . 64 4.3.2.2 Spécification du contrat . . . . . . . . . . . . . . 64 4.3.2.3 Programme final . . . . . . . . . . . . . . . . . . 64 4.4 Expérimentations . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.4.1 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.4.2 Calibrage des seuils des gestionnaires . . . . . . . . . . . 66 4.4.2.1 Seuil maximal pour self-sizing et Dvfs . . . . . 66 4.4.2.2 Seuil minimal pour self-Sizing et Dvfs . . . . . 67 4.4.3 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . 70 4.4.3.1 Comportement non coordonné . . . . . . . . . 70 4.4.3.2 Comportement coordonné . . . . . . . . . . . . 72 4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 5 Gestion du dimensionnement dynamique et de la réparation d’un système multi-tiers 77 5.1 Gestionnaires autonomes non coordonnés . . . . . . . . . . . . . 79 5.1.1 Gestionnaire d’auto-dimensionnement: Self-sizing . . . . 79 5.1.2 Gestionnaire d’auto-réparation: Self-repair . . . . . . . . 80 5.2 Problèmes d’administration d’un système multi-tiers . . . . . . 81 5.3 Conception du contrôleur de coordination . . . . . . . . . . . . . 84 5.3.1 Modélisation du contrôle des gestionnaires . . . . . . . . 84 5.3.1.1 Modélisation du contrôle de self-sizing . . . . . 84 5.3.1.2 Modélisation du contrôle de self-repair . . . . . 84 5.3.2 Spécification de la coordination . . . . . . . . . . . . . . . 86 5.3.2.1 Stratégie de coordination . . . . . . . . . . . . . 86 5.3.2.2 Spécification du contrat . . . . . . . . . . . . . . 87 5.3.2.3 Programme final . . . . . . . . . . . . . . . . . . 89 5.4 Expérimentations . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 viiTABLE DES MATIÈRES 5.4.1 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.4.2 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.4.2.1 Comportement non coordonné . . . . . . . . . 92 5.4.2.2 Comportement coordonné . . . . . . . . . . . . 95 5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 6 Coordination modulaire pour la gestion d’applications multi-tiers et consolidation 99 6.1 Gestion des ressources d’un centre de données . . . . . . . . . . 100 6.1.1 Utilisation des ressources . . . . . . . . . . . . . . . . . . 100 6.1.2 Gestionnaire de consolidation de serveurs . . . . . . . . 101 6.2 Problèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6.3 Conception de la coordination modulaire . . . . . . . . . . . . . 102 6.3.1 Modélisation des gestionnaires . . . . . . . . . . . . . . . 103 6.3.1.1 Modélisation du gestionnaire self-sizing . . . . 103 6.3.1.2 Modélisation du gestionnaire self-repair . . . . 104 6.3.1.3 Modélisation du gestionnaire de consolidation 104 6.3.2 Spécification de la coordination . . . . . . . . . . . . . . . 105 6.3.2.1 Stratégie de coordination . . . . . . . . . . . . . 105 6.3.2.2 Spécification du contrat . . . . . . . . . . . . . . 106 6.3.2.3 Synthèse monolithique . . . . . . . . . . . . . . 106 6.3.2.4 Synthèse modulaire . . . . . . . . . . . . . . . . 107 6.3.2.5 Comparaison . . . . . . . . . . . . . . . . . . . . 111 6.4 Expérimentations . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.4.1 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.4.2 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 7 Exécution distribuée des contrôleurs modulaires 117 7.1 Exécution distribuée de contrôleurs . . . . . . . . . . . . . . . . 119 7.1.1 Exécution distribuée synchronisée . . . . . . . . . . . . . 119 7.1.1.1 Principe . . . . . . . . . . . . . . . . . . . . . . . 120 7.1.1.2 Implémentation . . . . . . . . . . . . . . . . . . 120 7.1.2 Exécution distribuée désynchronisée . . . . . . . . . . . . 122 7.1.2.1 Principe . . . . . . . . . . . . . . . . . . . . . . . 122 viiiTABLE DES MATIÈRES 7.1.2.2 Implémentation . . . . . . . . . . . . . . . . . . 123 7.2 Exemple: Gestion d’une application multi-tiers . . . . . . . . . . 124 7.2.1 Exécution distribuée totalement synchronisée . . . . . . 124 7.2.1.1 Modélisation . . . . . . . . . . . . . . . . . . . . 124 7.2.1.2 Décomposition . . . . . . . . . . . . . . . . . . . 125 7.2.2 Exécution distribuée partiellement synchronisée . . . . . 126 7.2.2.1 Modélisation . . . . . . . . . . . . . . . . . . . . 126 7.2.2.2 Décomposition . . . . . . . . . . . . . . . . . . . 129 7.2.3 Exécution distribuée désynchronisée . . . . . . . . . . . . 130 7.2.3.1 Modélisation . . . . . . . . . . . . . . . . . . . . 130 7.2.3.2 Décomposition . . . . . . . . . . . . . . . . . . . 131 7.2.4 Comparaison . . . . . . . . . . . . . . . . . . . . . . . . . 132 7.3 Expérimentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 7.3.1 Configuration . . . . . . . . . . . . . . . . . . . . . . . . . 133 7.3.2 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 7.3.2.1 Durée de reconfiguration . . . . . . . . . . . . . 133 7.3.2.2 Atteinte des objectifs de contrôle . . . . . . . . 134 7.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 8 Conclusion 143 Bibliographie 147 Liste des figures 155 Liste des tables 159 ixTABLE DES MATIÈRES x1 Introduction Contents 1.1 Systèmes autonomes . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 Coordination de gestionnaires autonomes . . . . . . . . . . . 2 1.3 Approche et contribution . . . . . . . . . . . . . . . . . . . . . 3 1.1 Systèmes autonomes Aujourd’hui les systèmes informatiques sont présents dans de nombreux secteurs d’activité pour réaliser des traitements complexes, e.g., le commerce en ligne ou les opérations bancaires. Ces systèmes, ayant fait leurs preuves, sont devenus de plus en plus utilisés et de plus en plus complexes, avec de multiples ressources logicielles hétérogènes inter-connectées entre elles. De plus l’environnement d’exécution de ces systèmes a évolué pour répondre à la demande accrue en puissance de calcul. Des équipements de plus en plus sophistiqués sont utilisés. Ces évolutions posent de nouveaux défis, notamment l’administration des systèmes qui devient une tâche de plus en plus complexe. La complexité inhérente à la taille des systèmes et à leur degré d’hétérogénéité rend difficile leur administration. Cette dernière ne peut plus être assurée ef- ficacement de manière manuelle. En effet, pour gérer les systèmes informatiques, l’intervention humaine implique souvent des coûts élevés, des erreurs 11.2. COORDINATION DE GESTIONNAIRES AUTONOMES fréquentes, et surtout des temps de réaction lents. Or les enjeux économiques liés au bon fonctionnement des systèmes informatiques ne tolèrent ni des pannes ni de longues périodes d’indisponibilité des systèmes. Il faut donc trouver d’autres moyens pour assurer leur administration. L’administration autonome 1 a été proposée comme alternative pour faciliter la gestion des systèmes informatiques. Cette approche consiste à concevoir des systèmes autonomes capables de se gérer eux-mêmes. A l’exécution, ces systèmes doivent pouvoir réagir et s’adapter aux changements survenus dans leur environnement d’exécution sans intervention humaine ou peu. Pour ce faire, les systèmes autonomes sont munis d’éléments logiciels dédiés à leur administration. Ce sont eux qui leur permettent de s’auto-administrer et de minimiser l’intervention humaine. Ces éléments, appelés gestionnaires autonomes, implémentent les décisions d’administration. Ils reçoivent, via des capteurs, des données sur l’état courant du système administré et l’occurrence d’événements qui affectent le système. Ils analysent ensuite ces données pour détecter tout écart par rapport au fonctionnement souhaité du système. Lorsqu’écart il y a, ils planifient et exécutent des opérations d’administration pour reconfigurer le système dans un état cohérent et stable. 1.2 Coordination de gestionnaires autonomes Pour qu’un système soit entièrement autonome, il faut que toutes les fonctions d’administration soient automatisées. Parmi tous les gestionnaires autonomes actuellement disponibles, aucun n’est capable d’implémenter une administration globale. La conception d’un gestionnaire autonome qui implé- mente toutes les fonctions d’administration peut être complexe. Toutefois, de nombreux gestionnaires autonomes dédiés à différentes fonctions d’administration sont disponibles et réutilisables. De ce fait, ils peuvent être utilisés en parallèle pour l’administration d’un système. Il peut être avantageux d’utiliser plusieurs gestionnaires pour faciliter une gestion globale d’un système de manière autonome. Cependant une gestion globale et cohérente nécessite la coordination des gestionnaires autonomes, 1. La plupart du temps le terme «autonomique» est utilisé. Toutefois, étant donné qu’il n’y a pas de consensus pour l’utilisation de ce terme, dans ce document nous utilisons le terme «autonome». 2qui sont généralement conçus indépendamment. Individuellement chaque gestionnaire a un comportement cohérent, mais leur coexistence peut amener des incohérences. Chaque gestionnaire assure le respect de ses objectifs d’administration en se basant sur la connaissance qu’il a du système administré, et en appliquant des actions d’administration. Ces actions affectent l’état du système administré, et donc peuvent conduire à une violation des objectifs des autres gestionnaires. Ces derniers peuvent réagir à ces changements en appliquant des actions de correction qui n’aboutissent pas forcément à une stabilité du système administré. De plus, un événement peut altérer l’état du système administré conduisant ainsi à des réactions simultanées de plusieurs gestionnaires. Une gestion autonome complète et cohérente requiert donc l’utilisation de plusieurs gestionnaires autonomes coordonnés. La coordination de leurs activités permet d’éviter des décisions conflictuelles ainsi que des actions inutiles et peut-être redondantes. 1.3 Approche et contribution La coordination de gestionnaires autonomes nécessite une synchronisation, au moins partielle, de leurs activités pour pouvoir autoriser ou inhiber certaines actions en fonction des circonstances. Il s’agit de restreindre le fonctionnement global des gestionnaires dicté par des objectifs globaux. Des approches issues de la théorie du contrôle, comme la synthèse de contrôleur discret (SCD), permettent d’aborder ce type de problème. La synthèse de contrôleur discret est une technique qui permet de construire automatiquement une fonction logique, un contrôleur qui permet de restreindre le fonctionnement d’un système pour respecter les propriétés désirées. Le contrôleur généré restreint le moins possible le fonctionnement du système à contrôler. La synthèse de contrôleur discret repose sur une déclaration des propriétés désirées et sur une modélisation du système à contrôler. La programmation synchrone fournit des langages de haut niveau facilitant la modélisation formelle de systèmes à base d’automates. Elle permet la représentation de systèmes complexes par la composition parallèle et hiérarchique d’automates. Pour coordonner des gestionnaires autonomes, nous proposons une approche basée sur la synthèse de contrôleur discret et la programmation syn- 31.3. APPROCHE ET CONTRIBUTION chrone. En effet l’implémentation manuelle d’une politique de coordination peut être complexe, coûteuse, et implique des séries de tests et de corrections successives. Avec notre approche, le contrôleur de coordination est construit automatiquement sur la base des objectifs de coordination et d’un modèle du système. Nous adoptons la programmation synchrone pour la modélisation du système à contrôler. Ce dernier correspond à l’ensemble des gestionnaires autonomes à coordonner. La coordination requiert que le comportement des gestionnaires, à l’exécution, puisse être observable et contrôlable. Nous construisons un modèle de chaque gestionnaire dans lequel ces aspects sont décrits. La composition des modèles des gestionnaires représente leur coexistence et décrit l’ensemble des comportements qui peuvent être observés durant leur exécution parallèle. Elle présente les comportements cohérents, et ceux consid- érés incohérents qui rendent inconsistant l’état du système administré par les gestionnaires. La mise en oeuvre de la coordination nécessite une implémentation réelle des fonctions permettant d’observer et de contrôler les gestionnaires. Pour cela nous adoptons le modèle à composants qui facilite l’assemblage dynamique d’éléments logiciels sur lesquels des fonctions d’introspection et de reconfiguration peuvent être ajoutées. Nous identifions les contraintes de conception des gestionnaires – comportement observable, et contrôlabilité – pour construire une structure à base de composants où ils sont explicites, et n’impliquant pas la modification de l’implémentation des gestionnaires autonomes pour lesquels ces fonctions de contrôle ne sont pas disponibles. Contributions Nos contributions sont les suivantes : 1. Coordination de gestionnaires autonomes basée sur le contrôle discret (a) Spécification du contrôle de gestionnaire avec la programmation synchrone (b) Respect de la coordination par synthèse de contrôleur discret (c) Passage à l’échelle par synthèse modulaire hiérarchique 2. Mise en oeuvre de la coordination basée sur le modèle à composants (a) Construction de composants de gestionnaires 4i. Implémentation du contrôle de gestionnaire ii. Réutilisation de gestionnaires existants (b) Construction de composants composites de coordination i. Assemblage de composants de gestionnaires ii. Assemblage de composants composites coordonnés 3. La validation de notre approche à travers des cas d’étude présentés dans les chapitres suivants. Les contributions de cette thèse s’inscrivent dans le cadre du projet CtrlGreen 2 . Ce projet vise à étudier les moyens matériels et logiciels pour l’optimisation de la consommation énergétique dans les centres de données. La gestion énergétique peut être implémentée à différents niveaux (matériel, système, intergiciel). De multiples boucles de contrôle – gestionnaires autonomes – peuvent donc être implémentées à chaque niveau et elles doivent prendre des décisions globalement cohérentes. De plus le Green Computing n’est pas le seul aspect qui doit être géré dans l’administration d’un centre de données. Des politiques pour le passage à l’échelle et/ou la disponibilité des applications hébergées sont également prises en compte. Il est donc nécessaire de gérer les compromis entre performance, disponibilité et énergie. Pour cela la coexistence de nombreux gestionnaires autonomes (avec des objectifs différents, implémentés dans des couches différentes) est nécessaire. Leur coordination est également nécessaire pour obtenir une gestion cohérente. Organisation du document Le reste du document est organisé de la manière suivante : Le chapitre 2 présente l’état de l’art sur l’administration autonome et les modèles réactifs. D’abord nous présentons l’administration autonome, la nécessité et les solutions proposées. Ensuite nous présentons des techniques issues du contrôle discret pour la conception de systèmes réactifs. Le chapitre 3 détaille notre approche de coordination de gestionnaires, basée sur l’utilisation de modèles réactifs et des techniques de contrôle discret pour 2. Ctrl-Green (ANR-11-INFR 012 11) est un projet de recherche financé par l’ANR (Agence Nationale de la Recherche) avec le soutien de MINALOGIC. http://www.ctrlgreen.org/ 51.3. APPROCHE ET CONTRIBUTION la spécification de la coordination ; et le modèle à composants pour la mise en oeuvre [21, 29]. Nous utilisons le synthèse modulaire pour faciliter le passage à l’échelle et construire un contrôle hiérarchique [23]. Le chapitre 4 présente une application de notre approche pour la gestion cohérente de l’optimisation des ressources, dans la perspective de l’informatique verte [28]. Les gestionnaires considérés gèrent le dimensionnement dynamique du degré de réplication de serveurs (self-sizing) et l’ajustement dynamique de la fréquence du CPU (DVFS «Dynamic Frequency Voltage Scaling»). Le contrôleur de coordination contrôle les actions d’ajout de serveurs dupliqués en fonction de l’état des processeurs des machines déjà en cours d’utilisation. L’objectif est de n’autoriser un ajout de serveur que lorsque c’est nécessaire, lorsque les serveurs actifs sont réellement saturés. Le chapitre 5 présente une autre application de notre approche pour la gestion de la disponibilité et de la performance d’un système multi-tiers basé sur la réplication [30]. Le système exécute l’application Web de référence RUBiS. Les gestionnaires considérés sont self-sizing pour le dimensionnement dynamique du degré de réplication des tiers dupliqués, et self-repair pour la réparation de serveurs en panne. Le contrôleur de coordination conçu orchestre l’exécution des gestionnaires afin d’éviter un sur-dimensionnement. Le chapitre 6 présente une application de l’approche modulaire pour la gestion d’un centre de données [23]. Nous considérons que le centre de données héberge un ensemble d’applications de type multi-tiers JEE. Chacune des applications est gérée de manière autonome par deux instances de self-sizing et quatre instances de self-repair. Cet exemple démontre le passage à l’échelle de notre approche par la spécification modulaire du contrôle des gestionnaires des applications et du gestionnaire de consolidation. Le chapitre 7 décrit comment le code obtenu d’une spécification modulaire peut être exécuté de manière distribuée. Il détaille les différentes approches d’exécution distribuée et décrit les implémentations possibles pour la mise en oeuvre. Il présente également un exemple d’utilisation de ces différentes approches pour la gestion d’un système multi-tiers. Le chapitre 8 conclut la thèse. Il rappelle le contexte, l’approche de coordination et donne des perspectives que nous envisageons. 62 État de l’art Contents 2.1 Administration autonome . . . . . . . . . . . . . . . . . . . . . 8 2.1.1 Complexité des systèmes informatiques . . . . . . . . . 9 2.1.1.1 Architecture multi-tiers . . . . . . . . . . . . . 9 2.1.1.2 Centre de données : ressources à large échelle 10 2.1.1.3 Limites de l’administration manuelle . . . . . 10 2.1.2 Gestionnaire autonome . . . . . . . . . . . . . . . . . . 11 2.1.2.1 Définition de gestionnaire autonome . . . . . 11 2.1.2.2 Implémentation . . . . . . . . . . . . . . . . . 13 2.1.3 Coordination de gestionnaires autonomes . . . . . . . . 16 2.1.3.1 Besoin de coordination . . . . . . . . . . . . . 16 2.1.3.2 Approches de coordination proposées . . . . 17 2.1.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 Modèles réactifs . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.2.1 Les langages synchrones . . . . . . . . . . . . . . . . . . 21 2.2.1.1 Heptagon/BZR . . . . . . . . . . . . . . . . . 22 2.2.1.2 Implémentation des programmes synchrones 25 2.2.2 Synthèse de contrôleur discret (SCD) . . . . . . . . . . 26 2.2.2.1 Synthèse de contrôleur avec Heptagon/BZR . 27 2.2.2.2 Synthèse modulaire avec Heptagon/BZR . . 29 72.1. ADMINISTRATION AUTONOME 2.2.3 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Ce chapitre présente l’administration autonome. Cette approche repose sur l’automatisation des fonctions d’administration. Ce chapitre présente la nécessité de cette approche et les éléments logiciels, gestionnaires autonomes, qui permettent sa mise en oeuvre. Il présente également l’intérêt d’utiliser plusieurs gestionnaires autonomes et la nécessité de les coordonner, et quelques approches de coordination étudiées dans des travaux de recherche. La seconde partie de ce chapitre présente des méthodes et des techniques, issues de la programmation synchrone et de la synthèse de contrôleur discret, sur lesquelles est basée notre méthodologie de coordination de gestionnaires. La programmation synchrone fournit des langages de programmation de haut niveau permettant la modélisation formelle du comportement d’un système ; et la synthèse de contrôleur discret. 2.1 Administration autonome L’administration d’un système informatique consiste en un ensemble d’opérations en vue de le mettre en état de marche et de maintenir correct son fonctionnement tout au long de son exécution. La mise en marche du système implique la configuration et la résolution des dépendances de ses différents éléments logiciels déployés sur des machines dédiées. Assurer le bon fonctionnement du système implique une surveillance continue de l’environnement logiciel et matériel afin de détecter des problèmes et d’appliquer des opérations de reconfiguration. Aujourd’hui les systèmes informatiques sont devenus de plus en plus complexes. Leur administration dépasse les capacités humaines à cause du nombre très important d’éléments logiciels et matériels impliqués. L’administration autonome [39], introduite en 2001 par IBM, a été proposée comme alternative face à cette complexité croissante. Cette approche consiste à automatiser les fonctions d’administration afin de minimiser l’intervention humaine et d’améliorer la réactivité quant à la détection de changements et l’application d’opérations 8de correction. Les fonctions d’administration sont implémentées par des élé- ments logiciels appelés gestionnaires autonomes. A l’exécution, ces derniers vont appliquer les tâches d’administration sur le système administré. 2.1.1 Complexité des systèmes informatiques L’informatique est un domaine essentiel dans beaucoup de secteurs d’activité. La plupart des activités, souvent complexes, dans ces secteurs est assurée au moyen de systèmes informatiques afin de faciliter leur gestion. Ces systèmes fournissent des services, e.g., le commerce en ligne, les opérations bancaires, ouverts à un nombre important d’utilisateurs. Ils évoluent souvent dans un environnement très dynamique. Les enjeux économiques liés à ces activités font que les systèmes informatiques associés doivent assurer un bon fonctionnement qui requiert une forte fiabilité. Une panne ou une indisponibilité peut causer des pertes financières considérables. Le besoin de stabilité a conduit à la conception de systèmes larges et complexes, avec de nombreux éléments logiciels répartis, déployés suivant une architecture distribuée. Par ailleurs, l’exécution de ces systèmes nécessite de grandes quantités de ressources. 2.1.1.1 Architecture multi-tiers L’architecture multi-tiers est un exemple d’architecture distribuée de plus en plus utilisée. Elle permet l’interconnexion de serveurs qui rendent des services différents, e.g., la production de page web avec la gestion de base de données. Les serveurs sont groupés en tiers. Chaque tier offre un service à son prédécesseur, et requiert le service fourni par son successeur pour remplir sa part dans la chaîne de traitement des requêtes. Les différents tiers peuvent participer au traitement de chaque requête entrante durant l’exécution du système. Pour des raisons de performance et de disponibilité, chaque tier peut être dupliqué sur plusieurs machines distinctes. Un répartiteur de charge est alors utilisé en frontal à chaque tier basé sur la réplication pour distribuer les requêtes à traiter entre les serveurs dupliqués du tier. 92.1. ADMINISTRATION AUTONOME 2.1.1.2 Centre de données : ressources à large échelle La mise en exploitation des systèmes informatiques nécessite aujourd’hui une importante puissance de calcul. Ce besoin a conduit les entreprises à s’orienter vers les centres de données. Un centre de données est constitué d’un ensemble d’équipements matériels sophistiqués et à grande échelle pour fournir une puissance de calcul et une capacité de stockage très élevées. La puissance de calcul et la capacité stockage sont fournies par une plate-forme formée par un nombre important de serveurs physiques puissants inter-connectés via un réseau à haut débit. Cette plate-forme est généralement virtualisée ce qui permet d’exécuter plusieurs applications distinctes simultanément de manière isolée. Un système de virtualisation, e.g., VMWare, Xen, est installé sur les serveurs physiques pour former la couche virtuelle. La ressource approvisionnée dans ce type de plate-forme est la machine virtuelle. Une machine virtuelle est un logiciel qui reproduit le même comportement qu’un ordinateur réel. Elle contient un système d’exploitation et ne se distingue pas d’un ordinateur réel, vu de l’intérieur. Elle peut héberger des logiciels applicatifs et exécuter la plupart des tâches qu’un ordinateur réel peut exécuter. Le système de virtualisation gère le quota de ressources physiques alloué à chaque machine virtuelle durant son exécution. Le quota de chaque machine virtuelle peut évoluer en fonction de ses besoins. 2.1.1.3 Limites de l’administration manuelle La complexité croissante des systèmes informatiques a rendu les tâches d’administration difficiles à assurer manuellement. La capacité humaine pour la gestion d’un système informatique – déploiement et reconfiguration – est vite dépassée par la complexité de celui-ci. Le déploiement implique la copie, l’installation de chaque logiciel sur la machine dédiée, leur configuration et leur mise en marche. La reconfiguration implique une surveillance continue de l’ensemble des éléments logiciels et matériels pour la détection de changements dans l’environnement d’exécution – détection de défaillance, charge de travail – auxquels il faut réagir. Ces tâches sont rendues difficiles à effectuer manuellement par le nombre très important d’éléments impliqués. 102.1.2 Gestionnaire autonome Un système autonome est muni d’éléments logiciels dédiés à son administration. Ces derniers lui permettent ainsi de s’auto-administrer et de minimiser l’intervention humaine. Ces éléments logiciels, responsables des tâches d’administration, sont appelés gestionnaires autonomes. 2.1.2.1 Définition de gestionnaire autonome Un gestionnaire autonome est un élément logiciel qui implémente une ou plusieurs fonctions d’administration sur des éléments administrés de manière autonome. Parmi les fonctions d’administration figurent l’auto-configuration, l’auto-protection, l’auto-optimisation, l’auto-réparation. Les éléments administrés peuvent être des éléments logiciels et/ou matériels. Le gestionnaire implante une boucle de contrôle au moyen de capteurs et d’actionneurs. Les capteurs permettent de collecter les informations sur les éléments administrés. Les actionneurs, quant à eux, permettent d’appliquer les opérations de reconfiguration. Les capteurs et les actionneurs sont fournis avec les éléments administrés. Analyse Planification Gestionnaire autonome Capteurs Actionneurs Elements administres Observation Execution Connaissance FIGURE 2.1 – Architecture d’un système autonome L’implémentation d’un gestionnaire autonome est basée sur le modèle de référence, représenté à la figure 2.1, proposé par IBM, MAPE-K : Monitor (Obser- 112.1. ADMINISTRATION AUTONOME vation), Analyze (Analyse), Plan (Planification), Execute (Exécution) et Knowledge (Connaissance). Ce modèle décrit quatre tâches principales : 1. Observation. Cette partie surveille l’exécution des éléments administrés grâce aux mesures provenant des capteurs. Elle permet d’agréger et de filtrer les informations de bas niveau en provenance des capteurs pour générer des données pertinentes destinées à l’analyse (e.g., panne, la surcharge ou la sous-charge d’un serveur). 2. Analyse. Elle implante les politiques de décision de la boucle de contrôle. Pour cela, elle analyse les données de surveillance et se base sur le modèle du système administré pour déterminer si des modifications sont nécessaires et va déclencher la phase de planification pour modifier le système. 3. Planification. Elle génère un programme de reconfiguration qui contient les tâches de reconfiguration à effectuer ainsi que leurs contraintes d’ordonnancement éventuelles. 4. Exécution. C’est le moteur qui exécute les tâches de reconfiguration en fonction des contraintes d’ordonnancement. Le moteur doit aussi assurer la cohérence du système lors d’une reconfiguration. Les tâches de recon- figuration sont exécutées grâce aux actionneurs des éléments administrés. Connaissance (modèle du système). A l’exécution, un modèle du système administré est maintenu à jour. Ce modèle est utilisé par le gestionnaire autonome comme base pour les décisions d’administration. Il fournit une connaissance des éléments administrés. L’idéal serait qu’il fournisse également une connaissance sur les gestionnaires autonomes présents dans le système. Il existe différents types de modèles suivant la fonction d’administration implantée par le gestionnaire. On peut citer par exemple des modèles représentant la liste des attaques connues sur le système pour l’auto-protection ou bien des modèles basés sur la structure du système pour l’auto-réparation et l’auto-configuration. 122.1.2.2 Implémentation L’administration autonome est une approche très prometteuse. Beaucoup de travaux de recherche ont démontré sa faisabilité à travers différentes expérimentations. Aujourd’hui de nombreux gestionnaires autonomes ont été conçus. Ils assurent de manière cohérente les tâches d’administration qu’ils implémentent. Parmi les aspects d’administration considérés figurent l’auto-configuration, l’auto-protection, l’auto-optimisation et l’auto-réparation. Auto-réparation. Les frameworks proposés dans [18,53] implémentent l’autoréparation. Ils permettent la restauration des composants logiciels de systèmes, à l’exécution. Dans [18], un modèle architectural du système administré est maintenu à jour. Il est utilisé comme base pour la reconfiguration et la réparation du système. Le modèle expose un ensemble de propriétés sur l’architecture du système, qui permettent de définir des contraintes formelles pour détecter des anomalies, et savoir quand une adaptation est nécessaire. La violation d’une contrainte entraîne la réparation du modèle. Les changements effectués sur le modèle sont ensuite appliqués sur les composants du système réel. La relation entre le modèle et le système réel est assurée au moyen de jauges et de services de traduction. Les jauges permettent l’évaluation des propriétés en fonction des mesures au niveau du système. Les services de traduction, eux, permettent d’interpréter les opérateurs au niveau de l’architecture et les mapper aux opérateurs de réparation sur les composants du système en exécution. La particularité du framework proposé est qu’il permet de choisir le style architectural utilisé pour la définition du modèle du système. L’objectif est de permettre d’utiliser le style qui correspond le mieux à l’architecture du système géré et qui expose les propriétés qui correspondent le mieux aux aspects d’administration. Des méthodes analytiques sont fournies pour la suggestion de stratégies de réparation appropriées. Les stratégies définissent des règles de réparation basées sur des opérateurs de haut niveau permettant l’adaptation du modèle. Le framework proposé dans [53] permet la réparation d’un système logiciel soumis à une haute variabilité. Il permet de surveiller le système pour détecter les fonctions qui ont échoué pour reconfigurer le système dans un état correct. La gestion de la réparation est basée sur un modèle d’objectifs composé d’objectifs et de tâches, structurés sous forme de graphe. Le framework est 132.1. ADMINISTRATION AUTONOME constitué de quatre composants : un composant de surveillance, un composant d’analyse, un composant de reconfiguration et un composant d’exécution. Le composant de surveillance collecte, à l’exécution, les données logs du système géré. Ces données sont ensuite utilisées par le composant d’analyse pour identifier en cas d’échec les objectifs et les tâches qui ont échoué et la source de l’échec. Le composant de reconfiguration génère la meilleur configuration à laquelle reconfigurer le système à la prochaine exécution. La nouvelle configuration contient un ensemble de tâches dont la réussite de l’exécution mène à la satisfaction de l’objectif global. La nouvelle configuration est transmise au composant d’exécution. Ce dernier exécute des actions de compensation pour restaurer le système dans un état précédent consistant, puis il reconfigure le système en utilisant la nouvelle configuration calculée. Auto-optimisation. Les approches proposées dans [1,12,46,49] implémentent l’auto-optimisation. Ils permettent de réagir aux variations de l’environnement de façon à obtenir un fonctionnement optimal du système administré. Le fonctionnement optimal est généralement défini en fonction de critères de performance et/ou de consommation de ressources. Ces approches permettent une allocation dynamique de ressources aux applications administrées hébergées sur une grappe de machines. En effet, une allocation statique peut mener à un gaspillage de ressources. [12, 46, 49] ont proposé une politique d’approvisionnement de ressources basée sur la charge de travail reçue en entrée. Ces approches reposent sur une surveillance de la charge de travail ou de métriques de qualités de service (SLA «Service Level Agreement») pour l’approvisionnement dynamique de ressources dans un environnement non virtualisé ou virtualisé. La ressource approvisionnée peut être du cpu, de la mémoire ou une machine entière. Dans le cas de système basé sur la réplication, l’optimisation est basée sur un mécanisme d’approvisionnement dynamique qui prend en compte la charge de travail courante afin d’ajuster le nombre de serveurs actifs en démarrant de nouveaux serveurs sur des machines disponibles, ou en arrêtant des serveurs et les machines qui les hébergent quand ils ne sont plus nécessaires. [1] propose ElastMan, un gestionnaire autonome pour l’élasticité d’applications web dans un environnement de cloud computing. Il permet l’approvisionnement et le retrait dynamique des ressources allouées à une ap- 14plication afin de garantir les objectifs de niveau de service requis (SLOs «Service Level Objective») à un coût réduit. L’approche combine un contrôle prédictif et un contrôle rétroactif. Le contrôle prédictif permet de détecter et de répondre rapidement à des pics de charge. Le contrôle rétroactif permet de corriger l’écart vis-à-vis de la qualité de service souhaitée. Auto-protection. Le framework JADE a été proposé dans [26] pour implé- menter l’auto-protection d’un système distribué. L’auto-protection est mise en oeuvre en plaçant devant chaque élément logiciel du système un pare-feu. Chaque pare-feu est configuré pour accepter les requêtes autorisées à être traitées par le logiciel associé. Les pare-feux sont également configurés comme détecteurs d’intrusions. En cas d’intrusion, JADE isole les éléments impactés (e.g., les machines "infectées"). Il reconfigure de manière autonome l’architecture du système en remplaçant les éléments impactés et en reconfigurant les pare-feux grâce à un modèle de l’architecture du système maintenu à jour. JADE construit une représentation, à base de composants, du système distribué à administrer. Chaque élément administré du système est encapsulé dans un composant. Le système distribué est administré comme une architecture à composants. JADE est basé sur le modèle à composants Fractal [14] qui fournit des fonctionnalités d’introspection et de reconfiguration dynamique. Chaque composant implémente la même interface d’administration pour l’élément qu’il encapsule. Cela permet de gérer de manière homogène les éléments à administrer en évitant d’utiliser leurs interfaces d’administration complexes et propriétaires. JADE est un système d’administration autonome. Il permet d’ajouter des comportements autonomes à des systèmes distribués (auto-protection [26], auto-réparation [11] et auto-optimisation [10]). Les gestionnaires autonomes agissent sur les interfaces fournies par les composants qui encapsulent les élé- ments administrés pour surveiller et appliquer des opérations d’administration sur le système réel à l’exécution. JADE permet d’ajouter plusieurs gestionnaires autonomes sur un même système. Toutefois les gestionnaires s’exécutent de manière indépendante sans aucune coordination. TUNe [13] est une amélioration de JADE. Il permet de masquer la complexité liée à la maîtrise des API de programmation du modèle à composants en fournissant un langage de descrip- 152.1. ADMINISTRATION AUTONOME tion de l’architecture du système à administrer. Cependant la coordination des gestionnaires n’est également pas traitée dans TUNe. Auto-configuration. Cette propriété peut être considérée comme traitée dans tous les travaux qui se sont intéressés à l’auto-administration et qui ont proposé une implémentation. En effet, qu’il s’agisse d’optimisation, de réparation ou de protection, une nouvelle configuration du système administré est générée et appliquée à travers les actions d’administration. 2.1.3 Coordination de gestionnaires autonomes Aujourd’hui beaucoup de gestionnaires autonomes sont disponibles. Cependant chacun n’implémente qu’une partie des fonctions d’administration. Construire un système entièrement autonome dans lequel toutes les fonctions d’administration sont assurées requiert l’utilisation de plusieurs gestionnaires. Cela permet une gestion complète des différents aspects d’administration. Leur coexistence est rendue nécessaire par la difficulté de concevoir un gestionnaire qui couvre toutes les fonctions d’administration. 2.1.3.1 Besoin de coordination La coordination des gestionnaires autonomes permet d’éviter des incohérences lors de l’administration d’un système. Individuellement chaque gestionnaire a un comportement cohérent mais leur coexistence peut amener des incohérences. Ils sont conçus indépendamment et n’ont généralement aucune connaissance de leur coexistence. De ce fait ils ne peuvent pas distinguer les changements causés par les phénomènes physiques (auxquels ils doivent réagir) des changements causés par les actions d’administration des uns des autres sur le système administré. Les actions d’un gestionnaire peuvent mener le système dans un état dans lequel ses objectifs peuvent être atteints alors que ceux des autres peuvent ne pas être atteints. Cela peut entraîner des actions de reconfiguration en répétition sans garantir ultimement l’atteinte des objectifs de tous les gestionnaires. Cela peut conduire à une instabilité du système administré. 162.1.3.2 Approches de coordination proposées La coordination de gestionnaires autonomes a été étudiée dans plusieurs travaux de recherche. Des approches ont été proposées pour implémenter et mettre en oeuvre la coordination. Parmi les solutions proposées pour l’implé- mentation de la politique de coordination figurent des fonctions d’utilité, des fonctions d’optimisation, des protocoles de consensus et des règles (conditions/priorité). Coordination basée sur une fonction d’utilité. Les approches proposées par [20, 40] sont basées sur des fonctions d’utilité. La solution de coordination proposée par [40], vManage, permet une gestion unifiée de la plate-forme d’exécution physique et de l’environnement virtualisé dans un centre de données. vManage comprend un service d’enregistrement, un service de proxy, des coordinateurs et un stabilisateur. Les services d’enregistrement et de proxy permettent la découverte et l’enregistrement des différents capteurs et actionneurs disponibles. Le but est de faciliter l’utilisation de capteurs et d’actionneurs divers, de différents constructeurs et d’unifier les dispositifs de surveillance et de contrôle de la plate-forme et de l’environnement virtualisé. Les politiques de gestion de l’environnement virtualisé basée sur l’état de la plate-forme sont implémentées par un coordinateur connecté au gestionnaire du système de virtualisation. Les politiques de gestion de la plate-forme basée sur l’état de l’environnement virtualisé sont, quant à elles, implémentées par des coordinateurs, et chacun est connecté à un gestionnaire de plate-forme exécuté sur chaque serveur physique supportant l’environnement virtualisé. Les coordinateurs utilisent les services d’enregistrement et de proxy pour accéder aux données de surveillance générées par les capteurs, et pour appliquer les politiques via les actionneurs. La stabilité est assurée par le stabilisateur qui empêche les coordinateurs d’effectuer des actions redondantes et inutiles. L’é- valuation de la stabilité est basée sur une fonction de distribution cumulative. Cette dernière permet de calculer la probabilité que les serveurs physiques continuent à fournir suffisamment de ressources aux machines virtuelles qu’ils hébergent dans le futur durant une période de temps déterminée. Le prototype de coordination proposé par [20] permet la gestion de la performance et de la consommation énergétique dans un centre de données basé sur la répartition 172.1. ADMINISTRATION AUTONOME de charge. Le prototype est basé sur des agents. Il comprend un agent responsable de la gestion de la performance, un agent responsable de la gestion de la consommation énergétique des serveurs et un agent de coordination. L’agent responsable de la gestion de la performance s’occupe de la répartition de la charge entre les différents serveurs actifs. L’agent responsable de la gestion de la consommation énergétique s’occupe d’ajuster la puissance des serveurs. Les actions de ces deux agents sont coordonnées par l’agent de coordination. La politique de coordination est basée sur un modèle du système et une fonction d’utilité multi-critères sur laquelle est basée le contrôle implémenté par l’agent de coordination. Coordination basée sur des règles. Parmi les approches basées sur des règles, il y a [45] et [3]. La solution de coordination, VirtualPower, proposée par [45] permet la gestion de la consommation énergétique des ressources physiques en prenant en considération les politiques de gestion de ressources intégrées dans les machines virtuelles. Le but est de coupler la gestion de la performance au niveau des machines virtuelles et l’optimisation de l’énergie dans un centre de données. VirtualPower assure la satisfaction des politiques de gestion de ressources de machines virtuelles de manière indépendante et isolée via l’hyperviseur. Elle permet également la gestion globale de la puissance de calcul pour supporter l’environnement virtualisé en interprétant l’état des machines virtuelles pour la prise de décision. Le framework Accord proposé par [3] est basé sur les modèles à composants pour la construction d’applications autonomes. Les applications autonomes sont formées par la composition de composants autonomes qui intègrent des agents. Les agents implémentent des règles d’administration. Les décisions conflictuelles entre les agents sont résolus grâce à des priorités. Coordination basée sur une fonction d’optimisation. Les approches proposées dans [51] et [38] sont basées sur des fonctions d’optimisation. [51] propose une extension de l’architecture GANA pour assurer la stabilité des boucles de contrôle dans un réseau autonome. Le framework introduit un nouveau module de synchronisation des actions (ASM). Ce module est intégré dans certains des éléments de décision (gestionnaire autonomes) qui se chargeront de 18la coordination. Chaque module ASM gère une liste d’actions à synchroniser et dont il est responsable. Chaque gestionnaire avant d’exécuter une action consulte le module ASM responsable de l’action pour validation. Il connaît l’impact de chacune des actions sur les métriques de qualité de service. Un ASM sélectionne, parmi l’ensemble des actions à synchroniser, le sous-ensemble d’actions à exécuter qui assure la stabilité locale et globale du réseau. Le choix des actions à exécuter est formulé comme un problème d’optimisation basé sur la programmation linéaire binaire. Des indicateurs de performance sont définis, chacun avec un poids qui indique son importance. Un ASM choisit les actions qui optimise l’ensemble des indicateurs de performance. [38] adresse la stabilité dans un réseau autonome équipé de plusieurs boucles de contrôle. Il identifie trois problèmes qui doivent être considérés pour la stabilité : l’interaction des boucles de contrôle, la résolution de conflits entre les boucles de contrôle et la synchronisation. La théorie des jeux est proposée pour l’étude de la stabilité des comportements autonomes. La conception repose sur l’architecture GANA qui permet une structuration hiérarchique des boucles de contrôle. GANA permet également la résolution de conflits via un module, une fonction de synchronisation des actions [51]. Coordination basée sur un consensus. Parmi les approches basées sur un consensus, nous pouvons citer [2]. Elle propose un framework, LIBERO, qui permet l’implémentation de modèle comportemental de type Pipeline et Farm avec plusieurs gestionnaires autonomes coordonnés pour la gestion de plusieurs aspects non fonctionnels. La coordination des gestionnaires repose sur un consensus. Un gestionnaire qui planifie l’exécution d’une action demande la validation de l’action par les autres gestionnaires. 2.1.4 Synthèse Une administration autonome globale requiert plusieurs gestionnaires autonomes pour couvrir tous les objectifs. Toutefois, la coordination des actions exécutées par les gestionnaires est essentielle pour éviter des décisions con- flictuelles et garantir la cohérence de l’administration. Des solutions de coordination ont été proposées. Certaines solutions proposent des approches basées sur des fonctions d’optimisation, des fonctions d’utilité, des priorités ou un 192.2. MODÈLES RÉACTIFS consensus. Cependant, dans tous les cas, il y a un besoin de synchronisation et de contrôle des actions des gestionnaires. La coordination peut être considérée comme un problème de synchronisation et de contrôle logique des actions d’administration. Une méthodologie de conception est d’utiliser les techniques issues des systèmes réactifs et des systèmes à événements discrets de la théorie du contrôle. Cette dernière est la discipline classique pour la conception de contrôleurs automatiques. Elles offrent des garanties sur le comportement du contrôleur vis-à-vis de propriétés désirables. 2.2 Modèles réactifs Les systèmes réactifs [33] sont des systèmes qui interagissent continuellement avec leur environnement extérieur et au rythme imposé par ce dernier. Ils sont généralement concurrents de nature. Ils évoluent en parallèle avec leur environnement et ils sont souvent constitués de sous-systèmes évoluant en parallèle. Ces systèmes implémentent des fonctions critiques dont la validation de certaines propriétés de fonctionnement est requise avant la mise en exploitation. L’implémentation d’un système réactif avec les langages de bas niveau est souvent source d’erreurs et ne garantit pas la validation de propriétés sur le comportement du système. Parmi les solutions proposées pour l’étude et la conception de systèmes réactifs figurent STATECHARTS [35], les réseaux de Pétri et les langages synchrones. STATECHARTS est un formalisme basé sur les diagrammes d’états. Il fournit des mécanismes pour représenter le parallélisme, la préemption et la hiérarchie. Les réseaux de Pétri permettent la modélisation et l’analyse qualitative de comportements parallèles, de synchronisation et de partage de ressources. Quant aux langages synchrones, ils fournissent des méthodes formelles pour la spécification de systèmes réactifs et disposent d’outils de vérification, de synthèse de contrôleurs discrets [42] et de génération de code exécutable à partir de la spécification. Nous basons notre travail sur ces langages. 202.2.1 Les langages synchrones Les langages de programmation synchrone [5] sont des langages de haut niveau introduits au début des années 80 pour la conception de systèmes réactifs. Ils permettent une description de haut niveau du comportement d’un système et d’aborder les notions de concurrence et de déterminisme. Ils permettent une spécification formelle et disposent d’outils d’analyse offrant des garanties à la compilation sur le comportement du système à l’exécution. Les langages synchrones reposent sur une hypothèse appelée l’hypothèse synchrone. L’hypothèse synchrone fournit un niveau d’abstraction où les réactions – calculs et/ou communications – du système sont instantanées. Cela permet la spécification du fonctionnement d’un système sans considérer les contraintes liées à l’architecture sur laquelle il est exécuté. L’évolution est basée sur la notion d’instant. Les événements internes et les événements de sortie sont datés précisément en fonction du flux des événements en entrée. Cela facilite au moment de la spécification de raisonner en temps logique sans tenir compte des temps réels des calculs et des communications. Cela facilite également le raisonnement par rapport aux aspects de déterminisme et de concurrence sur le comportement du système souvent décrit comme la composition parallèle de sous-systèmes. Certains langages synchrones sont basés sur le modèle impératif. ESTEREL [7] est un exemple de langage qui adopte ce modèle. D’autres sont basés sur le modèle flot de données par exemple LUSTRE [34] et SIGNAL [6]. Dans le modèle flot de données toute variable manipulée est un flot, c’est-à-dire une séquence infinie de valeurs d’un même type. A chaque instant, une valeur est associée à chaque variable. Il existe d’autres langages qui permettent de décrire un système à base de modèles mixant des équations de flot de données et des automates (les automates de mode [41]). C’est le cas des langages Heptagon [27] et Heptagon/BZR [22, 24, 25]. Trans State Out X Y FIGURE 2.2 – Système de transitions 212.2. MODÈLES RÉACTIFS Toutefois, bien que basés sur des modèles différents, les programmes synchrones implantent le même comportement de base illustré par la figure 2.2. A chaque réaction, les valeurs des flux d’entrée X, ainsi que les valeurs courantes de la mémoire, sont utilisées pour calculer l’état suivant (fonction Trans), mettre à jour la mémoire (fonction State) et calculer les valeurs des flux de sortie Y (fonction Out). 2.2.1.1 Heptagon/BZR Heptagon/BZR 1 [22, 24, 25] est un langage de programmation appartenant à la famille des langages synchrones. Il permet de décrire un système à base de modèles mixant des équations de flot de données et des automates [41]. Ce langage permet de décrire un système constitué de sous-systèmes par la composition parallèle et hiérarchique [19] des modèles des différents sous-systèmes. Les modèles évoluent en parallèle de manière synchrone : une réaction globale implique une réaction locale de chacun des sous-modèles. Inactive Attente Active req and not c/ req and c/ dem fin/ c/ dem active=False active=False active=True (active, dem) = tache_comp (c, req, fin) FIGURE 2.3 – Modélisation avec Heptagon/BZR : Tâche différable La Figure 2.3 présente un exemple simple de modélisation avec le langage Heptagon/BZR. Le programme tache_comp modélise le comportement contrôlable d’une tâche (e.g., un processus). L’activation de la tâche peut être 1. http://bzr.inria.fr 22node tache_comp(req, c, fin:bool) returns (active, dem:bool) let automaton state Inactive do active = false ; dem = req and c until dem then Active | req and not c then Attente state Attente do active = false ; dem = c until dem then Active state Active do active = true ; dem = false until fin then Inactive end tel FIGURE 2.4 – Modélisation avec Heptagon/BZR : programme BZR. différée. Initialement la tâche n’est pas activée. Cet état est représenté dans le modèle par l’état Inactive. Dans cet état, lorsque l’activation de la tâche est demandée (req à vrai), si l’activation est autorisée (c à vrai) la tâche est activée et passe dans l’état Active ; sinon l’activation est retardée en attente de l’autorisation. L’attente de l’autorisation est représentée par l’état Attente. La sortie dem indique le déclenchement de l’activation de la tâche dans le système. La sortie active indique l’état de la tâche, elle est à vrai lorsque la tâche est en cours d’exécution. La fin de l’activation de la tâche est représentée par l’entrée fin à vrai. La figure 2.4 présente le programme Heptagon/BZR correspondant à l’automate décrit dans la figure 2.3. Heptagon/BZR, comme tous les autres langages synchrones, permet de mod- éliser un système par la composition parallèle d’automates, illustrée par la figure 2.5. Chaque automate décrit une partie, un sous-système, du système global. Cela facilite la modélisation de systèmes de grande taille. Les états et les transitions de l’automate produit de la composition est l’ensemble des combinaisons d’états et de transitions possibles des automates composés en parallèle. 232.2. MODÈLES RÉACTIFS A0 A1 not a/ a/ A B0 B1 not b/ b/ B A0B0 A1B0 A0B1 A1B1 not a. not b/ a. not b/ not a. b/ b/ a/ a.b/ (A||B) = FIGURE 2.5 – Exemple de composition parallèle Toutefois la composition parallèle ne fait aucune synchronisation entre les automates composés. La composition parallèle est appropriée pour la modélisation du comportement parallèle de systèmes indépendants. Lorsque les systèmes modélisés par les automates doivent communiquer ou se synchroniser les uns avec les autres, la composition parallèle doit être utilisée avec l’encapsulation de certains signaux (entrées/sorties des automates) dédiés. 1 2 not a/ a/b A X Y not b/ b/ B b 1X 2Y not a/ a (A||B)\{b} = FIGURE 2.6 – Exemple d’encapsulation L’encapsulation, illustrée à la figure 2.6, est une opération qui permet d’assurer la synchronisation entre deux automates composés par une variable qui est une sortie d’un des automates et une entrée pour l’autre. Dans cet exemple, 24la variable encapsulée est la variable b qui permet ainsi de synchroniser les automates. Cependant, cette opération peut poser des problèmes de causalité lorsque les automates communiquent de manière bidirectionnelle dans la même réaction. 2.2.1.2 Implémentation des programmes synchrones L’implémentation des programmes synchrones peut être soit matérielle soit logicielle. Dans le cas d’une implémentation logicielle, le compilateur produit un programme séquentiel exécutable dans un langage de programmation cible (C ou Java). Ce sont en général des langages de programmation impératifs, permettant une intégration aisée du code obtenu dans le système, d’où le choix de langages largement utilisés et indépendants de la plate-forme d’exécution. La génération de code en Java 2 produit une ou plusieurs classes Java avec une classe principale. La classe principale, tout comme les autres classes, fournit un constructor qui permet de créer une instance deux méthodes : reset et step. La méthode reset ne prend aucun paramètre et permet d’initialiser l’état interne global, e.g., les variables internes et les variables de sortie. La méthode step implémente le comportement réactif et permet d’effectuer un pas d’exécution global. Elle met à jour l’état interne et retourne un résultat qui correspond aux sorties. Elle prend comme argument les entrées décrites dans le modèle global. Le compilateur des langages synchrones produit un code transformationnel ce qui implique qu’il doit être invoqué explicitement. La méthode step doit être appelée explicitement avec les bonnes entrées et fréquemment pour obtenir le comportement réactif. Le résultat produit par chacun des appels à la méthode step doit également être interprété et exécuté. De ce fait, il est nécessaire d’implémenter une interface [4] facilitant le dialogue avec la méthode step. A l’exécution, cette interface collecte les valeurs à passer à la méthode step, fait les invocations à la méthode et interprète le résultat retourné en terme d’actions à exécuter. Il existe deux modèles pour la mise en oeuvre du comportement réactif : – Modèle général : Dans ce modèle, le comportement réactif est basé sur l’occurrence des événements. Toute occurrence d’événement conduit à l’invocation de la méthode step. 2. Nous utilisons le langage Java dans nos expérimentations 252.2. MODÈLES RÉACTIFS – Modèle périodique : Dans ce modèle, le comportement réactif repose sur une réaction par période. L’invocation de la méthode step est périodique. Les événements sont collectés et conservés jusqu’à l’appel de la méthode. Un exemple de branchement d’un programme synchrone est présenté dans [8] pour le contrôle des pilotes de périphériques dans un système embarqué. L’objectif est d’appliquer des politiques de reconfiguration des pé- riphériques permettant une gestion globale de la consommation de l’énergie du système. Ce travail montre un exemple d’intégration d’un programme synchrone dans un système réel. Il montre comment le step est utilisé. 2.2.2 Synthèse de contrôleur discret (SCD) Parmi les méthodes de conception et de validation, la synthèse de contrôleur est l’une des plus séduisantes. Elle permet de raffiner une spécification incomplète de manière à atteindre un certain objectif comme la satisfaction d’une propriété non encore vérifiée par le système initial. La synthèse de contrôleur, issue de la théorie du contrôle, permet d’obtenir une logique de contrôle par construction [44]. Elle est basée sur des méthodes formelles pour la synthèse du contrôleur assurant le respect de propriétés sur un système contrôlé. Elle requiert un modèle du comportement du système à contrôler et une spécifi- cation des propriétés exprimées en terme d’objectifs de contrôle, par exemple l’invariance. Le modèle du système décrit de manière formelle tous les comportements possibles, les comportements corrects et incorrects vis-à-vis des propriétés désirées. Il décrit également la contrôlabilité du système. Le système à contrôler, ainsi que les objectifs de contrôle, sont généralement modélisés au moyen de systèmes de transitions étiquetés ou automates [48], et les langages synchrones sont bien adaptés. Principe. La synthèse de contrôleur construit une logique de contrôle, une contrainte sur les valeurs des entrées contrôlables du système à contrôler, en fonction de son état courant et des valeurs des entrées incontrôlables, de sorte que tous les comportements autorisés satisfassent les propriétés définies comme objectifs de contrôle. La logique de contrôle construite restreint le moins possi- 26ble le fonctionnement du système contrôlé. Trans State Out X Y X X U c Ctrlr FIGURE 2.7 – Système de transitions contrôlé La figure 2.7 présente un exemple où le système de transition de la figure 2.2 est le système à contrôler. Le système de transition prend en entrée X = (Xu ∪ Xc ) à chaque réaction. Les entrées Xu sont incontrôlables alors que les entrées Xc sont contrôlables. Le contrôleur (logique de contrôle) Ctrlr, obtenu par synthèse de contrôleur, produit les valeurs à affecter aux variables contrôlables Xc en se basant sur les valeurs des entrées incontrôlables Xu et l’état courant du système afin d’assurer les objectifs de contrôle. Toutefois, il peut arriver qu’il n’existe pas de solution si le système n’est pas assez contrôlable par rapport aux objectifs de contrôle. Le code exécutable correspondant au modèle contrôlé décrit à la figure 2.7 constitue un contrôleur réel. Il permet à l’exécution de contrôler le système modélisé lorsqu’ils sont couplés. 2.2.2.1 Synthèse de contrôleur avec Heptagon/BZR Heptagon/BZR intègre un outil de synthèse de contrôleur discret SIGALI 3 [44] dans sa compilation. Il permet une utilisation facile de la synthèse de contrôleur en introduisant la notion de contrat dans la modélisation de système. Le contrat est décrit de manière déclarative [24]. Il est constitué de trois parties : assume, enforce et with. Le contrat contient les propriétés que le fonctionnement du système doit respecter. Ces propriétés sont déclarées comme objectifs de contrôle dans la 3. http://www.irisa.fr/vertecs/Logiciels/sigali.html 272.2. MODÈLES RÉACTIFS partie enforce. Lorsque le modèle qui décrit le fonctionnement du système à contrôler ne garantit pas le respect des propriétés, Heptagon/BZR génère une logique de contrôle qui permet d’assurer le respect des propriétés lorsque des entrées contrôlables sont définies dans le modèle. Les variables contrôlables dans le modèle du système sont déclarées comme variables locales contrôlables dans la partie with du contrat. La logique de contrôle qui assure le respect des propriétés détermine les valeurs à assigner à ces variables contrôlables de sorte à restreindre le fonctionnement aux comportements qui satisfont les propriétés. Les propriétés pertinentes concernant l’environnement d’exécution sont déclarées dans la partie assume du contrat. Cette information est prise en compte lors de la synthèse de la logique de contrôle. (active1, dem1, active2, dem2) = deuxtaches(req1, fin1, req2, fin2) assume true enforce not (active1 and active2) with c1, c2 (active1, dem1) = tache_comp1(c1, req1, fin1) ; (active2, dem2) = tache_comp2(c2, req2, fin2) FIGURE 2.8 – Heptagon/BZR contrat : exclusion mutuelle La figure 2.8 présente un exemple de programme auquel est associé un contrat. Ce programme modélise le contrôle de deux tâches. L’exécution de chacune des tâches peut être retardée. Les deux tâches sont modélisées par deux instances du programme à la figure 2.3. Le contrat associé à ce programme consiste à n’autoriser l’activation d’une tâche que lorsque l’autre tâche n’est pas en cours d’exécution. Les deux tâches ne doivent pas être actives en même temps. De ce fait, l’objectif est de contrôler le démarrage de l’exécution des tâches de sorte que les deux tâches ne soient pas actives en même temps. Cela est exprimée par la propriété «not (active1 and active2)», avec active1 à vrai (true) lorsque la tâche n1 est active et active2 à vrai (true) lorsque la tâche n2 est active. Cette propriété étant l’objectif de contrôle à garantir est déclarée dans la partie enforce du contrat. Les variables c1 et c2, déclarées comme étant contrôlables dans la partie with, vont être utilisées par la logique de contrôle synthétisée pour empêcher l’activation de l’exécution d’une des tâches lorsque l’autre est en cours d’exécution. 28A la compilation Heptagon/BZR invoque SIGALI pour la synthèse de la logique de contrôle. Une fois la logique de contrôle générée, Heptagon/BZR l’intègre dans le modèle et produit un programme exécutable. Ce dernier constitue un contrôleur qui permet de contrôler l’exécution des deux tâches modélisées pour respecter la propriété. Heptagon/BZR permet de produire une seule solution de manière déterministe pour un problème de synthèse de contrôleur discret. Le compilateur de Heptagon/BZR favorise, pour les variables contrôlables, la valeur vrai (true) à faux (false) et en prenant en compte l’ordre de déclaration des variables. 2.2.2.2 Synthèse modulaire avec Heptagon/BZR La synthèse de contrôleur est de complexité exponentielle. Elle est basée sur l’exploration de l’espace d’états [16, 44] pour construire la logique de contrôle. Cela limite son passage à l’échelle concernant son application sur des modèles de systèmes larges. La synthèse modulaire permet d’adresser des systèmes larges et complexes. Elle permet une spécification décentralisée du contrôle d’un système. Un système est généralement modélisé par la composition de sous-modèles qui peuvent également être la composition de sous-modèles. La synthèse modulaire exploite cette structure du système [43] pour réduire la complexité en offrant la possibilité de définir dans chacun des sous-modèles les objectifs de contrôle à assurer sur les comportements qu’il encode. Chaque sous-modèle intègre une logique de contrôle qui assure le respect de propriétés vis-à-vis de son contexte local, et le respect de propriétés globales vis-à-vis de sa composition avec d’autres sous-modèles. (...) = node(...) assume A enforce G with c11, ..., c1q , ..., cn1, ..., cnp (...) = subnode1(c11...c1q , ...) assume A1 enforce G1 ... ; . . . ; (...) = subnoden(cn1...cnp, ...) assume An enforce Gn ... FIGURE 2.9 – Synthèse modulaire avec Heptagon/BZR. 292.2. MODÈLES RÉACTIFS La figure 2.9 présente un exemple graphique de la spécification modulaire du contrôle en Heptagon/BZR. Chaque sous-modèle, subnodei , inclut un contrat qui contient des objectifs de contrôle Gi à assurer localement. Le modèle global node inclut un contrat qui contient les objectifs de contrôle global G à assurer sur l’ensemble. Le contrat de node utilise les entrées contrôlables cij des sousmodèles subnodei comme variables contrôlables pour assurer le respect des objectifs globaux. Principe. La synthèse modulaire dans Heptagon/BZR est basée sur l’utilisation des contrats des sous-modèles comme abstraction de leurs comportements. [24] et [21] fournissent une description formelle détaillée de cette approche. Néanmoins nous décrivons le principe à travers l’exemple présenté à la figure 2.9. La synthèse modulaire permet de construire indépendamment la logique de contrôle à intégrer dans chaque sous-modèle subnodei . La synthèse ne dépend que des entrées et du comportement qu’il encode (section 2.2.2) en plus des objectifs de contrôle. Lorsqu’une partie des objectifs de contrôle Gi définis dans le contrat d’un sous-modèle subnodei concerne l’application du contrôle reçu via ses entrées contrôlables cij, alors la logique de contrôle construite pour ce modèle assure le respect du contrôle externe. Lors de la réutilisation d’un sous-modèle dans un contexte global, comme node, son contrat offre une garantie de l’application du contrôle externe du comportement qu’il encode. Cela permet d’utiliser le contrat comme abstraction du comportement. De ce fait pour la construction la logique de contrôle pour le modèle global node, on peut supposer, en plus de A, le respect du contrôle appliqué sur chaque sous-modèle subnodei via ses entrées contrôlables cij pourvu que la supposition Ai définie dans son contrat soit respectée : Vn i=1 (Ai =⇒ Gi). Par conséquent il n’est plus nécessaire de parcourir les comportements encodés dans les sous-modèles pour la synthèse de la logique de contrôle pour le mod- èle node. Cela présente comme avantage la diminution de la taille de l’espace d’états à explorer pour le modèle global. Le problème de synthèse consiste alors à construire une logique de contrôle qui assure le respect de G et aussi le respect de Vn i=1 Ai . Nous détaillons dans le chapitre suivant comment les objectifs associés aux 30entrées de contrôle sont définis dans le contrat d’un modèle dans le cadre de ce travail de thèse. Réduction de la complexité. La synthèse modulaire permet d’appliquer la synthèse sur des modèles simples avec peu d’états à explorer et de les composer de manière modulaire et hiérarchique. Elle offre également la possibilité d’appliquer la synthèse sur les compositions de modèles en considérant le contrat des sous-modèles comme abstraction des comportements qu’ils encodent. Cela diminue le nombre d’états à explorer par synthèse et par conséquent réduit la complexité. La synthèse est appliquée sur chacun des modèles de manière indépendante que ce soit un modèle simple ou une composition. La synthèse modulaire sur une composition requiert uniquement le contrat défini dans les sous-modèles. Ainsi l’application de la synthèse modulaire sur un modèle global ne nécessite pas l’application de la synthèse modulaire sur les sous-modèles qui le constituent. Une fois qu’une logique de contrôle est générée pour un modèle, il n’est plus nécessaire, lors de sa réutilisation, d’appliquer à nouveau la synthèse sur ce modèle à moins que ce dernier ait subi des modifications. Cependant l’abstraction des détails internes des sous-modèles diminue les solutions possibles qui peuvent être construites pour un problème donné, comparé à l’approche monolithique. De plus, comme pour la synthèse monolithique, il peut arriver qu’il n’existe pas de solution également dans le cas de la synthèse modulaire. Réutilisation de code exécutable. La compilation des modèles est également effectuée de manière modulaire. La logique de contrôle qui satisfait les objectifs de contrôle d’un modèle est construite et intégrée dans le modèle ; et le code exécutable correspondant à l’ensemble est généré. Le code reste inchangé et réutilisable tel quel dès lors que la spécification ne change pas. La recompilation n’est nécessaire que si la spécification change. 2.2.3 Synthèse La synthèse de contrôleur discret (SCD) permet de construire un contrôleur qui, mis en parallèle avec le système qu’on veut contrôler, le restreint aux 312.3. CONCLUSION comportements qui satisfont les propriétés désirées. Son application requiert une modélisation du système à contrôler et une spécification des propriétés à garantir qui sont exprimées sous forme d’objectifs de contrôle. Généralement le système est décrit par un système de transition ou un automate avec des langages de haut niveau comme les langages synchrones. Ces langages permettent une description formelle du comportement d’un système sous forme d’automate (aspects fonctionnels et/ou non fonctionnels). Ils permettent de modéliser un système par la composition parallèle et hiérarchique de modèles simples. Ils fournissent des compilateurs puissants qui permettent la génération automatique de code exécutable à partir de la spécification du système. Cela permet de réduire l’écart entre la spécification d’un système et son implémentation. La synthèse modulaire permet une spécification décentralisée en offrant la possibilité d’appliquer la synthèse sur des modèles simples avec peu d’états à explorer et de les composer de manière modulaire et hiérarchique. Elle offre également la possibilité d’appliquer la synthèse sur les compositions de modèles en considérant le contrat des sous-modèles comme abstraction des comportements qu’ils encodent. Cela permet de diminuer le nombre d’états à explorer par synthèse et par conséquent réduit la complexité. 2.3 Conclusion L’automatisation des fonctions d’administration des systèmes informatiques est un sujet qui suscite encore beaucoup d’intérêt en recherche. Les travaux déjà effectués démontrent sa faisabilité à travers différentes expérimentations. Aujourd’hui de nombreux gestionnaires autonomes sont implémentés et assurent de façon cohérente les fonctions d’administration ; mais aucun n’assure une administration complète. Cela rend leur coexistence nécessaire pour une administration globale. Toutefois la coordination de leur coexistence est importante pour assurer une administration cohérente. Beaucoup de travaux de recherche se sont intéressés à la coordination de gestionnaires autonomes. Différentes approches ont été proposées et évaluées à travers des expérimentations. Cependant nous remarquons que toutes ces approches de coordination requièrent la 32synchronisation des gestionnaires et le contrôle de leurs actions, et ces aspects ont été largement étudiés en théorie du contrôle discret. La théorie du contrôle et les outils qui en résultent ont récemment commencé à être utilisés pour les systèmes informatiques. La plupart des cas d’utilisation reposent sur des modèles continus ; généralement pour traiter des aspects quantitatifs [36, 37, 47]. Des utilisations plus récentes reposent sur des modèles de la famille des systèmes à Événements Discrets [16] sur lesquels des propriétés logiques sont étudiées. Ils utilisent les notions de contrôle supervisé [48], généralement pour garantir des propriétés logiques ou à des fins de synchronisation [52]. Le contrôle discret est basé sur des modèles sous la forme de systèmes de transitions, comme les réseaux de Petri ou automates. Il fournit des langages de haut niveau, comme les langages synchrones, pour la spécification formelle de système ; et des outils de vérification et de synthèse de contrôleur. Dans ce travail de thèse, nous nous intéressons à l’application des techniques issues de la théorie du contrôle pour la coordination de gestionnaires autonomes. Nous utilisons la synthèse de contrôleur discret pour la construction automatique de contrôleur de coordination. La construction du contrôleur est basée sur le modèle de la coexistence des gestionnaires et une spécification de contrôle. Nous utilisons la programmation synchrone pour la modélisation des gestionnaires et de leur coexistence (coordonnée par SCD) et pour l’implémentation en Java du contrôleur de coordination. 332.3. CONCLUSION 343 Méthodologie de coordination de gestionnaires autonomes Contents 3.1 Spécification de la coordination . . . . . . . . . . . . . . . . . 36 3.1.1 Modélisation d’un gestionnaire autonome . . . . . . . 36 3.1.1.1 Comportement . . . . . . . . . . . . . . . . . . 37 3.1.1.2 Contrôlabilité . . . . . . . . . . . . . . . . . . . 38 3.1.2 Modélisation de la coordination . . . . . . . . . . . . . 39 3.1.2.1 Modélisation de la coexistence . . . . . . . . . 39 3.1.2.2 Spécification d’une stratégie de coordination 40 3.1.3 Modélisation modulaire de la coordination . . . . . . . 41 3.1.3.1 Contrôle décentralisé . . . . . . . . . . . . . . 41 3.1.3.2 Spécification modulaire et hiérarchique . . . . 42 3.2 Mise en oeuvre de la coordination . . . . . . . . . . . . . . . . 44 3.2.1 Le modèle à composants Fractal . . . . . . . . . . . . . 44 3.2.1.1 Composant Fractal . . . . . . . . . . . . . . . . 44 3.2.1.2 Introspection et reconfiguration . . . . . . . . 46 3.2.1.3 Fractal ADL . . . . . . . . . . . . . . . . . . . 46 3.2.2 Composant de gestionnaire autonome . . . . . . . . . . 47 3.2.3 Coordination à base de composants . . . . . . . . . . . 48 3.2.3.1 Coordination de gestionnaires . . . . . . . . . 48 3.2.3.2 Coordination hiérarchique . . . . . . . . . . . 50 353.1. SPÉCIFICATION DE LA COORDINATION 3.3 Comparaison . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 3.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 Ce chapitre détaille notre méthodologie pour la coordination de gestionnaires autonomes. Notre approche est basée sur l’utilisation de méthodes et de techniques issues du contrôle discret. Nous utilisons la technique de synthèse de contrôleur discret. Cette dernière permet de construire automatiquement un contrôleur qui est capable de restreindre le comportement d’un système pour garantir le respect de spécifications logiques de fonctionnement. La synthèse de contrôleur discret est basée sur un modèle du système à contrôler et une spécification des objectifs de contrôle désirés. Pour la modélisation, nous utilisons la programmation synchrone qui fournit des langages de haut niveau facilitant la spécification formelle de système. Elle fournit également des outils de vérification et de génération de code exécutable. Dans ce travail le système à contrôler est un système d’administration constitué de plusieurs gestionnaires autonomes indépendants. Le contrôle consiste à restreindre le comportement des gestionnaires afin de garantir la cohérence des actions d’administration appliquées sur le système qu’ils administrent. Pour la mise en oeuvre du contrôle des gestionnaires, nous adoptons les modèles à composants. Nous utilisons le modèle à composants Fractal, plus précisément l’implémentation Java, Julia [15]. 3.1 Spécification de la coordination La coordination repose sur la connaissance du comportement des gestionnaires, de leurs fonctionnalités contrôlables, et des événements pertinents auxquels ils réagissent. Le comportement des gestionnaires doit être observable et contrôlable à l’exécution pour permettre de contrôler leurs actions. 3.1.1 Modélisation d’un gestionnaire autonome Nous modélisons le comportement observable et contrôlable de chaque gestionnaire autonome, avec un niveau d’abstraction qui présente les états et transitions pertinents pour le problème de contrôle – la coordination. Le 36modèle d’un gestionnaire expose des variables contrôlables. Ces dernières correspondent aux points de choix sur le comportement du gestionnaire ; c’est à travers eux qu’un contrôle peut être appliqué pour faire respecter une politique de coordination. Pour modéliser le comportement d’un gestionnaire, nous utilisons la programmation synchrone. Nous modélisons le comportement de chaque gestionnaire indépendamment des autres. 3.1.1.1 Comportement Le comportement d’un gestionnaire est modélisé à base d’automates. Chaque état du modèle décrit une situation dans laquelle le gestionnaire est dans un mode d’exécution défini, e.g., exécute des actions de reconfiguration ou surveille l’état du système administré. Les transitions correspondent, quant à elles, aux changements d’états du gestionnaire suite à l’occurrence d’événements auxquels il réagit. Chaque transition est étiquetée avec les événements en entrée qui l’activent et les actions en sortie produites par le gestionnaire. Dans les modèles à base d’automates, les réactions sont considérées instantanées. Cependant, dans un gestionnaire, une réaction implique l’exécution d’une (ou plusieurs) action non instantanée. De ce fait, nous ne considérons pas toujours l’exécution d’une action comme instantanée. Elle l’est ou pas selon sa pertinence dans la description du comportement du gestionnaire. Lorsqu’elle n’est pas considérée instantanée, elle sera alors représentée par un état distinct dans le modèle du gestionnaire. E1 E2 e1/ ac e2/ al nl/ (ac, al) = mgr (e1, e2, nl) FIGURE 3.1 – Comportement d’un gestionnaire 373.1. SPÉCIFICATION DE LA COORDINATION La figure 3.1 présente un exemple simple de modèle du comportement d’un gestionnaire. Le gestionnaire a deux états représentés par E1 et E2. Initialement il est dans l’état E1. Dans cet état, le gestionnaire réagit en présence de l’événement e1 en produisant l’action courte ac en réponse. En présence de l’événement e2, il réagit en produisant l’action al, qui est une action longue, et se met dans l’état E2. L’état E2 représente l’exécution de l’action al qui n’est pas considérée instantanée contrairement à l’exécution de l’action ac. A la fin de l’exécution de l’action al, représentée par la présence de l’événement nl de notification de fin d’exécution de l’action al, le gestionnaire retourne dans l’état E1. 3.1.1.2 Contrôlabilité Nous définissons la contrôlabilité d’un gestionnaire comme la capacité à autoriser ou inhiber ponctuellement certaines de ses actions suite à l’occurrence d’événements auxquels il réagit. Dans le modèle d’un gestionnaire, la contrôlabilité est représentée par des entrées de contrôle associées aux transitions. Ainsi pour décrire une transition contrôlable, nous lui ajoutons une entrée de contrôle. Selon la valeur affectée à cette entrée, la transition sera autorisée ou non en présence de l’événement qui l’active. Le contrôle d’un gestionnaire nécessite également que son état soit observable. Cette propriété est représentée, dans le modèle, par des variables d’état qui indiquent l’état courant du gestionnaire. E1 s=False E2 s=True c1 and e1/ ac c2 and e2/ al nl/ (ac, al, s) = ctrl_mgr (c1, e1, c2, e2, nl) FIGURE 3.2 – Gestionnaire contrôlable La figure 3.2 présente le modèle qui décrit la contrôlabilité du comportement 38du gestionnaire présenté dans la figure 3.1. Les entrées c1 et c2 représentent les entrées contrôlables du gestionnaire. Elles permettent, respectivement, le contrôle des actions ac et al du gestionnaire. L’état courant du gestionnaire est indiqué par la variable d’état s. Cette dernière est à vrai lorsque l’action al est en cours d’exécution. 3.1.2 Modélisation de la coordination La composition des modèles des gestionnaires autonomes reflète leur coexistence non coordonnée. Pour modéliser la coordination de la coexistence des gestionnaires, nous associons un contrat à la composition des modèles des gestionnaires à coordonner. Ce contrat décrit les objectifs de contrôle – la politique de coordination – à atteindre sur la composition. Grâce à ce contrat, la synthèse de contrôleur pourra être appliquée pour construire automatiquement une logique de contrôle qui est capable d’agir sur les points de choix des modèles des gestionnaires pour respecter la politique de coordination. La composition des modèles des gestionnaires autonomes couplée avec la logique de contrôle, ensemble elles vérifient la politique de coordination. Elles modélisent la coordination des gestionnaires. 3.1.2.1 Modélisation de la coexistence Les modèles des gestionnaires constituent les briques du modèle de leur coexistence. La composition des modèles des gestionnaires décrit l’ensemble des comportements possibles lors de la coexistence des gestionnaires. Elle comprend les comportements cohérents ainsi que les comportements incohérents qui peuvent conduire le système qu’ils administrent dans un état inconsistant. (s1, s2, ac1, ac2, ...) = comp_mgrs (c11, e11, c21, e21, ...) (ac1, al1, s1) = ctrl_mgr1 (c11, e11, c12, e12, nl1) (ac2, al2, s2) = ctrl_mgr2 (c21, e21, c22, e22, nl2) FIGURE 3.3 – Modèle de la coexistence de gestionnaires 393.1. SPÉCIFICATION DE LA COORDINATION La Figure 3.3 présente un exemple de modèle de la coexistence de deux gestionnaires. Nous composons deux instances du modèle présenté à la figure 3.2. Cette composition exhibe l’ensemble des états observables s, l’ensemble des événements e auxquels réagissent les gestionnaires, l’ensemble des actions a, mais également l’ensemble des entrées de contrôle c disponibles pour le contrôle des gestionnaires. Toutefois, aucune stratégie de coordination n’est encore définie dans ce modèle global. Tous les comportements sont possibles. 3.1.2.2 Spécification d’une stratégie de coordination La stratégie de coordination est exprimée sous forme de contrat associé au modèle global qui décrit la coexistence de gestionnaires autonomes à coordonner. Le contrat contient un ensemble d’objectifs de contrôle. Le respect de ces objectifs de contrôle est assuré en agissant sur les entrées de contrôle disponibles sur les modèles des gestionnaires. Ces entrées correspondent aux points de choix qui permettent de contrôler les actions des gestionnaires. Elles sont déclarées comme variables locales contrôlables dans le contrat. (s1, ac1, . . .) = controle_comp_mgrs (e11, . . .) assume true enforce not (s1 and s2) with c11, c21, ... (s1, s2, ac1, ac2, . . .) = comp_mgrs(c11, e11, c21, e21, . . .) ... FIGURE 3.4 – Spécification de stratégie de coordination La figure 3.4 présente un exemple de spécification de contrat pour le modèle de la figure 3.3. Dans cet exemple, l’objectif de contrôle défini dans le contrat est : « not (s1 and s2) ». Il empêche le gestionnaire mrg2 d’exécuter l’action ac2 lorsque le gestionnaire mgr1 est dans l’état s1 à vrai (true) et réciproquement. Les variables contrôlables cij sont déclarées comme points de contrôle sur lesquels agir pour garantir le contrat. Lorsque le modèle est compilé, la logique de contrôle qui garantit le respect 40de l’objectif déclaré est automatiquement construite si cela est possible. Une fois construite, la logique de contrôle est intégrée dans le modèle. La compilation produit un programme exécutable, par exemple en Java. Ce programme correspond au couplage de la logique de contrôle avec le modèle non coordonné. Il constitue un contrôleur qui permet de respecter l’objectif de contrôle à l’exécution réelle. 3.1.3 Modélisation modulaire de la coordination Le passage à l’échelle des techniques de SCD est limité par la taille du mod- èle du système à contrôler et par la spécification des objectifs de contrôle. La SCD est basée sur l’exploration de l’espace d’états pour construire le contrôleur. Pour faciliter le passage à l’échelle de notre approche, nous utilisons la synthèse modulaire. Pour un système large, cela permet de casser la complexité de la synthèse de contrôleur. Nous utilisons cette technique pour coordonner les gestionnaires autonomes par petit nombre, et construire un contrôle hiérarchique. 3.1.3.1 Contrôle décentralisé L’application monolithique de la synthèse de contrôleur sur un modèle de grande taille pourrait ne pas aboutir à un résultat. Comme le montre la figure 3.5, cette approche consiste à centraliser le contrôle en définissant un unique contrat qui contient l’ensemble des objectifs de contrôle à assurer. Ce contrat est associé au modèle global du système qui peut être de grande taille. (si, ai, . . .) = controle_system (ei, . . .) enforce V Obji with ci (s1i, a1i, . . .) = sub_system1 (c1i, e1i, . . .) (sNi, aNi, . . .) = sub_systemN(cNi, eNi, . . .) ... FIGURE 3.5 – Spécification monolithique du contrôle 413.1. SPÉCIFICATION DE LA COORDINATION Un système est généralement constitué de plusieurs sous-ensembles (e.g, plusieurs gestionnaires autonomes), de ce fait il est modélisé par la composition modulaire et hiérarchique des modèles de ses sous-ensembles. L’approche modulaire de la synthèse de contrôleur tire profit de cette structure pour permettre de décentraliser la spécification du contrôle. (si, ai, . . .) = controle_system (ei, . . .) enforce V Obj0 with c 0i (s1i, a1i, . . .) = controle_sub_system1 (c 01i, e1i, . . .) enforce V Obj1i with c1i (s1i, a1i, . . .) = sub_system1 (c1i, e1i, . . .) (sNi, aNi, . . .) = controle_sub_systemN(c 0Ni, eNi, . . .) enforce V ObjNi with cNi (sNi, aNi, . . .) = sub_systemN(cNi, eNi, . . .) enforce with ... enforce with FIGURE 3.6 – Spécification modulaire du contrôle Au lieu de garantir l’ensemble des objectifs par un unique contrôleur, un ensemble de contrôleurs est construit. Chaque contrôleur assure une partie de l’ensemble des objectifs. Chacun de ces contrôleurs est construit indépendamment des autres et intégré dans le modèle global. Comme le montre la figure 3.6, la spécification du contrôle est faite de manière modulaire et hiérarchique. Chaque objectif de contrôle qui concerne exclusivement un sous-ensemble est associé au modèle du sous-ensemble. Un contrôleur local est construit pour chaque modèle qui a un contrat. 3.1.3.2 Spécification modulaire et hiérarchique Pour pouvoir appliquer la synthèse modulaire, il est nécessaire que les modèles avec un contrat puissent être réutilisables tels quels. Ces modèles doivent également permettre d’étendre les objectifs de contrôle définis dans leur contrat. De plus, tout cela doit être possible sans changer l’implémentation des contrôleurs obtenus de ces modèles. Pour cela, un modèle avec un contrat doit exposer des entrées qui permettent de recevoir des ordres de contrôle 42supplémentaire. En plus des objectifs de contrôle local, le contrat défini dans le modèle doit également contenir des objectifs de contrôle garantissant le respect des ordres extérieurs reçus. Extension de la contrôlabilité. Dans l’approche monolithique de la synthèse de contrôleur, les entrées contrôlables du modèle du système à contrôler sont déclarées comme variables contrôlables dans le contrat. Elles ne sont pas visibles à l’extérieur du modèle contrôlé du système. Pour réutiliser un modèle contrôlé, il est nécessaire que ces entrées contrôlables soient accessibles pour appliquer un contrôle supplémentaire non défini dans le contrat de ce dernier. L’extension de la contrôlabilité d’un modèle de coordination de gestionnaires autonomes consiste à exposer des entrées de contrôle supplémentaires c 0 i , et à ajouter des objectifs de contrôle Obj0 i associés à ces entrées dans le contrat. Ces entrées permettent ultérieurement à un contrôleur de niveau supérieur de transmettre des ordres de contrôle au contrôleur obtenu. Chaque entrée de contrôle c 0 i correspond au contrôle d’une action ai des gestionnaires coordonnés. Les objectifs de contrôle Obj0 i , autres que ceux définis pour la stratégie de coordination locale, garantissent l’application du contrôle reçu via ces entrées de contrôle. Ces objectifs supplémentaires doivent explicitement figurer dans le contrat. L’objectif de contrôle Obj0 i qui permet de garantir l’inhibition d’une action ai lorsqu’elle est sollicitée via c 0 i est formulé comme suit : (¬c 0 i ⇒ ¬ai ). Selon la nature de l’action (courte/instantanée ou longue), l’objectif se traduit différemment. Pour les actions courtes, il est traduit directement par : Obj0 i = (c 0 i or not ai). Pour une action longue, l’objectif est traduit d’une manière différente : Obj0 i = LongActions(c 0 i , ai ,si). LongActions(c 0 i , ai ,si) def = (c’i or not ai) and  not (false fby si) and not ai  ⇒ not si  Dans cette expression nous ajoutons le fait que l’exécution d’une action longue ne peut être empêchée que si elle n’est pas déclenchée à l’instant précé- dent. En effet durant l’exécution d’une action longue, tout ordre d’inhibition de cette action ne peut concerner l’exécution en cours. L’exécution d’une action 433.2. MISE EN OEUVRE DE LA COORDINATION longue ai ne peut être empêchée par c 0 i que si elle n’est pas déclenchée à l’instant précédent : (not (false fby si)) 1 . De ce fait si l’action ai n’est pas activée ni à l’instant précédent (not (false fby si)) ni à l’instant courant (not ai ) alors l’action ne sera pas exécutée à cet instant (not si ). Ces deux expressions sont définies de façon générique et peuvent être réutilisées comme des patterns sans avoir à en redéfinir d’autres. 3.2 Mise en oeuvre de la coordination Pour la mise en oeuvre de la coordination de gestionnaires autonomes, nous utilisons le modèle à composants. Les modèles à composants fournissent un ensemble de fonctionnalités qui permettent la construction de systèmes complexes avec des capacités d’introspection et de reconfiguration dynamique. Notre approche est basée sur le modèle à composants Fractal. 3.2.1 Le modèle à composants Fractal Le modèle à composants Fractal [14] a été défini par France Telecom R&D et l’INRIA en 2004. L’objectif de ce modèle est de permettre la construction, le déploiement et l’administration (e.g. observation, contrôle, reconfiguration dynamique) de systèmes logiciels complexes. Il est associé à un langage de description d’architecture, Fractal ADL. Ce dernier est basé sur une syntaxe extensible, et permet de construire des assemblages de composants Fractal. Fractal a été implémenté dans différents langages de programmation comme Java, C, C++. 3.2.1.1 Composant Fractal L’unité de structuration dans le modèle Fractal est le composant. Un composant est une entité d’exécution qui expose un ensemble d’interfaces. Une interface est un point d’accès au composant. Il existe deux catégories d’interfaces : les interfaces serveurs et les interfaces clients. Les interfaces serveurs correspondent aux services fournis par le composant. Elles permettent de faire 1. fby est un opérateur Heptagon qui introduit un délai avec une valeur initiale : v fby x représente la valeur précédente de x, initialisé avec v au premier instant. 44membrane contenu Interfaces de controle interface client interfaces serveur FIGURE 3.7 – Composant Fractal des appels de méthodes du composant. Les interfaces clients correspondent aux services requis par le composant. Elles permettent au composant d’émettre des appels de méthodes. Comme le montre la figure 3.7, un composant expose également des interfaces non fonctionnelles, contrôleurs, qui permettent à l’exé- cution, son administration et celle des services qu’il contient (démarrage, arrêt, configuration, etc.). L’ensemble des interfaces fonctionnelles et non fonctionnelles constitue la membrane du composant. FIGURE 3.8 – Composant composite 453.2. MISE EN OEUVRE DE LA COORDINATION Ce modèle distingue généralement deux types de composants : les composants primitifs qui encapsulent généralement les services et les composants composites. Comme le montre la figure 3.8, un composant composite contient d’autres composants primitifs et/ou composites. 3.2.1.2 Introspection et reconfiguration Les capacités réflexives d’un composant sont assurées par des contrôleurs. Ces contrôleurs implémentent des fonctions permettant l’introspection, la reconfiguration, et l’interception de flux (entrée/sortie). Le modèle à composants Fractal fournit quelques contrôleurs par défaut. Parmi ces contrôleurs, figurent : – Un contôleur d’attributs qui fournit les méthodes permettant l’accès et le contrôle des attributs d’un composant. – Un contrôleur de liaisons qui fournit des méthodes pour contrôler les liaisons (bind,unbind) du composant avec d’autres composants, et de consulter, modifier l’état des liaisons. – Un contrôleur de cycle de vie qui fournit des méthodes pour contrôler les principales phases comportementales du composant (ex. démarrage (start)/arrêt (stop)). – Un contrôleur de contenu qui fournit des méthodes permettant de consulter le contenu d’un composant composite et d’ajouter/retirer des souscomposants. Le modèle est cependant extensible et ne contraint pas la nature des contrôleurs contenus dans les composants. Il est possible d’adapter le contrôle associé aux composants. Le modèle permet de modifier ou de développer de nouveaux contrôleurs en fonction des besoins. 3.2.1.3 Fractal ADL Le modèle à composants Fractal fournit un langage de description d’architecture appelé Fractal ADL, basé sur la syntaxe XML. Fractal ADL permet la description de la structure d’application construite à partir de composants 46Fractal. Il fournit des constructions de base pour énumérer des composants, des interfaces, des liaisons et laisse aux développeurs la possibilité d’étendre le langage pour intégrer d’autres informations spéficiques à leur cas d’utilisation. Il permet la description d’une architecture sur plusieurs fichiers distincts. 3.2.2 Composant de gestionnaire autonome Nous utilisons le modèle à composants pour implémenter les aspects nonfonctionnels nécessaires pour la gestion des gestionnaires. Cela permet d’ajouter des fonctions de surveillance et de contrôle pour les gestionnaires autonomes déjà conçus et qui ne fournissent pas explicitement ces fonctions. Cela permet également de séparer l’implémentation d’un gestionnaire (les fonctions d’administration) et l’implémentation du contrôle de ce dernier. Ainsi la spéci- fication et l’implémentation du contrôle du gestionnaire peuvent être modifiées sans impacter l’implémentation des fonctions d’administration. Chaque gestionnaire est encapsulé dans un composant Fractal comme le montre la figure 3.9. m AM a s c FIGURE 3.9 – Composant de gestionnaire contrôlable Implémentation de l’interface de coordination. Nous implémentons une interface de contrôle qui exhibe les fonctions de contrôle disponibles sur les gestionnaires lorsque ces fonctions sont explicitement définies. Cette interface de contrôle expose les informations s sur l’état du gestionnaire par rapport au contrôle appliqué sur son comportement. Elle fournit également des informations sur les événements m auxquels le gestionnaire réagit. Elle permet également d’appliquer les opérations de coordination concernant le gestionnaire à travers ses entrées c de contrôle qui permettent d’autoriser ou d’inhiber 473.2. MISE EN OEUVRE DE LA COORDINATION les actions a que le gestionnaire peut exécuter. Pour les gestionnaires n’ayant pas de fonctions de contrôle, nous utilisons les contrôleurs par défaut dans Fractal pour implémenter leur contrôle. 3.2.3 Coordination à base de composants 3.2.3.1 Coordination de gestionnaires Une fois les composants de gestionnaires construits, ces derniers sont assemblés dans un composant composite, comme le montre l’exemple dans la figure 3.10. Le composant composite coordonne leur exécution grâce au contrôleur de coordination obtenu par synthèse. Ce dernier agit sur les interfaces de coordination disponibles sur les composants de gestionnaires. m1 AM1 a1 s1 c1 m2 AM2 a2 s2 c2 ctrlr s1,2 c1,2 m1,2 a1,2 FIGURE 3.10 – Composants de gestionnaires coordonnés AMi ctrlr mi ai si ci FIGURE 3.11 – Composant composite 48De manière générale, comme le montre la figure 3.11, les composants de gestionnaires à coordonner sont encapsulés dans un composant composite. Le contrôleur de coordination, obtenu par programmation synchrone et synthèse de contrôleur discret, est alors intégré dans le composant composite. Il est connecté aux interfaces de coordination des composants de gestionnaires. A l’exécution, il agit sur ces interfaces de coordination pour le respect de la stratégie de coordination. Coordination. Le contrôleur de coordination présenté à la figure 3.11 correspond au modèle de la coexistence coordonnée des gestionnaires autonomes contenus dans le composant composite. Il est constitué de l’ensemble des mod- èles du comportement et de la contrôlabilité des gestionnaires couplé avec la logique de contrôle pour la coordination. A l’exécution, le modèle d’un gestionnaire reflète son état courant et facilite l’application dynamique de restrictions imposées par la logique de contrôle sur son comportement. Les sorties du modèle d’un gestionnaire exhibent ses actions d’administration autorisées ou inhibées. Ces sorties doivent être appliquées sur le composant de gestionnaire correspondant afin de garantir la cohérence entre le modèle et l’état du gestionnaire. Si un gestionnaire fournit des fonctions de contrôle explicites, le contrôle exhibé par son modèle est directement appliqué via ces fonctions ; sinon le contrôle par défaut fourni par Fractal est utilisé. Contrôle par défaut. Pour les gestionnaires qui ne disposent pas de fonctions de contrôle explicites, Fractal définit des contrôleurs par défaut qui permettent la gestion dynamique d’un composant et de ses interactions. Ces contrôleurs fournissent des actions d’administration : 1. Arrêt et démarrage de composant : Ces actions sont disponibles avec le contrôleur de cycle de vie. Cette option permet de suspendre entièrement toutes les fonctions d’administration d’un gestionnaire. L’arrêt du composant rend le gestionnaire inaccessible. Il ne reçoit aucun flux en entrée. 2. Association et dissociation d’interfaces fonctionnelles : Ces actions sont disponibles avec le contrôleur de liaisons. Cette option permet de suspendre certaines fonctions d’administration d’un gestionnaire. La dissoci- 493.2. MISE EN OEUVRE DE LA COORDINATION ation d’une liaison permet de désactiver un lien de communication établi entre le gestionnaire et un autre service (e.g., un capteur). Cependant les autres liens continuent à fonctionner. 3. Interception des flux d’entrée et de sortie : Dans l’implémentation Julia, ces actions sont implémentées par des objets Java appelés Interceptors. Ils permettent d’intercepter le flux en entrée et/ou en sortie. Ils permettent également d’informer les contrôleurs auxquels ils sont associés avant et/ou après chaque appel de méthodes. Dans notre travail, nous utilisons les intercepteurs pour capturer les événements destinés aux gestionnaires et qui sont les entrées du contrôleur de coordination (les entrées de la méthode step). Les intercepteurs servent également à filtrer les événements à passer à un gestionnaire. Cela évite de suspendre entièrement (stop) ou partiellement (unbind) les composants de gestionnaires. Le filtragre des événements est basé sur les sorties du contrôleur de coordination. Ces sorties décrivent l’état dans lequel chaque gestionnaire doit être, et également les actions autorisées à être exécutées. 3.2.3.2 Coordination hiérarchique Avec la coordination modulaire, les contrôleurs construits garantissent l’application de la stratégie de coordination qu’ils doivent assurer, mais également l’application d’ordres de coordination dont la stratégie est définie ailleurs aux niveaux supérieurs. Cela permet leur réutilisation dans différents contextes plus globaux. Contrôle d’un composant composite. Comme le montre la figure 3.12, un contrôleur généré par synthèse modulaire fournit des entrées c 0 pour contrôler les actions des gestionnaires et des sorties s 0 pour informer de l’état des gestionnaires. Le composant composite associé à ce contrôleur et qui encapsule les composants de gestionnaires peut être réutilisé dans un contexte dans lequel les gestionnaires qu’il encapsule constituent un sous-ensemble des gestionnaires à coordonner. Dans ce cas, l’interface de contrôle fournie par le contrôleur de coordination associé au composite permet l’application d’autres objectifs de contrôle sur ce sous-ensemble. Cela permet la mise en oeuvre de la coordination 50AMi ctrlr mi ai si ci AMi ctrlr mi ai si ci c 0 s 0 Extension de la contrôlabilité FIGURE 3.12 – Extension de la contrôlabilité par l’assemblage de composants simples et/ou de composants composites de manière hiérarchique sans aucun changement de leur contenu. AMi ctrlr mi ai si ci c 0 i s 0 i AMj ctrlr mj aj sj cj c 0 j s 0 j ctrlr s 0 ij c 0 ij c 00 ij s 00 ij mij aij FIGURE 3.13 – Coordination hiérarchique Contrôle hiérarchique. La figure 3.13 montre un exemple de coordination hiérarchique. Des composants composites qui encapsulent des composants de gestionnaires autonomes coordonnés sont à leur tour encapsulés dans un composant composite. Ce dernier est équipé d’un contrôleur de plus haut niveau qui applique une stratégie de coordination plus globale. Cette stratégie concerne les gestionnaires contenus dans les composants composites internes. 513.3. COMPARAISON Le contrôleur de haut niveau agit sur les contrôleurs de bas niveau présents dans les composants composites internes pour respecter ses objectifs de contrôle. Les composants composites internes sont réutilisés sans aucune modification. 3.3 Comparaison Notre approche de coordination est basée sur des aspects qualitatifs. Elle consiste généralement à garantir des propriétés logiques comme l’invariance ou l’exclusion mutuelle, contrairement aux approches basées sur des aspects quantitatifs [20, 38, 40, 51]. Ces dernières garantissent l’optimisation d’indicateurs de performance à travers des fonctions d’utilité/d’optimisation multi-critères. Chaque indicateur de performance a un poids qui indique son importance, et le choix des poids est très important pour la sélection des actions à exécuter. Avec notre approche, l’autorisation ou l’inhibition d’actions dépend de l’état du système et des actions d’administration en cours d’exécution. Nous étudions les relations entre les événements auxquels réagissent les gestionnaires et l’impact des actions de chaque gestionnaire sur les objectifs d’administration. Cette étude permet d’identifier les situations qui peuvent conduire à des décisions conflictuelles ou redondantes. Puis, pour éviter ces décisions, nous définissons les propriétés de coordination, les objectifs de contrôle. Notre approche ressemble aux approches basées sur des règles (priorités/condition-action) [3, 45]. Toutefois avec notre approche, la fonction de contrôle est automatiquement construite et restreint le moins possible le comportement des gestionnaires. Notre approche repose sur un contrôle externe des gestionnaires, contrairement aux approches basées sur un consensus [2]. En effet, la mise en oeuvre d’un consensus nécessite plusieurs participants. Dans le cas où ces participants sont les gestionnaires, ces derniers vont implémenter les fonctions de décision pour le consensus, en plus des fonctions d’administration. Cela rend difficile la réutilisation des gestionnaires. De plus, la moindre modification du protocole implique une modification de l’implémentation des gestionnaires. Des modifi- cations du protocole peuvent être nécessaires lorsque certains aspects doivent être pris en compte ou bien quand d’autres gestionnaires doivent être intégrés. Notre approche, quant à elle, consiste à identifier les aspects observables et contrôlables des gestionnaires. Ces aspects sont ensuite définis et exposés pour 52permettre la réutilisation des gestionnaires dans différents contextes sans aucune modification. L’application des stratégies de coordination repose sur les points de contrôle des gestionnaires. De plus, les fonctions de contrôle d’un gestionnaire sont séparées de l’implémentation de ses fonctions d’administration. Cela permet la réutilisation des gestionnaires existants. Chaque gestionnaire est encapsulé dans un composant qui fournit les fonctions qui permettent son contrôle. De ce fait la spécification du contrôle d’un gestionnaire peut être modifiée sans modifier l’implémentation de ses fonctions d’administration. 3.4 Conclusion Nous avons vu dans ce chapitre comment concevoir la coordination de gestionnaires autonomes avec les techniques de contrôle discret. Nous décrivons le comportement observable et contrôlable des gestionnaires que nous composons pour modéliser leur coexistence non coordonnée. La synthèse de contrôleur est appliquée sur le modèle de la coexistence pour construire une logique de contrôle qui assure la stratégie de coordination sur le modèle via les points de contrôle définis. Pour la mise en oeuvre de la coordination, nous utilisons le modèle à composants Fractal. Chaque gestionnaire est encapsulé dans un composant qui fournit les fonctions de contrôle. Les composants de gestionnaires sont assemblés dans un composant composite qui assure leur coordination grâce au contrôleur de coordination généré par synthèse de contrôleur discret. 533.4. CONCLUSION 544 Gestion de la performance et de l’optimisation de ressources d’un système dupliqué Contents 4.1 Gestionnaires autonomes non coordonnés . . . . . . . . . . . 56 4.1.1 Gestionnaire d’auto-dimensionnement : Self-sizing . . 56 4.1.2 Gestionnaire d’auto-régulation de fréquence CPU : Dvfs 58 4.2 Problèmes d’optimisation de ressources . . . . . . . . . . . . 59 4.3 Conception du contrôleur de coordination . . . . . . . . . . . 60 4.3.1 Modélisation du contrôle des gestionnaires . . . . . . . 60 4.3.1.1 Modélisation du contrôle de self-sizing . . . . 61 4.3.1.2 Modélisation de l’état global des Dvfs . . . . 63 4.3.2 Spécification de la coordination . . . . . . . . . . . . . . 64 4.3.2.1 Stratégie de coordination . . . . . . . . . . . . 64 4.3.2.2 Spécification du contrat . . . . . . . . . . . . . 64 4.3.2.3 Programme final . . . . . . . . . . . . . . . . . 64 4.4 Expérimentations . . . . . . . . . . . . . . . . . . . . . . . . . . 65 4.4.1 Configuration . . . . . . . . . . . . . . . . . . . . . . . . 66 4.4.2 Calibrage des seuils des gestionnaires . . . . . . . . . . 66 4.4.2.1 Seuil maximal pour self-sizing et Dvfs . . . . 66 4.4.2.2 Seuil minimal pour self-Sizing et Dvfs . . . . 67 4.4.3 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . 70 554.1. GESTIONNAIRES AUTONOMES NON COORDONNÉS 4.4.3.1 Comportement non coordonné . . . . . . . . 70 4.4.3.2 Comportement coordonné . . . . . . . . . . . 72 4.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 Dans ce chapitre, nous nous intéressons à l’administration d’un système basé sur la réplication. Il s’agit d’un système distribué constitué de serveurs dupliqués hébergés par des machines distinctes. Les requêtes entrantes sont réparties entre les serveurs par un équilibreur de charge. Nous considérons la coordination de gestionnaires dédiés à l’optimisation de ressources : selfsizing et Dvfs. Le gestionnaire self-sizing est utilisé pour minimiser le nombre de serveurs actifs et un Dvfs est installé sur chaque machine qui exécute un serveur pour ajuster la fréquence à laquelle s’exécutent ses processeurs. Nous appliquons notre approche pour coordonner les gestionnaires afin d’optimiser de manière efficace les ressources utilisées par le système. Nous présentons dans ce chapitre un exemple d’application simple de notre approche. Toutefois cet exemple permet de démontrer sa faisabilité. 4.1 Gestionnaires autonomes non coordonnés Les gestionnaires ci-dessous assurent la gestion de la performance et l’optimisation des ressources de calcul. Ils sont conçus indépendamment. 4.1.1 Gestionnaire d’auto-dimensionnement : Self-sizing Ce gestionnaire autonome est dédié au dimensionnement dynamique d’un système en fonction de la charge de travail de ce dernier. Il peut être appliqué sur des systèmes dont la structure est basée sur le canevas d’équilibrage de charge. Dans ce canevas, le modèle de communication est synchrone (Client/Serveur), les serveurs sont clonés statiquement lors du démarrage du système et un aiguilleur est placé en frontal des serveurs. Le rôle de cet aiguilleur est de répartir la charge entre tous les serveurs. Une requête peut donc être traitée indifféremment par n’importe lequel des serveurs. Lorsqu’un serveur reçoit une requête, il l’exécute, il met en cohérence son état avec les autres serveurs si besoin, puis il retourne le résultat de la requête au client. On considère que ce 56canevas s’exécute sur une grappe de machines. L’aiguilleur, ainsi que chaque serveur, s’exécutent sur une machine différente. Connaissance Capteurs Actionneurs Elements administres en cours d’utilisation disponibles Planification Retrait Ajout Analyse (< min_cpu) ? (> max_cpu) ? Ajout Retrait Execution cpu_avg Retrait Ajout Observation Gestionnaire d’auto−optimisation self−sizing (cpu, mem, ...) (cpu, mem, ...) Ressource Ressource FIGURE 4.1 – Gestionnaire d’auto-dimensionnement : self-sizing La figure 4.1 décrit le fonctionnement du gestionnaire self-sizing. Ce dernier permet de dimensionner dynamiquement le degré de duplication des serveurs qui constituent le système administré. Le dimensionnement est effectué en fonction de la charge de travail soumise au système. En cas de surcharge, le système est approvisionné en ressource – ajout de serveur – alors qu’en cas de sous-charge, les ressources du système sont optimisées – retrait de serveur. Pour réaliser ces opérations, le gestionnaire utilise la connaissance qu’il a de la structure du système. Il connaît les machines en cours d’utilisation sur lesquelles sont exécutés les serveurs, ainsi que les machines disponibles. L’état du système est surveillé via des sondes (capteurs sur la figure 4.1). Celles-ci récupèrent périodiquement la charge CPU de chaque machine qui exécute un serveur dupliqué. Le gestionnaire calcule une moyenne glissante EWMA (exponentiellement pondérée) des charges CPU. Cette moyenne est utilisée pour évaluer le niveau d’utilisation des machines. Le niveau acceptable, le niveau pour lequel le gestionnaire estime le redimensionnement du système non nécessaire, est borné par un seuil minimal et un seuil maximal. Le gestionnaire considérera que les machines sont saturées lorsque la moyenne est 574.1. GESTIONNAIRES AUTONOMES NON COORDONNÉS supérieure au seuil maximal. A l’opposé, il considérera que les machines sont sous utilisées lorsque la moyenne est inférieure au seuil minimal. Lorsqu’une surcharge du système est détectée, le gestionnaire démarre un nouveau serveur dupliqué sur une machine disponible, et met à jour l’état de ce dernier en fonction des autres serveurs. Puis il intègre ce nouveau serveur dans la liste des serveurs dupliqués au niveau de l’aiguilleur de charge. Dans le cas d’une sous-charge, il sélectionne un serveur à arrêter, le déconnecte de l’aiguilleur de charge, l’arrête, et le désinstalle de la machine. Puis il remet la machine dans la liste des machines disponibles. Les systèmes administrés fournissent les actionneurs permettant d’appliquer les actions d’administration. 4.1.2 Gestionnaire d’auto-régulation de fréquence CPU : Dvfs La plupart des micro-processeurs récents offrent la possibilité d’ajuster leur fréquence d’exécution. Cette fonctionnalité permet de réduire leur puissance d’exécution lorsque la charge de travail est faible pour optimiser la consommation énergétique. L’utilisation de cette fonctionnalité dans l’administration d’un système impliquant un nombre important de machines peut contribuer à réduire l’énergie consommée sans altérer la performance du système. Connaissance Capteurs Actionneurs Analyse Planification (< min_cpu) ? (> max_cpu) ? Execution cpu_avg Elements administres hausser Diminuer Hausser Diminuer d’une machine processeurs frequence cpu Observation Gestionnaire d’auto−optimisation Dvfs FIGURE 4.2 – Gestionnaire d’auto-régulation : Dvfs 58Le gestionnaire Dvfs, représenté dans la figure 4.2, exploite de cette fonctionnalité. Il est dédié à l’ajustement de la fréquence des processeurs d’une machine. Il adapte dynamiquement la fréquence des processeurs en fonction de la charge de travail à traiter. Il diminue la fréquence CPU d’une machine lorsque celle-ci est sous-utilisée ; il augmente la fréquence lorsqu’elle est surchargée. Le gestionnaire connaît les différents niveaux de fréquences des processeurs de la machine administrée. Il connaît également l’état courant de la machine. Une sonde récupère périodiquement la charge CPU de la machine. Une moyenne exponentiellement pondérée (EWMA) de ces valeurs est calculée et utilisée pour évaluer le niveau d’utilisation des processeurs de la machine administrée. Les niveaux de charge considérés acceptables sont délimités par un seuil minimal et un seuil maximal. Lorsque la moyenne est dans cet intervalle, aucune action n’est exécutée. Mais, lorsqu’elle est au-dessus du seuil maximal, les processeurs sont considérés surchargés et le gestionnaire réagit en augmentant leur fréquence s’ils ne sont pas en fréquence maximale. Lorsque la moyenne est en-dessous du seuil minimal, les processeurs sont considérés sous-chargés et le gestionnaire réagit en diminuant leur fréquence s’ils ne sont pas en fréquence minimale. L’exécution de ces opérations est effectuée par des actionneurs fournis par la machine administrée. 4.2 Problèmes d’optimisation de ressources L’utilisation des gestionnaires self-sizing et Dvfs peut permettre une meilleure optimisation de l’utilisation des ressources allouées à un système basé sur la ré- plication de service. Le gestionnaire self-sizing peut être utilisé pour minimiser le nombre de serveurs actifs. Un Dvfs peut être utilisé sur chaque machine active pour minimiser la fréquence d’exécution de son (ses) processeur(s). Cependant les deux types de gestionnaires se basent sur la charge CPU et leurs actions affectent la charge CPU. De ce fait leur exécution non coordonnée pour l’administration du même système peut avoir des effets indésirables. En fréquence maximale un processeur peut effectuer beaucoup plus de calculs par unité de temps qu’en fréquence inférieure. Ainsi une charge de calcul qui sature un processeur en une fréquence quelconque pourrait ne pas saturer le processeur lorsque ce dernier est à une fréquence supérieure. Les 594.3. CONCEPTION DU CONTRÔLEUR DE COORDINATION machines équipées d’un Dvfs n’ont pas toujours leur(s) processeur(s) à la puissance maximale. Lorsque self-sizing détecte une surcharge (évaluée via la charge CPU) des machines qui exécutent les serveurs actifs, il n’a aucune connaissance de la fréquence d’exécution des processeurs de ces machines. Si les processeurs des machines ne sont pas en fréquence maximale, la hausse de la fréquence CPU des machines par les Dvfs pourrait permettre aux machines de supporter la charge. Dans ce cas, un ajout de serveur devient inutile. De plus lorsque les machines sont à une fréquence CPU autre que leur fréquence maximale, l’occurrence d’une surcharge détectée simultanément par self-sizing et les Dvfs entraîne l’ajout d’un nouveau serveur mais également la hausse de la fréquence CPU des machines. Ces opérations simultanées peuvent entraîner la baisse de la charge CPU des machines jusqu’en dessous du seuil minimal acceptable ce qui entraîne l’exécution d’opérations de retrait et/ou de baisse de fréquence. Une situation similaire peut également arriver à l’occurrence d’une sous-charge. L’exécution non coordonnée des gestionnaires peut entraîner une oscillation de la charge CPU des machines entre les seuils maximal et minimal entraînant des réactions répétitives. Cela peut conduire à une instabilité du système administré. 4.3 Conception du contrôleur de coordination Cette section présente la conception du contrôleur de coordination du gestionnaire self-sizing et des Dvfs. Nous présentons les modèles des gestionnaires. Dans cet exemple, seul le gestionnaire self-sizing est contrôlable. Pour les Dvfs nous ne modélisons que leurs états d’exécution globaux, nécessaires pour autoriser ou inhiber les actions d’ajout de nouveau serveur. 4.3.1 Modélisation du contrôle des gestionnaires Les modèles qui décrivent les gestionnaires sont constitués d’un ou de plusieurs automates. Le modèle du gestionnaire self-sizing est constitué d’automates qui décrivent son comportement et le contrôle des actions d’administration qu’il peut exécuter. Pour les gestionnaires Dvfs, nous ne modélisons que leurs états d’exécution globaux. Un seul automate est utilisé pour représenter 60les états globaux des gestionnaires Dvfs actifs. 4.3.1.1 Modélisation du contrôle de self-sizing Le modèle du comportement contrôlable du gestionnaire self-sizing, représenté dans la figure 4.3, est constitué de trois automates. L’automate au centre représente le comportement de self-sizing et les deux autres modélisent le contrôle des actions d’ajout et de retrait de serveurs. Enable Disable not cUp/ cUp/ disabledUp=False disabledUp=True Enable Disable not cDown/ cDown/ disabledDown=False disabledDown=True U pDown underload and not disabledDown/ rem Adding overload and not disabledUp/ add added and not max_machine/ U p min_machine/ Overload and not disabledUp/ add Down added and max_machine/ underload and not disabledDown/ rem min=False max=False adding=False min=True max=False adding=False min=False max=False adding=True min=False max=True adding=False (disabledUp, disabledDown, add, rem, adding, max, min) = SIZING_MODEL (cUp, cDown, overload, underload, max_machine, min_machine, added) FIGURE 4.3 – Modèle de contrôle de self-sizing L’automate à droite représente le contrôle des actions de retrait de serveurs. Il est constitué de deux états : Enable et Disable. L’état Enable, état initial, indique que les actions de retrait sont autorisées et l’état Disable indique que les actions de retrait sont inhibées. Le passage de l’état Enable à l’état 614.3. CONCEPTION DU CONTRÔLEUR DE COORDINATION Disable et réciproquement est contrôlé via l’entrée cDown. Lorsqu’elle est à true l’automate se met dans l’état Disable et lorsqu’elle est à false dans l’état Enable. L’état courant du contrôle des actions de retrait de serveur est indiqué par la sortie disabledDown qui est une variable d’état. Elle est à true lorsque les actions de retrait sont inhibées. L’automate à gauche représente le contrôle des actions d’ajout de serveurs. Cet automate est semblable à celui du contrôle des retraits. Le passage de l’état Enable à l’état Disable et réciproquement est contrôlé via l’entrée cUp. L’état courant du contrôle des actions d’ajout est indiqué par la sortie disabledUp. L’automate au centre représente le comportement du gestionnaire self-sizing. Il est constitué de quatre états. Le gestionnaire est initialement dans l’état UpDown dans lequel il peut exécuter aussi bien des opérations d’ajout que des opérations de retrait. Il est dans l’état Down quand le nombre maximum de serveurs actifs autorisé est atteint. Dans cet état il ne peut exécuter que des opérations de retrait. Le gestionnaire est dans l’état Up lorsque le nombre minimum de serveurs actifs autorisé est atteint. Dans cet état il ne peut exécuter que des opérations d’ajout. L’exécution d’une opération d’ajout est représentée par l’état Adding. Contrairement aux ajouts, l’exécution des opérations de retrait est considérée instantanée dans le modèle. L’occurrence d’une sous-charge (underload à true), lorsque le gestionnaire est dans l’état UpDown ou dans l’état Down, entraîne l’exécution d’une opération de retrait (rem à true) si les opérations de retrait sont autorisées (disabledDown à false). Dans l’état UpDown, le gestionnaire passe dans l’état Up lorsque le nombre minimum de serveur est atteint (min_machine à true). L’occurrence d’une surcharge (overload à true), lorsque le gestionnaire est dans l’état UpDown ou dans l’état Up, entraîne l’exécution d’une opération d’ajout (add à true) si les opérations d’ajout sont autorisées (disabledUp à false). A l’exécution d’un ajout le gestionnaire passe dans l’état Adding où aucune autre opération d’ajout ou de retrait de serveur ne peut être entamée. A la fin de l’opération d’ajout, il passe dans l’état Down si le nombre maximum de serveurs est atteint (max_machine à true) sinon il retourne dans l’état UpDown. 624.3.1.2 Modélisation de l’état global des Dvfs Dans cette solution de coordination, aucun contrôle n’est effectué sur l’exé- cution des Dvfs locaux. Seul leur état global courant est important pour pouvoir autoriser ou empêcher les opérations d’ajout. Pour cela nous utilisons une sonde pour collecter l’état courant de l’ensemble des Dvfs locaux. Chaque Dvfs fournit deux sorties booléennes min étant à vrai lorsque la fréquence minimale est atteinte et max étant à vrai lorsque la fréquence maximale est atteinte. La sonde renvoie deux valeurs, l’une étant la conjonction de toutes les valeurs des sorties min des Dvfs et l’autre la conjonction de toutes les valeurs des sorties max. Normal Min Max minimum / not minimum / maximum / not maximum / max_freq=False min_freq=False max_freq=False min_freq=True max_freq=True min_freq=False (max_freq, min_freq)= DVFS_MODEL (maximum, minimum) FIGURE 4.4 – Modèle global du mode d’exécution des Dvfs La figure 4.4 présente l’automate qui modélise l’état global de l’ensemble des gestionnaires Dvfs qui s’exécutent sur les machines qui hébergent les serveurs actifs. L’automate est constitué de trois états : Normal, Min et Max. Initialement dans l’état Normal, l’automate va dans l’état Max quand tous les Dvfs ont atteint la fréquence maximale. Depuis l’état Normal, il va dans l’état Min lorsque tous les Dvfs ont atteint la fréquence minimum. Il retourne dans l’état Normal lorsque, au moins un des Dvfs n’a atteint ni la fréquence maximale ni la fréquence minimale. Cet automate a deux sorties, max_freq qui est à true dans l’état Max et min_freq qui est à true dans l’état Min. 634.3. CONCEPTION DU CONTRÔLEUR DE COORDINATION 4.3.2 Spécification de la coordination La figure 4.5 décrit la coexistence des gestionnaires. (max_freq, min_freq, disabledUp, disabledDown, add, rem, adding, max, min) = COEXISTENCE (minimum, minimum, cUp, cDown, overload, underload, max_machine, min_machine, added) (max_freq, min_freq) = DVFS_MODEL (minimum, minimum); (disabledUp, disabledDown, add, rem, adding, max, min) = SIZING_MODEL (cUp, cDown, overload, underload, max_machine, min_machine, added); FIGURE 4.5 – Composition des modèles des gestionnaires self-sizing et Dvfs 4.3.2.1 Stratégie de coordination Une stratégie pour garantir une optimisation efficace des ressources et éviter des actions inutiles consiste à empêcher l’ajout d’un nouveau serveur tant qu’il est possible d’augmenter la fréquence d’exécution des processeurs des machines qui hébergent les serveurs actifs. En effet une surcharge détectée par le gestionnaire self-sizing peut être considérée importante à traiter que si les processeurs des machines actives sont à leur fréquence maximale. Dans ce cas, il est nécessaire d’ajouter un nouveau serveur puisque les machines actives ont atteint leur capacité maximale. – Ignorer la surcharge détectée des serveurs dupliqués — Si les processeurs des machines actives ne sont pas à leur fréquence maximale. 4.3.2.2 Spécification du contrat Pour réaliser la stratégie de coordination, nous définissons formellement un objectif de contrôle. Cet objectif de contrôle est exprimé via la sorties des automates et déclaré sous forme de contrat : 1. ((not max_freq and disabledUp) or (max_freq and not disabledUp)). 4.3.2.3 Programme final Le programme final, représenté à la figure 4.6, associe le contrat défini au modèle de la coexistence des gestionnaires COEXISTENCE. 64(max_freq, min_freq, disabledUp, disabledDown, add, rem, adding, max, min) = COORD (minimum, minimum, overload, underload, max_machine, min_machine, added) enforce ((not max_freq and disabledUp) or (max_freq and not disabledUp)) with cUp, cDown (max_freq, min_freq, disabledUp, disabledDown, add, rem, adding, max, min) = COEXISTENCE (minimum, minimum, cUp, cDown, overload, underload, max_machine, min_machine, added) FIGURE 4.6 – Coordination de gestionnaires self-sizing et Dvfs Les variables cUp et cDown du modèle du gestionnaire self-sizing sont déclarées variables contrôlables sur lesquelles agirent pour le respect de la stratégie de coordination. Dans cet exemple aucun contrôle n’est défini pour les actions de retrait. La variable cDown aura toujours la valeur true puisque l’objectif ne concerne pas les retraits. Les retraits seront toujours autorisées dans ce modèle coordonné. 4.4 Expérimentations L’objectif de ces expérimentations est d’évaluer le comportement du contrôleur obtenu. Il s’agit de montrer que le contrôleur généré assure la politique de coordination définie, bien que le système considéré soit petit et qu’il soit possible d’implémenter manuellement l’objectif de contrôle. Nous avons utilisé trois charges différents pour chaque exécution : Workload1 (4750 requêtes/sec), Workload2 (5000 requêtes/sec) et Workload3 (5542 requêtes/sec). Chaque charge est définie en deux phases, une première phase qui consiste en une charge croissante (pendant environ 3 minutes), puis une seconde phase durant laquelle la charge est constante. Pour chaque charge, nous avons effectué une exécution non coordonnée et une autre exécution durant laquelle les gestionnaires sont coordonnés. A chaque exécution, chaque machine qui héberge un serveur dupliqué actif débute avec la fréquence minimale. Les charges Workload1 et Workload2 peuvent être traitées par un serveur à la fréquence maximale alors que la charge Workload3 nécessite deux serveurs dupliqués. 654.4. EXPÉRIMENTATIONS 4.4.1 Configuration La plate-forme expérimentale est constituée de trois machines ayant les mêmes caractéristiques (processeurs et capacité en mémoire). Les machines (node0, node1 et node2) sont connectées en réseau. Les machines node1 et node2 ont deux niveaux de fréquence de processeurs : 800Mhz étant la fréquence minimale et 1.20Ghz étant la fréquence maximale. Le système administré est constitué d’un serveur Apache 1 et de deux serveurs Tomcat 2 . Le serveur Apache représente le point d’entrée du système. Il reçoit toutes les requêtes à traiter et les répartit entre les serveurs Tomcat actifs. Le serveur Apache est utilisé comme équilibreur de charge. Il est exécuté sur la machine node0. Les machines node1 et node2 hébergent les serveurs Tomcat. Nous utilisons Jmeter pour simuler les clients qui émettent les requêtes HTTP sur le système administré. 4.4.2 Calibrage des seuils des gestionnaires Des expérimentations ont été réalisées pour déterminer les seuils maximal et minimal des gestionnaires self-sizing et Dvfs. Ces expérimentations ont été faites de manière empirique. Le seuil maximal, appelé T max, est fixé manuellement et ne change pas pour les types de gestionnaires. Le seuil minimal, appelé T min, est calculé dynamiquement. 4.4.2.1 Seuil maximal pour self-sizing et Dvfs Une machine qui utilise son processeur à 100% passe tout son temps à exé- cuter des opérations. Cela indique que la machine a atteint sa charge maximale. Lorsque la charge reçue est supérieure à la charge maximale, la machine sature et sa performance se dégrade. Il est donc préférable d’envisager un seuil maximal inférieur à 100%. Nous avons choisi de manière arbitraire 90% comme valeur pour T max. Nous avons observé qu’une machine utilisant 90% de son processeur commence à saturer, mais traite les requêtes avec un délai acceptable. Cela permet de récupérer la charge CPU de la machine dans un délai suffisamment court et de réagir pour éviter une dégradation trop importante de la performance en 1. http://httpd.apache.org/ 2. http://tomcat.apache.org/ 66haussant la fréquence CPU ou en ajoutant un nouveau serveur hébergé par une autre machine. 4.4.2.2 Seuil minimal pour self-Sizing et Dvfs Nous avons utilisé différentes charges de travail suivant le même profil (une phase de montée en puissance suivie d’une phase constante), pour observer l’impact des opérations d’administration des gestionnaires sur la charge CPU. Ce qui diffère entre les charges de travail est l’intensité, c’est-à-dire le nombre de requêtes injectées. Pour évaluer le facteur de variation de la charge CPU, les opérations d’administration sont exécutées manuellement une fois que la charge est constante et stable. L’objectif est de déterminer si le facteur de variation de la charge CPU est le même pour chaque charge de travail. Cela permet de déduire une équation pour le calcul du seuil minimal en fonction du seuil maximal. Pour le gestionnaire self-sizing, la formule devrait également prendre en compte le nombre de serveurs dupliqués actifs. 4.4.2.2.1 Seuil minimal (T min ) pour self-sizing. Nous avons réalisé des expérimentations pour observer l’impact des opérations du gestionnaire selfsizing sur la charge moyenne des machines qui exécutent les serveurs dupliqués. Les opérations d’ajout et de retrait de serveurs sont exécutées une fois que la charge en entrée est constante et stable. La figure 4.7 présente des expérimentations dans lesquelles on ajoute un serveur dupliqué. Initialement un seul serveur est actif. L’ajout d’un second serveur fait baisser la charge CPU moyenne des machines. Nous notons toutefois, que cette diminution n’est pas de moitié par rapport à la charge observée avant l’ajout. Ce résultat est retrouvé pour toutes les charges testées («chargecpu-{1,2,3,4}»). Puisque les requêtes sont distribuées équitablement, on espérait observer une baisse de moitié, mais la charge moyenne obtenue est toujours supérieure à la charge théorique attendue. La figure 4.8 présente des expérimentations dans lesquelles on retire un serveur dupliqué. Chaque exécution débute avec deux serveurs dupliqués. Lorsqu’un serveur est arrêté, la charge sur le serveur restant augmente mais ne double pas. 674.4. EXPÉRIMENTATIONS 0 20 40 60 80 100 2 4 6 8 10 12 14 16 18 20 Charge CPU (%) Duree (minute) charge-cpu-1 charge-cpu-2 charge-cpu-3 charge-cpu-4 FIGURE 4.7 – Seuil minimal pour self-sizing : ajout de serveur 0 20 40 60 80 100 2 4 6 8 10 12 14 16 18 Charge CPU (%) Duree (minute) charge-cpu-1 charge-cpu-2 charge-cpu-3 charge-cpu-4 FIGURE 4.8 – Seuil minimal pour self-sizing : retrait de serveur Cela signifie que pour un système dont le degré de réplication ne dépasse pas deux, le calcul du seuil minimal peut se faire selon la formule suivante : T min = T max/2 68Pour un système avec un degré de réplication supérieur à deux, on souhaitera retirer un serveur le plus tôt possible. Dans ce cas, le seuil minimal peut être calculé comme suit : T min + T min (n − 1) < T max Où n est le nombre de serveurs actifs. En d’autres termes : T min < T max ∗ (n − 1) n → T min = [T max ∗ (n − 1) n ] − C Où C est une marge qui permet de maintenir T min, à la fois suffisamment haut pour retirer le plus tôt possible un serveur, et à la fois suffisamment bas par rapport à T max pour éviter des oscillations de la charge entre T max et T min . Pour éviter que T min soit trop proche de T max, une valeur maximale peut être fixée pour T min. Dans ce cas, la valeur maximale de T min est utilisée chaque fois que la valeur calculée de T min est supérieure. 4.4.2.2.2 Seuil minimal (T min) pour Dvfs. Nous avons utilisé une machine munie d’un processeur Dual-core ayant une fréquence minimale de 800Mhz et une fréquence maximale de 1.2Ghz. Une charge qui sature la machine en fréquence minimale pourrait être supportée en fréquence maximale. Théoriquement la machine est supposée pouvoir supporter 1.5 fois plus de charge en fréquence maximale qu’en fréquence minimale. Nous avons effectué des expérimentations en utilisant le même profil de charge mais avec différentes intensités. Durant ces expérimentations, la fréquence CPU de la machine est modifiée pour observer l’impact de ces changements sur la charge CPU de la machine. La figure 4.9 montre les variations de la charge CPU entre la fréquence maximale et la fréquence minimale. En fréquence minimale, la hausse de la fréquence fait baisser l’utilisation du CPU. Cependant pour la même charge en entrée, le rapport entre l’utilisation du CPU en fréquence maximale et l’utilisation du CPU en fréquence minimale est toujours inférieur au rapport entre les deux fréquences CPU. Le rapport semble constant et est inférieur à 1,5 sur notre plate-forme. La baisse observée est toujours inférieure à la baisse «théorique» 694.4. EXPÉRIMENTATIONS 0 20 40 60 80 100 5 10 15 20 25 Charge CPU (%) Duree (minute) 4750 req/sec 4000 req/sec 3054 req/sec FIGURE 4.9 – Seuil minimal pour Dvfs attendue. Cela permet de définir le seuil Minimal en fonction du seuil maximal et le rapport entre deux valeurs consécutives de fréquences CPU. Le seuil minimal peut être calculé comme suit : T min = T max ∗ next lower frequency current frequency 4.4.3 Évaluation Cette section présente l’évaluation du comportement du contrôleur généré pour la coordination des Dvfs et du self-sizing. Initialement un seul serveur Tomcat est actif. Le deuxième serveur Tomcat, en fonction de la charge, sera ajouté ou enlevé par le gestionnaire self-sizing. Les exécutions durent 20 minutes. L’injection de charge est arrêtée après les 20 minutes. 4.4.3.1 Comportement non coordonné Lors des exécutions non coordonnées, la détection d’une surcharge conduit à la hausse de la fréquence CPU de la machine qui héberge le premier serveur Tomcat. La surcharge a également à l’ajout du second serveur Tomcat. 70 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 0 1 2 3 4 5 Charge CPU (%); Frequence cpu Replication Duree (minute) cpu node1 Avg cpu CPUFreq node1 replication cpu node2 CPUFreq node2 FIGURE 4.10 – Exécution non coordonnée avec : 4750 requêtes/sec 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 0 1 2 3 4 5 Charge CPU (%); Frequence cpu Replication Duree (minute) cpu node1 Avg cpu CPUFreq node1 replication cpu node2 CPUFreq node2 FIGURE 4.11 – Exécution non coordonnée avec : 5000 requêtes/sec Les figures 4.10 et 4.11 présentent les exécutions non coordonnées pour les charges Workload1 et Workload2 respectivement. Lors de ces exécutions, la détection d’une surcharge déclenche une hausse de fréquence CPU et l’ajout 714.4. EXPÉRIMENTATIONS du second serveur Tomcat. Sur la figure 4.10 la surcharge est détectée par selfsizing environ 8 minutes après le début de l’injection de charge. Cela a conduit à la réaction du gestionnaire qui a ajouté le second Tomcat (11 min). Durant cette opération, le Dvfs sur la machine qui héberge le premier Tomcat a détecté la surcharge et a haussé la fréquence CPU de la machine (CPUFreq_node1: 9 min). Une fois le second serveur Tomcat intégré (node2: 11min), la charge CPU au niveaux des deux machines actives est autour de 60 pour cent. La fréquence CPU de la première machine est baissée. Le même comportement est observé sur la figure 4.11. Ces deux charges peuvent être traitées avec un seul serveur. Cependant sans coordination, deux serveurs Tomcat sont actifs et les machines qui les hébergent sont à la fréquence minimale. 4.4.3.2 Comportement coordonné Contrairement aux exécutions non coordonnées, pour les charges Workload1 et Workload2, le gestionnaire self-sizing ne réagit pas à la détection de surcharge durant l’exécution coordonnée. 0 10 20 30 40 50 60 70 80 90 0 5 10 15 20 0 1 2 3 4 5 Charge CPU (%); Frequence cpu Replication Duree (minute) cpu node1 Avg cpu CPUFreq node1 replication FIGURE 4.12 – Exécution coordonnée avec : 4750 requêtes/sec Les figures 4.12 et 4.13 présentent les exécutions coordonnées pour les charges Workload1 et Workload2 respectivement. Sur la figure 4.12 la surcharge 72 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 0 1 2 3 4 5 Charge CPU (%); Frequence cpu Replication Duree (minute) cpu node1 Avg cpu CPUFreq node1 replication FIGURE 4.13 – Exécution coordonnée avec : 5000 requêtes/sec est détectée 7 minutes après le début de l’injection de charge. Cependant un seul serveur Tomcat est resté actif durant toute la durée de l’expérimentation. La fréquence CPU de la machine qui héberge le serveur Tomcat est haussée par le Dvfs qui s’exécute sur la machine (CPUFreq_node1: 8 min). Le même comportement est observé sur la figure 4.13. Ajout d’un serveur lorsque nécessaire. Le traitement de la charge Workload3 requiert deux serveurs actifs. Pour la charge Workload3, dans l’exécution non coordonnée (Figure 4.14) comme dans l’exécution coordonnée (Figure 4.15), le deuxième serveur Tomcat est ajouté. Après l’ajout du second Tomcat, les machines qui hébergent les deux Tomcat sont à la fréquence minimale. Cependant, contrairement à l’exécution non coordonnée, durant l’exécution coordonnée l’ajout du second serveur Tomcat (environ 9 min) est effectué après que la fréquence maximale du serveur Tomcat ait été atteinte. Durant l’exécution coordonnée présentée à la figure 4.15, self-sizing n’a pas réagit à la première détection d’une surcharge (environ 4 min). Le Dvfs a réagit en haussant la fréquence des processeurs de la machine hébergeant le serveur Tomcat actif. Cependant la surcharge a persisté après que 734.4. EXPÉRIMENTATIONS 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 25 0 1 2 3 4 5 Charge CPU (%); Frequence cpu Replication Duree (minute) cpu node1 Avg cpu CPUFreq node1 replication cpu node2 CPUFreq node2 FIGURE 4.14 – Exécution non coordonnée avec : 5542 requêtes/sec 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 0 1 2 3 4 5 Charge CPU (%); Frequence cpu Replication Duree (minute) cpu node1 Avg cpu CPUFreq node1 replication cpu node2 CPUFreq node2 FIGURE 4.15 – Exécution coordonnée avec : 5542 requêtes/sec la machine soit à la fréquence maximale. Cela a conduit à l’ajout du second serveur Tomcat par self-sizing (9 min). 744.5 Conclusion Le contrôleur de coordination généré n’empêche pas l’ajout d’un nouveau serveur Tomcat lorsque cela est nécessaire. Il est en mesure d’assurer le respect de la politique de coordination. Contrairement aux exécutions non coordonnées, où les comportements indésirables ont été observés, on constate que les exécutions coordonnées respectent la politique définie. Les opérations d’ajout d’un nouveau serveur Tomcat ne sont effectuées que lorsque le serveur Tomcat actif a atteint sa fréquence CPU maximale alors que la charge continue à augmenter menant à la surcharge de ce serveur. Cependant, Il est important que la fréquence d’échantillonnage et la communication soient suffisamment rapide pour pouvoir détecter et traiter les montées de charge efficacement. Ce chapitre présente un exemple simple pour expliquer la mise en oeuvre de notre approche. Nous verrons dans le chapitre suivant un exemple plus compliqué et plus réaliste. 754.5. CONCLUSION 765 Gestion du dimensionnement dynamique et de la réparation d’un système multi-tiers Contents 5.1 Gestionnaires autonomes non coordonnés . . . . . . . . . . . 79 5.1.1 Gestionnaire d’auto-dimensionnement : Self-sizing . . 79 5.1.2 Gestionnaire d’auto-réparation : Self-repair . . . . . . . 80 5.2 Problèmes d’administration d’un système multi-tiers . . . . 81 5.3 Conception du contrôleur de coordination . . . . . . . . . . . 84 5.3.1 Modélisation du contrôle des gestionnaires . . . . . . . 84 5.3.1.1 Modélisation du contrôle de self-sizing . . . . 84 5.3.1.2 Modélisation du contrôle de self-repair . . . . 84 5.3.2 Spécification de la coordination . . . . . . . . . . . . . . 86 5.3.2.1 Stratégie de coordination . . . . . . . . . . . . 86 5.3.2.2 Spécification du contrat . . . . . . . . . . . . . 87 5.3.2.3 Programme final . . . . . . . . . . . . . . . . . 89 5.4 Expérimentations . . . . . . . . . . . . . . . . . . . . . . . . . . 90 5.4.1 Configuration . . . . . . . . . . . . . . . . . . . . . . . . 91 5.4.2 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . 91 5.4.2.1 Comportement non coordonné . . . . . . . . 92 5.4.2.2 Comportement coordonné . . . . . . . . . . . 95 5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 77Dans ce chapitre nous utilisons notre approche pour la coordination de gestionnaires autonomes pour garantir la performance, l’optimisation de ressources et la disponibilité d’un système distribué. La performance peut être considérée comme étant la capacité à répondre à plusieurs requêtes simultanément dans un délai acceptable, et la disponibilité comme étant la capacité à résister aux pannes. Pour assurer la performance et la disponibilité d’un système, ce dernier est généralement basé sur la réplication. Les serveurs sont dupliqués sur des machines distinctes et les requêtes sont distribuées aux instances de serveurs par un répartiteur de charge. Cela permet d’améliorer la performance et la tolérance aux pannes. Tomcat Ressources (cpu, mem, ...) (cpu, mem, ...) Ressources Tomcat ... ... ... Ressources (cpu, mem, ...) Tomcat (cpu, mem, ...) Ressources Apache (cpu, mem, ...) Ressources MySql−PROXY ... (cpu, mem, ...) (cpu, mem, ...) (cpu, mem, ...) Ressources Ressources Ressources MySQL MySQL MySQL ... ... ... Wk’/n Wk’/n Wk’/n WK/m WK/m WK/m Workload (WK) (mod_jk) (jdbc) (jdbc) (jdbc) Wk’: SQL Query reading FIGURE 5.1 – Application JEE Un exemple de système distribué que nous considérons est le système multitiers JEE présenté à la figure 5.1. Il est constitué d’un serveur web Apache 1 , de serveurs d’application Tomcat 2 dupliqués, d’un serveur Mysql-proxy 3 et de serveurs de bases de données Mysql 4 également dupliqués. Les requêtes entrantes sont reçues par le serveur Apache. Ce dernier les distribue aux serveurs 1. http://httpd.apache.org/ 2. http://tomcat.apache.org/ 3. http://dev.mysql.com/doc/refman/5.1/en/mysql-proxy.html 4. http://www.mysql.com/ 78Tomcat pour leur traitement. Les serveurs Tomcat accèdent aux bases de données via le serveur Mysql-proxy qui est un répartiteur de charge pour les serveurs Mysql. Le serveur Mysql-proxy distribue équitablement les requêtes de lecture aux serveurs Mysql. L’une des difficultés lors du déploiement de ce genre de système est le dimensionnement. La variation du nombre de requêtes à traiter fait qu’il peut être difficile d’estimer le nombre de serveurs dupliqués à utiliser lors du démarrage du système. Une configuration statique du nombre de serveurs peut conduire la plupart du temps à une estimation abusive du nombre de serveurs. Cela peut, peut-être, permettre d’avoir de bonnes performances, mais avec un coût très élevé, e.g., consommation énergétique élevée. Ajuster dynamiquement le degré de réplication à l’exécution permet d’allouer le nombre nécessaire de serveurs en fonction du nombre de requêtes à satisfaire. De plus l’état des serveurs doit être surveillé en permanence pour détecter les pannes. Il est nécessaire de réparer les pannes afin d’éviter de perdre tous les serveurs. Pour cela, des gestionnaires comme self-sizing et self-repair peuvent être utilisés pour la gestion du dimensionnement dynamique et la réparation de serveurs d’un système multi-tiers. Toutefois, la coordination de ces gestionnaires peut être nécessaire pour éviter des opérations incohérentes. En effet l’occurrence de panne dans un tier répliqué peut avoir un impact sur la charge des serveurs restants au niveau du tier. Elle peut également avoir un impact sur la charge des tiers qui lui succèdent dans la chaîne de traitement. Cela peut conduire à une mauvaise interprétation de la charge à traiter et une mauvaise évaluation du nombre de serveurs nécessaires pour traiter les requêtes. 5.1 Gestionnaires autonomes non coordonnés Les gestionnaires assurent la gestion de la disponibilité, la performance et l’optimisation des ressources de calcul. Ces derniers sont conçus indépendamment. 5.1.1 Gestionnaire d’auto-dimensionnement : Self-sizing Nous ré-utilisons le même gestionnaire décrit à la section 4.1.1. 795.1. GESTIONNAIRES AUTONOMES NON COORDONNÉS 5.1.2 Gestionnaire d’auto-réparation : Self-repair Le gestionnaire self-repair, représenté dans la figure 5.2, est dédié à la restauration d’un système ou les éléments constituant le système suite à l’occurrence de pannes. Il traite les pannes franches de machines. Il a une connaissance de la structure du système administré. Il connaît l’ensemble des machines sur lesquelles s’exécutent les éléments logiciels constituant le système, ainsi que l’ensemble des ressources matérielles non utilisées et disponibles pour permettre la reconfiguration du système. Connaissance Capteurs Actionneurs Elements administres en cours d’utilisation disponibles Execution Reparer Planification hearbeat Reparer (accessible) ? Analyse Gestionnaire d’auto−reparation Observation (cpu, mem, ...) (cpu, mem, ...) Ressource Ressource FIGURE 5.2 – Gestionnaire d’auto-réparation Comme le montre la figure 5.2, des sondes contactent périodiquement les machines en cours d’utilisation afin de vérifier leur accessibilité. Les sondes utilisées dans cet exemple sont de type Ping. Si aucune réponse n’est reçue après l’écoulement du temps de latence alors la machine qui ne répond pas est considérée en panne. Lorsqu’une machine est considérée comme en panne, le gestionnaire détermine les éléments logiciels et matériels qui sont affectés par cette panne. Il détermine ensuite les logiciels que la machine défaillante exécutait et ceux qui sont liés à ces logiciels. Cette analyse est effectuée sur la base de la connaissance que le gestionnaire a de l’état courant et de la structure de système. Sans cette connaissance, la restauration du système ne peut être 80réalisée car l’information nécessaire pour la reconstruction serait perdue avec la défaillance. Une fois que les éléments impactés par la panne sont identifiés, le gestionnaire planifie la reconstruction du système. Cette reconstruction consiste à redémarrer sur d’autres machines disponibles les logiciels qui s’exécutaient sur la machine défaillante et rétablir les liaisons entre les éléments. L’exécution des opérations de reconfiguration est effectuée via les actionneurs fournis par le système administré qui permettent l’allocation de machines, le déploiement et la configuration des éléments logiciels et matériels du système. Ce gestionnaire permet la disponibilité du système administré en restaurant le service après une défaillance d’une machine. Dans le cas d’un système basé sur la réplication de serveurs, il permet la restauration du degré de redondance des serveurs. Cela permet de tolérer jusqu’à m-1 pannes de serveurs durant le temps moyen de réparation (MTTR). 5.2 Problèmes d’administration d’un système multitiers Dans un système basé sur une architecture multi-tiers, une panne d’un serveur d’un des tiers peut affecter le tier et ceux qui suivent dans la chaîne de traitement des requêtes. L’occurrence d’une panne au niveau du tier peut entraîner une baisse de charge au niveau des serveurs des autres tiers qui suivent. Ces derniers risquent de ne plus recevoir autant de requêtes à traiter qu’avant la panne. Cela peut causer une sous-charge au niveau de ces tiers. Par exemple, sur la figure 5.3, la panne du serveur Apache entraîne une baisse de charge au niveau des tiers Tomcat, Mysql-Proxy et Mysql. Ces derniers ne reçoivent plus de requêtes car le serveur Apache est l’entrée du système. Sur la figure 5.4, la panne du serveur Mysql-Proxy entraîne une baisse de charge au niveau du tier Mysql car le serveur Mysql-Proxy reçoit les requêtes à transmettre aux serveurs Mysql. Dans le cas d’un tier basé sur la répartition de charge, la panne d’un des serveurs peut entraîner une surcharge des autres serveurs. Lorsqu’un des serveurs dupliqués tombe en panne la charge qu’il doit traiter est répartie entre les autres serveurs restants. Cela peut entraîner une hausse de charge au niveau de ces derniers et peut causer la saturation des machines qui les exécutent. Sur 815.2. PROBLÈMES D’ADMINISTRATION D’UN SYSTÈME MULTI-TIERS Tomcat Ressources (cpu, mem, ...) (cpu, mem, ...) Ressources Tomcat ... ... ... Ressources (cpu, mem, ...) Tomcat (cpu, mem, ...) Ressources Apache (cpu, mem, ...) Ressources MySql−PROXY ... (cpu, mem, ...) (cpu, mem, ...) (cpu, mem, ...) Ressources Ressources Ressources MySQL MySQL MySQL ... ... ... Wk’/n Wk’/n Wk’/n WK/m WK/m WK/m Workload (WK) (mod_jk) (jdbc) (jdbc) (jdbc) Wk’: SQL Query reading FIGURE 5.3 – Panne du serveur Apache Tomcat Ressources (cpu, mem, ...) (cpu, mem, ...) Ressources Tomcat ... ... ... Ressources (cpu, mem, ...) Tomcat (cpu, mem, ...) Ressources Apache (cpu, mem, ...) Ressources MySql−PROXY ... (cpu, mem, ...) (cpu, mem, ...) (cpu, mem, ...) Ressources Ressources Ressources MySQL MySQL MySQL ... ... ... Wk’/n Wk’/n Wk’/n WK/m WK/m WK/m Workload (WK) (mod_jk) (jdbc) (jdbc) (jdbc) Wk’: SQL Query reading FIGURE 5.4 – Panne du serveur Mysql-Proxy la figure 5.5, la panne d’un serveur Tomcat entraîne une hausse de la charge des autres serveurs Tomcat actifs. Sur la figure 5.6, la panne d’un serveur mysql entraîne une hausse de la charge des autres serveurs Mysql actifs. Lorsque des instances des gestionnaires self-sizing et self-repair sont utilisées pour gérer les différents tiers d’un système de ce type, les pannes peuvent entraîner des opérations d’administration inutiles. En effet l’occurrence d’une 82Tomcat Ressources (cpu, mem, ...) (cpu, mem, ...) Ressources Tomcat ... ... ... Ressources (cpu, mem, ...) Tomcat (cpu, mem, ...) Ressources Apache (cpu, mem, ...) Ressources MySql−PROXY ... (cpu, mem, ...) (cpu, mem, ...) (cpu, mem, ...) Ressources Ressources Ressources MySQL MySQL MySQL ... ... ... Wk’/n Wk’/n Wk’/n Workload (WK) WK/(m −1) WK/(m −1) (mod_jk) (jdbc) (jdbc) (jdbc) Wk’: SQL Query reading FIGURE 5.5 – Panne d’un serveur Tomcat Tomcat Ressources (cpu, mem, ...) (cpu, mem, ...) Ressources Tomcat ... ... ... Ressources (cpu, mem, ...) Tomcat (cpu, mem, ...) Ressources Apache (cpu, mem, ...) Ressources MySql−PROXY ... (cpu, mem, ...) (cpu, mem, ...) (cpu, mem, ...) Ressources Ressources Ressources MySQL MySQL MySQL ... ... ... WK/m WK/m WK/m Workload (WK) Wk’/(n −1) Wk’/(n −1) (mod_jk) (jdbc) (jdbc) (jdbc) Wk’: SQL Query reading FIGURE 5.6 – Panne d’un serveur MySQL panne d’un serveur d’un tier, détectée par le self-repair gérant ce tier, entraîne l’exécution d’une opération de restauration du serveur. Cependant cette panne peut occasionner une surcharge des autres serveurs durant la réparation. Dans ce cas le self-sizing dédié à la gestion du dimensionnement du tier où la panne s’est produite peut entamer une opération d’ajout d’un nouveau serveur alors que la panne est entrain d’être traitée. Si la charge n’a pas varié alors il y aura 835.3. CONCEPTION DU CONTRÔLEUR DE COORDINATION un serveur en trop et qui sera probablement arrêté par le self-sizing après la réparation. La panne peut également conduire à la baisse de la charge des tiers suivants. Si les instances de self-sizing au niveau de ces tiers détectent une sous-charge, ils vont enlever des serveurs pour optimiser les ressources. Mais une fois la panne réparée, si la charge n’a pas varié cela peut conduire à la saturation des tiers jusqu’à ce que les serveurs soient relancés par les self-sizing. Durant cette période une dégradation de la performance du système peut être observée. 5.3 Conception du contrôleur de coordination Cette section présente la conception d’un contrôleur de coordination des instances de self-repair et self-sizing pour l’administration du système multi-tiers présenté à la figure 5.1. Nous modélisons le contrôleur de coordination comme la composition des comportements des gestionnaires autonomes à laquelle est associée une politique de coordination pour éviter les comportements incohérents. 5.3.1 Modélisation du contrôle des gestionnaires Cette section décrit les modèles des gestionnaires autonomes. Chaque gestionnaire est modélisé par un ou plusieurs automates qui décrivent son comportement et le contrôle des actions d’administration qu’il peut exécuter. 5.3.1.1 Modélisation du contrôle de self-sizing Nous ré-utilisons le modèle de self-sizing défini à la section 4.3.1.1. 5.3.1.2 Modélisation du contrôle de self-repair Le modèle de self-repair est constitué de deux automates, représentés à la figure 5.7. L’automate à gauche modélise le contrôle des actions de réparation. Il a deux états : Enable et Disable. L’état Enable, état initial, indique que les actions de réparation sont autorisées et l’état Disable indique que les actions de réparation 84Enable Disable not cR/ cR/ disabled=False disabled=True Wait Repair repaired and failure / repair failure and not disabled/ repair repaired and not failure/ repairing=False repairing=True (disabled, repair, repairing)= REPAIR_MODEL (cR, failure, repaired) FIGURE 5.7 – Modéle de contrôle de self-repair sont interdites. Le changement d’états est contrôlé par l’entrée cR. Lorsqu’elle est à true les actions sont interdites. L’état du contrôle des actions de réparation est indiqué en sortie par la variable d’état disabled qui est à true lorsque les actions sont interdites. L’automate à droite modélise le comportement du gestionnaire. Il est constitué de deux états : Wait et Repair. L’état Wait, état initial, représente l’état dans lequel self-repair attend la détection d’une panne. L’état Repair représente l’état dans lequel le gestionnaire est en train d’effectuer la réparation de la panne. L’occurrence d’une panne est représentée par l’entrée failure à true. Dans l’état Wait, à l’occurrence d’une panne, self-repair réagit, si autorisée, en produisant l’action repair et se met dans l’état Repair. La fin de la réparation est représentée par l’entrée repaired à true. Si aucune panne est détectée, selfrepair retourne dans l’état d’attente Wait. En cas de panne, il réagit en réparant la panne. La sortie repairing indique l’état courant de l’automate. Elle est à true lorsque l’automate est dans l’état Repair. 855.3. CONCEPTION DU CONTRÔLEUR DE COORDINATION 5.3.2 Spécification de la coordination La coexistence des gestionnaires self-sizing et self-repair est représentée par la composition d’instances des automates qui décrivent leur comportement, illustrée à la figure 5.8. Nous avons quatre instances du modèle du gestionnaire self-repair et deux instances du modèle du gestionnaire self-sizing. (A_disabled, A_repair_server, A_repairing, T_disabled, T_repair_server, T_repairing, T_disabledUp, T_disabledDown, T_add_server, T_remove_server, T_adding, T_max, T_min, . . .) = MULTITIER (A_c, T_c, P_c, M_c, T_cUp, T_cDown, M_cUp, M_cDown, A_failure, A_repaired, T_failure, T_repaired, T_Underload, T_Overload, T_max_machine, T_min_machine . . .) (A_disabled, A_repair_server, A_repairing) = REPAIR_MODEL (A_c, A_failure, A_repaired); (T_disabled, T_repair_server, T_repairing) = REPAIR_MODEL (T_c, T_failure, T_repaired); (T_disabledUp, T_disabledDown, T_add_server, T_remove_server, T_adding, T_max, T_min) = SIZING_MODEL (T_cUp, T_cDown, T_Underload, T_Overload, T_max_machine, T_min_machine . . .); (P_disabled, P_repair_server, P_repairing) = REPAIR_MODEL (P_c, P_failure, P_repaired); (M_disabled, M_repair_server, M_repairing) = REPAIR_MODEL (M_c, M_failure, M_repaired); (M_disabledUp, M_disabledDown, M_add_server, M_remove_server, M_adding, M_max, M_min) = SIZING_MODEL (M_cUp, M_cDown, M_Underload, M_Overload, M_max_machine, M_min_machine . . .); FIGURE 5.8 – Composition des modèles de self-sizing et self-repair Les entrées et sorties des instances d’automates sont renommées, en ajoutant un préfixe, pour distinguer les gestionnaires qu’ils représentent : "A_" pour le gestionnaire dédié au tier Apache, "T_" pour le tier Tomcat, "P_" pour le tier Mysql-proxy, et " M_" pour le tier Mysql. Par exemple, l’entrée A_failure représente une panne du serveur Apache. Les entrées de la composition MULTITIER correspondent à l’union de toutes les entrées des automates contenus. Les sorties de la composition correspondent également à l’union des sorties des automates. 5.3.2.1 Stratégie de coordination La stratégie de coordination consiste à empêcher les gestionnaires self-sizing d’exécuter des actions d’ajout ou de retrait de serveurs en cas de panne. En effet, une panne d’un serveur d’un tier peut entraîner une surcharge au niveau du tier et une sous-charge au niveau des tiers qui suivent. De ce fait, traiter d’abord la panne avant de prendre en compte les événements de surcharge ou de souscharge peut être plus pertinent. Cela peut empêcher des réactions inutiles 86qui conduisent à des ajouts et/ou des retraits de serveurs. Le contrôle des actions des gestionnaires self-sizing est basé sur les activités des gestionnaires self-repair. La stratégie est décrite ci-dessous de manière textuelle : Condition 1 : Ignorer la surcharge détectée au niveau du tier Tomcat — En cas de panne dans le tier Tomcat, toute surcharge dans ce tier est ignorée tant que la réparation n’est pas terminée. Condition 2 : Ignorer la sous-charge détectée au niveau du tier Tomcat — En cas de panne dans le tier Apache, toute sous-charge dans le tier Tomcat est ignorée tant que la réparation de la panne n’est pas terminée. Condition 3 : Ignorer la surcharge détectée au niveau du tier Mysql — En cas de panne dans le tier Mysql, toute surcharge dans ce tier est ignorée tant que la réparation n’est pas terminée. Condition 4 : Ignorer la sous-charge détectée au niveau du tier Mysql — En cas de panne dans les tiers Apache, Tomcat et Mysql-proxy, toute sous-charge dans le tier Mysql est ignorée tant que la réparation de la panne n’est pas terminée. 5.3.2.2 Spécification du contrat Nous définissons la stratégie sous forme de propriétés d’invariance. Ces propriétés sont exprimées via les sorties des automates à la figure 5.8. Certaines propriétés sont spécifiées dans le contrat et assurées par le contrôleur généré. D’autres sont manuellement programmées. Ci-dessous nous décrivons les spécifications formelles de la stratégie de coordination. Condition 1. Cette condition consiste à ignorer les surcharges détectées dans le tier Tomcat en cas de panne d’un serveur Tomcat. Lors de la réparation d’un Tomcat, le gestionnaire self-sizing chargé du dimensionnement dynamique de ce tier ne doit pas réagir aux surcharges. Cela est exprimé par : invariant1.1 = T_repairing XOR not T_disabledUp T_repairing étant à true exprime le fait que la réparation d’un serveur Tomcat est en cours. (not T_disabledUp) étant à true exprime le fait que les opérations d’ajout de self-sizing sont autorisées. Empêcher (not T_disabledUp) 875.3. CONCEPTION DU CONTRÔLEUR DE COORDINATION d’être à true quand T_repairing est à true assure qu’aucune opération d’ajout ne sera exécutée durant une réparation. invariant1.2 = not (T_repair_server and T_add_server) T_repair_server étant à true exprime le fait que self-repair entame une opération de réparation. T_add_server étant à true exprime le fait que selfsizing entame une opération d’ajout. Cette propriété empêche, au niveau du tier Tomcat, l’activation d’une opération d’ajout et d’une opération de réparation dans la même réaction. Condition 2. Cette condition consiste à ignorer les sous-charges détectées dans le tier Tomcat en cas de panne du serveur Apache. Cela implique l’inhibition des opérations de retrait de serveurs au niveau du tier Tomcat lorsque le serveur apache est en train d’être réparé : invariant2.1 = A_repairing XOR not T_disabledDown Cette propriété permet d’inhiber les opérations de retrait au niveau du tier Tomcat lorsque le serveur Apache est en cours de réparation. invariant2.2 = not (A_repair_server and T_remove_server) Cette propriété empêche l’activation d’une opération de retrait de serveur au niveau du tier Tomcat et d’une opération de réparation du serveur Apache dans la même réaction. Condition 3. Cette condition consiste à ignorer les surcharges détectées dans le tier Mysql en cas de panne d’un serveur Mysql en cours de réparation. Lors de la réparation d’un Mysql, le gestionnaire self-sizing chargé du dimensionnement dynamique de ce tier ne doit pas réagir aux surcharges. Cela est exprimé par : invariant3.1 = M_repairing XOR not M_disabledUp Cette propriété est similaire à invariant1.1. invariant3.2 = not (M_repair_server and M_add_server) Cette propriété est similaire à invariant1.2. Condition 4. Cette condition consiste à ignorer les sous-charges détectées dans le tier Mysql en cas de panne du serveur Apache, du serveur Mysql-Proxy 88ou d’un serveur Tomcat et en cours de réparation. Cela implique l’inhibition des opérations de retrait de serveurs au niveau du tier Mysql lorsqu’un serveur au niveau des tiers qui précédent est en train d’être réparé : Soit APT_repairing correspondant à (A_repairing or P_repairing or T_repairing), et APT_repair_server correspondant à (A_repair_server or P_repair_server or T_repair_server). invariant4.1 = APT_repairing XOR not M_disabledDown La propriété invariant4.1 permet l’inhibition des opérations de retrait au niveau du tier Mysql lorsque des réparation sont en cours au niveau des autres tiers. invariant4.2 = not (APT_repair_server and M_remove_server) La propriété invariant4.2 empêche l’activation d’une opération de retrait de serveur au niveau du tier Mysql et d’une opération de réparation d’un serveur dans les autres tiers, dans la même réaction. 5.3.2.3 Programme final (A_repair_server, T_repair_server, T_add_server, T_remove_server . . .) = COORDINATED_MULTITIER (A_failure, A_repaired, T_failure, T_repaired, T_Underload, T_Overload, T_max_machine, T_min_machine . . .) enforce (invariant1.1 and invariant2.1 and invariant3.1 and invariant4.1 and invariant1.2 and invariant2.2 and invariant3.2 and invariant4.2) with A_c, T_c, P_c, M_c, T_cUp, T_cDown, M_cUp, M_cDown APT_failure = A_failure or P_failure or T_failure; . . . T_Overload’ = not T_failure and T_Overload; T_Underload’ = not A_failure and T_Underload; M_Overload’ = not M_failure and M_Overload; M_Underload’ = not APT_failure and M_Underload; . . . (A_disabled, A_repair_server, A_repairing, T_disabled, T_repair_server, T_repairing, T_disabledUp, T_disabledDown, T_add_server, T_remove_server, T_adding, T_max, T_min, . . .) = MULTITIER (A_c, T_c, P_c, M_c, T_cUp, T_cDown, M_cUp, M_cDown, A_failure, A_repaired, T_failure, T_repaired, T_Underload’, T_Overload’, T_max_machine, T_min_machine . . .); FIGURE 5.9 – Coordination des instances de self-sizing et self-repair La figure 5.9 décrit le modèle de la coordination des gestionnaires. Ce modèle est constitué du modèle de la coexistence des gestionnaires auquel 895.4. EXPÉRIMENTATIONS est associé un contrat exprimant la stratégie de coordination. A la compilation, Heptagon/BZR génère la logique de contrôle qui restreint la composition MULTITIER aux comportements qui respectent les propriétés invariant1.1, invariant2.1, invariant3.1 et invariant4.1. Cette logique de contrôle est automatiquement intégrée dans le modèle global. Propriétés programmées manuellement. Les propriétés invariant1.2, invariant2.2, invariant3.2 et invariant4.2 sont assurées par programmation du code Heptagon/BZR qui les réalise et non par SCD. Elles sont vérifiées à la compilation. La compilation réussit si ces propriétés sont satisfaites. Pour la propriété invariant1.2, nous définissons une variable T_Overload’ qui permet de filtrer les surcharges en fonction des pannes détectées. T_Overload’ est à true lorsque T_Overload est à true et T_failure est à false. Nous remplaçons T_Overload par T_Overload’ pour la notification d’une surcharge au modèle du self-sizing du tier Tomcat. La valeur de T_Overload’ est définie par : « not T_failure and T_Overload ». Cela permet de ne pas notifier une surcharge lorsqu’une panne est détectée dans la même réaction. Cette expression permet d’assurer la propriété invariant1.2. Le même principe est utilisé pour les autres propriétés programmées manuellement. 5.4 Expérimentations L’objectif des expérimentations est d’évaluer le comportement du contrôleur de coordination construit pour coordonner les gestionnaires self-sizing et selfrepair afin d’éviter des décisions d’administration incohérentes. La plate-forme expérimentale est constituée de machines munies de processeurs Dual-Core de 1.66Ghz et 1.9Go de mémoire, de machines munies de processeurs Dual-Core de 2,53 Ghz et 3.4Go de mémoire, et des machines munies de processeurs Dual-Core de 1.20Ghz et 1.5Go de mémoire. Les machines sont inter-connectées via un réseau Ethernet (1 Gbit/s). Pour l’ensemble des expérimentations, une seule instance de serveur Apache et une instance de serveur Mysql-Proxy sont utilisées. Les tiers Tomcat et Mysql sont basés sur la réplication. Chaque machine héberge un seul serveur. Quatre instances du gestionnaire self-repair sont utilisées, chaque tier est 90géré par une instance pour la gestion des pannes. Les tiers basés sur la réplication sont les tiers Tomcat et Mysql. Deux instances du gestionnaire self-sizing sont utilisées, chacun de ces deux tiers est géré par une instance pour le dimensionnement dynamique du nombre de serveurs dupliqués actifs. Le contrôleur de coordination généré est responsable de la coordination des actions des quatre instances de self-repair et des deux instances de self-sizing. 5.4.1 Configuration L’évaluation a été réalisée avec l’application multi-tiers JEE de référence RUBiS [17]. Elle implante un site de vente aux enchères [50] et définit plusieurs types d’interactions Web (e.g., l’enregistrement de nouveaux utilisateurs, la navigation, l’achat ou la vente d’objets). Le déploiement de RUBiS est basé sur une architecture distribuée constituée d’un front-end et d’un back-end. Le frontend est un cluster constitué des serveurs d’application Tomcat dupliqués et d’un serveur web Apache comme équilibreur de charge. Et le back-end est un cluster constitué des serveurs de bases de données Mysql et du serveur Mysql-proxy comme équilibreur de charge pour les serveurs Mysql. L’évaluation représente un réel problème qui peut être rencontré dans un environnement de cloud computing avec des capacités de recouvrement et des capacités d’élasticité. Initialement lors de chaque exécution, le système est démarré avec un serveur au niveau de chaque tier, c’est à dire, un serveur Apache, un serveur Tomcat, un serveur de Mysql-proxy et un serveur Mysql. Nous injectons une charge croissante (correspondant à la période de la création des threads qui simulent les actions des clients) puis une charge constante (correspondant à l’achèvement de la création de l’ensemble des «clients/threads»). Nous attendons qu’il y ait deux serveurs Tomcat actifs et deux serveurs Mysql actifs pour déclencher des pannes. 5.4.2 Évaluation Nous avons effectué des expérimentations durant lesquelles les gestionnaires ne sont pas coordonnés et d’autres durant lesquelles les gestionnaires sont coordonnés. La même configuration et le même profil de charge de travail sont utilisés lors des différentes exécutions aussi bien non coordonnées que 915.4. EXPÉRIMENTATIONS coordonnées. Les expérimentations non coordonnées permettent de voir le comportement des gestionnaires suite à l’occurrence d’une panne. Les expérimentations coordonnées permettent de voir si le contrôleur de coordination contrôle les gestionnaires afin d’assurer le respect de la politique de coordination. Nous déclenchons des pannes lorsque la charge est constante pour voir leurs impacts au niveau des tiers et aussi pour voir comment les différentes instances des gestionnaires réagissent. 5.4.2.1 Comportement non coordonné Comme dit plus haut, une panne au niveau d’un tier peut avoir un impact sur le tier mais également sur les tiers qui suivent. 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 25 30 35 40 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Apache FIGURE 5.10 – Exécution non coordonnée : Panne du serveur Apache La figure 5.10 présente une exécution durant laquelle le serveur Apache tombe en panne. L’occurrence de la panne du serveur Apache, 17 minutes après le début de l’exécution, provoque une baisse de charge au niveau des tiers Tomcat et Mysql (18 min). Une sous-charge est détectée au niveau de ces tiers et a conduit au retrait de serveurs dupliqués. Cependant après la réparation 92du serveur Apache (19 min), la charge est redevenue normale et les serveurs précédemment retirés ont été démarrés à nouveau à cause d’une sur-charge (Tomcat : 20 min et Mysql : 25 min). 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 25 30 35 40 45 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Tomcat FIGURE 5.11 – Exécution non coordonnée : Panne d’un serveur Tomcat La figure 5.11 présente une exécution durant laquelle un serveur Tomcat tombe en panne. Cette panne, survenue 26 minutes après le début de l’exécution, a provoqué un hausse de charge au niveau du tier (27 min) et aussi une baisse de charge au niveau du tier Mysql (27 min). La hausse de charge a conduit à une surcharge du tier Tomcat conduisant à l’ajout d’un nouveau serveur Tomcat. La baisse de charge au niveau du tier Mysql a conduit au retrait d’un serveur à cause d’une sous-charge des serveurs. Mais après la restauration (28 min) du serveur Tomcat tombé en panne, le serveur Tomcat précédemment ajouté est retiré et le serveur Mysql qui était retiré est rajouté à nouveau à cause d’une surcharge (31 min). La figure 5.12 présente une exécution durant laquelle le serveur Mysql-proxy tombe en panne. L’occurrence de la panne du serveur Mysql-proxy, survenue 17 minutes après le début de l’exécution, provoque une baisse de charge au niveau du tier Mysql (18 min). Une sous-charge est détectée et a conduit au retrait d’un serveur Mysql. Cependant après la réparation du serveur Mysql-proxy 935.4. EXPÉRIMENTATIONS 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 25 30 35 40 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne M-proxy FIGURE 5.12 – Exécution non coordonnée : Panne du serveur Mysql-proxy (19 min), la charge est redevenue normale et le serveur précédemment retiré a été démarré à nouveau à cause d’une sur-charge (20 min). La figure 5.13 présente une exécution durant laquelle un serveur Mysql tombe en panne. Cette panne, survenue 18 minutes après le début de l’exécution, a provoqué une surcharge du serveur Mysql restant (20 min). Cela a conduit à un ajout d’un serveur Mysql alors que celui tombé en panne est en cours de restauration. Après la restauration, le serveur ajouté est retiré à cause d’une baisse de charge (22 min). Les pannes peuvent entraîner des réactions des instances du gestionnaire self-sizing à cause de leur impact sur la répartition de la charge à traiter. Cependant, à moins que la charge en entrée ait changé, les actions de ces instances de self-sizing ne sont pas nécessaires. En effet, une fois les pannes réparées, le degré de réplication, observé avant les pannes, est restauré. 94 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 25 30 35 40 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Mysql FIGURE 5.13 – Exécution non coordonnée : Panne d’un serveur Mysql 5.4.2.2 Comportement coordonné Les figures suivantes présentent les exécutions durant lesquelles les instances de self-sizing et de self-repair sont coordonnées. La coordination est assurée par le contrôleur modélisé à la section 5.3. La figure 5.14 présente une exécution durant laquelle le serveur Apache tombe en panne. L’occurrence de la panne (min. 19) provoque une diminution de la charge à la fois au niveau du tier Tomcat et au niveau du tier Mysql. Une sous-charge (10% de charge CPU) au niveau de ces tiers est observée cependant aucune opération de retrait de serveur est exécutée ni au niveau du tier Tomcat ni au niveau du tier Mysql. A la fin de la réparation du serveur Apache, la charge est redevenue normale au niveau des tiers Tomcat et Mysql. La figure 5.15 présente une exécution durant laquelle un serveur Tomcat est en panne. La panne survient 17 minutes après le début de l’expérimentation et provoque une hausse de la charge du serveur Tomcat restant. Cette hausse de charge a conduit à une surcharge du serveur Tomcat restant (19 min). Cependant aucune opération d’ajout de serveur est exécutée par l’instance de self-sizing qui gère le tier Tomcat. Une baisse de la charge est également observée au 955.4. EXPÉRIMENTATIONS 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 25 30 35 40 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Apache FIGURE 5.14 – Exécution coordonnée : Panne du serveur Apache 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 25 30 35 40 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Tomcat FIGURE 5.15 – Exécution coordonnée : Panne d’un serveur Tomcat 96niveau du tier Mysql jusqu’en dessous du seuil minimal toléré. Mais sur ce tier aussi aucune opération de retrait de serveur est exécutée par l’instance de self-sizing qui le gère. La charge au niveau des tiers est redevenue normale après la réparation du serveur Tomcat. 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 25 30 35 40 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne M-proxy FIGURE 5.16 – Exécution coordonnée : Panne du serveur Mysql-proxy La figure 5.16 présente une exécution durant laquelle on observe une panne du serveur Mysql-proxy. Cette panne survenue 16 minutes après le début de l’expérimentation a occasionné une baisse de charge au niveau du tier Mysql. Cependant aucune opération de retrait est effectuée sur le tier Mysql et la charge est redevenue normale après la réparation. L’occurrence d’une panne de serveur Mysql, observée 17 minutes après le début de l’expérimentation sur la figure 5.17, occasionne une hausse de charge au niveau du Mysql restant. Cependant là également aucune opération d’ajout est observée. Le degré de réplication au niveau du tier Mysql n’a pas varié durant la réparation de la panne. La charge est redevenue normale après la réparation de la panne. 975.5. CONCLUSION 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 25 30 35 40 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Mysql FIGURE 5.17 – Exécution coordonnée : Panne d’un serveur Mysql 5.5 Conclusion Le contrôleur de coordination obtenu est en mesure de coordonner les gestionnaires afin d’assurer le respect de la politique de la coordination. Il empêche les gestionnaires self-sizing d’ajouter un nouveau serveur dans un tier où une panne est en cours de réparation. Il empêche également la suppression de serveurs au niveau des autres tiers. Le contrôleur permet d’éviter des opérations d’acquisition et de libération répétitives de machines. Cette propriété est particulièrement pertinente dans la gestion d’un centre de données, où les ressources de calcul sont partagées entre plusieurs applications clientes virtualisées. Dans un centre de données, un quota de ressources de calcul est attribué à chacune des applications. Le quota affecté à une application peut être ajusté dynamiquement en fonction de sa charge de travail. Cependant, une acquisition inutile de ressources peut empêcher d’autres applications d’atteindre leurs objectifs de performance. Par ailleurs, la libération inutile de ressources nécessaires pour une application peut avoir un impact sur ses performances si les ressources sont affectées à d’autres applications. 986 Coordination modulaire pour la gestion d’applications multi-tiers et consolidation Contents 6.1 Gestion des ressources d’un centre de données . . . . . . . . 100 6.1.1 Utilisation des ressources . . . . . . . . . . . . . . . . . 100 6.1.2 Gestionnaire de consolidation de serveurs . . . . . . . 101 6.2 Problèmes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 6.3 Conception de la coordination modulaire . . . . . . . . . . . 102 6.3.1 Modélisation des gestionnaires . . . . . . . . . . . . . . 103 6.3.1.1 Modélisation du gestionnaire self-sizing . . . 103 6.3.1.2 Modélisation du gestionnaire self-repair . . . 104 6.3.1.3 Modélisation du gestionnaire de consolidation104 6.3.2 Spécification de la coordination . . . . . . . . . . . . . . 105 6.3.2.1 Stratégie de coordination . . . . . . . . . . . . 105 6.3.2.2 Spécification du contrat . . . . . . . . . . . . . 106 6.3.2.3 Synthèse monolithique . . . . . . . . . . . . . 106 6.3.2.4 Synthèse modulaire . . . . . . . . . . . . . . . 107 6.3.2.5 Comparaison . . . . . . . . . . . . . . . . . . . 111 6.4 Expérimentations . . . . . . . . . . . . . . . . . . . . . . . . . . 112 6.4.1 Configuration . . . . . . . . . . . . . . . . . . . . . . . . 112 6.4.2 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . 113 996.1. GESTION DES RESSOURCES D’UN CENTRE DE DONNÉES 6.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 L’objectif de cette étude de cas est de démontrer le passage à l’échelle de notre approche. Il présente une application de la coordination modulaire pour la gestion d’un centre de données. Nous modélisons la coordination modulaire des gestionnaires des applications hébergées dans le centre de données et du gestionnaire de consolidation. Dans cette étude de cas, nous considérons que le centre de données héberge un ensemble d’applications de type multi-tiers JEE. Chacune des applications est gérée de manière autonome par deux instances de self-sizing et quatre instances de self-repair. 6.1 Gestion des ressources d’un centre de données 6.1.1 Utilisation des ressources Les ressources disponibles dans un centre de données sont généralement virtualisées et partagées entre plusieurs applications. Les logiciels applicatifs sont exécutés dans des machines virtuelles. Un centre de données héberge des applications qui appartiennent souvent à des clients différents. Ces applications sont généralement soumises à des contraintes de qualité de service. Des contrats sont établis entre le propriétaire du centre de données et les clients. Dans ces contrats sont définis des requis de niveau de qualité de services que le propriétaire du centre de données doit garantir. Les besoins en ressources des applications hébergées dans un centre de données varient généralement en fonction de leur charge de travail. Le dimensionnement statique des applications et un placement statique des machines virtuelles qui exécutent les applications peuvent mener à la non satisfaction des contraintes de qualité de service (SLAs) des applications ou à un gaspillage d’énergie. La puissance de calcul peut être dimensionnée en fonction des besoins en ressources des applications pour éviter un gaspillage d’énergie tout en garantissant leur performance. 1006.1.2 Gestionnaire de consolidation de serveurs Le gestionnaire de consolidation de serveurs est dédié à l’ajustement dynamique de la puissance de calcul fournie dans un centre de données virtualisé. La puissance de calcul repose sur un ensemble de serveurs physiques interconnectés. L’objectif de ce gestionnaire est d’éviter le gaspillage de ressources tout en satisfaisant les besoins des applications en ressource. Le gestionnaire connaît, au moyen de sondes, la configuration courante du placement des machines virtuelles sur les serveurs physiques. Il connaît l’état de chaque machine virtuelle, l’utilisation des ressources qui leur sont affectées et la charge de chaque serveur physique. Périodiquement il évalue la capacité disponible et la capacité utilisée par les machines virtuelles. Il planifie une diminution de la capacité lorsque les serveurs physiques sont sous-utilisés, ou bien une augmentation de la capacité lorsque les applications requièrent plus de ressources qu’il n’y a de disponible. Dans ce travail, nous utilisons VMware DRS/DPM [31, 32] pour la gestion de la puissance de calcul dans un centre de données expérimental virtualisé et basé sur VMware. Ce gestionnaire peut planifier des actions de migration pour fournir plus de ressources aux machines virtuelles surchargées ce qui peut nécessiter le démarrage de serveurs physiques. Lorsque les serveurs physiques sont sous-utilisées, le gestionnaire peut également planifier des actions de migration de machines virtuelles afin d’arrêter certains serveurs. Ce gestionnaire peut être configuré de sorte à qu’il retourne le plan qu’il a généré. L’exécution du plan est à valider par l’administrateur du centre de données. L’exécution d’un plan peut être retardée. La contrôlabilité du gestionnaire est considéré ici seulement à gros grains : une intéressante perspective serait d’envisager un contrôle plus fin sur les opérations de consolidation exécutées séquentiellement. Cependant cela nécessite de déterminer des points de synchronisation appropriés. 6.2 Problèmes L’exécution d’un plan de consolidation prend du temps. Son efficacité dépend essentiellement de la configuration courante de l’environnement vir- 1016.3. CONCEPTION DE LA COORDINATION MODULAIRE tualisé durant l’opération. Lorsque des machines virtuelles sont instanciées ou supprimées pendant une opération de consolidation, il peut arriver des incohérences. Lorsque le plan de consolidation consiste à diminuer la puissance de calcul disponible, des serveurs physiques vont être arrêtés et les machines virtuelles qu’ils hébergeaient vont être déplacées vers les serveurs actifs restants. Cela augmente la charge des serveurs restants et diminue les ressources disponibles sur ces serveurs. Si des machines virtuelles sont instanciées pendant l’exécution d’un plan de consolidation qui consiste à arrêter des serveurs, ces machines virtuelles peuvent être instanciées sur des serveurs qui vont être arrêtés ou sur ceux qui vont rester actifs. Cela conduit à la perte d’instances de machines virtuelles lorsqu’elles sont instanciées sur des serveurs arrêtés et peut mener à des échecs de migration ou d’instanciation de machines virtuelles si les serveurs restants ne disposent pas d’assez de ressources. Dans le cas d’un plan de consolidation qui consiste à augmenter la puissance de calcul, des serveurs physiques vont être redémarrés pour satisfaire les exigences des machines virtuelles. Cependant lorsque, durant l’exécution, des machines virtuelles sont arrêtées, les ressources fournies par les serveurs redémarrés peuvent ne plus être nécessaires. Cela conduit à du gaspillage de ressources. La charge de travail des applications hébergées dans un centre de données varie tout au long de leur durée de vie. Cette variation influe sur les besoins en ressources des applications. L’utilisation des gestionnaires comme self-sizing et self-repair dans la gestion d’applications multi-tiers virtualisées peut mener à des instanciations et des suppressions de machines virtuelles. Ces opérations peuvent être entamées à tout moment. Par conséquent les incohérences décrites ci-dessus peuvent être constatées lorsque des instances de self-sizing et de self-repair coexistent avec un gestionnaire de consolidation. De plus entre les instances de self-sizing et self-repair d’une application multi-tiers il peut y avoir des incohérences (Section 5.2). 6.3 Conception de la coordination modulaire Dans cette section, nous présentons les modèles des gestionnaires autonomes. Puis, nous détaillons la spécification du contrôle des gestionnaires de manière 102modulaire et hiérarchique. 6.3.1 Modélisation des gestionnaires Nous présentons des modèles des gestionnaires self-sizing et self-repair plus simples et différents de ceux utilisés dans les chapitres précédents. Cependant les mêmes propriétés de contrôle peuvent être appliquées et vérifiées sur ces modèles. 6.3.1.1 Modélisation du gestionnaire self-sizing U pdown adding=False Adding adding=True crm and u / rem ca and o / add na/ (add, rem, adding) = self_sizing (ca, crm, o, u, na) FIGURE 6.1 – Modèle du gestionnaire self-sizing La figure 6.1 modélise le gestionnaire self-sizing. Initialement dans l’état Updown, le gestionnaire entame un retrait (rem à vrai) à l’occurrence d’une souscharge (u à vrai) si l’action est autorisée (crm à vrai). Toujours dans l’état Updown, le gestionnaire entame un ajout de serveur (add à vrai) à l’occurrence d’une surcharge (o à vrai) et passe dans l’état Adding si l’opération d’ajout est autorisée (ca à vrai). L’état Adding indique l’exécution de l’ajout du serveur. Dans cet état le gestionnaire ne peut effectuer aucune autre opération. Il retourne à l’état Updown à la fin de l’ajout indiquée par na à vrai. L’état courant du gestionnaire est indiqué par la variable d’état adding. 1036.3. CONCEPTION DE LA COORDINATION MODULAIRE Wait repairing=False Repair repairing=True nr and cr and fail / rep cr and fail / rep nr and not (cr and fail) / (rep, repairing) = self_repair (cr, fail, nr) FIGURE 6.2 – Modèle du gestionnaire self-repair 6.3.1.2 Modélisation du gestionnaire self-repair La figure 6.2 représente le modèle du gestionnaire self-repair. Initialement dans l’état Wait, le gestionnaire attend la détection d’une panne. A l’occurrence d’une panne (fail à vrai), le gestionnaire entame la réparation de la panne (rep à vrai) et passe dans l’état Repair si l’opération de réparation est autorisée (cr à vrai). L’état Repair indique l’exécution de la réparation du serveur tombé en panne. Dans cet état le gestionnaire ne peut effectuer aucune autre opération. Une fois l’opération terminée, nr à vrai, s’il y a une autre panne, le gestionnaire entame la réparation de la nouvelle panne si autorisée ; sinon il retourne dans l’état Wait. 6.3.1.3 Modélisation du gestionnaire de consolidation La figure 6.3 présente le modèle du gestionnaire de consolidation. L’automate décrit le comportement et la contrôlabilité du gestionnaire. Dans l’état Idle, l’état initial, l’occurrence de l’événement i indique la nécessité d’augmenter la puissance de calcul. Le gestionnaire entame l’exécution du plan de consolidation (si) si l’action est autorisée (ci est à vrai), sinon il se met en attente d’autorisation (WaitI). Lorsque l’action est autorisée, le gestionnaire exécute le plan de consolidation (I). L’occurrence de l’événement d indique la nécessité de diminuer la puissance de calcul. Le gestionnaire entame l’exécution du plan de consolidation (sd) si l’action est autorisée (cd est à vrai), sinon 104Idle WaitD D WaitI I i and not ci/ ci/si i and ci/si e/ d and not cd/ cd/sd d and cd/ sd e/ incr=False decr=False incr=False decr=False incr=False decr=False incr=False decr=True incr=True decr=False (si, sd, incr, decr) = consolidation (ci, cd, i, d, e) FIGURE 6.3 – Modèle du gestionnaire de consolidation il se met en attente d’autorisation (WaitD). Lorsque l’action est autorisée, le gestionnaire exécute le plan de consolidation (D). L’activité du gestionnaire est indiquée par les variables d’état Incr et Decr. Incr est à vrai lorsque le gestionnaire exécute un plan de consolidation pour augmenter la puissance de calcul. La variable Decr est, quant à elle, à vrai lorsque le gestionnaire exécute un plan de consolidation pour diminuer la puissance de calcul. 6.3.2 Spécification de la coordination 6.3.2.1 Stratégie de coordination D’abord, nous définissons la stratégie de coordination des gestionnaires d’une application multi-tiers qui permet d’éviter une administration incohérente. Ensuite, nous définissons la stratégie de coordination des gestionnaires des applications et du gestionnaire de consolidation. – Au niveau application multi-tiers : 1. Au niveau d’un tier dupliqué, inhiber les ajouts quand une réparation est en cours. 2. Dans un tier dupliqué avec aiguilleur de charge, inhiber les retraits quand l’aiguilleur «load balancer» est en cours de réparation. 1056.3. CONCEPTION DE LA COORDINATION MODULAIRE 3. De manière plus générale, dans une application multi-tiers, inhiber les retraits de serveurs dans un tier lorsqu’une réparation est en cours dans un des tiers précédents. – Au niveau centre de données : 1. Eviter de faire des ajouts ou des réparations pendant une opération de consolidation. 2. Lorsque des instanciations de machines virtuelles (ajout/réparation) ou des suppressions (retrait) sont en cours, attendre avant d’exécuter un plan de consolidation. 6.3.2.2 Spécification du contrat Les stratégies de coordination (section 6.3.2.1) sont décrites par les objectifs de contrôle ci-dessous : – Au niveau application multi-tiers : 1. M1 : not (repairing and add) 2. M2 : not (repairingL and rem) 3. M3 : not (repairingpred and remsucc) – Au niveau centre de données : 1. DC1 : not ((Incr or Decr) and (repairing* or adding* or rem*)) 2. DC2 : not ( (repairing* or adding*) and sd) and not (rem* and si) 6.3.2.3 Synthèse monolithique Nous avons effectué la spécification monolithique du contrôle afin d’évaluer les avantages de l’approche modulaire. Avec la spécification monolithique, le contrôle est centralisé au niveau du modèle global, comme le montre la figure 6.4. Toutes les instances de mod- èles des gestionnaires impliqués sont groupées dans un seul modèle global. Tous les objectifs de contrôle sont définis sur le modèle global. De ce fait un seul contrôleur est construit pour assurer les objectifs locaux et les objectifs globaux. Cela peut être fastidieux et complexe quand plusieurs gestionnaires sont considérés. La structure de cette coordination est présentée à la figure 6.10. 106(. . .) = Main_node (. . .) enforce all contracts with all controllable variables (rep1 , repairing1 ) = self_repair (c 0 1 , fail1, nr1); . . . (repN, repairingN) = self_repair (c 0 N , failN, nrN); (add1, rem1, adding1 ) = self_sizing (ca1, . . .); . . . (addM, remM, addingM) = self_sizing (caM, . . .); (si, sd, Incr, Decr) = consolidation (ci, cd, i, d, e); FIGURE 6.4 – Synthèse monolithique 6.3.2.4 Synthèse modulaire Avec l’approche modulaire, nous construisons un contrôle hiérarchique de bas en haut. Nous construisons des modèles simples dans lesquels les objectifs de "bas niveau" sont spécifiés et assurés par un contrôleur local. Puis nous ré- utilisons ces modèles de contrôle dans la spécification de contrôle dans laquelle les objectifs de plus "haut niveau" doivent être assurés en plus de ceux de "bas niveau". Repair Sizing Coord-rep. tier CtrlrM1 Repair Coord-rep. tier Coord-lb-Rep. tier CtrlrM2 Coord-lb-Rep. tier Coord-lb-Rep. tier CtrlrM3 Multi-tiers System FIGURE 6.5 – Réutilisation de modèles de contrôle La figure 6.5 présente la réutilisation de modèle dans le cas du contrôle d’une application multi-tiers. Nous construisons d’abord le modèle de contrôle d’une instance de self-sizing et d’une instance de self-repair qui gèrent un tier répliqué. Nous réutilisons ce modèle dans la construction du modèle de contrôle d’une instance de self-repair pour la gestion de l’équilibreur de charge placé en frontal d’un tier dupliqué, et l’instance de self-sizing et l’instance de self-repair qui gèrent le tier dupliqué. Le modèle de contrôle d’une application multi-tiers est construit en utilisant deux instances de ce modèle. 1076.3. CONCEPTION DE LA COORDINATION MODULAIRE Tier dupliqué. Le modèle décrit à la figure 6.6 modélise la coordination d’une instance du gestionnaire self-sizing et d’une instance du gestionnaire self-repair. Ces instances de gestionnaires agissent sur le même tier dupliqué. Le contrat associé au modèle est constitué de quatre objectifs. L’un des objectifs correspond à la stratégie de coordination locale : (not (repairing and add)). Les autres objectifs correspondent à l’application du contrôle reçu de l’extérieur via les variables d’entrée cr0 , ca0 et crm0 . (. . .) = coord_repl_tier (cr0 , fail, nr, ca0 , crm0 , o, u, na) enforce (not (repairing and add)) and LongActions(cr0 , rep, repairing) and LongActions(ca0 , add, adding) and (crm0 or not rem) with cr, ca, crm (rep, repairing) = self_repair (cr, fail, nr); (add, rem, adding) = self_sizing (ca, crm, o, u, na); FIGURE 6.6 – Tier dupliqué Tier dupliqué avec aiguilleur en frontal. Le modèle décrit à la figure 6.7 modélise la coordination d’une instance de self-repair pour la gestion de l’équilibreur de charge placé en frontal d’un tier dupliqué, et l’instance de self-sizing et l’instance de self-repair qui gèrent le tier dupliqué. Le modèle est composé d’une instance du modèle du self-repair qui représente le gestionnaire chargé de la réparation de l’aiguilleur de charge, et d’une instance du modèle de la coordination décrite à la figure 6.6. Cette dernière est réutilisée pour la stratégie de coordination du self-sizing et du self-repair du tier dupliqué. Elle est composée avec une instance du modèle du self-repair qui représente le self-repair qui gère la réparation de l’équilibreur de charge. La stratégie de coordination locale à assurer est : not (repairingL and remove) et l’application du contrôle externe. Multi-tiers. La figure 6.8 présente le modèle de coordination des gestionnaires qui gèrent les différents tiers. Ce modèle est composé de deux instances du modèle présenté à la figure 6.7. 108(. . .) = coord_lb_repl_tier (cL0 , failL, nrL, c 0 , fail, nr, ca0 , crm0 , o, u, na) enforce (not (repairingL and rem)) and LongActions(cL0 , repL, repairingL) and LongActions(c 0 , rep, repairing) and LongActions(ca0 , add, adding) and (crm0 or not rem) with cL, c, ca, crm (repL, repairingL) = self_repair (cL, failL, nrL); (rep, repairing, add, rem, adding) = coord_repl_tier (c, fail, nr, ca, crm, o, u, na); FIGURE 6.7 – Tier dupliqué avec aiguilleur en frontal (. . .) = coord_appli (cL0 1 , failL1, nrL1, c 0 1 , fail1, nr1, ca0 1 , crm0 1 , o1, u1, na1) cL0 2 , failL2, nrL2, c 0 2 , fail2, nr2, ca0 2 , crm0 2 , o2, u2, na2) enforce (not ((repairingL1 or repairing1 ) and rem2)) and LongActions(cL0 i , repLi , repairingLi ) and LongActions(c 0 i , repi , repairingi ) and LongActions(ca0 i , addi , addingi ) and (crm0 i or not remi) i = 1, 2 with cL1, c1, ca1, crm1, cL2, c2, ca2, crm2 (repL1 , repairingL1 , rep1 , repairing1 , add1, rem1, adding1 ) = coord_lb_repl_tier (cL1, failL1, nrL1, c1, fail1, nr1, ca1, crm1, o1, u1, na1); (repL2 , repairingL2 , rep2 , repairing2 , add2, rem2, adding2 ) = coord_lb_repl_tier (cL2, failL2, nrL2, c2, fail2, nr2, ca2, crm2, o2, u2, na2); FIGURE 6.8 – Multi-tiers La stratégie de coordination consiste à empêcher un retrait de serveurs. Ceci est exprimé comme suit : (not ((repairingL1 or repairing1) and rem2)) Centre de données. La coordination de l’ensemble des gestionnaires présents dans un centre de données est construite progressivement de manière hiérarchique. La figure 6.9 présente le modèle de coordination des gestionnaires de deux applications multi-tiers et du gestionnaire de consolidation. Le modèle de contrôle est composé du modèle du gestionnaire de consolidation et de deux instances du modèle de contrôle des gestionnaires d’une application multi-tiers. A ce niveau le contrat ne contient que les objectifs qui concernent le centre de données. A partir de ce modèle, la coordination du gestionnaire de consolidation et des gestionnaires des autres applications peut être construite en 1096.3. CONCEPTION DE LA COORDINATION MODULAIRE composant ce modèle avec une instance du modèle 6.8. Le modèle résultant sera composé avec une autre instance du modèle 6.8 et ainsi de suite. Cela permet une spécification hiérarchique du contrôle du gestionnaire de consolidation et des gestionnaires d’un nombre N d’applications multi-tiers. Cependant cet exemple démontre le passage à l’échelle de l’approche modulaire sachant que les applications au niveau d’un centre de données sont dynamiques. Certaines peuvent être déployées ou arrêtées à tout moment au quel cas il faudrait envisager des ajouts et suppressions de modèles de gestionnaires au niveau du modèle global. Mais ce comportement n’est pas considéré dans le modèle de contrôle décrit dans ce travail. (. . .) = two_appli_in_data_center (. . .) enforce (not ((Incr or Decr) and (repairingij or addingij or remij)) and (not ((repairingij or addingij) and sd) and not (remij and si)) and LongActions(cL0 ij, repLij, repairingLij) and LongActions(c 0 ij, repij, repairingij) and LongActions(ca0 ij, addij, addingij) and (crm0 ij or not remij)) i = 1, 2; j = 1..2 with cL11, c11, . . . , crm22, ci, cd (. . .) = coord_appli (cL11, c11, ca11, crm11, . . . , cL21, c21, ca21, crm21, . . .) (. . .) = coord_appli (cL12, c12, ca12, crm12, . . . , cL22, c22, ca22, crm22, . . .) (si, sd, Incr, Decr) = consolidation (ci, cd, i, d, e); FIGURE 6.9 – Centre de données avec deux applications multi-tiers. Repair Apache Repair Sizing Tomcat repl. tier Repair Proxy Repair Sizing MySQL repl. tier Application2 Conso Dc.conso Ctrlr FIGURE 6.10 – Conception monolithique de la coordination 110Repair Apache Repair Sizing Tomcat repl. tier CtrlrM1 CtrlrM2 Repair Proxy Repair Sizing MySQL repl. tier CtrlrM1 CtrlrM2 CtrlrM3 Application2 Conso Dc.conso CtrlrDC FIGURE 6.11 – Conception modulaire de la coordination 6.3.2.5 Comparaison Les avantages de l’approche modulaire peuvent être considérés en terme de spécification et de coûts. L’approche modulaire permet une spécification décentralisée et hiérarchique du contrôle ; au lieu d’une spécification centralisée – le cas monolithique comme le montre la figure 6.10 – dans laquelle tous les automates sont d’un côté, et tous les contrats de l’autre côté. L’approche modulaire simplifie la spécification de contrôle d’un système large par la réutilisation de modèles dans des contextes différents. Cela améliore également la lisibilité de la spécification et facilite les modifications. nb. Durée de la synthèse Utilisation de la mémoire app. monolithique modulaire monolithique modulaire 1 0s 5s - - 2 49s 11s - - 3 42m24s 24s 34.81MB - 4 > 2 days 1m22s >149,56MB - 5 - 4m30s - 20,37MB 6 - 13m24s - 53,31MB 7 - 25m57s - 77,50MB 8 - 50m36s - 115,59MB 9 - 2h11m - 236,59MB 10 - 9h4m - 479,15MB TABLE 6.1 – SCD : durée de la synthèse et la mémoire utilisée 1116.4. EXPÉRIMENTATIONS Nous avons effectué une étude comparative des approches monolithique et modulaire en ce qui concerne la complexité combinatoire de synthèse de contrôleur et les coûts (CPU et mémoire) de la compilation des contrôleurs pour différentes tailles de système (c’est à dire, un nombre variable d’applications). Les résultats présentés par le tableau 6.1 montrent que pour un petit nombre d’applications, l’utilisation de la mémoire n’est pas très significative, et la durée de la compilation est relativement acceptable. Cependant à partir de quatre applications, l’approche monolithique atteint les limites de l’explosion combinatoire des techniques d’exploration d’espace d’états. Le calcul n’est pas terminé après plus de deux jours. L’approche modulaire présente de meilleurs résultats même si les coûts continuent à croitre quand le nombre d’applications augmente. Nous constatons que l’approche monolithique est exponentiellement coûteuse, alors que l’approche modulaire continue à produire des résultats, montrant ainsi la possibilité d’adresser de larges systèmes. Cependant, bien que le tableau 6.1 montre la durée totale de la compilation, en ce qui concerne la synthèse modulaire, la synthèse de la logique de contrôle de chaque contrat est effectuée de façon indépendante. Un modèle constitué d’un ensemble de modèles équipés d’un contrat ne requiert que la spécification du contrat défini dans les modèles pour la synthèse de la logique de contrôle. De ce fait la compilation des différents modèles peut être exécutée en parallèle ce qui réduit la durée totale de synthèse de l’ensemble des logiques de contrôle à intégrer dans les modèles. De plus, la recompilation d’un modèle est nécessaire uniquement lorsque son interface (entrées, sorties) et son contrat sont modifiés, ou bien ceux des sous-modèles qu’il utilise ; sinon, il peut être réutilisé tel quel. 6.4 Expérimentations Nous avons réalisé des expérimentations pour le contrôle de deux applications dans notre centre de données expérimental. 6.4.1 Configuration Notre centre de données expérimental est constitué d’un serveur de données et de six serveurs ESXi 5.1.0. Le serveur de données est muni de 24 CPU de 1121.9Ghz, 63Go de mémoire et 12To de disque. Quatre des serveurs ESXi sont munis de 8 CPU de 2.4Ghz, 32Go de mémoire et 926Go de disque. Un serveur des serveurs ESXi est muni de 12 CPU de 2.4Ghz, 32Go de mémoire et 558Go de disque. Le dernier serveur ESXi est muni de 12 CPU de 1.89Ghz, 160Go de mémoire et 2.73To de disque. Nous avons utilisé des machines virtuelles munies de 1 vCPU, 2Go de mémoire et 8Go de disque. 6.4.2 Évaluation 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 25 30 35 40 0 1 2 3 4 5 CPU load (%) nbre Tomcat - nbre Mysql time (minute) Tomcats CPU Avg Mysqls CPU Avg Active Tomcats Active Mysqls Apache failure FIGURE 6.12 – Exécution non coordonnée : app 1 : Panne Apache Les figures 6.12 et 6.13 présentent une exécution durant laquelle une panne s’est produite sur chaque application. Les gestionnaires des applications ne sont pas coordonnés. Sur la figure 6.12, il s’agit d’une panne du serveur Apache qui s’est produite 17 minutes après le début de l’expérimentation. La panne a conduit à un retrait de serveurs au niveau des tiers Tomcat et Mysql à cause d’une sous-charge. Cependant après la réparation du serveur Apache, le degré de réplication des tiers Tomcat et Mysql est restauré (21 min and 28 min). Sur la figure 6.13, il s’agit d’une panne d’un serveur Tomcat produite 19 minutes après le début. Cette panne a conduit au retrait d’un serveur Mysql qui 1136.4. EXPÉRIMENTATIONS 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 25 30 35 40 0 1 2 3 4 5 CPU load (%) nbre Tomcat - nbre Mysql time (minute) Tomcats CPU Avg Mysqls CPU Avg Active Tomcats Active Mysqls Tomcat failure FIGURE 6.13 – Exécution non coordonnée : app 2 : Panne Tomcat 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 25 30 35 40 0 1 2 3 4 5 CPU load (%) nbre Tomcat - nbre Mysql time (minute) Tomcats CPU Avg Mysqls CPU Avg active Tomcats Active Mysqls Apache failure FIGURE 6.14 – Exécution coordonnée : app 1 : Panne Apache 114 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 25 30 35 40 0 1 2 3 4 5 CPU load (%) nbre Tomcat - nbre Mysql time (minute) Tomcats CPU Avg Mysqls CPU Avg Active Tomcats Active Mysqls Tomcat failure FIGURE 6.15 – Exécution coordonnée : app 2 : Panne Tomcat a été rajouté après la réparation de la panne (25 min). Les figures 6.14 et 6.15 présentent une exécution similaire durant laquelle les gestionnaires des deux applications sont coordonnées. Durant cette exécution, la panne du serveur Apache, 20 minutes après le début, conduit à une souscharge au niveau des tiers Tomcat et Mysql ; mais aucun serveur n’est arrêté au niveau de ces tiers comme le montre la figure 6.14. De même, sur la figure 6.15, après la panne d’un serveur Tomcat survenue 17 minutes après le début, il y a une sous-charge au niveau du tier Mysql ; mais aucun serveur n’est arrêté. On remarque également que la charge moyenne des serveurs Tomcat, observée après la panne, excède le seuil maximal (90%) ; mais là aussi aucun serveur Tomcat n’est rajouté. 6.5 Conclusion Les contrôleurs de coordination, obtenus avec la spécification modulaire, assurent le respect des objectifs de coordination définis. Chaque contrôleur, 1156.5. CONCLUSION dans la hiérarchie de contrôleurs, assure de manière cohérente le respect de la stratégie de coordination qu’il gère. Les contrôleurs de niveau supérieur assurent les objectifs globaux en appliquant un contrôle sur les contrôleurs sous-jacents. Toutefois le code généré est structuré pour être exécuté de manière centralisée. Dans le chapitre suivant, nous étudions comment nous pouvons restructurer la hiérarchie de contrôleurs afin de pouvoir l’exécuter de manière distribuée. 1167 Exécution distribuée des contrôleurs modulaires Contents 7.1 Exécution distribuée de contrôleurs . . . . . . . . . . . . . . . 119 7.1.1 Exécution distribuée synchronisée . . . . . . . . . . . . 119 7.1.1.1 Principe . . . . . . . . . . . . . . . . . . . . . . 120 7.1.1.2 Implémentation . . . . . . . . . . . . . . . . . 120 7.1.2 Exécution distribuée désynchronisée . . . . . . . . . . . 122 7.1.2.1 Principe . . . . . . . . . . . . . . . . . . . . . . 122 7.1.2.2 Implémentation . . . . . . . . . . . . . . . . . 123 7.2 Exemple : Gestion d’une application multi-tiers . . . . . . . . 124 7.2.1 Exécution distribuée totalement synchronisée . . . . . 124 7.2.1.1 Modélisation . . . . . . . . . . . . . . . . . . . 124 7.2.1.2 Décomposition . . . . . . . . . . . . . . . . . . 125 7.2.2 Exécution distribuée partiellement synchronisée . . . . 126 7.2.2.1 Modélisation . . . . . . . . . . . . . . . . . . . 126 7.2.2.2 Décomposition . . . . . . . . . . . . . . . . . . 129 7.2.3 Exécution distribuée désynchronisée . . . . . . . . . . . 130 7.2.3.1 Modélisation . . . . . . . . . . . . . . . . . . . 130 7.2.3.2 Décomposition . . . . . . . . . . . . . . . . . . 131 7.2.4 Comparaison . . . . . . . . . . . . . . . . . . . . . . . . 132 7.3 Expérimentation . . . . . . . . . . . . . . . . . . . . . . . . . . 133 1177.3.1 Configuration . . . . . . . . . . . . . . . . . . . . . . . . 133 7.3.2 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . 133 7.3.2.1 Durée de reconfiguration . . . . . . . . . . . . 133 7.3.2.2 Atteinte des objectifs de contrôle . . . . . . . 134 7.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 La compilation d’une spécification modulaire produit une hiérarchie de contrôleurs. Chaque contrôleur est implémenté dans un programme distinct, e.g., une classe Java. Cependant, l’ensemble est structuré pour être exécuté de manière centralisée par défaut. -step -reset -constructor step -step -reset -constructor step -step -reset -constructor Main step FIGURE 7.1 – Structure à l’exécution : Objet Java A l’exécution, le contrôleur de plus haut niveau, contrôleur principal, instancie localement les contrôleurs sous-jacents sur lesquels il agit directement par appel de méthode. Ces derniers instancient ceux sur lesquels ils agissent et ainsi de suite. Cela est illustré à la figure 7.1. Toutefois, l’exécution centralisée présente des désavantages. Par exemple, en cas de défaillance, aucun contrôle, même partiel, ne peut être réalisé tant que la restauration n’est pas effectuée. 118L’exécution distribuée des contrôleurs peut permettre d’éviter d’avoir un seul point potentiel de défaillance. L’exécution distribuée d’une hiérarchie de contrôleurs peut permettre d’assurer un contrôle partiel en cas de défaillance. Lorsqu’un sous-ensemble des contrôleurs tombe en panne, les autres peuvent toujours assurer leurs objectifs locaux. De plus, lorsque le système à contrôler est large et réparti sur plusieurs sites, les contrôleurs peuvent être placés à proximité des sites qu’ils administrent. Cela réduit les délais de transmission des données de surveillance mesurées par les capteurs, ainsi que les délais de transmission des actions à appliquer par les actionneurs. Placer les contrôleurs à proximité des sites qu’ils administrent peut permettre de réduire les délais de réactivité par rapport à l’exécution centralisée. Dans ce chapitre, nous allons étudier comment le code obtenu d’une spécifi- cation modulaire peut être restructuré pour l’exécuter de manière distribuée. Une exécution distribuée d’une hiérarchie de contrôleurs nécessite, au moins, que certains des contrôleurs soient instanciés de manière indépendante du contrôleur de haut niveau. Nous verrons dans ce chapitre trois approches d’exécution distribuée : totalement synchronisée, partiellement synchronisée, et désynchronisée. 7.1 Exécution distribuée de contrôleurs Pour démontrer la possibilité d’exécuter de manière distribuée une hiérarchie de contrôleurs, nous supposons que le réseau est fiable. Nous supposons également qu’à l’exécution, ni les contrôleurs ni les machines qui les hébergent ne tombent en panne. 7.1.1 Exécution distribuée synchronisée Comme le montre la figure 7.1, dans l’exécution centralisée, le contrôleur de plus haut niveau instancie les contrôleurs sous-jacents qu’il utilise pour assurer ses objectifs. Ces derniers sont locaux à celui-ci. Pour exécuter de manière distribuée une hiérarchie de contrôleurs, par exemple, les contrôleurs sous- 1197.1. EXÉCUTION DISTRIBUÉE DE CONTRÔLEURS jacents au contrôleur de plus haut niveau (contrôleur principal) doivent être instanciés en dehors de ce dernier. Au niveau de celui-ci, cela nécessite la modification des appels locaux des méthodes step et reset des contrôleurs sousjacents. 7.1.1.1 Principe Les modifications à effectuer n’affectent pas l’implémentation des méthodes step et reset des contrôleurs. Par exemple, au niveau du contrôleur principal, les appels locaux des méthodes step et reset des sous-contrôleurs doivent simplement être remplacés par des appels distants. L’appel local de la méthode reset des sous-contrôleurs dans le contrôleur principal est implémenté dans la méthode reset de ce dernier. Étant donné que l’appel d’une méthode reset ne retourne pas de résultat, pour l’exécution distribuée, il suffit simplement de remplacer le code qui implémente l’appel local par celui qui implémente l’appel distant. Le même procédé est utilisé pour la modification de l’appel de la méthode step des sous-contrôleurs à exécuter de manière distribuée. L’appel d’une méthode step retourne un résultat. Toutefois, une structure de données est définie pour contenir le résultat. De ce fait cette même structure peut être utilisée sans modification. Le code qui instancie localement les sous-contrôleurs dans le contrôleur principal doit également être remplacé par le code qui permet d’obtenir les références de ces derniers exécutés à distance. Ces références vont permettre de faire les appels distants. L’implémentation de l’exécution distribuée peut être effectuée de différentes manières. L’approche Message Queuing peut être utilisée, ou bien Java-rmi. 7.1.1.2 Implémentation Nous utilisons Java-rmi pour montrer comment restructurer le code. Avec Java-rmi les modifications à effectuer sont simples puisque les objets instances locales de contrôleurs sont simplement transformés en références d’instances de contrôleurs distants. Ces références sont manipulées (appel des méthodes) de la même manière que des objets locaux. La figure 7.2 représente la transformation du schéma d’exécution centralisée 120-step -reset -constructor step -step -reset -step -reset -step -reset -constructor Main step -step -reset -constructor step RMI FIGURE 7.2 – Exécution distribuée synchronisée avec Java rmi présenté dans la figure 7.1 pour une exécution distribuée synchronisée. Les trois contrôleurs sont exécutés sont trois sites distincts. Le contrôleur principal, au centre, ne manipule pas des objets instances de contrôleurs. Il manipule des objets références d’instances de contrôleurs distants. C’est à travers ces objets références qu’il fait l’appel des méthodes des instances des sous-contrôleurs. Pour implémenter l’exécution distribuée avec Java-rmi, il faut définir une interface de type RemoteInterface pour chaque contrôleur. L’interface d’un contrôleur contient au moins la signature des méthodes step et reset accessibles à distance. L’implémentation des interfaces n’implique aucune modification des méthodes des contrôleurs. De plus, il faut enregistrer les objets instances des contrôleurs dans le rmiregistry. L’implémentation en Java d’un contrôleur contient un constructeur et les méthodes step et reset. Le code qui permet l’enregistrement d’un contrôleur dans le rmiregistry peut être ajouté dans le constructeur. Au niveau du contrôleur principal, par exemple, les objets instances des contrôleurs sous-jacents sont déclarés comme attributs et instanciés dans son constructeur. Ici, le type de chaque objet instance d’un contrôleur doit être remplacé par le type de l’interface du contrôleur. De plus, le code qui instancie les sous-contrôleurs doit être remplacé par le code qui récupère, à travers 1217.1. EXÉCUTION DISTRIBUÉE DE CONTRÔLEURS rmiregistry, les références des contrôleurs distants correspondants. Avec Javarmi, l’appel des méthodes step (resp. reset) des contrôleurs distants ne changent pas puisque les objets références sont manipulés comme des objets locaux. La communication distribuée est gérée par Java-rmi. 7.1.2 Exécution distribuée désynchronisée Une spécification modulaire peut être adaptée pour obtenir un ensemble de contrôleurs à exécuter de manière distribuée désynchronisée. Dans ce cas, il n’y a pas de contrôleur principal pour assurer la synchronisation et pour orchestrer le contrôle global. Chaque contrôleur distant évolue à son rythme et reçoit les entrées concernant le sous-ensemble qu’il gère. Les contrôleurs distants assurent le contrôle global par échange de valeurs de contrôle de manière asynchrone. L’avantage de cette approche est le fait qu’il n’y ait aucune synchronisation entre les contrôleurs ce qui accroît leur réactivité. 7.1.2.1 Principe Généralement une spécification modulaire produit une hiérarchie de contrôleurs avec un contrôleur principal qui assure le contrat global. Chacun des contrôleurs dans la hiérarchie assure un contrat local au sous-système qu’il contrôle. Ici, il s’agit de supprimer le contrôleur principal et de conserver les contrôleurs sous-jacents. Ces derniers vont assurer le contrat global par échange de valeurs de contrôle de manière asynchrone. La communication asynchrone est modélisée pour décrire les propriétés pertinentes du système de communication. Cela permettra, à la compilation, de vérifier si le contrat global est respecté en considérant les propriétés du système de communication. Cette méthode permet la modélisation d’un système localement synchrone et globalement asynchrone (GALS). Les étapes de conception sont décrites ci-dessous : 1. Nous modélisons le contrôleur de chaque sous-système. Cela correspond au modèle du sous-système auquel on associe un contrat contenant les objectifs de contrôle. 2. Nous modélisons ensuite le système de communication asynchrone utilisé pour la transmission de valeurs de contrôle. 1223. Ces différents modèles sont composés pour représenter le système global. Nous déclarons le contrat global, avec les objectifs globaux mais sans variable contrôlable. A la compilation du modèle global, le contrat est vérifié par model-checking. Aucun contrôleur n’est construit pour le modèle global. 4. Pour l’exécution, le code correspondant au modèle global, ainsi que le code correspondant au modèle du système de communication ne sont pas utilisés. Le code des contrôleurs contenus dans le modèle global est utilisé, ainsi que le système réel pour la communication pour la mise en oeuvre des échanges de valeurs de contrôle. 7.1.2.2 Implémentation L’implémentation de l’exécution distribuée désynchronisée n’implique aucune modification au niveau du code des contrôleurs. Ces derniers n’ont aucune référence locale les uns des autres. Un contrôleur reçoit les valeurs de contrôle d’un autre contrôleur comme entrées de sa méthode step. De plus, les valeurs de contrôle qu’il transmet sont contenues dans le résultat retourné par sa méthode step. De ce fait l’ajout du code pour la publication et/ou la réception des valeurs de contrôle à échanger ne nécessite pas de modification de l’implémentation des contrôleurs. Ce code peut même être placé ailleurs, par exemple dans le code qui fait l’appel de la méthode step. Nous utilisons l’approche Message Queuing pour montrer comment implémenter une exécution distribuée désynchronisée. La figure 7.3 représente la transformation du schéma d’exécution centralisée présenté dans la figure 7.1 pour une exécution distribuée désynchronisée. Ici, le contrôle principal n’existe plus et il n’y a aucune synchronisation des step des contrôleurs. Ces derniers sont indépendants et chacun évolue à son propre rythme dicté par les événements survenus dans le sous-système qu’il gère. Pour l’échange de message, nous utilisons un type de serveur de messages, RabbitMQ. Ce type de serveur permet de définir des supports d’échange, Topic, où des messages sont publiés. L’abonnement à un Topic permet de recevoir les messages publiés dedans. Chaque contrôleur publie ses valeurs de contrôle et s’abonne pour recevoir les valeurs de contrôle de son vis-à-vis, dans l’exemple présenté à la figure 7.3. 1237.2. EXEMPLE: GESTION D’UNE APPLICATION MULTI-TIERS -step -reset -constructor step -step -reset -constructor step Message Queuing Server Pub(c) Pub(c 0 ) Rec(c Rec(c) 0 ) FIGURE 7.3 – Exécution distribuée désynchronisée avec Message Queuing 7.2 Exemple : Gestion d’une application multi-tiers Cette section présente une application des approches pour l’exécution distribuée synchronisée et l’exécution distribuée désynchronisée. Nous consid- érons l’exemple de coordination modulaire des gestionnaires de l’application multi-tiers présentée dans le chapitre précédent. La conception de la coordination modulaire est présentée à la section 6.3.2.4. Ci-dessous nous présentons la transformation à faire sur le code obtenu pour l’exécuter de manière distribuée. 7.2.1 Exécution distribuée totalement synchronisée Pour l’exécution distribuée totalement synchronisée, la spécification modulaire présentée à la section 6.3.2.4 ne nécessite aucune modification. Elle est réutilisée telle quelle. 7.2.1.1 Modélisation Nous réutilisons la spécification modulaire de la coordination des gestionnaires self-sizing et self-repair décrite à la section 6.3.2.4 telle quelle. La figure 7.4 124Repair Apache Repair Sizing Tomcat repl. tier CtrlrM1 CtrlrM2 Repair Proxy Repair Sizing MySQL repl. tier CtrlrM1 CtrlrM2 CtrlrM3 FIGURE 7.4 – Spécification modulaire montre la structure de la spécification modulaire. 7.2.1.2 Décomposition La compilation du modèle décrit à la figure 7.4 produit une hiérarchie de contrôleurs : CtrlrM1, CtrlrM2 et CtrlrM3. A l’exécution centralisée, le contrôleur principal CtrlrM3 instancie les contrôleurs CtrlrM2. Chaque contrôleur CtrlrM2 instancie un contrôleur CtrlrM1. Repair Apache Repair Sizing Tomcat repl. tier Repair Proxy Repair Sizing MySQL repl. tier CtrlrM1 CtrlrM2 CtrlrM1 CtrlrM2 CtrlrM3 (o1, na1, u1, ..., f L2, f2, o2, na2) (repL1,rep1, add1,rem1) (repL2,rep2, add2,rem2) s (c, ...) s 0 (c 0 , ...) FIGURE 7.5 – Exécution distribuée totalement synchronisée 1257.2. EXEMPLE: GESTION D’UNE APPLICATION MULTI-TIERS Ici, nous décomposons le code en trois parties à exécuter sur des machines différentes comme le montre la figure 7.5. Les contrôleurs CtrlrM1 sont locaux aux contrôleurs CtrlrM2. Sur cet exemple, l’exécution distribuée obtenue est totalement synchronisée. En effet toutes les entrées sont reçues par le contrôleur CtrlrM3. Ce dernier, distribue les entrées reçues aux autres contrôleurs avec ses restrictions pour respecter son contrat. Une fois qu’il a calculé les valeurs de contrôle, il appelle la méthode step des contrôleurs CtrlrM2 distants. Ces derniers vont, eux aussi, appliquer des restrictions pour atteindre leurs objectifs. L’appel des méthodes step est bloquant et totalement synchronisé. 7.2.2 Exécution distribuée partiellement synchronisée Pour obtenir une exécution distribuée partiellement synchronisée, il faut distinguer les entrées nécessaires au contrôleur principal CtrlrM3 pour réaliser son contrôle. Cela permet de ne transmettre à ce dernier que les entrées dont il a besoin. Les autres entrées seront directement transmises aux contrôleurs CtrlrM2. De manière générale, il faut distinguer pour chaque entrée, le contrôleur de haut niveau qui doit la traiter en premier. 7.2.2.1 Modélisation Pour une exécution partiellement synchronisée, les entrées qui ne sont pas nécessaires au contrôleur de haut niveau, par exemple CtrlrM3, sont directement transmises aux contrôleurs qui les traitent, par exemple CtrlrM2. Toutefois les contrats associés aux contrôleurs ne changent pas. Le code obtenu de la spécification décrite à la figure 7.4 peut être adapté pour une exécution distribuée partiellement synchronisée. Une approche est d’affecter une valeur par défaut aux entrées que le contrôle principal ne traitent pas lors de l’appel de sa méthode step. Les vraies valeurs de ces entrées seront transmises aux contrôleurs CtrlrM2 qui les traitent. Une autre approche est de modifier la spécification des contrôleurs pour n’avoir que les entrées de contrôle comme arguments de leur méthode step. Les autres entrées sont récupérées dans la méthode step via des appels de fonctions externes. Le langage Heptagon/BZR, tout comme les autres langages synchrones, permet d’appeler des fonctions externes dans la définition d’un 126automate. Pour utiliser les fonctions externes, nous définissons un module qui fournit les signatures de ces dernières. Dans la suite, nous utilisons le terme «System» comme nom du module. Tier dupliqué. (. . .) = coord_repl_tier (cr0 , ca0 , crm0 ) enforce (not (repairing and add)) and LongActions(cr0 , rep, repairing) and LongActions(ca0 , add, adding) and (crm0 or not rem) with cr, ca, crm fail = System.failure (); nr = System.repaired (); o = System.overload (); na = System.added (); u = System.underload (); (rep, repairing) = self_repair (cr, fail, nr); (add, rem, adding) = self_sizing (ca, crm, o, u, na); FIGURE 7.6 – Tier dupliqué La figure 7.6 correspond au modèle de coordination d’un gestionnaire selfsizing et un gestionnaire self-repair pour un tier dupliqué. Ici les événements en entrée sont récupérées via les fonctions externes « System.* ». Ces dernières sont implémentées en dehors du modèle. Chaque fonction externe retourne un booléen qui correspond à la valeur courante de l’événement qu’elle traite. Par exemple System.overload retourne vrai lorsqu’une sur-charge est détectée, sinon elle retourne faux. Cependant ce modèle expose les entrées de contrôle qui permettent sa réutilisation et d’inhiber les actions des gestionnaires. Tier dupliqué avec aiguilleur de charge en frontal. La figure 7.7 correspond au modèle de coordination de deux gestionnaires self-repair et un gestionnaire self-sizing pour un tier dupliqué avec un aiguilleur en frontal. Le modèle dans la figure 7.6 est réutilisé pour la construction de la hiérarchie. Toutefois, ici toutes les entrées ne sont pas transmises au modèle dans la figure 7.7. 1277.2. EXEMPLE: GESTION D’UNE APPLICATION MULTI-TIERS (. . .) = coord_lb_repl_tier (cL0 , c 0 , ca0 , crm0 ) enforce (not (repairingL and rem)) and LongActions(cL0 , repL, repairingL) and LongActions(c 0 , rep, repairing) and LongActions(ca0 , add, adding) and (crm0 or not rem) with cL, c, ca, crm failL = System.failureLb (); nrL = System.repairedLb (); (repL, repairingL) = self_repair (cL, failL, nrL); FIGURE 7.7 – Tier dupliqué avec aiguilleur en frontal Multi-tiers. (. . .) = coord_multitier (cL0 1 , c 0 1 , ca0 1 , crm0 1 , cL0 2 , c 0 2 , ca0 2 , crm0 2 ) enforce (not ((repairingL1 or repairing1 ) and rem2)) and LongActions(cL0 i , repLi , repairingLi ) and LongActions(c 0 i , repi , repairingi ) and LongActions(ca0 i , addi , addingi ) and (crm0 i or not remi) i = 1, 2 with cL1, c1, ca1, crm1, cL2, c2, ca2, crm2 (repL1 , repairingL1 , rep1 , repairing1 , add1, rem1, adding1 ) = coord_lb_repl_tier (cL1, c1, ca1, crm1); (repL2 , repairingL2 , rep2 , repairing2 , add2, rem2, adding2 ) = coord_lb_repl_tier (cL2, c2, ca2, crm2); FIGURE 7.8 – Multi-tiers La figure 7.8 correspond au modèle de coordination de l’application multitiers. Ce dernier modèle ne reçoit aucun événement. Ses objectifs de contrôle sont définis sur les sorties des contrôleurs sous-jacents. Dans cet exemple, seules les entrées de contrôle et les sorties sont utilisées pour exprimer les objectifs. De ce fait, toutes les autres entrées peuvent être récupérées via des appels de fonctions dans les méthodes step. Cependant, lorsque ces dernières sont utiles dans la déclaration des objectifs, il est nécessaire qu’elles soient reçues comme entrées de la méthode step pour pouvoir appliquer 128la synthèse de contrôleur. Dans tous les cas, il faut distinguer les entrées qui nécessitent l’appel de la méthode step, ici, du contrôleur CtrlrM3. Dans cet exemple, ces entrées sont : failL1 (panne Apache), nrL1 (Apache réparé), failL1 (panne Tomcat), nr1 (Tomcat réparé), u2 (sous-charge Mysql). 7.2.2.2 Décomposition La compilation donne la même hiérarchie de contrôleurs que celle obtenue avec la coordination totalement synchronisée. Chacun des contrôleurs assure le respect des mêmes objectifs que son vis-à-vis dans la coordination totalement synchronisée. Repair Apache Repair Sizing Tomcat repl. tier Repair Proxy Repair Sizing MySQL repl. tier CtrlrM1 CtrlrM2 CtrlrM1 CtrlrM2 CtrlrM3 (f L1, nrL1, f1, nr1, u2) (o1, na1, u1) (repL1,rep1, add1,rem1) (f L2, nrL2, f2, nr2, o2, na2) (repL2,rep2, add2,rem2) s (c, ...) s 0 (c 0 , u2) FIGURE 7.9 – Exécution distribuée partiellement synchronisée Cependant, comme le montre la figure 7.9, le contrôleur principal CtrlrM3 et les deux CtrlrM2 reçoivent, chacun, une partie des entrées. De ce fait, les step sont partiellement synchronisés. Le contrôleur CtrlrM3 n’initie la synchronisation que pour le respect de l’objectif global. Les entrées qui ne concernent pas le contrat du contrôleur CtrlrM3 sont transmises directement aux contrôleurs CtrlrM2 qui les traitent. Chaque contrôleur CtrlrM2 évolue à son propre rythme en fonction de l’occurrence des entrées qu’il traite sans l’intervention du 1297.2. EXEMPLE: GESTION D’UNE APPLICATION MULTI-TIERS contrôleur CtrlrM3. Ces entrées (failL1, nrL1, fail1, nr1, u2) sont transmises au contrôleur CtrlrM3 qui calcule ses valeurs de contrôle. Ensuite, il appelle les méthodes step des contrôleurs CtrlrM2, avec ses valeurs de contrôle. Ces derniers conservent les valeurs de contrôle reçues du contrôleur principal jusqu’à la prochaine synchronisation. 7.2.3 Exécution distribuée désynchronisée Pour l’exécution distribuée désynchronisée, le contrat qui est défini dans le modèle global est assuré par les contrôleurs CtrlrM2. Dans la coordination modulaire synchronisée, ce contrat est assuré par le contrôleur CtrlrM3. 7.2.3.1 Modélisation Repair Apache Repair Sizing Tomcat repl. tier CtrlrM1 CtrlrM2 Repair Proxy Repair Sizing MySQL repl. tier CtrlrM1 CtrlrM2 Communication Veri f ication(model − checking) FIGURE 7.10 – Coordination modulaire désynchronisée La figure 7.10 présente la structure de la spécification de la coordination modulaire désynchronisée. Dans cet exemple seul le modèle global change. Le modèle de communication asynchrone entre les deux sous-ensembles est ajouté. Les contrats définis pour les contrôleurs CtrlrM2 (et CtrlrM1) ne changent pas. Le contrat défini dans le modèle global et qui était assuré par le contrôleur CtrlrM3 dans la spécification modulaire initiale, ici est assuré par programmation (échange de valeurs de contrôle). 1307.2.3.2 Décomposition Le contrôleur CtrlrM3 disparaît. Chaque contrôleur CtrlrM2 reçoit toutes les entrées concernant les gestionnaires qu’il contrôle. Dans cet exemple, le contrôleur CtrlrM2 qui gère les gestionnaires des tiers Apache et Tomcat envoie des valeurs de contrôle au contrôleur CtrlrM2 des gestionnaires des tiers Mysql-Proxy et Mysql. Ces valeurs de contrôle permettent d’inhiber les actions de retrait de serveurs Mysql en cas de panne au niveau Apache et/ou Tomcat. Ici la valeur transmise est : – c = not (ap_repairingLb or tom_repairing) ap_repairingLb est à vrai lorsque le serveur Apache est en cours de réparation et tom_repairing est à vrai lorsqu’un serveur Tomcat est en cours de réparation. – c est à vrai que lorsqu’une panne est en cours de réparation, auquel cas il faut inhiber les actions de retrait de serveurs Mysql tant que la réparation n’est pas terminée. Repair Apache Repair Sizing Tomcat repl. tier Repair Proxy Repair Sizing MySQL repl. tier CtrlrM1 CtrlrM2 CtrlrM1 CtrlrM2 Message Qeuing Server (f L1, nrL1, f1, nr1, o1, na1, u1) (repL1,rep1, add1,rem1) (f L2, nrL2, f2, nr2, o2, na2, u2) (repL2,rep2, add2,rem2) Pub(c) Rec(c) FIGURE 7.11 – Exécution distribuée désynchronisée 1317.2. EXEMPLE: GESTION D’UNE APPLICATION MULTI-TIERS Nous utilisons un serveur de messages, RabbitMQ, pour mettre en oeuvre la communication entre les contrôleurs. 7.2.4 Comparaison Durant l’exécution distribuée totalement synchronisée, comme pour l’exécution centralisée, tous les contrôleurs évoluent au même rythme que le contrôleur principal. Ce dernier orchestre tout le contrôle. Il reçoit toutes les entrées puis les transmet aux autres contrôleurs avec les valeurs de contrôle pour respecter ses objectifs. Cependant l’exécution distribuée peut ajouter un délai de réactivité supplémentaire à cause de la communication à distance. Durant l’exécution distribuée partiellement synchronisée, le contrôleur principal orchestre uniquement le contrôle pour assurer ses objectifs. Il ne reçoit que les entrées nécessaires pour calculer ses valeurs de contrôle. De plus, la synchronisation est partielle. Elle est effectuée pour transmettre des restrictions aux contrôleurs sous-jacents. Le reste des entrées, chacune, est transmis au contrôleur concerné. Pour le contrôle local, chaque contrôleur sous-jacent évolue à son propre rythme dicté par l’occurrence de ses entrées. Toutefois pour le contrôle global, les contrôleurs évoluent à la vitesse imposée par le contrôleur principal. Durant l’exécution distribuée désynchronisée, les contrôleurs sont totalement désynchronisés. Chacun évolue à son propre rythme et reçoit directement les entrées qu’il gère. Les contrôleurs communiquent par échange de valeurs de manière asynchrone. Cela pourrait conduire à des délais pour l’application du contrôle global. Par ailleurs, comme dans l’exécution centralisée, dans l’exécution distribuée totalement synchronisée, les restrictions du contrôleur principal sont prises en compte immédiatement (dans la même réaction) par les contrôleurs sousjacents. Dans l’exécution distribuée partiellement synchronisée, les restrictions du contrôleur principal sont également prises en compte immédiatement. Toutefois, puisque les contrôleurs sous-jacents ne sont pas totalement synchronisés avec le contrôleur principal, ces derniers peuvent faire un pas local pendant que le contrôleur principal initie un pas global. En raison des délais de communication entre le contrôleur principal et un contrôleur sous-jacent, l’ordre d’occurrence des entrées pourraient ne pas correspondre à l’ordre de leur ré- ception par le contrôleur sous-jacent. Une partie de ses entrées est d’abord 132transmise au contrôleur principal qui calcule des restrictions avant de transmettre les entrées aux autres contrôleurs. Pour éviter ce problème, un verrou peut être implémenté pour empêcher les contrôleurs sous-jacents de faire un pas local lorsque le contrôleur principal initie un pas global. Dans le cas de l’exécution distribuée désynchronisée, les restrictions peuvent ne pas être prises en compte immédiatement étant donné que les contrôleurs ne se synchronisent pas et que la communication est asynchrone. 7.3 Expérimentation Les expérimentations présentées au chapitre précédent montrent que le code modulaire garantit les propriétés définies. L’objectif de cette section est d’évaluer le temps de réaction des contrôleurs de coordination lorsqu’ils sont exécutés sur des machines distinctes. Nous évaluons également le respect des objectifs, notamment le respect de l’objectif global dans le cas de l’exécution distribuée désynchronisée. 7.3.1 Configuration Les expérimentations ont été réalisées dans notre centre de données expérimental, présenté à la section 6.4.1. 7.3.2 Évaluation Nous avons injecté des charges de différentes intensités mais ayant le même profil (une montée de charge puis une charge constante). La montée de charge permet de déclencher des ajouts de serveurs. Une fois que les charges sont constantes et le degré de réplication stables, nous injectons des pannes pour observer le comportement des gestionnaires en présence des contrôleurs de coordination. 7.3.2.1 Durée de reconfiguration Nous avons évalué la durée de reconfiguration dans l’exécution centralisée et dans l’exécution distribuée totalement synchronisée. Cette approche d’exé- 1337.3. EXPÉRIMENTATION cution distribuée est le pire cas en terme de délai de réactivité, car bien que distribué, le contrôle reste centralisé au niveau du contrôleur principal. Nous considérons que la durée d’une reconfiguration correspond au temps écoulé entre l’émission de l’événement qui déclenche la reconfiguration (par une sonde) et la fin de la reconfiguration. Le tableau 7.1, donne la durée moyenne de reconfiguration dans l’exécution centralisée et l’exécution distribuée totalement synchronisée. Mode d’exécution Durée moyenne de reconfiguration Centralisée 4.9 minutes Distribuée totalement sync. 5.3 minutes TABLE 7.1 – Durée moyenne de réaction Nous avons observé que le traitement d’un événement (e.g., surcharge Tomcat) dure, en moyenne, 4.9 minutes dans l’exécution centralisée. Dans l’exé- cution distribuée totalement synchronisée, cependant, il dure 5.3 minutes en moyenne. Toutefois, nous avons constaté qu’il n’y a pas une variation très significative due à l’exécution distribuée totalement synchronisée. Par exemple, dans l’exécution centralisée, présentée dans la figure 7.12, le traitement de la surcharge du tier Tomcat a duré 5.149 minutes. Dans l’exécution distribuée totalement synchronisée, présentée dans la figure 7.13, il a duré 5.156 minutes. Nous constatons également que la détection d’une panne d’un serveur Tomcat conduit à l’inhibition des actions d’ajout de serveurs aussi bien dans l’exécution centralisée que dans l’exécution distribuée totalement synchronisée. Dans la figure 7.12, une surcharge est ignorée durant la réparation d’une panne (34 min). Dans la figure 7.13, une surcharge est également ignorée durant la réparation d’un serveur (22 min). 7.3.2.2 Atteinte des objectifs de contrôle Dans les exécutions présentées ci-dessous, nous rendons le serveur Apache inaccessible. Cela va conduire à la restauration de ce dernier. L’objectif de 134 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Tomcat FIGURE 7.12 – Exécution centralisée 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Tomcat FIGURE 7.13 – Exécution distribuée totalement synchronisée 1357.3. EXPÉRIMENTATION voir si les sous-charges qui se produisent dans les tiers Tomcat et Mysql, en cas de panne du serveur Apache, sont également ignorées dans les exécutions distribuées. Exécution centralisée. Dans l’exécution centralisée, présentée dans la figure 7.14, la sous-charge détectée au niveau du tier Mysql (33 min) est ignorée à cause de la panne du serveur Apache en cours de restauration. 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Apache FIGURE 7.14 – Exécution centralisée : panne Apache et sous-charge Mysql Exécution distribuée totalement synchronisée. Dans l’exécution distribuée totalement synchronisée, présentée dans la figure 7.15, la sous-charge au niveau du tier Mysql (27.35 min) est également ignorée à cause de la panne du serveur Apache. Exécution distribuée partiellement synchronisée. Les figures 7.16, 7.17 et 7.18 présentent des exécutions durant lesquelles les contrôleurs sont exécutés de manière distribuée et partiellement synchronisée. 136 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Apache FIGURE 7.15 – Exécution distribuée totalement synchronisée : panne Apache et sous-charge Mysql Dans les trois figures, nous observons qu’en cas de panne du serveur Apache, les sous-charges au niveau des tiers Tomcat et Mysql sont ignorées. Dans la figure 7.16, la sous-charge détectée au niveau du tier Mysql (27.35 min) est ignorée. Dans La figure 7.17, la sous-charge détectée au niveau du tier Tomcat est également ignorée. La figure 7.18 présente une exécution dans laquelle deux serveurs Tomcat ainsi que deux serveurs Mysql sont actifs. Nous constatons qu’une sous-charge est détectée dans les tiers Tomcat et Mysql. Toutefois, aucun retrait de serveur n’est effectué à cause de la panne du serveur Apache. Le contrôleur principal a pu se synchroniser avec les contrôleurs distants, plus précisément, avec le contrôleur qui gère les gestionnaires des tiers Apache et Tomcat, pour permettre à ce dernier d’inhiber les actions de retrait de serveurs Tomcat. 1377.3. EXPÉRIMENTATION 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Apache FIGURE 7.16 – Exécution distribuée partiellement synchronisée : panne Apache et sous-charge Mysql 0 10 20 30 40 50 60 70 80 90 100 0 5 10 15 20 25 30 35 40 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Apache FIGURE 7.17 – Exécution distribuée partiellement synchronisée : panne Apache et sous-charge Tomcat 138 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Apache FIGURE 7.18 – Exécution distribuée partiellement synchronisée : panne Apache et sous-charge Tomcat, Mysql 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Apache FIGURE 7.19 – Exécution distribuée désynchronisée : panne Apache et sous-charge Mysql 1397.4. CONCLUSION Exécution distribuée désynchronisée. Les figures 7.19 et 7.20 présentent le cas où les contrôleurs sont exécutés de manière distribuée et désynchronisée. 0 10 20 30 40 50 60 70 80 90 100 0 10 20 30 40 50 0 1 2 3 4 5 Charge CPU (%) Nbre Tomcat - Nbre Mysql Duree (minute) Avg cpu Tomcats Avg cpu Mysqls Tomcats actifs Mysqls actifs Panne Apache FIGURE 7.20 – Exécution distribuée désynchronisée : panne Apache et sous-charge Tomcat, Mysql Nous constatons, dans ces exécutions, que les sous-charges au niveau du tier Mysql sont également ignorées suite à une panne du serveur Apache. Dans la figure 7.20, la sous-charge détectée dans le tier Tomcat est aussi ignorée. Les valeurs de contrôleur émises par le contrôleur de coordination des tiers Apache et Tomcat sont reçues par le contrôleur de coordination des tiers Mysql-proxy et Mysql avant la détection de sous-charge. Cela a permis d’inhiber les actions de retrait de serveurs Mysql. 7.4 Conclusion Nous constatons, sur notre plate-forme expérimentale, que le délai dû à la communication distante n’est pas très significatif. Nous constatons également 140que les objectifs de coordination sont assurées dans les exécutions distribuées. Les sous-charges en cas de panne du serveur Apache sont ignorées aussi bien dans le tier Tomcat que dans le tier Mysql. Toutefois, les sous-charges, lorsqu’il n’y a pas de panne, sont traitées et conduisent au retrait de serveur, comme le montre la baisse du nombre de serveurs Tomcat et Mysql en fin d’exécution dans les figures 7.18 et 7.20. De plus, dans les exécutions distribuées partiellement synchronisées et désynchronisées, la panne d’un contrôleur n’empêche pas les autres contrôleurs d’assurer leurs objectifs locaux. 1417.4. CONCLUSION 1428 Conclusion L’automatisation des fonctions d’administration de systèmes informatiques a été étudiée dans plusieurs travaux de recherche. Ces travaux ont démontré la faisabilité de cette approche avec la conception de différents gestionnaires autonomes. Ces derniers assurent de manière cohérente les fonctions d’administration qu’ils implémentent. Aujourd’hui de nombreux gestionnaires autonomes sont disponibles, mais aucun n’implémente l’ensemble des fonctions d’administration nécessaires pour une gestion globale d’un système. La complexité de concevoir un gestionnaire complet rend nécessaire la coexistence de plusieurs gestionnaires pour une administration complète. Toutefois leur coordination est nécessaire pour assurer une cohérence des actions d’administration exécutées par les gestionnaires autonomes qui peuvent avoir des politiques contradictoires. La coordination de gestionnaires autonomes requiert la synchronisation, partielle, de leurs activités et le contrôle de leurs actions d’administration pour éviter les incohérences. La théorie du contrôle fournit des techniques et des outils qui permettent de traiter ces aspects. De ce fait, nous proposons une approche basée sur le contrôle discret pour la conception et la validation de contrôleurs de coordination. Nous utilisons la programmation synchrone et la synthèse de contrôleur discret. Les langages synchrones sont des langages de haut niveau permettant une spécification formelle de système ; ils sont associés à des outils de vérification et de génération de code exécutable. La synthèse de 143contrôleur, quant à elle, permet de raffiner une spécification incomplète en construisant une fonction de contrôle qui permet d’assurer le respect de propriétés non vérifiées par la spécification initiale, conçue par programmation synchrone par exemple. Nous proposons la synthèse modulaire pour la coordination de plusieurs gestionnaires autonomes. Cette technique permet une coordination modulaire et hiérarchique des gestionnaires. Cela permet également de réduire la complexité inhérente aux techniques de synthèse de contrôleur discret. Pour la mise en oeuvre du contrôle, nous adoptons le modèle à composants. Chaque gestionnaire est encapsulé dans un composant qui fournit des fonctions d’introspection et de reconfiguration dynamique de l’état du gestionnaire. Les composants de gestionnaires à coordonner sont ensuite assemblés dans un composite dans lequel est intégré le contrôleur de coordination, obtenu par programmation synchrone et synthèse de contrôleur discret. Le contrôleur de coordination est connecté aux interfaces de contrôle des composants de gestionnaires pour restreindre ces derniers, à l’exécution, afin de garantir le respect de la politique de coordination. Nous avons réalisé des expérimentations pour évaluer notre approche. Nous avons coordonné des gestionnaires autonomes qui assurent la performance, de la disponibilité et de l’optimisation des ressources d’un système multi-tiers. Les expérimentations réalisées dans ce travail de thèse montrent la faisabilité de notre approche pour la conception et la validation de contrôleurs de coordination pour assurer de manière cohérente les politiques de coordination définies. Perspectives Des améliorations sont en cours pour intégrer, en plus des aspects logiques, des aspects quantitatifs dans les algorithmes de synthèse de contrôleur [9]. Cela permettra de considérer des valeurs numériques dans la déclaration des objectifs de contrôle. Des poids représentant des fonctions de coûts pourront être associés aux états et transitions. Par ailleurs, l’expression de propriétés quantitatives permettra de comparer notre approche avec les approches basées sur des aspects quantitatifs qui utilisent, par exemple, des fonctions d’utilité. Dans ce travail de thèse, les objectifs de contrôle sont relativement sim- 144ples. Nous envisageons d’étudier des scénarios de contrôle plus élaborés, par exemple, un contrôle sur des séquences d’événements et/ou d’états. Des améliorations sont également envisagées pour l’exécution distribuée. Les suppositions considérées dans ce travail de thèse, permettent de démontrer la faisabilité de l’exécution distribuée. Toutefois, en pratique, les pannes (machines, logiciels ou communication) ne peuvent pas être considérées inexistantes. De ce fait, nous prévoyons d’étudier la restauration du contrôle distribué de manière cohérente suite à des pannes de contrôleurs durant l’exécution. La mise à jour des contrôleurs, durant l’exécution, est également une perspective intéressante à étudier. L’évolution de la structure du système à contrôler, les changements des objectifs de contrôle conduisent souvent à la recompilation du contrôleur. L’idée est de pouvoir faire cette recompilation à chaud, et intégrer les modifications dans le contrôleur pendant qu’il s’exécute ; tout cela sans devoir arrêter puis redémarrer le contrôleur ce qui conduit généralement à réinitialiser l’état de ce dernier. En effet, cette propriété pourrait être pertinente dans la gestion de centres de données où les applications hébergées et leurs gestionnaires autonomes sont instanciés et/ou arrêtés de manière dynamique. 145146Bibliographie [1] Ahmad Al-Shishtawy and Vladimir Vlassov, Elastman : Elasticity manager for elastic key-value stores in the cloud, Proceedings of the 2013 ACM Cloud and Autonomic Computing Conference (New York, NY, USA), CAC ’13, ACM, 2013, pp. 7 :1–7 :10. [2] Marco Aldinucci, Marco Danelutto, Peter Kilpatrick, and Vamis Xhagjika, Libero : A framework for autonomic management of multiple non-functional concerns, Euro-Par 2010 Parallel Processing Workshops (MarioR. Guarracino, Frédéric Vivien, JesperLarsson Träff, Mario Cannatoro, Marco Danelutto, Anders Hast, Francesca Perla, Andreas Knüpfer, Beniamino Di Martino, and Michael Alexander, eds.), Lecture Notes in Computer Science, vol. 6586, Springer Berlin Heidelberg, 2011, pp. 237–245 (English). [3] Hua L. And, Hua Liu, Manish Parashar, and Salim Hariri, A Component Based Programming Framework for Autonomic Applications, Proc. of 1st International Conference on Autonomic Computing, 2004, pp. 10–17. [4] C. André, F. Boulanger, and A. Girault, Software implementation of synchronous programs, IEEE International Conference on Application of Concurrency to System Design (Newcastle upon Tyne, UK), IEEE Computer Society, June 2001, pp. 133–142. [5] Albert Benveniste, Paul Caspi, Stephen A. Edwards, Nicolas Halbwachs, Paul Le Guernic, and Robert de Simone, The Synchronous Languages Twelve Years Later, Proc. of the IEEE 91 (2003), no. 1. [6] Albert Benveniste, Paul Le Guernic, and Christian Jacquemot, Synchronous programming with events and relations : the {SIGNAL} language and its 147BIBLIOGRAPHIE semantics, Science of Computer Programming 16 (1991), no. 2, 103 – 149. [7] Gérard Berry and Georges Gonthier, The esterel synchronous programming language : Design, semantics, implementation, Sci. Comput. Program. 19 (1992), no. 2, 87–152. [8] Nicolas Berthier, Florence Maraninchi, and Laurent Mounier, Synchronous programming of device drivers for global resource control in embedded operating systems, Proceedings of the 2011 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems (New York, NY, USA), LCTES ’11, ACM, 2011, pp. 81–90. [9] Nicolas Berthier and Hervé Marchand, Discrete Controller Synthesis for Infi- nite State Systems with ReaX, IEEE International Workshop on Discrete Event Systems (Cachan, France), May 2014, pp. 420–427. [10] S. Bouchenak, Noël Depalma, Daniel Hagimont, Sacha Krakowiak, and C. Taton, Autonomic Management of Internet Services : Experience with Self-Optimization, International Conference on Autonomic Computing (ICAC), Dublin, 12/06/2006-16/06/2006 (http ://www.ieee.org/), IEEE, juin 2006, p. (electronic medium) (anglais). [11] Sara Bouchenak, Fabienne Boyer, Daniel Hagimont, Sacha Krakowiak, Noël De Palma, Vivien Quéma, and Jean-Bernard Stefani, Architecturebased autonomous repair management : Application to j2ee clusters., ICAC, IEEE Computer Society, 2005, pp. 369–370. [12] Sara Bouchenak, Noël De Palma, Daniel Hagimont, and Christophe Taton, Autonomic Management of Clustered Applications, IEEE International Conference on Cluster Computing, CLUSTER ’06, September 2006, pp. 1– 11. [13] Laurent Broto, Daniel Hagimont, Patricia Stolf, Noël Depalma, and Suzy Temate, Autonomic management policy specification in Tune, Annual ACM Symposium on Applied Computing (SAC), Fortaleza, Ceará, Brazil, 16/03/2008-20/03/2008 (http ://www.acm.org/), ACM, mars 2008, pp. 1658–1663 (anglais). [14] E. Bruneton, T. Coupaye, M. Leclercq, V. Quema, and J.-B. Stefani, The Fractal component model and its support in java, Software – Practice and Experience (SP&E) 36 (2006), no. 11-12. 148[15] Eric Bruneton, Thierry Coupaye, Matthieu Leclercq, Vivien Quéma, and Jean-Bernard Stefani, The fractal component model and its support in java : Experiences with auto-adaptive and reconfigurable systems, Softw. Pract. Exper. 36 (2006), no. 11-12, 1257–1284. [16] Christos G. Cassandras and Stephane Lafortune, Introduction to discrete event systems, Springer-Verlag New York, Inc., Secaucus, NJ, USA, 2006. [17] Emmanuel Cecchet, Anupam Chanda, Sameh Elnikety, Julie Marguerite, and Willy Zwaenepoel, Performance comparison of middleware architectures for generating dynamic web content, Proceedings of the ACM/IFIP/USENIX 2003 International Conference on Middleware (New York, NY, USA), Middleware ’03, Springer-Verlag New York, Inc., 2003, pp. 242–261. [18] Shang-Wen Cheng, David Garlan, Bradley R. Schmerl, João Pedro Sousa, Bridget Spitnagel, and Peter Steenkiste, Using architectural style as a basis for system self-repair, Proceedings of the IFIP 17th World Computer Congress - TC2 Stream / 3rd IEEE/IFIP Conference on Software Architecture : System Design, Development and Maintenance (Deventer, The Netherlands, The Netherlands), WICSA 3, Kluwer, B.V., 2002, pp. 45–59. [19] Jean-Louis Colaço, Bruno Pagano, and Marc Pouzet, A conservative extension of synchronous data-flow with state machines, Proceedings of the 5th ACM International Conference on Conference on Embedded Software (New York, NY, USA), EMSOFT ’05, ACM, 2005, pp. 173–182. [20] Rajarshi Das, Jeffrey O. Kephart, Charles Lefurgy, Gerald Tesauro, David W. Levine, and Hoi Chan, Autonomic multi-agent management of power and performance in data centers, Proceedings of the 7th International Joint Conference on Autonomous Agents and Multiagent systems: industrial track (Richland, SC), AAMAS ’08, International Foundation for Autonomous Agents and Multiagent Systems, 2008, pp. 107–114. [21] G. Delaval, N. De Palma, S.M.-K. Gueye, H. Marchand, and E. Rutten, Discrete control of computing systems administration : A programming language supported approach, Control Conference (ECC), 2013 European, July 2013, pp. 117–124. 149BIBLIOGRAPHIE [22] G. Delaval, É. Rutten, and H. Marchand, Integrating discrete controller synthesis into a reactive programming language compiler, Discrete Event Dynamic Systems 23 (2013), no. 4, 385–418. [23] Gwenaël Delaval, Soguy Mak Karé Gueye, Éric Rutten, and Noël De Palma, Modular coordination of multiple autonomic managers., CBSE’14, Proceedings of the 17th International ACM SIGSOFT Symposium on Component-Based Software Engineering (part of CompArch 2014), Marcq-en-Baroeul, Lille, France, June 30 - July 4, 2014 (Lionel Seinturier, Eduardo Santana de Almeida, and Jan Carlson, eds.), ACM, 2014, pp. 3– 12. [24] Gwenaël Delaval, Hervé Marchand, and Éric Rutten, Contracts for modular discrete controller synthesis, Proceedings of the ACM SIGPLAN/SIGBED 2010 Conference on Languages, Compilers, and Tools for Embedded Systems (New York, NY, USA), LCTES ’10, ACM, 2010, pp. 57–66. [25] Gwenaël Delaval, Éric Rutten, and Hervé Marchand, Integrating discrete controller synthesis into a reactive programming language compiler, Discrete Event Dynamic Systems 23 (2013), no. 4, 385–418. [26] Noël Depalma, B. Claudel, R. Lachaize, S. Bouchenak, and Daniel Hagimont, Self-Protected System : an experiment, Conference on Security and Network Architectures (SAR), Seignosse, France, 06/06/2006- 09/06/2006 (http ://www.aw-bc.com/), Addison Wesley Longman, juin 2006, p. (electronic medium) (anglais). [27] Léonard Gérard, Adrien Guatto, Cédric Pasteur, and Marc Pouzet, A modular memory optimization for synchronous data-flow languages, Proc. of the ACM International Conference on Languages, Compilers, Tools and Theory for Embedded Systems (LCTES’12) (Beijing, China), June 2012. [28] Soguy Mak-karé Gueye, Noël Palma, Eric Rutten, Alain Tchana, and Daniel Hagimont, Discrete control for ensuring consistency between multiple autonomic managers, Journal of Cloud Computing : Advances, Systems and Applications 2 (2013), no. 1, 16. [29] Soguy Mak Karé Gueye, Noël De Palma, and Éric Rutten, Component-based autonomic managers for coordination control., Coordination Models and Languages, 15th International Conference, COORDINATION 2013, Held as Part of the 8th International Federated Conference on Dis- 150tributed Computing Techniques, DisCoTec 2013, Florence, Italy, June 3-5, 2013. Proceedings (Rocco De Nicola and Christine Julien, eds.), Lecture Notes in Computer Science, vol. 7890, Springer, 2013, pp. 75–89. [30] Soguy Mak Karé Gueye, Noël De Palma, Éric Rutten, Alain Tchana, and Nicolas Berthier, Coordinating self-sizing and self-repair managers for multitier systems., Future Generation Comp. Syst. 35 (2014), 14–26. [31] Ajay Gulati, Anne Holler, Minwen Ji, Ganesha Shanmuganathan, Carl Waldspurger, and Xiaoyun Zhu, Vmware distributed resource management : Design, implementation, and lessons learned. [32] Ajay Gulati, Ganesha Shanmuganathan, Anne Holler, and Irfan Ahmad, Cloud-scale resource management : Challenges and techniques, Proceedings of the 3rd USENIX Conference on Hot Topics in Cloud Computing (Berkeley, CA, USA), HotCloud’11, USENIX Association, 2011, pp. 3–3. [33] N. Halbwachs, Synchronous programming of reactive systems, a tutorial and commented bibliography, Tenth International Conference on ComputerAided Verification, CAV’98 (Vancouver (B.C.)), LNCS 1427, Springer Verlag, June 1998. [34] N. Halbwachs, P. Caspi, P. Raymond, and D. Pilaud, The synchronous dataflow programming language lustre, Proceedings of the IEEE, 1991, pp. 1305–1320. [35] David Harel and Amnon Naamad, The statemate semantics of statecharts, ACM Trans. Softw. Eng. Methodol. 5 (1996), no. 4, 293–333. [36] Joseph L. Hellerstein, Yixin Diao, Sujay Parekh, and Dawn M. Tilbury, Feedback Control of Computing Systems, John Wiley & Sons, 2004. [37] Jin Heo, Praveen Jayachandran, Insik Shin, Dong Wang, Tarek Abdelzaher, and Xue Liu, OptiTuner: On Performance Composition and Server Farm Energy Minimization Application, IEEE Trans. Parallel Distrib. Syst. 22 (2011), no. 11, 1871–1878. [38] Timotheos Kastrinogiannis, Nikolay Tcholtchev, Arun Prakash, Ranganai Chaparadza, Vassilios Kaldanis, Hakan Coskun, and Symeon Papavassiliou, Addressing stability in future autonomic networking., MONAMI (Kostas Pentikousis, Ramón Agüero Calvo, Marta García-Arranz, and Symeon Papavassiliou, eds.), Lecture Notes of the Institute for Com- 151BIBLIOGRAPHIE puter Sciences, Social Informatics and Telecommunications Engineering, vol. 68, Springer, 2010, pp. 50–61. [39] Jeffrey O. Kephart and David M. Chess, The vision of autonomic computing, Computer 36 (2003), 41–50. [40] Sanjay Kumar, Vanish Talwar, Vibhore Kumar, Parthasarathy Ranganathan, and Karsten Schwan, vManage: loosely coupled platform and virtualization management in data centers, Proceedings of the 6th International Conference on Autonomic Computing (New York, NY, USA), ICAC ’09, ACM, 2009, pp. 127–136. [41] Florence Maraninchi and Yann Rémond, Mode-automata : a new domainspecific construct for the development of safe critical systems, Sci. Comput. Program. 46 (2003), 219–254. [42] H. Marchand, P. Bournai, M. Le Borgne, and P. Le Guernic, Synthesis of discrete-event controllers based on the signal environment, j. Discrete Event Dynamic System 10 (2000), no. 4. [43] H. Marchand and M. Samaan, Incremental design of a power transformer station controller using a controller synthesis methodology, IEEE Trans. on Soft. Eng. 26 (2000), no. 8, 729 –741. [44] Hervé Marchand, Patricia Bournai, Michel Le Borgne, and Paul Le Guernic, Synthesis of Discrete-Event Controllers Based on the Signal Environment, Discrete Event Dynamic Systems 10 (2000), 325–346. [45] Ripal Nathuji and Karsten Schwan, VirtualPower: coordinated power management in virtualized enterprise systems, Proceedings of twenty-first ACM SIGOPS Symposium on Operating Systems Principles (New York, NY, USA), SOSP ’07, ACM, 2007, pp. 265–278. [46] E. Pinheiro, R. Bianchini, E. V. Carrera, and T. Heath, Load balancing and unbalancing for power and performance in cluster-based systems, Proceedings of the Workshop on Compilers and Operating Systems for Low Power (COLP’01), September 2001. [47] Ramya Raghavendra, Parthasarathy Ranganathan, Vanish Talwar, Zhikui Wang, and Xiaoyun Zhu, No "power" struggles: coordinated multi-level power management for the data center, Proceedings of the 13th International Conference on Architectural Support for Programming Lan- 152guages and Operating Systems (New York, NY, USA), ASPLOS XIII, ACM, 2008, pp. 48–59. [48] P.J. Ramadge and W.M. Wonham, Supervisory control of a class of discrete event processes, SIAM J. on Control and Optimization 25 (1987), no. 1, 206–230. [49] Ivan Rodero, Juan Jaramillo, Andres Quiroz, Manish Parashar, Francesc Guim, and Stephen Poole, Energy-efficient application-aware online provisioning for virtualized clouds and data centers, Green Computing Conference, August 2010, pp. 31–45. [50] Ebada Sarhan, Atif Ghalwash, and Mohamed Khafagy, Specification and implementation of dynamic web site benchmark in telecommunication area, Proceedings of the 12th WSEAS International Conference on Computers (Stevens Point, Wisconsin, USA), ICCOMP’08, World Scientific and Engineering Academy and Society (WSEAS), 2008, pp. 863–867. [51] Nikolay Tcholtchev, Ranganai Chaparadza, and Arun Prakash, Addressing stability of control-loops in the context of the gana architecture : Synchronization of actions and policies, IWSOS, 2009, pp. 262–268. [52] Yin Wang, Terence Kelly, and Stéphane Lafortune, Discrete control for safe execution of IT automation workflows, Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007 (New York, NY, USA), EuroSys ’07, ACM, 2007, pp. 305–314. [53] Yiqiao Wang and John Mylopoulos, Self-repair through reconfiguration : A requirements engineering approach, Proceedings of the 2009 IEEE/ACM International Conference on Automated Software Engineering (Washington, DC, USA), ASE ’09, IEEE Computer Society, 2009, pp. 257–268. 153BIBLIOGRAPHIE 154Table des figures 2.1 Architecture d’un système autonome . . . . . . . . . . . . . . . . 11 2.2 Système de transitions . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3 Modélisation avec Heptagon/BZR: Tâche différable . . . . . . . 22 2.4 Modélisation avec Heptagon/BZR: programme BZR. . . . . . . . 23 2.5 Exemple de composition parallèle . . . . . . . . . . . . . . . . . 24 2.6 Exemple d’encapsulation . . . . . . . . . . . . . . . . . . . . . . . 24 2.7 Système de transitions contrôlé . . . . . . . . . . . . . . . . . . . 27 2.8 Heptagon/BZR contrat: exclusion mutuelle . . . . . . . . . . . . 28 2.9 Synthèse modulaire avec Heptagon/BZR. . . . . . . . . . . . . . 29 3.1 Comportement d’un gestionnaire . . . . . . . . . . . . . . . . . . 37 3.2 Gestionnaire contrôlable . . . . . . . . . . . . . . . . . . . . . . . 38 3.3 Modèle de la coexistence de gestionnaires . . . . . . . . . . . . . 39 3.4 Spécification de stratégie de coordination . . . . . . . . . . . . . 40 3.5 Spécification monolithique du contrôle . . . . . . . . . . . . . . . 41 3.6 Spécification modulaire du contrôle . . . . . . . . . . . . . . . . 42 3.7 Composant Fractal . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.8 Composant composite . . . . . . . . . . . . . . . . . . . . . . . . 45 3.9 Composant de gestionnaire contrôlable . . . . . . . . . . . . . . 47 3.10 Composants de gestionnaires coordonnés . . . . . . . . . . . . . 48 3.11 Composant composite . . . . . . . . . . . . . . . . . . . . . . . . 48 3.12 Extension de la contrôlabilité . . . . . . . . . . . . . . . . . . . . 51 3.13 Coordination hiérarchique . . . . . . . . . . . . . . . . . . . . . . 51 4.1 Gestionnaire d’auto-dimensionnement: self-sizing . . . . . . . . 57 4.2 Gestionnaire d’auto-régulation: Dvfs . . . . . . . . . . . . . . . . 58 155TABLE DES FIGURES 4.3 Modèle de contrôle de self-sizing . . . . . . . . . . . . . . . . . . 61 4.4 Modèle global du mode d’exécution des Dvfs . . . . . . . . . . . 63 4.5 Composition des modèles des gestionnaires self-sizing et Dvfs . 64 4.6 Coordination de gestionnaires self-sizing et Dvfs . . . . . . . . . 65 4.7 Seuil minimal pour self-sizing: ajout de serveur . . . . . . . . . . 68 4.8 Seuil minimal pour self-sizing: retrait de serveur . . . . . . . . . 68 4.9 Seuil minimal pour Dvfs . . . . . . . . . . . . . . . . . . . . . . . 70 4.10 Exécution non coordonnée avec: 4750 requêtes/sec . . . . . . . . . 71 4.11 Exécution non coordonnée avec: 5000 requêtes/sec . . . . . . . . . 71 4.12 Exécution coordonnée avec: 4750 requêtes/sec . . . . . . . . . . . 72 4.13 Exécution coordonnée avec: 5000 requêtes/sec . . . . . . . . . . . 73 4.14 Exécution non coordonnée avec: 5542 requêtes/sec . . . . . . . . . 74 4.15 Exécution coordonnée avec: 5542 requêtes/sec . . . . . . . . . . . 74 5.1 Application JEE . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 5.2 Gestionnaire d’auto-réparation . . . . . . . . . . . . . . . . . . . 80 5.3 Panne du serveur Apache . . . . . . . . . . . . . . . . . . . . . . 82 5.4 Panne du serveur Mysql-Proxy . . . . . . . . . . . . . . . . . . . 82 5.5 Panne d’un serveur Tomcat . . . . . . . . . . . . . . . . . . . . . 83 5.6 Panne d’un serveur MySQL . . . . . . . . . . . . . . . . . . . . . . 83 5.7 Modéle de contrôle de self-repair . . . . . . . . . . . . . . . . . . 85 5.8 Composition des modèles de self-sizing et self-repair . . . . . . 86 5.9 Coordination des instances de self-sizing et self-repair . . . . . . 89 5.10 Exécution non coordonnée: Panne du serveur Apache . . . . . . 92 5.11 Exécution non coordonnée: Panne d’un serveur Tomcat . . . . . 93 5.12 Exécution non coordonnée: Panne du serveur Mysql-proxy . . . 94 5.13 Exécution non coordonnée: Panne d’un serveur Mysql . . . . . 95 5.14 Exécution coordonnée: Panne du serveur Apache . . . . . . . . 96 5.15 Exécution coordonnée: Panne d’un serveur Tomcat . . . . . . . 96 5.16 Exécution coordonnée: Panne du serveur Mysql-proxy . . . . . 97 5.17 Exécution coordonnée: Panne d’un serveur Mysql . . . . . . . . 98 6.1 Modèle du gestionnaire self-sizing . . . . . . . . . . . . . . . . . 103 6.2 Modèle du gestionnaire self-repair . . . . . . . . . . . . . . . . . 104 6.3 Modèle du gestionnaire de consolidation . . . . . . . . . . . . . 105 1566.4 Synthèse monolithique . . . . . . . . . . . . . . . . . . . . . . . . 107 6.5 Réutilisation de modèles de contrôle . . . . . . . . . . . . . . . . 107 6.6 Tier dupliqué . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 6.7 Tier dupliqué avec aiguilleur en frontal . . . . . . . . . . . . . . 109 6.8 Multi-tiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 6.9 Centre de données avec deux applications multi-tiers. . . . . . . 110 6.10 Conception monolithique de la coordination . . . . . . . . . . . 110 6.11 Conception modulaire de la coordination . . . . . . . . . . . . . 111 6.12 Exécution non coordonnée: app 1: Panne Apache . . . . . . . . . 113 6.13 Exécution non coordonnée: app 2: Panne Tomcat . . . . . . . . . 114 6.14 Exécution coordonnée: app 1: Panne Apache . . . . . . . . . . . . 114 6.15 Exécution coordonnée: app 2: Panne Tomcat . . . . . . . . . . . . 115 7.1 Structure à l’exécution: Objet Java . . . . . . . . . . . . . . . . . . 118 7.2 Exécution distribuée synchronisée avec Java rmi . . . . . . . . 121 7.3 Exécution distribuée désynchronisée avec Message Queuing . . . 124 7.4 Spécification modulaire . . . . . . . . . . . . . . . . . . . . . . . 125 7.5 Exécution distribuée totalement synchronisée . . . . . . . . . . . 125 7.6 Tier dupliqué . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 7.7 Tier dupliqué avec aiguilleur en frontal . . . . . . . . . . . . . . 128 7.8 Multi-tiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 7.9 Exécution distribuée partiellement synchronisée . . . . . . . . . 129 7.10 Coordination modulaire désynchronisée . . . . . . . . . . . . . . 130 7.11 Exécution distribuée désynchronisée . . . . . . . . . . . . . . . . 131 7.12 Exécution centralisée . . . . . . . . . . . . . . . . . . . . . . . . . 135 7.13 Exécution distribuée totalement synchronisée . . . . . . . . . . . 135 7.14 Exécution centralisée: panne Apache et sous-charge Mysql . . . . 136 7.15 Exécution distribuée totalement synchronisée: panne Apache et sous-charge Mysql . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 7.16 Exécution distribuée partiellement synchronisée: panne Apache et sous-charge Mysql . . . . . . . . . . . . . . . . . . . . . . . . . 138 7.17 Exécution distribuée partiellement synchronisée: panne Apache et sous-charge Tomcat . . . . . . . . . . . . . . . . . . . . . . . . 138 7.18 Exécution distribuée partiellement synchronisée: panne Apache et sous-charge Tomcat, Mysql . . . . . . . . . . . . . . . . . . . . 139 157TABLE DES FIGURES 7.19 Exécution distribuée désynchronisée: panne Apache et sous-charge Mysql . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 7.20 Exécution distribuée désynchronisée: panne Apache et sous-charge Tomcat, Mysql . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 158Liste des tableaux 6.1 SCD: durée de la synthèse et la mémoire utilisée . . . . . . . . . 111 7.1 Durée moyenne de réaction . . . . . . . . . . . . . . . . . . . . . 134 159LISTE DES TABLEAUX 160161 Mod´elisation de la polydispersion des brouillards de gouttes sous l’effet des interactions two-way turbulentes pour l’injection directe `a haute pression dans les moteurs Oguz Emre To cite this version: Oguz Emre. Mod´elisation de la polydispersion des brouillards de gouttes sous l’effet des interactions two-way turbulentes pour l’injection directe `a haute pression dans les moteurs. Engineering Sciences. Ecole Centrale Paris, 2014. French. . HAL Id: tel-01089937 https://tel.archives-ouvertes.fr/tel-01089937 Submitted on 2 Dec 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.THESE ` pr´esent´ee par O˘guz EMRE pour l’obtention du GRADE de DOCTEUR Formation doctorale : Energ´etique, Math´ematiques Appliqu´ees Laboratoire d’accueil : Laboratoire d’Energ´etique Mol´eculaire et Macroscopique, Combustion (EM2C) du CNRS et de l’ECP Modeling of spray polydispersion with two-way turbulent interactions for high pressure direct injection in engines Soutenue le 21 Mars 2014 Jury : MM. Daniel E. Rapporteur Demoulin F.-X. Rapporteur Desjardins O. Rapporteur Lance M. Examinateur Som S. Examinateur Murrone A. Examinateur Fox R. O. Examinateur Massot M. Directeur de th`ese Mme. Laurent F. Co-Directrice de th`ese MM. Jay S. Encadrant IFPEN de Chaisemartin S. Encadrant IFPEN Ecole Centrale des Arts et Manufactures Grand Etablissement sous tutelle ´ du Minist`ere de l’Education Nationale ´ Grande Voie des Vignes 92295 Chˆatenay-Malabry Cedex T´el : 33 (1) 41 13 10 00 T´elex : 634 991 F EC PARIS Laboratoire d’Energ´etique ´ Mol´eculaire et Macroscopique, Combustion (E.M2.C.) UPR 288, CNRS et Ecole Centrale Paris T´el : 33 (1) 41 13 10 31 Fax : 33 (1) 47 02 80 35 2014-2014ECAP0029ABSTRACT The ability to simulate two-phase flows is of crucial importance for the prediction of internal combustion engine (ICE) performance and pollutant emissions. The direct injection of the liquid fuel inside the combustion chamber generates a cloud of polydisperse droplets, called spray, far downstream of the injector. From the modeling point of view, the emergence of Eulerian techniques for the spray description is considered promising by the scientific community. Moreover, the bottleneck issue for Eulerian methods of capturing the droplet size distribution with a reasonable computational cost, has been successfully tackled through the development of Eulerian Multi Size Moment (EMSM) method. Towards realistic ICE applications, the present PhD work addresses the modeling of two-way turbulent interactions between the polydisperse spray and its surrounding gas-phase through EMSM method. Following to the moving mesh formalism Arbitrary Lagrangian Eulerian (ALE), the source terms arising in the two-phase model have been treated separately from other contributions. The equation system is closed through the maximum entropy (ME) reconstruction technique originally introduced for EMSM. A new resolution strategy is developed in order to guarantee the numerical stability under very fast time scales related to mass, momentum and energy transfers, while preserving the realizability condition associated to the set of high order moments. From the academic point of view, both the accuracy and the stability have been deeply investigated under both constant and time dependent evaporation laws. All these developments have been integrated in the industrial software IFP-C3D dedicated to compressible reactive flows. In the context of 2-D injection simulations, very encouraging quantitative and qualitative results have been obtained as compared to the reference Lagrangian simulation of droplets. Moreover, simulations conducted under a typical 3-D configuration of a combustion chamber and realistic injection conditions have given rise to fruitful achievements. Within the framework of industrial turbulence modeling, a Reynolds averaged (RA) extension of the two-way coupling equations is derived, providing appropriate closures for turbulent correlations. The correct energy partitions inside the spray and turbulent interactions between phases have been demonstrated through homogeneous test-cases. The latter cases gave also some significant insights on underlying physics in ICE. This new RA approach is now ready for ICE application simulations. Keywords Evaporating spray, turbulent two-way coupling, polydispersity, Eulerian models, high order moment method, Reynolds averaging, ALE formalismRESUM ´ E´ La simulation des ´ecoulements diphasiques rencontr´es dans les moteurs `a combustion interne (MCI) est de grande importance pour la pr´ediction de la performance des moteurs et des ´emissions polluantes. L’injection directe du carburant liquide `a l’int´erieur de la chambre de combustion g´en`ere loin de l’injecteur un brouillard de gouttes polydisperses, commun´ement appel´e spray. Du point de vue de la mod´elisation, l’´emergence des m´ethodes Eul´eriennes pour la description du spray est consider´ee prometteuse par la communaut´e scientifique. De plus, la prise en compte de la distribution en taille des gouttes par les approches Eul´eriennes, de mani`ere peu coˆuteuse en temps de calcul, n’est plus consid´er´ee comme un verrou depuis le d´eveloppement de la m´ethode Eulerian Multi Size Moment (EMSM). Afin d’envisager la simulation de configurations r´ealistes de MCI, ce travail de th`ese propose de mod´eliser les interactions turbulentes two-way entre le spray polydisperse ´evaporant et la phase gazeuse environnante par la m´ethode EMSM. Dans le contexte du formalisme Arbitrary Lagrangian Eulerian (ALE) d´edi´ee au traitement du maillage mobile, les termes sources pr´esents dans le mod`ele diphasique sont trait´es s´epar´ement des autres contributions. Le syst`eme d’´equations est ferm´e `a l’aide d’une technique de reconstruction par maximisation d’entropie (ME), originellement introduite pour EMSM. Une nouvelle strat´egie de r´esolution a ´et´e d´evelopp´ee pour garantir la stabilit´e num´erique aux ´echelles de temps tr`es rapides introduites par les transferts de masse, quantit´e de mouvement et ´energie, tout en r´espectant la condition de r´ealisabilit´e associ´ee `a la pr´eservation de l’´espace des moments d’ordre ´elev´e. A l’aide des simulations acad´emiques, la stabilit´e et la pr´ecision de la m´ethode ont ´et´e ´etudi´ees aussi bien pour des lois d’´evaporation constantes que d´ependantes du temps. Tous ces d´eveloppements ont ´et´e int´egr´es dans le code industriel IFP-C3D d´edi´e aux ´ecoulements compressibles et r´eactifs. Dans le contexte de la simulation en 2-D de l’injection directe, les r´esultats se sont av´er´es tr`es encourageants comme en t´emoignent les comparaisons qualitatives et quantitatives de la m´ethode Eulerienne `a la simulation Lagrangienne de r´ef´erence des gouttes. De plus, les simulations en 3-D effectu´ees dans une configuration typique de chambre de combustion et des conditions d’injection r´ealistes ont donn´e lieu `a des r´esultats qualitativement tr`es satisfaisants. Afin de prendre en compte la mod´elisation de la turbulence, une extension moyenn´ee, au sens de Reynolds, des ´equations du mod`ele diphasique two-way est d´eriv´ee, un soin particulier ´etant apport´e aux fermetures des corr´elations turbulentes. La r´epartition de l’´energie dans le spray ainsi que les int´eractions turbulentes entre les phases ont ´et´e ´etudi´ees dans des cas tests homog`enes. Ces derniers donnent un aper¸cu int´eressant sur la physique sous-jacente dans les MCI. Cette nouvelle approche RANS diphasique est maintenant prˆete `a ˆetre employ´ee pour les simulations d’application de MCI. Mots Cl´es Spray ´evaporant, polydispersion, couplage two-way turbulent, mod`eles Eul´eriens, m´ethode de moments d’ordre ´elev´e, moyenne de Reynolds, formalisme ALEREMERCIEMENTS Cette th`ese est le produit d’une collaboration ´etroite entre IFP Energies nouvelles et le laboratoire EM2C de l’Ecole Centrale Paris. Je salue vivement tous ceux qui ont particip´e de pr`es ou de loin `a la r´ealisation de ce travail de longue haleine. Mes premiers remerciements s’adressent ´evidemment `a l’´equipe de mes encadrants, Marc Massot, Fr´ed´erique Laurent, St´ephane Jay et St´ephane de Chaisemartin, qui m’ont permis de faire cette th`ese dans une ambiance amicale et agr´eable, tout en m’assurant les meilleurs conditions pour r´eussir. Je salue mes directeurs de th`ese, Marc et Fr´ederique, qui m’ont donn´e gˆout au sujet. Leur implication dans l’ensemble de mes travaux de th`ese, leur excellence scientifique ainsi que leur disponibilit´e m’ont permis d’apprendre beaucoup. Je retiens ´egalement nos discussions chaleureuses lors de mes passages `a EM2C. Passons maintenant `a mes encadrants du cˆot´e de IFP Energies nouvelles. Je salue St´ephane Jay pour les ´echanges amicaux que j’ai eu avec lui au cours de ces trois ann´ees et ses efforts pr´ecieux sur la valorisation de mes travaux dans un contexte industriel. Je salue St´ephane de Chaisemartin pour ses aides lors de mes timides d´ebuts dans le sujet mais aussi pour son implication forte dans l’ensemble de mes travaux. Je le remercie ´egalement pour sa gentillesse et sa disponibilit´e. Je remercie vivement Eric Daniel, Fran¸cois-Xavier Demoulin et Olivier Desjardins d’avoir accept´e la lourde tˆache d’ˆetre les rapporteurs de mon travail de recherche, leurs avis sur ce travail permettra d’apporter des id´ees nouvelles pour les ´etudes futures. Je remercie Michel Lance de m’avoir fait l’honneur de pr´esider mon jury de th`ese et pour l’int´erˆet qu’il a manifest´e pour mon travail. Je remercie Rodney O. Fox, Sibendu Som et Angelo Murrone autant pour leurs remarques sur le manuscrit que les questions pertinentes pos´ees lors de la soutenance. Au del`a de mon encadrement officiel, Il est important que j’´evoque les personnes avec qui j’ai ´echang´e de pr`es. J’ai eu la chance de travailler avec Rodney O. Fox. Son expertise exceptionnelle sur l’aspect mod´elisation de la turbulence a ´enormement contribu´e `a la valorisation de ma th`ese. Il faudrait aussi que je remercie encore une fois Marc d’avoir organis´e cette collaboration fructueuse avec Rodney. Je salue Huy Tran qui a consacr´e une partie non n´egligeable de son temps pour m’initier aux aspects num´eriques de ma th`ese. Il est ´egalement intervenu de nombreuses fois lors des diff´erentes ´etapes de mes travaux. Je retiens nos sessions agr´eables avec Huy. Et enfin, je salue Anthony Velghe qui m’a donn´e de l’appui plusieurs fois pour surmonter les difficult´es li´ees au d´eveloppement du code IFP-C3D. J’adresse toute ma gratitude `a IFP Energies nouvelles et au laboratoire EM2C qui, par les moyens humains, mat´eriels et financiers m’ont apport´e un environnement de travail de qualit´e. Je remercie Antonio Pires da Cruz, chef du d´epartement R102 (Mod´elisation et Simulation Syst`eme) pour m’avoir accueilli dans son ´equipe. Je remercie Estelle Iacona, directrice du laboratoire EM2C, ainsi qu’Olivier Gicquel qui lui a succ´ed´e et m’a permis de finir mon travail de th`ese dans de bonnes conditions. Je remercie ´egalement l’ensemble des ing´enieurs et des chercheurs `a IFP Energies nouvelles et `a EM2C pour leurs accueils2 chaleureux. Je retiens les ´echanges avec Nicolas Gillet, Julien Bohbot et Rajesh Kumar que j’ai eu sur IFP-C3D. Je remercie ´egalement Damien Kah, Aymeric Vi´e et Adam Larat pour nos ´echanges sur les m´ethodes des moments et les m´ethodes num´eriques. Je salue les th´esardes et th´esards avec qui j’ai partag´e cette aventure. La liste est longue, j’en oublie certainement. Du cˆot´e de IFP Energies nouvelles, je remercie Damien et Sophie avec qui j’ai pass´e des moments agr´eables et amusants dans le mˆeme bureau. Il m’est ´egalement impossible d’oublier les moments de partage, notemment au tour de la machine `a caf´e, avec Stavros, Haifa, Betty, Benjamin, Nikola, Emre, Federico, Nicolas, Carlo, Anthony, St´ephane, Adam, Ayoub, Jan, Lama, Elias, Pablo, Karl. Je salue ´egalement les th´esards et les postdoc avec qui j’ai eu de tr`es bons souvenirs lors de mes passages au labortoire EM2C. Je pense en particulier Fran¸cois, Alaric, Macole, Gizem, Pedro, Wassim, Haoxue, Marien, Jose. Pour finir, je remercie de tout mon coeur mes parents de m’avoir soutenus durant ces longues ann´ees d’´etudes et en particulier ma compagne Marguerite pour son soutien sans faille et sa patience pour mes nombreux jours de travail. Elle a su me redonner de la force quand il m’en manquait.Contents 1 Introduction 12 1.1 General context . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 1.2 Numerical tools for ICE simulation . . . . . . . . . . . . . . . . . . . . . . 13 1.2.1 System simulation methods . . . . . . . . . . . . . . . . . . . . . . 13 1.2.2 CFD methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.3 Injection physics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.4 Injection flow description . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.5 Disperse phase simulation at a glance . . . . . . . . . . . . . . . . . . . . . 17 1.6 Eulerian polydisperse modeling at a glance . . . . . . . . . . . . . . . . . . 19 1.7 Objectives of this PhD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 1.8 Organization of the manuscript . . . . . . . . . . . . . . . . . . . . . . . . 22 2 Two-phase flow modeling of high pressure direct injection 26 2.1 Two-phase flow regimes in ICE . . . . . . . . . . . . . . . . . . . . . . . . 26 2.1.1 Physical mechanisms behind two-phase flow dynamics . . . . . . . . 26 2.1.2 Separate-phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.1.3 Disperse-phase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.1.3.1 Basic disperse-flow regimes . . . . . . . . . . . . . . . . . 28 2.1.3.2 Polydispersity . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.1.3.3 Particle Trajectory Crossings (PTC) . . . . . . . . . . . . 30 2.2 Modeling approaches for disperse-phases . . . . . . . . . . . . . . . . . . . 31 2.2.1 Direct numerical simulation at the particle level . . . . . . . . . . . 31 2.2.1.1 Sharp interface tracking method . . . . . . . . . . . . . . 31 2.2.1.2 Fluid DNS around solid bodies . . . . . . . . . . . . . . . 31 2.2.1.3 Concluding remarks on DNS methods for the disperse-phase 32 2.2.2 Discrete Particle Simulation (DPS) . . . . . . . . . . . . . . . . . . 32 2.2.3 Two-fluid reduced models . . . . . . . . . . . . . . . . . . . . . . . 33 2.2.4 Kinetic spray modeling . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.2.4.1 Fundamental assumption . . . . . . . . . . . . . . . . . . 34 2.2.4.2 Williams-Boltzmann Equation (WBE) . . . . . . . . . . . 35 2.2.4.3 Source term closure models . . . . . . . . . . . . . . . . . 36 2.3 Resolution strategies for the kinetic disperse phase modeling . . . . . . . . 37 2.3.1 Stochastic-Lagrangian resolution . . . . . . . . . . . . . . . . . . . 37 2.3.2 Shortcomings of Lagrangian methods . . . . . . . . . . . . . . . . . 38 2.3.3 Eulerian resolution . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 1CONTENTS 2 2.3.3.1 Derivation of the Eulerian model . . . . . . . . . . . . . . 39 2.3.3.2 Bottleneck issue for Kinetic based Eulerian methods . . . 40 2.3.4 Conclusion about the resolution technique adopted for ICE applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.4 Eulerian polykinetic modeling through kinetic based models . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.4.1 Modeling categories and hierarchies . . . . . . . . . . . . . . . . . . 42 2.4.2 Isotropic and Anisotropic Gaussian velocity closure for homo-PTC . 43 2.5 Turbulent disperse flow modeling through Eulerian kinetic based models . 44 2.5.1 Turbulence modeling at the kinetic level . . . . . . . . . . . . . . . 46 2.5.2 Turbulence modeling at macroscopic level . . . . . . . . . . . . . . 46 2.5.3 Concluding remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.6 Kinetic based Eulerian simulation of polydisperse droplets . . . . . . . . . 48 2.6.1 Semi-kinetic modeling under a monokinetic assumption . . . . . . . 48 2.6.2 Eulerian polydisperse approach with size sampling . . . . . . . . . . 49 2.6.3 Eulerian Multi-fluid model . . . . . . . . . . . . . . . . . . . . . . . 50 2.6.3.1 Original MF assumptions and the model derivation . . . . 50 2.6.3.2 MF with two size moments per section . . . . . . . . . . . 52 2.6.3.3 PTC with MF method . . . . . . . . . . . . . . . . . . . . 53 2.6.3.4 Conclusion on MF method . . . . . . . . . . . . . . . . . . 54 2.6.4 High order moment methods through quadrature approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 2.6.4.1 Quadrature Method Of Moments (QMOM) . . . . . . . . 54 2.6.4.2 Direct Quadrature Moment of Methods (DQMOM) . . . . 55 2.6.5 High order moment methods based on the Maximum entropy NDF reconstruction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 2.7 Eulerian Multi-Size Moment (EMSM) method . . . . . . . . . . . . . . . . 57 2.7.1 Derivation of EMSM . . . . . . . . . . . . . . . . . . . . . . . . . . 57 2.7.2 Moment space issue . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 2.7.3 NDF Reconstruction through an arbitrary number of moments . . . 59 2.7.3.1 Lower principal representation . . . . . . . . . . . . . . . . 60 2.7.3.2 NDF reconstruction through the Maximum Entropy formalism . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 2.7.3.3 Discussion on the EMSM closure . . . . . . . . . . . . . . 62 2.7.4 Numerical resolution issue . . . . . . . . . . . . . . . . . . . . . . . 62 2.7.4.1 Evaporation scheme . . . . . . . . . . . . . . . . . . . . . 62 2.7.4.2 Convection scheme . . . . . . . . . . . . . . . . . . . . . . 64 2.7.5 Academic realizations through EMSM method . . . . . . . . . . . . 64 2.7.6 Recent extension of EMSM method to capture hetero-PTC: CSVM method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 2.7.7 EMSM towards ICE applications . . . . . . . . . . . . . . . . . . . 66 3 Two-way coupling modeling between the polydisperse evaporation spray and the compressible gas 69 3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69CONTENTS 3 3.2 Derivation of the EMSM model . . . . . . . . . . . . . . . . . . . . . . . . 73 3.2.1 From the kinetic equation to a semi-kinetic system . . . . . . . . . 73 3.2.2 From the semi-kinetic system to the multi-size moment system . . . 76 3.2.3 Nondimensional formulation . . . . . . . . . . . . . . . . . . . . . . 79 3.2.4 Realizability of moments . . . . . . . . . . . . . . . . . . . . . . . . 80 3.3 Overview of the numerical method . . . . . . . . . . . . . . . . . . . . . . 83 3.3.1 Two-way coupling source terms . . . . . . . . . . . . . . . . . . . . 83 3.3.2 Arbitrary Lagrange Euler formalism . . . . . . . . . . . . . . . . . . 86 3.3.3 Elements of time-space discretization . . . . . . . . . . . . . . . . . 87 3.4 Verification of two claimed features for the new EMSM . . . . . . . . . . . 89 3.4.1 Source terms for two-way coupling . . . . . . . . . . . . . . . . . . 90 3.4.1.1 Drag force alone . . . . . . . . . . . . . . . . . . . . . . . 91 3.4.1.2 Drag force and evaporation . . . . . . . . . . . . . . . . . 91 3.4.2 Transport of moments in one-way coupling . . . . . . . . . . . . . . 93 3.4.2.1 Evaporating aerosol . . . . . . . . . . . . . . . . . . . . . 93 3.4.2.2 Non-evaporating spray . . . . . . . . . . . . . . . . . . . . 96 3.5 Implementation of EMSM in IFP-C3D . . . . . . . . . . . . . . . . . . . . 97 3.5.1 A glimpse of IFP-C3D . . . . . . . . . . . . . . . . . . . . . . . . . 97 3.5.2 Validation in one-way coupling configurations . . . . . . . . . . . . 98 3.5.2.1 Scheme robustness through mesh movement . . . . . . . . 98 3.5.2.2 Spray dynamics through evaporation and drag, comparison with MUSES3D . . . . . . . . . . . . . . . . . . . . . . . . . . 100 3.6 Feasibility of injection computations with IFP-C3D . . . . . . . . . . . . . 101 3.6.1 Description of the test case . . . . . . . . . . . . . . . . . . . . . . . 103 3.6.2 Initialization strategy of both Eulerian and Lagrangian computations105 3.6.3 Discussion on injection simulations . . . . . . . . . . . . . . . . . . 105 3.6.4 Injection of low inertia droplets . . . . . . . . . . . . . . . . . . . . 106 3.6.5 Injection of high inertia droplets . . . . . . . . . . . . . . . . . . . . 107 3.6.6 Concluding remarks on injection simulations . . . . . . . . . . . . . 109 3.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 4 Numerical analysis of a two-way coupled Eulerian high order moment method for the simulation of polydisperse evaporating sprays 113 4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 4.2 Eulerian polydisperse spray modeling in the gas . . . . . . . . . . . . . . . 115 4.2.1 Eulerian Multi-Size Moment (EMSM) method . . . . . . . . . . . . 115 4.2.1.1 Kinetic description of the spray inside the gas . . . . . . . 115 4.2.1.2 Non-isothermal EMSM model . . . . . . . . . . . . . . . . 117 4.2.2 Two-way coupling through EMSM method . . . . . . . . . . . . . . 119 4.2.2.1 Arbitrary Lagrangian and Eulerian (ALE) formalism . . . 119 4.2.2.2 Source terms reconstruction and global conservation of the two-phase system in phase A . . . . . . . . . . . . . . . . 120 4.2.2.3 Stiffness issue of the two-phase flow . . . . . . . . . . . . . 122 4.3 Numerical strategy in phase A of ALE . . . . . . . . . . . . . . . . . . . . 122CONTENTS 4 4.3.1 Time integration strategy in case of a constant evaporation law . . 123 4.3.1.1 Resolution of system on size moments . . . . . . . . . . . 123 4.3.1.2 Global strategy . . . . . . . . . . . . . . . . . . . . . . . . 125 4.3.2 Time integration strategy in case of a time-dependent evaporation law . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 4.4 Homogeneous test cases . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 4.4.1 0-D test case of evaporating polydisperse spray under the d-square constant evaporation law . . . . . . . . . . . . . . . . . . . . . . . . 129 4.4.2 Variable (realistic) d-square law of evaporation . . . . . . . . . . . . 132 4.4.3 Order of convergence study of the numerical scheme . . . . . . . . . 134 4.5 2D Injection simulations in IFP-C3D code . . . . . . . . . . . . . . . . . . 136 4.5.1 A short description of IFP-C3D software . . . . . . . . . . . . . . . 137 4.5.2 Discussion on injection simulations . . . . . . . . . . . . . . . . . . 138 4.5.2.1 Injection of low inertia droplets . . . . . . . . . . . . . . . 138 4.5.2.2 Injection of high inertia droplets . . . . . . . . . . . . . . 138 4.6 Conclusion and perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . 140 5 Implementation of the two-way coupled EMSM algorithm in IFP-C3D code for 3-D simulations 143 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 5.2 Implementation of the two-way coupled EMSM method . . . . . . . . . . . 144 5.2.1 Data structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 5.2.2 Initialization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 5.2.3 Numerical Scheme in phase A . . . . . . . . . . . . . . . . . . . . . 146 5.3 High pressure injection conditions: 3D configuration . . . . . . . . . . . . . 150 6 Turbulence modeling of polydisperse interactions between the spray and the gas through the Eulerian high order moment method 154 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 6.2 Modeling approach . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 6.3 Turbulence models for spray and gas phases . . . . . . . . . . . . . . . . . 160 6.3.1 Reynolds-average equations for the spray . . . . . . . . . . . . . . . 160 6.3.1.1 RA moment equations . . . . . . . . . . . . . . . . . . . . 160 6.3.1.2 Spray-phase mean momentum equation . . . . . . . . . . 161 6.3.1.3 Spray-phase granular temperature equation . . . . . . . . 163 6.3.1.4 Spray-phase total granular energy equation . . . . . . . . 164 6.3.1.5 Spray-phase mean kinetic energy . . . . . . . . . . . . . . 165 6.3.1.6 Spray-phase fluctuating energy . . . . . . . . . . . . . . . 165 6.3.1.7 Spray-phase turbulent kinetic energy . . . . . . . . . . . . 165 6.3.1.8 Spray-phase turbulent kinetic energy dissipation . . . . . . 166 6.3.2 Reynolds-average equations for gas phase . . . . . . . . . . . . . . . 166 6.3.2.1 Gas-phase continuity equation . . . . . . . . . . . . . . . . 167 6.3.2.2 Gas-phase momentum equation . . . . . . . . . . . . . . . 167 6.3.2.3 Gas-phase total energy equation . . . . . . . . . . . . . . . 168 6.3.2.4 Gas-phase internal energy equation . . . . . . . . . . . . . 168CONTENTS 5 6.3.2.5 Gas-phase mean kinetic energy equation . . . . . . . . . . 170 6.3.2.6 Gas-phase turbulent kinetic energy equation . . . . . . . . 170 6.3.2.7 Gas-phase turbulent kinetic energy dissipation equation . 171 6.3.3 Final remarks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 6.4 Homogeneous turbulence of two-phase polydisperse flows . . . . . . . . . . 171 6.4.1 Dimensionless equations for homogeneous turbulent flow . . . . . . 172 6.4.2 Example results for fluctuating energy partition with decaying turbulence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174 6.4.3 Example results for typical ICE flow conditions . . . . . . . . . . . 177 6.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182 7 General conclusions and perspectives 184 Appendices 202 A 203 A.1 Specific aspects of time-space discretization . . . . . . . . . . . . . . . . . . 204 A.1.1 Phase A in the one-way coupling framework . . . . . . . . . . . . . 204 A.1.2 Phase B . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205 A.1.3 Phase C . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 206 B 209 B.1 Reynolds and Phase averaging . . . . . . . . . . . . . . . . . . . . . . . . . 210 B.1.1 Reynolds average . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 B.1.2 Phase average . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 B.2 Full RA equations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211 B.2.1 RA moment equations . . . . . . . . . . . . . . . . . . . . . . . . . 211 B.2.2 RA spray momentum equation . . . . . . . . . . . . . . . . . . . . . 211 B.2.3 RA granular temperature equation . . . . . . . . . . . . . . . . . . 212 B.2.4 RA total granular energy equation . . . . . . . . . . . . . . . . . . 212 B.2.5 RA spray phase mean kinetic energy . . . . . . . . . . . . . . . . . 213 B.2.6 RA gas mass equation . . . . . . . . . . . . . . . . . . . . . . . . . 213 B.2.7 PA gas phase momentum equation . . . . . . . . . . . . . . . . . . 213 B.2.8 RA gas phase internal energy equation . . . . . . . . . . . . . . . . 214 B.2.9 RA gas phase mean kinetic energy equation . . . . . . . . . . . . . 215List of Figures 1.1 LES simulations of a multi-cycle engine XU10-PSA (left, [185]) and of a multicylinder spark ignition engine (right, [91] . . . . . . . . . . . . . . . . 14 1.2 Experimental view of a direct liquid injection with various two-phase flow topologies [49]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.3 DNS simulation of a liquid jet atomization through the hybrid VOF/Level Set sharp interface approach [126]. . . . . . . . . . . . . . . . . . . . . . . 17 1.4 Mass density field comparison between the Eulerian Multi-Fluid approach (left) and Lagrangian (right) description of a polydisperse particle population in a 3-D simulation context [66]. . . . . . . . . . . . . . . . . . . . . . 19 2.1 Illustration of separate and disperse phases in the injection flow [51] . . . . 27 2.2 Disperse-phase modeling hierarchy characterized through the volume fraction (horizontal axis) and the ratio of the droplet characteristic length or time scale over the gaseous characteristic turbulent length or time scale (vertical axis) [7]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.3 Eulerian turbulence modeling through Reynolds-averaging or LES methods starting from the kinetic level of description. (i) denotes the turbulence modeling at the kinetic level, whereas (ii) represents turbulence modeling at macroscopic level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.4 Size distribution with size sampling approach . . . . . . . . . . . . . . . . . 49 2.5 Size distribution with MF method . . . . . . . . . . . . . . . . . . . . . . . 50 2.6 Reconstruction of the size distribution through entropy maximisation (red dashed line), the real size distribution (black solid line). . . . . . . . . . . . 56 2.7 Total mass density of the polydsiperse evaporating spray. (Top) Results at time t = 15. (Bottom) Results at time t = 20. (Left) EMSM model. (Right) Multi-fluid model with ten sections.) . . . . . . . . . . . . . . . . . 65 2.8 Comparison of Lagrangian and Eulerian results for a polydisperse flow made of droplets of sauter mean radius 20µm within the context of oneway coupling through EMSM. In each figure, the Lagrangian particles are displayed on the left side on the domain, and the Eulerian field on the right side. Left: droplet number m0; Right: particle velocity. (PhD of Damien Kah [83]). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 6LIST OF FIGURES 7 3.1 Evolution of spray and gas velocities according to the SDIRK method (black dashed line) and the exact solution (solid red line). The time-step ∆t is taken to be 10−1 s (left) and 10−3 s (right). . . . . . . . . . . . . . . . 92 3.2 Evolution of various spray and gas properties. Results from analytical (solid red lines) and numerical (dashed black lines) solutions. Cases for ∆t = 0.06 s (left column), for ∆t = 10−3 s (right column). Top row: moment of order m3/2; second row: moment of order m1/2; third row: gas mass density ρg; bottom row: velocities ud and ug. . . . . . . . . . . . . . . . . . . . . . 94 3.3 Left: Initial data for the moments m0 (blue line with stars), m1 (red line with triangles), m2 (green line with squares), m3 (purple line with circles). Right: Solution of the Riemann problem at t = 0.1 for non-evaporating particles. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 3.4 Left: Solution of the Riemann problem at t = 0.1 for evaporating particles, containing the exact ρg (solid black line), the computed ρg (dashed brown line), the computed m0 (blue curve with circles) and m1 (red curve with triangles). Right: Close-up on the interfacial area and comparison between various solutions for m0, namely, second-order solution without mesh movement (solid blue line), second-order solution with mesh movement (dashed red line), first-order solution without mesh movement (dotted-dashed purple line), first-order solution with mesh movement (green line with squares). 96 3.5 Evolution of a spray in a discontinuous velocity field. Left: Initial data for the moments and the velocity. Right: Analytical solutions (markers) and computed solutions (lines) at time t = 0.225 in the first four moments, i.e., m0 (blue), m1 (red), m2 (green), m3 (purple). . . . . . . . . . . . . . . . . 97 3.6 Piston movement during the computation. The computation starts at cad = −180◦ and ends at cad = 180◦ . . . . . . . . . . . . . . . . . . . . . . 99 3.7 Left: Results in the case of an aerosol, for m0 (solid black line) and m1 (dashed red line). Results for cad = −100◦ , −30◦ , 50◦ , 180◦ . Right: Results in the case of a spray, for m0 (solid black line) and m1 (dashed red line). Results for cad = −100◦ , −30◦ , 50◦ , 180◦ . . . . . . . . . . . . . . . . . . . . 100 3.8 Left: Taylor-Green configuration for the gaseous flow. Right: initial condition for the moment m0 of the spray. . . . . . . . . . . . . . . . . . . . . 102 3.9 Results for m0 at time t = 1. Left: with IFP-C3D. Right: with MUSES3D. 102 3.10 Results for m0 at time t = 1.4. Left: with IFP-C3D. Right: with MUSES3D.103 3.11 Results for m0 at time t = 2. Left: with IFP-C3D. Right: with MUSES3D. 103 3.12 Illustration of Rosin-Rammler distributions actually used in the computations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 3.13 Illustration of the 2-D plane geometry and boundary conditions . . . . . . 106 3.14 Results for a droplet population of rSMR = 5µm at time 1.4 · 10−2 s. Left: Spray without evaporation. Right: Spray with constant evaporation velocity. Spray volume fraction (top row), gas velocity along the y-axis (middle row), spray velocity along the y-axis (bottom row). In each panel, Lagrangian spray is displayed on the left side whereas Eulerian on the right side. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107LIST OF FIGURES 8 3.15 Evaporated fuel mass fraction inside the gas-phase for a droplet population of rSMR = 5µm under a constant evaporation velocity at time 1.4·10−2 s. In the panel, Lagrangian spray is displayed on the left side whereas Eulerian is displayed on the right side. . . . . . . . . . . . . . . . . . . . . . . . . . 108 3.16 Results from 1-D plots, taken along the x-direction which center point on y-axis is 12 diameter far from the injector, in case of a droplet population of rSMR = 5µm. Results from Eulerian (solid black lines) and Lagrangian (dashed red lines) solutions. Left: Spray volume fraction for droplets without evaporation. Right: Evaporated fuel mass fraction for evaporating droplets with a constant evaporation velocity. . . . . . . . . . . . . . . . . 108 3.17 Results from 1-D plots, taken along the y-axis see Figure 3.13, in case of a droplet population of rSMR = 5µm. Results from Eulerian (solid black lines) and Lagrangian (dashed red lines) solutions. Left: Spray volume fraction for droplets without evaporation. Right: Evaporated fuel mass fraction for evaporating droplets with a constant evaporation velocity. . . . 109 3.18 Results for a droplet population of rSMR = 20µm at time 1.4 · 10−2 s. Left: Spray without evaporation. Right: Spray with with constant evaporation velocity. Spray volume fraction (top row), gas velocity field along the yaxis (middle row), spray velocity along the y-axis (bottom row). In each panel, Lagrangian spray is displayed on the left side whereas Eulerian is displayed on the right side. . . . . . . . . . . . . . . . . . . . . . . . . . . . 110 3.19 Evaporated fuel mass fraction inside the gas-phase for a droplet population of rSMR = 20µm under a constant evaporation velocity at time 1.4 · 10−2 s. In the panel, Lagrangian spray is displayed on the left side whereas Eulerian is displayed on the right side. . . . . . . . . . . . . . . . . . . . . . . . . . 111 3.20 The results from 1-D plots, taken along the x-direction which center point on Y axis is 12 diameter far from the injector, in case of a droplet population of rSMR = 20µm. Results from Eulerian (solid black lines) and Lagrangian (dashed red lines) solutions. Left: Spray volume fraction for droplets without evaporation. Right: Evaporated fuel mass fraction for evaporating droplets with a constant evaporation velocity. . . . . . . . . . 111 3.21 Results from 1-D plots, taken along the y-axis see Figure 3.13, in the case of a droplet population of rSMR = 20µm. Results from Eulerian (solid black lines) and Lagrangian (dashed red lines) solutions. Left: Spray volume fraction for droplets without evaporation. Right: Evaporated fuel mass fraction for evaporating droplets with a constant evaporation velocity. . . . 112 4.1 The spray mean radius evolution through time, given for cases of constant evaporation (solid line) and time-dependent evaporation (dashed line) . . . 129 4.2 Evolution of the characteristic evaporation time τv (upper graph) and the characteristic dynamic time scale τd (lower graph) based on the spray mean size. Evolution under a time-dependent evaporation law (dashed line) and under a the dynamic time τd (solid line). . . . . . . . . . . . . . . . . . . . 130LIST OF FIGURES 9 4.3 Spray density concentration (moment of order 3/2) evolution under the constant evaporation. Solutions are given under the time steps ∆t = 10−6 s (Solid line) and ∆t = 2.4910−3 s (empty squares). . . . . . . . . . . . . . . 131 4.4 Gas phase thermodynamics and vapor mass fraction against time,under the constant evaporation. Gas temperature Tg (top left), gas pressure Pg (top right), vapor mass fraction YC7H16 (down left) and gas mass density (down right). Results under ∆t = 2.49 10−3 s are plotted by empty squares whereas solid lines correspond to the solution with ∆t = 10−6 s. . . . . . . . . . . . 131 4.5 Velocity evolution under the constant evaporation. Gas velocity when ∆t = 10−6 s (solid line), ∆t = 10−5 s (empty circles) and spray velocity when ∆t = 10−6 (dashed line), ∆t = 10−5 s (empty squares). . . . . . . . . . . . 132 4.6 Spray density concentration (moment of order 3/2) evolution under the time dependent evaporation. Solutions are given under the time steps ∆t = 10−6 s (Solid line) and ∆t = 2.4910−3 s (empty squares). . . . . . . . . . . . 133 4.7 Gas phase thermodynamics and vapor mass fraction against time,under the time dependent evaporation. Gas temperature Tg (top left), gas pressure Pg (top right), vapor mass fraction YC7H16 (down left) and gas mass density (down right). Results under ∆t = 2.49 10−3 s are plotted by empty squares whereas solid lines correspond to the solution with ∆t = 10−6 s. . . . . . . 133 4.8 Velocity evolution under the time dependent evaporation. Gas velocity when ∆t = 10−6 s (solid line), ∆t = 10−5 s (empty circles) and spray velocity when ∆t = 10−6 s (dashed line), ∆t = 10−5 s (empty squares). . . . . . . . 134 4.9 (left) Rosin Rammler distribution (dashed line) and its reconstruction by entropy maximization (solid line); (right) initial distribution given by (4.39) “close” to the Rosin Rammler distribution . . . . . . . . . . . . . . . . . . 134 4.10 Logarithm of the error on the moments m0, m1, m2, m3 and m3/2 normalized by the initial value of m0 as a function of the time step ∆t. . . . . . . 135 4.11 Error studies for the two-way coupling model: logarithm of the error on the moment m3/2, the spray velocity ud, the gas velocity ug as a function of the time step ∆t. Results from a constant d-square evaporation law given on the left graph, whereas from a time dependent d-square evaporation law by the right graph. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 4.12 Results for a droplet population of SMR = 5µm at time 1.4 · 10−2 s. Left: spray-phase velocities. Right: gas-phase velocities. velocity component along x-axis (top row), velocity component along the y-axis (bottom row). In each panel, Lagrangian spray is displayed on the left side whereas Eulerian on the right side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 4.13 Results for a droplet population of SMR = 5µm at time 1.4 · 10−2 s. Left: spray-phase volume fraction. Right:fuel vapor mass fraction.In each panel, Lagrangian spray is displayed on the left side whereas Eulerian on the right side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 4.14 The gas-phase temperature field for a droplet population of SMR = 5µm at time 1.4 · 10−2 s. In each panel, Lagrangian spray is displayed on the left side whereas Eulerian on the right side . . . . . . . . . . . . . . . . . . . . 140LIST OF FIGURES 10 4.15 Results for a droplet population of SMR = 20µm at time 1.4 · 10−2 s. Left: spray-phase velocities. Right: gas-phase velocities. Velocity component along x-axis (top row), velocity component along the y-axis (bottom row). In each panel, Lagrangian spray is displayed on the left side whereas Eulerian on the right side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 4.16 Results for a droplet population of SMR = 20µm at time 1.4 · 10−2 s. Left: spray-phase volume fraction. Right:fuel vapor mass fraction.In each panel, Lagrangian spray is displayed on the left side whereas Eulerian on the right side . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 4.17 The gas-phase temperature field for a droplet population of SMR = 20µm at time 1.4 · 10−2 s. In each panel, Lagrangian spray is displayed on the left side whereas Eulerian on the right side . . . . . . . . . . . . . . . . . . . . 142 5.1 Injector hole geometry and chamber. One can notice the refined boundary condition of the injection device revealing the multiscale nature of the addressed case. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150 5.2 Eulerian volume fraction of liquid computed with the EMSM approach. . . 151 5.3 Gaseous fuel mass fraction evaporated with the EMSM approach. . . . . . 151 5.4 Gaseous turbulent kinetic energy related to high jet velocities . . . . . . . 152 5.5 Radial profile of liquid volume fraction (left) and evaporated fuel mass fraction (right) at different axial positions : z=4Dinj , z=16Dinj , z=32Dinj . 152 5.6 Axial profile of liquid volume fraction (left) and evaporated fuel mass fraction (right) at different consecutive instants between t=0 (start of injection) and t=2.4 ms. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 5.7 Liquid jet penetration with time for different initial conditions on charge : low charge (Φv = 10−4 ) - moderate charge (Φv = 10−2 ) with two rSMR values : 5µm and 20 µm. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153 6.1 Dynamics of the dimensionless non-evaporating spray-phase energy components with frozen gas-phase turbulence (one-way coupling). Curves correspond to three initial conditions: (i) solid lines, (ii) dashed lines, and (iii) stars. Curves corresponding to the fluctuating energy κ, the spray-phase kinetic energy kd and the granular temperature Θ are respectively denoted through circle, square and triangle symbols. . . . . . . . . . . . . . . . . . 175 6.2 Dynamics of the normalized non-evaporating spray-phase energy components with two-way coupling. Curves correspond to three initial conditions: (i) solid black lines, (ii) dashed blue lines, (iii) red dots. Curves corresponding to the fluctuating energy κ, the spray-phase kinetic energy kd and the granular temperature Θ are respectively denoted through circle, square and triangle symbols. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176 6.3 Dynamics of the gas-phase energy components for non-evaporating droplets with two-way coupling. Curves correspond to gas-phase TKE (top) and gas-phase internal energy (bottom) for three initial conditions: (i) solid black lines, (ii) dashed blue lines, (iii) red dots. . . . . . . . . . . . . . . . 176LIST OF FIGURES 11 6.4 Gas-phase density evolution (top) and spray density concentration (bottom) with polydisperse evaporating droplets. . . . . . . . . . . . . . . . . . 177 6.5 Dynamics of the normalized evaporating spray-phase energy components. Curves correspond to three initial conditions: (i) solid black lines, (ii) dashed blue lines, (iii) red dots. Curves corresponding to the fluctuating energy κ, the spray-phase kinetic energy kd and the granular temperature Θ are respectively denoted through circle, square and triangle symbols. . . 178 6.6 Dynamics of the gas-phase energy components with evaporating droplets. Curves correspond to gas-phase TKE (top) and gas-phase internal energy (bottom) for three initial conditions: (i) solid black lines, (ii) dashed blue lines, (iii) red dots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178 6.7 Mean velocities versus time (top) for cases (ii) (solid black lines) and (iii) (dashed red lines). Spray density concentration m3/2 versus time for case (iii) (dashed red lines). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 6.8 Turbulence Reynolds number Re versus time. Cases (i) solid black lines, (ii) dashed red lines, and (iii) blue dots. . . . . . . . . . . . . . . . . . . . . 181 6.9 Dimensionless gas-phase TKE kg (top) and gas-phase internal energy eg (bottom) versus time. Cases (i) solid black lines, (ii) dashed red lines, and (iii) blue dots. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 6.10 Normalized total fluctuating energy κ (top, circle), spray-phase TKE kd (top, square), granular temperature Θ (top, triangle) and spray-phase TKE dissipation εd (bottom) versus time. Cases (ii) (solid black lines) and (iii) (dashed red lines). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182Chapter 1 Introduction 1.1 General context In recent years, the global demand for energy has significantly increased with the rising world population and emerging industrial sectors. Yet the fossil fuel energy supplies are increasingly scarce and require advanced engineering techniques for their exploitation, prompting economical challenges. Moreover, the high amount of greenhouse gases and pollutant emissions continuously released in the atmosphere require to be limited in order to avoid the global warming and the irremediable degradation of the air quality. In that context, the road vehicle sector represents one of the main targets to deal with since the conventional Internal Combustion Engine (ICE), highly consuming fossil fuels, is the leading responsible for both CO2 emissions and pollutant formations. In the present decade where fossil fuels will remain to be major energy sources for vehicles, many researchers and engineers from both public and private institutions collaborate to create innovative solutions for cleaner and energy efficient engines. The high pressure direct injection system is actually widely recognized as efficient. Its main role is to inject the liquid fuel under very high pressure, up to 2000 bars, and release the required quantity of the fuel in the combustion chamber thanks to the very fast opening-closing time of the injector valve. This system provides a great cycle efficiency, controlling the amount of fuel injected in the combustion chamber. However, a good control of the combustion regime is required in order not to generate high quantity of pollutant emissions among which soot particles are an important preoccupation. A deep understanding of flow physics underlying the combustion chamber is therefore of primary importance in order to develop new engine configurations. There are many possible methods to achieve this goal. Experimental setups are essential to test the final version of a new engine concept before its industrialization phase. They also provide reliable data for testing new physical models. However, they are not profitable since it becomes costly to conduct many realizations. Moreover, they can not give enough information when the characteristic time scales of interesting phenomena, such as the injection physics, are too fast to capture. Given this limited number of experimental test benches, the numerical simulation techniques are considered to be complementary tools. Yet the fact that there are several numerical techniques which are classified according to the level of accuracy they provide, a brief review is required to highlight their interesting points and limitations. 121.2 Numerical tools for ICE simulation 13 1.2 Numerical tools for ICE simulation It is appropriate to classify these simulation techniques into two main categories: System simulation and 3D Computational Fluid Dynamics (CFD) simulation. 1.2.1 System simulation methods Based on 0D/1D models, system simulation tools have experienced rapid improvements in the past ten years and today is used at all stages of the engine development from concept design to powertrain control development and calibration. Contrary to 3D CFD approaches, these tools provide only mean values of global variables such as temperature, pressure, injection velocity, etc. 0-dimensional models are essentially based on empirical or phenomenological approaches which are mainly developed to reach very low computational times (real-time) as a target. Nevertheless, such models are often characterized by very limited prediction levels. Although in recent years some fruitful developments of refined physical models, based on the reduction of 3D approaches over a given domain volume as for example the combustion chamber have been conducted in [15, 48, 90, 122], they do not provide the resolution of complex 3D flows in ICE. 1.2.2 CFD methods CFD allows a better understanding of physical phenomena taking place in combustion chambers such as spray development, heat transfer, combustion, pollutant formation, etc. All these phenomena are highly influenced by the high unsteady turbulent flow motion. The turbulent flow field is defined by all characteristic length scales and kinetic energies of the eddies describing the flow. Kolmogorov (1941) proposed a continuous distribution of the energy of turbulent eddies as function of their wave number. In such a representation, the flow energies supposed to be transfered from largest eddies to smaller ones through division processes without dissipation. The range of scales lies between the integral length scale (associated to the domain geometry) and the Kolmogorov scale from which the turbulent energy is dissipated as heat through the influence of molecular viscosity. During the last few years, numerical description of turbulent processes has been the subject of several investigations in order to be able to solve a given problem considering available computational resources. In that context, there are three different approaches used to simulate flows inside ICE: • DNS (Direct Numerical Simulation): This method is based on the direct resolution of transport equations for the fluid flow without any complimentary models or approximations. Within the validation limit of Navier Stokes equations, it provides a detailed and high quality study of physical phenomena. This implies however to resolve all turbulent scales with the help of mesh sizes of the order of the Kolmogorov scale or smaller. The latter means that an important number of grid points is required. Moreover, DNS needs highly precise numerical discretization schemes to limit the necessary grid. All these constraints make DNS a very expensive tool, prohibited for industrial applications. Let us precise that the DNS is widely used despite its CPU costs since it is the most accurate CFD tool. It permits rigorous1.2 Numerical tools for ICE simulation 14 physical analysis [138, 134, 69], difficult to conduct experimentally. Moreover it is widely used for the development of physical models aimed to be implemented in industrial CFD softwares. • LES (Large Eddy Simulation): In this case, not all the flow scales are resolved. The main idea is to model energy dissipating flow scales which are small and isotropic but resolve all bigger and energy containing scales which are highly anisotropic and depending on the 3D geometry. This simulation technique requires coarser mesh sizes than used in DNS and thus provides results using less CPU time. Yet, until recent years its computational time was considered to be a bottleneck problem for complex 3D studies. After recent advances on parallel computing and supercomputers, it is nowadays considered as an emerging tool for industrial applications, thanks to its ability to capture cycle to cycle variations, rotational motion of the flow and the anisotropy under reasonable computational time [188]. Within the context of ICE applications, some fruitful recent works have been conducted such as in [108, 178] and displayed in Figure 1.1. Figure 1.1: LES simulations of a multi-cycle engine XU10-PSA (left, [185]) and of a multicylinder spark ignition engine (right, [91] • RANS (Reynolds Averaged Navier Stokes equations): This approach is conceptually different than the last two numerical techniques. While only one realization of the flow is simulated through LES and DNS, RANS focuses on the ensemble average of the flow realizations. This accounts for dealing with Reynolds equations instead of Navier Stokes equations and ensemble averaged mean flow quantities. Within the well known k-ε approach, all turbulence scales are modeled through the concept of the mean turbulent kinetic energy and the turbulent energy dissipation rate [141]. Yet more accurate RANS models for complex flow simulations are also available for industrial simulation purposes [50]. The main drawback of RANS as compared to1.3 Injection physics 15 DNS and LES is its inability to capture instantaneous flow variations and its lack of accuracy for highly anisotropic flows. Yet RANS is widely used and preferred to LES for industrial applications. Because its computational time is generally very low and does not require high order numerical algorithms for the treatment of the spatial discretization, which is also often difficult to implement in industrial CFD softwares. Conscious of the necessity for high accuracy CFD tools for the future of car engine production, IFP Energies nouvelles has been leading a wide research and engineering activity on ICE modeling through its industrial codes, AVBP (LES) and IFP-C3D (RANS), [12] in order to provide innovative solutions for ICE and equipment producers. Until now, a high maturity has been reached in the simulation of mono-phase gaseous combustion or turbulent gaseous flow fields. Yet taking into account two-phase flow effects has become a critical aspect for 3D ICE modeling. In fact, the two-phase flow coming from the high pressure direct injection of liquid fuel significantly influence flame structure and pollutant production. Figure 1.2: Experimental view of a direct liquid injection with various two-phase flow topologies [49]. 1.3 Injection physics The injection flow is not straightforward to be described due to complex phenomena, which require a modeling effort to take into account coupled interactions inside the liquid phase and between the liquid and the gas phases. A broad range of two-phase flow structures are illustrated in Figure 1.2. The phenomenon of cavitation is the main factor determining the two-phase flow regime encountered inside the injector. It occurs when the absolute liquid pressure drop down to the vapor saturation pressure which depends on the liquid temperature. Therefore, the formation of vapor bubbles and pockets is observed inside the carrier liquid phase [100]. The formation of cavitation inside the injector depends on the geometry of the spray tip and impacts the flow characteristics inside the nozzle. The cavitation is also1.4 Injection flow description 16 one of the underlying physics impacting the liquid desintegration at downstream of the injector. The bulk fuel liquid jet coming out from the nozzle of the injector is disintegrated into small droplets by internal and external forces as a result of the interaction between the liquid and surrounding medium. The disintegration or breakup process starts right at the exit of the nozzle when the disruptive forces, caused by the presence of the gas phase in the combustion chamber and cavitating pockets already created inside the nozzle and mixed to the liquid, exceed the liquid surface tension and viscous forces. The competition between cohesive and disruptive forces will set up on the liquid surface, leading to oscillations and perturbations in the liquid. Under favorable conditions, the oscillations may be amplified to such an extent that the bulk liquid breaks up into ligaments, clusters and small drops. This initial breakup process is often referred to as primary breakup or primary atomization, happening right at the exit of the injector nozzle. Afterwards, the gas phase keeps interacting with the resulting discontinuous liquid phase. Momentum transfers occur through interactions between the spray and the gas turbulent eddies. These interactions may lead to secondary break-up or secondary atomization of the liquid ligaments and clusters into smaller spherical droplet of various in sizes, This cloud of droplets is dispersed in the combustion chamber while exchanging momentum and energy with the surrounding gas-phase. Due to ambiant thermodynamic conditions and twoway coupling interactions between phases, these droplets evaporate while transferring their mass to the gas-phase before disappearing completely. The remaining fuel species vapor pockets pilot the combustion temperature and the equivalence ratio, defining the combustion characteristics. 1.4 Injection flow description In order to accurately describe injection physics, one can consider a resolution of the entire flow, using DNS techniques. But the cost of these methods is the main stumbling block for their use in industrial framework [100, 23, 22, 98] (Figure 1.3 illustrates a typical DNS two-phase flow simulation). Therefore, in order to still enable a resolution of the problem, reduced order models are derived despite the loose of information on the details of the flow. In that context, some works have been addressed to the complete injection modeling dealing with all types of two-phase flow structures. The technique so-called ELSA (Eulerian-Lagrangian Spray Atomization) [33] has been proven to be a promising option. Through the RANS formalism, some industrial simulations under the diesel engine conditions for ICEs have been conducted [101]. Moreover, ELSA has been extended to LES models, promising for the simulation of full injection process, although they are still under a development stage [24, 25]. On the other hand, some other studies focus on a particular zone in the injection flow. In that case, regarding physical phenomena driven by different characteristics of the flow, different types of modeling best suited for each zone are used. In the primary and secondary break-up zones, the liquid phase being either continuous or involves complex interfaces between phases, it is necessary to adopt a separate-phase flow description. On the other hand, far downstream of the injector, a disperse-phase flow description is more1.5 Disperse phase simulation at a glance 17 appropriate. In the latter case, the liquid phase is assumed to be composed of spherical droplets, which are various in size. This leads to the notion of polydispersity. The project of IFP Energies nouvelles involves the simulation of the fuel spray injection in the entire combustion chamber, from the flow in the nozzle injector to the area downstream of the injector. This simulation requires therefore the use of models correctly describing the topology of the two-phase flow in different zones of the injection. Recent works have adress the simulation of separate-phases at the dense zones of the injection [182, 186, 8, 104, 105]. Yet, the present work aims at contributing to the modeling of polydisperse flow regime. Therefore, it is interesting to briefly carry out modeling and resolution strategies for the disperse phase simulations. Figure 1.3: DNS simulation of a liquid jet atomization through the hybrid VOF/Level Set sharp interface approach [126]. 1.5 Disperse phase simulation at a glance In the literature, one can distinguish three different disperse-phase modeling categories: Microscale models, macroscale models derived from averaging of Navier Stokes equations and kinetic based models. • Microscale models: There are basically three categories of microscale models, presented hereafter from the most to the least detailed one. The first one is the sharp interface methods (VOF, Level Set), which directly solve Navier Stokes equations [202, 70, 17, 76]. They allow to access all flow details in a two-phase flow, including detailed mass, energy and momentum exhanges through interfaces. Therefore, they are considered to be full DNS methods even if there are still stumbling blocks in resolving properly all scales in the vicinity of the interface. The second one is the DNS around solid bodies where, no detailed interface resolution is conducted. Yet the fluid flow around each particle is completely resolved [5, 197] through DNS. The third one is the Direct particle simulation (DPS) technique, which is less detailed than DNS around solid bodies in the sense that the effect of particle volume occupation on the surrounding fluid flow is not resolved [69, 135, 154, 203]. All these models are used to understand complex physics. But their use in industrial simulations face difficulties due to their excessive computational times required for their resolution. They are therefore used to improve and validate models and correlations for macroscopic and mesoscopic approaches.1.5 Disperse phase simulation at a glance 18 • Macroscale models derived from averaging of Navier Stokes equations of two-fluid type: These are average models, which describe the two-phase flow topologies through volume or ensemble averaged quantities. Conceptually, they do not provide a detailed behavior of flows in the vicinity of interfaces. But they offer lower computational time, which is viewed as an attractive point for their development. These methods have been proven to be efficient for flows close to injector nozzle where the description of interface dynamics and thus interface conditions of equilibrium or non-equilibrium between the phases are of primary importance [6, 82, 32]. Through the same modeling philosophy, there has been also an attempt to describe the cloud of droplets at far down stream of the injector [186]. But in this case, since the fluid topology is accessed, only through a volume fraction and a surface area density variables, the polydispersity characteristic of these droplets could not be accounted for, and so some essential pieces of information are missed since recent works have shown that polydispersion has to be resolved in order to predict properly the physics of such two-phase flows. • Mesoscopic also called kinetic based models: In order to take into account the polydispersity character of droplets under reasonable CPU time, the kinetic WilliamsBoltzmann modeling of droplets developed in [193, 194] offers a good compromise. It allows tracking all particles and their associated velocities, sizes, temperatures and positions through the evolution of the number density function f. In this thesis, we will therefore focus on kinetic based models for developing models capturing the polydisperse character of the disperse-phase flows. Yet there are two possible resolution approaches of the kinetic model, namely Lagrangian or Eulerian techniques. • At present, Lagrangian methods are widely used for the disperse-phase simulation since they combine an efficient modeling of the polydisperse phase, not introducing any numerical diffusion, and an easiness of implementation. Nevertheless, they suffer from important drawbacks. First, they raise the question of the coupling with the Eulerian description of the gas phase. This question is still open since it involves two ways of description that are fundamentally different even if some recent contributions have pave the way to at least obtaining grid convergence of solutions. Sometimes a very high number of statistical particles is needed for convergence issues. Moreover, in the framework of domain decomposition for parallel computations it is needed to use complex and costly dynamic partitioning methods, to ensure a good load balancing between the different parallel processes. Let us recall also that some advances have been obtained in this field [71]. Finally, as previously mentioned, Lagrangian methods are restricted to disperse-phase flow only. In order to describe a full spray injection, Lagrangian methods, when they are used, have to be coupled with an Eulerian model for separate-phase flows [33]. • The Eulerian formalism consists in indirectly solving transport equations for the NDF by solving for selected moments of the kinetic equation, using a moment method. The use of moment methods results in the loss of some information but for the following two reasons the cost of such methods can potentially be much1.6 Eulerian polydisperse modeling at a glance 19 lower than that of the Lagrangian alternative. The first is due to the fact that the equation is solved for a limited number of unknowns, the second is related to the high level of optimization one can reach, when both phases are solved within an Eulerian framework [30, 68, 66]. Besides, for comparison with data in practice, the principal quantities of interest are the moments of the NDF. Finally, it appears that this kind of method allows a priori a much easier coupling with a separate-phase two-fluid model than Lagrangian methods [83]. Figure 1.4: Mass density field comparison between the Eulerian Multi-Fluid approach (left) and Lagrangian (right) description of a polydisperse particle population in a 3-D simulation context [66]. 1.6 Eulerian polydisperse modeling at a glance In the literature, several types of Eulerian models for the description of spray polydispersity are provided. • The first one is called the size sampling also called Multi-Class approach, which performs a discrete treatment of size so that the polydisperse solution is a superposition of monodisperse solutions evaluated at nodes or classes [94, 9, 131]. But it is intractable to tackle integral terms except at the cost of strong modal simplifications [184, 145]. • The second class consists in a discretization of the size phase space into size intervals called sections since the work of Tambour and coworkers [174, 163, 73]. There exists a large variety of applications and methods such as Multi-Fluid (MF) models for sprays (see [94, 92, 93, 95] extended from sectional models of Tambour, Greenberg et al. and [174, 163, 73]). The original MF approach relies on the derivation of a semikinetic model from the Williams-Boltzmann equation [193, 194] using a moment method for velocity and temperature conditioned by size, but keeping the size as a1.6 Eulerian polydisperse modeling at a glance 20 variable [94]. This function is then discretized using a finite-volume approach that yields conservation equations for mass, momentum, energy of droplets in fixed size intervals called sections. It has led to very encouraging realizations [30] for DNS simulations. However, partitioning the particle phase into size sections leads to a high number of coupled fluids, and results in high computational cost. Yet, some numerical efforts have been carried out to decrease the number of size intervals while increasing the accuracy within each size [93, 45] depending on the physics involved [40, 41]. • The third approach is the quadrature based moment methods. In terms of computational cost, the possibility of high order moment method considering a single size section is attractive. To this end, either Quadrature Method of Moment (QMOM) where the dynamics of moments are evaluated after closing the source terms using quadrature methods [123, 196] or Direct Quadrature Method of Moment (DQMOM) wherein equations are directly written on the quadrature weights and abcissas which describe the reconstructed distribution function having the same moments [65]. Such methods have proved to be very efficient in a number of configurations. But, they are not able to accurately predict the evaporating flux at zero droplet size, which is a point-wise value to be reconstructed from the set of moments [65]. Some recent contributions have improved the ability of such approaches using Extended Quadrature Method of Moment (EQMOM) [199]. Within the context of typical ICE simulations, both the droplet evaporation and the polydispersity need to be correctly captured in order to evaluate the fuel vapor distribution inside the combustion chamber. The lack of accuracy of DQMOM approach in evaluating the polydisperse droplet evaporation and the high computational cost associated to Multi-Fluid method has encouraged recent fruitful works for the development of a new high order moment method [83]. Kah et al. [83, 120, 87] have proposed a new strategy, preserving the moment space, called Eulerian Multi-Size Moment model (EMSM). It consists of taking advantage of continuous description of the size distribution to determine, through an original kinetic scheme, the evaporation flux of disappearing droplets and to evaluate the shift in size induced by evaporation. The reconstruction of the NDF is done by Entropy Maximization through its moments [125]. Moreover, moments convection has been achieved through either first or second order kinetic scheme while respecting the moment conservation. The great potential of EMSM is demonstrated in [87], where it is shown that the computational time for equivalent accuracy is clearly an advantage over the Multi-fluid method. A first preliminary implementation of the EMSM in the industrial code IFP-C3D [12] has been also conducted. Let us also emphasize that the size velocity correlations, which was the missing aspect of EMSM have been also addressed through the work of Vie et al. [189]. Yet, these developments conducted by Kah [83] were in the context of one-way coupling, that is, a simple effect of the gas on droplets had been considered. But in order to take into account physical phenomena observed in a typical internal combustion engine, more numerical and modeling efforts need to be achieved with high order moment methods. Taking into account coupled interactions between the gas and the polydisperse spray under a Reynolds average or LES turbulence model are primary aspects towards a full engine simulations in industrial codes (i.e. IFP-C3D soft-1.7 Objectives of this PhD 21 ware). Moreover, both quantitative and qualitative validations of the model compared to either experimental or widely used Lagrangian formulation are still missing and need to be conducted. 1.7 Objectives of this PhD The are two main objectives for this PhD: • Firstly, the two-way coupling modeling between the gas phase, described through compressible Navier Stokes equations, and polydisperse spray phase, modeled through EMSM method, has to be achieved. This involves to properly close source terms in both phases. Moreover, a significant effort has to be done for numerical aspects: in a combustion chamber mass, momentum and energy exchanges between the spray and the gas occur under rapid variations; a global simulation time step bigger than characteristic times related to different phenomena is expected to generate some stability problems, if not well treated. In the context of Arbitrary Lagrangian Eulerian (ALE) formalism [43, 78, 79, 57], which allows a splitted resolution of governing equations for treating moving geometries, the convection and acoustic physics are explicitly resolved in a separate manner. The stability is guaranteed thanks to Courant-Friedrichs-Lewy (CFL) condition, imposing a simulation time step small enough to capture the right physics. Yet two-way coupling interactions require a coupled resolution of the drag, evaporation, and the heat transfer between the gas and the spray, through source terms. The time characteristics associated to these phenomena impose to deal with multiple scales. Moreover, disappearing sizes of droplets due to the evaporation yield very small relaxation times which can not be captured by the simulation time step. Under these underlying complex physics, an accurate, unconditionally stable, while preserving the moment space two-way coupling resolution strategy should be developed. Moreover, the latter should respect the ALE formalism and preserve the robustness of the original method associated to the EMSM method. As far as the required developments are achieved, preliminary test cases and implementation under the IFP-C3D code first need to be conducted. Afterwards, the new development should be assess and validated through injection simulations under the IFP-C3D code. • Secondly, the turbulence effects need to be taken into account in the two-way polydisperse interactions between the gas and the spray. In the context of kinetic based Eulerian models, Fevrier et al. [59] has shown, through DNS simulations, the necessity to model the fluctuating energy partition inside the spray phase. Fevrier et al. [59] showed that the instantaneous spray velocity contains two parts: spatially correlated and uncorrelated velocities. All these achievements have been done in the context of one-way coupling of mono-disperse spray with the gas. More recently, the fruitful work conducted by Rodney Fox gave rise to a new Reynolds-averaged two-phase k-ǫ model [64] for incompressible, non-evaporating, collisional two-way1.8 Organization of the manuscript 22 coupled mono-disperse spray. The new model proposed in [64] for turbulent velocity correlations between phases agrees with the work of [59] and [175]. Offering a significant possibilities for industrial RANS simulations, it needs to be improved for ICE applications under IFP-C3D software. This requires to take into account the polydisperse character of the evaporating spray and the compressibility of the gas. For that aim, first of all, a significant effort on the derivation of complete gas-spray turbulence model has to be conducted. This should be followed by preliminary test-cases in the context of homogeneous turbulence to validate correct fluctuating energy exchanges between phases. 1.8 Organization of the manuscript Answer to all these questions are organized in the manuscript as follows: • The Eulerian evaporating polydisperse spray simulation requires to be well understood in order to appreciate the achievements of this PhD thesis detailed in this manuscript. It is therefore useful to dedicate Chapter 2 to a review on modeling aspects. Firstly, a review on the microscopic level of disperse-phase flow description will be discussed to point out the necessity of a kinetic modeling for industrial applications. Therefore the discussion conducted in section 1.5 will be further detailed. Afterwards, the basic kinetic Williams-Boltzmann equation along with its main assumptions will be presented. As far as resolution strategies are concerned, some discussions on widely used Stochastic Lagrangian methods, also adopted for injection simulations in Chapters 3 and 4, will be investigated while highlighting their limitations which make Eulerian moment methods relevant to be used. The polydisperse character of the spray along with its turbulent interactions are considered to be two major bottleneck issues towards to two-way coupling modeling. Therefore, an insightful review on disperse-phase turbulence modeling through Eulerian moment methods is first carried out. Afterwards, we extend the discussion conducted in section 1.6, making links between different Eulerian polydisperse methods. In the final section, the Eulerian Multi Size Moment (EMSM) method originally introduced during the PhD of Damien Kah [83] will be presented in details along with its main achievements. This chapter will be concluded with a discussion about applications towards industrial simulations through the use of EMSM method and will guide the reader for the remaining chapters of the manuscript. The scientific novelties provided through this PhD thesis are introduced respectively in Chapters 3, 4 and 6 summarized in the following: • Chapter 3 is dedicated to the first achievements of the present PhD, while includes also some of the works conducted in connection and collaboration with Damien Kah1 [83]. The goal in this chapter is to develop a new numerical strategy for the full Eulerian two-way coupling modeling between the polydisperse evaporating spray and the compressible gas. The latter should respect the realizability condition of 1postdoctoral fellow at Center for Turbulence Research Stanford University1.8 Organization of the manuscript 23 the high order moment method (EMSM). Moreover, since the characteristic time scales associated to evaporating droplets under strong mass and momentum coupling between phases can be inevitably lower than the global time step during an ICE simulation, the new method should also guarantee the numerical stability while providing accurate solutions. The final goal being a direct injection application under the IFP-C3D code, the method should also respect the Arbitrary Lagrangian Eulerian (ALE) formalism already derived previously for EMSM method in [83] and implemented in IFP-C3D code in the context of one-way coupling. Therefore, in this chapter a detailed insights will be given for the two-way coupling resolution strategy in the context of ALE formalism. Afterwards, some preliminary homogeneous test cases to assess the EMSM method and the stability and the accuracy of the two-way coupling have been discussed and shown. Then, more advanced studies on multi-dimensional framework should be carried out. The first test case consists in validating the ability to treat correctly the mesh motion effect on the spray dynamics through ALE formalism in IFPC3D. Afterwards, through 2D test cases and in the one-way context, comparisons between the academic code MUSES3D [30] and IFPC3D software [12] have been carried out, aiming at validating EMSM method under both structured and unstructured formalisms. Finally, the 2D injection simulation under the two-way coupling model has been pointed out. Rigorous comparisons between the Lagrangian and Eulerian simulations have been validated qualitatively and quantitatively. • In Chapter 4, a detailed numerical analysis of the two-way coupling strategy will be conducted. Let us precise that the original method developed in Chapter 3 was in the context of a constant d-square evaporation law [167, 72]. Yet in a realistic context, the evaporation is in function of both gas-phase and spray-phase thermodynamic conditions [2]. Moreover, some convection-correction terms added to source terms can lead to even more complicated models. All these aspects require a deeper investigation in the numerical sense. Therefore the aim of Chapter 4 is to conduct a convergence and accuracy analysis of the numerical method. Through homogeneous context, some simulations under both constant and time dependent evaporation laws will be carried out. Afterwards the accuracy will be assessed through convergence studies, varying the simulation time. Afterwards, under a rather realistic temperature initial conditions, same injection configurations adopted in Chapter 3 will be done and compared to the solution of the Lagrangian in a qualitative and quantitative manner. • Chapter 5 can be considered as the complimentary of Chapter 3 and 4 in the sense that, first, one presents the implementation effort of the the two-way coupled EMSM method in the code IFP-C3D. Then, a 3D injection configuration under realistic injection boundary conditions will be assessed and results will be analyzed qualitatively. • Chapter 6 is dedicated to the turbulent two-way coupling modeling between the polydisperse spray and the compressible gas. Firstly, one discusses the derivation of an Eulerian-Eulerian model, within the framework of laminar two-phase flows1.8 Organization of the manuscript 24 composed of an evaporating polydisperse spray and a compressible gas. The correct behavior of the energy partition in the spray phase for the turbulence modeling requires taking into account the granular temperature effect (also called uncorrelated motion), as highlighted first in [59]. This accounts for considering a polykinetic velocity distribution at the kinetic level. Based on this idea, first the original monokinetic EMSM model is extended to polykinetic in the context of laminar flow, through a transport equation for the granular temperature. Afterwards, a new Reynolds-averaged (RA) turbulence model is derived from the two-phase model presented in Chapter 3. This is based on the same philosophy introduced in [64] for two-way coupled monodisperse flows. However, one must deal with new terms and equations that arise due to size moment equations of the polydisperse evaporating spray and the gas-phase internal energy equation. To overcome this difficulty, new closure models are provided and discussed. The new turbulence model assessed through homogeneous test cases. First, the new model is qualitatively validated as compared to the test case of [59] for one-way coupling and then the extension to two-way coupling is studied for both evaporating and non-evaporating sprays. Next, the model is investigated under the conditions typical of high-pressure direct injection in ICE applications. General conclusions of this PhD work along with perspective works will be discussed in Chapter 7 This present work was supported by a grant from IFP Energies nouvelles and S.A. Centrale Recherche, and benefited from a support from EM2C Laboratory of Ecole Centrale Paris. Furthermore, we wish to thank our collaborators Rodney O. Fox, Quang Huy Tran and Anthony Velghe for their scientific and technical contributions to this thesis. • Contributions of this PhD thesis resulted in publications in international journals: – D. Kah, O. Emre, Q. H. Tran, S. de Chaisemartin, S. Jay, F. Laurent, and M. Massot, High order moment method for polydisperse evaporating spray with mesh movement: application to internal combustion engines, paper submitted in International Journal of Multiphase flows. – O. Emre, R. O. Fox, M. Massot, S. de Chaisemartin, S. Jay, and F. Laurent, Eulerian modeling of a polydisperse evaporating spray under realistic internalcombustion-engine conditions, paper published in Flow Turbulence and Combustion. – O. Emre, D. Kah, S. Jay, Q.-H. Tran, A. Velghe, S. de Chaisemartin, R.O. Fox, F. Laurent, M. Massot, Eulerian Moment Methods for Automotive Sprays, accepted for a publication in Atomization and Sprays.1.8 Organization of the manuscript 25 – O. Emre, F. Laurent, S. de Chaisemartin, S. Jay, and M. Massot, Numerical analysis of a two-way coupled Eulerian high order moment method for the simulation of polydisperse evaporating sprays, paper in preparation for a submission in Journal of Computational Physics. • Presentations in the following international conferences have been done during the PhD period – O. Emre, F. Laurent, S. de Chaisemartin, S. Jay, D. Kah and M. Massot, Twoway Coupling modeling through Eulerian moment method for spray injection in engine simulations, European Congress on Computational Methods in Applied Sciences and Engineering (ECCOMAS), Vienna, Austria, 2012, pp. 1-18, – O. Emre, F. Laurent, S. de Chaisemartin, S. Jay, D. Kah and M. Massot, Eulerian modeling of polydisperse evaporating spray under realistic internal combustion engine conditions, International Conference on Multiphase Flow (ICMF), Jeju, Korea, 2013, pp. 1-15.Chapter 2 Two-phase flow modeling of high pressure direct injection 2.1 Two-phase flow regimes in ICE 2.1.1 Physical mechanisms behind two-phase flow dynamics As mentioned in the introduction, the liquid fuel injection yields a complex flow, involving the gas and the liquid phases, from the nozzle injector to the area downstream of the injector. Each phase is characterized by its proper thermodynamic state and exchanges mass, momentum and energy with the other phase through its spatial limiting border with the other phase called “interface”. The topology of the interface is therefore a paramount aspect to take into account in two-phase flow modeling. The shape of the interface, its curvature and wrinkles, in brief its complexity are driven by the competition between surface tension and strain, characterized through a Weber number. Weber numbers compare the dynamic forces to surface ones, as estimated by the surface tension σl,g. Such comparison can either resort to a liquid Weber if dynamic forces on the interface are mostly provoked by the motion of the liquid as in case during the primary atomization process: Wel = ρlL | ul − ug | 2 σl,g (2.1) or to an aerodynamic Weber number if the liquid topology is mainly driven by the impact of the gaseous flow, observed in the secondary atomization process Weg = ρgL | ul − ug | 2 σl,g , (2.2) with L is a characteristic length of the interface, ρl and ρg are densities for the liquid and gas phases respectively and ul − ug represents the velocity difference between the phases [98, 51, 159]. These Weber numbers characterize the density of interface at equilibrium as regards surface tension and dynamic efforts. So they reflect the intensity of the atomization process and therefore its multi-scale character. Wel and Weg play a similar role 262.1 Two-phase flow regimes in ICE 27 for atomization as the Reynolds number Re does for turbulence, indicating the number of relevant degrees of freedom of the system. Weber numbers are static criterions i.e accounting for the interface equilibrium; whereas the interface dynamics come down to the value of the Ohnsorge number Oh: Ohl = p µl σl,gρlL , (2.3) implying the dynamic viscosity µl of the liquid material and which relates the viscous forces to surface tension ones. Yet the interface is not enough to determine the two-phase flow characteristics. The volume occupied by each phase as well as the mass partition are some other required parameters in qualifying the two-phase flow regimes. In fact, if the control volume Vc is the total volume occupied by both phases and Mc is the total mass associated to Vc, the volume fraction αi and the mass fraction Φmi of the phase denoted through the index i are given as: αi = Vi Vc , Φmi = Mi Mc , (2.4) with Vi and Mi are respectively the volume and the mass of the phase i. As a conclusion of this brief introduction on mechanisms driving two-phase flows, let us mention the following definitions. When the interface is complex and none of the two phases has a remarkable geometry, the flow is said to be separate-phase. On the contrary, if the liquid-phase is diluted enough -i.e. with not too high a volume fraction α- to allow distinct packets to form and the flow is smooth enough for the packets to be spherical, this regime is referred to as disperse and the droplets phase is the disperse phase. Figure 2.1 illustrates separate and disperse flow zones in the injection proces. Figure 2.1: Illustration of separate and disperse phases in the injection flow [51] 2.1.2 Separate-phase During the injected liquid core breakup processes in ICE, the interface between the liquid and the gas is complex and none of the two phases has a remarkable geometry. Therefore,2.1 Two-phase flow regimes in ICE 28 the flow is said to be separate-phase. The increase of the interface density under specific flow conditions, is referred to as atomization: Let us discuss for now only the main aspects of atomization, in the context of the present overview. The liquid Weber number Wel is the key parameter of primary atomization and the aerodynamic Weber number Weg rather describes secondary breakup. The completion of the atomization process results the formation of a disperse phase flow. The modeling of pure disperse flows is eased by the fact that the interface topology is fixed, that is both aerodynamic Weber number Weg and Ohnsorge number Ohl are very low. This accounts for dealing with the cloud of droplets inside the gas. Yet both inclusions and complex interfaces simultaneously appear, typically during the atomization process itself, it is remarkably difficult to account in detail for the separated phase domain and to account efficiently for the spray regime. The modeling of such transition is a key point in mastering many separate-phase flows [83], especially those where atomization is expected and where the resulting disperse phase is the desired final state, e.g. for combustion. Yet the aim of the present manuscript is limited only to the disperse phase modeling, which is essential to be correctly simulated to provide a future link with such transition zones. In the following, we therefore focus on pure disperse flows, that is after the secondary break-up process. 2.1.3 Disperse-phase The pure disperse-phase flow regime corresponds, in the classification established in [133], to a liquid volume fraction αl , going from αl < 10−3 associated to a dilute regime to αl = 10−2 , limit where it begins to be moderately dense. Moreover, the aerodynamic Weber number Weg is small enough for droplets to remain spherical. This regime is referred to as disperse and the non continuous phase is the disperse phase. Although the liquid interface is not anymore a critical point determining the flow regime, there are other complicated physical mechanisms, which impact flow dynamics: because the material density of the liquid inside droplets is much bigger than the carrier gas density, the low droplets volume fraction is balanced by the liquid mass fraction Φm. This implies strong two-way interactions between phases in terms of mass, momentum and energy transfers. Moreover, collisions between droplets occur in moderately dense zones of the flow leading even to more complicated physics. The limit of these flow regimes are presented in [7]. 2.1.3.1 Basic disperse-flow regimes Within the dilute limit assumption made here, the dynamics of a gas-droplet flow is ruled by two major effects. First, droplet-droplet collisions may occur in a two-phase flow, depending on the collision frequency. The flow can then be parameterized by the Knudsen number Kn Kn = τc τg , (2.5) with τc is the collision time of droplets and τg is the gas-phase characteristic time. This number represents the importance of droplet-droplet collisions relative to free transport,2.1 Two-phase flow regimes in ICE 29 and is the equivalent of the Knudsen number defined from the gas kinetic theory [170]. Therefore, the flow behavior is characterized by Kn such as in the gas kinetic theory. The particle flow can be considered as a continuous flow as long as Kn ≤ 1. On the contrary, when Kn > 0.1, the rate of collisions is not significant enough to ensure that the flow is at equilibrium, i.e the velocity distribution function is Maxwellian, or at a state close to equilibrium. Figure 2.2: Disperse-phase modeling hierarchy characterized through the volume fraction (horizontal axis) and the ratio of the droplet characteristic length or time scale over the gaseous characteristic turbulent length or time scale (vertical axis) [7]. Secondly, the drag is the leading phenomenon intervening in disperse phase flow, which is the major actor allowing the distribution of droplets inside the combustion chamber. There are two main dimensionless numbers characterizing this behavior: the Stokes number St and the droplet Reynolds number Red. The Stokes number expressed as: St = τd τg , (2.6) with τd is the dynamic time scale associated to a droplet of size in surface S, represents the response of a droplet to a change inside a gas flow. If the Stokes number is small enough (St ≤ 1), the droplets will have nearly the same velocity as the gas. On the other hand, for large Stokes numbers, droplets barely feel the gas, so that their trajectory is hardly influenced by the gas. This issue will lead to the phenomenon called particle trajectory crossing PTC, which will be further discussed in 2.1.3.3. For an isolated droplet in a uniform gas, the droplet Reynolds number determines the net force of the gas on the droplet and expressed as: Red = ρgS 1/2 | ug − u | √ πµg , (2.7)2.1 Two-phase flow regimes in ICE 30 where u is the droplet velocity. Red is important to characterize the flow regime around a droplet. A finite particle with a diameter greater than the smallest length scale (Kolmogorov scale) of the continuous flow can modulate the turbulence of the fluid in the vicinity of its interface through a wake effect. Otherwise if the particle diameter is smaller than the Kolmogorov length scale, it is a point particle and the fluid flow around it will not be influenced by the motion of the particle. Let us also remind that even if a particle has a smaller diameter than the smallest fluid length scale, its high inertia can lead a Stokes number greater than 1. All these regimes of particles are important in choosing the right disperse-phase models, illustrated in Figure 2.2, but also discussed further in section 2.2. 2.1.3.2 Polydispersity As far as the disperse-phase topology is concerned, various sizes of droplets determine the flow regime. In fact, both phases and droplet-droplet interactions are governed by the size. Characteristic time scales of physical phenomena occurring in the disperse-phase are therefore driven by the size. For instance, the Stokes number St, depending on size through dynamic time scale τd, previously given in Eq.(2.6) is one of the parameters influencing the velocity relaxation between the continuous phase and droplets. Yet one can also define other Stokes numbers in case where droplet evaporation and heating, determining the mass and heat exchanges between phases, are governing physics: Stv = τv(S) τg , StΘ = τΘ(S) τg (2.8) with τv the evaporation time scale and τΘ the thermal relaxation time scale, depending on size. The strength of polydispersity and the ways to quantify it depend on the application, but for internal combustion engine applications considered here, it has a crucial impact on the equivalence ratio, which conditions the combustions regime and the pollutant formation. 2.1.3.3 Particle Trajectory Crossings (PTC) Particle trajectory crossings (PTC), are linked to the ability of droplets to have signifi- cantly different velocities in a same region of the flow. As the droplets tend to correlate their velocities at different rates according to their size in a given flow, it is natural to expect a major influence of size: while all the very small droplets have the gas velocity, small, medium and large droplets have a velocity depending on their size so that they do cross if their sizes are significantly different. This is referred to as hetero-PTC i.e. PTC at different sizes [39]. In addition, medium and large droplets may encounter crossings even for droplets of the same size, which is referred to as homo-PTC, PTC at same size [39]: this is due to the fact that medium and large droplets are defined to take a large time compared to that of the gas to correlate their velocities so these correlations weakly or never occur.2.2 Modeling approaches for disperse-phases 31 2.2 Modeling approaches for disperse-phases Disperse two-phase flows can be modeled with different levels of detail, which we present from the most detailed, microscopic, to the coarsest, macroscopic ones. First, we briefly present the so-called DNS at the particle level methods that can be used for separatephase flows as well: they prove to yield too much detail and to be costly for a full ICE computation. We then present the so-called Discrete Particle Simulation that provides a less detailed description but sometimes too costly for industrial computations. Afterwards, two-fluid models, that give a macroscopic, volume average description of disperse-phase but also widely used for interfacial two-phase flows will be discussed. The latter approach being considered not to be well adapted for the polydipersity modeling, we finally focus on kinetic modeling of the disperse-phase. 2.2.1 Direct numerical simulation at the particle level 2.2.1.1 Sharp interface tracking method The starting point of the derivations to obtain microscopic models, which describe all scales within each phase and the two-phase flow topology in the vicinity of inter-phases, requires to write down the following single fluid conservation equations for each of two phases: ∂tρφ + ∇x · (ρφu) = ∇x · ψ + S, (2.9) where the successive values of φ, ψ and S are given in the table 2.1: These equations are Table 2.1: expressions for variables arose in Eq.(2.9) φ 1 u E = e + 1/2u 2 ψ 0 -T = −P I + τ -T.u + q S 0 F F.u valid in the interior of each phase. Here ρ denotes the density, u velocity, T the stress tensor, and F the body force density. One can directly solve the local instantaneous equations presented above in the context of DNS. Moreover, the position of the interface and associated discontinuities of properties across the interface must be solved accurately to impose satisfactory boundary conditions for both fluid domains [159]. In the literature, various sharp interface tracking or resolution methods have been designed to capture interfaces. These methods rely on techniques such as Volume of Fluid (VOF), Level Set, Ghost Fluid, or a combination of these techniques. Recent advances can be found in [202, 70, 17, 76]. At this level, since all the flow details are solved, there is no distinction between the disperse-phase and the separate-phase. 2.2.1.2 Fluid DNS around solid bodies The principle of this second type of full DNS approach is to solve for a fluid around solid (not deformable) bodies: the method is sometimes referred to as Fully Resolved Simulation in the context of solid particles [5] but can also be used for a disperse liquid at low Weg.2.2 Modeling approaches for disperse-phases 32 The solid bodies can be fixed or may move depending on the forces from the surrounding flow. The treatment of the solid bodies is done with appropriate boundary conditions e.g. they are meshed or immersed boundary conditions are applied [197]. This approach can be used to solve the settling of a group of particles/droplets, as the interaction of particles through their wakes generates a long range interaction and modifies the physical properties of the system (settling velocities). This approach is costly, its cost increasing linearly with the number of particles. A less detailed approach should be considered except when the modeling effort is important. 2.2.1.3 Concluding remarks on DNS methods for the disperse-phase Full DNS approaches are used to capture complex physics: they notably allow to render group effects [34], for instance, in group combustion which arises in specific conditions and where the flame structure and the overall dynamics is strongly linked to the organization of the cloud and its evolution at large scale [165]. The issue of group effects is also present in other domains such as in sedimentation modeling [181] and crowd modeling [121]. For all these group effects, the resolution of the flow at the level of each particle is required as it strongly differs from that of a single particle and it has an influence on macroscopic dynamics. Besides, the exact numerical resolution of interfaces is still a research topic, especially for the purpose of DNS computations to improve and validate models and correlations, mesoscopic approaches. Yet it is unfortunately very difficult to solve for a macroscopic system with a full DNS approach, regarding the high cost of the methods, so these methods are not considered for our problem. 2.2.2 Discrete Particle Simulation (DPS) This method looks like the DNS around solid bodies except that the effect of particle volume occupation on the surrounding fluid flow is not resolved [135, 154, 203] and the fluid particle interactions are modeled under the form of a point particle assumption global exchange. This means that each particle is tracked separately through ordinary differential equations (ODE) on its internal variables which can contain the effects coming from the surrounding continuous fluid phase (i.e. mass, momentum, heat transfer) and other particles (i.e. collision, coalescence), the effect of return of particles can be taken into account at this level through specific collision detection algorithms [177, 42]. In case of the two-way coupling, the mass, momentum and heat-transfer effects of the particles on the fluid phase are taken into account through source terms in conservation equations Eq.(2.9). Most of the first numerical studies were dedicated to solid particle dispersion [168, 52]. The extension to evaporating droplets in turbulent flows has been provided in [111, 148, 127], and has been used in combustion applications in [110, 151, 128]. In the context of simulations through industrial tools where a very high number of particles is involved, tracking each particle through DPS approach can be costly. Yet let us precise that, one of widely used Stochastic Lagrangian method, further discussed in section 2.3, provides a coarser resolution of DPS approach [46]. The latter is widely adapted for the coupling with the continuous phase modeled through RANS or LES.2.2 Modeling approaches for disperse-phases 33 2.2.3 Two-fluid reduced models So far in this section, we have focused on detailed resolution techniques of disperse-phase flows. As conclusion, we have clarified that, details on the disperse-phase flow are not required and not adapted for computations through industrial codes. In that case, the use of volume averaged models can be considered as a promising option. The averaging process is performed on a volume large enough to contain both phases, and small enough compared to the length scales desired to be solved [132]. A number of macroscopic quantities are then accounted for with distinct Eulerian conservation equations. So the two phases are described as fluids that virtually coexist, for all the quantities are defined at every location in space. Averaging approach generates closure problems as transfer terms within the averaging volume have macroscopic effects that should be taken into account, so that models are required for closure. Let us recall that some authors provided closures through preliminary detailed studies on a single particle level [2, 160] which make easier closures for disperse phase flow modeling through averaged methods [186]. There are mainly two different approaches employed to obtain averaged equations. A first approach involves applying an averaging operator directly to the local conservation system defined through (2.9). In the averaging process, the various terms appearing in the macroscopic equations are shown to arise from appropriate microscopic considerations. This method is used for example by authors such as Ishii [82] or Delhaye [32]. However, this technique bypasses the discrete nature of the two-phase flow since it does not provide a complementary equation on the volume fraction α which is crucial in determining the probable volume occupied by each phase. In the other approach, the notion of phase function is introduced. It follows the instantaneous interface between the two phases and is thus convected by the instantaneous interface velocity. Conservation laws are determined for each phase and they account for the exchanges of mass, momentum and energy between phase. Closures are provided through a thermodynamic analysis of the resulting system. This approach is used for example in [6]or in [107] and is taken up by authors such as in [157, 158]. In the context of ICE simulations at IFP Energies nouvelles, the latter technique based on the volume fraction equation along with the surface density approach has been used to describe liquid atomization [104, 105] and disperse-phase modeling [186] dedicated to the modeling for the dense zone of the injection. Yet it has been shown that the polydispersity character of droplets is poorly captured since at a given time and position, one could only access the mean size of the distribution [186]. Taking into account the size distribution at sub-grid scale is mandatory to describe the right two-phase flow regimes. Therefore, this technique is not adapted for our problem. 2.2.4 Kinetic spray modeling The dispersed-phase assumption for the liquid, applicable for dilute sprays with volume fraction α < 10−2 , allows the use of the so-called kinetic spray model. This model is based on the Williams equation [193, 194]. Although this represents a mesoscopic level of description, it is called kinetic by analogy with the mesoscopic kinetic theory of gases. Indeed, the assumptions made for the spray droplets [62], are similar to the ones made2.2 Modeling approaches for disperse-phases 34 for the gas molecules when deriving the kinetic model. These assumptions are recalled here. The model describes the transport of the NDF and its evolution, due to the physical phenomena like evaporation, heat transfer or particle interactions applied to the spray, as external forces. The source terms responsible for this phase space evolution of the NDF are analyzed here. Due to the above disperse-phase assumption, the liquid influence on the gas is obtained through source terms in the gas phase equations, as it was the case for DPS approach. The expressions for such source terms are provided in the framework of kinetic spray description. We present herein the framework which allows the derivation of the Williams-Boltzmann Equation (WBE) for spray, see for example [193, 194]. 2.2.4.1 Fundamental assumption Statistical modeling relies on ensemble (or statistical) averages. The goal is to reduce the information carried by the numerous particles to the only relevant one of ensemble behaviors. Each particle, denoted by the subscript i, is described by few degrees of freedom (DoF) that evolve in time, e.g. a minima its position xi(t) and velocity ui(t). So the particle system has 6N DoFs in total and its state is exactly described by a point in a 6N -dimensional space called the Γ phase space with Γ = R 6N . For classic particles encountering an external force F ext per unit mass and a particle-particle interaction force Fi,j per unit mass that differs on the relative distance | xi - xj |, the equations of motion at the microscopic level read: dtxi(t) = ui(t), (2.10a) dtui(t) = F ext(t) + X N ( j=1 j6=i) Fi,j (t). (2.10b) We want to avoid describing all the details of the system and, instead, to follow some of the quantities that emerge at the macroscopic scale. These quantities define a state at the macroscopic level and they are not as numerous as the micro-DoFs. So a macroscopic state can be reached thanks to many different underlying microscopic configurations [143]. We now focus only on these macroscopic variables: we compute them as ensemble averages, i.e. an average over many copies of the initial system, possibly evolving differently at the microscopic scale, but similarly at the macroscopic scale: this idea, due to Gibbs, allows to smooth out the undesired fluctuations from the temporal behavior of the macroscopic quantities. The number of ensembles to consider is large enough for the microscopic state points to be dense in Γ. We thus adopt a statistical point of view, introducing a multipleparticle joint distribution function f N (t, x1, x2, · · · , xN , u1, u2, · · · , uN ). The evolution of an N -particle system is then given by the Liouville equation for the NDF in 6N phase space: ∂tf N + X N i ui · ∂xf N + X N i=1   F ext i + X N ( j=1 j6=i) Fi,j   · ∂ui f N = 0 (2.11)2.2 Modeling approaches for disperse-phases 35 which originates from the conservation of the number of points in Γ and renders all the microscopic evolution equations of System (2.10). In practice the dimension of f N is huge (it might be infinite) and one has to come up with a reduced (or contracted) description. Varying the number of particles retained in the state vector Γ, a reduced description is given by the classical BBGKY hierarchy (the initials are those of the authors who derived it independently: Bogoliubov, Born, Green, Kirkwood and Yvon) [21, 103]. It consists of transforming the Liouville equation into a chain of equations in which the first equation connects the evolution of one-particle PDF f 1 to the two-particle PDF f 2 , the second equation connects f 2 to f 3 and so on. The system is an exact approach to the Liouville equation. It is therefore redundant but it is practical to build approximations by truncation of the chain when some particle correlations are neglected. The most celebrated example of the utility of the BBGKY hierarchy consists in closing the first equation of the hierarchy by assuming: f 2 (t, x1, x2,u1,u2) = f 1 (t, x1,u1) f 1 (t, x2,u2) (2.12) which means that the particles are totally uncorrelated. The BBGKY hierarchy is then entirely defined by the knowledge of a one-particle Probability Density Function (PDF) f 1 evolving in a 6-dimensional space called -phase space according to the equation: ∂tf 1 + u1 · ∂xf 1 + F ext 1 · ∂u1 f 1 = − Z F1,2 · ∂u1 f 1 (t, x1,u1) f 1 (t, x2,u2) du2dx2 (2.13) The number density function (NDF) f, obtained by summing the one-particle PDF in order to describe N indiscernible particles [192]: f = PN i f i . Its phase space variables are x et u. Similarly to Eq.(2.13) for the evolution of f 1 , the Williams-Boltzmann equation is classically used to describe the transport of NDF function. 2.2.4.2 Williams-Boltzmann Equation (WBE) According to the kinetic spray modeling through Williams-Boltzmann equation (WBE), each droplet is assumed to be spherical, and is characterized by the unique size and temperature variables. Moreover, its velocity is defined at its mass center. The entire information of the disperse phase is included in the number density function (NDF) f (t, x, S,u, T) so that: ∂tf + ∇x · (uf) − ∂S (RSf) + ∇u · (Ff) + ∂T (Qf) = B + C (2.14) is at time t the probable number of droplets at a location x in a dx-neighborhood of x, with a velocity u in a du-neighborhood of u, with a temperature T in a dT-neighborhood of T, and with a size parameter in surface S in a dS-neighborhood of S. The velocity u is sometimes decomposed in Cartesian components u = (u1, u2, u3) T . If dx is an elementary volume of the physical space, the infinitesimal volume dudTdS is an elementary volume of the phase space. The kinetic equation or Williams-Boltzmann equation or sometimes called Generalized Population Balance Equation simply expresses that the total derivative of the NDF is due to integral source terms [193]: that are break-up B, usually depending linearly on f, and collisions C, usually depending quadratically on f. The modeling effort also consists in closing the different rates of change:2.2 Modeling approaches for disperse-phases 36 • F = dtu is the acceleration applied on droplets per unit mass, • Q = dtT is the rate of change of droplet temperature due to heat transfer, • RS = −dtS is the rate of change of the size S of droplets, or evaporation term, • C is the rate of change of distribution function f due to collisions, • B is the rate of change of f through particle formation by secondary break-up process. 2.2.4.3 Source term closure models Drag model Among all the terms contained in the term of force applied by unit mass F (gravity and buoyancy effects, drag force, virtual mass effect, Basset force, lift force) described in [30], we will focus on the drag term. Indeed, as shown in [45], in a gas-liquid flow, where the ratio of the gas-phase mass density over the liquid-phase mass density inside droplets is of the order of 10−2 down to 10−3 , the only external forces that need to be accounted for are drag force and gravity. Furthermore, in order to work in a simple modeling framework, we neglect gravity in the studies presented in this work. Through the basic Stokes law assumption [169], the drag force is commonly expressed in function of the droplet dynamic time scale and the velocity difference between the surrounding gas-phase and droplet F (t, x,u, S, T) = 1 τd (ug (t, x) − u), τd = ρlS 18πµg . (2.15) with ug is the gas-phase velocity, ρl the liquid mass density and µg is the gas-phase dynamic viscosity. Stokes law is correct as far as Red < 1. Otherwise, the flow around the droplet renders the convection effects dominants, that is some correction models such as [160] are required for an accurate drag dynamics. Evaporation and heating model Theoritical derivation of the evaporation and the heat transfer coefficients are detailed in [30]. These coefficients are modeled, based on the film theory around an isolated droplet [165]. Let us now present their common expressions as: RS (t, x,u, S, T) = 4π ρg ρd ShcDYF ln (1 + BM) (2.16) and Q (t, x,u, S, T) = 6π ρg ρdSCp,l ShcDYF ln (1 + BM)  Cp,g (Tg(∞) − [T] s ) BT − Lv  (2.17) with ρg the gas density, Tg(∞) the gas temperature beyond the diffusive thermal boundary layer, [T] s the temperature at the droplet surface, Cp,g the gaseous specific heat capacity at constant pressure, ρd the liquid density, Cp,l the liquid specific heat at constant pressure, DYF Fick’s law binary diffusion coefficient, Lv the latent heat of vaporization, Shc2.3 Resolution strategies for the kinetic disperse phase modeling 37 the convective modified Sherwood number, BM the spalding dimensionless mass transfer number and BT the spalding dimensionless heat transfer number. Let us give expressions for spalding dimensionless transfer numbers and the relation between them, BM = [YF ] s − [YF ]∞ 1 − [YF ] s , BT = ρgusCp,g hc , BT = (BM + 1) Shc Nuc Sc Pr (2.18) with [YF ] s the fuel mass fraction at the droplet surface, [YF ]∞ the fuel mass fraction beyond the diffusive mass boundary layer, hc the convective modified heat transfer coefficient, Nuc the convective modified Nusselt number, Sc the Schmitt number, Pr the Prandtl number. According to the film theory, the convection prompted by the relative velocity between the gas and the droplet reduces boundary layers around the droplets. Therefore some correction models on Sherwood and Nusselt numbers have been proposed in the literature [2, 165, 56, 26] and reviewed in [30]. 2.3 Resolution strategies for the kinetic disperse phase modeling Let us, in this section, discuss on the choice of the resolution method for the dispersephase among two available approaches. The first and widely adopted choice for spray resolution method is a Stochastic Lagrangian method where we track particles in the flow. Lagrangian methods consist in tracking statistical particles in connection either with kinetic equation (2.14) or physical droplets modeled through DPS approach. On the other hand, Eulerian approach provides an alternative and promising solution to Lagrangian techniques for the resolution of the kinetic equation (2.14). In the reminder of this section, let us first present stochastic-Lagrangian and then Eulerian methods before concluding on our choice for the present thesis. 2.3.1 Stochastic-Lagrangian resolution The stochastic-Lagrangian description has been introduced in two different contexts. • On the one hand it has been developed to supply DPS in configurations where the high number of physical droplets prevents to use one numerical particle for each droplet, given the high computational cost associated. In this framework, each numerical particle, also called parcel, represents several physical droplets. This approach has been first described in [28] and introduced for fuel spray and referred to as Stochastic Parcel (SP) in [133], extending the work of [46]. This method is referred in [29] as the discrete element method, and as a multi-continua method in [165], where the parcels are defined as classes of droplets. The computational cost of this method is obviously linked to the chosen number of tracked parcels: the SP method aims at coarsening the DPS description and the number of statistical parcels is thus set by the computational cost limitation, without drawing any links with kinetic level of description. The cost of the method is thus well controlled, and2.3 Resolution strategies for the kinetic disperse phase modeling 38 it is therefore broadly used to compute industrial configurations but its rigorous meaning is doubtful. • On the other hand, the stochastic-Lagrangian method can be seen as a resolution method of the Williams-Boltzmann kinetic Eq. (2.14) as stated by [172]. This approach is called Direct Simulation Monte Carlo (DSMC) method and is also introduced for rarefied gas in [11]. This approach aims at describing the evolution of the spray NDF moments, and thus a high number of statistical particles [171] are needed to obtain a converged solution. The numerical particle has a weight associated, adapted to the needed refinement: this weight is a real number so a numerical parcel may represent a fraction of physical droplet. This method provides directly the ensemble average, in terms of initial condition, and then the reconstructed Eulerian fields correspond to the same level of information than the one provided by a Eulerian method. In cases without collision, the difference between the two methods, is only the level of refinements provided. Indeed, the convergence expected in the DSMC method demands a high number of statistical particles, leading to a higher refinement level than in DPS. On the contrary, the SP method aims at coarsening the DPS description. The number of statistical parcels is thus set by the computational cost limitation, without drawing any links with kinetic level of description. Stochastic-Lagrangian methods are implemented for instance in the KIVA II code [4] and in the IFP-C3D code [12] and are used in many industrial computational codes at present [81, 156, 36, 35]. 2.3.2 Shortcomings of Lagrangian methods To solve a disperse two-phase flow, the stochastic-Lagrangian approach is often coupled to a Eulerian approach for the carrier gas phase: we refer to this strategy as Euler-Lagrange. At present, SP methods are widely used for the disperse-phase simulation since they combine an easy modeling of the phase polydispersity and particle trajectory crossings (PTC), a high numerical efficiency, not introducing numerical diffusion, and an easiness of implementation. Nevertheless, they suffer from some shortcomings, in terms of modeling and computing. These shortcomings can be listed as follows: • In some cases, the solution is impacted by the number of Lagrangian parcels used for the computations. In case where this number is not enough to obtain a converged solution, a statistical noise is observed. Convergence can be evaluated by performing several realizations with the same initial and boundary conditions and comparing the deviation of the solution according to the number of parcels used. However, convergence studies are rarely performed for industrial computations due to the limitations on resources. • Accounting for two-way coupling with an Euler-Lagrange raises two issues. – First, the ODEs for the parcels are no longer independent but coupled through the gas equations. The quantities must ideally be relaxed simultaneously for all2.3 Resolution strategies for the kinetic disperse phase modeling 39 the particles at a given location and for the underlying gas, the latter transmitting information at the velocity of its fastest eigenvalue to the surrounding gas and parcels. Numerical procedures rarely achieve such strong coupling, since it is interesting to keep the ODEs as decoupled so that splitting-like techniques are employed. This can compromise the accuracy of two-way coupling which is achieved with dedicated methods at the cost of additional efforts [16]. – Second, in a high performance computing context, possibilities of vectorization/parallelization or implicitation are limited for Euler-Lagrange simulations. The particle load balance is particularly difficult to achieve [71]. The parcels must indeed often communicate with the underlying fluid but they move in the domain in a way that is difficult to predict (at least for the load balance algorithm). As a result parcels that are computed by a given CPU must be dispatched to other ones according to a complex process, which does not comply with efficiency requirements of parallel architecture. 2.3.3 Eulerian resolution Instead of discretizing all the kinetic degrees of freedom (DoFs) with parcels as in the stochastic-Lagrangian approach, we can resolve spray Eulerian conservative quantities, as number or mass density, momentum. These Eulerian methods can be seen as moment methods derived from the kinetic equation Eq.(2.14). 2.3.3.1 Derivation of the Eulerian model The full resolution with finite volume of the kinetic equation, Eq.(2.14) can difficultly be used given its cost related to the high number of phase space dimensions. Indeed in a 3-D case, the phase space is of dimension eight (3 for space, 3 for velocity, 1 for size, 1 for temperature). Nevertheless, in many cases the knowledge of the full kinetic description of the spray is not needed, and it is sufficient to know the evolution of global quantities, the NDF moments. For an arbitrary function ψ(y), the k th order moment mk is defined by mk = Z y kψ(y)dy. (2.19) Therefore, for the NDF we introduce the moment M Ml,n,i,j,k = Z S Z T Z u S lT nu i xu j yu k z f (t, x,u, S, T) dS dT du, (2.20) of order l in size, n in temperature, (i, j, k) for each component of the velocity, respectively. The evolution of these spray global quantities can therefore be derived from the Williams kinetic equation Eq.(2.14), in the following way: Z S Z T Z u S lT nu i xu j yu k z Eq.(2.14) dS dT du. (2.21)2.3 Resolution strategies for the kinetic disperse phase modeling 40 2.3.3.2 Bottleneck issue for Kinetic based Eulerian methods One has to notice that the moment equation derivation leads to a loss of information and that, without any peculiar assumption, the system of equations for moments is not closed, even if the kinetic model was. Indeed, some quantities can not be expressed in function of the set of moments resolved; for example with regard to velocity moments, the equation for the pth order moment (with p = i + j + k) introduces the moments of order p + 1. Therefore taking one first order moment M0,0,1,0,0 introduces the second order moments M0,0,2,0,0, M0,0,1,1,0, M0,0,1,0,1. Assumptions have then to be done on the form of the NDF to close the moment evolution system. Therefore, there are two major strategies in the literature. • For some of the spray Eulerian methods, the derivation of the moment system, along with its associated closures can be divided into two steps. First a form for the NDF in velocity and in temperature is presumed for each fixed size as follows: f (t, x, T, S) = n (t, x, S) φu (t, x,u, S) φT (t, x, T, S) (2.22) where φu and φT are the presumed PDF in velocity and temperature, that are assumed independent of temperature and velocity, respectively. The variable n is the number density of the spray. This leads to the derivation of an intermediate closed system of conservation laws, the semi-kinetic system. The second step is devoted to the size-phase space treatment, there exist several methods introducing different types of system of conservation laws and closures. • However, we can also find methods using quadrature-based approximations for the NDF, obtaining the unclosed moments by quadrature formula. 2.3.4 Conclusion about the resolution technique adopted for ICE applications As discussed before, for reliable combustion applications, the project of IFP Energies nouvelles is to resolve the direct injection of the fuel, from upstream to far downstream of the injector. Yet this requires to resolve both the dense and dilute zones of the injection. So far, the discussion on resolution strategies has been conducted for the disperse-phase zone, which is treated either through Lagrangian or Eulerian approaches. Let us also remind that due to complex interfaces between phases, the resolution for the separatephase zone is achieved through Eulerian description. For a complete resolution of the injection, there are basically two main strategies. Either one resolves the disperse-phase zone through Lagrangian Stochasic method and couple it to a Eulerian model dedicated to separate-phase zone description, or the complete injection is fully described through Eulerian methods. In both cases, the transition zone, where both complex interfaces and droplets are simultaneously present, is required to be well treated. Through the development of the technique called Eulerian-Lagrangian Spray Atomization (ELSA) conducted in [33], involving a Stochastic Lagrangian method for the disperse-phase and a Eulerian interfacial flow model based on the work [183], an2.4 Eulerian polykinetic modeling through kinetic based models 41 interesting development of a transition zone has been achieved. Yet we believe that a full Eulerian description of the injection will help us to be more consistent for the development of such transitions. In the present PhD thesis, we hereafter focus on Eulerian methods for disperse-phase resolution. But if Eulerian models appear to be a potential answer to the shortages of Lagrangian methods, they nevertheless face difficulties in treating the polydispersity. As mentioned previously, this issue along with the spray evaporation are the two most paramount aspects required to be accurately described for combustion applications. Treating the droplets trajectories crossings (PTC) in case of inertial droplets with high Stokes numbers is an other difficulty for Eulerian kinetic based methods. Moreover, taking into account correct turbulent interactions driving the spray-gas mixture is not straightforward issue and requires an important modeling effort. Among existing models, there are only several Eulerian polydisperse models for evaporating droplets. Yet the issue of accurately capturing the evaporation characteristics under a reasonable CPU time remain a bottleneck problem. When it comes to turbulence disperse-phase modeling for industrial applications through Eulerian methods, most of them make use of monodisperse droplet distribution and uses different approach for modeling the particle-gas interactions. In the following of this chapter, we first discuss about Eulerian concepts which are able to predict particle trajectory crossing events. Then one moves on the Eulerian modeling strategies dedicated to predicting disperse-phase turbulence interactions. Afterwards, we will go into details on Eulerian polydisperse models for evaporating sprays. 2.4 Eulerian polykinetic modeling through kinetic based models The common aspect of Eulerian polykinetic models is the fundamental modeling of the velocity distribution function φu in Eq.(2.22). The basic mono-kinetic assumption for the velocity distribution that is a unique spray velocity for all droplets at a given time and position, leading a dirac δ-function φu = δu, has been the starting point for some Eulerian polydisperse models, discussed in section (2.6). Yet the latter approximation is not true for two-phase flows with inertial droplets in a gaseous carrier phase. In such flows the motion of droplets strongly depends on their inertia characterized by their Stokes number, based on the smallest time scale of the carrier flow which is, in case of a turbulent flow, the Kolmogorov scale or can be related to a strain rate as demonstrated by S. de Chaisemartin in his PhD [30]. For low Stokes numbers, the spray phase velocity is strongly correlated to the gas phase velocity and mono-kinetic velocity distribution is well adapted. Therefore, one can work with only velocity moments of zero and first order. Yet regimes with higher Stokes numbers St, droplets velocity are not well correlated locally with the gas velocity. This leads to an uncorrelated droplet motion either called the Random Uncorrelated Motion (RUM) [59] or the granular temperature [64]. The latter aspect drives the homoPTC phenomenon (see part 2.1.3.3). It is important that the velocity distribution φu locally reproduces polykinetic distribution, that is locally various velocities for same sized droplets at time t and location x.2.4 Eulerian polykinetic modeling through kinetic based models 42 2.4.1 Modeling categories and hierarchies The complete hierarchy of Eulerian methods, aiming at capturing homo-PTC is discussed in detail in [97]. We can divide up the Eulerian polykinetic approaches of the literature into two categories: • Algebraic-Closure-Based Moment Methods (ACBMM): A limited set of moments, usually up to second order moments, are chosen and transported. Since their transport involves higher order moments, these missing moments are computed from the knowledge of the lower order moments through equilibrium assumptions inspired from RANS turbulence modeling using explicit algebraic closures [166]. One example of this class of methods introduced in [113, 115] considers and transports a unique, scalar second order moment. Other second or third order moments are then computed from the knowledge of the transported moments to get the most accurate closure at a reduced cost. This type of approach has already reached the real application level [189, 109, 152]. However it has to face local realizability problems [162], i.e. the occurrence of moments not linked to a non-negative NDF, and the design of adapted numerics is not straightforward and has never been conducted since the mathematical structure of the underlying system of Eulerian equations is not clearly identified. • Kinetic-Based Moment Methods (KBMM): The main idea of this type of approach is to consider a set of moments for which we can associate in a one-to-one correspondence a unique kinetic velocity distribution with a sufficient number of parameters to control the given set of moments. This presumed NDF must be non negative and allows to evaluate high order moments needed in the system of moments for transport. Closures have been proposed to control moments up to second order [118, 187], up to the third order (CQMOM [198]), and up to the fourth order (Multi Gaussian [97]). Among the KBMM two categories emerge; the first is based on hydrodynamic equilibrium usually related to a given notional collision operator and the second is based on quadrature methods. The first category allows a well-defined mathematical structure and entropy inequality, whereas most of the time the second leads to weakly hyperbolic systems [20]. The main advantage with KBMM is the existence of dedicated numerical methods, which will guarantee the realizability and the stable behavior of the numerical schemes, either classical hyperbolic solvers [102, 179] or kinetic schemes [30, 198, 14]. In the following, let us be interested in KBMM rather than ACBMM methods since the former presents advantages over the latter in terms of realizability, mathematical structure and numerical scheme design. Although MG and CQMOM methods can capture a broad range of homo-PTC scales, these methods are costly due to the high number of velocity moments required to be transported. Towards the industrial applications framework, the compromise between the PTC accuracy and CPU cost can be achieve thanks to the transport of velocity moments up to second order. Let us precise that this implies that the NDF function is presumed such that third or higher order moments, naturally arising in the system derived form Eq.(2.14), are closed thanks to the lower order moments. In2.4 Eulerian polykinetic modeling through kinetic based models 43 that context the Eulerian polykinetic models based on the anisotropic Gaussian (AG) or the isotropic Gaussion (IG) function for φu in Eq.(2.14) are promising. 2.4.2 Isotropic and Anisotropic Gaussian velocity closure for homo-PTC For the sake of clarity on the methods discussed in this part, we consider a monodisperse droplet population under a constant and uniform temperature which undergoes the Stokes drag force through its one-way coupling interaction with the carrier gaseous flow. Moreover, the spatial dimension of our problem is in 2-D. Therefore, the NDF distribution presented in Eq.(2.22) reduces to the following form f (t, x,u) = φ (u − ud (t, x)) n (t, x) (2.23) where u = (u, v) t , while the kinetic equation becomes ∂tf + ∇x · (uf) + ∇u ·  1 τd (ug (t, x) − u) f  = 0. (2.24) The velocity distribution function is presumed through the Anisotropic Gaussian function by the following expression φ (u) = 1 (2π) 3/2 | Σ | 1/2 exp  − 1 2 (u) t Σ −1 (u)  (2.25) where Σ = 1 n Z (u − ud) ⊗ (u − ud) fdu. Let us recall that, for an Isotropic Gaussian (IG) distribution, Σ is isotropic Σ = σI. Integrating Eq.(2.24) over the velocity phase space leads to the following system of conservation laws with source terms related to the drag acceleration: ∂tM+ ∇x · F (M) = S (M) (2.26) where the moment M and fluxes F = (F1, F2) t take the expression: M = n   1 u v u 2 + σ11 uv + σ12 v 2 + σ22   , F1 = n   u u + σ11 uv + σ12 u 3 + 3uσ11 u 2 v + 2uσ12 + vσ11 v 2u + uσ22 + 2vσ12   ,S = n τd   0 ug − u vg − v 2 (uug − u 2 − σ11) uvg + vug − 2 (uv − σ12) 2 (vvg − v 2 − σ22)   (2.27) and F2 is deduced by obvious substitutions. Let us recall that only four equations will appear in 2.26 and be resolved if one works with an IG distribution instead of AG. The system (2.26) has been shown to be hyperbolic and admit entropies [10]. These properties allow to treat the shocks that can naturally appear in Eulerian moment models2.5 Turbulent disperse flow modeling through Eulerian kinetic based models 44 and also to rely on the large literature devoted to Godunov-like scheme. Yet the spray behavior under such models are complicated since one can observe both vacuum zones and stiff accumulations of droplets. Therefore some high order, realizability preserving, numerical schemes are developed to deal with such singularities [187]. In [187], it has been concluded, through comparisons with Lagrangian simulations, that the Anisotropic Gaussion (AG) distribution reproduces well homo-PTC for disperse-flow regimes characterized through small to moderate Stokes numbers. Moreover, its accuracy is higher than Isotropic Gaussian (IG) distribution since the PTC is an anisotropic phenomenon [187]. Yet IG requires less second order moments to be transported than AG, while still capturing the uncorrelated motion (granular temperature). Within the context of turbulence RANS or LES modeling, the last issue is necessary for modeling the correct energy partition inside the spray, as discussed in part 2.5. Computational costs being a bottleneck problem for industrial simulations, IG is a good candidate for deriving such turbulence models from moment system of equations, while providing lower costs compared to AG. IG will be also used for formulating a hybrid poydisperse-polykinetic model in the present thesis through Chapter 6 within the framework of Reynolds average modeling discussed in the next section. 2.5 Turbulent disperse flow modeling through Eulerian kinetic based models The NDF appearing in WBE is deterministic in a laminar flow but fluctuates in a turbulent flow. These fluctuations generally arise in one of three ways: (i) the Reynolds number in the continuous-phase model is large enough for the gas-phase velocity ug to be turbulent, (ii) the Reynolds number associated to a single droplet Red in the continuous-phase is large enough for the droplet velocity u to be turbulent, or (iii) the coupling terms between the phases lead to flow instabilities and turbulence [63]. Given the very small length and time scales encountered in disperse two-phase flows, the direct numerical simulation (DNS) of Eulerian models based on Eq.(2.14) is not affordable for industrial computations. In recent years, significant effort on disperse-phase turbulence modeling through Large Eddy Simulation (LES) or Reynolds-averaged (RA) techniques have been carried out to resolve the latter difficulty. The former technique consists in spatially filtering governing equations such that only energy containing large scales of the turbulence are resolved and smaller scales modeled. It has been discussed in [141, 63, 60, 142] that filtering-based LES formulations are not consistent with the underlying concepts used in turbulence modeling since they do not provide any statistical information on unresolved scales. The modeling concept of unresolved scales for disperse flow is very important since it conditions the flow regime: in LES, the characteristic fluid timescale used to define the Stokes number St is that of the smallest resolved scales. Because the resolved timescales in LES are much larger than the Kolmogorov timescales, the effective Stokes number in LES will be much smaller than in DNS. For this reason the correct statistical information on unresolved scales is of great importance. The required statistical consistence is rather obtained through the use of self-conditioned LES formulation recently presented in [142]. On the other hand, RA techniques consist on averaging2.5 Turbulent disperse flow modeling through Eulerian kinetic based models 45 an infinite realization of the same flow. Conceptually, this accounts for resolving only the averaged fields while modeling all fluctuations around them. The small scale interactions between particles and continuous-phase are modeled through these fluctuations. Moreover, Stokes number is based on integral time scale much bigger then Kolmogorov time scale and the time associated to the smallest resolved scale in LES. Therefore, both the modeling of fluctuations and the energy partitioning should be carefully and accurately achieved [64]. In case of either LES or RA turbulence modeling through Eulerian kinetic based methods, there are basically two ideas in the literature: • (i) turbulence modeling at the kinetic level: it consists of directly applying the adequate turbulence averaging (i.e. LES self-conditioned or RA ) on Eq.(2.14), providing appropriate closures at kinetic level. The second step is then to take moments of turbulent kinetic equation to obtain an Eulerian system. • (ii) turbulence modeling at macroscopic level: This method is to first derive moment equations through phase space integration of Eq.(2.14) then apply the turbulence averaging on the moment system and provide correct closures. Figure 2.3: Eulerian turbulence modeling through Reynolds-averaging or LES methods starting from the kinetic level of description. (i) denotes the turbulence modeling at the kinetic level, whereas (ii) represents turbulence modeling at macroscopic level In this part, let us give further details on both philosophies. For the sake of clarity, we take a simplified form of Eq.(2.14) through following assumption: (a) as the unique source term, the drag force under the Stokes law with constant τd is taken, (b) NDF function is simplified to f = f (t, x,u) (c) only one spatial dimension is considered for our problem. Eq.(2.14) is thus reduced to: ∂tf + ∂x (uf) + ∂u  1 τd (ug − u) f  = 0. (2.28)2.5 Turbulent disperse flow modeling through Eulerian kinetic based models 46 2.5.1 Turbulence modeling at the kinetic level Taking the average of Eq.(2.28) gives rise to the following equation ∂t hfi + ∂x (u hfi) + ∂u  1 τd (hugi − u)hfi  = − 1 τd ∂u u ′ g f ′ (2.29) with the operator h·i denotes either self-conditioned or spatially filtered or RA averaging. Therefore hfi is a probability density function (PDF) The final term in Eq.(2.29) is well known in the literature on very dilute gas-particle flows, fluid seen by the particle, and often modeled by the sum of a spatial flux and diffusion in velocity phase space [146, 200, 201] 1 τd u ′ g f ′ = −µ∂x hfi − λ∂u hfi, (2.30) for which details on the derivation of the diffusion coefficients µ and λ can be found in the literature [146, 200, 201, 80, 136]. In theory, these coefficients can be functions of the phase space variables or fluid-phase random variables. Yet let us point out that, in the context of isotropic turbulence modeling, these coefficients have been most of the time taken as constants either in LES or RA contexts [200, 201]. The turbulent kinetic equation closure through Eq.(2.30) allows us to conduct the second step towards the Eulerian moment system derivation. We therefore integrate Eq.(2.29) up to the second order in velocity, yielding the following moment system ∂t hM0i + ∂x hM1i =0, (2.31a) ∂t hM1i + ∂x (hM2i + µ hM0i) = 1 τd (hM0i hugi − hM1i), (2.31b) ∂t hM2i + ∂x (hM3i + 2µ hM1i)= 2 τd (hM1i hugi − hM2i) + 2λ hM0i, (2.31c) with hMki = Z u k hfi du. (2.32) Let us recall that the unknown moment M3 is classically calculated through rigorous mathematical approximations, from the reconstruction of hfi through its lower order moments [62]. It is straightforward to observe that the system (2.31) is completely closed, since the physical modeling problem for the term u ′ g f ′ in Eq.(2.29) has been already resolved through Eq.(2.30) at the kinetic level. 2.5.2 Turbulence modeling at macroscopic level The second strategy consists of taking either self-conditioned or spatially filtered or RA averaging of moment system of equation, see references [188, 114, 129, 153, 161] for LES and [64] for RA modelings. The first step is therefore to take the velocity moments of2.5 Turbulent disperse flow modeling through Eulerian kinetic based models 47 Eq.(2.28) yielding the system ∂tM0 + ∂xM1=0, (2.33a) ∂tM1 + ∂xM2= 1 τd (M0ug − M1), (2.33b) ∂tM2 + ∂xM3= 2 τd (M1ug − M2), (2.33c) with Mk = Z u k fdu. (2.34) For turbulence modeling, one applies the RA or self-conditioning or spatially filtering operator directly to the closed moment equation set (2.33) which gives rise to the following moment system ∂t hM0i + ∂x hM1i=0, (2.35a) ∂t hM1i + ∂x hM2i= 1 τd hM0i hugi − hM1i + M′ 0u ′ g  , (2.35b) ∂t hM2i + ∂x hM3i= 2 τd hM1i hugi − hM2i + M′ 1u ′ g  , (2.35c) where unknown terms M′ 0u ′ g M′ 1u ′ g should be properly closed. 2.5.3 Concluding remarks One can appreciate that unknown terms in system (2.35) should be consistent with the system (2.31) closed through the correlations given by Eq.(2.30). Yet the latter issue is not straightforward since it is not clear how to make the link between macroscopic variables in (2.35) and the internal variables of the PDF hfi at the kinetic level [64]. From that point of view, it is sometimes argued that finding a closure at the kinetic level would provide more accuracy [63]. Yet In the context of RA models, the necessity of describing the correct energy partitioning inside the spray requires separate models for the sprayphase turbulent kinetic energy (TKE), (the spatially correlated large-scale motion), and the granular-temperature (the spatially uncorrelated small-scale motion) [59, 175]. This implies that the kinetic closure Eq.(2.30) should involve the TKE which is actually a Eulerian quantity. Recalling that coefficients µ and λ in Eq.(2.30) are most of the time considered as constants, such a closure is not obvious for the RA modeling at the kinetic level. As contrast to the lack of RA modeling at the kinetic level, the fruitful work done in [64] has recently shown the potential of RA modeling at the macroscopic level. Through the Full Eulerian Reynolds averaging of the two-way coupled monodisperse collisional particles with the gas-phase, some consistent closures has been given in [64]. The correct energy partition inside the spray has been taking into account thanks to equations on the spray TKE, the temperature granular and adequate closures validated as compared to the theory [59, 175]. This method is therefore promising for industrial disperse-phase turbulence modeling.2.6 Kinetic based Eulerian simulation of polydisperse droplets 48 2.6 Kinetic based Eulerian simulation of polydisperse droplets We now focus on kinetic based Eulerian models able to describe both the polydispersity and the droplets evaporation. The idea is to briefly discuss about each of the several existing methods along their potential towards ICE applications. The derivation of some of the Eulerian polydisperse models are done in two steps. The first step consists of obtaining the semi-kinetic equation system through the integration in velocity and temperature of WBE and the second step is the derivation of Eulerian equations through the integration in size of the semi-kinetic system. Yet for the sake of simplicity, these methods are originally derived, assuming a monokinetic assumption for the NDF function but higher velocity moments could be considered. This implies that there are locally unique velocity and temperature for all droplets. It is therefore useful to first introduce the semi-kinetic modeling concept based on this strong assumption before discussing about each of relevant polydisperse models. 2.6.1 Semi-kinetic modeling under a monokinetic assumption We highlight here the main assumptions on the NDF and give its form under an equilibrium assumption with no dispersion for the velocity and the temperature distribution: • [H1] For a given droplet size, at a given point (t, x), there is only one characteristic averaged velocity ud (t, x, S) and one characteristic temperature Td (t, x, S). • [H2] The dispersion in the distribution function around the mean velocity is zero in each direction, whatever the point (t, x, S). • [H3] The dispersion in the distribution function around the mean temperature is zero in each direction, whatever the point (t, x, S). It is equivalent to presume the following NDF conditioned by droplet size: f (t, x, T, S) = n (t, x, S) δ (u − ud (t, x, S)) δ (T − Td (t, x, S)). (2.36) From this approximation, we can derive a system of moment equations for the spray taking the moments in velocity of order 0 and 1 and in internal energy e(T) of Equation (2.14). This gives rise to the semi-kinetic system of equations: ∂tn + ∇x · (nud) = ∂S (Rdn), (2.37a) ∂t (nud) + ∇x · (nud ⊗ ud) = ∂S (Rdudn) + Fd n, (2.37b) ∂t (ned) + ∇x · (nuded) = ∂S (Rdedn) + QdCv,l (Td) n, (2.37c) with Rd = RS (t, x,ud, S, Td), Qd = Q (t, x,ud, S, Td), ed = e (Td). (2.38) Let us recall that the semi-kinetic system, derived from the monokinetic assumption on the NDF, is weakly hyperbolic since no pressure like dispersion term arises in Eq.(2.37b)2.6 Kinetic based Eulerian simulation of polydisperse droplets 49 and Eq.(2.37c). Therefore, Eulerian methods which will be derived through system (2.37) will follow this pressure-less formalism. This remark is particularly important since the pressure-less system is known to generate delta-shocks and do not capture the homo-PTC [30]. To overcome this difficulties, these polydisperse methods can be coupled to Eulerian polykinetic approaches [39] which are already presented in part 2.4. 2.6.2 Eulerian polydisperse approach with size sampling Let us start with the size sampling approach. The size sampling approach [94, 9] also referred to as Multi-Class method, or Lagrangian-in-size method [131], considers the NDF as sampled regarding the size variable, yielding I classes of particles of same size, illustrated in Figure 2.4. The sampling approach is based on the following approximate NDF: f (t, x, T, S) = X I i Ni (t, x) δ (u − ui (t, x)) δ (S − Si (t, x)) δ (T − Ti (t, x)) (2.39) where Ni , Si , Ti and ui are respectively the droplet number density, size, temperature and velocity at the location (t, x). With this form, droplets with the same size are gathered into classes where i is the index of a class: the classes perform a sampling of the NDF over the whole phase space. The mass, momentum and energy conservation equation for each Figure 2.4: Size distribution with size sampling approach class i of the spray is obtained through the integration of Eq.(2.14) in size S, temperature T and the velocity u. The mass, momentum and heat source terms are evaluated as they depend on the sampled droplet variables. The Multi-Class approach can yield a satisfactory representation of the disperse phase size distribution, prevented that enough classes are considered and that they correspond to relevant points. Choosing a satisfactory sampling of a given distribution is a classical problem but here, it is coupled to the question of predicting the correct evolution of the2.6 Kinetic based Eulerian simulation of polydisperse droplets 50 spray, given such a distribution, which is a tough non-linear and implicit problem. So size samples are often chosen empirically. Moreover, as the approach is discretized regarding size with Dirac functions, the non-local transport cannot be accounted for properly: the size evolution due to sources (coalescence, break-up) is poorly rendered due to the fact that the samples have no particular reasons to match the new sizes. Conversely this technique is avoided when it comes to modeling discrete size-changing phenomena. Looking for the accurate evaporation, this method is not adapted for our problem. 2.6.3 Eulerian Multi-fluid model The Eulerian Multi-Fluid model (MF), also referred to as sectional method, was developed in [94] to account for the droplet size in a continuous and affordable manner. It is inspired from the seminal work in [174], furthered in [163, 73]. But the origin and assumptions of the Multi-Fluid model have been precisely presented in [94]. Based on the mono-kinetic assumption, the original MF method is at first order in size for the evaporation [93]. Yet it has been extended to a second order in size for the evaporation through the work of [93, 40]. Moreover, recent advances in [39] took into account size-velocity correlations for a rather precise description of hetero-PTC through two size moments. In this part, we will first focus on the derivation of the original MF, then providing some information on recent achievements and finally give a brief conclusion about the method. Figure 2.5: Size distribution with MF method 2.6.3.1 Original MF assumptions and the model derivation The original MF method is derived, adopting a mono-kinetic velocity and temperature distribution. Therefore this accounts of working with the same system given through Eq.(2.37). Yet, Eq.(2.37) has still a size phase-space S dependence. The Multi-Fluid model relies indeed on the choice of a discretization for the droplet2.6 Kinetic based Eulerian simulation of polydisperse droplets 51 size phase space: 0 = S0 < S1 < · · · < SNsec = ∞ (2.40) where Nsec is the number of sections. The system of conservation laws is then averaged over each fixed size interval [Sk−1, Sk[, called section. The set of droplets in one section can be seen as a “fluid” for which conservation equation are written, the sections exchanging mass, momentum and energy. The principle of sectional discretization is shown in Figure 2.5 and can be seen as a finite volume method on the size dimension, continuous sizevariation source terms (e.g. evaporation) resulting in fluxes at the edges of the size cells. In the following, let us recall the strategy to obtain a closed conservation equation system for each section through the integration in size of the semi-kinetic system (2.37). The velocity and the temperature are supposed to be independent of size variable within each section. Therefore the notation u(t, x, S) = u (k) (t, x) is chosen to designate the constant velocity distribution in section k. Similarly, one introduces presumed constant distribution within a section as T (t, x, S) = T (k) (t, x) which allows to define the sectional specific heat capacity c (k) d = cd,l T (k)  . The validity of these assumptions is linked to the strength of polydispersity in each section, which is quantified in a section by comparing the smallest to the biggest Stokes numbers. If the dynamic Stokes number spectrum is too wide, the discretization must then be refined [30, 41, 39] or or size-velocity coupled high order moments should be used within each section to improve the accuracy [39, 189]. For the polydispersity treatment, in each section, the form of n as a function of S is presumed which allows to reduce the size distribution information in each section at (t, x) to a set of moments of S. In the original MF method [94], the One-size Moment (OSM) method which consists of decoupling the contribution in size S from space-time (t, x) dependence by the following way: n (t, x, S) = κ (k) (S) m (k) 3/2 (t, x) (2.41) where κ (k) is a function of size S and m (k) 3/2 is the size moment corresponding to the spray mass density within the k th section which is expressed as: m (k) 3/2 (t, x) = Z Sk Sk−1 ρl 6 √ π S 3/2n (t, x, S) dS = 1 (2.42) which gives us, for the form κ (k) in one section: Z Sk Sk−1 κ (k) (S) ρl 6 √ π S 3/2 dS = 1 (2.43) As mentioned in [94], κ (k) (S) is taken as constant in size distribution . Let us know derive macroscopic MF equations. For the sake of simplicity, the spray temperature is assumed to be constant and uniform. From where, taking the integration in ρl 6 √ π S 3/2 of the semi-kinetic system (2.37) within a section [Sk+1, Sk[ leads to the2.6 Kinetic based Eulerian simulation of polydisperse droplets 52 following system of conservation equations: ∂tm (k) 3/2 + ∇x ·  m (k) 3/2ud (k)  = −  E (k) 1 + E (k) 2  m (k) 3/2 + E (k+1) 1 m (k+1) 3/2 , (2.44a) ∂t  m (k) 3/2ud (k)  + ∇x ·  m (k) 3/2ud (k) ⊗ ud (k)  = −  E (k) 1 + E (k) 2  m (k) 3/2ud (k) + E (k+1) 1 m (k+1) 3/2 ud (k+1) + m (k) 3/2F (k) d , (2.44b) where we define, in the kth section, the averaged velocity ud (k) = 1 m (k) 3/2 Z Sk Sk−1 ρl 6 √ π S 3/2ud (t, x, S) n (t, x, S) dS, (2.45) and the averaged drag term F (k) d = 1 m (k) 3/2 Z Sk Sk−1 ρl 6 √ π S 3/2Fd (t, x, S) n (t, x, S) dS. (2.46) Expressions for the evaporation terms E (k) 1 and E (k) 2 are given as E (k) 1 = 5S 3/2 (k−1) 2 h S 5/2 (k) − S 5/2 (k−1)iRd S(k−1) , (2.47) and E (k) 2 = 5 2 h S 5/2 (k) − S 5/2 (k−1)i Z S(k) S(k−1) 3 2 S 1/2Rd (S) dS, (2.48) 2.6.3.2 MF with two size moments per section Yet the OSM yields a lack of accuracy in terms of the size distribution and requires a great number of sections to counterbalance its drawback. An accurate method is therefore needed to capture polydispersity at the compromise of computational cost, but also ease of implementation and flexibility. Instead of increasing the number of sections, increasing the number of moments per section is a promising option. The works done in [93, 40] rely on solving two size moments in each section and the method is referred to as Two Size Moment (TSM) method. It consists in transporting moments corresponding to both the number m (k) 0 and the mass m (k) 3/2 instead of one unique moment per section. These moments are expressed as: m (k) 0 m (k) 3/2 ! = Z Sk Sk−1 1 ρl 6 √ π S 3/2 ! n (t, x, S) dS (2.49)2.6 Kinetic based Eulerian simulation of polydisperse droplets 53 The only realizability condition for a couple of size moments  m (k) 0 , m (k) 3/2  in a section is to be positive and to correspond to an average diameter that is in the size interval:  m (k) 0 > 0 and m (k) 3/2 > 0  or  m (k) 0 = m (k) 3/2 = 0 (2.50a) ρl S k−1 3/2 6 √ π ≤ m (k) 3/2 m (k) 0 ≤ ρl S k 3/2 6 √ π Respecting this realizability condition, there are several strategies in presuming an appropriate n. An exponential reconstruction called the exponential TSM (Exp-TSM) MF method, suggested in [45], was a first method, respecting the realizability condition. It has been proven to be well suited for evaporation, which requires mass flux information at the section boundary. The affine TSM (Aff-TSM) MF method is also based on a two-parameter approximation of the size distribution, through a positive affine function reconstruction, in each section. An early version was suggested in [93] and its more efficient extension has been recently proposed in [96]. 2.6.3.3 PTC with MF method As discussed before, droplets of different sizes can have different velocities due to the correlations between their sizes and velocities which yield to the hetero-PTC. Moreover, inertial droplets with the same size can have still different velocities, leading to the homoPTC. Yet TSM method which captures the polydispersity resolution at a second order accuracy under a lower number of sections than OSM method, is not well adapted for the modeling of PTC. This is due to the fact that all droplets within a section share the same velocity and temperature. In [39], this lack of PTC accuracy has been addressed and MF method has been extended to capture the PTC. • Hetero-PTC: Inspired from the work of Vi´e et al. [189] originally developed for high order moment methods (further detailed in section 2.7.6), the approach called Correlated Size-Velocity Two Size Moment (CSVTSM) method is designed to account efficiently for size-conditioned dynamics [39]. CSVTSM method, expected to be second order in size and velocity has been proven to suit well for coalescing cases. Yet additional to the two size moments transported in the original TSM MF method, two in 1D, four in 2D and six in 3D velocity moments per section are transported, having a significant impact on the CPU time. • Homo-PTC: Inspired from the Kinetic Based Moment Methods (KBMM) [97, 190], MF extended and applied to moderate-inertia particle-laden flows in order to capture small scale PTC [187]. The velocity distribution in the NDF function is no longer taken as a Dirac function but based on an anisotropic Gaussian (AG) distribution given. MF method under AG distribution is shown to be well-suited to account for homo-PTC [39, 42]. The method is promising for moderately dense polydisperse two-phase flows, to treat the portion of coalescing droplets that has a significant enough inertia.2.6 Kinetic based Eulerian simulation of polydisperse droplets 54 2.6.3.4 Conclusion on MF method So far in this part, one has discussed the capability of the MF model to capture the physics of polydisperse evaporating sprays. However, even though this approach has been extended to be more accurate by Laurent et al. [96] and [40] for evaporating sprays, the necessity to discretize the size phase space can be a stumbling block. In that context, the Eulerian Multi-Size Moment (EMSM) method developed in [83, 120, 87] provides to increase the polydispersity accuracy within each section while diminishing the number of sections. Yet it has been proven in [87], a very good accuracy under a shorter CPU time then MF method is obtained even with the use of only one section. More detail on EMSM method will be given in section 2.7. 2.6.4 High order moment methods through quadrature approaches An other way of describing the polydispersity is to track moments of WBE and to use a quadrature formula to compute the unknown high order size moments as a function of low order moments of the NDF. 2.6.4.1 Quadrature Method Of Moments (QMOM) The original QMOM approach consists in transporting and conserving a set of 2Np size moments M = M0, . . . , M2Np−1  with Mk (t, x) = R R+ ξ k f (t, x, ξ) dξ [196, 124, 106]. The NDF function is presumed by the following expression: f (t, x, ξ) = X Np i=1 wi (t, x) δ (ξ − ξi (t, x)) (2.51) with Np is the number of peaks, wi the weights, and ξi the abscissas. Thanks to the moment-inversion algorithm provided in [123], weights and abscissas are found from the relation Mk = X Np i=1 wiξ k i , k ∈ 0, 1, . . . , 2Np − 1. (2.52) To illustrate the QMOM method, let us work with a rather simplified WBE for the aerosols transported through the gas velocity ug ∂tf + ∇x · (ugf) = Λ (t, x, ξ) f (t, x, ξ). (2.53) After the size integrations of Eq.(2.53), the evolution of the kth order size moment is given by: ∂tMk + ∇x · (Mkug) = Z ξ ξ kΛ (t, x, ξ) f (t, x, ξ) dξ (2.54) The evolution of the NDF is therefore described by 2Np equations. Yet, The form of the function Λ can be complex and yields unclosed moments at the right hand side of system2.6 Kinetic based Eulerian simulation of polydisperse droplets 55 (2.54). The strategy adopted in QMOM method is to first reconstruct quadrature points through Eq.(2.52) and then compute unclosed integral terms as: Z ξ ξ kΛ (t, x, ξ) f (t, x, ξ) dξ = X Np i ξ k i wi (t, x) Λ (t, x, ξi (t, x)) (2.55) In particular, from the quadrature formula, the non-conserved moments can be computed simply: Mα = X Np i=0 wiξ α i (2.56) Yet the QMOM has a limitation for practical applications under the spray evaporation since the continous form of the distribution is required to be well described for an accurate evaluation of the disappearing flux of droplets at zero size. This is not possible such an expression given through Eq.(2.52). When using more quadrature nodes, QMOM is expected to be more and more accurate, the counterpart being a higher cost and a more difficult moment-inversion. 2.6.4.2 Direct Quadrature Moment of Methods (DQMOM) This quadrature method has been originally developed for cases where a multi-variate NDF function is required for WBE [106]. For example, the description of particle trajectory crossings within the multi-dimensional context requires to consider a velocity component for each spatial dimension. In order to evaluate its effectiveness in the context of evaporating polydisperse spray modeling, it has been also compared to the MF method in [65]. Let us now write down the form of the NDF for the DQMOM derivation as f (t, x,u, ξ) = X Np i wi (t, x) δ (u − ui (t, x, ξi)) δ (ξ − ξi (t, x)). (2.57) In this case, instead of transporting moments of the distribution, one transports all abscissas and weights of quadratures. This implies also transporting Np diracs. The following Eulerian equation system is given as: ∂twi + ∇x · (wiui) = ai , (2.58a) ∂t (wiξi) + ∇x · (wiξiui) = bi , (2.58b) ∂t (wiξiui) + ∇x · (wiξiui ⊗ ui)= ci , (2.58c) where source terms (ai , bi , ci ) are obtained from WBE, writing conservation equations on a set of chosen moments. Yet, in [65], it has been demonstrated that the DQMOM approach shows inaccuracies when it comes to predict droplet evaporations since as QMOM, it can not capture the pointwise value related to the number of disappearing droplets. Therefore, it does not provide a solution to our ambition to accurately simulate polydisperse evaporating droplets. Moreover, it has been proven to be inaccurate for PTC events for which the CQMOM approach is rather preferred [198].2.6 Kinetic based Eulerian simulation of polydisperse droplets 56 2.6.5 High order moment methods based on the Maximum entropy NDF reconstruction A promising alternative to QMOM is to reconstruct, among the infinity of solutions in the moment space, the unique NDF function, which maximizes the Shannon Entropy (ME) through its low order moments [125, 173], see Figure 2.6. Yet there are also other NDF reconstruction choices, like used in the description of aerosol Extended QMOM (EQMOM): a sum of beta PDF or gamma PDF, with the possibility to degenerate on quadratures, but sometimes with a loose of the highest moment in the reconstruction [199]. ME reconstruction technique and its associated numerical strategy for the accurate evaluation of evaporation dynamics has been proved to be very promising for applications in relations with polydisperse sprays [120]. Therefore, inspired from the basic assumptions of MF method [94], the Eulerian Multi Size Moment (EMSM) method has been developed in [83, 120, 87]. The ability of spray simulations under the unstructured mesh motion through EMSM has been successfully assessed in [86]. It has been shown in [87] that EMSM can reach comparable levels of accuracy, with a reasonable space discretization, with reference to a Lagrangian simulation, while leading to a much lower level of computational cost compared to the standard MF approach. Let us also mention that a more recent work called Coupled Size-Velocity Moment (CSVM) method has been developed, in [190], as an extension model of the EMSM, taking into account size-velocity correlations in the spray. In [190], a tabulation technique has been also developed to decrease significantly the CPU time associated to size moment reconstruction. Figure 2.6: Reconstruction of the size distribution through entropy maximisation (red dashed line), the real size distribution (black solid line).2.7 Eulerian Multi-Size Moment (EMSM) method 57 2.7 Eulerian Multi-Size Moment (EMSM) method It has been previously shown that, although the MF method offers an accurate resolution for the evaporating polydisperse spray, the necessity to discretize the size phase space, making use of several sections, requires to transport a system of governing equations for each section, thus increasing the CPU time. Let us recall that the computational time can be decreased through the use of a two-size moment MF method, while maintaining a good accuracy on the size distribution. Yet still more than one section is required. In [120], a four-size moment MF method has been developed, leading a very good accuracy both in case of only two and even one size section. Since one section is enough to capture accurately the polydisperse evaporating spray, this one-section technique has been adopted in developing the high order moment method, called Eulerian Multi-Size Moment (EMSM) method as already presented to be accurate in part 2.6.5, while providing lower CPU time. In the reminder of this section, let us go into details of the EMSM method with four-size moments1 . Firstly, its derivation strategy will be given. Then the bottleneck points in working with several size moments along with the associated realizability condition will be point out. Afterwards, we will discuss about dedicated numerical schemes developed in the literature and recent fruitful realizations. Then, one will briefly discuss about the recent work initiated from the basis of EMSM to capture the hetero-PTC. Finally, its implementation in the industrial code IFP-C3D as well as required developments towards ICE applications will be discussed. The latter aspect will guide the reader for the remaining chapters of the present manuscript. 2.7.1 Derivation of EMSM As was the case for MF method, the EMSM method is also based on a mono-kinetic assumption for both the temperature and the velocity distribution. Yet deriving a size moment system at macroscopic (Eulerian) level is rather different in EMSM compared to MF since the size distribution function n is kept smooth and following assumptions are done: ud (t, x, S) = ud (t, x), Td (t, x, S) = Td (t, x). (2.59) For the sake of simplicity, let us now take RS in Equation (2.14) as a constant, so that RS = Rd, and neglect the heat transfer term Q = 0. One first takes the moments of Eq.(2.37a) in size of order 0 up to 3. Then one takes the size moment of order one of Eq.(2.37b). Then the governing equations are given as: ∂tm0 + ∇x (m0ud) = −Rdn (S = 0), (2.60a) ∂tm1 + ∇x (m1ud) = −m0Rd, (2.60b) ∂tm2 + ∇x (m2ud) = −2m1Rd, (2.60c) ∂tm3 + ∇x (m3ud) = −3m2Rd, (2.60d) ∂t (m1ud) + ∇x m1ud 2  = −Rdm0ud + 18π ρ µgm0(ug − ud). (2.60e) 1EMSM can also be used in the context of a size discretization in each section as a hybrid approach making the link between Multi-Fluid and high order moment method [189]2.7 Eulerian Multi-Size Moment (EMSM) method 58 with mk = Z Smax 0 S kn (t, x, S) dS, (2.61) and the unclosed term n (S = 0) represents the number of disappearing droplets due to evaporation. Smax is the maximum size of the distribution. The system (2.60) has been investigated in [83, 120, 87] from both modeling and numerical point of view. The realizability issue is raised as the moment space in which the moment vector lives is a convex subspace of (R+) 4 but with a quite complex shape, as explained in part 2.7.2. Numerical methods (e.g. transport schemes) must be carefully developed to avoid approximations of the moment vector that would be out of the moment space, resulting in failure of the simulation. Phenomena involved in (2.60) (i.e, evaporation and convection) can be decoupled through an operator splitting approach [102]. Therefore, the subsystem that represents the evolution due to the evaporation and Stokes drag is given as: ∂tm0 = −Rdn (S = 0), (2.62a) ∂tm1 = −m0Rd, (2.62b) ∂tm2 = −2m1Rd, (2.62c) ∂tm3 = −3m2Rd, (2.62d) ∂t (m1ud) = −Rdm0ud + 18π ρ µgm0(ug − ud), (2.62e) whereas the one for the convection is expressed as: ∂tm0 + ∇x (m0ud) = 0, (2.63a) ∂tm1 + ∇x (m1ud) = 0, (2.63b) ∂tm2 + ∇x (m2ud) = 0, (2.63c) ∂tm3 + ∇x (m3ud) = 0, (2.63d) ∂t (m1ud) + ∇x m1ud 2  = 0. (2.63e) For the numerical resolution of both (2.62) and (2.63), the main issue is to keep the integrity of moment set at anytime of the computation. An appropriate closure for the term n (S = 0) in Eq.(2.62a) and an accurate evolution of moments mk through (2.62a)- (2.62d) due to evaporation require particular numerical strategy which will be detailed in part 2.7.4.1. The resolution of the pressure-less system (2.63) will be explained in section 2.7.4.2. 2.7.2 Moment space issue The major challenge for numerical methods designed for evaporation and transport is to keep the integrity of the moment vector m , i.e to ensure that m = (m0, m1, . . . , m3) t belongs to the moment space at any time of the resolution process. Yet, even if the moment space M3 (0, Smax) where lies the size moment vector m is convex, it has a complex geometry in the semi-open space (R +) 3 [120]. A simpler space can be determined by using the canonical moments [38]. The geometry of the space of the canonical moments2.7 Eulerian Multi-Size Moment (EMSM) method 59 vectors is much more simpler than the one of the moments since it is then the cube [0, 1]3 . It is therefore interesting to know their expressions. Let us right down the first four canonical moments: p0 = 1, (2.64a) p1 = m1 Smaxm0 , (2.64b) p2 = m0m2 − m2 1 m1 (Smaxm0 − m1) , (2.64c) p3 = (Smaxm0 − m1) (m1m3 − m2 2 ) Smax (m0m2 − m2 1 ) (Smaxm1 − m2) . (2.64d) So the actual moments read: m1 = m0p1Smax, (2.65a) m2 = m0p1S 2 max [(1 − p1) p2 + p1] , (2.65b) m3 = m0p1S 3 max (1 − p1) (1 − p2) p2p3 + [(1 − p1) p2 + p1] 2 . (2.65c) The canonical moments are then very useful in order to check the belonging to the moment space and design numerical schemes for system (2.62) and (2.63). The Hausdorff finite moment problem for the moments m is : finding a positive real valued function ˜n defined on [0, Smax] such that: m = Z Smax 0   1 S . . . S N   n˜ (m, S) dS (2.66) Yet if m belongs to the interior of M3 (0, Smax), there is an infinity of solutions. Let us recall that similar problems were tackled in different ways in the context of MF methods, previously introduced in section 2.6.3. In the case of MF-OSM [94], the positivity of only one size moment is enough to stay in the moment space, whereas for the case of MF-TSM [93, 45], the preservation of the moment space is conditioned through a more restrictive law given through (2.50). In the following, some reconstructions are introduced for an arbitrary number of moments in relation with the structure of the moment space. 2.7.3 NDF Reconstruction through an arbitrary number of moments In this part, one will discuss about available techniques for NDF reconstruction through its moments. Etude des facteurs de pertinence dans la recherche de ´ microblogs. Firas Damak To cite this version: Firas Damak. Etude des facteurs de pertinence dans la recherche de microblogs.. Information ´ Retrieval. Universit´e Paul Sabatier, 2014. French. HAL Id: tel-01074732 https://tel.archives-ouvertes.fr/tel-01074732 Submitted on 15 Oct 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.THESE ` En vue de l’obtention du DOCTORAT DE L’UNIVERSITE DE TOULOUSE ´ D´elivr´e par : l’Universit´e Toulouse 3 Paul Sabatier (UT3 Paul Sabatier) Pr´esent´ee et soutenue le 15/07/2014 par : Firas Damak Etude des facteurs de pertinence dans la recherche de microblogs. ´ JURY Claude CHRISMENT Professeur, Université Toulouse 3 Pr´esident du Jury Patrice BELLOT Professeur, Aix-Marseille Université Rapporteur Patrick GALLINARI Professeur, Université Pierre et Marie Curie Rapporteur Brigitte GRAU Professeur, ENSIIE Examinatrice Christian SALLABERRY MCF/HDR, UPPA Examinateur Mohand BOUGHANEM Professeur, Université Toulouse 3 Directeur Guillaume CABANAC MCF, Université Toulouse 3 Co-encadrant Karen PINEL-SAUVAGNAT MCF, Université Toulouse 3 Co-encadrante Ecole doctorale et sp ´ ´ecialit´e : MITT : Image, Information, Hypermedia Unit´e de Recherche : Institut de Recherche en Informatique de Toulouse (UMR 5505) Directeur(s) de Th`ese : Mohand BOUGHANEM, Guillaume CABANAC et Karen PINEL-SAUVAGNAT Rapporteurs : Patrice BELLOT et Patrick GALLINARI2Du plus profond de mon cœur, je dédie ce travail, À Mes parents Ridha et Sabeh Pour lesquels j’exprime mon amour et ma gratitude pour leur sacrifice et leur soutien moral. Ils n’ont eu de cesse de m’encourager et de m’offrir des conditions favorables durant la période de mes études. Que DIEU leur préserve une bonne vie. À Mes frères Farah et Mehdi Qu’ils trouvent dans ce travail l’expression de ma reconnaissance en leur souhaitant un avenir plein de succès et de bonheur. À Ma meilleure amie Ines Pour son soutien moral et pour les moments inoubliables que nous avons passés ensemble tout au long de ces années. À Toute personne qui m’a soutenu moralement durant la réalisation de ce mémoire, En témoignage de ma fidélité et mon attachement en leur souhaitant toute la joie et le bonheur du monde. . .4Remerciements Il m’est agréable de manifester ici toute ma gratitude à tous ceux et à toutes celles qui m’ont aidé de près ou de loin, afin d’aboutir au couronnement de quatre années de travail et de labeur. Toutefois je ne peux me permettre d’omettre de citer les honorables personnes auxquelles j’adresse ma modeste reconnaissance. Il s’agit de Monsieur Mohand Boughanem, Mme Karen Pinel-Sauvagnat et Monsieur Guillaume Cabanac, qui m’ont été d’un grand apport durant les moments les plus difficiles et ont atténué le poids du dépaysement. Elles m’ont permis de surpasser des périodes difficiles et ont fait renaître en moi la volonté d ’aller de l’avant et de continuer mon chemin vers la réussite. Je remercie chaleureusement Monsieur Claude Chrisment, Monsieur Christian Salaberry, Madame Brigitte Grau, Monsieur Patrick Gallinari et Monsieur Patrice Bellot d’avoir accepté de juger ce travail. Mes vifs remerciements s’adressent également à tous mes amis de l’IRIT qui m’ont prêté main forte pour la réalisation du projet : Mădălina, Dana, Ali, Mohamed, Rafik, Bilel, Lamjed, Arlind, Laure Eya, Ismail. Je tiens à remercier mes amis quotidiens de Toulouse : Faeiz, Bou7a, Marwa, Amine, Yessine, Faty, Sameh, Khouloud, Sami et Cycy. Enfin, je souhaite remercier toute ma famille et mes amis en Tunisie. i6Résumé Notre travail se situe dans le contexte de recherche d’information (RI) sociale et s’intéresse plus particulièrement à la recherche de microblogs. Les microblogs sont des messages de faible longueur à travers lesquels les utilisateurs publient des informations sur différents sujets : des opinions, des événements, des statuts... Les microblogs occupent aujourd’hui une part considérable de l’information générée sur le web. Dans Twitter, la plate-forme de microblogging la plus populaire, le nombre de microblogs par jour peut atteindre 500 millions. Les microblogs ont une forme différente des traditionnels documents. Leur taille est réduite par rapport aux blogs et aux articles publiés sur le web (140 caractères pour Twitter). De plus, les microblogs peuvent contenir une syntaxe spécifique telle que les #hashtags, les @citations ou bien encore des URLs. Les plateformes de microblogging représentent également un modèle de réseau social différent des autres réseaux sociaux. Les relations entre les utilisateurs ne sont pas forcément réciproques et les abonnements sont sans restrictions entre microbloggeurs. Les utilisateurs de plateformes de microblogging, outre la publication de microblogs, effectuent également des recherches. Les motivations de ces recherches sont diverses. Certaines sont similaires à la recherche sur le web (comme par exemple la recherche d’actualités), et d’autres sont spécifiques à la recherche de microblogs (comme par exemple la recherche temps réel ou d’informations sociales). Dans Twitter, 1,6 milliards de requêtes sont ainsi émises chaque jour. Les modèles de RI doivent s’adapter aux spécificités des microblogs : fraîcheur, aspect social et spécificités syntaxiques doivent ainsi être pris en compte. C’est dans ce contexte de recherche d’information dans les microblogs que se situent plus particulièrement nos travaux. Nous nous plaçons plus précisément dans le cadre de la recherche adhoc. L’objectif est de retrouver les microblogs répondant à un besoin d’information spécifié par un utilisateur. Nos travaux visent à améliorer la qualité des résultats de recherche d’information adhoc dans les microblogs. Nos contributions se situent à plusieurs niveaux : -Afin de déterminer exactement les facteurs limitant les performances des modèles de recherche classiques dans un corpus de microblogs, nous avons mené à une analyse de défaillance d’un modèle de recherche usuel. Nous avons sélectionné les 7RÉSUMÉ microblogs pertinents mais non retrouvés par le modèle de recherche. Ensuite, nous avons identifié les facteurs empêchant leur restitution. Nous avons trouvé que le problème principal vient de la concision des microblogs. Cette concision engendre une correspondance limitée entre les termes des microblogs et les termes des requêtes, même s’ils sont sémantiquement similaires. -Afin de compenser l’impact de la concision des microblogs, nous avons proposé et testé plusieurs solutions. Nous avons proposé d’étendre les requêtes (i) en exploitant des ressources de type actualités, (ii) en utilisant la base lexicale Wordnet, (iii) en applicant des techniques de réinjection de pertinence de l’état de l’art qui ont souvent prouvé leur efficacité : Rocchio pour identifier les termes susceptibles de ramener la pertinence ainsi que pour la pondération des termes de la nouvelle requête, et le mécanisme naturel d’extension de requêtes du modèle BM25. Dans Rocchio, nous avons testé différentes méthodes de calcul de poids de termes d’expansion. Nous avons enfin étendu les microblogs grâce aux liens (URLs) qu’ils contiennent. Nos expérimentations ont montré que l’emploi des URLs et l’expansion de requêtes sont primordiales pour la RI dans les microblogs. La plupart de ces expérimentations (expansion de requêtes et de microblogs) ont été réalisées en se basant sur le modèle vectoriel et sur le modèle probabiliste comme modèle de restitution. Ceci nous a permis de comparer les comportements des deux modèles sur les microblogs et avec les deux types d’expansion. De manière générale, nous avons trouvé que le modèle vectoriel est plus performant que modèle probabiliste au niveau de la sélection des microblogs pertinents (meilleur rappel). Cependant, le modèle probabiliste met plus en valeur les microblogs pertinents restitués par rapport à tous les microblogs restitués (meilleure précision). -Un deuxième volet de notre travail concerne l’étude des critères utilisés pour identifier les microblogs pertinents. Nous avons repris les critères souvent utilisés dans l’état de l’art (critères de contenu, critères sur l’importance des auteurs, critères sur les URLs) et nous les avons évalués. Nous avons réalisé cette analyse selon 3 axes. Dans le premier axe, nous avons analysé l’impact de la combinaison des scores des critères avec le score de pertinence du contenu, calculé avec un modèle de RI usuel. Dans le deuxième axe, nous avons étudié le comportement des critères dans les documents pertinents et les avons comparés avec leurs comportements dans les documents non pertinents. Dans le troisième axe, nous avons utilisé des techniques d’apprentissage ainsi que des algorithmes de sélection de critères qui peuvent être utiles en entrée de ces techniques d’apprentissages. De manière générale, nous avons montré que les critères en relation avec les URLs publiées dans les tweets sont les plus discriminants. Les critères liés aux auteurs ne reflètent pas la pertinence. -Afin de prendre en compte l’aspect temporel dans la restitution des microblogs pertinents vis-à-vis d’un besoin d’information, nous avons proposé trois méthodes qui intègrent le temps dans le calcul de la pertinence. Cette intégration du temps 8RÉSUMÉ n’a cependant pas montré son intérêt dans nos méthodes. Pour réaliser nos expérimentations, nous nous sommes basés sur le corpus fourni par la campagne d’évaluation internationale TREC (Text Retrieval Conference) dans la tâche Microblogs des années 2011 et 2012. Nos différentes contributions ont également fait l’objet de participations aux trois tâches de Microblogs de TREC (2011, 2012 et 2013). 9Abstract This work deals with the context of social information retrieval (IR), more particularly the retrieval of microblogs. Microblogs are messages of short length. They contain information on various topics :opinions, events, articles... Microblogs represent a significant part of the information generated on the Web. In the case of Twitter, the most popular platform, the number of microblogs can reach 500 million per day. Microblogs have a different form from traditional documents. Their length is reduced compared to traditional blogs and articles on the web (only 140 characters in the case of Twitter). Moreover, microblogs can have specific syntax such as #hashtags, @mentions or shortened URLs... Microblogging platforms are a social network model different from other social networks. Relationships between users are not necessarily reciprocal and subscriptions are unrestricted between microbloggers. Users of microblogging platforms do not only produce but they also search for information. The motivations of this research are diverse. Some are inspired from Web search (e.g. the search for news) and others are specific to the search for microblogs (e.g. real-time search or social information). In Twitter, 1.6 billion queries are issued every day. Though, the IR models must adapt to the specificities of microblogs : freshness, social aspect and syntactic characteristics must therefore be taken into account. The aim of our work is to improve the quality of the results of adhoc information retrieval in microblogs. Our contributions are at several levels : - In order to accurately determine the factors limiting the performance of conventional models of search in a corpus of microblogs, we conducted an analysis of failure of a conventional model search. We selected relevant microblogs. However, they are not found by the search pattern. Then, we identified the factors preventing their return. We found that the main problem is the shortness of microblogs. - To offset the impact of the shortness of microblogs, we proposed and tested several solutions : to extend the queries by (i) exploiting news articles, (ii) using the WordNet lexical database, (iii) applying techniques of relevance feedback of the state of art which often proved effective : Rocchio to identify terms likely to bring relevance and for weighting the terms of the new query, and the natural extension mechanism queries of the BM25 model. Using Rocchio, we tested different methods of calculating the weight of expansion terms. We finally extended microblogs thanks 10ABSTRACT to the links (URLs) they contain. Our experiments have shown that the use of URLs and the expansion of the query are crucial for IR in microblogs. Most of these experiments (expansion of queries and microblogs) were performed on the basis of the vector model and the probabilistic model, as a model of restitution. This allowed us to compare the behavior of the two models on microblogs and with the two types of expansion. In general, we found that the Vector Space Model is more efficient than the probabilistic one in the selection of relevant microblogs (better recall). However, the probabilistic model puts more value on relevant microblogs returned over all returned microblogs (better precision). - A second part of our work is concerned with the study of the features used to identify relevant microblogs. We selected the features often used in the state of art (content features, features on the importance of authors, URLs features and quality features).Then, we evaluated them. We conducted this analysis in 3 axes. In the first axis, (i) we studied the behavior of the features in the relevant documents and compared them with their behavior in non-relevant documents. In the second axis, (ii) we analyzed the impact of the combination of the features scores with the content’s score, calculated with a model of conventional IR. In the third axis, (iii) we used learning techniques as well as algorithms of feature selection that may be useful as input to the learning techniques. In general, we have shown that the features related to URLs posted in tweets are the most discriminating. The features related to the authors do not reflect the relevance. - To take into account the temporal aspect when selecting relevant microblogs, we have proposed three methods that incorporate time in the calculation of relevance. However, this integration of time did not show any positive impact in our methods. To perform our experiments, we used the corpus provided by TREC (Text Retrieval Conference) international survey in the task Microblogs for the years 2011 and 2012. Our various contributions have also been the subject of participations for the three tasks of Microblogs TREC (2011, 2012 and 2013). 11ABSTRACT 12Table des matières Résumé 7 Abstract 10 Table des matières 13 Table des figures 17 Liste des tableaux 19 Introduction 1 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 Problématiques de la RI dans les microblogs . . . . . . . . . . . . . . 4 4 Présentation des contributions . . . . . . . . . . . . . . . . . . . . . . 6 5 Organisation du mémoire . . . . . . . . . . . . . . . . . . . . . . . . . 7 1 RI Sociale 11 1 Information sociale dans le web . . . . . . . . . . . . . . . . . . . . . 12 1.1 Contenus générés par les utilisateurs (UGC) . . . . . . . . . . 12 1.2 Contenus générés par la pratique . . . . . . . . . . . . . . . . 14 2 RI : historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.1 Processus de RI . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.2 Modèles de RI . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.3 Évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 3 Utilisation des informations sociales en RI : RI sociale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1 Côté utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2 Côté documents . . . . . . . . . . . . . . . . . . . . . . . . . . 31 4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 13TABLE DES MATIÈRES 2 RI dans les microblogs 35 1 Présentation et spécificités des plate-formes de microblogging : cas de Twitter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 1.1 Présentation générale de Twitter . . . . . . . . . . . . . . . . 36 1.2 Spécificités des microblogs . . . . . . . . . . . . . . . . . . . . 41 1.3 Spécificités des recherches dans les microblogs . . . . . . . . . 43 2 Accès à l’information dans les microblogs . . . . . . . . . . . . . . . . 45 2.1 Recherche temps-réel de microblogs . . . . . . . . . . . . . . . 45 2.2 Recherche de microbloggeurs . . . . . . . . . . . . . . . . . . . 46 2.3 Détection d’opinions . . . . . . . . . . . . . . . . . . . . . . . 47 2.4 Classification thématique des microblogs . . . . . . . . . . . . 48 2.5 Détection de tendances . . . . . . . . . . . . . . . . . . . . . . 48 3 Recherche adhoc de microblogs . . . . . . . . . . . . . . . . . . . . . 49 3.1 Facteur de pertinence textuelle . . . . . . . . . . . . . . . . . 50 3.2 Facteur de pertinence social . . . . . . . . . . . . . . . . . . . 51 3.3 Facteur de pertinence temporelle . . . . . . . . . . . . . . . . 52 3.4 Facteur de pertinence d’hypertextualité . . . . . . . . . . . . . 53 3.5 Autres facteurs de pertinence . . . . . . . . . . . . . . . . . . 54 3.6 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4 Évaluation de la RI dans les microblogs . . . . . . . . . . . . . . . . . 55 4.1 La tâche TREC Microblog . . . . . . . . . . . . . . . . . . . . 55 4.2 Discussion sur les mesures d’évaluation . . . . . . . . . . . . . 57 5 Bilan et limites de l’état de l’art . . . . . . . . . . . . . . . . . . . . . 58 3 Analyse de défaillance des modèles de RI classique sur les microblogs 61 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 2 Méthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 3 Expérimentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.1 Cadre expérimental . . . . . . . . . . . . . . . . . . . . . . . . 62 3.2 Observations . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4 Expansion de requêtes et de documents 71 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 2 Expansion de requêtes . . . . . . . . . . . . . . . . . . . . . . . . . . 71 2.1 Exploitation des articles d’actualités . . . . . . . . . . . . . . 72 2.2 Exploitation de la base lexicale WordNet . . . . . . . . . . . . 74 2.3 Suggestions orthographiques . . . . . . . . . . . . . . . . . . . 75 2.4 Réinjection de pertinence . . . . . . . . . . . . . . . . . . . . . 76 14TABLE DES MATIÈRES 3 Expansion de microblogs . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.1 Expansion de hashtags dans les tweets . . . . . . . . . . . . . 80 3.2 Emploi des URLs . . . . . . . . . . . . . . . . . . . . . . . . . 81 4 Expansion de requêtes et de documents . . . . . . . . . . . . . . . . . 82 5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85 6 Bilan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 5 Analyse des facteurs de pertinence 89 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 2 Description des facteurs de pertinence . . . . . . . . . . . . . . . . . . 90 2.1 Facteurs de pertinence basés sur le contenu des tweets . . . . . 90 2.2 Facteurs de pertinence basés sur l’hypertextualité . . . . . . . 91 2.3 Facteurs de pertinence basés sur les hashtags . . . . . . . . . . 91 2.4 Facteurs de pertinence basés sur la popularité des auteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 2.5 Facteurs de pertinence relatifs à la qualité des tweets . . . . . 92 3 Méthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 3.1 Étude de la distribution des scores . . . . . . . . . . . . . . . 93 3.2 Étude par la combinaison linéaire des scores . . . . . . . . . . 93 3.3 Étude avec les techniques de sélection d’attributs . . . . . . . 94 4 Expérimentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.1 Étude par la distribution des scores . . . . . . . . . . . . . . . 94 4.2 Étude par la combinaison linéaire des scores . . . . . . . . . . 98 4.3 Étude avec les techniques de sélection d’attributs . . . . . . . 104 5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 6 Prise en compte du temps dans la recherche de microblogs 111 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 2 Emploi de la fraîcheur dans la restitution des microblogs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 2.1 Favoriser des tweets récents . . . . . . . . . . . . . . . . . . . 112 2.2 Favoriser les termes récents . . . . . . . . . . . . . . . . . . . 113 2.3 Observations . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 3 Prise en compte de la fréquence temporelle . . . . . . . . . . . . . . . 117 4 Analyse requête par requête . . . . . . . . . . . . . . . . . . . . . . . 118 5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 7 Conclusion générale 123 Références . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126 15TABLE DES MATIÈRES 16Table des figures 1.1 Processus en U de la recherche d’information . . . . . . . . . . . . . 16 1.2 Catégorisation des modèles de RI (Baeza-Yates et Ribeiro-Neto, 1999) 20 1.3 Exploitation de l’information sociale dans la RI . . . . . . . . . . . . 28 1.4 Résultats à partir du cercle social dans Google . . . . . . . . . . . . . 31 1.5 Recommandation de profils expert sur le sujet recherché sur Bing . . 31 2.1 L’interface graphique utilisateur de Twitter . . . . . . . . . . . . . . . 38 2.2 Informations des comptes utilisateurs sur Twitter . . . . . . . . . . . 39 2.3 Exemple d’utilisation de Twitter (avec tweets, retweets, abonnements et hashtags) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 2.4 Notification sur l’apparition de nouveaux résultats dans Twitter . . . 40 2.5 Tweet posté par @florencesantrot contenant une image et des hashtags (#Apple #iphone6cost1k). Il a été retweeté sept fois et favori une fois. 42 2.6 Suggestion de différents type de résultats dans le moteur de recherche de Twitter : des mots-clés, des hashtags, des comptes utilisateurs sont présentés. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 2.7 Les réseaux constituables à partir des données de Twitter . . . . . . . 52 2.8 Exemple de topic pour la tâche Microblog . . . . . . . . . . . . . . . 57 3.1 Répartition des tweets pertinents restitués avec le modèle vectoriel par rapport à tous les tweets pertinents connus pour chaque requête de 2011 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 3.2 Répartition des tweets pertinents restitués avec le modèle vectoriel par rapport à tous les tweets pertinents connus pour chaque requête de 2012. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 5.1 Distribution des scores des tweets pertinents et des tweets non pertinents (requêtes de 2011 à gauche et celles de 2012 à droite). . . . . . 97 17TABLE DES FIGURES 6.1 Distribution temporelle des tweets pertinents et non pertinents pour les requêtes de TREC Microblog 2012. Les rectangles représentent les tweets pertinents tandis que les losanges représentent les tweets non pertinents. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 18Liste des tableaux 2.1 Nombre de requêtes par jours (en milliard). Chiffres obtenus du site http://statisticbrain.com . . . . . . . . . . . . . . . . . . . . . . 37 2.2 Critères de pertinence . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.1 Récapitulatif des différents facteurs limitant l’efficacité du modèle de recherche sur les microblogs . . . . . . . . . . . . . . . . . . . . . . . 68 4.1 Emploi des articles de type actualité pour l’expansion de requêtes (avec et sans pondération des termes d’expansion, 1500 résultats par requête). Un astérisque indique une amélioration significative par rapport à la baseline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.2 Récapitulatif des différents runs testés sans pondération des termes ajoutés aux requêtes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 4.3 Test de l’amélioration des performance via la correction orthographique des requêtes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 4.4 Expansion de la requête initiale avec Rocchio. Les poids des termes d’expansion sont calculés avec TF.IDF. Un astérisque indique une amélioration significative par rapport à la baseline. . . . . . . . . . . 77 4.5 Expansion de la requête initiale avec Rocchio. Les poids des termes d’expansion sont calculés avec BM25. Un astérisque indique une amé- lioration significative par rapport à la baseline. . . . . . . . . . . . . . 77 4.6 Différentes configurations du modèle BM25. * montre une amélioration significative par rapport à configuration de base (run BM25). . . 78 4.7 Résultats après l’expansion de hashtags, avec le modèle vectoriel et le modèle BM25 (sans et avec paramétrage). . . . . . . . . . . . . . . 81 4.8 Apport de l’emploi des URLs avec le modèle vectoriel et le modèle BM25. * montre une amélioration significative par rapport au run précédent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.9 Emploi des tweets et des URLs et expansion de requêtes uniquement à partir des tweets.* montre une amélioration significative par rapport au run précédent. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 19LISTE DES TABLEAUX 4.10 Emploi des tweets et des URLs pour l’expansion et pour la restitution. * montre une amélioration significative par rapport au run précédent. 84 4.11 Résultats des meilleurs runs avec les tweets hautement pertinents. . . 86 4.12 Comparaison avec les résultats officiels de TREC 2012 . . . . . . . . 86 4.13 Emploi des tweets pour l’expansion et des tweets et des URLs pour la restitution sur les topics de TREC 2011. . . . . . . . . . . . . . . . 86 4.14 Comparaison avec les résultats officiels de TREC 2011 . . . . . . . . 87 5.1 Apport de chaque facteur de pertinence par rapport au modèle vectoriel (baseline VSM). . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.2 Apport de chaque groupe de facteurs de pertinence et de leurs combinaisons par rapport modèle vectoriel (baseline VSM). . . . . . . . . 100 5.3 Comparaison avec les résultats officiels de TREC 2011 . . . . . . . . 101 5.4 Apport des facteurs de pertinence pour le cas général. . . . . . . . . . 102 5.5 Apport des groupes de facteur de pertinence et de leurs combinaisons pour le cas général. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 5.6 Critères sélectionnés avec les techniques de sélection d’attributs . . . 106 5.7 Résultats (P@30), les scores en gras indiquent des améliorations significatives par rapport à la baseline . . . . . . . . . . . . . . . . . . 107 6.1 Amplification des scores de pertinence de contenu en fonction de leur fraîcheur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 6.2 Amplification des scores des termes en fonction de leur fréquence d’apparition dans le temps . . . . . . . . . . . . . . . . . . . . . . . . 114 6.3 Prise en compte de la fréquence temporelle. . . . . . . . . . . . . . . 118 6.4 Requêtes améliorées sur la mesure MAP pour les 3 méthodes . . . . . 119 20Introduction 1 Introduction Le web, créé au début des années 1990 et initialement composé de pages statiques reliées entre elles par des hyperliens, s’est rapidement orienté vers un cadre beaucoup plus collaboratif, dans lequel tous les internautes consultent, créent, partagent et diffusent de l’information. Ce changement est dû à la mise à disposition des internautes de plusieurs outils collaboratifs : les blogs, les wiki (Wikipedia en 2001) et les plate-formes sociales (Facebook en 2004 et Twitter en 2006), où les internautes ne se limitent plus à la consommation, mais contribuent également à la production des contenus. Ces outils prennent souvent la forme de réseaux sociaux qui se caractérisent par un ensemble d’entités, telles que des individus ou des organisations, qui sont reliées par des liens, d’amitié ou d’abonnement, permettant l’interaction sociale entre elles. Des quantités de contenus, toujours plus volumineuses, sont de ce fait créées tous les jours. Ce nouveau contexte de diffusion de l’information peut constituer un moyen efficace pour cerner les besoins en information des utilisateurs du Web, et permettre à la Recherche d’Information (RI) de mieux répondre à ces besoins. Les Systèmes de Recherche d’Information (SRI) doivent ainsi s’adapter aux nouvelles exigences et nécessités des utilisateurs, et aux spécificités de ces nouvelles sources d’informations. La prise en compte de ces informations sociales dans la restitution d’informations a engendré un nouveau paradigme de recherche : la RI sociale. Elle consiste à adapter les modèles et les algorithmes de la RI classique en exploitant les informations sociales développées avec l’arrivée du web 2.0. 2 Contexte Notre travail se situe dans le contexte de la recherche d’information sociale et s’intéresse plus particulièrement à la recherche de microblogs. Les microblogs sont des messages de faible longueur à travers lesquels les utilisateurs publient des informations sur différents sujets : des opinions, des événements, des statuts. . . Les micro- 1INTRODUCTION bloggeurs (les internautes qui publient des microblogs) utilisent des plate-formes de microblogging pour cette pratique. Parmi les plate-formes de microblogging, Twitter 1 est sans conteste la plate-forme la plus utilisée. Ces plate-formes sont de plus en plus exploitées (Kwak et al., 2010), aussi bien par des individus à titre personnel que dans des organisations, qui génèrent à travers les messages qu’ils écrivent et les liens qu’ils mettent en place des quantités importantes d’information. Nous pouvons nous référer, pour montrer l’importance de la quantité d’information publiée sur ces plate-formes, au 3 août 2013 lors d’une diffusion du dessin animé Castle in the Sky de Miyazaki 2 : 143 199 tweets ont été envoyés la même seconde. Cet événement avait cependant été préparé auparavant par les fans de Miyazaki. Ce jour-la, un record de 500 millions de tweets par jour est noté sur Twitter 3 . Les approches de RI classiques, élaborées pour traiter les documents traditionnels ou des documents de type page Web et qui se basent principalement sur le contenu textuel des documents et sur des statistiques des fréquences de termes, ne sont plus adaptées aux spécificités de cette nouvelle forme de contenu. Pour valoriser au mieux l’ensemble des informations de cette nouvelle source, les méthodes existantes de recherche d’information doivent être adaptées ou de nouvelles méthodes doivent être proposées. Ces nouvelles approches doivent tenir compte aussi bien des spécificités de ces informations que des motivations des internautes pour chercher dans ce type de ressources. Considérons les spécificités des microblogs. Tout d’abord, leur taille est réduite par rapport aux blogs et aux articles publiés sur le web. Les tweets par exemple sont limités à 140 caractères ; ils sont souvent composés d’une seule phrase, écrite en mode SMS. Cette spécificité participe à la concrétisation du facteur temps-réel des microblogs. En fait, elle encourage les microbloggeurs non seulement à partager plus fréquemment, mais à signaler tout ce qui se déroule dans leur vie en temps-réel. En outre, les plate-formes de microblogging sont aujourd’hui accessibles à travers plusieurs types de dispositifs (tablettes, smartphones. . . ). Un microbloggeur peut publier ainsi plusieurs microblogs chaque jour, contrairement à un bloggeur dont la fréquence de publication des articles est de plusieurs jours. De plus, afin de faciliter le suivi des sujets discutés, les plateformes de microblogging utilisent une syntaxe spécifique telle que les #hashtags et les @citation. Elles permettent également aux utilisateurs d’insérer des URLs et des images dans les microblogs. L’engouement pour les plate-formes de microblogging tient certainement aussi à l’aspect réseau social induit par les liens possibles. Cependant, les plate-formes de microblogging représentent un type de réseau social différent des autres réseaux 1. https://twitter.com 2. http://www.imdb.com/name/nm0594503/ 3. https://blog.twitter.com/2013/new-tweets-per-second-record-and-how 2INTRODUCTION sociaux. Les relations entre les utilisateurs ne sont pas forcément réciproques et les abonnements sont sans restriction entre microbloggeurs. D’autre part, les motivations pour exploiter ces sources sont particulières. Les microbloggeurs, outre la publication de tweets, réalisent des recherches sur les plateformes de microblogging. Dans Twitter, 1,6 milliards de requêtes sont émises chaque jour 4 . La recherche sur les plateformes de microblogging est spécifique, et ce pour deux raisons. Selon Teevan et al. (2011) la plate-forme de Twitter est utilisée non seulement comme une source d’information parmi d’autres du web, mais également comme une source d’information temps-réel qui permet d’obtenir des actualités, de les commenter et de les partager à l’instant de leur déroulement (par exemple, guerre à Gaza, bouchon sur l’autoroute A7). Pierre Guillou, dirigeant de la société IDEOSE, spécialisée dans l’accessibilité et les nouveaux usages du Web définit le web temps-réel comme : « l’ensemble des informations envoyées sur le Web par des personnes de façon instantanée et publique. Ces informations sont envoyées dans un même temps à un groupe de destinataires, publiées sur le Web et analysables par des logiciels de traitement de l’information. » Plusieurs outils sont ainsi apparus pour extraire tout type d’information en temps réel à partir des microblogs. Par exemple, en analysant près de 50 millions de tweets chaque jour, l’hédonomètre 5 créé par des chercheurs américains permet de connaître en temps-réel l’état d’esprit et l’humeur d’une grande partie de la population dans le monde entier. Diakopoulos et Shamma (2010) ont proposé un analyseur temps-réel permettant de visionner dynamiquement les sentiments des téléspectateurs au cours d’un débat politique. De plus, Teevan et al. (2011) ont montré que les utilisateurs cherchent des informations sociales dans ces plate-formes (26 % des utilisateurs). Ils l’utilisent pour plusieurs raisons telles que la recherche de personnes qui ont des intérêts similaires, ou de ce qu’un utilisateur est en train de dire. . . Les utilisateurs emploient ces plate-formes également pour suivre ce que les autres disent à propos du contenu d’un microblog ou un sujet en particulier. Ils utilisent ainsi les #hashtags et les @citation pour faire ces recherches verticales. Pour conclure, le microblogging a été conçu de manière à faciliter l’accès et la publication des informations. Par conséquent, cette source gagne de plus en plus d’intérêt, que ce soit pour partager ou pour acquérir de l’information. Les informations partagées dans ces plate-formes sont ainsi utilisées pour obtenir des opinions des consommateurs (Jansen et al., 2009a ; O’Connor et al., 2010), des convictions politiques (Tumasjan et al., 2010) et des actualités (Okazaki et Matsuo, 2010 ; Sa- 4. http://engineering.twitter.com/2011/05/engineering-behind-twitters-new -search.html 5. http://hedonometer.org/ 3INTRODUCTION kaki et al., 2010 ; Sankaranarayanan et al., 2009 ; Phelan et al., 2009). Jansen et al. (2009a) qualifient ces moyens de communication aujourd’hui comme la « bouche du monde ». Il est primordial pour les modèles de RI dans les microblogs de considérer les facteurs simplifiant l’accès et la publication des informations employés par les plateformes de microblogging. Ce sont en particulier, la fraîcheur, l’aspect social, et les spécificités syntaxiques des microblogs. C’est dans le contexte de recherche d’information dans les microblogs que se situent plus particulièrement nos travaux. Nous nous plaçons plus précisément dans le cadre de la recherche adhoc. L’objectif est de retrouver les microblogs répondant à un besoin d’information spécifié par un utilisateur. 3 Problématiques de la RI dans les microblogs Comme nous l’avons vu précédemment, un moteur de recherche de microblogs doit prendre en compte leurs spécificités ainsi que de nouvelles exigences des utilisateurs en termes de fraîcheur, de nouveauté d’information, et d’importance dans le réseau social, par exemple. D’un point de vue recherche d’information, si on projette les différentes spécificités des microblogs dans une tâche de recherche d’information, on pourra facilement identifier de nouvelles problématiques par rapport aux problématiques classiques de la RI, que ce soit au niveau de l’indexation ou bien au niveau de la restitution des informations, ou encore de l’évaluation des performances. Au niveau de l’indexation dans un cadre temps-réel, les microblogs arrivent avec une fréquence très importante, souvent par rafales correspondant à des événements, et doivent être indexés dès leur arrivée. Ce même index doit permettre également une lecture avec un accès rapide, afin de rendre disponible un microblog à l’instant de sa création et de satisfaire les besoins en informations des utilisateurs. Ceci s’oppose à la majorité des index ordinaires du web, qui sont souvent des index avec des architectures statiques avec des taux de mise à jour réduits. En outre, les moteurs de recherche usuels utilisent des robots qui se basent sur les liens hypertextes pour détecter les nouvelles pages, ce qui rend l’organisation des documents dans l’index dépendante des liens entre les pages. Cependant, pour une recherche temps-réel, les microblogs doivent être ordonnés en fonction de leur date de publication dans l’index afin de favoriser la fraîcheur des résultats au moment de la restitution. Ensuite, comme nous l’avons déjà motionné, les microbloggeurs tendent à écrire en mode SMS. Les messages peuvent contenir des termes mal-orthographiés, du jargon du net, beaucoup d’émoticônes (Bamman et al., 2012). . . S’ajoute à ceci l’emploi de syntaxes spécifiques à certaines plate-formes, tels que les hashtags et les mentions. Tous ces 4INTRODUCTION facteurs introduisent de nouvelles difficultés et demandent de faire des choix sur l’intérêt de les traiter au moment de l’indexation. À quel niveau le traitement est-il possible, sans ralentir l’indexation, et en respectant les conditions du temps-réel ? Ces mêmes caractéristiques des microblogs posent également des problèmes au niveau de la recherche et de la restitution des données : – Quelle est l’unité d’information la plus appropriée pour répondre aux besoins en informations ? Si un utilisateur recherche des informations concernant un sujet dans les plate-formes de microblogging, est-ce utile de restituer des microblogs, des hashtags, des synthèses de microblogs, des conversations, des profils, etc. ? – Quel est le modèle le plus approprié pour gérer les spécificités des microblogs et les exigences des utilisateurs ? Les modèles de RI, qui de manière générale se basent sur des facteurs tels que la fréquence des termes dans les documents et la longueur des documents, demeurent limités par la faible longueur des microblogs où les termes n’apparaissent pas plus d’une fois. Ces facteurs ont un sens quand la taille du document est importante. Quelles sont alors les solutions pour compenser ce manque de contenu ? De plus, les modèles usuels se basent sur le vocabulaire du document pour mesurer sa pertinence vis-à-vis d’une requête, alors que la pertinence dans les microblogs demeure théoriquement couplée avec d’autres facteurs tels que la fraîcheur de l’information, la popularité de l’auteur de l’information, la qualité du langage utilisé, etc., en complément de la pertinence sur le contenu. – Quels sont les facteurs qui reflètent vraiment la pertinence dans une tâche de recherche de microblogs ? Quels sont les moyens permettant d’évaluer les facteurs ? La plupart des approches de recherche de microblogs proposées dans l’état de l’art s’appuient sur différentes intuitions et définissent ainsi la pertinence comme la composition de plusieurs facteurs, en plus du facteur lié au contenu. Cependant, aucune évaluation individuelle de ces facteurs n’a été réalisée à ce jour. – Comment ces facteurs peuvent-ils être employés et combinés avec la pertinence du contenu ? Efron (2011a) déclare que les critères de pertinence reflètent certainement la pertinence. Cependant, il n’est pas toujours simple de déterminer comment les employer. La popularité des auteurs, par exemple, peut être considérée de différentes manières : l’activité de l’auteur, le nombre de ses amis, sa centralité dans le réseau social, etc. – La fraîcheur, est-elle vraiment un facteur crucial de pertinence ? Teevan et al. (2011) ont montré que l’une des motivations pour chercher les microblogs est la fraîcheur de l’information. Cependant, elle n’est pas l’unique motivation. Plusieurs recherches sur les microblogs visent des informations sociales ou des informations d’ordre général (des opinions de consommateurs par 5INTRODUCTION exemple). Ainsi, est-il utile d’intégrer la fraîcheur comme facteur de pertinence quel que soit le besoin d’information ? En recherche d’information, la troisième étape fondamentale, après l’indexation et la recherche, est l’évaluation. Cette phase permet de mesurer l’efficacité des approches et des choix faits durant les deux étapes précédentes. Depuis des décennies, le paradigme de Cranfield, qui établit l’évaluation des SRI à travers des corpus statiques, a dominé sur les expérimentations de la RI moderne. Cette méthode ne pose-t-elle pas un problème lorsqu’elle est appliquée dans une tâche pour laquelle le facteur temps-réel est primordial ? 4 Présentation des contributions Nos travaux visent à améliorer la qualité des résultats de recherche d’information adhoc dans les microblogs et nous nous focalisons donc sur les problématiques liées à la recherche. La tâche adhoc consiste en la restitution de microblogs pertinents vis-à-vis d’un besoin en information exprimé sous forme de mots-clés formant la requête. Nos contributions se situent à plusieurs niveaux : 1. Afin de déterminer exactement les facteurs limitant les performances des modèles classiques de recherche dans un corpus de microblogs, nous avons conduit une analyse de défaillance d’un modèle de recherche usuel. Nous avons sélectionné les microblogs pertinents mais non retrouvés par le modèle de recherche. Ensuite, nous avons identifié les facteurs empêchant leur restitution. À l’issue de cette analyse, nous avons proposé et testé plusieurs solutions permettant d’améliorer la qualité des moteurs de recherche. 2. Afin de compenser l’impact de la concision des microblogs, nous avons introduit et testé plusieurs propositions. La première consiste à exploiter des ressources de type actualités pour étendre les requêtes. Ensuite, nous nous sommes basés sur la base lexicale WordNet souvent utilisée en RI comme un moyen de désambiguïsation et d’extension de requêtes. Nous avons également analysé l’impact des approches connues en RI sur ce type de ressources. Nous avons appliqué des techniques de réinjection de pertinence de l’état de l’art, telles que Rocchio (1971), pour identifier les termes susceptibles de favoriser la restitution de microblogs pertinents, ainsi que la pondération des termes de la nouvelle requête et le mécanisme naturel d’extension de requête du modèle BM25. Nous avons testé différentes méthodes pour calculer les poids des termes. D’autre part, nous avons exploité les liens publiés dans les microblogs pour étendre les microblogs. Ces hyperliens représentent de l’information additionnelle qui complète les contenus des microblogs. Ainsi, nous les avons considérés pour enrichir la représentation du contenu textuel 6INTRODUCTION des microblogs. 3. Un troisième volet de notre travail concerne l’étude des facteurs de pertinence utilisés pour identifier les microblogs pertinents. Nous avons repris les facteurs de pertinence souvent utilisés dans l’état de l’art (de contenu, sur l’importance des auteurs, sur les URLs. . . ) et nous les avons évalués. Cette analyse est conduite selon trois axes. Dans le premier axe, nous avons étudié le comportement des facteurs de pertinence dans les microblogs pertinents et les avons comparés avec leur comportement dans les documents non pertinents. Dans le deuxième axe, nous avons analysé l’impact de la combinaison des scores des facteurs de pertinence avec le score de pertinence du contenu, calculé avec un modèle classique de RI. Dans le troisième axe, nous avons utilisé des techniques d’apprentissage ainsi que des algorithmes de sélection d’attributs pour identifier les facteurs de pertinence utiles, en entrée des techniques d’apprentissage. 4. Afin de prendre en compte l’aspect temporel dans la restitution des microblogs pertinents vis-à-vis d’un besoin en information, nous avons proposé trois mé- thodes qui intègrent le facteur temporel des microblogs dans le calcul de la pertinence. Chaque méthode prend en compte le temps à sa manière. – La première favorise les documents récents en appliquant la technique Kernel (Lv et Zhai, 2009) pour mesurer la distribution temporelle des documents. – La deuxième privilégie les termes présents fréquemment au moment de la soumission de la requête. – La troisième favorise les termes qui apparaissent fréquemment au moment de la publication du microblog. Afin d’évaluer l’apport de nos différentes contributions, nous nous sommes basés sur le corpus fourni par la campagne d’évaluation TREC (Text Retrieval Conference) pour la tâche Microblog en 2011 et 2012. 5 Organisation du mémoire Ce mémoire est constitué de deux parties : la première présente le contexte général dans lequel se situe notre travail, à savoir la recherche d’information sociale et plus précisément la recherche d’information dans les microblogs. La seconde partie détaille notre contribution. L’objectif de la première partie « De la recherche d’informations classique à la recherche d’information sociale » est de présenter les principes de la recherche d’information dans des contenus textuels, puis son application à l’environnement social. Cette partie comprend deux chapitres. 7INTRODUCTION Le chapitre 1 présente les nouveaux contenus sociaux, développés avec l’apparition des technologies du Web 2.0. Ensuite, nous exposons les fondamentaux de la RI classique pour arriver aux spécificités de la RI sociale. Les différents types d’information sociale dans le web sont ainsi décrits, à savoir les contenus générés par les utilisateurs et les contenus générés par les pratiques sociales. Nous abordons ensuite les notions et les concepts de base de la RI classique. L’architecture géné- rale d’un SRI y est présentée ainsi que les principaux modèles de recherche. Nous décrivons par la suite l’impact de l’emploi de l’information sociale sur la recherche d’information, en particulier dans la contextualisation des recherches ou bien dans l’enrichissement des ressources documentaires. Nous nous concentrons dans le chapitre 2 sur une source d’information particulière : les microblogs. Nous présentons dans ce chapitre la recherche d’information dans les microblogs. Nous commençons ainsi par la description des spécificités de ce type de contenu et nous nous basons sur la plate-forme Twitter pour montrer les différences avec les documents traditionnels du web . Nous détaillons les spécificités du contenu des microblogs ainsi que les motivations des utilisateurs à chercher dans cette source d’information. Nous listons ensuite les approches d’accès à l’information à partir des microblogs proposées dans la littérature, en en particulier la recherche d’information adhoc dans les microblogs (notre domaine de recherche). La seconde partie du mémoire intitulé « étude des facteurs de pertinence pour la RI dans les microblogs » expose nos contributions. Le chapitre 3 décrit notre contribution à l’identification des facteurs limitant l’ef- ficacité des modèles de RI classique dans un corpus de microblogs. Nous présentons une analyse de défaillance réalisée sur les résultats d’un modèle de recherche classique, dans une tâche de recherche de microblogs. Ce chapitre donne ainsi des pistes sur les considérations à prendre en compte pour améliorer la qualité des résultats. Le chapitre 4 présente des solutions pour certains problèmes soulevés dans le chapitre 3. Plusieurs méthodes d’expansion de requêtes sont proposées et employées. Ces méthodes exploitent des ressources de différents type pour étendre les requêtes : les articles de type actualité, la base lexicale WordNet et un outil de suggestion d’orthographe. Le feedback est également utilisé à travers l’emploi des méthodes connues d’expansion de requêtes : Rocchio et le modèle de recherche BM25. D’autre part, des méthodes d’expansion de microblogs sont employées, à savoir l’expansion de hashtags et l’emploi des contenus pointés par les URLs pour améliorer la représentation des microblogs. 8INTRODUCTION Le chapitre 5 présente une étude approfondie sur l’apport des facteurs de pertinence souvent utilisés dans les approches de l’état de l’art. Cette étude est réalisée en trois étapes : (i) la première étape consiste en la comparaison des distributions des scores des facteurs de pertinence entre les résultats pertinents et les résultats non pertinents. Les facteurs de pertinence ayant des comportements différents reflètent ainsi la pertinence. La deuxième étape est réalisée par la combinaison linéaire des scores des facteurs de pertinence. Les facteurs de pertinence améliorant la qualité des résultats reflètent ainsi la pertinence. Finalement, la troisième étape emploie les techniques de sélection d’attributs. Ces techniques permettent d’identifier automatiquement les meilleures combinaisons de facteurs de pertinence pour obtenir les meilleurs résultats. Le chapitre 5 présente une étude approfondie sur un critère de pertinence particulier : la fraîcheur du microblog. Trois approches qui emploient le temps dans la restitution de microblogs sont proposées. L’ensemble des évaluations se basent sur le corpus de tweets fourni par la campagne d’évaluation TREC (Text Retrieval Conference) dans la tâche microblogs des années 2011 et 2012. En conclusion, nous dressons le bilan de nos travaux reliés à la recherche d’informations dans les microblogs. Nous introduisons ensuite les limites et les perspectives de ces travaux à court et à long terme. 9État de l'artChapitre 1 RI Sociale Satisfaire un besoin d’information a été souvent couplé avec des pratiques sociales. Ce couplage peut être perçu à plusieurs niveaux. D’une part, avant la naissance des SRI, le chercheur d’information se basait sur ses liens sociaux pour satisfaire son besoin. Le premier réflexe consistait à interroger les personnes qu’il connaissait et qui avaient des intérêts similaires. Ceci pouvait être réalisé également en interrogeant les amis, les proches ou simplement des bibliothécaires. D’autre part, l’information est souvent produite dans des situations sociales, à travers des discussions et des collaborations entre les différents membres de groupes de personnes, partageant les mêmes objectifs et les mêmes centres d’intérêts. L’arrivée de l’internet et en particulier les technologies du web 2.0 a complètement révolutionné ces pratiques. L’internaute aujourd’hui consulte les plus grandes bibliothèques et ressources scientifiques (Wikipédia 1 ), utilise les moteurs de recherche pour trouver instantanément les informations (Google, Bing), discute avec d’autres utilisateurs ayant les mêmes centres d’intérêts (forum et blog), développe ses connaissances et relations sociales (réseaux sociaux), commente et consulte les avis des autres internautes (social bookmarking),. . . Les utilisateurs, en utilisant les technologies du web 2.0, génèrent directement ainsi de nouveaux contenus appelés contenus générés par les utilisateurs (UGC). D’autres types d’information sont générés indirectement, comme par exemple, les liens sociaux, les profils ainsi que leurs traces de navigations. Ces données sont appelées contenus générés par la pratique. L’exploitation et plus particulièrement l’accès à ces contenus, récemment générés, très spécifiques en terme de nature, de format, de structure et de volume, demande la définition de modèles de RI qui vont au-delà des modèles classiques définis dans le domaine de la RI depuis quelques années. En effet, les documents visés par les modèles de la RI classique se composent uniquement par leurs contenus textuels. Cependant, avec le web 2.0, plusieurs éléments, en plus du contenu textuel, doivent 1. http://www.wikipedia.org/ 11CHAPITRE 1. RI SOCIALE être considérés, tels que les informations sociales, les commentaires et les notes des internautes. . . Ces documents peuvent avoir un format spécifique (les microblogs par exemple font au maximum 140 caractères) et une syntaxe particulière. Par consé- quent, pour chercher dans ces contenus, le modèle de recherche doit gérer toutes ces spécificités. Dans ce chapitre, nous allons commencer par présenter les nouveaux contenus sociaux, développés avec l’apparition des technologies du web 2.0. Nous exposerons ensuite les principales bases de la RI classique pour arriver aux spécificités de la RI sociale. 1 Information sociale dans le web L’information sociale dans le web est basée sur l’internet de plus en plus influencé par des services intelligents (présentés dans la suite), qui permettent à l’utilisateur de contribuer au développement, d’annoter et de collaborer à la production du contenu. Les utilisateurs sont passés de simples consommateurs à producteurs d’information. Leurs contributions peuvent être de différentes natures : les contenus publiés dans les plate-formes sociales telles que les blogs et les wikis, les réactions, les informations publiées par les autres utilisateurs telles que les annotations et les commentaires, etc. L’ensemble de ces informations est appelé contenus générés par des utilisateurs (UGC : User Generated Content). 1.1 Contenus générés par les utilisateurs (UGC) Le terme « contenu généré par les utilisateurs » est devenu populaire en 2005 grâce au développement des moyens de production collaboratifs tels que les Wiki, les blogs, les forums, le social bookmarking, les plateformes de microblogging. . . Nous définissons en détail ci-après ces moyens de production : – Wiki : un wiki est une application web permettant à ses utilisateurs de créer, modifier et supprimer des contenus de manière collaborative. L’information par conséquent est construite avec la participation de plusieurs personnes. Les wikis peuvent avoir plusieurs objectifs : outil de gestion de connaissances, outil de prise de notes, site communautaire, Intranet. . . Le premier wiki s’appelait Wikiwikiweb. Il a été développé par Ward Cunningham à Portland, Oregon, en 1994. L’application a été mise en ligne en 1995. Aujourd’hui, l’exemple le plus connu de wiki est Wikipedia 2 , qui contient plus de 22 millions d’articles dans 278 langues différentes 3 . Un wiki se caractérise par l’encouragement à la 2. http://www.wikipedia.org/ 3. http://en.wikipedia.org/wiki/WIKIPEDIA 12CHAPITRE 1. RI SOCIALE création des liens hypertextes de sorte que chaque page soit reliée à plusieurs autres pages et chaque terme clé ou concept avec sa définition. – Blog : Le blog est un type de site web sur lequel un internaute tient une chronique personnelle ou consacrée à un sujet particulier. Il s’agit d’un espace individuel d’expression, créé pour donner la parole à tous les internautes (particuliers, entreprises, artistes, hommes politiques, associations. . . ), d’une part, et pour permettre à tous les visiteurs de réagir sur le sujet évoqué, en postant leurs commentaires sur les articles, créant ainsi une relation privilégiée entre l’auteur et ses lecteurs. Les plate-formes de blogs les plus connues sont Overblog 4 , Blogger 5 , SkyrockBlog 6 et CanalBlog 7 . – Forum : Un forum est un lieu d’échange d’informations où les internautes posent ou répondent à une question donnée. Les différentes contributions forment un fil de discussion (thread en anglais). Chaque forum de discussion se consacre à un thème précis. Par exemple, CFPOI World 8 se spécialise sur les animaux, alloforum 9 sur les voitures. . . Les messages publiés dans les forums sont archivés. Ceci permet aux internautes d’y participer d’une manière asynchrone. Contrairement aux blogs, les messages sont organisés chronologiquement, du plus ancien au plus récent. – Social bookmarking : Le social bookmarking est un moyen pour stocker, classer, chercher et partager les liens favoris. Ces favoris seront ainsi accessibles à partir de n’importe quel point d’accès à l’internet, et non pas forcément à partir d’une machine personnelle. Ce principe simplifie ainsi leurs partages avec les autres internautes et permet de les récupérer même à partir de différentes machines. Un internaute a la possibilité de partager ses bookmarks, et également de regarder ce que les autres ont trouvé intéressant pour annoter. Selon Ebizmba 10, Delicious 11 est le site plus populaire de social bookmarking. – Plate-forme de microblogging : Le microblogging dérive directement du concept des blogs. La différence réside principalement dans la longueur des publications. Les microbloggeurs sont souvent limités à un nombre de caractères qui est de l’ordre de 140 caractères (cas de Twitter). Toutefois, les microbloggeurs peuvent partager des images ou des liens externes dans leurs messages. Ce facteur encourage par conséquent les internautes à partager des microblogs plus fréquemment. Certaines plate-formes de microblogging se focalisent sur 4. http://www.over-blog.com/ 5. http://www.blogger.com/ 6. http://www.skyrock.com/blog/ 7. http://www.canalblog.com/ 8. http://www.animalforum.com/ 9. http://ma850.alloforum.com/ 10. http://www.ebizmba.com 11. http://delicious.com/ 13CHAPITRE 1. RI SOCIALE des thèmes spécifiques tels que Blipper 12 (livres, musiques, jeux, etc.) et Flixter 13 (films). Cependant, les sujet discutés dans Twitter, la plate-forme de micrblogging la plus populaire, ne sont pas contraints. 1.2 Contenus générés par la pratique Ce deuxième type d’information sociale est produit au travers des différentes pratiques que les internautes réalisent tout au long de leurs sessions de navigations. On peut citer : – Les traces des utilisateurs : elles comportent les différentes pages web visitées par les utilisateurs, les clics, les durées de visites. . . Ces données peuvent être utilisées afin de déterminer les préférences des utilisateurs et leurs thématiques de recherche. – Les données personnelles : elles se composent des informations que l’utilisateur fournit au moment de son inscription sur les réseaux sociaux. – Les liens sociaux : la plupart des plate-formes sociales définissent des règles de liaison entre leurs différents utilisateurs. Ces règles diffèrent d’une plate-forme à une autre. Prenons par exemple le cas de Twitter, il n’y a pas de restriction dans les liens sociaux. N’importe quel utilisateur peut s’abonner à un autre utilisateur, sans avoir forcément son accord (à moins que le compte soit privé, ce qui est rarement utilisé). Par opposition, dans le cas de Facebook, les deux utilisateurs doivent être d’accord pour partager leurs informations. L’explosion des ressources sociales avec de nouvelles spécificités a permis l’émergence d’une nouvelle branche de la Recherche d’Information : la RI sociale. Il s’agit d’adapter les modèles et les algorithmes de la RI classique afin d’exploiter les informations sociales. Dans ce qui suit, avant de présenter les impacts de la prise en compte de l’information sociale dans la RI, nous présentons brièvement les concepts de base de la RI classique. 2 RI : historique La recherche d’information (RI) traite de la représentation, du stockage, de l’organisation et de l’accès à l’information (Manning et al., 2008). L’objectif de la RI est de faciliter, pour un utilisateur, l’accès à l’information qui correspond à son besoin. Selon Baeza-Yates et Ribeiro-Neto (1999), un système de recherche d’information (SRI) doit fournir à l’utilisateur, d’une manière simple, l’information à laquelle il s’intéresse. Un SRI doit ainsi comprendre exactement la nature du besoin en information de l’utilisateur, sélectionner l’ensemble des documents qui traitent 12. http://blipper.com 13. http://flixter.com 14CHAPITRE 1. RI SOCIALE de son besoin et finalement ordonner les éléments sélectionnés selon leur degré de pertinence décroissant. 2.1 Processus de RI Satisfaire un besoin en information se traduit concrètement par la mise en correspondance d’un besoin d’information exprimé souvent sous forme de mots-clés, d’une part, et des informations disponibles dans les documents textuels d’une collection. Ce processus se déroule au sein d’un système de recherche d’informations (SRI). Un SRI est un ensemble logiciel assurant l’ensemble des fonctions nécessaires à la recherche d’information. Ces fonctions sont traduites via ce que l’on appelle le « processus en U » de la recherche d’information. La figure 1.1 (Belkin et Croft, 1992) en montre ces trois phases principales : – l’indexation : crée un index à partir d’un corpus de documents. L’objectif de l’indexation est l’homogénéisation des représentations, tout en rendant l’accès rapide et efficace à l’ensemble des documents. Elle permet d’extraire les mots importants et caractéristiques d’un document. – le requêtage : c’est l’étape durant laquelle l’utilisateur exprime son besoin d’information. Cette étape peut engendrer une reformulation de la requête initiale. La requête soumise par l’utilisateur subit les mêmes traitements que ceux réalisés sur les documents au cours de leur indexation. – l’appariement : consiste à mesurer la similarité entre le besoin d’information et les descripteurs des documents dans l’index. 2.1.1 Indexation Les documents à leur état brut sont difficiles à exploiter tels quels lors de la phase de recherche. Ainsi, l’objectif principal de cette étape est de fournir des représentations des documents et des requêtes facilement exploitables par la machine dans la phase de recherche. Cette représentation est souvent une liste pondérée de mots-clés significatifs que l’on nomme descripteurs du document (ou de la requête). L’indexation peut être manuelle, semi-automatique ou automatique. – Indexation manuelle : c’est un spécialiste ou un documentaliste qui analyse le document et sélectionne par la suite les termes qu’il trouve représentatifs. L’indexation manuelle fournit une terminologie spécifique pour indexer et rechercher les documents, garantissant ainsi une meilleure représentation des documents et une meilleure qualité des résultats. Cependant, ce type d’indexation demande plus de temps et d’efforts que les autres. En outre, un degré de subjectivité lié au facteur humain fait que le même document peut être indexé de différentes façons par des personnes différentes, et même par la même personne mais à des moments différents (Furnas et al., 1987). 15CHAPITRE 1. RI SOCIALE Collection de documents Indexation Représentation des documents Producteur de documents Comparaison – Appariement requête - document Personne avec des buts, des intentions, etc. Besoin d’information ou état anormal de connaissance Requête Indexation Représentation des requêtes Documents sélectionnés Utilisation et/ou évaluation Modification Reformulation de la requête Figure 1.1 – Processus en U de la recherche d’information – Indexation automatique : dans ce cas, c’est un ensemble de processus appelés robots d’indexation, qui réalisent de manière automatisée la tâche. C’est l’approche suivie par la majorité des SRI, en raison de sa rapidité et son coût réduit par rapport à l’indexation manuelle. – Indexation semi-automatique : elle se base sur l’indexation automatique. Toutefois, une intervention humaine peut être réalisée afin d’effectuer des choix sur les termes significatifs, et pour valider la représentation finale des descripteurs. Ces choix sont souvent réalisés en utilisant un thésaurus ou une base terminologique qui est une liste organisée de descripteurs (mots-clés) liés à des règles terminologiques propres et reliés entre eux par des relations sémantiques. D’une manière générale, l’indexation automatique comprend une chaîne de traitements automatisés. Ils sont appliqués sur les documents et également sur les requêtes. On distingue : l’extraction des mots, l’élimination des mots vides de sens, la normalisation et la pondération. – Extraction des mots : cette étape consiste, dans un premier temps, à traiter chaque document afin de pouvoir extraire le texte comme une suite de caractères. Autrement dit, elle vise à résoudre les problèmes résultants des différents formats et encodages des documents, pour avoir en finalité uniquement le texte sous forme d’une séquence linéaire de caractères et de rejeter les éléments de forme. Ensuite, la séquence de caractères est découpée en une liste de termes 16CHAPITRE 1. RI SOCIALE susceptibles d’être indexés par une analyse lexicale. Une analyse lexicale permet d’identifier les termes en reconnaissant les espaces de séparation des mots, des caractères spéciaux, des chiffres, les ponctuations, etc. – Élimination des mots vides : les textes contiennent souvent des termes non significatifs appelés mots vides (pronoms personnels, prépositions. . . ). Cette étape est réalisée par l’utilisation d’une liste de mots vides ou par le rejet de mots dépassant un certain nombre d’occurrences dans le document. L’élimination des termes vides a ses avantages et ses inconvénients. D’une part, pour certaines requêtes, la présence des termes vides joue un rôle très important. C’est le cas par exemple des requêtes contenant des entités nommées ou des expressions avec des prépositions (« Le Monde » qui est un journal). Cependant, leurs élimination réduit considérablement la taille des index et limite leurs effets négatifs sur les calculs statistiques. – Lemmatisation : Cette étape vise à réduire un terme à une forme canonique. La lemmatisation regroupe les différentes formes que peut revêtir un mot, soit : le nom, le pluriel, le verbe à l’infinitif, etc. Par exemple, le mot « jouer », verbe à l’infinitif ni accordé, ni conjugué est un lemme. Il possède différentes flexions qui correspondent à ses formes conjuguées à diverses personnes et temps : « il jouera », « nous jouons », « ils ont joué ». . . Grâce à la lemmatisation, les documents contenant différentes formes d’un même terme auront les mêmes chances d’être restitués. D’autre part, ceci va éviter à l’utilisateur de saisir les différentes formes des termes lors de la recherche. Par conséquent, cette étape réduit la taille de l’index et améliore le rappel (la part des documents pertinents retrouvés par le SRI par rapport à tous les documents pertinents). Cependant, elle peut réduire la précision (la part des documents pertinents par rapport à tous les documents restitués). Par exemple, l’ensemble des termes « operate operating operates operation operative operatives operational » va devenir « oper », ce qui implique une perte de précision pour des requêtes telles que : « operational and research ; operating and system ; operative and dentistry ». On distingue quatre types principaux de lemmatisation : en consultant un dictionnaire (ex. Tree-tagger (Schmid, 1994)), en utilisant les règles de transformation (ex. Porter Stemmer (Porter, 1980)), par troncature après X caractères et la méthode de n-grammes (Mayfield et McNamee, 2003). – Pondération : Cette étape vient après l’identification des termes des documents et leur normalisation. Les termes qui représentent un document n’ont pas la même importance. De ce fait, un poids est associé à chaque terme. Estimer l’importance d’un terme n’est pas une tâche simple. Prenons le cas d’une collection d’un million de documents. Un terme qui existe dans tous les documents n’est pas utile dans l’index parce qu’il ne peut fournir aucune information sur le document qui pourrait intéresser un utilisateur. Cependant, 17CHAPITRE 1. RI SOCIALE un terme qui apparaît dans 5 documents uniquement peut être de grande valeur puisqu’il permet de pointer les documents pertinents. Pour ces raisons, des mesures qualitatives sont calculées au moment de l’indexation pour chaque terme. D’une part, ces mesures permettent d’estimer le degré d’importance des termes dans les documents. D’autre part, elles permettent d’éviter un temps de calcul supplémentaire durant la phase de l’appariement. La plupart de ces mesures sont basées sur les facteurs TF et IDF, qui permettent de combiner les pondérations locales (dans le document) et globales (dans la collection) d’un terme. TF (Term Frequency) : cette mesure est proportionnelle au nombre d’occurrences d’un terme dans un document (pondération locale). Toutefois, il existe différentes variantes de cette mesure qui dépendent de la façon dont la pertinence est mesurée. L’inconvénient du TF se situe au niveau de la pertinence globale. Certains termes sont plus significatifs que d’autres, bien qu’apparaissant avec la même fréquence dans un document. Par exemple, dans une collection de documents traitant de la compétition Roland Garros, le terme Nadal est plus important que le terme tennis, même si ces deux termes apparaissent équitablement dans un document. Pour cette raison le TF est souvent couplé avec la mesure IDF. IDF (Inverse Document Frequency) : se calcule selon la formule suivante : IDFt = log N dft + 1! (1.1) N est le nombre de documents dans la collection et dft est le nombre de documents dans lesquels le terme t apparaît. Cette mesure calcule la fréquence d’un terme dans la collection (pondération globale). Comme le montre la formule 5.1, cette mesure met en valeur les termes rares et limite l’importance des termes fréquents dans la collection. La combinaison de TF et IDF fournit une autre mesure importante : T F IDFt,d = T Ft,d ∗ IDFt (1.2) Cette mesure donne pour un terme t un score important s’il apparaît fréquemment dans peu de documents et un score faible si le terme apparaît rarement dans un même document ou dans beaucoup de documents. 2.1.2 Requêtage Les mêmes étapes que celles réalisées sur les documents sont répétées sur les requêtes. Cependant, aucun index n’est créé. Une fois la normalisation des termes effectuée, une représentation des termes est préparée. Cette représentation dépend de la méthode de recherche (ou modèle de 18CHAPITRE 1. RI SOCIALE recherche) utilisée au niveau de l’appariement. Par exemple, si le modèle utilisé est le modèle vectoriel (discuté dans un prochain paragraphe), la requête va prendre la forme d’un vecteur dans un espace où chaque terme distinct du corpus représente une dimension. Si le modèle est le modèle booléen, alors le système doit créer des formules logiques avec les termes de la requête en utilisant les opérateurs AND, OR et NOT. . . Les SRI modernes pratiquent également des traitements complémentaires comme l’extension de requête (Vechtomova et Wang, 2006). 2.1.3 Appariement Une fois les documents indexés et la requête analysée, le SRI procède à l’appariement entre la requête et les documents. De cette mise en correspondance résulte un score de pertinence reflétant le degré de similarité entre la requête et le document. En d’autres termes, le système prédit si l’utilisateur trouvera des informations pertinentes ou non dans le document. Ce score est calculé à partir d’une valeur appelée RSV (q, d) (Retrieval Status Value), où q est une requête et d un document. Cette mesure tient compte des poids des termes calculés au moment de l’indexation. Les SRI actuels calculent des scores sous forme décimale. Ceci permet d’ordonner les documents restitués. La qualité de cet ordonnancement est primordiale. En effet, l’utilisateur se contente généralement d’examiner les premiers documents renvoyés (les 10 ou 20 premiers). Si la qualité des informations présentes dans cette tranche n’est pas satisfaisante, l’utilisateur considérera le SRI comme mauvais vis-à-vis de sa requête. Différents modèles de RI ont été proposés dans la littérature afin de formaliser la pertinence, des modèles les plus naïfs basés sur l’appariement exact jusqu’aux modèles plus élaborés basés sur l’appariement flou. Dans la suite, nous présentons les principaux modèles de la littérature. 2.2 Modèles de RI Les modèles de RI visent à fournir un cadre théorique pour interpréter la notion de pertinence et permettent ainsi de classer les documents vis-à-vis un besoin d’information. Un modèle de recherche d’information est représenté par le quadruplet [D,Q,F, R(q,d)] : – D est l’ensemble des représentations des documents dans la collection. – Q est l’ensemble des représentations du besoin d’information de l’utilisateur. – F représente le cadre de modélisation des documents et des requêtes, ainsi que les relations entre eux. Les relations peuvent être des relations booléennes, des vecteurs ou des distributions de probabilités des termes. 19CHAPITRE 1. RI SOCIALE – R(q,d) est la fonction d’ordonnancement qui attribue un score de pertinence pour le couple composé par une représentation de la requête q ∈ Q et d’une représentation d’un document d ∈ D. La fonction d’ordonnancement reflète l’intuition du modèle utilisé. Par exemple, pour le modèle booléen, F correspond à la théorie des ensembles. Pour le modèle vectoriel, F repose sur un espace vectoriel de N-dimensions, des représentations de requêtes et de documents sous formes de vecteurs. . . Il existe une multitude de modèles de RI. La figure 1.2 présente la classification des modèles de RI selon (Baeza-Yates et Ribeiro-Neto, 1999). Comme illustré dans cette figure, les modèles de RI peuvent être regroupés selon le type du modèle mathématique utilisé, en trois grandes classes, à savoir : Figure 1.2 – Catégorisation des modèles de RI (Baeza-Yates et Ribeiro-Neto, 1999) – Les modèles ensemblistes : ces modèles trouvent leurs fondements théoriques dans la théorie des ensembles. On distingue le modèle booléen pur (boolean model), le modèle boolen étendu (extended boolean model) et le modèle basé sur les ensembles flous (fuzzy set model). – Les modèles vectoriels, basés sur l’algèbre, plus précisément le calcul vectoriel. Ils englobent le modèle vectoriel (vector model), le modèle vectoriel généralisé (generalized vector model), Latent Semantic Indexing (LSI) et le modèle connexionniste. – Les modèles probabilistes, qui se basent sur les probabilités. Ils comprennent le modèle probabiliste général, le modèle de réseau de document ou d’inférence (Document Network) et les modèles de langue. Dans le modèle booléen, les documents et les requêtes sont représentés sous la forme d’un ensemble de termes. Ainsi, comme suggéré dans (Gudivada et al., 1997), 20CHAPITRE 1. RI SOCIALE il s’agit d’un modèle ensembliste. Dans le modèle vectoriel, les documents et les requêtes sont représentés sous formes de vecteurs dans un espace de N-dimensions. Pour le modèle probabiliste, le cadre de modélisation des documents et des requêtes est basé sur la théorie des probabilités. Nous présentons dans la suite les principaux modèles issus de chacune de ces trois classes. Nous renvoyons le lecteur aux nombreux manuels introductifs à la RI (Baeza-Yates et Ribeiro-Neto, 1999 ; Manning et al., 2008) pour des présentations exhaustives des modèles de RI. 2.2.1 Modèle Booléen Le modèle Booléen (Salton, 1968) est un modèle qui se base sur la théorie des ensembles et l’algèbre de Boole. Le modèle Booléen prend en compte uniquement la présence et l’absence d’un terme dans les documents : considérons le poids d’un terme i dans un document j wi,j ∈ {0, 1}. Les poids des termes dans la matrice terme-document sont binaires. La requête q est, elle aussi, composée de termes reliés par des opérateurs logiques (ET, OU et NON). Ainsi le modèle vérifie si le document satisfait les conditions représentées par les termes de la requête. Le modèle booléen évalue si un document est pertinent ou non pertinent. Le score de chaque document sera ainsi représenté respectivement par 0 ou 1. La décision binaire de pertinence sans aucune notion de graduation (exact match) réduit la qualité des résultats (notion de silence). En outre, les expressions booléennes ont une sémantique précise, ce qui rend la traduction du besoin d’information en une expression booléenne une tâche difficile. Ainsi, la majorité des expressions booléennes formulées par les utilisateurs sont simples (1 seul opérateur). Même si la définition du besoin d’information sous forme d’une expression booléenne n’est pas toujours évidente pour les utilisateurs, le modèle booléen se caractérise par un formalisme simple et clair (représentation binaire des termes dans l’index). L’inconvénient principal est l’absence d’ordonnancement des résultats (car tous les RSV = 1), ce qui résulte parfois en la restitution d’un nombre très important ou très faible de documents. 2.2.2 Modèles vectoriels Le modèle vectoriel (Salton et al., 1975) propose un cadre dans lequel la pertinence partielle est possible. Le poids des termes des documents et des requêtes n’est plus binaires. Le poids est utilisé pour mesurer la similarité entre les documents et le besoin d’information. Les documents sont ainsi ordonnés selon leur degré de similarité décroissant : du plus similaire au moins similaire ayant le score le plus faible. Le modèle vectoriel prend en compte les documents répondant partiellement 21CHAPITRE 1. RI SOCIALE au besoin d’information. En outre, le modèle fournit une réponse plus raffinée que le modèle booléen dans le sens où il permet de sélectionner et de trier les documents. Dans le modèle vectoriel, le document et la requête sont représentés par des vecteurs. Le degré de similarité entre un document dj et une requête q est mesuré comme la corrélation entre les vecteurs ~dj et ~q. Cette corrélation peut être calculée par le cosinus entre les deux vecteurs. sim( ~dj , ~q) = d~ j .~q | ~dj |×|~q| = Pt i=1 q wi,j×wi,q Pt i=1 w2 i,j× qPt i=1 w2 i,q (1.3) D’autres fonctions de similarité ont été proposées dans la littérature, parmi lesquelles on peut citer les mesures de Jaccard et Dice (Manning et al., 2008). Les poids des termes des requêtes et des documents dans les vecteurs sont géné- ralement des scores basés sur T F.IDF. Ainsi, wi,q = (1 + log(tfi,q)) × log( N ni ) qP k ((1 + log(tfk,q)) × log( N nk ) 2 ) (1.4) wi,dj = (1 + log(tfi,dj )) × log( N ni ) qP k ((1 + log(tfk,dj )) × log( N nk ) 2 ) (1.5) avec T F représenté par 1 +log(tfi,dj ) et IDF représenté par log( N ni ). Le reste de la fonction est utilisé pour la normalisation des scores. Les avantages principaux du modèle vectoriel sont les suivants : tout d’abord, la pondération non binaire des termes favorise une meilleure qualité des résultats. Ensuite, le modèle permet une correspondance partielle ou approximative entre les documents et les requêtes (best match). Les documents sont triés selon leur degré de similarité vis-à-vis de la requête. La longueur des documents est traitée naturellement dans l’appariement, car elle est considérée dans le calcul des poids des termes. Théoriquement, le modèle vectoriel a l’inconvénient de considérer que les termes de l’index sont tous indépendants. Cependant, en pratique, la prise en compte globale de la dépendance des termes peut faire baisser la qualité des réponses d’un système (Baeza-Yates et Ribeiro-Neto, 1999) car les dépendances sont généralement locales. C’est pour toutes ces raisons que le modèle vectoriel est encore populaire de nos jours en recherche d’information, et reste souvent utilisé comme une baseline (modèle de référence) lors de l’évaluation d’autres méthodes. 2.2.3 Modèle probabiliste Le modèle probabiliste a été proposé par Robertson et Sparck Jones (1988). Il propose une solution à la problématique de la RI dans un cadre probabiliste : la 22CHAPITRE 1. RI SOCIALE fonction de pertinence du modèle probabiliste se base sur le calcul de probabilités de pertinence des documents pour les requêtes données. Le principe de base consiste à retrouver des documents qui ont, dans le même temps, une forte probabilité d’être pertinents, et une faible probabilité d’être non pertinents. Ainsi, on distingue deux classes de documents pour une requête qi : les pertinents (R) et les non pertinents (R). Par conséquent, deux mesures de probabilité sont calculées : P(R|dj ) la probabilité que le document dj soit dans R et P(R|dj ) la probabilité que ce document soit dans R. Ainsi, la pertinence entre le document dj et la requête q est calculée par : RSV (q, dj ) = P(R|dj ) P(R|dj ) (1.6) En appliquant la règle de Bayes et après quelques transformations, la formule précédente donne : RSV (q, dj ) = P(dj |R) P(dj |R) (1.7) Dans le modèle probabiliste de base, la représentation des documents est composée par des poids binaires indiquant la présence ou l’absence des termes, si on suppose que les termes sont indépendants, la formule 1.7 devient : RSV (q, dj ) = X ti∈T xi · log pi(1 − qi) qi(1 − pi) (1.8) avec T est l’ensemble de tous les termes, xi = 0 si le terme i n’apparaît pas dans le document j ou bien xi = 1 si le terme i apparaît dans le document j. pi = P(ti ∈ D|R), qi = P(ti ∈ D|R), 1 − pi = P(ti ∈/ D|R) et 1 − qi = P(ti ∈/ D|R). Lorsque des données d’apprentissage pour l’évaluation ne sont pas disponibles, on retrouve le facteur idf probabiliste intégré dans le modèle vectoriel : RSV (q, dj ) = X ti∈T xi · log N − Ri Ri  (1.9) avec N le nombre de tous les documents et Ri est le nombre de documents contenant ti . Nous rappelons que, dans le modèle de base, les termes ont des poids binaires dans les documents, indiquant leur présence ou absence. La prise en compte des fréquences des termes dans les document a fait l’objet de plusieurs modèles variant du modèle de base. Par exemple, dans le modèle BM25 (Robertson et al., 1996) le calcul du poids d’un terme dans un document intègre différents aspects relatifs à la 23CHAPITRE 1. RI SOCIALE fréquence locale des termes (tfi), leur rareté et la longueur des documents : xi = (k1 + 1) · tfi k1 × ((1 − b) + b × dl avgdl + tfi (1.10) avec dl est la taille du document dj , avgdl est la moyenne des tailles des documents dans la collection et k1 ,b sont des paramètres qui dépendent de la collection ainsi que du type des requêtes. 2.3 Évaluation L’évaluation des approches de RI est nécessaire afin d’estimer leur performance. C’est un moyen qui permet également de comparer différents systèmes et d’étudier l’impact des facteurs employés dans les approches. Un bon SRI doit satisfaire le besoin d’information de l’utilisateur. La qualité des résultats par rapport à ce besoin, la rapidité du système et la facilité d’utilisation du système représentent les principaux facteurs à évaluer pour un SRI (Mandl, 2007). Nous nous intéressons ici à celui qui nous semble le plus important : la capacité d’un système à sélectionner des documents pertinents. Le mode d’évaluation généralement utilisé aujourd’hui est basé sur celui développé dans le projet Cranfield (Cleverdon et al., 1966) communément appelé le paradigme de Cranfield. Ce paradigme définit la méthodologie d’évaluation des SRI en se basant sur 3 éléments : un corpus de documents sur lequel les recherches sont effectuées, un ensemble de requêtes de test (besoins des utilisateurs) et la liste des documents pertinents pour chacune des requêtes (la vérité terrain). L’idée générale de ce paradigme est de créer un environnement unique afin de pouvoir comparer les systèmes équitablement. Cet environnement est appelé la collection de test. 2.3.1 Collection de test Les collections de test permettent de comparer directement des résultats obtenus par des systèmes en utilisant des modèles différents. Nous détaillons ci-dessous les différentes parties de ces collections. – Les requêtes sont un ensemble de besoins d’information utilisés pour le test. Cet ensemble est appelé également topics dans le jargon des campagnes d’évaluations telles que TREC, INEX. . . Le nombre de requêtes doit être important afin d’être le plus représentatif possible de la réalité et pour avoir une évaluation objective. Il faut au moins 25 requêtes pour garantir la qualité de l’évaluation au regard de la statistique (Buckley et Voorhees, 2000). Les requêtes sont souvent créées par les assesseurs des organismes qui organisent l’évaluation. Toutefois, elles peuvent être de vraies requêtes extraites à partir des logs des moteurs de recherche (Baeza-Yates et Ribeiro-Neto, 1999). 24CHAPITRE 1. RI SOCIALE – Le corpus de documents est l’ensemble de documents présélectionnés. Il existe plusieurs corpus disponibles. Ces corpus diffèrent selon plusieurs critères en fonction de la tâche de recherche que l’on veut évaluer, des documents plus ou moins vulgarisés, plus ou moins spécialisés dans un domaine, dans une langue ou une autre. . . – Les jugements de pertinence identifient les documents pertinents pour une requête et représentent la vérité terrain. Un score de pertinence graduel peut éventuellement être associé pour chaque couple document/requête. La réalisation de ces jugements est loin d’être une tâche facile. Il s’agit d’un processus long et coûteux impliquant des humains. Pour de petites collections comme celle de Cranfield, il existe des jugements de pertinence exhaustifs pour chaque paire requête-documents. Cependant, pour les grandes collections modernes, les jugements ne se font généralement que pour un sous-ensemble des documents pour chaque requête. L’approche la plus standard est celle du pooling (Jones et Rijsbergen, 1976), où la pertinence est évaluée sur un sous-ensemble de la collection formé à partir des premiers documents retournés par un certain nombre de systèmes différents (généralement ceux à évaluer), et parfois complété par d’autres sources telles que les résultats de recherches booléennes par mots clés ou des documents trouvés par les chercheurs experts dans un processus interactif. De nombreux projets basés sur des corpus d’évaluation se multiplient depuis les années 1970. On peut par exemple citer la collection Cranfield ou encore la campagne CLEF (Cross Language Evaluation Forum) 14. La campagne la plus connue est sans conteste TREC (Text REtrieval Conference) organisée annuellement depuis 1992 par le NIST 15 et la DARPA 16. Elle a pour but d’encourager la recherche documentaire basée sur de grandes collections de test, tout en fournissant l’infrastructure nécessaire pour l’évaluation des méthodologies de recherche et de filtrage d’information. Dans ce qui suit, nous présentons les corpus les plus populaires issus de différents projets d’évaluation : – Conférence Text Retrieval (TREC). Le US National Institute of Standards and Technology (NIST) a organisé une grande série d’évaluations depuis 1992. Dans ce cadre, plusieurs tâches qui se basaient sur différentes collections d’essais ont été définies. On peut par exemple citer les collections utilisées pour la tâche adhoc entre 1992 et 1999. Au total, ces collections comprennent 6 CD contenant 1,89 millions de documents et les jugements de pertinence pour 450 besoins d’information. Les premières collections étaient composées chacune de 50 besoins d’information, évalués sur différentes ensembles de do- 14. http://www.clef-initiative.eu/ 15. National Institue of Standards and Technology (www.nist.gov) 16. Defense Advanced Research Project Agency 25CHAPITRE 1. RI SOCIALE cuments. TREC 6-8 fournit 150 besoins d’information sur environ 528 000 articles. Étant donné les collections de documents si grandes, il n’y a pas de jugements de pertinence exhaustifs. Au contraire, les jugements de pertinence sont disponibles uniquement pour les documents qui sont restitués parmi les premiers documents retournés pour les systèmes qui ont participé à l’évaluation (pooling). – Le projet NTCIR a développé diverses collections d’essais de tailles similaires aux collections de TREC, en se concentrant sur les langues d’Asie de l’Est et la recherche d’information multilingue. Les requêtes sont faites dans une langue, toutefois, les collections de documents contiennent des documents dans une ou plusieurs autres langues. – CLEF (La campange Cross Language Evaluation Forum) a également proposé plusieurs collections. Elle s’est concentrée sur les langues européennes et la recherche d’information multilingue. On trouvera plus de détails sur l’évaluation à base de collections de test dans (Sanderson, 2010). 2.3.2 Mesures d’évaluation En RI, la mise au point des modèles passe par une phase expérimentale qui suppose l’utilisation de métriques qui visent à comparer des modèles entre eux ou à mettre au point leurs paramètres. Les deux métriques de base les plus utilisées pour évaluer l’efficacité de la RI sont la précision et le rappel. Celles-ci sont définies pour le cas simple où un système renvoie un ensemble de documents vis-à-vis d’une requête (Voorhees, 2006). La mesure de précision calcule la capacité du système à rejeter tous les documents non pertinents pour une requête. Elle est donnée par le rapport entre les documents sélectionnés pertinents et l’ensemble des documents sélectionnés : Précision = |Documents pertinents restitués| |Documents restitués| ∈ [0, 1] (1.11) Le rappel calcule la capacité du système à restituer le maximum de documents pertinents pour une requête. Il mesure la proportion de documents pertinents restitués par le système relativement à l’ensemble des documents pertinents contenus dans la base documentaire. Il est exprimé par : Rappel = |Documents pertinents restitués| |Documents pertinents| ∈ [0, 1] (1.12) Le rappel et la précision sont calculés indépendamment de l’ordre dans lequel les résultats sont représentés (ce sont des mesures ensemblistes). Des mesures tenant compte de l’ordre des documents sont également nécessaires. Elles permettent 26CHAPITRE 1. RI SOCIALE par exemple d’évaluer des systèmes tels que les moteurs de recherche du web où l’ordre d’apparition des documents est crucial. À cet égard, les mesures principales proposées sont la précision@X et la précision moyenne. La précision@X est la précision à différents niveaux de coupe de la liste. Cette précision mesure la proportion des documents pertinents retrouvés parmi les X premiers documents restitués par le système. La précision moyenne est la moyenne des valeurs de précisions après chaque document pertinent. Elle se focalise en particulier sur les document pertinents classés dans les premiers rangs. APq = 1 R X N i=1 p(i) × R(i) (1.13) Où R(i) = 1 si le ième document restitué est pertinent, R(i) = 0 si le ième document restitué est non pertinent, p(i) la précision à i documents restitués. R le nombre de documents pertinents pour la requête q et N le nombre de documents restitué par le système. La moyenne des précisions moyennes (Mean Average Precision-MAP) est obtenue sur l’ensemble des requêtes : MAP = P q∈Q APq |Q| (1.14) avec APq est la précision moyenne d’une requête q, Q est l’ensemble des requêtes et |Q| est le nombre de requêtes. Cette mesure peut être qualifiée de globale puisqu’elle combine différents points de mesure. Il existe plusieurs autres mesures qui peuvent servir à évaluer les SRI. Nous pouvons citer par exemple la F-mesure, la R-précision, la BPREF (Binary PREFerence-based measure), la MRR (Mean Reciprocal Rank) détaillées dans (Sanderson, 2010). Nous avons vu dans cette section que les approches classiques de RI se basent généralement sur la fréquence des termes, que ce soit dans les documents ou dans le corpus, pour mesurer la pertinence. En outre, un document est considéré uniquement par son contenu présenté comme un sac de mots. Cependant, avec l’évolution des techniques du web 2.0, un document peut être représenté, non seulement par son contenu, mais aussi par d’autres informations sociales telles que ses liens avec les autres documents, des annotations, les commentaires des utilisateurs. . . Nous présentons dans la section suivante les différentes approches de RI utilisant ces informations sociales. 27CHAPITRE 1. RI SOCIALE 3 Utilisation des informations sociales en RI : RI sociale La RI sociale consiste à adapter les modèles et les algorithmes de la RI classique en exploitant les informations sociales. Il s’agit de satisfaire les besoins d’information des utilisateurs en exploitant par exemple les connaissances des utilisateurs experts ou bien les expériences de recherche des autres utilisateurs. Cet objectif se réalise concrètement en considérant les annotations sociales (Peters et al., 2011), l’analyse des réseaux sociaux (Kazai et Milic-Frayling, 2008), les jugements de pertinence subjectifs (Xu et al., 2007) et la recherche collaborative(Karamuftuoglu, 1998) dans le processus de la RI. Comme le montre la figure 1.3, les informations sociales peuvent être exploitées au sein même du modèle de RI (modèle de document et de requête, fonction de pondération / de correspondance), ou en aval de ce modèle (reclassement de la liste des résultats) et même comme une source parmi d’autres dans le web. Document Indexation Représentation interne des documents annotations blogs et microblogs bookmarks clics Utilisateurs Interactions Information sociale Requête Interprétation Représentation interne de la requête Fonction de correspondance Côté utilisateur Côté documents Exploitation Reformulation de requêtes Profil utilisateur Facteurs de pertinence Enrichissement des documents Figure 1.3 – Exploitation de l’information sociale dans la RI Dans cette section, nous nous focalisons sur l’impact de l’information sociale sur le processus de RI. L’objectif étant d’améliorer la qualité des résultats, les informa- 28CHAPITRE 1. RI SOCIALE tions sociales sont employées à plusieurs niveaux. Nous pouvons classer les approches exploitant l’information sociale en fonction du niveau de leur utilisation (côté utilisateur ou côté documents ; figure 1.3). D’une part, ces informations ont été ainsi employées du côté de l’utilisateur pour reformuler les requêtes ou bien pour définir un profil et contextualiser les résultats. D’autre part, du côté des documents, les informations sociales ont été utilisées pour enrichir la représentation des ressources documentaires. 3.1 Côté utilisateur L’idée est d’améliorer l’efficacité des SRI en exploitant le contexte de l’utilisateur. Ceci se réalise en tenant compte des informations sur l’utilisateur (telles que son profil ou ses informations personnelles) dans le processus de recherche ou bien en améliorant la représentation de son besoin d’information, dans le but de retrouver des résultats plus spécifiques et plus raffinés. Ainsi, plusieurs travaux ont exploité l’information sociale comme moyen de reformulation de requêtes ou de création de profil pour une recherche personnalisée. 3.1.1 Information sociale pour la reformulation de requêtes La reformulation de requêtes est vue comme un traitement pour élargir le champ de recherche pour une requête. Une requête étendue va contenir plus de termes reliés permettant d’une part de désambiguïser les mots initiaux et connaître exactement leurs sens, et d’autre part d’augmenter les chances de restituer le maximum de documents pertinents. L’information sociale peut ainsi être utilisée pour étendre les requêtes. Koolen et al. (2009) proposent une approche d’expansion de requêtes utilisant Wikipédia comme collection externe. Ils appliquent ensuite cette approche dans la recherche de livres. D’autres pistes concernant le « Pseudo-Relevance Feedback » à partir de Wikipédia ont été explorées, notamment par l’approche de Y. Li et al. (2007) qui traite les requêtes dites « faibles ». Ces requêtes ne permettent pas de récupérer suffisamment de documents pertinents lors de la première recherche. Cette approche a montré une amélioration de qualité, en particulier sur les premiers documents renvoyés. Bai et al. (2007) ont utilisé ODP (Open Directory Project) 17 afin de contextualiser les besoins d’information. L’idée est d’étendre les requêtes avec des ensembles de mots extraits de documents du feedback. L’ensemble du feedback est composé de documents qui sont pertinents ou pseudo-pertinents par rapport à la requête initiale, et qui sont à même de contenir des informations importantes sur le contexte 17. http://www.dmoz.org/ 29CHAPITRE 1. RI SOCIALE de la recherche. Les mots exprimant le plus d’information par rapport à la requête sont traités comme des concepts implicites. Ils sont alors utilisés pour reformuler la requête. 3.1.2 Information sociale pour la création de profil et la recherche personnalisée Un profil d’utilisateur est constituée des préférences de restitution de l’utilisateur, ainsi que des contraintes sur les résultats présentés. Les informations sociales ont également été utilisées pour créer les profils des utilisateurs. Les profils sont par la suite utilisés pour définir un contexte de restitution permettant de sélectionner des résultats personnalisés. Les éléments souvent utilisés pour créer le profil d’un utilisateur sont ses relations sociales, ses annotations et ses activités dans les plate-formes sociales. Les profils à base d’informations sociales ont été utilisés, par exemple, pour faciliter la personnalisation des recherches à partir d’un environnement de marquage collaboratif. Cai et Li (2010) se sont concentrés sur l’exploration de recherches personnalisées à travers la proposition d’une approche qui permet de créer des profils d’utilisateurs basés sur les tags, ainsi que la création de profils des ressources à rechercher. L’information sociale peut être utilisée pour personnaliser la recherche. Carmel et al. (2009), de leur côté, exploitent les relations sociales de l’utilisateur. Les ré- sultats d’une recherche sont de nouveau classés en fonction des relations avec des personnes dans le réseau social de l’utilisateur. Les auteurs ont étudié l’impact de plusieurs types de réseaux sociaux pour la personnalisation : (1) réseau basé sur les connaissances liées à l’utilisateur via une connexion de familiarité ; (2) réseau de personnes « similaires » à l’utilisateur et qui ont des activités sociales semblables, (3) le réseau global représenté par les deux types de relations. Les informations sociales sont également utilisées dans les moteurs de recherches du web. Google, par exemple, propose un outil pour chercher dans les information du réseau social. En choisissant « résultats personnels » (figure 1.4), un internaute est susceptible de retrouver les profils et les documents partagés par son cercle social, que ce soit celui de Google+ 18, de Twitter, de flickr 19. . . Google propose également des utilisateurs qui semblent avoir les mêmes centres d’intérêts. Bing propose également son outil de recherches social Bing social search (figure 1.5). Cette fonctionnalité permet non seulement d’exploiter le réseau social pour valoriser les résultats du cercle, mais également de retrouver des personnes expertes et susceptibles de disposer des meilleures informations sur le sujet cherché. Bing exploite la majorité des plate- 18. https://plus.google.com/ 19. https://www.flickr.com/ 30CHAPITRE 1. RI SOCIALE formes sociales tels que Facebook 20, Twitter, Klout 21 et même Google+. Figure 1.4 – Résultats à partir du cercle social dans Google Figure 1.5 – Recommandation de profils expert sur le sujet recherché sur Bing 3.2 Côté documents L’idée sous-jacente à l’utilisation des informations sociales du côté des documents est de ramener des informations supplémentaires pour enrichir la représentation des contenus recherchés ou bien pour les utiliser comme des facteurs de pertinence. 3.2.1 Information sociale pour l’enrichissement des ressources documentaires Les commentaires et les tags réalisés par un utilisateur du web sur les contenus publiés par les autres utilisateurs dépendent fortement de ses connaissances et ses centres d’intérêts. Ainsi, ces données représentent une valeur ajoutée (des métadonnées), que ce soit pour la création de profil de l’utilisateur ou bien pour enrichir le contenu et la représentation des documents. Cai et Li (2010) ont utilisé les tags pour générer des profils des ressources d’informations et des profils des utilisateurs. 20. https://www.facebook.com/ 21. https://www.klout.com/ 31CHAPITRE 1. RI SOCIALE La correspondance des deux types de profils a permis d’améliorer la qualité des résultats. Les informations sociales ont été utilisées également pour enrichir la représentation des ressources au moment de l’indexation. Attardi et Simi (2006) ont utilisé les opinions obtenues de la base lexicale « SentiWordNet » pour enrichir l’index des documents avec des étiquettes d’opinion. L’intuition est que l’utilisation des étiquettes marquant l’opinion permet de surpondérer les scores pour les documents qui ne seraient pas sélectionnées avec un simple calcul statistique sur les fréquences d’occurrence. Cet enrichissement de l’index permet d’améliorer le rappel. 3.2.2 Information sociale comme facteur de pertinence Le contenu social a démontré son avantage pour l’amélioration et l’enrichissement des contenus. De même, ces contenus sont utilisés au niveau de la mesure de la pertinence d’un document, comme un facteur parmi d’autres. Bao et al. (2007) ont trouvé que le social bookmarking peut améliorer les recherches sur le web selon deux aspects : 1) les annotations représentent généralement de bons résumés pour les pages web correspondant ; 2) le nombre d’annotations indique la popularité des pages web. Ainsi, deux nouveaux algorithmes sont proposés pour intégrer les facteurs ci-dessus dans le classement de la page : 1) SocialSimRank (SSR) calcule la similarité entre les annotations sociales et les requêtes ; 2) SocialPageRank (SPR) capte la popularité des pages web en fonction des annotations qui y sont réalisées (Bao et al., 2007). D’autres travaux ont relié la pertinence avec l’importance de leurs auteurs. En fait, plus l’auteur est populaire, plus l’information est fiable. La popularité d’un auteur est ainsi mesurée à travers ses informations sociales. C’est l’exemple de l’approche de Macdonald et Ounis (2006), qui ont proposé un modèle de recherche d’information mesurant la pertinence en fonction de l’expertise de son auteur par rapport au besoin d’information. Ils supposent que chaque document représente un vote pour chaque personne qui le cite. C’est le cas également de l’approche de Korfiatis et al. (2006) qui ont évalué les documents de Wikipédia à travers la popularité de leurs auteurs. Pour ce faire, ils ont construit un modèle du réseau social de Wikipédia et ont défini des mesures de qualité telles que la centralité des auteurs. Les auteurs ont trouvé que cette méthode d’évaluation est prometteuse, particuliè- rement avec les articles traitant de sujets susceptibles d’exposer différents points de vus, tels que les sujet politiques. Kazai et Milic-Frayling (2008) ont défini la notion de confiance accordée à un auteur. Cette confiance reflète la pertinence du document publié par l’auteur. Elle se calcule à travers la centralité du nœud du sous-graphe d’un auteur. Ce sous-graphe est obtenu à partir du graphe composé par plusieurs acteurs (auteurs, éditeurs et consommateurs), ainsi que des liens de données (publi- 32CHAPITRE 1. RI SOCIALE cations) et des différentes relations sociales (tels que les collaborations, les citations et les annotations entre les différents acteurs). Outre l’expertise, la popularité et la confiance, les informations sociales sont utilisées comme facteur de pertinence relié à la fraîcheur de l’information. Dong, Zhang, et al. (2010) ; Dong, Chang, et al. (2010) ont proposé d’utiliser les informations publiées sur les plate-formes de microblogging pour détecter les nouvelles URLs qui sont susceptibles de ne pas être encore indexées par les moteurs de recherche. Les auteurs ont également utilisé les informations sociales obtenues à partir des plate-formes de microblogging comme des mesures de pertinence et de qualité des documents pointés par les URLs. 4 Conclusion Nous avons présenté dans ce chapitre l’information sociale dans le Web, développée avec l’évolution des technologies du Web 2.0. Nous avons ensuite décrit les concepts de base de la RI classique et, en particulier, ceux que nous utilisons dans nos travaux. Enfin, nous avons discuté l’impact de l’évolution de ces informations sociales sur le processus de RI, ainsi que leur emploi dans le but d’améliorer l’efficacité des SRI. Outre l’amélioration des résultats de la RI, l’information sociale s’est imposée comme une source d’information parmi d’autres dans le Web 22. La forte demande en égard à cette source d’information réclame l’adaptation des approches de RI dans les différentes tâches (par exemple, la détection d’opinion, la recherche d’expert, la recherche adhoc. . . ) sur les informations sociales. Dans le chapitre suivant, nous présentons un aperçu des différentes tâches de RI sur l’information sociale, ainsi qu’un aperçu des approches de l’état de l’art. Nous nous focalisons uniquement sur les informations publiées sur la plate-formes de microblogging Twitter, celle-ci constituant le cadre applicatif de notre travail. 22. Par exemple, il y a en moyenne 2 milliards requêtes soumises sur Twitter par jour (contre 5 milliards sur Google) : http://www.statisticbrain.com/ 33CHAPITRE 1. RI SOCIALE 34Chapitre 2 RI dans les microblogs Nous présentons dans ce chapitre la recherche d’information dans les microblogs, et en particulier, la recherche adhoc de microblogs. Les microblogs sont une forme réduite des blogs. Ils représentent une source d’information récente. Les utilisateurs emploient des plate-formes de microblogging pour partager et accéder à des microblogs. Ces plate-formes prennent la forme de réseaux sociaux qui se distinguent par des interactions sociales intenses et une diversité dans les sujet discutés, par rapport aux autres sources d’information. Il existe plusieurs plate-formes de microblogging. Les 5 plate-formes les plus utilisées 1 sont Twitter, FriendFeed 2 , Tumblr 3 , Posterous 4 et Identi.ca 5 . Parmi elles, Twitter est sans conteste la plus utilisée. Cette plate-forme compte plus de 650 millions d’utilisateurs, publiant en moyenne 58 millions de tweets par jour. Twitter est utilisé également comme source d’information. En moyenne, 2,1 milliards de requêtes sont soumises chaque jour sur son moteur de recherche. La RI dans les microblogs est différente de la recherche dans le Web. Ceci est dû aux différences de forme des microblogs par rapport aux documents du web, à la spécificité de leur contenu et également aux motivations des recherches (information fraîches. . . ). Les travaux de la littérature qui portent sur la RI dans les microblogs peuvent être regroupés en deux catégories. La première porte sur l’étude des caractéristiques et l’analyse statistique des microblogs. Kwak et al. (2010), par exemple, ont étudié les spécificités linguistiques, démographiques, topographiques et spatio-temporelles des microblogs. La seconde porte sur les tâches de recherche d’information au sens large (accès à l’information) dans les microblogs. Notre travail s’inscrivant dans la seconde catégorie, nous détaillerons plus particulièrement dans ce chapitre les tâches de RI dans les microblogs. Auparavant, nous commençons 1. http://www.gurugrounds.com/uncategorized/top-10-microblogging-sites/ 2. http://friendfeed.com/ 3. https://www.tumblr.com/ 4. http://www.posterous.com/ 5. https://identi.ca/ 35CHAPITRE 2. RI DANS LES MICROBLOGS par présenter les spécificités des plate-formes de microblogging et des microblogs, en s’attachant au cas de Twitter. Nous considérons cette plate-forme étant donné qu’elle représente le cadre applicatif de tous les travaux de la RI dans les microblogs de l’état de l’art, d’une part, et, d’autre part, parce qu’elle est la plus utilisée dans le monde réel. Les autres plate-formes de microblogging ont pratiquement les mêmes spécificités et le même principe de fonctionnement. 1 Présentation et spécificités des plate-formes de microblogging : cas de Twitter 1.1 Présentation générale de Twitter Twitter est l’exemple le plus populaire des plate-formes de microblogging. Ces plate-formes sont les réseaux sociaux les plus récents du Web 2.0. Elles sont considé- rées comme une nouvelle forme de blogs, où les informations diffusées sont courtes et publiées plus rapidement. Ces informations concernent différents sujets. Les utilisateurs parlent de leur quotidien, des événements, des tendances. . . parfois à la mode SMS et en partageant des messages de faible longueur (par exemple 140 caractère au plus dans le cas de Twitter). Twitter a connu une croissance exponentielle durant ces dernières années. Nous présentons ci-dessous les principales spécificités de cette plate-forme, ainsi que l’information qui y est produite. 1.1.1 Lancement et évolution L’idée de base de Twitter est de permettre aux amis, aux familles et aux collaborateurs de communiquer et de rester connectés en partageant des réponses rapides et fréquentes (tweets) à la question : Quoi de neuf ? Plusieurs études (Java et al., 2007 ; Mischaud, 2007) ont cependant montré que les utilisateurs de Twitter dépassent ce premier objectif, en documentant dans leurs messages leur vie quotidienne, en partageant des hyperliens et en commentant des événements. Ces pratiques ont transformé le microblogging. C’est désormais un moyen de partager son état d’esprit personnels, mais aussi de publier des histoires et des nouvelles, pour exprimer ses opinions, pour discuter sur différents sujets dans des contextes sociaux, économiques et même politiques. . . Lancée en octobre 2006, la plate-forme comptait 94,000 utilisateurs en avril 2007 6 pour atteindre 200 millions en 2012 7 . Au début de 2014, Twitter compte plus de 6. http://usatoday.com/tech/webguide/2007-05-28-social-sites_N.htm 7. http://www.bbc.co.uk/news/business-12889048 36CHAPITRE 2. RI DANS LES MICROBLOGS 645 millions d’utilisateurs actifs 8 . Concernant le trafic, le nombre de tweets publiés croît tous les jours. En mars 2007, en moyenne, les microbloggeurs publient 20 000 tweets par jour 9 . Ce nombre a évolué pour atteindre 50 millions en janvier 2010. Aujourd’hui, le nombre de tweets par jour peut atteindre 500 millions 10 . Outre la publication de tweets, les microbloggeurs exploitent cette plate-forme pour chercher des informations récentes sur des sujets particuliers. En 2011, le nombre de requêtes soumises au moteur de recherche de Twitter était de l’ordre de 1,6 millions de requête par jour 11. Ce nombre a évolué pour atteindre 2,1 milliards de requêtes 12 par jour en 2013. Avec cette évolution, Twitter s’est rapidement positionné parmi les premières sources d’information utilisées sur le Web. Le tableau 2.1 liste le nombre de requêtes soumises à Google, Twitter et Facebook chaque jour. Le nombre de requêtes soumise à Twitter correspond à 42 % des requêtes soumises à google. Ce chiffre montre l’importance de Twitter en tant que source d’informations et la dépendance des utilisateurs à cette source d’information. Source Année Nb de requêtes Google 2013 5,1 Twitter 2013 2,1 Facebook 2012 1,0 Tableau 2.1 – Nombre de requêtes par jours (en milliard). Chiffres obtenus du site http://statisticbrain.com 1.1.2 Concepts et fonctionnement des plate-formes de microblogging La figure 2.1 montre l’interface de Twitter. L’interface est composée de plusieurs sections. Dans la section Tweets appelée également Timeline, un utilisateur peut voir le flux de ses tweets ainsi que ceux de ses amis, triés par ordre chronologique inverse. On peut remarquer également une section de tendances qui contient les 10 sujets les plus populaires dans Twitter à un moment donné. L’utilisateur peut consulter les tendances du monde entier, comme il peut se focaliser sur un endroit 8. http://www.statisticbrain.com/twitter-statistics/ 9. http://www.begeek.fr/twitter-90-millions-de-tweets-par-jours-21210 10. http://www.blogdumoderateur.com/statistiques-twitter-entree-en-bourse/ 11. http://engineering.twitter.com/2011/05/engineering-behind-twitters-new -search.html 12. http://www.statisticbrain.com/twitter-statistics/ 37CHAPITRE 2. RI DANS LES MICROBLOGS plus spécifique. La plate-forme suggère également des utilisateurs qui ont des centres d’intérêts similaire à l’utilisateur courant dans la section suggestions. Figure 2.1 – L’interface graphique utilisateur de Twitter En s’inscrivant sur une plate-forme de microblogging, un utilisateur fournit plusieurs informations telles que sa photo, sa localisation, son site Web et une courte bibliographie (figure 2.2). Dans la bibliographie, les utilisateurs décrivent généralement leurs activités et leurs centres d’intérêt. Ces informations sont ensuite probablement utilisées par les plate-formes dans la recommandation des utilisateurs. La figure 2.3 donne un exemple d’utilisation d’une plate-forme de microblogging. Un utilisateur A peut suivre le flux de microblogs envoyés par un utilisateur C sans lui demander la permission (sauf pour les comptes privés que nous ne détaillons pas ici). Les relations entre utilisateurs des réseaux sociaux sont appelées des abonnements. Si A est abonné à C, alors A est appelé abonné (follower) de C (followee) et reçoit automatiquement toutes les publications de C dans sa timeline. Les relations d’abonnement peuvent être unilatérales (dans un seul sens), mais également bilatérales (dans les deux sens) si C s’abonne à son tour à A. On parle dans ce cas d’une relation d’amitié. Si un microbloggeur diffuse un message, tous ses abonnés 38CHAPITRE 2. RI DANS LES MICROBLOGS Figure 2.2 – Informations des comptes utilisateurs sur Twitter le reçoivent. Un microbloggeur peut également envoyer un message direct et privé à l’un de ses amis (direct message). Si le microbloggeur partage un message pour la première fois, le message sera un tweet, sinon, s’il le rediffuse, le message sera un retweet et il va contenir dans ce cas la mention RT. En rediffusant un microblog, un microbloggeur peut y ajouter de l’information complémentaire. Finalement, et comme indiqué plus tôt, un utilisateur peut en mentionner un autre dans un message (@mention). Les individus ne sont pas les seuls propriétaires de comptes. Les entreprises ou encore les sites d’information sont aujourd’hui très présents sur les plate-formes de microblogging. 1.1.3 Système temps-réel L’une des spécificités fondamentale des plate-formes de microblogging est leur nature temps-réel : la présentation des publications (timeline), la présentation des résultats de recherches, le traitement du contenu publié. . . 39CHAPITRE 2. RI DANS LES MICROBLOGS Figure 2.3 – Exemple d’utilisation de Twitter (avec tweets, retweets, abonnements et hashtags) 1.1.3.1 Timeline Twitter, comme les autres plate-formes de microblogging, est un système temps-réel par excellence dont la fraîcheur est la spécificité la plus importance. Cette spécificité peut être aperçue à plusieurs niveaux : – Un utilisateur, en accédant à sa page, reçoit en temps-réel les microblogs de ses abonnés. Ces microblogs défilent sur sa page et le plus récent s’affiche au début de la file. – Pour répondre à un besoin d’information, le moteur de recherche de Twitter affiche les tweets-résultats par ordre chronologique inverse (des plus récents aux plus anciens). Si à un moment donné un nouveau microblog pertinent est publié, l’utilisateur reçoit une notification pour l’afficher (figure 2.4). Figure 2.4 – Notification sur l’apparition de nouveaux résultats dans Twitter – En dépit de la quantité de microblogs publiée chaque seconde, un système de microblogging indexe ces contenus et les rend disponibles à tous les utilisa- 40CHAPITRE 2. RI DANS LES MICROBLOGS teurs à l’instant même de leur publication. Ceci représente une révolution par rapport aux autres sources d’information du Web. Google, par exemple, met jusqu’à une semaine pour indexer une page Web 13. Wikipédia met jusqu’à une année pour inclure des modifications sur ses pages (Frank et al., 2013, 2012). 1.1.3.2 Usage temps-réel Alors que les blogueurs mettent à jour leurs blogs une fois tous les quelques jours, les microbloggeurs postent généralement plusieurs microblogs chaque jour (Java et al., 2007), en particulier pour décrire des événements qui se déroulent au moment de l’écriture du microblog. Ainsi, les microblogueurs peuvent savoir à tout moment ce que les autres microblogueurs sont en train de faire ou à quoi ils sont en train de penser. Un grand nombre de tweets publiés sur Twitter ont rapport à des événements. Il peut s’agir d’événements sociaux tels que des fêtes, des compétitions sportives et des campagnes présidentielles. Il peut également s’agir de catastrophes telles que des tempêtes, des incendies, des émeutes, des fortes pluies et des tremblements de terre, ou bien tout simplement d’informations sur des embouteillages (Endarnoto et al., 2011). Twitter est un outil de notification temps-réel de tous se qui se passe dans le monde. C’est un moyen rapide et fiable pour transmettre les informations dans des situations critiques nécessitant des interventions d’urgence (incendies par exemple). Twitter a été ainsi utilisé par les victimes des incendies en Californie 14 et en Australie en 2009, pour décrire exactement la situation et aider les autres victimes en transmettant les informations utiles aux secours. Twitter peut également être utilisé pour faire du reportage temps-réel, comme cela a été le cas lors des conflits produits à la suite des élections présidentielles en Iran en 2009, malgré le contrôle imposé aux médias traditionnels par les autorités iraniennes 15 . Outre sa fonction de moyen de diffusion de l’information, la quantité gigantesque d’information publiée dans Twitter est utilisée aussi comme ressource statistique pour détecter, de manière continue, les tendances, l’humeur des gens, les opinions des consommateurs (Jansen et al., 2009a ; O’Connor et al., 2010) et même leurs convictions politiques (Tumasjan et al., 2010). 1.2 Spécificités des microblogs Jansen et al. (2009b) ont réalisé une étude linguistique sur Twitter. Ils ont trouvé qu’un tweet contient en moyenne 15 mots. Ce chiffre est extrêmement faible comparé aux autres sources d’information du Web. Les articles de Wikipédia, par exemple, 13. http://referencement-alsace.fr/ 14. A. Bloxham, “Facebook more effective than emergency services in a disaster,” The Daily Telegraph, December 20, 2008. 15. M. Musgrove, “Twitter is a player in Iran’s drama” The Washington Post, July 09, 2009. 41CHAPITRE 2. RI DANS LES MICROBLOGS possèdent en moyenne 320 termes par article 16. Cette particularité représente un défi pour les techniques de recherche d’information classiques qui se basent principalement sur les fréquences des termes dans les documents. Figure 2.5 – Tweet posté par @florencesantrot contenant une image et des hashtags (#Apple #iphone6cost1k). Il a été retweeté sept fois et favori une fois. Un microbloggeur peut inclure différents types de signes dans un tweet, en plus du contenu textuel. Ces pratiques ont peu à peu évoluées pour devenir des « normes de balisage » : – @ suivi du nom d’utilisateur permet d’indiquer qu’on mentionne ou s’adresse à une personne particulière (représenté par son compte), – # suivi par un mot est un hashtag. Un hashtag indique un mot important que le système peut utiliser pour permettre une recherche par navigation (figure 2.5). Les hashtags permettent de catégoriser les microblogs selon un contexte (événement, lieu, etc.) : par exemple, certaines émissions télévisées définissent des hashtags spécifiques à utiliser par les microbloggeurs souhaitant exprimer leurs avis sur le sujet de l’émission. Les conférences scientifiques définissent également des hashtags permettant, d’une part, aux participants de partager leurs remarques et, d’autres part, aux gens de l’extérieur de suivre ce qui se passe dans la conférence en temps-réel. – Les microblogs peuvent également contenir des URL. Ces hyperliens prennent 16. http://en.wikipedia.org/wiki/Wikipedia:Words_per_article 42CHAPITRE 2. RI DANS LES MICROBLOGS une forme courte en raison du nombre limité de caractères autorisés par microblog. Il existe deux services très connus pour créer la forme réduite des URL : bit.ly et tinyurl.com. Dans le cas où l’URL correspond à une image, Twitter af- fiche un aperçu de cette image dans l’interface de l’utilisateur comme le montre la figure 2.1. – Les internautes peuvent mettre des photos dans leurs microblogs (figure 2.5). En cliquant dessus, l’utilisateur pourra voir la photo en taille normale. Outre les données postées explicitement par les microbloggeurs, les microblogs contiennent également des méta-données de différentes natures : – de géolocalisation : les microblogs publiés à travers les terminaux mobiles équipés de GPS fournissent des informations de géolocalisation. Ces informations permettent de localiser l’endroit duquel lequel le microblog a été publié. – d’horodatage : chaque microblog est caractérisé par sa date de publication. Cette information est utilisée pour mesurer sa fraîcheur s’il fait partie d’une liste de résultats d’une recherche. – d’auteur : Les plate-formes de microblogging stockent le compte depuis lequel est publié chaque microblog. Ceci permet aux utilisateurs de trouver les microblogs d’un auteur en particulier. – de favoris : on peut savoir, pour chaque microblog, combien de fois il a été choisi dans les listes de favoris des autres utilisateurs (figure 2.5) ainsi que l’ensemble des utilisateurs qui l’ont sélectionné. – de rediffusion : RT indique que le message est rediffusé. Le mécanisme de rediffusion permet aux utilisateurs de partager de nouveau des microblogs qu’ils trouvent intéressants parmi les microblogs publiés par leurs amis (par exemple, RT @mashable Top 10 Twitter Trends This Week http ://on.mash.to/eA2jY5). Dans Twitter, on peut connaître le nombre de fois qu’un tweet a été retweeté (figure 2.5). On peut également accéder à la liste des utilisateurs qui ont retweeté un tweet donné. 1.3 Spécificités des recherches dans les microblogs Le moteur de recherche de microblogs est spécifique au niveau des données en entrée ou des résultats. D’une part, outre des mots-clés, un utilisateur peut mélanger des comptes utilisateurs, des hashtags et même des URLs, dans sa recherche. La figure 2.6 montre les suggestions de différents types de données de recherche de Twitter. D’autre part, les résultats affichés diffèrent en fonction du type de données utilisées : si l’utilisateur sélectionne un compte utilisateur parmi la liste des suggestions, l’interface affichera le profil de ce compte (ses informations et ses tweets). Dans les autres cas, l’interface affichera une liste de microblogs contenant les termes, le hash- 43CHAPITRE 2. RI DANS LES MICROBLOGS Figure 2.6 – Suggestion de différents type de résultats dans le moteur de recherche de Twitter : des mots-clés, des hashtags, des comptes utilisateurs sont présentés. tag ou l’URL recherchée. Les résultats sont présentés par défaut dans l’ordre chronologique inverse. Cependant, l’utilisateur peut choisir d’afficher tous les résultats, comme le montre la figure 2.4. Les microblogs sont alors triés selon toute probabilité de pertinence telle que leur popularité (fréquence de favoris et de retweets). Teevan et al. (2011) ont étudié les motivations des utilisateurs pour chercher les informations sur Twitter. Ils ont également identifié les pratiques de recherche des microblogueurs. En observant les pratiques de 54 utilisateurs actifs de Twitter, ils ont constaté que les internautes cherchent dans Twitter pour avoir : – Des informations récentes : 49 % des participants ont cherché des informations sur les actualités, les sujets « tendance », les événement récents, le trafic routier, les accidents du quartier. . . . – Des information sociales : 26 % des participants ont cherché des informations sur d’autres utilisateurs, tels que ceux qui ont des intérêts similaires, ou même ce que dit un utilisateur en particulier. – Des information sur des sujets, qui s’apparentent aux recherches souvent effectuées sur les moteurs de recherche du Web. 36 % des participants ont cherché des sujets spécifiques. Les auteurs ont également analysé les logs de moteurs de recherche pour identifier 44CHAPITRE 2. RI DANS LES MICROBLOGS les différences entre les recherches effectuées sur Twitter et celles effectuées sur les moteurs de recherche du Web. Les différences se manifestent à plusieurs niveaux : – au niveau des requêtes (Twitter/Web) : sur la longueur des requêtes (1,6/3 mots), sur la présence de noms de célébrités (15 %/3 %), ou de « # » (21 %/0,1 %). – au niveau de l’importance des requêtes : en moyenne, chaque requête est soumise 2 fois sur le web, et 3 fois dans Twitter. Ceci peut être dû aux tendances présentées par la plate-forme sous forme de liens permettant d’obtenir les tweets récents sur les sujet tendances. – au niveau des sessions de recherches de Twitter qui sont plus courtes que celles réalisées sur le Web, que ce soit sur le temps ou sur le nombre de requêtes. Dans Twitter, une session consiste souvent en la surveillance des tweets sur une requête particulière, en actualisant les résultats sur une période de temps. En d’autre termes, les utilisateurs ont tendance à actualiser les résultats pour avoir l’information récente, sans attendre les notifications de la plate-forme. Pour conclure, les plate-formes de microblogging (Twitter en particulier), repré- sentent un nouveau type de source d’information en pleine évolution grâce à un ensemble de caractéristiques spécifiques : – de fonctionnalité, telles que le partage d’information temps-réel, les abonnements sans restriction, etc. Ces nouvelles fonctionnalités ont popularisé de nouvelles pratiques comme le suivi de l’actualité de célébrités, la réalisation de campagnes électorales, l’analyse de l’humeur et des avis des gens en temps-réel, la participation à distance à des conférences, etc. – de forme, telles que la faible longueur des messages, l’utilisation du jargon du net, une syntaxe spécifique, etc. La quantité et la nature des tweets ont suscité de nouveaux usages tant de la part des individus que des organisations. La section suivante synthétise les travaux de littérature traitant de l’accès à l’information dans les microblogs. 2 Accès à l’information dans les microblogs Dans ce paragraphe, nous listons les travaux de l’état de l’art sur la problématique de l’accès à l’information via Twitter. Nous classons ces travaux en fonction du type d’information recherché. 2.1 Recherche temps-réel de microblogs Pour cette tâche, l’utilisateur souhaite obtenir de l’information pertinente la plus fraîche possible vis-à-vis d’un besoin en information (Ounis et al., 2011). Générale- 45CHAPITRE 2. RI DANS LES MICROBLOGS ment, un certain temps s’écoule avant que cette information soit disponible sur le web et qu’elle soit indexée par les moteurs de recherche (Dong, Zhang, et al., 2010). Dans la RI temps-réel, la date de publication d’un document est considérée comme un facteur de pertinence très important, si ce n’est pas le plus pertinent. Une interprétation possible de cette tâche consiste à trier anti-chronologiquement tous les documents publiés avant la date de soumission de la requête, et ensuite, à écarter les documents non pertinents (Ounis et al., 2011). La tâche se réduit donc à l’identi- fication des caractéristiques des documents pertinents à restituer. Plusieurs travaux ont proposé des critères utilisés comme facteurs de pertinence supplémentaires à la pertinence textuelle : la fraîcheur (Magnani et al., 2012 ; Vosecky et al., 2012), la popularité de l’auteur (Zhao et al., 2011 ; Massoudi et al., 2011), la présence d’URLs (Vosecky et al., 2012). . . Des études empiriques ont montré que ces critères reflètent la pertinence lorsqu’ils sont employés en plus de la pertinence textuelle (Damak et al., 2013). Nous présenterons dans la section suivante un état de l’art des différentes approches de recherche de microblogs et des approches qui ont utilisé les critères de pertinence supplémentaires. Nous détaillerons également les différentes manières avec lesquelles ces critères de pertinences ont été employés. 2.2 Recherche de microbloggeurs La recherche de microbloggeurs s’apparente à la tâche de recherche d’experts de la RI classique. Les objectifs sont l’identification des utilisateurs les plus populaires, ceux qui ont les mêmes centres d’intérêts que l’utilisateur courant, ou bien les experts dans des domaines spécifiques. Plusieurs travaux se sont focalisés sur l’identification des utilisateurs les plus populaires dans les plate-formes de microblogging. Ils se basent sur des méthodes telles que la centralité calculée au travers du graphe social. À titre d’exemple, TwitterRank (Weng et al., 2010) est une approche inspirée de l’algorithme PageRank (Brin et Page, 1998) qui mesure l’influence des utilisateurs sur Twitter. Le score de chaque utilisateur est mesuré en fonction des scores de ses abonnés. Cette approche prend en compte les similarités des sujets discutés entre les utilisateurs, ainsi que la structure des liens d’abonnements. Ben Jabeur, Tamine, et Boughanem (2012) ont mesuré la popularité d’un auteur en proposant un algorithme semblable à PageRank. Cet algorithme mesure la popularité d’un auteur dans un réseau formé par les retweets, les mentions et les réponses. Tunkelang 17 a proposé un modèle qui se base également sur l’algorithme PageRank. Cependant, il a introduit le facteur de renvoi des 17. http://thenoisychannel.com/2009/01/13/a-twitter-analog-to-pagerank/ 46CHAPITRE 2. RI DANS LES MICROBLOGS messages par les abonnés d’un utilisateur : P opularité(u) = X v ∈ abonnés(u) 1 + p ∗ popularité(v) ||Abonnements(v)|| (2.1) avec abonnés(u) est l’ensemble des utilisateurs abonnés à u, Abonnements(v) est l’ensemble des utilisateurs auxquels v est abonné et p est la probabilité que l’utilisateur v va retweeter les tweets de u. D’autres approches mesurent l’importance des utilisateurs autrement. En analysant les habitudes de diffusion d’information dans Twitter, Lee et al. (2010) ont découvert que la diffusion d’information atteint son maximum à son apparition. Le pic dans le taux de publication est observé au moment de l’apparition de l’information. Ensuite, ce taux diminue en avançant dans le temps. Par conséquent, ils ont proposé une approche considérant l’ordre temporel de diffusion de l’information pour détecter le meilleur diffuseur d’information. L’utilisateur le plus important est celui qui diffuse souvent les informations en premier. La majorité des approches proposées prend en compte un ordonnancement statique de l’importance des utilisateurs. Cependant, Cappelletti et Sastry (2012) considèrent que, dans un environnement temps-réel, l’importance d’un utilisateur doit être évolutive. Ainsi, ils ont proposé un modèle qui se base sur le potentiel d’un utilisateur à amplifier la diffusion d’une information. Cette importance varie avec l’évolution du réseau social de l’utilisateur. Un utilisateur est d’autant plus important que l’information qu’il partage est susceptible d’atteindre un grand nombre d’utilisateurs. Concrètement, ceci est calculé en fonction de deux facteurs : le premier calcule à quel degré un utilisateur peut être retweeté ou cité par ses abonnés et le deuxième mesure la taille de l’audience des retweets et des citations de l’utilisateur. 2.3 Détection d’opinions La détection d’opinion a été souvent étudiée en recherche d’information, particulièrement dans la recherche de blogs (Pang et Lee, 2008 ; Missen et al., 2009). L’objectif est de retrouver les documents exprimant des opinions sur le sujet de la requête. La majorité des approches proposées se basent sur des ressources lexicales comportant les termes d’opinions telles qu’opinionFinder (Wilson et al., 2005), General Inquirer lexicon (Hatzivassiloglou et McKeown, 1997) ou SentiWordnet (Baccianella et Sebastiani, 2010). La plupart des approches spécifient des critères (présence de termes et leurs fréquences, Parts of speech, de syntaxe, de négation. . . ) et exploitent des techniques d’apprentissage automatique. Les mêmes principes ont été ainsi utilisées sur les microblogs. Comme les blogs, les microblogs expriment des opinions (Jansen et al., 2009a). Shamma et al. (2009) ont montré que la plupart des tweets ont un ton négatif, et 47CHAPITRE 2. RI DANS LES MICROBLOGS que les microblogs permettent d’obtenir des opinions immédiates et des réactions sur des produits. Ils ont trouvé également que les tweets peuvent être utilisés pour annoter les débats politiques avec les opinions des téléspectateurs. Plus précisément, ils ont constaté que le taux de messages contenant des opinions dans Twitter peut servir comme un prédicateur de l’évolution des sujets dans l’événement médiatisé. Bollen et al. (2009) ont modélisé les phénomènes socio-économiques à travers l’analyse des opinions dans les tweets. Leur liste de phénomènes est composée de vingt événements de la vie quotidienne, en intégrant le comportement des marchés boursiers correspondant à l’indice Dow Jones Industrial Average et les indices des prix du pétrole de West Texas Intermediate. Ils ont trouvé que l’humeur globale des gens est corrélée avec ces événements. Par exemple, à Thanksgiving, il y avait plutôt une humeur de joie et rarement des sentiments de fatigue. Durant les élections présidentielles aux États Unis, il y avait au début beaucoup de doute avant les élections (sentiments de confusion et de dépression), suivi de sentiments de joie et de bonheur après la publication des résultats. Un dernier exemple est celui de la baisse de l’indice de Dow Jones qui coïncide avec les sentiments de dépression. 2.4 Classification thématique des microblogs L’objectif de la classification thématique de microblogs est de créer des filtres thé- matiques sur les flux d’information. Ceci est réalisé en identifiant les sujets discutés dans les microblogs. La classification thématique des microblogs nous permettra, par extension, de classer les utilisateurs en fonction de leurs centres d’intérêts. Une première solution pour ce type de problème est de regrouper les microblogs en fonction des hashtags qu’ils contiennent (Efron, 2010). Ramage et al. (2010) ont utilisé une implémentation étiquetée et évolutive de Latent Dirichlet Allocation (Blei et al., 2003) afin d’extraire les tags et de les utiliser pour caractériser les utilisateurs et les microblogs. Song et al. (2010) se sont basés sur des informations spatio-temporelles afin d’identifier des tags corrélés. Ces tags sont utilisés par la suite pour regrouper les tweets et les classifier. Enfin, Bernstein et al. (2010) ont proposé un algorithme pour détecter précisément les sujets des microblogs. Ce dernier consiste à détecter les entités nommées dans un microblog et les soumettre à un moteur de recherche. Le sujet du microblog correspondra alors au terme le plus important dans les résultats, calculé à travers un algorithme de pondération (T F IDF (Robertson, 2004)). 2.5 Détection de tendances La détection de tendances vise à identifier automatiquement les thèmes émergeant qui apparaissent dans le flux de microblogs en temps-réel (R. Li et al., 2012). 48CHAPITRE 2. RI DANS LES MICROBLOGS Les tendances sont généralement des événements émergents, les dernières nouvelles et les sujets qui attirent l’attention des utilisateurs. La détection des tendances revêt donc une grande utilité pour les journalistes et les analystes, car elle leur permet d’être rapidement actifs sur les sujets « tendances ». Par exemple, lors de l’annonce de la mort de Michael Jackson le 25 juin 2009, Twitter a été immédiatement inondé par un énorme volume de commentaires. La détection de tendances est également importante pour les professionnels du marketing en ligne et les sociétés de suivi d’opinion, puisque les tendances indiquent des sujets qui captent l’attention du public. Plusieurs applications ont été développées pour détecter les tendances à partir de Twitter : Trendsmap 18, What The Trend 19, Twinitor 20 et Twendr 21. D’autres travaux ont même utilisé Twitter comme un système préventif aux catastrophes. Par exemple, Sakaki et al. (2010) se sont basés sur Twitter pour créer un système d’avertissement des tremblements de terre et Lampos et Cristianini (2010) ont utilisé les tweets pour suivre la propagation des épidémies. 3 Recherche adhoc de microblogs Le principe de la recherche adhoc de microblogs est similaire à la RI adhoc classique. Il s’agit de répondre à une requête via un index de microblogs et sélectionner ceux qui sont pertinents (Efron, 2011a). La différence entre la RI adhoc dans les tweets et la RI adhoc dans les documents du Web réside dans la nature de l’information traitée et des sessions de recherches. Ces différences sont principalement dues aux spécificités des microblogs par rapport aux autres sources d’information et les motivations des utilisateurs pour chercher dans cette source d’information. Efron (2011a) a posé la question : quels sont les facteurs reflétant la pertinence dans la recherche de microblogs ? Les facteurs tels que la popularité de l’auteur et l’horodatage ont probablement leur importance pour juger l’utilité d’un microblog par rapport à un autre. Cependant, la manière de considérer ces qualités n’est pas évidente. Ainsi, il existe plusieurs facteurs de pertinence à prendre en compte dans la conception des approches de recherche de microblogs, en plus de la pertinence textuelle : facteurs sociaux, facteurs de popularité des auteurs, facteurs de fraîcheur, facteurs liées aux URLs. . . Nous présentons dans cette section les principaux facteurs de pertinence employés dans la recherche de microblogs ainsi que leurs différents objectifs. 18. http://trendsmap.com/ 19. http://whatthetrend.com/ 20. http://twinitor.com/ 21. http://twendr.com/ 49CHAPITRE 2. RI DANS LES MICROBLOGS 3.1 Facteur de pertinence textuelle Le problème principal de la pertinence textuelle dans la recherche de microblogs réside dans leur faible longueur. Les modèles de RI classiques qui, de manière géné- rale, se basent sur des facteurs tels que la fréquence des termes dans les documents et la longueur des documents, sont limités par la faible longueur des microblogs, où les termes n’apparaissent pas plus d’une fois. La majorité des approches de RI dans les microblogs ne tiennent ainsi pas compte des facteurs de normalisation et de fréquence utilisés dans les modèles de RI classique : par exemple Che Alhadi et al. (2011) emploient le modèle vectoriel en éliminant le facteur de la normalisation de la longueur. Massoudi et al. (2011) de leur coté utilisent uniquement la présence ou l’absence du terme dans le modèle de langue (LM) à la place de sa fréquence dans le document. Ferguson et al. (2012) ont étudié l’impact des fréquences et leur normalisation dans la mesure de la pertinence avec le modèle BM25. Ils ont trouvé que ces facteurs sont non seulement inefficaces, mais dégradent aussi les résultats d’une tâche de recherche de microblogs. Certains travaux ont proposé des méthodes plus sophistiquées pour résoudre le problème de fréquences et de normalisation. Lin et al. (2012) emploient une méthode qui se base sur la co-occurrence des termes. Ils construisent un graphe pondéré dont les nœuds représentent les termes et les liens représentent leurs co-occurrences dans les tweets de la collection. Ainsi, le score de chaque terme de la requête dans un microblog est calculé en fonction des poids des liens de ce terme avec les termes du tweet. Au lieu d’ignorer les facteurs de fréquences, certaines approches ont essayé d’amé- liorer la représentation des termes, que ce soit des requêtes ou des microblogs afin de réduire l’effet de leur faible taille. Plusieurs techniques d’expansion de requêtes ont été proposées. Kumar et Carterette (2013) ont étendu les requêtes avec les termes les plus fréquents dans les résultats de la requête initiale. D’autres approches ont exploitées des critères temporels dans le choix des termes d’extension (Efron, 2011b ; Miyanishi et al., 2013). Du côté des microblogs, Efron et al. (2012) ont proposé deux approches pour améliorer leur représentation. La première consiste à enrichir chaque microblog dans l’index avec les microblogs ayant des contenus similaires. La deuxième approche exploite les microblogs similaires à chaque microblog pour lui créer un profil temporel. Ce profil sera utilisé au moment de la restitution des résultats. McCreadie et Macdonald (2013) et Ben Jabeur et al. (2013), quant à eux, ont fusionné le contenu du microblog avec le contenu de l’URL, s’il existe. 50CHAPITRE 2. RI DANS LES MICROBLOGS 3.2 Facteur de pertinence social Étant donné que le microblogging est une forme de réseau social, il est ainsi possible de traiter le problème de tri des microblogs en exploitant un critère particulier qui n’est pas (aussi facilement) disponible dans la recherche sur le Web traditionnel, à savoir le réseau social sous-jacent aux plate-formes. Cette catégorie d’approches considère que la pertinence est liée à la crédibilité de la source d’information. La plupart des approches exploitant le réseau social ont défini des critères de pertinence reflétant l’importance des utilisateurs. Ces critères sont : le nombre de tweets d’un auteur, le nombre de fois qu’un utilisateur a été retweeté, le nombre de citations, le nombre d’abonnements, le nombre d’abonnés. . . Si certains travaux ont combiné ces critères linéairement (Nagmoti et al., 2010 ; Zhao et al., 2011 ; Damak et al., 2011), d’autres ont utilisé des techniques d’apprentissage : SVM (Joachims, 2005) et Linear Regression dans l’approche de Duan et al. (2010) et RankSVM dans l’approche de Cheng et al. (2013). Dans une deuxième catégorie d’approches, des graphes représentant les liens sociaux ont été générés à partir des plate-formes. Ces graphes représentent différents types de liens comme le montre la figure 2.7 : utilisateur × utilisateur et dans ce cas les liens sont les relations d’amitiés (abonnements ou abonnés ou citation), utilisateur × tweet et dans ce cas les liens représentent les statuts des utilisateurs, tweet × tweet et dans ce cas les liens représentent les retweets. . . L’approche présentée dans (Yamaguchi et al., 2010) utilise, par exemple, l’algorithme PageRank (Brin et Page, 1998) pour mesurer l’importance d’un microbloggeur dans un graphe composé par les utilisateurs et les tweets. Jabeur et al. (2012) utilisent un modèle bayésien pour mesurer la pertinence d’un tweet représenté dans un graphe composé par les termes, les tweets, les utilisateurs et même des périodes temporelles. Ravikumar et al. (2012), quant à eux, représentent les URLs publiées dans les tweets et les liens d’hypertextualité entre elles en plus des tweets et des utilisateurs. Les approches de la deuxième catégorie ont exploité des liens sociaux, de tout genre, mais en relation avec le tweet lui même. Une troisième catégorie d’approches exploite les informations sociales de celui qui cherche l’information en plus des informations sociales reliées aux tweets. L’idée ainsi est de comparer les informations sociales des deux côtés afin de restituer des résultats personnalisés. Uysal et Croft (2011) ont mesuré la distance entre l’auteur du tweet et le chercheur d’information à travers plusieurs critères tels que : l’existence d’une relation directe entre eux, l’existence d’un retweet ou d’une citation de l’un à l’autre, l’emploi de mêmes hashtags, la publication de mêmes URLs dans leurs tweets. . . C’est le principe aussi de l’approche proposée dans (Feng et Wang, 2013). Les auteurs ont utilisé des critères comme la similarité entre les abonnés de l’auteur du tweet et celui qui le cherche, puis la similarité entre la date de la dernière interaction entre eux. 51CHAPITRE 2. RI DANS LES MICROBLOGS Disciple Retweet Hypertexte Microbloggeurs Tweets Web Termes Périodes Co-occurences Tweeté par URL Cite Figure 2.7 – Les réseaux constituables à partir des données de Twitter Les intuitions diffèrent d’une méthode à une autre. Cependant, peu de travaux ont essayé de comparer les différentes approches. Kwak et al. (2010) ont comparé deux approches pour mesurer l’importance des utilisateurs. Dans la première approche, ils ont appliqué l’algorithme PageRank sur le réseau composé par les liens d’amitié. La deuxième approche estime l’importance d’un utilisateur en fonction de la fréquence des messages d’un utilisateur retweetés par ces abonnés. L’analyse a montré un désaccord total entre les résultats de ces deux approches, ce qui montre que la définition de l’importance d’un utilisateur, dans le cas des microblogs, nécessite encore beaucoup de recherche. 3.3 Facteur de pertinence temporelle Pour les requêtes qui concernent les événements et les « buzz », il est crucial de prendre en compte la fraîcheur des résultats dans la mesure pertinence. Le microblogging, système temps-réel par excellence, incite les utilisateurs à exprimer leurs opinions et discuter en temps-réel. Ainsi, la prise en compte du temps est primordiale dans la recherche de microblogs. La caractéristique temporelle des microblogs a été employée de différentes manières et avec différentes intuitions. Les premiers travaux ont tout simplement essayé de favoriser les microblogs récents. Plus un microblog est proche de la requête, plus il est susceptible d’être pertinent. Cette intuition est concrétisée en calculant un score de fraîcheur du document, en termes de différence temporelle entre la date de la soumission de la requête et la date de publication du document. Ce score est ensuite intégré dans le modèle de recherche (Massoudi et al., 2011) ou bien utilisé 52CHAPITRE 2. RI DANS LES MICROBLOGS comme un attribut parmi d’autres dans un modèle d’apprentissage (Cheng et al., 2013). Le facteur temporel a été employé également dans les modèles de RI classiques. Par exemple, Efron et Golovchinsky (2011) se sont basés sur les microblogs récents pour lisser les scores dans le modèle de langue : le degré de lissage des résultats les plus éloignés temporellement était plus élevé, afin de favoriser les résultats récents. Enfin, les résultats récents ont été utilisés pour sélectionner les microblogs représentant le modèle de pertinence (Efron et Golovchinsky, 2011 ; Kumar et Carterette, 2013). Outre pour le calcul de pertinence, le temps a été employé dans l’extension des requêtes. Plus précisément, il est utilisé pour sélectionner le fragment de temps contenant les documents susceptibles d’avoir des termes utiles pour l’extension. La meilleure période contenant les documents les plus prometteurs pour l’extension a été choisie en fonction du taux de tweets publiés sur le sujet de la requête (Efron, 2011b), du taux des tweets retweetés sur le sujet de la requête (Choi et Croft, 2012), ou bien des tweets qui sont proches temporellement de la requête (Massoudi et al., 2011). D’autres travaux sont allés plus loin en analysant les variations temporelles dans la liste des résultats initiaux (Miyanishi et al., 2013). Ainsi, le nombre de résultats utilisés pour étendre les requêtes de chaque période est proportionnel au taux de tweets publiés dans cette période sur le sujet de la requête. Finalement, le temps a été utilisé pour enrichir la représentation et extraire de l’information supplémentaire des microblogs et des requêtes. En considérant les dates de publication des microblogs similaires à un microblog, Efron et al. (2012) génèrent le profil temporel d’un microblog. Ce profil permet de mesurer l’implication du microblog à des événements qui ont été discutés à différents moments dans le temps. Ensuite, cette mesure va être comparée avec la distribution temporelle de la requête en tant que mesure de similarité. 3.4 Facteur de pertinence d’hypertextualité Les microbloggeurs peuvent partager plusieurs URLs dans leurs microblogs. En fait, les microbloggeurs partagent également des URLs dans leurs statuts pour attirer l’attention de leurs amis sur une nouvelle information contenue dans une page web, souvent pas encore indexée par les moteurs de recherche classiques. Ces pages représentent ainsi de l’information enrichissante par rapport au seul contenu du tweet. Les URLs ont souvent été utilisées dans la restitution des microblogs en réponse à une requête. La finalité est d’améliorer la qualité des résultats, certes, mais les manières d’intégrer ces URLs diffèrent d’une approche à une autre. Les URLs ont été employées dans un premier temps comme facteur de pertinence. En réalité, c’est 53CHAPITRE 2. RI DANS LES MICROBLOGS leur présence qui reflète la pertinence du tweet pour (Cheng et al., 2013). D’autres approches ont raffiné le critère en calculant la fréquence plutôt que la présence d’une URL (Zhao et al., 2011 ; Duan et al., 2010). Ces deux critères ont été employés avec d’autres, que ce soit dans des combinaisons linéaires ou dans des algorithmes d’apprentissage. Malgré leur simplicité, ces critères ont montré un fort impact dans l’amélioration de la qualité des résultats (Damak et al., 2013). D’autre part, les URLs ont été utilisées comme des éléments parmi d’autres pour caractériser l’écosystème des plate-formes de microblogging. Le réseau formé par ces éléments est utilisé pour mesurer la centralité des tweets, ainsi que leur fiabilité (Ravikumar et al., 2012). Enfin, le contenu des URLs est utilisé pour enrichir le vocabulaire des tweets, limités en longueur. Certaines approches ont utilisé le contenu dans la définition du modèle du document avec le modèle de langue (Zhongyuan et al., 2012). D’autres, comme McCreadie et Macdonald (2013), ont représenté chaque microblog comme une composition multidimensionnelle dont les dimensions sont le contenu du microblog et le contenu des URLs si elles existent. . . . Généralement, quelle que soit la manière avec laquelle les URLs sont exploitées, elles améliorent remarquablement la qualité des résultats. 3.5 Autres facteurs de pertinence D’autres facteurs peuvent être utilisés pour la recherche de microblogs. Les facteurs de qualité des microblogs sont indépendants de la requête. Avec les particularité des microblogs (qualité du langage, longueur faible . . . ), ces critères sont essentiels pour estimer la qualité d’un microblog. Voici les critères les plus populaires dans la littérature : – Longueur du microblog : nombre de termes dans le microblog. La longueur d’une phrase reflète la quantité d’information qu’elle véhicule (Zhao et al., 2011 ; Magnani et al., 2012 ; Metzler et Cai, 2011 ; Duan et al., 2010). – Fréquence de Retweets : nombre de fois qu’un tweet a été retweeté. Si un utilisateur repartage un tweet, alors ceci suggère qu’il a trouvé son contenu intéressant (Zhao et al., 2011 ; Magnani et al., 2012 ; Vosecky et al., 2012 ; Duan et al., 2010). – Fréquence de hashtags : nombre de hashtags dans un tweet. Les hashtags sont utilisés pour définir un topic pour le tweet, ou bien pour s’intégrer à une conversation (Duan et al., 2010). – Réponse : indique que le microblog est une réponse à un autre. Ceci montre qu’il ne s’agit pas d’un message isolé et sans interaction (Vosecky et al., 2012 ; Metzler et Cai, 2011 ; Duan et al., 2010). – Qualité du langage : les microbloggeurs ne font pas en général très attention 54CHAPITRE 2. RI DANS LES MICROBLOGS en écrivant les tweets. Il peuvent également abréger certains mots à cause de la contrainte liée à la longueur restreinte des tweets. Ce critère calcule le ratio des termes correctement orthographiés par rapport à tous les termes du microblogs (Metzler et Cai, 2011). Han et Baldwin (2011) ont proposé d’améliorer la qualité des microblogs en corrigeant les termes mal-orthographiés. Ils tiennent compte du contexte du tweet pour proposer les corrections convenables pour les termes erronés. – Sentiment : les microblogs reflétant des sentiments sont pertinents lorsqu’un utilisateur cherche des avis sur des produits ou des événements. Ce critère est mesuré en calculant le ratio des termes exprimant des sentiments par rapport à la longueur du tweet (Cheng et al., 2013). 3.6 Bilan Le tableau 2.2 résume la majorité des critères de pertinence que nous venons de décrire, souvent utilisés en complément de la pertinence textuelle. Certaines approches qui les emploient les combinent linéairement (Zhao et al., 2011 ; Massoudi et al., 2011). D’autres approches ont employé des techniques d’apprentissage pour les considérer dans la restitution (Duan et al., 2010 ; Cheng et al., 2013 ; Uysal et Croft, 2011). 4 Évaluation de la RI dans les microblogs Comme nous l’avons vu au chapitre 1, l’évaluation en RI se fait principalement à travers les collections de tests, souvent construites dans le cadre de campagnes d’évaluation. La RI dans les microblogs ne déroge pas à cette règle, avec la mise en place de la tâche Microblog dans la campagne d’évaluation TREC. 4.1 La tâche TREC Microblog Il s’agit, pour un moteur de recherche, de fournir les tweets dont le contenu satisfait un besoin en information exprimé sous forme de mots clés (tâche adhoc). Les systèmes proposés doivent retrouver les résultats pertinents, mais aussi les plus récents, par rapport à la date de soumission de la requête (real-time retrieval). Les résultats doivent être publiés avant la date de la soumission de la requête. Depuis 2011, trois versions de cette tâche ont été mises en œuvre (2011, 2012 et 2013). La collection de test Tweets2011 comprend : – 16 millions de tweets (0,5 Go) exprimés dans diverses langues et publiés sur Twitter entre le 23 janvier 2011 et le 8 février 2011, 55CHAPITRE 2. RI DANS LES MICROBLOGS Tableau 2.2 – Critères de pertinence Critère Références Popularité du tweet dans la liste de résultats (Duan et al., 2010 ; Ben Jabeur, Damak, et al., 2012) Nombre de termes en commun entre le tweet et la requête (Damak et al., 2011) Nombre de fois que le tweet à été retweeté (Zhao et al., 2011 ; Magnani et al., 2012 ; Vosecky et al., 2012 ; Duan et al., 2010) Nombre de hashtags dans le tweet (Duan et al., 2010) Présence de hashtags dans le tweet (Vosecky et al., 2012 ; Metzler et Cai, 2011) Popularité des hashtags dans la collection (Vosecky et al., 2012) Longueur du tweet (Zhao et al., 2011 ; Magnani et al., 2012 ; Metzler et Cai, 2011 ; Duan et al., 2010) Présence d’URLs dans le tweet (Vosecky et al., 2012 ; Massoudi et al., 2011 ; Metzler et Cai, 2011 ; Duan et al., 2010) Nombre D’URLs dans le tweet (Zhao et al., 2011) Popularité de l’URL dans la collection (Vosecky et al., 2012) Le tweet est-il une réponse ? (Vosecky et al., 2012 ; Metzler et Cai, 2011 ; Duan et al., 2010) Nombre de tweets de l’auteur (Zhao et al., 2011) Nombre d’abonnés de l’auteur (Magnani et al., 2012 ; Massoudi et al., 2011 ; Duan et al., 2010 ; Zhao et al., 2011) Nombre de mentions de l’auteur (Vosecky et al., 2012 ; Duan et al., 2010) Différence temporelle entre le tweet et la requête (Magnani et al., 2012 ; Vosecky et al., 2012 ; Metzler et Cai, 2011) Qualité du language du tweet (Metzler et Cai, 2011) Sentiment positif/négatif dans le tweet (Cheng et al., 2013) – 49 topics dont on trouvera un exemple en figure 2.8. La balise title décrit le besoin exprimé à un moment donné (querytime). Ce moment correspond concrètement à la date de publication du tweet le plus récent de la requête, 56CHAPITRE 2. RI DANS LES MICROBLOGS – les jugements de pertinence (qrels) associées aux 49 topics. La pertinence de chaque tweet est ternaire : non pertinent, moyennement pertinent et hautement pertinent. Tout tweet exprimé dans une langue autre que l’anglais est non pertinent. Il en est de même pour les retweets et les tweets identifiés comme spam par les assesseurs. < top > < num > Number: MB007 < title > Pakistan diplomat arrest murder < querytime > Tue Feb 08 22 :56:33 +0000 2011 < querytweettime > 35109758973255680 Figure 2.8 – Exemple de topic pour la tâche Microblog La collection de test Tweets2012 comprend : – le même corpus de tweets que celui de 2011, – 60 nouvelles requêtes avec leurs jugements de pertinence. Seuls les tweets hautement pertinents ont été considérés dans l’évaluation des systèmes. La collection de test Tweets2013 comprend : – une nouvelle collection de 240 millions de tweets (70 Go), publiés dans la période du 1er février 2013 au 31 mars 2013. Cette collection est accessible uniquement à travers une API (contrairement à l’ancienne collection). – 60 nouvelles requêtes avec les jugements de pertinence associés. En 2012, une deuxième évaluation a été introduite, real-time filtering. L’objectif est d’évaluer la capacité des systèmes à indexer le flux des tweets en temps reél et d’en extraire les tweets pertinents pour un besoin en information. Cette tâche n’entrant pas dans notre problématique de recherche, nous ne la détaillons pas davantage. 4.2 Discussion sur les mesures d’évaluation De façon usuelle, les moteurs de recherche trient les résultats en fonction du score de pertinence des documents. Ce n’est pas le cas dans la tâche Microblog de TREC, qui promeut la recherche temps réel (real-time search). Cela se traduit par une préférence pour les tweets les plus proches temporellement de la requête. Au niveau de la procédure d’évaluation en 2011, cette contrainte est mise en œuvre en réordonnant les résultats (runs) d’un moteur de recherche en fonction de l’attribut querytweettime des tweets (le champ sim – score de similarité – du run est recalculé en fonction). Cette prise en compte a suscité une ambiguïté dans l’interprétation des scores des participants : il n’y a pas de moyen pour identifier les systèmes qui ont considéré la fraîcheur dans la mesure de pertinence. Nous notons, à titre indicatif, que les meilleurs systèmes de cette édition sont les systèmes qui se basent sur la 57CHAPITRE 2. RI DANS LES MICROBLOGS pertinence textuelle en réalisant une coupure (cut-off ) agressive (càd. X tweets). Cette prise en compte temporelle a été écarté à partir de l’édition de 2012. Deux mesures officielles ont été considérées dans les trois versions de la tâche : la précision à 30 documents (P@30) et la précision moyenne (AP). Notons que ces mesures ont été calculées en considérant tous les tweets pertinents (all-rel) en 2011 et 2013 ou uniquement les tweets hautement pertinents (high-rel) en 2012. Les valeurs de ces mesures, pour chaque requête, sont moyennées pour obtenir le score global d’un système (P@30 moyennée et MAP). Le classement des systèmes a été réalisé sur la P@30 moyennée, la MAP étant uniquement donnée à titre indicatif. En 2012, les courbes ROC ont été également données à titre indicatif. Notons également que les systèmes ont des caractéristiques différentes : intervention manuelle ou pas (run automatique), utilisation de sources externes ou pas, utilisation de sources futures (dont la publication est postérieure à la date de la requête) ou pas. Bien évidemment, les résultats sont à apprécier en groupant au préalable les systèmes possédant des caractéristiques similaires. 5 Bilan et limites de l’état de l’art Le microblogging est une nouvelle source d’information en pleine croissance, fortement exploitée par les utilisateurs pour partager et trouver de l’information. Plusieurs chercheurs se sont focalisés sur l’accès à l’information à partir de cette source. Les travaux réalisés extraient différents types d’informations (personnes, tendance, opinion. . . ). Dans cette thèse, nous nous concentrons uniquement sur la recherche adhoc de microblogs. Pour ce type d’information, plusieurs approches avec différentes intuitions ont été proposées. La grande majorité des travaux ont défini des facteurs de pertinence supplémentaires par rapport à celui de la seule pertinence textuelle. Cependant, les chercheurs n’ont pas examiné de près les problèmes des approches de la RI classique. C’est pourquoi, dans nos travaux, nous avons commencé dans un premier temps par (i) la réalisation d’une analyse de défaillance des modèles de RI classiques afin d’identifier les facteurs principaux limitant leur efficacité sur ce type de contenu (chapitre 3). Nous avons trouvé que la majorité des problèmes sont dus au vocabulaire limité induit par la faible longueur des tweets. C’est pourquoi (ii) nous avons compensé ce problème en appliquant des techniques d’expansion de requêtes et de microblogs (chapitre 4). Nous avons montré dans l’état de l’art que la majorité des approches emploient une multitude de facteurs de pertinence en plus de la pertinence textuelle. Cependant, peu de travaux ont essayé d’évaluer leurs impact réel dans la restitution. Nous avons ainsi (iii) réalisé une étude des critères souvent utilisés dans les travaux afin 58CHAPITRE 2. RI DANS LES MICROBLOGS de déterminer ceux qui reflètent vraiment la pertinence (chapitre 5). Par définition, la recherche d’information dans les microblogs implique automatiquement la prise en compte de la fraîcheur dans la mesure de la pertinence. Le dernier chapitre de notre contribution (chapitre 6) (iv) traite particulièrement ce facteur et l’impact de son emploi sur la qualité des résultats. 59ContributionChapitre 3 Analyse de défaillance des modèles de RI classique sur les microblogs 1 Introduction La majorité des approches présentées dans la littérature pour la recherche de microblogs emploient différents facteurs de pertinence en plus de la pertinence textuelle comme, par exemple, la popularité de l’auteur du microblog, la qualité du langage utilisé, la fraîcheur, etc. Toutefois, la pertinence textuelle est toujours considérée comme le facteur principal de pertinence. Cette pertinence textuelle est généralement calculée avec des modèles de RI classiques (Ounis et al., 2011, 2012). Ces modèles se basent principalement sur les fréquences des termes et les longueurs des documents (modèles sac de mots). Cependant, dans le cas des microblogs, le nombre de termes par microblog est en moyenne égal à 15 et chaque terme n’apparaît qu’une seule fois. Dans ce chapitre, nous présentons une analyse de défaillance réalisée pour dé- terminer le comportement des modèles de RI classiques sur les microblogs. Les observations tirées de cette analyse nous permettront d’identifier les pistes à exploiter pour gérer cette forme de contenu de façon plus pertinente. 2 Méthodologie Notre analyse a pour but de déterminer les facteurs pénalisant les modèles de RI classiques dans la restitution de microblogs. Pour ce faire, nous avons analysé les microblogs pertinents mais non restitués avec un modèle de RI classique. Nous nous sommes basés, dans notre analyse, sur la collection TREC Microblog et sur les requêtes des tâches de 2011 et 2012. Nous avons employé le modèle vectoriel comme modèle de RI classique, et ce pour deux raisons : d’une part, ce modèle est souvent utilisé en RI et a toujours prouvé son efficacité (Baeza-Yates et Ribeiro-Neto, 1999). 61CHAPITRE 3. ANALYSE DE DÉFAILLANCE DES MODÈLES DE RI CLASSIQUE SUR LES MICROBLOGS En outre, ce modèle est considéré comme baseline dans les éditions 2011 et 2012 de la tâche Microblog de TREC. La question de recherche liée à cette analyse est la suivante : les facteurs limitant les modèles de recherche classiques sont-ils dus : – à la taille réduite des microblogs ? – au vocabulaire limité des microblogs ? – à la syntaxe (@mention et #hashtag) fréquemment utilisée dans les microblogs ? – à la qualité du langage utilisé par les utilisateurs ? Dans un deuxième temps, nous avons examiné le contenu pointé par les URLs accompagnant les tweets. L’objectif est d’avoir une idée de l’impact de leur prise en compte dans la restitution et de leur potentiel d’enrichissement du contenu des tweets. 3 Expérimentations 3.1 Cadre expérimental Nos expérimentations ont reposé sur le moteur de recherche open source Lucene 1 , qui implémente une version modifiée du modèle vectoriel présentée dans (Cohen et al., 2007). La version de Lucene que nous utilisons intègre le lemmatiseur Porter (1980) et utilise une liste de mots vides. Nous avons modifié cette version de sorte que la recherche ne tienne compte que des tweets publiés avant le querytime de chaque topic, que ce soit dans la mesure de la pertinence ou bien au niveau de la restitution des résultats. En effet, dans la recherche de microblogs et afin de respecter la contrainte de recherche en temps-réel, nous devons nous positionner à l’instant où la requête est soumise. Dans un contexte réaliste d’emploi du moteur de recherche de microblogs, les tweets publiés après le querytime de la requête ne sont évidemment pas connus ! Pour nos analyses, nous avons conservé les 1500 premiers tweets restitués par Lucene pour chaque requête. 3.2 Observations Lucene, dans sa configuration décrite ci-dessus, obtient un rappel moyen de 0,7188 avec les requêtes de 2011 et de 0,6340 avec les requêtes de 2012. Même si le modèle vectoriel arrive à restituer une bonne proportion des documents pertinents, le nombre des documents pertinents non restitués varie d’une requête à une autre. 1. http://lucene.apache.org 62CHAPITRE 3. ANALYSE DE DÉFAILLANCE DES MODÈLES DE RI CLASSIQUE SUR LES MICROBLOGS Les deux figures 3.1 et 3.2 montrent les proportions des tweets pertinents restitués par le modèle vectoriel par rapport à tous les tweets pertinents pour les requêtes des éditions de 2011 et de 2012. Feuille1_2 Page 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 0 20 40 60 80 100 120 140 160 180 200 Pertinents non retrouvés Pertinents retrouvés Nombre de tweets Figure 3.1 – Répartition des tweets pertinents restitués avec le modèle vectoriel par rapport à tous les tweets pertinents connus pour chaque requête de 2011 Feuille1 Page 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 0 100 200 300 400 500 600 700 Pertinents non retrouvés Pertinents retrouvés Nombre de tweets Figure 3.2 – Répartition des tweets pertinents restitués avec le modèle vectoriel par rapport à tous les tweets pertinents connus pour chaque requête de 2012. Dans la suite, on note chaque requête par « son numéro »/« édition de TREC ». Sur l’ensemble des 109 requêtes de 2011 et 2012, le modèle vectoriel restitue tous les tweets pertinents de 22 requêtes. Pour 30 requêtes, moins de 5 documents pertinents 63CHAPITRE 3. ANALYSE DE DÉFAILLANCE DES MODÈLES DE RI CLASSIQUE SUR LES MICROBLOGS sont manquants. C’est le cas par exemple des requêtes BBC World Service staff cuts (1/2011), MSNBC Rachel Maddow (34/2011), release of "Known and Unknown" (14/2011), Starbucks Trenta cup (12/2012) et Tea Party caucus (53/2012). Pour les autres requêtes, le nombre de documents pertinents non retrouvés varie d’une requête à une autre. Par exemple, sept documents pour Giffords’ recovery (37/2011), 23 pour Holland Iran envoy recall (42/2011), 68 pour Mexico drug war (4/2011), 78 pour release of "The Rite" (14/2011) , 179 pour smartphone success (31/2012) et 345 pour fishing guidebooks (10/2012) qui représentent le nombre le plus grand de tweets non restitués pour une requête. Nous notons également que le nombre de tweets non restitués n’est pas proportionnel avec le nombre de tweets pertinents de la requête. Par exemple, le modèle vectoriel n’a pas restitué uniquement 5 tweets pertinents pour la requête Moscow airport bombing (36/2011) ayant pourtant 151 documents pertinents et 44 documents pour la requête reduce energy consumption (27/2011) ayant pourtant 74 documents pertinents en totalité. Ou encore, pour la requête farmers markets opinion (21/2012), le modèle vectoriel identifie 68 tweets pertinents sur 76, soit 90 % de rappel. Cependant, pour le topic The daily (4/2012) 66 tweets pertinents parmi les 266 ont été restitués, soit un rappel de 25 %. Nous avons analysé les résultats requête par requête pour identifier les problèmes auxquels les modèles de RI sont confrontés et qui pénalisent notamment le rappel. Le problème le plus remarquable observé à l’issue de notre analyse est la différence de vocabulaire (vocabulary mismatch) entre la requête et les tweets pertinents. Ce problème est bien connu en recherche d’information (Furnas et al., 1988). Dans notre cas, on le rencontre sous plusieurs formes. 1. Absence totale des termes de la requête dans les documents pertinents. Nous avons observé qu’un nombre important de tweets traite du sujet de la requête sans avoir, pour autant, aucun terme en commun avec cette dernière. C’est le cas par exemple de la requête Amtrak train service (23/2011). Ce phénomène concerne 29 documents pertinents parmi 35 non retrouvés. Ces documents traitent des fonds réservés pour construire une nouvelles ligne de train ou relatent les difficultés des voyageurs. C’est le cas également de la requête Obama birth certificate (41/2011). Certains documents évoquent des confusions sur la nationalité du président. Nous pouvons également citer le topic British Government Cuts (1/2012), pour lequel ont été jugés pertinents des tweets qui traitent des licenciements dans le secteur public, de la baisse des salaires des employés dans certains secteurs, des coupes de budgets consacrés aux Jeux Olympiques, etc. Ce phénomène est présent pour 58 requêtes sur 109 (53 %), à hauteur de 40 % 64CHAPITRE 3. ANALYSE DE DÉFAILLANCE DES MODÈLES DE RI CLASSIQUE SUR LES MICROBLOGS des tweets pertinents non restitués. Plus précisément, ce problème apparaît pour au moins 1 800 tweets pertinents non restitués parmi les 4 448 tweets pertinents non restitués que nous avons au total sur toutes les requêtes. 2. Problèmes des noms propres et des entités nommées. Une première remarque concerne les noms propres orthographiés de différentes manières. Par exemple, pour le topic Glen Beck (9/2012), dans certains tweets pertinents les utilisateurs emploient Glenn plutôt que Glen. Également, pour le topic Bieber and Stewart trading places (13/2012), les utilisateurs emploient les prénoms justin et jon. Les entités nommées peuvent également être écrites de différentes manières : dans le topic anti-bullying (40/2012) les tweets non restitués contiennent cyberbulling plutôt que bullying. C’est le cas également du topic Superbowl commercials (49/2012), pour lequel les auteurs utilisaient généralement super bowl en deux termes, ou encore Bed bug au lieu de bedbug (2/2012). D’autre part, nous avons remarqué que certaines requêtes contiennent des entités nommées contenant des prépositions. Cependant, Lucene prend en compte les prépositions comme des termes vides et les élimine, ce qui modifie le sens de la requête. C’est le cas par exemple de la requête release of "the Rite" (14/2011). C’est la cas également de la requête the daily, le moteur de recherche a extrait des tweets contenant le terme daily plutôt que des tweets traitant du journal the daily (266 tweets pertinents non retrouvés parmi les 332 pertinents du topic). Ceci résulte de notre utilisation d’une liste de mots vides. Cette requête aurait probablement conduit à de meilleurs résultats si elle avait été traitée sous forme d’expression. Les problèmes liés aux entités nommées sont présents dans 7 topics sur 119 (5 %), à hauteur de 50 % des tweets pertinents non restitués. Plus précisé- ment, au moins 546 tweets pertinents non restitués sur les 4 448 présentent ce phénomène. 3. Problèmes de lemmatisation. Une première remarque est que des termes différents ne sont pas appariés, alors qu’ils relèvent d’une même racine. Par exemple, pour la requête somalian piracy (57/2012) étaient présents dans les tweets jugés pertinents les termes pirates ou pirate. La requête global warming and weather (29/2011) contient le terme « warmism » et non pas « warming ». Nous avons constaté également ce problème avec les requêtes contenant des termes qui reflètent la nationalité ou des noms de pays. Les documents pour ces requêtes contiennent les noms des pays et non pas les nationalités telles qu’elles apparaissent dans les requêtes ou l’inverse. C’est le cas par exemple de la requête Mexico drug wars (4/2011). Les documents non restitués de cette 65CHAPITRE 3. ANALYSE DE DÉFAILLANCE DES MODÈLES DE RI CLASSIQUE SUR LES MICROBLOGS requête contiennent souvent le terme « Mexican ». C’est le cas également de la requête Pakistan diplomat arrest (7/2011) où les documents contiennent le terme « pakistani ». D’autre part, nous avons remarqué l’apparition des termes de la requête concaténés sous forme de #hashtags ou de @citation. Par exemple, dans le topic texting and driving (54/2012) tous les tweets pertinents non restitués contiennent les termes de la requête mais concaténés en un hashtag (#donttextanddrive). C’est le cas de la requête BBC World Service staff cuts (1/2011) le document non restitué contient le hashtag #BBCWorldService. Pour la requête Taco Bell filling lawsuit (20/2011) certains documents non restitués contiennent le hashtag #TacoBell ou la citation @TacoBell. . . Les lemmatiseurs utilisés par les moteurs de recherche — Porter (1980) dans notre cas — sont incapables de résoudre ce type de problème, ce qui explique l’impossibilité de Lucene à restituer ces tweets. Ce phénomène est clairement présent dans 13 topics sur 109. Plus précisément, cela représente au moins 210 tweets pertinents non retrouvés sur les 4 448. 4. Acronymes écrits de différentes manières. C’est le cas du topic FDA approval of drugs (8/2012), pour lequel les tweets pertinents contenaient également l’acronyme USFDA. Nous avons également constaté que pour le topic NCIS (27/2012) plusieurs tweets pertinents contenaient la signification de l’acronyme : Naval Criminal Investigative Service. Ce phénomène est présent clairement dans deux topics sur 109, à hauteur de 50 % des tweets pertinents non restitués. Cela représente au moins 50 tweets pertinents non restitués sur les 4 448. Outre la différence de vocabulaire, nous avons remarqué que tous les termes des requêtes n’apparaissent pas avec la même importance dans les requêtes. Certains termes des requêtes n’aident ainsi pas à sélectionner les tweets pertinents. Ce phénomène apparaît de trois manières : (i) des requêtes contenant des termes qui n’apparaissent pas dans la majorité des documents pertinents non restitués, (ii) des requêtes contenant des termes qui apparaissent toujours, même dans les document non pertinents retrouvés et (iii) des requêtes composées uniquement de termes concernés par (i) ou (ii). Par exemple du premier cas (i), les documents non retrouvés de la requête 2022 FIFA soccer (2/2011) ne contiennent jamais le terme “soccer”. Les documents non retrouvés de la requête phone hacking British politicians (7/2011) ne contiennent jamais le terme “politicians”. Dans la requête fishing guidebooks (10/2012), 345 tweets pertinents non retrouvés parmi les 524 pertinents du topic 66CHAPITRE 3. ANALYSE DE DÉFAILLANCE DES MODÈLES DE RI CLASSIQUE SUR LES MICROBLOGS ne contiennent pas le terme guidebooks, ni un dérivé de ce terme. Comme exemple du deuxième cas, les documents non retrouvés de la requête Super Bowl, seats (24/2011) où Super bowl apparaît dans tous les documents restitués et les documents pertinents non restitués. Toutefois, ce phénomène n’a été observé que pour cette requête. Pour le troisième cas, les documents non restitués de la requête Emanuel residency court rulings (21/2011) ne contiennent jamais les termes Emanuel, residency et ruling, mais contiennent tous le terme court. C’est également le cas de la requête reduce energy consumption (27/2011) pour lequel les documents non restitués ne contiennent jamais les termes reduce et consumption mais contiennent toujours le terme energy. Ce phénomène a été observé dans 17 requêtes sur les 50 et a empêché la restitution d’au moins 200 documents pertinents. De façon identique, nous avons constaté que, dans le cas des requêtes contenant des entités nommées, les tweets pertinents non retrouvés contiennent ces entités nommées, mais sans les autres termes des requêtes. Par exemple, pour le topic McDonalds food (28/2012), tous les tweets non restitués contiennent seulement le terme McDonalds parmi tous les termes de la requête (350 tweets pertinents non restitués parmi 572 tweets pertinents de cette requête). Suite à ces observations, nous avons voulu savoir pour combien de tweets la prise en compte des contenus des URL qu’ils contiennent permettrait de régler ce problème de vocabulaire. En d’autres termes, nous avons voulu savoir si les termes des requêtes non présents dans des tweets pertinents étaient présents dans les documents pointés par les URL. Nous avons donc analysé le contenu des URL des tweets pertinents non restitués et nous avons constaté que leur prise en compte aiderait à retrouver des tweets pertinents dans 41 topics sur 109 (37 %). Cela représente au moins 800 tweets pertinents non restitués. 4 Synthèse Le tableau 3.1 résume les différentes observations de notre analyse, qui sont des problèmes classiques de la RI. Leurs effets sont cependant amplifiés avec les microblogs à cause de leur faible longueur, ce qui implique un vocabulaire limité. Quel que soit le modèle de RI utilisé, mesurer la similarité entre une requête qui ne dépasse souvent pas quatre termes et un microblog composé en moyenne de 15 termes revient à une présence ou absence des termes de la requête dans un microblog, dans la majorité des cas. Au niveau des analyses des facteurs limitant l’efficacité du modèle de recherche sur les microblogs, nous avons montré que le problème principal, comme attendu, 67CHAPITRE 3. ANALYSE DE DÉFAILLANCE DES MODÈLES DE RI CLASSIQUE SUR LES MICROBLOGS Cause de la défaillance Pourcentage de tweets non restitués sur 4 448 pertinents au total Pourcentage de requêtes concernées sur 109 requêtes Absence totale des termes des topics dans les tweets pertinents ' 40,46 % 51,21 % Termes des requêtes avec des importances différentes ' 20,12 % 16,51 % Termes des requêtes à traiter sous forme d’expression et/ou sans liste de mots vides ' 7,77 % 2,75 % Noms propres et entités nommées orthographiés de différentes manières ' 4,49 % 4,58 % Termes non appariés mais dérivant d’une même racine ' 4,04 % 8,25 % Termes de la requête concaténés sous forme de hashtag ou de citation ' 1,79 % 6,42 % Acronymes écrits de différentes manières ' 1,12 % 1,83 % Tableau 3.1 – Récapitulatif des différents facteurs limitant l’efficacité du modèle de recherche sur les microblogs provient de la concision des microblogs. Cette concision engendre une correspondance limitée entre les termes des microblogs et les termes des requêtes, même s’ils sont sémantiquement similaires. Ce fait est apparu de différentes manières : absence totale des termes de certaines requêtes dans les tweets pertinents, noms propres et entités nommés orthographiés de différentes manières. . . Nous avons fréquemment identifié des problèmes de lemmatisation : termes non appariés même si dérivant d’une même racine ou des termes concaténés pour former des hashtags ou des citations. Outre les problèmes de vocabulaire, nous avons remarqué que, pour certaines requêtes, les termes n’ont pas un caractère discriminant. Ces termes sont fréquemment présents dans les documents pertinents et les documents non pertinents ou bien ils n’apparaissent jamais. De manière générale, les problèmes soulevés avec les requêtes de 2011 sont les mêmes pour les requêtes de 2012. Cependant, les requêtes de 2012 contiennent un nombre plus important de tweets pertinents, ce qui les rend plus difficiles (2 864 68CHAPITRE 3. ANALYSE DE DÉFAILLANCE DES MODÈLES DE RI CLASSIQUE SUR LES MICROBLOGS tweets pertinents pour les 49 requêtes de 2011 / 6 286 tweets pertinents pour les 60 requêtes de 2012). Nous avons montré que la plupart des problèmes de la recherche d’informations dans les microblogs ne dépend pas du modèle de recherche. Ces problèmes ne concernent pas les fréquences des termes dans les microblogs, ou bien la distribution des termes dans les microblogs. Ce sont plutôt des problèmes de vocabulaire et des problème de lemmatisation. Le problème de vocabulaire, avec ses différentes formes observées, ou bien les problèmes de lemmatisation, peuvent affecter l’efficacité de n’importe quel modèle qui se base uniquement sur le contenu textuel brut des microblogs et avec les requêtes avec leurs descriptions initiales. Cependant, un problème, tel que les termes de requêtes qui ont des importances différentes, regarde exactement le fonctionnement des modèles de recherche, et sa gravité dépend fortement de la manière avec laquelle un modèle calcule les scores de pertinence. La prise en compte de la fréquence du terme dans la collection (IDF) joue ainsi un rôle très important ici. Le problème de vocabulaire semble surmontable avec l’expansion de requêtes et de documents. Les termes à caractère non discriminant peuvent être pondérés en exploitant le feedback. C’est pourquoi, dans le chapitre suivant, nous présenterons les différentes méthodes d’expansion de requêtes et de documents que nous avons appliquées pour surmonter le problème du vocabulaire souvent rencontré dans la recherche d’information dans les microblogs. 69CHAPITRE 3. ANALYSE DE DÉFAILLANCE DES MODÈLES DE RI CLASSIQUE SUR LES MICROBLOGS 70Chapitre 4 Expansion de requêtes et de documents pour la recherche de microblogs 1 Introduction À travers l’analyse de défaillance conduite et présentée dans le chapitre précé- dent, nous avons montré que le vocabulaire limité lié à la taille réduite des microblogs est le facteur empêchant le plus les SRI de restituer des microblogs pertinents. Notre objectif, dans ce chapitre, est de proposer des éléments de solutions pour surpasser ces limites : absence de termes en commun entre les requêtes et les microblogs, termes des requêtes n’ayant aucun caractère discriminant, entités-nommées orthographiées de différentes manières, problèmes de lemmatisation, termes concaténés. . . Une solution au problème du vocabulaire est l’expansion de requêtes ou de documents (technique connue en RI). Nous proposons ici d’améliorer la représentation des requêtes. Dans un premier temps, nous exploitons des ressources externes pour étendre les requêtes. Ces ressources comprennent des articles d’actualité ainsi que la base lexicale WordNet. Nous testons également l’impact de méthodes de ré-injection de pertinence (telles que Rocchio et BM25). Nous proposons également d’améliorer la représentation des microblogs. Nous testons quelques méthodes pour améliorer la représentation des microblogs, telles que l’expansion des hashtags et l’exploitation des contenus des URLs publiées dans les microblogs. 2 Expansion de requêtes Pour améliorer la représentation des requêtes, nous avons considéré différentes ressources. Certaines sont externes par rapport à la collection de tweets. L’infor- 71CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS mation dans les tweets étant très dépendante du temps, nous avons employé des ressources sensibles au temps pour étendre les requêtes, telles que les articles des actualités publiés dans les journaux les plus populaires dans le monde. D’autre part, nous avons exploité la base lexicale WordNet pour trouver les différents aspects des requêtes et l’API de correction orthographique du moteur de recherche Bing pour trouver les différentes formes des entités nommées. En outre, nous avons étendu les requêtes à partir des tweets en appliquant des techniques de ré-injection de pertinence (relevance feedback). Pour réaliser les expérimentations qui suivent , nous nous sommes basés sur les 60 requêtes de TREC Microblog 2012. Pour chaque requête, nous avons considéré les 1500 premiers tweets restitués avec le modèle vectoriel. La validation des améliorations ou des dégradations est réalisée selon le test t de Student pairé et bilatéral avec p < 0,05. Nous nous sommes basés sur le run obtenu avec le modèle vectoriel implémenté dans Lucene comme baseline. 2.1 Exploitation des articles d’actualités La première source que nous avons considérée est constituée des actualités publiées de façon concomitante aux requêtes. Nous avons en effet remarqué que la majorité des topics des requêtes portent sur des actualités (50 % des topics). Pour cette raison, nous proposons d’étendre les requêtes avec des mots-clés extraits à partir des articles de presse publiés sur le sujet du topic. Les API du NYTimes 1 et du Guardian 2 permettent d’obtenir des articles de ces journaux en fonction d’une requête. Étant donné que les articles restitués sont classés selon leur pertinence dé- croissante, nous avons considéré les cinq premiers articles restitués par chaque source et publiés avant la date du topic pour produire un méga-document (Klas et Fuhr, 2000). Ensuite, nous avons utilisé l’API Alchemy 3 pour extraire les mots-clés représentatifs de ce méga-document. L’API Alchemy réalise une analyse linguistique, un traitement du langage naturel et un apprentissage automatique pour analyser le contenu et en extraire des mots-clés. Nous avons évalué l’extension de la requête avec trois (3Act) ou sept(7Act) termes renvoyés par Alchemy. Les nouvelles requêtes sont formées par les termes initiaux des requêtes et les termes d’expansion. Dans un premier temps, nous ne pondérons pas les termes ajoutés dans la requête (tous les termes de la requête étendue ont un poids égal à 1). Dans un second temps, nous pondérons uniquement les termes ajoutés aux requêtes (3Act(pond) et 7Act(pond)) avec un poids de 0,8 (choix arbitraire pour ces premières expérimentations). Les ré- sultats sont présentés dans le tableau 4.1. La colonne Run contient le nom des runs. 1. http://developer.nytimes.com/ 2. http://www.guardian.co.uk/open-platform/ 3. http://www.alchemyapi.com/ 72CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS Ils sont présenté sous la forme Modèle-Requête-Champ utilisé. Le champ utilisé spé- cifie le contenu employé pour la restitution. À ce niveau, nous utilisons uniquement le contenu textuel des tweets (Tweets) dans la restitution. Notons dès à présent que dans les sections suivantes, nous exploiterons d’autres contenus pour la restitution des résultats, hormis le contenu textuel des tweets. Run Modèle Requête étendue Champ utilisé P@30 Rappel MAP Baseline VSM — Tweets 0,2842 0,6340 0,1871 VSM-3Act-Tweets VSM 3Act Tweets 0,2689 0,5691 0,1699 VSM-7Act-Tweets VSM 7Act Tweets 0,3040* 0,5985 0,1923* VSM-3Act(pond)-Tweets VSM 3Act(pond) Tweets 0,2785 0,5923 0,1806 VSM-7Act(pond)-Tweets VSM 7Act(pond) Tweets 0,3079* 0,6156 0,1962* Tableau 4.1 – Emploi des articles de type actualité pour l’expansion de requêtes (avec et sans pondération des termes d’expansion, 1500 résultats par requête). Un astérisque indique une amélioration significative par rapport à la baseline. Concernant le rappel, nous constatons que la pondération améliore les résultats par rapport à la non pondération (runs Modèle-X(pond)-Champ par rapport aux runs Modèle-X-Champ). Par exemple le run « VSM-3Act(pond)-Tweets » améliore le run « VSM-3Act-Tweets » de 3,91 %. Cependant, aucune amélioration significative n’est à remarquer par rapport au run Baseline utilisant la requête originale. Concernant la P@30 et la MAP, le fait d’étendre les requêtes avec trois termes uniquement dégrade les résultats, que ce soit avec ou sans pondération. Cependant, en étendant les requêtes avec sept termes, nous observons des améliorations significatives par rapport à la « baseline ». Cette amélioration est légèrement plus importante en pondérant les termes d’expansion. Le run « VSM-7Act(pond)-Tweets » est celui qui a obtenu la meilleure amélioration par rapport à la baseline : 8,33 % en p@30 et 4,86 % en MAP. De manière générale, l’emploi des articles d’actualités comme source pour étendre les requêtes a amélioré la précision et a dégradé le rappel. En d’autre termes, cette approche a amélioré les rangs des premiers microblogs pertinents (P@30 améliorée de 8,33 %), sans pouvoir retrouver autant de nouveaux tweets pertinents. Nous avons comparé les tweets pertinent des runs « VSM-7Act(pond)-Tweets » et « Baseline » : sont également présent 91 % des tweets pertinents du run « Req7ActPondTweet » dans le run « Baseline ». Nous avons également remarqué que cette méthode d’expansion a renforcé la pertinence d’une partie des documents pertinents. Cette partie se compose des microblogs contenant totalement ou partiellement les termes initiaux des requêtes. Cependant, elle n’a pas aidé à restituer de nouveaux tweets pertinents, en particulier ceux qui ne contiennent pas les termes des requêtes. La dernière observation peut être expliquée par le fait que nous nous sommes basés sur les premiers articles d’actualités résultant d’une recherche avec les termes 73CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS des requêtes sur les deux API (NYTimes et Guardian). Ces APIs utilisent leurs moteurs de recherche pour trouver des articles en fonction des termes de nos requêtes. Ceci implique que les termes les plus importants retrouvés à partir de ces articles correspondent en premier lieu aux termes initiaux des requêtes, ou bien aux termes fortement dépendant des termes des requêtes (les termes présentant l’aspect sémantique général des requêtes). Ainsi, cette méthode permet de mieux représenter les requêtes initiales, sans donner d’autres aspects sémantiques des requêtes, permettant ainsi de restituer les microblogs pertinents et portant sur les sujets des requêtes, tout en n’ayant aucun terme en commun avec elles. Ceci explique ainsi la dégradation du rappel et l’amélioration de la précision. Afin de retrouver des termes d’expansion représentant d’autres aspects des requêtes, nous avons testé l’expansion avec la base lexicale WordNet. 2.2 Exploitation de la base lexicale WordNet La base de données lexicale WordNet a été souvent utilisée en RI comme un moyen de désambiguïsation et d’extension de requêtes. Nous avons testé cette stratégie en étendant chaque terme de la requête avec le premier synset retrouvé. Chaque requête étendue va ainsi être composée des termes de la requête initiale et des termes d’expansion. De la même manière que dans le paragraphe précédent, dans un premier temps, nous ne pondérons pas les termes ajoutés dans la requête. Tous les termes ont un poids égal à 1. Dans un second temps, nous avons pondéré (WN(pond)) uniquement les termes ajoutés aux termes initiaux des requêtes avec un poids de 0,8 (choix arbitraire pour observer l’impact de la pondération). Les résultats sont présentés dans le tableau 4.2. Run Modèle Requête étendue Champ utilisé P@30 Rappel MAP Baseline VSM — Tweets 0,2842 0,6340 0,1871 VSM-WN-Tweets VSM WN Tweets 0,2797 0,6305 0,1854 VSM-WN(Pond)-Tweets VSM WN(pond) Tweets 0,2881 0,6362 0,1878 Tableau 4.2 – Récapitulatif des différents runs testés sans pondération des termes ajoutés aux requêtes. L’expansion avec WordNet n’améliore non plus pas les résultats par rapport à la baseline (0,37 % d’amélioration sur la MAP, 1,37 % sur la P@30 et 0,34 % sur le rappel entre le run « Baseline » et « VSM-WN(pond)-Tweets »). En outre, les améliorations sur les trois mesures ne sont pas significatives. En fait, au niveau des tweets pertinents restitués, 59/60 des requêtes ont renvoyé exactement les mêmes tweets pertinents. La différence est uniquement présente au niveau de la requête somalian piracy. Avec l’expansion, cette requête s’est transformée en somalian somali piracy. En réalité, WordNet a compensé une faiblesse de Porter. Dans l’analyse de 74CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS défaillance, nous avons signalé ce problème : plusieurs tweets pertinents de cette requête contiennent le terme somalia ou somalis. Porter n’arrive pas à traiter et correspondre ces variances. Ainsi, l’ajout du terme somali dans la requête a permis la restitution de 42 nouveaux tweets pertinents. D’où la faible amélioration globale. Concernant la pondération, nous avons observé le même impact que celui observé dans le paragraphe précédent. Elle améliore les résultats par rapport à la non pondération. Nous avons comparé les runs « VSM-WN-Tweets » et « VSM-WN(pond)- Tweets » et nous avons trouvé que 100 % des tweets pertinents du premier run apparaissent dans le deuxième run. En contre partie, le deuxième run a restitué uniquement 14 nouveaux tweets pertinents par rapport au premier run. De manière générale, l’emploi de WordNet n’a servi à améliorer ni le rappel ni la précision. Pour 59 requêtes parmi 60, aucun nouveau tweet pertinents n’a été observé. Nous avons également testé l’emploi de plusieurs termes d’expansion mais ceci n’a fait que dégrader les résultats. 2.3 Suggestions orthographiques Nous avons remarqué, dans certaines requêtes, des entités nommées orthographiées de manières différentes à celles dans les tweets pertinents. C’est pourquoi nous avons testé l’outil « Bing spelling suggestions 4 ». Cette API permet de corriger les termes mal orthographiés et de retrouver les autres écritures des entités nommées. Pour chaque terme d’une requête, nous avons ajouté ses autres formes d’écriture dans la requête initiale (sans pondération). Cependant, seules deux requêtes parmi les 60 ont été modifiées. Ce sont la requête « Bedbug epidemic » qui est devenue « Bedbug epidemic bed bug » et la requête « Glen Beck » qui est devenue « Glen Beck Glenn ». Les résultats de ces deux requêtes ont un rappel plus élevé que celui de la baseline (19,91 % et 2,08 % respectivement). En considérant toutes les requêtes, nous avons obtenu une amélioration du rappel de 0,28 % (tableau 4.3). Cependant, ni cette amélioration, ni les améliorations des autres mesures ne sont significatives. Run Modèle Requête étendue Champ utilisé P@30 Rappel MAP Baseline VSM — Tweets 0,2842 0,6340 0,1871 VSM-ReqBing-Tweet VSM ReqBing Tweets 0,2893 0,6358 0,1884 Tableau 4.3 – Test de l’amélioration des performance via la correction orthographique des requêtes. 4. http://www.bing.com/developers/ 75CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS 2.4 Réinjection de pertinence Une source typique pour étendre les requêtes est constituée de l’ensemble des termes présents dans les premiers documents restitués en réponse aux requêtes initiales. Cette technique s’appelle la réinjection de pertinence (Relevance Feedback). Nous avons testé et analysé l’impact de deux approches classiques de la RI afin de voir leur efficacité sur ce genre de documents : Rocchio et le modèle BM25. 2.4.1 Expansion de requêtes avec Rocchio Nous avons utilisé la version améliorée (Salton et Buckley, 1997) de la formule originale de Rocchio (1971). Cette version prend en compte uniquement les documents qui ont obtenu les meilleures scores dans la reformulation. La formule est la suivante : Qnouv = α.Qorig + β |R| . X ~r∈R ~r (4.1) Qnouv est le vecteur des termes pondérés de la requête étendue. Qorig est le vecteur de termes pondérés de la requête initiale. R est l’ensemble des documents pertinents. ~r est le vecteur des termes obtenus de R pour l’expansion. Nous avons gardé les valeurs par défaut des paramètres : α = 1 and β = 0, 75. La taille de R est fixée à 10. Ce choix est consistant à la vu des expérimentations réalisées sur les collections de TREC (Carpineto et al., 2001). Le nombre de termes ajoutés est également limité à 10. Ce choix correspond au résultat d’une étude sur l’expansion de requête à partir du feedback, pour la recherche de microblogs. Cette étude est réalisée par Aboulnaga et Clarke (2012). L’objectif de l’emploi de Rocchio est double : d’une part, il permet de résoudre le problème de vocabulaire en améliorant la représentation des requêtes avec un vocabulaire plus riche. D’autre part, il permet, au travers des meilleurs résultats de la première restitution, de pondérer les termes des requêtes. Ceci pourrait résoudre le problème noté dans l’analyse de défaillance : les termes de la requête n’ont pas tous la même importance. Dans un premier temps, le poids des termes d’expansion dans le vecteur ~r ont été calculés avec TF-IDF (Rocch(TF.IDF)). Les résultats sont présentés dans le tableau 4.4. Nous remarquons que la technique de Rocchio améliore significativement les ré- sultats par rapport à la baseline, que ce soit au niveau du Rappel, de la P@30 ou la MAP : respectivement 8,00 %, 13,72 % et 18,17 %. Nous avons comparé les tweets pertinents du run « VSM-Rocch(TF.IDF)-Tweets » avec les tweets pertinents du run « Baseline ». Nous avons trouvé que 14 % des tweets pertinents du run « VSMRocch(TF.IDF)-Tweets » n’existaient pas dans le run « Baseline ». Ceci correspond 76CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS Run Modèle Requête étendue champ utilisé P@30 Rappel MAP Baseline VSM — Tweets 0,2842 0,6340 0,1871 VSM-Rocch(TF.IDF)-Tweets VSM Rocch(TF.IDF) Tweets 0,3232* 0,6822* 0,2211* Tableau 4.4 – Expansion de la requête initiale avec Rocchio. Les poids des termes d’expansion sont calculés avec TF.IDF. Un astérisque indique une amélioration significative par rapport à la baseline. à 589 nouveaux tweets pertinents. Ces nouveaux tweets pertinents sont répartis sur 42 requêtes parmi les 60. Ce sont souvent des tweets contenant un seul terme de la requête initiale et certains termes d’expansion. Cependant, l’expansion a ignoré 77 tweets pertinents qui existaient déjà dans le run « Baseline ». Ces tweets sont répartis sur toutes les requêtes avec un ou deux tweets non retrouvés pour chacune. Dans un deuxième temps, les poids des termes d’expansion sont calculés avec le modèle BM25. Run Modèle Requête étendue champ utilisé P@30 Rappel MAP Baseline VSM — Tweets 0,2842 0,6340 0,1871 VSM-Rocch(TF.IDF)-Tweets VSM Rocch(TF.IDF) Tweets 0,3232* 0,6822* 0,2211* VSM-Rocch(BM25)-Tweets VSM Rocch(BM25) Tweets 0,3311* 0,6764* 0,2304* Tableau 4.5 – Expansion de la requête initiale avec Rocchio. Les poids des termes d’expansion sont calculés avec BM25. Un astérisque indique une amélioration signi- ficative par rapport à la baseline. Le tableau 4.5 présente les nouveaux résultats. Par rapport à la « baseline », nous avons obtenu des améliorations significatives sur les trois mesures : 6,70 %, 16,50 % et 23,14 % respectivement sur le rappel, la P@30 et la MAP. Par rapport au run qui emploie TF.IDF pour pondérer les termes d’expansion (« VSM-Rocch(TF.IDF)- Tweets »), nous remarquons des améliorations significatives uniquement sur la P@30 et la MAP : 2,44 % et 4,20 % respectivement. Les tweets pertinents du run « VSMRocch(BM25)-Tweets » sont à 99 % ceux du run « VSM-Rocch(TF.IDF)-Tweets ». Ce sont également les mêmes termes d’expansion qui ont été sélectionnés et ajoutés dans les requêtes initiales en calculant les poids avec BM25, que ceux sélectionnés avec TF.IDF. Toutefois, la pondération des termes d’expansion avec les scores de BM25 à permis de mieux classer les tweets pertinents, ce qui a amélioré la précision et la MAP. 2.4.2 Expansion de requêtes via le modèle BM25 Une des méthodes classiques de réinjection de pertinence est le mécanisme « naturel » du modèle BM25. Naturellement, le facteur approximatif de IDF dans le 77CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS modèle BM25 est : IDF∗∗ = log r + 0.5/n − r + 0.5 R − r + 0.5/N − R − n + r + 0.5 ! (4.2) avec r est le nombre de documents pertinents contenant le terme t, R est le nombre de tous les documents contenant le terme t, n est le nombre de documents pertinents et N est la taille de la collection. En absence d’information de pertinence au préalable, ce facteur devient : IDF∗ = log N − R R  (4.3) L’emploi de IDF∗∗ nécessite une connaissance préalable des documents pertinents. Ainsi, l’idée est de considérer les premiers résultats de la première restitution réalisée en considérant IDF∗ . Cet ensemble est supposé être l’ensemble de pertinence (feedback). Ensuite, on réalise une deuxième restitution, mais toujours avec la requête initiale, en considérant IDF∗∗ et le feedback pour le calcul des scores. En se basant sur des expérimentations réalisées sur les collections de TREC (Carpineto et al., 2001), le feedback est constitué des 10 premiers tweets restitués avec la requête initiale. Pour étudier l’impact de l’expansion de requêtes avec le modèle BM25, il est évident de comparer les différentes propositions (emploi du feedback et expansion) avec les résultats du modèle BM25 de base (équation 5.12). Ceci nous a permis également de comparer les résultats des modèles BM25 et vectoriel. Le tableau 4.6 montre les résultats. BMX25fb indique que le modèle emploie le feedback dans le calcul du score de pertinence. La première remarque est que le modèle BM25 (run « BM25- — -Tweets ») a obtenu des résultats plus faibles que le modèle vectoriel. Run Modèle Requête étendue champ utilisé P@30 Rappel MAP Baseline VSM — Tweets 0,2842 0,6340 0,1871 BM25- — -Tweets BM25 — Tweets 0,2836 0,6043 0,1654 BM25fb- — -Tweets BM25fb — Tweets 0,2655 0,5940 0,1604 BMX25- — -Tweets BMX25 — Tweets 0,3186* 0,6643* 0,2170* BMX25fb- — -Tweets BMX25fb — Tweets 0,3135 0,6364 0,2163 BMX25fb-Reqexp-Tweets BMX25fb Reqexp Tweets 0,3571* 0,6369 0,2300* Tableau 4.6 – Différentes configurations du modèle BM25. * montre une amélioration significative par rapport à configuration de base (run BM25). Motivés par le travail de Ferguson et al. (2012), nous avons modifié les paramètres initiaux du modèle BM25 afin de limiter au maximum la prise en compte des facteurs de normalisation et la fréquence des termes dans le calcul du score. En fait, 78CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS comme nous l’avons déjà mentionné, dans la recherche de microblogs, la fréquence des termes n’améliore vraiment pas les résultats. De plus, la normalisation de la longueur des documents dégrade les résultats 5 . Nous avons ainsi paramétré k1 = 0,1 et b = 0. BMX25 indique la prise en compte de ces paramètres dans le modèle BM25. « BMX25- — -Tweets » et « BMX25fb- — -Tweets » représentent respectivement les runs sans et avec l’emploi du feedback, mais avec les nouveaux paramètres. On peut remarquer, dans un premier temps, que le nouveau paramétrage améliore considérablement les résultats : 10,0 %, 12,3 % et 31,2 % d’amélioration respectivement pour le rappel, la p@30 et la MAP, entre le run « BM25- — -Tweets » et le run « BMX25- — -Tweets ». Le run « BMX25- — -Tweets » est également meilleur que le run « Baseline ». Les améliorations sont respectivement de 4,8 %, 12,1 % et de 16,0 % dans le rappel, la p@30 et la MAP. Le run « BMX25- — -Tweets » contient 707 nouveaux tweets pertinents par rapport au run « Baseline » et contient 92,0 % des tweets pertinents du run « Baseline ». Ceci correspond à 390 tweets pertinents non retrouvés. Ces tweets se caractérisent de manière générale par leur longueur très réduite (un ou deux termes et une URL). La différence au niveau du nombre de tweets restitués entre les run « BMX25- — -Tweets » et « Baseline » correspond approximativement au nombre de tweets non restitués à la cause des différences dans les importance des termes des requêtes (695 sur les requêtes de 2012), observé dans le chapitre précédent. Le fait de se baser principalement sur le facteur IDF dans la restitution de microblog a résolu ce problème. Le run « BM25fb- — -Tweets » est celui qui emploie le feedback avec le modèle BM25 de base. À ce niveau, aucune amélioration n’a été constatée. Concernant le run « BMX25fb- — -Tweets », les résultats montrent que, encore une fois, le feedback n’améliore pas les résultats. Nous avons comparé les tweets pertinents des runs « BMX25- — -Tweets » et « BMX25fb- — -Tweets ». 99% des tweets pertinents du run « BMX25fb- — -Tweets » existaient dans le run « BMX25- — -Tweets » (13 nouveaux tweets). Cependant, l’emploi du feedback a négligé 161 tweets pertinents. En réalité, 110 de ces tweets non restitués avaient un rang supérieur à 1500. Pour cette raison, ils n’ont pas été considérés dans le rappel. Nous pouvons ainsi constater que l’emploi du feedback ne permet pas de restituer de nouveaux tweets pertinents et ne résout pas le problème de vocabulaire. Au lieu de fournir simplement une méthode de pondération des termes de la requête d’un utilisateur, la réinjection de pertinence peut également impliquer l’expansion de la requête avec certains termes (dans ce cas dix termes pour les raisons expliquées dans le paragraphe précédent) à partir du feedback (dix premiers tweets de la première restitution). Ces termes sont choisis par le facteur de pertinence de 5. Ceci coïncide avec les résultats du chapitre suivant où nous allons montrer que la longueur des microblogs est un facteur de pertinence dans la recherche de microblogs. 79CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS l’équation 4.2. Le run réalisant l’expansion et le feedback est « BMX25fb-ReqexpTweets ». Au niveau du rappel, aucune amélioration n’a été observée par rapport au run « BMX25- — -Tweets ». Cependant, la p@30 a progressé de 12,0 % et la MAP de 6,3 %. Nous avons comparé les tweets pertients des deux runs « BMX25fb-ReqexpTweets » et « BMX25- — -Tweets ». Même si le rappel s’est dégradé de manière significative, le run « BMX25fb-Reqexp-Tweets » contient 467 nouveaux tweets pertinents (13 %). En contrepartie, il a négligé 813 tweets pertinents qui existaient dans le run « BMX25- — -Tweets ». Nous avons comparé également les runs « BMX25fb-Reqexp-Tweets » et « BMX25fb- — -Tweets ». Même si ces deux runs ont pratiquement le même nombre de tweets pertinents, ils diffèrent d’un ensemble considérable de tweets pertinents (de l’ordre de 470 tweets pertinents). L’expansion améliore considérablement le rang des tweets pertinents. Ainsi, pour le modèle BM25 employé dans le cas de recherche de microblogs, nous pouvons conclure que le feedback dégrade le rappel. En outre, il n’améliore ni la MAP ni la précision, tant qu’il n’est pas accompagné d’une expansion de requêtes. L’expansion de requêtes améliore les rangs des tweets pertinents et réduit partiellement l’effet négatif du feedback au niveau du rappel. 3 Expansion de microblogs Outre l’expansion des requêtes, nous avons évalué l’impact de l’expansion de microblogs, et ce de plusieurs façons : expansion de hashtags et emploi des URLs. 3.1 Expansion de hashtags dans les tweets Dans l’analyse de défaillances du chapitre 2, nous avons constaté qu’un nombre important de tweets pertinents non restitués contient les termes de la requête collés ensemble sous forme de hashtags (par exemple, #TextAndDrive). Nous avons mis l’index à jour en étendant chaque hashtag composé avec les termes qui le composent. Nous avons remarqué que les auteurs mettaient parfois le premier caractère de chaque terme composant en majuscule. Ainsi, nous nous sommes basés sur cette observation pour étendre les hashtags composés. Pour chaque tweet contenant un hashtag composé, nous avons ajouté les termes composants au tweet (champ utilisée : TweetsHashExp). Une légère amélioration mais non significative dans le rappel (tableau 4.7) est constatée. 80CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS Run Modèle Requête étendu champ utilisée P@30 Rappel MAP BMX25- — -Tweets BMX25 — Tweets 0,3186 0,6643 0,2170 BMX25- — -TweetsHashExp BMX25 — TweetsHashExp 0,3198 0,6681 0,2166 Baseline VSM — Tweets 0,2825 0,6340 0,1871 VSM- — -TweetsHashExp VSM — TweetsHashExp 0,2785 0,6361 0,1859 Tableau 4.7 – Résultats après l’expansion de hashtags, avec le modèle vectoriel et le modèle BM25 (sans et avec paramétrage). 3.2 Emploi des URLs À l’issue de notre analyse de défaillances et plus particulièrement de l’analyse des URLs publiées dans les tweets pertinents, nous avons remarqué que la prise en compte des pages web pointées par les URLs en complément des contenus des tweets pourrait améliorer la restitution des tweets pertinents. Le contenu des URLs présente souvent les termes des requêtes, même si le tweet ne les contient pas. Une première proposition consiste alors à la prise en compte d’un tweet selon 1) son contenu (champ utilisée : Tweets) ainsi que 2) le contenu des documents pointés par les URLs (champ utilisée : Tweets+URL) présentes dans le tweet (2 646 611 tweets contiennent une URL dans la collection). Nous avons commencé par considérer les deux champs (Tweets+URL) dans la recherche avec les requêtes originales. Le tableau 4.8 montre que l’emploi les URLs dans la restitution améliore significativement les résultats, que ce soit avec le modèle vectoriel ou bien BM25. Run Modèle Requête étendue Champ utilisé P@30 Rappel MAP Baseline VSM — Tweets 0,2825 0,6340 0,1869 VSM- — - Tweets+URL VSM — Tweets+URL 0,3814* 0,7171* 0,2593* BM25- — -Tweets BM25 — Tweets 0,2836 0,6043 0,1654 BM25- — -Tweets+URL BM25 — Tweets+URL 0,3816* 0,6686* 0,2267* BMXx25- — -Tweets+URL BMXx25 — Tweets+URL 0,3944* 0,6879* 0,2360* Tableau 4.8 – Apport de l’emploi des URLs avec le modèle vectoriel et le modèle BM25. * montre une amélioration significative par rapport au run précédent. Dans le cas du modèle vectoriel, le run « VSM- — - Tweets+URL » a eu des améliorations de 13,1 %, 35,0 % et 38,7 % sur le rappel, la P@30 et la MAP. En comparant les tweets pertinents des runs « VSM- — - Tweets+URL » et « baseline », nous avons remarqué que l’effet des URLs n’était pas totalement positif, en particulier au niveau de la sélection des tweets pertinents. Le run « VSM- — - Tweets+URL » contient 1013 (22,85 %) nouveaux tweets pertinents par rapport au run « Baseline ». Cependant, 275 tweets pertinents du run « Baseline » n’ont pas été de nouveau restitués. 81CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS Les mêmes améliorations sont constatées avec le modèle BM25 : 10,6 %, 34,6 % et 37,0 % respectivement sur le rappel, la p@30 et la MAP. Encore une fois, nous pouvons affirmer que l’effet des URLs n’est pas totalement positif sur la sélection des tweets pertinents. Cette observation est plus claire avec le modèle BM25. Le run « BM25- — -Tweets+URL » contient 1039 nouveaux tweets pertinents par rapport au run « BM25- — -Tweets ». Cependant, 670 tweets pertinents du run « BM25- — -Tweets » n’ont pas été de nouveau restitués. Le double effet de l’emploi des URLs revient au fait qu’une quantité importante de tweets non pertinents contient les termes des requêtes dans les contenus des URLs. Nous avons remarqué cette observation même au niveau des contenus des tweets : plusieurs tweets non pertinents contiennent les termes des requêtes et traitent les sujet des requêtes. . . Finalement, nous avons testé une configuration qui définit les paramètres du modèle BM25 en fonction du champ recherché. Les paramètres k1 et b sont initialisés respectivement à 1,2 et 0,75 lorsque la recherche des termes d’une requête est effectuée sur le champ UrlText (BMXx25 ). Ils ont été initialisés à 0,1 et 0 lorsque la recherche est effectuée sur le champ Tweets. Le run avec cette configuration est « BMXx25- — -Tweets+URL ». Nous pouvons observer des améliorations de 2,9 %, 3,3 % et de 4,1 % respectivement sur le rappel, la P@30 et la MAP, par rapport au run « BM25- — -Tweets+URL ». Le parametrage a permis de restituer 215 nouveaux tweets pertinent. Cependant, 166 tweets pertinents du run « BM25- — -Tweets+URL » n’ont pas été de nouveau restitués. De manière générale, nous pouvons remarquer que le modèle BM25 est plus performant au niveau de la précision. En d’autre termes, les rangs des tweets pertinents avec le modèle BM25 sont meilleurs (plus proche de la tête de liste) que les rangs des tweets pertinents avec le modèle vectoriel. En contrepartie, le modèle vectoriel restitue une quantité plus importante de tweets pertinents : il est meilleur au niveau du rappel. Concernant l’emploi des URLs, les résultats montrent qu’elles ont un rôle très important et améliorent les résultats de manière remarquable, même si elles sont la cause de la perte d’une quantité non négligeable de tweets pertinents. Nous avons montré dans la section 2 que l’expansion des requêtes améliore les performances, et dans cette section, que l’emploi des URLs améliore les résultats. Dans la section suivante, nous présenterons les résultats de la combinaison de ces deux facteurs. 4 Expansion de requêtes et de documents À ce niveau, nous avions le choix entre l’expansion des requêtes avec le feedback composé uniquement par le contenu des premiers tweets restitués ou bien avec le 82CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS feedback composé par le contenu des tweets et des URLs ensemble. Le tableau 4.9 montre les résultats de l’emploi du contenu des tweets uniquement dans l’expansion et du contenu des tweets et des URLs dans la restitution (première de nos possibilités). Nous avons testé trois configurations : les deux premières se basent sur le modèle vectoriel comme modèle de restitution. La diffé- rence réside au niveau de l’expansion. (i) Dans un premier temps nous calculons les poids des termes avec TF.IDF (« VSM-Rocch(TF.IDF)-Tweets+URL ») et (ii) dans un deuxième temps avec BM25 (« VSM-Rocch(BM25)-Tweets+URL »). (iii) La troisième configuration emploie le modèle BM25 dans la restitution (« BMXx25fbReqexp-Tweets+URL »). Pour le run « BMXx25fb-Reqexp-Tweets+URL », nous avons initialisé les paramètres en fonction du champ de restitution comme expliqué dans le paragraphe précédent. Run Modèle Requête étendue Champ utilisé P@30 Rappel MAP VSM-Rocch(TF.IDF)-Tweets VSM Rocch(TF.IDF) Tweets 0,3232 0,6822 0,2211 VSM-Rocch(TF.IDF)-Tweets+URL VSM Rocch(TF.IDF) Tweets+URL 0,3894* 0,7506* 0,2777* VSM-Rocch(BM25)-Tweets VSM Rocch(BM25) Tweets 0,3311 0,6764 0,2304 VSM-Rocch(BM25)-Tweets+URL VSM Rocchio(BM25) Tweets+URL 0,3960* 0,7524* 0,2869* BMX25fb-Reqexp-Tweets BMX25fb Reqexp Tweets 0,3571 0,6369 0,2300 BMXx25fb-Reqexp-Tweets+URL BMXx25fb Reqexp Tweets+URL 0.3712* 0,6294 0.2333 Tableau 4.9 – Emploi des tweets et des URLs et expansion de requêtes uniquement à partir des tweets.* montre une amélioration significative par rapport au run précédent. La première observation que nous pouvons tirer est que les runs considérant les URLs et les tweets en plus de l’expansion de requêtes sont meilleurs que les runs considérant les tweets. Toutefois, l’intensité de cette amélioration dépend du modèle de restitution. Nous pouvons remarquer des améliorations importantes avec le modèle vectoriel sur les trois mesures. Cependant, les améliorations avec le modèle BM25 sont moins importantes (notons même une dégradation du rappel). Lorsqu’on utilise le modèle vectoriel pour la restitution, nous remarquons encore une fois que la pondération des termes d’expansion avec BM25 donne de meilleurs résultats qu’avec TF.IDF. Nous avons comparé les tweets pertinents des deux runs « VSM-Rocch(BM25)-Tweets+URL » et « VSM-Rocch(BM25)-Tweets ». L’emploi des URLs a résulté des améliorations de 11,2 %, 19,6 % et de 24,5 % respectivement sur le rappel, la P@30 et la MAP. Le run « VSM-Rocch(BM25)-Tweets+URL » contient 809 nouveaux tweets pertinents (17 %) et a échoué à restituer 259 (6 %) tweets qui existaient dans « VSM-Rocch(BM25)-Tweets ». Nous remarquons ainsi de nouveau le double effet de l’emploi des URLs pour les mêmes raisons précédemment expliquées. Toutefois, la quantité de nouveaux tweets pertinents dépasse la quantité 83CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS des tweets non restitués. Concernant le modèle BM25, l’emploi des URLs a amélioré de manière significative uniquement la P@30 (4,0 %). Les deux runs « BMXx25fb-Reqexp-Tweets+URL » et « BMX25fb-Reqexp-Tweets » contiennent pratiquement le même nombre de tweets pertinents. Cependant, ces deux runs diffèrent d’un certain nombre de tweets pertinents (de l’ordre de 650 tweets). Nous pouvons ainsi conclure que, avec le modèle BM25, le double effet de l’emploi des URLs est plus important. Il n’y a pas ainsi d’effet positif sur le rappel. Cependant, ce facteur améliore considérablement le rang des documents pertinents (effet positif sur la précision). Finalement, nous avons voulu tester l’impact de l’emploi des URLs même dans l’expansion de requêtes (deuxième de nos propositions citées au début de la section 4). En d’autres termes, les termes d’expansion seront sélectionnés à partir du contenu des tweets et des URLs des résultats formant le feedback. Le tableau 4.10 montre les résultats de l’emploi du contenu des tweets et des URLs dans l’expansion de requêtes avec le modèle vectoriel (Rocchio(BM25)(T+U)) et avec le modèle BM25 (Reqexp(T+U)). (T+U) indique l’emploi de Tweets et des URLs dans l’expansion. Run Modèle Requête étendue Champ utilisé P@30 Rappel MAP VSM-Rocchio(BM25)-Tweets+URL VSM Rocchio(BM25) Tweets+URL 0,3960 0,7524 0,2869 VSM-Rocchio(BM25)(T+U)-Tweets+URL VSM Rocchio(BM25)(T+U) Tweets+URL 0,2633 0,5892 0,1841 BMXx25fb-Reqexp-Tweets+URL BMXx25fb Reqexp Tweets+URL 0,3712 0,6294 0,2333 BMXx25fb-Reqexp(T+U)-Tweets+URL BMXx25fb Reqexp(T+U) Tweets+URL 0,3966* 0,5208 0,2143 Tableau 4.10 – Emploi des tweets et des URLs pour l’expansion et pour la restitution. * montre une amélioration significative par rapport au run précédent. Pour le modèle vectoriel, nous avons remarqué une dégradation remarquable en employant les URLs dans l’expansion. Cependant, avec le modèle BM25, l’emploi des URLs conduit à des effets différents. D’une part, le rappel et la MAP se sont dégradés considérablement. D’autre part, la P@30 s’est améliorée pour atteindre le meilleur score parmi toutes nos configurations précédentes. Ces observations sont expliquées ainsi : le fait de considérer les URLs dans l’expansion a dévié le sens des requêtes et généré des dégradations. Cependant, cette dégradation s’est transformée en amélioration, en particulier avec le modèle BM25, étant donné que ce modèle exploite le feedback (composé par les tweets et les contenus des URLs) dans la nouvelle restitution. Ceci a conduit, d’une part, à une perte importante dans le nombre de tweets pertinents restitués, mais, d’autre part, à une mise en valeur maximale des tweets pertinents restitués (reclassement vers la tête de la liste). 84CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS 5 Discussion La conclusion principale des expérimentations de ce chapitre est que l’expansion de requêtes et la prise en compte des contenus des URL dans la restitution paraissent indispensables pour la recherche des microblogs, que ce soit au niveau du rappel ou la précision. Les URLs permettent non seulement de fournir des informations supplémentaires pour les internautes, mais présentent également un vocabulaire très utile pour les moteurs de recherche, qui sera utilisé pour mesurer la pertinence du microblog vis-à-vis d’un besoin en information. L’expansion de requêtes permet de mieux représenter les besoins d’information (améliore le rappel), et de mettre en valeur les tweets pertinents (améliore la précision). La pondération des termes de la requête, elle aussi, joue un rôle très important dans l’amélioration des résultats. Elle permet de mettre en valeur les tweets pertinents en relation avec les termes importants des requêtes (améliore la précision). Ceci est aperçu, d’une part, en regardant les runs utilisant l’expansion de requêtes avec les articles des actualités (tableau 4.1), avec et sans pondération, ou en comparant les runs se basant sur TF.IDF avec les runs se basant sur BM25 pour pondérer les termes d’expansion (tableau 4.5). Concernant le modèle de restitution, la supériorité d’un modèle par rapport à un autre dépend des facteurs supplémentaires utilisés et aussi des résultats à analyser (rappel ou précision). De manière générale, BM25 obtient de meilleures précisions et VSM obtient les meilleurs rappels. Le paramétrage est crucial pour le modèle BM25. Le fait d’initialiser k1 à 0,1 et b à 0 (on ne prend pas en compte la normalisation par la longueur) lui permet de prendre un avantage par rapport au VSM. Cependant, l’emploi du feedback dégrade ses résultats, que ce soit avec ou sans paramétrage, à moins que ce feedback soit accompagné d’une expansion de requêtes (tableau 4.6). Dans ce cas, nous arrivons à obtenir les meilleures P@30. Cette dernière observation reste valide que ce soit avec ou sans l’emploi des URLs. Les améliorations avec le modèle vectoriel sont plus équilibrées. En employant des facteurs supplémentaires (Rocchio ou URLs), nous apercevons des améliorations sur le rappel ou bien sur la précision. Concernant l’expansion, la pondération des termes avec BM25 ou avec TF.IDF fait ressortir, dans la plupart des cas, les mêmes termes d’expansion. Cependant, la pondération de ces termes avec BM25 permet de restituer plus de tweets pertinents et de les ranger de façon plus pertinente qu’avec TF.IDF. Concernant l’emploi des URLs dans l’appariement, l’impact de ce facteur dépend du modèle de restitution. De manière générale ce facteur améliore toutes les mesures avec le modèle vectoriel. Cependant, il améliore uniquement la P@30 avec le modèle probabiliste (tableau 4.9). L’emploi des URLs, en plus des 85CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS tweets, dans l’expansion de requêtes n’a pas montré un effet positif avec le modèle vectoriel. Cependant, il a permis d’avoir la meilleure P@30 parmi toutes nos expérimentations, même s’il a dégradé considérablement le rappel (tableau 4.10). Nous avons comparé les deux meilleurs runs au niveau de la P@30 « VSMRocch(BM25)-Tweets+URL » et « BMXx25fb-Reqexp(T+U)-Tweets+URL », avec les résultats officiels de la tâche Microblog de TREC 2012 (Ounis et al., 2012). L’évaluation des résultats officiels des participants de la tâche microblogs 2012 est réalisée en considérant uniquement les tweets hautement pertinents. Le tableau 4.11 montre les résultats de ces deux runs considérant les tweets hautement pertinents. D’ailleurs, ces deux runs ont conservé leur avantage par rapport aux autres runs, même avec cette considération. Run Modèle Requête étendue Champ utilisé P@30 Rappel MAP VSM-Rocch(BM25)-Tweets+URL VSM Rocchio(BM25) Tweets+URL 0,2531 0,7722 0,2264 BMXx25fb-Reqexp(T+U)-Tweets+URL BMXx25fb Reqexp(T+U) Tweets+URL 0,2531 0,6087 0,2113 Tableau 4.11 – Résultats des meilleurs runs avec les tweets hautement pertinents. Le tableau 4.12 montre les résultats des deux meilleurs runs officiels des participants de 2012. Chacun de nos deux runs nous aurait permis de nous placer à la 2ème position des participants selon la P@30. Nous n’avons bien évidemment considéré que les runs automatiques dans cette comparaison. Groupe Run P@30 MAP HIT MTLAB hitURLrun3 0.2701 0.2642 IRIT VSM-Rocch(BM25)-Tweets+URL 0.2531 0.2264 IRIT BMXx25fb-Reqexp(T+U)-Tweets+URL 0.2531 0.2113 HIT MTLAB hitLRrun1 0.2446 0.2411 Tableau 4.12 – Comparaison avec les résultats officiels de TREC 2012 Run Modèle Requête étendue Champ utilisé P@30 Rappel MAP VSM-Rocch(BM25)-Tweets+URL VSM Rocchio(BM25) Tweets+URL 0.4701 0.8752 0.4700 Tableau 4.13 – Emploi des tweets pour l’expansion et des tweets et des URLs pour la restitution sur les topics de TREC 2011. Le tableau 4.13 montre les résultats du run « VSM-Rocch(BM25)-Tweets+URL » sur les requêtes de 2011. Les jugements des runs officiels de la tâche de 2011 sont réalisés en considérant tous les tweets pertinents. Ce run nous aurait permis de nous 86CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS placer à la 1ère position des participants selon la P@30 (tableau 4.14). Notons la présence de notre run officiel (Damak et al., 2011). Groupe Run P@30 MAP IRIT VSM-Rocch(BM25)-Tweets+URL coupé à 30 0,4701 0,2966 isi isiFDL 0,4551 0,1923 FUB DFReeKLIM30 0,4401 0,2348 CLARITY_DCU clarity1 0,4211 0,2139 Purdue_IR myrun2 0,3993 0,2003 IRIT Run officiel (Damak et al., 2011) 0,2565 0,1940 Tableau 4.14 – Comparaison avec les résultats officiels de TREC 2011 6 Bilan Dans ce chapitre nous avons proposé quelques méthodes pour améliorer la qualité des résultats d’une tâche de recherche de micrblogs. Nous avons exploité les articles des actualités et la base lexicale WordNet pour étendre les requêtes. En outre, nous avons analysé l’impact des techniques de RI classique sur ce nouveau type de document. Nous avons particulièrement testé le modèle vectoriel et le modèle probabiliste. Avec le modèle vectoriel, nous avons étendu les requêtes avec la technique de Rocchio. Avec le modèle BM25, nous avons utilisé son mécanisme naturel de feedback et d’expansion. Ensuite, nous avons testé l’effet de l’emploi du contenu des URLs en complément du contenu des tweets. L’emploi des URLs était avantageux uniquement pour la restitution (et non pour l’expansion). De manière générale, le modèle BM25 fournit de meilleures précisions. Le modèle vectoriel arrive à restituer plus de tweets pertinents. L’expansion de requêtes améliore le rappel et la précision avec le modèle vectoriel. Cependant, avec le modèle BM25, son effet positif est clair surtout sur la P@30. L’emploi des URLs pour la restitution est primordial. En contrepartie, elles n’ont pas montré d’intérêt pour l’expansion des requêtes. 87CHAPITRE 4. EXPANSION DE REQUÊTES ET DE DOCUMENTS 88Chapitre 5 Analyse des facteurs de pertinence de l’état de l’art 1 Introduction Nous avons montré dans l’état de l’art que les approches de RI dans les microblogs emploient une multitude de critères de pertinence : critères de fraîcheur, critères sur les auteurs, critères du réseau social, des différentes données présentes dans microblogs (hashtags, URLs). . . , en plus de la pertinence textuelle. Ces différents critères sont concrètement pris en compte dans les modèles de recherche proposés en combinant des facteurs de pertinence pour mesurer la pertinence des microblogs vis-à-vis d’un besoin en information. Par exemple, en considérant le critère importance de l’auteur, les facteurs de pertinence associés pourraient être le nombre de microblogs de l’auteur et le nombre de ses abonnés (Nagmoti et al., 2010). Nous pouvons également considérer le nombre de fois qu’un utilisateur a été mentionné ou bien le score de l’auteur selon un algorithme semblable à PageRank basé sur des relations de rediffusion des messages (Ben Jabeur et al., 2011). Même si les intuitions justifiant l’emploi de ces facteurs de pertinence encouragent leur exploitation, la valeur réelle de ces facteurs de pertinence n’a jamais été démontrée. En outre, nous avons montré dans le chapitre 3 (analyse de défaillances) que, dans la recherche de microblogs, la plupart des problèmes remontés par les modèles de recherche sont des problèmes de vocabulaire (Damak, 2013), problèmes pour lesquels nous avons proposé des solutions dans le chapitre 4. La question qui se pose maintenant est : si le modèle arrive à restituer tous les microblogs pertinents, est-ce que l’emploi de facteurs de pertinence supplémentaires permet de promouvoir les microblogs pertinents parmi l’ensemble des résultats ? Dans ce chapitre, nous évaluons l’impact réel des facteurs de pertinence souvent utilisés dans les approches de l’état de l’art sur la qualité des microblogs restitués vis-à-vis d’un besoin en information. 89CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE 2 Description des facteurs de pertinence Nous décrivons dans cette section les 14 facteurs de pertinence que nous considé- rons, classés par groupe. Nous considérons cinq groupes de facteurs de pertinence : celui lié au contenu des microblogs, celui lié à leur hypertextualité, celui qui se base sur les hashtags, celui lié aux auteurs des microblogs et enfin un groupe de facteurs relatifs à la qualité des microblogs. Nous cherchons à évaluer l’impact de ces facteurs de pertinence comme précédemment, c’est-à-dire sur l’évaluation de la pertinence d’un tweet par rapport à une requête. Nous utiliserons les notations suivantes dans la suite : – q est la requête (composée de mots-clés ‘topic’ et caractérisée par une date), – Cq est le corpus des tweets publiés avant la date de la requête, – Tq est l’ensemble des tweets restitués par un moteur de recherche donné calculant la pertinence par rapport à q uniquement sur le contenu des tweets (Tq ⊆ Cq), – t est un tweet ∈ Tq sur lequel on applique le facteur de pertinence. 2.1 Facteurs de pertinence basés sur le contenu des tweets Nous avons considéré quatre facteurs de pertinence relatifs à certaines spécificités de contenu des microblogs : la popularité d’un tweet (5.1), la longueur faible des tweets (5.2), la correspondance des termes entre les tweets et la requête (5.3) et la qualité du langage d’écriture du tweet (5.4). – Popularité du tweet (Duan et al., 2010) : ce facteur de pertinence estime la popularité d’un tweet dans Tq. On suppose qu’un tweet est populaire si on trouve plusieurs autres tweets ayant un contenu similaire. La similarité sim(ti , tj ) entre chaque paire de tweets est calculée avec un modele vectoriel qui prend également en compte la fréquence des termes de la requête dans le tweet (Cohen et al., 2007). On note le vecteur contenant les termes du tweet courant par ti . Ce facteur de pertinence est calculé de la manière suivante : f1(ti , q) = P tj∈Tq,i6=j sim(ti , tj ) |Tq| − 1 (5.1) – Longueur du tweet (Duan et al., 2010) : intuitivement, plus une phrase est longue, plus elle contient de l’information. Nous avons calculé ce facteur de pertinence en comptant le nombre de termes dans un tweet. On note l(ti) le nombre de termes dans un tweet ti dans Tq. Ce facteur de pertinence est calculé de la manière suivante : f2(ti) = l(ti) maxtj∈Tq l(tj ) (5.2) 90CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE – Correspondance exacte des termes : ce facteur favorise les tweets qui contiennent les termes de la requête q. La valeur nb(ti , q) correspond au nombre de termes en commun entre ti et q : f3(ti , q) = nb(ti , q) maxtj∈Tqnb(tj , q) (5.3) – Qualité du langage (Duan et al., 2010) : ce facteur de pertinence représente la proportion des termes qui existent dans un dictionnaire 1 par rapport à tous les termes du tweet ti . La valeur dic(term) est binaire : 1 si le terme existe dans le dictionnaire, 0 sinon : f14(ti) = P term∈ti dic(term) l(ti) (5.4) 2.2 Facteurs de pertinence basés sur l’hypertextualité Nous considérons trois facteurs de pertinence additionnels qui peuvent indiquer la qualité de l’information publiée dans les tweets : – Présence d’une URL dans le tweet (Nagmoti et al., 2010 ; Zhao et al., 2011) : partager des URLs est une manière de confirmer l’information publiée dans un tweet. Ceci permet également d’attirer l’attention sur un contenu présent sur le web. Ainsi, on fait l’hypothèse que la présence d’une URL indique que le tweet a un caractère informatif renforcé. Ce facteur de pertinence est binaire : f4(ti) =    1 si ti contient une URL 0 sinon (5.5) – Fréquence des URLs (Zhao et al., 2011) : compte le nombre d’URLs publiées dans un tweet ti : f5(ti , q) = |{w ∈ ti/isURL(w)}| maxtj∈Tq |{w ∈ tj/isURL(w)}| (5.6) – Fréquence de l’URL dans le corpus : ce facteur de pertinence permet de calculer la popularité des URLs publiées dans un tweet ti dans le corpus Cq. On note par freq(url) le nombre de fois ou une URL apparaît dans le corpus Cq : f6(ti , q) = P url∈ti freq(url) maxtj∈Tq P url∈tj freq(url) (5.7) 2.3 Facteurs de pertinence basés sur les hashtags – Présence de hashtag (Metzler et Cai, 2011). f7(ti) =    1 si ti contient un hashtag 0 sinon (5.8) 1. http://code.google.com/p/language-detection/ 91CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE – Fréquence de hashtags du tweet (Duan et al., 2010). On note la fréquence d’un hashtag dans le corpus Cq par freq(h) : f8(ti) = X h∈ti freq(h) (5.9) – Hashtags de la requête dans le tweet : calcule le nombre de termes d’une requête q qui apparaissent sous forme d’un hashtag dans un tweet ti . f9(ti , q) = |{w ∈ q/#w ∈ ti}| maxtj∈Tq |{w ∈ q/#w0 ∈ tj}| (5.10) 2.4 Facteurs de pertinence basés sur la popularité des auteurs Afin de tenir compte de la popularité des auteurs, nous avons considéré deux facteurs de pertinence spécifiques aux auteurs de microblogs. – Nombre de tweets de l’auteur (Nagmoti et al., 2010) : l’objectif de ce facteur de pertinence est de valoriser les tweets publiés par des auteurs actifs par rapport aux tweets publiés par des auteurs moins actifs. On note par a(ti) l’auteur du tweet ti et N(a(ti)) le nombre de tweets publiés par l’auteur du tweet ti dans le corpus Cq. f10(ti) = N(a(ti)) (5.11) – Nombre de citations de l’auteur (Zhao et al., 2011) : plus un auteur est mentionné, plus il est populaire. M(a(ti)) indique combien de fois un auteur du tweet ti a été mentionné dans le corpus Cq : f11(ti) = M(a(ti)) (5.12) 2.5 Facteurs de pertinence relatifs à la qualité des tweets Nous avons également analysé deux autres critères particularisant les tweets : – Retweet (Metzler et Cai, 2011). Si un utilisateur aime un tweet publié par un de ses amis, il va probablement le commenter et le partager de nouveau. Dans ce cas, le nouveau message va être précédé par RT (ou marqué en tant que retweet). f12(ti) =    1 si ti contient RT 0 sinon (5.13) – Fraîcheur (Magnani et al., 2012). C’est la différence entre la date de la publication du tweet ti et la date de la soumission de la requête q, mesurée en secondes. tmp(ti) est le timestamp en seconde d’un tweet ti (c’est-à-dire sa date de publication). f13(ti , q) = tmp(q) − tmp(ti) maxtj∈Tq tmp(q) − tmp(tj ) (5.14) 92CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE 3 Méthodologie Notre analyse est réalisée en trois phases : tout d’abord, nous avons évalué les facteurs de pertinence en nous basant sur les distributions de leurs scores, ensuite, en combinant linéairement leurs scores avec le score du modèle de restitution, et finalement en utilisant les techniques de sélection d’attributs pour des algorithmes d’apprentissage. 3.1 Étude de la distribution des scores L’intuition derrière cette étude est que les facteurs de pertinence reflétant la pertinence distinguent les tweets pertinents des non pertinents. Ces facteurs de pertinence n’aurons pas le même comportement avec les tweets pertinents et les tweets non pertinents. Pour évaluer un facteur, nous avons observé la distribution de ses scores dans les tweets. Si la distribution des scores d’un facteur de pertinence est la même pour les tweets pertinents et non pertinents, ce facteur ne permettra pas ainsi de différencier les deux classes de tweets, et ne sera pas considéré comme facteur utile à cette tâche. Dans le cas contraire, lorsque la distribution des scores d’un facteur de pertinence est différente entre les tweets pertinents et non pertinents, ce facteur permettra dans ce cas de différencier les deux classes de tweets, et il sera par conséquent considéré comme facteur utile. 3.2 Étude par la combinaison linéaire des scores Dans un deuxième temps, nous avons évalué l’impact direct de chacun des facteurs de pertinence sur la qualité des résultats. Nous avons ainsi combiné linéairement le score de chaque facteur de pertinence avec le score du modèle de restitution textuel employé. L’intuition derrière cette étude est que les facteurs de pertinence utiles vont promouvoir les tweets pertinents dans l’ensemble des résultats et ceci, de manière générale, va améliorer la qualité des résultats. Ensuite, nous avons testé la complémentarité des facteurs de pertinence : peuventils se compléter afin d’améliorer les résultats ? L’idée est de voir si les facteurs de pertinence ont des comportements différents lorsqu’ils sont combinés avec d’autres facteurs de pertinence, par rapport à leur comportement lorsqu’ils sont employés seuls. Afin d’étudier ce dernier point, il faudrait effectuer toutes les combinaisons possibles des facteurs de pertinence entre eux, ceci impliquant un nombre très important de runs (C 2 14 +C 3 14 +C 4 14 +C 5 14 +C 6 14 +C 7 14 +C 8 14 +C 9 14 +C 10 14 +C 11 14 +C 12 14 +C 13 14 = 16 368 runs). Afin de réduire le nombre de cas à prendre en compte, nous avons décidé d’observer le comportement des différents groupes qu’ils forment : 93CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE – Groupe G1 lié au contenu des tweets, composé des facteurs de pertinence f1, f2 et f14, – Groupe G2 lié à l’hypertextualité, composé des facteurs de pertinence f4, f5 et f6, – Groupe G3 lié aux hashtags publiés dans tweets, composé des facteurs de pertinence f7, f8, et f9. – Groupe G4 lié aux auteurs des tweets, composé des facteurs de pertinence f10, et f11, – Groupe G5 lié aux critères qualitatifs des tweets, composé des facteurs de pertinence f12 et f13. 3.3 Étude avec les techniques de sélection d’attributs Le problème de l’étude précédente réside dans la sélection des groupes des facteurs de pertinence. Tant que nous n’avons pas essayé toutes les combinaisons des facteurs de pertinence possible, il est impossible de juger convenablement la complémentarité des facteurs de pertinence, et d’identifier les meilleures combinaisons. En outre, l’étude précédente se base simplement sur des combinaisons de scores. Dans cette troisième étude plus approfondie, nous nous sommes ainsi appuyés sur des techniques de sélection d’attributs pour déterminer les meilleurs facteurs de pertinence à considérer dans une tâche de recherche de microblogs. Les techniques de sélection d’attributs visent à identifier et enlever le maximum d’information redondante et non pertinente en amont d’un processus à base d’apprentissage (Hall et Holmes, 2003). Elles permettent également de sélectionner de manière automatique les sous-ensembles de facteurs de pertinence permettant d’avoir les meilleurs résultats. Cette phase a fait ressortir plusieurs ensembles de facteurs. Ensuite, nous avons évalué l’efficacité de ces ensembles en les appliquant sur des techniques d’apprentissage dans un contexte de recherche de microblogs. 4 Expérimentations 4.1 Étude par la distribution des scores 4.1.1 Cadre expérimental Nous nous sommes basés sur le modèle vectoriel comme modèle de restitution. Les scores des facteurs de pertinence sont ensuite calculés pour chaque tweet résultat. Nous avons utilisé les requêtes des deux éditions 2011 et 2012 de la tâche microblog de TREC. Dans les expérimentations de cette étude, nous considérons les tweets moyennement pertinents et hautement pertinents (qrels all-rel) L’ensemble 94CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE des tweets à analyser est construit de la manière suivante : d’abord, nous avons sélectionné uniquement les requêtes ayant au moins 100 tweets pertinents (ce qui représente 14 requêtes de 2011 et 13 requêtes de 2012). Nous avons fait ce choix pour avoir un nombre suffisant de tweets à étudier. Pour chacune d’entre elles, nous avons gardé tous les tweets pertinents en nous référant aux jugements de pertinence. Pour chaque requête, nous avons ajouté le même nombre de tweets non pertinents que de tweets pertinents. Les tweets non pertinents sont sélectionnés en fonction de leurs scores du modèle vectoriel. Nous avons gardé ceux ayant les scores les plus importants. Les tweets de toutes les requêtes ont été fusionnés pour tracer la distribution globale dans les figures qui suivent. 4.1.2 Résultats 95CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE 96CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE Figure 5.1 – Distribution des scores des tweets pertinents et des tweets non pertinents (requêtes de 2011 à gauche et celles de 2012 à droite). La figure 5.1 montre la distribution des scores de tweets pertinents et des tweets non pertinents pour cette première étude. Les intervalles ont été calculés avec la loi de Sturges (1926). À part le facteur fraîcheur (f13), aucune différence dans les distributions entre les requêtes de 2011 et de 2012 n’est constatée. Nous pouvons observer que les facteurs de pertinence popularité du tweet (f1), longueur du tweet (f2), correspondance exacte des termes (f3), présence d’URL (f2), fréquence d’URLs (f5), importance d’URLs (f6) et fraîcheur (f13) ne présentent pas la même distribution des scores entre les tweets pertinents et les tweets non per- 97CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE tinents. Ces critères obtiennent leurs meilleurs scores avec les tweets pertinents et reflètent probablement ainsi la pertinence. La différence entre les deux populations de scores (des tweets pertinents et des tweets non pertinents) est statiquement significative selon le test t pairé et bilatéral avec p < 0, 05. 4.2 Étude par la combinaison linéaire des scores Dans cette section, nous comparons tout d’abord l’apport des différentes facteurs de pertinence pour raffiner le processus de RI sur les microblogs. Puis, nous positionnons nos résultats par rapport aux résultats officiels de la tâche Microblog à TREC 2011 et 2012. Enfin, nous généralisons nos conclusions en faisant abstraction du moteur de recherche Lucene utilisé jusqu’alors (Damak et al., 2012). 4.2.1 Cadre expérimental Le score final d’un tweet (équation 5.16) est calculé en combinant le score du modèle vectoriel et les scores des facteurs de pertinence (équation 5.15). Le score facteurs de pertinence est calculé par une combinaison linéaire. On réalise différentes normalisations de sorte que fn(ti , q) ∈ [0, 1] et fsources(ti , q) ∈ [0, 1]. Nous avons exclu le facteur de pertinence f3 (correspondance exacte de termes) des sources à évaluer afin de l’utiliser par la suite pour la généralisation des résultats. Cette source est nommée dans les expérimentations « Base ». Nous avons utilisé les requêtes des deux éditions 2011 et 2012 de la tâche Microblog. fsources(ti , q) = f(f1(ti , q), f2(ti , q), f4(ti , q), f5(ti), ..., f12(ti), f13(ti), f14(ti)) (5.15) score(ti , q) = α ∗ V SM(ti , q) + (1 − α) ∗ fsources(ti , q) α ∈ [0, 1] (5.16) Dans nos expérimentations, nous considérons les tweets moyennement pertinents et hautement pertinents (qrels all-rel). Les résultats présentés par la suite sont évalués en fonction d’un classement sur le score de pertinence, contrairement à la tâche Microblog de l’édition de 2011 qui évalue en réordonnant les résultats sur la date des tweets au préalable, ce qui ne rend pas compte de la qualité des facteurs de pertinence. Pour nos analyses, nous utilisons les 5000 premiers résultats renvoyés par Lucene. 4.2.2 Résultats 4.2.2.1 Combinaison source par source. Le tableau 5.1 montre les résultats obtenus en considérant les facteurs de pertinence décrits dans la section 2 un par un. Un astérisque indique que la différence est statistiquement significative selon le test t de Student (1908) pairé et bilatéral avec p < 0, 05. 98CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE Système édition 2011 édition 2012 P@30 MAP P@30 MAP VSM 0,3544 0,3141 0,2842 0,1871 VSM + f1 0,3027* 0,2280* 0,1966* 0,1371* VSM + f2 0,2701* 0,2241* 0,2729* 0,1616* VSM + f4 0,3986* 0,3348* 0,3463* 0,2202* VSM + f5 0,3517 0,3062* 0,3260* 0,2062* VSM + f6 0,3238 0,2570* 0,2469* 0,1645* VSM + f7 0,1619* 0,1067* 0,1542* 0,0905* VSM + f8 0,2823* 0,2078* 0,2379* 0,1517* VSM + f9 0,2275* 0,1903* 0,2246* 0,1478* VSM + f10 0,1850* 0,1724* 0,2040* 0,1311* VSM + f11 0,3245* 0,2475* 0,2627* 0,1625* VSM + f12 0,0299* 0,0867* 0,0362* 0,0845* VSM + f13 0,3456* 0,3134* 0,2808 0,1860* VSM + f14 0,3517* 0,3067* 0,2842 0,1813* Tableau 5.1 – Apport de chaque facteur de pertinence par rapport au modèle vectoriel (baseline VSM). Comme nous pouvons le constater, et de façon assez surprenante, l’utilisation de tous les critères, sauf f4 (2011) et f4, f5 (pour 2012), conduit à une dégradation des résultats. Concernant f4 (présence d’une URL dans le tweet), on observe une hausse sensible des résultats (+12,4 % sur la P@30 sur les requêtes de 2011 et +21,85 % sur les requêtes de 2012). 4.2.2.2 Combinaison de plusieurs facteurs de pertinence. Les résultats précédents ne nous permettent pas de voir les interactions entre les facteurs de pertinence. Nous évaluons maintenant les groupes des facteurs de pertinence. Les résultats sont décrits dans les tableau 5.2. Les combinaisons qui améliorent la P@30 sont les combinaisons qui mobilisent G2, qui contient le facteur de pertinence f4. Ceci tend à confirmer que seul le facteur de pertinence f4 a un intérêt dans notre système. Nous pouvons remarquer également que le groupe G1 n’améliore pas les résultats lorsqu’il est utilisé seul, mais améliore les résultats lorsqu’il est combiné avec l’un des autres groupes, en particulier G2. Le contraire de cette observation se manifeste pour le groupe G3. Ce groupe dégrade les résultats en le combinant avec n’importe quel autre groupe. 99CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE Système édition 2011 édition 2012 P@30 MAP P@30 MAP VSM 0,3544 0,3141 0,2842 0,1871 VSM + G1 0,3449* 0,2996* 0,2938* 0,1816* VSM + G2 0,3694 0,3233 0,3249 0,2091 VSM + G3 0,1833* 0,1332* 0,1643* 0,0973* VSM + G4 0,2197* 0,1832* 0,1876* 0,1254* VSM + G5 0,1578* 0,1797* 0,1390* 0,1134* VSM + G1 + G2 0,4014* 0,3431* 0,3441* 0,2235* VSM + G1 + G3 0,2920* 0,2374* 0,2298* 0,1421* VSM + G1 + G4 0,3374* 0,2965* 0,2864* 0,1770* VSM + G1 + G5 0,2769* 0,2520* 0,2288* 0,1551* VSM + G2 + G3 0,2848* 0,2382* 0,2678* 0,1659* VSM + G2 + G4 0,3306* 0,2947* 0,3085* 0,1968* VSM + G2 + G5 0,2973* 0,2763* 0,2740* 0,1841* VSM + G3 + G4 0,1906* 0,1395* 0,1608* 0,0976* VSM + G3 + G5 0,2159* 0,1793* 0,1596* 0,1111* VSM + G4 + G5 0,2170* 0,2064* 0,1644* 0,1182* VSM + G1 + G2 + G3 0,3623* 0,3005* 0,3029* 0,1909* VSM + G1 + G2 + G4 0,3946* 0,3354* 0,3390* 0,2178* VSM + G1 + G2 + G5 0,3544* 0,3113* 0,2853* 0,1994* VSM + G1 + G3 + G4 0,2906* 0,2388* 0,2205* 0,1409* VSM + G1 + G3 + G5 0,2804* 0,2398* 0,2094* 0,1416* VSM + G1 + G4 + G5 0,2864* 0,2538* 0,2282* 0,1552* VSM + G2 + G3 + G4 0,3043* 0,2545* 0,2573* 0,1623* VSM + G2 + G3 + G5 0,3087* 0,2608* 0,2520* 0,1669* VSM + G2 + G4 + G5 0,3252* 0,2839* 0,2644* 0,1819* VSM + G3 + G4 + G5 0,2159* 0,1802* 0,1684* 0,1116* VSM + G1 + G2 + G3 + G4 0,3638 0,2991 0,2959 0,1859 VSM + G1 + G2 + G3 + G5 0,3478 0,2929 0,2731 0,1822 VSM + G1 + G2 + G4 + G5 0,3517 0,3108 0,2853 0,1977 VSM + G1 + G3 + G4 + G5 0,2906 0,2409 0,2041 0,1403 VSM + G2 + G3 + G4 + G5 0,3109 0,2602 0,2491 0,1629 VSM + G1 + G2 + G3 + G4 + G5 0,3464 0,2909 0,2690 0,1790 Tableau 5.2 – Apport de chaque groupe de facteurs de pertinence et de leurs combinaisons par rapport modèle vectoriel (baseline VSM). 100CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE 4.2.3 Comparaison avec les résultats officiels de TREC Nous avons comparé notre meilleur run résultat (VSM + G1 + G2) avec les résultats officiels de la tâche Microblog de TREC 2011. Les résultats sont présentés dans le tableau 4.1. Afin que la comparaison soit équitable, seuls sont présents dans le tableau les runs officiels automatiques n’utilisant pas de source externe et fonctionnant en temps réel, c’est à dire n’utilisant pas d’information future. Nous rappelons que lors de l’évaluation officielle, les tweets doivent être ordonnés par ordre chronologique inverse. Notre run est coupé à 30 résultats afin d’éviter le biais introduit par le tri chronologique, assimilable à l’introduction d’un critère indépendant de la pertinence qui introduit un paramètre aléatoire non souhaitable. Par conséquent, les résultats du tableau 5.3 diffèrent sur la MAP par rapport au tableau 5.1. À titre informatif, les résultats sans coupe de notre run sont également présentés dans le tableau. On note l’effet négatif sur les résultats du tri chronologique des tweets, et ce sur les deux mesures. Groupe Run P@30 MAP isi isiFDL 0,4551 0,1923 FUB DFReeKLIM30 0,4401 0,2348 CLARITY_DCU clarity1 0,4211 0,2139 IRIT VSM + G1 + G2 coupé à 30 0,4014 0,1857 Purdue_IR myrun2 0,3993 0,2003 IRIT VSM + f4 coupé à 1000 0,1272 0,1549 IRIT Run officiel (Damak et al., 2011) 0,2565 0,1940 Tableau 5.3 – Comparaison avec les résultats officiels de TREC 2011 Le run « VSM + G1 +G2 coupé à 30 » nous aurait permis de nous placer à la 4e position des participants selon la P@30. Ces résultats améliorent notre participation officielle dont les détails sont donnés dans (Damak et al., 2011). Sur les requêtes de 2012, le run (VSM + f4) nous aurait permis de nous placer à la 36e position des participants selon la P@30. Ceci s’explique par le fait que les participants de la tâche de 2012 ont employé d’autres moyens, en particulier l’exploitation des contenus des URLs et l’expansion de requêtes dans leurs systèmes, dont nous avons montré leurs intérêts dans le chapitre précédent, ce qui a mis la barre de la pertinence très haute. 101CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE 4.2.4 Généralisation des résultats Les résultats que nous avons obtenus et présentés dans les sections précédentes sont liés à la performance du modèle vectoriel : ce sont sur les tweets renvoyés par ce modèle que nous appliquons les facteurs de pertinence. On pourrait donc penser que le score final d’un tweet dépend fortement du score du modèle vectoriel. Nous avons donc cherché à généraliser nos résultats précédents, en mettant en place une méthodologie d’évaluation indépendante du modèle vectoriel. Pour ce faire, nous avons sélectionné 5000 tweets avec Lucene, desquels nous avons enlevé le score associé. Ensuite, nous avons ajouté à cet ensemble les tweets pertinents manquants obtenus à partir des jugements de pertinence officiels (qrels). Comme il semble obligatoire d’avoir au moins un facteur de pertinence basé sur le contenu de la requête, la contribution du modèle vectoriel a été remplacée par un score très simple : le pourcentage de termes de la requête présents dans le tweet (Base). Ce score correspond au critère f3. Le score final de chaque tweet est ensuite calculé selon la formule 5.16 dans laquelle le score du modèle vectoriel est remplacé par Base. Les résultats généralisés sur l’apport des facteurs de pertinence un à un sont présentés dans le tableau 5.4. Système édition 2011 édition 2012 P@30 MAP P@30 MAP Base 0,2184 0,1785 0,1793 0,1001 Base + f1 0,2034 0,1629* 0,1339 0,0762* Base + f2 0,1531* 0,1155* 0,1741* 0,0909* Base + f4 0,2449* 0,2019* 0,2316* 0,1298* Base + f5 0,2565* 0,1876* 0,2126 0,1216* Base + f6 0,2095 0,1610* 0,1816 0,1065* Base + f7 0,1150* 0,0687* 0,1103 0,0638* Base + f8 0,1755* 0,1214* 0,1586* 0,0871* Base + f9 0,1884* 0,1424* 0,1591 0,0957* Base + f10 0,1190* 0,0980* 0,1339* 0,0819* Base + f11 0,2054 0,1481* 0,1638 0,0866* Base + f12 0,0245* 0,0634* 0,0241 0,0537* Base + f13 0,2068* 0,1536* 0,1839 0,1030* Base + f14 0,2367* 0,1790* 0,1764 0,0945* Tableau 5.4 – Apport des facteurs de pertinence pour le cas général. Nous constatons une nouvelle fois que seuls les facteurs de pertinence f4 et f5 semblent avoir un intérêt car les autres dégradent les résultats. 102CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE Système édition 2011 édition 2012 P@30 MAP P@30 MAP Base 0,2184 0,1785 0,1793 0,1001 Base + G1 0,2150* 0,1578* 0,1776* 0,0965* Base + G2 0,2646* 0,2002* 0,2213* 0,1209* Base + G3 0,1370* 0,0886* 0,1386* 0,0679* Base + G4 0,1544* 0,1081* 0,1322* 0,0787* Base + G5 0,0558* 0,0736* 0,0667* 0,0609* Base + G1 + G2 0,2558* 0,1930 0,2195* 0,1286 Base + G1 + G3 0,2007* 0,1229* 0,1643* 0,0870* Base + G1 + G4 0,2170* 0,1549* 0,1684* 0,0952* Base + G1 + G5 0,1646* 0,1245* 0,1402* 0,0822* Base + G2 + G3 0,2413* 0,1635* 0,1936* 0,1099* Base + G2 + G4 0,2395* 0,1791* 0,1966* 0,1162* Base + G2 + G5 0,2027* 0,1537* 0,1741* 0,1076* Base + G3 + G4 0,1471* 0,0912* 0,1421* 0,0693* Base + G3 + G5 0,1210* 0,0925* 0,1088* 0,0665* Base + G4 + G5 0,1136* 0,0978* 0,0908* 0,0639* Base + G1 + G2 + G3 0,2565* 0,1746* 0,2012* 0,1187* Base + G1 + G2 + G4 0,2544* 0,1888* 0,2063* 0,1249* Base + G1 + G2 + G5 0,2306* 0,1741* 0,1885* 0,1157* Base + G1 + G3 + G4 0,1971* 0,1270* 0,1643* 0,0872* Base + G1 + G3 + G5 0,1732* 0,1194* 0,1427* 0,0823* Base + G1 + G4 + G5 0,1782* 0,1294* 0,1414* 0,0829* Base + G2 + G3 + G4 0,2283* 0,1599* 0,1871* 0,1081* Base + G2 + G3 + G5 0,2355* 0,1487* 0,1649* 0,1032* Base + G2 + G4 + G5 0,2061* 0,1603* 0,1816* 0,1076* Base + G3 + G4 + G5 0,1355* 0,0959* 0,1140* 0,0684* Base + G1 + G2 + G3 + G4 0,2486 0,1737 0,1994 0,1161 Base + G1 + G2 + G3 + G5 0,2449 0,1637 0,1842 0,1094 Base + G1 + G2 + G4 + G5 0,2374 0,1725 0,1845 0,1140 Base + G1 + G3 + G4 + G5 0,1717 0,1200 0,1392 0,0828 Base + G2 + G3 + G4 + G5 0,2167 0,1483 0,1690 0,1026 Base + G1 + G2 + G3 + G4 + G5 0,2391 0,1629 0,1842 0,1085 Tableau 5.5 – Apport des groupes de facteur de pertinence et de leurs combinaisons pour le cas général. Si l’on prend maintenant en compte les différents groupes de facteurs de perti- 103CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE nence (tableau 5.5), le meilleur groupe est G2, contenant le facteur f4. Ces résultats correspondent aux résultats obtenus dans le paragraphe précédent. 4.2.5 Discussion La conclusion principale de ces expérimentations est que la présence de liens hypertextes dans les tweets semble être un indicateur de pertinence, en complément à la pertinence textuelle. Ceci est cohérent avec les résultats du chapitre 4, dans lequel nous avons montré l’apport important de la prise en compte des URLs dans la restitution. De manière générale, les mêmes observations ont été remarquées avec les requêtes de 2011 et de 2012. En outre, ces observations persistent, que ce soit avec le modèle vectoriel ou avec Base, ce qui montre qu’elles ne dépendent pas forcément du modèle vectoriel et qu’elles sont généralisables. Concernant maintenant le protocole expérimental utilisé, les résultats que nous avons présentés dans cet article sont basés sur un ensemble de N = 5000 tweets renvoyés par Lucene. Nous avons fait ce choix dans le but de maximiser le rappel des tweets pertinents (environ 80 %). Nous avons également mené d’autres expérimentations avec une valeur plus petite pour N (1500), sans que nos conclusions ne changent. D’autre part, nous avons constaté qu’il n’y a pas au moins 30 tweets pertinents par topic. Par exemple, le système idéal pour les requêtes de 2011, atteindrait une P@30 de 0,7619. Par ailleurs, la P@30 étant une mesure ensembliste, elle ne tient pas compte du classement des résultats. Pour ces deux raisons, la MAP, qui est une mesure sensible au rang, nous semblerait plus appropriée afin de classer les participations officielles. Dans la section suivante, nous présentons une étude plus approfondie sur l’apport des facteurs de pertinence. Nous allons en effet nous baser sur les techniques de sé- lection d’attributs afin de détecter les groupes de facteurs de pertinence qui reflètent la pertinence et qui sont susceptibles d’être utiles dans la recherche de microblogs avec les techniques d’apprentissage. 4.3 Étude avec les techniques de sélection d’attributs 4.3.1 Cadre expérimental Nous avons utilisé Weka 2 pour ces expérimentations. Weka est un outil opensource écrit entièrement en Java et qui rassemble la plupart des techniques d’apprentissage et des techniques de sélection d’attributs. 2. http://www.cs.waikato.ac.nz/ml 104CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE Nous avons procédé ainsi : les premiers 1500 tweets pour chaque topic ont été restitués avec le modèle vectoriel. Ensuite, les scores de tous les facteurs de pertinence ont été calculés pour chaque tweet. Nous avons identifié les tweets pertinents et les tweets non pertinents. L’ensemble obtenu contient 72 614 tweets, répartis en 2 129 tweets pertinents et 70 485 tweets non pertinents. On peut remarquer que les classes de cet ensemble sont déséquilibrées. Or lorsque le nombre d’éléments d’une classe dans une collection d’apprentissage dépasse considérablement les autres échantillons des autres classes, un classifieur tend à prédire les échantillons de la classe majoritaire et peut ignorer complètement les classes minoritaires (Yen et Lee, 2006). Pour cette raison, nous avons appliqué une approche de sous-échantillonnage pour générer une collection équilibrée composé de 2 129 tweets pertinents et 2,129 tweets non pertinents. Les tweets non pertinents pour cette étude ont été sélectionnés de manière aléatoire. Finalement, nous avons appliqué les techniques de sélection d’attributs sur l’ensemble obtenu. Cette phase a fait ressortir plusieurs ensembles de critères. Ensuite, nous avons évalué l’efficacité de ces ensembles en les appliquant sur des techniques d’apprentissage dans un contexte de recherche de microblogs. Nous avons utilisé dans cette deuxième phase les requêtes de 2011 pour l’apprentissage et les requêtes de 2012 pour l’évaluation. 4.3.2 Résultats de l’étude Le tableau 5.6 montre les facteurs de pertinence sélectionnés par les techniques de sélection d’attributs. Les facteurs de pertinence mis en avant par l’étude de la distribution des scores (section 3.3) correspondent à ceux ressortissant de cette étude (f1, f2, f3, f4, f5, f6, f13). Ceci confirme l’importance de cet ensemble par rapport au reste des facteurs. Nous avons également effectué cette étude sans échantillonnage du corpus. Nous n’avons remarqué aucune différence sur les résultats de l’étude avec les techniques de sélection d’attributs. Nous avons trouvé que les mêmes facteurs de pertinence sont mis en avant par l’étude de la distribution des scores et l’étude avec les techniques de sélection d’attributs. Ces facteurs de pertinence sont : facteurs de pertinence de contenu (popularité du tweet, longueur du tweet, correspondance exacte des termes), facteurs de pertinence d’hypertextualité (présence d’URL, importance d’URLs, fréquence d’URLs) et facteur de pertinence temporelle (fraîcheur). D’autres facteurs de pertinence ont été sélectionnés pas les techniques de sélection d’attributs, quoique moins fréquemment : facteurs de pertinence de l’auteur (nombre de tweets, nombre de citations) et la qualité du langage. Finalement, les facteurs de pertinence des hashtags (popularité du hashtag, présence de hashtags) n’ont jamais été sélectionnés et semblent complètement non pertinents. 105CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE Algorithme VSM f1 f2 f3 f4 f5 f6 f7 f8 f9 f10 f11 f12 f13 f14 Cfssubseteval + + + + + + + + + ChisquaredAtt.Eval + + + + + + + + + + + + + FilteredAtt.Eval + + + + + + + + + + + + + FilteredSubsetEval + + + + + + + + Gain ration att eval + + + + + + + + + + + + + Info gain att eval + + + + + + + + + + + + + One att eval + + + + + + + + + + + + + ReliefFAttribute Eval + + + + + + + + + + + + + SVM Attribute Eval + + + + + + + + + + + + SymetricalUncertEval + + + + + + + + + + + + + Consistency subset Eval + + + + + + + + + + + + + Wrapper subset Eval + + + + + LatentSymanticAnalysis + + + + Total 13 12 12 13 12 12 12 0 0 9 8 9 10 11 9 Tableau 5.6 – Critères sélectionnés avec les techniques de sélection d’attributs 4.3.3 Application des résultats de l’étude dans la recherche Dans cette section, nous évaluons certaines techniques d’apprentissage avec l’ensemble de facteurs identifiés lors des études précédentes. L’objectif est double : d’une part, nous cherchons à valider si la sélection d’attributs améliore effectivement les résultats d’une tâche de recherche de microblogs. D’autre part, nous cherchons à mesurer la performance de certaines techniques d’apprentissage dans ce type de classification. Pour évaluer les techniques d’apprentissage, nous utilisons les résultats des requêtes de l’édition de 2011 comme collection d’apprentissage et les résultats de l’édition de 2012 pour les tests. Les modèles appris prédisent la classe de pertinence pour chaque tweet (pertinent ou non pertinent). Les tweets classés comme non pertinents sont ainsi supprimés. Les tweets classés comme pertinents sont triés selon les scores d’efficacité de la classification produit pas la technique d’apprentissage. Pour évaluer nos runs obtenus, nous nous basons sur la P@30 (la mesure officielle des tâches de 2011 et 2012). Nous avons choisi de tester trois techniques d’apprentissage. Ce choix s’explique par le fait qu’elles sont les plus utilisées pour classer des documents de faible longueur. Par ailleurs, elles ont souvent montré leur efficacité dans la recherche de microblogs : SVM (Duan et al., 2010 ; Vosecky et al., 2012), J48 (Yuan et al., 2012) et Naive Bayes (Yuan et al., 2012). Hall et Holmes (2003) ont étudié l’efficacité de certaines techniques de sélection d’attributs en les confrontant avec les techniques d’apprentissage. Étant donné que la performance des facteurs diffère d’une technique d’apprentissage à une autre, ils ont 106CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE identifié les meilleures techniques de sélection d’attributs permettant de retrouver les facteurs les plus performants en fonction des techniques d’apprentissage à utiliser. En se basant sur leur étude, nous avons utilisé les mêmes couples des techniques d’apprentissage et des techniques de sélection d’attributs : – Naive Bayes et Wrapper Subset Evaluation (WRP) qui utilise l’algorithme d’apprentissage ciblé afin d’estimer les meilleurs attributs. Ainsi, les facteurs sélectionnés dans ce cas sont le score de Lucene, f3, f4, f5 et f6. – Naive Bayes et Correlation-based feature Selection (CFS) (Lucene, f1, f2, f3, f4, f5, f6, f12, f13). – J48 et ReliefFAttribute Eval (RLF) (Lucene, f1, f2, f3, f5, f6, f9, f10, f11, f12, f13, f14). – SVM et SVM Attribute Eval qui évaluent les attributs en utilisant le classifieur SVM (Lucene, f1, f2, f3, f4, f5, f6, f9, f11, f12, f13, f14). Lucene 0,2842 Distribution de scores Techniques de sélection Tous les critères J48 0,1627 0,0983 (RLF) 0,1000 Naive Bayes 0,3305 0,3311 (WRP) 0,2372 0,3356 (CFS) SVM 0,1689 0,1746 (SVM) 0,1729 Tableau 5.7 – Résultats (P@30), les scores en gras indiquent des améliorations significatives par rapport à la baseline Le tableau 5.7 montre les résultats des trois techniques d’apprentissage appris avec les facteurs issus de l’étude de la distribution des scores, les facteurs ressortis de l’étude avec les techniques de sélection d’attributs et avec tous les facteurs. Les résultats ont été comparés avec le run nommé Lucene dans lequel seulement les scores de Lucene ont été utilisés pour trier les tweets et qui représente notre baseline. 4.3.4 Discussion et limites L’objectif principal de cette étude était d’identifier la meilleure combinaison de facteurs de pertinence. Les facteurs de pertinence mis en évidence sont les mêmes que celles de l’étude par la distribution des scores. Cette étude nous a permis également de vérifier si la sélection des attributs améliore l’efficacité des techniques d’apprentissage. Les critères identifiés par SVM attribute Eval, WRP, CFS, et par l’étude de la distribution des scores confirment l’hypothèse. À part J48 appris avec les critères sélectionnés avec RLF, tous les résultats ont été améliorés par rapport aux runs créés avec tous les critères. Nous notons 107CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE également que les techniques d’apprentissage, à part J48, ont été plus efficaces avec les techniques de sélection d’attributs qu’avec les critères ressortis de la distribution des scores. Nous avons pu identifier également la meilleure technique d’apprentissage pour une tâche de recherche de microblogs. Nous pouvons remarquer que seul Naive Bayes dépasse Lucene (+18 % avec les critères sélectionnés en utilisant CFS et +16 % avec les critères ressortis de la distribution des scores). Les autres techniques d’apprentissage n’ont pas réussi à améliorer les résultats. Nous avons comparé le run obtenu en utilisant Naive Bayes appris avec les critères obtenus de CFS avec les autres participants de la tâche Microblog de 2011. Nous avons fait apprendre Naive Bayes avec les critères de CFS et nous avons réalisé une validation croisée avec les requêtes de 2011. Nous avons obtenu une P@30 moyenne de 0,3707, ce qui nous aurait classé à la 5e place parmi tous les participants qui n’ont pas utilisé des informations futures et qui ont soumis des runs automatiques. Cette précision est réduite de 10 % en utilisant le même modèle sur les requêtes de l’édition de 2012. En outre, les techniques d’apprentissage telles que J48 et SVM ont obtenu un gain de 80 % d’efficacité lorsqu’elles sont testées et croisées sur les requêtes de l’édition de 2011. Cependant, elles n’ont pas fonctionné comme prévu sur les requêtes de 2012. Toutes ces observations soulèvent la question suivante : les requêtes et les jugements de pertinence des tâches des deux années ont-ils été construits de la même manière ? Dans le but de contrôler ce biais potentiel de la collection, nous avons fusionné les requêtes de 2011 et 2012 et nous avons répété les mêmes étapes. Nous avons obtenus une P@30 moyenne de 0,3435. Ce bon résultat confirme que Naive Bayes appris avec les critères obtenus avec CFS est le plus adapté à la recherche de microblogs. 5 Conclusion Nous avons évalué dans ce chapitre les facteurs de pertinence souvent utilisés pour évaluer la pertinence des microblogs vis-à-vis d’un besoin en information. Nous avons montré expérimentalement ceux qui reflètent la pertinence. Nous avons calculé les scores des facteurs de pertinence. Ces scores ont été employés dans des combinaisons linéaires ou avec des techniques d’apprentissages, ou bien pour étudier leurs distributions dans les tweets pertinents et dans les tweets non pertinents. Les trois analyses ont montré l’importance des facteurs de pertinence liés aux URLs des tweets, ce qui complète encore une fois nos conclusions du chapitre précédent. Les facteurs liés aux hashtags ou à l’importance des auteurs n’ont cependant pas montré leur intérêt. L’emploi de certains facteurs de pertinence permet d’améliorer les résultats d’une 108CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE tâche de recherche de microblogs lorsqu’ils sont utilisés afin de réordonner les résultats fournis par un modèle de RI classique. Cependant ces améliorations demeurent dépendantes du modèle de RI : les facteurs interviennent pour le classement des tweets candidats (identifiés au préalable). Nous notons que le meilleur résultat de toutes les expérimentations de ce chapitre est obtenu par la combinaison linéaire du score du modèle vectoriel avec les scores des facteurs de pertinence des groupes G1 et G2, et non pas avec l’apprentissage. Notre travail présente cependant quelques limites. D’abord, nous n’avons pas calculé des poids quantifiant les importances des critères de pertinence (même avec les techniques de sélection d’attributs). Intuitivement, il semblerait que certains soient plus pertinents que d’autre pour la restitution de microblogs. De même, nous n’avons aucune idée de la manière dont les critères sont combinés dans les techniques d’apprentissage (boite noire). Ensuite, nous n’avons pas pu évaluer d’autres facteurs utilisés dans certaines approches de recherche de microblogs, tels que la fréquence de retweet, le nombre d’abonnés d’un auteur. Ces facteurs nécessitent des informations supplémentaires que nous ne possédons pas dans le corpus utilisé pour nos expérimentations. Un accès ouvert à Twitter semble nécessaire pour obtenir ces informations et les évaluer, ce qui n’est pas possible. La recherche d’information dans les microblogs implique la prise en compte automatique de la fraîcheur dans la pertinence. Ce facteur à été sélectionné 11 fois par les 13 techniques de sélection d’attributs que nous avons employé dans la section 4.3 (tableau 5.6). Nous traitons plus finement ce facteur dans le chapitre suivant. 109CHAPITRE 5. ANALYSE DES FACTEURS DE PERTINENCE 110Chapitre 6 Prise en compte du temps dans la recherche de microblogs 1 Introduction Ounis et al. (2011) ont défini la recherche de microblogs de la façon suivante : en cherchant dans les microblogs, l’utilisateur cherche à avoir l’information la plus récente, et pertinente, par rapport à un besoin d’information. Teevan et al. (2011), quand à eux, ont également montré que l’une des principales motivations des utilisateurs qui utilisent un moteur de recherche de microblogs concerne l’information récente. Nous avons, de notre part, montré dans le chapitre précédent que le facteur temps est souvent sélectionné comme facteur pertinent pour la recherche de microblogs. Ces trois constats suggèrent que la fraîcheur est un facteur de pertinence crucial pour la restitution de microblogs. Dans un premier temps, nous avons intégré la fraîcheur de deux manières différentes dans le calcul de la pertinence des tweets. Nous avons (i) renforcé les scores de pertinence des tweets récents par rapport à la date de soumission de la requête. Ensuite, nous avons (ii) favorisé les termes qui apparaissent fréquemment au moment de soumission de la requête. Dans un deuxième temps (iii) nous avons exploité les distributions temporelles des termes des tweets potentiellement pertinents dans le calcul de la pertinence. L’idée ainsi est de promouvoir un tweet restitué contenant des termes fréquemment utilisés le jour de sa publication. 111CHAPITRE 6. PRISE EN COMPTE DU TEMPS DANS LA RECHERCHE DE MICROBLOGS 2 Emploi de la fraîcheur dans la restitution des microblogs Nous prenons en compte à ce niveau le facteur fraîcheur par rapport à la date de soumission de la requête dans la mesure de la pertinence. Ce facteur peut être pris en compte de différentes manières. Dans un premier temps, nous proposons d’amplifier les scores de pertinence du contenu d’un tweet en fonction de sa proximité temporelle avec la date de la requête. Dans un deuxième temps, nous proposons de favoriser les termes fréquemment utilisés au moment de la soumission de la requête. Nous avons choisi d’utiliser la méthode de Kernel Laplace utilisée dans (Lv et Zhai, 2009) pour amplifier les scores du modèle de restitution 1 en fonction de la fraîcheur du tweet. La formule de Kernel est : k(i, j) = 1 2b exp −|i − j| b ! avec σ2 = 2b 2 (6.1) Dans notre cas, i et j représentent respectivement les dates en jour de la soumission de la requête et la date de publication du tweet. le facteur σ est le facteur qui permet de modifier le degré d’amplification des scores. 2.1 Favoriser des tweets récents Une façon simple de prendre en compte la fraîcheur d’un tweet est d’amplifier son score de pertinence de contenu en fonction de sa date de proximité temporelle avec la requête. L’intuition ici est que certains tweets, même ayant un score de pertinence de contenu faible, sont pertinents du fait de leur fraîcheur par rapport à la date de soumission de la requête. En contrepartie, d’autres tweets, même ayant des scores de pertinence de contenu élevés, ne sont pas pertinents du fait de leur distance temporelle importante par rapport à la date de la soumission de la requête. Le score de chaque tweet devient ainsi : RSV T1(q, d, σ) = RSV (q, d) ∗ kσ(tq, td) (6.2) avec kσ(tq, td) est le score du facteur de Kernel. Nous avons fait varier la valeur de σ pour observer l’impact de l’amplification sur les résultats. Le tableau 6.1 montre l’ensemble des résultats. 1. Les méthodes que nous proposons sont basées sur le modèle BM25 avec K1 = 0, 1 et b = 0. Nous avons choisi cette configuration car elle a obtenu de meilleurs résultats que le modèle vectoriel et que le modèle BM25 de base (chapitre 4). Nous n’avons pas employé d’autres facteurs comme l’expansion de requêtes ou de documents (l’objectif ici est d’étudier uniquement le facteur temporel). Nous nous sommes basés sur les 60 requêtes de l’édition 2012 de la tâche Microblog de TREC. 112CHAPITRE 6. PRISE EN COMPTE DU TEMPS DANS LA RECHERCHE DE MICROBLOGS σ Rappel P@30 MAP RSV (q, d) 0,6643 0,3186 0,2170 RSV T1(q, d, 2) 0,2388 0,0432 0,1175 RSV T1(q, d, 14) 0,4849 0,2305 0,1178 RSV T1(q, d, 18) 0,5427 0,2379 0,1362 RSV T1(q, d, 28) 0,5950 0,2729 0,1695 RSV T1(q, d, 32) 0,6082 0,2797 0,1782 RSV T1(q, d, 50) 0,6295 0,2910 0,1938 RSV T1(q, d, 90) 0,6520 0,2960 0,2024 RSV T1(q, d, 230) 0,6597 0,3119 0,2111 RSV T1(q, d, 350) 0,6633 0,3153 0,2155 Tableau 6.1 – Amplification des scores de pertinence de contenu en fonction de leur fraîcheur Comme les résultats le montrent, l’amplification des scores du modèle de restitution n’a pas amélioré les résultats. En faisant augmenter σ, l’effet de l’amplification diminue, et les résultats se rapprochent des résultats du modèle de recherche de base. 2.2 Favoriser les termes récents L’intuition ici est de considérer que les termes les plus représentatifs pour exprimer un besoin en information dans les microblogs sont des termes fréquemment utilisés au moment de la soumission de la requête : un document, même ancien par rapport à la date de soumission de la requête, contenant des termes fréquemment utilisés au moment de la requête est plus pertinent qu’un document récent, contenant des termes fréquemment utilisés dans des périodes lointaines par rapport à la requête. Pour prendre en compte cette intuition, nous avons modifié le facteur IDF du modèle de restitution (RSV T2(q, d, σ)) : IDF = log N − (Ri)temps (Ri)temps ! (6.3) (Ri)temps = X t (|Ri |t ∗ kσ(tq, t)) (6.4) avec t correspond à une fenêtre temporelle exprimée en jours et |Ri |t correspond au nombre de documents dans cette fenêtre temporelle. Le tableau 6.2 présente les résultats. Nous avons fait varier σ : 113CHAPITRE 6. PRISE EN COMPTE DU TEMPS DANS LA RECHERCHE DE MICROBLOGS σ Rappel P@30 MAP RSV (q, d) 0,6643 0,3186 0,2170 RSV T2(q, d, 2) 0,6640 0,3130 0,2156 RSV T2(q, d, 10) 0,6647 0,3130 0,2159 RSV T2(q, d, 20) 0,6657 0,3136 0,2160 RSV T2(q, d, 30) 0,6657 0,3136 0,2160 RSV T2(q, d, 40) 0,6659 0,3119 0,2157 RSV T2(q, d, 50) 0,6659 0,3085 0,2128 Tableau 6.2 – Amplification des scores des termes en fonction de leur fréquence d’apparition dans le temps Encore une fois, la prise en compte de la fraîcheur n’a pas montré une amélioration significative (à part une légère amélioration de 0,28 % au niveau du rappel). 2.3 Observations De manière générale, l’emploi de la fraîcheur dans les deux méthodes proposées n’apporte pas d’amélioration. Afin de vérifier si la fraîcheur a un impact sur les résultats, nous avons regardé la distribution temporelle des tweets pertinents et des tweets non pertinents pour l’ensemble des requêtes. La figure 6.1 montre les ratios des distributions temporelles des tweets pertinents et non pertinents de chaque requête, ainsi que la distribution générale des tweets sur l’ensemble des requêtes (nommée somme). Nous nous sommes basés sur les jugements de pertinence (qrels) pour sélectionner ces tweets. Les courbes présentent le ratio des quantités de tweets pertinents (bleu/carrés inclinés) et des non pertinents (rouge) par jour. Nous pouvons remarquer que les distributions diffèrent d’une requête à une autre. Les tweets pertinents ne sont pas toujours récents par rapport à la date de la soumission des requêtes. En analysant chaque requête séparément, nous pouvons affirmer que la prise en compte de la fraîcheur pénalise les résultats de plusieurs requêtes dont les dates de la plupart des tweets pertinents sont relativement éloignés de sept jours de la date de soumission des requêtes (ex. MB088, MB089, MB095. . . ). Par ailleurs, nous remarquons que les tweets pertinents arrivent par rafales. Les positions de ces rafales sont différentes d’une requête à une autre. Nous avons ainsi testé une troisième méthode qui, pour le calcul du score d’un tweet, tient compte de la fréquence des tweets publiés le jour de sa publication. L’objectif est de promouvoir un tweet s’il est publié dans une période qui correspond à une rafale de tweets. Par exemple, pour la requête MB065, la plupart des tweets pertinents sont apparus dix jours avant la date de soumission de la requête. Ainsi, l’idée est de favoriser les 114CHAPITRE 6. PRISE EN COMPTE DU TEMPS DANS LA RECHERCHE DE MICROBLOGS tweets publiés dans cette fenêtre temporelle. 115CHAPITRE 6. PRISE EN COMPTE DU TEMPS DANS LA RECHERCHE DE MICROBLOGS 116CHAPITRE 6. PRISE EN COMPTE DU TEMPS DANS LA RECHERCHE DE MICROBLOGS Figure 6.1 – Distribution temporelle des tweets pertinents et non pertinents pour les requêtes de TREC Microblog 2012. Les rectangles représentent les tweets pertinents tandis que les losanges représentent les tweets non pertinents. 3 Prise en compte de la fréquence temporelle Nous prenons en compte à ce niveau les distributions temporelles des résultats. Nous essayons ainsi de favoriser les résultats qui apparaissent dans les périodes de rafales. Cette troisième méthode amplifie le score d’un terme dans un tweet publié à un instant t en fonction de la fréquence d’emploi de ce terme dans cette période t. Un même terme aura des scores différents en fonction de la date de soumission du document auquel il appartient. Ce score sera plus important si le terme appartient à un document publié dans une période de rafale de ce terme, que dans le cas où il appartient à un document publié dans une période où le terme n’est pas fréquemment utilisé. De cette manière, nous favorisons les résultats publiés dans des périodes de rafales. Pour mettre en application cette intuition, nous avons employé un nouveau facteur : IDFnew. IDFnew = IDF ∗ 1/IDFlocal (6.5) et IDFlocal = log N − (Ri)t (Ri)t ! (6.6) avec (Ri)t est le nombre de tweets contenant le terme i le jour de la publication du tweet. IDFlocal est le IDF d’un terme, mais sur une fenêtre temporelle d’un jour (est non pas sur toute la collection). Ainsi, un terme va avoir un IDFlocal différent 117CHAPITRE 6. PRISE EN COMPTE DU TEMPS DANS LA RECHERCHE DE MICROBLOGS pour chaque jour. Ce facteur est plus important dans un jour où le terme n’est pas fréquemment utilisé, que dans un jour où il est fréquemment utilisé (supposé correspondant à un jour de rafale). Pour cette raison, nous employons l’inverse de ce facteur : 1/IDFlocal. Le modèle qui prend en compte IDFnew dans le modèle de restitution est nommé RSV T3(q, d). Rappel P@30 MAP RSV (q, d) 0,6643 0,3186 0,2170 RSV T3(q, d) 0.6469 0.3198 0.2087 Tableau 6.3 – Prise en compte de la fréquence temporelle. Le tableau 6.3 montre que cette méthode n’a pas donné d’amélioration significative sur l’ensemble des requêtes. Afin de mieux comprendre l’impact de nos méthodes, nous avons analysé les résultats requête par requête afin de voir si l’effet négatif de nos méthodes apparaît sur toutes les requêtes ou uniquement sur certaines. L’objectif est de voir si la prise en compte de la fraîcheur ou du temps dans la restitution permet d’améliorer certaines requêtes en particulier, et d’identifier des spécificités de ces requêtes. 4 Analyse requête par requête Dans cette section, nous analysons l’impact de nos trois méthodes, requête par requête. Nous considérons la mesure MAP, car elle tient compte à la fois du rappel et de la précision. Le tableau 6.4 montre les requêtes pour lesquelles nous avons eu des améliorations avec chacune des trois méthodes. De manière générale, la modification de σ dans Kernel ne change pas les différentes observations. La première remarque est que la deuxième approche améliore 51 requêtes parmi les 60. Cependant, nous n’avons identifié aucune particularité commune, que ce soit au niveau des distributions temporelles des résultats ou bien de la sémantique des requêtes, pour les requêtes n’ayant pas obtenu d’amélioration. Nous n’avons également pas trouvé de spécificités communes pour les requêtes améliorées avec la première et la dernière méthode. Par exemple, la première méthode a amélioré les requêtes MB059 « Glen Beck » et MB085 « Best Buy improve sales ». Ces deux requêtes n’ont aucune sensibilité temporelle. De même, pour la troisième approche, nous notons des améliorations pour les requêtes MB060 « fishing guidebook », MB064 « red light cameras », MB102 « school lunches ». . . Ces requêtes n’ont également aucune sensibilité temporelle. 118CHAPITRE 6. PRISE EN COMPTE DU TEMPS DANS LA RECHERCHE DE MICROBLOGS RSV T1(q, d, σ) MB058, MB059, MB063, MB066, MB067, MB071, MB075, MB079, MB080, MB085, MB091, MB093, MB107 RSV T2(q, d, σ) MB051, MB052, MB053, MB054, MB056, MB057, MB059, MB060, MB062, MB063, MB064, MB065, MB067, MB069, MB070, MB071, MB072, MB073, MB074, MB075, MB076, MB077, MB078, MB079, MB080, MB081, MB083, MB084, MB085, MB086, MB087, MB088, MB089, MB090, MB091, MB092, MB093, MB094, MB095, MB098, MB099, MB100, MB101, MB102, MB103, MB105, MB106, MB107, MB108, MB109, MB110 RSV T3(q, d) MB051, MB054, MB057, MB059, MB066, MB069, MB070, MB075, MB077, MB079, MB080, MB081, MB085, MB086, MB088, MB089, MB092, MB093, MB094, MB095, MB096, MB098, MB100, MB101, MB102, MB107, MB108, MB109 Tableau 6.4 – Requêtes améliorées sur la mesure MAP pour les 3 méthodes Ensuite, nous avons identifié manuellement les requêtes sensibles au temps. L’objectif est de voir si, pour ces requêtes et avec la prise en compte du temps, les ré- sultats ont été améliorés. Dans le cas contraire, nous essayons de comprendre les raisons. Ces requêtes correspondent principalement à des événements (par exemple : « Hu Jintao visit to the United States », « Autralian Open Djokovic vs. Murray », « fashion week in NYC ». . . ). Nous avons sélectionné 13 requêtes qui parlent explicitement d’événements et qui sont clairement sensibles au temps (MB051, MB057, MB061, MB065, MB067, MB071, MB075, MB079, MB086, MB093, MB096, MB098, MB106). L’impact de la prise en compte du temps pour ces requêtes diffère d’une approche à une autre : – 8/13 (MB051, MB057, MB061, MB065, MB086, MB096, MB098, MB106) n’ont pas été améliorées avec la première approche. – 11/13 (MB051, MB057, MB065, MB067, MB071, MB075, MB079, MB086, MB093, MB098, MB106) n’ont pas été améliorées avec la deuxième approche. – 5/13(MB061, MB065, MB067, MB071, MB106) n’ont pas été améliorées avec la troisième approche. La première remarque est que la troisième approche est celle qui arrive à amélio- 119CHAPITRE 6. PRISE EN COMPTE DU TEMPS DANS LA RECHERCHE DE MICROBLOGS rer le nombre le plus important de requêtes sensibles au temps (8/13). Concernant les deux premières approches (se basant sur la fraîcheur par rapport à la date de la soumission de la requête), la cause principale pour laquelle il n’y avait pas d’amé- lioration consiste en la concentration des tweets pertinents dans des dates lointaines par rapport à la date de la requête. C’est la cas des requêtes MB057, MB061, MB065, MB067, MB079, MB086, MB093, MB098 et MB106. Ainsi, la prise en compte de la fraîcheur n’a pas montré d’intérêt. Concernant les requêtes MB071, MB075 et MB096, nous pouvons remarquer à partir des courbes de distributions temporelles que les tweets pertinents sont proches de la date de la soumission de la requête. Cependant, nous notons que, pour ces requêtes, les courbes des tweets pertinents sont très similaires aux courbes des tweets non pertinents. Ainsi, le fait de favoriser les tweets récents va impliquer les tweets pertinents et les tweets non pertinents, ce qui explique la dégradation des résultats pour elles. Finalement, la requête MB051 se caractérise par l’apparition de la grande partie des tweets pertinents à une date récente par rapport à la date de la requête, et les distributions des tweets pertinents et des tweets non pertinents ne sont pas similaires. Nous avons ainsi regardé les résultats restitués pour cette requête et nous avons remarqué que le modèle de RI employé n’a pas restitué une grande partie des tweets pertinents apparus récemment par rapport à la date de la requête. Ceci est du aux problèmes de vocabulaires étudiés dans le chapitre 3. Par conséquent, la prise en compte de la fraîcheur n’a pas montré son effet. Concernant la troisième approche (qui prend en compte des distributions temporelles des résultats), nous avons étudié les résultats des requêtes pour lesquelles il n’y avait pas eu d’amélioration. Nous avons trouvé que le modèle de restitution de base (sans l’intégration de la fraîcheur) a restitué tous les tweets pertinents apparus dans les périodes de rafales. Par conséquent, la prise en compte du temps a favorisé uniquement la restitution des tweets non pertinents, pour ces périodes, ce qui a engendré une dégradation des résultats. 5 Conclusion Nous avons étudié l’impact de la prise en compte du temps dans la recherche de microblogs. Nous avons proposé trois méthodes qui prennent en compte le temps de façons différentes. De manière générale, nous avons trouvé que la fraîcheur n’est pas un facteur de pertinence. Ce constat vient à l’encontre la définition de la tâche de recherche de microblogs dans TREC et aussi de l’état de l’art. Dans la collection utilisée pour nos expérimentations, la date de la soumission des requêtes correspond à la date de publication du tweet pertinent le plus récent. Cependant, nous avons trouvé, que pour plusieurs requêtes, la majorité des tweets pertinents sont publiés sept jours 120CHAPITRE 6. PRISE EN COMPTE DU TEMPS DANS LA RECHERCHE DE MICROBLOGS avant la date de soumission de la requête. Nous avons également proposé une mé- thode qui se focalise sur les fenêtres de concentration temporelle des termes des requêtes dans la restitution. Cette approche n’a également pas montré d’amélioration significative. Toutefois, c’est la seule approche qui a obtenu une P@30 meilleure que celle du modèle BM25. Des études plus approfondies sur ce point doivent être réalisées. De plus, nous avons regardé les résultats de chaque requête avec chacune des trois approches. Nous avons trouvé que chaque approche améliore les résultats de certaines requêtes et dégrade les résultats d’autres. Cependant, nous n’avons pas trouvé de spécificités communes pour les requêtes ayant obtenu des améliorations, ni pour celles qui ont subi des dégradations. Finalement, nous avons identifié manuellement les requêtes sensibles au temps. Nous avons trouvé que c’est la troisième approche qui a amélioré la plus grande partie de ces requêtes. Ces résultats nous encouragent à prendre en compte le temps dans la restitution, en particulier avec les requêtes sensibles au temps. Il reste maintenant à savoir comment les identifier. 121CHAPITRE 6. PRISE EN COMPTE DU TEMPS DANS LA RECHERCHE DE MICROBLOGS 122Chapitre 7 Conclusion générale Synthèse Nous nous sommes intéressés dans ces travaux à la RI adhoc dans les microblogs. L’objectif est de retrouver les microblogs répondant à un besoin d’information spécifié par un utilisateur. Pour réaliser nos expérimentations, nous nous sommes basés sur le corpus fourni par la campagne d’évaluation internationale TREC (Text Retrieval Conference) dans la tâche Microblog des éditions de 2011 et 2012. Nos différentes contributions ont également fait l’objet de participations aux trois tâches de Microblogs de TREC (2011, 2012 et 2013). Nos contributions se situent à plusieurs niveaux : – Afin de déterminer exactement les facteurs limitant les performances des modèles classiques de RI dans un corpus de microblogs, nous avons mené une analyse de défaillance d’un modèle de recherche usuel. Nous avons sélectionné les microblogs pertinents mais non retrouvés par le modèle de recherche. Ensuite, nous avons identifié les facteurs empêchant leur restitution. Nous avons trouvé que le problème principal vient de la concision des microblogs. Cette concision engendre une correspondance limitée entre les termes des microblogs et les termes des requêtes, même s’ils sont sémantiquement semblables. Toutefois, ce facteur est apparu sous différentes formes : absence totale des termes de certaines requêtes dans les documents pertinents, caractère non discriminant des termes de requêtes. . . Nous avons également identifié des problèmes de lemmatisation : termes non appariés quoique dérivant d’une même racine, ou des termes concaténés sous formes de hashtags ou de citations. Outre le problème de vocabulaire, nous avons remarqué que, pour plusieurs requêtes, certains termes n’ont pas un caractère discriminant. Par conséquent, ces termes n’aident pas à sélectionner les résultats pertinents. – Afin de compenser l’impact de la concision des microblogs, nous avons pro- 123CHAPITRE 7. CONCLUSION GÉNÉRALE posé et testé plusieurs solutions. Nous avons proposé d’étendre les requêtes (i) en exploitant des ressources de type actualités, (ii) en utilisant la base lexicale WordNet, (iii) en appliquant des techniques de réinjection de pertinence de l’état de l’art. Ces techniques ont souvent prouvé leur efficacité : Rocchio pour identifier les termes susceptibles de ramener la pertinence ainsi que pour la pondération des termes de la nouvelle requête, et le mécanisme naturel d’extension de requêtes du modèle BM25. Dans Rocchio, nous avons testé différentes méthodes de calcul de poids de termes d’expansion. Nous avons enfin étendu les microblogs grâce aux liens (URLs) qu’ils contiennent. Nos expérimentations ont montré que l’emploi des URLs et l’expansion de requêtes a partir du feedback sont primordiales pour la RI dans les microblogs. L’expansion de requêtes avec les articles d’actualité améliore uniquement la précision. La plupart de ces expérimentations (expansion de requêtes et de microblogs) ont été réalisées en se basant sur le modèle vectoriel et sur le modèle probabiliste comme modèle de restitution. Ceci nous a permis de comparer les comportements des deux modèles sur les microblogs et avec les deux types d’expansion. De manière générale, nous avons trouvé que le modèle vectoriel est plus performant que modèle probabiliste au niveau de la sélection des microblogs pertinents (meilleur rappel). Cependant, le modèle probabiliste met davantage en valeur les microblogs pertinents restitués par rapport à tous les microblogs restitués (meilleure précision). – Un deuxième volet de notre travail concerne l’étude des facteurs de pertinence utilisés pour identifier les microblogs pertinents. Nous avons repris les facteurs souvent utilisés dans l’état de l’art (facteurs liés au contenu, facteurs liés aux auteurs, facteurs liés aux URLs, facteurs liés aux hashtags et facteurs liés à la qualité des tweets) et nous les avons évalués. Nous avons réalisé cette analyse selon trois axes. Dans le premier axe, nous avons étudié le comportement des facteurs de pertinence dans les documents pertinents et les avons comparés à leur comportement dans les documents non pertinents. Dans le deuxième axe, nous avons analysé l’impact de la combinaison des scores des facteurs avec le score de pertinence du contenu, calculé avec un modèle de RI usuel. Dans le troisième axe, nous avons utilisé des techniques d’apprentissage ainsi que des algorithmes de sélection d’attributs qui peuvent être utiles en entrée de ces techniques d’apprentissages. De manière générale, nous avons montré que les facteurs liés aux URLs publiées dans les tweets sont les plus discriminants. Les facteurs liés aux auteurs ou aux hashtags ne reflètent pas la pertinence. Nous avons également comparé différentes techniques d’apprentissage souvent utilisées dans l’état de l’art pour la recherche de microblogs. Nous avons trouvé que Naive Bayes est le plus adapté pour ce 124CHAPITRE 7. CONCLUSION GÉNÉRALE type de recherche et ceci en considérant les meilleurs critères de pertinence identifiés. – Afin de prendre en compte l’aspect temporel dans la restitution des microblogs pertinents vis-à-vis d’un besoin en information, nous avons proposé trois méthodes qui intègrent le temps dans le calcul de la pertinence. Cette inté- gration du temps n’a cependant pas montré son intérêt dans nos méthodes. Une analyse plus poussée, requête par requête, nous a permis de voir que la fraîcheur ne représente en effet pas un facteur de pertinence pour la restitution de microblogs. Limites et perspectives Nous commençons par présenter nos perspectives à court terme pour arriver à celles à long terme : – Dans un premier temps, nous aimerions compléter le traitement des différentes formes du problème de vocabulaire soulignées dans le chapitre 3. Nous avons trouvé que, dans plusieurs cas, les tweets pertinents contiennent les termes des requêtes concaténés sous forme de hashtags. Nous avons testé une mé- thode pour décomposer ces hashtags. Cette méthode se basait sur les lettres majuscules pour identifier le début de chaque terme composant. Cependant, elle ne nous a pas permis d’améliorer les résultats. Une solution à ce problème consiste à employer l’algorithme de segmentation proposé dans le livre « Beautiful Data » (Segaran et Hammerbacher, 2009), permettant de décomposer les termes concaténés. La même approche peut être employée également pour ré- soudre les problèmes reliés aux lemmatiseurs : termes non appariés dérivant d’une même racine. – Dans le chapitre 5, nous n’avons pas pu évaluer certains facteurs de pertinence tels que le nombre de fois un tweet a été retweeté ou le nombre de fois il a été favori. Nous n’avons pas ces informations dans la collection d’évaluation utilisée. La solution ainsi consiste à créer une nouvelle collection contenant toutes les informations requises. – Considérer la fraîcheur dans la restitution des microblogs n’a pas montré un intérêt. Toutefois, nous avons trouvé que, dans la plupart des cas, les tweets arrivent par rafales. L’idée ainsi est de trouver un moyen pour identifier les fenêtres temporelles correspondant aux rafales de tweets au préalable et les utiliser comme feedback ou comme source d’expansion de requêtes. – La grande majorité des travaux réalisés sur les microblogs, et en particulier nos travaux, emploient Twitter comme cadre applicatif. Notre objectif est d’étudier ainsi si nos résultats et nos observations sont valables également sur les autres 125CHAPITRE 7. CONCLUSION GÉNÉRALE plate-formes de microblogging telles que Blipper et Tumblr. – La tâche de recherche de microblogs consiste à restituer des microblogs pertinents vis-à-vis d’un besoin en information. Nous avons trouvé, regardant les résultats des qrels de la tâche Microblog de TREC, que plusieurs tweets pertinents ont exactement le même contenu et ramènent les mêmes informations. Dans le cas idéal, un utilisateur devra ainsi consulter tous les tweets pertinents (parfois des centaines) pour s’assurer d’avoir vu tous les aspects d’une requêtes. Pour simplifier la tâche, créer un synthétiseur de résultats permettant d’une part d’éliminer les informations qui se répètent, et d’autre part de représenter les résultats d’une manière plus lisible. – Une des principales caractéristiques des plate-formes de microblogging est leur aspect social. Les utilisateurs ne produisent pas uniquement du contenu informatif, mais ils peuvent s’impliquer dans des conversations avec d’autres utilisateurs, en commentant, aimant et partageant leurs publications. Ainsi, il est important dans ce cas de pouvoir restituer tout le contexte d’un tweet. Une méthode de présenter le contexte est d’extraire la conversation à laquelle un tweet appartient. L’identification des critères permettant d’extraire des conversations à partir des microblogs représente un vrai défi. Les microbloggeurs discutent entre eux sans utiliser forcément les moyens explicites de conversations donnés par les plate-formes (retweet, hashtag, citation, réponse. . . ). – Finalement, agréger des informations de différentes sources (Web, images, wiki, actualités. . . ) pour répondre aux besoins en information, a montré son intérêt (Kopliku et al., 2011). Cette technique permet de présenter à l’utilisateur des résultats variés et complémentaires. Considérer les microblogs (information fraîche) en plus des sources employées dans (Kopliku et al., 2011) semble très utiles, étant donné l’importance des microblogs aujourd’hui, en particulier, en tant que source d’information. L’objectif ainsi est d’étudier l’apport de la prise en compte des microblogs en complément des autres sources d’information du Web, pour répondre aux besoins en informations. Références Aboulnaga, Y., et Clarke, C. L. (2012). Frequent Itemset Mining for Query Expansion in Microblog Ad-hoc Search. In TREC’12 : 21th Text Retrieval Conference. National Institute of Standards and Technology (NIST). Attardi, G., et Simi, M. (2006). Blog mining through opinionated words. In E. M. Voorhees et L. P. Buckland (Eds.), Trec (Vol. Special Publication 500- 272). National Institute of Standards and Technology (NIST). Baccianella, A. E. S., et Sebastiani, F. (2010). Sentiwordnet 3.0 : An enhanced lexical 126CHAPITRE 7. CONCLUSION GÉNÉRALE resource for sentiment analysis and opinion mining. In Proceedings of the seventh conference on international language resources and evaluation (lrec’10). Valletta, Malta : European Language Resources Association (ELRA). Baeza-Yates, R. A., et Ribeiro-Neto, B. (1999). Modern information retrieval. Boston, MA, USA : Addison-Wesley Longman Publishing Co., Inc. Bai, J., Nie, J.-Y., Cao, G., et Bouchard, H. (2007). Using query contexts in information retrieval. In Proceedings of the 30th annual international acm sigir conference on research and development in information retrieval (pp. 15–22). New York, NY, USA : ACM. Bamman, D., Eisenstein, J., et Schnoebelen, T. (2012). Gender in twitter : Styles, stances, and social networks. CoRR, abs/1210.4567 . Bao, S., Xue, G., Wu, X., Yu, Y., Fei, B., et Su, Z. (2007). Optimizing web search using social annotations. In Proceedings of the 16th international conference on world wide web (pp. 501–510). New York, NY, USA : ACM. Belkin, N. J., et Croft, W. B. (1992). Information filtering and information retrieval : Two sides of the same coin ? Commun. ACM, 35 (12), 29–38. Ben Jabeur, L., Damak, F., Tamine, L., Cabanac, G., Pinel-Sauvagnat, K., et Boughanem, M. (2013). IRIT at TREC Microblog Track 2013. In E. M. Voorhees et (Eds.), Text REtrieval Conference (TREC), Gaithersburg, USA,. National Institute of Standards and Technology (NIST). Ben Jabeur, L., Damak, F., Tamine, L., Pinel-Sauvagnat, K., Cabanac, G., et Boughanem, M. (2012). IRIT at TREC Microblog 2012 : Adhoc Task. In E. M. Voorhees et L. P. Buckland (Eds.), Text REtrieval Conference (TREC), Gaithersburg, USA,. National Institute of Standards and Technology (NIST). Ben Jabeur, L., Tamine, L., et Boughanem, M. (2011). Un modèle de recherche d’information sociale dans les microblogs : cas de twitter. In Conférence sur les modèles et l’analyse des réseaux : Approches mathématiques et informatique. Ben Jabeur, L., Tamine, L., et Boughanem, M. (2012). Active microbloggers : Identifying influencers, leaders and discussers in microblogging networks. In L. Calderón-Benavides, C. González-Caro, E. Chávez, et N. Ziviani (Eds.), String processing and information retrieval (Vol. 7608, p. 111-117). Springer Berlin Heidelberg. Bernstein, M., Suh, B., Hong, L., Chen, J., Kairam, S., et Chi, E. (2010). Eddi : interactive topic-based browsing of social status streams. In Acm symposium on user interface software and technology (p. 303-312). New York, NY : ACM. Blei, D. M., Ng, A. Y., et Jordan, M. I. (2003). Latent dirichlet allocation. J. Mach. Learn. Res., 3 , 993–1022. Bollen, J., Pepe, A., et Mao, H. (2009). Modeling public mood and emotion : Twitter sentiment and socio-economic phenomena. CoRR, abs/0911.1583 . Brin, S., et Page, L. (1998). The anatomy of a large-scale hypertextual web search 127CHAPITRE 7. CONCLUSION GÉNÉRALE engine. Comput. Netw. ISDN Syst., 30 , 107–117. Buckley, C., et Voorhees, E. M. (2000). Evaluating evaluation measure stability. In Proceedings of the 23rd annual international conference on research and development in information retrieval (pp. 33–40). New York, NY, USA : ACM SIGIR. Cai, Y., et Li, Q. (2010). Personalized search by tag-based user profile and resource profile in collaborative tagging systems. In Proceedings of the 19th acm international conference on information and knowledge management (pp. 969–978). New York, NY, USA : ACM. Cappelletti, R., et Sastry, N. (2012). Iarank : Ranking users on twitter in near realtime, based on their information amplification potential. In Proceedings of the 2012 international conference on social informatics (pp. 70–77). Washington, DC, USA : IEEE Computer Society. Carmel, D., Zwerdling, N., Guy, I., Ofek-Koifman, S., Har’el, N., Ronen, I., et al. (2009). Personalized social search based on the user’s social network. In Proceedings of the 18th acm conference on information and knowledge management (pp. 1227–1236). New York, NY, USA : ACM. Carpineto, C., Mori, R. de, Romano, G., et Bigi, B. (2001). An information-theoretic approach to automatic query expansion. ACM Trans. Inf. Syst., 19 (1), 1–27. Che Alhadi, A., Gottron, T., Kunegis, J., et Naveed, N. (2011). Livetweet : Microblog retrieval based on interestingness and an adaptation of the vector space model. In Proc. text retrieval conference (TREC). Cheng, F., Zhang, X., He, B., Luo, T., et Wang, W. (2013). A survey of learning to rank for real-time twitter search. In Proceedings of the 2012 international conference on pervasive computing and the networked world (pp. 150–164). Berlin, Heidelberg : Springer-Verlag. Choi, J., et Croft, W. B. (2012). Temporal models for microblogs. In Proceedings of the 21st acm international conference on information and knowledge management (pp. 2491–2494). New York, NY, USA : ACM. Cleverdon, C. W., Mills, J., et Keen, M. (1966). Factors determining the performance of indexing systems. Cohen, D., Amitay, E., et Carmel, D. (2007). Lucene and juru at trec 2007 : 1-million queries track. In TREC’07 : 7th Text Retrieval Conference (pp. -1–1). Damak, F. (2013). Recherche d’information dans les microblogs : que manque-til aux approches classiques ? In Rencontres Jeunes Chercheurs en Recherche d’Information (RJCRI), Neuchâtel, 03/04/2013-05/04/2013 (pp. 475–480). Association Francophone de Recherche d’Information et Applications (ARIA). Damak, F., Jabeur, L. B., Cabanac, G., Pinel-Sauvagnat, K., Lechani, L., et Boughanem, M. (2011). IRIT at TREC Microblog 2011. In E. M. Voorhees et (Eds.), Text REtrieval Conference (TREC), Gaithersburg, USA,. National 128CHAPITRE 7. CONCLUSION GÉNÉRALE Institute of Standards and Technology (NIST). Damak, F., Pinel-Sauvagnat, K., et Cabanac, G. (2012). Recherche de microblogs : quels critères pour raffiner les résultats des moteurs usuels de RI ? In Confé- rence francophone en Recherche d’Information et Applications (CORIA), Bordeaux, France, 21/03/2012-23/03/2012 (pp. 317–328). LABRI. Damak, F., Pinel-Sauvagnat, K., Cabanac, G., et Boughanem, M. (2013). Effectiveness of State-of-the-art Features for Microblog Search. In SAC’13 : ACM Symposium on Applied Computing. ACM. Diakopoulos, N. A., et Shamma, D. A. (2010). Characterizing debate performance via aggregated twitter sentiment. In Proceedings of the sigchi conference on human factors in computing systems (pp. 1195–1198). New York, NY, USA : ACM. Dong, A., Chang, Y., Zheng, Z., Mishne, G., Bai, J., Zhang, R., et al. (2010). Towards recency ranking in web search. In Proceedings of the third acm international conference on web search and data mining (pp. 11–20). New York, NY, USA : ACM. Dong, A., Zhang, R., Kolari, P., Bai, J., Diaz, F., Chang, Y., et al. (2010). Time is of the essence : improving recency ranking using twitter data. In In www. Duan, Y., Jiang, L., Qin, T., Zhou, M., et Shum, H.-Y. (2010). An empirical study on learning to rank of tweets. In Proceedings of the 23rd international conference on computational linguistics (pp. 295–303). Efron, M. (2010). Hashtag retrieval in a microblogging environment. In Proceedings of the 33rd international acm sigir conference on research and development in information retrieval (pp. 787–788). New York, NY, USA : ACM. Efron, M. (2011a). Information search and retrieval in microblogs. In (Vol. 62, pp. 996–1008). New York, NY, USA : John Wiley & Sons, Inc. Efron, M. (2011b). The university of illinois graduate school of library and information science at TREC 2011. In TREC’11 : 20th Text Retrieval Conference. National Institute of Standards and Technology (NIST). Efron, M., et Golovchinsky, G. (2011). Estimation methods for ranking recent information. In Proceedings of the 34th international acm sigir conference on research and development in information retrieval (pp. 495–504). New York, NY, USA : ACM. Efron, M., Organisciak, P., et Fenlon, K. (2012). Improving retrieval of short texts through document expansion. In Proceedings of the 35th international acm sigir conference on research and development in information retrieval (pp. 911–920). New York, NY, USA : ACM. Endarnoto, S., Pradipta, S., Nugroho, A., et Purnama, J. (2011). Traffic condition information extraction amp ; visualization from social media twitter for android mobile application. In Electrical engineering and informatics (iceei), 129CHAPITRE 7. CONCLUSION GÉNÉRALE 2011 international conference on (p. 1-4). Feng, W., et Wang, J. (2013). Retweet or not ? : Personalized tweet re-ranking. In Proceedings of the sixth acm international conference on web search and data mining (pp. 577–586). New York, NY, USA : ACM. Ferguson, P., O’Hare, N., Lanagan, J., Phelan, O., et McCarthy, K. (2012). An investigation of term weighting approaches for microblog retrieval. In Proceedings of the 34th european conference on advances in information retrieval (pp. 552–555). Berlin, Heidelberg : Springer-Verlag. Frank, J. R., Bauer, S. J., Kleiman-Weiner, M., Roberts, D. A., Tripuraneni, N., Zhang, C., et al. (2013). Evaluating stream filtering for entity profile updates for trec 2013. In TREC’13 : 22th Text Retrieval Conference. Frank, J. R., Kleiman-Weiner, M., Roberts, D. A., Niu, F., Zhang, C., Re, C., et al. (2012). Building an Entity-Centric stream filtering test collection for TREC 2012. In Proc. of trec. National Institute of Standards and Technology (NIST). Furnas, G. W., Deerwester, S., Dumais, S. T., Landauer, T. K., Harshman, R. A., Streeter, L. A., et al. (1988). Information retrieval using a singular value decomposition model of latent semantic structure. In Proceedings of the 11th annual international acm sigir conference on research and development in information retrieval (pp. 465–480). New York, NY, USA : ACM. Furnas, G. W., Landauer, T. K., Gomez, L. M., et Dumais, S. T. (1987). The vocabulary problem in human-system communication. Commun. ACM, 30 (11), 964–971. Gudivada, V., Raghavan, V., Grosky, W. I., et Kasanagottu, R. (1997). Information retrieval on the world wide web. Internet Computing, IEEE, 1 (5), 58-68. Hall, M. A., et Holmes, G. (2003). Benchmarking attribute selection techniques for discrete class data mining. IEEE Trans. on Knowl. and Data Eng., 15 (6), 1437–1447. Han, B., et Baldwin, T. (2011). Lexical normalisation of short text messages : Makn sens a #twitter. In Proceedings of the 49th annual meeting of the association for computational linguistics : Human language technologies - volume 1 (pp. 368–378). Stroudsburg, PA, USA : Association for Computational Linguistics. Hatzivassiloglou, V., et McKeown, K. R. (1997). Predicting the semantic orientation of adjectives. In Proceedings of the 35th annual meeting of the association for computational linguistics and eighth conference of the european chapter of the association for computational linguistics (pp. 174–181). Stroudsburg, PA, USA : Association for Computational Linguistics. Jabeur, L., Tamine, L., et Boughanem, M. (2012). Featured tweet search : Modeling time and social influence for microblog retrieval. In IEEE/WIC/ACM International Conference on Web Intelligence, Macau, China (pp. 166–173). IEEE Computer Society - Conference Publishing Services. 130CHAPITRE 7. CONCLUSION GÉNÉRALE Jansen, B. J., Zhang, M., Sobel, K., et Chowdury, A. (2009a). Micro-blogging as online word of mouth branding. In Chi ’09 extended abstracts on human factors in computing systems (pp. 3859–3864). New York, NY, USA : ACM. Jansen, B. J., Zhang, M., Sobel, K., et Chowdury, A. (2009b). Twitter power : Tweets as electronic word of mouth. J. Am. Soc. Inf. Sci. Technol., 60 (11), 2169–2188. Java, A., Song, X., Finin, T., et Tseng, B. (2007). Why we twitter : understanding microblogging usage and communities. In WebKDD’07 : Proceedings of the 9th webkdd and 1st sna-kdd 2007 workshop on web mining and social network analysis (pp. 56–65). Joachims, T. (2005). A support vector method for multivariate performance measures. In Proceedings of the 22nd international conference on machine learning (pp. 377–384). New York, NY, USA : ACM. Jones, K. S., et Rijsbergen, C. van. (1976). Information retrieval test collections (Rapport technique). Karamuftuoglu, M. (1998). Collaborative information retrieval : toward a social informatics view of ir interaction. J. Am. Soc. Inf. Sci., 49 (12), 1070–1080. Kazai, G., et Milic-Frayling, N. (2008). Trust, authority and popularity in social information retrieval. In Proceedings of the 17th ACM conference on information and knowledge management (pp. 1503–1504). New York, NY, USA : ACM. Klas, C.-P., et Fuhr, N. (2000). A new effective approach for categorizing Web documents. In Proceedings of the 22th bcs-irsg colloquium on ir research. Koolen, M., Kazai, G., et Craswell, N. (2009). Wikipedia pages as entry points for book search. In In proceedings of the second acm international conference on web search and data mining (wsdm 2009). ACM Press. Kopliku, A., Damak, F., Pinel-Sauvagnat, K., et Boughanem, M. (2011). Interest and Evaluation of Aggregated Search. In IEEE/WIC/ACM International Conference on Web Intelligence, Lyon. ACM. Korfiatis, N., Poulos, M., et Bokos, G. (2006). Evaluating authoritative sources using social networks : an insight from wikipedia. Online Information Review, 30 (3), 252-262. Kumar, N., et Carterette, B. (2013). Time based feedback and query expansion for twitter search. In Proceedings of the 35th european conference on advances in information retrieval (pp. 734–737). Berlin, Heidelberg : Springer-Verlag. Kwak, H., Lee, C., Park, H., et Moon, S. (2010). What is twitter, a social network or a news media ? In Proceedings of the 19th international conference on world wide web (pp. 591–600). New York, NY, USA : ACM. Lampos, V., et Cristianini, N. (2010). Tracking the flu pandemic by monitoring the social web. In Cognitive information processing (cip), 2010 2nd international 131CHAPITRE 7. CONCLUSION GÉNÉRALE workshop on (p. 411-416). Lee, C., Kwak, H., Park, H., et Moon, S. (2010). Finding influentials based on the temporal order of information adoption in twitter. In Www’10 : Proceedings of the 19th international conference on world wide web (pp. 1137–1138). New York, NY, USA : ACM. Li, R., Lei, K. H., Khadiwala, R., et Chang, K.-C. (2012). Tedas : A twitter-based event detection and analysis system. In Data engineering (icde), 2012 ieee 28th international conference on (p. 1273-1276). Li, Y., Luk, W. P. R., Ho, K. S. E., et Chung, F. L. K. (2007). Improving weak ad-hoc queries using wikipedia asexternal corpus. In Proceedings of the 30th annual international acm sigir conference on research and development in information retrieval (pp. 797–798). New York, NY, USA : ACM. Lin, Y., Li, Y., Xu, W., et Guo, J. (2012). Microblog retrieval based on term similarity graph. In Computer science and network technology (iccsnt), 2012 2nd international conference on (p. 1322-1325). Lv, Y., et Zhai, C. (2009). Positional language models for information retrieval. In Proceedings of the 32nd international acm sigir conference on research and development in information retrieval (pp. 299–306). New York, NY, USA : ACM. Macdonald, C., et Ounis, I. (2006). Voting for candidates : Adapting data fusion techniques for an expert search task. In Proceedings of the 15th acm international conference on information and knowledge management (pp. 387–396). New York, NY, USA : ACM. Magnani, M., Montesi, D., et Rossi, L. (2012). Conversation retrieval for microblogging sites. Inf. Retr., 15 (3-4), 354-372. Mandl, T. (2007). Recent developments in the evaluation of information retrieval systems : Moving towards diversity and practical relevance. Manning, C. D., Raghavan, P., et Schütze, H. (2008). Introduction to information retrieval. New York, NY, USA : Cambridge University Press. Massoudi, K., Tsagkias, E., Rijke, M. de, et Weerkamp, W. (2011). Incorporating query expansion and quality indicators in searching microblog posts. In Ecir 2011 : 33rd european conference on information retrieval (pp. 362–367). Dublin : Springer. Mayfield, J., et McNamee, P. (2003). Single n-gram stemming. In Proceedings of the 26th annual international ACM SIGIR conference on research and development in informaion retrieval (pp. 415–416). New York, NY, USA : ACM. McCreadie, R., et Macdonald, C. (2013). Relevance in microblogs : Enhancing tweet retrieval using hyperlinked documents. In Proceedings of the 10th conference on open research areas in information retrieval (pp. 189–196). Paris, France, France : Le centre de hautes études internationales d’informatique documen- 132CHAPITRE 7. CONCLUSION GÉNÉRALE taire. Metzler, D., et Cai, C. (2011). USC/ISI at TREC 2011 : Microblog Track (Notebook Version). In TREC’11 : 20th Text Retrieval Conference. National Institute of Standards and Technology (NIST). Missen, M. M. S., Boughanem, M., et Cabanac, G. (2009, juin). Challenges for Sentence Level Opinion Detection in Blogs (regular paper). In International Conference on Computer and Information Science (ICIS), Shanghai, China, 01/06/2009-03/06/2009 (pp. 347–351). IEEE Computer Society. Miyanishi, T., Seki, K., et Uehara, K. (2013). Combining recency and topicdependent temporal variation for microblog search. In Ecir (p. 331-343). Nagmoti, R., Teredesai, A., et De Cock, M. (2010). Ranking approaches for microblog search. In Proceedings of the 2010 ieee/wic/acm international conference on web intelligence and intelligent agent technology (pp. 153–157). Washington, USA : IEEE Computer Society. O’Connor, B., Balasubramanyan, R., Routledge, B. R., et Smith, N. A. (2010). From tweets to polls : Linking text sentiment to public opinion time series. In Icwsm. Okazaki, M., et Matsuo, Y. (2010). Semantic twitter : analyzing tweets for real-time event notification. In Proceedings of the 2008/2009 international conference on social software : recent trends and developments in social software (pp. 63–74). Berlin, Heidelberg : Springer-Verlag. Ounis, I., Lin, J., et Soboroff, I. (2011). Overview of the TREC-2011 Microblog Track. In TREC’11 : 20th Text Retrieval Conference. Ounis, I., Lin, J., et Soboroff, I. (2012). Overview of the TREC-2012 Microblog Track. In TREC’12 : 21th Text Retrieval Conference. Pang, B., et Lee, L. (2008). Opinion mining and sentiment analysis. Found. Trends Inf. Retr., 2 (1-2), 1–135. Peters, I., Kipp, M. E. I., Heck, T., Gwizdka, J., Lu, K., Neal, D. R., et al. (2011). Social tagging & folksonomies : Indexing, retrievingâĂę and beyond ? Proceedings of the American Society for Information Science and Technology, 48 (1), 1–4. Phelan, O., McCarthy, K., et Smyth, B. (2009). Using twitter to recommend realtime topical news. In Recsys’09 : Proceedings of the third acm conference on recommender systems (pp. 385–388). New York, NY, USA : ACM. Porter, M. (1980). An algorithm for suffix stripping. Program, 14 (3), 130-137. Ramage, D., Dumais, S. T., et Liebling, D. J. (2010). Characterizing microblogs with topic models. In ICWSM’10 (pp. -1–1). Ravikumar, S., Balakrishnan, R., et Kambhampati, S. (2012). Ranking tweets considering trust and relevance. In Proceedings of the ninth international workshop on information integration on the web (pp. 4 :1–4 :4). New York, NY, USA : 133CHAPITRE 7. CONCLUSION GÉNÉRALE ACM. Robertson, S. (2004). Understanding inverse document frequency : On theoretical arguments for idf. Journal of Documentation, 60 , 2004. Robertson, S., et Sparck Jones, K. (1988). Document retrieval systems. In P. Willett (Ed.), (pp. 143–160). London, UK, UK : Taylor Graham Publishing. Robertson, S., Walker, S., Jones, S., Hancock-Beaulieu, M., et Gatford, M. (1996). Okapi at trec-3. In (pp. 109–126). Rocchio, J. J. (1971). Relevance feedback in information retrieval. Sakaki, T., Okazaki, M., et Matsuo, Y. (2010). Earthquake shakes twitter users : real-time event detection by social sensors. In Proceedings of the 19th international conference on world wide web (pp. 851–860). New York, NY, USA : ACM. Salton, G. (1968). A comparison between manual and automatic indexing methods (Rapport technique). Ithaca, NY, USA. Salton, G., et Buckley, C. (1997). Readings in information retrieval. In K. Sparck Jones et P. Willett (Eds.), (pp. 355–364). San Francisco, CA, USA : Morgan Kaufmann Publishers Inc. Salton, G., Wong, A., et Yang, C. S. (1975). A vector space model for automatic indexing. Commun. ACM, 18 (11), 613–620. Sanderson, M. (2010). Test collection based evaluation of information retrieval systems. Foundations and Trends in Information Retrieval, 4 (4), 247-375. Sankaranarayanan, J., Samet, H., Teitler, B. E., Lieberman, M. D., et Sperling, J. (2009). Twitterstand : news in tweets. In Proceedings of the 17th acm sigspatial international conference on advances in geographic information systems (pp. 42–51). New York, NY, USA : ACM. Schmid, H. (1994). Probabilistic part-of-speech tagging using decision trees. In International conference on new methods in language processing (p. 44-49). Manchester, UK. Segaran, T., et Hammerbacher, J. (2009). Beautiful Data : The Stories Behind Elegant Data Solutions (Original éd.). O’Reilly Media. Paperback. Shamma, D. A., Kennedy, L., et Churchill, E. F. (2009). Tweet the debates : Understanding community annotation of uncollected sources. In Proceedings of the first sigmm workshop on social media (pp. 3–10). New York, NY, USA : ACM. Song, S., Li, Q., et Zheng, N. (2010). A spatio-temporal framework for related topic search in micro-blogging. In Proceedings of the 6th international conference on active media technology (pp. 63–73). Berlin, Heidelberg : Springer-Verlag. Student. (1908). The probable error of a mean. Biometrika, 6 (1), 1–25. Sturges, H. A. (1926). The Choice of a Class Interval. Journal of the American Statistical Association, 21 (153), 65–66. 134CHAPITRE 7. CONCLUSION GÉNÉRALE Teevan, J., Ramage, D., et Morris, M. R. (2011). #twittersearch : a comparison of microblog search and web search. In Wsdm’11 : Proceedings of the fourth acm international conference on web search and data mining (pp. 35–44). New York, NY, USA : ACM. Tumasjan, A., Sprenger, T. O., Sandner, P. G., et Welpe, I. M. (2010). Predicting elections with twitter : What 140 characters reveal about political sentiment. In Icwsm. Uysal, I., et Croft, W. B. (2011). User oriented tweet ranking : a filtering approach to microblogs. In C. Macdonald, I. Ounis, et I. Ruthven (Eds.), Cikm (p. 2261- 2264). ACM. Vechtomova, O., et Wang, Y. (2006). A study of the effect of term proximity on query expansion. J. Information Science, 32 (4), 324-333. Voorhees, E. M. (2006). Overview of the trec 2006. In TREC’06 : 6th Text Retrieval Conference. Vosecky, J., Leung, K. W.-T., et Ng, W. (2012). Searching for quality microblog posts : Filtering and ranking based on content analysis and implicit links. , 397-413. Weng, J., Lim, E.-P., Jiang, J., et He, Q. (2010). Twitterrank : finding topic-sensitive influential twitterers. In Wsdm’10 : Proceedings of the third acm international conference on web search and data mining (pp. 261–270). New York, NY, USA : ACM. Wilson, T., Wiebe, J., et Hoffmann, P. (2005). Recognizing contextual polarity in phrase-level sentiment analysis. In Proceedings of the conference on human language technology and empirical methods in natural language processing (pp. 347–354). Stroudsburg, PA, USA : Association for Computational Linguistics. Xu, S., Bao, S., Cao, Y., et Yu, Y. (2007). Using social annotations to improve language model for information retrieval. In Proceedings of the sixteenth acm conference on conference on information and knowledge management (pp. 1003–1006). New York, NY, USA : ACM. Yamaguchi, Y., Takahashi, T., Amagasa, T., et Kitagawa, H. (2010). Turank : Twitter user ranking based on user-tweet graph analysis. In Wise’10 (p. 240- 253). Yen, S.-J., et Lee, Y.-S. (2006). Under-sampling approaches for improving prediction of the minority class in an imbalanced dataset. In Intelligent control and automation (Vol. 344, p. 731-740). Springer Berlin / Heidelberg. Yuan, Q., Cong, G., et Thalmann, N. M. (2012). Enhancing naive bayes with various smoothing methods for short text classification. In Proceedings of the 21st international conference companion on world wide web (pp. 645–646). New York, NY, USA : ACM. Zhao, L., Zeng, Y., et Zhong, N. (2011). A weighted multi-factor algorithm for 135CHAPITRE 7. CONCLUSION GÉNÉRALE microblog search. In Proceedings of the 7th international conference on active media technology (pp. 153–161). Berlin, Heidelberg : Springer-Verlag. Zhongyuan, H., Xuwei, L., Muyun, Y., Hoaliang, Q., Sheng, L., et Tiejun, Z. (2012). HIT at Trec 2012 Microblog Track. In TREC’12 : 21th Text Retrieval Conference. National Institute of Standards and Technology (NIST). 136Résumé Notre travail se situe dans le contexte de recherche d’information (RI) sociale et s’inté- resse plus particulièrement à la recherche de microblogs. Les microblogs sont des messages de faible longueur à travers lesquels les utilisateurs publient des informations sur différents sujets : des opinions, des événements, des statuts... Les microblogs occupent aujourd’hui une part considérable de l’information générée sur le web. Dans Twitter, la plate-forme de microblogging la plus populaire, le nombre de microblogs par jour peut atteindre 500 millions. Les microblogs ont une forme différente des traditionnels documents. Leur taille est réduite par rapport aux blogs et aux articles publiés sur le web (140 caractères pour Twitter). De plus, les microblogs peuvent contenir une syntaxe spécifique telle que les #hashtags, les @citations ou bien encore des URLs. Les plateformes de microblogging représentent également un modèle de réseau social différent des autres réseaux sociaux. Les relations entre les utilisateurs ne sont pas forcément réciproques et les abonnements sont sans restrictions entre microbloggeurs. Les utilisateurs de plateformes de microblogging, outre la publication de microblogs, effectuent également des recherches. Les motivations de ces recherches sont diverses. Certaines sont similaires à la recherche sur le web (comme par exemple la recherche d’actualités), et d’autres sont spécifiques à la recherche de microblogs (comme par exemple la recherche temps réel ou d’informations sociales). Dans Twitter, 1,6 milliards de requêtes sont ainsi émises chaque jour. Les modèles de RI doivent s’adapter aux spécificités des microblogs : fraîcheur, aspect social et spécificités syntaxiques doivent ainsi être pris en compte. C’est dans ce contexte de recherche d’information dans les microblogs que se situent plus particulièrement nos travaux. Nous nous plaçons plus précisément dans le cadre de la recherche adhoc. L’objectif est de retrouver les microblogs répondant à un besoin d’information spécifié par un utilisateur. Nos travaux visent à améliorer la qualité des résultats de recherche d’information adhoc dans les microblogs. Nos contributions se situent à plusieurs niveaux : -Afin de déterminer exactement les facteurs limitant les performances des modèles de recherche classiques dans un corpus de microblogs, nous avons mené à une analyse de dé- faillance d’un modèle de recherche usuel. Nous avons sélectionné les microblogs pertinents mais non retrouvés par le modèle de recherche. Ensuite, nous avons identifié les facteurs empêchant leur restitution. Nous avons trouvé que le problème principal vient de la concision des microblogs. Cette concision engendre une correspondance limitée entre les termes des microblogs et les termes des requêtes, même s’ils sont sémantiquement similaires. -Afin de compenser l’impact de la concision des microblogs, nous avons proposé et testé plusieurs solutions. Nous avons proposé d’étendre les requêtes (i) en exploitant des ressources de type actualités, (ii) en utilisant la base lexicale Wordnet, (iii) en applicant des techniques de réinjection de pertinence de l’état de l’art qui ont souvent prouvé leur efficacité : Rocchio pour identifier les termes susceptibles de ramener la pertinence ainsi que pour la pondération des termes de la nouvelle requête, et le mécanisme naturel d’extensionCHAPITRE 7. CONCLUSION GÉNÉRALE de requêtes du modèle BM25. Dans Rocchio, nous avons testé différentes méthodes de calcul de poids de termes d’expansion. Nous avons enfin étendu les microblogs grâce aux liens (URLs) qu’ils contiennent. Nos expérimentations ont montré que l’emploi des URLs et l’expansion de requêtes sont primordiales pour la RI dans les microblogs. La plupart de ces expérimentations (expansion de requêtes et de microblogs) ont été réalisées en se basant sur le modèle vectoriel et sur le modèle probabiliste comme modèle de restitution. Ceci nous a permis de comparer les comportements des deux modèles sur les microblogs et avec les deux types d’expansion. De manière générale, nous avons trouvé que le modèle vectoriel est plus performant que modèle probabiliste au niveau de la sélection des microblogs pertinents (meilleur rappel). Cependant, le modèle probabiliste met plus en valeur les microblogs pertinents restitués par rapport à tous les microblogs restitués (meilleure précision). -Un deuxième volet de notre travail concerne l’étude des critères utilisés pour identifier les microblogs pertinents. Nous avons repris les critères souvent utilisés dans l’état de l’art (critères de contenu, critères sur l’importance des auteurs, critères sur les URLs) et nous les avons évalués. Nous avons réalisé cette analyse selon 3 axes. Dans le premier axe, nous avons analysé l’impact de la combinaison des scores des critères avec le score de pertinence du contenu, calculé avec un modèle de RI usuel. Dans le deuxième axe, nous avons étudié le comportement des critères dans les documents pertinents et les avons comparés avec leurs comportements dans les documents non pertinents. Dans le troisième axe, nous avons utilisé des techniques d’apprentissage ainsi que des algorithmes de sélection de critères qui peuvent être utiles en entrée de ces techniques d’apprentissages. De manière générale, nous avons montré que les critères en relation avec les URLs publiées dans les tweets sont les plus discriminants. Les critères liés aux auteurs ne reflètent pas la pertinence. -Afin de prendre en compte l’aspect temporel dans la restitution des microblogs pertinents vis-à-vis d’un besoin d’information, nous avons proposé trois méthodes qui intègrent le temps dans le calcul de la pertinence. Cette intégration du temps n’a cependant pas montré son intérêt dans nos méthodes. Pour réaliser nos expérimentations, nous nous sommes basés sur le corpus fourni par la campagne d’évaluation internationale TREC (Text Retrieval Conference) dans la tâche Microblogs des années 2011 et 2012. Nos différentes contributions ont également fait l’objet de participations aux trois tâches de Microblogs de TREC (2011, 2012 et 2013). Title Étude des facteurs de pertinence dans la recherche de microblogs. Abstract This work deals with the context of social information retrieval (IR), more particularly the retrieval of microblogs. Microblogs are messages of short length. They contain information on various topics :opinions, events, articles... Microblogs represent a significant part of the information generated on the Web. In the case of Twitter, the most popular platform, the number of microblogs can reach 500 million per day. Microblogs have a different form from traditional documents. Their length is reduced compared to traditional blogs and 3CHAPITRE 7. CONCLUSION GÉNÉRALE articles on the web (only 140 characters in the case of Twitter). Moreover, microblogs can have specific syntax such as #hashtags, @mentions or shortened URLs... Microblogging platforms are a social network model different from other social networks. Relationships between users are not necessarily reciprocal and subscriptions are unrestricted between microbloggers. Users of microblogging platforms do not only produce but they also search for information. The motivations of this research are diverse. Some are inspired from Web search (e.g. the search for news) and others are specific to the search for microblogs (e.g. real-time search or social information). In Twitter, 1.6 billion queries are issued every day. Though, the IR models must adapt to the specificities of microblogs : freshness, social aspect and syntactic characteristics must therefore be taken into account. The aim of our work is to improve the quality of the results of adhoc information retrieval in microblogs. Our contributions are at several levels : - In order to accurately determine the factors limiting the performance of conventional models of search in a corpus of microblogs, we conducted an analysis of failure of a conventional model search. We selected relevant microblogs. However, they are not found by the search pattern. Then, we identified the factors preventing their return. We found that the main problem is the shortness of microblogs. - To offset the impact of the shortness of microblogs, we proposed and tested several solutions : to extend the queries by (i) exploiting news articles, (ii) using the WordNet lexical database, (iii) applying techniques of relevance feedback of the state of art which often proved effective : Rocchio to identify terms likely to bring relevance and for weighting the terms of the new query, and the natural extension mechanism queries of the BM25 model. Using Rocchio, we tested different methods of calculating the weight of expansion terms. We finally extended microblogs thanks to the links (URLs) they contain. Our experiments have shown that the use of URLs and the expansion of the query are crucial for IR in microblogs. Most of these experiments (expansion of queries and microblogs) were performed on the basis of the vector model and the probabilistic model, as a model of restitution. This allowed us to compare the behavior of the two models on microblogs and with the two types of expansion. In general, we found that the Vector Space Model is more efficient than the probabilistic one in the selection of relevant microblogs (better recall). However, the probabilistic model puts more value on relevant microblogs returned over all returned microblogs (better precision). - A second part of our work is concerned with the study of the features used to identify relevant microblogs. We selected the features often used in the state of art (content features, features on the importance of authors, URLs features and quality features).Then, we evaluated them. We conducted this analysis in 3 axes. In the first axis, (i) we studied the behavior of the features in the relevant documents and compared them with their behavior in non-relevant documents. In the second axis, (ii) we analyzed the impact of the combination of the features scores with the content’s score, calculated with a model of conventional IR. In the third axis, (iii) we used learning techniques as well as algorithms of feature selection that may be useful as input to the learning techniques. In general, we have shown that the features related to URLs posted in tweets are the most discriminating. 4CHAPITRE 7. CONCLUSION GÉNÉRALE The features related to the authors do not reflect the relevance. - To take into account the temporal aspect when selecting relevant microblogs, we have proposed three methods that incorporate time in the calculation of relevance. However, this integration of time did not show any positive impact in our methods. To perform our experiments, we used the corpus provided by TREC (Text Retrieval Conference) international survey in the task Microblogs for the years 2011 and 2012. Our various contributions have also been the subject of participations for the three tasks of Microblogs TREC (2011, 2012 and 2013). ISBN : t t t t t t t t t t t t t 5 Evaluation de la sˆuret´e de syst`emes dynamiques hybrides complexes. Application aux syst`emes hydrauliques Perrine Broy To cite this version: Perrine Broy. Evaluation de la sˆuret´e de syst`emes dynamiques hybrides complexes. Application aux syst`emes hydrauliques. Modeling and Simulation. Universit´e de Technologie de Troyes, 2014. French. . HAL Id: tel-01006308 https://tel.archives-ouvertes.fr/tel-01006308 Submitted on 15 Jun 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.THESE pour l’obtention du grade de DOCTEUR de l’UNIVERSITE DE TECHNOLOGIE DE TROYES Spécialité : OPTIMISATION ET SURETE DES SYSTEMES présentée et soutenue par Perrine BROY le 12 mars 2014 Evaluation de la sûreté de systèmes dynamiques hybrides complexes. Application aux systèmes hydrauliques JURY M. F. PÉRÈS PROFESSEUR DES UNIVERSITES Président M. C. BERENGUER PROFESSEUR DES UNIVERSITES Directeur de thèse M. N. BRINZEI MAITRE DE CONFERENCES Examinateur M. M. CEPIN PROFESSOR Rapporteur M. H. CHRAIBI INGENIEUR CHERCHEUR Directeur de thèse M. Y. DIJOUX MAITRE DE CONFERENCES Examinateur M. J.-M. THIRIET PROFESSEUR DES UNIVERSITES Rapporteur Personnalité invitée M. R. DONAT INGENIEUR CHERCHEUR 2Remerciements Faire une thèse CIFRE, c’est bénéficier d’un double encadrement, académique et industriel. Mais lorsque chacun de ces encadrements est assuré par deux personnes, toutes compétentes et sympathiques, cela fait beaucoup de remerciements à rédiger, et personne ne m’a dit si j’avais le droit de quadrupler le nombre de pages de remerciements ou d’occurrences du mot « merci »... Mes premiers remerciements vont donc à mon « comité encadrant » constitué de Christophe Bérenguer, Yann Dijoux, Hassane Chraïbi et Roland Donat. Christophe, merci d’avoir accepté la direction de cette thèse, merci pour ta disponibilité sans faille et pour ton suivi malgré l’éloignement. Yann, merci de m’avoir aidée lors des calculs analytiques douloureux, mais aussi pour la découverte d’un bon nombre de restaurants troyens ! Hassane, merci pour ta patience et ta gentillesse ; l’initiation au fonctionnement des évacuateurs de crues ou à la structure de PyCATSHOO n’était pas une affaire gagnée d’avance. Roland, merci de m’avoir guidée et motivée si souvent ! Merci à vous quatre, j’ai beaucoup appris à vos côtés et cela a été un réel plaisir de travailler avec vous ! Je remercie l’ensemble des membres du jury pour leur participation à ma soutenance et pour l’intérêt porté à mes travaux de recherche. Je remercie tout particulièrement François Pérès d’avoir endossé le rôle de président du jury. Je tiens à exprimer ma reconnaissance à Marko Cepin et Jean-Marc Thiriet pour m’avoir fait l’honneur d’être rapporteurs de ces travaux et pour leurs questions constructives. Je tiens également à remercier Nicolae Brinzei pour sa minutieuse relecture. Alors que j’étais encore élève-ingénieur, j’ai longtemps muri ce projet de thèse avant de m’y lancer. Je voudrai remercier Frédéric et Anick de m’avoir encouragée à partir dans cette voie qu’est la recherche, et Hermann, Marine, Fabiano, Fatiha, Paul, Geoffrey, Lise et William de m’avoir fait part de leurs expériences de doctorants lors de discussions enrichissantes. Grâce à vous, j’ai construit ce projet de thèse en connaissance de cause. Une fois ma décision prise, c’est une autre équipe qui m’a permis de concrétiser ce projet. Je tiens à remercier l’équipe hiérarchique du département MRI d’avoir initié et prolongé cette thèse mais aussi de m’avoir permis de faire de belles conférences. Quitte à être au sein du département MRI, je vais continuer en remerciant les chercheurs qui le constituent pour leur accueil, leurs conseils et leur sympathie. Je ne me risquerai pas à 34 vous nommer pour n’oublier personne, mais j’ai été heureuse de vous côtoyer le temps d’un café, à la cantine ou dans les vestiaires de la gym. La bonne humeur ambiante a égayé mes travaux et je vous remercie pour vos encouragements tout au long de ces trois années. Mes remerciement vont devenir encore plus locaux avec une pensée à tous ceux qui ont eu la « chance » de partager mon bureau : Linh, Carine, Pierre-Yves, Antonello, Stéphanie, Nicolas, Martin, Tazio : merci d’avoir supporté mes bavardages et mes bougonnements ! Je tiens à remercier les membres du LM2S pour leur acceuil chaleureux à chacune de mes venues troyennes. En parallèle de ces trois ans de recherche, j’ai eu l’occasion de progresser en course à pieds, danse et autres renforcements musculaires. Mention spéciale à tous les coachs qui m’ont permis de me défouler et de décompresser ! Merci à Jane-Marie, bonne fée viroflaysienne, de m’avoir menée à bon port chaque matin ! Bon courage à mes compatriotes de thèse, vous verrez, on finit toujours par y arriver, la preuve ! Mes derniers remerciements vont à ma famille, ma belle-famille et à mes proches. Il est temps de vous remercier d’avoir accepté soit de me voir si rarement, soit de me voir squatter la table ronde pour de longues séances de débuggage et rédaction. Même le chat Peluche en avait pris son parti et m’encourageait par quelques ronronnements... Je ne serai pas là où j’en suis sans mes parents : merci pour votre amour, votre confiance sans faille, votre relecture de ce manuscrit. Merci aussi à toi Maxime ! Tout ceci ne serait rien sans Gaël. Tu m’as suivie au bout du monde lors des conférences, tu m’as épousée avant même de savoir à quoi ressemblait une troisième année de thèse, tu as toujours répondu placidement « oui... » à chaque fois que je te demandais « Est-ce que tu crois que je vais y arriver ? » dans mes périodes de doute, tu m’as littéralement entretenue pendant le mois de décembre, tu as scrupuleusement relu ce manuscrit et tu as géré mes pots de thèse comme un roi... Pour tout ça, le nom « Hesters » aurait bien mérité de figurer sur la première page de ce manuscrit. A défaut, je tenais à ce que les derniers mots de cette page soit pour toi... Mille mercis donc.Table des matières Introduction générale 19 I De la problématique industrielle aux enjeux méthodologiques 23 1 Position du problème et motivation industrielle 25 1.1 Problématique industrielle : les évacuateurs de crues et l’estimation de leur sûreté de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . 25 1.1.1 L’hydroélectricité en France . . . . . . . . . . . . . . . . . . . . 26 1.1.2 Rôle des évacuateurs de crues . . . . . . . . . . . . . . . . . . . 26 1.1.3 Composition d’un évacuateur de crues . . . . . . . . . . . . . . 27 1.1.4 La sûreté de fonctionnement dans l’hydraulique . . . . . . . . . 29 1.1.5 Quelques notions d’hydrologie et d’hydraulique . . . . . . . . . 30 1.1.5.1 Origine des hydrogrammes des crues . . . . . . . . . . 30 1.1.5.2 Cotes de la retenue d’un barrage . . . . . . . . . . . . 31 1.2 Enjeux industriels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 1.2.1 La méthode GASPART et l’outil associé . . . . . . . . . . . . . 32 1.2.2 Réalisations et limites de l’outil GASPART . . . . . . . . . . . . 32 1.2.3 Objectifs de ces travaux . . . . . . . . . . . . . . . . . . . . . . 33 1.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 2 Enjeux méthodologiques 37 2.1 Principales notions de sûreté de fonctionnement et introduction à la fiabilité dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 2.1.1 Principales notions de sûreté de fonctionnement . . . . . . . . . 37 5TABLE DES MATIÈRES 6 2.1.1.1 Grandeurs caractéristiques de la sûreté de fonctionnement 37 2.1.1.2 Durées fondamentales en sûreté de fonctionnement . . 39 2.1.1.3 Taux de défaillance et de réparation . . . . . . . . . . 40 2.1.1.4 Relations fondamentales . . . . . . . . . . . . . . . . . 40 2.1.1.5 Méthodes classiques utilisées en sûreté de fonctionnement 40 2.1.1.6 Mesures d’importance . . . . . . . . . . . . . . . . . . 42 2.1.2 Introduction à la fiabilité dynamique . . . . . . . . . . . . . . . 43 2.1.2.1 Définition d’un système dynamique hybride . . . . . . 43 2.1.2.2 Définition de la fiabilité dynamique . . . . . . . . . . . 44 2.2 État de l’art en fiabilité dynamique . . . . . . . . . . . . . . . . . . . . 45 2.2.1 Méthodes de description . . . . . . . . . . . . . . . . . . . . . . 46 2.2.1.1 Les méthodes analytiques et semi-analytiques . . . . . 47 2.2.1.2 Les méthodes reposant sur les arbres d’événements dynamiques . . . . . . . . . . . . . . . . . . . . . . . . . 47 2.2.1.3 Les méthodes basées sur un formalisme graphique . . . 52 2.2.1.4 Autres méthodes de description . . . . . . . . . . . . . 57 2.2.1.5 Discussion et conclusion . . . . . . . . . . . . . . . . . 58 2.2.2 Méthodes de quantification . . . . . . . . . . . . . . . . . . . . . 58 2.2.2.1 Les méthodes de discrétisation . . . . . . . . . . . . . 58 2.2.2.2 Les méthodes de simulation de Monte Carlo . . . . . . 60 2.2.2.3 Discussion et conclusion . . . . . . . . . . . . . . . . . 62 2.2.3 Place de l’information temporelle dans les résultats de fiabilité dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 2.3 Conclusion : choix d’une méthodologie et contributions de la thèse . . . 63 3 Outils de modélisation pour la sûreté de fonctionnement des évacuateurs de crues 65 3.1 Les Processus Markoviens Déterministes par Morceaux (PDMP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.1.1 Quelques processus utilisés en fiabilité . . . . . . . . . . . . . . 66 3.1.1.1 Chaînes de Markov . . . . . . . . . . . . . . . . . . . . 66 3.1.1.2 Processus markoviens de sauts . . . . . . . . . . . . . 677 TABLE DES MATIÈRES 3.1.1.3 Processus de renouvellement . . . . . . . . . . . . . . . 67 3.1.1.4 Processus de renouvellement markovien . . . . . . . . 67 3.1.1.5 Processus semi-markovien . . . . . . . . . . . . . . . . 68 3.1.2 Les Processus Markoviens Déterministes par Morceaux (PDMP) 69 3.1.2.1 Définition de Cocozza et al. . . . . . . . . . . . . . . . 69 3.1.2.2 Définition de Davis . . . . . . . . . . . . . . . . . . . . 70 3.1.3 Les PDMP communicants (CPDMP) . . . . . . . . . . . . . . . 71 3.2 Automates Stochastiques Hybrides (ASH) . . . . . . . . . . . . . . . . 72 3.2.1 De la théorie des automates aux ASH . . . . . . . . . . . . . . . 72 3.2.2 Composition et synchronisation des ASH . . . . . . . . . . . . . 75 3.3 L’outil PyCATSHOO . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 3.3.1 Le logiciel PyCATSHOO . . . . . . . . . . . . . . . . . . . . . . 76 3.3.2 Construction d’une base de connaissances . . . . . . . . . . . . 76 3.3.2.1 Les différents types de transitions . . . . . . . . . . . . 78 3.3.2.2 Contrôle de la variable continue . . . . . . . . . . . . . 79 3.3.3 Élaboration du modèle . . . . . . . . . . . . . . . . . . . . . . . 80 3.4 Machines à vecteurs support (SVM) . . . . . . . . . . . . . . . . . . . . 81 3.4.1 Problématique et notations . . . . . . . . . . . . . . . . . . . . 81 3.4.1.1 Cas linéairement séparable . . . . . . . . . . . . . . . . 82 3.4.1.2 Cas non séparable . . . . . . . . . . . . . . . . . . . . 83 3.4.2 La librairie libsvm . . . . . . . . . . . . . . . . . . . . . . . . . 84 II Prise en compte de l’information temporelle de la modé- lisation à la synthèse d’indicateurs fiabilistes 85 4 Description et modélisation des évacuateurs de crues 87 4.1 Fonctionnement des évacuateurs de crues . . . . . . . . . . . . . . . . . 88 4.1.1 Prise en compte du temps dans le déroulement d’une crue . . . 88 4.1.2 Caractérisation d’une crue . . . . . . . . . . . . . . . . . . . . . 89 4.1.2.1 Fréquence d’une crue . . . . . . . . . . . . . . . . . . . 89 4.1.2.2 Forme et débit d’une crue . . . . . . . . . . . . . . . . 89TABLE DES MATIÈRES 8 4.1.2.3 Durée de la crue et délais de détection et d’établissement 89 4.1.3 Fonctionnement de deux évacuateurs de crues . . . . . . . . . . 90 4.1.4 Rôle de l’opérateur . . . . . . . . . . . . . . . . . . . . . . . . . 90 4.1.5 Données de fiabilité . . . . . . . . . . . . . . . . . . . . . . . . . 91 4.1.6 Hypothèses de modélisation de la méthode GASPART et des travaux de thèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.2 Modélisation des évacuateurs de crues . . . . . . . . . . . . . . . . . . . 93 4.2.1 Modélisation d’un cas-test simple . . . . . . . . . . . . . . . . . 94 4.2.1.1 Évolution du niveau dans le réservoir . . . . . . . . . . 94 4.2.1.2 Modélisation par les Automates Stochastiques Hybrides 100 4.2.1.3 Modèle global du système simple . . . . . . . . . . . . 105 4.2.1.4 Chronologie d’une histoire . . . . . . . . . . . . . . . . 106 4.2.2 Modélisation du problème industriel . . . . . . . . . . . . . . . . 107 4.2.2.1 Modélisation d’un objet manoeuvré . . . . . . . . . . . 107 4.2.2.2 Modélisation d’un objet alimenté . . . . . . . . . . . . 108 4.2.2.3 Modélisation d’un objet réparable . . . . . . . . . . . . 110 4.2.2.4 Modélisation d’un opérateur . . . . . . . . . . . . . . . 112 4.2.2.5 Modélisation d’une vanne . . . . . . . . . . . . . . . . 112 4.2.2.6 Représentation des deux évacuateurs de crues . . . . . 114 4.2.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 5 Analyse des histoires et quantification probabiliste de la fiabilité 117 5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117 5.1.1 Objectifs de la quantification . . . . . . . . . . . . . . . . . . . . 117 5.1.2 Démarche : de KB3 à PyCATSHOO . . . . . . . . . . . . . . . 118 5.1.3 Formalisation des résultats : séquences, histoires et vecteurs de durées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120 5.1.3.1 Définition d’une séquence . . . . . . . . . . . . . . . . 120 5.1.3.2 Définition d’une histoire . . . . . . . . . . . . . . . . . 121 5.1.3.3 Définition d’un vecteur de durées de fonctionnement sans défaillance . . . . . . . . . . . . . . . . . . . . . . 122 5.1.4 Description des systèmes étudiés . . . . . . . . . . . . . . . . . . 1249 TABLE DES MATIÈRES 5.2 Probabilité d’occurrence de l’événement redouté . . . . . . . . . . . . . 126 5.2.1 Calcul analytique . . . . . . . . . . . . . . . . . . . . . . . . . . 127 5.2.1.1 Évolution du niveau dans la retenue . . . . . . . . . . 127 5.2.1.2 Instant d’atteinte du seuil de sûreté en fonction du temps de défaillance . . . . . . . . . . . . . . . . . . . . . . . 129 5.2.1.3 Temps de défaillance en fonction de l’instant d’atteinte du seuil de sûreté . . . . . . . . . . . . . . . . . . . . . 129 5.2.1.4 Expression de PER(t) . . . . . . . . . . . . . . . . . . 129 5.2.2 Estimation par simulation de Monte Carlo sur le modèle ASH . 130 5.2.2.1 Évolution du niveau . . . . . . . . . . . . . . . . . . . 130 5.2.2.2 Dépendance de l’instant de panne et de l’instant d’atteinte du seuil de sûreté . . . . . . . . . . . . . . . . . 130 5.2.2.3 Évolution de la probabilité PER . . . . . . . . . . . . . 130 5.2.3 Comparaison des résultats analytiques et du produit des simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 5.2.3.1 Évolution du niveau . . . . . . . . . . . . . . . . . . . 131 5.2.3.2 Dépendance de l’instant de panne et de l’instant de l’événement redouté . . . . . . . . . . . . . . . . . . . 132 5.2.3.3 Évolution de la probabilité PER . . . . . . . . . . . . . 132 5.2.4 Vers un cas-test plus proche de la réalité : allure et interprétation de courbes de niveau h et de PER . . . . . . . . . . . . . . . . . 133 5.2.4.1 Vers une modélisation réaliste des débits entrant et sortant133 5.2.4.2 Vers des lois de probabilités variées : introduction de la loi de Weibull . . . . . . . . . . . . . . . . . . . . . . . 136 5.2.4.3 Vers un système de taille réaliste . . . . . . . . . . . . 138 5.3 Coupes équivalentes prépondérantes . . . . . . . . . . . . . . . . . . . 141 5.3.1 Méthodologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 5.3.2 Applications aux exemples « fil rouge » . . . . . . . . . . . . . . 144 5.3.2.1 Système composé d’une alimentation et deux vannes . 144 5.3.2.2 Système composé d’une alimentation et six vannes . . 144 5.4 Classification des histoires . . . . . . . . . . . . . . . . . . . . . . . . . 145 5.4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 5.4.2 Détermination analytique de la frontière . . . . . . . . . . . . . 146TABLE DES MATIÈRES 10 5.4.2.1 Réservoir vidangé par une vanne : calcul analytique de l’instant tsep . . . . . . . . . . . . . . . . . . . . . . . . 146 5.4.2.2 Réservoir vidangé par deux vannes : calcul analytique de la frontière u sep 2 (u1) . . . . . . . . . . . . . . . . . . 147 5.4.3 Classification des histoires simulées . . . . . . . . . . . . . . . . 147 5.4.3.1 Cas d’un composant défaillant . . . . . . . . . . . . . . 148 5.4.3.2 Cas de plusieurs composants . . . . . . . . . . . . . . . 148 5.4.4 Comparaison des résultats . . . . . . . . . . . . . . . . . . . . . 150 5.4.4.1 Système simple à une vanne . . . . . . . . . . . . . . . 150 5.4.4.2 Système simple à deux vannes . . . . . . . . . . . . . . 150 5.4.5 Application aux exemples « fil rouge » et conclusion . . . . . . 152 5.5 Conclusion et perspectives . . . . . . . . . . . . . . . . . . . . . . . . . 153 6 Importance dynamique d’un composant 155 6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156 6.1.1 Définition d’une mesure d’importance dynamique . . . . . . . . 156 6.1.2 Systèmes étudiés . . . . . . . . . . . . . . . . . . . . . . . . . . 157 6.2 Calcul analytique de l’importance dynamique pour le système à deux composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158 6.2.1 Expression littérale de l’importance dynamique de Birnbaum pour l’alimentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159 6.2.2 Expression littérale de l’importance dynamique de Birnbaum pour la vanne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 6.3 Estimation à partir des histoires simulées . . . . . . . . . . . . . . . . 162 6.4 Résultats : comparaison et interprétation, pour un système à deux composants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163 6.4.1 Importance au début de la mission du composant . . . . . . . . 163 6.4.2 Importance à la fin de la mission du composant . . . . . . . . . 165 6.4.3 Allure de la courbe . . . . . . . . . . . . . . . . . . . . . . . . . 165 6.4.4 Comparaison avec l’importance dynamique obtenue à partir des histoires simulées . . . . . . . . . . . . . . . . . . . . . . . . . . 166 6.4.5 Application aux systèmes « Fil Rouge » . . . . . . . . . . . . . . 169 6.4.5.1 Système composé d’une alimentation et de deux vannes 169 6.4.5.2 Système composé d’une alimentation et de six vannes . 17011 TABLE DES MATIÈRES Conclusion générale et perspectives 175 A Déroulement de l’algorithme de PyCATSHOO 181 B Démonstrations du chapitre 5 185 B.1 Instant d’atteinte du seuil de sûreté en fonction du temps de défaillance 185 B.2 Expression de PER(t) . . . . . . . . . . . . . . . . . . . . . . . . . . . 186 B.3 Réservoir vidangé par deux vannes : calcul analytique de la frontière u sep 2 (u1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187 C Démonstrations du chapitre 6 189 C.1 Démonstration de la proposition 6.2 . . . . . . . . . . . . . . . . . . . . 189 C.2 Expression littérale de l’importance dynamique de Birnbaum pour l’alimentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 189 C.2.1 Calcul de P(ER/Talim ≤ t) . . . . . . . . . . . . . . . . . . . . . 189 C.2.2 Calcul de P(ER/Talim > t) . . . . . . . . . . . . . . . . . . . . . 190 C.3 Expression littérale de l’importance dynamique de Birnbaum pour la vanne191 C.3.1 Calcul de P(ER/TV ≤ t) . . . . . . . . . . . . . . . . . . . . . . 191 C.3.2 Calcul de P(ER/TV > t) . . . . . . . . . . . . . . . . . . . . . . 192 Bibliographie 194TABLE DES MATIÈRES 12Table des figures 1.1 Photographie d’un évacuateur de crues . . . . . . . . . . . . . . . . . . 27 1.2 Représentation schématique d’un évacuateur de crues . . . . . . . . . . 28 1.3 Exemple d’hydrogramme de crue . . . . . . . . . . . . . . . . . . . . . 31 2.1 Durées fondamentales en sûreté de fonctionnement . . . . . . . . . . . 39 2.2 Diagramme de fiabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.3 Arbre de défaillances . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 2.4 Exemple d’arbre d’événements, inspiré du domaine nucléaire . . . . . . 42 2.5 Exemple de DDET . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 2.6 Extrait du modèle DFM d’un benchmark. . . . . . . . . . . . . . . . . . 50 2.7 Franchissement d’une transition dans un RdP . . . . . . . . . . . . . . 52 2.8 Exemple de réseau bayésien . . . . . . . . . . . . . . . . . . . . . . . . 54 2.9 Exemple de réseau bayésien dynamique . . . . . . . . . . . . . . . . . . 55 3.1 Graphe de Markov représentant une chaîne de Markov . . . . . . . . . 66 3.2 Construction d’un PDMP à partir de processus stochastiques classiques 68 3.3 Exemple de trajectoire d’un PDMP . . . . . . . . . . . . . . . . . . . . 70 3.4 Exemple d’automate fini déterministe . . . . . . . . . . . . . . . . . . . 73 3.5 Exemple d’automate hybride . . . . . . . . . . . . . . . . . . . . . . . . 74 3.6 Exemple d’automate stochastique hybride . . . . . . . . . . . . . . . . 75 3.7 Représentation des quatre types de transitions. . . . . . . . . . . . . . . 77 3.8 Exemple d’automate utilisant les quatre types de transitions. . . . . . . 78 3.9 Objet PyCATSHOO décrit par trois automates . . . . . . . . . . . . . 79 3.10 Construction d’un SVM . . . . . . . . . . . . . . . . . . . . . . . . . . 81 13TABLE DES FIGURES 14 3.11 Choix du meilleur séparateur . . . . . . . . . . . . . . . . . . . . . . . . 83 3.12 Projection des données dans un espace où elles sont linéairement séparables. 84 4.1 Chronologie d’une crue . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.2 Représentation schématique d’une vanne de surface . . . . . . . . . . . 90 4.3 Représentation schématique d’une vanne de surface associée à un clapet 90 4.4 Illustration du cas-test simple . . . . . . . . . . . . . . . . . . . . . . . 94 4.5 Évolution du débit entrant pour une crue en forme d’échelon . . . . . . 95 4.6 Évolution du débit sortant pour une débitance constante, en fonction de l’instant de panne u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.7 Évolution du débit entrant pour un hydrogramme de crue . . . . . . . 97 4.8 Évolution du débit sortant pour une débitance réaliste, en fonction de l’instant de panne u . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 4.9 Automate de la crue . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 4.10 Automate d’une vanne . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 4.11 Automate du réservoir . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 4.12 Modèle global du système simple . . . . . . . . . . . . . . . . . . . . . 106 4.13 Automate d’un objet manoeuvré . . . . . . . . . . . . . . . . . . . . . . 108 4.14 Automate d’un objet alimenté . . . . . . . . . . . . . . . . . . . . . . . 109 4.15 Automate d’un objet réparable . . . . . . . . . . . . . . . . . . . . . . 110 4.16 Automate d’un opérateur . . . . . . . . . . . . . . . . . . . . . . . . . . 111 4.17 Automate Stochastique Hybride d’une vanne . . . . . . . . . . . . . . . 113 5.1 Événement redouté en fonction des instants de défaillance de deux vannes118 5.2 Probabilité de l’événement redouté en fonction de la frontière et des densités de probabilités des instants de défaillance de deux composants 119 5.3 Crue en forme d’échelon et débitance constante : évolution du niveau dans le réservoir . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 5.4 Dépendance de l’instant de défaillance de la vanne et de l’instant de l’événement redouté . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132 5.5 Évolution de la probabilité d’occurrence de l’événement redouté . . . . 133 5.6 Influence de la levée des hypothèses simplificatrices sur l’évolution du niveau dans le réservoir, pour quatre scénarios de défaillance . . . . . . 13415 TABLE DES FIGURES 5.7 Influence de la levée des hypothèses simplificatrices sur la probabilité d’occurrence de l’événement redouté . . . . . . . . . . . . . . . . . . . . 136 5.8 Influence de la loi de Weibull sur l’évolution de la probabilité d’occurrence de l’événement redouté . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 5.9 Répartition des instants de défaillance pour la loi de Weibull et la loi exponentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 5.10 Influence de l’introduction d’une seconde vanne sur l’évolution de la probabilité d’occurrence de l’événement redouté . . . . . . . . . . . . . . . 139 5.11 Évolution de la probabilité d’occurrence de l’événement redouté pour les deux systèmes « Fil Rouge » . . . . . . . . . . . . . . . . . . . . . . . . 140 5.12 Précision et taux de faux négatifs en fonction de la taille de l’échantillon d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151 5.13 Séparation des histoires en fonction des TTF de deux vannes . . . . . . 151 6.1 Calcul analytique de l’importance dynamique pour l’alimentation et la vanne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 6.2 Importance dynamique obtenue à partir des simulations, pour l’alimentation et pour la vanne . . . . . . . . . . . . . . . . . . . . . . . . . . . 167 6.3 Comparaison des importances dynamiques de l’alimentation et de la vanne obtenues par calcul analytique et à partir des simulations . . . . 168 6.4 Importance dynamique des composants du système FR1 . . . . . . . . 169 6.5 Importance dynamique de chaque composant du système FR2, obtenue à partir des simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 6.6 Importance dynamique de chaque groupe de composants du système FR2 obtenue à partir des simulations . . . . . . . . . . . . . . . . . . . . . . 172Principaux acronymes 16Principaux acronymes IB Indicateur de Birnbaum TFN Taux de Faux Négatifs SSA Seuil de Sûreté Atteint ARSHY Analyse des Risques des Systèmes HYdrauliques ASH Automate Stochastique Hybride BdC Base de Connaissances CCl Contrôle-Commande local CPDMP Communicating PDMP EdC Évacuateur de Crues EPS Étude Probabiliste de Sûreté ER Événement Redouté FR Fil Rouge GASPART GAted Spillway System - Probabilistic Assessment of Reliability Tool MRI Management des Risques Industriels PDMP Piecewise Deterministic Markov Process PyCATSHOO PythoniC AuTomates Stochastiques Hybrides Orientés Objets RMB Receiving Message Box SDH Système Dynamique Hybride SMB Sending Message Box SVM Support Vector Machine TTF Time To Failure VTTF Vecteur de TTF 17Principaux acronymes 18Introduction générale L’utilisation d’eau par des aménagements hydrauliques fournit une énergie propre et renouvelable. L’hydroélectricité représente la deuxième source de production d’électricité en France en 2012. EDF est exploitant de 435 centrales hydroélectriques. A ce titre, il participe au programme de rénovation et de modernisation du parc hydraulique. Afin d’améliorer la sûreté des ouvrages hydrauliques, des études de danger sont réalisées en confrontant leur dimensionnement à des crues exceptionnelles ou au dysfonctionnement des évacuateurs de crues vannés. En cas de crue, il est nécessaire d’évacuer le volume d’eau déversé en amont du dispositif afin de maintenir le plan d’eau de la retenue sous un niveau acceptable. Les évacuateurs de crues (EdC) sont les structures dédiées au déversement des eaux en excédent. Pour cela, les EdC vannés requièrent la mobilisation de vannes. L’événement redouté (ER) est réalisé lorsqu’un seuil de sûreté est atteint par le niveau de la retenue. L’étude de la sûreté des EdC se traduit par des indications sur la fiabilité de ces dispositifs. Par exemple, les EdC sont hiérarchisés vis-à-vis du risque lié à l’ER, ou des leviers d’amélioration de la sûreté sont proposés, tels que des stratégies de maintenance. Au sein du département Management des Risques Industriels (MRI) d’EDF R&D, le projet ARSHY (Analyse des Risques des Systèmes HYdrauliques) développe des méthodologies d’analyse de risque systèmes pour le parc hydraulique d’EDF. En particulier, la méthode d’évaluation de la fiabilité des EdC vannés est consolidée par la prise en compte du facteur temps. La dynamique du processus de crue et de son évacuation est telle que l’évolution physique et déterministe du niveau d’eau dans la retenue est intimement liée aux événements discrets aléatoires qui vont affecter l’ouverture des vannes. En ce sens, les EdC sont des Systèmes Dynamiques Hybrides (SDH) et rentrent dans le cadre de la fiabilité dynamique. La prise en compte de l’information temporelle est corrélée à l’introduction d’une variable déterministe continue dans le processus stochastique. A travers les EdC, ce sont donc les SDH qui sont concernés par la problématique : comment estimer la sûreté des EdC ? Nous proposons une méthodologie qui accompagne l’utilisateur tout au long de la modélisation et de l’exploitation des résultats, pour des SDH de taille industrielle. Les EdC constituent un support et une illustration pour ces travaux mais la méthodologie proposée est adaptable au cadre général de la fiabilité dynamique. 19Introduction générale 20 En fiabilité dynamique, une classe de processus est généralement utilisée pour modé- liser les SDH. Il s’agit des Processus de Markov Déterministes par Morceaux (PDMP). Cette modélisation prend en compte la dynamique induite par la dépendance au temps du fonctionnement de ce type de système. En accord avec ce cadre théorique, les Automates Stochastiques Hybrides (ASH) distribués présentent le double avantage d’un formalisme riche et d’une représentation graphique intuitive et flexible pour décrire des systèmes complexes. La complexité des EdC est due au nombre élevé de composants, aux interactions composant-composant et composant-environnement, et à l’évolution simultanée de l’état du système et de la variable déterministe continue en fonction de l’état des composants. Les ASH sont ensuite associés à la simulation de Monte Carlo pour la quantification probabiliste de la fiabilité. La méthode d’évaluation de la fiabilité des EdC vannés, nommée GASPART (de l’anglais Gated Spillway System - Probabilistic Assessment of Reliability Tool) est associée à un outil du même nom. Cet outil est développé à partir d’un langage initialement conçu pour traiter les systèmes à états discrets. La prise en compte des phénomènes continus et transitoires n’est possible qu’au prix d’hypothèses de modélisation conservatives et en adoptant des méthodes simplifiées de résolution des équations différentielles. Par ailleurs, GASPART possède deux modules de quantification distincts. La conception d’un nouvel outil nommé PyCATSHOO écarte les limites identifiées de l’outil GASPART. En étant dédié à l’évaluation de la fiabilité des SDH dès sa conception, PyCATSHOO lève les hypothèses de modélisation conservatives et propose une démarche capable de caractériser les résultats en conservant l’information temporelle. Il est important d’identifier et de quantifier l’intérêt de prendre en compte de nouvelles informations temporelles dans l’évaluation des performances fiabilistes. En effet, la débitance des vannes dépend de la hauteur de leur ouverture. La position d’une vanne dépend elle-même de la progression du processus d’ouverture, interrompue ou non par la défaillance d’un composant nécessaire à ce processus. Une défaillance précoce entraîne une débitance faible susceptible de provoquer l’événement redouté. Contrairement à un problème de fiabilité classique, l’état du système n’est pas une fonction de l’état de ses n composants. Ce sont les dates de défaillance en fonctionnement (T1, ..., Tn) qui défi- nissent l’occurrence ou non de l’événement redouté pour le système. Cette dépendance est effective par le biais d’une fonction f(T1, ..., Tn) = s où s ∈ {ER, ER} désigne l’état du système (occurrence ou non de l’événement redouté ER). Ainsi, pour un même ensemble de composants en panne, le système peut être en panne ou en marche, selon les dates de panne des composants. Certaines notions de sûreté comme celles de coupes ou de mesures d’importance sont à redéfinir. Ces notions doivent être adaptées aux SDH dans l’objectif d’identifier la fonction f et de caractériser les histoires de défaillances. Cette démarche est rarement associée à la fiabilité dynamique, aussi les indicateurs proposés dans cette thèse sont-ils innovants. Les différentes étapes de cette méthodologie, exposées ci-dessous, permettent la modélisation du système puis l’exploitation des résultats obtenus. 1. La compréhension du fonctionnement du système implique la décomposition des21 Introduction générale sous-systèmes, l’identification des composants similaires par classes et la définition d’hypothèses de modélisation. 2. Chaque classe de composants est décrite par un automate dont les états sont les différentes phases de son fonctionnement. Les transitions entre ces états sont caractérisées par un ensemble de conditions. 3. Une Base de Connaissances (BdC) répertorie les classes ainsi définies. Les boîtes à messages destinataires et expéditrices participent à la synchronisation des automates, assurant la communication entre les objets qui interagissent. Le dispositif de calcul de la variable continue fait partie de cette construction. L’élaboration d’une BdC doit être suffisamment générale pour représenter plusieurs systèmes d’une même catégorie, mais suffisamment détaillée pour être proche de la réalité. 4. Les informations spécifiques à la topologie d’un système en particulier sont regroupées dans un script principal. Chaque composant y est déclaré en tant qu’instance d’une classe PyCATSHOO. Ces objets sont ensuite reliés entre eux par des liens, qui matérialisent les boîtes à messages. L’exécution de ce script génère aléatoirement des simulations. 5. L’analyse des résultats fournit des indicateurs de fiabilité classique, tels que l’évolution de la probabilité d’occurrence de l’ER par rapport au temps. Les combinaisons d’événements les plus contributeurs dans la réalisation de l’ER sont également identifiées. 6. Le fruit des simulations est une liste d’histoires. Une histoire est la séquence des états visités par chaque automate le temps d’une crue, associés à la date de chacune de ces transitions. Nous proposons une méthode pour extraire, synthétiser et utiliser l’information issue de la simulation du modèle. La séparation des histoires par rapport à l’occurrence ou non de l’événement redouté, en fonction des durées de fonctionnement avant défaillance de chaque composant du système, est un modèle qui exploite au maximum les données temporelles contenues dans les histoires simulées. Cette classification pronostique, à partir d’un jeu de nouvelles durées de fonctionnement avant défaillance, l’issue de l’histoire associée. 7. L’estimation de l’importance dynamique permet de savoir à tout instant quel est le composant dont la défaillance à cet instant précis aurait le plus d’impact sur la probabilité de l’ER, par rapport à une situation de référence. Cette définition est généralisable à un groupe de composants. Ce mémoire est structuré en six chapitres : – Le chapitre 1 positionne le problème industriel et les travaux de thèse. – Le chapitre 2 confronte un état de l’art des méthodes utilisées en fiabilité dynamique aux enjeux méthodologiques impliqués par le problème industriel. – Le chapitre 3 détaille les différents outils de modélisation pour la sûreté de fonctionnement. – Le chapitre 4 décrit le fonctionnement des deux EdC étudiés et présente la modélisation de ces systèmes par les ASH distribués et l’élaboration de la BdC qui en découle.Introduction générale 22 – Le chapitre 5 propose une démarche prévisionnelle fondée sur la classification des histoires et l’estimation de la probabilité d’occurrence de l’ER. – Le chapitre 6 définit l’importance dynamique comme un indicateur de fiabilité dynamique destiné à l’aide à la décision.Première partie De la problématique industrielle aux enjeux méthodologiques 23Chapitre 1 Position du problème et motivation industrielle Ce chapitre positionne le problème industriel, et par conséquent, ces travaux de thèse. La section 1.1 introduit la motivation de cette thèse, c’est-à-dire l’évaluation de la sûreté de fonctionnement des évacuateurs de crues. Ces systèmes hydrauliques ont la particularité de dépendre d’événements aléatoires discrets, mais aussi de l’évolution d’une variable déterministe continue. A ce titre, ce sont des systèmes dynamiques hybrides. A travers les évacuateurs de crues, ce sont donc tous les systèmes dynamiques hybrides qui sont concernés par la problématique : comment évaluer la sûreté de fonctionnement des évacuateurs de crues ? La section 1.2 énumère ensuite les enjeux de la thèse en dressant le « cahier des charges » de la méthodologie recherchée. 1.1 Problématique industrielle : les évacuateurs de crues et l’estimation de leur sûreté de fonctionnement Cette section a pour but de présenter la problématique industrielle de la thèse. Après une brève présentation de l’hydroélectricité (section 1.1.1) et une introduction sur le rôle des évacuateurs de crues (section 1.1.2), la section 1.1.3 résume la structure des évacuateurs de crues. Puis la section 1.1.4 dresse un rapide état de l’art de la sûreté de fonctionnement dans le domaine de l’hydraulique. Finalement, la section 1.1.5 introduit quelques notions d’hydrologie et d’hydraulique, notamment sur les hydrogrammes des crues et sur les cotes de la retenue d’un barrage. 25Chapitre1. Position du problème et motivation industrielle 26 1.1.1 L’hydroélectricité en France En France, l’hydroélectricité est l’une des principales énergies [EDF, 2011]. L’hydraulique, qui représente 11,7% de l’énergie électrique totale produite en France en 2012, y est ainsi la deuxième source de production d’électricité. L’utilisation du potentiel de l’eau par des aménagements hydrauliques fournit un double avantage. D’une part, c’est une énergie propre et renouvelable, sans impact sur le climat car elle émet très peu de gaz à effet de serre. D’autre part, à défaut de savoir stocker l’électricité, c’est un moyen écologique et économique de répondre rapidement aux variations de la consommation d’électricité. En France métropolitaine, EDF exploite 435 centrales hydroélectriques. L’eau retenue derrière un barrage est amenée par une conduite forcée vers une turbine. La force de l’eau fait tourner la turbine qui entraîne à son tour un alternateur, générant ainsi un courant électrique alternatif. Le transformateur élève ensuite la tension pour faciliter le transport de l’électricité sur de longues distances [EDF, 2011]. 1.1.2 Rôle des évacuateurs de crues En cas de crue, le volume d’eau déversé en amont de la retenue peut provoquer une montée d’eau incompatible avec la capacité de stockage et d’absorption du dispositif de production hydroélectrique recevant cette eau. Le volume d’eau en excédent représente une menace pour la sécurité du barrage et il est nécessaire de l’évacuer afin de maintenir le plan d’eau de la retenue (bassin amont du barrage) sous un niveau acceptable et d’éviter la submersion de la digue. Aussi les barrages sont-ils dotés de structures dédiées au déversement des eaux en excédent. Ces dispositifs, illustrés par la figure 1.1, sont appelés évacuateurs de crues (EdC). Certains EdC fonctionnent par déversement naturel lorsque le niveau d’eau dépasse celui du réservoir. Ce sont des EdC passifs. En revanche, les EdC vannés requièrent la mobilisation de vannes pour déverser le volume d’eau excédentaire. Les évacuateurs de crues vannés sont au centre de cette thèse. L’objectif de ces travaux est de modéliser les EdC et de les simuler du point de vue fiabiliste, puis d’exploiter les résultats obtenus pour l’évaluation de la sûreté de fonctionnement et la prise de décision. L’exploitation des résultats prend la forme d’indications sur la fiabilité de ces dispositifs pour donner des pistes d’amélioration de la sûreté. L’événement redouté (ER) est défini par l’atteinte du seuil maximal par le niveau de la retenue. Cet événement indésirable sera par la suite également nommé « débordement » ou OF pour « OverFlow ».27 1.1. Problèmatique industrielle Figure 1.1 – Évacuateur de crues. Crédit photo : EDF, Patrice Dhumes 1.1.3 Composition d’un évacuateur de crues Un évacuateur de crues est constitué d’une installation hydromécanique, d’un contrôle-commande et d’un système d’alimentation électrique, comme l’illustre la fi- gure 1.2. Un ou plusieurs opérateurs, alertés si besoin par un dispositif d’alarme, contrôlent le reste de l’aménagement. Par le biais d’un contrôle-commande (local ou non), l’opérateur sollicite un actionneur (moteur ou pompe). Cet actionneur déclenche le mouvement de la transmission (vérin, chaîne, crémaillère, etc.). Cette transmission communique ensuite ce mouvement aux vannes. Une passe est constituée du dispositif actionneur - transmission - vanne. Cette description est représentée schématiquement sur la figure 1.2 et s’applique à tous les évacuateurs de crues. Des subtilités apparaissent dès que l’on considère des évacuateurs différents ou que l’on rentre dans le détail de ces sous-systèmes. Chaque composant peut tomber en panne à la sollicitation ou en fonctionnement. La plupart du temps, la structure d’un système est telle que ce composant est relayé en cas de panne. Ces redondances forment un réseau d’interactions complexes à modéliser. La réaction de l’opérateur à ces pannes se traduit par la recherche du composant de secours et la sollicitation de celui-ci. Ce type d’action de l’opérateur est associé à une probabilité d’échec. Inversement, ces actions sont parfois automatisées. L’objectif industriel de cette thèse est de proposer une méthodologie pour la modélisation des EdC. Cette modélisation devra représenter le processus de crue, le rôle de chaque composant en cas de défaillance et les réactions de l’opérateur. L’élaboration d’un modèle suffisamment général pour représenter différents évacuateurs, mais suffi-Chapitre1. Position du problème et motivation industrielle 28  Figure 1.2 – Représentation schématique d’un évacuateur de crues Ex´ecution efficace de syst`emes multi-agents sur GPU Guillaume Laville To cite this version: Guillaume Laville. Ex´ecution efficace de syst`emes multi-agents sur GPU. Distributed, Parallel, and Cluster Computing. Universit´e de Franche-Comt´e, 2014. French. HAL Id: tel-01087226 https://hal.archives-ouvertes.fr/tel-01087226 Submitted on 25 Nov 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.Thèse de Doctorat é c o l e d o c t o r a l e s c i e n c e s p o u r l ’ i n g é n i e u r e t m i c r o t e c h n i q u e s U N I V E R S I T É D E F R A N C H E - C O M T É n Exécution efficace de systèmes multi-agents sur GPU Guillaume LavilleThèse de Doctorat é c o l e d o c t o r a l e s c i e n c e s p o u r l ’ i n g é n i e u r e t m i c r o t e c h n i q u e s U N I V E R S I T É D E F R A N C H E - C O M T É THÈSE présentée par Guillaume Laville pour obtenir le Grade de Docteur de l’Université de Franche-Comté Spécialité : Informatique Exécution efficace de systèmes multi-agents sur GPU Soutenue le 27 juin 2014 devant le Jury : Christophe Cambier Rapporteur Chargé de recherche (HDR) à l’Université Pierre et Marie Curie, Paris Michaël Krajecki Rapporteur Professeur à l’Université de Reims ChampagneArdenne Stéphane Genaud Examinateur Professeur à l’Université de Strasbourg Fabrice Bouquet Examinateur Professeur à l’Université de Franche-Comté Laurent Philippe Directeur de thèse Professeur à l’Université de Franche-Comté Kamel Mazouzi Encadrant Ingénieur de Recherche au Mésocentre de calculs de Franche-Comté Christophe Lang Encadrant Maître de Conférences à l’Université de Franche-Comté N° X X XSommaire Table des matières 6 Remerciements 7 Introduction 9 I Contexte 13 1 Les systèmes multi-agents 17 1.1 Science et simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.2 Les systèmes multi-agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2 Modèles d’exécution et de programmation parallèles 27 2.1 Une réponse à des besoins en calcul . . . . . . . . . . . . . . . . . . . . . . . . 27 2.2 Parallélisation en mémoire partagée . . . . . . . . . . . . . . . . . . . . . . . . 28 2.3 Parallélisation en mémoire distribuée . . . . . . . . . . . . . . . . . . . . . . . . 31 2.4 Parallélisation hybride . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.5 Une nouvelle architecture d’exécution : le GPU . . . . . . . . . . . . . . . . . . 34 2.6 Vers une convergence many-core . . . . . . . . . . . . . . . . . . . . . . . . . . 45 2.7 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3 Parallélisation de systèmes multi-agents 47 3.1 Stratégies de parallélisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.2 Plates-formes multi-agents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.3 État de la simulation multi-agents sur GPU . . . . . . . . . . . . . . . . . . . . 54 3.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 II Contribution 61 4 Problématique 65 4.1 Portabilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66SOMMAIRE 6 4.2 Réutilisation d’algorithmes et de structures . . . . . . . . . . . . . . . . . . . . 66 4.3 Intégration avec l’existant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.4 Extensibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.5 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 5 Adaptation d’un modèle multi-agents sur GPU : Proie-Prédateur 69 5.1 Présentation du modèle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.2 Stratégies de déplacement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.3 Adaptation OpenCL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.4 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6 Méthodes d’adaptation SMA sur GPU 79 6.1 Gestion de la dimension spatiale . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.2 Développement d’un modèle sur GPU . . . . . . . . . . . . . . . . . . . . . . . 80 6.3 Parallélisation de certains traitements . . . . . . . . . . . . . . . . . . . . . . . 85 6.4 Utilisation de traitements parallélisés existants . . . . . . . . . . . . . . . . . . . 88 6.5 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 7 MCMAS, une bibliothèque d’exécution générique 93 7.1 Présentation générale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.2 Architecture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 7.3 Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 7.4 Utilisation de l’interface de haut niveau . . . . . . . . . . . . . . . . . . . . . . 105 7.5 Développement de nouveaux plugins . . . . . . . . . . . . . . . . . . . . . . . . 109 7.6 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112 8 Validation sur des modèles existants 113 8.1 Parallélisation de modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 8.2 Etudes de performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 8.3 Synthèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 9 Conclusion et perspectives 145 9.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 9.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 Bibliographie 156Remerciements Je tiens à remercier en premier lieu le Professeur Laurent Philippe, mon directeur de thèse, pour sa sympathie, sa disponibilité, ses idées, ses conseils et ses encouragements durant mes quatre années de thèse. Je voudrais également le remercier pour sa relecture et sa patience à corriger cette thèse. Je remercie M. Kamel Mazouzi, Ingénieur de Recherche au Mésocentre de Calculs, pour son soutien indéfectible et ses conseils précieux tout au long de cette thèse. Son aide et ses remarques sur MCMAS ont en particulier eu une influence déterminante sur l’architecture et l’interface de la bibliothèque obtenue. Je remercie M. Christophe Lang pour son aide au cours et en dehors de nombreuses réunion, et en particulier pour ses contributions et son expertise en systèmes multi-agents, qui m’ont été d’une assistance précieuse dans mes travaux et mon mémoire. J’exprime également ma plus profonde gratitude à M. Nicolas Marilleau pour avoir été un acteur clé du choix de ce sujet et de sa réalisation, en tant que personne également confrontée aux problématiques d’implémentations de systèmes multi-agents au quotidien. M. Christophe Cambier et M. le Professeur Michaël Krajecki ont accepté d’être les rapporteurs de cette thèse, et je les en remercie, de même que pour leur participation au Jury. Ils ont également contribué par leurs nombreuses remarques et suggestions à améliorer la qualité de ce mémoire, et je leur en suis très reconnaissant. MM. les professeurs Fabrice Bouquet et Stéphane Genaud m’ont fait l’honneur de participer au Jury de soutenance ; je les en remercie profondément. Tous mes remerciements vont également au Mésocentre de Calcul de Franche-Comté, qui m’a recruté en 2009 et sans lequel je n’aurais eu la chance unique d’être dans un cadre me permettant d’entreprendre et de réaliser cette thèse. Je remercie en particulier Cédric pour l’ambiance quotidienne dans le bureau et son expertise technique qui a été très utile à plusieurs reprises. J’adresse également mes remerciements à tous les membres du DISC pour leur accueil au sein du Département d’Informatique des Systèmes Complexes de l’institut FEMTO-ST. Cela a été pour moi un honneur de devenir leur collègue après les avoir rencontrés en tant qu’enseignants au cours de ma formation. Je tiens à remercier le personnel de l’école doctorale SPIM pour son aide précieuse dans les dé- marches administratives. Je tiens enfin à remercier ma famille pour son soutien indéfectible au cours de la rédaction de cette thèse, tant d’un point de vue humain que rédactionnel, pour quelqu’un comme moi qui apprécie un peu trop les longues phrases...Introduction Ces dernières années ont consacré l’émergence du parallélisme dans de nombreuses branches de l’informatique, tant au niveau matériel que logiciel. Elle s’est manifestée au niveau matériel, tout d’abord, du fait de la stagnation de l’augmentation des fréquences de fonctionnement des unités de calcul, avec l’apparition d’architectures dotées de très grands nombres de coeurs. Elle s’est ensuite manifestée au niveau logiciel avec la démocratisation de plates-formes d’exécution parallèle telles que MPI ou OpenMP, ou l’apparition de nouvelles solutions comme OpenCL et CUDA, pour exploiter ce parallélisme matériel croissant. Cette démarche de parallélisation de l’exécution peut être rapprochée du parallélisme conceptuel mis en œuvre dans les modèles multi-agents pour faciliter la description de systèmes complexes. Dans ce type de modèle, l’approche choisie est de décomposer un problème difficile ou impossible à appréhender de manière globale en sous-problèmes dont la résolution est plus simple, de manière à obtenir une solution globale. Ces sous-problèmes sont associés à des entités, ou agents, accomplissant chacun leurs tâches de manière simultanée et faisant évoluer le système dans son ensemble. Si l’adéquation entre un parallélisme d’exécution logiciel et conceptuel semble naturelle, la parallélisation reste une démarche difficile, du fait du déroulement séquentiel des opérations et des dépendances présents dans de très nombreux modèles agents. Les plates-formes d’exécution évoquées dans le paragraphe précédent sont généralistes, et ne sont pas spécifiquement adaptées aux problématiques multi-agents. Cette absence de support spécialisé impose au concepteur de nombreux développements de structures de données ou de traitements propres à son modèle, ou l’utilisation d’une plate-forme multi-agents parallélisée fournissant déjà ces outils. L’objectif de cette thèse est de proposer une solution commune pour faciliter l’implémentation de tels modèles sur une plate-forme d’exécution massivement parallèle telle que le GPU, dont le nombre important de coeurs permet d’envisager l’exécution simultanée de grands nombres d’agents. Notre mémoire est pour cela découpé en deux parties : la présentation de notre contexte, puis celle de nos contributions. Pour cerner notre contexte, nous présentons dans un premier temps les concepts de simulation et de modèle. Nous décrivons leur rôle en complément ou en remplacement de l’expérience pour permettre une meilleure compréhension du monde qui nous entoure. Cette présentation est également l’occasion d’introduire l’amélioration constante en précision et en taille des simulations nécessaire à l’avancée des connaissances et l’augmentation correspondante des ressources requises. Ce besoin motive à l’heure actuelle la recherche de nouvelles solutions d’exécution pour des simulations même modestes, exploitant efficacement plusieurs ressources matérielles. Nous décrivons ensuite un type de système particulier, au coeur de notre sujet de thèse : les systèmes multi-agents. Ces systèmes permettent, en décomposant le modèle à simuler en entités indépendantes, les agents, d’appréhender des modèles sans loi globale de comportement. La dynamique de ces systèmes ne dépend plus alors uniquement de règles générales, mais de l’interaction entre un ou plusieurs algorithmes s’exécutant en parallèle. La simulation de ces systèmes rencontre, comme la simulation de manière générale, un problème de disponibilité de ressources en calcul et en mémoire dans le cas de grands espaces ou nombres d’individus, que nous illustrons sur quelques exemples connus.Introduction 10 L’identification de ce besoin en ressources nous amène à considérer les différentes approches de parallélisation permettant d’y répondre, avec leurs avantages et leurs contraintes en termes d’exécution et de programmation. Cette présentation est l’occasion d’introduire les GPU, ou cartes graphiques, qui offrent une capacité de calcul normalement inaccessible sur le CPU d’une seule machine. Ces matériels permettent au programme de partager aisément des données dans une même mémoire globale tout en offrant l’accès à plusieurs centaines de coeurs. Leur utilisation est cependant associée à de nombreuses contraintes, tant en termes de découpage de l’exécution qu’en termes d’utilisation et d’accès aux données, pour permettre une exécution efficace. À la suite de cette présentation des solutions de parallélisation, nous évoquons leur application dans les simulations multi-agents. Pour cela, nous commençons par présenter les différentes approches de découpage de l’exécution et des données généralement utilisées dans le cas de modèles multi-agents. Nous présentons ensuite des plates-formes multi-agents supportant l’exécution parallèle du modèle comme MadKit, Repast HPC, JADE ou encore FLAME. Nous décrivons ensuite l’état de l’art des solutions permettant actuellement d’utiliser le GPU pour exécuter tout ou partie d’un modèle multi-agents. Ces solutions peuvent être classées en deux catégories principales, l’utilisation directe de modèles de programmation génériques comme CUDA ou OpenCL ou l’utilisation d’une bibliothèque d’abstraction telle que FLAME-GPU. Ces deux catégories laissent cependant une ouverture pour une approche intermédiaire qui faciliterait la réalisation de simulations ou de traitements multi-agents sur GPU sans imposer l’utilisation d’une plate-forme de développement multi-agents particulière, contrairement à FLAME-GPU avec le formalisme FLAME. La définition de cette problématique nous sert de transition pour la présentation de nos contributions, en seconde partie, et en particulier de MCMAS 1 , une bibliothèque d’exécution multi-agents sur GPU développée pour répondre à ces besoins. Notre première contribution est la présentation de l’adaptation d’un modèle multi-agents connu, le système proie-prédateur, sur GPU, pour mettre en évidence sur un cas concret les changements en termes de structures de données et de découpage de l’exécution nécessaires au portage de ce type de simulation. Cet exemple concret nous sert ensuite de fil rouge pour définir trois grandes approches de parallélisation du modèle sur GPU : une adaptation complète de la simulation, une délégation manuelle de certains traitements, ou la réutilisation de fonctions de haut niveau existantes. Ces approches nous permettent de définir les interfaces attendues par ces scénarios. L’adaptation complète ou partielle du modèle nécessite en effet une connaissance ainsi qu’un contrôle fin d’un modèle d’exécution tel que OpenCL ou CUDA. Au contraire, la parallélisation de certains traitements uniquement encourage une interface de programmation la plus simple possible pour le concepteur, de manière à faciliter son intégration et son utilisation dans de nombreux modèles existants sans connaissance particulière des détails d’implémentation. Notre bibliothèque MCMAS vient répondre à ces types d’utilisations au moyen de deux interfaces de programmation, une couche de bas niveau MCM 2 et un ensemble de plugins utilisables sans connaissances GPU. Nous présentons tout d’abord l’architecture qui résulte de ces deux perspectives d’utilisation, ainsi que la manière dont certaines de ces fonctions sont assurées, avant de décrire l’utilisation de l’interface haut niveau de notre bibliothèque et l’ajout de fonctionnalités au moyen de nouveaux plugins. Nous étudions ensuite l’utilisation de cette bibliothèque sur trois systèmes multi-agents distincts : le modèle proie-prédateur, notre fil rouge, le modèle MIOR et le modèle Collemboles. Ces 1. Many-Core Multi-Agent Systems 2. Many-Core ManagerIntroduction 11 applications sont l’occasion d’effectuer une étude des performances obtenues sur plusieurs types et générations de cartes graphiques par chaque modèle et des facteurs contribuant à une exécution efficace sur GPU. Nous présentons également une synthèse de l’expérience acquise en proposant quelques conseils pour implémenter un modèle sur cette architecture. Ces observations, tant en termes de ressources ou de stockage de données qu’en termes de précision des traitements, visent à faciliter une utilisation efficace du grand nombre de supports d’exécution gérés par MCMAS. Nous dressons enfin un bilan du travail et des réflexions présentées dans notre mémoire, avant d’évoquer quelques pistes possibles d’amélioration de notre solution. L’objectif de ces pistes est de favoriser l’extension et l’utilisation de notre bibliothèque, en proposant des couches d’adaptations dans des plates-formes existantes, la gestion de nouvelles structures de données, ou encore le support transparent d’une plus grande variété de configurations d’exécution.I Contexte15 Dans cette première partie, nous présentons tout d’abord le contexte de nos travaux, de manière à définir la portée de notre sujet et à introduire la problématique à laquelle nous avons souhaité répondre : la parallélisation efficace de systèmes multi-agents sur architecture à grand nombre de cœurs. Nous commençons par introduire le domaine de la simulation et des systèmes multi-agents et ce qu’ils représentent. Nous abordons ensuite la problématique du besoin en ressources rencontrées par ces modèles, lorsque nous cherchons à améliorer la précision et/ou la taille du modèle, et en quoi la parallélisation est une solution à ce besoin. Nous évoquons alors en quoi les moyens matériels associés à cette parallélisation peuvent être coûteux, et présentons les GPU, une architecture matérielle permettant de disposer de plusieurs centaines de coeurs d’exécution sur une machine locale. Après avoir présenté cette architecture, nous dressons un état de l’art des développements et portages de systèmes multi-agents déjà réalisés sur GPU, ainsi que la présentation d’une plate-forme multi-agents générique d’exécution sur GPU, FLAME-GPU.1 Les systemes multi ` -agents Avant de présenter les systèmes multi-agents et l’utilisation que nous en feront, il est nécessaire de présenter le rôle d’une simulation, mais également de définir les concepts de modèle et de modélisation qui seront utilisés très largement dans la suite de notre propos. 1.1 Science et simulation Dans cette section, nous commençons par présenter le contexte d’apparition de la simulation numérique, puis son principe. Nous définissons ensuite les termes de modèle et simulation avant d’étudier plusieurs classifications possibles des approches de modélisation permettant de passer d’un modèle à une simulation. 1.1.1 Principe de la simulation La résolution de problèmes est l’un des moteurs de la recherche et de l’innovation technique. Si cette résolution a longtemps été effectuée manuellement, elle est de plus en plus confiée aux ordinateurs à même de réaliser d’importants volumes d’opérations. Avant de pouvoir résoudre un problème, il est cependant essentiel de disposer d’outils permettant de le décrire puis de le mesurer. C’est le rôle de l’expérience et de la simulation. Une simulation est par nature la reproduction d’un phénomène en dehors du contexte dans lequel il se déroule habituellement. Cette simulation peut être de nature physique, sous la forme d’une expérience, ou dématérialisée sur un support informatique, auquel cas on parlera de simulation numérique. L’objectif est généralement de pouvoir étudier le phénomène en le reproduisant et en l’observant. Un premier moyen d’observer et de décrire un phénomène est la mise en place d’un protocole expérimental. Ce protocole décrit un ensemble de conditions fixées ou variables où sera observé l’évolution de certaines métriques. Son objectif est de permettre un contrôle des résultats en assurant que l’observation soit ciblée et reproductible. La réalisation ou la reproduction d’un phénomène dans sa globalité n’est cependant pas toujours financièrement ou pratiquement réalisable. Il est alors nécessaire de recourir à une représentation alternative généralement simplifiée du réel, le modèle. Dans le cas d’études topographiques sur l’érosion, il n’est ainsi pas possible de mettre sous serre une vaste étendue de territoire de manière à assurer des conditions contrôlées et reproductibles. De la même manière, le fait de demander à plusieurs milliers d’individus de reproduire à loisir un comportement pré-établi implique une coordination stricte faussant les résultats attendus.CHAPITRE 1. LES SYSTÈMES MULTI-AGENTS 18 L’objectif d’un modèle est de proposer une représentation de la réalité, de manière à en faciliter la compréhension. Sa conception se base sur des lois déduites d’un corpus d’observations et d’expériences. Ce modèle peut ensuite être associé à des scénarios d’exécution reproduisant le phénomène observé correspondants à des conditions particulières pour en faire une simulation informatique. Après cette courte introduction, nous allons maintenant définir formellement ces concepts. 1.1.2 Définitions : modèle, simulation Le modèle est une représentation d’un phénomène ou d’un système permettant de le rendre plus aisément manipulable, comme souligné par cette définition proposée par Peter Haggett en 1973 [Hag73] : Définition (modèle) : les modèles sont des représentations schématiques de la réalité, élaborés en vue de la comprendre et de la faire comprendre. Cette simplification implique une approximation du système simulé : un modèle est donc une vision simplifiée de la réalité. Wilson [Wil74] propose de son côté une définition de la simulation indépendante de toute notion de modèle : Définition (simulation) : par nature, une simulation est quelque chose pouvant être lancé, modifié, et produisant des résultats (exemple du crash-test). Peut être de nature physique (expérience dans un environnement contrôlé) ou dématérialisée (informatique). Cette définition met en avant l’indépendance entre les concepts de modèle et de simulation : une simulation est avant tout un moyen de produire des résultats, que ce soit à de manière physique ou informatique. Le passage d’un système concret à un modèle de simulation correspond à un processus nommé modélisation. 1.1.3 Un continuum d’approches de modélisation Notre contexte de travail est celui des systèmes multi-agents. Afin de situer ce contexte, nous rappelons ici les caractéristiques des principales approches de modélisation, qu’elles reposent sur l’utilisation de lois mathématiques de type équations différentielles ou statistiques ou sur la conception d’algorithmes représentant le comportement d’entités individuelles. Nous proposons ici deux axes possibles de caractérisation de ces approches de modélisation. Ces caractérisations ne doivent pas être considérées comme hermétiques, car certaines démarches reprennent des éléments de chacune de ces approches de modélisation pour décrire des aspects différents d’un même modèle.CHAPITRE 1. LES SYSTÈMES MULTI-AGENTS 19 Modélisation ascendante ou modélisation descendante Un premier axe de classification des approches de modélisation est la direction, descendante ou ascendante, dans laquelle cette démarche est appliquée au système simulé [CKQ+07, Jac98]. Dans une approche descendante (ou top-down), un comportement global est appliqué à tous les éléments particuliers du modèle. Il est par exemple possible, en observant l’évolution de la quantité d’oxygène présente dans l’environnement de bactéries aérobies, d’en déduire une loi décrivant la dynamique générale du système. Cette loi peut alors être utilisée pour reproduire cette évolution de manière informatique sous forme de modèle, sans avoir à réaliser à nouveau l’expérience concrète. En appliquant les mêmes lois à tout le système, cette modélisation rend cependant difficile la description de comportements émergents des entités simulées entraînant une évolution non linéaire du modèle du fait de conditions particulières. Dans le cas de ces comportements émergents en effet, seul le comportement de chaque élément est connu : il devient nécessaire d’adopter une approche ascendante (ou bottom-up). Le comportement du modèle dans son ensemble n’est alors plus globalement décrit par des lois globales mais par une combinaison d’algorithmes représentant les comportements locaux présents dans le système. Dans de nombreux systèmes biologiques, l’équilibre du métabolisme est basé sur l’interaction de processus antagonistes tels que la constitution de réserves de nutriments et la reproduction. L’évolution du système est alors directement déterminée par les conditions environnementales et l’impact résultant de chacun de ces mécanismes, ce qui rend une prévision a priori de l’évolution globale du système moins accessible. L’approche ascendance permet alors une modélisation plus adaptée, basée sur la description des comportements de chaque sous-élément du système. Le choix de l’une ou l’autre de ces approches de modélisation est fonction du niveau de connaissance initial du système et du type de résultats souhaités, locaux ou portant sur l’évolution globale du modèle. Simulation continue et simulation à événements discrets Une autre distinction est effectuée dans la littérature [BPL+06, Fuj03] entre les simulations continues et les simulations à événements discrets (DES). Une simulation continue permet de représenter des phénomènes par nature ininterrompus dits continus. Dans le cas d’une diffusion thermique dans un solide, il est ainsi possible de définir l’état du système à n’importe quel instant au moyen de fonctions mathématiques, généralement des équations différentielles. Dans ce cas, le choix de l’échelle de temps retenue est arbitraire et dépend uniquement de la durée et de la fréquence de l’observation demandée. Une simulation à événements discrets permet au contraire de décrire des systèmes dont l’évolution dépend d’événements particuliers : en l’absence de ces éléments déclencheurs, la simulation demeure statique. Un exemple de système à événements discret est une chaîne de production, inactive en l’absence de tâches à traiter. Ce type de simulation peut être décrit sous la forme de réseaux de Petri conçus pour la description de systèmes basés sur des variables discrètes, ou encore sous forme de systèmes multi-agents. Certaines simulations peuvent présenter à la fois des comportements discrets et continus. L’évolution de la position d’une balle en chute libre obéit ainsi à une loi continue, mais le sens du mouvement de cette balle est modifié de manière discrète par tout contact avec un autre objet, qu’il s’agisse du sol ou d’un autre obstacle. Il est dans ce cas possible de recourir à des simulations continues à événements discrets, ou simulations hybrides, associant ces deux fonctionnements.CHAPITRE 1. LES SYSTÈMES MULTI-AGENTS 20 1.2 Les systèmes multi-agents Après avoir présenté la simulation de manière générale, nous nous intéressons plus spécifi- quement aux systèmes et aux simulations multi-agents. La simulation à base d’agents centre le modèle sur des entités indépendantes nommées agents. Des comportements et des données sont associés à chacun de ces agents, de manière à obtenir des informations sur le modèle global : la modélisation à base d’agents est donc une modélisation de type ascendante permettant de simuler un environnement à partir de ses composants élémentaires. Les modèles basés sur ce paradigme de conception sont dits modèles multi-agents. Les simulations réalisées à partir de ce type de modèles sont alors appelées simulations multi-agents. Ce type particulier de simulations peut être décomposé en deux sous-classes [Fuj03] de simulations à événément discrets : — Les simulations discrètes par pas de temps (time-driven). Dans ce cas l’évolution du système est guidée par le temps découpé en pas réguliers parcourus par la simulation. — Les simulations discrètes par événément (event-driven). Dans ce cas l’évolution du système est guidée par une chaîne chronologique d’événements. 1.2.1 Définition et concepts Il est important de définir le concept d’agent pour comprendre celui de système multi-agents. Pour cela, nous nous référons à la définition proposée par Jacques Ferber dans [Fer95] : On appelle agent une entité physique ou virtuelle — qui est capable d’agir dans un environnement, — qui peut communiquer directement avec d’autres agents, — qui est mue par un ensemble de tendances (sous la forme d’objectifs individuels ou d’une fonction de satisfaction, voire de survie, qu’elle cherche à optimiser), — qui possède des ressources propres, et qui est capable de percevoir (mais de manière limitée) son environnement, — qui ne dispose que d’une représentation partielle de cet environnement (et éventuellement aucune), — qui possède des compétences et offre des services, — qui peut éventuellement se reproduire, — dont le comportement tend à satisfaire ses objectifs, en tenant compte des ressources et des compétences dont elle dispose, et en fonction de sa perception, de ses représentations et des communications qu’elle reçoit. Cette définition met en avant les capacités d’action sur l’environnement et de communication associées à ces agents. Elle souligne également la vision partielle de l’environnement associée à chaque agent, dont l’évolution est déterminée par cette perception partielle plutôt que par une connaissance globale du modèle. Cette notion d’agent n’a de sens que comme partie d’un système plus large, le système multiagents, sans lequel ces possibilités de communication sont inutiles. Ferber propose également, dans le même ouvrage, une définition de ces systèmes : On appelle système multi-agents (ou SMA) un système composé des éléments suivants : — Un environnement E, c’est-à-dire un espace disposant généralement d’une métrique. — Un ensemble d’objets O. Ces objets sont situés, c’est-à-dire que, pour tout objet, il estCHAPITRE 1. LES SYSTÈMES MULTI-AGENTS 21 possible, à un moment donné, d’associer une position dans E. Ces objets sont passifs, c’est-à-dire qu’ils peuvent être perçus, créés, détruits et modifiés par les agents. — Un ensemble A d’agents, qui sont des objets particuliers (A ∈ O), lesquels représentent les entités actives du système. — Un ensemble de relations R qui unissent des objets (et donc des agents) entre eux. — Un ensemble d’opérations Op permettant aux agents de A de percevoir, produire, consommer, transformer et manipuler des objets de O. — Des opérateurs chargés de représenter l’application de ces opérations et la réaction du monde à cette tentative de modification, que l’on appellera les lois de l’univers. L’implémentation d’un système multi-agents débute par la conception ou le choix d’un modèle multi-agents basé sur des agents, un environnement et les interactions entre ces entités [DSJD02]. Ces interactions et cette organisation définissent la fonction, le type et les scénarios de communication possibles dans le système simulé [JOF03]. En fonction du modèle, ces communications peuvent être directes ou indirectes, par le biais des mises à jour de l’environnement perçues ensuite par d’autres individus. Les systèmes multi-agents représentent un continuum de simulation très large, s’étendant d’exemples très simples à des problèmes proches de l’intelligence artificielle. Cette diversité des problématiques est reflétée par le vaste vocabulaire employé par cette communauté scientifique, mêlant des concepts tels que celui d’agent à des notions moins directes d’objectif, de croyance ou de perception. Un aspect présent dans de nombreux systèmes multi-agents est celui d’environnement. L’environnement décrit l’espace dans lequel évoluent les agents, sa structure (composition, agencement) et sa dynamique. Il peut être considéré comme un agent spécifique ou comme un simple ensemble de structures de données partagées. Il est typiquement chargé du stockage des propriétés globales au modèle, mais peut être associé à d’autres fonctions : — Il peut remplir des fonctions à l’échelle du modèle telles que la gestion du temps ou la mise à jour des paramètres globaux à chaque itération. — Il peut servir d’espace de stockage de tout ou partie des informations des agents. — Il peut également remplir le rôle de médium de communication. Des normes telles que FIPA [fip] ont été proposées pour standardiser l’implémentation de ce type de simulations. Cette norme, publiée en 1997, établit de nombreuses règles liées aux modes de communications et d’interactions entre agents par le biais d’échanges de messages. Elle est basée autour de trois rôles particuliers : — Le système de gestion d’agents (Agent Management System, ou AMS), responsable de la supervision de l’accès et de l’usage de la plate-forme. Il assure en particulier l’authentifi- cation des agents présents et le contrôle des nouveaux enregistrements. — Le canal de communications entre agents (Agent Communication Channel, ou ACC) fournit l’infrastructure de communication entre agents. Cette interface doit être compatible avec le protocole IIOP, pour garantir l’interopérabilité entre plates-formes multi-agents. — L’assistant d’annuaire (Directory Facilitator, ou DF) propose un service de recherche aux agents de la plate-forme pour découvrir facilement les autres agents présents dans le modèle.CHAPITRE 1. LES SYSTÈMES MULTI-AGENTS 22 1.2.2 Agents réactifs, agents cognitifs Il est courant d’effectuer dans les systèmes multi-agents une distinction entre agent cognitif et réactif [WD92, CDJM01] en fonction de leurs capacités d’action et de raisonnement. Un agent cognitif dispose d’une mémoire de son passé et de son environnement lui permettant d’effectuer des déductions sur celui-ci et d’en prédire de futures évolutions. Le comportement de l’agent est déterminé par des intentions, correspondant à des objectifs à atteindre, et orientant les choix effectués entre plusieurs actions possibles. Ce type d’agent est utilisé pour représenter des individus dotés d’une intelligence propre. Celle-ci est alors souvent décrite sous la forme d’un moteur d’inférence intégré dans l’agent. Un exemple d’agent cognitif est ainsi le modèle proposé par J. Doran [DP93] pour décrire les évolutions sociales des sociétés du Paléolithique dans le sud-ouest de la France en fonction de la répartition des ressources. Cet article met en évidence l’importance des décisions prises par des individus particuliers sur la base d’une vision à moyen et long terme, plutôt qu’en simple réaction à une situation immédiate, pour expliquer les évolutions de peuplement observées en archéologie. Un agent réactif ne peut au contraire que réagir à l’état instantané du système. Son comportement peut être caractérisé en se basant sur la psychologie comportementale comme purement S-R (Stimulus-Reaction), où S représente un état particulier de l’environnement et R une série d’actions élémentaires entreprises par l’agent en réaction à cet état. De tels comportements sont rencontrés aussi bien pour des animaux [McF87] que pour des créatures artificielles [Mae90]. La séparation entre agents réactifs et cognitifs n’est pas très nette, et certains agents mélangent donc des comportements réactifs et cognitifs. Cette vision à plus ou moins long terme de l’environnement a un impact important sur la complexité de chaque agent et donc sur celle de son implémentation. 1.2.3 Implémentation de modèles agents Les systèmes multi-agents les plus simples peuvent être implémentés sous forme d’automates cellulaires. Ces automates sont également souvent utilisés pour représenter l’environnement de systèmes multi-agents plus complexes [SFS10]. Comme toute simulation informatique, l’exécution de simulations multi-agents requiert des ressources tant en termes de mémoire, pour stocker les données du système, qu’en temps de calcul pour le faire évoluer. Dans le cas des simulations multi-agents, ces besoins dépendent de deux facteurs principaux : — Des ressources requises par l’environnement. S’il s’agit d’un environnement stockant des données pour chaque unité de l’espace de simulation, les ressources mémoires requises pour représenter cet espace seront alors proportionnelles à sa taille. Si un traitement est associé sur chacune de ces unités, le temps d’exécution associé aux processus de l’environnement va également en augmentant. — Des ressources requises par les agents. Une augmentation du nombre d’agents implique une augmentation du nombre d’attributs à représenter, ainsi que du nombre d’individus à faire évoluer. D’autres parties de la simulation, comme la récupération ou le stockage de résultats, contribuent également à ces besoins en ressource. Leur impact n’est cependant pas nécessairement lié à la taille du système simulé. Dans la suite de cette section, nous allons illustrer dans le cadre de quelque simulations multi-agents connues l’impact des agents ou de l’environnement sur la consommationCHAPITRE 1. LES SYSTÈMES MULTI-AGENTS 23 en ressources en fonction de la taille du système simulé. 1.2.4 Exemples de modèles Jeu de la vie L’exemple le plus connu de modèle multi-agents simple implémenté sous la forme d’automate cellulaire est probablement le Jeu de la Vie (Game of Life), imaginé en 1970 par John Horton Conway [Gar70]. Ce modèle est constitué d’une simple grille dont chaque cellule est soit "vivante" soit "morte". L’évolution de l’état de chaque cellule à la prochaine itération est déterminé par le nombre de ses voisines vivantes à l’itération précédente : — Une cellule morte possédant exactement trois voisines vivantes devient vivante. — Une cellule vivante possédant deux ou trois voisines vivantes le reste. — Une cellule vivante meurt dans le reste des cas. Ce système simple est souvent employé comme exemple d’introduction à l’utilisation de platesformes agent [Mic02, net], pour en présenter les concepts et la syntaxe fondamentale dans le cadre d’un modèle connu. La seule structure de données du système dans ce cas est l’environnement. Comme cet environnement décrit toutes les cellules possibles, la mémoire requise est directement fonction de sa taille : si celle-ci double, la consommation en mémoire sera alors multipliée par quatre (espace en deux dimensions). Le temps d’exécution est également directement lié à la taille de cet environnement grille, le même traitement devant systématiquement être appliqué à chaque cellule. Comme chaque traitement ne s’applique qu’à la cellule locale, la quantité totale de traitements à exécuter à chaque itération est proportionnelle à la taille de l’environnement. Ce modèle très simple peut donc devenir coûteux à grande échelle et, de ce fait, nécessiter des ressources de calculs parallèle pour explorer de grandes tailles de modèles [MCM12]. Abeilles Un autre modèle largement représenté dans les différentes plates-formes multi-agents et la littérature est le mouvement d’essaims d’abeilles. Dans cet essaim, chaque agent est associé à une position dans un espace de simulation en deux ou trois dimensions, l’environnement. La position de chaque individu est ensuite mise à jour à chaque itération de manière à pouvoir observer le comportement global de l’essaim. Ce modèle met en jeu deux types d’agents : — La reine : cet agent particulier se déplace aléatoirement dans l’espace. — L’abeille ouvrière : cet agent tend à se rapprocher de la reine de l’essaim en ajustant sa direction de déplacement. Si plusieurs reines sont en présence, l’individu sélectionne l’une de ces reines, ce qui peut induire des changements d’essaim. Ce modèle est une excellente illustration de l’apparition d’un comportement émergent complexe, la création, la fusion et l’évolution de la forme d’un ou plusieurs essaims, à partir d’algorithmes simples. Le comportement observé varie en fonction des paramètres de la simulation et en particulier de la vitesse de déplacement ou du champ de vision de chaque individu. Dans ce modèle, contrairement au jeu de la vie, l’environnement n’est plus une véritable struc-CHAPITRE 1. LES SYSTÈMES MULTI-AGENTS 24 ture de données séparées, mais un espace dans lequel une position est associée à chaque agent. Il n’est pas non plus associé à ses propres traitements. Les besoins en mémoire et en calcul sont donc cette fois directement dépendants du nombre d’agents présents dans le système. Les besoins en mémoire évoluent de manière linéaire avec le nombre total d’agents présents dans le système, et donc la quantité d’attributs à stocker. L’évolution des besoins en calcul est cette fois encore linéaire, mais proportionnelle au nombre d’abeilles ouvrières présentes dans le modèle, plutôt qu’à la taille de l’environnement. Fourmis Un autre modèle multi-agents connu est celui de la colonie de fourmis, représentant le déplacement des individus d’une fourmilière à la recherche de nourriture. Il est possible d’identifier trois types d’agents dans ce système : — La fourmilière. Cet agent fixe représente le point de départ et de retour des fourmis. Il est souvent responsable du stockage de la nourriture de manière à permettre la présence de plusieurs colonies dans une même simulation. — Le dépôt de nourriture. Il est représenté soit sous la forme d’un agent fixe dans le cas d’un espace de simulation continu, soit sous la forme d’une donnée associée à chaque unité de l’environnement. — La fourmi, seul agent mobile capable de se déplacer dans l’environnement. Sa fonction est de localiser et de ramener de la nourriture à sa fourmilière. L’évolution globale de la simulation est déterminée par le mouvement des fourmis et la répartition géographique des fourmilières et des ressources dans l’environnement. La vitesse de collecte de nourriture peut alors être utilisée comme métrique d’évaluation de différentes stratégies de dé- placement appliquées aux fourmis. Dans les cas les plus simples, ces déplacements sont effectués de manière aléatoire, mais un comportement plus réaliste est le dépôt et la prise en compte de phéromones dans l’environnement. Ces marqueurs chimiques encouragent l’individu à privilégier certaines directions de déplacement, et permettent l’émergence puis l’optimisation de chemins particuliers pour la récolte des ressources sans intelligence centrale directrice. Dans ce cas, l’environnement joue à la fois le rôle de mémoire et de médium d’interaction indirect entre individus. Ce troisième exemple représente un cas où l’environnement et les agents correspondent chacun à des structures de données et des traitements distincts, et contribuent donc tous deux aux besoins en termes de mémoire et de calcul. L’évolution des ressources en fonction de la taille du modèle et du nombre d’agents reprend à la fois des aspects du jeu de la vie et des abeilles : — La consommation en mémoire est proportionnelle à la taille de l’environnement et du nombre d’agents : si la taille du modèle est multipliée par deux, le nombre de cellules devant être stockées est multiplié par quatre, si une grille discrète de phéronomes est utilisée. De même, si le nombre d’agents fourmis est multiplié par deux, la mémoire est également multipliée par deux, pour stocker les données de ces individus supplémentaires. — La consommation en temps de calcul est proportionnelle de la même manière à la taille de l’environnement, du fait de la nécessité de calculer la diffusion des phéromones dans la grille à chaque itération. Elle est également proportionnelle au nombre d’individus dont le déplacement doit être géré. Il est important de noter que ces constatations ne sont valables que si l’environnement utilisé est une grille. Dans le cas où les phéromones seraient considérées comme des agents fixes, l’évolution des besoins en ressources se rapproche à nouveau de celle du modèle des abeilles.CHAPITRE 1. LES SYSTÈMES MULTI-AGENTS 25 1.2.5 Représentation de l’espace de simulation Si les modèles évoqués jusqu’à présent stockent les informations de positionnement soit sous forme de coordonnées à l’intérieur de chaque agent, soit sous forme de structures de grille en deux ou trois dimensions, de nombreuses autres solutions de représentation sont possibles pour l’environnement du système et l’emplacement des agents. Galland et all [GGDK09] proposent ainsi pour le positionnement en milieu urbain deux approches complémentaires : — L’utilisation d’une carte de hauteur (heighmap), où chaque pixel indique l’altitude du point de l’espace simulé correspondant. L’information est alors encore une fois représentée sous forme de grille, ici une image. — L’utilisation d’un modèle de positionnement des objets. L’objectif de cette seconde représentation est de permettre un accès rapide à la position et à l’orientation des objets présents dans le modèle. L’environnement est découpé en zones décrites par un graphe, pour un environnement en une dimension, ou par un arbre spatial. Chacun des objets du système est alors associé au noeud correspondant aux zones où il est situé, de manière à rapidement pouvoir déterminer les objets présents ou non dans un espace donné. Il est possible à un objet d’appartenir à plusieurs zones, s’il se trouve sur une frontière : dans ce cas, l’objet est copié et stocké à plusieurs endroits de la structure. Si dans ce cas la représentation sous forme de graphe est utilisée en complément d’une grille, de nombreux environnements multi-agents basés sur des axes de circulation discrets peuvent être entièrement représentés sous forme de graphe. Ces structures se retrouvent au sein de nombreux modèles de recherche de chemin dans la littérature agent, en particulier dans le cas de simulations de trafic routier [SN09]. 1.2.6 Synthèse L’étude des modèles du jeu de la vie, des abeilles ou des fourmis permet de mettre en évidence que l’exécution d’une simulation multi-agents peut rapidement devenir coûteuse, particulièrement dans le cas où l’environnement est représenté sous la forme d’une structure de données de type grille ou si le temps d’exécution de chaque agent est proportionnel à la quantité d’individus présents dans le modèle. Plusieurs scénarios sont à même d’imposer des simulations de taille importante, en espace de simulation ou en nombre d’agents. Un premier scénario est la volonté de simuler des systèmes mettant eux-même en jeu des espaces géographiques ou des populations importantes. C’est par exemple le cas de la simulation d’une ville : une simulation doit alors idéalement être capable de traiter tout son espace et ses habitants dans une même exécution, pour garantir une bonne représentation du système. Cette problématique est au coeur de projets comme MIRO [BBMC+10], qui vise à étudier la mobilité urbaine. Un deuxième scénario est celui des systèmes multi-échelles, où des simulations de portées très différentes doivent être couplées. Un exemple de tel système est Sworm [BMD+09], dédié à la modélisation de l’évolution des sols. Dans ce modèle, les principaux intervenants sont les vers de terre, à même de consommer et diffuser de la matière organique dans le sol. Cette matière organique fait également l’objet d’une évolution d’origine microbienne. Dans ce cas, la simulation même d’un petit volume de sol implique la réalisation de très grands nombres de simulations microscopiques MIOR.CHAPITRE 1. LES SYSTÈMES MULTI-AGENTS 26 Un dernier scénario enfin est de vouloir garantir l’apparition des comportements observés en pratique au sein de la simulation. Une simulation de trafic proposée par Strippgen [SN09] met en avant, même dans le cas où le système peut être décomposé à loisir, l’importance de taille ou de populations minimales pour voir émerger certains comportements. Dans ce cas, utiliser une simulation de trop petite taille, même quand c’est possible, est susceptible de fausser les résultats observés par rapport à une situation de taille plus importante. Cette utilisation d’environnements de grande taille ou de populations agents importantes est susceptible d’amener deux types de problèmes : — Des besoins en mémoire ne pouvant plus être assurés par une seule machine. — Des temps d’exécution très longs. Ces temps sont ainsi de l’ordre de la semaine dans le cas du modèle Sworm. Le recours à la parallélisation de l’exécution du système est une solution possible à ces deux limitations, comme nous l’abordons dans la suite.2 Modeles d ` ’execution et de programmation ´ paralleles ` La parallélisation est une solution pour accélérer l’exécution d’un programme ou pour permettre le traitement de données de taille plus importante en les répartissant sur plusieurs machines. Il est possible de distinguer deux grands modèles d’exécution en parallèle : la parallélisation en mémoire partagée et la parallélisation en mémoire distribuée. Dans ce chapitre, nous présentons ces deux modèles de parallélisation ainsi que des exemples d’outils en facilitant l’exploitation. Nous illustrons également leur impact sur le découpage des données et de l’exécution d’un programme. Dans les sections suivantes, nous présentons tout d’abord en quoi cette parallélisation vient en réponse aux besoins en ressources de calcul. Nous nous focalisons ensuite sur la parallélisation en mémoire partagée, et son exploitation par le biais des interfaces de programmation OpenMP et OpenACC. Nous présentons ensuite la parallélisation en mémoire distribuée et l’interface de programmation MPI, avant d’évoquer la parallélisation hybride combinant ces deux approches. Nous nous intéressons enfin à une nouvelle architecture d’exécution, le GPU, et voyons son modèle de programmation et ses apports par rapports aux architectures d’exécution traditionnelles en mémoire partagée ou en mémoire distribuée. Ces présentations nous permettent de définir les concepts utilisés pour la parallélisation des systèmes multi-agents. 2.1 Une réponse à des besoins en calcul Une constante universelle de la recherche scientifique est la nécessité permanente d’avancer plus loin dans la connaissance. Ce progrès peut être obtenu en ouvrant de nouvelles voies de recherches ou en améliorant les connaissances existantes, au moyen d’expérimentations plus précises ou de taille plus importante. A l’origine, ce processus a été purement mécanique, motivant l’invention de capteurs ou de méthodes de mesure du temps toujous plus fiables. Son application aux simulations informatiques se traduit désormais en besoins croissants en ressources mémoires et d’exécution. La progression en puissance de calcul du matériel a longtemps été assurée par l’accroissement des fréquences de fonctionnement des processeurs. Une augmentation en fréquence a en effet pour avantage de permettre à un programme limité par la vitesse du processeur de s’exécuter plus rapidement sans la moindre adaptation, à performance constante par cycle d’horloge. Cette augmentation de la fréquence a toutefois été freinée par l’apparition de multiple obstacles physiques, notamment en termes de miniaturisation et de densité thermique. L’accroissement de la puissance de calcul implique à présent une multiplication du nombre de coeurs d’exécutionCHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 28 soit de manière locale (processeur multi-coeurs), soit de manière distante en interconnectant de nombreuses machines (clusters de calculs). La parallélisation des programmes est alors un moyen de tirer parti de cette nouvelle répartition des ressources d’exécution. La démarche de parallélisation est également motivée par l’accroissement des besoins en mé- moire des programmes. Si le passage de nombreuses architectures au 64 bits permet maintenant l’adressage de très grands espaces de travail, les quantités de mémoire physiquement utilisables sur une même machine restent limitées. Dans ce cas la parallélisation permet d’additionner les capacités mémoires fournies par plusieurs machines. Ce besoin croissant en puissance de calcul est illustré par l’augmentation d’année en année des capacités offertes par les plus puissants clusters mondiaux du TOP500 1 . Les premières places de ce classement étaient ainsi occupées par des solutions de l’ordre de la centaine de TeraFlops (1000 milliards, ou 1012 opérations flottantes par seconde) en juin 2005, puis du PetaFlops (1015 opérations) en juin 2009. En novembre 2013, les premières machines du classement proposent maintenant des puissances de plusieurs dizaines de PetaFlops. Si cette parallélisation est un moyen d’accéder à davantage de ressources d’exécution, les gains en termes de temps obtenus dépendent directement de la fraction de temps d’exécution du programme à même d’être parallélisée par rapport à celle devant demeurer séquentielle. La loi d’Amdahl [Amd67], énoncée en 1967, rappelle que le gain de performance pouvant être attendu de la parallélisation d’une partie d’un programme est directement proportionnel à la fraction du temps d’exécution correspondant. Ta = (1 − s)T + sT Ac S = T Ta = 1 (1 − s) + s Ac Où sont représentés : — T le temps d’exécution du programme avant parallélisation. — Ta le temps d’exécution du programme après parallélisation. — s la fraction du temps T concernée par l’amélioration. — Ac le facteur d’accélération obtenue sur la portion concernée. — S le facteur d’accélération globale. En pratique, l’application de cette loi se manifeste par une stagnation des performances au-delà d’un certain nombre de coeurs. Celle-ci survient d’autant plus rapidement que la fraction de temps parallélisée diminue, tel qu’illustré par la Figure 2.1. 2.2 Parallélisation en mémoire partagée 2.2.1 Modèle d’exécution La parallélisation en mémoire partagée est un modèle d’exécution permettant de tirer parti de ressources de calcul parallèles sur une même machine en découpant l’exécution du programme en plusieurs fils d’exécutions disposant d’un accès à un espace mémoire commun (Figure 2.2). 1. http ://www.top500.org/CHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 29 20.00 18.00 16.00 14.00 12.00 10.00 8.00 6.00 4.00 2.00 0.00 Accélération 1 2 4 8 16 32 64 128 256 512 1024 2048 4096 8192 16384 32768 65536 Nombre d'unités d'exécution Loi d'Amdahl Portion parallélisable 50% 75% 90% 95% Figure 2.1 – Exemples d’applications de la loi d’Amdhal Une première manière de paralléliser l’exécution du programme est de faire appel à des processus légers, ou threads. Ces processus sont dit légers car ils partagent l’ensemble de leur espace mémoire, ce qui réduit les coûts de création ou de destruction associés à ces threads par rapport à des processus distincts, dits lourds. Une autre manière de paralléliser une exécution est de partager des portions de mémoires entre processus indépendants, soit en recopiant les données d’un processus parent au moment de la création d’une processus fils (fork), soit en utilisant les primitives de mémoire partagée proposées par le système. Cette technique est souvent employée pour des services où un unique processus parent demeure en attente de traitements à confier à un ou plusieurs processus fils. Ce fonctionnement est qualifié de maître-esclave. La parallélisation en mémoire partagée n’implique par nécessairement la création de plusieurs processus et peut également être réalisée au niveau de l’instruction. Dans ce cas, une même opération est appliquée à plusieurs données (SIMD) indiquées sous forme de vecteurs. Ces instructions sont pour cette raison dites vectorielles. Ce mode d’exécution est à la base de l’exécution sur GPU. La parallélisation en mémoire partagée est le modèle de parallélisation le plus aisé à exploiter car il permet de conserver un seul espace mémoire pour toutes les tâches. Ce partage facilite l’adaptation d’un algorithme séquentiel avec un minimum de modifications, sans répartition particulière des données. Comme pour toute ressource partagée, il devient cependant nécessaire de gérer la cohérence des données mémoires puisque plusieurs tâches peuvent les modifier de manière simultanée. Suivant le langage de programmation utilisé, cette synchronisation de l’accès aux données peut être intégrée au niveau des structures de données fournies (structure de données "thread-safe") ou être de la responsabilité du développeur. L’obligation de conserver toutes les ressources sur une même machine rend difficile l’utilisation de ce type de parallélisation au-delà de quelques dizaines de coeurs et d’une centaine de gigaoc-CHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 30 tets de mémoire vive avec des processeurs traditionnels. Ces limites correspondent de plus à des machines dédiées à ce type de parallélisation et sont donc en pratique beaucoup plus basses pour des machines de bureau ou des ordinateurs portables. CPU1 Mémoire du programme Tâche 1 CPU2 Tâche 2 CPU3 Tâche 3 CPU4 Tâche 4 Figure 2.2 – Découpage d’une exécution en mémoire partagée L’utilisation de la parallélisation en mémoire partagée est grandement facilitée par des bibliothèques génériques telles que OpenMP, utilisé par de nombreuses simulations agents. 2.2.2 OpenMP, un modèle de programmation OpenMP [CDK+01] est un modèle de programmation pour les langages C, C++ et Fortran permettant le calcul parallèle en mémoire partagée. Il a été pour la première fois proposé en 1997. La parallélisation offerte par ce modèle repose sur la création et l’exécution implicite de sections parallèles d’un programme par un ensemble de threads, ou workers, alloués et gérés automatiquement par OpenMP. Ces sections parallèles sont indiquées par le biais de directives de préprocesseur classées en instructions de contrôle d’exécution (boucles parallèles), en directives de partage des données (privées, partagées), en outils de synchronisation permettant de coordonner la progression de l’exécution des threads et en fonctions de gestion de l’environnement. La possibilité d’annoter un code source existant facilite grandement l’utilisation d’OpenMP pour paralléliser de manière incrémentale un programme séquentiel. OpenMP permet également de configurer le nombre de coeurs d’exécution locaux à utiliser, pour mesurer aisément l’impact de la parallélisation sur les performances obtenues.CHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 31 2.3 Parallélisation en mémoire distribuée Les ressources fournies par une seule machine ne suffisent pas toujours à atteindre les objectifs en termes de temps d’exécution ou de mémoire requis par le programme. Dans ce cas, il devient intéressant de pouvoir exploiter simultanément plusieurs machines. Cette parallélisation est souvent utilisée sur des grilles (machines hétérogènes reliées par un réseau informatique) ou des clusters (ensemble de noeuds de calculs homogènes, souvent reliés par un réseau informatique haute performance tel que Infiniband). 2.3.1 Modèle d’exécution La parallélisation en mémoire distribuée requiert une distribution explicite des données entre tâches d’exécution (Figure 2.3) de manière à permettre la répartition des tâches sur plusieurs machines dotées de mémoire indépendantes. Cette distribution des données permet également de s’affranchir des limitations en termes de taille mémoire imposées par une seule machine, en ne stockant pour chaque unité de traitement que les données nécessaires à son exécution. Cette répartition implique cependant la copie de certaines données communes dont la modification doit être ensuite répercutée dans les autres processus. La parallélisation en mémoire partagée impose également des modifications en profondeur de l’algorithme pour prendre en compte ce découpage mémoire, ce qui rend son utilisation pour un programme existant moins aisée que la parallélisation en mémoire partagée. CPU1 Mémoire Tâche 1 Tâche 1 CPU2 Mémoire Tâche 2 Tâche 2 CPU1 Mémoire Tâche 1 Tâche 1 Réseau CPU3 Mémoire Tâche 3 Tâche 3 CPU4 Mémoire Tâche 4 Tâche 4 Figure 2.3 – Découpage d’une exécution en mémoire distribuée La parallélisation en mémoire partagée requiert une prise en compte explicite du découpage des données par le concepteur du programme, mais peut elle aussi être facilitée au moyen de modèles de programmation comme MPI, capables d’abstraire la localisation et les communications entres portions du programme. 2.3.2 Un modèle de programmation standard : MPI MPI [Mes09] est une norme définissant un ensemble de fonctions de communication entre processus locaux ou distants. Des implémentations pour les langages C, C++ et Fortran en sontCHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 32 disponibles sur de nombreuses plates-formes, ce qui en fait un standard pour la réalisation de parallélisations distribuées. L’objectif de ces fonctions est de permettre de bonnes performances d’exécution aussi bien sur une même machine qu’entre des machines distantes. MPI repose pour cela sur un ensemble de primitives de communication de haut niveau susceptibles d’exploiter les mécanismes optimisés d’échange de données offerts par le système d’exploitation et le matériel. Une exécution MPI est constituée d’un ensemble de processus associés à des numéros de rang indépendants de leur localisation physique (Figure 2.4). Ces numéros de rang permettent à chaque processus d’adapter ses traitements en fonction de son rôle dans le groupe, en se comportant par exemple en maître distribuant des tâches ou en esclave traitant ces calculs. 0 1 2 3 CPU1 CPU2 Nœud 1 CPU1 CPU2 Nœud 2 CPU1 CPU2 Nœud 3 MPI_COMM_WORLD Rang de processus Machines physiques Figure 2.4 – Exemple d’association entre processus MPI et matériel physique MPI propose deux catégories d’opérations de communications : — Les opérations point-à-point : ces communications mettent en jeu un unique émetteur et destinataire dans le groupe de processus. — Les opérations de groupe, également qualifiées de collectives ou de multicast, impliquent la participation d’une partie ou de tous les processus MPI pour réaliser un même traitement. Un exemple de tel traitement commun est la diffusion d’une donnée en début de calcul, ou la mise en commun de résultats partiels à la fin de l’exécution MPI. La plupart de ces opérations de communication possèdent des variantes synchrones et asynchrones, de manière à faciliter la gestion du déroulement de l’exécution ou la poursuite de traitements en tâche de fond dans l’attente de communications. La seconde version de MPI sortie en 1997 apporte la possibilité d’intégrer ou de créer dynamiquement des processus en cours d’exécution MPI. Elle permet également la gestion en parallèle de flux d’entrée/sortie vers des fichiers à l’aide des fonctions MPI-IO. Les implémentations libres les plus connues du standard MPI sont MPICH 2 et OpenMPI 3 . A côté de ces implémentations généralistes, de nombreux constructeurs proposent des alternatives optimisées pour leurs solutions logicielles et matérielles telles que IntelMPI pour les processeurs Intel. Si le standard MPI officiel est dédié aux langages C et C++, des solutions équivalentes pour Java telles que MPJ Express [SMH+10] ou JACE [BDM04] existent également. 2. http ://www.mcs.anl.gov/project/mpich-high-performance-portable-implementation-mpi 3. http ://www.open-mpi.org/CHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 33 2.4 Parallélisation hybride 2.4.1 Modèle d’exécution La récente popularisation des processeurs multi-coeurs et l’apparition de nouvelles solutions d’exécution comme les cartes graphiques ont favorisé l’apparition de parallélisations dites hybrides, mettant à contribution dans un même programme plusieurs modèles de programmation distincts comme OpenMP, MPI ou le GPGPU 4 . L’utilisation judicieuse de ces différentes solutions permet d’exploiter l’ensemble des ressources présentes sur une même machine mais impose toutefois un certain nombre de précautions pour éviter tout conflit entre les modèles d’exécution. L’utilisation simultanée de MPI et d’OpenMP (Figure 2.5) requiert en particulier une certaine vigilance pour éviter tout problème de cohérence de l’état des processus ou des données. processus 0 thread 1 thread 2 thread 3 ... OpenMP processus 1 thread 1 thread 2 thread 3 ... OpenMP processus 2 thread 1 thread 2 thread 3 ... OpenMP processus 3 thread 1 thread 2 thread 3 ... OpenMP Découpage MPI Figure 2.5 – Parallélisation associant OpenMP et MPI Certains modèles, comme OpenACC, visent encore une fois à faciliter l’utilisation de ce type de distribution en regroupant les deux approches de parallélisation au sein d’un même formalisme, inspiré de OpenMP. 2.4.2 OpenACC, un modèle de programmation OpenACC [WSTaM12] est un modèle de programmation soutenu par les sociétés Gray, CAPS, PGI et NVIDIA permettant de tirer parti à la fois d’architectures processeurs traditionnelles et de 4. General-Purpose Computing on Graphics Processing Units.CHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 34 cartes graphiques (Figure 2.6). Il se différencie d’OpenMP par le support des cartes graphiques comme architecture d’exécution. Son utilisation, à base de directives de pré-processeur, est par ailleurs très similaire, de manière à faciliter son adoption en remplacement de la solution précé- dente pour des architectures CPU ou hybrides. // Code séquentiel #pragma acc parallel loop for (int i = 0; i < n; i++) { // Section parallèle } // Code séquentiel Processeur multi-coeurs Carte graphique NVIDIA Figure 2.6 – Exemple d’utilisation du processeur et de la carte graphique avec OpenACC Le support d’OpenACC est pour l’instant limité à quelques compilateurs commerciaux fournis par les société participantes au standard, dont le compilateur PGI. Il est néanmoins disponible sous forme de branche expérimentale depuis septembre 2013 dans le compilateur libre GCC. Un implémentation de recherche nommée accULL 5 est également en phase de développement. 2.5 Une nouvelle architecture d’exécution : le GPU Après ce panorama des différents types de parallélisation connus, nous allons maintenant pré- senter une architecture d’exécution spécifique, le GPU. Cette architecture reprend à la fois des concepts de parallélisation en mémoire partagée et en mémoire distribuée à l’intérieur d’un même modèle de programmation. Elle nécessite toutefois une bonne connaissance des contraintes matérielles de la carte pour tirer parti efficacement des ressources fournies, particulièrement sur les architectures les plus anciennes. Pour cela, nous commençons par présenter l’origine et l’architecture matérielle des GPU. Nous étudions ensuite le modèle de programmation associé à cette architecture, avant d’évoquer les contraintes posées par ce modèle d’exécution. Nous présentons ensuite des bibliothèques permettant d’utiliser cette architecture dans des programmes existants sans connaissance directe de ce modèle de programmation. Enfin, nous replaçons l’exécution GPU dans le contexte d’une évolution plus large de la parallélisation vers des architectures matérielles dites many-cores, proposant de nombreux coeurs d’exécution. 5. http ://accull.wordpress.com/CHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 35 2.5.1 Genèse des GPU Les cartes graphiques ou GPU 6 ont été à l’origine conçues pour décharger le CPU des calculs coûteux liés à l’introduction de rendus graphiques dans les programmes. Ces calculs, qu’il s’agisse de compositions de texture ou de calculs dans l’espace, se caractérisent en effet par l’application vectorielle d’une même opération à d’importants volumes de données. En proposant plusieurs dizaines ou centaines de coeurs d’exécution, le GPU permet d’appliquer ces traitements en parallèle et ainsi de réduire le temps total nécessaire pour effectuer ces opérations. Cette spécialisation permet également de réduire la complexité de chaque coeur et ainsi d’en augmenter la densité sur une surface donnée. Au départ, les premières cartes graphiques ne déchargeaient le processeur que de certains traitements graphiques. L’augmentation de la résolution d’une part, et des attentes en qualité de rendu graphique d’autre part, ont rapidement amené la délégation de plus en plus d’opérations à ces cartes, jusqu’à l’apparition des premiers GPU programmables, c’est à dire capables d’exé- cuter des portions de programme. Ces possibilités de programmation, initialement très limitées, n’ont été accessibles dans un premier temps que par le biais de bibliothèques de rendu graphique comme OpenGL et DirectX. Elles ont été pour la première fois pleinement accessibles au développeur en 2008, avec la GeForce 8, par le biais du modèle de programmation CUDA. Le modèle OpenCL [Khr08] apparaît également la même année et permet l’utilisation des matériels graphiques d’autres fabriquants, notamment Intel et AMD, ainsi que l’exécution sur processeur traditionnel par le biais de OpenMP. Un autre modèle de programmation GPU, DirectCompute [Joh12], a depuis été proposé par Microsoft dans sa bibliothèque DirectX pour les systèmes d’exploitation Windows. 2.5.2 Architecture matérielle Une carte graphique est constituée d’un très grand nombre de coeurs graphiques organisés en multi-processeurs. Chacun de ces coeurs dispose d’un accès à une vaste hiérarchie mémoire. Une partie de cette mémoire lui est propre, et une autre partie est partagée avec les autres coeurs du multi-processeur ou de la carte. L’apparition de la programmation GPGPU 7 a eu un impact sur l’architecture matérielle des cartes graphiques, où il est possible de déceler deux générations principales (Figure 2.8) : — Les cartes graphiques antérieures à l’architecture Fermi, basées sur une hiérarchie mémoire complexe sans caches implicites. Dans ce cas, la gestion des latences d’accès aux données pour éviter un ralentissement de l’exécution est du ressort du programme. — Les cartes graphiques plus récentes qui introduisent un mécanisme de caches mémoire L1 et L2 analogues à ceux présents sur CPU. Ces caches permettent le stockage dans une mémoire rapide, de manière transparente, des données les plus fréquemment utilisées par les unités de calcul. Il est possible d’identifier trois niveaux de mémoires principaux dans cette hiérarchie : — Les registres : chaque multi-processeur dispose de plusieurs centaines de registres. Ces registres sont partagés de manière statique entre les coeurs graphiques en début de programme. Ils sont d’accès très rapide et permettent le stockage des données intermédiaires entre les instructions consécutives du même programme. 6. (Graphical Processing Unit) 7. General-Purpose Processing on Graphics Processing UnitsCHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 36 Coeur Mémoire globale Multi-processeur Registres Mémoire partagée Cache mémoire constante Cache mémoire texture Figure 2.7 – Architecture matérielle pre-Fermi Coeur Mémoire globale Multi-processeur Cache L2 Registres Cache L1 Mémoire partagée Cache mémoire constante Cache mémoire texture Figure 2.8 – Architecture matérielle Fermi, Kepler — La mémoire partagée : cette mémoire est partagée entre tous les coeurs situés dans un même multi-processeur. Sa latence d’accès reste faible et permet de partager des données temporaires ou souvent réutilisées. — La mémoire globale : cette mémoire est accessible à l’ensemble des coeurs graphiques de la carte. Elle permet le stockage de la plupart des données d’entrée ou de sortie du programme, avec ses quelques gigaoctets de capacité. Elle se caractérise toutefois par des temps de latence d’accès beaucoup plus importants, de plusieurs centaines de cycles d’horloge. Cette mémoire est la seule accessible depuis le CPU pour l’échange de données. Avant l’apparition du cache L1 et L2 sur les architectures GPU les plus récentes, différentes techniques ont été imaginées pour dissimuler les latences d’accès à cette mémoire globale. L’une d’elles [RRB+08] est l’utilisation de zones de mémoire globale d’utilisation spécifiques, pour faciliter l’optimisation de ces scénarios par le matériel. — Mémoire locale : cette zone, accessible en lecture/écriture, permet de stocker d’éventuelles informations ne tenant pas en registre. — Mémoire constante : cette zone permet de stocker des données accessibles en lecture seule par l’ensemble des coeurs graphiques. La plupart des matériels utilisent alors une mémoire cache spécialisée pour réduire la latence d’accès aux données constantes les plus utilisées. — Mémoire texture : cette zone permet le stockage de textures graphiques. Comme pour la mémoire constante, elle est associée sur de nombreux matériels à une mémoire cache spécialisée au niveau de chaque multi-processeur. Chacune de ces textures n’est accessible qu’en lecture ou en écriture seule au niveau d’un même programme. Ce système peut toujours être utilisé sur les cartes récentes en complément d’un cache L1 propre à chaque multi-processeur et d’un cache L2 global à la carte. La gestion du partage des ressources mémoires entre ces deux mécanismes est également possible sur les cartes NVIDIA. Les copies de données entre CPU et GPU sont réalisées par le biais de l’interface PCI-Express de la carte graphique. Les restrictions d’accès en lecture ou écriture à ces différentes mémoires ne s’appliquent qu’aux programmes en exécution sur le GPU : le CPU dispose toujours d’un accès complet à l’ensemble de la mémoire globale.CHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 37 2.5.3 Modèle de programmation Le modèle de programmation GPU se caractérise par l’utilisation la plus large possible du découpage en threads en remplacement des boucles présentes dans l’algorithme. Cette démarche de parallélisation fine se justifie par les coûts d’exécution différents rencontrés sur CPU et sur GPU. Un processeur traditionnel est conçu pour traiter un nombre limité de processus s’exécutant sur une longue durée à l’échelle du matériel : secondes, minutes, heures. La création et la destruction de processus est ainsi un traitement coûteux, car elle requiert l’allocation ou la libération d’un environnement mémoire et système complet. Les threads, ou processus légers, permettent de réaliser des traitements ponctuels en évitant cette allocation d’environnement, comme évoqué dans notre section sur la parallélisation en mémoire partagée. Au contraire, un GPU est conçu pour permettre l’application d’un petit nombre d’opérations sur de grands volumes de données. Ce type d’exécution se caractérise par des tâches brèves et remplacées très fréquemment de manière à assurer le remplissage des centaines de coeurs proposés par l’architecture. Les latences mémoires, importantes en regard du temps de traitement de chaque tâche, encouragent également la ré-allocation des ressources matérielles de calculs bloqués en attente d’opérations mémoire à d’autres traitements. Dans ces circonstances, l’utilisation de nombres très importants de threads permet à l’ordonnanceur GPU de disposer d’un grand nombre de candidats pour optimiser le remplissage des ressources d’exécution fournies par la carte. Ces candidats sont regroupés en warp, ou paquet d’exécution, au moment de leur attribution à un multi-processeur matériel particulier. Pour permettre ce découpage de l’exécution, les modèles de programmation CUDA et OpenCL sont tous deux basés sur trois concepts fondamentaux illustrés par la figure 2.9 : — le kernel représente la suite d’instructions à exécuter sur le GPU. Il se présente sous la forme d’une fonction admettant un ensemble de paramètres en entrée et en sortie. Il est possible au kernel d’utiliser les primitives fournies par la plate-forme de programmation elle-même, mais il ne peut faire appel à aucune bibliothèque ou fonctionnalité offerte par le CPU. — le work-item (OpenCL) / thread (CUDA) (ou tâche) représente le support d’exécution d’une instance de kernel. Chaque thread a accès à son propre espace mémoire, comme évoqué dans la présentation de l’architecture matérielle GPU, mais également aux données partagées de la carte. — le work-group (OpenCL) / bloc (CUDA) (ou groupe de tâches) représente une grille de une à trois dimensions de tâches d’exécution GPU. Ce bloc permet de gérer le partage de ressources entre les traitements manipulant des données proches en mémoire et le découpage des données du traitement. Dans le cas d’une matrice, par exemple, il est possible d’associer un bloc de tâches à chaque ligne de la matrice, de manière à permettre l’échange de données et des synchronisations locales entre ces tâches. La nature déportée de la carte graphique impose une préparation de l’exécution et des données, puis une récupération des résultats et des ressources après l’exécution sur GPU. La réalisation d’un traitement est ainsi découpée en cinq phases (Figure 2.10) : — Chargement du programme. Les traitements à exécuter sont envoyés sur la carte graphique sous forme de binaires pré-compilés (CUDA) ou de code source (OpenCL, CUDA) devant auparavant passer par une compilation gérée par la plate-forme de programmation. — Allocations mémoires des paramètres et copie des données d’entrée. Les paramètres duCHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 38 ND-Range (ensemble de work-group) Périphérique Work-group Multi-processeur Work-item Coeur graphique Figure 2.9 – Correspondances entre les structures de découpage OpenCL et l’architecture maté- rielle GPU programme sont alloués par le processeur central dans la mémoire globale de la carte, et les données d’entrée recopiées ou rendues accessibles sous forme de partage mémoire au GPU. — Lancement de l’exécution d’un ou de plusieurs kernels. Une fois les paramètres préparés sur la carte, le processeur soumet un ou plusieurs kernels d’exécution à l’ordonnanceur GPU. Ces soumissions peuvent être effectuées de manière synchrone, auquel cas le programme CPU demeurera bloqué jusqu’à la fin de l’exécution, ou asynchrone. Des dépendances peuvent être définies entre kernels d’exécution, de manière à garantir leur ordre de passage sur GPU. — Exécution non interruptible sur la carte graphique Les traitements sont lancés par la plate-forme GPU dès que des ressources sont disponibles, à la discrétion de l’ordonnanceur. Il n’est pas possible, une fois un traitement lancé, de l’interrompre depuis le CPU, ce qui peut causer un blocage du programme de durée importante en cas de lancement synchrone. Plusieurs kernels sont susceptibles d’être lancés simultanément par l’ordonnanceur. — Récupération des résultats et libération des ressources. Une fois l’exécution terminée, les données résultats stockées dans la mémoire globale de la carte peuvent être récupérées par le programme CPU, en vue de traitements supplémentaires, d’affichage, ou de stockage des résultats. La libération des ressources n’est pas automatique, et doit également être effectuée explicitement pour ne pas bloquer ou pénaliser de futures exécutions. CUDA et OpenCL permettent l’utilisation de plusieurs cartes graphiques par un même programme. Dans ce cas, l’utilisation de soumissions asynchrones permet la gestion simultanée de plusieurs files d’exécution. L’utilisation efficace des ressources matérielles GPU requiert toutefois une connaissance de ce mécanisme de soumission et des optimisations mémoires effectuées à l’exécution. Si les interfaces de programmation CUDA et OpenCL ne sont directement accessibles que depuis des programmes C ou C++, l’utilisation du calcul sur GPU n’est pas limitée à ces deux langages de programmation, grâce aux couches de liaisons avec des bibliothèques natives proposéesCHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 39 Chargement des données et des programmes Chargement des données et des programmes Copie des données d'entrée et allocation des espaces résultats Copie des données d'entrée et allocation des espaces résultats Lancement de l'exécution d'un ou plusieurs kernels Lancement de l'exécution d'un ou plusieurs kernels Exécution non interruptible sur le périphérique Exécution non interruptible sur le périphérique Récupération des résultats Récupération des résultats Figure 2.10 – Démarche d’exécution GPGPU par de nombreux langages de plus haut niveau. Il est ainsi possible d’exploiter CUDA ou OpenCL en Java à l’aide des bibliothèques JCUDA 8 ou JOCL 9 pour ne citer que quelques solutions disponibles. 2.5.4 Synchronisation des opérations Après avoir évoqué les deux modèles de programmation, nous allons maintenant présenter quelques aspects plus spécifiques d’OpenCL en termes de synchronisation des opérations. Une première caractéristique d’OpenCL est le mode de lancement des opérations à réaliser de manière asynchrone. Après l’obtention d’un contexte d’exécution, une des premières opérations d’un programme OpenCL est de créer une ou plusieurs files d’attente dans lesquelles soumettre les différentes tâches à exécuter. La soumission de chaque tâche permet d’obtenir en retour un objet événement (cl_event), qui peut être utilisé pour construire un arbre de dépendances (DAG) entre les tâches à exécuter. Ces dépendances peuvent être utilisées pour s’assurer que la copie des données, les traitements et la copie des résultats auront lieu en séquence, ou encore pour chaîner plusieurs opérations, sans intervention intermédiaire du programme, comme illustré par la Figure 2.11. OpenCL fournit également des opérations de synchronisation permettant d’attendre de manière bloquante la fin du traitement de la file d’attente ou d’une tâche particulière, pour synchroniser le 8. http ://www.jcuda.org 9. http ://www.jocl.orgCHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 40 op1 op2 op3 op4 e1 = enqueue(op1) e2 = enqueue(op2, e1) e3 = enqueue(op3, e2) e4 = enqueue(op4, e3) waitForEvent(e4) e1 e2 e3 Instructions OpenCL Graphe d'exécution OpenCL Synchronisation bloquante e4 Figure 2.11 – Utilisation des dépendances pour gérer la synchronisation en OpenCL flux du reste du programme. Si les options de suivi des performances sont activées, ces événements stockent également les informations de passage associées à chaque tâche : temps d’attente, temps d’exécution sur le périphérique. Ce premier type de dépendance est extérieur au kernel OpenCL, et ne permet donc pas de contrôler l’accès aux données partagées par chaque thread d’exécution. Pour cela, un second type de synchronisation est utilisé, à base de barrières d’exécution. Celles-ci permettent au développeur de s’assurer que tous les threads concernés atteindront un point de l’algorithme au même moment. Elles sont indispensables dans de nombreuses parallélisations de traitements comme la multiplication de matrices, où chaque thread sera responsable du traitement d’une ligne avant de récupérer les informations de ses voisins pour la suite de l’opération. Dans ce cas, une barrière d’exécution permet de s’assurer que la première opération est bien terminée, de manière à éviter de fausser le résultat. Une barrière d’exécution OpenCL peut être appliquée à l’ensemble (barrière globale) ou un groupe particulier de threads (barrière locale). Dans ce dernier cas, elle peut par exemple être utilisée pour protéger la création et l’utilisation d’un cache de données locales. Un intérêt de ces files d’attente OpenCL est de permettre une gestion explicite des ressources pour chaque périphérique d’exécution : en créant plusieurs contextes d’exécution et files d’attente, il est ainsi possible de gérer directement le flux d’exécution de plusieurs matériels. En contrepartie, cette gestion est exclusivement du ressort du développeur : OpenCL ne fournit à l’heure actuelleCHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 41 pas de mécanisme qui permette de répartir la charge de calcul de manière transparente sur plusieurs matériels distincts. 2.5.5 Regroupement des accès mémoire La mémoire embarquée sur carte graphique se caractérise, comme nous l’avons vu dans la pré- sentation de l’architecture matérielle, par une bande passante et des latences importantes. Si les mécanismes de recouvrement d’exécution évoqués dans la présentation du modèle de programmation permettent d’amortir l’impact de ces latences, ils n’améliorent pas l’utilisation de cette bande passante. Pour cela, un autre mécanisme intervient sur GPU au niveau de chaque multi-processeur, le regroupement des accès mémoire (memory collapsing). L’objectif de ce mécanisme est de grouper les lectures de données proches en mémoire en requêtes de lecture de taille plus importante, tel qu’illustré par la Figure 2.12. Ces requêtes consolidées mettent à meilleure contribution la bande passante offerte par la mémoire et permettent également de regrouper les latences de chaque accès individuel. Lecture 128 bits Lecture 128 bits Mémoire globale Warp d'exécution Figure 2.12 – Mécanisme de regroupement des accès mémoire sur GPU La détection de ces accès contigus est dépendante, sur les architectures matérielles les plus anciennes, d’accès mémoires très réguliers (tâche n accédant à l’adresse n + 1 en mémoire). Les matériels plus récents permettent le regroupement d’accès moins ordonnés, ainsi que leur consolidation en requêtes de taille plus importante, pour maximiser l’utilisation de ce mécanisme sur des programmes plus irréguliers. Il est important de prendre en compte ce mécanisme lors de la conception d’un programme sur GPU, particulièrement sur des architectures dénuées de cache L1 et L2. Une mauvaise exploitation de ces regroupements peut en effet multiplier le nombre de lectures mémoires nécessaires pour traiter les mêmes instructions et brider l’exploitation des coeurs d’exécution offerts par la carte graphique, indépendamment de tout gain lié à la parallélisation. 2.5.6 Bibliothèques d’exécution sur GPU L’utilisation des ressources GPU ne requiert pas nécessairement une connaissance des concepts ou des modèles de programmation GPU : de nombreuses bibliothèques de traitement vectoriel ouCHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 42 matriciel traditionnellement utilisées sur CPU sont maintenant disponibles pour cette architecture. Ces bibliothèques fournissent souvent une interface de programmation similaire à leur équivalent CPU, de manière à faciliter leur utilisation dans un programme parallélisé existant. Voici quelques exemples de bibliothèques de ce type basées sur CUDA : — cuBLAS est une implémentation du standard d’algèbre linéaire BLAS. Certaines opérations deviennent ainsi 6x à 17x plus rapides que leur équivalent CPU. Cette bibliothèque fait partie des bibliothèques optimisées GPU fournies par la société NVIDIA 10 . — cuFFT, pour CUDA Fast Fourier Transform library, permet le calcul de transformées rapides de Fourrier sur GPU. Cette bibliothèque est également fournie par la société NVIDIA. — CUSP (C++ Templated Sparse Matrix Library) est une bibliothèque d’algèbre linéaire à faible densité. Elle permet également la manipulation et le traitement de graphes. Son utilisation repose sur le mécanisme des templates C++ pour permettre la génération de code GPU parallélisé en fonction des traitements demandés par l’utilisateur. — cuSparse est une bibliothèque de traitements matriciels fournie par NVIDIA. Les formats de représentations de matrice creuses les plus courants (COO, CSR, CSC, ELL/HYB) et leur manipulation sont gérés de manière native en CUDA. Si de nombreuses bibliothèques utilisent le modèle de programmation CUDA, des alternatives basées sur OpenCL existent également : — clMath (anciennement AMD APPML) [amd] recouvre à la fois les opérations proposées par BLAS et le traitement des transformées de Fourrier. L’utilisation de cette bibliothèque est souvent combinée à cette de clMAGMA [CDD+13], qui fournit de nombreux solveurs linéaires et solutions de factorisation, réduction ou transformation de matrices. — clpp [clp] est un autre projet fournissant des primitives de traitement en parallèle de structures de données. Ces traitements incluent notamment la recherche par préfixe (“scan”), le tri, ou la réduction de valeurs, de manière à faciliter la parallélisation de traitements plus complexes sur des structures telles que des graphes ou des arbres. — VexCL [Dem] facilite également le traitement de matrices et de vecteurs en OpenCL. Cette bibliothèque est plus particulièrement orientée vers la réduction de la quantité de code né- cessaire à la préparation et à la gestion des traitements sur GPU, au moyen de l’architecture objet C++. Certaines bibliothèques supportent plusieurs plates-formes d’exécution comme OpenCL, CUDA ou OpenMP avec une même interface de programmation. C’est notamment le cas d’OpenCV [Bra00], pour la manipulation d’images en temps réel, ou ViennaCL [RWR10], pour la résolution de problèmes d’algèbre linéaire. Des comparaisons de l’utilisation et des performances de VexCL et ViennaCL sont disponibles dans la littérature [DARG12]. Une bibliothèque logicielle particulièrement intéressante est SnuCL [KSL+12]. Cette solution propose des opérations parallèles similaires à MPI pouvant être utilisées de manière transparente sur des clusters de CPU ou de GPU. Ces opérations permettent au concepteur de totalement se détacher de la plate-forme d’exécution, mais reste toutefois réservée pour l’instant aux langages C et C++. 10. https://developer.nvidia.com/gpu-accelerated-librariesCHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 43 2.5.7 Optimisation de la soumission de tâches sur GPU La possibilité de soumettre des tâches de manière asynchrone et de définir des dépendances entre ces tâches rapproche l’utilisation efficace du GPU des problématiques d’ordonnancement présentes dans la littérature. Dans [TPO10], les auteurs analysent ainsi l’impact de différentes stratégies d’ordonnancement sur le temps nécessaire pour traiter un lot de tâches irrégulières. Pour cela, les traitements à réaliser sont groupées en kernels de manière dynamique, plutôt que directement soumises sur la plateforme, pour optimiser l’occupation des ressources. Plutôt que d’intervenir sur le regroupement des traitements, d’autres études reposent sur l’utilisation de l’historique d’exécution pour optimiser le passage des tâches sur GPU. Les auteurs de [ATN09] proposent ainsi un ordonnancement basé sur la mémorisation du temps d’exécution des tâches sur plusieurs architectures distinctes. De cette manière, les prochaines tâches peuvent alors être soumises sur la plate-forme permettant la terminaison la plus rapide. Les résultats obtenus sont très intéressants, mais très dépendants de cette prévisibilité pour assurer un bon remplissage des ressources. L’utilisation du processeur en parallèle du GPU permet de gagner 30% en performance par rapport à l’utilisation du seul GPU dans un autre article [GBHS11]. L’utilisation de l’historique dans cet article permet également d’assurer un remplissage à 80% des ressources, malgré la forte disparité en performance entre matériel CPU et GPU. Les auteurs de [MGR+11] étudient également l’impact de la décomposition des traitements en un ou plusieurs kernels sur l’ordonnancement OpenCL à l’aide de la plate-forme SURF [BETVG08] adaptée à instrumentalisation de traitements d’images. Les mesures effectuées illustrent l’impact du nombre, de la durée et de la dimension de chaque kernel sur les performances obtenues. L’interface de soumissions asynchrone proposée par OpenCL est utilisée pour gérer fi- nement les dépendances entre chaque kernel et obtenir les informations de temps précises de début et fin des traitements. La mesure du décalage entre temps de soumission et temps de lancement du kernel permet de déterminer le moment le plus pertinent pour lancer les prochaines requêtes, de manière à ne pas pénaliser l’exécution. Un défi de l’optimisation du passage de tâches sur GPU est l’absence de contrôle sur l’ordonnanceur lui-même. Si certains articles [NSL+11] suggèrent des améliorations possibles en termes d’exécution des warps pour une meilleure occupation des ressources des coeurs d’exécution, il est difficile de savoir si ces améliorations sont ou seront reprises dans les implémentations CUDA ou OpenCL existantes. La mesure des performances est donc un outil indispensable pour guider l’optimisation de l’exécution sur GPU, même en présence d’outils proposés par des sociétés comme NVIDIA permettant de déterminer à priori les ressources utilisées par un programme GPU donné. 2.5.8 Bonnes pratiques de programmation sur GPU Au vu de ces éléments sur l’architecture d’exécution GPU, de nombreux ensembles de recommandations existent sur la bonne manière de programmer sur GPU pour obtenir un programme efficace [cud09, Cor12, AG13]. Ces recommandations s’articulent autour de quatre objectifs principaux :CHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 44 Minimisation des coûts de transferts Cette minimisation peut être effectuée à deux niveaux, soit en réduisant le nombre de transferts effectués, soit en regroupant ces transferts. La réduction du nombre de transferts n’est pas toujours possible, chaque donnée utilisée sur le périphérique devant être explicitement copiée avant son utilisation. Elle peut toutefois être obtenue en réduisant la fréquence de synchronisation de la valeur de cette donnée entre CPU et GPU, ou en augmentant le temps passé sur le périphérique entre chaque retour sur le CPU. Le regroupement est un autre moyen de minimiser le temps total des transferts, en utilisant la bande passante importante fournie par l’interface PCI-Express pour mettre en commun plusieurs copies de données. Cette mise en commun est facilitée par les mécanismes de copies asynchrone proposés par les modèles de programmation GPU. Optimisation des accès mémoires L’optimisation des accès mémoires correspond à deux problématiques distinctes sur GPU : la minimisation des latences d’accès et la maximisation de l’utilisation de la bande passante mémoire. La minimisation des latences d’accès est possible au moyen des mémoires spécifiques (constantes, globales, locales) proposées par l’architecture matérielle. L’utilisation de la mémoire partagée permet également d’éviter de récupérer à plusieurs reprises des données fréquemment utilisées par chaque traitement. La maximisation de l’utilisation de la bande passante mémoire est dépendante du mécanisme de regroupement des accès mémoires de l’ordonnanceur et du l’ordre et de la proximité des données accédées en mémoire. Pour faciliter ce regroupement, il est recommandé d’utiliser les structures de données les plus régulières possibles sur GPU. Maximisation de l’occupation Un dernier point essentiel pour l’obtention de bonnes performances sur GPU est d’utiliser le plus efficacement possible les nombreux coeurs d’exécution offerts par l’architecture. Cette occupation dépend de trois paramètres : Les ressources consommées par chaque thread. Chaque multi-processeur ne dispose que d’un nombre limité de registres, partagés de manière statique au lancement du programme. L’utilisation d’un trop grand nombre de registres par threads est susceptible d’empêcher l’utilisation de tous les coeurs d’exécution disponibles. Le nombre de conditions présentes dans l’algorithme. Du fait des limitations en termes de branchements de l’architecture, l’utilisation de conditions impose l’évaluation des deux branches par le matériel, pour ne conserver ensuite que les résultats de la branche effectivement retenue. L’utilisation de nombreuses branches est alors susceptible de cause une réduction important de l’occupation des coeurs d’exécution. Le nombre de threads total lancé. Comme évoqué précédemment, l’ordonnanceur d’exécution GPU est capable de dissimuler des latences d’exécution en attribuant automatiquement plusieursCHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 45 threads à un même coeur d’exécution. Ce mécanisme de recouvrement dépend de la présence de nombreux threads à exécuter pour être pleinement efficace. 2.6 Vers une convergence many-core Tandis que l’exécution sur GPU devient toujours plus générique, avec l’apparition de mécanismes de cache ou l’implémentation de toujours plus d’opérations au niveau de la plate-forme, d’autres architectures dotées de grands nombres de coeurs (dites architectures many-core) se dé- mocratisent également. Les circuits programmables ou FPGA sont ainsi de plus en plus étudiés comme support d’exé- cutions parallèles économes en énergie et peu coûteux [WLL+ , BRT11]. La puissance offerte par les circuits les plus récents permet notamment d’envisager l’utilisation de compilateurs et de modèles de programmation existants plutôt que d’une expertise individuelle des instructions pour réduire le temps et les coûts de développement. La société Altera propose ainsi depuis 2011 une implémentation d’OpenCL sur ses matériels FPGA 11 . Intel propose également depuis 2013 la première architecture many-core basée sur des CPU traditionnels, le Xeon Phi. Cette nouvelle plate-forme peut être utilisée en tant qu’accélérateur séparé, par le biais des modèles de programmation OpenCL ou OpenACC, ou directement comme un processeur multi-coeurs traditionnel à l’aide du modèle de programmation OpenMP. La possibilité d’utiliser OpenCL sur ces trois plates-formes illustre la tendance actuelle à la convergence entre ces solutions many-core, de manière à permettre à un même programme de s’exécuter sur une grande variété de plates-formes matérielles. Cette convergence est également illustrée par celle des supports physiques, toutes ces nouvelles plates-formes étant basées sur l’utilisation de cartes connectées en PCI-Express à un ordinateur existant (Figure 2.6). Figure 2.13 – Carte graphique NVIDIA Tesla Figure 2.14 – Carte Intel Xeon Phi Figure 2.15 – Accélérateur FPGA Altera 2.7 Synthèse Les cartes graphiques sont un type d’architecture matérielle permettant une exécution en mé- moire partagée. Leur utilisation s’intègre dans le cadre d’un mouvement récent des problématiques de parallélisation vers les architectures many-core, proposant un très grand nombre de coeurs d’exécution sur un même matériel. Ce parallélisme matériel peut être exploité indirectement, par 11. http ://www.altera.com/products/software/opencl/opencl-index.htmlCHAPITRE 2. MODÈLES D’EXÉCUTION ET DE PROGRAMMATION PARALLÈLES 46 le biais de bibliothèques de parallélisation proposant des opérations de haut niveau, ou via des plates-formes telles que OpenCL ou CUDA. Dans ce dernier cas se posent toutefois de nombreuses considérations d’implémentations pour obtenir un programme performant, exploitant les ressources offertes par le matériel de manière efficace. L’utilisation de cette architecture d’exécution est déjà possible dans le cadre de nombreuses bibliothèques d’algèbre linéaire. Si ce type de problème n’est pas forcément directement utilisé dans les systèmes multi-agents, cette possibilité de proposer des traitements parallélisés en fait une piste intéressante pour l’accélération de programmes existants. Les cartes graphiques se distinguent également par leur disponibilité sur de nombreuses machines personnelles, par opposition à des solutions matérielles spécialisées comme les grilles ou les clusters, ce qui en fait une piste intéressante pour la parallélisation de systèmes multi-agents.3 Parallelisation de syst ´ emes multi ` -agents Comme évoqué dans notre présentation des systèmes multi-agents, l’utilisation de simulations de tailles importantes peut rapidement engendrer des besoins en temps d’exécution et en mémoire importants. L’objectif du recours à la parallélisation est de résoudre ces problèmes en permettant l’accès à davantage de ressources mémoires ou d’exécution. Comme nous venons de le voir, la démarche de parallélisation d’un programme implique une répartition de son exécution et parfois de ses données. Ce découpage est facilité dans le cas des modèles multi-agents par la décomposition du système en agents indépendants dotés de comportements et de données propres. La parallélisation d’une simulation multi-agents est un processus complexe en temps et en ressources, du fait de l’exécution naturellement synchrone de nombreux modèles sur la base de pas de temps ou d’événements. Ce synchronisme impose en effet de nombreux échanges de données en cours de simulation. La délégation d’une partie de la simulation à chaque hôte ou l’exécution en mémoire partagée du système sont donc généralement les parallélisations les plus aisées à réaliser [Ble09] car elles minimisent le nombre d’échanges nécessaires à la synchronisation. L’environnement représente alors la seule structure globale devant être partagée entre l’ensemble de l’exécution. Dans les sections suivantes, nous présentons ces différentes approches de parallélisation de systèmes multi-agents pour souligner les problématiques qui devront être abordées dans notre proposition. Pour chacune, nous évoquons son principe ainsi que ses indications ou contre-indications. Nous voyons ensuite leur utilisation dans le cadre de plates-formes multi-agents parallèles qui dé- chargent le concepteur d’une partie importante de la gestion de cette parallélisation. Enfin, nous présentons des applications de ces techniques de parallélisation au GPU dans le cadre de divers types de systèmes multi-agents, avant de présenter FLAME-GPU, une première plate-forme multiagents générique pour l’exécution sur GPU. 3.1 Stratégies de parallélisation Il est possible de décomposer l’exécution d’un système multi-agents en trois grandes dynamiques [MFD09], illustrées sur la Figure 3.1 : — Celle de l’environnement, qui définit l’évolution de l’espace simulé. — Celle des comportements des différents agents présents dans le système. — Celle de l’ordonnanceur, qui contrôle l’exécution et la synchronisation des deux dynamiques précédentes. C’est cet ordonnanceur qui détermine si l’exécution de la simulation est guidée par des pas de temps (time-driven) ou par des événements (event-driven).CHAPITRE 3. PARALLÉLISATION DE SYSTÈMES MULTI-AGENTS 48 La parallélisation du modèle multi-agents implique une intervention sur une ou plusieurs de ces dynamiques en conservant la cohérence du modèle découlant de leur interaction. Comportements Environnement Ordonnanceur Contrôle Contrôle Moyens d'action et de perception Figure 3.1 – Rôle de l’ordonnanceur multi-agents 3.1.1 Parallélisation de l’ordonnanceur Une première manière de paralléliser le déroulement d’une simulation multi-agents est d’en lancer plusieurs instances séquentielles simultanément [BCC+11, CDFD10]. Cette parallélisation de lancement très simple, dite par lots, permet d’exploiter aisément plusieurs processeurs ou machines sans apporter aucune modification à la simulation. Elle est particulièrement intéressante pour tester de vastes ensembles de scénarios, en permettant d’obtenir une quantité plus importante de résultats dans la même période de temps. Il est cependant important de noter que cette parallélisation par lots ne réduit ni le temps, ni la quantité de mémoire nécessaires à l’exécution de chaque simulation. Elle ne représente donc pas une solution dans le cas où les ressources mémoires locales empêchent le lancement d’une simulation. Elle ne permet pas non plus d’obtenir les premiers résultats plus rapidement qu’une implémentation séquentielle, et en augmente simplement la quantité. Une approche de parallélisation de l’ordonnancement moins naïve consiste à répartir l’exécution de l’environnement et des agents entre plusieurs ordonnanceurs. Dans ce cas, un ordonnanceur est lancé pour chaque ressource d’exécution et collabore avec les autres ordonnanceurs pour traiter la simulation. Cette approche requiert toutefois la possibilité de pouvoir découper le système multi-agents en ensembles d’exécution distincts, de manière à minimiser les échanges de données et les synchronisations entre ordonnanceurs. Elle est proposée par plusieurs plates-formes multiagents parallèles, comme nous le verrons plus loin. Certaines simulations multi-agents [BMD+09] sont dites multi-échelles : dans ce cas l’évolution du modèle est gouvernée par plusieurs modèles agents représentant des échelles de simulation ou des aspects distincts d’un même système. Si chacun de ces modèles évolue de manière semiindépendante, une approche de parallélisation intuitive consiste à confier l’exécution des différents aspects de la simulation à plusieurs acteurs, de manière à permettre l’exécution en parallèle de la simulation sans modifier fondamentalement chaque modèle.CHAPITRE 3. PARALLÉLISATION DE SYSTÈMES MULTI-AGENTS 49 3.1.2 Parallélisation des comportements Une seconde approche de parallélisation consiste à paralléliser l’exécution des comportements des agents du modèle. Cette parallélisation peut être effectuée au niveau du système dans son ensemble, au niveau de l’agent, ou au niveau de chaque comportement. Dans le premier cas, l’ensemble des traitements de même type dans le système sera exécuté simultanément. Pour des raisons d’équité, l’exécution des agents demeure synchronisée, ce qui permet d’assurer que tous les agents se déplacent, respirent, ou consomment de l’énergie en même temps. Ce type de parallélisation, consistant à lancer le même traitement pour un grand nombre d’agents, est bien adapté à une exécution sur GPU. Dans le second cas, la parallélisation permet le traitement simultané de plusieurs types de comportements, de manière à gérer l’évolution de manière asynchrone à l’intérieur d’un pas d’évolution. Il est dans ce cas impossible de garantir que tous les agents progressent à la même vitesse dans leurs traitements : un agent est ainsi susceptible de se déplacer avant qu’un autre ne respire ou inversement. Cette seconde approche est sans doute l’une des plus réaliste pour des modèles où l’équité est introduite par la modélisation, mais elle est en pratique une des plus difficiles à mettre en place et à contrôler. Dans le dernier cas, enfin, l’algorithme d’évolution des agents n’est pas modifié et seul le traitement du comportement lui-même est parallélisé. Cette dernière approche est particulièrement intéressante dans le cas d’agents effectuant des actions coûteuses, à même d’être parallélisées, dans le cadre de leur évolution. Des exemples d’actions candidates à la parallélisation sont la collecte de données dans un périmètre étendu, ou encore le calcul de déplacements complexes mettant en jeu de nombreux paramètres. 3.1.3 Parallélisation de l’environnement Un dernier axe de parallélisation concerne la dynamique de l’environnement. En fonction du système multi-agents décrit, cette dynamique peut être inexistante, si l’environnement est utilisé comme un simple repère spatial comme dans le cas des modèles d’essaims, ou au contraire très complexe comme dans le cas de modèles comme les fourmis. Si le temps de traitement de la mise à jour de l’environnement représente une portion significative du temps d’exécution du modèle, il devient dans ce cas intéressant de paralléliser cette mise à jour. La parallélisation de l’environnement est également souvent requise parce qu’il s’agit de la structure de données dont taille est la plus importante dans le modèle. Dans ce cas, la parallélisation ne vise plus uniquement l’obtention de meilleures performances, mais également la possibilité de simuler des environnements de taille plus importante. Le découpage de l’environnement implique généralement la répartition des agents présents dans le modèle, de manière à pouvoir conserver les portions d’environnements et leurs agents associés sur les mêmes unités d’exécution. Ce type de partitionnement est également proposé par de nombreuses plates-formes agents parallèles. 3.2 Plates-formes multi-agents La parallélisation de simulations multi-agents rencontre de nombreuses difficultés liées à l’adaptation d’un programme en mémoire partagée ou distribuée. Il est ainsi possible de citer la nécessité d’identifier les sections parallèles de l’algorithme et de synchroniser l’accès aux données partagées en mémoire partagée, ou la décomposition explicite des données et de l’algorithme ainsiCHAPITRE 3. PARALLÉLISATION DE SYSTÈMES MULTI-AGENTS 50 que la prise en compte des échanges et des communications requises par l’exécution en mémoire distribuée. Heureusement, le formalisme multi-agents propose une décomposition du système en agents ou en environnement dont la gestion et les échanges peuvent être traités par des plates-formes multi-agents spécialisées. Cette prise en charge d’une partie de l’exécution permet également à de telles plates-formes de faciliter cette démarche de parallélisation. 3.2.1 Madkit MadKit (Multi-Agent Development Kit) 1 est une plate-forme générique de développement et d’exécution de systèmes multi-agents [GF00a] réalisée en Java. Elle est développée au sein du LIRRM 2 . Le modèle AGR (Agent, Groupe, Rôle) [Gut01] est à la base des modèles et de l’architecture de la plate-forme, dont les différents services sont implémentés par des agents pour un maximum de flexibilité. Le noyau de Madkit se caractérise par sa légèreté et n’assure que les services nécessaires à la mise en place de ces agents : la gestion des groupes et des rôles, un ordonnancement synchrone, et une infrastructure d’échange de messages entre agents locaux. Par défaut MadKit associe un thread à chaque agent autonome présent dans le système. Pour éviter l’utilisation de milliers de threads dans le cas de nombres importants d’agents, il est possible de créer des agents découplés de l’ordonnanceur, gérés et mis à jour par un ou plusieurs agents observateurs associés à des threads d’exécution. Ce modèle multi-thread permet une parallélisation aisée des agents en mémoire partagée. La parallélisation du modèle en mémoire distribuée est rendue possible par la possibilité de lancer plusieurs noyaux MadKit et de surcharger le service d’échange de messages pour permettre à toutes ces simulations de communiquer [GF00b]. Cette surcharge d’un service système est permise par la présence de points d’accroche (hook) permettant de surveiller les messages échangés ou de remplacer un service particulier. Un agent permettant ce fonctionnement nommé Communicator est fourni par défaut avec MadKit. Chaque noyau exécute alors une instance de cette agent Communicator pour gérer l’échange des messages. Un nouveau mécanisme de distribution permettant le dialogue par le biais d’un agent réseau sans connaître l’emplacement des instances distantes, NetComm [RHK06], a depuis également été proposé. Ces mécanismes de communication permettent soit une distribution maître-esclave, où un noyau possède le modèle de référence mis à jour par les agents distants, soit sur une duplication du modèle sur chaque instance. Ces deux approches de distribution sont étudiées plus en détail dans [MBF02]. 3.2.2 JADE La plate-forme JADE [BCG07] est une plate-forme multi-agents développée en Java par le groupe de recherche CSELT (partie de Gruppo Telecom). Elle permet la réalisation de systèmes multi-agents conformes à la norme FIPA [fip]. Les services FIPA sont fournis directement par la plate-forme JADE, ce qui rend le support de la norme transparent pour le concepteur de modèle. L’intégration d’un nouvel agent dans un modèle JADE en cours d’exécution est décomposée 1. http://www.madkit.org 2. Laboratoire d’Informatique, de Robotique et de Microélectronique de MontpellierCHAPITRE 3. PARALLÉLISATION DE SYSTÈMES MULTI-AGENTS 51 en plusieurs étapes : — L’enregistrement de l’agent auprès de la plate-forme agent. — L’attribution d’un nom et d’une adresse unique à l’agent. — L’utilisation des services de recherche et de communication pour s’interfacer avec les autres agents. Ce découplage des agents de leur emplacement physique rend possible la migration d’agents entre machines en cours d’exécution, au moyen d’un ensemble d’outils prenant en charge le dé- ploiement et le suivi du modèle. La distribution est assurée par l’utilisation des threads et une interface de communication proposée par JADE. Cette interface repose sur le protocole RMI proposé par Java pour communiquer entre instances distantes [VQC02]. JADE ne prend en charge que la création, l’évolution et la communication entre agents, et ne propose aucune structure de données pour la représentation de l’environnement ou d’autres données partagées. La représentation de ces éléments est néanmoins possible sous forme d’objets indépendant ou d’agents spécifiques dans la simulation. Il est ensuite possible d’utiliser des messages pour envoyer ou recevoir des informations sur ces structures partagées. En prenant en compte toutes les communications, JADE facilite l’utilisation d’une architecture en mémoire partagée ou distribuée pour la simulation multi-agents. Cette plate-forme se limite toutefois à ce rôle, et ne propose pas de mécanisme de synchronisation ou de partage automatique des données entre instances d’exécution : cette gestion reste de la responsabilité du concepteur du modèle, en utilisant les structures de données fournies par le langage Java. 3.2.3 FLAME FLAME 3 [HCS06] est un générateur de simulations multi-agents parallélisées. Il se base pour cela sur la description des modèles sous la forme de machines à états (X-Machine) en XMML, version étendue du XML. Cette description abstraite permet de découpler l’exécution du système multi-agents de toute plate-forme d’exécution spécifique. La description d’un modèle FLAME repose sur la spécification d’un état initial, d’un ensemble d’états intermédiaires et d’un ou plusieurs état finaux. Le passage entre ces états est décrit sous forme de fonctions de transition, exécutées pour chaque agent à chaque pas de temps de la simulation. Une itération, ou pas de temps, est définie comme la fenêtre de temps nécessaire à chaque agent pour progresser de son état initial à l’un des états finaux du graphe de transitions. Ce processus est reproduit à chaque itération. En parallèle de ces états représentant les stades d’exécution de chaque agent, FLAME associe à chaque agent une mémoire pouvant contenir des variables lues et modifiées par les différentes fonctions de transition. La communication entre agents est assurée par la possibilité d’envoyer et de recevoir des messages au niveau de ces mêmes fonctions de transition. Leur transmission est réalisée de manière synchrone, pour garantir la réception simultanée de chaque message par tous ses destinataires : cette synchronisation est particulièrement importante lors de l’exécution d’un modèle sur une architecture distribuée HPC pour permettre qu’aucun agent ne soit favorisé ou défavorisé par son ordre de passage. Les messages sont distribués à l’ensemble des agents du modèle par la bibliothèque Libmboard basée sur MPI pour les échanges de messages [KRH+10]. Il est ensuite possible à chaque agent de filtrer les seuls messages le concernant. 3. FLexible Large-scale Agent-based Modeling EnvironmentCHAPITRE 3. PARALLÉLISATION DE SYSTÈMES MULTI-AGENTS 52 La modélisation d’un modèle en FLAME est décomposée en quatre étapes : — La description de chaque agent et de sa fonction. — La description des états correspondant à leur évolution à chaque itération — L’identification des variables utilisées pour le déclenchement et dans le traitement de chaque fonction de transition définie dans le modèle. — L’identification des messages émis ou reçus par ces fonctions de transition. Ce processus peut être représenté sous la forme d’un diagramme de transition. La Figure 3.2 illustre une représentation possible d’un modèle d’essaim (Swarm) avec FLAME. début Diffusion de la position état 1 état 2 Réception autres positions fin Mise à jour position Nouvelle itération Figure 3.2 – Représentation conceptuelle d’une itération de modèle Swarm L’implémentation du modèle économique européen EURACE, mettant en jeu des agents intervenants sur plusieurs marchés économiques, prévoit d’utiliser ces mécanismes [DvdHD08]. La plate-forme FLAME permet de s’abstraire totalement de la démarche de parallélisation en mémoire partagée ou en mémoire distribuée, en prenant en charge la totalité de la génération de la simulation. Cette abstraction dépend toutefois d’une description très fine du modèle et de ses interactions par le concepteur, qui contraint fortement la définition des modèles. 3.2.4 Repast HPC Repast HPC [CN11] est une bibliothèque dédiée au calcul sur architectures hautes performances. Elle propose une implémentation des concepts fondamentaux de RepastSimphony sur des architectures mémoire distribuées et plus particulièrement sur les clusters de calculs. Le développement de modèles agents avec Repast HPC peut être effectué directement à l’aide des composants de la bibliothèque ou en manipulant des concepts d’emplacements et de tortues inspirés de Logo. L’implémentation des agents est réalisée sous forme d’instances de classes C++ encapsulées dans un Contexte représentant leur environnement. Leur organisation dans le modèle est assurée par la définition de Projections. Une projection grille place ainsi les agents dans une structure grille où chaque agent correspond à une cellule, tandis qu’une projection réseau permet la mise en place de relations entre agents. Une simulation Repast HPC est ainsi composée d’agents, d’au moins un contexte, et de zéro ou plusieurs projections. La distribution des agents en Repast HPC est basée sur un parallélisme à mémoire distribuée. Les agents du modèle sont répartis entre plusieurs processus responsables du traitement de leurs agents locaux. L’interaction avec un agent distant requiert sa copie en mémoire locale, la modification de cette copie, puis sa synchronisation avec l’agent original, pendant que l’exécution de l’agent distant est suspendue [rep]. Pour faciliter la gestion de ces copies, chaque agent est identifié de manière unique par trois informations : un identifiant attribué par l’utilisateur, l’index de son processus de lancement et son type. Chaque agent stocke également l’index du processusCHAPITRE 3. PARALLÉLISATION DE SYSTÈMES MULTI-AGENTS 53 l’exécutant actuellement. La synchronisation et l’échange des agents entre processus sont assurés via le protocole de communication MPI [rep] par le biais de son implémentation BoostMPI 4 . Ce mécanisme de découpage permet à Repast HPC de prendre en charge de nombreuses problématiques de la parallélisation en mémoire distribuée et en particulier la copie et l’exécution des agents présents sur les différents noeuds d’exécution. 3.2.5 D-MASON La plate-forme D-MASON [CCC+12] est une version parallèle de la bibliothèque MASON, ajoutant une couche supplémentaire permettant la distribution de la simulation en mémoire distribuée sur des machines hétérogènes. La distribution de la simulation en D-MASON est basée sur trois blocs fonctionnels, un gestionnaire, des travailleurs (workers) correspondant à des threads Java et des communications. Le rôle de gestionnaire est assuré par une application maîtresse qui prépare la simulation et gère ensuite son déroulement en pas de temps synchrones en coordonnant les différents processus travailleurs. Cette répartition des tâches repose sur le partitionnement de l’espace à simuler en régions pouvant être assignées à un worker particulier. Chaque worker est ensuite responsable de l’exécution des agents présents dans sa région, ainsi que de la synchronisation des traitements ou de la migration des agents entre régions. Les échanges requis pour ces opérations sont gérés par le biais de JMS [CCM+11], une interface de programmation permettant d’envoyer et de recevoir des messages asynchrones entre composants Java. Cette répartition automatique de l’environnement par la plate-forme, associée à celle de l’ordonnancement et des traitements, permet la gestion des trois approches de parallélisation de systèmes multi-agents. D-MASON se caractérise de manière générale par la volonté d’introduire la distribution à tous les niveaux du système, plutôt que de se focaliser uniquement sur les performances, pour résoudre les limitations en ressources, en particulier mémoires, de manière transparente pour le concepteur. 3.2.6 Pandora Une dernière plate-forme permettant la distribution d’un système multi-agents sur plusieurs noeuds de cluster est Pandora [pan]. Cette plate-forme permet le prototypage rapide de modèles à l’aide du langage de programmation Python, ou la réalisation de modèles plus complexes à l’aide de C++. Ces deux langages d’implémentation partagent la même interface de programmation et les mêmes concepts, de manière à faciliter l’adaptation de modèles entre les deux syntaxes. Il est plus particulièrement conçu pour la simulation de milliers d’agents dans un espace géographique. La distribution en mémoire partagée des systèmes Pandora repose sur la distribution de portions de l’environnement et des agents sur chaque noeud du système à l’aide de OpenMP et de MPI [ASÁ01]. La parallélisation locale de la simulation est basée sur l’observation par ses concepteurs d’une décomposition standard du cycle agent dans de nombreux modèles multi-agents : — Évaluation de l’environnement et des stimulis. — Prise de décision quant à l’action à effectuer. — Réalisation de l’action. 4. http://www.boost.org/CHAPITRE 3. PARALLÉLISATION DE SYSTÈMES MULTI-AGENTS 54 — Mise à jour des variables internes. Pandora permet la parallélisation de l’évaluation de l’environnement et de la prise de décision de manière automatique avec OpenMP. La suite des traitements est séquentialisée pour garantir la cohérence des mises à jour du modèle. L’originalité de cette plate-forme réside dans la gestion automatique de la distribution et de la copie des informations situées à la frontière de deux portions voisines de l’environnement à l’aide des champs d’action [WRC12]. 3.3 État de la simulation multi-agents sur GPU La simulation de systèmes multi-agents met en jeu la parallélisation, qu’elle soit en mémoire partagée ou distribuée. Cette démarche de parallélisation peut être effectuée manuellement ou à l’aide de plates-formes multi-agents parallélisées. Dans les deux cas, elle implique la répartition des traitements du modèle sur plusieurs coeurs d’exécution, que ce soit au niveau de l’ordonnancement, de l’environnement, ou des agents. L’utilisation de nombres importants de coeurs CPU requiert toutefois le recours à des environnements HPC spécialisés, grilles ou clusters de calculs. Ces clusters de calculs ne sont pas forcément à la portée de tout chercheur, soit pour des raisons techniques, soit pour des raisons financières. Dans ces circonstances, les GPU sont une alternative intéressante pour exécuter des nombres importants d’agents, avec leur coût réduit et leurs centaines de coeurs d’exécution. Ils présentent également l’intérêt d’être présents dans la totalité des machines personnelles actuelles. Dans ce chapitre, nous présentons tout d’abord les différents domaines de simulation multiagents ayant déjà fait l’objet d’adaptations sur GPU. Nous évoquons ensuite FLAME-GPU, une première plate-forme d’exécution générique sur GPU, et en montrons les caractéristiques et les limites permettant d’envisager d’autres approches d’exécution de systèmes multi-agents sur GPU. 3.3.1 Parallélisations indépendantes De nombreux systèmes multi-agents ont déjà été parallélisés de manière indépendante sur architecture GPU, dans le cadre d’optimisations de modèles existants ou d’étude de cette plateforme. Ces adaptations peuvent être rassemblées en grandes thématiques, souvent associées à la modélisation agent dans la littérature. La diversité de ces thématiques se retrouve dans les approches d’adaptations retenues, mais permet toutefois de dégager quelques grandes tendances de modélisation sur GPU. Automates cellulaires Les automates cellulaires sont un premier type d’implémentation utilisée pour les systèmes multi-agents se prêtant naturellement à une parallélisation du fait de leur découpage en grille et de l’application du même algorithme d’évolution à chacune des cellules de cette grille. Une telle exécution est dite SPMD (Single Program, Multiple Data ou "Un seul programme, de nombreuses données") et favorise le découpage du traitement sur de multiples unités de calculs. L’utilisation de grilles pour le stockage du système facilite également le partage des données en un ou plusieurs lancements, dans le cas où les besoins en mémoire du modèle seraient trop importants pour un seul GPU. Le Jeu de la Vie est un exemple d’automate cellulaire souvent utilisé pour illustrer ce type deCHAPITRE 3. PARALLÉLISATION DE SYSTÈMES MULTI-AGENTS 55 Buffer A Buffer B Lecture état n Écriture état n + 1 Buffer B Buffer A Lecture état n + 1 Écriture état n + 2 Itération n Itération n + 1 Figure 3.3 – Concepts de double bufferisation des données entre itérations parallélisation, du fait de ses règles simples d’évolution et de l’indépendance de l’évolution de chaque cellule. La seule synchronisation de l’exécution du modèle a lieu entre chaque itération, de manière à assurer la progression de tous les agents au même rythme et la prise en compte des modifications effectuées à l’itération précédente. Cette synchronisation peut être implémentée au moyen d’une barrière d’exécution ou en découpant le traitement en plusieurs lancements. Un découpage en plusieurs lancements permet alors d’utiliser les mécanismes de dépendances fournis par OpenCL et CUDA pour inclure d’autres opérations dans le déroulement de la simulation, telles que l’échange d’une grille d’entrée et d’une grille de sortie (Figure 3.3) entre chaque itération. Un autre exemple d’automate cellulaire parallélisé est SugarScape, un modèle décrivant l’évolution de populations d’individus en fonction de la répartition de glucose dans un environnement en grille. Une parallélisation en CUDA proposée pour ce modèle [DLR07] repose sur l’utilisation de textures graphiques pour représenter cette grille, en tirant parti de la possibilité d’utiliser les canaux de couleurs pour stocker les propriétés de chaque cellule dans un seul pixel, et ainsi de représenter l’environnement dans un seul objet texture. La mise à jour du modèle est effectuée en associant une tâche GPU à chaque cellule de la grille. L’utilisation, comme dans le cas du Jeu de la Vie, d’une texture d’entrée et d’une texture de sortie permet de gérer plus facilement l’affichage de la simulation pendant les traitements, et de contourner la limitation des accès en lecture seule ou écriture seule à ces textures au sein d’un même kernel. Cette impossibilité de lire et d’écrire dans la même texture au cours du même lancement empêche, contrairement au Jeu de la Vie, l’utilisation d’une simple barrière d’exécution entre deux itérations. Cette parallélisation de SugarScape met en avant les problèmes rencontrés par le stockage des agents dans une structure en liste indépendante. Le décès et l’apparition de nouveaux agents nécessitent des mécanismes efficaces de mise à jour de cette liste sur GPU, et en particulier de recherche d’emplacements libres pour stocker les nouveaux individus. La solution retenue dans cette adaptation est de rechercher un emplacement libre décalé de n cases par rapport à l’emplacement de chaque agent en attente de reproduction, et de faire varier ce décalage jusqu’à ce qu’une case libre se dégage pour toutes les reproductions en attente. Cette approche stochastique repose sur l’observation qu’une solution est généralement trouvée en quelques itérations et permet d’éviter de synchroniser chaque reproduction, au prix de la perte d’un peu de temps de calcul.CHAPITRE 3. PARALLÉLISATION DE SYSTÈMES MULTI-AGENTS 56 Ces deux exemples illustrent l’importance des traitements et des échanges de grilles pour paralléliser ce type d’implémentation. Agents indépendants Un autre modèle souvent parallélisé sur GPU est celui des fourmis [CGU+11, UIN12], dont la mise à jour peut être décomposée en deux processus distincts, comme nous l’avons vu dans la description du modèle : — La mise à jour de l’environnement, et en particulier la simulation de la diffusion et de l’évaporation au cours du temps des phéromones déposées par les fourmis. — La gestion du déplacement des fourmis (agents) elles-mêmes, au vu de ces données environnementales et de leur état actuel, à la recherche de nourriture ou en train de rapporter des ressources. Ce second état conditionne le dépôt ou non de phéromones par l’individu. La parallélisation de ce modèle sur GPU pose le problème de synchroniser l’exécution de ces deux processus à chaque itération. L’utilisation de textures impose, comme dans le cas du modèle SugarScape, le recours à plusieurs kernels d’exécution distincts pour pouvoir accéder à ces textures alternativement en écriture, pour la mise à jour des quantités de phéromones, puis en lecture au moment de la détermination du comportement de chaque individu. Cette parallélisation met l’accent sur l’importance de la synchronisation, et plus généralement de la possibilité de mettre en place un graphe de dépendance, pour l’exécution de la simulation en parallèle sur GPU. Un autre exemple de modèle multi-agents avec des agents indépendants est le mouvement de volées de différentes espèces d’oiseaux dans un espace en deux dimensions [Wei13]. Ce mouvement, inspiré du modèle Boids décrit par Craid Reynolds en 1987 [Rey87], illustre l’apparition de comportements émergents au niveau de volées d’oiseaux à partir de règles simples assignées à chaque individu, aboutissant à un compromis de déplacement à chaque itération. Les règles utilisées sont les suivantes : — Séparation : choix de la direction de manière à éviter une trop grande agglomération avec les oiseaux voisins. — Alignement : choix de la direction de manière à adopter la même direction de déplacement que les oiseaux voisins. — Regroupement : choix de la direction de manière à se rapprocher du centre de masse des oiseaux à proximité. Les oiseaux décrits sont positionnés dans un espace continu et il n’existe donc plus cette fois aucune grille sur laquelle baser un découpage pour GPU. Le positionnement de chaque agent dans l’environnement est à la place indiqué par un jeu de coordonnées associé à chaque individu. Le mouvement de chaque individu est également stocké dans ses propriétés sous la forme d’un vecteur. Dans ce cas, le découpage d’exécution retenu n’est plus basé sur une sous-division de l’environnement, mais sur l’association d’une tâche de traitement à chaque individu. La synchronisation entre les individus est effectuée à l’aide de barrières d’exécution dans un même lancement de kernel d’exécution. Pour minimiser le nombre et donc les coûts d’accès à la mémoire globale, les oiseaux sont regroupés en ensembles (clusters) dont les positions et les vitesses sont recopiées en mémoire partagée. Un dernier modèle d’agent concerne la simulation de la propagation de la tuberculose dans les cellules du système immunitaire [DLMK09]. Cet exemple réintroduit un découpage de l’environnement en espace discret, sous la forme d’une grille d’agents représentant alternativement des macrophages ou des lymphocytes-T. Chacun de ces agents est associé à un automate à états finisCHAPITRE 3. PARALLÉLISATION DE SYSTÈMES MULTI-AGENTS 57 déterminant les états accessibles à chaque agent en fonction de son état actuel. La parallélisation du modèle est effectuée par le biais de plusieurs kernels lancés à des fréquences différentes. Un premier kernel, exécuté cent fois plus fréquemment que les autres traitements, gère ainsi la diffusion des marqueurs chimiques dans l’environnement. Un second kernel gère la reproduction des bactéries dans l’environnement de simulation, tandis que quatre autres kernels gèrent la mise à jour de l’état de chaque macrophage et lymphocyte T, puis leur déplacement et le recrutement de nouveaux individus. Cet exemple met en avant le nombre importants d’opérations différentes pouvant être présentes dans un même modèle agent, et l’importance de pouvoir exécuter ces traitements à la suite sur GPU, après initialisation et copie des données depuis le CPU. Recherche de chemins (pathfinding) Un autre domaine d’application multi-agents souvent rencontré dans les exemples de parallélisation sur GPU est la recherche de chemins en deux ou trois dimensions, dans des environnements continus ou discrets [FSN09, GCK+09]. La popularité de ce type de traitement s’explique par l’existence d’une forte demande au niveau de ce type d’algorithme dans l’industrie vidéo-ludique (déplacement d’unités) et les simulations urbaines ou de transport. Ces modèles agents considèrent généralement un individu associé à une position dans l’espace, et éventuellement une taille, se déplaçant dans un environnement constitué de points de passage et d’obstacles. Dans le cadre d’un découpage de l’environnement en grille, des algorithmes de recherche de chemin dans des grilles et des graphes comme l’algorithme A* [HNR68] peuvent alors être utilisés pour déterminer le plus court chemin vers un point destination. Ce type de modèle implique encore une fois de disposer de facilités de traitement de grilles sur GPU, ainsi que la possibilité de mettre à jour ces grilles de manière concurrente pour gérer la cohérence des dé- placements de chaque agent. Cette grille peut être intrinsèque au repère de positionnement, ou être appliquée à chaque itération pour discrétiser des positions réelles, de manière à permettre l’application des algorithmes de recherche de plus court chemin. Un premier exemple de modèle parallélisé concerne le déplacement des unités dans des jeux de stratégie sur la base de champs de potentiels [SFF+10]. L’utilisation de champs de potentiels, et donc de vecteurs de déplacement, permet dans ce cas non seulement d’obtenir des chemins effi- caces (distance) mais également plus naturels en adoucissant notamment les courbes ou en limitant les comportements peu réalistes (virage à 90°) déclenchés par la détection soudaine d’un obstacle. La difficulté de parallélisation de ce modèle est la nécessité de prendre en compte l’ensemble de l’espace de simulation pour déterminer le mouvement calculé par chaque tâche GPU. Pour limiter le nombre d’accès mémoire à effectuer, une carte locale des obstacles et de la direction projetée de son objectif est préalablement créée pour chaque agent et un vecteur associé à chacun de ces éléments. Le déplacement de l’agent est ensuite calculé à partir de la combinaison de ces vecteurs, puis projeté sur l’environnement de simulation. L’utilisation du GPU permet ici de considérer ces cartes locales et ces opérations vectorielles en parallèle pour chaque agent, plutôt que d’effectuer un parcours linéaire de chaque individu intégrant un autre parcours des cellules voisines à cet individu. Une simulation de déplacement de piétons [RR08] se base sur le découpage des données de chaque agent en canaux de textures. Cet exemple met également en valeur, dans le cas de la recherche de chemins, l’utilité du découpage des données en structures d’entrée et structures de sortie déjà rencontré pour les automates cellulaires. Le portage de ce type de simulation sur GPU, notamment par Bleiweiss [Ble09], a également amené des réflexions sur d’autres architectures vectorielles [GCK+09] telles que SSE, mettant enCHAPITRE 3. PARALLÉLISATION DE SYSTÈMES MULTI-AGENTS 58 avant le potentiel de ce type de parallélisation sur architecture many-core massivement parallèle de manière générale. Il est également possible de citer, pour une réflexion approfondie sur la comparaison de diffé- rentes heuristiques permettant de résoudre ce type de problèmes sur GPU, le mémoire de thèse de A. Delévacq [Del13]. L’auteur commence pour cela par établir une présentation des métaheuristiques parallèles existantes sur GPU, avant d’en proposer une taxonomie orientée autour de deux axes, en fonction du niveau d’utilisation du GPU dans la métaheuristique d’une part (population, solution ou élément), et en fonction de l’utilisation faite de chaque type de mémoire proposé par le modèle de programmation d’autre part (globale, texture, constante, partagée, registres). Une fois cette taxonomie posée, l’auteur compare alors deux approches différentes de la résolution du problème du voyageur de commerce, tout d’abord à base de colonies de fourmis, puis à base de recherche locale (RL) de solutions. L’approche à base de colonies de fourmis repose sur l’utilisation d’individus, les fourmis, parcourant le graphe selon une heuristique de type min-max, de manière à construire progressivement des listes solutions. L’approche RL repose, quant à elle, sur l’amélioration d’une solution existante en évaluant l’impact de modifications locales à certaines positions de la liste. Elle est ainsi susceptible de compléter d’autres métaheuristiques pour la recherche de solutions efficaces. Les résultats obtenus montrent des gains de performance signi- ficatifs avec une implémentation GPU, avec un impact sur la qualité des solutions demeurant entre −1.33% et 1.64%. Au contraire, des dégradations significatives sont observées sur la parallélisation de l’approche RL, liées aux découpages en termes de synchronisation rendues nécessaires par l’adaptation sur GPU. Ce mémoire met en évidence l’importance des adaptations dans ce modèle de programmation et celle de la validation par des mesures de leurs conditions d’utilisation. Réflexions sur des exécutions hybrides GPU et CPU La parallélisation de systèmes multi-agents a également donné lieu à des réflexions plus génériques, orientées sur la distribution de la charge en général sur des plates-formes parallèles [CCDCS11], ou sur le cas plus particulier de clusters de GPU et de machines multi-coeurs. En particulier dans [APS10], l’auteur propose la comparaison d’une implémentation à base de threads et de CUDA du même modèle agent. Pour minimiser le nombre d’échanges nécessaires dans le cas de systèmes multi-agents, où des portions de l’environnement sont réparties dans de multiples copies distantes, l’article propose la mise en place d’un système de zone-frontière au niveau du découpage des données. Ces zones frontières situées autour des données directement utilisées par les agents exécutés en local permettent de prendre en compte la diffusion des erreurs de mise à jour liées à l’exécution indépendante de chaque portion du modèle. La largeur de ces frontières permet de déterminer le nombre de cycles pouvant être exécutés avant que les divergences n’impactent d’autres portions de l’environnement simulé, et donc le temps pendant lequel une synchronisation peut être reportée sans impact sur le résultat de la simulation générale. En réduisant le nombre d’échanges de données nécessaires, ce système d’isolation permet de maximiser le temps passé en calcul pour chaque tâche et donc d’améliorer les performances obtenues. L’implémentation GPU proposée est basée sur le modèle de programmation CUDA et des blocs mémoires pour chaque agent ou groupe d’agent. L’utilisation d’OpenCL est toutefois prévue, pour pouvoir tirer parti d’une plus grandes variété d’architectures. Cet article met en évidence l’impact important que peut avoir la fréquence de synchronisation des données sur les performances obtenues, en variant la largeur des frontières autour de la copie de l’environnement de chaque agent.CHAPITRE 3. PARALLÉLISATION DE SYSTÈMES MULTI-AGENTS 59 3.3.2 Une plate-forme multi-agents orientée GPU : FLAME-GPU Si l’utilisation du GPU est à l’étude pour des plates-formes comme JADE [ZG12] ou TurtleKit [Mic13], seule FLAME-GPU [Ric11], une extension pour la plate-forme FLAME [CGH+12], permet à l’heure actuelle l’utilisation du GPU pour l’ensemble du modèle. FLAME-GPU permet la génération d’implémentations GPU de modèles FLAME avec un minimum d’adaptations, de manière à afficher ou exploiter plus facilement de grandes quantités d’agents. Cette utilisation transparente du GPU est rendue possible du fait de la décomposition très fine de la simulation en états et en traitements. La syntaxe XXML, proposée par FLAME, est également étendue pour permettre d’indiquer le nombre maximum d’agents présents dans le modèle, de manière à pouvoir allouer à l’avance les structures de données sur GPU. Ces extensions incluent également des directives permettant de choisir les algorithmes de traitement des fonctions de transition à utiliser en CUDA. L’application d’une fonction de transition sur GPU aux agents d’un modèle FLAME est dé- composée en deux étapes : — Un premier kernel vérifie les pré-conditions d’application de la fonction de transition pour chaque agent du modèle. Si les conditions d’application sont remplies pour cet agent, il est ajouté à la liste des agents devant être traités. — Une fois ce filtrage effectué, la fonction de transition est appliquée à tous les agents en attente de traitement. Cette décomposition facilite le lancement de traitements réguliers sur le GPU dont l’exécution peut être ensuite parallélisée aisément par l’ordonnanceur CUDA. FLAME-GPU a déjà établi les gains en performance pouvant être obtenus dans plusieurs types de systèmes multi-agents [RWCR10, KRR10] mais impose, tout comme FLAME, un cadre très strict de modélisation. Ce cadre est basé sur la décomposition du modèle en chacun de ces comportements, des données et de toutes leurs interactions, pour permettre à la plate-forme de générer le programme capable de les exécuter. Son utilisation n’est donc pas envisageable dans le cadre d’une plate-forme multi-agents ou d’une implémentation existante, et requiert une réécriture complète du modèle. Cette absence de portage incrémental impose une barrière d’entrée à l’utilisation du GPU et rend également plus difficile la comparaison du modèle obtenu avec l’original, la gestion du programme même n’étant plus directement du ressort du concepteur. Si le formalisme et les plates-formes supportées par FLAME sont extensibles, comme l’illustre l’existence de FLAME-GPU, cette extension se limite également à l’utilisation de CUDA, ce qui limite son utilisation aux seuls matériels NVIDIA, et ne permet pas de tirer parti des cartes graphiques d’autres fabriquants présents sur des machines personnelles. 3.4 Synthèse Dans ce chapitre, nous avons montré les différentes approches de parallélisation possibles pour des systèmes multi-agents, au niveau de l’ordonnanceur, des comportements ou de l’environnement. Nous avons ensuite présenté la manière dont ces approches sont gérées et rendues plus aisément accessibles pour le concepteur par quelques plates-formes multi-agents parallélisées. La plupart de ces plates-formes permettent une exécution aussi bien en mémoire distribuée ou partagée, en distribuant le passage des traitements à l’aide d’une collaboration de plusieurs ordonnanceurs. Certaines de ces plates-formes gèrent aussi automatiquement la répartition de l’environne-CHAPITRE 3. PARALLÉLISATION DE SYSTÈMES MULTI-AGENTS 60 ment entre chaque tâche, pour résoudre tout problème de taille mémoire. De nombreuses solutions, comme JADE, laissent toutefois cette responsabilité au concepteur, plus à même de décider si ces structures doivent être recopiées ou accédées de manière distante dans sa simulation. Si la parallélisation sur CPU est aujourd’hui supportée par de nombreuses plates-formes, la parallélisation sur carte graphique est moins répandue. Cette architecture montre pourtant son intérêt, dans le cadre de milliers d’agents à exécuter, par sa possibilité de disposer de plusieurs centaines de coeurs sur une machine personnelle. Des modèles comme SugarScape, ou des implémentations sous forme d’automates cellulaires ou de recherche de chemin mettent ainsi en avant l’intérêt en termes de performance du GPU pour l’exécution de traitements homogènes, de type SIMD, souvent rencontrés dans les systèmes multi-agents réactifs. Le support du GPU n’est cependant pas totalement absent des plates-formes agents : des solutions permettant d’utiliser CUDA existent déjà dans des modèles comme JADE. Des couches d’abstraction, soit des perceptions dans le cas de TurtleKit, soit de tout le modèle dans le cas de FLAME-GPU, existent également.II Contribution63 Dans la première partie de notre mémoire nous avons présenté notre contexte, les systèmes multi-agents et les GPU, et mis en avant l’intérêt de cette nouvelle architecture en termes d’accessibilité et de performance, par rapport aux solutions de parallélisation classiques basées sur la distribution en mémoire partagée ou en mémoire distribuée. Dans cette seconde partie, nous introduisons et décrivons maintenant nos contributions à cette problématique. Pour cela, nous commençons par étudier la parallélisation sur GPU d’un modèle concret, le modèle proie-prédateur. Cette parallélisation est pour nous l’occasion d’une réflexion sur les différentes représentations en termes de données et de comportements de ce système, et leur impact sur une adaptation GPU. Les contraintes rencontrées dans l’adaptation de ce modèle ouvrent alors la voie à une définition des principales considérations nécessaires pour le portage d’un système multi-agents sur GPU. Cette présentation est en particulier l’occasion de décrire les différents types de découpages des données ou d’exécution devant être supportés par une bibliothèque pour permettre son utilisation dans les systèmes multi-agents. Ces contraintes nous servent de préambule pour présenter notre solution, MCMAS, et la manière dont cette bibliothèque répond à ces problématiques d’exécution et de données. Pour cela, nous commençons par présenter les principaux objectifs de MCMAS et leur traduction en termes d’architecture de la bibliothèque. Nous présentons ensuite l’utilisation de MCMAS en tant que bibliothèque de fonctions génériques, puis l’ajout de nouvelles fonctionnalités à cette solution. L’utilisation de MCMAS est ensuite illustrée de manière expérimentale sur trois modèles : — Proie-prédateur qui nous a servi de fil rouge dans notre propos. — MIOR, un modèle d’évolution microscopique de sol s’intégrant dans le cas de la simulation multi-échelles Sworm. — Collemboles, enfin, un modèle permettant de décrire la diffusion de populations entre parcelles de terrain importées depuis un système d’information géographique. Une fois ces applications présentées, nous proposons quelques recommandations d’implémentation, de manière à prendre en compte les éventuels différences en traitements des données et en performance associées à chaque matériel d’exécution.4 Problematique ´ Comme nous l’avons vu dans le chapitre précédent de nombreux systèmes multi-agents ont déjà été adaptés sur GPU. Dans la plupart des cas, ces adaptations sont basées sur une réécriture complète du programme, directement à l’aide d’un modèle de programmation comme OpenCL ou au moyen du formalisme spécialisé proposé par l’environnement FLAME-GPU. La première approche, l’implémentation directe du modèle avec la programmation GPGPU, permet un contrôle fin sur le programme obtenu mais requiert une expertise et un investissement en temps conséquents pour pouvoir tirer parti efficacement des possibilités offertes par l’architecture matérielle. Ces contraintes s’expliquent par la nécessité d’implémenter la totalité du système agent, sans aucune infrastructure existante pour ce type de simulation. La seconde approche, l’utilisation de FLAME-GPU, apporte une abstraction totale du mode d’exécution en permettant au concepteur de n’avoir qu’à décrire les opérations de son modèle. Elle repose sur l’utilisation de l’approche FLAME pour générer automatiquement le programme GPU liant ces différentes actions. Cette abstraction présente cependant un coût, en contraignant la structure des modèles multi-agents décrits dans un formalisme existant strict. Ce formalisme peut être aisément utilisé pour la conception de nouveaux modèles mais rend difficile la comparaison des simulations obtenues avec des simulations plus traditionnelles, du fait de la nature radicale des changements apportés à l’algorithme. Il permet toutefois la disponibilité d’un support robuste adapté aux agents, et ne laisse donc pas le concepteur livré à lui-même comme un modèle de programmation plus générique. Ces deux approches laissent place à une solution intermédiaire qui permettrait au chercheur de disposer d’un support incrémental pour les traitements agents sur GPU, de manière à pouvoir y exécuter tout ou partie de la simulation. Une telle solution doit également être capable de s’inté- grer et de complèter une plate-forme multi-agents existante. Cette facilité d’intégration implique la proposition d’une interface orthogonale à la modélisation du système, à même d’être utilisée aussi bien dans des cadres basés sur la décomposition du système en messages et en comportement que dans des simulations agents moins segmentées. Elle permet également de tirer parti des nombreuses facilités d’implémentation et d’exécution déjà offertes par les plates-formes multi-agents existantes. Dans les sections suivantes nous présentons les propriétés nous paraissant particulièrement importantes pour notre proposition, MCMAS 1 . 1. Many-Core Multi-Agent SystemsCHAPITRE 4. PROBLÉMATIQUE 66 4.1 Portabilité Un premier élément nécessaire à l’intégration d’une nouvelle bibliothèque dans des systèmes multi-agents existants est sa portabilité sur plusieurs systèmes d’exploitation. De nombreux chercheurs utilisent en effet différents systèmes d’exploitation pour réaliser leurs simulations, comme l’illustre la portabilité de plates-formes multi-agents telles que Repast, Madkit ou NetLogo. Une nouvelle bibliothèque doit également être portable en termes d’utilisation, en se basant sur les langages de programmation largement utilisés dans le domaine. Si C, C++ et Java sont présents parmi les plates-formes multi-agents décrites dans notre contexte, c’est surtout ce dernier langage qui est utilisé par de nombreuses plates-formes comme NetLogo, JADE, MadKit ou D-MASON. Cette large utilisation s’explique par plusieurs avantages associés à l’environnement Java : — La portabilité des programmes sans recompilation. Il est ainsi possible de distribuer une seule version de la plate-forme pour tous les systèmes d’exploitations supportés. — La disponibilité d’une bibliothèque graphique intégrée, Swing. Cette bibliothèque facilite la réalisation de plates-formes interactives sans dépendances ou binaires externes. — La possibilité de programmer en objet, de manière à représenter de manière intuitive les différentes entités du modèle agent. — La disponibilité de nombreux mécanismes d’exécution (threads) ou de communication (RMI, JMS) et de nombreuses structures de données dynamiques directement dans la bibliothèque standard. — Une gestion de la mémoire automatique, qui facilite à la fois le développement de la plateforme de simulation et des modèles multi-agents. — La disponibilité de bibliothèques de gestion de données géographiques comme GIS, permettant un import aisé d’informations externes dans la simulation. Il est toutefois nécessaire de coupler Java à des couches d’adaptation native comme JOCL pour permettre l’accès au modèle d’exécution GPU. Le choix du modèle de programmation utilisé est également un élément de cette portabilité d’utilisation : si CUDA et OpenCL sont tous deux disponibles sur de nombreux systèmes d’exploitations, OpenCL offre un plus grand choix de périphériques d’exécution CPU ou many-cores que CUDA, qui reste limité à l’utilisation de matériels Nvidia. Au vu de cette large disponibilité, le choix d’OpenCL paraît naturel pour notre solution, en gardant toutefois à l’esprit que chaque architecture d’exécution ne fournira pas forcément les mêmes performances pour les mêmes programmes. 4.2 Réutilisation d’algorithmes et de structures Comme évoqué au début de notre problématique, l’utilisation directe de modèles de programmation tels que OpenCL et CUDA pour l’adaptation d’un système multi-agents impose le redé- veloppement par le concepteur de l’ensemble de ses traitements et de ses structures de données. Ce développement requiert des connaissances poussées en programmation C ou C++ et un travail important en termes d’adaptation de l’exécution et des structures de données. Mené correctement, ce type d’adaptation permet d’obtenir une solution optimisée, au plus proche des contraintes des données et des algorithmes utilisés par le modèle source. Cette solution encourage toutefois, en imposant leur développement, l’utilisation de structures spécifiques à chaque modèle adapté et difficilement réutilisables. Elle représente également un coût en temps important devant être réinvesti à l’adaptation de chaque nouveau modèle. Dans ces circonstances, l’intérêt d’une bibliothèque est de permettre et favoriser la réutilisation d’algorithmes et de struc-CHAPITRE 4. PROBLÉMATIQUE 67 tures de données. Cette réutilisation peut être grandement facilitée en fournissant des implémentations optimisées des traitements multi-agents les plus courants, prêtes à être employées par le modèle agent. L’objectif de cette démarche est de proposer, à l’image de bibliothèques comme CUBLAS, des fonctions de haut-niveau déjà adaptées aux principales problématiques rencontrées dans les systèmes multi-agents. Ces problématiques peuvent aussi bien concerner la mise à jour de l’environnement que le calcul de distances entre agents, la génération de nombres aléatoires ou encore le regroupement des données à chaque pas d’exécution, de manière à pouvoir observer la dynamique du modèle. 4.3 Intégration avec l’existant De nombreuses plates-formes multi-agents ont pour objectif d’être une solution "tout en un" aux problèmes de modélisation du chercheur. Elles comprennent dans cette optique de nombreuses fonctionnalités annexes de conception et d’édition de modèle, d’affichage de l’environnement simulé ou de courbes représentant l’évolution du modèle, ou de production de fichiers résultats. Une solution pour les GPU visant à remplacer totalement ces plates-formes impliquerait d’intégrer toutes ces fonctionnalités avant de constituer une alternative crédible, et représenterait une nouvelle solution concurrente, ce qui n’est pas l’objectif de notre contribution. La bibliothèque doit donc être capable de s’intégrer dans ces plates-formes à plusieurs niveaux d’encapsulation du modèle. Elle ne doit notamment pas imposer un paradigme d’exécution particulier, de manière à ne pas entrer en conflit avec le fonctionnement de la simulation. Cette transparence est également importante pour permettre son utilisation dans des plates-formes n’employant pas directement le langage Java, au moyen de modules additionnels (plugins) ou d’extension de la syntaxe agent proposée. Pour décharger totalement le modèle de la gestion de cette bibliothèque, il est possible d’envisager son intégration sous la forme d’agents services fournissant l’accès à des services implémentés sur GPU au reste du modèle. 4.4 Extensibilité La simulation orientée agent est un domaine en perpétuelle évolution, tant au niveau conceptuel, dans le domaine par exemple de l’intelligence artificielle, qu’en termes d’implémentation, avec l’arrivée de nouvelles architectures matérielles et de nouveaux modèles de programmation. Ce dynamisme et cette flexibilité expliquent la popularité de cette approche de modélisation pour la résolution de nombreux problèmes, mais soulignent également l’importance de proposer des solutions modulaires et si possible génériques. Les avantages de cette modularité sont illustrés par le succès des nombreuses plates-formes agents traditionnelles, fournissant un vaste ensemble de fonctionnalités indépendantes pouvant être ou non exploitées par un modèle particulier : c’est ainsi le cas de plates-formes comme D-MASON ou NetLogo [Skl11], qui proposent un découpage des structures de données implicite, de JADE, avec la possibilité d’ajouter de nouveaux composants de manière dynamique au système, ou encore de MadKit qui permet la surcharge de nombreux comportements de la plate-forme. La généricité est également présente dans ces plates-formes sous forme de cadre de modélisation et d’opérations facilitant la conception de nouveaux modèles agents. Ce cadre peut être très souple, dans le cas par exemple de Madkit, ou beaucoup plus strict, dans le cas des plates-formes FLAME ou FLAME-GPU.CHAPITRE 4. PROBLÉMATIQUE 68 Notre solution doit donc, au-delà de la flexibilité d’utilisation, permettre l’ajout aisé de fonctionnalités et d’extensions sans remettre en cause son architecture fondamentale, de manière à pouvoir traiter de nouveaux problèmes agents sur GPU. 4.5 Synthèse Dans notre présentation du contexte, nous avons eu l’occasion d’évoquer le besoin en ressources toujours plus important rencontré par les simulations en général et en particulier par les simulations multi-agents. S’il est en effet courant de commencer par valider un système à petites échelles, l’observation de certains comportements émergents requiert parfois un nombre minimal d’individus [SN09]. L’amélioration des résultats obtenus par la simulation agent implique, de manière plus générale, une augmentation en taille des modèles, que ce soit en termes de dimension de l’environnement ou de nombres d’agents, et des comportements toujours plus complexes. La parallélisation de l’exécution en mémoire partagée ou en mémoire distribuée est une réponse à ce besoin toujours croissant en ressources mémoires et de calcul. Les architectures many-core et GPU en particulier offrent l’accès à plusieurs centaines de coeurs d’exécution à des tarifs comparables à ceux d’une machine de bureau, via des modèles de programmation comme CUDA et OpenCL. L’utilisation de ces architectures pour la simulation multi-agents n’est pas une idée nouvelle et a déjà été explorée pour de nombreux modèles, sous forme de développement de nouvelles implémentations complètes. Ces adaptations requièrent cependant une connaissance approfondie des modèles de programmation et d’exécution GPU pour permettre l’obtention de programmes efficaces. De nombreux concepteurs agents, théoriciens, n’ont pas le temps d’acquérir ces compé- tences pour la réalisation de nouveaux modèles. FLAME-GPU permet, a contrario, la génération de modèles agents basés sur CUDA sans connaissance de ce modèle de programmation à partir de modèles FLAME. Cette solution impose cependant l’utilisation du formalisme strict de cette plate-forme, et n’est donc pas accessible à des modèles basés sur d’autres plates-formes agents parallèles ou séquentielles telles que Madkit, NetLogo ou GAMA sans un redéveloppement complet. Notre thèse est de montrer qu’une bibliothèque de ce type peut être développée de manière indépendante et générique par rapport à ces plates-formes d’exécution multi-agents, pour permettre son utilisation dans un large nombre d’environnements et de modèles existants. Dans la suite de ce mémoire, nous présentons la démarche qui nous a mené à la conception de MCMAS, une bibliothèque permettant de réaliser tout ou partie d’une simulation multi-agents sur GPU. L’objectif de cette bibliothèque est de permettre une utilisation de cette nouvelle architecture d’exécution de manière indépendante ou en complément de plates-formes de conception et d’exécution multi-agents existantes. Elle reprend en compte, pour cela, les problématiques de portabilité, de réutilisation, d’intégration et d’extensibilité évoquées dans ce chapitre dans un tout cohérent, proposant deux niveaux d’utilisation, l’un adapté à son utilisation sans connaissances GPU, l’autre à une extension aisée des fonctionnalités offertes par la bibliothèque.5 Adaptation d’un modele multi ` -agents sur GPU : Proie-Predateur ´ Le modèle proie-prédateur est un modèle multi-agents inclus à titre de démonstration dans de très nombreuses plates-formes agents. Il présente l’intérêt d’offrir un grand choix de niveaux de représentation, mais également de nombreuses implémentations possibles. Dans ce chapitre, nous l’utilisons comme illustration des types de problématiques agents devant être traitées pour une adaptation sur GPU, tant en termes de mémoire que d’exécution. 5.1 Présentation du modèle Le modèle proie-prédateur a été pour la première fois décrit de manière indépendante par Alfred James Lotka en 1925 et par Vito Volterra en 1926 sous la forme d’un couple d’équations différentielles. Ces équations, basées sur des observations effectuées au 19me siècle sur des populations d’animaux sauvages, permettent d’estimer l’évolution en fonction du temps de deux populations, carnivore et herbivore, en fonction des paramètres définis pour la simulation du modèle :    dx(t) dt = x(t)(α − βy(t)) dy(t) dt = −y(t)(δ − γx(t)) où — t est le temps ; — x(t) est le nombre de proies en fonction du temps ; — y(t) est le nombre des prédateurs en fonction du temps ; — les dérivées dx(t)/dt et dy(t)/dt représentent la variation des populations au cours du temps. Les paramètres suivants décrivent les interactions entre les deux espèces : — α le taux de reproduction des proies ; — β le taux de mortalité des proies dû aux prédateurs ; — γ le taux de mortalité des prédateurs ; — δ le taux de reproduction des prédateurs. Pour des paramètres d’entrée évitant la disparition totale de l’une ou l’autre des populations, l’évolution du nombre d’individus de chaque type tend alors rapidement à osciller de manière régulière entre périodes de faste et de famine. La Figure 5.1 illustre ces oscillations dans le temps.CHAPITRE 5. ADAPTATION D’UN MODÈLE MULTI-AGENTS SUR GPU : PROIE-PRÉDATEUR 70    α = 2 β = 0.5 γ = 0.2 δ = 6 0 20 40 60 80 100 0 5 10 15 20 Temps Nombre d'individus Proies Prédateurs Figure 5.1 – Exemple de courbes obtenues par l’application des équations de Lotka-Volterra Cette première approche, mathématique, ne considère que les nombres d’individus du modèle et des paramètres synthétisant leur évolution générale. Une autre approche de modélisation, orientée agent, reproduit ces tendances en décrivant le comportement des individus mis en présence au moyen d’actions élémentaires de bas niveau décrites sous forme d’algorithme. Une approche agent possible est ainsi d’isoler trois niveaux d’évolution dans le modèle proieprédateur : — L’environnement, modélisant les ressources consommées par les proies (végétation). Il s’agit d’un agent passif, modifié par les autres agents du système. Le seul traitement propre lui étant associé est l’augmentation des ressources d’un facteur fixé entre chaque pas de simulation, de manière à refléter la croissance et le remplacement des végétaux dans le temps. — Les proies, capables de se déplacer et de se reproduire. Lors de ce second processus, la proie modifie l’environnement, pour répercuter la nourriture consommée. — Les prédateurs, capables de se déplacer, de consommer des proies et de se reproduire. Ces agents n’interviennent que sur les proies, et ne modifient pas directement l’environnement. L’ajout d’un environnement basé sur les ressources en végétation s’inscrit dans l’optique de décrire le système selon une approche montante, comme nous l’avons vu dans notre présentation des approches de modélisation, plutôt que de se baser sur une observation de haut niveau pour extrapoler le comportement de chaque individu, avec une approche descendante. Ce modèle agent se caractérise par une relation stricte entre les populations, à sens unique. Seuls les prédateurs sont à même d’influer sur les proies, qui sont seules à pouvoir influer sur l’environnement. Par rapport à la modélisation mathématique du modèle proie-prédateur, cette re-CHAPITRE 5. ADAPTATION D’UN MODÈLE MULTI-AGENTS SUR GPU : PROIE-PRÉDATEUR 71 présentation agent introduit aussi une prise en compte de l’accès aux ressources de chaque agent, en introduisant une répartition géographique des différentes entités du système. Cet aspect supplémentaire permet non seulement d’obtenir des valeurs de population, comme le modèle mathé- matique, mais ouvre également l’accès à des résultats plus précis, permettant de mettre en avant l’influence de la répartition des ressources sur la position des agents dans l’environnement. 5.2 Stratégies de déplacement Un facteur important de l’évolution du système proie-prédateur est l’algorithme de déplacement utilisé. Cet algorithme détermine en effet non seulement la manière dont chaque agent considérera les données de son voisinage, mais également le nombre de branchements et la régularité du nombre d’opérations à effectuer, pour un bon remplissage des ressources GPU. 5.2.1 Déplacement aléatoire Une première implémentation du déplacement des proies et prédateurs est la sélection d’une destination aléatoire à chaque itération. Cette approche évite le parcours du voisinage de chaque agent pour la recherche d’une cible, et donc de nombreux accès mémoire, mais est peu intéressante à implémenter en termes de modèle et d’adaptation GPU : — En termes de modélisation, elle est très peu cohérente avec le comportement de nombreuses espèces animales capables de détecter et poursuivre des proies. Elle minimise également artificiellement la population pouvant être supportée par le modèle, en ne laissant qu’une chance minime, en fonction de la densité des ressources dans l’environnement, à chaque individu de disposer des ressources nécessaires à sa survie. — En termes d’adaptation sur GPU, ce comportement réduit la démarche de chaque individu au simple tirage aléatoire d’un jeu de coordonnées. Ce tirage rend inutile tout parcours de données sur GPU, et ne requiert plus qu’une gestion des conflits et la génération de nombres aléatoires. Ces deux processus sont difficiles à réaliser sans rendre partiellement séquentiels les deux traitements, ce qui limite l’intérêt des centaines de coeurs offerts par l’architecture. Cette stratégie de déplacement aléatoire est surtout utilisée pour valider le fonctionnement d’une nouvelle simulation. 5.2.2 Proie la plus proche Cette seconde stratégie implique un parcours pour chaque individu de l’ensemble des cases du modèle qui sont à sa portée, suivi par un déplacement sur la position de la proie la plus proche. Elle requiert un grand nombre d’accès mémoires pour évaluer toutes les cases destinations possibles, ainsi qu’une notion de priorité entre ces cases : une case proche contenant une proie doit être préférée à une autre case solution plus éloignée. Une manière d’éviter le calcul de la distance de chaque proie est d’effectuer le parcours des cases voisines sous forme d’une spirale comme illustré par la Figure 5.2. Ce parcours en spirale permet non seulement de garantir que les proies seront automatiquement considérées par ordre d’éloignement, mais offre également l’avantage de pouvoir arrêter l’évaluation à la première proie détectée (court-circuit).CHAPITRE 5. ADAPTATION D’UN MODÈLE MULTI-AGENTS SUR GPU : PROIE-PRÉDATEUR 72 individu cible rayon Figure 5.2 – Principe de recherche de la proie la plus proche Cet algorithme est aisément parallélisable sur GPU en attribuant une tâche à chaque individu, puis en effectuant le parcours des cellules voisines sous forme de boucle à l’intérieur de chacune de ces tâches. Il implique néanmoins, du fait de la condition d’arrêt, une forte variabilité du nombre de cellules à parcourir et donc du temps d’exécution de chaque tâche. Il n’est pas facile de paralléliser davantage ce parcours en spirale en confiant l’examen de chaque case candidate à un thread distinct. Cet algorithme de déplacement requiert en effet la prise en compte des cases dans un ordre particulier, qui n’est pas garanti par l’ordonnanceur GPU. Une solution à ce problème est d’introduire un calcul de la distance pour chaque destination potentielle, suivie d’une réduction pour ne conserver que la cible détectée la plus proche de l’individu. Cette stratégie minimise la distance de déplacement de chaque prédateur, mais n’est pas forcé- ment la meilleure en termes de survie à moyenne ou longue échéance, car la proie la plus proche n’est pas forcément la plus dotée en énergie. 5.2.3 Proie la plus énergétique Une autre stratégie de déplacement possible est de sélectionner cette fois systématiquement la proie à portée disposant de la plus grande quantité d’énergie. Cette stratégie, qui permet de toujours sélectionner la proie la plus intéressante immédiatement accessible, garantit la sélection d’une proie équivalente ou supérieure en énergie par rapport à la sélection de la cible la plus proche. Elle impose cependant le parcours de l’ensemble des cases à portée avant de pouvoir tirer une conclusion, tel qu’illustré par la Figure 5.3. Le nombre d’accès à la mémoire est d’autant plus important, en comparaison avec la recherche de la proie la plus proche, que le modèle est dense. Ce parcours obligatoire de l’ensemble des cellules à portée rend cette stratégie beaucoup plus coûteuse en nombres d’accès mémoire. L’absence de priorité entre les différentes cases voisines permet cependant des accès plus réguliers sur GPU, ligne par ligne ou colonne par colonne, pour mieux tirer parti du chargement des données par paquet ou du regroupement des accès mémoire réalisés à l’exécution. 5.2.4 Compromis et stratégies avancées En fonction de l’intelligence du prédateur modélisé, il peut être pertinent de combiner une ou plusieurs des stratégies suggérées ci-dessus. Ainsi, si aucune proie n’est à portée d’un individu, un déplacement aléatoire par défaut offre une chance de se rapprocher de densités de proie plusCHAPITRE 5. ADAPTATION D’UN MODÈLE MULTI-AGENTS SUR GPU : PROIE-PRÉDATEUR 73 individu cible rayon Figure 5.3 – Principe de recherche de la proie la plus énergétique importantes. Ce déplacement comporte cependant également le risque d’éloigner l’individu des ressources recherchées, et son intérêt est donc très dépendant des paramètres du modèle et de la répartition géographique des agents. Nous avons fait le choix dans notre modèle de ne pas déplacer l’individu en l’absence de cible, pour éviter ce problème. Au-delà de ces compromis instantanés entre plusieurs comportements, la recherche de cible ouvre également la voie à de véritables intelligences, avec mémorisation des proies. Il est ainsi possible d’intégrer la possibilité pour le prédateur de suivre sa proie si celle-ci quitte son champ de vision immédiat. Un autre mécanisme pouvant être implémenté est un comportement de persistance : si plusieurs cibles offrent des caractéristiques très similaires, mais deviennent tour à tour les plus intéressantes du fait de micro-variations du modèle entre chaque itération, il est alors pertinent de pousser l’individu à se concentrer sur une seule cible, plutôt que de dépenser son énergie à courir dans diverses directions. 5.3 Adaptation OpenCL Après avoir présenté les principales approches de modélisation possibles pour le modèle proieprédateur et en particulier les différents algorithmes de déplacement et leur influence sur la simulation, tant en termes de modèle que de parallélisation, nous étudions dans cette section les choix d’implémentation effectués pour notre implémentation OpenCL. 5.3.1 Algorithme retenu Pour évaluer l’efficacité de l’adaptation de ce type d’algorithme sur plate-forme GPGPU, nous avons choisi d’implémenter l’algorithme proie-prédateur décrit dans l’algorithme 1. Cette implémentation est caractérisée par la simulation de trois populations, dont deux repré- sentent des prédateurs : — L’herbe, ou végétation représente les ressources végétales pouvant être consommées par la population herbivore du modèle. — Les proies représentent la première population prédatrice du modèle, capables de consommer des végétaux, de se déplacer et de se reproduire. Cette population est caractérisée par son abondance, liée à des besoins limités et un taux de fertilité important. — Les prédateurs représentent la seconde population prédatrice du modèle, capable de consommer des proies de la première population. Cette seconde catégorie d’individus estCHAPITRE 5. ADAPTATION D’UN MODÈLE MULTI-AGENTS SUR GPU : PROIE-PRÉDATEUR 74 Algorithme 1 : Algorithme proie-prédateur retenu Data : grass Grille de flottants représentant la couche herbe Data : preys Grille de flottants représentant la couche proies Data : preds Grille de flottants représentant la couche prédateurs Data : n Largeur de chacune des trois grilles d’entrée Data : m Hauteur de chacune des trois grilles d’entrée 1 for i = 0 to n do 2 for j = 0 to m do 3 grass[i][j] ← grass[i][j] + growth; 4 end 5 end 6 for (i, j) ∈ (proiesX, proiesY) do 7 x, y ← f indT arget(i, j); 8 if preys[i][j] vide then /* Déplacement de la proie en x, y */ 9 preys[x][y] ← preys[i][j]; 10 preys[i][j] ← 0; 11 end /* Consommation des végétaux */ 12 preys[x][y] ← clamp(preys[x][y] + grass[x][y], prey_min, prey_max); /* Diminution de l’énergie de la proie */ 13 preys[i][j] ← preys[i][j] − delta; 14 if preys[i][j] < 0 then /* Décès de la proie */ 15 preys[i][j] ← 0; 16 end 17 end 18 for (i, j) ∈ (predateursX, predateursY) do 19 x, y ← f indT arget(i, j); 20 if preds[i][j] vide then /* Déplacement du prédateur en x, y */ 21 preds[x][y] ← preds[i][j]; 22 preds[i][j] ← 0; 23 end /* Consommation de la proie */ 24 preys[x][y] ← 0; /* Diminution de l’énergie du prédateur */ 25 preds[i][j] ← preys[i][j] − delta; 26 if preds[i][j] < 0 then /* Décès du prédateur */ 27 preds[i][j] ← 0; 28 end 29 endCHAPITRE 5. ADAPTATION D’UN MODÈLE MULTI-AGENTS SUR GPU : PROIE-PRÉDATEUR 75 associée à des besoins plus importants, et un taux de fertilité relativement plus faible. Cet algorithme pose plusieurs problèmes de parallélisation : — L’évolution de chaque population dépend des mises à jour des populations précédentes. — Plusieurs individus d’une même population peuvent tenter de se déplacer au même endroit. — L’algorithme repose sur le parcours des positions des proies et des prédateurs. Cette liste de positions doit être mise à jour au fur et à mesure de la disparition et de l’apparition de nouveaux individus. 5.3.2 Représentation mémoire Dans notre implémentation OpenCL, nous avons fait le choix de représenter les données globales du modèle sous la forme d’une unique structure mémoire accessible en lecture seule à toutes les tâches GPU. Ces informations comprennent l’ensemble des données d’entrée de la simulation : taux de métabolisme et de croissance des ressources végétales, énergie minimale et maximale pour chaque individu... Chaque population est stockée sous forme de grille à deux dimensions (Figure 5.4). Toutes ces grilles font la même taille, et peuvent être considérées comme une vision particulière de l’espace de simulation. La présence d’un agent est indiquée par une énergie strictement positive dans une cellule, et l’absence d’individu correspond à une valeur d’énergie négative ou nulle. Prédateurs Proies Végétation Figure 5.4 – Stockage retenu pour les populations et les niveaux d’énergie du modèle proieprédateur Pour éviter un parcours complet de chaque grille pour localiser les individus, quatre tableaux statiques indiquant la position des agents proies et prédateurs du modèle sont également spécifiés en paramètres des traitements de mise à jour et de déplacement : — Un tableau comprenant les positions en x des proies. — Un tableau comprenant les positions en y des proies. — Un tableau comprenant les positions en x des prédateurs. — Un tableau comprenant les positions en y des prédateurs. Ces tableaux de positions sont mis à jour par le CPU entre chaque itération de la simulation pour prendre en compte l’apparition de nouveaux individus ou les décès d’agents existants. Cette mise à jour sur le processeur hôte permet d’éviter toute problématique de réallocation mémoire non supportée sur GPU.CHAPITRE 5. ADAPTATION D’UN MODÈLE MULTI-AGENTS SUR GPU : PROIE-PRÉDATEUR 76 5.3.3 Extraction de sections parallèles Il est possible de paralléliser le modèle proie-prédateur de deux manières sur GPU : — Soit en réalisant l’ensemble de la simulation sur GPU. — Soit en n’intervenant que sur les traitements coûteux et parallélisables. La première approche implique de gérer la totalité des problèmes de parallélisation posés par le modèle en OpenCL, et en particulier la gestion des structures de données dynamiques comprenant les positions des proies. Elle implique également le traitement de populations agents très diverses en nombre, qu’il s’agisse de l’herbe, des proies, ou des prédateurs. Cette diversité impose soit une réalisation de la simulation en plusieurs lancements OpenCL, soit une occupation très disparate des threads d’exécution lancés sur la carte graphique aux différents stades de l’exécution. Nous avons donc fait le choix de privilégier la seconde approche, où la simulation est au départ intégralement réalisée sur CPU, pour en adapter ensuite un ou plusieurs traitements sur GPU. Dans ce cas, un point central de l’adaptation est de sélectionner les portions du programme à même de bénéficier d’une parallélisation sans modification fondamentale de l’algorithme. Cette sélection est favorisée par l’existence dans le modèle d’opération de transformation ou de réductions analogues à celles proposées par des bibliothèques telles que BLAS ou MPI. C’est en particulier le cas de l’opération de mise à jour des ressources végétales, qui correspond à l’application d’une même fonction mathématique à chaque cellule de l’environnement, et le cas de la réduction de la quantité d’énergie présente dans le modèle. Dans l’algorithme décrit, trois traitements semblent de bons candidats à une telle extraction : — La mise à jour des ressources végétales. L’application d’une transformation mathématique simple à chaque cellule, sans dépendance sur ses voisines, permet l’utilisation d’une tâche OpenCL pour la mise à jour de chaque cellule. L’absence de synchronisation permet ainsi de tirer aisément parti du grand nombre de coeurs du GPU. Le coût de cette section est également directement proportionnel à la taille de l’environnement de simulation, plutôt qu’au nombre d’individus présents dans le modèle, ce qui garantit un temps de calcul important et aisément prévisible en connaissant les dimensions du modèle d’entrée. Cette opération revient à l’application d’une même fonction mathématique à chaque cellule de l’environnement. — La recherche des nouvelles positions pour chaque individu. Si la gestion des individus est malaisée à implémenter de manière intégrale sur GPU, du fait de l’apparition ou de la disparitions des agents, ou des nombreuses conditions rencontrées dans l’algorithme, la recherche de cibles de déplacement implique le parcours d’un nombre de cellules d’autant plus important que le nombre et la portée de chaque agent augmentent. Réaliser ce calcul sur GPU permet le parcours de cellules en parallèle pour chaque position d’individu du modèle, et laisse ensuite la possibilité au CPU d’intervenir au niveau de la prise en compte de cette valeur brute, en l’ignorant ou l’adaptant si nécessaire. — Totalisation des quantités d’énergie présentes dans le modèle. Le choix de représentation de chaque population dans une grille spécialisée, enfin, permet aisément d’effectuer la somme des valeurs de l’ensemble des cellules de la grille pour obtenir l’énergie totale à une itération donnée représentée sous forme de végétaux, de proies ou de prédateurs. Ce traitement revient à une forme de réduction cas de la quantité d’énergie présente dans chaque grille du modèle.CHAPITRE 5. ADAPTATION D’UN MODÈLE MULTI-AGENTS SUR GPU : PROIE-PRÉDATEUR 77 5.4 Synthèse Dans ce chapitre, nous avons évoqué une parallélisation possible du modèle proie-prédateur reposant sur la délégation de certaines fonctions au GPU. La parallélisation d’une partie du modèle est motivée par deux observations : — Certains traitements correspondent directement à des opérations déjà parallélisées par des bibliothèques telles que BLAS ou MPI. C’est en particulier le cas de l’opération de mise à jour des ressources végétales, qui revient à l’application de la même fonction mathématique à chaque cellule de l’environnement, et le cas de la réduction de la quantité d’énergie présente dans le modèle. — D’autres traitements, comme le déplacement, impliquent la réalisation d’un grand nombre d’itérations de boucle pour chaque agent dans le modèle. Dans ce cas, cette opération de recherche peut être parallélisée, de manière à permettre à tous les agents de consulter l’environnement simultanément. Au vu de notre contexte et de cette première démarche de parallélisation d’un système multiagents, il est maintenant possible de présenter les différentes approches pouvant être utilisées pour l’adaptation de ce type de système sur GPU.6 Methodes d ´ ’adaptation SMA sur GPU Au vu de notre contexte et de notre démarche de parallélisation du modèle proie-prédateur en OpenCL, il est possible de dégager trois méthodes principales d’utilisation du GPU pour des simulations multi-agents : l’adaptation de la totalité du modèle, la parallélisation de certaines opé- rations, ou le recours à des opérations parallélisées existantes. La première approche, l’adaptation de la totalité du modèle, implique l’implémentation de l’ensemble de l’algorithme sur GPU par le concepteur. Dans ce cas, l’essentiel de la simulation utilise le langage et les structures de données OpenCL pour son exécution, et la gestion de l’allocation, de la copie et de la manipulation des structures de données est directement effectuée par le programme. Cette solution permet également un contrôle total de l’exécution par le programme. La seconde approche, la parallélisation de certaines opérations seulement sur GPU, vise à maximiser le gain en performance obtenue tout en conservant une démarche de parallélisation incré- mentale. Cette approche partielle permet de conserver les aspects complexes de la simulation sur le CPU, comme dans le cas de la gestion des listes de positions de chaque individu dans le modèle proie-prédateur. Elle requiert elle aussi une expertise en programmation pour implémenter ces opérations parallélisées. La troisième approche, enfin, est de réutiliser des opérations de haut niveau déjà parallélisées sur GPU. Cette approche permet l’utilisation de la puissance des cartes graphiques dans une simulation multi-agents sans connaissance particulière de l’architecture. Elle implique toutefois de se conformer à l’interface de ces fonctions existantes en visant une certaine généricité des traitements. Dans le modèle proie-prédateur, il est ainsi intéressant de se ramener à des opérations matricielles, plutôt que d’effectuer le traitement de chaque case de manière indépendante. Dans les sections suivantes, nous présentons dans un premier temps comment l’espace de simulation utilisé par le système multi-agents est susceptible d’orienter le choix du concepteur vers l’une ou l’autre de ces approches. Nous évoquons ensuite, pour chacune de ces trois solutions, les contraintes associées pour permettre une utilisation efficace de la parallélisation sur GPU. 6.1 Gestion de la dimension spatiale L’algorithme d’évolution d’un système multi-agents ne fixe généralement pas de bornes particulières au nombre d’individus ou à la taille de l’environnement utilisé dans le modèle. Ces deux paramètres sont déterminés par le scénario de la simulation. Une connaissance même approximative de ces paramètres au moment de la conception d’un programme permet cependant au développeur de privilégier a priori certaines structures de données. Le choix d’utiliser un dictionnaire se justifie ainsi pour indexer un grand nombre d’éléments,CHAPITRE 6. MÉTHODES D’ADAPTATION SMA SUR GPU 80 mais s’avère au contraire pénalisant pour une très petite quantité de données, du fait des traitements supplémentaires requis par la gestion de la structure. Cette connaissance préalable est également importante dans le cadre de l’implémentation d’un système multi-agents : si certaines portions de l’algorithme présentent un coût constant, comme l’initialisation des variables globales, d’autres sont directement liées à ces paramètres d’exécution. La mise à jour des agents peut ainsi présenter un coût linéaire par rapport au nombre d’agents présents dans le modèle. Au contraire, la recherche dans un voisinage dans un espace de simulation en deux dimensions représente un coût évoluant de manière quadratique. Suivant les modèles, cette topologie spatiale est présente sous forme de structure de données explicite, dans le cas du modèle proie-prédateur, ou de manière plus abstraite. Ce second type est illustré par le graphe d’accessibilité utilisé pour le modèle MIOR plus loin dans ce mémoire. Cette variation des coûts en fonction des paramètres d’entrée influence directement les performances obtenues par une implémentation particulière, et en particulier par une adaptation sur le GPU, en application de la loi d’Amdhal. Si les portions adaptées sur GPU sont parallélisables et deviennent de plus en plus coûteuses avec l’augmentation du nombre d’agents ou de la taille de l’espace de simulation, l’utilisation de cette plate-forme sera alors d’autant plus avantageuse en regard au CPU que ces deux paramètres augmentent. Au contraire, si le coût de ces portions parallélisées reste constant ou très limité dans la plage de paramètres qui intéresse le chercheur, les gains offerts par telle adaptation seront plus limités. Dans toute expérimentation, il apparaît donc prometteur d’identifier les traitements dont le coût augmente rapidement en regard de l’espace de simulation du système, puis d’évaluer l’impact sur les performances de ces traitements sur différentes tailles du système, si possible avec un facteur de mise à l’échelle assurant un comportement identique de la simulation. 6.2 Développement d’un modèle sur GPU La première approche de parallélisation d’un système multi-agents sur GPU est de réaliser l’ensemble du modèle sur ce support. De nombreuses réalisations de ce type ont été présentées dans la section 3.3.1. Cette approche requiert toutefois la maîtrise du modèle de programmation GPU, ainsi que la gestion de nombreuses problématiques par le concepteur du modèle. Nous détaillons ces différentes problématiques dans la suite de cette section. 6.2.1 Implémentation des structures de données OpenCL ne spécifie pas, en tant que standard basé sur le langage C, de structures telles que les listes chaînées ou les grilles : les seules structures de données gérées directement par le langage sont les types primitifs, les structures et les tableaux statiques. Pour pouvoir adapter un modèle multi-agents sur GPU, il est donc nécessaire de convertir toutes les structures décrites dans le modèle en combinaison d’un ou plusieurs de ces types de données. Cette restriction limite le modèle à l’utilisation de tableaux statiques à une dimension ou à des structures spécifiques telles que les textures pour représenter les grilles souvent rencontrées dans les systèmes multi-agents. Cette conversion en structures de données implique des choix de représentation. La Figure 6.1 illustre ainsi deux manières possibles de représenter une matrice en OpenCL, sur la base d’une linéarisation ligne par ligne ou colonne par colonne. Chacune de ces alternatives est adaptée à un mode particulier d’accès aux données. La linéarisation par ligne permetCHAPITRE 6. MÉTHODES D’ADAPTATION SMA SUR GPU 81 1 2 3 4 5 6 7 8 9 1 2 3 4 5 6 7 8 9 1 4 7 2 5 8 3 6 9 Linéarisation par lignes Linéarisation par colonnes Figure 6.1 – Linéarisation par lignes ou par colonnes d’une grille à deux dimensions de tirer un meilleur parti de la localité des données en cas de traitements sur des lignes complètes de matrice, et en particulier du chargement des données par paquet par la carte graphique. Elle est également adaptée à la répartition des cellules de chaque ligne entre plusieurs traitements, en permettant à la carte graphique de grouper l’accès aux données voisines en mémoire. Ces deux avantages disparaissent dans le cas d’un traitement de la matrice colonne par colonne où il sera alors nécessaire de préférer une linéarisation par colonnes, pour les mêmes raisons. La conversion de ces structures est rendue plus difficile en OpenCL, par rapport au C, par l’impossibilité d’utiliser des pointeurs à l’intérieur des structures de données GPU [ope]. Toute structure basée sur ce concept (liste chaînée, graphe...) doit également être représentée sur GPU sous forme d’un ou plusieurs tableaux statiques ou d’objets texture avec une perte en flexibilité d’utilisation. La gestion de ces représentations alternatives doit être prise en charge à la fois au niveau du système hôte, pour permettre l’allocation et l’initialisation de ces structures de données, et au niveau du périphérique d’exécution. La plupart des bibliothèques OpenCL décrites dans notre contexte se focalisent sur l’utilisation de structures et d’opérations du côté hôte uniquement, en délégant à l’implémentation le soin de gérer les données indiquées, même si des bibliothèques comme ELMO [FVSS13] facilitent certains traitements au niveau de l’exécution GPU. 6.2.2 Allocation et gestion de la mémoire OpenCL requiert également une gestion totalement manuelle de la mémoire de la part du dé- veloppeur, au contraire de langages comme Java ou de nombreuses plates-formes multi-agents qui intègrent un mécanisme de ramasse-miettes chargé de la libération automatique des ressources. Cette gestion manuelle de la mémoire est basée sur un mécanisme de comptage des références à chaque objet natif OpenCL, où la mémoire est libérée une fois que plus aucune référence n’existe sur l’objet. Ce mécanisme implique une vigilance importante de la part du développeur pour s’assurer que les ressources natives sont effectivement libérées après utilisation. Une dernier aspect important de la gestion en mémoire est que son allocation repose, comme en C, sur la demande d’un espace de taille fixée au système. La zone mémoire obtenue n’est pas typée, et peut être utilisée indifféremment pour n’importe quel type de donnée. Si cette généricité permet d’envisager la réutilisation du même espace mémoire pour plusieurs données du modèle, elle empêche également toute vérification automatique de son utilisation par le compilateur ou la plate-forme d’exécution. Les espaces mémoires obtenus sont également caractérisés, comme en C, par l’absence de toute vérification de la validité des accès. Il est ainsi aisément possible, en manipulant des tableauxCHAPITRE 6. MÉTHODES D’ADAPTATION SMA SUR GPU 82 de données, d’écrire ou de lire à des adresses mémoires invalides. Ce type d’erreur n’est pas nécessairement détecté par la plate-forme d’exécution, et impose une grande vigilance dans l’accès aux structures de données pour éviter de corrompre silencieusement les données de la simulation. 6.2.3 Gestion de l’exécution Au-delà de la gestion de la représentation des données du modèle, la réalisation d’un modèle multi-agents directement sur GPU pose la question de la granularité de parallélisation de l’exécution et du type de distribution des données à retenir : est-il préférable d’effectuer la totalité de la simulation en un seul lancement de kernel ? Vaut-il mieux, au contraire, découper l’exécution en plusieurs kernels correspondants à des données et des traitements différents ? Comment découper l’algorithme utilisé en threads ? Granularité de parallélisation La décomposition du traitement à effectuer en nombreux threads est un pré-requis important pour une exécution efficace du nombre important de coeurs fournis par l’architecture matérielle GPU. L’exécution d’un agent à la fois n’a ainsi aucun intérêt si l’exécution de cet agent n’est pas parallélisable et coûteuse en soi, du fait des coûts de transfert, du faible taux d’occupation et des temps d’exécution obtenus. Une manière d’assurer ce découpage est d’exécuter tous les agents du modèle de manière simultanée (parallélisation "en largeur"), en associant chaque agent à un thread d’exécution. Une alternative est une parallélisation dite "en profondeur", dans laquelle chaque agent réalise un ou plusieurs calculs coûteux à même d’être largement parallélisés, de manière à justifier son exécution indépendante sur GPU. Le choix du nombre de kernels devant être utilisés pour la réalisation de la simulation dépend de plusieurs facteurs : L’algorithme a un impact primordial sur le type de parallélisation retenue. Il peut être aisément parallélisable, s’il s’agit par exemple d’un traitement indépendant sur chaque élément d’une grille d’entrée, ou au contraire imposer de nombreuses synchronisations entre agents. Si tous les threads d’une exécution doivent conclure les mêmes opérations avant de pouvoir continuer l’exécution de la simulation, des barrières d’exécution deviennent nécessaires. Le découpage en programmes distincts est un autre moyen d’obtenir implicitement ce type de synchronisation. Le nombre de threads (work-items) devant être lancés. Le nombre et l’organisation des threads associés à un kernel sont fixés au niveau du lancement et ne peuvent pas être modifiés en cours d’exécution. Si plusieurs populations d’agents de tailles variées, ou des structures de taille très variées, existent dans le modèle, il est préférable d’utiliser un découpage adapté à chaque population, plutôt qu’un unique découpage peu adapté, de manière à maximiser l’utilisation des threads lancés. Le lancement en un seul kernel d’une simulation proie-prédateur comprenant 2000 proies et 100 prédateurs implique ainsi l’utilisation de 2000 works-items, si chaque population doit être traitée en parallèle. Si ce découpage est optimal en regard du nombre de proies, seuls 5% des threads seront effectivement utilisés pour la simulation les prédateurs, ce qui induit une irrégularité importante en temps de traitement sur GPU. Les dépendances de données. Le type des données manipulées et leur utilisation dans les différentes phases de l’exécution ont également leur importance en termes de découpage. Ainsi, les objets textures ne sont accessibles qu’en lecture ou en écriture au sein d’un même lancement.CHAPITRE 6. MÉTHODES D’ADAPTATION SMA SUR GPU 83 Les dépendances de transfert. Certaines données peuvent également demander des traitements intermédiaires sur CPU avant de poursuivre l’exécution sur GPU. Dans ce cas, l’application de ces traitements requiert une récupération des données par le CPU, un calcul, puis une nouvelle copie sur GPU, et les coûts de transferts associés. La fréquence et le nombre des transferts devant être réalisés. Le fait de déléguer une partie de la simulation au GPU impose l’échange régulier de données entre les deux plates-formes d’exé- cution, pour la mise à jour de la simulation ou la récupération de résultats. S’il est plus intéressant d’effectuer tous les traitements en un minimum de lancements, pour limiter les coûts associés à ces transferts, des contraintes en termes de découpage d’exécution, évoqués dans le paragraphe précé- dent, ou en termes de visualisation de la simulation peuvent imposer le découpage de la simulation en plusieurs étapes de traitement. Distribution des données L’exécution en OpenCL est basée sur le découpage de la tâche en une grille à une, deux ou trois dimensions de threads (ou work-items) exécutant le même traitement pour l’accès aux données. Chacun de ces threads est associé à une position dans cette grille. Dans ces circonstances, il est naturel de souhaiter adapter ce découpage d’exécution au découpage retenu pour les données, de manière à pouvoir utiliser ces positions dans les traitements. Pour les systèmes multi-agents, cette association revient souvent à associer un thread à chaque agent en cours de traitement du système. Cette association entre index dans la grille d’exécution et agent ouvre la voie à deux possibilités de représentation des données des agents dans le modèle, illustrées par la Figure 6.2. positionX positionY positionZ positionX positionY positionZ positionX positionY positionZ positionX positionY positionZ x1 x2 x3 x4 ... xn x y z x2 y2 z2 x3 y3 z3 ... xn yn zn x1 y1 z1 y1 y2 y3 y4 ... yn z1 z2 z3 z4 ... zn x4 y4 z4 Agent 1 Agent 2 Agent 3 Agent 4 positionX positionY positionZ positionX positionY positionZ positionX positionY positionZ positionX positionY positionZ Agent 1 Agent 2 Agent 3 Agent 4 Figure 6.2 – Représentations possibles des propriétés multi-agents en termes de structures OpenCL La première approche pour le stockage de ces données est d’associer à chaque ensemble de propriétés son propre tableau à une dimension. Dans le cas où chaque agent est associé à un triplet de coordonnées réelles (x, y,z) représentant sa position dans l’espace de simulation, ce processus se traduit par le stockage de ces informations sous forme de trois tableaux de réels, un parCHAPITRE 6. MÉTHODES D’ADAPTATION SMA SUR GPU 84 coordonnées. Le nombre de tableaux à une dimension obtenu est directement lié au nombre de propriétés différentes associées à chaque agent : si ce nombre augmente, le nombre de tableaux nécessaires, et donc le nombre de paramètres devant être passés au programme, augmente également. Si le modèle agent décrit plusieurs types d’individus différents, dotés ou non de certaines propriétés, un choix se pose alors au concepteur du stockage mémoire : soit d’effectuer l’union de tous les ensembles de propriétés stockés dans le modèle, soit de dédier à chaque type d’agent son ensemble de tableau, sans réutilisation. Le premier cas permet de limiter l’explosion du nombre de paramètres quand de nombreuses informations sont communes à toutes les catégories d’agents, comme une position. Elle signifie cependant que chaque tableau de propriétés n’est plus applicable à l’ensemble des agents, et comprendra donc des “lacunes” correspondant aux agents pour lesquels cette propriété n’est pas définie. Ces lacunes peuvent avoir à être ignorées au moyen de tests nuisant à l’utilisation effective des coeurs d’exécution en forçant le matériel à évaluer les deux branches de la condition. Le second cas évite ce problème, chaque propriété étant définie pour l’ensemble du type d’agent décrit, au prix d’une multiplication du nombre de structures de données devant être gérées dans la programmation du modèle. Une seconde approche est une programmation “objet”, où chaque ensemble de propriétés est stocké dans sa propre structure spécialisée. Il est dans ce cas important de prendre en compte l’augmentation de l’espace mémoire engendré par l’alignement des attributs de chaque structure. Une règle simple pour minimiser ces pertes mémoires est, autant que possible, d’organiser les propriétés par ordre de taille dans la description de la structure. Cette opération n’est pas effectuée automatiquement par la plupart des compilateurs pour éviter de produire des représentations binaires différentes, et donc des incompatibilités, en fonction du logiciel utilisé pour compiler chaque portion de programme. Le choix de l’une ou l’autre de ces solutions est à la fois gouverné par les considérations dé- crites en termes de stockage (nombre de paramètres nécessaires, de types distincts, recouvrement ou non de nombreuses propriétés entre les agents) et par l’algorithme lui-même, et plus particuliè- rement l’ordre et le mode d’accès aux données. Ainsi, dans le cadre d’un kernel où tous les agents accèdent à une seule propriété, un stockage des propriétés par tableaux permet de récupérer cette information pour tous les agents voisins en une seule requête, du fait des lectures par paquet effectuées par le GPU. Si l’exécution de chaque agent est au contraire basée sur l’accès à ses propres données uniquement, l’utilisation de tableaux de structures permet dans ce cas de récupérer toutes les propriétés associées à l’agent de manière simultanée. 6.2.4 Diagnostic des erreurs Le développement et le diagnostic des erreurs de modèles complets sur GPU sont rendus diffi- cile par l’impossibilité d’écrire des informations de diagnostic dans une sortie ou dans un fichier pendant l’exécution OpenCL. La récupération des erreurs est également rendue ardue par la nature asynchrone de l’exécution sur GPU. Cette asynchronisme se traduit par une vérification des erreurs sur de nombreuses implémentations d’OpenCL au moment de la soumission de la prochaine opération seulement. Cette soumission peut n’avoir aucun rapport avec l’exécution fautive ou être éloignée, ce qui retarde la découverte du dysfonctionnement. Enfin, la remontée des erreurs est effectuée, comme en C, sous forme de codes de retours prédéfinis n’indiquant pas la source et la position précise de l’erreur dans le programme. Ces codes d’erreurs sont de plus susceptibles de varier entre implémentations d’OpenCL.CHAPITRE 6. MÉTHODES D’ADAPTATION SMA SUR GPU 85 Il est possible de pallier, dans une certaine mesure, à ces difficultés de diagnostic en examinant régulièrement l’évolution des structures de données de la simulation au cours du processus de développement, ou en écrivant des informations de diagnostic dans des structures de données de sorties spécialisées. Cette solution ne fonctionne cependant pas en cas d’interruption du kernel d’exécution, et permet surtout la validation du bon fonctionnement de la simulation. 6.3 Parallélisation de certains traitements Une seconde approche de parallélisation d’un système multi-agents sur GPU est de ne réaliser que certains traitements sur carte graphique et de conserver le reste de la simulation sur CPU. Cette approche permet de conserver les aspects complexes de la simulation sur le CPU, comme dans le cas de la gestion des listes de positions de chaque individu dans le modèle proie-prédateur. Elle permet de tirer parti de la puissance du GPU pour des traitements parallélisables et coûteux en temps de calcul, et donc d’accélérer l’exécution du modèle dans son ensemble, mais requiert elle aussi une expertise en programmation pour implémenter ces opérations. L’utilisation de deux langages et architecture d’exécution différentes dans la même simulation impose également de pouvoir transformer les structures de données utilisées sur CPU en structures équivalentes sur GPU, et inversement, pour les informations communes aux deux modes d’exécution. 6.3.1 Adaptation des structures de données CPU Le langage Java est associé à une très vaste bibliothèque de structures de données prédéfinies à la disposition des développeurs. Cette base commune permet au concepteur de nouvelles bibliothèques Java de disposer des structures les plus courantes, comme les dictionnaires, les listes ou des files d’attente sans avoir besoin d’en développer sa propre implémentation ou de recourir à des bibliothèques externes. Cette standardisation des structures de données facilite également leur partage et leur adaptation sous forme de structure OpenCL. 6.3.2 Exécution synchrone ou asynchrone Les simulations multi-agents sont basées sur le découpage de leur évolution en étapes discrètes déclenchées de manière régulière (pas de temps) ou par certains événements. L’exécution du modèle ou de la plate-forme est également souvent synchrone, pour faciliter la gestion de la mise à jour de la vue ou des résultats de la simulation. Le modèle d’exécution offert par OpenCL est, pour sa part, basé sur une exécution asynchrone par le biais d’un mécanisme de file d’attente. L’utilisation d’opérations asynchrones favorise la réalisation de tâches en parallèle de l’exécution de traitements et l’indication de dépendances entre tâches, tandis que l’exécution synchrone permet un blocage implicite de l’exécution du modèle multi-agents dans l’attente de résultat. Dans ces circonstances, une première approche est d’interrompre le déroulement de la simulation sur CPU pour chaque traitement sur GPU en effectuant des soumissions synchrone. Le déroulement de l’exécution obtenue est illustré par la Figure 6.3. Cette approche revient à bloquer l’exécution de la totalité du modèle tant que le traitement GPU n’est pas terminé, alors qu’il serait par exemple possible d’exploiter le CPU pour réaliser des opérations d’affichage ou encore la mise à jour ou l’exécution d’autres parties du modèle.CHAPITRE 6. MÉTHODES D’ADAPTATION SMA SUR GPU 86 Traitement CPU 1 Traitement CPU 4 Traitement GPU 1 Traitement GPU 2 Traitement CPU 2 Traitement CPU 3 Traitement CPU 3bis Figure 6.3 – Synchronisation bloquante de chaque traitement GPU Une seconde approche est de lancer l’ensemble des traitements GPU en une seule fois pour obtenir le type de déroulement de l’exécution illustré par la Figure 6.4. Dans ce cas, les opérations GPU sont lancées à la suite, au moyen du système de dépendances fourni par OpenCL, et le programme CPU attend la fin de l’ensemble des traitements plutôt que chaque opération intermédiaire. Cette approche permet de tirer parti du CPU et du reste des ressources matérielles de la machine pendant l’exécution sur GPU, au prix toutefois d’une certaine désynchronisation des traitements à l’intérieur de l’itération, du fait de l’exécution de plusieurs traitements consécutifs en arrière plan, avant leur réintégration dans la simulation. Traitement CPU 1 Traitement CPU 4 Traitement GPU 1 Traitement GPU 2 Traitement CPU 2 Traitement CPU 3 Figure 6.4 – Synchronisation bloquante à la fin des traitements GPUCHAPITRE 6. MÉTHODES D’ADAPTATION SMA SUR GPU 87 Ces deux approches offrent comme avantage la conservation de l’ensemble des traitements au sein de la même itération. Dans les deux cas, l’ensemble des traitements GPU est terminé et réintégré à chaque pas de temps. Elles montrent cependant leurs limites dans deux situations : — Pour des traitements de fond très longs. Dans ce cas, la poursuite de l’itération est susceptible d’être bloquée pendant un temps important. — Si le recours au GPU à chaque itération ne permet pas une exécution efficace. Il est dans ce cas possible de recourir à un système de mise en attente des traitements pour grouper par lots les lancements à effectuer. Une troisième solution est donc de désynchroniser l’exécution des itérations de la simulation sur CPU et des traitements GPU. De cette manière, il devient possible d’exécuter plusieurs ité- rations avant de récupérer les données résultats, ou encore de rassembler les travaux de plusieurs itérations avant exécution sur GPU. Cette approche est la plus délicate à gérer, et demande une connaissance fine du modèle simulé, pour déterminer le nombre d’itérations de décalage pouvant être admises entre traitements CPU et GPU, puisque le découpage en pas de temps n’est plus respecté. Ce choix du niveau de synchronisation implique également un choix du nombre d’étapes de lancements utilisées pour effectuer les traitements, en fonction du taux de contrôle et des différents découpages de parallélisation pour chaque portion de calculs, comme nous l’avons vu dans le choix de la granularité de parallélisation pour l’implémentation d’un modèle sur GPU. Dans des modèles qui ne requièrent que des mises à jours partielles ou sporadiques du système, il peut être difficile de rassembler d’assez grandes quantités de traitements pour bénéficier d’une exécution sur GPU. La mise en place d’un mécanisme de file d’attente est alors nécessaire, de manière à rassembler les traitements en attente et les exécuter par lot de manière asynchrone, plutôt que sous forme de lancements indépendants. Cette approche, illustrée par la Figure 6.5, permet ensuite la récupération des résultats par la simulation au moyen d’une autre file de données. Modèle agent File de traitements en attente Exécution parallèle avec OpenCL Récupération des résultats Figure 6.5 – Regroupement des traitements en attente pour une exécution par lot sur GPUCHAPITRE 6. MÉTHODES D’ADAPTATION SMA SUR GPU 88 6.3.3 Gestion de la mémoire Dans le cas où seuls certains traitements sont parallélisés sur GPU, il est possible de distinguer trois cycles de vie distincts pour les structures mémoires OpenCL : — Tout la durée d’utilisation du GPU. Ce cycle de vie comprend les structures de données, telles que le contexte d’exécution OpenCL ou les files de soumission de traitement, qui sont utilisées pour toute la durée de la simulation. La création d’un nouveau contexte est effectuée soit au moment de l’initialisation du modèle ou de la plate-forme, soit au moment du premier lancement OpenCL. Sa libération peut être gérée de la même manière, soit implicitement par la plate-forme ou la sortie du programme, soit explicitement par la simulation. La libération explicite du contexte d’exécution est importante dans le cas où le même programme créerait d’autres contextes par la suite, pour éviter toute perte de ressources liée aux anciens contextes d’exécution GPU encore présents en mémoire. — Le lancement d’un ensemble de fonctions apparentées ou de la même fonction à plusieurs reprises. La même opération peut être utilisée à chaque itération du modèle, ou plusieurs fois dans une même itération pour des fonctions différentes. C’est le cas, par exemple, dans le modèle proie-prédateur, de la fonction de déplacement utilisée à la fois pour les proies et les prédateurs. Dans ces circonstances, il est intéressant de ne pas avoir de nouveau à préparer et compiler les mêmes programmes GPU à chaque appel de la fonction. Cette réutilisation impose cependant, une fois de plus, la gestion de la mémoire par la plate-forme ou la simulation. Une solution est de permettre au développeur d’indiquer s’il est souhaitable de conserver les programmes entre chaque exécution, ou si la totalité des structures nécessaires au lancement doit être de nouveau préparée à chaque traitement. — Le lancement d’un seul traitement. Comme nous l’avons vu dans notre présentation du modèle de programmation GPU, l’exécution du lancement d’un programme implique une copie des données d’entrée sur le périphérique avant l’exécution, suivi d’une récupération des résultats une fois l’exécution terminée. Cette démarche donne lieu à l’utilisation de nombreux objets temporaires, susceptibles d’être alloués et libérés automatiquement par l’implémentation du traitement sur GPU, de manière transparente pour le reste de la simulation. La prise en compte de ces trois cycles de vie est importante pour permettre une gestion correcte de l’allocation et de la libération de la mémoire native, tout en minimisant la quantité de gestion manuelle de la mémoire devant être effectuée par le reste de la simulation, souvent basée sur un mécanisme de ramasse-miettes. L’utilisation de ce mécanisme n’est hélas pas possible pour automatiser toutes ces libérations, car son invocation n’est pas garantie par de nombreux langages et de nombreuses plates-formes tant qu’il reste de la mémoire disponible. Les structures natives n’étant que partiellement situées dans les données visibles par le programme, la saturation des ressources GPU ne déclenche pas ce mécanisme de récupération mémoire. La prise en compte du ramasse-miettes peut cependant venir en complément de cette gestion du cycle de vie des diffé- rentes structures GPU, en filet de sécurité supplémentaire permettant la libération de la mémoire. 6.4 Utilisation de traitements parallélisés existants Les deux approches précédentes correspondent à un premier scénario de parallélisation, où le concepteur dispose d’une expertise GPU à même de lui permettre de réaliser tout ou partie de la simulation sur cette architecture. Elles ne permettent cependant pas directement un second scénario d’utilisation, le recours au GPU sans connaissance particulière de l’architecture d’exécution ouCHAPITRE 6. MÉTHODES D’ADAPTATION SMA SUR GPU 89 d’un langage de programmation GPGPU. Une troisième approche possible d’adaptation d’une simulation multi-agents est de réutiliser des opérations de haut niveau déjà parallélisées sur GPU, en considérant ainsi la programmation GPGPU comme une boîte opaque permettant d’améliorer les performances du programme. Elle ne requiert pas une gestion directe des ressources ou de l’exécution GPU par la simulation ou la plate-forme multi-agents. L’utilisation de fonctions génériques implique cependant, comme dans le cas de l’utilisation de bibliothèques matricielles ou d’algèbre linéaire, de ramener les portions de la simulation à paralléliser à des opérations et des structures de données standards pour pouvoir utiliser un traitement générique. Dans le modèle proie-prédateur, il est ainsi intéressant de ramener la mise à jour des végétaux ou la somme des énergies à des opérations matricielles, plutôt qu’à un traitement ponctuel par chaque agent dans l’algorithme. 6.4.1 Contrôle du contexte d’exécution OpenCL sélectionne par défaut automatiquement une périphérique d’exécution local présent sur la machine, CPU ou GPU, si aucun type de matériel n’est indiqué. Ce comportement facilite le lancement de calculs sans avoir à choisir explicitement un support parmi les solutions d’exécution disponibles. Il est toutefois important, dans le l’utilisation de traitements parallélisés pré-implémentés, que le concepteur de modèle ait la possibilité de contrôler le type de périphérique d’exécution utilisé, pour plusieurs raisons : — Dans le cas d’une parallélisation hybride, pour garantir que l’exécution des opérations aura bien lieu sur GPU, Xeon Phi, ou FPGA plutôt que sur le processeur déjà utilisé pour le reste de la simulation. — Pour permettre la comparaison entre différents matériels, de manière à mesurer l’impact sur les performances de différentes alternatives d’exécution. Pour faciliter au maximum l’utilisation de ces traitements agents parallélisés, et assurer leur portabilité sur de nombreuses machines, quelles que soient les ressources locales disponibles de manière générale, il est toutefois important de laisser la possibilité d’une sélection implicite du type de périphérique utilisé. Ce choix par défaut peut alors être celui du premier périphérique disponible, ou reposer sur des heuristiques plus complexes, privilégiant la solution disponible considérée comme la plus rapide en calcul. 6.4.2 Gestion de la mémoire L’utilisation de traitements parallélisés existants libère l’utilisateur de la responsabilité de la gestion des structures mises en jeu de manière interne par les traitements, mais requiert toujours la prise en compte des structures persistantes entre plusieurs traitements. Le fait de devoir préparer à nouveau un contexte d’exécution et compiler un programme GPU pour chaque opération peut poser problème dans le cas de calculs courts. Ces préparations prennent alors en effet un temps important en regard du temps effectivement passé en calcul sur le périphé- rique. Une solution à ce problème est de regrouper les traitements de même type sous forme de mo-CHAPITRE 6. MÉTHODES D’ADAPTATION SMA SUR GPU 90 dule, à même d’être préparé une seule fois et réutilisé pour lancer plusieurs fois le même traitement. Dans ce cas, le lancement d’un traitement parallélisé sur GPU peut être décomposé très simplement : — Création d’un contexte. — Instantiation d’un module d’exécution. — Lancement de n traitements fournis par ce module. — Libération du module après utilisation. — Libération du contexte. Il est possible d’envisager une libération automatique de toutes les ressources associées à ce contexte au moment de sa destruction. Cette démarche simplifie alors encore davantage ce type d’utilisation dans une simulation ou une plate-forme multi-agents existants. 6.4.3 Conception de nouveaux traitements génériques Si l’utilisation de traitements génériques permet l’utilisation du GPU sans expertise de l’architecture, elle requiert également une démarche de conception particulière pour le développement de ces traitements. Si ce processus se rapproche de la seconde approche de parallélisation d’une simulation multi-agents, une adaptation partielle sur GPU, elle s’en différencie toutefois par la volonté de proposer une interface générique, découplée de tout modèle spécifique. Cette volonté de proposer une opération utilisable le plus largement possible se retrouve à la fois dans le choix des structures de données, de type grille, vecteur ou scalaires plutôt qu’objet, et dans l’interface d’appel. Cette dernière est conçue de manière à permettre au concepteur d’indiquer tous les paramètres d’entrée et de sortie de l’exécution sur GPU en une seule fois, en minimisant autant que possible les transformations ou préparations à effectuer. De cette manière, la totalité de l’exécution (préparation, copie des données, exécution et récupération des résultats) peut être prise en charge une seule fois par la fonction générique, plutôt que par le concepteur. Il est possible d’illustrer cette démarche de généralisation sur la mise à jour des ressources végétales de l’environnement dans le modèle proie-prédateur. Une première approche de mise à jour de cette grille est d’indiquer directement les facteurs de croissance devant être appliqués sous forme de constantes dans l’implémentation OpenCL. Cette solution lie cependant fortement cette mise à jour au modèle proie-prédateur : pour pouvoir utiliser ce traitement dans un autre modèle, il est nécessaire d’effectuer une copie du code associée à ce traitement, et de modifier la valeur de ces constantes. Une manière de rendre ce traitement générique et directement utilisable par d’autres simulations multi-agents est d’indiquer ces facteurs de croissance dans l’appel de la fonction. L’opération de mise à jour devient alors un moyen d’appliquer une transformation affine sur une grille quelconque, plutôt qu’uniquement sur un environnement proie-prédateur. Ce type de traitement générique peut être rapproché des opérations proposées par des bibliothèques comme CuBLAS : il peut alors être exploité sans connaissance particulière du fonctionnement de l’algorithme ou du GPU avec une simple structure de grille et deux facteurs indiquant l’opération à appliquer à chaque cellule.CHAPITRE 6. MÉTHODES D’ADAPTATION SMA SUR GPU 91 6.5 Synthèse Ce chapitre nous a permis de mettre en avant deux scénarios d’utilisation du GPU dans des modèles et des plates-formes multi-agents existants. Le premier scénario repose sur une utilisation directe des concepts de programmation GPU pour implémenter tout le modèle agent sur cette architecture. Cette utilisation de bas niveau impose cependant de nombreuses contraintes, tant en termes de représentation des données qu’en termes d’exécution, pour lesquelles il est toutefois possible de fournir des mécanismes venant en aide au développeur. Le second scénario repose sur l’utilisation de traitements agents parallélisés existants ou implémentés par le concepteur. L’utilisation du GPU est alors totalement abstraite pour le reste de la simulation, ce qui facilite son intégration dans des modèles ou des plates-formes multi-agents pour accélérer des portions de traitements. Cette seconde utilisation, de beaucoup plus haut niveau, pose également ses propres problématiques pouvant être en partie résolues par une bibliothèque adaptée. L’étude de ces deux scénarios a conduit notre réflexion lors de la conception de la bibliothèque MCMAS, conçue pour permettre ces deux types d’utilisations.7 MCMAS, une bibliotheque d ` ’execution ´ gen´ erique ´ Dans le chapitre précédent, nous avons mis en avant les deux méthodes de parallélisation de modèles multi-agents sur GPU, le portage de la totalité du modèle sur cette architecture d’exécution ou la seule adaptation de certains traitements. Dans ce chapitre, nous présentons notre bibliothèque MCMAS, qui vise à répondre à ces deux scénarios en facilitant à la fois l’utilisation du GPU sans connaissance approfondie de la plate-forme, et la réutilisation d’algorithmes et de structures pour des modèles qui souhaiteraient utiliser OpenCL. Dans une première section, nous détaillons les objectifs auxquels répond notre bibliothèque. Nous étudions ensuite l’influence de ces objectifs sur l’architecture de MCMAS, basée sur une interface de programmation haut niveau, ne mettant pas en jeu de connaissances GPU, et une interface plus bas niveau permettant un accès complet à OpenCL. Nous présentons ensuite l’implémentation par MCMAS de la gestion du contexte d’exécution et des principales structures de données rencontrées dans les systèmes multi-agents. Nous abordons également la manière donc la bibliothèque permet le recours à des types plus spécifiques spécialisés pour l’exécution sur GPU. Enfin, nous présentons l’utilisation de MCMAS par le biais de son interface de haut niveau, puis par le biais de son interface de bas niveau pour développer de nouvelles fonctionnalités de manière indépendante ou au sein de la bibliothèque. 7.1 Présentation générale MCMAS 1 est une bibliothèque Java développée pour permettre la parallélisation efficace de systèmes multi-agents sur GPU. Son exécution est basée sur le modèle de programmation OpenCL, de manière à permettre l’utilisation une variété de supports la plus large possible, allant d’architectures many-cores comme les GPU aux processeurs traditionnels le cas échéant. La volonté centrale derrière la conception de MCMAS est d’offrir deux niveaux d’utilisation au développeur, basés sur des interfaces de programmation distinctes : — Une interface d’utilisation OpenCL accessible en Java incluant tous les éléments nécessaires à l’accès au modèle de programmation, dans le cadre d’une programmation objet, ainsi que des structures de données et des mécanismes d’aide à l’exécution prêts à être utilisés. — Une interface de haut niveau permettant l’appel d’implémentations optimisées des traitements multi-agents les plus courants. Cette interface permet la parallélisation aisée de modèles existants sans connaissance GPU, tant depuis des modèles d’agents directement 1. Many-Core Multi Agent SystemsCHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 94 réalisés en Java, que depuis des plates-formes existantes telles que MadKit, NetLogo ou GAMA. L’utilisation de ces fonctions est conçue pour être la moins intrusive possible et réduire au minimum le nombre de structures de données manipulées pour réaliser un traitement. Cette volonté de fournir deux interfaces d’utilisation a une influence directe sur l’architecture retenue pour la bibliothèque, que nous présentons dans la section suivante. 7.2 Architecture L’architecture de MCMAS peut être vue comme l’empilement de deux couches applicatives distinctes et complémentaires en termes d’utilisation : — Une base commune, MCM 2 . Cette couche permet l’accès au modèle de programmation OpenCL par le biais d’une interface objet. Elle comprend de nombreux outils de gestion de l’exécution et des structures de données communément utilisées pour l’implémentation de modèles et de traitements multi-agents utilisables sur GPU. Elle représente l’interface de bas niveau de MCMAS, permettant la réalisation de nouveaux traitements avec la bibliothèque. — Un ensemble de plugins fournissant des traitements génériques réutilisables. Cette couche applicative repose sur l’interface de programmation MCM pour proposer des traitements multi-agents déjà implémentés sous la forme de fonctions de haut niveau, comme la mise à jour de l’environnement ou le calcul de déplacements. Cet ensemble de plugins est extensible au moyen de la couche applicative MCM ou en encapsulant l’appel à d’autres plugins, de manière à ajouter le support de nouvelles opérations et de nouvelles structures de données à la bibliothèque. Ces deux couches applicatives sont représentées dans la Figure 7.1, qui illustre également les concepts de plugins et de contexte d’exécution proposés par notre bibliothèque. Des fonctions différentes sont dévolues à chacune de ces deux couches, comme nous le présentons par la suite. 7.2.1 Une interface de bas niveau : MCM MCM représente la base de la bibliothèque MCMAS, et offre l’accès à l’interface de programmation de bas niveau de notre bibliothèque et à tous les mécanismes de l’exécution sur GPU. Elle reprend la gestion d’un grand nombre de problématiques liées au développement et au lancement de programmes OpenCL. MCM facilite la gestion de la mémoire native en intégrant la gestion du ramasse-miettes et en permettant de manière optionnelle d’associer toutes les structures mémoires et applicatives à leur contexte d’allocation, de manière à assurer leur libération automatique au moment de la destruction de ce contexte. Cette couche applicative fournit les structures de données communes de type grille, vecteur ou objet proposées par MCMAS, à la fois du côté Java et OpenCL de l’exécution. La conversion de ces structures MCMAS vers et depuis les types de données Java les plus courants est également incluse à ce niveau de la bibliothèque. MCM repose sur la couche d’adaptation JOCL pour l’accès à l’interface de programmation 2. Many-Core ManagerCHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 95 JOCL (adaptateur OpenCL) Plugin Gestionnaire MCM Files d'attentes, structures de données, programmes OpenCL... Contexte MCMAS Plugin Plate-forme ou modèle multi-agent Interface haut niveau Interface bas niveau Figure 7.1 – Architecture de MCMAS native. Le choix de cette solution est motivée par son minimalisme illustrée par une interface de programmation identique à OpenCL transposée en Java. D’autres bibliothèques, telles que LWJGL, proposent des implémentations OpenCL déjà orientées objets, sur lesquelles il est cependant plus malaisé de redéfinir une autre gestion de l’allocation ou de la libération de la mémoire. 7.2.2 Une interface de haut niveau basée sur des plugins MCMAS propose, au dessus de la couche logicielle MCM, une interface de haut niveau basée sur l’utilisation d’un contexte d’exécution abstrait MCMAS et de plugins regroupant des fonctions multi-agents apparentées. Un contexte d’exécution abstrait Le contexte d’exécution MCMAS représente un environnement d’exécution doté de tous les mécanismes nécessaires au lancement d’un traitement OpenCL. Ce contexte vient répondre au besoin de personnaliser l’exécution des traitements en permettant au concepteur de modèle multiagents de sélectionner le type de périphérique d’exécution souhaité et d’activer différents mécanismes à l’exécution tels que l’enregistrement du temps consacré à chaque opération (profiling). En l’absence d’indication, MCMAS favorise par défaut l’utilisation des cartes graphiques présentesCHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 96 en local, et recourt, le cas échéant, à l’utilisation du processeur traditionnel. Ce contexte offre également l’accès aux objets MCM sous-jacents, de manière à permettre la combinaison des deux interfaces de programmation offertes par MCMAS dans un même environnement d’exécution. Des plugins spécialisés Les opérations de haut niveau proposées par MCMAS sont regroupées en plugins spécialisés par thématiques, de manière à faciliter la découverte de l’interface de haut niveau de la bibliothèque et d’assurer un découpage clair des responsabilités de chaque module. Ces plugins gèrent la réutilisation des ressources mémoires entre fonctions apparentées de manière transparente, et implémentent des classes de traitements agents pouvant être parallélisées. Cette décomposition en modules indépendants facilite l’ajout de nouvelles fonctionnalités à MCMAS, pour gérer de nouveaux traitements ou de nouvelles structures de données rencontrés dans les systèmes multi-agents. Une grande partie des plugins proposés avec MCMAS est incluse dans la même archive que la bibliothèque logicielle. Les plugins MCMAS peuvent également être distribués de manière indépendante : l’enregistrement de ces nouvelles opérations n’impose pas de contrainte particulière, de manière à faciliter leur intégration dans tout programme ou plate-forme multi-agents existant. 7.3 Implémentation Après ce panorama de l’architecture proposée par MCMAS, nous présentons dans la suite quelques points d’implémentation de cette bibliothèque et nous justifions les choix correspondants qui ont été effectués. 7.3.1 Contexte d’exécution La première fonction essentielle pour MCMAS est la création d’un contexte d’exécution et des structures correspondantes. Ce processus implique le choix d’un périphérique d’exécution sur la machine, qui est susceptible d’offrir de manière simultanée l’accès à des architectures matérielles many-core ou à des architectures multi-coeurs CPU plus traditionnelles. Le choix de ce périphérique d’exécution peut être effectué de trois façons différentes avec MCMAS : — En l’absence d’indication, MCMAS sélectionne automatiquement une solution d’exécution. Dans ce cas, les cartes graphiques sont retenues en priorité, avant de considérer à défaut l’exécution sur le processeur local. — En indiquant un type de matériel d’exécution. Dans ce cas, MCMAS recherche tous les périphériques OpenCL de ce type présents sur la machine, et sélectionne par défaut le premier matériel rencontré. Une erreur est retournée le cas échéant par la bibliothèque. Il est possible d’indiquer plusieurs types de matériel à rechercher, pour reproduire une recherche en cascade similaire à celle effectuée en l’absence d’indication. — En indiquant une implémentation et un matériel OpenCL particulier. Cette dernière approche permet de contrôler le périphérique d’exécution effectivement utilisé par MCMAS.CHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 97 Elle est indispensable pour exploiter plusieurs cartes graphiques qui seraient présentes sur la même machine. En parallèle du choix du périphérique, de nombreux paramètres de l’exécution OpenCL peuvent également être contrôlés, parmi lesquels : — Le niveau d’optimisation à utiliser pour la compilation des programmes OpenCL. — L’activation du support du profiling, pour permettre l’obtention de statistiques de temps sur chaque opération. — L’utilisation par défaut d’opérations flottantes en double ou simple précision. — Le respect strict ou non du standard IEEE sur les opérations flottantes, pour permettre l’obtention de meilleures performances sur les opérations les plus courantes. MCMAS permet le contrôle simple de la disponibilité et de l’activation de ces fonctionnalités indépendamment des spécificités liées aux différentes versions d’OpenCL et aux extensions proposées par les implémentations du standard de chaque fabriquant. Par défaut, les fonctionnalités ne pénalisant ni les performances ni la précision des calculs sont activées, pour permettre un meilleur diagnostic au moment de la compilation d’erreurs de syntaxe ou des ressources consommées sur GPU. 7.3.2 Structures de données agents De nombreuses structures de données, telles que les vecteurs ou les grilles, sont très couramment utilisées par les systèmes multi-agents. Si ces structures sont fournies de manière standard sous forme de collection ou aisément réalisables par le développeur sous forme de tableaux statiques à plusieurs dimensions en Java, l’absence de support objet et les restrictions sur les types de données imposées par OpenCL rendent moins aisée leur représentation sur GPU, particulièrement en l’absence de véritable bibliothèque de données standard. OpenCL ne permet en effet le passage et l’utilisation sur GPU que de trois catégories de données : — Des données scalaires de type primitif ou structure. — Des tableaux statiques à une dimension. — Des textures. Dans ces circonstances, il est nécessaire pour supporter les principaux types de données agents de pouvoir les convertir et les manipuler sous la forme d’une combinaison d’une ou plusieurs des structures ci-dessus. L’approche retenue par MCMAS est de tirer parti des outils de conversion déjà fournis par JOCL entre buffers binaires Java NIO et buffers OpenCL, en facilitant la conversion et la récupération des autres types scalaires à partir de ce format. Pour ce faire, de nombreuses classes constituées de fonctions statiques de conversion sont fournies. Dans les sous-sections suivantes, nous allons présenter quelques structures de données fournies par MCMAS, ainsi que leur implémentation.CHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 98 Types primitifs Le langage OpenCL étant directement basé sur le standard C99, l’ensemble des types primitifs communs à C et à Java sont directement utilisables dans MCMAS, à l’exception notable du type booléen. Les types non signés disponibles en C et en OpenCL doivent cependant être manipulés avec précaution, Java ne gérant que les types signés. L’interprétation automatique du premier bit comme un indicateur de signe signifie en effet que leur valeur sera interprétée de manière différente entre le système hôte et les kernels d’exécution. Types objets Il est possible de passer des objets à l’exécution d’un programme OpenCL en les représentant sous forme de structure. Ces structures reprennent alors les propriétés de l’objet devant être accessibles sur le GPU. Ces structures sont générées automatiquement par introspection à partir de toute classe Java héritant de la classe Struct. Seuls les attributs publics associés à la classe sont pris en compte, OpenCL ne proposant pas de contrôle d’accès. Le Listing 7.2 illustre un exemple d’objet Java et de la structure équivalente associée au niveau d’OpenCL. 1 public class Coord extends Struct { 2 3 public int x; 4 public int y; 5 public int z; 6 7 public Coord(int x, int y, int z) { 8 this.x = x; 9 this.y = y; 10 this.z = z; 11 } 12 } 1 struct { 2 int x; 3 int y; 4 int z; 5 } Coord; Figure 7.2 – Exemple d’objet Java et de sa représentation en OpenCL avec MCMAS Vecteurs Le langage OpenCL propose un type de tableau statique hérité du langage C. Ces tableaux peuvent non seulement stocker les types communs à ces deux langages (primitifs et structures), mais également les types vectoriels introduits par l’architecture GPU. Ces tableaux, contrairement à leur équivalent Java, ne stockent cependant aucune information de taille. Dans ces conditions, deux choix sont possibles : — L’utilisation directe de tableaux OpenCL. Dans ce cas, la taille du tableau doit être stockée et indiquée aux différentes fonctions de manière indépendante. Cette approche similaire à celle employée en C/C++ est grandement facilitée dans le cas de problèmes où la taille des structures est directement liée aux propriétés du modèle, et peut donc être déduite de manière aisée à partir de ces informations. Le nombre de positions d’individus à déplacer peutCHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 99 ainsi facilement être déduit, dans le cadre du modèle proie-prédateur, à partir du nombre total de threads lancés, puisqu’un thread correspond à un agent à déplacer. Dans le cas où plusieurs structures de données partageraient une même taille, comme l’addition de deux vecteurs, le passage de la taille de la structure comme donnée importante permet de n’avoir à spécifier qu’une seule fois l’information. — L’utilisation d’une structure de type vecteur, représentant un tableau natif OpenCL associé à une information entière de taille. Dans ce dernier cas, une structure OpenCL peut être utilisée pour le stockage des méta-données du vecteur associée à un tableau contenant les données brutes du vecteur. Une autre solution est de stocker cette information de taille au début ou à la fin des données du tableau, sous forme d’élé- ment supplémentaire : cette seconde approche requiert cependant que les éléments stockés dans le tableau soient d’un type compatible avec la représentation de cette taille, ainsi qu’une vigilance particulière lors du parcours des données du vecteur pour ignorer cet élément supplémentaire. La définition de fonctions d’accès spécifiques, ou d’une condition de terminaison particulière, devient alors nécessaire. Le fait qu’OpenCL interdise l’emploi de pointeurs dans les structures de données [ope] rend l’utilisation d’une structure séparée stockant les méta-données peu pratique. Deux approches sont possibles pour contourner cette limitation, avec cependant certains problèmes : — La déclaration de structures de tableaux dont la taille est déclarée à la compilation. Cette solution requiert la connaissance de toutes les tailles de vecteur au moment du chargement du programme, et la génération d’une structure pour chaque taille de vecteur du programme. Une alternative est la définition d’une taille maximale pour les vecteurs utilisés, et la défi- nition à la compilation d’une seule structure de données. Cette approche peut cependant, en fonction des variations de tailles de données, occasionner des pertes mémoires importantes. — L’utilisation de deux variables, l’une associée aux méta-données, l’autre au tableau comprenant les éléments du vecteur. Cette second approche, plus simple, ne réduit pas le nombre de variables distinctes nécessaire par rapport à un stockage séparé de la taille du tableau dans l’algorithme, et peut rapidement favoriser une explosion du nombre de paramètres requis pour le fonctionnement du programme. Au vu de ces problématiques, deux implémentations des vecteurs sont proposées par défaut par MCMAS, dont la représentation mémoire est illustrée sur la Figure 7.3 : taille e1 e2 e3 etaille -1 e1 e2 e3 e4 Taille en début de tableau Marqueur de fin Figure 7.3 – Représentations de vecteurs proposées par MCMAS — Une représentation basée sur un tableau statique contenant comme premier élément le nombre d’éléments stockés. Ce stockage au début du tableau est motivé par la nécessitéCHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 100 de disposer de cette information à un emplacement aisément déductible sans connaître la taille du vecteur. — Une représentation basée sur un marqueur de fin. Cette représentation ne permet plus l’accès direct à la taille du tableau, mais requiert un parcours du tableau pour obtenir cette information. Ce parcours est rendu nécessaire dans le cas de l’application d’un traitement à chaque élément ou de la copie des données, et n’est donc pas pénalisant pour ce type d’opération. Il pose toutefois problème pour insérer ou récupérer un élément particulier du tableau, s’il est nécessaire de procéder à la validité de l’indice indiqué par rapport aux limites du tableau. Collections En complément des tableaux statiques, le langage Java propose un vaste ensemble de collections, correspondant aux structures de données les plus connues et utilisées dans le domaine de l’algorithmique : — Listes simplement et doublement chaînées — Dictionnaires — Matrices — Piles, files... Ces structures de données sont représentées en Java sous la forme de type objets dérivés de la classe de base Collection, qui assure la disponibilité de nombreuses méthodes communes d’insertion, de suppression, de parcours des éléments ou de récupération de la taille. Cette généricité des opérations facilite la conversion de ces collections vers et depuis des tableaux statiques au niveau de MCMAS à l’aide d’un ensemble de primitives de conversion inté- grées à MCM. Les positions des individus dans le modèle proie-prédateur sont ainsi, dans notre implémentation, basées sur une collection d’entiers convertie en tableau statique au niveau du GPU. Grilles Une structure souvent rencontrée dans les systèmes multi-agents est la grille. Suivant le type de modèle représenté, elle peut constituer l’ensemble des données (cas d’une implémentation du modèle à base d’automates cellulaires) ou un simple moyen de discrétiser un espace de simulation (cas du modèle proie-prédateur). La solution la plus directe pour représenter une telle structure dans de nombreux langages est l’utilisation de tableaux de tableaux, ou tableaux à plusieurs dimensions. Dans ce cas, l’accès aux données est effectué au moyen d’une double indexation du contenu, du type tableau[x][y]. Cette implémentation n’est cependant pas directement possible en OpenCL du fait de la limitation des tableaux à une seule dimension. Dans ces circonstances, plusieurs implémentations alternatives sont proposées par MCMAS, en fonction du type de grille et d’accès souhaités sur GPU. La solution la plus simple à cette limitation en nombre de dimensions est la linéarisation de la grille sous forme d’un tableau à une dimension. Dans ce cas, l’accès à l’élément situé aux coordonnées (x, y) du tableau revient au calcul d’un unique index basé sur ces deux dimensions, et la largeur ou hauteur de la grille, suivant le sens deCHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 101 linéarisation retenu, en lignes ou en colonnes. Si x correspond à l’abscisse, y à l’ordonnée, l à la largeur et L à la hauteur de la grille, cet index est calculé de la manière suivante : 1 / / Li n é a r i s a t i o n en l i g n e 2 i = y * l + x 3 4 / / Li n é a r i s a t i o n en c ol o n n e 5 i = x * L + y Le calcul de cet index est pris en charge de manière transparente par les objets grilles offerts par MCMAS du côté CPU, et par un ensemble de directives de macro-processeur du côté de l’exécution OpenCL. La linéarisation des données est très efficace du point de vue des accès mémoire GPU car elle permet de s’assurer que des éléments adjacents seront effectivement stockés à des emplacements mémoires contigus ou à intervalles réguliers, de manière à pouvoir regrouper et profiter de la largeur des lectures mémoires sur cette architecture. Cette proximité des données permet d’optimiser l’exploitation des caches L1 et L2 intégrés aux matériels GPU récents, en assurant le stockage de ces données voisines dans la même ligne de cache. Cette linéarisation montre cependant ses limites dans le cas de grilles de faible densité, où un grand nombre de cellules ne sont pas utilisées : Consommation mémoire. La linéarisation de grilles de grande dimension impose au périphé- rique de disposer d’assez de mémoire contigüe pour stocker tous les éléments de la grille, même inutilisés, là ou des implémentations Java peuvent être basées sur des structures creuses comme des collections. Nombre d’accès. Si ce type de grille est très performant en accès, du fait de la simple nécessité de calculer un index supplémentaire par rapport à un tableau statique et de la proximité des données en mémoire, des opérations comme le calcul du nombre de cellules utilisées dans la grille ou tout traitement sur les cellules imposent un parcours de l’ensemble de la grille. Cette utilisation inefficace de la mémoire pour des structures de faible densité est rendue obligatoire par l’impossibilité d’allouer de la mémoire depuis un programme OpenCL, ce qui impose un dimensionnement de la structure très défensif, à même de gérer le pire des scénarios. Une solution, dans ce cas, est d’employer d’autres représentations pour les grilles, où seules les cases effectivement utilisées seront stockées de manière contigüe, plutôt que l’ensemble de la grille. Un grand nombre de formats [BG09] ont déjà été proposés pour la littérature pour ce type de matrices à faible densité, typiquement optimisés soit pour la création (DOK 3 ), soit pour le parcours et la modification de matrices (LIL 4 , COO 5 , CSR6 ). Ces formats sont actuellement en cours d’implémentation dans MCMAS. 7.3.3 Structures spécifiques A côté des types courants en Java, MCMAS permet l’accès à deux types de données spécifiques au GPU, les textures et les types vectoriels. Dans les sections suivantes, nous présentons leur principe et leur fonctionnement. 3. Dictionnaire de clés 4. Liste de listes 5. Liste de coordonnées 6. Lignes creuses compresséesCHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 102 Textures Ces structures, à l’origine graphique, sont représentées en OpenCL par des objets image associés à des dimensions et un format de stockage des pixels. Ce format de stockage indique le nombre de canaux stockés pour chaque pixel (rouge, vert, bleu, alpha...) ainsi que le type de donnée utilisé pour la représentation de chaque canal (entier 8bits, 16bits ou flottant...) Une même texture peut être employée dans plusieurs kernels OpenCL, mais ne peut être utilisée qu’en lecture ou en écriture par un même kernel. Cette limitation empêche son utilisation pour des données agents qui seraient accessibles en entrée/sortie, mais permet son utilisation dans le cadre de mises à jour non destructives d’un paramètre d’entrée en lecture seule, où les modifications sont stockées dans un buffer résultat en écriture, comme c’est par exemple le cas dans le jeu de la vie. Une autre restriction de ces textures tient au nombre limité de formats supportés, pour le stockage des données, chaque canal étant prévu pour le stockage d’une composante entière ou flottante. Ces limitations de format empêchent le stockage de données en double précision, de structures ou de plus de trois informations par pixel, contrairement aux types vectoriels ou au tableaux de structures permis par OpenCL. L’utilisation de textures présente cependant plusieurs avantages : — L’accès à ces objets est optimisé par un cache spécialisé sur toutes les architectures GPU supportant OpenCL, comme nous l’avons vu dans la présentation de l’architecture mémoire GPU. Cet avantage est particulièrement employé dans le cas de modèles comme celui de proie-prédateur ou des automates cellulaires, où un nombre limité de propriétés doit être stocké par chaque case mais un accès rapide est indispensable. — Contrairement aux tableaux, il est possible de déclarer des images à deux ou trois dimensions. Cet aspect multi-dimensionnel facilite l’accès à un élément particulier de la texture sans utilisation d’opérations supplémentaires évoquées dans le cas des vecteurs, et permet au concepteur d’associer directement la dimension des textures et le découpage de l’exécution des données, de manière à simplifier son programme et exploiter au mieux la localité des données dans chaque unité de traitement. — Un dernier intérêt des textures, enfin, est la possibilité de les afficher directement de manière graphique à l’aide des primitives d’intégration OpenGL offertes par OpenCL. Cette fonctionnalité est particulièrement intéressante dans le cadre de systèmes multi-agents, où une forme d’affichage est souvent attendue pour faciliter le suivi de la simulation. L’absence de transformation particulière est un avantage important dans le cas de modèles dotés de grands nombres d’individus, où tout traitement représenterait une perte en temps d’exécution pouvant être consacré à la simulation elle-même. Types vectoriels OpenCL complète l’ensemble de types primitifs hérités de C par des types vectoriels permettant de stocker dans une seule variable 2, 3, 4, 8 ou 16 données primitives de même type. Ces types vectoriels, également présents sur d’autres modèles de programmation GPGPU comme CUDA, sont nativement supportés par de nombreuses opérations arithmétiques fournies par le modèle de programmation. Ce support permet, par exemple, d’effectuer un calcul de distances euclidiennes ou une normalisation de vecteur sur GPU en stockant chaque élément sous la forme d’un seul paramètre. L’accès aux membres de ces types vectoriels est possible en OpenCL à l’aide des champs x, y, z et w pour les quatre premiers éléments ou sous forme d’index numérique, tel qu’illustré par leCHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 103 Listing 7.1. Listing 7.1 – Initialisation de données vectorielles OpenCL 1 float4 pos = (float4) (0, 0, 0, 0); 2 pos.x = 1.0; 3 pos.s3 = 4.0; Le standard OpenCL impose le support de ces alternatives vectorielles pour les types char, short, int, float et long et leurs variantes non signées. Chaque implémentation peut également fournir un support vectoriel pour les nombres réels de type double, en déclarant une extension, de manière analogue au mécanisme proposé par OpenCL. Au-delà de la possibilité de stocker un ensemble de coordonnées dans une même variable, un autre intérêt important de ces types vectoriels est la facilité avec laquelle ils peuvent être composés ou décomposés en OpenCL, en combinant les noms ou les index de champs de chaque côté de l’opérateur d’affectation. De telles facilités rendent le changement de nombre de dimensions d’une coordonnée, requis pour certaines opération agent, trivial en OpenCL, tel qu’illustré par le Listing 7.2. Listing 7.2 – Transtypage de données vectorielles OpenCL 1 float2 pos1 = (float2) (1, 2); 2 float4 pos2 = (float4) (1, 3, 5, 0); 3 float2 pos4 = (float4) (0, 0, 0, 0); 4 pos4 = (float4) (pos1.xy , pos2.z} L’utilisation de ces types dans MCMAS est rendue possible par le biais de la bibliothèque joclstructs, proposée par les développeurs de JOCL, offrant l’accès à ces types sous forme d’objets Java. 7.3.4 Exécution synchrone ou asynchrone La plate-forme OpenCL est basée sur une soumission de l’ensemble des opérations à réaliser sur le périphérique en file d’attente. Ce mode de fonctionnement permet au programme principal de poursuivre son exécution, et de consulter les résultats de sa soumission de manière ultérieure, grâce à un "ticket" retourné lors de la soumission. Ce mécanisme est également intégré dans l’interface de bas-niveau de MCMAS, sous forme d’objets événements Java implémentant l’interface standard Future, en plus des opérations OpenCL spécialisées. Ces événements peuvent être alors manuellement utilisés pour choisir le moment où synchroniser l’exécution des traitements, ou directement comme paramètres pour la soumission de nouveaux traitements, de manière à créer un enchaînement d’actions OpenCL. Ce mécanisme de dépendances peut par exemple être utilisé pour effectuer la copie de données avant et après le lancement d’un programme sans synchronisation intermédiaire, comme illustré par le Listing 7.3. Ce mécanisme, indispensable pour tirer parti du recouvrement permis par OpenCL entre opé- rations de copie des données et d’exécution, est exploité par de nombreux plugins offerts par MCMAS. Il peut également être mis à disposition au niveau de l’interface par le biais de variantes asynchrones des opérations proposées, de manière analogue à l’interface proposée par MPI pour la communication en mémoire distribuée.CHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 104 Listing 7.3 – Utilisation asynchrone de MCM 1 / / Pr é p a r a t i o n d e s a r g um e nt s e t l a n c e m e nt d ’ un programme OpenCL 2 kernel. setArguments (vector , radius , xPositionsMem , yPositionsMem , xResultsMem , yResultsMem ); 3 4 MCMEvent finished = q. enqueue1DKernel (kernel , vector.length); 5 6 / / Mise en f i l e d ’ a t t e n t e de l a r é cup é r a t i o n d e s donn é e s r é s u l t a t s , 7 / / une f o i s l ’ ex é c u t i o n du programme t e r m i n é e ( é v é n é ment f i n i s h e d ) 8 MCMEvent r1 = q. enqueueReadBuffer (xResultsMem , Pointer.to(xResults), 0, xResultsMem .getSize (), finished); 9 MCMEvent r2 = q. enqueueReadBuffer (yResultsMem , Pointer.to(yResults), 0, yResultsMem .getSize (), finished); 10 11 / / A u t r e s t r a i t e m e n t s J av a 12 13 / / A t t e n t e b l o q u a n t e de l a f i n du g r a p he d ’ ex é c u t i o n 14 MCMEvent.waitFor(r1 , r2);CHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 105 7.4 Utilisation de l’interface de haut niveau Après nous être intéressés à son architecture, nous présentons dans cette section l’utilisation de l’interface de haut niveau de notre bibliothèque, sans connaissance particulière de la programmation GPU. Cette utilisation est rendue possible à l’aide de deux structures principales : le contexte d’exécution et un ou plusieurs plugins offrant l’accès aux fonctions de haut niveau de MCMAS. 7.4.1 Initialisation de MCMAS L’interface de haut niveau de MCMAS est basée sur l’utilisation d’un contexte d’exécution de type MCMASContext. Cet objet contient l’ensemble des structures nécessaires à la soumission d’un traitement OpenCL, et admet différents constructeurs permettant au développeur d’indiquer le type et les paramètres d’exécution souhaités, tel que représenté dans le Listing 7.4. Une fois instancié, un contexte MCMAS peut être utilisé pour créer et appeler des plugins MCMAS. Ces deux modes d’utilisation peuvent être librement combinés pour un même contexte. Listing 7.4 – Exemples de création de différents types de contexte MCMAS 1 / / Aucun argument , s é l e c t i o n a ut o m ati q u e de l a p l a t e −f o rm e d ’ ex é c u t i o n p a r MCMAS: 2 / / GPU en p r i o r i t é , p u i s CPU. 3 MCMASContext context = new MCMASContext () 4 5 / / Dé f i n i t i o n e x p l i c i t e de l a p r i o r i é t é d e s p l a t e −f o r m e s à u t i l i s e r : 6 MCMASContext context = new MCMASContext ( ContextType .GPU , ContextType .CPU) 7 8 / / Cr é a t i o n d ’ un c o n t e x t e GPU 9 MCMASContext context = new MCMASContext ( ContextType .GPU) 10 11 / / Cr é a t i o n d ’ un c o n t e x t e CPU 12 MCMASContext context = new MCMASContext ( ContextType .CPU) 13 14 / / Cr é a t i o n d ’ un c o n t e x t e s u p p o r t a n t l e p r o f i l i n g 15 MCMASContext context = new MCMASContext (MCMAS. PROFILING ); 7.4.2 Exemples d’appel de fonctions de haut niveau Une fois un contexte MCMAS obtenu, il est possible de l’utiliser pour appeler de nombreuses fonctions de haut niveau regroupées sous forme de plugins spécialisés inclus dans la bibliothèque. Chacun de ces plugins propose un ensemble de fonctions classées par thématique d’utilisation (calcul de distance, diffusion...) Ces fonctions admettent un certain nombre de paramètres d’entrée et de sortie correspondants au traitement à effectuer. L’accent est mis, au niveau de ces paramètres d’entrée, sur l’utilisation de tableaux statiques et d’autres structures Java standard, de manière à permettre la plus large utilisation possible de ces fonctions. Des outils de conversions fournis avec MCMAS facilitent le passage vers ces types depuis les autres types de données référencés dans notre présentation précédente, et en particulier depuis des objets, des buffers de données ou des objets. Nous illustrons dans la suite de cette section l’utilisation de certains des plugins fournis par notre bibliothèque.CHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 106 Calcul de distances Une première fonctionnalité rencontrée dans de nombreux systèmes multi-agents, dont le modèle proie-prédateur, est le calcul de distances euclidiennes entre individus. Selon le type de modèle employé, ce calcul peut être effectué en une, deux ou trois dimensions, sur des coordonnées entières (grille) ou réelles. L’obtention de ces distances implique généralement, sur CPU, le calcul séquentiel de cette distance pour chaque couple d’agents présents dans le modèle, ou le calcul de ces distances à la volée pour les seuls points utilisés. Le calcul de ces distances pouvant être aisément effectué en parallèle, il est possible de réaliser tous ces calculs en simultané avec MCMAS, en indiquant en entrée les coordonnées à considérer et en récupérant l’ensemble des distances comme résultat. Les coordonnées des points d’entrée peuvent être spécifiées sous forme d’un tableau par dimension à considérer (array_x, array_y, array_z), sous forme de tableau de structures coordonnées, ou encore sous forme de tableau de type vectoriel OpenCL tel que float2 ou float3, comme évoqué précédemment. Pour deux ensembles de M et N coordonnées d’entrée, le résultat de ce module est une grille comprenant les distances euclidiennes entre chaque point du premier ensemble et chaque point du second ensemble, de dimension M × N, et de type compatible avec le stockage des coordonnées d’entrée (entier, réel ou flottant). Diffusion Une autre opération souvent rencontrée dans les modèles multi-agents est la diffusion d’une quantité au sein d’un vecteur ou d’une grille. Ce mécanisme est souvent utilisé pour des mises à jour de l’environnement, de manière à simuler la diffusion de phéromones par exemple dans le cas du modèle des fourmis, ou de populations dans des modèles de reproduction d’individus dans un nouvel habitat. Cette diffusion est caractérisée par plusieurs paramètres : — Le nombre de dimensions considérées : le nombre de cellules voisines vers lesquelles diffuser est directement lié à la configuration du modèle. Dans un modèle à une dimension, avec des cellules en grille, seules deux voisines devront être considérées, contre six dans le cas de deux dimensions et vingt-six dans un cas à trois dimensions. — La possibilité ou non de diffuser en diagonale : le calcul précédent suppose que l’ensemble des cellules voisines sont considérées. Si seules celles partageant une arête avec la cellule courante sont prises en compte (diffusion "en croix"), alors le nombre de voisins pour chaque cellule est modifié, ce qui peut changer drastiquement le comportement de la simulation. Un autre choix important pour effectuer cette diffusion est le comportement devant être retenu aux limites de la grille, où certains voisins sont manquants : — Une première approche est de supposer toute diffusion en dehors de la grille comme perdue. Ces frontières se comportent alors comme un puits sans fond, et peuvent amener une perte de matière dans le modèle (système non clos). — Une autre approche est d’interdire la diffusion en dehors de la grille (système fermé). Cette approche est préférable dans le cadre d’un véritable environnement fermé, mais décon-CHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 107 seillée dans le cas d’un modèle ne représentant qu’une fraction d’un environnement plus vaste, comme une parcelle de terrain d’un territoire, car elle introduit des frontières artificielles pouvant influer sur le cycle d’évolution des agents situés à la périphérique du modèle, sans que cette influence n’ait aucune base pratique. — Une dernière approche, enfin, est de considérer l’environnement agent comme bouclant verticalement et horizontalement. Cette approche, souvent retenue pour des raisons de commodité, revient à représenter l’espace de simulation comme la projection d’un tore. Le module diffusion de MCMAS fournit les opérations correspondant à ces différents cas. Cette implémentation est également basée sur l’utilisation de programmes OpenCL adaptés à chaque type de données d’entrée (scalaire, structure ou vectoriel, entière ou flottante). Le lancement d’une diffusion peut être effectué en quelques lignes, à l’aide des paramètres acceptés par la fonction, comme l’illustre le Listing 7.5. Listing 7.5 – Exemple d’utilisation du plugin diffusion sur une grille de flottants représentée par un tableaux à deux dimensions 1 / / Dé c l a r a t i o n d e s s t r u c t u r e s 2 float [][] grille , grilleResultat ; 3 4 / / I n s t a n t i a t i o n d ’ un c o n t e x t MCMAS e t du p l u g i n de d i f f u s i o n 5 MCMASContext context = new MCMASContext (); 6 DiffusePlugin diffuser = DiffusePlugin . newInstance (context); 7 8 / / Pr é p a r a t i o n d e s s t r u c t u r e s de donn é e s MCMAS 9 MCMASGrid input = MCMAS. createGridFrom (grille); 10 MCMASGrid output = MCMAS. createGridFrom ( grilleResultat ); 11 12 / / L a nceme nt d ’ une d i f f u s i o n e t r é cup é r a t i o n du r é s u l t a t . 13 / / D i f f u s e P l u g i n . DIMENSION_4 r e q u i e r t une d i f f u s i o n v e r t i c a l e e t h o r i z o n t a l e : 14 / / D i f f u s e P l u g i n . DIMENSION_8 p e r m e t t r a i t de demander l a p r i s e en c om pte d e s d i a g o n a l e s . 15 diffuser.diffuse(input , output , DiffusePlugin . DIMENSION_4 ); 16 17 / / R e c o pi e de l a g r i l l e o bt e n u e d a n s l a s t r u c t u r e j a v a o r i g i n a l e 18 output.write( grilleResultat ); De nombreux modèles agents imposent également des limites minimales et maximales particulières à la valeur pouvant être stockée dans chaque cellule. Ces limitations sont prises en compte par le plugin diffusion fourni par MCMAS via la disponibilité de variantes bornées des opérations précédentes, permettant d’indiquer la valeur minimale et la valeur maximale permises pour chaque cellule. Cette opération de normalisation peut également être effectuée à l’aide d’un plugin spécialisé fourni par MCMAS, de manière indépendante. Réduction De très nombreuses simulations agents requièrent la production régulière d’indicateurs associés au modèle, comme la quantité globale d’énergie présente dans le système ou la population dans le modèle proie-prédateur. La dispersion de ces quantités entre les différents éléments du modèle implique, à chaque itération, de pouvoir synthétiser ces quantités dans une variable globale, à même d’être affichée ou utilisée pour interrompre ou non la simulation.CHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 108 Des modèles de programmation CPU tels que OpenMP ou MPI facilitent cette opération à l’aide de primitives de réduction, permettant au concepteur d’indiquer les données devant être réduites et l’opération à utiliser (somme, minimum, maximum...) MCMAS reprend cette logique dans un plugin spécialisé permettant d’effectuer cette réduction en parallèle à l’aide des informations suivantes : — Le champ de la réduction : un vecteur ou une grille contenant la propriété du modèle agents à prendre en compte. — L’opération de réduction : minimum, maximum, moyenne, addition, multiplication... Le résultat d’une réduction totale est un type scalaire, et un vecteur pour une réduction partielle. Comme dans le cadre d’une diffusion, le type résultat est compatible avec le type d’entrée : flottant, par exemple, pour une réduction sur des données flottantes. Fonctions affines Un autre type de traitement parallélisable est, comme nous l’avons vu dans le cas du modèle proie-prédateur, l’application d’une même fonction affine a × x + b à chaque cellule d’un vecteur ou d’une grille d’entrée. Cette opération est directement supportée par MCMAS sur ces deux structures de données, un vecteur pouvant être considéré comme une grille à une dimension. Le Listing 7.6 illustre l’appel du plugin effectué pour la croissance de l’herbe dans le cadre du modèle proie-prédateur. Listing 7.6 – Application d’une fonction affine sur les éléments d’une grille 1 / / Dé c l a r a t i o n d e s s t r u c t u r e s 2 float [][] grille , grilleResultat ; 3 4 / / I n s t a n t i a t i o n d ’ un c o n t e x t MCMAS e t du p l u g i n de d i f f u s i o n 5 MCMASContext context = new MCMASContext (); 6 DiffusePlugin transformer = AXBPlugin . newInstance (context); 7 8 / / Pr é p a r a t i o n d e s s t r u c t u r e s de donn é e s MCMAS 9 MCMASGrid input = MCMAS. createGridFrom (grille); 10 MCMASGrid output = MCMAS. createGridFrom ( grilleResultat ); 11 12 / / L a nceme nt de l a t r a n s f o r m a t i o n e t r é cup é r a t i o n du r é s u l t a t . 13 / / a v a ut 1 . 0 , c a r aucun f a c t e u r v a r i a b l e de c r o i s s a n c e n ’ e s t a p p l i q u é . 14 / / b v a ut GRASS_GROWTH, l e t a u x de c r o i s s a n c e f i x e d é f i n i d a n s l a s i m u l a t i o n . 15 transformer . transform (input , output , 1.0, GRASS_GROWTH ); 16 17 / / R e c o pi e de l a g r i l l e o bt e n u e d a n s l a s t r u c t u r e j a v a o r i g i n a l e 18 output.write( grilleResultat ); 7.4.3 Utilisation depuis des framework multi-agents existants La bibliothèque MCMAS est utilisable directement en Java, mais doit également pouvoir être accessible à des plates-formes multi-agents ne permettant pas l’accès direct à ce langage. Dans ce cas, il est possible de fournir le service assurant le rôle d’interlocuteur et de traducteur entre le formalisme utilisé par la plate-forme et MCMAS. Ce service peut être un agent du systèmeCHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 109 spécialisé, tel qu’illustré sur la Figure 7.4, ou un système indépendant, accessible par le biais de messages. Bibliothèque MCSMA Parcelle Agent service Interfaces MCSMA Cellule Cellule Di ffusion Di ffusion Réduction populations cellules diffusion(cellules) reduction(cellules, totals) Traitement messages et appels de services Encapsulation des résultats Figure 7.4 – Exemple d’utilisation de MCMAS depuis un modèle multi-agents Chacun de ces messages doit respecter un format bien défini, indiquant le traitement souhaité ainsi que des contraintes d’exécution du calcul (sur GPU, sur CPU...). L’identité de l’expéditeur est mémorisée avant le traitement de chacun de ces messages, de manière à pouvoir lui envoyer les résultats de l’exécution dans un autre message une fois la requête traitée. Par exemple, dans le cas de Madkit où les agents communiquent à l’aide d’un gestionnaire de messages, ce processus se traduit pas la mise en place d’un protocole d’échange. Dans le cas de GAMA, cette intégration peut être réalisée sous la forme d’un plugin ajoutant des fonctions MCMAS au langage de description utilisé pour les agents. Cette couche d’adaptation entre MCMAS et la plate-forme multi-agents ciblée permet l’utilisation transparente de la bibliothèque, en conservant l’infrastructure du modèle existant. L’utilisation d’un agent service permettant la réalisation de traitements MCMAS est une autre solution utilisant les mécanismes de communication du modèle existant. Il est également possible d’utiliser MCMAS directement au niveau de chaque agent, soit à l’aide de Java directement, soit à l’aide d’une couche d’adaptation dans le cas de plates-formes telles que GAMA ou NetLogo. 7.5 Développement de nouveaux plugins L’ensemble de plugins fourni avec MCMAS ne pourra jamais recouvrir l’ensemble des fonctionnalités pouvant être rencontrées dans la littérature agents. Pour pallier à cette limitation, MCMAS permet l’ajout aisé de nouveaux plugins, de manière à permettre au concepteur de simulations d’étoffer les fonctionnalités offertes par la bibliothèque. Pour valider le type d’opération à implémenter et l’implémentation à utiliser, plusieurs étapes de réflexion et de conception sont recommandées. Dans cette section, nous décomposons les différentes étapes de cette démarche.CHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 110 7.5.1 Conception du modèle et parallélisation La première étape du développement d’un nouveau plugin est la définition du problème rencontré et de sa portée exacte. Un système multi-agents peut représenter un ensemble d’individus et de comportements complexes, se prêtant ou non à une adaptation sur GPU. Il est alors dans ce cas nécessaire de déterminer les parties du modèle pouvant tirer avantage d’une exécution sur GPU, ainsi que la manière de paralléliser ces traitements. Un élément important pour évaluer les gains pouvant être attendus de la parallélisation avec MCMAS est d’évaluer l’impact en termes de performance des parties du modèle pouvant être accélérées par rapport au temps total d’exécution de la simulation, en application de la loi d’Amdahl. Une conséquence directe de cette loi est que tout gain obtenu par l’utilisation d’une plate-forme est rapidement limité si la portion parallélisée ne représente pas une fraction significative du temps d’exécution de la simulation multi-agents. Le découpage du modèle en sous-parties peut même, dans ce cas, entraîner une perte de performance liée aux échanges de données entre les différentes portions de l’algorithme. Il est donc nécessaire, en développant un nouveau plugin MCMAS, d’avoir à l’esprit ces limitations et une estimation du gain de performance pouvant être attendu, ainsi que le nombre de recours à cette simulation, de manière à pouvoir quantifier le temps pouvant être consacré à une adaptation GPU du modèle par rapport au temps supplémentaire qui aurait été utilisé avec l’ancienne implémentation. L’efficacité d’exécution d’un programme sur GPU est directement liée aux opérations et aux structures utilisées, mais n’est pas linéaire en termes d’efforts. La recherche de performance est un processus sans fin tendant toujours vers une limite où les adaptations à effectuer ne permettent plus de gains en performance très importants. Nos cas d’applications illustrent particulièrement qu’un portage à l’identique d’un algorithme ne permet que rarement l’obtention de bonnes performances, pour des raisons d’occupation processeur, de synchronisation ou de mémoire. Un autre aspect critique de l’efficacité de l’utilisation du GPU, déjà évoqué dans notre pré- sentation du découpage d’une simulation en OpenCL, est le niveau de granularité retenu par la simulation, c’est à dire la taille en temps passé sur chaque plate-forme. Une parallélisation “à gros grains” permet de réduire le nombre d’échanges entre les deux plate-formes, et donc les coûts de synchronisation ou de communication associés ces échanges. Au contraire, une parallélisation dite “à petits grains” implique le lancement de nombreux traitements simultanés sur GPU, pour minimiser l’impact des échanges plus réguliers devant avoir lieu. 7.5.2 Définition de l’interface et des fonctionnalités Une fois la problématique et la solution précisément connues, il est nécessaire de définir la manière dont la parallélisation pourra être intégrée dans le modèle existant. Cette intégration porte à la fois sur les scénarios d’exécution, et les données manipulées : — Dans quel ordre les opérations seront-elles appelées ? Est-il possible de se servir de cette information pour rendre les traitements asynchrones ou de changer leur ordre d’exécution ? — Quelles structures de données sont-elles utilisées ? Doivent-elles être transformées pour une exécution sur GPU ? Peuvent-elles être partagées entre un maximum de traitements, pour éviter des copies ? Ces deux problématiques, complémentaires, ont une importance vitale pour la définition de l’interface du nouveau plugin, et plus particulièrement sur le nombre et le prototype des opérationsCHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 111 fournies. 7.5.3 Implémentation de la solution retenue Une fois l’interface du plugin définie, il est possible de réaliser l’implémentation de la solution elle-même. Dans MCMAS, cette implémentation met en jeu deux langages différents : — Java pour l’ensemble des traitements exécutés sur CPU. Dans le cadre d’un plugin, ces traitements comprennent au minimum la gestion de la copie et des lancements des traitements sur la plate-forme OpenCL, ainsi que le suivi de l’exécution et la récupération des résultats. Cette partie peut également inclure des pré-traitements sur les données, soit dans le cadre de conversions de représentations, soit parce que ces traitements sont peu adaptés à une exécution sur GPU. Le reste du modèle multi-agents n’est pas nécessairement réalisé en Java, si une interface d’adaptation MCMAS est utilisée. — OpenCL est utilisé pour tous les traitements ayant lieu sur le périphérique. Comme C et C++, ce langage permet l’inclusion de portions de programmes existantes au moment de la compilation. Cette fonctionnalité est utilisée par MCMAS pour fournir de nombreux raccourcis pour la manipulation des structures de données incluses dans MCMAS, et permet également au plugin de partager des fonctionnalités entre ses traitements natifs. Il est importante de noter que tout lancement de programme OpenCL implique de définir explicitement le point d’entrée (kernel) utilisé : il est donc toujours possible d’implémenter tous les traitements du plugin dans un unique fichier source OpenCL. Si OpenCL permet le stockage de binaires correspondant à des programmes compilés, les binaires obtenus sont spécifiques à l’implémentation et au matériel courant. Ce mécanisme permet d’éviter de multiples compilations au-delà de la première exécution, et ainsi de réduire le temps de chargement du programme, mais ne dispense pas le développeur du plugin de devoir fournir le code source des portions OpenCL de son programme, en cas de distribution sur de nombreuses plates-formes. Le plugin obtenu peut être directement inclus dans l’arborescence de fichiers sources du modèle multi-agents y ayant recours, ou empaqueté sous forme d’archive JAR indépendante, de manière à faciliter son partage et sa distribution. La distribution d’une documentation et de tests associés au nouveau plugin est fortement recommandée. La rédaction de ces tests est facilitée par la disponibilité de nombreuses fonctions de création de contextes et de récupération d’informations, en termes de plate-forme d’exécution et de temps au niveau de MCMAS. La création d’un contexte simple CPU, GPU, avec ou sans activation des fonctionnalités de profiling, est ainsi possible en une ligne. 7.5.4 Validation Une fois le développement du plugin terminé, une validation de celui-ci est requise. Cette validation regroupe deux aspects : — La validation de l’exactitude des résultats. Cette première étape, critique, consiste à s’assurer que les résultats obtenus sont similaires à ceux prévus par le modèle théorique ou observés dans l’implémentation originale. Elle peut être effectuée de manière formelle, dans le cas où l’équivalence sémantique avant et après adaptation peut être établie. Le recours au parallélisme tend cependant à introduire de nombreuses inconnues dans ce type de démonstration, qu’il est nécessaire de quantifier. Ces difficultés favorisent une validationCHAPITRE 7. MCMAS, UNE BIBLIOTHÈQUE D’EXÉCUTION GÉNÉRIQUE 112 expérimentale, bouclant d’une certaine manière le cycle de pensée agent : dans ce cas, les résultats obtenus par les deux implémentations sont comparées dans le cadre d’un protocole expérimental prenant en compte les cas limites, les données et les conditions d’utilisation devant être envisagées. — La validation des performances obtenues. Cette seconde étape permet de quantifier les performances effectivement observées par rapport à l’implémentation originale et aux éventuelles attentes basées sur les caractéristiques de la solution retenue et de la plateforme, comme le nombre de cœurs. Elle ne peut être qu’expérimentale, à l’aide de mesures de temps d’exécution des simulations. La comparaison de ces temps, et l’allure des courbes de performance obtenue, permet de caractériser le type de comportement obtenu en termes de performance et de ressources consommées. Ces résultats peuvent, ou non, conforter les attentes établies au moment de la conception du plugin. Ils permettent également de mettre en avant des parties coûteuses ou mal adaptées de l’algorithme dont l’impact aurait pu être négligé ou sous-estimé, pouvant relancer une itération supplémentaire de parallélisation. 7.6 Synthèse Dans ce chapitre, nous avons présenté MCMAS, notre bibliothèque dont l’objectif est de prendre en charge deux scénarios d’utilisation, l’utilisation du GPU au moyen de fonctions gé- nériques sans connaissance de l’architecture ou le développement de nouveaux traitements GPU. Ce double usage est à l’origine du choix d’une architecture modulaire pour MCMAS, basée d’une part sur une interface de bas niveau, MCM, pour l’accès au modèle de programmation OpenCL et d’autre part sur un ensemble de plugins regroupant des traitements agents pré- implémentés. Ces plugins reposent également sur l’interface MCM, pour favoriser la combinaison des deux types d’utilisation ou l’expérimentation de nouveaux traitements. Cette architecture se retrouve également dans l’implémentation de la bibliothèque. Elle est basée sur trois parties fondamentales : — Un contexte d’exécution encapsulant tout l’environnement d’exécution GPU. — Un ensemble de structures de données GPU et d’outils de conversion de ces structures vers et depuis des structures de données Java. — Une interface de programmation MCM reprenant les principaux concepts OpenCL mais en facilitant la gestion dans un environnement objet. Nous avons ensuite abordé l’utilisation de MCMAS selon chacun de ces deux scénarios d’utilisation : — Sans connaissance GPU. Dans ce cas, l’utilisation de l’interface de haut niveau MCMAS est possible simplement au moyen de la création d’un contexte d’exécution, suivie de l’instantiation d’un ou plusieurs plugins avec ce contexte. Les fonctions fournies par ces plugins peuvent alors être utilisées pour lancer des opérations comme des calculs de déplacements, de distances, ou de transformations matricielles. — Avec des connaissances GPU, pour le développement de nouveaux traitements avec MCM. Ce type d’utilisation permet alors, de manière optionnelle, l’encapsulation de ces traitements dans un plugin MCMAS de manière à favoriser leur redistribution et leur réutilisation dans d’autres simulations multi-agents.8 Validation sur des modeles existants ` Dans le chapitre précédent, nous avons présenté notre bibliothèque MCMAS, ainsi que ses deux scénarios d’utilisation, par le biais d’une interface de bas niveau MCM, ou au moyen de fonctions génériques fournies par un ensemble de plugins. Pour valider son utilisation sur des cas concrets, nous illustrons dans ce chapitre son utilisation sur trois exemples de systèmes multiagents concrets : le modèle proie-prédateur, qui nous a servi de fil rouge à la présentation de MCMAS, un modèle de simulation de l’évolution microscopique des sols, MIOR, et enfin un modèle de diffusion de populations, le modèle Collemboles. Dans une première section, nous commençons par présenter les deux modèles n’ayant pas encore été évoqué, ainsi que la manière dont nous avons choisi de les paralléliser avec MCMAS. Dans une seconde section, nous présentons ensuite les performances obtenues sur ces trois adaptations. Pour cela, nous commençons par décrire les plates-formes d’exécution et le protocole utilisés, avant d’analyser les performances obtenues. Nous synthétisons enfin, dans la troisième section, les observations et les recommandations pour une parallélisation sur GPU qu’il nous a été possible de tirer de ces trois adaptations. 8.1 Parallélisation de modèles L’étude de ces trois modèles a été l’occasion d’appliquer plusieurs approches de parallélisation parmi celles évoquées dans le Chapitre 6. Pour le modèle proie-prédateur, nous avons choisi une implémentation reposant sur l’utilisation de plugins génériques fournis par MCMAS pour paralléliser certains traitements coûteux de la simulation. Pour le modèle MIOR, nous avons choisi de réaliser un nouveau plugin MCMAS pouvant être utilisé pour lancer de nombreuses simulations microscopiques. Enfin, pour le modèle Collemboles, nous avons utilisé l’interface de bas niveau MCM pour implémenter chaque étape de la simulation sur GPU. 8.1.1 Proie-prédateur Dans la continuité de notre réflexion sur ce modèle, dans le chapitre 5, nous avons choisi d’implémenter la mise à jour des ressources végétales de l’environnement et le déplacement des individus proies et prédateurs à l’aide des plugins génériques de transformation de données et de recherche dans une grille proposés par l’interface de haut niveau de notre bibliothèque. Cette implémentation est basée sur l’algorithme 1. Deux plugins fournis par MCMAS sont mis à contribution : — Le plugin de fonction affine est utilisé pour l’ensemble de la mise à jour de la grille re-CHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 114 présentant les ressources végétales à chaque itération. Dans le cadre de ce traitement, la structure de données grille fournie par MCMAS est automatiquement considérée comme un vecteur. — Un plugin de recherche de maximums fourni avec MCMAS est utilisé pour le calcul des déplacements des individus vers la cible la plus énergétique. Ce plugin permet la recherche de maximums locaux autour d’une ou plusieurs positions dans une grille. Pour ce faire, trois informations sont indiquées, la grille ainsi que les positions et le rayon de recherche. Ce plugin retourne en résultat le maximum local trouvé pour chaque position, correspondant à la case vers laquelle doit se déplacer l’individu dans le modèle proie-prédateur. Pour permettre la recherche des nouvelles positions en parallèle à l’échelle de chaque population, l’évolution de chaque type d’individu proie ou prédateur du modèle est effectuée étape par étape, tel qu’illustré par la Figure 8.1 : — Préparation des positions. Toutes les positions en deux dimensions des individus de la population sont synthétisées, en vue de l’appel à MCMAS. Cette étape permet également un comptage du nombre d’agents présents dans le modèle. Cette étape n’est pas parallélisée car elle implique la manipulation de structures de données dynamiques dont la taille n’est pas connue à priori, la liste des positions. — Recherche de maximums locaux. Cette opération, implémentée par un plugin MCMAS, permet le calcul de la nouvelle position des individus en un seul lancement. Elle admet trois arguments d’entrée : un espace de recherche, une liste de positions et un rayon de recherche. Ce rayon de recherche indique la distance maximale autour de chaque position où chercher un couple de coordonnées solution dans l’espace de recherche. La fonction retourne en résultat une liste de coordonnées correspondant aux maximums locaux trouvés pour chaque position. Cette fonction implique un parcours coûteux, en particulier si le rayon de recherche est important. Ce parcours a l’avantage de pouvoir être réalisé simultanément pour tous les individus du modèle, ce qui justifie sa parallélisation. — Déplacements. Une fois les nouvelles positions obtenues, ces informations sont utilisées pour déplacer chaque individu de manière séquentielle. Cette application séquentielle garantit la cohérence des déplacements, en assurant un fonctionnement du type "premier arrivé, premier servi" : si un conflit de destination existe entre plusieurs individus, le premier l’emporte, et les autres restent immobiles pour cette itération. Cette étape n’est pas parallé- lisée de manière à pouvoir traiter de manière séquentielle les déplacements sur le CPU, et ainsi gérer les conflits où plusieurs individus souhaitent se déplacer au même emplacement. — Consommation. Les ressources présentes à la position de chaque individu sont consommées : dans le cas d’une proie, la quantité de végétaux est réduite. Dans le cas du prédateur, la proie est tuée. Dans les deux cas, le différentiel en énergie est ajouté à l’individu courant, dans une certaine limite correspondant à la vitesse maximale d’absorption des ressources pour ce type d’individu. Cette étape n’est pas parallélisée car elle ne représente qu’une soustraction et une addition simple pour chaque individu qui peut être effectuée dans la continuité du déplacement. — Reproduction. Si l’énergie de l’individu dépasse un certain seuil, un nouvel individu est créé à son ancienne position. La quantité d’énergie minimale prévue par le modèle est retirée de l’individu parent et assignée à ce nouvel arrivant. Cette opération demeure séquentielle car elle implique une modification de la grille pour ajouter de nouveaux individus susceptible d’aboutir à des conflits. — Métabolisme. L’énergie de chaque individu est décrémentée. Si elle devient négative ou nulle, l’individu est supprimé du modèle, pour indiquer son décès. Cette opération est susceptible d’être parallélisée en traitant en parallèle tous les niveaux d’énergie du modèle,CHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 115 mais nécessiterait en pratique le traitements de nombreuses cellules vides de la grille, ainsi qu’un aller-retour sur GPU. Dans ces circonstances, cette gestion du métabolisme est réalisée dans la même boucle que les trois traitements précédents. Ce processus d’évolution des individus est appliqué de manière identique à chacune des populations du modèle, en variant les positions et les distances de recherche. Elle permet de réaliser le calcul du déplacement de manière parallèle, plutôt que sous forme de nombreuses boucles séquentielles sur CPU. Reproduction Recherche maximum Entrée : grille, positions, distance Sortie : solutions Préparation des positions Déplacement Métabolisme Simulation MCMAS Consommation Figure 8.1 – Décomposition du cycle de vie des individus avec MCMAS 8.1.2 Une simulation microscopique : MIOR Le modèle multi-agents MIOR (MIcro-ORganisme) [CCP07] reproduit l’évolution microscopique des sols sous l’effet de l’activité microbienne. Ce modèle permet de simuler l’évolution en terme de biomasse microbienne, de quantité de matière organique et de CO2 produit d’un cube de sol de de 0.002 mm de côté. Cette échelle microscopique requiert le lancement d’un grand nombre de simulations MIOR pour traiter des volumes de sols macroscopiques. Dans ce cas, le développement d’un plugin MIOR permettant de lancer des paquets de simulation est intéressant pour permettre la simulation de volumes variables de sol en parallèle, en tirant parti du parallélisme d’exécution offert par l’architecture GPU. Cette multiplication des modèles permet aussi d’augmenter le nombre d’agents en parallèle, de manière à garantir une occupation efficace des coeurs matériels. Ce lancement peut être effectué de deux manières :CHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 116 — Soit jusqu’à la stabilisation de l’évolution de l’ensemble des simulations MIOR. De cette manière, le modèle macroscopique dispose de toutes les informations futures de l’état microscopique de cette cellule. Le nombre d’itérations nécessaires à cette stabilisation de toutes les simulations n’est cependant pas forcément aisé à prévoir en fonction des paramètres d’entrée. — Soit sur un nombre fixe d’itérations. Cette alternative permet d’éviter une attente trop longue pour l’obtention des résultats des simulations MIOR. Il est également possible dans ce cas au modèle Sworm de relancer ces simulations ultérieurement sur GPU, en fonction des besoins du modèle macroscopique. Elle ne garantit pas d’atteindre la stabilisation de la simulation. Sworm échelle n Sworm échelle n + 1 Simulation MIOR Figure 8.2 – Représentation fractale de l’environnement Sworm Le modèle MIOR repose sur deux espèces d’agents : — Les Méta-Mior (MM) qui représentent des colonies microbiennes consommatrices de carbone. — Les dépôts de matière organique (OM) qui caractérisent les dépôts de carbone répartis dans le volume de sol. Les agents Meta-Mior sont associés à deux comportements distincts : — la respiration : transformation du carbone minéral en dioxyde de carbone CO2) — la croissance : chaque colonie ayant prélevé suffisamment de carbone dans l’environnement est en mesure de croître en population. Ces deux comportements sont décrits dans l’algorithme séquentiel 2. Aucune interaction n’est considérée comme possible entre les colonies microbiennes : les seuls échanges sont réalisés entre dépôts de carbone et colonies, en fonction de leur proximité spatiale (distance en deux ou trois dimensions) par rapport au rayon d’action associé à la colonie microbienne. Ces associations peuvent être représentées sous la forme de lignes liant les agents de chaque type pouvant potentiellement interagir, tel qu’illustré par la Figure 8.3CHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 117 Algorithme 2 : Algorithme séquentiel d’évolution MIOR Data : mmList Tableau d’agents MM (colonies microbiennes) Data : omList Tableau d’agents OM (dépôts de carbone) Data : world Environnement global de la simulation 1 breathNeed ← world.respirationRate × mm.carbon; 2 growthNeed ← world.growthRate × mm.carbon; 3 availableCarbon ← totalAccessibleCarbon(mm); 4 if availableCarbon > breathNeed then /* Processus de respiration */ 5 mm.active ← true; 6 availableCarbon ← availableCarbon − consumCarbon(mm, breathNeed); 7 world.CO2 ← world.CO2 + breathNeed; 8 if availableCarbon > 0 then /* Processus de croissance */ 9 growthConsum ← max(totalAccessCarbon(mm), growthNeed); 10 consumCarbon(mm, growthConsum); 11 mm.carbon ← mm.carbon + growthConsum; 12 end 13 else 14 mm.active ← f alse 15 end Figure 8.3 – Représentation graphique d’une simulation MIORCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 118 Problématiques d’implémentation du plugin L’ajout d’un nouveau plugin MCMAS permettant de lancer plusieurs simulations MIOR de manière simultanée implique l’utilisation de MCM, puisque l’ensemble de la simulation et non certains traitements génériques doit être parallélisé. Cette approche implique donc l’utilisation d’OpenCL pour implémenter l’algorithme MIOR, ce qui impose la gestion de plusieurs problématiques : — La parallélisation de l’exécution du modèle. Cette démarche, commune à toute parallélisation de modèle sur GPU, impose en particulier l’identification du grain de parallélisation retenu aux différentes étapes de l’algorithme d’évolution. — L’adaptation des structures de données. Les principales structures de données utilisées par MIOR sont une grille et un vecteur de structures par population, contenant les informations de chaque agent. — La gestion de l’accès aux ressources partagées. La parallélisation de l’algorithme séquentiel MIOR implique le partage de nombreux dépôts de carbone entre colonies microbiennes. Il est nécessaire, à ce niveau, de garantir un accès équitable à ces ressources pour ne pas pénaliser certains agents. Cette problématique est l’occasion d’étudier l’application des barrières d’utilisation OpenCL. — Le choix du nombre d’itérations de la simulation à exécuter. Ce nombre peut être directement indiqué en paramètre du lancement, ou déterminé à partir de l’évolution du modèle. Dans ce second cas se pose alors la question de définir la ou les métriques permettant de déterminer s’il y a lieu d’arrêter l’exécution. Organisation de l’exécution en parallèle Le plugin MIOR repose sur l’utilisation d’un bloc, ou work-group, pour traiter chaque simulation MIOR. A l’intérieur de ce bloc, chaque agent de la simulation est associé à un thread GPU. La simulation d’une itération de la simulation est découpée en fonctions OpenCL distinctes, pour permettre leur appel de manière indépendante à des fins de tests ou en un seul lancement pour effectuer une ou plusieurs itérations. L’utilisation d’un work-group par simulation permet l’exécution de plusieurs modèles en parallèle, tel qu’illustré sur la Figure 8.4. Ce choix permet également de tirer parti des possibilités de recouvrement d’exécution offertes par OpenCL : si l’exécution de un ou plusieurs work-items est bloquée (accès mémoire, opération coûteuse) les ressources disponibles peuvent être allouées à d’autres work-items en attente d’exécution. Cette exécution de multiples simulations permet également de garantir un bon remplissage des coeurs fournis par la plate-forme, ce qui n’est pas toujours possible avec une seule simulation en fonction du nombre d’agents à traiter. La possibilité de lancer plusieurs simulations MIOR simultanément réduit également le nombre de copies et de données nécessaires pour une même quantité de simulations. Étant donné la rapidité de chaque simulation, ce facteur a un impact direct sur les performances obtenues, tel qu’illustré dans nos expérimentations.CHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 119 MIOR MIOR MIOR Workgroup Kernel Workgroup Workgroup Simulations MIOR Figure 8.4 – Répartition de l’exécution de plusieurs modèles MIOR en OpenCL Adaptation des structures de données L’adaptation du modèle MIOR requiert la conversion des données du modèle existant en structures de données OpenCL. Dans le cadre de la réalisation de ce plugin, l’environnement et les agents sont représentés sous forme de tableaux statiques de structures représentant l’état de chaque entité. Le comportement associé à ces entités est, quant à lui, implémenté sous forme de fonctions OpenCL, appelées par les programmes OpenCL exécutés. Quatre structures de données, illustrées sur le Listing 8.1, sont employées pour représenter chaque simulation MIOR : — Un tableau d’agents MM, stockant l’état des colonies microbiennes du modèle. — Un tableau d’agents OM, représentant l’état des dépôts de matière organique. — Une matrice de topologie, stockant les informations d’accessibilité — Une structure monde globale, stockant à la fois les paramètres du système (taux de respiration, de métabolisme) et les données résultat (quantité de CO2 produite).CHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 120 Listing 8.1 – Structures de données MIOR utilisées en OpenCL 1 / / C ol o ni e mi c r o bi e n n e 2 typedef struct MM { 3 float x; / / P o s i t i o n X 4 float y; / / P o s i t i o n Y 5 int carbon; / / Carbone de l a c o l o n i e 6 int dormancy; / / É t a t a c t u e l 7 } MM; 8 9 / / Dé pô t de c a r b o n e 10 typedef struct OM { 11 float x; / / P o s i t i o n X 12 float y; / / P o s i t i o n Y 13 int carbon; / / Carbone du d é pô t 14 } OM; 15 16 / / E n vi r o n n em e nt de s i m u l a t i o n 17 typedef struct World { 18 int nbMM; 19 int nbOM; 20 int RA; / / Rayon d ’ a c t i o n 21 float RR; / / Taux de r e s p i r a t i o n 22 float GR; / / Taux de c r o i s s a n c e 23 float K; / / Taux de d é c o m p o s i t i o n 24 int width; / / T a i l l e du modè l e 25 int minSize; / / T a i l l e mi nim al e d ’ une c o l o n i e mi c r o bi e n n e 26 int CO2; / / Q u a n t i t é t o t a l e de CO2 d a n s l e modè l e 27 } World; L’ensemble de ces structures est d’abord alloué et initialisé par le processus principal, puis copié sur le périphérique d’exécution OpenCL. La topologie du modèle peut être représentée sous deux formes (Figure 8.5) : — En associant directement à chaque jeu de coordonnées (i, j) de la matrice l’information de voisinage entre la colonie microbienne i et le dépôt de carbone j. — En représentant ces informations sous forme de structure compacte en nombre d’accès. Notre proposition, basée sur [JGLG09], permet de diminuer le nombre d’accès mémoire devant être effectués pour accéder à tous les voisins associés à un agent particulier. Cette représentation compacte se traduit par le stockage contigu des numéros d’index associés à chaque agent dans chaque ligne de la matrice, mais requiert une duplication de la structure, comme dans le cas des techniques de linéarisation de grille évoquées dans les structures de MCMAS, pour permettre un accès efficace d’un point de vue ligne (index MM connu, recherche des OM associés) et colonne (index OM connu, recherche des MM associés). L’utilisation d’une représentation compacte (en nombre d’accès) consomme davantage de mé- moire mais permet une réduction du nombre d’accès mémoire nécessaires pour le traitement du modèle proportionnelle à la densité de remplissage de la matrice de topologie. Une utilisation de la matrice à 10% permet ainsi de réduire d’autant le nombre d’accès mémoire nécessaires au parcours de toutes les cellules utilisées de la structure dans le cadre de la mise à jour du modèle. L’allocation dynamique de mémoire n’est actuellement pas possible en OpenCL, et vient seulement d’être introduite dans les dernières versions du standard CUDA. Toutes ces structures de matrices doivent donc être allouées de manière statique sur CPU en prenant en compte le pire des cas possibles, où tous les agents OM du modèle accessibles depuis tous les agents MM. Une allocation moins pessimiste est possible en ajoutant une étape de pré-traitement du modèle, de manière àCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 121 Figure 8.5 – Représentation creuse et compacte en accès de la topologie MIOR compter le nombre de liaisons devant effectivement être représentées, au prix toutefois d’une étape de calcul supplémentaire. Cette piste n’a pas été évaluée dans notre étude. Gestion de l’accès aux ressources critiques Deux points critiques du modèle MIOR sont l’équité d’accès aux ressources en carbone pour les colonies microbiennes du modèle et la nécessité d’assurer la cohérence des mises à jour de données, pour éviter toute perte ou gain de matière dans le modèle. Sur une architecture massivement parallèle telle que les cartes graphiques, ce type de synchronisation peut très rapidement devenir coûteux, et entraîner une séquentialisation de l’algorithme. Dans ce cas extrême, l’ensemble des fils d’exécution est bloqué en attente d’un verrou, et un seul agent peut s’exécuter : les performances obtenues sont alors inférieures à celles d’une simple implémentation séquentielle, du fait des latences et de la complexité introduites par la gestion de la synchronisation. Il est donc critique, dans la parallélisation complète d’un système multi-agents, de s’assurer que les agents seront effectivement capables de s’exécuter de manière indépendante, pour tirer parti du parallélisme. Pour traiter cette problématique, l’algorithme de la simulation MIOR a été adapté pour permettre un découpage en trois étapes d’exécution parallélisables, séparées par des barrières de synchronisation. Ce fonctionnement est permis par un découpage en parts de carbone des ressources présentes dans le modèle : 1. distribution : le carbone disponible dans chaque dépôt de carbone (OM) est partagé en parts équitables entre tous les MM y ayant accès. 2. simulation du métabolisme : les différents processus métaboliques associés aux colonies microbiennes (respiration, croissance) sont appliqués en parallèle pour chaque agent sur les parts de carbone qui lui sont associées. 3. rassemblement : les parts de carbone restantes non consommées sont réintégrées dans leur dépôt d’origine. Cette solution permet de réduire le nombre de synchronisations nécessaires à chaque itération à trois barrières, plutôt qu’un grand nombre de verrous, et permet également d’exécuter ces trois étapes en un seul lancement depuis le langage Java.CHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 122 Détection de la terminaison Si le modèle MIOR s’intéresse à l’évolution microscopique d’un système, il est tout à fait possible de le coupler avec des modèles s’appliquant à d’autres échelles de taille, notamment macroscopiques, pour obtenir une simulation plus exhaustive du problème : on parle alors de simulation multi-échelles. Sworm [BMD+09] est un exemple de système multi-agents agent pouvant compléter l’évolution à l’échelle microscopique décrite par MIOR. Ce modèle permet de représenter l’effet de la macrofaune (par exemple les vers de terre) et de la microfaune (les bactéries) sur l’évolution des quantités de matière organique dans le sol. L’implémentation de Sworm est développée en Java sur la plate-forme Madkit [GF00a]. Elle se focalise sur l’effet bioturbant (déplacement des matières minérales et organiques) causé par les vers de terre dans le sol. Cette version ne prenant pas en compte l’activité microbienne, l’objectif du modèle MIOR est de simuler cette activité à l’échelle d’un cube de sol de 0.002 mm, là où le modèle Sworm s’intéresse à des échelles de sols de 20 cm. La représentation des données sous la forme d’unités de sol est liée à cette intégration : pour ne pas imposer l’instantiation de l’ensemble des cellules du volume de sol représenté, Sworm se base sur une représentation des données de type fractale (Figure 8.2). Cette organisation permet l’allocation et le raffinement de la représentation de chaque cellule de sol à la demande. Elle est totalement transparente du point de vue de la représentation des données du modèle MIOR, qui ne manipule que des cellules de la plus petite échelle de représentation. Elle possède cependant son importance en termes de scénarios d’exécution devant être envisagés pour ce modèle. L’instantiation de nouvelles unités macroscopiques de sol implique en effet le lancement de nombreuses simulations MIOR, qui peuvent être déléguées par lot sur GPU. Cette utilisation dans le cadre d’un autre modèle pose cependant le problème de pouvoir contrô- ler le temps d’exécution, et donc la quantité de traitements effectués par ces simulations MIOR. Il est possible de définir deux critères de terminaison pour assurer ce contrôle : — Stabilisation de l’évolution du modèle sur N itérations — Exécution d’un nombre fixé d’itérations Ces deux critères répondent à des optiques différentes, avec toutefois systématiquement la volonté de pouvoir suivre l’historique de l’évolution des principales données du modèle (quantité de carbone, de CO2 ). Stabilisation de l’évolution du modèle sur N itérations Ce critère de terminaison correspond à une absence d’évolution d’un ensemble de métriques pendant un nombre fixé d’itérations. Cet ensemble peut comprendre un nombre variables de mé- triques, suivant le niveau d’évolution à surveiller : une simple surveillance de la quantité globale de carbone stockée par les colonies microbiennes permet par exemple de déceler tout arrêt de fixation du carbone sur cette période de temps. Cet état ne garantit pas cependant l’arrêt de l’évolution du modèle, mais simplement l’absence de ressources en carbone suffisantes pour déclencher la moindre croissance microbienne. La poursuite du processus de respiration n’est pas prise en compte. La surveillance des quantités de dioxyde de carbone (CO2) pallie à ce défaut, du fait de sa production lors du processus de respiration. Une surveillance de ces deux quantités n’est cependant pas nécessaire pour garantir l’arrêt des deux processus d’évolution dans le modèle : la respiration prenant le pas sur toute croissance dans l’algorithme, la cessation de ce processus suffit à garantir l’arrêt du second. L’utilisation de N itérations de surveillance est rendue nécessaire par l’obligation de prendreCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 123 en compte l’éventuel décès d’une ou plusieurs colonies bactériennes, une fois ce type d’équilibre atteint. Ces décès, en diminuant la concurrence d’accès aux dépôts de carbone, augmentent la quantité de carbone utilisable par les autres colonies microbiennes en partageant l’accès. Cette augmentation est susceptible de permettre à ces colonies de sortir de leur état de dormance et de relancer une nouvelle phase d’évolution du système. L’inconvénient de ce critère d’arrêt est la difficulté d’estimer à priori le nombre d’itérations né- cessaires à la stabilisation du système. L’exécution sur GPU ne pouvant pas être interrompue par le programme, il est difficile, même avec une connaissance précise des paramètres de la simulation, de par la nature aléatoire du positionnement des agents, et donc leur accès aux ressources, et de certains processus, de calculer une échéance de temps fiable avant obtention du type de stabilisation de l’évolution recherchée. Exécution d’un nombre fixé d’itérations Ce critère de terminaison est totalement agnostique vis-à-vis de l’état du modèle, et considère le seul nombre d’itérations de la simulation écoulé comme indicateur d’arrêt. Cette limite permet, en connaissant la durée moyenne d’une itération, d’estimer le temps total nécessaire pour effectuer le calcul demandé. En variant le nombre d’itérations exécutées pour chaque lancement GPU, cette information permet le contrôle de la latence maximale entre deux retours de résultats. L’estimation de la durée d’une itération est possible, en dépit de la nature stochastique de certaines portions de l’algorithme (positions, probabilité de décès) en considérant le cas le plus coû- teux possible en complexité d’exécution. Dans le cas de MIOR, les seules boucles de l’algorithme sont associées à des parcours de relations inter-agents. Ce coût revient à calculer le nombre maximal de relations pouvant être présentes dans le modèle. Ce nombre est atteint si chaque colonie microbienne a un rayon d’interaction égal ou supérieur à la dimension la plus grande du modèle. Tous les dépôts de carbone présents dans le modèle sont alors accessibles à chaque colonie microbienne, ce qui se traduit, pour n colonies microbiennes et m dépôts de carbone, par un total de n ∗ m relations possibles. Les deux approches de terminaison sont rendues possibles par le plugin MIOR fourni avec MCMAS, de manière à permettre le choix de l’une ou l’autre des approches par le modèle Sworm, en fonction du nombre de simulations à lancer et des impératifs en temps du modèle macroscopique. 8.1.3 Un modèle macroscopique : Collemboles Après avoir présenté la parallélisation du modèle MIOR, nous nous intéressons à présent à un autre système multi-agents, macroscopique cette fois, Collemboles. Ce modèle nous permet de mettre en avant un exemple de parallélisation complète de modèle sur GPU au moyen de plusieurs kernels d’exécution lancés de manière asynchrone. Présentation du modèle Le modèle Collemboles est un système multi-agents conçu pour modéliser la diffusion d’arthropodes, des collemboles, entre des parcelles de plusieurs types naturelles, forestières ou artificielles, en vue d’étudier leur impact sur la biodiversité. Il est basé sur le chargement de données depuis un système d’information géographique pour obtenir un espace en deux dimensions découpé en parcelles de terrain de forme polygonale, tel qu’illustré par la Figure 8.6. Cet environnement continuCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 124 est ensuite décomposé en cellules, ou patchs, correspondants à une aire de sol fixe, qui sont utilisés comme unités de base de modélisation. L’implémentation de référence de cet algorithme a été réalisée en NetLogo, de manière à permettre une visualisation aisée de l’évolution de la répartition géographique et de la densité de population des individus. Figure 8.6 – État initial d’une simulation Collemboles - Implémentation NetLogo L’évolution de la simulation est découpée en quatre étapes, appliquées au niveau de chaque cellule : 1. L’Arrivée de nouveaux individus. Cette opération correspond à la distribution équitable d’une fraction de la population de chaque parcelle à toutes les cellules la constituant. Toutes les populations du modèle étant entières, ce processus n’a d’effet au niveau de chaque parcelle que si cette fraction de nouveaux individus représente un nombre supérieur à la quantité de cellules de la parcelle. 2. La Reproduction, qui consiste à mettre à jour la population de chaque parcelle pour correspondre à la somme des populations de toutes les cellules la composant, pour permettre un suivi de l’évolution de chaque parcelle. 3. La Diffusion. Cette opération consiste à diffuser une portion de la population de chaque cellule à ses huit voisines, comme évoqué dans nos exemples de plugins MCMAS. Cette diffusion se différencie de celle fournie par notre bibliothèque par le fait qu’elle n’a lieu que si le terrain de la parcelle courante est adapté aux collemboles et si la population globale de la parcelle atteint un certain seuil. 4. La Mort des individus. A la fin de chaque itération, toute population non nulle de collemboles au niveau de parcelles inadaptées à ces individus est fixée à zéro pour indiquer sa disparition. Cet algorithme, relativement simple, est cependant composé de plusieurs opérations coûteuses en temps de calcul mais parallélisables : la diffusion et la mise à jour des populations. L’applicationCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 125 de ces traitements à chaque cellule est cependant largement conditionnelle, en fonction d’informations externes telles que le type ou la population de la parcelle, ce qui rend difficile l’utilisation des primitives de haut niveau de diffusion ou de réduction fournies par MCMAS. Dans la suite de cette section, nous évoquons un autre moyen de paralléliser cette exécution à l’aide de l’interface bas niveau donnant accès à OpenCL. Implémentation Comme nous venons de le voir, les différents traitements mis en jeu par le modèle Collemboles sont parallélisables, mais mettent en jeu de nombreuses conditions externes qui rendent difficile l’utilisation de primitives de haut niveau MCMAS. Dans ces conditions, nous avons retenu une autre approche d’implémentation basée sur l’utilisation de l’interface de bas niveau pour décomposer le déroulement de la simulation en quatre traitements distincts lancés sans synchronisation intermédiaire sur GPU, tel qu’illustré par la Figure 8.7 : — Un kernel responsable de la gestion des nouveaux arrivants. — Un kernel chargé de la reproduction des individus. — Un kernel responsable de la diffusion des populations sur les parcelles propices. — Un dernier kernel gérant la disparition des populations situées sur des parcelles inadaptées. Nouveaux arrivants Préparation données Récupération et enregistrement des résultats CPU GPU Reproduction Diffusion Décès Figure 8.7 – Découpage d’une itération collembole entre CPU et GPUCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 126 Structures de données Deux structures principales sont mises en jeu dans le modèle Collemboles : — Les parcelles, associées à une surface, une population et un type de terrain. — La grille représentant l’environnement de simulation, dont chaque cellule comprend une indication de parcelle et une population. La représentation des parcelles en OpenCL peut être effectuée, comme nous l’avons vu dans notre réflexion sur les structures de données agents, sous forme de tableaux de structures ou d’un tableau pour chaque propriété. Nous avons choisi, dans le cas du modèle Collembole, d’avoir recours à un tableau par propriété pour représenter les parcelles pour plusieurs raisons : — Le faible nombre de propriétés associées à chaque parcelle limite l’explosion du nombre de paramètres sur GPU. — Seules une ou deux de ces propriétés sont utilisées à chaque étape des traitements. Le découpage des propriétés en structures distinctes permet donc de récupérer certaines informations du modèle en cours d’exécution à des fins de vérification ou de stockage sans perturber l’exécution des traitements n’y ayant pas recours. — Les traitements des cellules étant toujours basés sur les mêmes propriétés dans un même traitement, ce découpage maximise la localité de ces propriétés en mémoire, à la fois pour optimiser les accès et l’occupation des éventuels caches L1 et L2 présents sur le matériel. Ce raisonnement s’applique également à l’environnement, pour lequel l’utilisation d’une grille par propriété, assez similaire à celle de l’implémentation proie-prédateur, a été retenue. Dans le cas de la grille d’environnement, ce découpage en grilles de propriétés offre un avantage supplé- mentaire, en permettant de limiter au strict minimum les données devant être présentes en mémoire GPU à un moment donné. Nouveaux arrivants L’arrivée de nouveaux arrivants est traitée au niveau de chaque cellule. Pour cela, chaque instance du kernel récupère la population et le nombre de cellules de la parcelle associée à la cellule courante, pour déterminer le nombre d’individus devant être répartis sur chaque unité de sol. Cette opération revient à calculer de nombreuses fois la même fraction de population à répartir, mais permet à chaque thread de ne mettre à jour que sa cellule locale, ce qui élimine tout problème de synchronisation de l’écriture des données. Reproduction Ce traitement est également effectué pour chaque cellule de l’environnement. La réduction de la population au niveau de la parcelle est effectuée sous forme d’addition atomique, pour garantir la cohérence des totaux obtenus. Le choix d’un traitement basé sur les parcelles, plutôt que les cellules, éviterait l’utilisation d’opérations atomiques, mais impose de disposer d’une liste des cellules associées à chaque parcelle pour ne pas avoir à parcourir l’ensemble de la grille, structure qui n’est pas présente dans notre modèle. Le code final obtenu est très proche d’une opération de diffusion MCMAS, si ce n’est que les résultats sont réduits en plusieurs sous-totaux sur la base de parcelles plutôt que sous la forme d’une unique valeur scalaire.CHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 127 Diffusion La réalisation de la diffusion sur GPU des populations du modèle est effectuée en deux étapes, séparées par une barrière d’exécution. — Une quantité d’individus à diffuser est calculée au niveau de chaque cellule. — Chaque cellule récupère un huitième de la quantité de chaque cellule voisine et l’ajoute à sa propre population. L’application des mises à jour sur la cellule associée à chaque thread, plutôt que d’effectuer directement les mises à jour sur les cellules voisines, permet comme dans le cas de l’arrivée de nouveaux individus de garantir l’absence d’écriture de la même donnée par plusieurs threads différents, et ainsi d’éviter la synchronisation des modifications associées dans le modèle. Mort des individus Le dernier traitement exécuté sur GPU pour chaque cellule est la mise à zéro de la population de chaque cellule inadaptée du fait du type de terrain aux individus collemboles. Cette dernière opération ne requiert pas de considération particulière en termes de synchronisation de l’exécution, la seule donnée utilisée en écriture est la cellule courante. Elle peut donc être directement réalisée sans adaptation particulière en OpenCL. 8.2 Etudes de performances 8.2.1 Supports d’exécution Dans le cadre de nos études de performances, nous avons eu recours à une variété de supports d’exécution, tant grand public que orientés vers le calcul haute performance. Dans cette section, nous présentons les caractéristiques de chacun de ces matériels, pour les replacer dans le contexte de l’évolution de l’exécution sur GPU. L’objectif de cette variété de supports est de permettre la comparaison entre gammes professionnelles et grand public d’une part, entre anciennes et nouvelles générations d’autre part, de différentes solutions matérielles d’exécution. De cette manière, il est possible de quantifier, pour un chercheur, le bénéfice pouvant être obtenu par l’utilisation de matériel spécialisé par rapport à celle de son poste personnel. Cette variété permet également de valider les performances obtenues de manière indépendante par rapport à une génération de matériel ou une implémentation OpenCL donnée. Il est important de noter que le nombre de coeurs n’est pas directement comparable entre maté- riel NVIDIA et AMD, les unités d’exécution proposées par ce second fabriquant étant plus nombreuses mais également plus spécialisées. Voici la liste de ces supports, classés par ordre chronologique. NVIDIA Geforce 8800GT Le premier matériel sur lequel nous avons eu l’occasion de réaliser des essais est une carte graphique milieu de gamme grand public de NVIDIA, la Geforce 8800GT, sortie en octobre 2007. Cette carte dispose de 112 unités d’exécution, soit 14 multi-processeurs, cadencés à 1.5 GHz et accompagnés de 512 Mo de mémoire vive, et offre une puissance théorique de 504 Gflops enCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 128 simple précision. Elle ne supporte pas matériellement la gestion des nombres en double précision. Dans nos expérimentations, elle est associée à un processeur Intel Core 2 Q9300 fonctionnant à 2.5 GHz. Elle ne propose pas de mécanisme de cache L1 et L2. NVIDIA Tesla S1070 Le second matériel utilisé est un châssis graphique dédié au calcul GPU proposé par NVIDIA en 2009. Il est constitué de quatre cartes graphiques Tesla C1060 dotées de 240 unités d’exécution, soit 30 multiprocesseurs cadencés à 1.3 Ghz pour une puissance théorique de 933 Gflops par carte. Chaque carte est associée à 4 Go de mémoire vive. Dans le cadre de nos tests, un seul de ces GPU est utilisé, couplé à un processeur Intel Xeon X5550 cadencé à 2.67 Ghz. L’architecture matérielle de cette solution est très similaire à la Geforce 8800GT présentée précédemment. Elle se différencie par la quantité de mémoire disponible, 4 Go, ainsi que le support de la correction des erreurs mémoires (ECC) et des calculs en nombres flottants double précision. Elle ne propose pas de mécanisme de cache L1 et L2. AMD Radeon HD6870 La carte graphique AMD Radeon HD6870 est une carte graphique grand public de milieu de gamme sortie en octobre 2010. Elle se caractérise par l’utilisation d’un mécanisme de cache L1 et L2 similaire à celui rencontré sur les cartes NVIDIA récentes, mais ne supporte pas toutefois le traitement matériel de nombres flottants en double précision. Elle est constituée, au niveau du matériel, de 1120 coeurs cadencés à une fréquence de 900 MHz, pour une puissance théorique de 2016 Gflops. Ces unités d’exécution sont associées à 1Go de mémoire vive intégrés à la carte. Dans nos expérimentations, elle est associée à un processeur AMD Phenom II X6 1090T cadencé à 3.2 GHz. NVIDIA Geforce 560Ti La Geforce 560Ti est une carte graphique grand public de milieu de gamme sortie en janvier 2011. Elle est basée sur l’architecture Fermi. Cette carte propose 384 unités d’exécution cadencées à 822 MHz et 1 Go de mémoire vive. Elle dispose d’un mécanisme de cache L1 et L2 et supporte les calculs en double précision, mais limite le débit d’opérations obtenu à un douzième de celui des traitements en simple précision. Dans notre configuration de test, elle est associée à un processeur Intel Core i7 2600K cadencé à 3.4 GHz. NVIDIA Tesla K20 La carte graphique Tesla K20 est basée sur l’architecture matérielle Kepler et propose donc un cache L1 et un cache L2. Sortie fin novembre 2012, elle est destinée spécifiquement au calcul scientifique, et supporte matériellement le traitement de nombres flottants en double précision ainsi que la correction des erreurs mémoires. Elle est constituée au niveau matériel de 2496 coeurs graphiques cadencés à 706 MHz, pour une puissance théorique de 3520 Gflops. Ces coeurs d’exé- cution sont associés à 5120 Mo de mémoire vive. Les performances en double précision offertes par cette carte sont de l’ordre du tiers des performances obtenues en simple précision. Cette carte est associée dans nos expérimentations à un processeur Intel Xeon CPU E5-2609v2 cadencé à 2.50 GHz.CHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 129 8.2.2 Protocole expérimental L’évolution du matériel GPU est très rapide. Nous avons donc eu l’occasion, entre le début et la fin de nos recherches, de tester des supports très différents. Certains d’entre eux, comme la carte Geforce 8800GT, n’ont pas pu être utilisés pour l’ensemble de nos tests. Nous avons cependant inclus les courbes correspondantes pour permettre une comparaison avec nos autres plates-formes d’exécution. Tous les tests ont été lancés sur des systèmes d’exploitation Linux 64 bits. Les courbes de la Geforce 8800GT ont été réalisées avec la version 3.2 de l’environnement CUDA fourni par la société NVIDIA. Toutes les autres courbes mettant en jeu du matériel de ce fabriquant ont été réalisées avec la dernière version stable, la version 5.2. Pour les tests de performance sur matériel AMD ou CPU, nous avons utilisé l’implémentation OpenCL proposée par l’environnement AMD APP en version 2.7. Dans le cadre de nos expérimentations, nous avons choisi d’évaluer le temps d’exécution en fonction de la quantité de traitements. Nous avons pour cela fait varier la taille et le nombre d’agents du modèle dans le cas des modèles MIOR et Collemboles. Dans le cas de proie-prédateur, cette variation de la quantité des traitements est obtenue en modifiant le rayon de recherche de chaque individu. Toutes les valeurs indiquées sont basées sur une moyenne des temps d’exécution obtenus sur plusieurs dizaines d’exécution, de manière à minimiser l’impact du système d’exploitation et du pilote graphique sur les temps observés. 8.2.3 Résultats obtenus Proie-prédateur Pour mesurer l’impact de l’utilisation du GPU sur les performances obtenues, nous avons choisi de faire varier le rayon de recherche de nouvelles positions sur GPU, en maintenant toutes les autres données constantes. De cette manière, il est possible de mesurer l’impact du nombre de cases parcourues et du nombre d’accès mémoires sur les performances obtenues. Le rayon de recherche est directement appliqué aux proies, et majoré de 50% pour les prédateurs, de manière à conserver un rapport fixe entre les champs de vision de chaque population. Nous avons utilisé pour nos expérimentation un environnement de dimension 1000, capable de tenir en mémoire sur tous nos supports d’évolution. Pour éviter de donner l’accès à l’ensemble de l’environnement à chaque individu, nous nous sommes arrêtés à un rayon de recherche de 100, correspondant à 1% de l’espace total simulé. Chaque courbe compare les performances obtenues entre la carte graphique et le CPU présent sur le même support d’exécution, ce qui explique l’allure différente de chaque courbe CPU. Le temps moyen d’une itération est pris pour référence pour mesurer l’impact de ce rayon de recherche sur les performances du modèle. Ce temps est à chaque fois comparé entre l’implé- mentation basée sur MCMAS, et une implémentation reprenant exactement le même algorithme mais utilisant des équivalents réalisés en Java de ces opérations génériques, de manière à disposer de deux décompositions du programme équivalentes. La moyenne en temps d’exécution d’une itération sur cinquante itérations de la simulation est retenue comme référence. La Figure 8.8 illustre les temps obtenus sur carte Kepler et sur le processeur Xeon correspondant. Tant que le rayon de recherche configuré pour les individus proies demeure inférieur à 30, l’implémentation GPU présente des performances très similaires à la version CPU. Cette proximitéCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 130 0 1000 2000 3000 4000 5000 6000 7000 10 20 30 40 50 60 70 80 90 100 Temps moyen par itération (ms) Rayon de recherche CPU GPU Figure 8.8 – Temps moyen d’exécution d’une itération du modèle proie-prédateur sur carte Kepler K20m et processeur Xeon CPU E5-2609v2 s’explique par le coût fixe du reste de l’itération, mais permet toutefois d’illustrer que le recours au GPU ne pénalise pas les performances du modèle, même à petite échelle. La version de la simulation s’exécutant sur carte Kepler prend l’avantage à partir d’un rayon de recherche supérieur à 30, et cet avantage devient particulièrement marqué à partir d’un rayon de recherche de 60, où les performances CPU présentent un important ralentissement. La différence de performance atteint un facteur 7 en faveur de la carte GPU quand le rayon de recherche approche de 100. 0 500 1000 1500 2000 2500 3000 3500 4000 4500 5000 5500 10 20 30 40 50 60 70 80 90 100 Temps moyen par itération (ms) Rayon de recherche CPU GPU Figure 8.9 – Temps moyen d’exécution d’une itération du modèle proie-prédateur sur carte Radeon HD6870 et processeur AMD Phenom II X6 1090T La Figure 8.9 illustre les performances obtenues sur la Radeon HD6870 décrite dans nos supports d’exécution. L’implémentation GPU prend l’avantage dès un rayon de recherche de 10, et cet avantage va ensuite en s’accentuant irrégulièrement jusqu’à un rayon de recherche de 70, au-delàCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 131 duquel la courbe CPU indique une brusque dégradation des performances. Si le comportement du CPU par rapport à l’augmentation du rayon de recherche demeure très régulière, il est possible de remarquer que les performances obtenues par la carte Radeon manifestent des variations marquées. Les temps obtenus sur GPU sont meilleurs qu’avec notre carte Kepler, ce qui tend à confirmer l’excellente réputation des cartes AMD en exécution GPU et en support d’OpenCL. 0 500 1000 1500 2000 2500 3000 3500 4000 10 20 30 40 50 60 70 80 90 100 Temps moyen par itération (ms) Rayon de recherche CPU GPU Figure 8.10 – Temps moyen d’exécution d’une itération du modèle proie-prédateur sur carte Geforce 560Ti et sur CPU La Figure 8.10 montre les performances obtenues sur la plate-forme matérielle Geforce 560Ti. Elle se caractérise, comme dans le cas de la carte Kepler, par des performances initialement très proches entre version CPU et GPU, avant que les temps ne tournent nettement à l’avantage de cette dernière à partir d’un rayon de recherche de 40. Cet avantage devient encore plus marqué à partir d’un rayon de 60. La courbe GPU présente également, quoique de manière moins accentuée, les pics observés sur les temps de la carte Radeon. L’accélération finale obtenue entre CPU et GPU est du même ordre qu’avec la carte Kepler, un facteur sept, au rayon de recherche 100. Si l’objectif de ces trois courbes est de mettre en avant les gains permis par l’utilisation de deux ressources de calculs différentes, CPU et GPU, sur une même machine, il est également intéressant de comparer les résultats obtenus entre matériels CPU et matériels GPU. — Entre matériels GPU, la carte Kepler se caractérise par une très grande régularité des performances obtenues, cependant légèrement en deçà des cartes grand public récentes. Cet handicap relatif peut être mis sur le compte de la fréquence de fonctionnement moins élevée de chaque coeur graphique (700 MHz contre 800 MHz ou plus). L’utilisation des ressources est à contrario plus stable sur cette carte, comme l’indique la courbe plus régulière. Les ressources en mémoire plus importantes offertes par la carte permettent également d’envisager des scénarios de taille supérieure. — Entre CPU, les comportements en termes de performance sont très similaires, avec une première portion linéaire, suivie d’un point charnière avant que les performances ne se dégradent plus rapidement. Ces courbes mettent en avant le temps supérieur utilisé par l’implémentation correspondant au CPU associé à la carte Tesla K20. S’il s’agit du processeur le plus récent de nos tests, ce retard en temps est aisément expliqué par le fait que l’exécution CPU ne tire pas parti de tous les coeurs d’exécution dans nos tests. DansCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 132 ces conditions, la fréquence joue un rôle très important, directement visible sur la courbe correspondant au processeur AMD (3.2 GHz) et encore plus sur la courbe correspondant au processeur Core i7 2600K (3.4 GHz). Par comparaison, le processeur Xeon testé ne fonctionne qu’à 2.5 GHz.CHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 133 MIOR Pour évaluer les performances de ce nouveau processus de distribution/rassemblement des ressources du modèle sur GPU, nous avons choisi de comparer les performances obtenues par l’implémentation sur plusieurs modèles de cartes graphiques. Pour illustrer l’impact des changements incrémentaux apportés à l’algorithme original, nous avons également testé cinq implémentations successives, comprenant un nombre croissant d’adaptations pour l’architecture GPU. Dans tous les cas, le temps d’exécution moyen de 50 simulations a été retenu comme indicateur de performance. Voici les caractéristiques des implémentations comparées : — L’implémentation GPU 1.0 est une adaptation directe de l’algorithme et des structures de données présentées, incluant seulement la suppression des dépendances d’accès aux données par le biais du mécanisme de distribution/rassemblement décrit dans l’implémentation du modèle. — L’implémentation GPU 2.0 ajoute à l’algorithme de la première implémentation l’utilisation d’une représentation alternative, plus compacte en termes d’accès, pour le stockage de la topologie du modèle. Cette représentation exige toutefois des quantités plus importantes de mémoire vive. — L’implémentation GPU 3.0 introduit l’utilisation de la mémoire locale du périphérique (voir présentation de l’architecture GPU), au moyen de copies manuelles de données les plus utilisées (parts de carbone) au début et à la fin de chaque pas de calcul. L’algorithme est par ailleurs identique à celui de la seconde implémentation. — L’implémentation GPU 4.0 introduit la possibilité de résoudre plusieurs simulations en parallèle pour chaque lancement de kernel. L’algorithme de chacune de ces simulations est identique à la première implémentation. — L’implémentation GPU 5.0 permet, de manière similaire à l’implémentation GPU 4.0, le lancement de plusieurs implémentations GPU 2.0 de manière simultanée. Les deux dernières implémentations présentées, GPU 4.0 et GPU 5.0, ont pour objectif de permettre au modèle de profiter des possibilités de recouvrement d’exécution offerts par l’ordonnanceur GPU, en s’assurant qu’il existe toujours des agents à exécuter en cas de blocage (barrière) d’une simulation particulière, comme évoqué dans nos bonnes pratiques. Le fait de disposer de nombreux threads permet en effet dans ce cas au matériel de traiter d’autres agents MIOR, pendant que certains agents sont en attente de ressources. Pour permettre la comparaison de ces implémentations avec la version séquentielle originale, une version CPU réalisée en Java est également incluse. Les figures 8.11, 8.12 et 8.13 donnent le temps d’exécution de 50 simulations sur nos supports Tesla S1070, Geforce 560Ti et Tesla K20. Pour permettre une mesure de l’impact de la taille du modèle et du nombre d’agents sur les performances, un facteur d’échelle est appliqué horizontalement : à l’échelle 1, le modèle comprend 38 colonies microbiennes (MM) et 310 dépôts de carbone (OM). Ces nombres sont multipliés par 6 à l’échelle 6, et la taille de l’environnement est également modifiée pour conserver la même densité moyenne d’agents dans le modèle. La Figure 8.11 met tout d’abord en évidence les performances obtenues sur une carte graphique Tesla C1060 dénuée de cache. Ces courbes illustrent l’avantage initial en performance marqué en faveur de l’implémentation GPU 2.0. Les autres variantes GPU sont plus lentes à prendre l’avantage sur le CPU, et ne se détachent réellement en performance qu’à partir de l’échelle 4, pour ensuite continuer à offrir des performances très proches. L’amélioration de performance obtenue entre l’implémentation la plus rapide, GPU 2.0, et l’exécution sur CPU devient de l’ordre de 10 à l’échelle 10.CHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 134 0 100 200 300 400 500 600 700 Temps moyen d'exécution d'une simulation (ms) 0 2 4 6 8 10 Facteur de mise à l'échelle du modèle CPU GPU v1.0 GPU v2.0 GPU v3.0 Figure 8.11 – Performances CPU et GPU MIOR sur carte Tesla C1060 0 50 100 150 200 250 300 350 400 450 500 550 Temps moyen d'exécution d'une simulation (ms) 0 2 4 6 8 10 Facteur de mise à l'échelle du modèle CPU GPU v1.0 GPU v2.0 GPU v3.0 Figure 8.12 – Performances CPU et GPU MIOR sur carte Geforce 560Ti La Figure 8.12 illustre les performances obtenues sur un matériel grand public beaucoup plus récent, et illustre en particulier les importants progrès réalisés par la gestion de la mémoire locale. Les courbes possèdent, en dehors de cet élément, une évolution très similaire, avec des temps d’exécution absolus toutefois de l’ordre de deux fois plus rapides, du fait de la fréquence et du nombre de cœurs plus importants sur cette plate-forme. Les courbes se caractérisent de manière générale par leur évolution très régulière, sans la rupture en performance rencontrée par la carte Tesla. Cette régularité peut être expliquée par la présence de cache d’exécution sur cette nouvelle architecture, et d’un meilleur algorithme de regroupement des accès mémoires, plus à même de gérer les accès à la topologie effectués par la simulation MIOR. Ces courbes illustrent une nouvelle fois un avantage de l’implémentation GPU 2.0 sur les autres implémentation. Elle est ainsi cinqCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 135 0 100 200 300 400 500 600 700 800 900 Temps moyen d'exécution d'une simulation (ms) 0 2 4 6 8 10 Facteur de mise à l'échelle du modèle CPU GPU v1.0 GPU v2.0 GPU v3.0 Figure 8.13 – Performances CPU et GPU MIOR sur carte Kepler K20m fois plus rapide que l’implémentation GPU 3.0 à l’échelle 10. Cet avantage sur l’implémentation GPU 3.0 est toutefois moins marqué que pour la carte Tesla C1060, ce qui montre l’intérêt de nombreuses optimisations des accès mémoires effectués sur le coût de recopie des données en mémoire locale. Les courbes GPU 1.0 et CPU illustrent des tendances et des temps d’exécution très similaires au support d’exécution plus ancien. La Figure 8.13 correspondant à la carte Tesla K20 est extrêmement similaire aux courbes obtenues sur Geforce 560Ti, ce qui s’explique aisément par la proximité dans le temps et en termes d’architecture, Kepler contre Fermi, entre ces deux cartes. Kepler se caractérise ici par des performances en léger retrait, comme dans le cas du modèle proie-prédateur. Ce retrait peut encore une fois être expliqué par la différence de fréquence de fonctionnement entre les deux cartes, dédiées à des utilisations différentes. Ces courbes confirment également encore une fois l’avantage en termes de fréquence de processeurs comme le Core i7 2600K sur des processeurs plus récents mais moins véloces comme le Xeon, dans le cadre d’une exécution séquentielle. L’implémentation GPU 2.0 permet de nouveau l’obtention des meilleures performances, en étant approximativement six fois plus rapide à l’échelle 10 que l’implémentation GPU 3.0. L’implémentation GPU 1.0 demeure la plus lente des implémentations GPU, avec un facteur 10 par rapport à l’implémentation GPU 2.0 à l’échelle 10. Le plugin MIOR est conçu pour pouvoir réaliser un grand nombre de simulations microscopiques dans le cadre de la simulation multi-échelles Sworm. Dans ces circonstances, il est intéressant de mesurer le coût d’un lancement MIOR sur GPU, ainsi que l’évolution des performances obtenues en fonction du nombre de simulations demandées, de manière à évaluer la taille de lot la plus efficace. L’objectif, de cette manière, est d’amortir les coûts de transferts liés à l’exécution sur GPU, tout en étant capable de connaître le temps d’exécution total du lot de simulation, de manière à éviter de bloquer d’autres traitements Sworm. Au vu de ces éléments, il existe plusieurs manières de mesurer les performances de l’exécution en parallèle de plusieurs simulations : — En mesurant les performances d’un seul lancement et en variant le nombre de simulationsCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 136 (Figure 8.14). Cette approche permet de mesurer l’évolution du temps total d’exécution de l’ensemble des simulations, théoriquement linéaire (loi d’accélération). Une stagnation de la courbe indique une amélioration de l’efficacité d’exécution sur GPU, et une augmentation de sa pente illustre au contraire une augmentation du coût de la parallélisation. Une mauvaise efficacité peut être compensée, à plus grand échelle, par le recouvrement des accès et des calculs proposés par la carte graphique, possible uniquement quand le nombre de threads d’exécution en attente est suffisant. — En mesurant le temps d’exécution total pour effectuer un nombre fixe de simulations (Figure 8.15) en faisant varier le nombre de simulations lancés simultanément. Cette approche permet de mettre en évidence les coûts associés aux transferts et aux lancements, par rapport au nombre et à la durée des calculs utilisés. La Figure 8.14 illustre les temps d’exécution obtenus pour le lancement d’un nombre variable de simulations en une seule fois. Les courbes montrent que, pour des petits nombres de simulations, l’implémentation compacte de la topologie mémoire est plus performante que la repré- sentation sous forme de matrice pleine à deux dimensions. Cette tendance s’inverse au-delà de 50 simulations exécutées en parallèle, ce qui s’explique soit par une progression non linéaire des coûts de synchronisation, soit par la consommation mémoire supplémentaire imposée par l’utilisation de la représentation optimisée en accès. 0 10 20 30 40 50 60 70 80 90 0 10 20 30 40 50 60 70 80 90 100 Temps total d'exécution (ms) Nombre de simulations (workgroup) par exécution GPU v4.0 GPU v5.0 Figure 8.14 – Temps d’exécution par simulation MIOR sur Tesla C1060, en fonction du nombre total de simulations La Figure 8.15 illustre les temps d’exécution obtenus pour l’exécution d’un même nombre total de simulations, en variant le quantité de systèmes lancés en simultané. Les courbes illustrent cette fois les coûts résultants de l’exécution sur GPU pour des lancements de petite taille. Ces coûts comprennent notamment la préparation du programme et la copie des données vers et depuis la carte, entre chaque lot de simulations. Ces coûts sont masqués une fois que le nombre de simulations devient suffisamment important, et que le pilote OpenCL peut ainsi effectuer un recouvrement des temps de communication par des calculs pour conserver les unités d’exécution en activité. Cette pénalité à l’exécution sur GPU est davantage marquée dans le cas de l’implémentation optimisée en accès, mais est visible sur les deux courbes. Au-delà de 30 simulations par lancement, le tempsCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 137 0 2000 4000 6000 8000 10000 12000 14000 16000 18000 20000 0 10 20 30 40 50 60 70 80 90 100 Temps total d'exécution (ms) Nombre de simulations (workgroup) par exécution GPU v4.0 GPU v5.0 Figure 8.15 – Temps d’exécution total pour 1000 simulations MIOR sur plate-forme Tesla C1060, en variant le nombre de simulations exécutées de manière simultanée. d’exécution total de toutes les simulations stagne, indiquant qu’un remplissage optimal de la carte est atteint pour cette implémentation.CHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 138 Collemboles Pour mesurer l’impact de l’utilisation du GPU sur les performances obtenues, nous avons choisi de faire varier le nombre de cellules présentes dans le modèle. Cette mise à l’échelle de l’environnement impose cependant une réflexion particulière, le découpage des parcelles étant assuré sur la base de données géographiques externes, associées à une réalité géographique particulière. Dans ces conditions, l’augmentation du nombre de cellules entraîne une augmentation de la précision du modèle, plutôt qu’un agrandissement de l’espace de simulation. Le temps d’exécution de 500 itérations du modèle Collemboles est pris en compte pour mesurer l’impact de ce rayon de cellules sur les performances du modèle. Ce temps est comparé sur trois catégories de supports d’exécution : — Les GPU accessibles au grand public, représentés par les supports Geforce 560Ti et Radeon HD6870. — Les GPU destinés à une utilisation professionnelle, représentés par les cartes Tesla C1060 et Tesla K20. — Deux CPU grands publics, pour évaluer les performances pouvant être attendues en l’absence de GPU. La même implémentation basée sur l’utilisation d’OpenCL est utilisée pour toute les courbes, qui illustrent donc les performances pouvant être obtenues en utilisant tous les coeurs d’exécution disponible sur le matériel. 0 200 400 600 800 1000 1200 1400 1600 0 5 10 15 20 Temps total pour 500 itérations (s) Facteur de mise à l'échelle AMD Phenom X6 1090T Intel Core i7 2600k Figure 8.16 – Temps d’exécution de 500 itérations du modèle Collembole sur CPU La Figure 8.16 illustre tout d’abord les performances obtenues en OpenCL sur deux CPU grand public, un AMD Phenom X6 1090T et un Intel Core i7 2600K. Ces courbes mettent en évidence un comportement très irrégulier des performances observées, avec toutefois un avantage de l’ordre de 40% en faveur du processeur Intel. La Figure 8.17 illustre l’exécution sur deux solutions graphiques grand public, et met en avant l’intérêt de paralléliser la simulation sur GPU, avec des gains de l’ordre d’un facteur 2 par rapport à une exécution sur CPU. La Figure 8.18 enfin, oppose deux matériels professionnels, une carte Tesla C1060 et une carteCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 139 0 100 200 300 400 500 600 700 800 900 1000 0 5 10 15 20 Temps total pour 500 itérations (s) Facteur de mise à l'échelle Geforce 560Ti Radeon HD 6870 Figure 8.17 – Temps d’exécution de 500 itérations du modèle Collembole sur GPU grand public 0 500 1000 1500 2000 2500 0 5 10 15 20 Temps total pour 500 itérations (s) Facteur de mise à l'échelle Tesla C1060 Tesla K20m Figure 8.18 – Temps d’exécution de 500 itérations du modèle Collemboles sur GPU professionnels Kepler K20m, et permet de mettre en avant les énormes progrès réalisés en termes de noeuds de calculs GPGPU en quatre années par des mécanismes comme les caches L1 et L2. Les temps obtenus pour la carte Kepler sont sur cette figure proches des résultats sur cartes grand public récentes illustrées par la Figure 8.17, alors que la carte Tesla C1060 se caractérise par des performances jusqu’à quinze fois inférieures à l’échelle 20. Collemboles est un exemple de modèle multi-agents bénéficiant de manière moins nette d’une parallélisation sur GPU grand public, avec des gains de l’ordre d’un facteur 2 entre l’exécution sur le CPU le plus rapide, le Core i7 2600K, et la Geforce 560Ti à l’échelle 20. Ce gain est toutefois plus marqué dans le cas de la carte graphique professionnelle Tesla K20, qui permet d’obtenir des traitements 4 fois plus rapide à l’échelle 10. La comparaison des cartes graphiques dotées de caches d’une part, et de la Tesla C1060 dénuée de ce mécanisme d’autre part, permet de mettreCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 140 en avant l’impact de ce mécanisme dans le cas du modèle Collemboles. Parmi les GPU dotés de ce mécanisme, les performances obtenues sont au contraire proches entre cartes graphiques grand public et matériel professionnel. 8.3 Synthèse Les résultats obtenus montrent un gain en performance sur GPU par rapport au CPU pour les trois modèles multi-agents adaptés. Ces gains sont particulièrement visibles sur les modèles MIOR et proie-prédateur, où l’utilisation du GPU permet d’obtenir un gain de l’ordre d’un facteur 10 en performance. Les résultats observés illustrent également l’importance de l’architecture matérielle, et en particulier de la disponibilité ou non de mécanisme de cache L1 et L2, sur les performances observées. Les cartes dotées de caches permettent l’obtention de meilleures performances dans tous les cas. Cet avantage est d’autant plus marqué, dans le cas du modèle MIOR, sur des implémentations ayant recours à de nombreux accès mémoires. Ils montrent l’intérêt du GPU pour déléguer certains traitements normalement effectués sur CPU, en particulier dans le cas du système proie-prédateur. Dans cette section, nous présentons quelques recommandations d’implémentation au sujet de la parallélisation de traitements sur GPU, sur la base des modèles multi-agents parallélisés et de l’implémentation de la plate-forme MCMAS. En parallèle aux problématiques de découpage de la représentation et de l’exécution de la simulation sur architecture GPU, certains défis d’implémentations propres à OpenCL s’appliquent aux traitements pouvant être réalisés. 8.3.1 Allocations dynamique de mémoire Si ce support est présent dans les toutes dernières révisions du modèle de programmation CUDA, OpenCL ne permet pas, au moment de notre rédaction, l’allocation de mémoire depuis le code GPU en cours d’exécution. Cette limitation est particulièrement problématique pour la manipulation de la structure de données dynamiques sur GPU, dans le cas où la taille des structures n’est pas connue au moment du lancement du traitement. Dans ce cas, la seule solution est une allocation défensive de la mémoire à priori, basée sur l’hypothèse la plus pessimiste de la taille mémoire requise pour l’exécution du modèle. Elle né- cessite un sur-dimensionnement des ressources allouées par rapport aux ressources effectivement consommées, particulièrement dans le cas de modèles de taille importante, et donc une perte de mémoire significative. La seule alternative pour éviter ce type de perte est une interruption régulière des traitements pour permettre des réallocations sur CPU, avec les coûts associés aux échanges de données et au changement de contexte. Ces deux approches requièrent des sacrifices soit en mémoire, soit en performance.CHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 141 8.3.2 Variabilité du support matériel Un autre défi d’implémentation posé par l’exécution sur GPU est l’existence de multiple géné- rations de plates-formes matérielles, chacune associée à ses propres valeurs limites d’exécution ou support de certaines fonctionnalités. Des cartes anciennes telles que la plate-forme Tesla C1060 imposent ainsi des contraintes très strictes en termes d’accès mémoires pour permettre une exécution efficace, alors que les CPU ou les cartes graphiques plus modernes minimisent ces contraintes par la présence de logiques de prédictions et de cache gommant ces latences. L’impact de ces attentes est particulièrement visible dans le cas de nombreux accès aléatoires (MIOR) ou de petites tailles (Collemboles) à la mémoire globale GPU sur des cartes dénuées de cache implicite. Dans un souci de transparence, Nvidia propose la notion de Computing Capabilities (capacité de calcul) pour chacune de ses cartes, indiquant les fonctionnalités CUDA et OpenCL supportées par le matériel, et les limitations associées en termes d’exécution sur ces deux plates-formes : — Nombre de registres utilisables par work-item et au total. — Taille maximale de work-group et de grille d’exécution. — Taille maximale pour chaque type de structure de données. — Taille maximale totale de chaque espace mémoire. Ces deux derniers paramètres sont particulièrement importants pour des simulations manipulant de grands buffers de données. Nos expériences ont mis en avant le fait que, si sur les architectures NVIDIA testées, la taille maximale utilisable pour des données en mémoire globale est directement liée à la mémoire physique du périphérique, ce n’est pas le cas sur des implémentations OpenCL proposées par AMD, où cette limite est fixée à une valeur inférieure par l’interface logicielle. Ces limitations associées au matériel n’ont pas seulement une influence sur la possibilité ou non d’exécuter un traitement OpenCL, mais également sur les performances attendues. Il est alors nécessaire d’adapter l’algorithme ou le découpage de l’exécution utilisé à ces paramètres, pour une efficacité maximale, comme évoqué dans la section suivante. 8.3.3 Adaptation aux paramètres de la plate-forme Si le standard OpenCL impose à toutes les implémentations le support d’une base commune de primitives et d’opérations, chaque implémentation reste libre, comme nous venons de le voir, de définir ses propres limites au niveau des ressources disponibles. Le respect du standard permet de garantir le fonctionnement du programme, mais n’assure pas l’obtention automatique des meilleures performances possibles tant sur le nombre limité de coeurs polyvalents offerts par un CPU que sur les centaines de coeurs d’un GPU. La prise en compte dynamique du type et des limites effectivement offertes par un matériel au moment de l’exécution est donc importante pour permettre une utilisation optimale du matériel disponible [SFSV13]. L’adaptation la plus critique à ce niveau est celle de la taille des paquets d’exécution utilisés, dont la valeur devra être aussi proche que possible, soit du nombre de coeurs effectivement disponibles sur CPU, soit de l’unité de découpage d’exécution ou warp sur GPU. La taille d’un warp est de 32 threads ou work-items sur la plupart des plates-formes GPU. Les bonnes pratiques OpenCL [Cor12] proposées par NVIDIA recommandent une taille minimale de 64 work-items pour les blocs OpenCL, de manière à permettre un recouvrement des accèsCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 142 mémoires. Elle recommandent également l’utilisation de blocs de 128 à 256 work-items pour des premières expérimentations, pour ensuite ajuster cette valeur en fonction du taux d’occupation obtenu et des performances obtenues. La société fournit une feuille de calcul permettant d’estimer cette occupation en fonction du modèle de carte utilisé, pour faciliter le choix d’un découpage optimal. Un exemple de traitement particulièrement impacté par ce choix de découpage est celui de la réduction en parallèle. Si l’utilisation d’un algorithme basé sur plusieurs passes est plus performante sur GPU, il est plus efficace sur CPU d’effectuer un simple découpage du tableau en autant de parties que de coeurs disponibles, et de réaliser l’ensemble de l’opération en un seul lancement. Pour faciliter cette démarche, MCMAS recommande par défaut une valeur adaptée à l’architecture sous-jacente (CPU, GPU ou autre). Cette valeur est également utilisée pour l’exécution de fonctions de haut niveau par les plugins, en l’absence d’intervention de l’utilisateur. La valeur optimale effective pour ce découpage est cependant très dépendante de l’algorithme exécuté et de l’occupation résultante des ressources matérielles. 8.3.4 Différents espaces mémoires pour différentes utilisations Comme évoqué dans notre présentation de l’architecture, les cartes graphiques disposent, contrairement aux processeurs traditionnels, de multiples espaces mémoires spécialisés. La sé- lection de l’espace mémoire dans lequel stocker chaque donnée est effectuée de manière explicite en OpenCL, au moyen de qualificateurs utilisés pour la déclaration de la variable : — private int data : entier en mémoire privée (accessible uniquement au work-item) — local int data : entier en mémoire locale (accessible uniquement au work-group) — global int data : entier en mémoire globale — constant int data : entier en mémoire constante En l’absence de qualificateur, l’espace privé est utilisé pour le stockage de la variable. La copie de données entre ces espaces mémoire n’est pas automatique et doit être explicitement effectuée par le programme. La mémoire locale, en particulier, ne peut de plus être initialisée que depuis le périphérique, et requiert donc au moins une copie des données. Elle est généralement employée pour stocker des données intermédiaires souvent utilisées par chaque membre d’un work-group, de manière à éviter son calcul ou sa récupération depuis la mémoire globale à plusieurs reprises. La copie entre ces types de mémoire n’a pas nécessairement besoin d’être effectuée de manière totalement manuelle : des bibliothèques telles que ELMO [FVSS13] permettent de définir des associations entre structures de données globales et mise en cache en mémoire locale, au moyen de nombreux raccourcis définis sous forme de code OpenCL. 8.3.5 Précision des données et respect des standards Les cartes graphiques ont initialement été conçues pour effectuer des rendus en deux ou trois dimensions, avant rastérisation sur une grille graphique correspondant au périphérique d’affichage. En termes d’architectures, ce scénario d’utilisation se traduit par une forte optimisation du matériel pour le traitement de nombres flottants, suffisant pour ce type de rendu. D’éventuelles erreurs de précision liées à ce format sont en effet mitigées par deux facteurs propres au rendu graphique : la résolution limitée d’un écran, qui contraint une projection géométrique dans une résolutionCHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 143 ne dépassant pas les quelques milliers de pixels, et le nombre important d’images affichées par seconde, qui estompe toute erreur de rendu ne survenant que dans une image précise. Cette préférence matérielle pour les flottants est particulièrement marquée, dans le cas des cartes graphiques grand public, par un bridage volontaire des traitements sur des nombres en double précision à une fraction de la fréquence du reste du GPU, pour encourager l’achat de matériel professionnel. Ces considérations sur les performances sont particulièrement importantes pour des modèles multi-agents, où l’utilisation de nombres double précision est critique pour obtenir des résultats valides. Dans de tels systèmes multi-agents, l’utilisation de réels simple précision peut conduire à des erreurs croissantes, susceptibles de modifier les résultats ou d’empêcher la convergence de la simulation. Les modèles agents employant souvent des données entières peuvent également être impactés par ce type de disparité matérielle, ce type d’opération étant moins optimisé sur les architectures matérielles les plus anciennes. En parallèle à ce choix de précision des données se pose la question du mode de calcul souhaité, compatible ou non avec le standard l’IEEE 754. Le non respect strict de ces standards permet de simplifier les calculs dans les cas les plus courants. Il ne garantit cependant plus la prise en compte correcte de valeurs telles que Nan ou l’infini dans les opérations, ou encore des valeurs non normalisées. Le standard à utiliser pour les calculs flottants peut être configuré pour l’ensemble de l’exé- cution au moment de la compilation. Dans le cas où de telles opérations devraient être limitées à des portions spécifiques de l’algorithme, OpenCL fournit des versions préfixées des opérations intégrées telles que fast_sqrt, potentiellement plus rapide que sqrt. Les compromis liés à cette recherche de performance sont dépendants de chaque plate-forme OpenCL, et peu détaillés par les fabriquants. Dans ces circonstances, l’utilisation du mode standard IEEE et des opérations par défaut est recommandé pour tout nouveau modèle, au moins en attente de validation, de manière à pouvoir évaluer ensuite l’impact de l’utilisation de flottants simple précision ou d’autres modes de calculs sur les résultats de la simulation. 8.3.6 Capacités mémoires physiques La dernière limitation imposée par l’architecture GPU est la quantité de mémoire offerte par la plate-forme, de l’ordre de 6 à 8 Go sur les solutions graphiques Kepler les plus récentes. Cette quantité demeure plus limitée que sur CPU pour deux raisons : — Le coût de la mémoire classique pour CPU, et la possibilité pour le chercheur d’étendre aisément la capacité disponible sur sa machine. 4Go de mémoire RAM est un minimum sur de nombreuses machines actuelles, et l’achat de 16 ou 32Go de mémoire est aujourd’hui possible pour quelques centaines d’euros. Au contraire, la mémoire graphique doit être très performante en accès, ce qui augmente son coût, et en adressage, ce qui limite sa taille. — L’impossibilité d’utiliser, sur GPU, le disque dur ou la mémoire du système pour délé- guer de manière transparente le stockage des données supplémentaires. Si l’exploitation de la mémoire du système est facilitée par les dernières révisions des modèles d’exécution GPGPU, il n’existe pas d’analogue à la mémoire d’échange ou au stockage permanent sur cette architecture.CHAPITRE 8. VALIDATION SUR DES MODÈLES EXISTANTS 144 Cette limitation peut poser problème pour des modèles multi-agents de taille importante, particulièrement dans le cas d’utilisation de structures de données surdimensionnées pour compenser l’impossibilité d’effectuer des allocations dynamiques dans un programme OpenCL.9 Conclusion et perspectives 9.1 Conclusion Dans ce mémoire, nous avons étudié les manières d’exécuter efficacement des systèmes multiagents sur cartes graphiques. Cette étude a été l’occasion de mettre en avant l’intérêt des platesformes parallèles dans le cadre des simulations multi-agents, tant en termes de ressources qu’en termes de performances. Elle nous a également permis de présenter les trois axes de parallélisation possibles pour un système multi-agents, au niveau de l’ordonnanceur, de l’environnement ou des traitements. Cette parallélisation du système prend deux formes principales sur GPU : — Une adaptation complète de l’exécution sur cette plate-forme, sous forme de nouveau programme. — Une utilisation du GPU pour ne déléguer qu’une partie de la simulation, et en particulier des traitements coûteux à même d’être parallélisés. Ces deux approches requièrent une connaissance de la plate-forme GPU. Notre étude bibliographique a montré qu’il n’existait pas de plate-forme générique de parallélisation de systèmes multi-agents permettant un libre choix entre ces deux approches. Notre solution pour permettre l’utilisation la plus large possible de type de matériel est de proposer une nouvelle bibliothèque d’exécution multi-agents, MCMAS. Notre bibliothèque fournit de nombreux traitements multi-agents de haut niveau prêts à être utilisés sans aucune connaissance en parallélisation. Elle facilite l’ajout de nouveaux traitements au moyen d’une interface de bas niveau fournissant de nombreuses structures de données et facilités d’exécution au développeur. Cette double approche permet une utilisation simple de MCMAS et des cartes graphiques, sans pour autant imposer de cadre de modélisation ou d’exécution particulier, de manière à pouvoir aisément compléter les fonctions offertes par des environnements multi-agents existants. L’application de ces deux formes de parallélisation sur plusieurs exemples concrets de modèles multi-agents nous a permis de mettre en avant les avantages et les inconvénients associés à chacune de ces approches. La réalisation de la totalité de la simulation multi-agents permet un contrôle fin de la modé- lisation et de l’exécution. Elle offre la possibilité d’effectuer la totalité de la simulation en un seul lancement, comme illustré dans le cas du modèle MIOR. Cette flexibilité vient toutefois au prix d’adaptations importantes en termes de données et d’exécution pour tirer pleinement parti de l’architecture GPU. Ces adaptations requièrent une expertise du modèle de programmation et d’exécution pour aboutir à un résultat efficace adapté à l’architecture matérielle. La validation du modèle n’est possible qu’une fois celui-ci fonctionnel sur la nouvelle architecture.CHAPITRE 9. CONCLUSION ET PERSPECTIVES 146 La délégation d’une partie de la simulation permet au contraire un recours plus incrémental au GPU, facilitant des validations intermédiaires du fonctionnement ou des résultats. Elle requiert elle aussi une expertise en parallélisme pour identifier et implémenter les traitements pouvant bénéficier d’une délégation. Cette isolation et cette encapsulation des traitements facilitent leur réutilisation dans d’autres modèles, soit directement, soit dans le cadre de plates-formes multiagents existantes. Dans ce mémoire, nous avons apporté une analyse des différentes méthodes de parallélisation de systèmes multi-agents sur GPU, ainsi qu’une illustration de leur utilisation avec MCMAS. Cette illustration nous a permis de détailler ces différentes démarches et leur impact sur les performances obtenues, ainsi que de formuler des recommandations pour la réalisation de calculs sur GPU. 9.2 Perspectives Si la bibliothèque MCMAS est fonctionnelle et fournit déjà de nombreuses opérations utilisées dans nos trois modèles d’études, elle représente une solution appelée à être améliorée pour répondre à un domaine très dynamique. Au moins trois pistes d’amélioration peuvent à l’heure actuelle être envisagées. Une première piste d’amélioration consiste à faciliter l’accès à la bibliothèque depuis de nouveaux langages et environnements de simulation agents. De nombreux modèles ont recours à des langages ou à des environnements particuliers pour leur exécution. C’est en particulier le cas du modèle Sworm réalisé avec Madkit pour lequel la simulation MIOR a été conçue. Cet accès peut prendre deux formes, le développement d’une couche d’adaptation permettant l’accès direct à l’interface de MCMAS, ou le développement d’un agent service GPU s’intégrant de manière conceptuelle au modèle. Cet agent est alors à même de répondre à des requêtes d’exécution et de favoriser la réalisation de calculs parallèles de manière transparente pour le reste de la simulation. Une autre piste, complémentaire, est d’ajouter de nouvelles structures de données et opérations à MCMAS pour répondre aux besoins de nouvelles simulations multi-agents. Si de nombreuses structures de données rencontrées dans les systèmes agents ont déjà été implémentées, certains modèles agents reposent sur des graphes de données encore absents de notre bibliothèque. Des thématiques agents, comme la recherche de chemin, n’ont également pas encore été implémentées. Le développement de nouvelles opérations, et l’enrichissement des opérations existantes, est un élément important pour assurer que MCMAS soit non seulement accessible, mais également utile à de nombreux modèles agents. Le développement de nouveaux traitements agents peut également être facilité par l’intégration de bibliothèques comme ELMO [FVSS13] pour faciliter la gestion de la mémoire partagée en OpenCL. Une dernière piste d’amélioration concerne la découverte et l’utilisation des ressources maté- rielles offertes par la machine. Si, à l’heure actuelle, MCMAS permet l’utilisation de plates-formes GPU ou CPU de manière transparente, ces architectures ne sont que quelques représentantes des architectures dites many-core, basées sur de nombreux coeurs d’exécution. Leur exploitation reprend de nombreuses problématiques d’ordonnancement et de décomposition des tâches, et ouvre la voie à l’utilisation de plusieurs matériels locaux. Ces problématiques permettent également d’envisager la mise en place de mécanismes capables d’optimiser le passage des traitements sur les ressources disponibles, de manière à pouvoir simultanément tirer parti du CPU et GPU. De tels mécanismes pourraient dans ce cas introduire une intelligence supplémentaire au niveau de chaque traitement, pour choisir l’algorithme et les types de données les plus adaptés à chaque matériel d’exécution.CHAPITRE 9. CONCLUSION ET PERSPECTIVES 147 Publications Chapitre de livre — Guillaume Laville, Christophe Lang, Bénédicte Herrmann, Laurent Philippe, Kamel Mazouzi, and Nicolas Marilleau. Implementing Multi-Agent Systems on GPU. In Raphaël Couturier, editor, Designing Scientific Applications on GPUs, Numerical Analysis and Scientific Computing, chapter 18, pages 413–439. Chapman and Hall/CRC, 2013. Conférences — Guillaume Laville, Christophe Lang, Nicolas Marilleau, Kamel Mazouzi, and Laurent Philippe. Using GPU for Multi-agent Soil Simulation. In PDP 2013, 21st Euromicro International Conference on Parallel, Distributed and Network-based Computing, Belfast, Ireland, pages 392–399, February 2013. IEEE Computer Society Press. — Guillaume Laville, Kamel Mazouzi, Christophe Lang, Nicolas Marilleau, Bénédicte Herrmann, and Laurent Philippe. MCMAS : a toolkit to benefit from many-core architecture in agent-based simulation. In PADAPS 2013, 1st Workshop on Parallel and Distributed Agent-Based Simulations, in conjunction with EuroPar 2013, volume 8374 of LNCS, Aachen, Germany, pages 544–554, August 2013. Springer. — Guillaume Laville, Kamel Mazouzi, Christophe Lang, Nicolas Marilleau, and Laurent Philippe. Using GPU for Multi-agent Multi-scale Simulations. In DCAI’12, 9-th Int. Conf. on Advances in Intelligent and Soft Computing, volume 151 of Advances in Intelligent and Soft Computing, Salamanca, Spain, pages 197–204, March 2012. Springer. Communications — Présentation d’un poster "MCSMA : A library for multi-agent simulations on manycore architectures" au séminaire FEMTO-ST du 26 juin 2013 à la CCI du Doubs. — Présentation "Accélération d’une simulation de sol sur GPU" aux journées Région Grand Est (RGE) du 14 février 2013 à Belfort. — Présentation "Portage d’une simulation multi-agents sur GPU" aux journées Région Grand Est (RGE) du 9 juin 2011 à Metz.Bibliographie [AG13] Nevena Ilieva-Litova Alan Gray, Anders Sjöström. Best Practice mini-guide accelerated clusters. Using General Purpose GPUs. http://www.prace-project.eu/IMG/pdf/ Best-Practice-Guide-GPGPU.pdf, 2013. [En ligne ; vérifié le 27 avril 2014]. [amd] AMD Accelerated Parallel Processing Math Libraries (APPML). http://developer.amd.com/tools-and-sdks/heterogeneous-computing/ amd-accelerated-parallel-processing-math-libraries/. [En ligne ; vérifié le 26 avril 2014]. [Amd67] Gene M. Amdahl. Validity of the Single Processor Approach to Achieving Large Scale Computing Capabilities. In Proceedings of the April 18-20, 1967, Spring Joint Computer Conference, AFIPS ’67 (Spring), pages 483–485, New York, NY, USA, 1967. ACM. [APS10] B. G. Aaby, K. S. Perumalla, and S. K. Seal. Efficient simulation of agent-based models on multi-GPU and multi-core clusters. In Proceedings of the 3rd International ICST Conference on Simulation Tools and Techniques, SIMUTools ’10, pages 29 :1–29 :10, ICST, Brussels, Belgium, Belgium, 2010. ICST (Institute for Computer Sciences, Social-Informatics and Telecommunications Engineering). [ASÁ01] Elaini S Angelotti, Edson E Scalabrin, and Bráulio C Ávila. PANDORA : a multiagent system using paraconsistent logic. In Computational Intelligence and Multimedia Applications, 2001. ICCIMA 2001. Proceedings. Fourth International Conference on, pages 352–356. IEEE, 2001. [ATN09] Cédric Augonnet, Samuel Thibault, and Raymond Namyst. Automatic Calibration of Performance Models on Heterogeneous Multicore Architectures. In 3rd Workshop on Highly Parallel Processing on a Chip (HPPC 2009), Delft, Pays-Bas, August 2009. [BBMC+10] Arnaud Banos, Annabelle Boffet-Mas, Sonia Chardonnel, Christophe Lang, Nicolas Marilleau, and Thomas Thévenin. Simuler la mobilité urbaine quotidienne : le projet MIRO. In Arnaud Banos and Thomas Thévenin, editors, Mobilités urbaines et risques des transports - approches géographiques, chapter 2, pages 51–86. Hermès, 2010. [BCC+11] E. Blanchart, C. Cambier, C. Canape, B. Gaudou, T.-N. Ho, T.-V. Ho, C. Lang, F. Michel, N. Marilleau, and L. Philippe. EPIS : A Grid Platform to Ease and Optimize Multi-agent Simulators Running. In PAAMS, volume 88 of Advances in Intelligent and Soft Computing, pages 129–134. Springer, 2011. [BCG07] Fabio Luigi Bellifemine, Giovanni Caire, and Dominic Greenwood. Developing Multi-Agent Systems with JADE. Wiley, 2007. [BDM04] Jacques M. Bahi, Stéphane Domas, and Kamel Mazouzi. Jace : A Java Environment for Distributed Asynchronous Iterative Computations. In PDP, pages 350–357. IEEE Computer Society, 2004. [BETVG08] Herbert Bay, Andreas Ess, Tinne Tuytelaars, and Luc Van Gool. Speeded-Up Robust Features (SURF). Comput. Vis. Image Underst., 110(3) :346–359, June 2008.BIBLIOGRAPHIE 150 [BG09] Nathan Bell and Michael Garland. Implementing Sparse Matrix-vector Multiplication on Throughput-oriented Processors. In Proceedings of the Conference on High Performance Computing Networking, Storage and Analysis, SC ’09, pages 18 :1–18 :11, New York, NY, USA, 2009. ACM. [Ble09] A. Bleiweiss. Multi Agent Navigation on the GPU. GDC09 Game Developers Conference 2009, 2009. [BMD+09] E. Blanchart, N. Marilleau, A. Drogoul, E. Perrier, JL. Chotte, and C. Cambier. SWORM : an agent-based model to simulate the effect of earthworms on soil structure. EJSS. European Journal of Soil Science, 60 :13–21, 2009. [BPL+06] Lars Braubach, Alexander Pokahr, Winfried Lamersdorf, Karl-Heinz Krempels, and Peer-Oliver Woelk. A generic time management service for distributed multi-agent systems. Applied Artificial Intelligence, 20(2-4) :229–249, 2006. [Bra00] G. Bradski. Dr. Dobb’s Journal of Software Tools, 2000. [BRT11] B. Beresini, S. Ricketts, and M.B. Taylor. Unifying manycore and FPGA processing with the RUSH architecture. In Adaptive Hardware and Systems (AHS), 2011 NASA/ESA Conference on, pages 22–28, June 2011. [CCC+12] M. Carillo, G. Cordasco, R. De Chiara, F. Raia, V. Scarano, and F. Serrapica. Enhancing the Performances of D-MASON - A Motivating Example. In SIMULTECH, pages 137–143, 2012. [CCDCS11] B Cosenza, G Cordasco, R. De Chiara, and V. Scarano. Distributed Load Balancing for Parallel Agent-based Simulations. In 19th Euromicro International Conference on Parallel, Distributed and Network-Based Computing, Ayia Napa, Cyprus, 2011. [CCM+11] Gennaro Cordasco, Rosario Chiara, Ada Mancuso, Dario Mazzeo, Vittorio Scarano, and Carmine Spagnuolo. A Framework for Distributing Agent-Based Simulations. In Euro-Par 2011 : Parallel Processing Workshops, volume 7155 of Lecture Notes in Computer Science, pages 460–470, 2011. [CCP07] M. Bousso C. Cambier, D. Masse and E. Perrier. An offer versus demand modelling approach to assess the impact of micro-organisms spatio-temporal dynamics on soil organic matter decomposition rates. Ecological Modelling, pages 301–313, 2007. [CDD+13] Chongxiao Cao, Jack Dongarra, Peng Du, Mark Gates, Piotr Luszczek, and Stanimire Tomov. clMAGMA : High Performance Dense Linear Algebra with OpenCL. 2013. [CDFD10] F Chuffart, N Dumoulin, T Faure, and G Deffuant. SimExplorer : Programming Experimental Designs on Models and Managing Quality of Modelling Process. IJAEIS, 1(1) :55–68, 2010. [CDJM01] Brahim Chaib-Draa, Imed Jarras, and Bernard Moulin. Systèmes multi-agents : principes généraux et applications. Edition Hermès, 2001. [CDK+01] Robit Chandra, Leonardo Dagum, Dave Kohr, Dror Maydan, Jeff McDonald, and Ramesh Menon. Parallel Programming in OpenMP. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2001. [CGH+12] Simon Coakley, Marian Gheorghe, Mike Holcombe, Shawn Chin, David Worth, and Chris Greenough. Exploitation of High Performance Computing in the FLAME Agent-Based Simulation Framework. In Geyong Min, Jia Hu, Lei (Chris) Liu, Laurence Tianruo Yang, Seetharami Seelam, and Laurent Lefevre, editors, HPCC-ICESS, pages 538–545. IEEE Computer Society, 2012.BIBLIOGRAPHIE 151 [CGU+11] José M. Cecilia, José M. Garcia, Manuel Ujaldon, Andy Nisbet, and Martyn Amos. Parallelization Strategies for Ant Colony Optimisation on GPUs. In IPDPS Workshops, pages 339–346. IEEE, 2011. [CKQ+07] Jean-Christophe Castella, Suan Pheng Kam, Dang Dinh Quang, Peter H. Verburg, and Chu Thai Hoanh. Combining top-down and bottom-up modelling approaches of land use/cover change to support public policies : Application to sustainable management of natural resources in northern Vietnam. Land Use Policy, 24(3) :531 – 545, 2007. Integrated Assessment of the Land System : The Future of Land Use. [clp] clpp : OpenCL Data Parallel Primitives Library. https://code.google.com/p/clpp/. [En ligne ; vérifié le 26 avril 2014]. [CN11] Nicholson Collier and Michael North. Repast HPC : A platform for large-scale agentbased modeling. Wiley, 2011. [Cor12] Nvidia Corporation. OpenCL Best Practices Guide. http://www.nvidia. com/content/cudazone/CUDABrowser/downloads/papers/NVIDIA_OpenCL_ BestPracticesGuide.pdf, 2012. [En ligne ; vérifié le 26 avril 2014]. [cud09] NVIDIA CUDA C Programming Best Practices Guide CUDA Toolkit 2.3. NVIDIA Corporation, 2009. [DARG12] Denis Demidov, Karsten Ahnert, Karl Rupp, and Peter Gottschling. Programming CUDA and OpenCL : A Case Study Using Modern C++ Libraries. CoRR, abs/1212.6326, 2012. [Del13] Audrey Delévacq. Métaheuristiques pour l’optimisation combinatoire sur processus graphiques (GPU). Thèse de doctorat, Université de Reims Champagne-Ardenne, France, February 2013. [Dem] D. Demidov. VexCL : Vector Expression Template Library for OpenCL. http://www.codeproject.com/Articles/415058/ VexCL-Vector-expression-template-library-for-OpenCL. [En ligne ; vérifié le 27 avril 2014]. [DLMK09] Roshan M. D’Souza, Mikola Lysenko, Simeone Marino, and Denise Kirschner. Dataparallel Algorithms for Agent-based Model Simulation of Tuberculosis on Graphics Processing Units. In Proceedings of the 2009 Spring Simulation Multiconference, SpringSim ’09, pages 21 :1–21 :12, San Diego, CA, USA, 2009. Society for Computer Simulation International. [DLR07] R. M. D’souza, M. Lysenko, and K. Rahmani. Sugarscape on Steroids : Simulating Over a Million Agents at Interactive Rates. In Proceedings of the Agent 2007 Conference, 2007. [DP93] J.E. Doran and M. Palmer. ’Contrasting models of upper palaeolithic social dynamics : a distributed artificial intelligence approach’. In Aarhus University Press., editor, J. Andresen, T. Madsen and I. Scollar (Eds.) : Computing the Past - Proceedings of Computer Applications and Quantitative Methods in Archaeology Conference 1992 (CAA 92), pages pp.251–262„ 1993. [DSJD02] Luis T. Da Silva Joao and Y. Demazeau. Vowels co-ordination model. In AAMAS, pages 1129–1136, Italy, 2002. [DvdHD08] Christophe Deissenberg, Sander van der Hoog, and Herbert Dawid. EURACE : A massively parallel agent-based model of the European economy. Applied Mathematics and Computation, 204(2) :541 – 552, 2008. Special Issue on New Approaches in Dynamic Optimization to Assessment of Economic and Environmental Systems.BIBLIOGRAPHIE 152 [Fer95] J. Ferber. Les systèmes multi-agents : vers une intelligence collective. InterEditions, Paris, 1995. [fip] FIPA Specifications Published in 1997. http://www.fipa.org/repository/fipa97.html. [En ligne ; vérifié le 26 avril 2014]. [FSN09] L. Fischer, R. Silveira, and L. Nedel. GPU Accelerated Path-Planning for Multiagents in Virtual Environments. In Proceedings of the 2009 VIII Brazilian Symposium on Games and Digital Entertainment, SBGAMES ’09, pages 101–110, Washington, DC, USA, 2009. IEEE Computer Society. [Fuj03] Richard M Fujimoto. Parallel simulation : distributed simulation systems. In Proceedings of the 35th conference on Winter simulation : driving innovation, pages 124–134. Winter Simulation Conference, 2003. [FVSS13] Jianbin Fang, Ana Lucia Varbanescu, Jie Shen, and Henk Sips. ELMO : A UserFriendly API to Enable Local Memory in OpenCL Kernels. 16th Euromicro Conference on Parallel, Distributed and Network-Based Processing (PDP 2008), 0 :375– 383, 2013. [Gar70] M. Gardner. The fantastic combinations of John Conway’s new solitaire game “life”. Scientific American, 223 :120–123, October 1970. [GBHS11] Chris Gregg, Michael Boyer, Kim Hazelwood, and Kevin Skadron. Dynamic heterogeneous scheduling decisions using historical runtime data. Workshop on Applications for Multi-and Many-Core Processors (A4MMC), 2011. [GCK+09] S. J. Guy, Jatin Chhugani, Changkyu Kim, Nadathur Satish, Ming C. Lin, Dinesh Manocha, and Pradeep Dubey. ClearPath : Highly Parallel Collision Avoidance for Multi-Agent Simulation. In ACM SIGGRAPH/EUROGRAPHICS SYMPOSIUM ON COMPUTER ANIMATION, pages 177–187. ACM, 2009. [GF00a] O. Gutknecht and J. Ferber. MadKit : a generic multi-agent platform. In Proceedings of the fourth international conference on Autonomous agents, AGENTS ’00, pages 78–79, New York, NY, USA, 2000. ACM. [GF00b] Olivier Gutknecht and Jacques Ferber. The MADKIT Agent Platform Architecture. In In Agents Workshop on Infrastructure for Multi-Agent Systems, pages 48–55, 2000. [GGDK09] Stéphane Galland, Nicolas Gaud, Jonathan Demange, and Abderrafiaa Koukam. Environment Model for Multiagent-Based Simulation of 3D Urban Systems. 2009. [Gut01] Olivier Gutknecht. Proposition d’un modèle organisationnel générique de systèmes multi-agents. PhD thesis, Universite de Montpellier II, Montpellier, France, 2001. [Hag73] P. Haggett. Analyse spatiale en géographie humaine. Armand Colin, Paris, 1973., 62(1) :125–127, 1973. [HCS06] Mike Holcombe, Simon Coakley, and Rod Smallwood. A General Framework for agent-based modelling of complex systems. In Proceedings of the 2006 European Conference on Complex Systems, 2006. [HNR68] P.E. Hart, N.J. Nilsson, and B. Raphael. A Formal Basis for the Heuristic Determination of Minimum Cost Paths. Systems Science and Cybernetics, IEEE Transactions on, 4(2) :100–107, July 1968. [Jac98] Henrik Klinge Jacobsen. Integrating the bottom-up and top-down approach to energyeconomy modelling : the case of Denmark. Energy Economics, 20(4) :443 – 461, 1998.BIBLIOGRAPHIE 153 [JGLG09] J.-I. Benavides J. Gómez-Luna, J.-M. González-Linares and N. Guil. Parallelization of a Video Segmentation Algorithm on CUDA—Enabled Graphics Processing Units. In 15th Euro-Par Conference, pages 924–935, Berlin, Heidelberg, 2009. SpringerVerlag. [JOF03] H. Van Dyke Parunak J. Odell and M. Fleischer. Software engineering for largescale multi-agent systems. chapter The role of roles in designing effective agent organizations, pages 27–38. Springer-Verlag, Berlin, Heidelberg, 2003. [Joh12] Haakan Johansson. Volume Raycasting Performance Using DirectCompute. http: //hgpu.org/?p=9050, 2012. [En ligne ; vérifié le 26 avril 2014]. [Khr08] Khronos OpenCL Working Group. The OpenCL Specification, version 1.0.29, 8 December 2008. [KRH+10] M. Kiran, P. Richmond, M. Holcombe, L. S. Chin, D. Worth, and C. Greenough. FLAME : simulating large populations of agents on parallel hardware architectures. In Proceedings of the 9th International Conference on Autonomous Agents and Multiagent Systems : volume 1 - Volume 1, AAMAS ’10, pages 1633–1636, Richland, SC, 2010. International Foundation for Autonomous Agents and Multiagent Systems. [KRR10] T. Karmakharm, P. Richmond, and D. Romano. Agent-based Large Scale Simulation of Pedestrians With Adaptive Realistic Navigation Vector Fields. In Theory and Practice of Computer Graphics (TPCG) 2010, pages 67–74, 2010. [KSL+12] Jungwon Kim, Sangmin Seo, Jun Lee, Jeongho Nah, Gangwon Jo, and Jaejin Lee. SnuCL : An OpenCL Framework for Heterogeneous CPU/GPU Clusters. In Proceedings of the 26th ACM International Conference on Supercomputing, ICS ’12, pages 341–352, New York, NY, USA, 2012. ACM. [Mae90] P. Maes. Designing Autonomous Agents : Theory and Practice from Biology to Engineering and Back. A Bradford book. MIT Press, 1990. [MBF02] Fabien Michel, Pierre Bommel, and Jacques Ferber. Simulation distribuée interactive sous MadKit. In JFSMA, pages 175–178, 2002. [McF87] D. McFarland. The Oxford companion to animal behaviour. Oxford Paperback Reference. Oxford University Press, 1987. [MCM12] Longfei Ma, Xue Chen, and Zhouxiang Meng. A performance Analysis of the Game of Life based on parallel algorithm. CoRR, abs/1209.4408, 2012. [Mes09] Message Passing Interface Forum. MPI : A Message-Passing Interface Standard, Version 2.2. Specification, September 2009. [MFD09] Fabien Michel, Jacques Ferber, and Alexis Drogoul. Multi-Agent Systems and Simulation : a Survey From the Agents Community’s Perspective. In Adelinde Uhrmacher Danny Weyns, editor, Multi-Agent Systems : Simulation and Applications, Computational Analysis, Synthesis, and Design of Dynamic Systems, page 47. CRC Press - Taylor & Francis, May 2009. [MGR+11] Perhaad Mistry, Chris Gregg, Norman Rubin, David Kaeli, and Kim Hazelwood. Analyzing Program Flow Within a Many-kernel OpenCL Application. In Proceedings of the Fourth Workshop on General Purpose Processing on Graphics Processing Units, GPGPU-4, pages 10 :1–10 :8, New York, NY, USA, 2011. ACM. [Mic02] Fabien Michel. Introduction to Turtlekit : A Platform for Building Logo Based MultiAgent Simulations with Madkit. Technical Report 9557, 2002.BIBLIOGRAPHIE 154 [Mic13] Fabien Michel. Intégration du calcul sur GPU dans la plate-forme de simulation multi-agent générique TurtleKit 3. In Salima Hassas and Maxime Morge, editors, JFSMA, pages 189–198. Cepadues Editions, 2013. [net] NetLogo Models Library : Life. http://ccl.northwestern.edu/netlogo/models/Life. [En ligne ; vérifié le 26 avril 2014]. [NSL+11] Veynu Narasiman, Michael Shebanow, Chang Joo Lee, Rustam Miftakhutdinov, Onur Mutlu, and Yale N. Patt. Improving GPU Performance via Large Warps and Twolevel Warp Scheduling. In Proceedings of the 44th Annual IEEE/ACM International Symposium on Microarchitecture, MICRO-44, pages 308–317, New York, NY, USA, 2011. ACM. [ope] OpenCL 1.2 Reference Pages - Restrictions. http://www.khronos.org/registry/cl/sdk/ 1.2/docs/man/xhtml/restrictions.html. [En ligne ; vérifié le 26 avril 2014]. [pan] Pandora : An HPC Agent-Based Modelling framework. https://www.bsc.es/ computer-applications/pandora-hpc-agent-based-modelling-framework. [En ligne ; vérifié le 26 avril 2014]. [rep] Repast HPC Manual. repast.sourceforge.net/docs/RepastHPCManual.pdf. [En ligne ; vérifié le 26 avril 2014]. [Rey87] Craig W. Reynolds. Flocks, Herds and Schools : A Distributed Behavioral Model. In Proceedings of the 14th Annual Conference on Computer Graphics and Interactive Techniques, SIGGRAPH ’87, pages 25–34, New York, NY, USA, 1987. ACM. [RHK06] Sebastian Rodriguez, Vincent Hilaire, and Abder Koukam. A Holonic Approach to Model and Deploy Large Scale Simulations. In Luis Antunes and Keiki Takadama, editors, MABS, volume 4442 of Lecture Notes in Computer Science, pages 112–127. Springer, 2006. [Ric11] Paul Richmond. FLAME GPU Technical Report and User Guide (CS-11-03). Technical report, Department of Computer Science, University of Sheffield, 2011. [RR08] P. Richmond and D. Romano. A High Performance Framework For Agent Based Pedestrian Dynamics on GPU hardware. European Simulation and Modelling, 2008. [RRB+08] Shane Ryoo, Christopher I. Rodrigues, Sara S. Baghsorkhi, Sam S. Stone, David B. Kirk, and Wen-mei W. Hwu. Optimization Principles and Application Performance Evaluation of a Multithreaded GPU Using CUDA. In Proceedings of the 13th ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming, PPoPP ’08, pages 73–82, New York, NY, USA, 2008. ACM. [RWCR10] Paul Richmond, Dawn Walker, Simon Coakley, and Daniela Romano. High performance cellular level agent-based simulation with FLAME for the GPU. Briefings in Bioinformatics, 2010. [RWR10] Karl Rupp, Josef Weinbub, and Florian Rudolf. Automatic Performance Optimization in ViennaCL for GPUs. In Proceedings of the 9th Workshop on Parallel/HighPerformance Object-Oriented Scientific Computing, POOSC ’10, pages 6 :1–6 :6, New York, NY, USA, 2010. ACM. [SFF+10] Renato Silveira, Leonardo Fischer, José Antônio Salini Ferreira, Edson Prestes, and Luciana Nedel. Path-planning for RTS games based on potential fields. In Proceedings of the Third international conference on Motion in games, MIG’10, pages 410–421, Berlin, Heidelberg, 2010. Springer-Verlag.BIBLIOGRAPHIE 155 [SFS10] Antoine Spicher, Nazim A. Fatès, and Olivier Simonin. Translating Discrete MultiAgents Models into Cellular Automata, Application to Diffusion-Limited Aggregation. CCIS 67 Communications in Computer and Information Sciences series, 67 :270–282, January 2010. [SFSV13] Jie Shen, Jianbin Fang, Henk Sips, and Ana Lucia Varbanescu. Performance Traps in OpenCL for CPUs. In Proceedings of the 2013 21st Euromicro International Conference on Parallel, Distributed, and Network-Based Processing, PDP ’13, pages 38– 45, Washington, DC, USA, 2013. IEEE Computer Society. [Skl11] E. Sklar. NetLogo, a multi-agent simulation environment. Artificial Life, 13(3) :303– 311, 2011. [SMH+10] Aamir Shafi, Jawad Manzoor, Kamran Hameed, Bryan Carpenter, and Mark Baker. Multicore-enabling the MPJ Express Messaging Library. In Proceedings of the 8th International Conference on the Principles and Practice of Programming in Java, PPPJ ’10, pages 49–58, New York, NY, USA, 2010. ACM. [SN09] D. Strippgen and K. Nagel. Multi-agent traffic simulation with CUDA. 2009 International Conference on High Performance Computing Simulation, pages 106–114, 2009. [TPO10] Stanley Tzeng, Anjul Patney, and John D. Owens. Task Management for Irregularparallel Workloads on the GPU. In Proceedings of the Conference on High Performance Graphics, HPG ’10, pages 29–37, Aire-la-Ville, Switzerland, Switzerland, 2010. Eurographics Association. [UIN12] Akihiro Uchida, Yasuaki Ito, and Koji Nakano. An Efficient GPU Implementation of Ant Colony Optimization for the Traveling Salesman Problem. 2013 International Conference on Computing, Networking and Communications (ICNC), 0 :94–102, 2012. [VQC02] G. Vitaglione, F. Quarta, and E. Cortese. Scalability and Performance of JADE Message Transport System. http://jade.tilab.com/papers/Final-ScalPerfMessJADE.pdf?, 2002. [En ligne ; vérifié le 27 avril 2014]. [WD92] Eric Werner and Yves Demazeau. The design of multi-agent systems. Decentralized AI, 3 :3–30, 1992. [Wei13] Robin M. Weiss. Accelerating Swarm Intelligence Algorithms with GPU-Computing. In David A. Yuen, Long Wang, Xuebin Chi, Lennart Johnsson, Wei Ge, and Yaolin Shi, editors, GPU Solutions to Multi-scale Problems in Science and Engineering, Lecture Notes in Earth System Sciences, pages 503–515. Springer Berlin Heidelberg, 2013. [Wil74] A.G. Wilson. Urban and Regional Models in Geography and Planning. A WileyInterscience publication. John Wiley & Sons Incorporated, 1974. [WLL+ ] John Wawrzynek, Mingjie Lin, Ilia Lebedev, Shaoyi Cheng, and Daniel Burke. 1 Rethinking FPGA Computing with a Many-Core Approach. [WRC12] Peter Wittek and Xavier Rubio-Campillo. Scalable agent-based modelling with cloud HPC resources for social simulations. In Cloud Computing Technology and Science (CloudCom), 2012 IEEE 4th International Conference on, pages 355–362. IEEE, 2012. [WSTaM12] Sandra Wienke, Paul Springer, Christian Terboven, and Dieter an Mey. OpenACC : First Experiences with Real-world Applications. In Proceedings of the 18th International Conference on Parallel Processing, Euro-Par’12, pages 859–870, Berlin, Heidelberg, 2012. Springer-Verlag.BIBLIOGRAPHIE 156 [ZG12] L. Zaoralek and P. Gajdos. CUDA code support in multiagent platform JADE. In Intelligent Systems Design and Applications (ISDA), 2012 12th International Conference on, pages 546–551, Nov 2012.Résumé : Ces dernières années ont consacré l’émergence du parallélisme dans la plupart des branches de l’informatique. Au niveau matériel, tout d’abord, du fait de la stagnation des fréquences de fonctionnement des unités de calcul. Au niveau logiciel, ensuite, avec la popularisation de nombreuses plates-formes d’exécution parallèle. Une forme de parallélisme est également présente dans les systèmes multi-agents, qui facilitent la description de systèmes complexes comme ensemble d’entités en interaction. Si l’adéquation entre ce parallélisme d’exécution logiciel et conceptuel semble naturelle, la parallélisation reste une démarche difficile, du fait des nombreuses adaptations devant être effectuées et des dépendances présentes explicitement dans de très nombreux systèmes multi-agents. Dans cette thèse, nous proposons une solution pour faciliter l’implémentation de ces modèles sur une plateforme d’exécution parallèle telle que le GPU. Notre bibliothèque MCMAS vient répondre à cette problématique au moyen de deux interfaces de programmation, une couche de bas niveau MCM permettant l’accès direct à OpenCL et un ensemble de plugins utilisables sans connaissances GPU. Nous étudions ensuite l’utilisation de cette bibliothèque sur trois systèmes multi-agents existants : le modèle proie-prédateur, le modèle MIOR et le modèle Collemboles. Pour montrer l’intérêt de cette approche, nous présentons une étude de performance de chacun de ces modèles et une analyse des facteurs contribuant à une exécution efficace sur GPU. Nous dressons enfin un bilan du travail et des réflexions présentées dans notre mémoire, avant d’évoquer quelques pistes d’amélioration possibles de notre solution. Mots-clés : Framework de simulation, Système multi-agents, Many-core, GPU, Calcul haute performance Abstract: These last years have seen the emergence of parallelism in many fields of computer science. This is explained by the stagnation of the frequency of execution units at the hardware level and by the increasing usage of parallel platforms at the software level. A form of parallelism is present in multi-agent systems, that facilitate the description of complex systems as a collection of interacting entities. If the similarity between this software and this logical parallelism seems obvious, the parallelization process remains difficult in this case because of the numerous dependencies encountered in many multi-agent systems. In this thesis, we propose a common solution to facilitate the adaptation of these models on a parallel platform such as GPUs. Our library, MCMAS, provides access to two programming interface to facilitate this adaptation: a low-level layer providing direct access to OpenCL, MCM, and a high-level set of plugins not requiring any GPU-related knowledge. We study the usage of this library on three existing multi-agent models : predator-prey, MIOR and Collembola. To prove the interest of the approach we present a performance study for each model and an analysis of the various factors contributing to an efficient execution on GPUs. We finally conclude on a overview of the work and results presented in the report and suggest future directions to enhance our solution. Keywords: Simulation framework, Multi-agents system, Many-core, GPU, High-performance computing Bornes inferieures et superieures dans les circuits arithmetiques S´ebastien Tavenas To cite this version: S´ebastien Tavenas. Bornes inferieures et superieures dans les circuits arithmetiques. Other. Ecole normale sup´erieure de lyon - ENS LYON, 2014. French. . HAL Id: tel-01066752 https://tel.archives-ouvertes.fr/tel-01066752 Submitted on 22 Sep 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.THÈSE en vue de l'obtention du grade de Docteur de l’Université de Lyon, délivré par l’École Normale Supérieure de Lyon Discipline : Informatique Laboratoire de l’Informatique du Parallélisme École Doctorale Informatique et Mathématiques présentée et soutenue publiquement le 9 juillet 2014 par Sébastien TAVENAS _______________________________________________________________________________ Bornes inférieures et supérieures dans les circuits arithmétiques _______________________________________________________________________________ Directeur de thèse : Pascal KOIRAN Après avis de : Markus BLÄSER Neeraj KAYAL Mohab SAFEY EL DIN Devant la commission d'examen formée de : Frédéric BIHAN Université de Savoie Membre Markus BLÄSER Universität des Saarlandes Rapporteur Étienne GRANDJEAN Université de Caen Basse-Normandie Membre Pascal KOIRAN École normale supérieure de Lyon Directeur Natacha PORTIER École normale supérieure de Lyon Co-encadrante Mohab SAFEY EL DIN Université Pierre et Marie Curie Rapporteur2Table des matières Table des matières 3 Introduction 1 1 Préliminaires 7 1 Polynômes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.1 Propriétés élémentaires des polynômes . . . . . . . . . . . . . 8 1.2 Fractions rationnelles . . . . . . . . . . . . . . . . . . . . . . . 8 1.3 Polynômes classiques . . . . . . . . . . . . . . . . . . . . . . . 9 2 Circuits arithmétiques . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1 Les circuits . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2 Degré formel . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 Arbres monomiaux . . . . . . . . . . . . . . . . . . . . . . . . 13 2.4 Notations en profondeur constante . . . . . . . . . . . . . . . 14 3 Classes de Valiant . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1 Un soupçon de complexité booléenne . . . . . . . . . . . . . . 15 3.2 Classes VP, VNP . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3 Classes sans constantes . . . . . . . . . . . . . . . . . . . . . . 18 3.4 Polynômes complets . . . . . . . . . . . . . . . . . . . . . . . 19 2 Profondeur bornée 21 1 Les formules de Ryser, Glynn et Fischer . . . . . . . . . . . . . . . . 23 2 Quelques bornes inférieures . . . . . . . . . . . . . . . . . . . . . . . 24 2.1 Comptage de monômes . . . . . . . . . . . . . . . . . . . . . . 24 2.2 Quasi-optimalité des formules de Ryser et de Glynn . . . . . . 25 2.3 Quelques résultats récents de bornes inférieures . . . . . . . . 27 3 Bornes supérieures pour circuits homogènes . . . . . . . . . . . . . . 28 3.1 Propositions sur les circuits arithmétiques . . . . . . . . . . . 29 3.2 Réduction à la VSBR . . . . . . . . . . . . . . . . . . . . . . . 30 3.3 Réduction à une profondeur bornée constante . . . . . . . . . 33 4 Bornes supérieures pour circuits non homogènes . . . . . . . . . . . . 36 3 Variantes de la τ -conjecture 39 1 Transfert de bornes inférieures . . . . . . . . . . . . . . . . . . . . . . 41 1.1 Quelques définitions de classes booléennes . . . . . . . . . . . 41 1.2 Les polynômes définissables . . . . . . . . . . . . . . . . . . . 42 1.3 Preuve du théorème 3.3 . . . . . . . . . . . . . . . . . . . . . 44 2 Variations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3TABLE DES MATIÈRES 2.1 Raffinement de la τ -conjecture réelle . . . . . . . . . . . . . . 47 2.2 Différentes τ -conjectures . . . . . . . . . . . . . . . . . . . . . 48 2.3 Problèmes fg + 1 . . . . . . . . . . . . . . . . . . . . . . . . . 54 4 Premiers résultats sur les τ -conjectures 57 1 Équivalence de la version monotone . . . . . . . . . . . . . . . . . . . 57 2 Polygones de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 2.1 Bornes supérieures grâce à la convexité . . . . . . . . . . . . . 62 5 Approche par le wronskien 65 1 Zéros des wronskiens . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 1.1 Borner les zéros des sommes par les zéros des wronskiens . . . 68 1.2 Seconde version de la borne supérieure . . . . . . . . . . . . . 70 2 Retour aux sommes de produits de polynômes . . . . . . . . . . . . . 71 2.1 Dérivées d’une puissance . . . . . . . . . . . . . . . . . . . . . 72 2.2 Application aux P Q VP Q . . . . . . . . . . . . . . . . . . 73 2.3 Applications à d’autres modèles . . . . . . . . . . . . . . . . . 76 3 Algorithmes pour le test d’identité polynomiale . . . . . . . . . . . . 78 3.1 Algorithmes PIT à boîte noire . . . . . . . . . . . . . . . . . . 79 3.2 Un algorithme PIT à boîte blanche . . . . . . . . . . . . . . . 80 3.3 Deux lemmes techniques . . . . . . . . . . . . . . . . . . . . . 81 4 Optimalité de la borne . . . . . . . . . . . . . . . . . . . . . . . . . . 84 6 Problème de Sevostyanov 89 1 Outils techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 1.1 Les dérivées d’une puissance . . . . . . . . . . . . . . . . . . . 91 1.2 Les dérivées d’une fonction algébrique . . . . . . . . . . . . . . 92 1.3 Versions réelles pour le théorème de Bézout . . . . . . . . . . 94 1.4 Décomposition cylindrique algébrique pour un polynôme bivarié 96 2 Intersection d’une courbe creuse et d’une courbe dense . . . . . . . . 97 Bibliographie 103 4Introduction Commençons ce manuscrit par une simple question. Comment fait-on pour chercher un mot dans un dictionnaire ? On identifie la première lettre du mot et on la compare à la première lettre des mots sur la page où le dictionnaire est ouvert. Puis, selon leur position relative dans l’ordre alphabétique, on tourne les pages vers l’avant ou vers l’arrière jusqu’à ce que les premières lettres coïncident. Ensuite, on recommence avec la deuxième lettre, puis avec la troisième, et ainsi de suite... Ce que nous venons de décrire correspond à ce que l’on appelle un algorithme. Il s’agit d’un procédé systématique, applicable mécaniquement, sans réfléchir, en suivant simplement un mode d’emploi précis. En bref, c’est une recette de cuisine qui répond aux questions “Comment faire telle chose ?”, “Comment calculer telle opération ?”, “Comment résoudre tel problème ?”... À l’origine, pour les mathématiciens, les algorithmes servaient plutôt à effectuer des calculs sur les nombres. Ainsi, les méthodes pour calculer des additions, soustractions, multiplications ou divisions en les posant que l’on apprend en primaire sont des algorithmes. Il en est de même par exemple du crible d’Érathostène pour déterminer si un nombre est premier. Bien que cette notion d’algorithme soit très ancienne, sa formalisation mathé- matique provient des années 1930 et des travaux en particuliers de Kleene, Church, Gödel, Herbrand, Post et Turing. Différents modèles ont été introduits comme les fonctions récursives, le lambda-calcul, la machine de Turing ou la machine RAM. De façon assez surprenante, il a été prouvé que tous ces modèles permettent de ré- soudre exactement les mêmes problèmes, et qu’il existait d’autres problèmes que ces modèles ne pouvaient pas résoudre. Ainsi est née la calculabilité, l’étude de ce qui est calculable. L’équivalence de capacité de calculs des différents modèles a permis de conjecturer que ces modèles étaient capables de simuler tous les autres modèles mécaniques que l’on pourrait concevoir. Cette conjecture est connue sous le nom de “Thèse de Church” ou “Thèse de Church-Turing”. L’apparition de l’ordinateur (qui est une réalisation marérielle de la machine RAM) dès la seconde guerre mondiale fut un grand succès de ces travaux. Avec l’arrivée des premiers ordinateurs est apparue la notion d’efficacité des algorithmes. Ainsi, peut-on réllement dire qu’un algorithme nécessitant un temps de calcul de plusieurs milliers d’années soit “efficacement” calculable ? D’après Hartmanis et Stearn, l’efficacité d’un algorithme doit être mesurée comme une fonction de la taille de ses entrées. L’efficacité d’un algorithme se mesure alors par le nombre de ressources qu’il utilise (comme le nombre d’opérations ou le nombre de cases mémoires) en fonction de la taille des entrées. C’est le début de la théorie de la complexité. Ainsi, lorsqu’on pose une addition de deux entiers, le nombre de chiffres que l’on écrit est au plus grossièrement trois fois plus grand que le nombre de chiffres des entrées (on doit rajouter une ligne pour les retenues et une ligne pour la solu- 1INTRODUCTION tion). On dira que cet algorithme est linéaire en le nombre de chiffres à écrire. En comparaison, lorsqu’on pose une multiplication, le nombre de chiffres à écrire sera quadratique car le nombre de lignes de chiffres sera proportionnel en le nombre de chiffres des entrées. Quelques années plus tard, Cobham et Edmonds ont indépendamment proposé qu’un algorithme efficace est un algorithme qui n’effectue, dans le pire des cas, qu’un nombre d’opérations polynomial en la taille de son entrée. La classe P est ainsi défi- nie comme l’ensemble des problèmes qui admettent de tels algorithmes. On pourrait en fait se demander si la classe P, qui contient des problèmes qui ont leur meilleur algorithme en temps n 1000, correspond bien à l’ensemble des problèmes efficacement calculables. En pratique ce modèle semble aujourd’hui assez satisfaisant puisque la grande majorité des problèmes naturels de cette classe nécessite en fait un nombre d’opérations en n c avec c une constante relativement petite (disons c ≤ 5). Toutefois, d’autres classes peuvent aussi prétendre représenter les problèmes décidables efficacement. Par exemple, la classe P ne considère que les algorithmes déterministes, or de nombreux algorithmes aujourd’hui utilisent des bits aléatoires. Ainsi, la classe BPP est définie comme l’ensemble des problèmes que l’on peut résoudre en temps polynomial en la taille des entrées en utilisant des bits aléatoires. D’autres candidats pour la classe des problèmes résolubles efficacement viennent des modèles non uniformes. Un modèle uniforme est un modèle (comme pour P et BPP) où les algorithmes sont les mêmes quelque soit la taille des entrées. Dans le cas de la cryptographie, pourrait-on dire que le problème de la factorisation soit vraiment difficile s’il existait un algorithme très rapide capable de factoriser tous les nombres d’au plus 100 000 bits ? Un exemple naturel de modèle de calcul non uniforme est celui des circuits. L’ensemble des problèmes qui possèdent une suite de circuits (un pour chaque taille d’entrée) de taille polynomiale correspond à la classe P/poly. La question duale à celle de savoir quels problèmes peuvent être efficacement calculables est celle de déterminer pour quels problèmes ce n’est pas le cas. Ainsi, imaginons le problème du touriste qui arrive en France et aimerait visiter certaines villes (par exemple Angers, Bordeaux, Caen, Clermont-Ferrand, Grenoble, Lille, Lyon, Nancy, Nice, Paris et Rennes) mais qui n’a, à sa disposition, qu’une voiture de location avec un forfait de 1500 kilomètres. Peut-il trouver un itinéraire passant par toutes ces villes ne dépassant pas les 1500 kilomètres ? Ce problème, connu sous le nom du “Voyageur de Commerce” semble difficile à implémenter efficacement sur les ordinateurs. Aucun algorithme de complexité polynomiale résolvant ce problème n’est aujourd’hui connu. En fait, nous pensons qu’il n’en existe pas. Mais pourquoi cela ? Comment pourrait-on montrer la non-existence d’un tel algorithme ? Pour commencer, notons que pour ce problème, si un itinéraire est donné, il est facile (i.e. en temps polynomial) de vérifier s’il s’agit d’un itinéraire satisfaisant aux critères de départ. L’ensemble des problèmes ayant cette propriété forme une classe connue sous le nom de NP. Pourquoi pense-t-on alors qu’il n’existe pas d’algorithme polynomial qui décide l’existence d’un tel bon itinéraire ? En fait, il a été montré que ce problème était au moins aussi difficile que tous les autres problèmes de la classe NP (on dit que le problème du voyageur de commerce est NP-complet). Ce qui signifie que s’il existe un algorithme polynomial pour ce problème, alors il en existe aussi un pour tous les autres problèmes de cette classe NP. Or la classe NP comprend un très grand nombre de problèmes qui semblent difficiles. Depuis les premières preuves 2INTRODUCTION de NP-complétude par Cook et Karp il y a trente ans, les chercheurs n’ont cessé d’augmenter la liste de ces problèmes NP-complets (cf. par exemple le livre [34] pour une liste déjà conséquente). Comme l’existence d’un algorithme polynomial pour le problème du voyageur de commerce impliquerait l’existence d’un tel algorithme pour tous ces autres problèmes, la communauté scientifique doute de cette existence. Mais comment le prouver ? Résoudre cette question connue sous le nom “P 6= NP ?” (ou conjecture de Cook) est le plus grand défi de la recherche actuelle en informatique théorique. Cette conjecture fait partie des sept problèmes du millénaire exposés par l’Institut Clay. Très peu d’outils existent aujourd’hui pour trouver des bornes inférieures sur la complexité d’un problème, i.e. prouver que tel problème ne peut pas être résolu en moins de tant d’opérations. Un autre problème classique est celui des mariages parfaits (en anglais “perfect matching”). Anne, Bertrand, Charles et Daniel doivent se répartir quatre gâteaux, un au chocolat, un à la vanille, un au citron et un à la fraise. Anne et Bertrand n’aiment pas beaucoup les fruits, mais raffolent du chocolat et de la vanille. Charles est preneur des gâteaux au citron, à la fraise ou à la vanille, mais laisserait bien celui au chocolat. Quant à Daniel, gourmand, sera satisfait quelque soit le gâteau qu’il recevra. Le problème des mariages parfaits est celui de savoir s’il y a une affectation des gâteaux qui convient aux quatre amis. Ce problème est en fait dans P. Toutefois, la variante de ce problème qui consiste à compter le nombre de telles affectations valables est supposée difficile (ce problème est connu #P-complet). En fait compter ce nombre d’assignations revient à évaluer un polynôme particulier, le permanent, en un certain point. Cela signifie qu’il est possible de résoudre ce problème en effectuant seulement les opérations arithmétiques que sont l’addition, la soustraction ou la multiplication. Dans ce manuscrit, nous nous intéresserons essentiellement à de tels problèmes arithmétiques. Il est envisageable que l’utilisation d’autres opérations (comme modifier directement les bits des nombres considérés) permette d’évaluer ces polynômes plus rapidement, mais en pratique ce n’est généralement pas le cas des algorithmes connus actuellement. Nous considérerons ainsi des modèles de calcul arithmétiques, i.e. des modèles où seules les opérations arithmétiques sont utilisées. Le modèle arithmétique probablement le plus répandu de nos jours est celui des circuits arithmétiques. Ce modèle a été particulièrement étudié par Valiant dans les années 70, 80. Ce dernier a introduit des classes analogues aux classes booléennes. Ainsi, la classe VP correspond aux familles de polynômes calculables efficacement dans ce modèle, alors que la classe VNP est l’analogue de la classe VP. Valiant montra que le polynôme Permanent est en fait VNP-complet. La conjecture VP 6= VNP, connue sous le nom de conjecture de Valiant fait figure de version arithmétique de la conjecture de Cook. Toutefois, comme on se limite ici seulement aux opérations arithmétiques, la robustesse des objets algébriques sur lesquels on travaille (comme les anneaux ou les corps) et les nombreuses propriétés qu’ont les opérations associées permettent d’imaginer que cette version arithmétique de la conjecture P 6= NP soit beaucoup plus accessible. Dans le premier chapitre, nous rappelerons les définitions et premières propriétés autour de ces circuits arithmétiques dont nous aurons besoin dans la suite de ce manuscrit. Nous avons mentionné précédemment que le principal challenge en complexité informatique est de trouver des bornes inférieures. Agrawal et Vinay [4] ont mon- 3INTRODUCTION tré que trouver une borne inférieure en 2 o(d+d log(n/d)) pour la taille des circuits de profondeur 4 calculant une suite de polynômes Pn de degré d à n indéterminées est équivalent à trouver une borne inférieure (aussi en 2 o(d+d log(n/d))) pour les circuits généraux calculant cette suite de polynômes. Ce résultat traduit que le problème de trouver des bornes inférieures est aussi difficile dans le cas des circuits de profondeur 4 que dans le cas des circuits généraux. Depuis, beaucoup de travaux ont été réalisés sur les circuits arithmétiques de profondeur constante (en particulier de profondeur 3 et 4). Nous exposerons dans le deuxième chapitre les résultats sur ce sujet. Nous commencerons par donner les résultats récents sur des bornes inférieures non triviales pour les circuits de profondeur 4. Puis nous nous intéresserons plus particulièrement aux bornes supérieures correspondantes et verrons que dans un grand nombre de cas les bornes optimales ont été trouvées. En 2007, Bürgisser [21] a montré qu’une célèbre conjecture, la τ -conjecture introduite par Shub et Smale [92], implique une borne inférieure sur la taille des circuits arithmétiques calculant le permanent. Cette τ -conjecture suggère qu’un polynôme calculé par un petit circuit ne peut pas avoir beaucoup de racines entières. Cependant cette conjecture est fausse si on considère les racines réelles au lieu des racines entières. En effet les polynômes de Tchebychev possèdent un nombre de racines réelles exponentiellement plus grand que la taille des circuits les calculant. Koiran [61] a proposé une variante de cette τ -conjecture, nommée la τ -conjecture réelle. Cette dernière stipule qu’il existe un polynôme universel p tel que les polynômes univariés de la forme X k i=1 Ym j=1 fi,j (X) ont au plus p(ktm) racines réelles dès que les fi,j ont au plus t monômes. L’intérêt de cette conjecture est que, tout en impliquant encore la conjecture de Valiant, elle considère le nombre de racines réelles, et permet d’espérer que les outils d’analyse réelle puissent aider à la résoudre. Dans le troisième chapitre, nous étudierons cette τ -conjecture réelle ainsi que d’autres variantes ayant toutes la propriété d’impliquer des bornes inférieures pour le permanent. Le quatrième chapitre sera consacré à des premiers résultats concernant deux de ces variantes : la τ -conjecture réelle monotone ainsi que la version combinatoire. Nous nous attarderons ensuite sur nos travaux pour tenter de prouver la τ - conjecture réelle dans le chapitre cinq. Nous verrons alors pourquoi le wronskien est un outil très adapté pour borner le nombre de zéros de sommes de puissances. Même si nous sommes encore loin de prouver la τ -conjecture réelle, nous montrerons comment obtenir des bornes sur le nombre de racines pour des polynômes de la forme X k i=1 Ym j=1 (fi,j (X))αi,j où les fi,j ont au plus t monômes. Ces bornes améliorent à la fois les résultats de Khovanski˘ı [59] sur ce sujet et les résultats précédents de Grenet, Koiran, Portier et Strozecki [38]. Ces outils sont assez robustes et permettent d’améliorer les bornes supérieures connues sur le nombre de racines pour d’autres familles de polynômes. 4INTRODUCTION Enfin, au chapitre six, nous essaierons d’utiliser la pleine puissance des outils développés au chapitre cinq pour attaquer les variantes “creuses” du théorème de Bézout. Dans le corps des complexes, le nombre de racines d’un polynôme est borné par son degré. La règle des signes de Descartes assure, elle, que le nombre de racines réelles est aussi borné par le nombre de termes du polynôme. Par ailleurs, pour un système de plusieurs équations, le théorème de Bézout affirme que le nombre de solutions complexes, s’il est fini, est borné par le produit des degrés des diffé- rents polynômes. Qu’en est-il alors du cas d’un système de polynômes creux ? Cette question a été soulevée par Kushnirenko en 1977. Les résultats de Khovanski˘ı sur la théorie des “fewnomials” assurent que le nombre de solutions réelles est borné par une fonction du nombre de termes. Cependant cette fonction est exponentielle en le nombre de termes. La question de savoir s’il existe une borne supérieure polynomiale en le nombre de termes comme pour le théorème de Bézout est encore largement ouverte. Dans ce même chapitre nous examinerons un cas particulier, celui d’un système d’un polynôme de petit degré avec un polynôme creux. Nous montrerons que dans ce cas, il existe effectivement une borne supérieure polynomiale sur le nombre de composantes connexes des solutions. Notations Dans ce manuscrit nous utiliserons abondamment la notation de Landau pour apprécier le comportement asymptotique de nos mesures. Par comportement asymptotique, nous sous-entendons en fait le comportement des fonctions au voisinage de +∞. Si f et g sont des fonctions R → R, on dira que f = O(g) s’il existe deux réels positifs c et N tels que pour tout n ≥ N, on ait f(n) ≤ cg(n). De plus, on notera f = o(g) si pour tout réel positif ε, il existe un réel N tel que pour tout n ≥ N, on ait f(n) ≤ εg(n). Ces notations permettent de borner supérieurement le comportement asymptotique de f. Il existe des notations symétriques pour les bornes inférieures. Ainsi, on notera f = Ω(g), respectivement f = ω(g) si g = O(f), respectivement g = o(f). Enfin, la notation f = Θ(g) exprime que f = O(g) et g = O(f), i.e. que f et g sont de même ordre de grandeur. Finalement nous utiliserons la même notation dans le cas de fonctions de Z → R. 5INTRODUCTION 6Chapitre 1 Préliminaires : notations et introduction à la théorie de Valiant Dans ce chapitre, nous définirons les outils ainsi que les notations que nous allons utiliser dans la suite de ce manuscrit. Nous donnerons ensuite une brève introduction à la théorie des circuits arithmétiques (appelée généralement théorie de Valiant). Toutefois, nous considérerons ici seulement les bases et les résultats qui nous seront utiles pour la suite. Pour un aperçu plus complet de cette théorie, le lecteur interessé pourra se tourner vers les références suivantes [19, 23, 35, 91]. L’idée de cette théorie est de mesurer la complexité des polynômes en termes de nombres d’opérations arithmétiques à effectuer. Commençons par fixer quelques notations pour les polynômes. 1 Polynômes Un polynôme univarié f est défini comme une expression de la forme f = c0 + c1X + c2X 2 + . . . + cdX d = X d i=0 ciX i où les ci (pour 0 ≤ i ≤ d) sont des éléments d’un anneau commutatif A avec cd 6= 0 et où X est un symbole formel appelé indéterminée (ou même variable). La constante d est appelée le degré (notée aussi deg(f)) et les (ci)0≤i≤d les coefficients de f. Par convention, le degré du polynôme nul sera −∞. L’ensemble des polynômes à coefficients dans un anneau A est encore un anneau et sera noté A[X]. Remarque 1.1. Dans la suite du manuscrit, les anneaux seront toujours supposés unitaires et commutatifs. Un polynôme est donc une somme de termes où chaque terme est le produit d’un coefficient ci et d’un monôme Xi . Les coefficients cd (où d est le degré) et c0 sont traditionnellement appelés respectivement le coefficient dominant et le terme constant. Si A est un sous-anneau de B, alors, on associera à un polynôme f sa fonction 7CHAPITRE 1. PRÉLIMINAIRES polynomiale sur B. Il s’agit de la fonction : f : B → B x 7→ c0 + c1x + . . . + cdx d . En fait, nous nous intéresserons essentiellement dans la suite à des anneaux très simples. En particulier A correspondra généralement à Z ou Q et B sera R ou C. Les polynômes multivariés sont des polynômes en plusieurs indéterminées. Il s’agit d’expression de la forme f = c0,0,...,0 + c1,0,...,0X1 + . . . + c0,0,...,1Xn + . . . + ci1,i2,...,inX i1X i2 · · · X in = X α∈Nn cαXα où la somme est finie. Les coefficients ci1,i2,...,in sont encore des éléments d’un anneau A. Le coefficient c0,0,...,0 sera encore appelé le terme constant. Le degré d’un monôme m = Xα1 · · · Xαn sera alors défini par deg(m) = Pn i=1 αi . Le degré total du polynôme sera le maximum des degrés de ses monômes, c’est-à-dire deg(f) = maxα(α1 + . . . + αn). Un polynôme est dit homogène si tous les termes associés à un coefficient non nul ont même degré. Un polynôme est constant s’il est de degré au plus 1. 1.1 Propriétés élémentaires des polynômes Un outil pratique pour les polynômes est la décomposition en facteurs irréductibles. Plus formellement, si K est un corps commutatif, un polynôme f est dit irréductible s’il est de degré au moins 1 et si pour toute écriture de f comme un produit g · h alors, un des deux polynômes g ou h est constant. La décomposition en facteurs irréductibles assure que pour tout polynôme f sur un corps K, il existe des polynômes g1, . . . , gp irréductibles et une constante λ de K tels que : f = λg1 . . . gp. De plus, ces nouveaux polynômes sont uniques à constante multiplicative près. Un anneau qui possède cette propriété de décomposition unique en irréductible est appelé factoriel. La théorie sur ces anneaux est beaucoup plus générale que celle pré- sentée ici (en particulier, pour les anneaux de polynômes, l’anneau de base n’a pas besoin d’être un corps) et peut être trouvée dans tout livre d’algèbre. Une racine d’un polynôme f en n variables est un point (a1, . . . , an) de A n tel que f s’annule en ce point (i.e. f(a1, . . . , an) = 0). Dans le cas des polynômes univariés, le fait que a soit une racine de f(X) est équivalent au fait que (X −a) soit un facteur de f. Un corollaire direct de l’unicité de la décomposition en irréductibles est que si f(X) est un polynôme non identiquement nul, alors son nombre de racines est borné par son degré. 1.2 Fractions rationnelles On peut tout d’abord remarquer que l’ensemble des polynômes est le plus petit ensemble qui contient les constantes, les variables et qui est stable par les trois lois +, − et ×. Mais que se passe-t-il si on veut rajouter les divisions ? 81. POLYNÔMES Il est alors naturel de se placer dans le cas où l’anneau de base est un corps K (comme pour les anneaux, nos corps seront toujours commutatifs). On définit les fractions rationnelles comme les quotients de deux polynômes : f est fraction rationnelle si et seulement s’il existe deux polynômes g et h (avec h non identiquement nul) tels que f = g/h. On dira que g/h est sous forme simplifiée si g et h sont premiers entre eux (i.e. que si un polynôme φ divise g et h, alors φ est constant). De même que pour les polynômes, on peut associer à chaque écriture g/h la fonction rationnelle associée (où B est un sur-corps de K) : g/h : B → B x 7→ g(x)/h(x). Toute fraction rationnelle peut se mettre sous une forme simplifiée, la seule perturbation de cette transformation est que le domaine de la nouvelle fonction associée a potentiellement été étendu par continuité. Ces singularités qui ont disparu sont appelées singularités effaçables. Dans la suite, les fractions rationnelles (ainsi que les fonctions associées) seront par défaut sous forme simplifiée. On peut encore définir les racines d’une fonction rationelle comme les points où elle s’annule. On définira les pôles, comme les points où la fonction rationnelle est non définie. L’ensemble des fractions rationnelles sera noté K(X1, . . . , Xn). 1.3 Polynômes classiques Un premier exemple de polynôme est le produit itéré de matrices. Il s’agit du produit matriciel X (0)t X (1) · · · X (d−1) où X (0) =  X (0) i  1≤i≤n et X (d−1) =  X (d−1) i  1≤i≤n sont deux vecteurs colonnes, et pour 1 ≤ k ≤ d − 2 les X (k) =  X (k) i,j  1≤i,j≤n sont des matrices n × n. Le polynôme obtenu, appelé IMMn,d (le nom vient de l’anglais “Iterated Matrix Multiplication”) est défini comme suit. Pour d, n des entiers tels que d ≥ 2 et n ≥ 1, on considère le polynôme suivant sur les (d − 2)n 2 + 2n indéterminées  X (0) i , X(d−1) i , X(l) i,j  pour 1 ≤ i, j ≤ n et l ∈ {1, . . . , d − 2} : IMMn,d = X (i0,...,id−2)∈{1,...,n} d−1 X (0) i0 X (1) i0,i1 · · · X (d−2) id−3,id−2X (d−1) id−2 . Un autre exemple classique de polynôme est celui du déterminant. Les bijections de l’ensemble {1, . . . , n} vers lui-même sont appelées permutations à n éléments. On notera leur ensemble Sn. Soient i < j deux éléments distincts compris entre 1 et n. On dit que la paire {i, j} est en inversion pour la permutation σ quand σ(i) > σ(j). Une permutation est dite paire quand elle présente un nombre pair d’inversions, impaire sinon. Par définition, la signature d’une permutation paire est 1, celle d’une permutation impaire est −1. La signature d’une permutation σ sera notée ε(σ). Nous 9CHAPITRE 1. PRÉLIMINAIRES pouvons enfin définir le polynôme déterminant. Soit X = (Xi,j )1≤i,j≤n la matrice de taille n×n où chaque case correspond à une indéterminée particulière. Le polynôme Detn = X σ∈Sn (−1)ε(σ)Yn i=1 Xi,σ(i) est alors défini comme le déterminant de la matrice X = (Xi,j )1≤i,j≤n. Il s’agit d’un polynôme homogène de degré n. Par exemple, Det2 = X1,1X2,2 − X1,2X2,1. Le déterminant ne se résume pas à la formule ci-dessous. Il s’agit d’un outil primordial en mathématiques, à la base par exemple de l’algèbre linéaire. Muir lui a consacré un livre [74]. On s’intéressera dans ce manuscrit plus particulièrement au permanent, un polynôme en partie similaire au déterminant. Il est défini par : Permn = X σ∈Sn Yn i=1 Xi,σ(i) . Il s’agit exactement de la formule du déterminant à laquelle on a retiré les “−1”. Permn est aussi un polynôme homogène de degré n en n 2 variables. Même s’il est loin d’avoir l’ampleur du déterminant en mathématiques, il a tout de même des significations combinatoires. En particulier, si G est un graphe orienté à n sommets où chaque arête e est pondérée par un poids π(e), alors le permanent de G compte le nombre de couvertures par cycles. Plus précisément, une couverture par cycle C est un sous-ensemble des arêtes couvrant G par des cycles, i.e. pour chaque sommet v de G, exactement une arête sortante et une arête entrante de v (possiblement la même) sont dans C. Graphe G Couverture par cycles (en rouge) Cycle hamiltonien (en rouge) Le poids de la couverture par cycle C est le produit des poids des arêtes de C. Si M = (mi,j )1≤i,j≤n est la matrice d’adjacence du graphe G (la case mi,j correspond au poids associé à l’arête allant du sommet i au sommet j, s’il n’y a pas d’arête, le poids est 0), alors le permanent de M vaut la somme des poids de C où C parcourt l’ensemble des couvertures par cycle de G : Permn(G) = X C couverture par cycles de G   Y e arête de C π(e)   . 102. CIRCUITS ARITHMÉTIQUES Le polynôme obtenu si on se restreint alors aux cycles hamiltoniens au lieu des couvertures par cycles est appelé le hamiltonien (un cycle hamiltonien est un cycle qui passe une et une seule fois par chaque sommet du graphe). Hamn(G) = X C cycle hamiltonien de G   Y e arête de C π(e)   . 2 Circuits arithmétiques 2.1 Les circuits La façon la plus naturelle de calculer un polynôme f(x1, . . . , xn) sur un anneau A est de commencer avec les variables x1, . . . , xn puis d’effectuer une succession d’opérations arithmétiques basiques telles que des additions, des soustractions, des multiplications ou des divisions (c.f. Remarque1.3) jusqu’à obtenir le polynôme dé- siré. Un tel calcul est appelé un SLP (de l’anglais “Straight-line program”). Nous représenterons ces SLP par des circuits arithmétiques. Définition 1.2. Un circuit arithmétique sur un anneau commutatif A de portes d’opération P est un graphe fini orienté acyclique avec les propriétés suivantes : les sommets d’un circuit sont habituellement nommés portes. Ceux de degré entrant 0 sont appelés les entrées et sont étiquetés par une constante de A ou une variable. Les autres sommets (de degré entrant > 0) sont étiquetés par des opérations de P et sont appelés les portes de calcul ou nœuds internes. Pour une porte de calcul, le degré entrant sera souvent noté arité. Les sommets de degré sortant 0 seront nommés les sorties. Enfin, nous appellerons formule, un circuit tel que le graphe sous-jacent est un arbre. Comme nous avons introduit les circuits comme une représentation des SLP, il est intéressant de remarquer que la taille d’un circuit n’est rien d’autre que la longueur du SLP correspondant. Comme nous l’avons mentionné à la remarque 1.1, nous nous limitons dans ce manuscrit au cas des anneaux commutatifs, mais il est aussi possible de définir les circuits pour des anneaux non-commutatifs (voir par exemple sur ce sujet le célèbre résultat de Nisan [75] ou la section consacrée dans [91]). Nous utiliserons aussi le vocabulaire classique successeur/arguments pour mettre en évidence les liens entre les portes. S’il existe une arête du graphe allant de la porte α vers la porte β, nous dirons que α est un argument de β ou que β est un successeur de α. Chaque porte d’un circuit calcule un polynôme (défini par récurrence). Les polynômes calculés par un circuit correspondent aux polynômes calculés par les sorties du circuit. Comme dans l’exemple ci-dessous, on considérera généralement des circuits avec une seule sortie (et donc calculant un unique polynôme). Pour une porte α, nous noterons [α] le polynôme calculé par cette porte. 11CHAPITRE 1. PRÉLIMINAIRES x -2 y × × × + Circuit calculant le polynôme f = 4x 2 − 2xy. Remarque 1.3. Quand rien n’est signalé, l’ensemble des portes d’opérations sera par défaut : P = {+, ×}. Rajouter des portes de soustraction ne changera pas grand chose, vu qu’il est possible de simuler le calcul a − b par le calcul a + ((−1) × b). Pour calculer des polynômes, Strassen a montré ( [95], cf. lemme 1.6) que l’on pouvait aussi facilement se passer des portes de division. Enfin, nous utiliserons aussi (au chapitre 2) les portes de multiplication par un scalaire . Remarque 1.4. Encore par défaut, l’arité des portes de calcul sera bornée par deux. On mentionnera dans la suite quand l’arité des portes (essentiellement + et ×) sera bornée par une autre valeur ou non bornée. Comme mentionné précédemment, nous nous intéresserons à la complexité des circuits arithmétiques. Pour cela, nous aurons besoin de “mesures” de la “taille” de tels circuits. Définition 1.5. La taille d’un circuit compte le nombre de portes. La profondeur du circuit mesure la longueur maximale d’un chemin orienté depuis une entrée jusqu’à une sortie. Nous avons déjà mentionné précédemment que l’on peut en général se passer des portes de division. Plus précisément, le résultat suivant a été démontré par Strassen [95]. Une preuve peut être trouvée au chapitre 7.1 du livre [22]. Lemme 1.6. Sur un corps infini, si un polynôme f de degré d est calculable par un circuit de portes {+, −, ×, ÷} et de taille s, alors il est aussi calculé par un circuit de portes {+, −, ×} et de taille O(d 2 s). Le résultat reste valide en fait pour tout corps assez grand. Hrubeš et Yehudayoff ont généralisé ce résultat à tout corps [49]. 2.2 Degré formel Définition 1.7. Pour un circuit de portes {+, ×}, on définit, par récursivité, le degré (formel) d’une porte : — Le degré d’une entrée étiquetée par 0 est −∞. — Le degré d’une entrée étiquetée par une constante non nulle est 0. — Le degré d’une entrée étiquetée par une variable est 1. 122. CIRCUITS ARITHMÉTIQUES — Le degré d’une porte + d’arguments α1, . . . , αp est le maximum des degrés des portes α1, . . . , αp. — Le degré d’une porte × d’arguments α1, . . . , αp est la somme des degrés des portes α1, . . . , αp. Un circuit est qualifié d’homogène si pour chacune de ses portes d’addition α, tous les arguments de α ont le même degré. Remarque 1.8. Dans la suite de ce manuscrit nous supposerons que les nœuds internes ne calculent jamais le polynôme identiquement nul. Si c’est le cas, il suffit de remplacer ces portes par des portes d’entrée étiquetées par la constante 0. Un premier résultat découle immédiatement de la définition par récurrence des circuits homogènes. Lemme 1.9. Dans un circuit homogène, toutes les portes calculent des polynômes homogènes. De plus le degré de la porte correspond au degré du polynôme homogène calculé par la porte. Démonstration. — Le lemme est avéré pour toutes les portes d’entrée. — Si α est une porte + d’arguments α1, . . . , αp, alors par homogénéité, ces arguments ont le même degré d. Par hypothèse de récurrence, les portes α1, . . . , αp calculent des polynômes homogènes de degré d. Donc [α] est un polynôme homogène de degré d ou −∞. Par la remarque 1.8, le degré de [α] est d. — Si α est une porte de multiplication d’arguments α1, . . . , αp, alors par hypothèse de récurrence les polynômes [α1], . . . , [αp] sont homogènes et leurs degrés correspondent au degré des portes correspondantes. Donc [α] est homogène et le degré de [α] égale le degré de α. Les portes correspondant à la multiplication par un scalaire sont donc des cas particuliers de portes de multiplication. On peut rajouter maintenant une restriction syntaxique pour que ces portes calculent bien des multiplications scalaires. Dans la suite, ces portes sont toujours d’arité deux et au moins l’un des arguments est de degré formel 0. 2.3 Arbres monomiaux Pour un circuit donné à une seule sortie, nous allons définir une famille de formules particulières que nous appellerons les arbres monomiaux. Dans l’esprit, un arbre monomial correspond au calcul d’un monôme particulier. Définition 1.10. L’ensemble des arbres monomiaux d’un circuit C qui a une seule sortie o est défini par récurrence sur sa taille : — Si C est de taille 1, il a seulement un arbre monomial, lui-même. — Si la sortie o de C est une porte + d’arguments α1, . . . , αp, alors les arbres monomiaux de C sont obtenus en choisissant un arbre monomial du souscircuit enraciné en αi et l’arc reliant αi à la sortie o pour une valeur de i dans l’ensemble {1, . . . , p}. 13CHAPITRE 1. PRÉLIMINAIRES — Si la porte de sortie o de C est une porte de multiplication (ou une porte ) dont les arguments sont α1, . . . , αp, les arbres monomiaux de C sont obtenus en prenant des copies disjointes pour chaque 1 ≤ i ≤ p d’un arbre monomial enraciné en αi , puis en prenant les p arcs reliant les portes αi à la sortie o. Par exemple, le circuit suivant x y z + + × possède six arbres monomiaux. x z + + × y z + + × x x + + + × x y + + + × y x + + + × y y + + + × On remarque ici qu’un arbre monomial peut avoir une taille (exponentiellement) plus grande que celle du circuit original. Cela ne posera pas de problème dans la suite de ce manuscrit. Toutefois, il est possible d’éviter cette explosion en travaillant avec des circuits multiplicativement disjoints comme dans [72]. À chaque arbre monomial, on peut associer un monôme correspondant au produit de ses feuilles. Le lemme suivant qui montre comment revenir au circuit à partir des arbres monomiaux provient de [72]. Lemme 1.11. Un polynôme f calculé par un circuit C correspond exactement à la somme des monômes des arbres monomiaux : f = X T arbre monomial m(T) où m(T) est le monôme associé à l’arbre T. 2.4 Notations en profondeur constante Dans le cas des circuits de profondeur constante de portes {+, ×}, l’arité des portes sera non bornée. En fait, pour un circuit de profondeur δ, si l’arité des portes est bornée par a, alors le polynôme calculé ne dépend que d’au plus a δ variables. Or comme dans le cas de la complexité booléenne, nous ne voulons pas que la taille des entrées du problème soient bornée par une constante. 143. CLASSES DE VALIANT Pour les circuits de profondeur constante, il est traditionnel (et très pratique) de les partitionner en niveaux. Le niveau 0 contient les entrées, puis pour tout i ≥ 1, le niveau i correspond à un unique opérateur et chaque porte de ce niveau a tous ses arguments dans le niveau i − 1. On peut remarquer que cette transformation est presque anodine pour les circuits à une seule sortie, de portes {+, ×} (plus précisément, elle n’augmente pas la profondeur p et multiplie la taille par au plus p). Nous utiliserons quelques notations pratiques qui sont définies dans l’article [45]. Un circuit, par exemple de profondeur 4, tel que les portes des niveaux 1 et 3 sont des portes de multiplication et les portes de niveau 2 et 4 sont des portes d’addition est noté : circuit P QP Q. De plus un circuit P Q[α] P[β] Q correspond à un circuit de type P QP Q où l’arité des portes de multiplication au niveau 3 est borné par α P Q et l’arité des portes d’addition du niveau 2 est borné par β. Par exemple, un circuit [α] P[β] Q calcule un polynôme de la forme : X t i=1 Yui j=1 Xvi,j k=1 wY i,j,k l=1 xi,j,k,l où ui ≤ α, vi,j ≤ β. De même, nous aurons besoin de portes d’exponentiation V . Nous ne les avons pas définies précédemment car elles ne serviront que dans le cas des circuits de profondeur bornée. Elles correspondent à l’opérateur “puissance”. Par exemple un circuit P V[γ] P calcule des polynômes de la forme : X t i=1 Xvi j=1 xi,j!ui où les exposants ui sont bornés par γ. 3 Classes de Valiant 3.1 Un soupçon de complexité booléenne Commençons ce chapitre par une petite digression sur la complexité booléenne. En fait, dans la suite, seul le chapitre 3 nécessitera quelques outils de cette théorie. L’intérêt ici est aussi de donner au lecteur une petite intuition des classes P et NP avant d’aller voir les classes VP et VNP qui en seront inspirées. De plus, on supposera connue la définition d’une machine de Turing (le lecteur pourra sinon, pour l’intuition, imaginer la machine de Turing comme un ordinateur ou un programme informatique). D’ailleurs, beaucoup plus d’informations sur la complexité booléenne (comme la définition des machines de Turing) pourront être trouvées dans les références [7, 37, 79, 82]. Définition 1.12. L’ensemble {0, 1} ? désigne l’ensemble des mots finis sur l’alphabet {0, 1}. Par exemple 011 et 00000 sont deux mots de {0, 1} ? . Le premier est un mot de longueur 3, le second, un mot de longueur 5. On utilisera la notation |x| pour désigner la taille du mot x. Un langage est une partie de {0, 1} ? . 15CHAPITRE 1. PRÉLIMINAIRES Nous pouvons maintenant définir la classe P constituée des langages supposés “facilement calculables”. Définition 1.13. La classe P contient l’ensemble des langages A tels qu’il existe une constante c et une machine de Turing M telles que — sur toute entrée x ∈ {0, 1} ? , M(x) fonctionne en temps ≤ |x| c + c, — M reconnaît le langage A, i.e. x ∈ A ⇔ M(x) = 1. Une des plus grandes réussites de cette théorie réside dans la classe NP. Dans l’idée, un langage A est dans cette classe, lorsque l’appartenance d’un mot à A est facilement vérifiable. Définition 1.14. On définit la classe NP comme l’ensemble des langages A tels qu’il existe un polynôme p et un langage B ∈ P où x ∈ A ⇔ ∃y ∈ {0, 1} p(|x|) ,(x, y) ∈ B. Le succès de la classe NP vient du fait que de nombreux langages ont été prouvés NP-complets (comprendre, au moins aussi difficiles que tous les autres de cette classe). Le livre référence sur le sujet est [34]. On conjecture que les deux classes précédentes sont distinctes, i.e. que les problèmes NP-complets n’ont pas d’algorithme de complexité polynomiale, mais cette question reste toujours ouverte. Cette conjecture figure dans la liste des sept problèmes du millénaire rédigée par l’Institut de mathématiques Clay. Conjecture 1.15. Les classes P et NP sont distinctes. 3.2 Classes VP, VNP Nous sommes en mesure de définir les classes de complexité du modèle de Valiant [99, 100]. Puisqu’on veut mesurer la complexité comme une fonction de la taille des entrées, on considérera en fait des suites infinies de polynômes comme (Detn)n∈N. Ces suites de polynômes (Pn) seront calculées par des suites de ciruits Cn si et seulement si pour tout n, le circuit Cn calcule le polynôme Pn. Au début, nous considérerons bien ces suites de polynômes, mais rapidement, par abus de notation, nous identifierons ces suites aux polynômes : ainsi, par exemple, on parlera du polynôme Detn pour parler de la suite (Detn)n∈N. Comme dans le modèle booléen, nous aurons besoin d’une notion de réduction. Définition 1.16. Un polynôme f est une projection d’un polynôme g si k ≤ l et si f(X1, . . . , Xk) = g(Y1, . . . , Yl) où les Yi sont soit des variables Xi , soit des constantes de A. La suite de polynômes (fn) est une projection polynomiale de la suite de polynômes (gn) s’il existe un polynôme p tel que pour tout n, le polynôme fn soit une projection du polynôme gp(n) . Les définitions des classes VP et VNP sont basées sur celles des classes booléennes P et NP (le V rajouté est pour Valiant). Intuitivement, nous voulons définir VP comme l’ensemble des suites de polynômes calculables par des circuits de taille 163. CLASSES DE VALIANT polynomiale. On va en fait rajouter une autre contrainte sur VP : nous voulons que le degré des polynômes de cette classe soit aussi polynomialement borné. Pourquoi rajouter une telle contrainte ? L’idée derrière est encore que l’on souhaite que VP ressemble à P. Les fonctions calculables polynomialement par une machine de Turing sont telles que la taille de leur sortie est polynomialement bornée par la taille de leur entrée. Ce n’est pas le cas des polynômes de degré exponentiel. Cependant dans le modèle des circuits, la multiplication et l’addition coûtent toujours un temps constant, quelque soit la taille des entrées. En particulier, il est possible de calculer des polynômes de degré exponentiel par des circuits de taille polynomiale, comme le montre le circuit suivant de taille n : X × . . . × n portes Circuit calculant le polynôme X2 n−1 . Commençons par la définition de la classe VP. Définition 1.17. Soit A un anneau commutatif. La suite Cn de polynômes (fn) est dans VPA s’il existe des polynômes p, q et r et une suite de circuits arithmétiques sur A de portes {+, ×} tels que pour tout n, les propriétés suivantes sont avérées : — le nombre de variables de fn est borné par p(n), — le degré de fn est borné par q(n), — le circuit Cn calcule fn — et la taille de Cn est bornée par r(n). Suivant la tradition, on pose VP = VPQ. Considérons par exemple la famille (Detn). Le nombre de variables ainsi que le degré de ces circuits est polynomialement borné. La méthode du pivot fournit directement un circuit de portes {+, ×, −, ÷} de taille O(n 3 ). D’après la remarque 1.1 et le lemme 1.6, il existe un circuit arithmétique de portes {+, ×} de taille O(n 5 ). En particulier, (Detn) ∈ VP. Un autre exemple de polynôme est le produit itéré de matrices IMMn,n. Comme le produit de deux matrices se fait directement en utilisant O(n 3 ) opérations, il est facile de vérifier que IMMn,n ∈ VP. La classe VNP correspond alors à la classe NP. L’idée de la définition est de partir de la définition par certificats de la classe booléenne NP et de remplacer le “∃y ∈ {0, 1} p(n) ” par une somme P y∈{0,1} p(n) . Définition 1.18. Soit A un anneau commutatif. La suite de polynômes (gn) est dans VNPA s’il existe une suite de polynômes (hn) ∈ VPA et un polynôme p tels que gn(x) = X ε∈{0,1} p(n) hn(x, ε) 17CHAPITRE 1. PRÉLIMINAIRES De même on note VNP la classe VNPQ. Les suites de polynômes (Permn) et (Hamn), définies à la section 1 sont des exemples d’éléments de la classe VNP (une preuve pourra être trouvée par exemple dans [19]) : Lemme 1.19. Pour tout anneau A, on a (Permn), (Hamn) ∈ VNPA. En fait, il est possible de se passer, a priori, de la borne sur le degré des polynômes fn en considérant que la “mesure” du circuit correspond à son nombre de sommets combiné à son degré formel. Ceci évite a posteriori les polynômes de degré exponentiel. Le prochain lemme (folklore) assure que l’on obtient les mêmes classes en contraignant le degré formel des circuits au lieu du degré des polynômes. Lemme 1.20. Si une suite de polynômes (fn) de degré (dn) est dans VP, alors il existe une suite de circuits (Cn) calculant fn de taille polynomiale telle que le degré de Cn est dn pour tout n. 3.3 Classes sans constantes L’importance du rôle des constantes est une question intéressante. Par exemple remarquons que pour calculer le produit itéré de matrices, aucune constante n’est utilisée. Pour mette en évidence leur rôle, Malod introduit des variantes sans constantes VP0 et VNP0 des classes de Valiant [71]. Par “sans constantes”, nous voulons en fait dire utilisant seulement la constante −1. Les constantes 0 et 1 s’obtiennent facilement à l’aide de −1 et vu que nous n’autorisons pas la soustraction, nous avons besoin d’une constante strictement négative. Ainsi, si un circuit a besoin d’une constante non triviale, il doit la calculer à partir de −1. En particulier, la notion de degré formel (qui ignore le calcul des constantes) devient alors un peu bancal. Malod [71] introduit ainsi le degré formel complet : Définition 1.21. Le degré formel complet d’un circuit est défini par induction : les constantes et les variables sont de degré 1 ; pour une porte d’addition on prend le sup des degrés arrivant et pour une porte de multiplication, on en prend la somme. Nous pouvons maintenant définir les classes VP0 et VNP0 . Définition 1.22. fn est dans VP0 s’il existe une suite de circuits arithmétiques — calculant fn, — utilisant comme seule constante −1 — et de taille et de degré formel complet polynomiaux. gn est dans VNP0 s’il existe un polynôme p tel que : gn(x) = X ε∈{0,1} p(n) hn(x, ε) avec hn ∈ VP0 . En fait les polynômes considérés précédemment ne nécessitent pas de constantes. En particulier : Detn ∈ VP0 et Permn, Hamn ∈ VNP0 . 183. CLASSES DE VALIANT La réduction définie précédemment (la projection polynomiale) utilise les constantes de l’anneau courant. Les classes VP0 et VNP0 ne sont donc pas stables pour cette réduction. Nous sommes alors amenés à considérer une variante sans constante de cette réduction [71]. Définition 1.23. Une suite de polynômes (fn) est une projection bornée d’une suite (gn) s’il existe deux polynômes p et q tels que pour tout n : fn(X1, . . . , Xk) = gn(Y1, . . . , Yl) où les Yi sont soit des variables Xi , soit des constantes calculables par des circuits de taille et degré formel bornés par q(n) utilisant seulement la constante −1. Une autre mesure classique quantifie la complexité des circuits sans constantes. Il s’agit de la mesure τ introduite dans [27]. Définition 1.24. La complexité τ (f) d’un polynôme f entier (i.e. de Z[X1, . . . , Xn]) est défini comme la taille minimale d’un circuit calculant f, de portes {+, −, ×} et utilisant seulement la constante 1. Remarquons que la définition (traditionnelle) donnée ici ne correspond pas exactement aux conventions actuelles. On utilise ici la constante 1, mais on autorise la porte de soustraction. Cette mesure est en particulier restée célèbre grâce à la τ - conjecture introduite par Shub et Smale [92]. On reviendra plus en détail sur cette conjecture au chapitre 3. 3.4 Polynômes complets Le problème est alors de trouver pour chaque polynôme la plus petite classe qui la contient. Comme dans le cas booléen, les bornes inférieures non conditionnelles sont généralement inconnues, mais on peut encore obtenir des “preuves de difficulté” grâce à la notion de complétude. Définition 1.25. Une suite de polynômes (fn) est VNP-complète si et seulement si la suite (fn) fait partie de la classe VNP et pour toute suite (gn) de VNP, gn est une projection polynomiale de fn. On peut de même obtenir une définition de VNP0 -complétude en utilisant la classe VNP0 au lieu de VNP et en n’autorisant que les projections polynomiales bornées. En particulier, bien qu’on ne soit pas capable de montrer qu’un polynôme f ∈ VNP n’est pas dans VP, il est possible pour un certain nombre de polynômes, de prouver qu’ils sont VNP-complets et donc, non supposés être dans VP. Si tel était le cas, VNP = VP. Valiant a montré [99] que sur tout corps K de caractéristique différente de 2, le permanent est VNP-complet. Théorème 1.26. Soit K un corps de caractéristique différente de 2. Alors la famille Permn est VNP-complète. 19CHAPITRE 1. PRÉLIMINAIRES On remarque qu’en caractéristique 2, le permanent correspond exactement au déterminant, il tombe donc dans la classe VPK. Plus précisément, la preuve du théorème précédent nécessite la constante 2 −1 . Ceci explique l’hypothèse du corps de caractéristique différente de 2. L’intérêt des classes sans constantes est justement de mettre en évidence le rôle particulier que certaines constantes peuvent avoir. En particulier la proposition suivante généralise le théorème 1.26 et vient de [62]. Intuitivement, il signifie que le permanent appartient à la classe VNP0 et est presque complet pour cette classe. Proposition 1.27. Supposons que Permn ∈ VP0 . Alors, pour toute famille (fn) dans VNP0 , il existe un polynôme p(n) tel que la famille 2 p(n) fn  soit dans VP0 . Le permanent étant probablement le polynôme complet pour VNP le plus étudié, nous suivrons la tradition dans ce manuscrit et nous l’utiliserons systématiquement comme polynôme complet pour VNP. Toutefois, il est possible d’éviter les difficultés provoquées par la constante 2 −1 en choisissant un autre polynôme VNP-complet comme le hamiltonien (défini en section 1.3). Théorème 1.28. Dans tout anneau A, le polynôme Hamn est VNP0 -complet et donc aussi VNPA-complet. La grande conjecture classique du domaine est que les classes VP et VNP sont distinctes : Conjecture 1.29 (Hypothèse de Valiant). VP 6= VNP. La complétude du permanent assure que cette conjecture est équivalente au fait que le permanent n’appartient pas à la classe VP, i.e. ne possède pas de circuit arithmétique de taille polynomiale. Les implications sont moins simples dans le cas sans constantes. En fait, si VP0 = VNP0 alors on a Permn ∈ VP0 et si Permn ∈ VP0 alors τ (Permn) = n O(1), mais les réciproques ne sont pas connues. Pour la première réciproque, nous avons déjà vu que le permanent n’est que “presque complet” pour VNP0 . Le second cas est plus subtil. Si τ (Permn) = n O(1), il est possible que le circuit utilise des portes de très grand degré formel complet pour calculer des constantes. Cependant, l’astuce classique d’homogénéisation ne semble pas être efficace contre le calcul des constantes. Toutefois si τ (Permn) = n O(1), alors le permanent admet une suite de circuit de taille polynomiale et ainsi VP = VNP. La figure suivante (directement inspirée de l’article de Bürgisser [21]) tente de résumer les différentes implications connues. VP0 6= VNP0 Permn ∈/ VP0 τ (Permn) = n ω(1) VPQ 6= VNPQ ⇔ Permn ∈/ VPQ 20Chapitre 2 Circuits de profondeur bornée Valiant, Skyum, Berkowitz et Rackoff [101] ont prouvé que si un circuit de taille s et de profondeur p calcule un polynôme de degré d, alors ce polynôme peut aussi être calculé par un circuit de profondeur O(log(d)) et de taille bornée par un polynôme en s. Ce résultat est essentiellement à la base de toutes les avancées sur la parallélisation des circuits arithmétiques. Quelques années plus tard, Miller, Ramachandran et Kaltofen [73] puis Allender, Jiao, Mahajan et Vinay [6] ont étudié la complexité de cette méthode de parallélisation. À l’aide de ces résultats, Agrawal et Vinay [4] ont prouvé que si un polynôme f n-varié de degré d = O(n) possède un circuit de taille 2 o(d+d log(n/d)), alors f peut aussi être calculé par un circuit de profondeur quatre ( P QP Q) de taille 2 o(d+d log(n/d)). Ce résultat indique que pour prouver des bornes inférieures dans les circuits arithmétiques ou pour dérandomiser le test d’identité polynomial, le cas des circuits de profondeur quatre est dans un certain sens le cas général. L’hypothèse du résultat d’Agrawal et Vinay est assez faible : ils considèrent des circuits de taille 2 o(d+d log(n/d)) (nous pouvons remarquer au passage que tous les polynômes ont une formule de taille d n+d d  = 2O(d log( n+d d ))). Mais, serait-il possible d’obtenir une conclusion plus forte si on demandait des hypothèses plus fortes ? Koiran [60] a montré que c’était effectivement le cas. Si le circuit de départ est de taille s, alors le polynôme peut être calculé par un circuit de profondeur quatre de taille 2 O( √ d log(d) log(s)). Par exemple, si la famille du permanent est calculée par des circuits de taille polynomiale (i.e. de taille n c ), alors elle est aussi calculée par des circuits de profondeur quatre et de taille 2 O( √ n log2 (n)). De plus, la transformation conserve l’homogénéité du circuit. La parallélisation semble être un outil intéressant pour obtenir des bornes inférieures pour les circuits généraux : une borne inférieure en 2 ω( √ n log2 (n)) sur la taille des circuits P Q[O( √ n)] P Q[ √ n] calculant le permanent implique qu’il n’y a pas de circuits de taille polynomiale pour le permanent. Et il paraît plus facile d’obtenir des bornes inférieures pour ces circuits particuliers que pour les circuits généraux. C’est d’ailleurs le cas. Bien qu’aucune borne inférieure superpolynomiale ne soit encore connue pour les circuits généraux, Gupta, Kamath, Kayal et Saptharishi [44] ont obtenu une borne inférieure superpolynomiale pour le permanent s’appliquant à des circuits de profondeur 4 particuliers. Plus précisément, ils ont montré que si un circuit homogène P QP Q[t] (i.e. un circuit de profondeur 4 dont le degré entrant des portes de multiplication du premier niveau est borné par t) calcule le permanent d’une matrice de taille n × n, alors sa taille est 2 Ω(n/t) . En 21CHAPITRE 2. PROFONDEUR BORNÉE particulier, un circuit homogène P QP Q[ √ n] calculant le permanent est de taille 2 Ω(√ n) . L’année suivante, les mêmes auteurs [45] ont trouvé comment réduire encore un peu la profondeur des circuits. Ils montrent comment transformer des circuits à n variables de taille s et de profondeur d (= n O(1)) en des circuits de profondeur 3 et de taille exp(O( √ d log s log n log d)). De plus, si l’entrée est un programme à branchements (et non un circuit), la borne supérieure devient exp(O( √ d log s log n)). Ce résultat implique l’existence d’un circuit de profondeur 3 et de taille 2 O( √ n log n) calculant le déterminant d’une matrice n×n. Toutefois, ce résultat n’est pas comparable aux réductions à la profondeur 4 car le circuit de profondeur 3 obtenu est non homogène, et utilise au milieu de son calcul des portes calculant des polynômes de très haut degré. En 2013, Fournier, Limaye, Malod et Srinivasan [31] ont obtenu une borne inférieure de 2 Ω(√ d/tlog n) pour la taille des circuits homogènes P QP Q[t] calculant le produit itéré de matrices. Tous ses résultats récents sur les circuits arithmétiques peuvent être trouvés dans l’article de synthèse [58]. Dans ce chapitre, nous allons commencer par étudier des bornes inférieures sur la taille des circuits de profondeur bornée. Nous allons voir deux résultats intermé- diaires sur les circuits de profondeur 4 et 3, avant d’évoquer les résultats récents relatifs à la profondeur 4. Puis dans la section suivante, nous allons nous attaquer aux ré- sultats de parallélisation (i.e. aux bornes supérieures). Nous [98] améliorons la borne de parallélisation de Koiran : un circuit de taille s peut être parallélisé de manière homogène à la profondeur 4 en un circuit de taille exp(O( p d log(ds) log(n))). De plus, le degré entrant de chaque porte de multiplication est borné par O q d log ds log n  . Remarquons que comme n ≤ s, le résultat implique la borne de Koiran et est en général meilleur : dans le cas où d, s = n Θ(1), la borne de Koiran est 2 O( √ n log2 n) tandis que la nouvelle borne est 2 O( √ n log n) . En particulier, la nouvelle borne est optimale puisqu’elle correspond exactment à la borne inférieure obtenue par [31]. Cela implique aussi qu’une borne inférieure en 2 ω( √ n log(n)) pour les circuits homogènes de profondeur 4 calculant le permanent induit une borne inférieure super-polynomiale pour la taille des circuits généraux calculant le permanent. En fait, nous généralisons cette réduction au cas d’une profondeur bornée. Enfin, nous étudierons le cas des parallélisations non homogènes introduites par Gupta, Kamath, Kayal et Saptharishi [45]. Comme ils utilisent dans leur preuve la borne de Koiran, nous pourrons légèrement améliorer leur borne en utilisant à la place la borne décrite plus haut. Un circuit n-varié de taille s et de profondeur d peut être simulé par un circuit de profondeur 3 et de taille exp  O( p d log(ds) log n)  . Enfin, nous remarquons que cette parallélisation peut elle aussi être généralisée aux profondeurs constantes, ce qui nous donnera, en particulier, le résultat intéressant que les circuits de taille s et de degré d peuvent en fait être simulés par des circuits de profondeur 4 et de taille (ds) √3 d . Cette borne est bien en-dessous des bornes inférieures connues pour les circuits n’utilisant que des petits degrés. Cela montre bien que l’utilisation de portes intermédiaires de très haut degré s’avère très puissante. Aujourd’hui, on ne sait pas comment obtenir des bornes inférieures non triviales pour de tels circuits. 221. LES FORMULES DE RYSER, GLYNN ET FISCHER 1 Les formules de Ryser, Glynn et Fischer Les travaux autour de l’hypothèse de Valiant tendent à essayer de montrer que le permanent est difficile à calculer. Mais qu’est ce que cela veut dire plus précisé- ment ? On entend parfois que le calcul du permanent devrait nécessiter un nombre exponentiel d’opérations arithmétiques. Ce n’est pas encore un énoncé très précis. Souvent (vu que le terme est suffisamment vague, c’est loin d’être toujours vrai), on utilise le terme exponentiel pour désigner une fonction f(n) = 2θ(n c ) pour une constante c ≥ 1 (si c est une constante strictement inférieur à 1, on préfère habituellement le terme sous-exponentiel). Ensuite, il pourrait être tentant (et naturel) de paramétriser les polynômes par leur nombre de variables. Le polynôme Permn est un polynôme en n 2 variables. La conjecture émise plus haut pourrait être décrite plus formellement : Conjecture (Première conjecture sur la complexité du permanent). Si Cn est une suite de circuits de taille sn calculant Permn, alors sn = 2Ω(n 2 ) . Cependant, cette conjecture est trivialement fausse puisque le polynôme Permn est une somme de (n!) monômes. Il peut être calculé par une suite de circuits de taille n × (n!). En fait une meilleure borne existe depuis 1963 et les travaux de Ryser [88]. Il trouva une formule simple, de taille n 22 n pour le permanent d’une matrice A = (Ai,j )1≤i,j≤n : Proposition 2.1 (Formule de Ryser). Permn(A) = (−1)n X S⊆{1,...,n} (−1)|S|Yn i=1 X j∈S ai,j . On peut donc émettre une nouvelle conjecture. Celle-ci est encore ouverte : Conjecture 2.2 (Conjecture sur la complexité du permanent). Si Cn est une suite de circuits de taille sn calculant Permn, alors sn = 2Ω(n) . La formule de Ryser est assez étonnante car malgré sa grande simplicité, homogène et de profondeur 3, elle est une des formules connues les plus efficaces pour calculer le permanent. Une autre formule, devenue classique, mais trouvée beaucoup plus récemment par Glynn [36] possède ces mêmes propriétés : Proposition 2.3 (Formule de Glynn). Permn(A) = 1 2 n−1 X ε2,...,εn∈{±1} (−1)p(ε)Yn i=1 ai,1 + Xn j=2 εjai,j! où p(ε) = |{i | εi = −1}|. P Ces formules assurent que le permanent peut être calculé par des circuits de type [2n] Q[n] P[n] . Ce résultat est d’autant plus surprenant que le même résultat est inconnu et plutôt conjecturé faux pour le déterminant : 23CHAPITRE 2. PROFONDEUR BORNÉE Conjecture 2.4. Detn n’a pas de circuits de type P[2O(n) ] Q[n] P. La formule de Glynn ressemble particulièrement à une formule plus vieille d’une quinzaine d’années, la formule de Fischer [30] : Lemme 2.5 (Formule de Fisher). n! · x1x2 . . . xn = 1 2 n−1 X r2,...,rn∈{±1} (−1)p(r) x1 + Xn i=2 rixi !n où p(r) = |{i | ri = −1}||. Dans [86], les auteurs montrent que la taille de la somme (en 2 n−1 ) est exactement la taille optimale pour transformer des monômes en sommes de puissances de formes lineaires. En fait, comme Amir Shpilka me l’a fait remarquer lors d’une discussion, il est facile d’obtenir la formule de Fischer à partir de celle de Glynn. Il suffit pour cela de calculer le permanent de la matrice    x1 x2 . . . xn . . . . . . . . . . . . x1 x2 . . . xn    qui vaut n! · x1 . . . xn. Ainsi, on se dit que la même astuce devrait marcher en utilisant la vraie formule de Ryser. On obtient effectivement une nouvelle formule du type de celle de Fischer : Proposition 2.6. n! · x1x2 . . . xn = (−1)n X S⊆{1,...,n} (−1)|S| X j∈S xj !n . 2 Quelques bornes inférieures 2.1 Comptage de monômes Nous allons commencer cette section par une borne inférieure très simple mais relativement précise. On va montrer : Proposition 2.7. Si une suite de circuits P[s] Q[a] P[v] Q calcule Permn ou Detn, alors s · v a ≥ n!. En particulier, si une suite de circuits P[s] Q[O( √ n)] P[s] Q calcule Permn ou Detn, alors s ≥ 2 Ω(√ n log n) . Les bornes supérieures en a et v sur les degrés entrants des portes de multiplication du troisième niveau et les portes d’addition du second niveau s’avérent être cruciales. Une telle contrainte impliquera directement en général une bonne borne inférieure seulement grâce à un argument de comptage de monômes. On peut comparer ainsi ce résultat avec la proposition 2.10 plus loin. 242. QUELQUES BORNES INFÉRIEURES Nous ferons la preuve dans le cas du permanent. Le cas du déterminant est complètement identique. L’approche ici, est de transformer un tel circuit en un circuit de profondeur 2, puis d’obtenir une borne inférieure pour le circuit de profondeur 2. En fait, dans le cas des circuits de profondeur 2, l’écriture d’un polynôme comme une somme de produits est unique (une fois qu’on a effectué toutes les annulations possibles). Il s’agit de la forme développée du polynôme. La taille de la somme est alors simplement le nombre de monômes. Vu que Permn a n! monômes, on vient de prouver Lemme 2.8. Si un circuit P[s] Q calcule Permn, alors s ≥ n!. D’un autre côté, pour calculer dans un circuit P[s] Q[a] P[v] Q une porte du troisième niveau, il suffit de calculer un polynôme Q[a] P[v] qui a pour entrées les portes du premier niveau. En appellant V l’ensemble de ces entrées, les polynômes du troisième niveau sont donc de la forme g = Qa i=1 Pv j=1 zi,j avec zi,j ∈ V . Or si on développe g, on obtient g = P (j1,...,ja)∈{1,...,v} a z1,j1 . . . za,ja . Donc on peut transformer tout circuit P[s] Q[a] P[v] Q en un circuit P[s] P[v a] Q[a] Q , c’est-à-dire un circuit P[sva] Q . Ceci prouve la proposition 2.7. 2.2 Quasi-optimalité des formules de Ryser et de Glynn Dans toute la suite de cette section sur les bornes inférieures, nous utiliserons la dimension des espaces vectoriels engendrés par certaines familles de polynômes. Donc l’anneau de base des polynômes sera en fait un corps. Pour obtenir des bornes inférieures, un des outils principaux est l’espace engendré par les dérivées partielles. Nisan et Wigderson [76] ont trouvé des bornes inférieures pour la taille des circuits homogènes de profondeur 3 calculant les polynômes symétriques élémentaires ou le produit itéré de matrices. Ces techniques sont développées dans les articles de synthèse [91] et [23]. Depuis 2012, cet outil est au cœur des travaux relatifs aux bornes inférieures pour les circuits arithmétiques homogènes de profondeur 4. Pour ce dernier point, on y reviendra un peu plus tard. Un autre résultat, très proche de ceux de Nisan et Wigderson [76], peut être obtenu à l’aide de ces techniques : montrer que les formules de Ryser et de Glynn sont “presque optimales”. Après quelques discussions, ce résultat – qui découle de [76] – semble connu de certaines personnes, mais à la connaissance de l’auteur, il n’est écrit nulle part. Proposition 2.9. Soit Cn une suite de circuits de type P[s] Q[n] P calculant Permn (ou Detn), alors s ≥  n n/2  ≥ 2 n √ 2n . Pour les formules de Ryser et de Glynn, s vaut respectivement 2 n − 1 et 2 n−1 . Les résultats sont donc optimaux à un facteur multiplicatif près de √ 1 n . Nous allons donner maintenant une preuve de cette proposition. D’ailleurs, cette preuve illustre bien l’utilisation typique des dérivées partielles. 25CHAPITRE 2. PROFONDEUR BORNÉE Démonstration. Soit k un entier que l’on fixera plus tard. Posons X = {xi,j | 1 ≤ i, j ≤ n} l’ensemble des variables de Permn. Nous allons considérer l’espace vectoriel engendré par les dérivées partielles kièmes du polynôme Permn. Notons h∂ =k fi l’espace vectoriel engendré par l’ensemble  ∂ k ∂y1 . . . ∂yk f | (y1, . . . , yk) ∈ X k  . La preuve se fait en deux parties. Nous allons commencer par borner inférieurement la dimension de h∂ =kPermni, puis nous allons borner supérieurement la dimension de tout espace h∂ =k gi où g est un polynôme calculé par un circuit P[s] Q[n] P. Définissons les p-mineurs (mineurs permanentaux) de taille s × s d’une matrice M de taille n×n comme les permanents de N où N parcourt les sous-matrices de M obtenues en supprimant (n−s) lignes et (n−s) colonnes. Si k < n, alors les dérivées partielles d’ordre k de Permn sont soit le polynôme nul (si on dérive deux fois dans la même ligne ou la même colonne), soit les p-mineurs de tailles (n − k) × (n − k). Il est facile de vérifier que chacun de ces p-mineurs de taille (n − k) × (n − k) peut être obtenu comme une dérivée kième de Permn. De plus comme un même monôme ne peut pas apparaître dans deux p-mineurs différents, cela signifie que la famille des p-mineurs est une famille libre. La dimension de l’espace est donc exactement le nombre de p-mineurs distincts. Vu qu’un p-mineur de taille (n − k) × (n − k) est obtenu de manière unique en choisissant k lignes et k colonnes, on obtient : dim(h∂ =kPermni) =  n k 2 . De l’autre côté, si g est un polynôme de degré n pouvant être exprimé de la forme P[s] Q[n] P, alors g(x) = Ps i=1 hi(x) où chaque hi est un produit de n formes linéaires. De plus, notre mesure de complexité (la dimension des sous-espaces engendrés par le dérivées partielles) est une mesure sous-additive. En effet, comme ∂g = Pt i=1 ∂hi , on a h∂ =k gi ⊆ ev [s i=1 h∂ =k hii ! où ev(A) correspond à l’espace engendré par A. D’où dim h∂ =k i  ≤ s · max h dim h∂ =k hi  où h parcourt les produits de taille n de formes linéaires. Posons h = l1 . . . ln avec les li des formes linéaires. Toute dérivée kième de h est engendrée par des polynômes li1 . . . lin−k (où 1 ≤ i1 < . . . < in−k ≤ n). Cette famille est de taille n k  . D’où dimh∂ =k gi ≤ s  n k  . P En remettant tout ensemble, on en déduit que si Permn peut être écrit comme [s] Q[n] P, alors  n k 2 ≤ s  n k  . En choisissant k = n 2 , on en déduit la proposition. 262. QUELQUES BORNES INFÉRIEURES 2.3 Quelques résultats récents de bornes inférieures Avant d’attaquer, dans la prochaine partie, les bornes supérieures pour les circuits de profondeur bornée, nous allons juste évoquer les bornes inférieures connues qui vont leur faire écho. La technique des dérivées partielles a été vraiment remise au goût du jour depuis l’article de Gupta, Kamath, Kayal et Saptharishi [44]. Ils considèrent en fait l’espace engendré par les dérivées partielles décalées : h∂ =k fi≤l =  x1 . . . xl ∂ k ∂y1 . . . ∂yk f | (x1, . . . , xl , y1, . . . , yk) ∈ X k+l  . Dans leur article, ils prouvent que : Proposition 2.10. Tout circuit homgène P[s] QP Q[t] qui calcule Detn (ou Permn) doit être tel que s ≥ 2 Ω( n t ) . En particulier, tout circuit homogène P[s] QP Q[ √ n] qui calcule Detn (ou Permn) est tel que s ≥ 2 Ω(√ n) . Le résultat fut d’autant bien accueilli que c’est la première borne inférieure superpolynomiale pour les circuits de profondeur 4. De plus, on verra dans la prochaine section que ce résultat est presque optimal, on peut donner une borne supérieure en n √ d (où d est le degré du polynôme). La technique a alors été adaptée à d’autres familles de polynômes. Peu après, Kayal, Saha et Saptharishi obtinrent la borne inférieure n √ d pour les polynômes de Nisan-Wigderson définis dans [57]. Définition 2.11. Soient n une puissance de 2 et Fn le corps fini où les n éléments sont identifiés avec l’ensemble {1, . . . , n}. Pour tout 0 ≤ k ≤ n, le polynôme NWk est un polynôme à n 2 inconnues de degré n défini comme suit : NWk(x1,1, . . . , xn,n) = X p∈Fn[t] deg(p) 0 suffisamment petit, alors s ≥ 2 Ω(√ n log(n)) . 27CHAPITRE 2. PROFONDEUR BORNÉE Cette famille de polynôme fait partie de la classe VNP. Toutefois, une borne inférieure similaire (en n √ d ) a été trouvée pour le produit itéré de matrices. Fournier, Limaye, Malod et Srinivasan [31] ont montré que : Proposition 2.13. Si un circuit P[s] Q[O(D)] P Q[ √ d] calcule le polynôme IMMn,d, alors s ≥ 2 Ω(√ d log(n/D)) . Les techniques de preuve pour cette proposition ainsi que pour la proposition 2.12 ont été unifiés dans l’article [24]. Nous finirons cette présentation de l’état de l’art sur les bornes inférieures par deux résultats tout récents. Jusqu’à présent, toutes les bornes inférieures requièrent des bornes supérieures sur le degré entrant de certaines portes de multiplication. Peut-on s’affranchir de telles contraintes ? On verra à la section 4 que si on s’autorise à ce que les portes intermédiaires calculent des polynômes de très hauts degrés, alors les bornes en n √ d ne marchent plus du tout. Toutefois, une contrainte intermédiaire, naturelle, pourrait être que le circuit soit homogène, sans donner de conditions supplémentaires sur les degrés. On peut remarquer qu’une telle contrainte implique en particulier que les portes ne calculent pas des polynômes de degré strictement plus grand que d. Des bornes inférieures superpolynomiales ont été trouvées par Kumar et Saraf [67], puis indépendamment par Kayal, Limaye, Saha et Srinivasan [56]. Ainsi, Proposition 2.14. Soit Cn une famille de circuits homogènes P[s] QP Q. — Si Cn calcule NWd r alors s ≥ 2 Ω(√ d log d) . — Si Cn calcule IMMn,d avec d = Ω(log2 n), alors s ≥ n Ω(log n) . — Si Cn calcule Detn, alors s ≥ n Ω(log n) . 3 Bornes supérieures pour circuits homogènes Comme on l’a mentionné précédemment, il existe une borne supérieure sur la taille des circuits de profondeur 4 calculant des polynômes de VP en n √ d où d est le degré. Nous allons en fait montrer un résultat un peu plus général qui traite toutes les profondeurs constantes paires. L’idée étant que les circuits de profondeur 6 nous permettront par exemple d’obtenir une borne supérieure pour les circuits non homogènes de profondeur 4 dans la prochaine section. On rappelle (Remarque 1.4) que si rien n’est mentionné l’arité des portes + et × est deux. Théorème 2.15. Soient p un entier supérieur à 2 et f un polynôme à n variables calculé par un circuit de taille P Q s et de degré d. Alors f est calculé par C, un circuit [O(α)] · · ·P Q[O(α)] P Q[β] de profondeur 2p et de taille 2 O(d 1/p log(p−1)/p(ds) log1/p n) où : α =  d log n log ds1 p et β = d 1 p  log ds log n p−1 p . De plus, si f est homogène, ce sera aussi le cas pour C. 283. BORNES SUPÉRIEURES POUR CIRCUITS HOMOGÈNES Nous donnerons une preuve de cette parallélisation un peu plus loin, à la soussection 3.3. Le cas de la profondeur 4 est largement le plus étudié de nos jours. Le théorème précédent donne alors : Théorème 2.16. Soit f un circuit à n variables calculé par un circuit de taille s et de degré d. Alors f est calculé par un circuit P Q[O(α)] P Q[β] de taille 2 O( √ d log(ds) log n) où : α = s d log n log ds et β = s d log ds log n . De plus si f est homogène ce sera aussi le cas pour le nouveau circuit. D’ailleurs le théorème précédent peut être directement appliqué dans le cas du permanent. Théorème 2.17. Si le permanent n × n est calculé par un circuit de taille polynomiale en n, alors il est aussi calculé par un circuit homogène P Q[O( √ n)] P Q[O( √ n)] de taille 2 O( √ n log(n)) . 3.1 Propositions sur les circuits arithmétiques Pour prouver le théorème 2.15, nous aurons besoin de quelques résultats préalables. Le résultat suivant est considéré comme du folklore. Toutefois on peut trouver une preuve dans le livre de Bürgisser [19] (Lemma 2.14). Proposition 2.18. Si f est un polynôme de degré d calculé par un circuit C de portes {+, ×} de taille s tel que le degré entrant des portes × est borné par 2 (on ne met pas de borne sur celui des portes +), alors il existe un circuit C˜ de taille s(d + 1)2 avec d + 1 sorties O0, O1, . . . , Od tel que : — le degré entrant des portes + n’est pas borné, — le degré entrant de chaque porte × est borné par 2, — pour tout i, la porte Oi calcule la composante homogène de f de degré i, — C˜ est homogène. On rappelle le lemme 1.9 montré au chapitre 1. Lemme (Rappel du lemme 1.9). Dans un circuit homogène, toutes les portes calculent des polynômes homogènes. De plus le degré de la porte correspond au degré du polynôme homogène calculé par la porte. Enfin, nous avons déjà mentionné le fait que les preuves de parallélisation sont presque toujous basées sur la réduction de Valiant, Skyum, Berkowitz et Rackoff [101]. Celle-ci ne déroge pas à la règle. Toutefois, nous aurons besoin d’un résultat légèrement plus fort. En effet leur résultat est complètement global : leur circuit d’arrivée est de profondeur O(log d). Nous aurons besoin ici, d’un résultat local sur le comportement de chacune des portes de multiplication. 29CHAPITRE 2. PROFONDEUR BORNÉE Définition 2.19. Un circuit C de portes {×, +, } sera dit équilibré pour les portes × si et seulement si toutes les propriétés suivantes sont vérifiées : — le degré entrant de chaque porte × est au plus 5, — le degré entrant de chaque porte + est non borné, — le degré entrant de chaque porte est au plus 2, — pour chaque porte × (appelée α), chacune de ses entrées est de degré au plus la moitié du degré de α, — le degré de chaque porte égale le degré du polynôme calculé par la porte (obtenu grâce au lemme 1.9). La dernière condition ne peut pas être vraie pour la multiplication par un scalaire. C’est la raison pour laquelle nous avons introduit l’opérateur . La proposition suivante a été trouvée par Agrawal et Vinay [4]. Elle généralise légèrement le célèbre résultat de Valiant, Skyum, Berkowitz et Rackoff [101] en rajoutant une contrainte sur toutes les portes ×. Proposition 2.20. Soit f un polynôme homogène de degré d calculé par un circuit C˜ de taille s et défini comme dans la conclusion de la proposition 2.18. Alors f est calculé par un circuit {×, +, } homogène équilibré pour les portes ×, de taille s 6 + s 4 + 1 et de degré d. Nous présentons une preuve de ce résultat à la sous-section 3.2 vu que l’énoncé ci-dessus est légèrement différent de ceux que l’on peut trouver dans [4] ou dans [91] (les constantes sont un peu améliorées). En particulier, le circuit obtenu vérifie le résultat classique de VSBR. Corollaire 2.21 (VSBR). Soit f un polynôme de degré d calculé par un circuit de taille s. Alors f est calculé par un circuit {+, ×} de taille (sd) O(1) et de profondeur O(log(d)) où chaque porte × est de degré entrant 2 et où le degré entrant des portes + n’est pas borné. 3.2 Réduction à la VSBR Nous allons prouver ici la proposition 2.20. Soit f un polynôme homogène calculé par un circuit C˜ de taille s tel que : — le degré entrant de chaque porte + est non borné, — le degré entrant de chaque porte × est borné par 2, — C˜ est homogène. Pour commencer, nous supprimons le “calcul de constantes” (cela signifie que l’on peut supposer que toutes les portes de calculs calculent un polynôme de degré non nul). Pour faire cela, il suffit de remplacer chaque porte calculant un polynôme de degré 0 par une entrée étiquetée par la valeur constante de cette porte. Nous pouvons remarquer que par homogénéité, les entrées constantes ne peuvent être des arguments d’une porte +. De plus, pour chaque porte × dont une entrée est une constante, nous remplaçons l’étiquette de cette porte par l’étiquette . Nous remarquons que jusque là, nous n’avons pas augmenté la taille du circuit. Ensuite, nous pouvons réordonner les entrées de chaque porte × et de façon que pour chacune de ces portes, le degré de l’argument de droite soit plus grand que le degré de l’autre argument. Après ces préparations, nous obtenons alors un circuit C1 de taille au plus s. 303. BORNES SUPÉRIEURES POUR CIRCUITS HOMOGÈNES Nous rappellons que la définition des arbres monomiaux (en anglais “parse tree”) a été donnée dans l’introduction. Définissons maintenant un nouveau circuit C2 qui satisfait aux critères de la proposition. Pour chaque paire de portes α et β dans C1, nous définissons la porte (α; β) dans C2 comme suit (nous verrons dans la suite comment les calculer) : — Si β est une feuille, alors [(α; β)] équivaut à la somme des arbres monomiaux enracinés en α tels que β apparaît dans le chemin le plus à droite (i.e., la feuille du chemin le plus à droite correspond au sommet β). — Si β n’est pas une feuille, alors [(α; β)] equivaut à la somme des arbres monomiaux enracinés en α tels que la porte β apparaît dans le chemin le plus à droite et tels que le sous-arbre au dessus de cette porte β la plus à droite est supprimé. C’est comme si nous remplacions l’occurence la plus à droite de la porte β par l’entrée 1 et que nous calculions [(α; β)] avec β = 1 une feuille. Notons ici qu’il est facile de récupérer le polynôme calculé par la porte α : [α] = X Tα arbre monomial valeur(Tα) = X l feuille de C1 X Tα arbre monomial tq la feuille du chemin le plus à droite de Tα est une copie de l valeur(Tα) = X l feuille de C1 [(α; l)]. Nous remarquons que le nombre d’arbres monomiaux peut être exponentiel mais que la somme extérieure est toujours de taille polynomiale. Montrons maintenant comment calculer les portes (α; β). — Si β n’apparait pas dans un chemin le plus à droite d’un arbre monomial enraciné en α, alors (α; β) = 0. — Dans le cas où α = β, si α est une feuille, alors (α; β) = α et sinon (α; β) = 1. — Autrement α et β sont deux portes différentes et α n’est pas une feuille. Si α est une porte +, alors [(α; β)] est simplement la somme de tous les [(α 0 ; β)], où α 0 est un fils de α. — Si α est une porte , alors un fils est une constante c et l’autre fils est une porte α 0 . Alors, (α; β) est simplement l’opération multiplication par un scalaire [(α; β)] = [(c; c)] [(α 0 ; β)]. — Si α est une porte ×. Il y a deux cas. — Premier cas : β est une feuille. Alors deg(α) > deg(β) et deg(β) ≤ 1. Sur le chemin le plus à droite finissant en β de chaque arbre monomial enraciné en α, il existe exactement une porte ×, que l’on notera γ, et son fils droit sur ce chemin γr tels que : deg(γ) > deg(α)/2 ≥ deg(γr). (2.1) Remarquons que γ n’est unique que pour un arbre monomial fixé. Réciproquement, on peut remarquer que pour chaque porte γ satisfaisant (2.1), si [(α; γ)] et [(γr; β)] ne sont pas les polynômes nuls, alors γ est sur un 31CHAPITRE 2. PROFONDEUR BORNÉE chemin le plus à droite allant de α vers β. Alors, [(α; β)] = X l feuille de C1, γ porte × vérifiant (2.1) [(α; γ)][(γl ; l)][(γr; β)]. Comme β est une feuille, deg(α; β) = deg(α). Utilisant (2.1) et le fait que nous avons préalablement réordonné les entrées des portes de multiplication de façon à ce que le degré des fils droits soit au moins aussi grand que celui des fils gauches : deg(α; γ) = deg(α) − deg(γ) < deg(α)/2 deg(γr; β) = deg(γr) ≤ deg(α)/2 deg(γl ; l) = deg(γl) ≤ deg(γr) ≤ deg(α)/2. Par conséquent, [(α; β)] est calculé par un circuit de profondeur 2 de taille au plus s 2 + 1 : une porte +, d’arité s 2 , où chaque fils est une porte × de degré entrant 3. Chaque fils de ces portes × est de degré au plus la moitié du degré de la porte ×. — Second cas : β n’est pas une feuille. Alors il existe, sur le chemin le plus à droite de chaque arbre monomial enraciné en α, une porte ×, dénoté γ, et son fils sur ce chemin γr tels que : deg(γ) ≥ (deg(α) + deg(β))/2 > deg(γr). (2.2) De même par un argument similaire : [(α; β)] = X l feuille de C1 γ porte × vérifiant (2.2) [(α; γ)][(γl ; l)][(γr; β)]. (2.3) On utilise alors (2.2) : deg(α; β) = deg(α) − deg(β) deg(α; γ) = deg(α) − deg(γ) ≤(deg(α) − deg(β))/2 deg(γr; β) = deg(γr) − deg(β) <(deg(α) − deg(β))/2. Le problème est ici que le degré de (γl ; l) pourrait être plus grand que (deg(α) − deg(β))/2. La porte α est une porte × et son fils gauche est de degré non constant (sinon α serait une porte ). Donc, deg(α; β) > deg(γl ; l). Si γl est de degré au plus 1 (et donc exactement 1 car γ n’est pas une porte ), alors (α; β) est de degré au moins 2. Le calcul de la porte (α; β) par la formule (2.3) marche (i.e., le degré de (γl ; l) est plus petit que la moitié du degré de (α; β)). Enfin sinon, le degré de γl est au moins 2 et au plus deg(α; β). Comme l est une feuille, nous pouvons appliquer le premier cas à la porte γl (même si γl n’est pas une porte ×). Il existe encore sur chaque chemin le plus à droite finissant en l et enracinés en γl une porte ×, notée µ, et son fils µr sur ce chemin tels : deg(µ) > deg(γl)/2 ≥ deg(µr). (2.4) 323. BORNES SUPÉRIEURES POUR CIRCUITS HOMOGÈNES Alors, [(γl ; l)] = X l2 feuille de C1 µ porte × vérifiant (2.4) [(γl ; µ)][(µl ; l2)][(µr; l)]. Ainsi, [(α; β)] = X l,l2,γ,µ [(α; γ)][(γr; β)][(γl ; µ)][(µl ; l2)][(µr; l)] (2.5) où la somme est prise sur toutes les feuilles l, l2 de C1, toutes les portes ×, notées γ, vérifiant (2.2) et toutes les portes ×, notées µ vérifiant (2.4). Les degrés des portes (γl ; µ), (µl ; l2) et (µr; l1) sont bornés par la moitié du degré de γl . Donc, [(α; β)] est calculé par un circuit de profondeur 2 de taille s 4 + 1. Les portes × sont de degré entrant borné par 5 et le degré de leurs enfants est borné par la moitié de leur degré. En conclusion, pour chaque couple de portes α et β dans C1, la porte (α; β) est calculée dans C2 par un sous-circuit de taille au plus s 4 + 1. À la fin, nous obtenons un circuit de taille au plus s 6 + s 2 qui calcule toutes les portes (α; β). Finalement, f est calculé par un circuit de taille s 6 + s 2 + 1. Cela prouve la proposition. 3.3 Réduction à une profondeur bornée constante Nous allons prouver ici le théorème 2.15. Pour réaliser la réduction à la profondeur quatre, Koiran [60] commence par transformer le circuit considéré en un programme à branchements équivalent. Ensuite, il parallélise ce programme à branchements, et finalement revient à un circuit. Le problème avec cette stratégie est que la transformation des circuits aux programmes à branchements nécessite une augmentation de la taille de notre objet. Si le circuit est de taille s, le nouveau programme à branchements sera de taille s log(d) . L’approche, ici, est de directement paralléliser le circuit, et d’éviter ainsi l’augmentation de la taille due au passage aux programmes à branchements. L’idée de la preuve pour paralléliser un circuit à la profondeur 4 est de diviser le circuit en deux parties : les portes de degré moins que √ d et les portes de degré plus grand. Un circuit tel que le degré de chacune de ses portes est borné par √ d calcule un polynôme de degré √ d et peut donc être écrit comme une somme d’au plus s O( √ d) monômes. Ainsi, si chaque partie de notre circuit calcule des polynômes de degré borné par √ d, il suffit d’obtenir les circuits de profondeur 2 pour chacune des parties, et de les reconnecter ensemble. La principale difficulté vient du fait qu’il n’est toujours vrai que le sous-circuit obtenu par les portes de degré plus grand que √ d est de degré inférieur à √ d. Par exemple, dans le cas du graphe “peigne” avec n − 1 portes × et n variables d’entrée : x1 · (x2 · (x3 · (. . .))) le degré de la première partie est √ n, alors que le degré de la seconde est n − √ n. En fait, nous montrerons que ce problème ne peut pas se présenter si on travaille 33CHAPITRE 2. PROFONDEUR BORNÉE avec des circuits équilibrés pour les portes ×. Dans ce cas, les deux parties auront un degré borné par √ d. Bien que la profondeur quatre soit probablement le cas le plus important de notre réduction, nous allons directement traiter un cas plus général, celui de la profondeur 2p. Lemme 2.22. Soient p ≥ 2 un entier et f un polynôme homogène n-varié, de degré d et calculé par un circuit de portes {×, +, } noté C, homogène, équilibré pour les portes × et de taille σ. Si d1, d2, . . . , dp sont p réels strictement positifs tels que d = d1d2 . . . dp, alors f est calculé par un circuit de profondeur 2p de la forme X [15 Y X dp] [15 Y dp−1] · · ·X [15 Y X d2] Y [d1] homogène de taille σ + σ n+d1 d1  + σ+15dp 15dp  + σ Pp−1 i=2 σ+15di 15di  . Pour obtenir des expressions plus agréables, nous utiliserons l’approximation suivante, conséquence de la formule de Stirling : (On peut trouver une preuve dans [4]) Lemme 2.23.  k + l l  = 2O(l+l log k l ) Voyons pour commencer comment le lemme 2.22 implique le théorème 2.15. Preuve du théorème 2.15. Soit f un polynôme n-varié de degré d calculé par un circuit de taille s. Soit C˜ le circuit homogène obtenu alors pour le polynôme f par la proposition 2.18. Le circuit C˜ est de taille t = s(d + 1)2 et calcule tous les polynômes f0, . . . , fd où fi est la composante homogène de f de degré i. Ainsi, grâce à la proposition 2.20, pour chaque i ≤ d, il existe un circuit C1 de portes {+, ×, } équilibré pour les portes × de taille σ = t 6+t 4+1 calculant fi . Utilisons maintenant le lemme 2.22 pour le circuit C1 avec d1 = d 1/p log(p−1)/p σ log(p−1)/p n et d2 = . . . = dp = d 1/p log1/p n log1/p σ . Ces valeurs satisfient bien que d1d2 . . . dp = d. Ainsi, le lemme 2.23 fournit un circuit P Q[O(α)] · · ·P Q[O(α)] P Q[β] homogène, de profondeur 2p et de taille σ + σ  n + d1 d1  +  σ + 15dp 15dp  + σ X p−1 i=2  σ + 15di 15di  = 2O(d 1/p log(p−1)/p σ log1/p n) en choisissant α = d 1/p log1/p n log1/p σ et β = d 1/p log(p−1)/p σ log(p−1)/p n . À la fin, il suffit d’additionner ensemble les différentes composantes homogènes fi . Comme σ = O(s 6d 12), cela donne une borne supérieure de 2 O(d 1/p log(p−1)/p(ds) log1/p n) pour la taille. Il suffit alors de prouver le lemme 2.22 pour achever la preuve. 343. BORNES SUPÉRIEURES POUR CIRCUITS HOMOGÈNES Preuve du lemme 2.22. Posons (Di)1≤i≤p la suite des produits partiels des (di). Plus précisément, pour i ≤ p, nous posons Di = Qi j=1 dj . En outre, Dp = d. Définissons C1, C2, . . . , Cp, p sous-circuits de C, comme suit. C1 est le sous-circuit de C que nous obtenons en gardant seulement les portes de C de degré ≤ d1. Puis pour i entre 2 et p, le circuit Ci est constitué non seulement des portes dont le degré est strictement supérieur à Di−1 et inférieur à Di mais aussi des entrées de ces portes. Ces entrées sont les seules portes qui appartiennent à la fois à plusieurs Ci . Chaque porte α de C1 a degré au plus d1, donc calcule un polynôme de degré au plus d1. Par homogénéité de C, le polynôme calculé en α est homogène. Par conséquent, α est une somme homogène d’au plus n+d1 d1  monômes, et ainsi, peut être calculé par un circuit de profondeur deux homogène et de taille 1 + n+d1 d1  + n (le “1” encode la porte +, le “n” les portes d’entrées, et le reste tient pour les portes ×). Nous allons montrer que pour i ≥ 2, le degré de Ci est borné par 15di . Fixons ainsi un tel i. Soit δ le degré de Ci (défini par rapport aux entrées de Ci ). Il existe un monôme m de degré δ dans Ci . Soit T un arbre monomial calculant m. Remarquons qu’une porte de Ci peut à la fois apparaître dans beaucoup d’arbres monomiaux, mais aussi apparaître plusieurs fois dans un même arbre monomial. Nous partitionnons l’ensemble des portes × de T en 3 ensembles : — G0 = {α ∈ T | α est une porte × et tous les fils de α sont des feuilles de T} — G1 = {α ∈ T | α porte × et exactement un fils de α n’est pas une feuille} — G2 = {α ∈ T | α porte × et au moins deux fils de α ne sont pas des feuilles}. Alors, si nous considérons le sous-arbre S de T où toutes les portes de S sont exactement les portes de T qui n’apparaissent dans aucun des Cj avec j < i, alors G0 correspond exactement aux feuilles de S, G1 correspond aux sommets internes de degré entrant 1 et G2 aux sommets internes de degré entrant au moins 2. La preuve se fait en deux parties. Nous allons commencer par borner supérieurement la taille des ensembles G0, G1 et G2. Puis, nous bornerons le degré de m. Dans C, d’après le lemme 1.9, le degré de m est au moins la somme des degrés des portes de G0 (car deux de ces portes ne peuvent pas appartenir à un même chemin). Chacune de ces portes est dans Ci , donc est de degré au moins Di−1 dans C. Comme m est de degré au plus Di dans C, cela signifie que le nombre de portes dans G0 est au plus Di Di−1 = di . Dans C, nous savons encore grâce au lemme 1.9 que le degré de m est au moins la somme des degrés des feuilles de Ci qui sont directement reliées à une porte de G1. Pour chaque porte α de G1, exactement une de ses entrées β est dans Ci , donc de degré au moins Di−1 dans C. Par la proposition 2.20, le degré de α est au moins deux fois le degré de β, cela implique que la somme des degrés dans C des fils de α qui sont des feuilles de T est aussi au moins Di−1. Ainsi, le nombre de sommets de G1 est au plus di . Enfin, dans un arbre, le nombre de feuilles étant plus grand que le nombre de sommets de degré entrant au moins 2, nous pouvons en déduire que dans S : |G2| ≤ |G0| ≤ di . Dans Ci , le degré du monôme m est le nombre de feuilles non étiquetées par une constante dans l’arbre T. Il suffit de mettre en correspondance chaque feuille 35CHAPITRE 2. PROFONDEUR BORNÉE avec la plus proche porte × qui lui est reliée. Comme dans T, le degré entrant des portes × est borné par 5, celui des portes + est borné par 1 et chaque porte ne rajoute qu’une entrée constante, nous en déduisons que le nombre de feuilles, non constantes, relié à une même porte × est au plus 5. D’où le nombre de feuilles dans T est au plus 5 × (|G0| + |G1| + |G2|) ≤ 15di . Ceci prouve que le degré de Ci est au plus 15di . Le nombre d’entrées de Ci est borné par le nombre de portes de C (qui est σ). Ainsi pour chaque porte α de Ci , il existe un circuit de profondeur 2 de type P Q qui calcule [α], avec pour entrées des portes dans Cj (avec j < i) et utilisant σ+15di 15di  portes de multiplication. Posons σi le nombre de portes internes dans Ci . En particulier, σ = n + Pp i=1 σi . Ainsi, le polynôme f peut être calculé par un circuit homogène X [15 Y X dp] [15 Y dp−1] · · ·X [15 Y X d2] Y [d1] de profondeur 2p et de taille 1 +  σ + 15dp 15dp  + "X p−1 i=2 σi  1 +  σ + 15di 15di # + σ1 + σ1  n + d1 d1  + n ≤ σ + σ  n + d1 d1  +  σ + 15dp 15dp  + σ X p−1 i=2  σ + 15di 15di  . 4 Bornes supérieures pour circuits non homogènes Koiran [60] prouve une borne en 2 √ d log2 (s) pour la réduction des circuits à la profondeur 4. Dans leur article [45], Gupta, Kamath, Kayal et Saptharishi affinent cette borne et obtiennent 2 O( √ d log n log s log d) . De plus, ils utilisent cette borne pour montrer que : Proposition 2.24 (Théorème 1.1 dans [45]). Soit f(x) ∈ Q[x1, . . . , xn] un polynôme à n variables, de degré d = n O(1) calculé par un circuit arithmétique de taille s. Alors, il peut aussi être calculé par un circuit P QP de taille 2 O( √ d log n log s log d) où les coefficients sont des éléments de Q. En fait leur preuve est divisée en trois parties. Premièrement, ils transforment les ciruits généraux en circuits homogènes de profondeur 4. Puis ils transforment ces circuits de profondeur 4 en circuits de profondeur 5 utilisant seulement des portes d’addition et d’exponentiation. Pour faire cela, ils utilisent la formule de Fisher [30]. Lemme 2.25 (Rappel de la formule de Fischer, lemme 2.5). Pour tout n, le monôme x1 . . . xn peut être exprimé comme une combinaison linéaire de 2 n−1 puissances de formes linéaires. x1x2 . . . xn = 1 2 n−1n! X r2,...,rn∈{±1}n−1 x1 + Xn i=2 rixi !n · (−1)p(r) 364. BORNES SUPÉRIEURES POUR CIRCUITS NON HOMOGÈNES où p(r) = |{i | ri = −1}|. Ainsi, un produit Qn i=1 xi peut être transformé en une somme de puissances de sommes : 2 Xn−1 i=1 ^ [n] Xn j=1 yi,j où les yi,j valent ±xj . L’idée d’utiliser la formule de Fisher pour transformer un produit en somme de puissances provient de [45]. D’autres utilisations récentes de cette formule dans le cas de la complexité des circuits arithmétiques peuvent être trouvées dans [45, 55]. Enfin, ils transforment ces derniers circuits en circuits de profondeur 3. L’outil principal ici est l’astuce de dualité de Saxena [89]. Reformulant cette astuce combinée aux lemmes 4.7 à 4.9 de [45], on obtient : Lemme 2.26. Soit f un polynôme de la forme V[d] P[m] P[b] dans Q[X]. Alors f peut être écrit de la forme [O(m2 b 2d 4 X )] [mbd Y ] (Xi,j + Ci,j ) où Xi,j est une coordonnée de X et Ci,j est une constante dans Q. Utiliser le théorème 2.16 au lieu du théorème 4.1 dans leur article améliore la première partie de leur preuve. Cela donne une petite amélioration au théorème 1.1 de [45] : Corollaire 2.27. Soit f(x) ∈ Q[x1, . . . , xn] un polynôme à n variables de degré d = n O(1) calculé par un circuit arithmétique de taille s. Alors il peut aussi être calculé par un circuit P QP de taille 2 O( √ d log n log s) où les coefficients sont dans Q. En fait, de même que lors de la section précédente, ces résultats se généralisent facilement à toute profondeur bornée. Théorème 2.28. Soient p ≥ 2 et f(x) ∈ Q[x1, . . . , xn] un polynôme à n variables de degré d calculé par un circuit arithmétique de taille s. Alors f est calculable par un circuit de profondeur p de taille 2 O(d 1/(p−1) log ds) où les coefficients sont dans Q. Démonstration. Si p = 2, alors il va être suffisant de réécrire ce polynôme comme une somme de monômes. Vu qu’il est de degré au plus d, il a au plus n+d n  monômes, ce qui est plus petit que s d . Si p est impair et supérieur à deux. Posons p = 2q + 1. Si q = 1, il s’agit du cas de la profondeur 3. Réduisons f à un circuit de profondeur 4q grâce au théorème 2.16. Nous obtenons C un circuit P Q[O(α)] · · ·P Q[O(α)] P Q[α] de profondeur 4q et de taille t = 2O(d 1/2q log(ds)) avec α = d 1/(2q) . Appliquons le lemme 2.25 relatif à la formule de Fischer pour chaque niveau de multiplications pour obtenir un circuit P V[O(α)] · · ·P V[O(α)] P V[α] P de profondeur 4q+1 et de taille au plus t 2 . Il y a en fait, intercalés, 2q + 1 niveaux de portes d’addition et 2q niveaux de portes d’exponentiation. Groupons les niveaux d’exponentiation deux par deux, nous obtenons un 37CHAPITRE 2. PROFONDEUR BORNÉE circuit de la forme P( VP V) P· · ·P( VP V) P avec q parenthèses. Remplaçons finalement ces parenthèses par des sommes de produits de sommes comme dans le lemme 2.26. Nous obtenons un circuit P Q · · · QP de profondeur 2q + 1 de taille polynomiale en t = 2O(d 1/(p−1) log(ds)) et où les portes de multiplication sont aussi de degré polynomial en t. Si p = 2q est un entier pair plus grand que trois, nous allons faire la même chose à part que nous n’allons pas toucher au dernier niveau de multiplication. Nous ré- duisons le circuit à la profondeur 4q − 2. Le circuit est de la forme P Q · · ·P Q avec 2q − 1 niveaux de portes d’addition ainsi que 2q − 1 niveaux de multiplication. Nous allons transformer les 2q − 2 derniers niveaux de multiplications (i.e. du côté de la sortie du circuit) en niveaux d’exponentiation. On obtient un circuit de la forme P V · · ·P VP Q avec 2q − 2 niveaux d’exponentiations. De même que pour le cas impair, il suffit alors de grouper les niveaux d’exponentiations par deux et de transformer les VP V en P QP pour obtenir un circuit P Q · · ·P Q de profondeur 2q et de taille 2 O(d 1/(2q−1) log(ds)). Ce qui prouve le résultat. On peut ainsi découvrir une autre réduction à la profondeur quatre, utilisant des portes intermédiaires calculant de très hauts degrés. Ce résultat met en évidence la nécessité des contraintes d’homogénéité des polynômes ou de bornes sur les degrés entrants des portes de multiplication dans les propositions 2.10, 2.12 et 2.13. Corollaire 2.29. Soit f(x) ∈ Q[x1, . . . , xn] un polynôme à n variables de degré d calculé par un circuit arithmétique de taille s. Alors il peut aussi être calculé par un circuit P QP Q de taille 2 O(d 1/3 log s) où les coefficients sont dans Q. Par conséquent les polynômes Detn et IMMn,d possèdent des circuits P QP Q de taille respective n O( √3 n) et n O( √3 d) . De plus, si tout circuit de type P QP Q pour le langage Permn nécéssite une taille d’au moins n ω( √3 n) , alors VP 6= VNP. 38Chapitre 3 De l’hypothèse de Valiant aux τ -conjectures En 1995, Shub et Smale [92] ont trouvé un lien entre la complexité des polynômes univariés à coefficients entiers et la question PC vs. NPC dans le modèle de BlumShub-Smale sur C. Nous ne détaillerons pas ici les classes citées ci-dessus vu que nous ne les utiliserons pas. Le lecteur intéressé pourra se référer par exemple à l’article où elles sont introduites [15] ou à la référence [13]. Pour un polynôme à coefficients entiers f ∈ Z[X1, . . . , Xn], nous rappellons que la τ -complexité de f notée τ (f) correspond à la taille du plus petit circuit calculant f, de portes {+, ×, −} et utilisant seulement la constante 1. La τ -conjecture, introduite par Shub et Smale [92] est : Conjecture 3.1 (τ -conjecture). Il existe une constante universelle c > 0 telle que pour tout polynôme univarié f ∈ Z[X], ZZ(f) ≤ (1 + τ (f))c où ZZ(f) correspond au nombre de racines entières distinctes de f. Shub et Smale ont prouvé dans le même article que cette conjecture impliquait PC 6= NPC. La résolution de la τ -conjecture apparaît sous le titre “Integer zeros of a polynomial of one variable” comme le quatrième problème de la liste de Smale [93] des plus importants problèmes pour les mathématiciens du XXIème siècle. Toutefois, cette conjecture reste complètement ouverte. Une autre implication importante de cette conjecture a été mise en évidence par Bürgisser [21]. Il montre que la τ -conjecture implique aussi que le permanent n’admet pas de circuits arithmétiques sans constantes de taille polynomiale, et donc en particulier que VP0 6= VNP0 . Un des obstacles aux avancées sur cette conjecture vient du fait que l’on cherche des racines entières. Cependant cette contrainte est nécessaire car la conjecture devient fausse dans le cas des racines réelles. C’est le cas pour les polynômes de Tchebychev. Ces polynômes Tn de degré n sont définis sur l’intervalle [−1, 1] par la relation Tn(cos θ) = cos(nθ). Le polynôme Tn a n racines réelles simples, mais est calculé par un circuit de taille O(log n). Un autre exemple de polynômes avec beaucoup de racines réelles a été trouvé plus tôt par Borodin et Cook [18]. Certains rapprochements entre des bornes inférieurs en complexité et des bornes supérieures sur le nombre de racines réelles avaient déjà été trouvés dans [18, 39, 87]. 39CHAPITRE 3. VARIANTES DE LA τ -CONJECTURE Toutefois, Koiran [61] réussit à renforcer l’hypothèse pour que la borne tienne pour les racines réelles tout en conservant l’implication de VP0 6= VNP0 . Il définit la conjecture suivante : Conjecture 3.2 (τ -conjecture réelle). Il existe une constante universelle c > 0 telle que pour tous paramètres entiers positifs k, m et t et tout polynôme univarié f ∈ Z[X] de la forme f(X) = X k i=1 Ym j=1 fi,j (X) avec fi,j des polynômes t-creux, on a ZR(f) ≤ (1 + k + m + t) c où ZR(f) correspond au nombre de racines réelles distinctes de f. On rappelle que les polynômes t-creux, introduits au chapitre 1 désignent les polynômes ayant au plus t monômes dans leur forme développée. Koiran montre [61] : Théorème 3.3. Si la τ -conjecture réelle est avérée, alors le permanent n’admet pas de circuits arithmétiques sans constantes de taille polynomiale, c’est-à-dire τ (Permn) = n omega(1) . Un des arguments en faveur de cette version réelle de la τ -conjecture est sa similarité avec l’estimation de Descartes. Lemme 3.4 (Estimation de Descartes). Soit f = Pt i=1 aix αi un polynôme tel que α1 < α2 < . . . < αt et ai sont des réels non nuls. Alors le nombre de racines réelles strictement positives de f, compté avec multiplicité, est borné par t − 1. De plus, le résultat tient encore dans le cas où les exposants sont réels. Cette estimation découle directement d’un résultat classique, la règle des signes de Descartes : Lemme 3.5 (Règle des signes). Soit f = Pt i=1 aix αi un polynôme tel que α1 < α2 < . . . < αt et ai sont des réels non nuls. Soit N le nombre de changements de signes dans la suite (a1, . . . , at). Alors le nombre de racines réelles strictement positives de f, compté avec multiplicité, est borné par N. En particulier, le cas k = 1 de la τ -conjecture réelle est vérifié. Comme chaque fi,j (X) a au plus 2t − 1 racines réelles, on obtient si k = 1 : ZR(f) ≤ 2(t − 1)m + 1. A contrario, la meilleure borne supérieure connue pour la conjecture 3.2 est (2ktm − 1). Pour obtenir cette borne, il suffit de développer f en somme de ktm monômes et d’utiliser encore l’estimation de Descartes. Dans ce chapitre, nous étudierons premièrement comment obtenir des bornes inférieures à partir d’une variante de la τ -conjecture. Ainsi, nous pourrons alors dériver de nouvelles variantes de cette conjecture impliquant encore des bornes inférieures pour les circuits arithmétiques. 401. TRANSFERT DE BORNES INFÉRIEURES 1 Des bornes sur la taille du permanent aux bornes sur le nombre de racines Nous montrons dans cette section la preuve du théorème 3.3. La raison étant que nous cherchons à comprendre ce transfert de bornes inférieures dans le but d’énoncer d’autres variantes de cette τ -conjecture réelle. Nous allons devoir commencer par présenter quelques outils. La plupart viennent de l’article [21]. 1.1 Quelques définitions de classes booléennes Dans la suite, nous voudrons considérer des polynômes de la classe VNP0 . Or pour trouver de tels polynômes, le critère de Valiant (proposition 3.10) – exposé un peu plus loin – nécessite que les coefficients des polynômes considérés soient calculables dans la classe GapP/poly. Ainsi, nous commençons par exposer ici quelques définitions classiques de classes booléennes. Il va s’agir essentiellement de classes de comptage. Rappelons la définition des deux classes de comptage #P et GapP. Définition 3.6. La classe #P est l’ensemble de fonctions f : {0, 1} ? → N tel qu’il existe un langage A ∈ P et un polynôme p(n) satisfiant : f(x) = |{y ∈ {0, 1} p(|x|) | (x, y) ∈ A}|. Une fonction f : {0, 1} ? → Z est dans GapP si elle correspond à une différence de deux fonctions dans #P. Définissons maintenant la hiérarchie de comptage. Un lien entre la hiérarchie de comptage et la théorie de la complexité algébrique a été mis en évidence dans [5]. Ce lien a été approfondi dans [21] et [63]. Par exemple, dans [21], Bürgisser montre que les polynômes Q2 n i=1(X − i) ont des circuits de taille polynomiale s’il en est de même pour la famille du permanent. La hiérarchie de comptage définie dans [103] est une classe de langages plutôt que de fonctions. Elle est définie à partir de l’opérateur de majorité C comme suit. Définition 3.7. Si K est une classe de complexité, alors la classe C · K correspond à l’ensemble de langages A tels qu’il existe un langage B ∈ K et un polynôme p(n) satisfiant x ∈ A ⇔ |{y ∈ {0, 1} p(|x|) | (x, y) ∈ B}| ≥ 2 p(|x|)−1 . Le i ème niveau CiP de la hiérarchie de comptage est défimi récursivement par C0P = P et Ci+1P = C · CiP. La hiérarchie de comptage CH est l’union de tous les CiP pour i ≥ 0. Situons la hiérarchie de comptage parmi les autres classes booléennes classiques. Elle contient toute la hiérarchie polynomiale PH et est contenue dans PSPACE (des définitions et beaucoup d’informations sur ces dernières classes peuvent être trouvées dans [7, 37, 79, 82]). Les classes de circuits arithmétiques que nous considérons sont non uniformes. Par conséquent nous travaillerons en fait avec des versions non uniformes des classes de comptage définies ci-dessus. Nous utilisons la notation standard de Karp et Lipton [54] : 41CHAPITRE 3. VARIANTES DE LA τ -CONJECTURE Définition 3.8. Si K est une classe de complexité, la classe K/poly est l’ensemble des langages A tels qu’il existe un langage B ∈ K, un polynôme p(n) et une famille (an)n≥0 de mots (les conseils) satisfiant — pour tout n ≥ 0, |an| ≤ p(n) — et pour tout mot x, x ∈ A ⇔ (x, a|x|) ∈ B. Remarquons que les conseils an dépendent seulement de la taille de x. 1.2 Les polynômes définissables Comme mentionné en début de ce chapitre, nous aurons besoin de manipuler ici les classes de la théorie de Valiant. Nous renvoyons le lecteur au premier chapitre pour les définitions des différentes classes de complexité ou au livre de Bürgisser [19]. Dans le prochain lemme, prouvé dans [21], l’auteur montre un premier lien entre la complexité arithmétique et la hiérarchie de comptage. Lemme 3.9. Si Permn est dans VP0 alors CH/poly = P/poly. En particulier, ce lemme a été utilisé dans le même article pour montrer que les sommes et produits exponentiels sont calculables dans la hiérarchie de comptage. Le résultat suivant a été démontré par Valiant [99]. La formulation provient en fait de l’article de Koiran [62]. Proposition 3.10 (Critère de Valiant). Supposons que n 7→ p(n) soit une fonction polynomialement bornée et que f : N × N → Z est telle que la fonction 1 n#j 7→ f(j, n) soit dans la classe de complexité GapP/poly (où 1 n#j correspond à la concaténation du mot “n” écrit en unaire, du caractère # et du mot “j” écrit en binaire). Alors la famille (fn) de polynômes multilinéaires définie par fn(X1, . . . , Xp(n)) = X j∈{0,1} p(n) f(j, n)X j1 1 · · · X jp(n) p(n) est dans VNP0 . L’exposant jk correspond au bit de j de poids 2 k−1 . Remarquons que n est codé en unaire alors que j est codé en binaire. Remarquons aussi que dans la proposition précédente, la classe booléenne utilisée est GapP/poly une classe de fonctions. Or il est souvent plus aisé de travailler avec des langages. C’est pourquoi, nous allons définir maintenant la notion de définissabilité d’un polynôme. Les paragraphes suivants sont directement tirés de l’article de Koiran et Périfel [63] qui est lui-même basé sur [21]. On va être amené à introduire une notion de complexité des suites d’entiers. Dans le but d’éviter de traiter les signes séparément, nous suivons ce qui est fait dans [63], ie. nous supposons que nous pouvons retrouver le signe dans l’encodage des entiers. Par exemple, le premier bit code le signe et les suivants, la valeur absolue de l’entier considéré. Définition 3.11. Une suite d’entiers de taille exponentielle est une suite d’entiers a(n, α1, . . . , αk) telle qu’il existe deux polynômes p(n) et q(n) satisfaisant : — le paramètre k, dépendant de n, vérifie k ≤ p(n), 421. TRANSFERT DE BORNES INFÉRIEURES — a(n, α1, . . . , αk) est défini pour n, α1, . . . , αk ∈ N avec 0 ≤ αi < 2 p(n) pour tout 1 ≤ i ≤ k, — pour tout n ≥ 1 et tous α1, . . . , αk < 2 p(n) , la taille de l’encodage binaire de a(n, α1, . . . , αk) est inférieure à 2 q(n) . On définit à partir de a(n, α1, . . . , αk) le langage suivant : Bit(a) = {(1n#α1, . . . , αk, j) | le j ème bit de a(n, α) est 1}. Attention, dans la définition analogue de Bürgisser [21], l’entier n est codé en binaire. Définition 3.12. Une suite d’entiers a(n, α) de taille exponentielle est dite définissable dans la classe K si le langage Bit(a) est dans K. Une suite de polynômes fn(X1, . . . , Xk) = P α a(n, α)Xα est dite définissable dans K si sa suite de coefficient a est de taille exponentielle et définissable dans K. Dans la suite, nous considérerons essentiellement des polynômes définissables dans P/poly ou dans CH/poly. La seconde classe est assez large et englobe de nombreux polynômes classiques, comme par exemple, le polynôme de PochhammerWilkinson. Le résultat suivant, prouvé dans [21] est très utile pour montrer qu’une suite est dans cette classe. Théorème 3.13. Soient p(n) un polynôme et (a(n, α))αi<2 p(n) une suite définissable dans CH/poly. Considérons les suites b(n) = X α a(n, α) et d(n) = Y α a(n, α). Alors (b(n)) et (d(n)) sont définissables dans CH/poly. Supposons que (s(n)) et (t(n)) soient définissables dans CH/poly. Alors la suite des produits (s(n)t(n)), ainsi que si t(n) > 0 la suite des quotients ds(n)/t(n)e, sont définissables dans CH/poly. En fait, comme mentionné précédemment, Bürgisser utilise une notation binaire pour n. Le résultat précédent est une simple “mise à l’échelle” du résultat qui peut être trouvé dans [21] (poser a 0 (2p(n) , α) = a(n, α)). Dans [63], les auteurs définissent une autre caractérisation des polynômes : Définition 3.14. Soit (fn(X1, . . . , Xk)) une famille de polynômes à coefficients entiers. Nous disons que (fn) peut être évaluée dans K aux points entiers si les conditions suivantes sont vérifiées pour un certain polynôme p : — le paramètre k est polynomialement borné en n, — le degré de fn ainsi que la taille binaire de ses coefficients sont bornés par 2 p(n) , — le langage {(1n#i1, . . . , ik, j) | 0 ≤ i1, . . . , ik ≤ 2 p(n) et le j ème bit de fn(i1, . . . , ik) est 1} est dans K, où les entiers i1, . . . , ik, j sont donnés en binaire. Le résultat suivant est énoncé (et prouvé) dans le théorème principal (Theorem 3.5) de [63] : 43CHAPITRE 3. VARIANTES DE LA τ -CONJECTURE Théorème 3.15. Si (fn) est une suite de polynômes qui peut être évaluée dans CH/poly aux points entiers, alors (fn) est définissable dans CH/poly. Nous avons tous les résultats pour montrer, par exemple, que la suite des polynômes Un(X, Y ) = Q2 n i=1(Xi + Y ) est définissable dans CH/poly. Les suites s1(n, x, y, i, j) = y et s2(n, x, y, i, j) = (σi,j )1≤x,y,i,j≤2n où σi,j = ( x si j ≤ i 1 sinon, sont par définition définissables dans CH/poly. Par le théorème 3.13, c’est aussi le cas pour la suite t(n, x, y, i) = (x i + y)1≤x,y,i≤2n = y + 2 Yn j=1 σi,j! , ainsi que pour la suite u(n, x, y) = 2 Yn i=1 (x i + y) ! 1≤x,y≤2n . Donc Un(X, Y ) peut être évalué dans CH/poly aux points entiers, ce qui par le théorème 3.15, montre que les polynômes Un sont définissables dans CH/poly. La même preuve marche pour les autres polynômes suivants : Lemme 3.16. Les polynômes suivants PWn(X) = 2 Yn i=1 (X − i), PW− n (X) = 2 Yn i=1 (X + i), Tn(X) = 2 Yn i=1 (X − 1), et Un(X, Y ) = 2 Yn i=1 (X i + Y ) sont tous définissables dans CH/poly. Le cas des polynômes de Pochhammer-Wilkinson (PWn) était déjà établi dans l’article de Bürgisser [21]. Il prouve même que ces polynômes sont en fait définissables dans CH. 1.3 Preuve du théorème 3.3 Dans la suite de ce chapitre, nous utiliserons le résultat de complétude du permanent (théorème 1.26). C’est pourquoi, nous fixons un corps K de caractéristique nulle dans lequel travailler. Les circuits utiliseront comme constantes les éléments de K. En particulier, les résultats sont souvent utilisés et cités dans le cas où K = Q. Nous allons prouver dans cette sous-section le théorème 3.3 mentionné en début de ce chapitre. L’idée de la preuve est similaire à celle que l’on peut trouver dans l’article original [61] sauf que le découpage de la preuve est différent. En fait, nous avons voulu extraire ici la proposition 3.17 implicite dans la preuve originale, pour 441. TRANSFERT DE BORNES INFÉRIEURES pouvoir dans la suite, obtenir des variantes du théorème 3.3. Cette sous-section correspond donc aux lemme 3, théorèmes 6 et 7 et proposition 2 de l’article [61], bien que le découpage ainsi que les notations aient changés. Nous voulons extraire la proposition suivante : Proposition 3.17. Soit p un polynôme et soit (fn) une suite de polynômes entiers de Z[X1, . . . , Xp(n) ] définissables dans P/poly, de degré maximal en chaque variable 2 d − 1 et tels que la valeur absolue des coefficients soit bornée par 2 2 r − 1 avec r, d = n O(1) . Si Permn est calculé par une suite de circuits Cn, alors il existe un polynôme q et une projection Dn du circuit Cq(n) tel que fn peut être calculé par un circuit Dn(Y1, . . . , Yk) où les Yi sont des puissances de Xji d’exposants au plus 2 d−1 et où k est un entier tel que k ≤ dp(n) + r. De plus, les circuits Dn calculent des polynômes homogènes en les Yk. Enfin, le polynôme q ne dépend que du choix de la famille de polynômes (fn). Un corollaire immédiat dans le cas où les Cn sont des circuits de taille polynomialement bornée est le suivant : Corollaire 3.18. Soit p et fn définis comme dans la proposition 3.17. Si Permn admet une suite (Cn) de circuits de taille polynomiale, alors c’est aussi le cas pour fn. Preuve du corollaire 3.18. D’après la proposition 3.17, fn est calculé par un circuit Dn(Y1, . . . , Yk) où les Yj = X αj ij pour des valeurs 1 ≤ ij ≤ p(n) et 1 ≤ αj ≤ 2 d−1 et où le circuit Dn est la projection d’un circuit Cq(n) pour un polynôme q. Donc (Dn) est une suite de circuits de taille polynomiale. De plus, les puissances X αj ij avec αj ≤ 2 d−1 peuvent être calculées par exponentiation rapide par des circuits de taille au plus 2d = n O(1). On obtient ainsi, en rebranchant les circuits, un circuit de taille polynomiale pour la famille (fn). La preuve de la proposition 3.17 est similaire à celle que l’on peut trouver dans l’article de Koiran [61]. Le fait que le nombre de variables soit p(n) et non 1 n’introduit aucune complication. Preuve de la proposition 3.17. Nous travaillerons à n fixé. Posons de plus p = p(n). Commençons par exprimer le polynôme fn sous sa forme développée (somme d’au plus 2 dp monômes) : fn(X1, . . . , Xp) = X α1,...,αp a(n, α1, . . . , αp)X α1 1 · · · X αp p . Alors développons les coefficients entiers a(n, α) en base 2 : a(n, α) = 2 Xr−1 i=0 ai(n, α)2i où ai(n, α) ∈ {0, 1}. Grâce à ces deux développements, nous obtenons fn(X) = X i,α ai(n, α)2iXα . 45CHAPITRE 3. VARIANTES DE LA τ -CONJECTURE Ce qui mène à l’égalité fn(X) = hn(X 2 0 1 , X2 1 1 , . . . , X2 d−1 1 , X2 0 2 , . . . , X2 d−1 p , 2 2 0 , 2 2 1 , . . . , 2 2 r−1 ) (3.1) où hn(x1,0, x1,1, . . . , x1,d−1, x2,0, . . . , xp,d−1, z0, z1, z2, . . . , zr−1) est le polynôme multilinéaire X i,α ai(n, α)x α1,0 1,0 x α1,1 1,1 . . . x α1,d−1 1,d−1 x α2,0 2,0 . . . x αp,d−1 p,d−1 z i0 0 z i1 1 z i2 2 . . . z ir−1 r−1 . Ici les exposants ij , αh,j correspondent aux bits des entiers i,(αh)1≤h≤p. Remarquons que hn est un polynôme multilinéaire en (dp + r) = n O(1) variables. La fonction φ : 1n#α, i 7→ ai(n, α) est une fonction à valeurs dans {0, 1} ? qui est la fonction indicatrice du langage Bit(a). Par hypothèse, ce langage est dans P/poly, donc φ ∈ GapP/poly. Par le critère de Valiant [19] (proposition 3.10), cela implique que la famille polynomiale (hn) appartient à la classe de complexité VNP0 . Comme la famille du permanent est VNP-complète et est calculée par les circuits (Cn), il existe un polynôme q tel que pour tout n, la fonction hn est calculée par Dn une projection de Cq(n) . Il suffit alors de brancher en entrée les constantes et les puissances de variables correspondantes pour obtenir un circuit pour fn du type Dn(Y1, . . . , Yk). Remarque 3.19. Nous pouvons noter que nous n’utilisons pas réellement dans la preuve le fait que les polynômes soient définissables dans P/poly. Nous avons seulement besoin que la fonction indicatrice du langage Bit(a) soit dans GapP/poly. Remarque 3.20. Notons aussi que nous autorisons les constantes du corps K pour fn comme pour le permanent. Toutefois, il est possible d’obtenir un résultat plus fin pour les constantes. Remarquons que le seul moment où des nouvelles constantes peuvent apparaître est lors de l’utilisation de la VNP-complétude du permanent. En particulier, en utilisant la proposition 1.27 du chapitre 1, on peut aussi obtenir un circuit utilisant juste les constantes de (Cn) mais calculant 2 q(n) fn pour un certain polynôme q. L’idée de Koiran est alors d’appliquer les résultats de réduction à la profondeur 4 aux circuits Dn. Proposition 3.21. Soit c un entier strictement positif fixé et soit (fn) une suite de polynômes dans Z[X1, . . . , Xc] définissables dans P/poly, de degré maximal en chaque variable 2 d − 1 et tels que la valeur absolue des coefficients soit bornée par 2 2 r−1 avec r ≤ d = n O(1) . Si Permn admet une suite de circuits Cn de taille n O(1), alors (fn) est calculé par des circuits n O( √ Xd) i=1 O( √ Y d) j=1 fi,j (X1, . . . , Xc) où les fi,j sont des polynômes n O( √ d) -creux. 462. VARIATIONS Démonstration. D’après la proposition 3.17, la famille de polynômes (fn) est calculée par des circuits de type Dn(Y1, . . . , Yk) où Dn de taille n O(1), calcule un polynôme hn multivarié d’au plus (c + 1)d = O(d) variables. D’après le théorème 2.16, il suit que les polynômes hn sont calculables par des circuits de profondeur 4 de taille 2 O( √ d log n) avec des portes de multiplication de degré entrant O( √ d). D’où (fn) est calculé par des circuits [n O( √ d) X ] [O( √ Y d)] [n O( √ d) X ] [2d √ Y d] , ie. par des circuits n O( √ Xd) i=1 O( √ Y d) j=1 fi,j (X1, . . . , Xc) où les fi,j sont des polynômes n O( √ d) -creux. On a tout ce qu’il faut pour prouver le théorème 3.3 énoncé au début du chapitre : la τ -conjecture réelle (conjecture 3.2) implique que le permanent n’admet pas de circuits sans constantes de taille polynomiale. Preuve du théorème 3.3. Montrons ce résultat par l’absurde. Supposons que le permanent est calculé par des circuits sans constantes de taille polynomiale, ie. Permn ∈ VP0 . D’après le lemme 3.9, on a CH/poly = P/poly. Donc d’après le lemme 3.16, le polynôme univarié PW(X) = Q2 n i=1(X − i) est définissable dans P/poly. Par la proposition 3.21, PW est calculé par des circuits n O( √ Xn) i=1 O( √ Yn) j=1 fi,j (X) où les fi,j sont des polynômes n O √ n) -creux. La conjecture 3.2 implique qu’il existe une constante c telle que ZR(PW) ≤ (1 + n O( √ n) ) c = 2O( √ n log(n)). Ce qui contredit le fait que ZR(PW) = 2n . Remarque 3.22. Notons qu’avec la conditon légèrement plus faible Permn ∈ VP, l’effondrement de la hiérarchie de comptage n’est connu qu’en supposant l’hypothèse de Riemann généralisée [20]. Nous verrons plus loin (théorème 3.38) comment l’éviter pour la τ -conjecture réelle. 2 Variations 2.1 Raffinement de la τ -conjecture réelle Nous pouvons déjà remarquer dans la preuve précédente (preuve du théorème 3.3) que nous avons un peu de marge sur le paramètre m. Plus précisément, en utilisant la conjecture 3.23 suivante, au lieu de la conjecture 3.2, on a encore l’inégalité ZR(PW) ≤ (1 + n O( √ n) ) c = 2O( √ n log(n)) . 47CHAPITRE 3. VARIANTES DE LA τ -CONJECTURE Conjecture 3.23 (τ -conjecture réelle). Il existe un polynôme p tel que si f(x) ∈ R[x] est un polynôme de la forme Pk i=1 Qm j=1 fi,j (x) où les polynômes fi,j sont des polynômes t-creux, alors le nombre de racines réelles distinctes de f est au plus p(kt2 m). Nous pouvons au passage noter que la borne supérieure ici ne semble plus très loin de la borne ktm que nous avons obtenue en développant le polynôme. Une autre idée pour renforcer cette conjecture est d’utiliser, comme au chapitre 2 la formule de Fisher (lemme 2.5) pour remplacer les produits par des puissances. Conjecture 3.24 (τ -conjecture réelle avec puissances). Il existe un polynôme p tel que si f(x) ∈ R[x] est un polynôme de la forme Pk i=1 f αi i (x) où les polynômes fi sont des polynômes t-creux et les puissances αi sont des entiers tels que 0 ≤ αi ≤ m, alors le nombre de racines réelles distinctes de f est au plus p(kt2 m). Ainsi, Théorème 3.25. Si la τ -conjecture réelle avec puissances est avérée, alors le permanent n’admet pas de circuits arithmétiques sans constantes de taille polynomiale, c’est-à-dire τ (Permn) = n ω(1) . En fait, pour montrer ce théorème, il est suffisant de montrer que la conjecture 3.24 implique la conjecture 3.23. Lemme 3.26. Les conjectures 3.23 et 3.24 sont équivalentes. Démonstration. La conjecture 3.23 implique directement la conjecture 3.24. Réciproquement choisissons un polynôme p qui vérifie la conjecture 3.24. Soit f un polynôme de la forme Pk i=1 Qm j=1 fi,j (x) où les polynômes fi,j sont des polynômes t-creux. Alors d’après la formule de Fisher, f peut être écrit de la forme X k i=1 2 Xm−1 j=1 Xm l=1 ˜fi,j,l!m où les ˜fi,j,l sont des polynômes t-creux. Par hypothèse, ZR(f) ≤ p(k2 m2 mmt) = (kt2 m) O(1). Ce qui prouve le lemme. 2.2 Différentes τ -conjectures Nous donnons dans la suite différentes variantes de la τ -conjecture réelle. Version adélique La pemière remarque est que nous bornons le nombre de racines réelles alors que les racines du polynôme de Pochhammer-Wilkinson sont en fait entières. En particulier, ils suffit de borner le nombre de racines sur un ensemble qui étend N. L’idée de la τ -conjecture réelle est de pouvoir utiliser le fait que R soit complet. Toutefois, R n’est pas la seule complétion de Q. Ainsi, Kaitlyn Phillipson et Maurice Rojas [83] ont introduit la τ -conjecture adélique (par rapport à la version de [83], nous lui faisons bénéficier ici des améliorations de la sous-section 2.1). 482. VARIATIONS Conjecture 3.27 (τ -conjecture adélique avec puissances). Soit L un des corps de {R, Q2, Q3, Q5, . . .} où p est premier est Qp est le corps des nombres p-adiques. Il existe un polynôme p tel que pour tout polynôme f(x) ∈ R[x] univarié, si f est de la forme Pk i=1 Vm j=1 fi,j (x) où les polynômes fi,j sont des polynômes t-creux, alors le nombre de racines distinctes de f dans L est au plus p(kt2 m). Version monotone Une autre remarque simple est que l’on aurait pu tout aussi bien utiliser dans les preuves le polynôme PW− n = Q2 n i=1(X +i) au lieu du polynôme PWn. En particulier les conjectures peuvent être reformulées dans le cas où on ne considère que des polynômes dont tous les coefficients sont positifs. On appellera de tels polynômes des polynômes à coefficients positifs. On propose alors la conjecture : Conjecture 3.28. Les propriétés suivantes sont vérifiées : — Il existe un polynôme P p tel que si f(x) ∈ R[x] est un polynôme de la forme k i=1 Qm j=1 fi,j (x) où les polynômes fi,j sont des polynômes t-creux à coeffi- cients positifs, alors le nombre de racines réelles distinctes de f est au plus p(kt2 m). — Il existe un polynôme P p tel que si f(x) ∈ R[x] est un polynôme de la forme k i=1 f αi i (x) où les polynômes fi sont des polynômes t-creux à coefficients positifs et les puissances αi sont des entiers tels que 0 ≤ αi ≤ m, alors le nombre de racines réelles distinctes de f est au plus p(kt2 m). On remarque que les deux énoncés sont en fait équivalents et que cela peut être prouvé de la même manière que pour le lemme 3.26. On montrera au chapitre 4 que cette version de la conjecture est en faite équivalente aux conjectures 3.23 et 3.24. Version avec multiplicités La τ -conjecture réelle s’appuie sur l’idée qu’une somme de produits de polynômes creux ne pourrait pas avoir un nombre exponentiel de racines distinctes. Nous pouvons cependant imaginer d’autres caractéristiques. Par exemple, considérons la multiplicité des racines non nulles au lieu du nombre de racines. La conjecture suivante a été introduite dans [48]. Conjecture 3.29. Il existe un polynôme p tel que pour tout polynôme f(x) ∈ R[x] univarié, si f est de la forme Pk i=1 Vm fi(x) où les polynômes fi sont des polynômes t-creux, alors pour toute racine complexe non nulle r de f, la multiplicité de r est bornée par p(kt2 m). La preuve que cette conjecture implique que Permn ∈/ VP0 est similaire à celle de la conjecture 3.24 mais en remplaçant les polynômes PWn par les polynômes Tn du lemme 3.16. Version combinatoire Nous pouvons même définir une version combinatoire de cette conjecture. Nous introduisons ici la notion de polygone de Newton. Plus d’informations sur le sujet pourront par exemple être trouvées dans l’article de synthèse de Sturmfels [96]. 49CHAPITRE 3. VARIANTES DE LA τ -CONJECTURE Les polytopes de Newton sont une façon géométrique de représenter la structure d’un polynôme. Par structure, il faut comprendre qu’ici seul l’ensemble des monômes présents (ie. où le coefficients correspondant est non nul) sera considéré et qu’on ne se préoccupera pas des valeurs prises par les coefficients. En particulier, les polynômes Detn et Permn correspondent au même polytope. Vis à vis des polytopes de Newton, on s’intéressera dans la suite seulement au cas particulier où les polynômes sont bivariés. On parle alors de polygone de Newton. Nous allons ainsi définir nos objets dans ce cadre là, bien que la plupart des définitions pourraient, sans difficultés, être généralisées à “n” variables. Si E est un ensemble du plan R 2 , cet ensemble est appelé convexe, si pour tout couple de points (a, b) de E 2 , le segment réel [a, b] est inclus dans E. Si C est un ensemble convexe, un point e de C est dit extrémal s’il n’appartient à aucun segment strict ]a, b[ inclus dans C. Si P est un ensemble de points du plan, l’enveloppe convexe est définie comme le plus petit ensemble convexe (au sens de l’inclusion) contenant P. On la notera conv(P). Les polygones sont les enveloppes convexes des ensembles finis de points, en particulier, ils sont convexes et exactement cactérisés par l’ensemble de leurs points extrémaux. Enfin, si E et F sont deux sous-ensembles du plan euclidien, la somme de Minkowski de E et de F désigne l’ensemble {p + q ∈ R 2 | p ∈ E ∧ q ∈ F}. Considérons un polynôme bivarié f ∈ A[X, Y ] où A est un anneau. À chacun des monômes XiY j apparaissant dans f avec un coefficient non nul, nous pouvons lui associer le point de coordonnées (i, j) du plan euclidien. Nous noterons Mon(f) cet ensemble fini de points. Par définition, le polytope de Newton de f, noté Newt(f), est l’enveloppe convexe de Mon(f) (en particulier, Newt(f) = conv(Mon(f))). Remarquons que Newt(f) a au plus t points extrémaux si f a t monômes, et donc au plus t arêtes. En 1921, Ostrowski a montré [78] que le polygone de Newton d’un produit de polynômes est la somme de Minkowski de leurs polygones de Newton (une preuve simple peut être trouvée dans [33], lemme 2.1) : Proposition 3.30 (Ostrowski). Newt(fg) = Newt(f) + Newt(g) = {p + q | p ∈ Newt(f), q ∈ Newt(g)}. Il en résulte que si f a s monômes et g a t monômes, alors Newt(fg) a au plus s P + t arêtes. Plus généralement, pour un produit f = g1g2 . . . gm, Newt(f) a au plus m i=1 ti arêtes où ti est le nombre de monômes de gi ; mais f peut bien sûr avoir jusqu’à Qm i=1 ti monômes. Le nombre d’arêtes d’un polygone de Newton est donc facilement controlable dans le cas d’un produit de polynômes. En comparaison, la situation n’est plus du tout claire pour une somme de produits. Nous proposons dans l’article [66] la conjecture suivante. Conjecture 3.31. Soit p un polynôme, si f est un polynôme de la forme f(X, Y ) = X k i=1 aifi(X, Y ) m (3.2) où ai ∈ C et les fi ont au plus t monômes, alors le nombre d’arêtes de Newt(f) est borné supérieurement par p(kt2 m). 502. VARIATIONS En développant les produits dans (3.2) nous observons que f a au plus ktm monômes, et ceci est une borne supérieure sur le nombre d’arêtes de son polygone de Newton. Dans le but d’améliorer cette borne si grossière, la principale difficulté que l’on rencontre vient du fait que la somme de taille k dans la définition de f peut créer des annulations de monômes. Ainsi, il se peut que certains sommets de Newt(f) ne correspondent à aucun des sommets des polygones de Newton des produits m j=1 fi,j (X, Y ) pour 1 ≤ j ≤ k. Nous donnons deux exemples de telles annulations ci-dessous. Nous pouvons remarquer que contrairement aux versions considérant le nombre de racines réelles (conjecture 3.28), la question ici devient très simple si tous les coefficients sont positifs. S’il n’y a pas d’annulations (par exemple, si les fi,j ont seulement des coefficients positifs) alors nous avons effectivement une borne supérieure polynomiale. Dans ce cas, Newt(f) est l’enveloppe convexe de l’union des polygones de Newton des k produits. Chacun de ces k polygones de Newton a au plus mt sommets, donc Newt(f) a au plus kmt sommets et autant d’arêtes. Exemple 3.32. Considérons les polynômes A(X, Y ) = XY + X2 + X2Y 2 + X3Y + X5Y , B(X, Y )=1+ XY 2, C(X, Y ) = −X − XY − X2Y 2 et D(X, Y ) = Y + X + X2Y + X4Y . AB point de Mon(AB) CD point de Mon(CD) Alors, AB + CD =(XY + X2 + X2 Y 2 + X3 Y + X5 Y + X2 Y 3 + X3 Y 2 + X3 Y 4 + X4 Y 3 + X6 Y 3 ) − (XY + X2 + X3 Y + X5 Y + XY 2 + X2 Y + 2X3 Y 2 + X5 Y 2 + X2 Y 3 + X4 Y 3 + X6 Y 3 ) =X2 Y 2 + X3 Y 4 − XY 2 − X2 Y − X3 Y 2 − X5 Y 2 AB + CD AB AB + CD CD point de Mon(AB + CD) Les deux points bleus (“rectangles”) apparaissent dans l’enveloppe convexe de Mon(AB+ CD), mais ni dans celle de Mon(AB), ni dans celle de Mon(CD). Exemple 3.33. Posons f(X, Y )=1+ X2Y + Y 2X, g(X, Y )=1+ X4Y + XY 4 et considérons Mon(fg − 1). 51 Positionnement robuste et pr´ecis de r´eseaux dimages. Pierre Moulon To cite this version: Pierre Moulon. Positionnement robuste et pr´ecis de r´eseaux dimages.. Signal and Image Processing. Universit´e Paris-Est, 2014. French. HAL Id: tel-00996935 https://tel.archives-ouvertes.fr/tel-00996935 Submitted on 27 May 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.École Doctorale Paris-Est Mathématiques & Sciences et Technologies de l’Information et de la Communication THÈSE DE DOCTORAT DE L’UNIVERSITÉ PARIS EST Domaine : Traitement du Signal et des Images présentée par Pierre MOULON pour obtenir le grade de DOCTEUR DE L’UNIVERSITÉ PARIS EST Positionnement robuste et précis de réseaux d’images. Soutenue publiquement le 10 janvier 2014 devant le jury composé de : Adrien BARTOLI Université d’Auvergne Clermont1 Rapporteur Julie DELON Université Paris Descartes Examinateur David FOFI Université de Bourgogne Rapporteur Marc PIERROT-DESEILLIGNY École Nationale des Sciences Géographiques Examinateur Renaud MARLET École des Ponts ParisTech Directeur de Thèse Benoît MAUJEAN Mikros Image Encadrant industriel Pascal MONASSE École des Ponts ParisTech Co-Directeur de Thèse Luc ROBERT Autodesk ExaminateurÉcole des Ponts ParisTech LIGM-IMAGINE 6, Av Blaise Pascal - Cité Descartes Champs-sur-Marne 77455 Marne-la-Vallée cedex 2 France Université Paris-Est Marne-la-Vallée École Doctorale Paris-Est MSTIC Département Études Doctorales 6, Av Blaise Pascal - Cité Descartes Champs-sur-Marne 77454 Marne-la-Vallée cedex 2 FranceIci, mon cher, c’est adorable, et je découvre tous les jours des choses toujours plus belles. C’est à en devenir fou, tellement j’ai envie de tout faire, la tête m’en pète. [...] Eh bien, mon cher, je veux lutter, gratter, recommencer, car on peut faire ce que l’on voit et que l’on comprend, et il me semble, quand je vois la nature, que je vais tout faire, tout écrire, [...] quand on est à l’ouvrage [...] Tout cela prouve qu’il ne faut penser qu’à cela. C’est à force d’observation, de réflexion que l’on trouve. Ainsi piochons et piochons continuellement [...]. Extrait d’une lettre de Claude Monet à Frédéric Bazille écrite en 1864.45 Remerciements Mes encadrants. Je remercie tout d’abord Benoît Maujean et Renaud Keriven pour m’avoir offert l’opportunité de réaliser ce travail de recherche au sein du laboratoire IMAGINE et de l’entreprise Mikros Image. C’est avec un immense plaisir que j’ai pu travailler sous la direction de Renaud Marlet, Benoît Maujean et Pascal Monasse pour leurs qualités pédagogiques, scientifiques et humaines. Profitant de leur infaillible soutien j’ai pu découvrir le monde de la recherche, de l’application de la recherche en industrie et en apprendre toujours plus sur la vision par ordinateur. Je les remercie pour leur disponibilité ainsi que leur patience face à mes nombreuses questions, ce qui m’a permis de réaliser avec confiance ce doctorat. Comité de thèse. Je remercie Julie Delon, Marc Pierrot-Deseilligny et Luc Robert d’avoir accepté de faire partie du jury et je remercie tout particulièrement Adrien Bartoli et David Fofi pour avoir accepté d’être mes rapporteurs, en dépit du travail important que cela représente. Mes collègues d’entreprise. Je remercie mes collègues pour les discussions techniques, les sujets aléatoires abordés, la passion partagée pour la technologie informatique et les langages de programmation : Lauren Agopian, Marc-Antoine Arnaud, Arnaud Chassagne, Guillaume Chatelet, Laurent Clavier, Julien Dubuisson, Adrien Dutertre, Michael Etienne, Thomas Eskenazi, Marie Fétiveau, Antonio Fiestas, Alexandra Lefève-Gourmelon, Guillaume Maucomble, Valentin Noël, Jules Pajot, Nicolas Provost, Michael Guiral, Nicolas Rondaud, Élodie Souton. Je remercie les personnes qui se reconnaîtront pour les nombreux traits d’humour partagés avec plus ou moins de succès. Je remercie tout particulièrement Bruno Duisit, Christophe Courgeau , Benoît Maujean et Guillaume Provôt pour avoir participé au projet MiMatte3D de sa genèse à sa réalisation concrète. Mes collègues du laboratoire. Je remercie les membres permanents pour tous leurs conseils et suggestions qu’ils m’ont prodigués : Arnak Dalalyan et Guillaume Obozinski pour les discussions sur les optimisations convexes, Nikos Paragios pour ses précieux conseils pour l’écriture de ’rebuttal’, Bertrand Neveu pour toutes les références que tu as récupérées plus vite que l’éclair. Je remercie également les post-doctorants, doctorants, futur doctorants et chercheurs du laboratoire pour la bonne humeur apportée au laboratoire : Martin De La Gorce, Alexandre Boulc’h, Amine Bourki, Raghudeep Gadde, Mateusz Kozinski, Zhe Liu, Francisco Vitor Suzano Massa, Yohann Salaün, Olivier Tournaire, Marina Vinyes, Zhongwei Tang. Je souhaite bonne continuation aux stagiaires que j’ai encadrés. Badis Djellab, Emmanuel Habbets, Tristan Faure, Luc Girod, Rafaël Marini Silva et Lucas Plaetevoet : Vous m’avez ouvert l’esprit sur de nouvelles problématiques. Je remercie aussi ceux qui sont partis vers d’autres horizons avant moi : Achraf Ben-Hamadou, Olivier Collier, Jamil Drareni, Ferran Espuny et Hoang-Hiep Vu. Je remercie David Ok, Victoria Rudakova et Pascal Monasse pour avoir fait de l’aventure PRoVisG Mars 3D Challenge un succès et une expérience inoubliable au Jet Propulsion Laboratory de la NASA. Enfinje remercie Brigitte Mondou et Sylvie Cach pour leur disponibilité et réactivité qui nous facilitent le quotidien lors des missions et dossiers administratifs. Mes anciens professeurs. Une pensée à tous mes professeurs qui grâce à leur pédagogie m’ont insufflé la passion du développement logiciel et de l’imagerie numérique. Mes amis. Pour leur soutien et encouragements : Antonin P., Cyril L., Nicolas N., Philippe M., Michel T., Elvire et Ludovic T.. Ma famille. Je souhaite enfin exprimer ma gratitude envers mes proches qui m’ont toujours encouragé et mes parents pour m’avoir donné les moyens de réaliser mes études en adéquation avec mes passions. Enfin, mes plus profonds remerciements vont vers Fanny, ma chère et tendre, pour la patience et la compréhension dont elle a fait part durant ces trois dernières années et plus encore pour le bonheur que j’ai de vivre à ses côtés depuis notre rencontre. 67 Résumé Calculer une représentation 3D d’une scène rigide à partir d’une collection d’images est aujourd’hui possible grâce aux progrès réalisés par les méthodes de stéréo-vision multi-vues, et ce avec un simple appareil photographique. Le principe de reconstruction, découlant de travaux de photogrammétrie, consiste à recouper les informations provenant de plusieurs images, prises de points de vue différents, pour identifier les positions et orientations relatives de chaque cliché. Une fois les positions et orientations de caméras déterminées (calibration externe), la structure de la scène peut être reconstruite. Afin de résoudre le problème de calcul de la structure à partir du mouvement des caméras (Structure-from-Motion), des méthodes séquentielles et globales ont été proposées. Par nature, les méthodes séquentielles ont tendance à accumuler les erreurs. Cela donne lieu le plus souvent à des trajectoires de caméras qui dérivent et, lorsque les photos sont acquises autour d’un objet, à des reconstructions où les boucles ne se referment pas. Au contraire, les méthodes globales considèrent le réseau de caméras dans son ensemble. La configuration de caméras est recherchée et optimisée pour conserver au mieux l’ensemble des contraintes de cyclicité du réseau. Des reconstructions de meilleure qualité peuvent être obtenues, au détriment toutefois du temps de calcul. Cette thèse propose d’analyser des problèmes critiques au cœur de ces méthodes de calibration externe et de fournir des solutions pour améliorer leur performance (précision, robustesse, vitesse) et leur facilité d’utilisation (paramétrisation restreinte). Nous proposons tout d’abord un algorithme de suivi de points rapide et efficace. Nous montrons ensuite que l’utilisation généralisée de l’estimation robuste de modèles paramétriques a contrario permet de libérer l’utilisateur du réglage de seuils de détection, et d’obtenir une chaîne de reconstruction qui s’adapte automatiquement aux données. Dans un second temps, nous utilisons ces estimations robustes adaptatives et une formulation du problème qui permet des optimisations convexes pour construire une chaîne de calibration globale capable de passer à l’échelle. Nos expériences démontrent que les estimations identifiées a contrario améliorent de manière notable la qualité d’estimation de la position et de l’orientation des clichés, tout en étant automatiques et sans paramètres, et ce même sur des réseaux de caméras complexes. Nous proposons enfin d’améliorer le rendu visuel des reconstructions en proposant une optimisation convexe de la consistance colorée entre images. Mots-clefs calibration ; stéréovision multi-vue ; stéréovision ; estimation robuste ; programmation linéaire ; vision par ordinateur.89 Abstract To compute a 3D representation of a rigid scene from a collection of pictures is now possible thanks to the progress made by the multiple-view stereovision methods, even with a simple camera. The reconstruction process, arising from the photogrammetry consist in integrating information from multiple images taken from different viewpoints in order to identify the relative positions and orientations of each shot. Once the positions and orientations (external calibration) of the cameras are retrieved, the structure of the scene can be reconstructed. To solve the problem of calculating the Structure from Motion (SfM), sequential and global methods have been proposed. By nature, sequential methods tend to accumulate errors. This provides most often trajectories of cameras that are subject to drift error. When pictures are acquired around an object it leads to reconstructions where the loops do not close. In contrast, global methods consider the network of cameras as a whole. The configuration of cameras is searched and optimized in order to to best preserve the constraints of the cyclical network. Reconstructions of better quality can be obtained, but at the expense of computation time. This thesis aims to analyse critical issues at the heart of these methods of external calibration and provide solutions to improve their performance (accuracy , robustness and speed) and their ease of use (restricted parametrization). We first propose a fast and efficient feature tracking algorithm. We then show that the widespread use of a contrario robust estimation of parametric models frees the user about choosing detection thresholds, and allows obtaining a chain of reconstruction that automatically adapts to the data. Then in a second step, we use the adaptive robust estimation and a series of convex optimization to build a scalable global calibration chain. Our experiments show that the a contrario identified estimates improve signifi- cantly the quality of the pictures’s positions and orientations, while being automatic and without parameters , even on complex camera networks. Finally, we propose to improve the visual appearance of the reconstruction by providing a convex optimization of the color consistency between images. Keywords calibration ; multi-view stereovision ; stereovision ; robust estimation ; linear programming ; computer vision.10SOMMAIRE 11 Sommaire 1 Avant propos 13 1.1 La photogrammétrie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.2 La photogrammétrie et les effets spéciaux . . . . . . . . . . . . . . . . . . 19 1.2.1 Le Match-moving . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.2.2 La PhotoModélisation/Image-Based-Modeling . . . . . . . . . . . . 21 1.3 Contexte de la thèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2 Introduction 29 2.1 Organisation et contributions du manuscrit . . . . . . . . . . . . . . . . . 30 2.1.1 Contributions théoriques . . . . . . . . . . . . . . . . . . . . . . . 30 2.1.2 Contributions appliquées . . . . . . . . . . . . . . . . . . . . . . . 30 2.1.3 Contributions logicielles . . . . . . . . . . . . . . . . . . . . . . . . 33 2.1.4 Participation à la vie scientifique . . . . . . . . . . . . . . . . . . . 33 2.1.5 Publications de l’auteur . . . . . . . . . . . . . . . . . . . . . . . . 35 3 La géométrie multiples vues et l’estimation de mouvements 37 3.1 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.2 La géométrie caméra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.3 La géométrie à 2 vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.4 La géométrie à 3 vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.5 La triangulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.6 L’estimation de pose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.7 L’ajustement de faisceaux . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.8 La géométrie multiples-vues et l’estimation de mouvements . . . . . . . 49 3.9 La mise en correspondances de points saillants . . . . . . . . . . . . . . . 51 3.9.1 La détection de points saillants . . . . . . . . . . . . . . . . . . . . 52 3.9.2 La description de point saillants . . . . . . . . . . . . . . . . . . . 53 3.9.3 L’appariement de point saillants . . . . . . . . . . . . . . . . . . . 54 3.10 Méthode de fusion rapide de paires de correspondances de points saillants entre images . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.10.1 Une solution ensembliste pour la construction de traces de points saillants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.11 Contributions de ce chapitre . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4 L’estimation robuste de modèles paramétriques 65 4.1 MAX-CONSENSUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.2 RANSAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.2.1 Limitations et variantes . . . . . . . . . . . . . . . . . . . . . . . . 68 4.3 A Contrario-RANSAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.3.1 Le principe de la détection a contrario . . . . . . . . . . . . . . . . 7212 SOMMAIRE 4.3.2 Mise en correspondance a contrario pour l’estimation de la géométrie épipolaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.4 Généralisation de la mise en correspondance a contrario pour l’estimation de modèles paramétriques . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 4.4.1 Généralisation du calcul du NFA et utilisations . . . . . . . . . . . 78 4.4.2 Application pour l’estimation de la géométrie relative entre deux images sphériques . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 4.4.3 Évaluation expérimentale . . . . . . . . . . . . . . . . . . . . . . . 84 4.5 Contributions de ce chapitre . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5 Une chaîne de calibration séquentielle 91 5.1 État de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 5.1.1 Analyse du point clef des méthodes de reconstructions séquentielles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 5.2 Impact de l’estimation robuste contrainte sur une chaîne de calibration séquentielle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 5.3 Une chaîne de calibration séquentielle a contrario . . . . . . . . . . . . . . 98 5.3.1 Une chaîne adaptative aux bruits des données . . . . . . . . . . . 99 5.4 Résultats et évaluations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101 5.5 Contributions de ce chapitre . . . . . . . . . . . . . . . . . . . . . . . . . . 109 5.6 Les problématiques posées par les méthodes de calibrations séquentielles 109 6 Une chaîne de calibration globale 113 6.1 État de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114 6.2 Une approche pour le passage à l’échelle basée sur des triplets . . . . . . 122 6.2.1 Inférence de graphes de rotations relatives . . . . . . . . . . . . . 123 6.2.2 Calcul de translations relatives stables par l’utilisation de tenseurs tri-focaux réduits . . . . . . . . . . . . . . . . . . . . . . . . . 128 6.2.3 Fusion de translations relatives sous la norme l∞ pour le positionnement global rapide d’un réseau de caméras . . . . . . . . . . . 133 6.3 Mise en place de la chaîne de reconstruction . . . . . . . . . . . . . . . . 137 6.3.1 Optimisation pour le passage à l’échelle . . . . . . . . . . . . . . . 140 6.4 Résultats et évaluations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142 6.5 Contributions de ce chapitre et perspectives . . . . . . . . . . . . . . . . . 156 7 Amélioration de la consistance colorée 159 7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160 7.2 État de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161 7.3 Une approche d’optimisation convexe pour améliorer la consistance colorée . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165 7.3.1 Évaluations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168 7.4 Contributions et perspectives . . . . . . . . . . . . . . . . . . . . . . . . . 176 8 Conclusion et perspectives 17913 Chapitre 1 Avant propos La reconstruction de l’espace tridimensionnel qui nous entoure à partir d’images est un des défis posés à la vision par ordinateur. Parmi les techniques possibles, la stéréovision est celle qui est la plus explorée. Son principe, découlant de travaux de photogrammétrie, est de recouper les informations provenant de plusieurs images prises de points de vue différents. Autrefois binoculaire et fournissant des informations partielles, la stéréo-vision est maintenant multi-vues et permet l’obtention de modèles complets de ce qui est observé. Des méthodes de reconstruction de structure à partir du mouvement (Structure-from-Motion) ont fait naître des nouvelles perspectives pour la photographie 3D. Ainsi avec un simple appareil photographique on peut désormais reconstruire un environnement en trois dimensions. Ce domaine porteur de la vision par ordinateur ouvre de nouveaux horizons et un champ d’application qui va bien au delà des besoins initiaux suscités par la robotique. Les applications possibles sont nombreuses : architecture et urbanisme (DE LUCA 2009), archéologie, métrologie, cartographie, divertissement (panoramas, visites virtuelles, jeux vidéo interactifs). Les retombées pour la production cinématographique et les effets spéciaux sont évidemment multiples. Les travaux de cette thèse concernent l’application de la stéréo-vision pour la reconstruction la plus précise possible de décors à partir de photographies pour l’industrie audio-visuelle.14 1–Avant propos La captation du réel Réaliser l’acquisition d’un environnement réel sur un support numérique comporte trois étapes principales (DE LUCA 2006) : L’acquisition des données spatiales met en œuvre le relevé de la morphologie, des dimensions et des aspects de surface de l’environnement étudié. Cette phase peut utiliser différents dispositifs basés sur le principe de mesure avec ou sans contact sous différentes configurations. Dans le cas de la photogrammétrie le résultat de cette phase consiste en un nuage de points (la structure) représentant avec plus ou moins de densité l’environnement et une série d’images orientées et positionnées dans l’espace. La reconstruction tridimensionnelle des surfaces est l’étape de modélisation qui permet de construire le modèle géométrique de l’édifice en s’appuyant sur les mesures issues de la phase de relevé. Plusieurs techniques permettent une reconstruction automatique, semi-automatique ou manuelle des surfaces à partir des nuages de points. Ces techniques diffèrent en fonction des données d’entrées qu’elles peuvent traiter et du type de représentations géométriques qu’elles peuvent générer. La restitution de l’apparence visuelle s’intéresse à l’enrichissement de la géométrie issue de la phase de reconstruction. Des attributs capables de décrire les aspects de surface sont ajoutés sur la reconstruction. Il s’agit principalement d’associer au modèle 3D les informations photométriques acquises au moment du relevé.15 L’acquisition des données spatiales sous une forme numérique est généralement réalisée par des méthodes dites de métrologie. Bien que cette thèse se concentre sur des méthodes de photogrammétrie il est important de citer les différentes méthodes de numérisation existantes. Il sera ainsi plus facile pour le lecteur de comprendre que la photogrammétrie est un choix privilégié dans le cadre de ce travail. Les méthodes d’acquisition du réel peuvent être classifiées en deux catégories : les méthodes dites avec ou sans contact. Avec contact. Les méthodes avec contact réalisent la numérisation d’un objet 3D grâce à un contact physique avec l’objet. Palpeur La numérisation est réalisée par le biais d’un palpeur et d’un bras articulé. Les mesures angulaires sur les articulations de l’arbre permettent de connaître précisément la position du palpeur et permettent ainsi de numériser des points de l’espace. Son usage intrusif envers les objets rend la numérisation d’objets fragiles pé- rilleuse et l’acquisition d’objets de large dimension impossible. Un autre désavantage est la fréquence d’acquisition qui est limitée par l’opérateur lui-même, contraint par la vitesse de déplacement du bras mécanique. L’acquisition d’une surface dense n’est donc pas envisageable par un opérateur. Ce type d’acquisition est le plus souvent limité au milieu industriel et à la vérification de cotes sur des chaînes de production. Sans contact. Les méthodes sans contact sont réalisées avec des appareils d’acquisition distants. On distingue deux méthodes d’acquisition, les méthodes actives et les méthodes passives. Méthodes actives : Télémétrie Les scanners actifs émettent un rayonnement et détectent sa ré- flexion afin de sonder un objet ou une scène. Différents types de source de rayonnement sont utilisés : lumière, ultrason ou rayon X. Les appareils de mesures les plus connus de cette catégorie sont les scanners LIDAR (dits à temps de vol) et les scanners 3D (dits à décalage de phase). Les scanners LIDAR ont une portée plus grande et une fréquence d’acquisition plus élevée (10 000 à 100 000 points par seconde) que les scanners à décalage de phase. Ces technologies ont un coût élevé et demandent une formation pour être utilisées. L’acquisition de larges volumes requiert plusieurs acquisitions avec la présence de marqueurs cibles à position fixe pour faciliter les recalages. Ils sont donc assez complexes à réaliser.16 1–Avant propos Photogrammétrie et triangulation Les scanners dits à lumière structurée utilisent un appareil photo et une source de lumière contrôlée (un vidéo-projecteur). L’analyse de la déformation d’un motif lumineux projeté sur l’objet permet de déterminer le relief de la surface imagée. Selon le temps et la précision de la reconstruction souhaitées on utilise un ou plusieurs motifs (lignes, points). La démocratisation de ce type de scanner a été réalisée avec brio par Microsoft et son produit Kinect. La Kinect est un scanner 3D qui réalise l’analyse des déformations en temps réel d’un motif projeté en infrarouge afin de calculer une carte de profondeur et localiser les positions du squelette d’un ou plusieurs joueurs. Un inconvénient de ces scanners est que leur précision est limitée à la zone de netteté de la caméra et donc seuls de petits espaces peuvent être reconstruits. Ces méthodes utilisant une source de lumière infrarouge, les acquisitions se limitent à des espaces intérieurs dans un espace contrôlé afin de ne pas être perturbées par une source externe de lumière (soleil). StéréoPhotométrie Ici on se place dans un cas similaire au précédent, on considère toujours un appareil photographique fixe, mais on considère désormais une source de lumière unique en mouvement. Le fait d’avoir différentes images avec des conditions d’illumination différentes permet de déterminer l’état de la surface de l’objet considéré. Des normales à la surface sont ainsi calculées et une phase d’intégration permet de déterminer une surface représentant l’objet observé. Image extraite de WU et al. (2011b). Méthode passive : Photogrammétrie et triangulation Des images sont capturées autour de l’objet à mesurer. Connaissant des points en correspondance entre les images, on peut identifier les positions des caméras et des points 3D correspondants par triangulation. On identifie ainsi le mouvement des caméras (orientation et translation) ainsi que la structure (points 3D) de la scène. Ce problème d’optimisation est résolu par des algorithmes de calcul de structure à partir du mouvement. Ces points peuvent être soit des points naturels détectés soit des points identifiés par des marqueurs cibles posés sur la scène imagée. La photogrammétrie passive apparaît comme une solution particulièrement intéressante : • Le pré requis matériel est faible, seul un appareil photographique est nécessaire, • Le prix d’un appareil photographique numérique de bonne qualité est moindre que le prix d’un scanner de type LIDAR, • Aucune formation particulière n’est nécessaire pour manipuler le matériel, • La scène observée n’est pas manipulée ou détériorée, • Aucune source de lumière projetée et aucuns contacts aux objets ne sont nécessaires.1.1–La photogrammétrie 17 1.1 La photogrammétrie Le mot photogrammétrie apparaît comme une évolution du mot, «métrophotographie», apparu en 1850 par le biais d’Aimé Laussedat. Le terme se popularise ensuite à l’échelle européenne puis internationale en photogrammétrie sous l’impulsion allemande du photographe Otto Kersten et de l’ingénieur civil Albrecht Meydenbaeuer (WOCHENBLATT 1867) comme illustré sur la figure 1.1. L’idée originale est de réaliser des relevés métriques de bâtiments ou terrains à partir de photographies. La photogrammétrie a ensuite évoluée en commençant sur des travaux basées sur de la stéréovision (stereoscopic viewing) et les travaux de Carl Pulfrich sur le stereocomparator créé en 1901 (cf. FRITSCH (2006)). L’acquisition de données topographiques a été initiée par des pionniers comme Nadar en 1858 avec l’acquisition d’images aé- riennes en ballon à des fins militaires. Par la suite, d’autres techniques d’acquisitions ont suivi. Durant la première guerre mondiale, des cerf-volants, avions et même des pigeons (PHOTOGRAPHIQUES 1910) ont servi de moyens de transport pour l’acquisition et la reconnaissance de terrains. Cette période a permis de découvrir et de proposer des solutions de correction pour la rectification et l’utilisation d’images stéréographiques. Dans une seconde phase, le développement de la géométrie algorithmique projective, la connaissance avancée du calcul matriciel et de l’algèbre linéaire ont donné naissance à la photogrammétrie analytique (KRUPPA 1913) et à la théorie de l’ajustement de faisceaux (BROWN 1976 ; SLAMA et al. 1980 ; TRIGGS et al. 2000). L’ajustement de faisceaux est le processus qui consiste à optimiser simultanément la trajectoire de la caméra et la structure de la scène. La photogrammétrie étant gourmande en calculs numériques son utilisation a été grandement facilitée par l’arrivée de l’ordinateur. Le troisième fait marquant dans l’histoire de la photogrammétrie est l’apparition de la version moderne de la camera obscura (Aristote) : l’appareil photographique numérique (GARETH A. LLOYD et STEVEN J. SASSON 1978). L’acquisition numérique et l’accessibilité à des solutions de stockage de plus en plus grandes se sont tellement dé- mocratisées que l’on a observé une scission des communautés de recherche en fonction du style d’acquisition et d’application (cf. figure 1.1). On note après 1970 la pleine croissance de la photogrammétrie aérienne et la télé-détection : (remote sensing), puis plus tard l’apparition du terme Structure from Motion (SfM) et digital photogrammetry dans les années 1980-90. Cette disparité temporelle a été observée car au début les appareils photographiques numériques n’étaient accessibles qu’à la communauté acquisition aé- rienne. Dans un second temps l’appareil photographique numérique est devenu grand public et la photogrammétrie au sol (SfM, close-range photogrammetry) alors a pu se dé- mocratiser. photogrammetry structure from motion remote - sensing 1870 1875 1880 1885 1890 1895 1900 1905 1910 1915 1920 1925 1930 1935 1940 1945 1950 1955 1960 1965 1970 1975 1980 1985 1990 1995 2000 0.00% 0.000004% 0.000008% 0.000012% 0.000016% 0.00002% digital photogrammetry FIGURE 1.1 – Nombre d’occurrences des mots photogrammetry, structure-from-motion et remote-sensing dans les ouvrages référencés par Google© entre les années 1860 à 2000. Nous sommes actuellement dans une quatrième phase de la photogrammétrie : une phase applicative. Nous pouvons observer que la communauté de la vision par ordinateur à fait mûrir des techniques et des applications qui sont désormais utilisables de18 1–Avant propos manière stable par tout un chacun. On notera que certaines applications permettent de nos jours : De créer une image panoramique depuis nos téléphones mobiles, De chercher de l’information en photographiant une pochette de disque ou une af- fiche : LTU Technologies 1 , Kooaba 2 , De jouer de manière interactive avec un avatar virtuel imitant nos mouvements sur notre télévision (Microsoft Kinect). Une utilisation concrète de la photogrammétrie et de la vision par ordinateur à très large échelle est le logiciel Google Maps. Cette application permet de visualiser la surface de notre planète à travers notre navigateur Internet (une couverture intégrale du globe en basse définition est disponible depuis 2005). La résolution en mode de visualisation aérienne est telle que l’on peut observer sa propre maison ou compter les piétons sur une place. L’inclusion récente des rues avec StreetView en 2007 permet de naviguer dans les rues d’une ville, de visualiser concrètement la situation d’un monument ou d’un magasin comme si on y était. Même si les informations actuellement proposées sont en majorité seulement en 2 dimensions, des représentations 3D sont d’ores et déjà en préparation ou visibles pour certaines villes du globe. La technologie de numérisation 3D de villes est en passe d’être mûre pour des applications concrètes comme l’ont montrés les sociétés "C3 Technologies" et Acute3D 3 . Le futur laisse entrevoir des solutions libres de partage et création de carte 3D à l’instar d’OpenStreetMap auxquelles des utilisateurs ordinaires peuvent contribuer pour apporter de l’information. Le fait que l’acquisition humaine soit limitée au sol est aussi en phase de changement. Les moyens de transport suivant l’évolution aé- ronautique au plus proche (ballons radiocommandés dirigeables, drones et UAV), le futur laisse imaginer que l’acquisition aérienne sera réalisable par tout un chacun dans quelques années avec un simple drone tel que le "Teeny, Tiny Crazyflie Nano Quadcopter" développé en 2012 (cf. figure 1.2). FIGURE 1.2 – De gauche à droite : Nadar et son ballon 1858, un pigeon photographe 1910, un drone Parrot 2010, un micro UAV 2012. Cette obsession de recréer le réel pour en redéfinir l’usage est le but principal visé par l’industrie audiovisuelle. Voyons les usages de la photogrammétrie pour la création d’effets spéciaux. 1. LTU Technologies http://www.ltutech.com/fr/ 2. Kooaba http://www.kooaba.com/ 3. Acute3D http://www.acute3d.com1.2–La photogrammétrie et les effets spéciaux 19 1.2 La photogrammétrie et les effets spéciaux Pour le domaine des effets spéciaux, le terme photogrammétrie est interprété comme : une méthode pour acquérir une représentation manipulable d’un environnement. On cherche à acquérir le réel pour en détourner l’usage. L’intérêt est d’obtenir des copies numériques pour réaliser des trucages. Une collection de bâtiments (DE LUCA 2006) ou d’objets et personnages (BHAT et BURKE 2011) peut être ainsi créée et détournée (cf. figure 1.3). Les budgets étant souvent serrés la photogrammétrie s’impose comme un choix avant tout financier. Le prix d’un appareil photo numérique est bien moins élevé que celui d’un laser 3D d’acquisition LIDAR. Un autre avantage technique est le fait que le support photographique apporte la représentation photo-réaliste tandis que les LIDARs ne possèdent pas tous une caméra coaxiale pour acquérir avec précision la couleur de chaque point 3D numérisé. Cependant malgré le fait que les techniques de photogrammétrie semblent relativement mûres on réalise que l’usage de la technologie n’est pas encore aisée pour les besoins spécifiques des effets spéciaux. (a) (b) FIGURE 1.3 – (a) La structure d’un bâtiment re-créée à partir de photographies (DE LUCA 2006). (b) Copie numérique d’un acteur par la société Agence de Doublure Numérique (image du Figaro). Les objectifs principaux liés aux effets spéciaux mêlant réel et virtuel sont les suivants : – l’estimation du mouvement d’une caméra vidéo, Match-moving : insertion d’éléments virtuels de manière réaliste sur une vidéo de tournage. – La photo-modélisation, Image-Based-Modeling IBM : la création d’une copie numérique d’un environnement à partir de photographies.20 1–Avant propos 1.2.1 Le Match-moving Le match-moving/motion-tracking est une technique utilisée pour identifier la trajectoire d’une caméra à partir d’une séquence vidéo. Ayant la connaissance d’une caméra virtuelle il est possible de faire bouger des objets 3D qui auront un mouvement en cohérence avec la vidéo. La fusion de la scène réelle avec la scène virtuelle (compositing) donne alors l’impression qu’elles ont été filmées du même point de vue. On notera deux catégories de match-moving en fonction des dégrés de liberté du mouvement recherché : le suivi 2D dit bidimensionnel et le suivi 3D dit tridimensionnel. Le suivi de mouvement bidimensionnel est disponible dans des logiciels tels que Adobe After Effects, Discreet Combustion et Shake. Cette technique se limite au suivi du mouvement de points particuliers choisis par l’utilisateur dans les images de la séquence. Une fois le mouvement de ces points identifié il est appliqué à de nouveaux objets venant occulter la vidéo avec un nouveau contenu. Cette technique est suffisante pour des surfaces planes, des mouvements de caméras simples et si il n’y a pas eu de changements importants des paramètres de la caméra. L’usage le plus classique est le remplacement d’un panneau publicitaire placé en arrière-plan d’une séquence vidéo par une autre image. Le suivi de mouvement tridimensionnel va quant à lui extrapoler les informations tridimensionnelles (le mouvement de caméra) à partir de photographies bidimensionnelles (la séquence vidéo). Le processus d’estimation de la trajectoire de la caméra requiert l’estimation de contraintes de géométrie projective et l’application du processus d’ajustement de faisceaux. Les points suivis sont la plupart du temps précisés par l’opé- rateur. Des méthodes automatiques existent pour identifier certains points saillants, mais dans la plupart des cas des retouches manuelles sont nécessaires si la séquence vidéo présente des éléments en désaccord de mouvement. En effet les méthodes couramment utilisées considèrent en pré-requis que la scène observée est statique. L’opérateur vient alors supprimer les points qui ne sont pas sur la scène rigide : objets ou acteurs en mouvement. Parmi les logiciels capables d’effectuer un match moving tridimensionnel on peut citer : • 2d3 Boujou, • Blender (depuis la version 2.61), • Icarus (logiciel gratuit), • Maya Live (Module de Maya Unlimited), • PixelFarm PFTrack (réincarnation commerciale d’Icarus), • Realviz MatchMover (racheté par Autodesk), • Ssontech SynthEyes, • Science.D.Visions 3DEqualizer, • Voodoo (logiciel gratuit), • VooCAT (logiciel commercial, réincarnation commerciale de Voodoo), • VideoTrace. Le marché du logiciel est assez diversifié. Des alternatives (commerciales, gratuites et open-source) existent et montrent que le marché est large et demandeur. Le suivi de mouvement de scène non rigide est quant à lui un domaine encore en évolution et de ce fait aucune solution logicielle commerciale n’est présente sur le marché.1.2–La photogrammétrie et les effets spéciaux 21 1.2.2 La PhotoModélisation/Image-Based-Modeling Dans le cas de l’Image-Based-Modeling on recherche à créer une représentation photoréaliste 3D des éléments photographiés. Une solution logicielle doit être identifiée pour les trois étapes évoquées au début de ce chapitre : l’acquisition des données spatiales, la reconstruction tridimensionnelle des surfaces, la restitution de l’apparence visuelle (cf. figure 1.4). FIGURE 1.4 – Les étapes nécessaires pour la photo-modélisation : la calibration pour acquérir les données spatiales, la photo-modélisation pour reconstruire une surface et enfin le calcul de la restitution visuelle colorée. L’application de la photogrammétrie pour la reconstruction de bâtiment comme élé- ment de décor 3D pour le domaine des effets spéciaux a été initiée par DEBEVEC et al. (1996) avec son logiciel FAÇADE. Les auteurs proposent d’optimiser simultanément la reconstruction tridimensionnelle de surfaces planes et le placement des caméras dans l’espace. Les entrées de l’algorithme sont des primitives géométriques, comme des parallélépipèdes, placées manuellement par l’utilisateur dans les images sur les formes d’un bâtiment. En connaissant la projection d’une série de plan et de contraintes orthogonales, des blocs 3D et images sont ainsi orientés et placés dans l’espace. Dans un second temps, un raffinement manuel de la géométrie et une projection de texture permet d’enrichir le détail du modèle 3D (cf. figure 1.5). FIGURE 1.5 – Le logiciel FAÇADE (de gauche à droite) : les arêtes des parallélépipèdes utilisées, la reconstruction 3D obtenue et le rendu photo-réaliste.22 1–Avant propos A la suite de ce projet, trois classes de solutions ont émergé : 1. des solutions de reconstruction 3D par saisie manuelle, 2. des solutions automatiques avec le mûrissement des techniques de photogrammétrie, 3. des solutions semi-automatiques permettant d’intéragir avec les résultats obtenus de manière automatique. 1.Les solutions par saisie manuelle Quatre solutions logicielles de reconstruction 3D par saisie manuelle ont émergé sur le marché : – Canoma 1999 Évolution commerciale de FAÇADE (DEBEVEC et al. 1996). Cette solution a disparu du marché suite au rachat mené par MetaCreations puis par Adobe Systems en 2000. – Eossystems PhotoModeler 1993 Précurseur sur le marché, le logiciel ne cesse d’évoluer depuis. – RealViz Image Modeler 2000 Transfert technologique issu de l’INRIA (Projet Robotvis). Racheté par Autodesk en 2009. – Banzai Pipeline Ltd Enwaii 2008 Conception d’un logiciel dédié pour les contraintes liées à la production des effets spéciaux. La solution s’intègre à un outil métier de la production visuelle : Autodesk Maya. Ces solutions requièrent que l’utilisateur saisisse des informations en correspondance entre images (le plus souvent des points). Ces points sont utilisés pour la phase de calibration, des caméras sont ainsi positionnées dans l’espace et des points 3D très éparses sont reconstruits. Dans un deuxième temps, l’utilisateur peut réaliser à la main la photo-modélisation. Des faces sont ainsi saisies entre les points 3D (amers). Cette tâche reste un travail de longue haleine mais permet un contrôle précis sur les amers 3D utilisés et permet de guider la modélisation à faible nombre de polygones. FIGURE 1.6 – ImageModeler : De gauche à droite, les images sources, les points et la géométrie saisies manuellement, la restitution colorée.1.2–La photogrammétrie et les effets spéciaux 23 2.Les solutions automatiques Par la suite, le développement des techniques de photogrammétrie a permis l’émergence de solutions automatiques. Ces solutions ont vu le jour grâce à : – une évolution marquante de la stabilité de la recherche de points saillants communs entre images (SIFT : LOWE (1999)). – l’évolution des algorithmes de structure à partir du mouvement (POLLEFEYS et al. 2000 ; BROWN et LOWE 2005a ; SNAVELY et al. 2006). Ces améliorations notables ont permis de réaliser automatiquement : – le calcul de la pose d’images dans l’espace, – la création d’un nuage de points dense représentant la scène, – la création d’une surface représentant la scène, – la projection des images sources sur une surface pour une représentation photoréaliste. Des résultats très réalistes peuvent être obtenus si les photographies acquises sont en adéquation en résolution et netteté pour les détails que l’on souhaite obtenir (cf. figure 1.7). FIGURE 1.7 – Création d’une copie numérique d’un visage à partir de 20 images, merci à Cédric Guiard, Gilles Gambier et Pierre Lelièvre de ADN (Agence de Doublure Numérique) pour l’acquisition de ces images.24 1–Avant propos Les logiciels suivants sont apparus par la suite (liste non exhaustive) : Société Produit lancement Pays Transfert de technologie Metria Orthoware 2007 Espagne Université de Valence Microsoft Photosynth 2008 USA Université de Washington Agisoft Photoscan 2010 Russie ? Eossystems Photomodeler 2010* Canada ? Autodesk PhotoFly 2011 France Realviz Acute3D SmartCapture 2011 France ENPC (IMAGINE) Pix4D PixelScanner 2011 Suisse EPFL (Cvlab) 3DFlow 3DFZephyr 2012 Italie Université de Vérone Aurvis PixelScanner 2013 Turquie Doctorant EPFL (Cvlab) TABLE 1.1 – Listes des solutions commerciales pour la photogrammétrie automatique. *Intégration de composants automatiques depuis 2010. On remarque que les 3/4 des solutions sont issues de savoir-faire académique et d’universités et que ces solutions automatiques émergent toutes dans les deux premières décennies des années 2000. Les ruptures significatives des dernières années citées au début de cette section montrent que la photogrammétrie est stable pour la réalisation d’applications concrètes et que le calcul de structure à partir du mouvement est donc en passe de devenir accessible pour le plus grand nombre. Le fait le plus marquant qui démontre que la technologie est attractive est le projet Photosynth. Ce projet, basé sur une collaboration de Microsoft avec l’université de Washington et les travaux de SNAVELY et al. (2006) : "Photo tourism, exploring photo collections in 3D", permet d’explorer de manière interactive ses collections de photos personnelles en 3D. Le navigateur web est alors transformé en interface de navigation où l’on se promène en 3 dimensions d’image à image (cf figure 1.8). Microsoft a su mettre la technologie en accès libre via une plateforme de démonstration Internet pour la visualisation et un logiciel client pour réaliser les calculs de photogrammétrie. Malgré le fait que le résultat du calcul ne soit utilisable qu’à travers une interface Internet et non téléchargeable, cette application a fortement démocratisé la reconstruction 3D à partir de photographies. FIGURE 1.8 – Photosynth : une interface de navigation sur une collection d’images positionnée en 3 dimensions.1.2–La photogrammétrie et les effets spéciaux 25 3.Les solutions semi-automatiques Quelques solutions semi-automatiques ont été proposées par le milieu académique mais elles ne sont pas encore apparues dans des logiciels commerciaux. Elles proposent de faciliter les étapes de photo-modélisation en proposant des amers initiaux afin de faciliter la création de primitives géométriques. Deux solutions sont illustrées ici : PhotoModel et O-Snap. PhotoModel. (SINHA et al. 2008) considère une scène calibrée. Le logiciel utilise les données suivantes : – des caméras positionnées et orientées dans l’espace, – un nuage de point initial, – des lignes reconstruites en 3D (lignes de fuite détectées dans les images). Lorsque l’utilisateur souhaite dessiner une facette 3D, il dessine les contours de cette face sur l’image de son choix. La position 3D de la face est alors interprétée automatiquement en fonction des données 3D visibles projetées à l’intérieur du polygone utilisateur. Une équation de plan 3D est ainsi déterminée automatiquement en ayant utilisé que peu d’interactions utilisateur, saisie dans une seule image (contrairement aux mé- thodes manuelles vues précédemment). (a)Images (b) Saisie 2D (c) Modèle 3D (d) Modèle 3D texturé FIGURE 1.9 – PhotoModel : une interface de photo-modélisation qui se base sur des interactions utilisateur et le support 3D de points et lignes de fuite. O-Snap. (ARIKAN et al. 2013) propose une interface de modélisation qui utilise seulement le nuage de point 3D. La reconstruction 3D polygonale peut être interactivement raffinée par l’utilisateur. Un modèle initial est automatiquement créé via la génération d’hypothèses de polygones plans les plus probables. L’utilisateur guide ensuite la méthode automatique, vers le résultat qu’il souhaite, en indiquant des relations d’adjacences entre polygones pour former la géométrie désirée (exemple : les connections entre les murs et toits de la figure 1.10). FIGURE 1.10 – Un aperçu de la chaîne semi-automatique de modélisation O-Snap. De gauche à droite : Un nuage de point bruité et incomplet est décomposé en une sélection de plans. Des relations d’adjacences de polygones proches sont identifiées afin de les connecter et de raffiner le modèle. L’utilisateur guide ensuite le processus automatique en rajoutant manuellement des relations d’adjacences. Un modèle à faible nombre de polygones représentant le nuage de points 3D peut ainsi être reconstruit.26 1–Avant propos La photogrammétrie et la photo-modélisation pour les effets spéciaux Lorsque l’on regarde les solutions existantes, on constate qu’une seule solution est pour l’instant dédiée au monde des effets spéciaux audiovisuels. Il s’agit de la solution «Enwaii» proposée par «Banzai Pipeline Ltd.». Bien que la solution soit entièrement manuelle, elle présente l’avantage de s’intégrer directement à un outil métier utilisé dans le domaine : Autodesk Maya. Cette solution propose une alternative pour prendre en compte les contraintes liées à la production de contenus multimédias pour l’industrie. Cependant les solutions manuelles présentent un défaut majeur : c’est le niveau d’implication de l’utilisateur qui conditionne la précision de saisie des correspondances et donc la qualité du résultat obtenu. Les étapes de calibration et modélisation étant manuelles, l’utilisateur doit être formé afin de produire de bons résultats. Un utilisateur avisé sera à même d’obtenir de bien meilleurs résultats qu’un novice. Les solutions automatiques, comme Agisoft Photoscan, demandent quant à elles peu de formation, mais en contre partie ne donnent pas de contrôle à l’utilisateur sur la chaîne de traitement. Lorsqu’un jeu de photographies ne permet pas l’obtention de modèle 3D automatique, l’utilisateur ne peut obtenir aucun résultat. L’idéal pour le marché de la postproduction audioviselle serait une solution semiautomatique fonctionnant de l’acquisition photographique sur site à la production du contenu 3D final. L’utilisateur pourrait alors guider le processus automatique sur des jeux d’images restreint ou au contraire être guidé sur des jeux de données comportant de nombreuses images. 1.3 Contexte de la thèse Cette thèse CIFRE commencée en octobre 2010 a été effectuée au sein du groupe de recherche IMAGINE pour la tutelle laboratoire et de l’équipe recherche et développement de MIKROS IMAGE pour la tutelle entreprise. IMAGINE. Le groupe de recherche IMAGINE est un projet collaboratif entre l’École des Ponts Paristech et Chaussée (ENPC) et du Centre Scientifique et Technique du Bâtiment (CSTB). Ce groupe de recherche appartient au Laboratoire Informatique Gaspard Monge (LIGM) de l’Université Paris-Est Marne-la-Vallée (UPEM). L’expertise d’IMAGINE se situe en vision par ordinateur, en traitement de maillage, en apprentissage statistique, en optimisation, et en programmation par contraintes. Une partie des travaux actuels concerne les thématiques suivantes : – La reconstruction haute précision de surfaces 3D à partir de grandes quantités d’images acquises sous des conditions non contrôlées. Expertise transférée en 2011 au sein de l’entreprise Acute3D par Renaud Keriven et Jean-Philippe Pons. – L’amélioration des méthodes de calibration de caméra par le biais de l’utilisation de méthodes statistiques avec le projet ANR Callisto. Ce projet, en collaboration avec le CNES est réalisé dans le cadre du projet MISS (Mathématiques de l’Imagerie Satellitaire Spatiale). – L’interprétation des images et leur sémantisation pour reconstruire des façades de bâtiments riches d’informations (fenêtres, portes, ...). Le travail de l’équipe IMAGINE a été notamment remarqué à l’échelle internationale grâce à des résultats en reconstruction de surface et d’algorithmes de stéréo-vision multiple-vues denses (HIEP et al. 2009). Les reconstructions les plus précises et les plus1.3–Contexte de la thèse 27 complètes ont été obtenues sur le jeux de données de référence mise en place par le CVLAB de l’EPFL (STRECHA et al. 2008). L’équipe a également obtenu en 2011 le premier prix au challenge ”PRoVisG Mars 3D Challenge” consistant à évaluer la précision de reconstruction de la trajectoire d’un robot terrestre et martien. Mikros Image. Créé en 1985, Mikros Image est un prestataire de services spécialisé dans les effets numériques visuels. Mikros Image gère pour ses clients plus de 300 projets par an tous domaines confondus, depuis la supervision de tournage, jusqu’à la finalisation de films de cinéma, de spots de publicité, de programmes de télévision ou de contenus pour Internet et la téléphonie mobile. La gamme de services proposée comprend : – Effets spéciaux et images de synthèse 2D & 3D, – Animation, – Montage et conformation, – Étalonnage, transferts de support numériques/argentiques et argentiques/numériques, masterisation, – Laboratoires vidéo, film & compression, – Gestion d’actifs et outils de transmission numérique. Mikros Image est une filiale à 100% de la société MTC (Multimédia Télévision Cinéma), dont le capital est majoritairement détenu depuis octobre 2006 par la société italienne Mediacontech, cotée à Milan. Son effectif compte plus de 100 salariés fixes et environ 50 intermittents free-lances. Mikros Image possède des antennes dans quatre pays : France, Belgique, Luxembourg, Canada. Depuis 1999, Mikros Image possède une activité de recherche et développement qui mobilise environ 10% de l’effectif de la société. Ses outils «maison» permettent d’augmenter ses capacités de production, d’optimiser la qualité de ses réalisations et d’offrir de nouveaux services, notamment pour son développement stratégique et commercial. Certaines de ses applications sont développées avec des partenaires industriels ou universitaires, dans le cadre de projets collaboratifs. Le financement de ses outils est en partie assuré par des organismes de soutien public à l’innovation. Mikros Image se trouve sur un marché en pleine expansion. En effet, les films et les publicités utilisent de plus en plus d’effets visuels. De plus, compte tenu de la variation du degré d’exigence au niveau du rendu final en raison de budgets variables, de jeunes entreprises émergent sur ce climat concurrentiel tendu. La valeur ajoutée de Mikros Image reste sa capacité à mener à bien des projets complexes, dans un temps imparti et avec un budget donné.28 1–Avant propos29 Chapitre 2 Introduction Le problème de la reconstruction 3D par stéréo-vision à partir de caméras multiples calibrées capturant une scène fixe est étudié depuis plusieurs décennies. Les travaux initiés par (BEARDSLEY et al. 1996) puis étendus par (POLLEFEYS et al. 2000 ; BROWN et LOWE 2005a ; SNAVELY et al. 2006) ont démontré qu’il est possible d’estimer de manière séquentielle la structure à partir du mouvement d’une ou plusieurs caméras. Le principe de reconstruction, découlant de travaux de photogrammétrie, consiste à comparer les informations provenant de plusieurs images, prises de points de vue différents, pour identifier les positions et orientations de chaque cliché (le mouvement) puis la géomé- trie de la scène (la structure). Il a été démontré sur des jeux de données comportant une vérité terrain (STRECHA et al. 2008) que les résultats de reconstruction sont quantitativement comparables à des acquisitions lasers. Des erreurs de localisation de caméras de l’ordre du centimètre ou millimètre ont été mesurées. Cependant l’application de ces mêmes méthodes séquentielles sur de larges jeux d’images n’est pas simple. Le passage à l’échelle n’est alors atteignable qu’en ayant recours à diverses approximations. Des implémentations massivement parallèles sont utilisées pour accélérer la recherche de correspondances entre images (AGARWAL et al. 2009). Des solutions dédiées pour l’ajustement non linéaire de paramètres sur GPU sont utilisées (WU et al. 2011a). Des localisations GPS approximatives peuvent être utilisées pour certaines images (CRANDALL et al. 2011) ou bien des informations GPS sont combinées avec des plans de cadastre issus de bases de données GIS (système d’information géographique) (STRECHA et al. 2010). Toutes ces approximations permettent effectivement de traiter des jeux de données de plus en plus grands, mais ce passage à l’échelle est réalisé au détriment de l’estimation de la position des caméras. Une pré- cision moyenne de l’ordre du mètre est alors obtenue sur de larges jeux de données (CRANDALL et al. 2011 ; WU 2013). Le principal défaut de ces méthodes séquentielles est l’accumulation d’erreurs due à la nature du processus. On observe des dérives lors de l’estimation des poses. Une trajectoire circulaire est ainsi souvent identifiée en spirale. Des méthodes considérant les poses de caméras de manière globale ont été développées (OLSSON et ENQVIST 2011 ; MARTINEC et PAJDLA 2007) pour supprimer ce phénomène de dérive, mais une fois de plus le passage à l’échelle n’est pas aisé. Ces méthodes d’estimation de pose et orientation de caméras possèdent des limitations sur les points suivants : • la robustesse, • la précision, • le passage à l’échelle.30 2–Introduction Nous proposons dans cette thèse des solutions alternatives pour chacune de ces limitations. Nous démontrerons l’impact positif des solutions proposées, en termes de performances quantitatives et de temps de calcul. 2.1 Organisation et contributions du manuscrit Cette thèse concentre son étude sur l’estimation de structure à partir du mouvement (SfM) dans le cadre d’une application pour la postproduction audiovisuelle et plus particulièrement la reconstruction de décors. Elle se focalise sur l’estimation pré- cise de poses des caméras afin d’obtenir la meilleure représentation 3D possible de l’environnement photographié. La thèse s’articule autour de contributions sur les axes suivants : • le suivi de points saillants dans des images non ordonnées, • la généralisation de l’utilisation d’un estimateur robuste statistique de modèles paramétriques, • la vérification de l’impact, à large échelle, d’estimateurs robustes adaptatifs dans les méthodes de calibration séquentielles, • la robustesse et le passage à l’échelle pour l’estimation globale de la position d’un réseau de caméras, • l’harmonisation colorée d’un ensemble d’images multiple-vues. 2.1.1 Contributions théoriques Les contributions théoriques sont axées sur : 1. Une généralisation des travaux de MOISAN et STIVAL (2004) et RABIN (2009) : Nous proposons de généraliser le cadre d’estimation robuste de modèle paramétrique défini par MOISAN et STIVAL (2004) afin de pouvoir utiliser cette estimation robuste adaptative à la reconstruction 3D. Nous montrerons que la formulation générique permet de réaliser des estimations de poses relatives, de matrices de projection, de tenseurs tri-focaux. Nous proposerons des travaux préliminaires pour explorer une paramétrisation a contrario d’erreurs angulaires appliquée à l’estimation de pose relative d’images sphériques. 2. L’utilisation d’optimisation convexe pour garantir l’obtention d’un minima global : Nous proposons de réaliser par minimisation convexe la fusion de translations relatives dans un repère global commun sous norme l∞ afin de calibrer globalement en position un réseau de caméras. Nous présenterons finalement un ajustement d’histogrammes via une déformation linéaire sous norme l∞ pour l’harmonisation colorée d’une séquence d’images. 2.1.2 Contributions appliquées Dans le cadre d’un projet de recherche et innovation, «Mimatte3D», nous avons dé- veloppé une chaîne de reconstruction 3D prenant en compte les besoins métiers liés à la postproduction audiovisuelle. Des outils permettant à l’utilisateur de guider le processus automatique de reconstruction ont été réalisés (cf. figure 2.1). Ce projet subventionné, OSEO-CNC-RIAM - 2012, a été réalisé par Benoit MAUJEAN, Bruno DUISIT,2.1–Organisation et contributions du manuscrit 31 Pierre MOULON et Christophe COURGEAU. Ce projet s’implique dans la vision industrielle liée à cette thèse CIFRE. Contributions FIGURE 2.1 – Chaîne de traitement MiMatte3D pour l’aide à la construction de décors. La chaîne «Mimatte3D» propose une suite d’outils pour l’aide à la reconstruction de décor virtuel photo-réaliste à partir de photos s’intégrant le plus facilement aux outils métiers des mattes-painters, les créateurs de décors. Le projet débouche sur les outils suivants : • MILINK : un outil de visualisation et édition de réseau de connections d’images pour l’aide à la suppression de mises en correspondances d’images aberrantes, • MICALIB : une chaîne de calibration externe séquentielle et une chaîne de calibration globale, • MIMODE : une interface d’aide à la photo-modélisation, • MIMATTEIMPORTER : une interface de la géométrie de calibration pour le logiciel d’édition 3D Autodesk Maya (caméras, nuages de points, plan images), • MIPROJCAM : un outil de projection de texture sur de la géométrie pour le logiciel d’édition 3D Autodesk Maya. FIGURE 2.2 – Haut : une partie des images utilisées pour la reconstruction photoréaliste. Bas : la calibration externe, la photo-modélisation et la restitution visuelle.32 2–Introduction Cette chaîne réalisée pour le compte de Mikros Image est basée sur la librairie open source OpenMVG réalisée pendant cette thèse. Les figures 2.3, 2.4 illustrent des exemples de reconstruction de décors réalisés à partir de collections d’images dans la phase finale du projet OSEO-CNC-RIAM - 2012 : FIGURE 2.3 – Modélisation de la Mairie de Montrouge réalisée à partir de 20 images acquises à partir d’un téléphone mobile. FIGURE 2.4 – Modélisation de l’église du village de Ault réalisée à partir de 109 images.2.1–Organisation et contributions du manuscrit 33 2.1.3 Contributions logicielles – PPT-GUI (Python Photogrammetry Toolbox) Ce projet co-développé en collaboration avec Alessandro Bezzi et Luca Bezzi d’ARC-TEAM permet un accès simplifié à des outils open-source de photogrammétrie (Bundler (SNAVELY et al. 2006), CMVS (FURUKAWA et al. 2010), PMVS (FURUKAWA et PONCE 2010)) sous les systèmes d’exploitation Linux et Windows. Ce projet est intégré à la distribution Linux ArcheOS dédiée aux archéologues et utilisé avec succès pour de nombreux projets de reconstitution faciale (cf. figure 2.5). FIGURE 2.5 – Projets de reconstitution faciale menés par Cicero Moraes à partir de photographies de crânes reconstitués en 3D via l’utilisation de PPT-GUI et Blender. – VG VG VG openMVG (Open-source MultipleViewGeometry) est une bibliothèque C++ open-source conçue pour la recherche reproductible en vision par ordinateur. Elle fournit une implémentation de l’état de l’art et un accès facilité aux outils communs utilisés en géométrie multi-vues. La bibliothèque est multiplateforme, peut être compilée sous Windows, Linux, MacOS et est utilisable sur des architectures de type ARM (Apple Iphone iOS). Cette bibliothèque contient le code relatif aux publications CVMP2012, ACCV 2012 et IPOL 2012. La qualité de ce projet est évaluée dans le temps par une machine d’intégration continue et une série de tests unitaires garantissant la non régression des fonctionnalités délivrées. 2.1.4 Participation à la vie scientifique Récompenses : • Le 31/10/2011 le groupe Imagine remporte le premier prix du PROVISG Mars 3D Challenge. La compétition portant sur 3 thématiques : 1. la reconstruction de cartes de disparité, 2. la reconstruction de trajectoires de caméras à partir d’images acquises par un robot, 3. la reconstruction 3D de la géométrie de la scène observée par le robot (cf. figure 2.6), nous a désignés vainqueurs parmis les 6 équipes participantes. Les évaluations ont été réalisées sur des images du CNES et du robot martien «MER Mars Exploration Rovers», fournies par le comité organisateur (le CMP (Center for Machine Perception) de l’université CTU de Prague).34 2–Introduction FIGURE 2.6 – Exemple de la reconstruction 3D d’un artefact de la planète Mars que nous avons pu réaliser à partir d’images du robot MER fournies par le comité organisateur. Les résultats ont été présentés à la conférence ICCV en 2011 au groupe de travail «CVVT :E2M – Computer Vision in Vehicle Technology : From Earth to Mars» et publié dans le journal de la conférence. Je tiens à remercier David Ok, Victoria Rudakova et Pascal Monasse sans qui cette aventure n’aurait pas été couronnée de succès et aussi Gerhard Paar, Rongxing (Ron) Li et Tomas Pajdla pour leur accueil à l’université de Columbus et au JPL Nasa pour la présentation des résultats. • Vainqueur du prix NVIDIA pour le meilleur papier court à la conférence CVMP 2013 pour le travail intitulé ’Global Multiple View Color Consistency’. Encadrement de stages : • Badis Djellab étudiant ENPC : Stage réalisé au laboratoire Imagine sur l’estimation multi-modèle en utilisant les méthodes de J-Linkage (TOLDO et FUSIELLO 2008). Étude de l’impact de la suppression a contrario de modèle non-significatif pour accélérer et estimer avec plus de précision le nombre de modèles à identifier. • Bruno Duisit étudiant Polytech Paris Sud (Université Paris XI) : Stage réalisé au sein de l’entreprise Mikros Image sur la modélisation 3D à partir d’une image dans le logiciel Maya et la réalisation d’une interface de visualisation et édition de graphes d’images. • Tristan Faure et Luc Girod étudiants ENSG : Stage réalisé au laboratoire Imagine sur la mise en place d’un protocole d’acquisition de vérité terrain pour une évaluation des méthodes de photogrammé- trie. • Emmanuel Habbets étudiant ENSG : Stage réalisé au laboratoire Imagine sur le calcul et la fusion de cartes de disparité. Implémentation partielle d’une chaîne de traitement similaire aux travaux de TOLA et al. (2012). • Rafaël Marini Silva étudiant de l’école polytechnique : Stage réalisé sur les méthodes de recherche de plus proches voisins parmi de larges collections d’images. Implémentation d’un moteur de recherche basé sur la quantification d’espace descriptif (JEGOU et al. 2011). • Lucas Plaetevoet étudiant ENPC : Stage réalisé au laboratoire Imagine sur la fusion d’acquisition de nuage de points issus de capteur de type Kinect (lumière structurée).2.1–Organisation et contributions du manuscrit 35 Encadrement salarié : • Bruno Duisit (Mikros Image) : Encadrement de Bruno sur la thématique du projet MiMatte3D (cf. section 2.1.2). Relecteur : Relecteur pour le journal en ligne IPOL http://www.ipol.im. 2.1.5 Publications de l’auteur • Revue internationale : Automatic Homographic Registration of a Pair of Images, with A Contrario Elimination of Outliers. L Moisan, P Moulon, P Monasse. IPOL 2012. • Conférence internationale avec actes : Global Fusion of Relative Motions for Robust, Accurate and Scalable Structure from Motion. P Moulon, P Monasse, R Marlet. ICCV 2013. Adaptive Structure from Motion with a contrario model estimation. P Moulon, P Monasse, R Marlet. ACCV 2012. • Démonstration en conférence internationale : Adaptive model estimation, a real time demonstration. P Moulon, P Monasse, R Marlet. ACCV 2012. • Conférence internationale avec comité de relecture : Global Multiple-View Color Consistency. P Moulon, D Bruno, P Monasse. CVMP 2013. (Vainqueur du prix NVIDIA pour le meilleur papier court). Unordered feature tracking made fast and easy. P Moulon, P Monasse. CVMP 2012. • Conférence nationale avec comité de relecture : La bibliothèque openMVG : open source Multiple View Geometry. P Moulon, P Monasse, R Marlet. Orasis, Congrès des jeunes chercheurs en vision par ordinateur 2013. Estimation robuste de modèles a contrario, impact sur la précision en structure from motion. Présentation orale. P Moulon, P Monasse, R Marlet. ISS France 2013. • Groupe de travail : L’utilizzo di tecniche structure from motion e imagebased modelling in ambienti estremi. P Moulon, Nicolò Dell’Unto, A Bezzi, L Bezzi, Rupert Gietl. Low Cost 3D 2012. Python Photogrammetry Toolbox : A free solution for Three-Dimensional Documentation. P Moulon, A Bezzi. ArchoFoss 2011. • Bibliothèque open source : OpenMVG Open-source MultipleViewGeometry 2012. https://github.com/ openMVG/openMVG.36 2–Introduction37 Chapitre 3 La géométrie multiples vues et l’estimation de mouvements Lorsqu’une scène est photographiée sous plusieurs points de vue, la connaissance du déplacement apparent des éléments de la scène à travers la série d’images permet de retrouver le déplacement de l’appareil photographique et d’obtenir une représentation 3D de la scène observée : on parle alors de SfM Structure from Motion. Ce chapitre présente : 1. le modèle projectif classique de caméra, 2. une série de relations géométriques formulées à partir de correspondances de points homologues entre photographies, 3. comment détecter et suivre des éléments à travers une série d’images. Sommaire 3.1 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.2 La géométrie caméra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 3.3 La géométrie à 2 vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 3.4 La géométrie à 3 vues . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 3.5 La triangulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 3.6 L’estimation de pose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.7 L’ajustement de faisceaux . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.8 La géométrie multiples-vues et l’estimation de mouvements . . . . . 49 3.9 La mise en correspondances de points saillants . . . . . . . . . . . . . 51 3.9.1 La détection de points saillants . . . . . . . . . . . . . . . . . . . 52 3.9.2 La description de point saillants . . . . . . . . . . . . . . . . . . 53 3.9.3 L’appariement de point saillants . . . . . . . . . . . . . . . . . . 54 3.10 Méthode de fusion rapide de paires de correspondances de points saillants entre images . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 3.10.1 Une solution ensembliste pour la construction de traces de points saillants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 3.11 Contributions de ce chapitre . . . . . . . . . . . . . . . . . . . . . . . . 6338 3–La géométrie multiples vues et l’estimation de mouvements 3.1 Notations Dans les sections suivantes nous allons travailler avec des coordonnées définies dans un espace cartésien ou projectif. En géométrie projective, les coordonnées homogènes rendent les calculs possibles dans l’espace projectif comme les coordonnées cartésiennes le permettent dans l’espace euclidien. Les coordonnées homogènes d’un point de l’espace projectif de dimension n (x,y,z,...) sont écrites habituellement comme un vecteur de longueur n + 1 (x,y,z, ... , w). Deux ensembles de coordonnées qui sont proportionnels dénotent le même point d’espace projectif : pour tout scalaire non-nul c, (cx, cy, cz,..., cw) est équivalent à (x, y,z,w). La coordonnée w = 0 permet de représenter un élément à l’infini. Le passage de coordonnées homogènes à des cordonnées carté- siennes est réalisé en divisant les n premiers éléments par le n+1 e , soit w. Un point 3D en coordonnées homogènes X4×1 = {X(1),X(2),X(3),X(4)} est repré- senté en coordonnées cartésiennes X3×1. Pour tout W différent de 0, on obtient l’équation : X = (X(1)/W,X(2)/W,X(3)/W) T X ∼ ( ∼ X, ∼ Y, ∼ Z,1) T , (3.1) avec ∼ définissant l’égalité à une échelle 1 W près avec W = X(4). De la même manière, un point 2D en coordonnées homogènes x3×1 = {x(1),x(2),x(3)}, est en relation avec son équivalent en coordonnées cartésiennes x2×1 : x = (x(1)/w,x(2)/w) T x ∼ ( ∼ x, ∼ y,1) T (3.2) avec ∼ définissant l’égalité à une échelle 1 w près avec w = x(3). Notations complémentaires x Un point en coordonnées cartésiennes x Un point en coordonnées homogènes {A} Une liste d’éléments de type A [A] Une liste ordonnée d’éléments de type A (A,B) Couple d’éléments associés, ici un 2-uplet R Matrice de rotation t Vecteur de translation C Position du centre de projection d’une caméra K Matrice des paramètres intrinsèques d’une caméra Xj Point 3D d’index j x i j Projection du point 3D Xj dans l’image i tr Déplacements apparents des projections des points {Xj}j dans une série d’images GA Graphe entre élements de type A R k i k e ligne de la matrice de rotation de l’image i t k i k e composante du vecteur de translation de l’image i x i j (k) k e composante du point x i j3.2–La géométrie caméra 39 3.2 La géométrie caméra Un sténopé modélise un appareil photographique comme un système réalisant la projection centrale d’une scène en 3 dimensions en 2 dimensions. Une image est le ré- sultat d’une intégration de rayons lumineux observés sur une surface sensible durant un court intervalle de temps à travers une série de lentilles. Lorsque ce système optique est approximé par une seule lentille, on obtient un modèle simple de projection perspective, le modèle sténopé. Dû au fait que l’ensemble des rayons lumineux observés passe par un seul et unique point (le centre de projection) ces caméras sont souvent appelées pinhole. FIGURE 3.1 – Illustration d’une caméra sténopé. Un point 3D X est projeté en x sur un plan image par une projection centrale. On appelle paramètres extrinsèques, la transformation rigide [R|t] entre le repère monde O et la position de la caméra C. Pour simplifier le plan image est ici montré en avant du centre optique C. Sur une caméra réelle ce plan image est situé derrière le centre optique et tourné à 180◦ . Ce système d’acquisition peut être réduit à deux composantes principales : – un système optique permettant de réaliser la projection de la scène observée sur un plan focal : R 3 → R 2 . – une surface photo-sensible qui capte les densités de photons par pixels pour former une image. Une caméra sténopé transforme un point X de R 3 en un point image x de R 2 à travers deux opérations : Un changement de repère. Soit Xc un point monde défini dans le repère de la caméra : Xc =  R t 0 1 X (3.3) Cette relation de passage entre le repère monde et le repère local caméra dépend de 6 degrés de liberté que l’on appelle les paramètres extrinsèques : – 3 degrés de liberté pour l’orientation de la caméra : une matrice de rotation R3×3, – 3 degrés de liberté pour la translation, décrite par le vecteur t3×1, t représente la position de l’origine monde O dans le repère caméra. La position C du centre optique de la caméra est donc C = −R T t.40 3–La géométrie multiples vues et l’estimation de mouvements Une projection et une mise à l’échelle. La transformation réalisée par l’optique et la géométrie du capteur est modélisée par les paramètres intrinsèques définis par le biais de 6 paramètres par une matrice K×3. Cette matrice dite de calibration ou bien calibrage, peut s’écrire comme suit : K =   f ku s cu f kv cv 1   (3.4) Soit : – f la distance focale, distance du centre optique au plan focal, – s, ku et kv des facteurs d’échelles, – c : (cu, cv) le point principal modélise le décalage de l’origine, Un point 3D en repère caméra Xc a pour correspondant x image : x = [K|0]Xc = K  R t 0 1 X (3.5) Ainsi un point x en repère image est transformé en un rayon en repère caméra xˆ comme suit : xˆ = K −1 x (3.6) Pour simplifier nous utiliserons c au centre de l’image de taille w×h et des pixels carrés sur la surface photo sensible (ku = kv = 1 et s = 0) : K =   f w/2 f h/2 1   (3.7) Finalement ces deux transformations peuvent être combinées en une seule opération matricielle. Un point X exprimé dans le repère monde est donc relié à sa projection image x par la formule suivante : x = PX (3.8) Avec P = K[R|t] une matrice de projection de taille 3×4. On néglige ici la distorsion causée par l’optique. Nous invitons le lecteur à consulter les travaux de (BROWN 1966) pour plus de détails.3.3–La géométrie à 2 vues 41 3.3 La géométrie à 2 vues Homographie Lorsqu’un objet est plan, il est possible de définir une transformation exacte entre les points homologues x et x ′ . La transformation la plus générale pour ce couple de points (x, x ′ ) est appelée homographie. L’homographie désigne une classe de transformations projectives qui conservent les alignements. Si tous les points appartiennent à un même plan, alors les projections obtenues dans les images conservent leur alignement (cf. figure 3.2). L’image d’une ligne reste donc une ligne. La fonction de passage entre les coordonnées de l’observation dans l’image gauche et droite (x, x ′ ), est définie par une transformation homographique H. x ′ = Hx (3.9) H est une matrice de transformation : – projective 2D linéaire conservant les alignements, – inversible entre les plans projectifs. On peut donc écrire : x = H −1 x ′ . (3.10) – de taille 3×3 définie à un facteur près qui lui confère 8 degrés de liberté. La matrice H étant définie à un facteur d’échelle près et chaque couple de points homologues fournissant 2 équations indépendantes sur H, quatre points homologues sont nécessaires pour définir de manière unique les huit paramètres indépendants de l’homographie. Certaines configurations de points peuvent mener à des cas dégénérés, nous invitons le lecteur à lire MOISAN et al. (2012) pour les détecter. FIGURE 3.2 – La relation homographique établit une relation point à point entre les images d’une surface plane dans plans images. Note : Lorsqu’une caméra effectue un mouvement de rotation autour de son centre optique (le point nodal), les images acquises sont reliées par des homographies. Ce mouvement particulier de caméra permet la construction d’images panoramiques.42 3–La géométrie multiples vues et l’estimation de mouvements La matrice essentielle et la géométrie épipolaire La notion de matrice essentielle E a été proposée par LONGUET HIGGINS (1981). La matrice E modélise le changement de repère entre deux caméras : une rotation R et une translation t. Cette géométrie repose sur la géométrie épipolaire qui associe à un point x une droite l ′ (x), notée l ′ pour simplification. Cette droite, dite ligne épipolaire, est située à l’intersection du plan image droit et du plan épipolaire défini par les points C, C ′ et x. l ′ est ainsi l’observation du rayon −→CX par la caméra C ′ . Toutes les lignes épipolaires ont un point commun, la projection du centre optique de l’autre caméra. Ces points sont appelés épipôles et sont notés e, e ′ respectivement pour la caméra gauche et droite. FIGURE 3.3 – Relation épipolaire entre deux images. Étant donné une projection x d’un point 3D X, sa projection x ′ dans l’image droite est restreinte à la ligne épipolaire correspondante l ′ . La contrainte épipolaire est traduite par l’utilisation de la matrice essentielle E. Cette matrice permet de mettre en relation une correspondance de point entre deux images. Soit deux caméras P = [I|0] et P ′ = [R|t]. Étant donné un point X en coordonnée euclidienne dans le repère de la caméra gauche, sa position dans le repère de la caméra droite est : X ′ = RX +t (3.11) Une pré-multiplication par X T [t]× permet d’obtenir : X T [t]×RX′ = X TEX′ (3.12) ou E ∼ [t]×R est une matrice 3×3 et t est un vecteur de taille 3. [t]× est la représentation matricielle du produit vectoriel (cross product matrix). Il est intéressant de noter que la relation 3.12 est aussi utilisable avec des correspondances en repère caméra : xˆ′ T Exˆ = 0 (3.13) E possède 5 degrés de liberté car elle dépend seulement de R et de la direction de translation t. Multiplier t par un facteur d’échelle revient à multiplier E par le même facteur, ce qui exprime les mêmes contraintes. La matrice essentielle peut être identifiée à partir de 8 correspondances si l’on utilise la formulation générale x ′TEx = 0 sans contraintes de structure de la matrice E et 5 points si l’on utilise des matrices de calibration connues cf. (NISTÉR 2004 ; LI et HARTLEY 2006).3.3–La géométrie à 2 vues 43 La matrice fondamentale La géométrie épipolaire a notamment été étudiée par LUONG (1992) et FAUGERAS (1992). Pour toute correspondance entre deux images on peut reprendre l’équation 3.13 : xˆ′ T Exˆ = 0 et l’écrire en considérant des points images (en coordonnées image, pixels) : (K −1 r x ′ ) TE(K −1 l x) = 0, x ′T (K −T r EK −1 l )x = 0, x ′T Fx = 0, (3.14) ou F ∼ K′−TEK−1 est la matrice fondamentale. F est définie de taille 3×3 à un facteur multiplicatif près, de rang 2, ce qui lui confère donc 7 degrés de liberté. Cette matrice établit une relation point-ligne tout comme la matrice essentielle. La matrice F peut être estimée à partir de 8 correspondances HARTLEY (1997a) ou à partir de 7 correspondances en forçant a posteriori la contrainte de rang (TORR et MURRAY 1997). Cette dernière méthode est la solution dite minimale et identifie de 1 à 3 solutions pour un échantillon de 7 correspondances. La géométrie épipolaire fournie par la matrice F est particulièrement intéressante car elle établit une relation entre des points en géométrie image. Les paramètres intrinsèques ne sont pas nécessaires pour vérifier la consistance géométrique d’une paire de points. Les épipôles étant les points d’intersection de toutes les droites épipolaires, ils défi- nissent aussi le noyau de F : Fe = 0 et F T e ′ = 0.44 3–La géométrie multiples vues et l’estimation de mouvements 3.4 La géométrie à 3 vues La géométrie d’un triplet d’images peut être représentée par un tenseur tri-focal T (HARTLEY 1997b). T définit les relations épipolaires entre trois vues indicées i, j, k par une matrice cube de taille 3×3×3. Un point x est mis en correspondance avec ses deux lignes épipolaires correspondantes : l ′ , l ′′ (cf. figure 3.4) : ∑ i jk x(i)l ′ j l ′′ k T jk i (3.15) Ce tenseur est une généralisation du concept de la matrice fondamentale à un ensemble de trois vues. Soit trois matrices de projections : P1 = [Id|0], P2 = [a i j ] et P3 = [b i j ]. Le tenseur trifocal est défini ainsi : T jk i = a j i b k 4 −a j 4 b k i | i, j, k = 1,2,3 (3.16) avec i j une entrée de la matrice tel que i désigne la ligne et j la colonne. FIGURE 3.4 – Les relations épipolaires existantes au sein d’un tenseur tri-focal T. Une des propriétés les plus importantes du tenseur tri-focal est que la formulation du tenseur permet d’établir des relations linéaires entre des lignes et points en correspondances entre les trois images. Des contraintes tri-linéaires sont exprimables pour les relations suivantes : ligne-ligne-ligne point–ligne–ligne point–ligne–point point–point-point Une autre particularité du tenseur tri-focal par rapport aux tenseurs à deux vues (bifocaux), telle que la matrice fondamentale, est la relation de transfert. Cette relation de transfert permet d’identifier des points manquants lors de mises en correspondances.3.5–La triangulation 45 Supposons qu’une correspondance est connue (x i ↔ x j ) mais que le point correspondant dans la troisième image x k ne l’est pas. L’utilisation de la contrainte point-ligneligne pour x i et x j identifie alors par intersection le point x k . Il est situé à l’intersection des deux lignes épipolaires l ′′ et l ′′′ . 3.5 La triangulation La triangulation est le procédé de calcul d’un point 3D X d’après ses observations images x i et des matrices de projections Pi . Idéalement le point 3D X est situé à l’intersection des rayons −→ Cix i . Étant donné que les données sont le plus souvent bruitées, les rayons ne s’intersectent pas en pratique : cf. figure 3.5. Le candidat X est alors choisi comme le point ayant les plus faibles erreurs de re-projection entre les projetés images Pi(X) et les points de mesures x i : minimiser X n ∑ i=1 x i −PiX 2 (3.17) avec n le nombre de vues considérées. Cependant une formulation directe menant à cette solution n’est pas évidente à mettre en place. Souvent une solution approximative est calculée, puis les erreurs résiduelles sont minimisées par itérations de l’algorithme de Levenberg-Marquardt (cf. (HARTLEY et ZISSERMAN 2000)). FIGURE 3.5 – La triangulation : Calcul du point X en fonction des caméras Pi et reprojections images. A cause du bruit de mesure, le point X n’est pas aisé à identifier. On note dans la littérature une série de méthodes pour trouver un candidat X dans le cas à deux vues (cf. figure 3.6) : Point milieu On recherche un point X situé sur le segment le plus court entre les deux rayons −→ Cix i . Ce segment est identifié grâce à la droite orthogonale aux deux rayons considérés. Le point 3D recherché est alors situé au milieu de ce segment. Optimisation linéaire ou dite de minimisation algébrique. Avec l’utilisation des coordonnées homogènes on peut utiliser le fait que les vecteurs x i sont colinéaires à PiX pour écrire : [x i ]×PiX = 0 (3.18) Cette équation peut être réécrite sous une forme solvable aux moindres carrés : AX = 0 (3.19)46 3–La géométrie multiples vues et l’estimation de mouvements avec A une matrice 3n×4, n le nombre de vues et X un point visible (situé devant les caméras). La solution en coordonnée homogène est calculée en minimisant ||AX|| sujet à ||X|| = 1 pour éviter la solution triviale X = 0 (cf. Triangulation DLT (Direct Linear Transform) : HARTLEY et ZISSERMAN (2000)). Optimisation itérative une solution initiale est identifiée puis optimisée de manière itérative (LINDSTROM 2010). Optimale le point X est recherché en minimisant une erreur géométrique : les erreurs résiduelles. On minimise l’équation 3.17 directement (KANATANI et al. 2008). Cette méthode est dite méthode gold-standard (cf. (HARTLEY et ZISSERMAN 2000)). FIGURE 3.6 – De gauche à droite, de haut en bas. Situation théorique, point milieu, méthode linéaire, méthode optimale. Limitations Les méthodes DLT sont le plus couramment utilisées dans le cas de la triangulation à n vues, car identifier une solution optimale de manière directe implique des équations complexes qui sont non triviales à résoudre. Des solutions optimales ont été exprimées pour le cas à deux et trois vues (BYRÖD et al. 2007), mais pas au delà. Perspectives HARTLEY et SCHAFFALITZKY (2004a) proposent une formulation quasi-convexe du problème qui permet d’identifier X par minimisation de la norme l∞ des erreurs résiduelles. Cette formulation minimisée par bissection permet de vérifier l’existence d’une solution et de garantir que la solution calculée est optimale par rapport au critère d’ajustement utilisé (la norme l∞ des erreurs de re-projection).3.6–L’estimation de pose 47 3.6 L’estimation de pose Étant donné des correspondances entre des points 3D Xj et les points images 2D xj , on cherche à identifier la matrice de caméra P optimale (cf. figure 3.7). On recherche ainsi la pose (orientation et position) de la caméra qui fait que les rayons −−→CXj passent au plus près possible des m points 2D xj projections des Xj . minimise P m ∑ j=0 xj −PXj 2 (3.20) Ce problème appelé Perspective-n-Point est traité en fonction du nombre de degrés de liberté de la pose : 1. Le cas non calibré : la matrice P de taille 3 × 4 est à identifier. 12 degrés de liberté sont à estimer. Une formulation linéaire de l’équation (3.20) permet de trouver aux moindres carrés une matrice P possible à partir de 6 correspondances 2D-3D (HARTLEY et ZISSERMAN 2000). 2. Le cas calibré (la matrice de calibration K est connue) : 6 degrés de liberté sont ainsi à identifier : 3 pour l’orientation R et 3 pour la position t de la caméra. La connaissance a priori de la matrice de calibration permet de réduire le nombre de correspondances nécessaires. Trois correspondances sont suffisantes pour identifier un ensemble de solutions possibles (GAO et al. 2003 ; KNEIP et al. 2011). Le lecteur est invité à consulter LEPETIT et al. (2009) pour une liste plus exhaustive de différentes méthodes qui, à partir de n correspondances, estiment la pose [R|t] de la caméra (méthodes PnP (Perspective-n-Point)). FIGURE 3.7 – L’estimation d’une pose de caméra (une orientation et position) est déterminée à partir de n correspondances 3D-2D.48 3–La géométrie multiples vues et l’estimation de mouvements 3.7 L’ajustement de faisceaux L’ajustement de faisceaux, Bundle Adjustment, est un processus d’optimisation non linéaire. On souhaite optimiser un vecteur de paramètres pour réduire une fonction d’objectif donné. Dans notre cas la fonction objectif vise à réduire les erreurs résiduelles de re-projection de la structure Xj aux mesures images x i j . x i j étant la projection du point 3D Xj dans l’image i. Le vecteur de paramètres est défini par une configuration initiale : les paramètres des caméras {Pi}i et la structure de la scène {Xj}j . Cette minimisation est réalisée par utilisation d’une procédure itérative, l’algorithme de Levenberg-Marquardt. Un vecteur p de départ représentant la configuration des paramètres est initialisé. A chaque itération, on remplace p par une nouvelle estimation p + q, q étant déterminé pour réduire la fonction objectif à minimiser. Lorsque la fonction objectif ne varie plus ou que le vecteur de paramètres est stable l’algorithme est arrêté. Une convergence vers la solution optimale est observée si le vecteur de départ n’est pas trop éloigné de la solution. Par contre, si la solution initiale est éloignée, une solution locale peut être identifiée. Le problème d’ajustement de faisceaux est donc posé pour réduire la fonction coût suivante : minimise {Pi}i ,{Xj}j m ∑ j=0 n ∑ i=0 x i j −PiXj 2 (3.21) avec n le nombre de matrices de projection P et m le nombre de points 3D considérés dans la scène. FIGURE 3.8 – L’ajustement de faisceaux : Une minimisation non linéaire des paramètres de projection des caméras et de la structure 3D de la scène est réalisée pour réduire les erreurs de re-projection résiduelles observé en domaine image. Une synthèse complète sur l’ajustement de faisceaux est proposée par TRIGGS et al. (2000). Ce problème d’optimisation peut être résolu avec l’usage de matrices parcimonieuses (LOURAKIS et ARGYROS 2004). WU et al. (2011a) proposent une implémentation parallèle (GPU ou CPU) et AGARWAL et MIERLE (2012) proposent une implémentation parallèle générique pouvant utiliser une norme robuste pour éviter l’influence de mesures aberrantes : Ceres-solver. Ceres présente l’avantage d’être générique, la spécifica-3.8–La géométrie multiples-vues et l’estimation de mouvements 49 tion des variables et la fonction objectif intervenant dans un problème non-linéaire sont très facilement paramétrables, ce qui facilite l’implémentation de l’équation (3.21). 3.8 La géométrie multiples-vues et l’estimation de mouvements Les techniques de structure à partir du mouvement, Structure-from-Motion, estiment le déplacement d’une caméra ou d’un appareil photographique et reconstruisent la structure de la scène à partir d’une séquence d’images. Soit la séquence d’images Ij , j ∈ {0,n}. Le procédé est le suivant : des éléments (ou primitives, par exemple des points saillants 2D) sont détectés puis suivis à travers l’ensemble des images : x i j . La visibilité des points 3D Xj image est ainsi connue. Les techniques de SfM cherchent alors à identifier des caméras Pi ainsi qu’une structure Xj représentant au mieux les données de visibilité x i j . C’est un problème d’optimisation ou l’on cherche à minimiser la somme des erreurs résiduelles en domaine image, l’équation (3.21), ou intervient n images et m points 3D. Ces erreurs résiduelles mesurent la précision de la reconstruction : l’adéquation entre la structure, les positions de caméra et les mesures images. Ces erreurs de re-projections, appelées erreurs résiduelles, représentent la distance entre les observations x i j images et la re-projection des points 3D Pi(Xj) reconstruit. FIGURE 3.9 – Illustration de la problématique de SfM. A partir de correspondances entre images relatant des projections de points 3D commun, il s’agit d’identifier la structure et les positions et orientations des clichés dans l’espace.50 3–La géométrie multiples vues et l’estimation de mouvements On note trois grandes catégories d’algorithmes de Structure-from-Motion (cf. figure 3.10) : 1. Les méthodes séquentielles, Sequential SfM : La méthode de reconstruction fait naître une première graine 3D, une reconstruction initiale créée à partir de deux vues, puis la méthode fait croître cette reconstruction en agrégeant les images restantes par estimation de pose. Des itérations répétées d’ajustement de faisceaux sont utilisées pour limiter les effets de dérive et d’accumulation d’erreurs. On distingue deux sous cas en fonction de la manière d’établir les correspondances visuelles considérées entre images : Dans le cas de séquences d’images ordonnées : Les images sont traitées les unes après les autres dans leur ordre d’arrivée : odométrie visuelle ou SLAM (communauté robotique). Les traces sont construites de proche en proche à chaque arrivée d’image. Dans le cas de séquences d’images non ordonnées : Les images sont traitées dans leur ensemble pour construire les correspondances visuelles et identifier les traces. 2. Les méthodes hiérarchiques, Hierarchic SfM : Les images sont traitées par sous ensembles et sont fusionnées de manière hiérarchique afin de reconstruire l’intégralité de la scène. 3. Les méthodes globales, Global SfM, Batch SfM : Les images sont traitées dans leur ensemble. On distingue ici deux méthodes : – Factorisation, Batch SfM : On recherche les matrices de projection et la structure de la scène simultanément, – Global SfM : Supposant les paramètres intrinsèques connus (une caméra calibrée) le problème de SfM est découpé en deux sous tâches. D’abord les rotations globales sont identifiées pour toutes les images puis dans un second temps la structure et les translations des caméras sont identifiées. FIGURE 3.10 – Illustration du processus des méthodes de SfM, de haut en bas, séquentielle, hiérarchique et globale. Chaque point noir implique une reconstruction 3D ou un assemblage de reconstructions 3D.3.9–La mise en correspondances de points saillants 51 3.9 La mise en correspondances de points saillants L’extraction de caractéristiques visuelles, visual features extraction, consiste en des transformations mathématiques calculées sur les pixels d’une image numérique. Ces transformations permettent de mettre en évidence des éléments saillants possédant certaines propriétés visuelles de l’image et de rechercher si des images possèdent du contenu en commun localement similaire. Cette mise en correspondances photomé- trique est réalisée en trois étapes principales : 1. La détection : Une prise de décision locale en chaque point de l’image détermine si la zone de l’image présente une caractéristique intéressante. Les zones mises en évidence représentent des sous-ensembles du domaine de l’image, souvent sous la forme de points isolés, de segments, de courbes continues ou de régions. 2. La description : Une zone locale est utilisée autour de chaque zone d’intérêt pour construire une signature venant décrire la région autour du point d’intérêt. 0 .2 0 .5 … 0 .2 0 .6 0 .1 0 .2 … 0 .5 0 .1 0 .6 0 .3 … 0 .3 0 .1 3. L’appariement : Une comparaison des signatures entre deux images permet d’identifier les zones similaires et ainsi d’identifier des points saillants images d’un même point 3D de la scène observée. Le résultat de la phase d’appariement est utilisé par de nombreuses applications en vision par ordinateur : – la reconnaissance et le suivi d’objets, – l’assemblage d’images panoramiques, – la stabilisation vidéo, – la reconstruction 3D et l’odométrie visuelle.52 3–La géométrie multiples vues et l’estimation de mouvements 3.9.1 La détection de points saillants Il est primordial que la détection de points saillants dans une image soit le plus robuste possible. L’invariance à certaines transformations comme la translation, la rotation et l’échelle permettront ainsi d’établir avec plus de succès les futures étapes d’appariements de points, et donc la robustesse des correspondances établies avec le déplacement de la caméra. Plus un détecteur sera à même d’exhiber des points localisés pré- cisément d’une image à l’autre plus il sera pertinent. Plusieurs catégories de détecteurs sont identifiables : – les bords, edges, curves (Canny, LSD, ...), – les coins, corners (Harris, Fast, ...), – les régions, blobs (Sift, Surf, Kaze, Mser, ...). De nombreuses approches ont été proposées pour améliorer la robustesse et la répé- tabilité de la détection de points saillants. L’une des premières approches a avoir été largement utilisée est le détecteur de coins de HARRIS et STEPHENS (1988), invariant à l’orientation de la structure détectée. LINDEBERG (1998) a ensuite proposé une repré- sentation en espace échelle linéaire des images qui permet de définir une famille de détecteurs de structures invariantes par changement d’échelle. L’utilisation de cet espace échelle a été généralisé à la détection de coins par Harris-Laplace (MIKOLAJCZYK et SCHMID 2001) et à la détection de blobs avec l’utilisation de différences de gaussiennes par LOWE (1999). En définissant un point d’intérêt comme un extremum local de la représentation en espace-échelle, ces approches permettent d’attribuer à ce point une échelle caractéristique. Ces approches sont souvent coûteuses en calcul à cause de la construction de l’espace échelle. Certaines approximations sont alors réalisées, au détriment de la précision de localisation des zones saillantes, mais au profit de gains de calculs non négligeables. L’utilisation d’images intégrales par la méthode SURF (BAY et al. 2006) permet de réduire la consommation mémoire et de réaliser les opérations de filtrage de manière très efficace. L’exploration de nouveau espace échelle mené par ALCANTARILLA et al. (2012) démontre de meilleures stabilités sur les détections réalisées et laisse envisager un détecteur encore plus performant (proche du temps réel : ALCANTARILLA et al. (2013)). FIGURE 3.11 – Une image i est décrite par un ensemble j de points saillants : {P i j }i, j . Dans le cas de SIFT une position, une orientation et une échelle caractéristique sont extraits par points.3.9–La mise en correspondances de points saillants 53 3.9.2 La description de point saillants Afin de retrouver les observations image x i j d’un même point 3D Xj parmi une sé- quence d’images, il est nécessaire d’identifier chaque observation image de manière unique. Pour cela, chaque point est décrit par une signature. Cette signature définit un ensemble de caractéristiques, un descripteur local qui est une représentation compacte du voisinage du point d’intérêt (cf. figure 3.12). 0 .2 0 .5 … 0 .2 0 .6 0 .1 0 .2 … 0 .5 0 .1 0 .6 0 .3 … 0 .3 0 .1 FIGURE 3.12 – Chaque points saillants : {P i j }i, j est décrit par une transformation de la zone image locale l’entourant : {desc(P i j )}i, j . Une solution simple, mais peu robuste, consiste à extraire un patch centré sur le point d’intérêt. Mais le support d’invariance de ce type de descripteur est faible et limite donc son usage. La robustesse de la description locale des points saillants peut être améliorée en supportant l’invariance à des transformations géométriques et aux changements d’éclairement. LOWE (1999) propose une représentation locale appelée SIFT. Ce descripteur SIFT est composé d’histogrammes d’orientation du gradient. Ces histogrammes sont estimés à partir de régions distinctes du voisinage normalisé et centré de chaque point d’intérêt considéré. Il a été montré par MIKOLAJCZYK et SCHMID (2005) que ce type de descripteur est très robuste à différents phénomènes, tels que : bruit, compression JPEG, changement d’éclairement, rotation et changement d’échelle. Ce type de descripteur est très utilisé pour les applications de recherche par le contenu et la photogrammétrie car il possède une répétabilité élevée. Un inconvénient majeur des descripteurs de type SIFT est l’occupation mémoire. On construit en effet un descripteur de 128 valeurs flottantes par point d’intérêt. Cet espace de relativement haute dimension n’est pas idéal pour les calculs sur des collections d’images à large échelle. Des alternatives permettent de réduire la taille des signatures en utilisant des signatures binaires. Ces signatures ont l’avantage d’être plus compactes en mémoire et de proposer un espace de faible dimension. Leur dimension étant plus faible, la phase d’appariement sera réalisée de manière plus rapide. STRECHA et al. (2012) projettent les descripteurs SIFT en une représentation compacte via une matrice de projection apprise par machine-learning. CALONDER et al. (2012) calculent nativement un descripteur binaire par l’utilisation du signe de la différence de couple de points sur une grille autour du point d’intérêt. Idéalement on souhaite disposer de détecteurs et descripteurs de points d’intérêt ayant les qualités suivantes : – invariance de détection en translation, rotation et échelle, – invariance aux variations d’éclairement (luminosité, contraste), – un critère suffisamment local pour gagner en robustesse aux occultations mais suffisamment large pour décrire suffisamment de contenu. L’ajout de nouveaux degrés d’invariance tend à créer des faux positifs lors de l’établissement de correspondances, car plus on devient invariant plus les points ont de chance de se ressembler. C’est pourquoi lors de conditions d’acquisition contrôlée (comme c’est le cas avec des robots mobiles), l’invariance en rotation n’est pas considérée. En considérant une orientation verticale, des appariements plus stables seront ainsi identifiés.54 3–La géométrie multiples vues et l’estimation de mouvements 3.9.3 L’appariement de point saillants Soit deux images, A et B, représentées par un ensemble de points saillants et descripteurs. La phase d’appariement consiste à identifier les points ayant une forte similarité entre les deux images. On note NA le nombre de points d’intérêts de l’image A et NB ceux de l’image B. Pour chaque point saillant de A on recherche les points les plus similaires de B. Cette mesure de ressemblance est réalisée par l’utilisation d’une métrique entre les descripteurs liés aux points. Les NB distances sont évaluées pour chaque point de A dans B. Cet ensemble présentant de nombreuses fausses hypothèses, il convient d’utiliser un critère de rejet basé sur l’analyse des distances calculées pour retenir uniquement les distances les plus vraisemblables (cf. figure 3.13). L’étape d’appariement nécessite trois éléments : – la recherche de plus proches voisins pour obtenir les correspondances hypothèses, – l’utilisation d’une métrique pour mesurer la similarité d’une correspondance, – l’utilisation d’une politique de rejet pour valider une correspondance. FIGURE 3.13 – Appariements : les points les plus similaires de l’image A (gauche) sont recherchés dans l’image B droite. Un filtre est utilisé pour déterminer de tous les candidats possibles si une correspondance est dominante ou non. La recherche de plus proches voisins pour chaque point d’intérêt est un problème coûteux. La méthode naïve teste de manière exhaustive toutes les possibilités et les ordonne par distance. Cette méthode est dite de force brute, Brute force. Des méthodes de calculs approchées identifient les k plus proches voisins d’un descripteur plus rapidement. Ces méthodes approchées, ANN, Approximate Nearest Neighbour, répartissent les descripteurs suivant leur ressemblance dans un arbre binaire (KD-TREE) (MUJA et LOWE 2009). Cet arbre binaire permet un parcours rapide pour évaluer quel sousensemble de l’arbre est le plus similaire à un élément donné en requête. Ce partitionnement permet de limiter le nombre de candidats sur lesquels la métrique est évaluée lors d’une opération de recherche et d’identifier rapidement k voisins. La complexité de recherche sur de larges ensembles de descripteurs est réalisable au prix d’une légère dégradation des performances en précision de calcul, qui est fonction de la taille du groupe considéré et des paramètres de l’arbre de partition. La métrique est choisie en fonction du type de descripteurs utilisés :3.9–La mise en correspondances de points saillants 55 Euclidienne d(x, y) := kx−yk2 pour des descripteurs composés de valeurs réelles, Hamming d(x, y) = ∑(x⊕y) pour des descripteurs composés de valeurs binaires, EMD Earth Mover Distance pour des descripteurs circulaires (cf. RABIN (2009)). Le critère de rejet permet de réduire avec une heuristique les fausses hypothèses parmi les correspondances établies précédemment. Parmi les correspondances établies, seulement quelques-unes sont valides et on souhaite les conserver. Couramment, un filtre réalise le rejet de candidats, parmi les NB distances évaluées, pour chaque point de A. On note plusieurs politiques de rejet dans la littérature (RABIN 2009) : Critère FNN First Nearest Neighbour Pour chaque requête, on garde le plus proche voisin ; le descripteur présentant le plus de similarité : {(P i A ,P j B ) : j = argmin k d(desc(P i A ),desc(P k B ))} Critère DT Distance Threshold Un seuil de validation global est utilisé sur la distance : Pour chaque requête, l’ensemble des descripteurs candidats ayant une distance plus petite que le seuil global δ sont validés : {(P i A ,P j B ) : d(desc(P i A ),desc(P j B )) < δ} Critère DR Distance Ratio Le pourcentage de ressemblance entre les 2 plus proches voisins dans la seconde image est utilisé : pour chaque requête (Pi)A, les 2 plus proches voisins (Pj)B,(Pk)B sont identifiés. Le plus proche voisin est conservé comme point homologue si le ratio des distances d((Pi)A,(Pj)B)/d((Pi)A,(Pk)B) est inférieur à un seuil δ. L’idée utilisée est que plus des candidats sont similaires, plus la chance de confusion est forte. On évite ainsi de mettre en relation des correspondances ambiguës. δ est souvent choisi entre 0.6 et 0.8 (cf. les expérimentations de LOWE (1999) pour identifier les meilleures valeurs possibles de ce paramètre). {(P i A ,P j B ) : j = argmin k d(desc(P i A ),desc(P k B )) < δmin k6=j d(desc(P i A ),desc(P k B ))} Critère SD Symmetric distance Une correspondance n’est conservée que si les correspondances sont réciproques : les indices mis en correspondance doivent être les mêmes quel que soit le sens de calcul A → B et A ← B : {(P i A ,P j B ) : j = argmin k d(desc(P i A ),desc(P k B )),i = min k d(desc(P k A ),desc(P j B ))} Les correspondances établies étant photométriques de faux positifs peuvent toujours être présents. Il convient par la suite de vérifier si les correspondances établies sont géométriquement cohérentes (cf. chapitre 4). Dans le cadre de cette thèse nous utiliserons les détecteurs et descripteurs SIFT (LOWE 1999). Les appariements ayant passé la politique de rejet DR sont retenus. La méthode approchée ANN accompagnée de la norme euclidienne l2 est utilisée pour rechercher les candidats.56 3–La géométrie multiples vues et l’estimation de mouvements 3.10 Méthode de fusion rapide de paires de correspondances de points saillants entre images Un des pré-requis souvent utilisé en vision par ordinateur est l’information de visibilité, c’est-à-dire la connaissance qu’un point 3D donné se re-projette dans une série d’image. Se pose alors le problème suivant : étant donné des détections image nous voulons suivre le déplacement de ces détections dans une série d’images. Ce problème est appelé suivi de points, ou point/feature tracking. Nous appellerons le déplacement apparent d’un point de l’espace dans une série d’images une trace, (track). FIGURE 3.14 – A gauche, une séquence de 9 images fournies avec le logiciel VideoTrace. A droite, une série de traces identifiant le mouvement des points saillants qui ont pu être suivis à travers toute la série d’images en utilisant nos algorithmes. Le problème de suivi de points à travers une série d’images peut être abordé de différentes manières en fonction de la nature de la collection d’images à traiter : Une séquence d’images ordonnée. Narrow-baseline matching. Ce type de séquence, comme des vidéos, induit par nature une amplitude de mouvement faible. Ce faible mouvement des points à suivre permet de construire les trajectoires de points de proche en proche par des zones de recherches locales. Les méthodes sont basées sur des approches de corrélation (LUCAS et KANADE 1981 ; TOMASI et KANADE 1991) (cf. figure 3.15), ou de flux optique (HORN et SCHUNCK 1981). Les méthodes les plus récentes présentent soit des boucles d’apprentissage et de détection : TLD (KALAL et al. 2012) ou des analyses très rapides des champs de déplacement : Zero Shift points (DUPACˇ et al. 2012). FIGURE 3.15 – Suivi de trajectoire d’un point saillant par maximum de corrélation. Une série d’images non ordonnée. Wide-baseline matching. Dans ce cas la cohérence de mouvement ne peut être supposée. En effet les points n’ont pas forcément de cohérence d’une image à l’autre car une partie différente de la scène peut être vue. Le suivi de points est plus difficile, on ne sait pas où rechercher d’une image à l’autre. Les points similaires entre des paires d’images sont alors identifiés par des méthodes d’image-matching (cf. section 3.9)3.10–Méthode de fusion rapide de paires de correspondances de points saillants entre images 57 puis filtrés pour vérifier leur cohérence géométrique (cf. chapitre 4). Ces correspondances par paires d’images sont ensuite assemblées en trajectoires lorsqu’elles partagent des points communs (cf. figure 3.16). FIGURE 3.16 – Dans une série d’images non ordonnées (image1, image2, image3), des correspondances sont identifiées par paire d’images (droite). Relier ces correspondances si elles partagent des points en commun permet d’identifier les traces (bas gauche). Note : L’analyse d’une série de paires 1 → 2,2 → 3,1 → 3 permet de créer une correspondance entre l’image 1 et 3 qui ne serait pas identifiée par une analyse en séquence : 1 → 2 → 3. Nous nous intéressons ici au cas générique, le cas des images non ordonnées. On se retrouve donc avec la tâche suivante : combiner les correspondances géométriques identifiées par paires en traces cohérentes. L’état de l’art traite le plus souvent ce problème par la construction d’un graphe suivi d’une phase d’analyse (SNAVELY et al. 2006). Soit i k le k ième point de l’image i et (i m, j n ) une mise en correspondance établie entre l’image i et j avec les points indicés m et n. Étant donné une liste de correspondances, {(i m,j n )}, on cherche à construire un graphe G puis on l’analyse pour identifier les traces. Soit G = {S,E} avec S, un ensemble de sommets, et E un ensemble d’arêtes. Les sommets S : {i k} représentent les points saillants détectés dans les images. Les arêtes E : {(i m,j n )} représentent les correspondances établies par paires d’images. Les deux étapes requises pour identifier les traces grâce au graphe G sont les suivantes : 1. G est construit en utilisant l’ensemble des correspondances par paires : {(i m,j n )} : Des liens entre points saillants S sont ainsi créés pour chaque correspondance (i m, j n ) établie. Les correspondances deux à deux sont ainsi reliées entre elles. 2. Une analyse en composante connexe permet d’identifier les traces : Chaque composante connexe est une trace identifiant le déplacement apparent d’un point saillant dans une série d’images. Cette approche est fonctionnelle mais non optimale, nous démontrerons dans la section suivante que l’utilisation d’une structure de données plus adaptée permet de gagner en efficacité.58 3–La géométrie multiples vues et l’estimation de mouvements 3.10.1 Une solution ensembliste pour la construction de traces de points saillants Au lieu de voir le problème de construction de traces comme la construction d’un graphe et son analyse, nous considérons le problème de manière ensembliste. Nous montrons que ce problème est soluble par l’utilisation de la théorie des ensembles et que son utilisation est plus efficace que les méthodes de l’état de l’art sur le plan de la complexité algorithmique. De plus, son utilisation possède plusieurs avantages aux vues des solutions concurrentes disponibles. La théorie Proposition 1. En théorie des ensembles, la notion de relation d’équivalence sur un ensemble permet de mettre en relation des éléments qui sont similaires par une certaine propriété. Soit E un ensemble et R une relation d’équivalence. L’utilisation de la relation d’équivalence R sur E permet la construction du groupe quotient E|R composé de classes Q . Chaque Q représente ainsi la fusion des éléments similaires de E : les éléments de E suivant la relation d’équivalence R . Les ensembles quotients {Q } obtenus représentent des classes disjointes. Proposition 2. L’utilisation de la relation d’équivalence sur une ensemble permet de créer les classes par complétion par transitivité. Étant donné un ensemble d’éléments (les points saillants) nous partitionnons en un certain nombre de classes disjointes les relations établies par les correspondances. L’utilisation des correspondances de points homologues comme relation d’équivalence permet d’établir les ensembles disjoints désirés : les traces. La proposition 2 démontre que la théorie des ensembles est applicable à notre problème. Voyons désormais comment réaliser ces opérations de manière concrète. La solution logicielle GALLER et FISHER (1964) propose de mener efficacement la construction et la manipulation de classes d’équivalence à travers une structure de données, les disjoint-set, et des algorithmes : union-find. La structure de données disjoint-set permet de maintenir une forêt d’arbres, chaque arbre représentant un ensemble disjoint. Les algorithmes union-find permettent de maintenir et créer des partitions entre les ensembles disjoints grâce à deux opérations : Trouver, Find détermine la classe d’équivalence d’un élément. Elle sert aussi à déterminer si deux éléments appartiennent à la même classe d’équivalence. Unir, Union réunit deux classes d’équivalence en une seule. Une condition préalablement nécessaire à leur utilisation est la construction des singletons : des ensembles d’équivalences contenant un seul élément par l’instruction MakeSet. La mise en pratique L’utilisation de la théorie des ensembles pour notre problème de construction de traces nécessite la définition de l’ensemble et de la relation d’équivalence :3.10–Méthode de fusion rapide de paires de correspondances de points saillants entre images 59 Soit {E} une collection d’ensembles : chaque point saillant considéré par les correspondances est un ensemble disjoint, Chaque point saillant est considéré comme une trace de taille 1. Soit une relation d’équivalence R : E(f ind(i m)) = E(f ind(j n )), L’utilisation de la relation d’équivalence permet de fusionner deux classes, les classes contenant les points homologues désignés par une correspondance (i m, j n ) par utilisation de la fonction union : union(f ind(i m), f ind(j n )). On réalise la complétion par transitivité. La procédure 1 de calcul de traces est alors réalisée, elle est composée de trois étapes qui nécessitent de parcourir deux fois l’ensemble de correspondances : 1. Pour créer les ensembles de bases : Un ensemble est créé par point saillant utilisé, 2. Pour appliquer la relation d’équivalence : Les correspondances relatives sont fusionnées en traces par l’utilisation répé- tée des fonctions find et union sur l’ensemble des correspondances. Find identifie les ensembles d’appartenance des points saillants de la correspondance considé- rée et les fusionne en utilisant l’opérateur union. 3. Les classes calculées sont parcourues pour lister et identifier les points appartenant à chaque trace. La fusion des correspondances est ainsi réalisée par fusion itérative des correspondances à deux vues. Des traces de points de taille 1 sont unies et évoluent pour former les traces désirées au cours du processus. L’algorithme obtenu est très simple à lire et implémenter. Il est constitué de deux boucles sur les correspondances relatives. Procédure 1 Calcul des traces de points saillants pour une série de paires de correspondances Entrée: une liste de correspondances entre différentes paires d’images : L : {(i m, j n )} Sortie: les traces (1) Construction des ensembles initiaux, les singletons : pour (i m, j n ) ∈ L faire si find(i m) 6= 0/ alors MakeSet(i m) fin si si find(j n ) 6= 0/ alors MakeSet(j n ) fin si fin pour (2) Complétion par transitivité : pour (i m, j n ) ∈ L faire union(find(i m), find(j n )) fin pour (3) Récupération des traces : Retourne chaque arbre de la forêt comme une trace La complexité associée à une utilisation naïve de l’algorithme Union-Find et des disjoint-sets est O(nlog(n)). TARJAN (1975) a ensuite montré que l’utilisation de deux optimisations, union by rank et path compression, permettent de rendre la complexité quasilinéaire en pratique : O(nα(n)) (α étant l’inverse de la fonction de Ackermann). Il n’est60 3–La géométrie multiples vues et l’estimation de mouvements pas possible d’obtenir un meilleur résultat : FREDMAN et SAKS (1989) ont montré que Ω(α(n)) mots en moyenne doivent être lus par opération sur toute structure de données pour le problème des classes disjointes. Le comportement de l’algorithme est illustré en figure 3.17. Des correspondances par paires sont identifiées par différentes couleurs (bleu, vert, rose, violet). Ces correspondances impliquent 12 points, 12 ensembles sont alors créées. Les correspondances sont alors parcourues par paires (marquées par les différentes couleurs) et les ensembles contenant les points homologues sont assemblés (union). Une forêt d’arbres est alors construite et évolue pour créer les 4 trajectoires associées aux correspondances initiales. 0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7 8 11 9 10 8 9 10 11 9 10 4 7 1 3 6 0 2 5 8 11 2 3 0 1 9 10 8 11 4 7 0 2 5 1 3 6 8 11 0 2 5 FIGURE 3.17 – Illustration des étapes de l’algorithme de fusion de traces. De haut en bas. Les correspondances initiales par paires identifiées par différentes couleurs. La création des 12 singletons, désignant les 12 points considérés par les correspondances. L’évolution de la forêt de traces (de gauche à droite avec le parcours des appariements par couleur). Et enfin chaque arbre de la forêt est parcouru pour identifier les points appartenant à une trace commune. Expérimentations Notre solution , désignée sous l’acronyme UF, a été évaluée face à deux autres solutions : 1. SNAVELY et al. (2006) : solution contenue dans le code source du logiciel associé Bundler. 2. ZACH (2010-2011) : solution contenue dans le code source de la bibliothèque associée ETH-V3D. Le protocole de test est le suivant : pour des données initiales identiques, une liste de correspondances {(i m, j n )} géométriquement valide par géométrie fondamentale (cf. section 3.3) est fournie aux trois solutions d’identification de traces. Les temps de calcul et nombre de traces identifiées sont mesurés et comparés. Afin de pouvoir tester différents scénarios le test est réalisé sur différents jeux de données images présentant de 8 à 314 images. Ces tests permettent de faire intervenir de 10000 à 1 million de correspondances initiales et ainsi d’évaluer le comportement des solutions à faible et large échelle. Les résultats de l’expérience sont disponibles dans le tableau 3.1.entre images 3.10–Méthode de fusion rapide de paires de correspondances de points saillants 61 Jeux d’images nb. Images #{im, jn} Méthodes UF Zach Bundler temps s. # traces temps s. # traces temps s. # traces 1 HerzJesus 8 13726 10 2454 20 2383 10 2314 2 Castle 19 17853 12 2673 18 2543 30 2229 3 Entry 10 18914 13 2697 27 2524 20 2566 4 Fountain 11 29338 21 4279 52 4139 30 3513 5 Jean-fontana 66 53901 49 8551 72 7773 90 7672 6 Castle 30 56477 40 5639 73 5272 60 5033 7 DeteniceFountain 59 63437 56 7949 86 7445 250 7447 8 HerzJesus 25 68284 50 6603 130 5781 90 6160 9 SceauxCastle 282 364751 411 39639 613 36508 680 35845 10 StMartin 124 651990 531 51473 1505 49109 410 41380 11 Temple 314 1012804 640 20623 1295 15580 1280 19730 TABLE 3.1 – Statistiques sur l’évaluation la fusion de correspondances pour le calcul de traces. Les résultats sont triés par ordre croissant du nombre de correspondances relatives. Le temps le plus court est affiché en gras.62 3–La géométrie multiples vues et l’estimation de mouvements Pour faciliter l’interprétation des résultats les temps des différentes méthodes ont été représentés sous forme graphique sur la figure 3.18. 1 2 3 4 5 6 7 8 9 10 11 0 200 400 600 800 1000 1200 1400 1600 0 200 400 600 800 1000 1200 1400 1600 FIGURE 3.18 – Représentation graphique des temps nécessaires pour identifier les traces du tableau 3.1. Les jeux de données sont triés de manière croissante en fonction du nombre de correspondances initiales. L’expérience permet de faire des remarques sur les points suivants : la vitesse d’exécution On remarque que la solution UF est dans 90% des cas plus rapide que les deux autres solutions (cf. courbes de la figure 3.18). la complexité à large échelle Pour de larges jeux de données on constate que les mé- thodes Zach et Bundler présentent des résultats en dents de scies avec la taille du jeu de correspondances relatives fournies. Notre solution par contre réagit de manière beaucoup plus linéaire. la complétude de la solution : le nombre de traces identifiées Il est important de noter que le nombre de traces varie d’une implémentation à l’autre. Notre approche étant ensembliste nous avons des garanties que pour notre critère d’équivalence la solution identifiée soit optimale. Le fait que nous détectons tout le temps plus de traces que les deux autres méthodes démontrent que leur implémentation n’est pas parfaite et que des traces ne sont pas identifiées, ou rejetées à tort. Concernant la complétude des solutions identifiées les arguments suivants sont avancés : les deux implémentations disponibles évitent l’utilisation de graphes et utilisent des tables d’indices. Ce qui rend les algorithmes sensibles à plusieurs facteurs : Bundler : SNAVELY et al. (2006) Résultat dépendant d’un index de départ, Requiert plusieurs opérations de tri. ETH-V3D : ZACH (2010-2011) Résultat dépendant de l’ordre des paires d’images, Grosse consommation mémoire. La complexité de tels algorithmes est au minimum de O(nlog(n)) (due aux opérations de tri requises). Nos tests ont confirmé que notre solution avec une complexité plus faible, O(nα(n)) minimale théorique, présente une meilleure réactivité aux données d’entrées.3.11–Contributions de ce chapitre 63 Limitations et perspectives Les temps d’exécution de notre approche pourraient être encore réduits par l’utilisation d’une version non bloquante de l’algorithme union-find (ANDERSON et WOLL 1991). Une version parallélisable de notre algorithme est alors envisageable, laissant imaginer de meilleurs temps de réponse sur de larges jeux de données. Cependant l’assemblage naïf des correspondances donne lieu à plusieurs problèmes (AGARWAL et al. 2009) : • plusieurs traces peuvent se croiser et donc contenir plusieurs fois le même point, • plusieurs traces peuvent contenir des points dans la même image. Notre approche actuelle se limite juste à détecter et ne pas exporter les traces qui portent ces cas de conflits. Étant capable de détecter les arbres présentant des conflits nous pouvons envisager un post-traitement afin de couper ses traces corrompues en traces cohérentes en utilisant la méthode proposée par SVARM et al. (2012). Leur approche propose une solution pour garder les traces les plus probables parmi les traces corrompues qui se croisent. Leur solution est basée sur une analyse des arbres dits de Gomory-Hu. Étant données des traces corrompues, l’algorithme utilise des coupes récursives afin de conserver les n sous-traces portant les plus grandes pondérations. Chaque arête porte pour poids le nombre de points géométriquement validés pour la paire d’images considérée par cette arête. 3.11 Contributions de ce chapitre Nous avons présenté les fondamentaux de la géométrie multi-vues et comment des correspondances de points pouvaient être identifiées de manière automatique et assemblées en trajectoire au sein de collections d’images non ordonnées. Une nouvelle méthode permettant de calculer la fusion de correspondances dans le but d’identifier les traces de points saillants à travers une série d’images a été exposée. L’utilisation d’une structure de données et des algorithmes adaptés nous permet de ré- soudre le problème de fusion avec une complexité optimale, quasi-linéaire en pratique. Notre solution, utilisant «la théorie des ensembles», permet de mettre en œuvre une solution élégante qui ne réalise aucune approximation et aucun biais dans les résultats. Nos expériences ont confirmé les résultats théoriques sur le fait que notre méthode a une complexité moindre et donc un temps d’exécution plus faible que les solutions concurrentes. L’utilisation de notre algorithme a toujours démontré qu’il était capable d’identifier plus de traces que les solutions concurrentes pour l’ensemble des jeux de données. Cela démontre que les deux implémentations concurrentes sont biaisées et ne garantissent pas un résultat complet au problème traité. Ce travail a été présenté à la conférence CVMP (MOULON et MONASSE 2012) et largement utilisé pour les autres travaux de ce manuscrit. Une implémentation libre est disponible avec la librairie open-source openMVG (MOULON et al. 2013d).64 3–La géométrie multiples vues et l’estimation de mouvements65 Chapitre 4 L’estimation robuste de modèles paramétriques Lorsque des données sont légèrement bruitées il est courant d’utiliser une méthode d’ajustement aux moindres carrés afin d’identifier les paramètres d’un modèle. Cependant lorsque les données sont bruitées et polluées ces méthodes ne permettent plus de trouver un modèle adéquat. Il est alors courant d’utiliser des méthodes d’estimation robuste qui recherchent le sous ensemble de données s’ajustant le mieux au modèle paramétrique choisi. Ces méthodes reposent sur des tests d’hypothèses pour identifier un modèle et classifier les données suivant leur nature en : • mesures fiables appelées inliers, auxquels le modèle s’ajuste, • fausses mesures appelées outliers, les fausses mesures que le modèle réfute. Nous allons dans ce chapitre : 1. Étudier les méthodes couramment utilisées : MAX-CONSENSUS et RANSAC et discuter leurs limitations, 2. Expliquer et discuter un estimateur robuste incorporant un critère statistique permettant de s’adapter de manière dynamique au bruit de mesure, 3. Montrer comment généraliser l’utilisation de cet estimateur robuste adaptatif à différents modèles d’erreur. Sommaire 4.1 MAX-CONSENSUS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4.2 RANSAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 4.2.1 Limitations et variantes . . . . . . . . . . . . . . . . . . . . . . . 68 4.3 A Contrario-RANSAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 4.3.1 Le principe de la détection a contrario . . . . . . . . . . . . . . . 72 4.3.2 Mise en correspondance a contrario pour l’estimation de la géométrie épipolaire . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 4.4 Généralisation de la mise en correspondance a contrario pour l’estimation de modèles paramétriques . . . . . . . . . . . . . . . . . . . . 77 4.4.1 Généralisation du calcul du NFA et utilisations . . . . . . . . . . 78 4.4.2 Application pour l’estimation de la géométrie relative entre deux images sphériques . . . . . . . . . . . . . . . . . . . . . . . 81 4.4.3 Évaluation expérimentale . . . . . . . . . . . . . . . . . . . . . . 84 4.5 Contributions de ce chapitre . . . . . . . . . . . . . . . . . . . . . . . . 8966 4–L’estimation robuste de modèles paramétriques 4.1 MAX-CONSENSUS Le but de l’estimation robuste est d’identifier, parmi un ensemble D, le sous-ensemble de points auxquels s’ajuste le mieux un modèle paramétrique H recherché. L’ensemble D est en sortie classifié en deux sous-ensembles : les inliers et les outliers. Soit Di le i e échantillon de D, M une métrique calculant l’erreur de re-projection d’un échantillon au modèle H et δ un seuil d’acceptation. MAX-CONSENSUS est une procédure itérative qui repose sur quatre étapes : 1. La génération d’hypothèses : un échantillonnage stochastique aléatoire de s-uplets est réalisée afin de gé- nérer des hypothèses H , s étant suffisant pour estimer les paramètres d’une hypothèse H . 2. Une mesure de consensus : l’ensemble des erreurs de re-projection au modèle en cours d’hypothèse H est évalué pour chaque échantillon. 3. Un critère de validation : Si l’erreur est inférieure à un seuil δ alors l’échantillon est ajouté au consensus. 4. Un critère d’arrêt : un nombre d’itérations N. MAX-CONSENSUS est une méthode qui teste successivement des hypothèses et mesure la taille du consensus généré. La taille du consensus acceptant H sous une pré- cision δ est maximisée et ainsi la consensus d’échantillon identifié est retenu comme inliers : argmax H #D ∑ i=1 1(M (H ,Di) < δ) (4.1) Une recherche exhaustive des s-uplets est nécessaire afin de rechercher le modèle idéal. L’évaluation de toutes les combinaisons de s-uplets n’est pas réalisable en pratique car N = #D s  combinaisons seraient à évaluer. Notant que N → ∞ en fonction de s et la taille de l’ensemble échantillon D un problème combinatoire se pose. Puisqu’il n’est pas pensable de réaliser tous ces tirages, une façon naïve mais efficace pour limiter la complexité est de choisir un N fixe et d’utiliser un échantillonnage stochastique. MAX-CONSENSUS est une méthode itérative qui tire au sort, N fois, un s-uplet pour générer une hypothèse et la vérifier. Note : plus s est petit, plus l’exploration stochastique de l’espace des s-uplets sera large et rapidement réalisée. MAX-CONSENSUS est une méthode à deux paramètres : • δ : précision/erreur maximale tolérée pouvant être acceptée pour une appartenance à l’ensemble de consensus, • N : le nombre d’itérations à réaliser.4.2–RANSAC 67 4.2 RANSAC La méthode RANSAC (RANdom SAmpling Consensus) (FISCHLER et BOLLES 1981) est une évolution de la méthode MAX-CONSENSUS. L’idée est de réduire le nombre de tirages N à réaliser. Si l’on a une idée du nombre d’inliers a-priori dans les données ; on peut calculer le nombre de tirages nécessaires pour être sûr d’avoir statistiquement parcouru l’espace des solutions de manière suffisante. A première vue cette solution permet de réduire la complexité algorithmique de la recherche robuste de modèle, mais elle a comme inconvénient d’ajouter un nouveau paramètre p sur la proportion estimée de contamination des données. RANSAC évalue le nombre suffisant de tirages N à réaliser pour assurer qu’avec une probabilité p, au moins 1 échantillon de taille s n’est pas pollué. Si le taux d’inliers w est connu, alors la probabilité de choisir tous les échantillons pollués est (1 − w s ) N, c’est à dire Soit la probabilité de tirer N fois un s-uplet contenant au moins 1 outlier. On a alors (1−w s ) N ≤ 1− p, soit encore : N ≥ log(1− p) log(1−ws) (4.2) RANSAC peut ainsi au fur et à mesure de son évaluation estimer le nombre d’itérations N lui restant à effectuer en fonction de la taille du consensus le plus grand rencontré jusqu’alors. A chaque fois qu’un meilleur consensus est identifié, N est remis à jour grâce à l’équation 4.2 (cf. procédure 2). Procédure 2 RANSAC : Recherche du plus large consensus pour un modèle paramé- trique H Entrée: D = {D0,...,Di} : un ensemble d’échantillons Entrée: δ : un seuil de précision, borne haute pour l’acceptation des erreurs Entrée: p : une probabilité sur la contamination de l’ensemble échantillon, Entrée: N : un nombre maximal de tirages. Sortie: le plus large ensemble consensus Sopt et les paramètres du modèle Hopt retenu. compteur i = 0, #Sopt = 0/ (1) Échantillonnage aléatoire : Tirage d’un s-uplet Estimation d’un modèle H // Génération d’une hypothèse (2) Sélection des inliers : S = {Di} | M (H ,Di) < δ // Évaluation de l’hypothèse (3) Consensus optimal : si #S > #Sopt alors Sopt = S Hopt = H N est mis à jour via l’équation 4.2 // Évaluation du #tirages restant à effectuer fin si (4) Critère d’arrêt : tant que i < N, i = i+1. Retour à l’étape 1. La seule différence entre MAX-CONSENSUS et RANSAC consiste en la mise à jour du nombre de tirages restant à réaliser. L’algorithme RANSAC peut donc terminer plus rapidement son estimation robuste, mais un paramètre supplémentaire p est rajouté. Cependant, dans la majorité des cas le niveau de bruit des données est inconnu et variable d’un jeu de données à l’autre. Le choix des paramètres δ et p est donc loin d’être68 4–L’estimation robuste de modèles paramétriques évident. RANSAC est une méthode à trois paramètres : • δ : précision maximale acceptée pour construire un ensemble de consensus, • N : le nombre maximal d’itérations pouvant être réalisées, • p : une probabilité de succès fixé apriori. 4.2.1 Limitations et variantes Les méthodes MAX-CONSENSUS et RANSAC ont une limitation majeure commune par rapport à ce que l’on appelle l’efficacité relative. L’efficacité relative est dépendante du choix arbitraire du seuil de précision δ. C’est l’introduction de ce seuil qui permet une robustesse d’estimation tolérant jusqu’à plus de 50 % d’outliers, mais en contrepartie le choix de ce paramètre est très critique. Comme le montre la figure 4.1 lorsque ce seuil est trop élevé, quelques outliers sont sélectionnés à tort. Lorsque ce seuil est trop faible, une transformation fiable n’est pas estimable, car trop peu d’échantillons sont utilisés. On parle alors de situation de sur-évaluation, over-fitting, ou de sous-évaluation, under-fitting. (a) Distribution des points (b) Choix correct de δ (c) δ trop petit, sous-évaluation (d) δ trop large, sur-évaluation FIGURE 4.1 – Ambiguité du choix du seuil de sélection pour l’estimation d’un modèle de droite.4.2–RANSAC 69 Diverses variantes de MAX-CONSENSUS et RANSAC sont proposées dans la litté- rature pour chacune des 4 étapes mises en jeu : la génération d’hypothèses, la mesure de consensus, le critère de validation et enfin le critère d’arrêt. Plutôt que de réaliser une liste exhaustive (cf. CHOI et al. (2009)) nous allons lister quelques méthodes marquantes par domaine d’étude. Amélioration de la rapidité : Échantillonnage guidé. L’échantillonnage de groupes de s-uplets peut être vu comme un processus de génération d’hypothèses. En l’absence de connaissance apriori sur le modèle suivi par les données, un échantillonnage uniforme est utilisé, chaque hypothèse est ainsi générée indépendamment des précédentes. Plusieurs heuristiques ont été proposées pour faire converger l’algorithme plus rapidement. MOISAN et STIVAL (2004) propose avec ORSA (Optimized Random Sampling Algorithm) de tirer les échantillons parmi le meilleur ensemble Sopt lorsqu’une hypothèse est jugée valide. CHUM et MATAS (2005) propose avec PROSAC (PROgressive SAmple Consensus) de tirer les échantillons en fonction d’un indice de confiance qui leur est associé. Le tirage n’est plus réalisé de manière uniforme mais en tenant compte de cette mesure de qualité. L’intuition est qu’il vaut mieux tester en premier lieu les configurations sur lesquelles on a le plus confiance. Dans le cas de la mise en correspondances d’images, la similarité entre les descripteurs est associée aux échantillons. NI et al. (2009) propose avec GROUPSAC de partitionner en sous-groupes les échantillons. Dans le cas de correspondances images, un critère géomé- trique est utilisé. La ressemblance des vecteurs directeurs entre les points images en correspondance est ainsi utilisée dans un algorithme de regroupement hiérarchique. La probabilité de tirer un échantillon est alors déterminée par la taille d’un groupe et non plus uniforme. Amélioration de la robustesse : Adaptivité au bruit. Contrairement aux méthodes de type MAX-CONSENSUS qui utilisent un seuil fixe δ sur les résidus observés, les méthodes citées ici visent à mesurer la qualité et la validation d’un groupe associé à une transformation. Il s’agit de déterminer de manière automatique le groupe de consensus qui s’ajuste le mieux au modèle en cours d’hypothèse et de ne plus dépendre d’un seuil δ fixé de manière heuristique. Pour chaque modèle, le bruit des données est estimé, l’ensemble consensus satisfaisant le modèle paramétrique est déterminé statistiquement. Ce problème n’est pas trivial, mais apporter une solution permet de devenir adaptatif aux données. Une façon de ne plus dépendre d’un seuil δ peut être réalisé en changeant la métrique. ROUSSEEUW (1984) recherche l’ensemble consensus qui minimise la médiane des résidus observés par la méthode LMedS, Least-Median-ofSquares. On observe que la méthode permet de rejeter efficacement les données aberrantes mais en contrepartie elle est très sensible à un bruit de type gaussien. L’utilisation de la médiane limite l’identification d’un consensus à des données polluées à moins de 50%. Hypothèse : distributions normales des inliers et distribution uniforme des outliers : L’algorithme MLESAC Maximum Likelihood SAC (TORR et ZISSERMAN 2000) introduit une mesure de qualité basée sur la probabilité de70 4–L’estimation robuste de modèles paramétriques distribution des inliers et outliers. La distribution des inliers est modélisée comme une distribution gaussienne et les outliers comme une distribution uniforme. Hypothèse : distributions uniformes des outliers : MINPRAN MINimize the Probability of RANdomness (STEWART 1995) recherche un ensemble consensus, qui associé à un modèle paramétrique, n’est pas expliqué par la chance (le modèle de fond). La taille de cet ensemble consensus est évaluée par la minimisation d’une probabilité P(S|H ). Considérant les résidus des outliers uniformément distribués, une mesure de consistance est définie par l’utilisation de la probabilité. MINPRAN modélise par des probabilités le fait d’observer un groupe de k résidus plus petit qu’une erreur r parmi N résidus selon une loi uniforme. Le groupe de k points présentant la plus faible probabilité est retenu. Le calcul des probabilités permet d’obtenir une méthode adaptative mais rajoute une complexité importante pour les calculs. Hypothèses : points d’intérêt indépendants et uniformément distribués dans les images : MOISAN et STIVAL (2004) proposent de mesurer la qualité d’un groupe de correspondances dans le cadre de la théorie de la détection a contrario. Cette approche présente de nombreuses similitudes avec l’algorithme MINPRAN mais les hypothèses pour le modèle de fond sont diffé- rentes. Cette méthode que nous référons par l’acronyme AC-RANSAC (A Contrario RANdom SAmple Consensus) est expliquée plus en détail dans la section 4.3. Hypothèses : distributions uniformes des alpha-consistance de modèles : StaRSaC (CHOI et MEDIONI 2009) propose de tester de manière exhaustive différentes valeurs de seuil δ. Le consensus conservé est estimé en fonction de la variance des paramètres du modèle H en estimation. RAGURAM et FRAHM (2011) propose avec la méthode RECON REsidual CONsensus de rechercher K hypothèses qui sont consistantes. La mesure de consistance repose sur un test dit d’α-consistance permettant d’identifier la variance du bruit d’un modèle en cours d’évaluation. RECON itère parmi différentes valeurs de seuil α et garde le plus petit α donnant un ensemble de modèles partageant des distributions similaires d’erreur résiduelle. L’inconvénient de ces méthodes est que les seuils sont contraints apriori dans un intervalle fixe et discrétisé en K sous seuils à évaluer. Amélioration de la précision : Optimisation locale. CHUM et al. (2003) propose avec LO-RANSAC pour chaque hypothèse en cours d’acceptation de l’optimiser localement. C’est à dire de lancer des estimations d’hypothèses parmi les données sélectionnées en inlier. L’hypothèse donnant la plus petite erreur moyenne est retenue. La méthode de MOISAN et STIVAL (2004) réalise à la fois un échantillonnage guidé et une optimisation locale du modèle.4.2–RANSAC 71 Nous venons de voir qu’il existe toute une famille de méthodes RANSAC, chaque méthode apporte des optimisations de certaines parties de l’algorithme de base. Chaque méthode a ses avantages et inconvénients : fiabilité et paramètres plus ou moins visibles. Nous allons nous intéresser par la suite à la méthode nommée AC-RANSAC, A Contrario RANSAC, car elle repose sur la définition et l’usage de critères statistiques d’aide à la décision bien fondés. Les points abordés par AC-RANSAC sont particulièrement intéressants et permettent : • la modélisation statistique du nombre de fausses alarmes, • l’adaptabilité au bruit des données et donc une meilleure précision pour les modèles identifiés (cf. figure 4.2), • l’absence de paramètres autres qu’un nombre d’itération maximal, • un point de rupture plus large que les autres méthodes (pouvant aller jusqu’à 90% d’outliers si suffisamment d’hypothèses sont testées). Des expériences, sur A Contrario RANSAC, réalisées par MOISAN et STIVAL (2004) et NOURY (2011) ont démontré sur images synthétiques et réelles : • l’amélioration du taux de réussite général et ce jusqu’a 90% d’outliers, • l’amélioration générale de la précision (comparé à RANSAC et MSAC), • l’amélioration systématique de la solution identifiée lorsque le taux d’outliers dé- passe les 50%. FIGURE 4.2 – Comportement d’AC-RANSAC pour la recherche d’un modèle paramé- trique de ligne ou un bruit gaussien de plus en plus grand est ajouté. En vert les données validées a contrario en rouge les données rejetées et en bleu le modèle identifié. On note, en bas à droite, qu’en présence de bruit pur AC-RANSAC n’identifie aucun modèle, RANSAC aurait lui retourné une fausse hypothèse.72 4–L’estimation robuste de modèles paramétriques 4.3 A Contrario-RANSAC La théorie de la détection a contrario a été proposée initialement par DESOLNEUX et al. (2000) pour la détection de segments puis généralisée à d’autres propos par la suite : DESOLNEUX et al. (2007). Elle s’inspire des tests d’hypothèses pour détecter des groupes significatifs d’objets partageant des caractéristiques similaires. Les «méthodes a contrario» reposent sur la définition d’un modèle de fond et une mesure de signifi- cativité. 4.3.1 Le principe de la détection a contrario La méthodologie a contrario (AC)repose sur le postulat qu’une structure n’est perçue que lorsqu’elle n’a que très peu de chance d’être due au hasard. Ce principe est défini par le «principe de Helmholtz» (cf. figure 4.3). Lionel MOISAN (2003) définit l’idée à exploiter comme suit : Proposition 3. "Il est beaucoup plus simple de définir un modèle que l’on souhaite réfuter (typiquement un modèle uniforme) qu’un modèle précis des objets que l’on souhaite détecter". FIGURE 4.3 – Illustration du principe de Helmholtz (groupement perceptuel). A gauche, aucune structure ne se détache de l’image, où les segments ont été tirés aléatoirement de manière indépendante. A droite, on ne peut s’empêcher de regrouper certain segments car les alignements visibles ont peu de chances d’arriver par hasard. L’application de la méthodologie a contrario demande la définition de quatre critères : 1. Un modèle de fond : La définition de l’hypothèse à réfuter. 2. Une mesure de similarité : Une mesure de l’adéquation d’un échantillon à une hypothèse en cours d’évaluation. 3. Une mesure de significativité : Une mesure de l’adéquation d’un groupe d’échantillons à une hypothèse en cours (la détection d’une structure significative). 4. Un critère d’optimisation : Optimisation permettant de retenir la meilleure hypothèse rencontrée : celle qui réfute le plus le modèle de fond. Appliquée à la recherche de modèle, la méthode a contrario répond à la question : "Est-ce que le modèle considéré s’ajuste aux données par chance ?" Le cadre statistique repose sur deux notions : la définition d’un modèle de fond, qui décrit le processus génératif, pour lequel aucune structure significative n’est perçue, et une mesure de similarité de caractéristiques composant un groupe. Cette similarité permet d’évaluer la qualité des groupes testés afin de détecter automatiquement quel sous-groupe est cohérent, rigide.4.3–A Contrario-RANSAC 73 4.3.2 Mise en correspondance a contrario pour l’estimation de la géométrie épipolaire Dans le but de s’affranchir des limitations de RANSAC, MOISAN et STIVAL (2004) utilisent la méthodologie a contrario pour réaliser les tâches de sélection et validation de groupe dans le but d’estimer la géométrie épipolaire à partir de correspondances. Ils apportent les éléments suivants : Rappel. On dispose d’un ensemble de correspondances C : {(m,m ′ )},#C = n entre deux images I et I ′ . On considère qu’un sous-groupe de 7 points est nécessaire pour calculer de 1 à 3 matrices fondamentales. Le modèle de fond à réfuter, l’hypothèse nulle. On souhaite identifier un sous-groupe de ces correspondances qui peut être expliqué par une unique transformation. Pour estimer cette transformation dans la méthodologie a contrario, on définit une hypothèse nulle H0 qui décrit la distribution des correspondances aléatoireC pour lesquelles aucun groupement ne doit être validé. Un groupe de correspondances est considéré comme significatif s’il réfute l’hypothèse nulle, en d’autres termes si l’observation d’un tel groupe sous H0 est peu probable. Proposition 4. Un ensemble C de n correspondances aléatoires {(m,m ′ )} suit l’hypothèse nulle H0 lorsque : • les correspondances (m,m ′ ) sont des variables aléatoires mutuellement indépendantes, • les points m et m ′ sont uniformément distribués dans leur image respective I, I ′ . La mesure de similarité. La mesure permettant de vérifier la qualité d’un échantillon de correspondances dans le cas de la géométrie épipolaire utilise une erreur de type point-droite. Cette erreur résiduelle implique pour un modèle F et un couple de point (m,m ′ ) une distance des points m et m ′ aux lignes épipolaires F Tm ′ dans I et Fm dans I ′ respectivement. La mesure de significativité. On souhaite ici mesurer l’adéquation d’un modèle en cours d’hypothèse aux données de manière statistique. Soit S ′ un sous-groupe de C, tel que #S ′ = s et FS ′ la matrice fondamentale évaluée à partir du s-uplet. Si l’on considère queC suit le modèle de fond et que l’on a estimé la matrice FS ′ à partir d’un sous-groupe S ′ ⊂ C. Pour n’importe quelle correspondance aléatoire (m,m ′ ) de C, la probabilité que la distance entre m ′ et la ligne épipolaire FS ′m soit plus petite que α peut être majorée (cf. figure 4.4). Cette borne supérieure est le rapport entre l’aire maximale d’une bande de largeur 2α et l’aire A de l’image I ′ . En notant M (FS ′m,m ′ ) la distance euclidienne entre le point m ′ et la ligne épipolaire FS ′m on note : ∀α > 0,PH0 [M (FS ′m,m ′ ) ≤ α] ≤ 2αDI ′ AI ′ (4.3) où DI ′ et AI ′ désignent respectivement la longueur de la diagonale et l’aire de l’image I ′ . On définit l’erreur symétrique de transfert pour la géométrie épipolaire : max 2DI ′ AI ′ M (FS ′m,m ′ ), 2DI AI M (m,F T S ′m ′ )  ∈ [0,1]74 4–L’estimation robuste de modèles paramétriques FIGURE 4.4 – Définition de la mesure de significativité de l’erreur α pour la géométrie épipolaire. Considérant un couple de point aléatoire (m,m ′ ) ⊂ C | S ′ on peut écrire PH0  max 2DI ′ AI ′ M (FS ′m,m ′ ), 2DI AI M (m,F T S ′m ′ )  ≤ α  ≤ α 2 ≤ α (4.4) Pour tout sous-ensemble S de C tel que S ∩S ′ = 0/ on peut ainsi mesurer l’adéquation de la matrice fondamentale FS ′ pour les correspondances de S comme l’erreur de transfert symétrique normalisée maximale sur tous les points de S : α(S,FS ′) := max (m,m′)∈S max 2DI ′ AI ′ M (FS ′m,m ′ ), 2DI AI M (m,F T S ′m ′ )  (4.5) On appelle cette mesure l’α-rigidité. Plus α est petit, moins il est probable que l’ensemble de correspondances soit dû au hasard. Les correspondances étant supposées indépendantes, on obtient une borne α #S pour la probabilité d’observer une rigidité α(S,FS ′) : ∀α > 0, PH0 [α(S,FS ′) ≤ α] ≤ α #S (4.6) On peut ainsi mesurer la cohérence d’un sous-groupe S de correspondances réelles selon une transformation F en considérant que la probabilité de la rigidité aléatoire de α(S,FS ′) soit plus petite que la rigidité observée α(S,F) sous l’hypothèse nulle H0. La quantité α(S,F) #S mesure à quel point on s’étonne d’observer un groupe de taille #S et de rigidité α(S,F) en supposant que le groupe est généré aléatoirement. Comme on recherche des groupes qui ne sont pas composés de bruit, seuls les groupes pour lesquels la probabilité est faible seront validés. Une optimisation. Afin de connaître de manière automatique quel sous-groupe S est α-rigide, un critère de validation automatique est utilisé. Ce critère de validation s’appuie sur l’espérance du nombre de fausses alarmes, le NFA : une probabilité α pondérée par un nombre de tests. Cette mesure de qualité associe une borne supérieure de l’espé- rance du nombre de fausses alarmes au nombre de groupes de taille k de S qui suivent le modèle de fond : Proposition 5. Soit C = {(mi ,m ′ i )|i = 1,...,n} un ensemble de n appariements entre les images I et I ′ . Soit S un sous-ensemble de C, constitué de #S = k correspondances, avec k ≤ n − 7. L’ensemble S est dit ε-significatif s’il existe un sous-ensemble S ′ de C, tel que #S ′ = 7,S ′ ∩S = 0/ et4.3–A Contrario-RANSAC 75 NFA(S,FS ′, k) = 3(n−7)  n k k 7  α k−7 ≤ ε. (4.7) Le NFA permet d’estimer quel sous-groupe de taille k réfute l’hypothèse de fond H0. On mesure ainsi l’α-rigidité d’un sous-groupe de S de taille k pour la matrice FS ′ . Cette mesure est d’autant plus significative que la quantité NFA(S,FS ′, k) est faible. Le nombre de tests utilisé est composé de : 1. le nombre de tirage aléatoire : Le terme 3  k 7  correspond au nombre de transformations F qu’il est possible d’estimer parmi les k correspondances restantes. Le nombre de 7-uplets multiplié par le nombre de modèles hypothèses maximum pouvant être calculé. 2. le nombre de groupe de résidus (n − 7). Les appariements restants dont les erreurs résiduelles sont ordonnées par ordre croissant (les différentes bornes supé- rieures α à évaluer), 3. le nombre de groupe de taille k ≤ n−7 : le terme  n k  . Identifier le groupe optimal pour la matrice FS ′ consiste à trouver le nombre de valeurs étant le plus α-consistant : le groupe Sk ayant le plus petit NFA. Soit, rechercher le groupe de taille k minimisant l’équation NFA(S,FS, k) : NFA(Sk) = min k=8...n NFA(S,FS ′, k) ≤ ε , (4.8) avec ε = 1 comme borne naturelle pour indiquer que l’on autorise au plus une fausse alarme par détection. Les sous-groupes sont explorés en faisant varier k ∈ [8,n]. Tester tous les sous-ensembles de 7-uplets n’étant pas envisageable, il convient d’utiliser les mêmes idées que RANSAC pour créer l’algorithme AC-RANSAC (cf. procédure 3). Á chaque itération un 7-uplets S est tiré parmi les n correspondances. De une à trois matrices fondamentales sont alors estimées. Pour chacune on recherche le sous-groupe le plus α-consistant : Les erreurs pour les n−7 appariements restant (mi ,m ′ i ) ∈C | S sont évaluées et ordonnées par ordre croissant puis le groupe de taille k optimal est identi- fié. On itère jusqu’à ce qu’un nombre maximal d’itérations ait été atteint ou que l’on a identifié une hypothèse donnant un NFA< 1, phase où l’on va pouvoir optimiser localement le modèle pour continuer à identifier de nouvelle matrice F ayant sous-groupe avec un NFA plus petit. On obtient la procédure 3 :76 4–L’estimation robuste de modèles paramétriques Procédure 3 AC-RANSAC Entrée: D = {(m,m ′ )} : un ensemble de correspondances Entrée: N : un nombre maximal de tirage Sortie: l’ensemble consensus Sopt, le modèle Fopt validé a contrario et son NFA. iter = 0, Sopt = 0/, optim = 0 NFAopt = 1 Dcopie = D (1) Échantillonnage aléatoire : Tirage d’un 7-uplet S parmi Dcopie Estimation de(s) matrices F (au plus 3) pour chaque matrice F faire (2) Sélection des inliers : Tri des correspondances (m,m ′ ) selon leur erreur résiduelle αi Sélection du groupe S ′de taille k minimisant le NFA(S,F,αi , k) (3) Validation : si #S ′ > #Sopt et NFA(S’) < NFAopt alors Sopt = S ′ Fopt = F (3.1) Optimisation du modèle et réduction du nombre d’itération : si NFA(S’) < 1 et optim = 0 alors Dcopie = S ′ N = iter+N/10; optim = 1 fin si fin si fin pour (4) Critère d’arrêt : Tant que iter < N, iter = iter +1. Retour à l’étape 1. (5) Optimisation du modèle final : Estimation aux moindres carrés de Fopt en utilisant Sopt.4.4–Généralisation de la mise en correspondance a contrario pour l’estimation de modèles paramétriques 77 4.4 Généralisation de la mise en correspondance a contrario pour l’estimation de modèles paramétriques Le modèle de fond proposé pour la géométrie épipolaire par MOISAN et STIVAL (2004) est très générique (indépendance mutuelle et distribution uniforme des points homologues), il peut donc être utilisé pour l’estimation de modèles paramétriques autres que la matrice fondamentale. Dans un premier temps nous nous intéressons au cas des transformations géométriques du plan. Puis nous proposons d’explorer une formulation générique du calcul NFA pour appliquer l’estimation robuste a contrario AC-RANSAC à des modèles inexplorés jusqu’alors. Étendre la formulation a contrario initiale pour le cas des transformations géomé- triques du plan (similitudes, transformations affines et homographie) requiert de redé- finir les points suivants : 1. La mesure de similarité : la mesure de l’erreur résiduelle, Les transformations géométriques du plan impliquent non plus une distance à une ligne épipolaire, mais une correspondance point à point. Soit Mp un modèle paramétrique réalisant une transformation géométrique du plan. L’erreur résiduelle de transfert dans l’image droite s’exprime par la distance euclidienne entre le point x ′ de l’image droite et le point Mpx, transfert du point x de l’image gauche à l’image droite : M (Mpx, x ′ ) = kMpx−x ′ k2. (4.9) Pour tout correspondance (x, x ′ ) la probabilité conditionnellement à H0 que la distance M (Mpx, x ′ ) soit plus petite que α est bornée supérieurement par le rapport de l’aire du disque de rayon α divisé par l’aire A ′ de l’image I ′ : ∀α > 0, PH0 [M (Mpx, x ′ ) ≤ α] ≤ π α 2 A′ . (4.10) Autrement dit, ∀α > 0, PH0 [ π A′M (Mpx, x ′ ) 2 ≤ α] ≤ α. (4.11) 2. La mesure de significativité : la mesure de l’α-rigidité, Une nouvelle définition de la rigidité (en considérant les erreurs de transfert dans les deux images) est exprimée : α(S,MpS ′) := max (x,x ′)∈S max π A′M (Mpx, x ′ ) 2 , π A M (x,M−1 p x ′ ) 2  (4.12) La cohérence d’un sous-groupe S ′ de correspondances réelles selon une transformation Mp, en considérant la probabilité que la rigidité aléatoire de α(S,MpS ′) soit plus petite que la rigidité observée α(S,Mp) sous l’hypothèse nulle H0, est mesurée comme précédemment : ∀α > 0, PH0 α(S,MpS′) ≤ α ≤ α #S (4.13) 3. La phase d’optimisation : le calcul du NFA. En considérant maintenant un ensemble S de n appariements entre deux images I et I ′ on exprime de manière analogue le critère de validation du NFA proposé par MOISAN et STIVAL (2004) : NFA(S,MpS′, k) = (n−Ns)  n k  k Ns  α k−Ns ≤ ε, (4.14) Système de mesure d’imp´edance ´electrique embarqu´e, application aux batteries Li-ion Rouba Al Nazer To cite this version: Rouba Al Nazer. Syst`eme de mesure d’imp´edance ´electrique embarqu´e, application aux batteries Li-ion. Signal and Image processing. Universit´e de Grenoble, 2014. French. HAL Id: tel-00958783 https://tel.archives-ouvertes.fr/tel-00958783 Submitted on 13 Mar 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.THÈSE Pour obtenir le grade de DOCTEUR DE L’UNIVERSITÉ DE GRENOBLE Spécialité : Signal Image Télécommunications et Parole Arrêté ministériel : 7 août 2006 Présentée par Rouba AL NAZER Thèse dirigée par Nadine MARTIN et Co-encadrée par Viviane CATTIN Pierre GRANJON préparée au sein du Laboratoire CEA/LETI dans l'École Doctorale Electronique Electrotechnique Automatique Traitement du Signal Système de mesure d'impédance électrique embarqué, application aux batteries Li-ion Thèse soutenue publiquement le 24 Janvier 2014, devant le jury composé de : M., Gérard, BLOCH Professeur, Université de Lorraine, Rapporteur M., Christophe, FORGEZ Professeur, Université de Technologie de Compiègne, Rapporteur M., François, HUET Professeur, Université Pierre et Marie Curie, Membre Mme, Marie, CHABERT Professeur, INP-Toulouse, Présidente M., Maxime, MONTARU Docteur Ingénieur, CEA/INES, Invité Mme, Nadine, MARTIN Directeur de Recherche CNRS, GIPSA-Lab, Directrice de thèse Mme, Viviane, CATTIN Docteur Ingénieur, CEA/LETI, Co-encadrante M., Pierre, GRANJON Maître de conférences, Grenoble-INP, GIPSA-Lab, Co-encadrant Remerciements Ce travail a été effectué dans le laboratoire L2EP du leti du CEA grâce à Viviane Cattin que je tiens à remercier pour m'avoir permis de réaliser cette thèse et de m'avoir orientée vers la thématique de l'étude de l’impédance des batteries utilisées dans les véhicules hybrides. Je lui suis également reconnaissante pour tous les précieux conseils qu'elle m'a donnés, pour la confiance qu'elle m'a accordée et sans qui ce travail n'aurait jamais vu le jour. J'adresse mes remerciements les plus chaleureux à Pierre Granjon, maître de conférences à ENSE3, pour sa disponibilité, ses qualités pédagogiques et scientifiques. J'ai beaucoup appris à ses côtés et je lui adresse toute ma gratitude. J'ai notamment apprécié d'avoir eu, tout au long de cette thèse, ses conseils de grande rigueur scientifique et littéraire. J'associe à ces remerciements Maxime Montaru, chercheur à l'INES de Chambéry, pour m’avoir transmis la majeure partie des expériences effectuées dans le cadre d’autres projets et pour m’avoir conseillée et guidée avec bienveillance grâce à ses précieuses connaissances dans le domaine des batteries. Un énorme merci à vous trois pour m’avoir corrigée et aidée avec patience, tout au long de la rédaction de ce manuscrit. Je voudrais également remercier tous les membres du jury pour l'intérêt qu'ils ont porté à mon travail. De manière plus personnelle, je remercie chaleureusement tous mes camarades du laboratoire qui m'ont permis d'effectuer cette thèse dans une ambiance amicale, et plus particulièrement ceux qui se reconnaîtront, pour leur soutien et leur bonne humeur. Immanquablement, je souhaite remercier ma famille pour leur soutien constant. Cette thèse, aboutissement de longues années d’études, je la dois beaucoup à mes parents, à mes sœurs et mes frères exceptionnels avec qui j’ai vécu dans un climat toujours serein, à l’abri de tous soucis affectifs. Il m’est impossible de trouver des mots pour dire à quel point je suis fière d’eux, et à quel point je les aime.Résumé La  ŵesuƌe  d͛iŵpĠdaŶĐe  ĠleĐtƌiƋue  eŶ  eŵďaƌƋuĠ  suƌ  ǀĠhiĐule  est  uŶ  sujet  ĐlĠ  pouƌ  aŵĠlioƌeƌ  les  foŶĐtioŶs  de  diagŶostiĐ  d͛uŶ  paĐk  ďatteƌie.  OŶ  ĐheƌĐhe  eŶ  paƌtiĐulieƌ  à  fouƌŶiƌ  aiŶsi  des  ŵesuƌes  supplémentaiƌes à  Đelles du ĐouƌaŶt paĐk et des  teŶsioŶs Đellules, afiŶ d͛eŶƌiĐhiƌ les iŶdiĐateuƌs de  ǀieillisseŵeŶt daŶs uŶ pƌeŵieƌ  teŵps, et d͛Ġtat de  saŶtĠ et de  Đhaƌge daŶs uŶ  seĐoŶd  teŵps. UŶe  ŵĠthode  ĐlassiƋue  de  laďoƌatoiƌe  pouƌ  oďteŶiƌ  des  ŵesuƌes  d͛iŵpĠdaŶĐe  d͛uŶe  ďatteƌie  est  la  speĐtƌosĐopie d͛iŵpĠdaŶĐe ĠleĐtƌoĐhiŵiƋue  ;ou EI“Ϳ. Elle ĐoŶsiste à eŶǀoLJeƌ uŶ sigŶal siŶusoïdal eŶ  ĐouƌaŶt ;ou teŶsioŶͿ de fƌĠƋueŶĐe ǀaƌiaďle ďalaLJaŶt uŶe gaŵŵe de fƌĠƋueŶĐes d͛iŶtĠƌġt et ŵesuƌeƌ  ensuite la réponse en tension (ou ĐouƌaŶtͿ  pouƌ  ĐhaƋue  fƌĠƋueŶĐe.  UŶe  teĐhŶiƋue  d͛ideŶtifiĐatioŶ  aĐtiǀe ďasĠe suƌ l͛utilisatioŶ des sigŶaudž laƌge ďaŶde à ŵotifs ĐaƌƌĠs est pƌoposĠe. EŶ paƌtiĐulieƌ, des  siŵulatioŶs  oŶt  peƌŵis  de  Đoŵpaƌeƌ  les  peƌfoƌŵaŶĐes  d͛ideŶtifiĐatioŶ  de  diffĠƌeŶts  sigŶaux d͛edžĐitatioŶ  fƌĠƋueŵŵeŶt  utilisĠs  daŶs  le  doŵaiŶe  de  l͛ideŶtifiĐatioŶ  et  de  ǀĠƌifieƌ  les  ĐoŶditioŶs  ĐoƌƌespoŶdaŶt à uŶ ĐoŵpoƌteŵeŶt liŶĠaiƌe et iŶǀaƌiaŶt daŶs le teŵps de l͛ĠlĠŵeŶt ĠleĐtƌoĐhiŵiƋue.  L͛ĠǀaluatioŶ  de  la  ƋualitĠ  d͛estiŵatioŶ  est  effeĐtuĠe  en utilisant une grandeur spécifique : la cohérence. Cette grandeur statistique permet de déterminer un intervalle de confiance sur le module et  la  phase  de  l͛iŵpĠdaŶĐe  estiŵĠe.  Elle  peƌŵet  de  sĠleĐtioŶŶeƌ  la  gaŵŵe  de  fƌĠƋueŶĐe  où  la  batterie respecte les hLJpothğses  iŵposĠes  paƌ  la  ŵĠthode  d͛ideŶtifiĐatioŶ  laƌge  ďaŶde.  AfiŶ  de  valider les résultats, une électronique de test a été conçue. Les résultats expérimentaux permettent de ŵettƌe eŶ ǀaleuƌ l͛iŶtĠƌġt de Đette appƌoĐhe paƌ ŵotifs ĐaƌƌĠs. UŶ ĐiƌĐuit de ƌĠférence est utilisé afin d'évaluer les performances en métrologie des méthodes. L'étude expérimentale est ensuite poursuivie sur une batterie Li-ion soumise à un courant de polarisation et à différents états de Đhaƌge.  Des  essais  Đoŵpaƌatifs  aǀeĐ  l͛EI“  soŶt  ƌĠalisĠs.  Le  Đahieƌ  de  Đhaƌge  Ġtaďli  à  l'aide  d͛uŶ  simulateur de batterie Li-ioŶ  a  peƌŵis  d͛Ġǀalueƌ  les  peƌfoƌŵaŶĐes  de  la  teĐhŶiƋue  laƌge  ďaŶde  pƌoposĠe et de stƌuĐtuƌeƌ soŶ utilitĠ pouƌ l͛estiŵatioŶ des Ġtats de ǀieillisseŵeŶt et de Đhaƌge.Abstract Embedded electrical impedance measurement is a key issue to enhance battery monitoring and diagŶostiĐ  iŶ  a  ǀehiĐle.  It  pƌoǀides  additioŶal  ŵeasuƌes  to  those  of  the  paĐk͛s  ĐuƌƌeŶt  aŶd  Đell͛s  ǀoltage  to  eŶƌiĐh  the  agiŶg͛s  iŶdiĐatoƌs  iŶ  a  fiƌst  tiŵe,  aŶd  the  battery states in a second time. A classical method for battery impedance measurements is the electrochemical impedance spectroscopy (EIS). At each frequency, a sinusoidal signal current (or voltage) of a variable frequency sweeping a range of frequencies of interest is at the input of the battery and the output is the measured voltage response (or current). An active identification technique based on the use of wideband signals composed of square patterns is proposed. Particularly, simulations were used to compare the performance of different excitation signals commonly used for system identification in several domains and to verify the linear and time invariant behavior for the electrochemical element. The evaluation of the estimation performance is performed using a specific quantity: the spectral coherence. This statistical value is used to give a confidence interval for the module and the phase of the estimated impedance. It allows the selection of the frequency range where the battery respects the assumptions imposed by the non-parametric identification method. To experimentally validate the previous results, an electronic test bench was designed. Experimental results are used to evaluate the wideband frequency impedance identification. A reference circuit is first used to evaluate the performance of the used methodology. Experimentations are then done on a Li–ion battery. Comparative tests with EIS are realized. The specifications are established using a simulator of Li-ion battery. They are used to evaluate the performance of the proposed wide band identification method and fix its usefulness for the battery states estimation: the state of charge and the state of health. TABLE DES MATIERES INTRODUCTION ................................................................................................................................................ 1 CHAPITRE 1 : CONTEXTE GENERAL .............................................................................................................. 5 1.1 PROBLEMES ECOLOGIQUES ET ECONOMIQUES LIES AU TRANSPORT........................................................................ 5 1.1.1 Le transport en tant que principal émetteur de GES ......................................................................... 5 1.1.2 Le pétrole : conflits économiques et politiques ................................................................................. 8 1.2 VERS L͛ELECTRIFICATION DU VEHICULE ............................................................................................................ 8 1.3 GENERALITES SUR LES ACCUMULATEURS........................................................................................................ 10 1.3.1 Les technologies des accumulateurs ............................................................................................... 10 1.3.2 Grandeurs caractéristiques d’uŶ aĐĐuŵulateuƌ .............................................................................. 12 1.3.2.1 La capacité de stockage C ሺAhሻ .............................................................................................................. 12 1.3.2.2 La capacité nominale Cn ሺAhሻ................................................................................................................ 12 1.3.2.3 La capacité stockée Cs ሺAhሻ ................................................................................................................... 12 1.3.2.4 Le rendement faradique (%) ................................................................................................................... 12 1.3.2.5 L͛autodécharge (%) ................................................................................................................................. 12 1.3.2.6 La tension à vide (OCV pour Open Circuit Voltage) ................................................................................ 13 1.3.2.7 La durée de vie en cyclage et calendaire ................................................................................................ 13 1.3.3 Les accumulateurs Li-ion ................................................................................................................. 13 1.3.3.1 Fonctionnement ..................................................................................................................................... 13 1.3.3.2 Phénomènes physico-chimiques ............................................................................................................ 14 a) L͛effet de ĐouĐhe douďle............................................................................................................................. 14 b) Transfert de charge ..................................................................................................................................... 15 c) La diffusion .................................................................................................................................................. 15 d) Film de passivation ...................................................................................................................................... 15 e) Pertes ohmiques.......................................................................................................................................... 16 1.3.4 Des accumulateurs aux batteries .................................................................................................... 16 1.4 SYSTEME DE SUPERVISION DE BATTERIE ......................................................................................................... 16 1.4.1 IŶdiĐes d’Ġtats ................................................................................................................................. 17 1.4.1.1 Etat de santé (SOHሻ................................................................................................................................ 17 1.4.1.2 Etat de charge (SOC)............................................................................................................................... 17 1.4.2 Terminologie.................................................................................................................................... 18 1.5 L͛ACCUMULATEUR : OBJET DE MODELISATION ................................................................................................ 19 1.5.1 Boite Blanche ................................................................................................................................... 19 1.5.2 Boite noire ....................................................................................................................................... 20 1.5.3 Boite grise ........................................................................................................................................ 20 1.5.3.1 Le modèle de Randles généralisé ........................................................................................................... 21 1.5.3.2 Application aux cellules LiFePO4 ............................................................................................................. 231.6 CIRCUIT ELECTRIQUE EQUIVALENT ET NOTION D͛IMPEDANCE ELECTRIQUE ............................................................. 24 CHAPITRE 2 : IDENTIFICATION DE L’IMPEDANCE ELECTRIQUE D’UN ACCUMULATEUR.............................. 25 2.1 HYPOTHESES DE TRAVAIL............................................................................................................................ 26 2.2 ETAT DE L͛ART.......................................................................................................................................... 26 2.2.1 Identification de la résistance interne ............................................................................................. 27 2.2.1.1 Mesure par milliohmmètre.................................................................................................................... 27 2.2.1.2 Temps de repos (period-of-rest) ............................................................................................................ 27 2.2.1.3 Impulsion de courant .............................................................................................................................. 27 2.2.1.4 Interprétation ......................................................................................................................................... 27 2.2.1.5 Exploitation ............................................................................................................................................ 28 2.2.2 SpeĐtƌosĐopie d’iŵpĠdaŶĐe ĠleĐtƌiƋue ;SIEͿ.................................................................................... 29 2.2.3 Vers une rupture inévitable des méthodes classiques ..................................................................... 29 2.3 IDENTIFICATION NON PARAMETRIQUE D͛UN ACCUMULATEUR............................................................................. 30 2.3.1 Système linéaire et invariant dans le temps (LIT) ............................................................................ 30 2.3.2 Identification non paramétrique ..................................................................................................... 31 2.3.2.1 Principe ................................................................................................................................................... 31 2.3.2.2 Cohérence spectrale ............................................................................................................................... 32 2.3.2.3 Algoƌithŵe d͛ideŶtifiĐatioŶ ŶoŶ paƌaŵĠtƌiƋue ...................................................................................... 33 2.3.2.4 Intervalles de confiance .......................................................................................................................... 34 2.3.3 Eƌƌeuƌs d’estiŵatioŶs ...................................................................................................................... 35 2.3.3.1 Erreur quadratique moyenne et variance d͛eƌƌeuƌ d͛estiŵatioŶ ........................................................... 35 2.3.3.2 Erreur quadratique moyenne efficace et écart type normalisés ............................................................ 35 2.3.4 IŶtĠƌġt ŵajeuƌ de l’ideŶtifiĐatioŶ laƌge ďaŶde pouƌ l’appliĐatioŶ eŶ eŵďaƌƋuĠ ............................. 36 2.3.5 Effet des paƌaŵğtƌes de la ŵĠthode d’estiŵatioŶ .......................................................................... 36 2.3.5.1 “igŶal d͛edžĐitation .................................................................................................................................. 37 a) Bruit blanc aléatoire .................................................................................................................................... 37 b) Séquence binaire pseudo aléatoire ............................................................................................................. 38 c) Chirp ............................................................................................................................................................ 38 d) Carré modulé en fréquence ........................................................................................................................ 39 e) Carré ............................................................................................................................................................ 40 2.3.5.2 Noŵďƌe d͛ĠĐhaŶtilloŶs, duƌĠe d͛aĐƋuisitioŶ, ŵoLJeŶŶage...................................................................... 40 2.3.5.3 Drift compensation ................................................................................................................................. 41 2.4 APPLICATION AUX ACCUMULATEURS : ETUDE EN SIMULATION............................................................................ 42 2.4.1 Système, entrée, sortie .................................................................................................................... 42 2.4.2 Visualisation des résultats ............................................................................................................... 43 2.4.3 Validation des résultats ................................................................................................................... 43 2.4.4 Simulations ...................................................................................................................................... 43 2.4.4.1 Paramètres de simulation ...................................................................................................................... 43 2.4.4.2 Cohérence spectrale ............................................................................................................................... 44 2.4.4.3 Intervalles de confiance .......................................................................................................................... 452.4.4.4 Effet du bruit de mesure ........................................................................................................................ 48 2.5 CONCLUSION ........................................................................................................................................... 49 CHAPITRE 3 : VALIDATION EXPERIMENTALE DES RESULTATS.................................................................... 51 3.1 BANC EXPERIMENTAL................................................................................................................................. 51 3.1.1 Electronique de génération des signaux à motifs carrés ................................................................. 51 3.1.2 TechŶiƋue d’ideŶtifiĐatioŶ paƌ aŶalLJse paƌ haƌŵoŶiƋue ;AHͿ......................................................... 52 3.1.3 Mesure à quatre points ................................................................................................................... 53 3.1.4 Circuit électrique de référence ......................................................................................................... 53 3.1.4.1 Description du circuit électrique de référence ....................................................................................... 53 3.1.4.2 Contraintes pour une mesure directe .................................................................................................... 53 3.2 PROTOCOLE EXPERIMENTAL ........................................................................................................................ 54 3.2.1 TeĐhŶologie de l’aĐĐuŵulateuƌ ....................................................................................................... 54 3.2.2 Réglage du point de fonctionnement .............................................................................................. 55 3.2.3 Aŵplitude du sigŶal d’edžĐitatioŶ..................................................................................................... 55 3.2.4 Paramétrage des expérimentations ................................................................................................ 57 3.2.4.1 CoŶĐeptioŶ des sigŶaudž d͛edžĐitatioŶ ...................................................................................................... 57 3.2.4.2 Séparation des mesures ......................................................................................................................... 58 3.3 RESULTATS EXPERIMENTAUX ....................................................................................................................... 59 3.3.1 Résultats des essais sur le circuit électrique de référence ............................................................... 59 3.3.1.1 ‘Ġsultats aǀeĐ la teĐhŶiƋue d͛analyse par harmonique ......................................................................... 59 3.3.1.2 ‘Ġsultats de la teĐhŶiƋue d͛ideŶtifiĐatioŶ laƌge ďaŶde .......................................................................... 60 3.3.1.3 ‘Ġsultats aǀeĐ l͛AH à ďase de signaux carrés périodiques ...................................................................... 62 3.3.1.4 Interprétation des résultats .................................................................................................................... 63 3.3.2 Test sur un accumulateur réel ......................................................................................................... 65 3.3.2.1 Etude dans la gamme de fréquence [Ͷ Hz-ͻ͸ Hz]................................................................................. 65 a) Résultats avec la SBPA ................................................................................................................................. 65 b) Résultats avec un signal carré modulé en fréquence .................................................................................. 66 c) Résultats avec un signal carré périodique ................................................................................................... 67 d) Interprétation des résultats ........................................................................................................................ 68 3.3.2.2 Etude en basses fréquences [Ͳ,Ͳ͵͵ Hz-͵,͵͵ Hz]................................................................................... 69 3.4 CONCLUSION ........................................................................................................................................... 71 CHAPITRE 4 : L’IMPEDANCE ELECTRIQUE POUR LA SUPERVISION DES ACCUMULATEURS......................... 72 4.1 IMPEDANCE ELECTRIQUE ET CEE................................................................................................................. 72 4.1.1 Technologie DFRA/DFIS ................................................................................................................... 72 4.1.2 IdeŶtifiĐatioŶ paƌtielle d’uŶ CEE en utilisant une SBPA................................................................... 73 4.1.3 Principe de normalisation pour l’ideŶtifiĐatioŶ sous uŶ ĐouƌaŶt de polaƌisatioŶ foƌt  [18]............. 74 4.1.4 Algoƌithŵe d’optiŵisatioŶ : aŵĠlioƌatioŶ des peƌfoƌŵaŶĐes ......................................................... 74 4.1.4.1 PƌiŶĐipe de l͛estiŵatioŶ paƌ optiŵisatioŶ ŶuŵĠƌiƋue............................................................................ 754.1.4.2 Application aux accumulateurs .............................................................................................................. 75 a) Approche classique ..................................................................................................................................... 77 b) Les approches alternatives .......................................................................................................................... 78 4.1.5 La nouvelle approche : estimation en deux étapes ......................................................................... 82 4.1.6 Résultats expérimentaux ................................................................................................................. 83 4.2 EXPLOITATION DE L͛IMPEDANCE ELECTRIQUE POUR LE SUIVI DES INDICES D͛ETAT.................................................... 84 4.2.1 Cahier des charges pour le SOH ...................................................................................................... 84 4.2.2 Cahier des charges pour le SOC....................................................................................................... 87 4.2.3 Etude de validitĠ de la teĐhŶiƋue d’identification large bande pour le suivi du SOH...................... 88 4.2.3.1 “igŶal d͛edžĐitatioŶ et ĐalĐul de la dispeƌsioŶ suƌ les ŵesuƌes ................................................................ 88 4.2.3.2 Interprétation des résultats .................................................................................................................... 89 4.2.4 ValiditĠ de la teĐhŶiƋue d’ideŶtifiĐatioŶ laƌge ďaŶde pouƌ le suivi du SOC..................................... 89 4.2.4.1 Essai de suivi du SOC .............................................................................................................................. 89 4.2.4.2 Interprétation des résultats .................................................................................................................... 90 4.3 CONCLUSION ........................................................................................................................................... 91 CONCLUSIONS ET PERSPECTIVES .................................................................................................................... 94 ANNEXE A. DERIVATION NON ENTIERE ET CPE ....................................................................................... 97 ANNEXE B. DATASHEET BATTERIE A123-SYSTEMS ................................................................................ 100 ANNEXE C. SIMULATEUR D’UN ACCUMULATEUR LIFEPOͶ .................................................................. 102 ANNEXE D. CARTE ELECTRONIQUE DE GENERATION DES SIGNAUX A MOTIFS CARRES ......................... 104 ANNEXE E. EXEMPLE D’UN DIAGRAMME DE NYQUIST TOTAL EXPERIMENTAL D’UN ACCUMULATEUR LIFEPOͶ 106 REFERENCES ................................................................................................................................................. 107 TABLE DES FIGURES FIGURE 1-1: EVOLUTION COMPAREE DE LA CONCENTRATION EN COʹ DANS L͛ATMOSPHERE ET DE LA TEMPERATURE MOYENNE DU GLOBE TERRESTRE. ............................................................................................................................................... 6 FIGURE 1-2 : EMISSIONS DE GAZ A EFFET DE SERRE PAR SECTEUR EN FRANCE EN 2000 ET 2011 [4]. ........................................... 7 FIGURE 1-3 : EVOLUTION DE LA PRODUCTION EN AUTOMOBILE ET DE LA CONCENTRATION EN CO2 DANS L͛ATMOSPHERE................. 7 FIGURE 1-4 : EVOLUTION DU PRIX DE PETROLE DE 1987 A 2012 [6]. .................................................................................... 8 FIGURE 1-5 : DIAGRAMME DE RAGONE POUR DIFFERENTES TECHNOLOGIES D͛ACCUMULATEURS [9]. ......................................... 10 FIGURE 1-6 : PRINCIPE DE FONCTIONNEMENT D͛UN ACCUMULATEUR LI-ION [14]. ................................................................. 13 FIGURE 1-7 : SCHEMA DE COMPOSITION DE LA COUCHE DOUBLE [16]. ................................................................................. 15 FIGURE 1-8 : LIEN ENTRE ACCUMULATEURS ET BATTERIES – EXEMPLE D͛UNE BATTERIE COMPOSEE DE 10 MODULES EN SERIE, CHAQUE MODULE CONTENANT 5 ACCUMULATEURS DE 2,3 AH CHACUN EN PARALLELE (5P) MIS EN SERIE 12 FOIS (12S). .................. 16 FIGURE 1-9 : CIRCUIT DE RANDLES. ............................................................................................................................... 21 FIGURE 1-10 : DIAGRAMME DE NYQUIST DE ZR//CPE POUR DIFFERENTES VALEURS DE P [47]. .............................................. 22 FIGURE 1-11 : TROIS TYPES D͛IMPEDANCE DE WARBURG [18]. .......................................................................................... 23 FIGURE 1-12 : MODELE DE BATTERIES LIFEPO4 [18]. ..................................................................................................... 23 FIGURE 2-1 : ESTIMATION DE LA RESISTANCE VIA LE RAPPORT DE ∆V∆I EN UTILISANT LE SIMULATEUR ET COMPARAISON AVEC LES VALEURS DES PARAMETRES DU CEE IMPLANTE. ....................................................................................................... 28 FIGURE 2-2 : SYSTEME SISO. ....................................................................................................................................... 30 FIGURE 2-3 : IDENTIFICATION D͛UN SYSTEME. ................................................................................................................. 32 FIGURE 2-4 : EXEMPLE D͛UNE SBPA (TRACE TEMPOREL A GAUCHE, DENSITE SPECTRALE DE PUISSANCE EN DB A DROITE).............. 38 FIGURE 2-5 : EXEMPLE D͛UN CHIRP (TRACE TEMPOREL A GAUCHE, DENSITE SPECTRALE DE PUISSANCE EN DB A DROITE). ............... 39 FIGURE 2-6 : EXEMPLE D͛UN CARRE MODULE EN FREQUENCE (TRACE TEMPOREL A GAUCHE, DENSITE SPECTRALE DE PUISSANCE EN DB A DROITE)........................................................................................................................................................... 40 FIGURE 2-7 : EXEMPLE D͛UN CARRE (TRACE TEMPOREL A GAUCHE, DENSITE SPECTRALE DE PUISSANCE EN DB A DROITE). ............... 40 FIGURE 2-8 : REPONSE EN TENSION A UN COURANT CONTINU IDC A ESTIMER PAR UN POLYNOME GRACE A LA REPONSE EN TENSION A UN COURANT IDC+ SBPA. ............................................................................................................................... 42 FIGURE 2-9 : ERREUR MOYENNE ENTRE PT ET UDCሺTሻ EN FONCTION DU DEGRE DU POLYNOME PT. ........................................ 42 FIGURE 2-10 : DENSITE SPECTRALE DE PUISSANCE (EN DB) DES CINQ SIGNAUX D͛EXCITATION.................................................... 44 FIGURE 2-11 : COHERENCE SPECTRALE, CINQ SIGNAUX D͛EXCITATION DIFFERENTS, RSB=0DB, GAMME DE FREQUENCE [13 HZ-320 HZ]................................................................................................................................................................. 45 FIGURE 2-12 : INTERVALLES DE CONFIANCE EN HAUTE FREQUENCE POUR LES SIGNAUX ............................................................ 47 FIGURE 2-13 : NRMSE EN % POUR DIFFERENTS SIGNAUX D͛EXCITATION EN FONCTION DU RSB. .............................................. 48 FIGURE 3-1 : SCHEMA SIMPLIFIE DE LA CARTE ELECTRONIQUE UTILISEE POUR GENERER DES SIGNAUX A MOTIFS CARRES. ................. 51 FIGURE 3-2 : APPAREIL VMP-300 DE CHEZ BIOLOGIC. ..................................................................................................... 52 FIGURE 3-3 : SCHEMA DU CIRCUIT DE REFERENCE PASSIF ET DE SON DIAGRAMME DE NYQUIST. ................................................. 53 FIGURE 3-4 : SCHEMA DU CIRCUIT DE REFERENCE PASSIF ADAPTE AU PROTOCOLE DE MESURE. .................................................. 54 FIGURE 3-5 : AMPLITUDE D͛EXCITATION (AͲ) DE LA SBPA SELON LES DONNEES DU SIMULATEUR POUR DIFFERENTES VALEURS DU COURANT DE POLARISATION. ................................................................................................................................ 56FIGURE 3-6 : VARIATION DE L͛AMPLITUDE DU SIGNAL D͛EXCITATION ENTRE LE DEBUT (BLEU) ET LA FIN (VERT) DES TESTS EFFECTUES POUR DIFFERENTES VALEURS DU SOC INITIAL, POUR UN COURANT DE POLARISATION DE ͳͳͲ MA POUR UNE DUREE DE ͷ MINUTES. ..................................................................................................................................................... 57 FIGURE 3-7 : PHOTO DU MONTAGE DE MESURE EN ALTERNANCE (CONNEXION SIMULTANEE DU VMP-300 ET DU SYSTEME D͛IDENTIFICATION LARGE BANDE).......................................................................................................................... 58 FIGURE 3-8 : PHOTO DU MONTAGE DE MESURE ISOLEE AVEC LE VMP-300. ......................................................................... 59 FIGURE 3-9 : DIAGRAMME DE NYQUIST DE L͛IMPEDANCE OBTENUE PAR ANALYSE HARMONIQUE DANS LA GAMME DE FREQUENCE [Ͷ HZ-ͻ͸ HZ]. ................................................................................................................................................ 60 FIGURE 3-10 : TRACES TEMPORELS DU SIGNAL D͛EXCITATION DE 19 BLOCS DE SBPA POUR LA GAMME DE FREQUENCE [Ͷ HZ-ͻ͸ HZ] : (A) SIGNAL COMPLET (COURANT A GAUCHE, TENSION A DROITE, CAS ACCUMULATEUR EN PREMIERE LIGNE ET ACCUMULATEUR + CIRCUIT ELECTRIQUE DE REFERENCE EN DEUXIEME LIGNE), (B) TRACE IDEM QUE (A) ZOOME SUR UN BLOC DE COURANT ET DE LA REPONSE EN TENSION CORRESPONDANTE POUR LES DEUX CAS, (C) COHERENCES SPECTRALES ESTIMEES A L͛AIDE DES DONNEES PRECEDENTES POUR LES DEUX CAS. ........................................................................................... 61 FIGURE 3-11 : DIAGRAMME DE NYQUIST DE L͛IMPEDANCE OBTENUE POUR LA SBPA DANS LA GAMME DE FREQUENCE [Ͷ HZ-ͻ͸ HZ]. ...................................................................................................................................................................... 61 FIGURE 3-12 : TRACES TEMPORELS DES SIGNAUX UTILISES POUR L͛AH A BASE DE SIGNAUX CARRES PERIODIQUES : (A) TRACES COMPLETS DU COURANT A GAUCHE ET DE LA REPONSE EN TENSION A DROITE POUR LES CAS ACCUMULATEUR EN PREMIERE LIGNE ET ACCUMULATEUR + CIRCUIT ELECTRIQUE DE REFERENCE EN DEUXIEME LIGNE, (B) EXEMPLE DE DECOUPAGE D͛UN SIGNAL. .... 62 FIGURE 3-13 : DIAGRAMME DE NYQUIST DES IMPEDANCES ELECTRIQUES OBTENUES PAR L͛AH A BASE DE SIGNAUX CARRES PERIODIQUES DANS LA GAMME DE FREQUENCE [Ͷ HZ-ͻ͸ HZ]. ................................................................................. 63 FIGURE 3-14 : DIAGRAMME DE NYQUIST DES IMPEDANCES ELECTRIQUES ESTIMEES A L͛AIDE DES DIFFERENTS SIGNAUX PAR COMPARAISON AVEC L͛IMPEDANCE THEORIQUE DANS LA GAMME DE FREQUENCE [Ͷ HZ-ͻ͸ HZ]. .................................... 63 FIGURE 3-15 : (A) CONTACT CARTE-CARTE DANS LE CAS D͛IDENTIFICATION LARGE BANDE. (B) DIAGRAMME DE NYQUIST MONTRANT UNE IMPEDANCE NON REPRODUCTIBLE ET INCONTROLABLE QUI EN RESULTE. ................................................................. 64 FIGURE 3-16 : COHERENCE SPECTRALE: RESULTATS DE TROIS MESURES EXPERIMENTALES OBTENUES AVEC LA SBPA COMME SIGNAL D͛EXCITATION DANS LA GAMME DE FREQUENCE [Ͷ HZ-ͻ͸ HZ]. ................................................................................ 66 FIGURE 3-17 : DIAGRAMME DE NYQUIST : RESULTATS DE TROIS MESURES EXPERIMENTALES OBTENUES AVEC LA SBPA COMME SIGNAL D͛EXCITATION DANS LA GAMME DE FREQUENCE [Ͷ HZ-ͻ͸ HZ]. ................................................................................ 66 FIGURE 3-18 : COHERENCE SPECTRALE : RESULTATS DE TROIS MESURES EXPERIMENTALES OBTENUES AVEC LE CARRE MODULE EN FREQUENCE COMME SIGNAL D͛EXCITATION DANS LA GAMME DE FREQUENCE [Ͷ HZ-ͻ͸ HZ]. .......................................... 67 FIGURE 3-19 : DIAGRAMME DENYQUIST : RESULTATS DE TROIS MESURES EXPERIMENTALES OBTENUES AVEC LE CARRE MODULE EN FREQUENCE COMME SIGNAL D͛EXCITATION DANS LA GAMME DE FREQUENCE [Ͷ HZ-ͻ͸ HZ]. .......................................... 67 FIGURE 3-20 : COHERENCE SPECTRALE: RESULTATS DE TROIS MESURES EXPERIMENTALES OBTENUES AVEC UN CARRE DE FREQUENCE FONDAMENTALE ͺHZ COMME SIGNAL D͛EXCITATION. .............................................................................................. 68 FIGURE 3-21 : DIAGRAMME DE NYQUIST : RESULTATS DE TROIS MESURES EXPERIMENTALES OBTENUES AVEC UN SIGNAL CARRE DE FREQUENCE FONDAMENTALE ͺHZ COMME SIGNAL D͛EXCITATION. .............................................................................. 68FIGURE 3-22 : RESULTATS DES ESTIMATIONS EXPERIMENTALES OBTENUES AVEC LES DIFFERENTS SIGNAUX A MOTIFS CARRES COMME SIGNAL D͛EXCITATION DANS LA GAMME DE FREQUENCE [Ͷ HZ-ͻ͸ HZ]. ...................................................................... 69 FIGURE 3-23 : COHERENCE : RESULTATS DE TROIS MESURES EXPERIMENTALES AVEC LA SBPA COMME SIGNAL D͛EXCITATIONS DANS LA GAMME DE FREQUENCE [Ͳ,Ͳ͵͵ HZ-͵,͵͵ HZ]. .................................................................................................... 70 FIGURE 3-24 : DIAGRAMME DE NYQUIST POUR LES MESURES SUR UN ACCUMULATEUR DANS LA GAMME DE FREQUENCE [Ͳ,Ͳ͵͵ HZ-͵,͵͵ HZ]. .................................................................................................................... 70 FIGURE 4-1 : SCHEMA DU CIRCUIT ELECTRIQUE EQUIVALENT UTILISE DANS [80]. .................................................................... 73 FIGURE 4-2 : ALGORITHME D͛OPTIMISATION. .................................................................................................................. 76 FIGURE 4-3 : HISTOGRAMMES NORMALISES OBTENUS AVEC L͛APPROCHE CLASSIQUE : LIGNES VERTES REPRESENTENT LES VALEURS THEORIQUES, LES JAUNES SONT LES VALEURS MOYENNES ESTIMEES SUR LES DIFFERENTES REALISATIONS EFFECTUEES. ............ 78 FIGURE 4-4 : TRACE DU MODULE DES IMPEDANCES PARTIELLES ET DE L͛IMPEDANCE TOTALE DE L͛ACCUMULATEUR. ....................... 79 FIGURE 4-5 : HISTOGRAMMES NORMALISES, APPROCHE PAR SEGMENTATION DE LA BANDE DE FREQUENCE CLASSIQUE : LIGNES VERTES REPRESENTENT LES VALEURS THEORIQUES, LES JAUNES SONT LES VALEURS MOYENNES ESTIMEES SUR LES DIFFERENTES REALISATIONS EFFECTUEES. .................................................................................................................................. 80 FIGURE 4-6 : HISTOGRAMMES NORMALISES, APPROCHE PAR EXTENSION DE BANDES DE FREQUENCE CLASSIQUE : LIGNES VERTES REPRESENTENT LES VALEURS THEORIQUES, LES JAUNES SONT LES VALEURS MOYENNES ESTIMEES SUR LES DIFFERENTES REALISATIONS EFFECTUEES. .................................................................................................................................. 81 FIGURE 4-7 : HISTOGRAMMES NORMALISES, APPROCHE D͛OPTIMISATION EN DEUX ETAPES CLASSIQUE : LIGNES VERTES REPRESENTENT LES VALEURS THEORIQUES, LES JAUNES SONT LES VALEURS MOYENNES ESTIMEES SUR LES DIFFERENTES REALISATIONS EFFECTUEES. ...................................................................................................................................................................... 82 FIGURE 4-8 : EXEMPLE DE RESULTATS EXPERIMENTAUX A DIFFERENTS SOCS ET INTENSITES DE COURANT. ................................... 84 FIGURE 4-9 : MODELE D͛EVOLUTION DE R EN FONCTION DU SOH. ..................................................................................... 86 FIGURE 4-10 : ABAQUE DE PRECISION POUR SOH. .......................................................................................................... 86 FIGURE 4-11 : TRACE DE LA VARIATION ∆ZSOCሺFሻ SUR L͛IMPEDANCE ELECTRIQUE A SOCͲ = ͻͷ% ET IͲ = -Ͳ,ʹ͸A ET CE POUR ͷ% DE VARIATION SUR LE SOC. .......................................................................................................................... 88 FIGURE 4-12 : TRACE DE L͛ECART TYPE DE LA PARTIE REELLE DE L͛IMPEDANCE DE L͛ACCUMULATEUR CALCULE SUR LES M = ͵Ͳ ESSAIS AVEC LA SBPA COMME SIGNAL D͛EXCITATION. ........................................................................................................ 89 FIGURE 4-13 : DIAGRAMME DE NYQUIST A DIFFERENTS SOCS DE L͛IMPEDANCE ELECTRIQUE DE L͛ACCUMULATEUR DANS LA BANDE DE FREQUENCE [Ͳ,Ͳ͵͵ HZ-͵,͵͵ HZ]. ..................................................................................................................... 90 FIGURE 4-14 : EVALUATION DES RESULTATS D͛IDENTIFICATION LARGE BANDE PAR RAPPORT AU CAHIER DES CHARGES DU SOC. ....... 91 FIGURE A-1 : DIAGRAMME DE BODE DE L͛APPROXIMATION D͛UN CPE [18]. ......................................................................... 98 FIGURE A-2 : CIRCUIT ELECTRIQUE EQUIVALENT DE L͛OPERATEUR DE DERIVATION NON ENTIERE S-Υ [18]. .................................. 99 FIGURE C-1 : SCHEMA DU CIRCUIT IMPLANTE SOUS SIMULINK........................................................................................... 102 FIGURE E-1 : DIAGRAMME DE NYQUIST EXPERIMENTAL COMPLET DE L͛ACCUMULATEUR A UN SOC DE 83 % ET SOUS UN COURANT DE POLARISATION DE DECHARGE DE 0,92 A. ............................................................................................................. 106Page | 1 Introduction De Ŷos jouƌs, le ƌĠĐhauffeŵeŶt ĐliŵatiƋue est l͛uŶ des dileŵŵes Ƌui edžalte les effoƌts des paLJs afiŶ  d͛eŶ  liŵiteƌ  les  ĐoŶsĠƋueŶĐes  gƌaǀes.  A  la  ďase,  il  s͛agit  d͛uŶ  phĠŶoŵğŶe  Ŷatuƌel  Ƌue  le  gloďe  teƌƌestƌe  ĐoŶŶait  depuis  l͛auďe  des  teŵps.  Les  fluĐtuatioŶs  Ŷatuƌelles  de  teŵpĠƌatuƌe  soŶt  audž  alentours de plus ou moins ͳ°� par millénaire. Or, les mesures terrestres de températures réalisées au cours du ��௘ siècle montrent une élévation significative de la température moyenne, ce qui traduit une situation alarmante. Le  gƌoupe  iŶteƌgouǀeƌŶeŵeŶtal  suƌ  l͛ĠǀolutioŶ  du  Đliŵat  ;GIECͿ  fondé paƌ l͛ONU est chargé de réaliser une synthèse des études scientifiques sur ce sujet. Dans son dernier rapport, le GIEC a présenté des projections des modèles climatiques indiquant que la température à la surface du globe est susceptible d'augmenter de ͳ,ͳ à ͸,Ͷ °� supplémentaires au cours du ��� ௘ siècle. La corrélation entre les relevés de ��ଶ et  l͛augŵeŶtatioŶ  des  teŵpĠƌatuƌes  pƌouǀe la  ƌespoŶsaďilitĠ de l͛aĐtiǀitĠ huŵaiŶe liĠe à la pƌoduĐtioŶ ŵassiǀe de gaz à effets de  seƌƌe  ;GE“Ϳ.  BieŶ  Ƌue  l͛Ġtude  soit  liŵitĠe  à  la  pĠƌiode  allaŶt  jusƋu͛à ʹͳͲͲ, le réchauffement devrait se poursuivre au-delà de cette date, même si les émissions s'arrêtent, en raison de la grande capacité calorifique des océans et de la durée de vie du ��ଶ et des autres GES dans l'atmosphère. Les conséquences prévues théoriquement de ce réchauffement accéléré sont nombreuses et difficiles à cerner. Cependant, on en citera plusieurs qui sont déjà visibles : la fréquence, l'intensité et la durée des phénomènes extrêmes (canicules, inondations, sécheresses, cyclones...) se sont accentuées ; les écarts thermiques entre les saisons et les continents sont de moins en moins marqués ; le recul des glaciers et la fonte des calottes polaires augmentent le niveau des océans ; les cycles de vie de certaines espèces animales et végétales sont modifiés et leur risque d'extinction s͛aĐĐƌoît, etĐ… Outƌe  Đes  iŵpaĐts  suƌ  l͛eŶǀiƌoŶŶeŵeŶt,  tous  les  seĐteuƌs  soĐio-économiques seront affectés. Ces ĐoŶsĠƋueŶĐes  iŵposeŶt  la  ŵise  à  jouƌ  de  l͛iŶfƌastƌuĐtuƌe  phLJsiƋue  et  soĐiale,  allaŶt  d'uŶe  modification des pratiques de construction à une adaptation des systèmes de santé. Le secteur de l͛agƌiĐultuƌe seŶsiďle au Đliŵat seƌa aussi touĐhĠ. Le ĐhaŶgeŵeŶt de teŵpĠƌatuƌe affeĐte la pĠƌiode  des récoltes ; les précipitations fortes provoquent de sérieux glissements de terrain ou de violentes ĐoulĠes de ďoue d͛où le ďesoiŶ d͛adaptatioŶ de Đe seĐteuƌ pouƌ ƌĠsisteƌ audž Đatastƌophes Ŷatuƌelles  plus intenses et plus fréquentes. L͛eŶseŵďle  des  Ġtudes  et  doŶŶĠes  aŶŶoŶĐeŶt  doŶĐ  uŶ  daŶgeƌ  Ƌui  ŵeŶaĐe  la  ǀie  suƌ  la  Teƌƌe.  Ce problème planétaire touche le monde entier sans exception et nécessite donc un engagement au Ŷiǀeau iŶteƌŶatioŶal afiŶ d͛eŶ liŵiteƌ les ĐoŶsĠƋueŶĐes et sauǀeƌ la plaŶğte.Page | 2 L͛aĐtiǀitĠ  huŵaiŶe  gĠŶğƌe  des  GE“  Ƌui  soŶt  uŶe  des  Đauses  du  ƌĠĐhauffeŵeŶt  ĐliŵatiƋue. La combustion des énergies fossiles est l'un des premiers facteurs qui augmentent la production des GES. C'est pourquoi aujourd'hui il est nécessaire de trouver de nouvelles énergies propres pour, sans même penser à baisser cette production, tenter au moins d'arrêter sa croissance. Actuellement, la quasi-totalité des activités (industries, transport, habitat etc..) se base sur les dérivés du pétrole (essence et gazole) dont les stocks sur la planète sont limités ce qui entraine un problème économique et politique : la ƌaƌetĠ des ƌessouƌĐes liĠe à l͛augŵeŶtatioŶ iŶĐoŶtƌôlaďle de la deŵaŶde  cause la croissance ingérable des prix et implique une dépendance politique envers les pays fouƌŶisseuƌs.  Des  solutioŶs  doiǀeŶt  doŶĐ  ġtƌe  ŵises  eŶ  œuǀƌe  pouƌ  liŵiteƌ  la consommation du pétrole tant dans l'industrie, que l'habitat ou les transports. Dans le domaine des transports, l'hybridation des motorisations thermiques est une solution provisoire qui prépare pour les motorisations tout électriques. En utilisant des sources d'énergie électriques au lieu des dérivés du pétrole, l'efficacité énergétique du véhicule est améliorée et, en même temps, les émissions du véhicule et la consommation des carburants à base de pétrole sont réduites. Depuis plusieurs années, les études sur ces nouvelles configurations de véhicules sont lancées. DiffĠƌeŶts  sujets  soŶt  ĠǀoƋuĠs,  ŵais  la  ďatteƌie  ƌeste  l͛ĠlĠŵeŶt  pƌiŵoƌdial  ǀu  Ƌue  le  ďoŶ  fonctionnement des véhicules hybrides et électriques est lié à la disponibilité du réseau de puissance et donc par conséquent à la batterie. DaŶs Đe geŶƌe d͛appliĐatioŶs où de  foƌtes puissaŶĐe et  teŶsioŶ  soŶt ŶĠĐessaiƌes, les aĐĐuŵulateuƌs  ;dits aussi ĐellulesͿ soŶt ďƌaŶĐhĠs eŶ paƌallğle pouƌ foƌŵeƌ Đe Ƌu͛oŶ appelle uŶ Ġtage. L͛assoĐiatioŶ  de plusieurs étages en série forme un module, et finalement un pack est constitué de plusieurs modules en série. Le marché des batteries ne cesse d'évoluer au cours des années et les thèmes de recherche peuvent être divisés en deux groupes. Le premier porte sur la chimie et les processus de fabrication des batteries, et vise à augmenter l'énergie, la puissance, la sécurité et la dimension des cellules, de ŵaŶiğƌe  à  ġtƌe  Đoŵpatiďle  aǀeĐ  les  edžigeŶĐes  de  l'autoŵoďile.  Le  seĐoŶd  s͛iŶtĠƌesse  audž  ŵodes  d͛utilisatioŶ  des  ďatteries et concerne le développement des modèles pour décrire leurs comportements, des algorithmes pour estimer des variables non mesurables, des circuits ĠleĐtƌoŶiƋues  pouƌ  gĠƌeƌ  les  ďatteƌies  peŶdaŶt  leuƌ  foŶĐtioŶŶeŵeŶt,  etĐ…  Le  pƌeŵieƌ  thğŵe  de  recherche appaƌaît daŶs Đe ŵaŶusĐƌit au tƌaǀeƌs du Đhoidž de la teĐhŶologie de l͛aĐĐuŵulateuƌ, aloƌs  Ƌue le Đœuƌ de l͛Ġtude appaƌtieŶt au deudžiğŵe.  La  ďatteƌie est  souǀeŶt aĐĐusĠe  d͛ġtƌe le  faĐteuƌ liŵitaŶt  de  Đes  Ŷouǀelles  ĐatĠgoƌies  de ǀĠhiĐules.  Etant la partie la plus coûteuse (ͷͲ % du prix du véhicule), ni le constructeur, ni le consommateur ne désirent assumer le coût financier du remplacement du pack batterie au cours de la vie du véhicule. Page | 3 Le  dĠǀeloppeŵeŶt  d͛uŶ  ǀĠhiĐule  pƌopƌe  eŶgloďe  paƌ  ĐoŶsĠƋueŶt  l͛optiŵisation de sa chaîne de ŵotoƌisatioŶ du poiŶt de ǀue du Đoût et de l'autoŶoŵie, aiŶsi Ƌu͛uŶe ŵise eŶ adĠƋuatioŶ de la duƌĠe  de vie du pack batterie avec celle du véhicule. Malheureusement, les performances des batteries déclinent au fil de leur utilisation, ce qui rend leur gestion un enjeu essentiel pour la diffusion des véhicules propres dans des conditions de coûts acceptables. Un système de management de batterie (BMS pour Battery Management system) à bord d'un véhicule est nécessaire afin de protéger les batteries de tous les dommages éventuels, de prolonger leur durée de vie, et de veiller à les maintenir à un niveau de fonctionnement optimal. Pouƌ atteiŶdƌe Đes oďjeĐtifs, plusieuƌs iŶdiĐes d͛Ġtat soŶt pƌĠdĠfiŶis doŶt deudž soŶt pƌiŵoƌdiaudž pouƌ  une bonne gestion de l'énergie. Une bonne connaissance de l'état de charge (��� pour State Of Charge) et de l'état de santé (��� pour State Of Health) permet de déterminer le niveau de fonctionnement que peut assurer la batterie. Une bonne surveillance de la batterie permet également d'assurer son fonctionnement en toute sécurité et prévenir tout risque de dégradation des accumulateurs eux-mêmes (emballement thermique, explosion) et de leurs performances. Dans la  littĠƌatuƌe,  oŶ  ŵeŶtioŶŶe  souǀeŶt  la  peƌtiŶeŶĐe  de  l͛iŵpĠdaŶĐe  ĠleĐtƌiƋue  pouƌ  atteiŶdƌe  Đes  objectifs. Sur la base  d͛oďseƌǀatioŶs  des  ǀaƌiatioŶs  de  l͛alluƌe  du  speĐtƌe  d͛iŵpĠdaŶĐe  aǀeĐ  les  conditions de mesures (courant, ���, ���, etĐ …Ϳ, oŶ suggğƌe uŶe ĐoƌƌĠlatioŶ iŵpliĐite ou edžpliĐite  de  l͛iŵpĠdaŶĐe  aǀeĐ  Đes  iŶdiĐes.  DaŶs  Đette  optiƋue,  le  pƌojet  de  ƌeĐheƌĐhe  pƌoposĠ  daŶs  Đe  ŵĠŵoiƌe  ǀise  à  Ġtaďliƌ  uŶ  sLJstğŵe  d͛estiŵatioŶ  eŶ  eŵďaƌƋuĠ  de  l͛iŵpĠdaŶĐe  ĠleĐtƌiƋue  des  accumulateurs et s'inscrit dans le cadre de l'amélioration des systèmes de gestion de batterie. Toute l'étude portera sur un accumulateur de technologie Li-ion. En effet, cette technologie présente uŶe edžĐelleŶte deŶsitĠ d͛ĠŶeƌgie, uŶe duƌĠe de ǀie iŵpoƌtaŶte et Ŷe possğde pas d͛effet ŵĠŵoiƌe.  Après des débuts plus ou moins satisfaisants sur des technologies nickel-cadmium (����) ou nickelhydrure métallique (����), les batteries Li-ion semblent prometteuses pour une utilisation dans des applications de puissance et donc représentent la prochaine génération de système de stockage Ƌu͛iŶtĠgƌeƌoŶt les ǀĠhiĐules ĠleĐtƌiƋues. Etant donné que cette étude a pour finalité l'implantation en temps réel dans des processeurs embarqués sur véhicule, l'originalité de cette thèse par rapport aux travaux similaires, repose sur l'utilisation des signaux large bande à motifs carrés. Malgré leur simplicité apparente, leur intérêt est notable. Faciles à implanter en embarqué, ces signaux ont prouvé leurs performances pour l͛ideŶtifiĐatioŶ de sLJstğŵes, et oŶ ǀa les appliƋueƌ au Đas de l͛iŵpĠdaŶĐe d͛uŶ aĐĐuŵulateuƌ. Ce document est structuré en quatre chapitres. Un premier chapitre permet de situer la problématique traitée dans cette thèse par rapport aux enjeux sociétaux et environnementaux du développement des véhicules non polluants. Ensuite, les ĐaƌaĐtĠƌistiƋues  d͛uŶ  aĐĐuŵulateuƌ  aiŶsi  que les différentes approches de modélisation sont Page | 4 présentées. A côté des modèles mathématiques et électrochimiques, les circuits électriques équivalents sont détaillés ainsi que les liens possibles entre les principaux phénomènes chimiques qui y prennent place et les composants électriques du modèle. Ce formalisme permettra une analyse physique plus aisée des différentes réponses de l'accumulateur. Les Đhapitƌes suiǀaŶts ĐoŶstitueŶt le Đœuƌ du tƌaǀail réalisé durant cette thèse. Le chapitre 2 commence aveĐ uŶe pƌĠseŶtatioŶ de la thĠoƌie de l͛ideŶtifiĐatioŶ ŶoŶ paƌaŵĠtƌiƋue des systèmes linéaires et invariants dans le temps en utilisant des signaux large bande en entrée. Sur la ďase  d͛uŶ  ĐiƌĐuit ĠleĐtƌiƋue ĠƋuiǀaleŶt  ;���) implanté sous Simulink, une étude en simulation des performances de signaux large bande de différents types pouƌ l͛estiŵatioŶ de l͛iŵpĠdaŶĐe ĠleĐtƌiƋue  est  pƌoposĠe  afiŶ  de  ǀalideƌ  l͛utilitĠ  de  tels  sigŶaudž  pouƌ  Đette  appliĐatioŶ.  Plusieuƌs  gƌaŶdeurs ĐaƌaĐtĠƌistiƋues  soŶt  utilisĠes  ;ĐohĠƌeŶĐe  speĐtƌale, iŶteƌǀalle  de  ĐoŶfiaŶĐe…Ϳ afiŶ  de  ƋuaŶtifieƌ les  performances d͛estiŵatioŶ de Đes sigŶaudž d͛edžĐitatioŶ.  Ensuite, une étude expérimentale est présentée dans le chapitre 3. PuisƋue  l͛iŵpĠdaŶĐe  ƌĠelle de l͛aĐĐuŵulateuƌ est iŶĐoŶŶue, la première partie de ce chapitre est consacrée à une étude effectuée sur un circuit électrique de référence à impédance connue. En utilisant son expression analytique, uŶe ĐoŵpaƌaisoŶ de peƌfoƌŵaŶĐes eŶtƌe la teĐhŶiƋue d͛identification large bande proposée et celles de la méthode classique est établie. La seconde partie présente les résultats expérimentaux obtenus sur un accumulateur réel. Le Đhapitƌe ϰ ĐoŶstitue uŶe ĐoŶtiŶuitĠ Ŷatuƌelle de l͛Ġtude. Il dĠĐƌit deudž possiďilitĠs d͛edžploitatioŶ  de  l͛iŵpĠdaŶĐe  estiŵĠe  ǀia  la  teĐhŶiƋue  d͛ideŶtifiĐatioŶ  laƌge  ďaŶde.  La  pƌeŵiğƌe  ĐoŶsiste  à  l͛utilisatioŶ d͛uŶ algoƌithŵe d͛optiŵisatioŶ afiŶ de ƌeŵoŶteƌ audž ǀaleuƌs des ĐoŵposaŶts d͛uŶ ĐiƌĐuit  électrique équivalent. Dans cette optique, un algorithme double étape est élaboré. Celui-ci permet d͛aŵĠliorer en termes de convergence, un algorithme classiquement utilisé. La seconde partie pƌĠseŶte uŶe ĐoŵpaƌaisoŶ des peƌfoƌŵaŶĐes de la teĐhŶiƋue d͛ideŶtifiĐatioŶ laƌge ďaŶde pƌoposĠe  par rapport  à  uŶ  Đahieƌ  des  Đhaƌges  ĠlaďoƌĠ  ǀia  le  siŵulateuƌ  pouƌ  le  suiǀi  des  iŶdiĐes  d͛Ġtat  de  l͛aĐĐuŵulateuƌ : l͛Ġtat de Đhaƌge ;���) et l͛Ġtat de saŶtĠ ;���). Page | 5 Chapitre 1 : Contexte général 1.1 Problèmes écologiques et économiques liés au transport De nos jours, la quasi-totalitĠ  des aĐtiǀitĠs  huŵaiŶes  s͛appuie  suƌ la  ĐoŶsoŵŵatioŶ  des  dĠƌiǀĠs  du  pétrole (essence et gazole), ce qui est particulièrement vrai pour le secteur du transport. La raréfaction de ces ressources et le réchauffement climatique que subit notre ère poussent à l͛ĠŵeƌgeŶĐe  de  Ŷouǀelles  ĠŶeƌgies  alteƌŶatiǀes  pƌopƌes  et  ƌeŶouǀelaďles.  Le  dĠǀeloppeŵeŶt  de  véhicules hybrides et ĠleĐtƌiƋues s͛iŶsĐƌit daŶs Đette teŶdaŶĐe de foŶd. De tels ǀĠhiĐules peƌŵettƌoŶt  de  ĐiƌĐuleƌ,  d͛uŶe  paƌt,  eŶ  ƌĠduisaŶt  l͛ĠŵissioŶ  des  gaz  à  effet  de  seƌƌe  ;GE“Ϳ  ƌeĐoŶŶus  ġtƌe  les  pƌiŶĐipaudž ageŶts ƌespoŶsaďles du ƌĠĐhauffeŵeŶt ĐliŵatiƋue, et d͛autƌe paƌt, sans être menacés par la raréfaction des ressources pétrolières. 1.1.1 Le transport en tant que principal émetteur de GES Le terme GES regroupe plusieurs gaz émis par les activités humaines [1] :  le dioxyde de carbone (��ଶ ) qui provient de la combustion des énergies fossiles,  le méthane (��ସ ) qui provient de l’élevage des ruminants, de la culture du riz, des décharges  d'ordures, des exploitations pétrolières, gazières et charbonnières,  le protoxyde d'azote (�ଶ�) qui vient des engrais azotés et de divers procédés chimiques,  les gaz fluorés ou hydrofluorocarbures (���) qui sont des gaz propulseurs des bombes aérosols, des gaz réfrigérants ou proviennent d'industries diverses,  les hydrocarbures perfluorés ( ��� ) qui sont émis notamment lors de la fabrication de l'aluminium,  l'hexafluorure de soufre (��଺ሻ qui est un gaz inerte utilisé comme détecteur de fuite et isolant électrique. DaŶs  soŶ  ĐiŶƋuiğŵe  ƌappoƌt  sĐieŶtifiƋue  de  ϮϬϭϯ  [Ϯ], le gƌoupe  d͛edžpeƌts iŶteƌgouǀeƌŶeŵeŶtal  suƌ  l͛ĠǀolutioŶ du climat (GIEC) confirme, avec plus de ͻͲ% de certitude, que le réchauffement observé Đes  ĐiŶƋuaŶte  deƌŶiğƌes  aŶŶĠes  pƌoǀieŶt  esseŶtielleŵeŶt  de  l͛augŵeŶtatioŶ  des  ĠŵissioŶs  de  GE“  par les activités humaines (chauffage, transports, industries, élevage intensif). La corrélation entre l͛augŵeŶtatioŶ  de  la  teŵpĠƌatuƌe  et  Đelle  de  la  ĐoŶĐeŶtƌatioŶ  des GE“ et plus  paƌtiĐuliğƌeŵeŶt  le  ��ଶ (unité : parties par million en volume (����ͿͿ  est  uŶ  des  ĠlĠŵeŶts  Ƌui  peƌŵetteŶt  d͛ĠtaLJeƌ  cette hypothèse [3] (Figure 1-11-1).Page | 6 Figure 1-1: Evolution comparée de la concentration en ��� dans l’atmosphère et de la  température moyenne du globe terrestre. Les  ĐoŶsĠƋueŶĐes  gƌaǀes  du  ƌĠĐhauffeŵeŶt  ĐliŵatiƋue  soŶt  saŶs  ĠƋuiǀoƋue.  L͛aĐĐƌoisseŵeŶt  des  températuƌes ŵoLJeŶŶes ŵoŶdiales de l͛atŵosphğƌe et de l͛oĐĠaŶ, la foŶte gĠŶĠƌalisĠe de la Ŷeige et  de la glaĐe et l͛ĠlĠǀatioŶ du Ŷiǀeau ŵoLJeŶ ŵoŶdial de la ŵeƌ soŶt des oďseƌǀatioŶs Ƌu͛oŶ Ŷe peut  plus nier. Le réchauffement moyen constaté à la surface de la terre  s͛Ġlğǀe  de   Ͳ,͹ʹ℃ ሺͲ,Ͷͻ ° C à Ͳ,ͺͻ ° Cሻ  sur la période ͳͻͷͳ − ʹͲͳʹ. Chacune des trois dernières décennies a été beaucoup plus chaude que toutes les décennies précédentes, et la première décennie du ʹͳ� siècle a été la plus chaude [1]. Pour toutes ces raisons, bon nomďƌe  d͛Ġtats  oŶt  iŶǀesti  daŶs  des  ƌeĐheƌĐhes  ǀisaŶt  à  ƌĠduiƌe  les  émissions de GES. En France, plusieurs secteurs sont à l͛oƌigiŶe des ĠŵissioŶs de GE“ [ϰ]. Particulièrement, en ʹͲͳͳ et aǀeĐ uŶ pouƌĐeŶtage d͛eŶǀiƌoŶ ͵͸%, le secteur des transports (regroupant la circulation automobile et le transport routier) est le principal émetteur, en particulier pour le ��ଶ (Figure 1-21-2). Ce quota pƌeŶd eŶ Đoŵpte la ĐoŶtƌiďutioŶ diƌeĐte de Đe seĐteuƌ à l͛ĠŵissioŶ de ��ଶ (combustion du gazole ou de l'essence), de ��ସ (évaporation des carburants en stockage et combustions incomplètes) et de ��� (systèmes de climatisation), ainsi que sa contribution indirecte (émissions dues à l'exploitation du pétrole). Page | 7 Figure 1-2 : Emissions de gaz à effet de serre par secteur en France en 2000 et 2011 [4]. DaŶs le  seĐteuƌ du  tƌaŶspoƌt, uŶe  ĐoƌƌĠlatioŶ edžpliĐite est ŶotĠe eŶtƌe l͛ĠǀolutioŶ de la pƌoduĐtioŶ  automobile mondiale depuis ͳͺͺͲ et la concentration en ��ଶ daŶs  l͛atŵosphère (Figure 1-31-3). L͛oƌigiŶe  de  Đette  augŵeŶtatioŶ  peut  ġtƌe  attƌiďuĠe  à  deudž  Đauses  pƌiŶĐipales :  l͛augŵeŶtatioŶ  ĐoŶtiŶue du Ŷoŵďƌe de ǀoituƌes eŶ ĐiƌĐulatioŶ d͛uŶe paƌt, et l͛edžigeŶĐe ĐoŶtiŶue des ĐlieŶts d͛aǀoiƌ des voitures plus puissantes et donc émettant plus de ��ଶ d͛autƌe paƌt. EŶ ʹͲͲͷ, [5] annonce une nouvelle inquiétante : selon une étude récente, la concentration en ��ଶ (͵ͺͲ ����) est ʹ͹ % plus élevée que le maximum atteint au cours de ces ͸ͷͲ ͲͲͲ dernières années. En ʹͲͲ͸, le taux de ��ଶ est toujouƌs eŶ augŵeŶtatioŶ, l͛OƌgaŶisatioŶ MĠtĠoƌologiƋue MoŶdiale ;OMMͿ, eŶƌegistƌe uŶe  teneur de ͵ͺͳ,ʹ ����. Figure 1-3 : Evolution de la production en automobile et de la concentration en CO2 dans l’atmosphère. Ces chiffres alarmants ont finalement abouti en ʹͲͲͷ à la ŵise eŶ plaĐe d͛uŶe Ŷoƌŵe aŶtipollutioŶ  réduisant les émissions de GES par la commission européenne. Elle a pour objectif de corriger progressivement les tendances polluantes, et ses exigences sont réactualisées tous les quatre ans. Page | 8 1.1.2 Le pétrole : conflits économiques et politiques De même que les préoccupations environnementales, les préoccupations économiques et politiques impliquent également la mutation du secteur du transport. Les ressources en pétrole ne sont pas illiŵitĠes  aloƌs  Ƌue  les  ďesoiŶs  s͛aĐĐeŶtueŶt.  Cette  ƌaƌĠfaĐtioŶ  a  diƌeĐteŵeŶt  iŶfluĠ  suƌ  le  pƌidž    de   l͛esseŶĐe  Ƌui  Ŷe  Đesse  d͛augŵeŶteƌ  ;Figure 1-41-4Ϳ.  L͛effoŶdƌeŵeŶt  ŶotĠ  eŶ ʹͲͲͺ est lié à la crise financière qui a touché la planète. Cependant, la reprise à la hausse souligne une demande mondiale importante. Et Đe Ŷ͛est pas  tout, les paLJs oĐĐideŶtaudž ŵaŶƋueŶt de  ƌessouƌĐes pĠtƌoliğƌes. Ce sont les pays du Moyen-Orient qui assurent les besoins des pays développés en pétrole. Cette dépendance économique impacte profondément les relations politiques surtout avec les troubles politiques au Moyen-OƌieŶt. L͛utilisatioŶ de pƌoduits  pĠtƌoliers devient de moins en moins avantageuse face à d͛autƌes    alteƌŶatiǀes.    Les  ĐoŶstƌuĐteuƌs  autoŵoďiles,  eŶ  paƌtiĐulieƌ,  doiǀeŶt  doŶĐ  s'adapteƌ  à  Đe  ĐoŶtedžte  eŶ  dĠǀeloppaŶt  des  solutioŶs  utilisaŶt  des  souƌĐes  d͛ĠŶeƌgie  ŵoiŶs  Đoûteuses  Ƌue  le  pétrole. Figure 1-4 : Evolution du prix de pétrole de 1987 à 2012 [6]. 1.2 Vers l’électrification du véhicule Face aux problèmes évoqués, les consommateurs désirent des véhicules de plus en plus propres et les constructeurs automobiles doivent développer des solutions moins polluantes tout en utilisant des ressources moins coûteuses que le pétrole. Plusieurs possibilités sont envisageables. Utiliser le Gaz de Pétrole Liquéfié, le Gaz Naturel, le ďiogazole  eŶ  soŶt  des  edžeŵples.  CepeŶdaŶt,  l͛ĠleĐtƌifiĐatioŶ  du  ǀĠhiĐule  ĐoŶstitue  ŶotaŵŵeŶt  à  court terme une excellente solution alternative, et à moyen ou long terme, pourrait venir remplacer les véhicules thermiques classiƋues.  OŶ  distiŶgue  plusieuƌs  degƌĠs  d͛ĠleĐtƌifiĐatioŶ  eŶ  foŶĐtioŶ  de  l͛iŵpoƌtaŶĐe du sLJstğŵe ĠleĐtƌiƋue daŶs la tƌaĐtioŶ du ǀĠhiĐule [ϳ] :  HEV  :  Véhicule  Hybride  Électrique  (Hybrid  Electric  Vehicle).  Ces  véhicules  disposent  d’un  degré  d’électrification  plus ou moins important, allant de la simple aide au démarrage à un mode tout électrique très limité. Le véhicule devient alors moins consommateur de carburant Page | 9 et moins polluant dans les villes. Il garde une autonomie et des performances dynamiques, comparables à celles des véhicules thermiques classiques sur routes et autoroutes. Il se distingue par l’impossibilité de se recharger sur une prise de courant [7].  PHEV : Véhicule Hybride Électrique Rechargeable (Plug-in Hybrid Electric Vehicle). Ces hybrides rechargeables sont une variante du modèle hybride. Leur spécificité est de permettre le  rechargement  de  la  batterie  du  véhicule  à  l’arrêt  à  l’aide  d’une  prise  de  courant.  Le  pack  batterie est, dans les faits, beaucoup plus important que pour un simple HEV. Le véhicule est donc capable de fonctionner en mode tout électrique sur de petites distances (inférieures à ͷͲ ��). Une fois la batterie déchargée, le véhicule se comporte alors comme un véhicule hybride [7]. .  EV : Véhicule Électrique (Electric Vehicle). Les véhicules électriques ne sont pas des véhicules hybrides, ils  ont  le  plus  haut  degré  d’électrification.  On  parle  de  véhicule  « tout électrique ». La seule source d’énergie utilisée, dans ces véhicules, est la batterie. Celle-ci se recharge comme celle  d’un PHEV  sur  une  prise  de  courant  (recharge  classique  ou  rapide).  Les émissions sont alors nulles lors du roulage du véhicule, on parle également de véhicule « Zéro Émission » [7]. Ces ǀĠhiĐules, eŶtƌe autƌes, foŶt l͛oďjet d͛Ġtudes ŵeŶĠes au CEA1 : en particulier, les instituts du LETI2 et du LITEN3 tƌaǀailleŶt  daŶs  le  ďut  de  ǀaloƌiseƌ  Đette  teĐhŶologie.  Il  s͛aǀğƌe  ĠǀideŶt  Ƌue  le  ďoŶ  fonctionnement de ces véhicules dépend essentiellement des dispositifs de stockage d'énergie électrique, en particulier des batteries. Par conséquent, le contrôle du système de stockage d'énergie est primordial. Le principal obstacle est la difficulté d'une telle tâche. En effet, une batterie est un système non-linéaire complexe influencé par plusieurs facteurs dont les principaux sont les profils d͛utilisatioŶ,  ĐaƌaĐtĠƌisĠs  paƌ  les  ƌĠgiŵes  de  puissaŶĐe  et  les  duƌĠes  d͛iŶteƌƌuptioŶs,  et  la  température interne, dépendante de la température ambiante et du système de gestion thermique. De plus, elle subit des modifications de ses propriétés en raison de processus de vieillissement. Dans de nombreux cas, l'état de la batterie est évalué uniquement à partir de la tension, du courant et de la température, ces paramètres étant accessibles à la plupart des systèmes de mesure embarqués dans le véhicule. Cette thèse est une contribution à la gestion embarquée des batteries, et plus particulièrement à la dĠteƌŵiŶatioŶ de l'iŵpĠdaŶĐe ĠleĐtƌiƋue d͛uŶ aĐĐuŵulateuƌ  ;ĠlĠŵeŶt de ďase d͛uŶe ďatteƌieͿ daŶs  un but de surveillance. 1 Commissariat à l’énergie atomique et aux énergies alternatives 2 Laboratoire d’Electronique et de Technologie de l’Information 3 Laboratoire d’Innovation pour les Technologies des Energies Nouvelles et les nanomatériauxPage | 10 1.3 Généralités sur les accumulateurs Afin de situer la problématique de ce travail de thèse, cette section présente de manière générale, les accumulateurs, les différentes technologies existantes et leur principe de fonctionnement. Elle introduit aussi les grandeurs caractĠƌistiƋues d͛uŶ aĐĐuŵulateuƌ, Đe Ƌui peƌŵet de dĠfiŶiƌ les iŶdiĐes  d͛Ġtat. 1.3.1 Les technologies des accumulateurs UŶ  aĐĐuŵulateuƌ  est  uŶ  ĠlĠŵeŶt  de  stoĐkage  d͛ĠŶeƌgie  ĠleĐtƌoĐhiŵiƋue  pouǀaŶt  foŶĐtioŶŶeƌ  de  manière réversible. Un accumulateur est constitué de deux couples oxydoréducteurs, ��ଵ/���ଵ et ��ଶ/���ଶ, pƌĠseŶts suƌ deudž ĠleĐtƌodes diffĠƌeŶtes aLJaŶt des poteŶtiels d͛ĠƋuiliďƌe diffĠƌeŶts. C͛est  l͛ĠĐaƌt  eŶtƌe  les  poteŶtiels  Ƌui  fait  la  teŶsioŶ  à  ǀide  de  l͛aĐĐuŵulateuƌ  ;��� pour open circuit voltage). Ce dernier doit  ġtƌe  Đapaďle  de  fouƌŶiƌ  uŶ  ŵadžiŵuŵ  d͛ĠŶeƌgie  et  de  puissaŶĐe  pouƌ  uŶ  minimum de volume et de masse. UŶ Đƌitğƌe iŵpoƌtaŶt de ĐoŵpaƌaisoŶ des peƌfoƌŵaŶĐes de diffĠƌeŶts aĐĐuŵulateuƌs est l͛ĠǀaluatioŶ  du couple puissance/énergie spécifique qui est représenté par le diagramme de Ragone (Figure 1-51-5Ϳ.  Ce  Đouple  tƌaduit  l͛ĠŶeƌgie  fouƌŶie  pouƌ  uŶe  puissaŶĐe  doŶŶĠe  [ϴ].  La  puissaŶĐe  ;ƌesp.  l͛ĠŶeƌgieͿ spĠĐifiƋue est dĠfiŶie Đoŵŵe ĠtaŶt la puissaŶĐe ŵadžiŵale  ;ƌesp. l͛ĠŶergie maximale) que peut fouƌŶiƌ l͛aĐĐuŵulateuƌ paƌ uŶitĠ de poids. UŶe pƌeŵiğƌe estiŵatioŶ de l͛ĠŶeƌgie spĠĐifiƋue peut  ġtƌe oďteŶue eŶ utilisaŶt la ĐapaĐitĠ ŶoŵiŶale, la teŶsioŶ ŶoŵiŶale et le poids de l͛ĠlĠŵeŶt. Figure 1-5 : Diagramme de Ragone pour différentes technologies d’accumulateurs [9]. Le choix des technologies des accumulateurs intégrés dans les véhicules hybrides et électriques a évolué au cours du temps. Le Tableau 1-1 présente une comparaison de trois principales technologies utilisĠes et peƌŵet d͛edžpliƋueƌ les  ƌaisoŶs aďoutissaŶt au Đhoidž de la  teĐhŶologie �� − ���. Page | 11 Tableau 1-1 : Comparaison des technologies d’accumulateurs [13]. Au  dĠpaƌt, eŶ  ƌaisoŶ  de leuƌ  faiďle  Đoût et  de leuƌ  siŵpliĐitĠ  de ŵise eŶ œuǀƌe, les aĐĐuŵulateuƌs  plomb à électrolyte acide étaient les plus utilisés. Toutefois, leurs faibles densités énergétiques ainsi que leur courte durée de vie ont poussé les constructeurs à développer de nombreuses autres technologies : nickel à électrolytes alcalins (����, ����, ����), lithium à électrolyte polymère solide et anode de lithium métallique en film minces (�� − ���) ou à électrolyte organique liquide et électrode négative à insertion (�� − ���), alcalins (��/��, ��/��) etc. Les technologies qui ont précédé les accumulateurs �� − ��� souffraient de plusieurs problèmes. On peut citer comme simple exemple le dépôt métallique sous forme de dendrite. Ce dépôt, inhérent à la nature même du métal, peut, dans les accumulateurs lithium métal polymère par exemple, provoquer des problèmes de sécurité. Cette poussée dendƌitiƋue  est  susĐeptiďle  d͛eŶtƌaîŶeƌ  uŶ  Đouƌt-circuit interne à l͛aĐĐuŵulateuƌ  paƌ  peƌĐĠe  du  sĠpaƌateuƌ  ;ŵeŵďƌaŶe  sĠpaƌaŶt  les  deudž  feuillets  d͛ĠleĐtƌodesͿ.  De  plus, elle ĐoŶtƌiďue à la ĐoŶsoŵŵatioŶ de l͛ĠleĐtƌolLJte Ƌui ƌĠagit aǀeĐ le lithiuŵ fraîchement déposé [10]. Actuellement les accumulateurs �� − ��� dominent le marché des accumulateurs pour plusieurs raisons. On en cite quelques unes ci-dessous [11][12] : - densité d’énergie élevée (ͳ͹Ͳ ��ℎ. �ିଵ environ), - matière brute peu coûteuse et disponible dans la nature (minérale de triphylite), - facilité de synthèse, - respect de l’environnement et de la sécurité, - vie de cycle et calendaire plus longue, - excellente stabilité de structure, - stabilité thermique et stabilité électrochimique. Malgré ces performances, leur coût reste encore élevé. Les travaux de recherche actuels portent sur les ŵatĠƌiaudž ĐoŶstitutifs des ĠleĐtƌodes, et ŶotaŵŵeŶt la positiǀe, afiŶ d͛augŵeŶteƌ la  teŶsioŶ de  fonctionnement et/ou la durée de vie. Page | 12 1.3.2 Grandeurs caractéristiques d’un accumulateur  UŶe teĐhŶologie d͛aĐĐuŵulateuƌ peut ġtƌe ĐaƌaĐtĠƌisĠe paƌ uŶe ŵultitude de gƌaŶdeuƌs [ϮϬ], doŶt oŶ  donne ici la définition. 1.3.2.1 La capacité de stockage � ሺ�ℎሻ La capacité de stockage � [20] représente la quantité de charge qu'il est possible d'obtenir lors d'une dĠĐhaƌge  Đoŵplğte  de  l͛aĐĐuŵulateuƌ  iŶitialeŵeŶt  ĐhaƌgĠ  aǀeĐ  uŶ  ĐouƌaŶt  ĐoŶstaŶt.  La  nomenclature utilisée pour désigner la capacité de stockage obtenue pour une décharge de � heures est �௡. De manière générale, lorsque l'on parle d'une capacité �ହ, cela revient à évoquer la quantité de charge obtenue lors d'une décharge de ͷ heures. 1.3.2.2 La capacité nominale �௡ ሺ�ℎሻ La capacité nominale [20] correspond à la capacité de stockage obtenue à un régime de décharge nominal et respectant les critères initiaux et finaux du constructeur (température, intensité du ĐouƌaŶt, etĐ…Ϳ. Coŵŵe la ĐapaĐitĠ de stoĐkage, la ĐapaĐitĠ ŶoŵiŶale dĠpeŶd de la teŵpĠƌatuƌe et de  l'Ġtat de l͛aĐĐuŵulateuƌ. 1.3.2.3 La capacité stockée �௦  ሺ�ℎሻ La capacité stockée [20] est analogue à la capacité nominale définie au paragraphe précédent edžĐeptĠe  Ƌue  l'Ġtat  iŶitial  Ŷe  dĠsigŶe  pas  foƌĐĠŵeŶt  l͛aĐĐuŵulateuƌ  Đoŵŵe  ĠtaŶt  ĐoŵplğteŵeŶt  chargé. 1.3.2.4 Le rendement faradique (%) Le rendement faradique [20] ƞ௙ représente l'efficacité de la recharge. En effet, dans les accumulateurs à électrolyte aqueux, les réactions aux électrodes sont concurrencées par des réactions secondaires. Ces réactions secondaires représentent des courants de fuite importants notamment lors des charges. Les accumulateurs Li-ion, dont l'électrolyte n'est pas aqueux, présentent des rendements faradiques proches de ͳͲͲ %. 1.3.2.5 L’autodécharge (%) Les  phĠŶoŵğŶes  d͛autodĠĐhaƌge  [ϮϬ]  se  tƌaduiseŶt  paƌ  uŶe  peƌte  de l͛ĠŶeƌgie loƌs  du  stoĐkage  de  l͛aĐĐuŵulateur. Ce phénomène provient des réactions secondaires intervenant aux deux électrodes et dépend fortement de la température. Pour les accumulateurs plomb et ���� [Ϯϭ], l͛autodĠĐhaƌge  est de ʹ % par jour. Les accumulateurs Li-ion sont beaucoup moins sensibles à ce phénomène avec une autodécharge de ͳͲ % par mois [21]. Page | 13 1.3.2.6 La tension à vide (��� pour Open Circuit Voltage) La teŶsioŶ à ǀide dĠsigŶe la teŶsioŶ d͛ĠƋuiliďƌe de l͛aĐĐuŵulateuƌ au ƌepos. Elle est dĠfiŶie Đoŵŵe la  diffĠƌeŶĐe  des  poteŶtiels  d͛ĠƋuilibre entre les deux électrodes. Après des temps de relaxation suffisant, celle-Đi dĠpeŶd diƌeĐteŵeŶt, d͛apƌğs la loi de NeƌŶst [ϮϮ], des aĐtiǀitĠs des espğĐes aĐtiǀes  et  de  la  teŵpĠƌatuƌe.  L͛histoƌiƋue  de  l͛utilisatioŶ  de  l͛aĐĐuŵulateuƌ  peut  aǀoiƌ  uŶ  iŵpact sur la teŶsioŶ à ǀide. OŶ paƌle aloƌs de phĠŶoŵğŶe d͛hLJstĠƌĠsis. Celui-ci est limité pour les accumulateurs Li-ion [20]. 1.3.2.7 La durée de vie en cyclage et calendaire Les performances des accumulateurs décroissent avec le temps. Un accumulateur est considéré en fiŶ de ǀie loƌsƋue ses peƌfoƌŵaŶĐes Ŷe ƌĠpoŶdeŶt plus à Đelles ŶĠĐessaiƌes pouƌ l͛appliĐatioŶ ǀisĠe. La  durée de vie en cyclage dépend de plusieurs paramètres tels que le mode du cyclage, la fenêtre d͛Ġtat de Đhaƌge utilisĠe et de la teŵpĠƌatuƌe de ĐLJclage. Elle est exprimée en nombre de cycles ou bien en quantité de charge fournie [20]. Paƌ ailleuƌs, uŶe autƌe duƌĠe de ǀie est doŶŶĠe à uŶ aĐĐuŵulateuƌ loƌs d͛uŶ stoĐkage pƌoloŶgĠ, oŶ  paƌle  de  la  duƌĠe  de  ǀie  ĐaleŶdaiƌe. Mġŵe  daŶs  le  Đas  où  l͛aĐĐuŵulateuƌ  Ŷ͛est  pas  utilisĠ,  il est  le  siège de réactions secondaires qui le détériorent. Cette grandeur dépend aussi de plusieurs paƌaŵğtƌes tels Ƌue l͛Ġtat de Đhaƌge de l͛aĐĐuŵulateuƌ et la teŵpĠƌatuƌe de stoĐkage [ϮϬ]. 1.3.3 Les accumulateurs Li-ion 1.3.3.1 Fonctionnement DaŶs Đette Ġtude, l͛aĐĐuŵulateuƌ Li-ion utilisé est de type ������ସ. Son fonctionnement repose sur le  sĐhĠŵa  d͛odžLJdo-réduction classique de la Figure 1-61-6 intervenant simultanément aux deux pôles :  l͛ĠleĐtƌode  positiǀe  ;��ଵି௫����ସ) (Equation 1-1) et la négative (��௫ �଺) (Equation 1-2). On Ŷoŵŵe  souǀeŶt  Đe  pƌiŶĐipe  ŵĠĐaŶisŵe  «  ƌoĐkiŶg  Đhaiƌ  »  Đaƌ  le  lithiuŵ  s͛iŶsğƌe  et  se  dĠsiŶsğƌe  alteƌŶatiǀeŵeŶt d͛uŶe ĠleĐtƌode à l͛autƌe loƌs des pƌoĐessus de Đhaƌge / dĠĐhaƌge. Figure 1-6 : Principe de fonctionnement d’un accumulateur Li-ion [14]. - Réaction électrochimique à l’électrode positivePage | 14 ������ସ ↔ ��ଵି௫����ସ + ���ା + ��ି Equation 1-1 - Réaction électrochimique à l’électrode négative  ͸� + ���ା + ��ି ↔ ��௫�଺ Equation 1-2 OŶ ĐoŶstate Ƌu͛au Đouƌs des pƌoĐessus ĠleĐtƌoĐhiŵiƋues, le lithiuŵ ĐoŶseƌǀe  toujours un caractère ionique, sans que jamais ne survienne le phénomène de dépôt métallique. Les  ŵatĠƌiaudž  d͛ĠleĐtƌodes  soŶt  gĠŶĠƌaleŵeŶt  des  ŵatĠƌiaudž  d͛iŶseƌtioŶ  doŶt  la  ĐaƌaĐtĠƌistiƋue  principale est de pouvoir insérer ou désinsérer des ions ��ା de manière réversible. En fonctionnement, les ions ��ା sont échangés entre les deux électrodes, à travers un électrolyte qui joue le rôle de conducteur ionique. Les électrons transitent, quant à eux, par le circuit électrique externe pour garantir la neutralité des électrodes. Pour assurer ces échanges, la polarisation doit bien entendu être toujours maintenue par le circuit externe. Lors de la décharge, les réactions d͛odžLJdoƌĠduĐtioŶ  audž  ĠleĐtƌodes  soŶt  spoŶtaŶĠes.  Des  ioŶs ��ା (respectivement électrons) sont pƌoduits  à  l͛ĠleĐtƌode  ŶĠgatiǀe  et  soŶt  tƌaŶspoƌtĠs  à  tƌaǀeƌs  l͛ĠleĐtƌolLJte  ;ƌespeĐtiǀeŵeŶt  ĐiƌĐuit  ĠleĐtƌiƋueͿ aǀaŶt d͛ġtƌe iŶsĠƌĠs daŶs l͛ĠleĐtƌode positiǀe. Cela ĐoŶduit à uŶe odžLJdatioŶ de l͛ĠleĐtƌode  ŶĠgatiǀe  ;aŶodeͿ et à uŶe  ƌĠduĐtioŶ de l͛ĠleĐtƌode positiǀe  ;ĐathodeͿ, et doŶĐ à la pƌoduĐtioŶ d͛uŶ  courant électrique. Lors de la charge, un courant doit être fourni par le circuit externe pour inverser les ƌĠaĐtioŶs et stoĐkeƌ uŶe ĠŶeƌgie sous foƌŵe d͛ĠŶeƌgie ĐhiŵiƋue. DaŶs Đe Đas, l͛ĠleĐtƌode ŶĠgative et l͛ĠleĐtƌode positiǀe deǀieŶŶeŶt ƌespeĐtiǀeŵeŶt, la Đathode et l͛aŶode. 1.3.3.2 Phénomènes physico-chimiques Les accumulateurs Li-ion sont le siège de différents phénomènes physico-chimiques. Cette partie décrit brièvement quelques-uns de ces phénomènes. a) L’effet de couche double L͛effet  de  ĐouĐhe  douďle  est  la  ƌepƌĠseŶtatioŶ  ĠleĐtƌiƋue  de  l͛iŶteƌfaĐe  ĠleĐtƌode-électrolyte. LoƌsƋu͛uŶ ŵĠtal est ploŶgĠ daŶs uŶe solutioŶ, il a teŶdaŶĐe à se Đhaƌgeƌ ŶĠgatiǀeŵeŶt eŶ suƌfaĐe à  Đause d͛uŶ edžĐğs d͛ĠleĐtƌoŶs. À soŶ tour, cette surface attire les ions positifs de son voisinage pour ĐƌĠeƌ  uŶe  ĐouĐhe  positiǀe  ;iŶteƌŶeͿ.  Paƌ ĠƋuiliďƌe,  uŶe  ĐouĐhe  d͛ioŶs  de  sigŶe  opposĠ  ;edžteƌŶeͿ ǀa  également se former quasi-instantanément le long de la première couche (Figure 1-71-7) [15]. Ce phĠŶoŵğŶe  tƌaduit  le  ĐoŵpoƌteŵeŶt  d͛uŶ  ĐoŶdeŶsateuƌ �ௗ௟ dont le diélectrique a une épaisseur très faible. Page | 15 Figure 1-7 : Schéma de composition de la couche double [16]. b) Transfert de charge Le phĠŶoŵğŶe de  tƌaŶsfeƌt de  Đhaƌge  tƌaduit la ĐiŶĠtiƋue de la  ƌĠaĐtioŶ d͛odžLJdo-réduction [15].Ce phĠŶoŵğŶe est dĠpeŶdaŶt, eŶtƌe autƌes, de la suƌteŶsioŶ à l͛iŶteƌfaĐe et de l͛aĐtiǀitĠ des odžLJdaŶts et  ƌĠduĐteuƌs.  L͛edžpƌessioŶ  du  ĐouƌaŶt  faƌadiƋue  est  doŶŶĠe, sous forme réduite, par la formule de Butler-Volmer [17]: �ி = �଴ሺ�ିఈி஗ − �ିሺଵିఈሻி஗ሻ Equation 1-3 Avec � la constante réduite de Faraday, � le coefficient de transfert de charge, � la surtension à l͛ĠleĐtƌode ou la suƌteŶsioŶ à tƌaǀeƌs la douďle ĐouĐhe ;�ௗ௟), et �଴ le ĐouƌaŶt d͛ĠĐhaŶge. c) La diffusion Le tƌaŶspoƌt paƌ diffusioŶ ĐoŶĐeƌŶe le dĠplaĐeŵeŶt de ŵatiğƌe sous l͛effet du gƌadieŶt de poteŶtiel  chimique des milieux les plus concentrés vers les moins concentrés. Ce phénomène est le plus compliqué à analLJseƌ daŶs l͛Ġtude de l͛aĐĐuŵulateuƌ et Ŷ͛est solliĐitĠ Ƌue pouƌ des foŶĐtioŶŶeŵeŶts  à très basse fréquence (�  <  ʹ ���) ou à fort courant [15][18]. d) Film de passivation Lorsque le potentiel des électrodes négatives (resp. positives) est situé en dehors du domaine de staďilitĠ ĠleĐtƌoĐhiŵiƋue, uŶe  ƌĠduĐtioŶ  ;ƌesp. dĠĐoŵpositioŶͿ paƌtielle de l͛ĠleĐtƌolLJte à la suƌfaĐe  des grains de matière active est alors observée [14][19]. Ce processus entraîne la consommation d͛uŶe paƌtie du lithiuŵ et ĐƌĠe uŶe Đouche solide à la surface de ces électrodes, appelée « film de passiǀatioŶ ». EŶ plus d͛uŶe diŵiŶutioŶ iƌƌĠǀeƌsiďle de la ĐapaĐitĠ de l͛aĐĐuŵulateuƌ, uŶe diŵiŶutioŶ  de la puissaŶĐe dispoŶiďle due à l͛augŵeŶtatioŶ de l͛iŵpĠdaŶĐe de l͛ĠleĐtƌode à Đause de la présence de cette couche, est aussi observée. Ce film permet la migration des ions lithium lors de l͛iŶseƌtioŶ/dĠsiŶseƌtioŶ  daŶs  le  ŵatĠƌiau  ĐaƌďoŶĠ,  et empêche partiellement la réduction de l͛ĠleĐtƌolLJte. Page | 16 e) Pertes ohmiques Tout passage de courant dans  l͛aĐĐuŵulateuƌ  est  aĐĐoŵpagŶĠ  d͛uŶe  Đhute  de  teŶsioŶ  liĠe  audž  ƌĠsistaŶĐes  de  l͛ĠleĐtƌolLJte,  de  l͛ĠleĐtƌode et  des ĠlĠŵeŶts  de  ĐoŶŶedžioŶ.  BieŶ  Ƌue  Đes  ƌĠsistaŶĐes  soieŶt de faiďles ǀaleuƌs, elles soŶt la Đause pƌiŶĐipale des peƌtes paƌ effet Joule daŶs l͛accumulateur. 1.3.4 Des accumulateurs aux batteries Toutes les technologies sont caractérisées par une faible tension nominale par rapport aux exigences de la plupart des systèmes à alimenter et particulièrement des véhicules hybrides et électriques (ͳ,ʹ � pour des accumulateurs de type ����, ͵,ʹ V pour une technologie Li-ion phosphate de fer (������ସ), ͵,͹ � pour une technologie de type Li-ioŶ  à  ďase  d͛odžLJde  de  ĐoďaltͿ.  Pouƌ  oďteŶiƌ  de  fortes capacités, on place plusieurs accumulateuƌs  eŶ  paƌallğle,  Đe  tLJpe  d͛assoĐiatioŶ  est  dĠsigŶĠ  comme un étage. Pour obtenir le niveau de tension adéquat, on place en série plusieurs étages, on paƌle aloƌs de ŵodules. L͛assoĐiatioŶ de plusieuƌs ŵodules est appelĠe uŶe ďatteƌie d͛aĐĐuŵulateuƌs  ou « pack batterie » ou plus couramment batterie (Figure 1-81-8). Figure 1-8 : Lien entre accumulateurs et batteries – Exemple d’une batterie composée de 10  modules en série, chaque module contenant 5 accumulateurs de 2,3 Ah chacun en parallèle (5p) mis en série 12 fois (12s). 1.4 Système de supervision de batterie Le  foŶĐtioŶŶeŵeŶt  daŶs  des  ĐoŶditioŶs  aŶoƌŵales  d͛uŶ  aĐĐuŵulateuƌ  peut  pƌoǀoƋueƌ  des  dĠgâts  ĐatastƌophiƋues. L͛eŵďalleŵeŶt theƌŵiƋue eŶ est uŶ edžeŵple. Ce phĠŶoŵğŶe se dĠĐleŶĐhe suƌtout  lors d͛uŶ Đouƌt-ĐiƌĐuit iŶteƌŶe ou uŶe  suƌĐhaƌge. Assuƌeƌ la sûƌetĠ des ĠlĠŵeŶts d͛uŶ paĐk ďatteƌie  est donc indispensable pour le développement des HEVs et EVs. Les ďatteƌies utilisĠes daŶs les ǀĠhiĐules soŶt souŵises à des pƌofils d͛usage Đoŵpledžes. EŶ effet, ces pƌofils ƌeflğteŶt l͛utilisatioŶ ĐhaotiƋue de la tƌaĐtioŶ opĠƌĠe paƌ le ĐoŶduĐteuƌ loƌs de tƌajets et Ƌui se Page | 17 ĐaƌaĐtĠƌiseŶt paƌ des ǀitesses et puissaŶĐes ǀaƌiaďles et iƌƌĠguliğƌes. CoŶtƌaiƌeŵeŶt à l͛utilisatioŶ au  seiŶ  d͛uŶ  oƌdiŶateuƌ  poƌtaďle  ;paƌ exemple) constituée de charges et de décharges répétitives, les profils automobiles peuvent être considérés comme aléatoires. Un système de supervision, désigné comme le BMS (Battery Management system), est donc toujours iŶtĠgƌĠ daŶs les HEVs et EVs afiŶ d͛assurer a minima la sûreté de fonctionnement des batteries. 1.4.1 Indices d’états Paƌŵi  les  iŶdiĐateuƌs  d͛Ġtat  Ƌui  s'aǀğƌeŶt  iŵpoƌtaŶts  pouƌ  la  gestioŶ  de  la  ďatteƌie,  oŶ  peut  Điteƌ  l'Ġtat de Đhaƌge et l͛Ġtat de saŶtĠ. DaŶs Đe paƌagƌaphe, oŶ s͛iŶtĠƌesse à leuƌ dĠfiŶitioŶ à l͛ĠĐhelle de  l͛aĐĐuŵulateuƌ, ŵais les ŵġŵes ŶotioŶs peuǀeŶt ġtƌe adaptĠes à l͛ĠĐhelle d͛uŶe ďatteƌie. 1.4.1.1 Etat de santé (���ሻ Le ǀieillisseŵeŶt est la ŵodifiĐatioŶ, au  fil du  teŵps, des pƌopƌiĠtĠs de l͛aĐĐuŵulateuƌ. Il se  tƌaduit  généralement par une baisse de la capacité nominale �௡ሺ�ℎሻ  au  fil  de  l͛utilisatioŶ  ou  du  teŵps  [Ϯϱ][Ϯϲ].  L͛Ġtat  de  saŶtĠ  ;��� pour « state of health ») est donc défini comme le rapport de la ĐapaĐitĠ ŶoŵiŶale de l͛aĐĐuŵulateuƌ à l͛iŶstaŶt � paƌ ƌappoƌt à Đelle eŶ soƌtie d͛usiŶe à �଴ : ��� = ஼೙,೟ሺ்ሻ ஼೙,೟బ ሺ்ሻ Equation 1-4 La capacité nominale variant avec la température, cet indice est généralement défini pour une température de référence � donnée. 1.4.1.2 Etat de charge (���) L͚Ġtat  de  Đhaƌge  ou ��� (pour « state of charge ») représente le rapport des capacités stockée et nominale à une température � donnée. Il est normalisé entre Ͳ et ͳͲͲ%. ��� = �௦ሺ�ሻ �௡ሺ�ሻ Equation 1-5 Le calcul par coulométrie permet de suivre facilement le ��� d͛uŶ  aĐĐuŵulateuƌ.  Il  ĐoŶsiste à calculer la quantité de charge retirée (décharge) ou injectée (charge) entre deux instants différents loƌsƋue l͛aĐĐuŵulateuƌ est souŵis à uŶ ĐouƌaŶt � (Equation 1-6). ���ሺ�ଶ ሻ− ���ሺ�ଵ ሻ = ͳ ͵͸ͲͲ�௡ ە ۖ ۔ ۖ ۓ− න ���          �� � < Ͳ ሺ�é�ℎ����ሻ ௧మ ௧భ − න ƞ௙���          �� � > Ͳ ሺ�ℎ����ሻ ௧మ ௧భ Equation 1-6 �௡ est la capacité nominale en �ℎ, �ଵ et �ଶ sont les instants en � de dĠďut et  fiŶ de l͛appliĐatioŶ du  courant �, ƞ௙ est le ƌeŶdeŵeŶt faƌadiƋue Ƌui ƌepƌĠseŶte l͛effiĐaĐitĠ de ƌeĐhaƌge [ϮϬ]. DaŶs l͛appliĐatioŶ des ǀĠhiĐules hLJďƌides et ĠleĐtƌiƋues, le calĐul d͛iŶtĠgƌatioŶ s͛effeĐtue gƌâĐe à uŶe  valeur référence de temps et de la mesure du courant total du pack batterie ou de l͛aĐĐuŵulateuƌ. Page | 18 Les eƌƌeuƌs aĐĐuŵulĠes à  Đause à l͛iŶtĠgƌatioŶ  soŶt  ĐoŵpeŶsĠes  gƌâĐe au  ƌeĐalage  du ��� via une mesure de tension lorsque celle-ci atteint les limites haute ou basse. Dans [52][88], plusieurs méthodes de mesure du ��� sont détaillées. 1.4.2 Terminologie Dans ce paragraphe, une définition est donnée pour la surveillance, le diagnostic et la supervision des batteries. Cette terminologie est directement inspirée du domaine de la supervision des systèmes complexes [23][24]. D͛uŶe  ŵaŶiğƌe  gĠŶĠƌale,  la  supeƌǀisioŶ  d͛uŶ  sLJstğŵe  a  pouƌ  ďut  de  ƌĠagiƌ  ĐoƌƌeĐteŵeŶt  audž  ĐhaŶgeŵeŶts  d͛Ġtats  ĠǀeŶtuels  de  Đe  sLJstğŵe  ;dĠgƌadatioŶ,  appaƌitioŶ  de  dĠfauts,  …Ϳ  afiŶ  de  ŵaiŶteŶiƌ ses peƌfoƌŵaŶĐes et d͛assuƌeƌ la sĠĐuƌitĠ des ďieŶs et des personnes. Elle est constituée de trois tâches principales :  l’étape de  surveillance,  l’étape de diagnostic,  l’étape de décision. L͛oďjeĐtif  de  la  suƌǀeillaŶĐe  ;ou  « monitoring »Ϳ  est  la  dĠteƌŵiŶatioŶ  à  ĐhaƋue  iŶstaŶt  de  l͛Ġtat  ĐouƌaŶt  du  sLJstğŵe  d͛iŶtĠƌêt. Cet état est constitué par un ensemble de symptômes dont il faut détecter la présence et déterminer les caractéristiques. Il est important de noter que ces symptômes ne sont pas des défauts, mais plutôt des indicateurs qui permettront la détection et la caractérisation de défauts ou de défaillances dans une étape ultérieure. La tâche de monitoring est réalisée grâce aux connaissances disponibles sur ce procédé, qui peuvent être de deux types : - les connaissances a priori développées  avant  l’action  de  surveillance, constituées par exemple par des modèles physiques du système, - les connaissances en fonctionnement constituées par les observations faites sur le système lors de son fonctionnement. L͛Ġtape  de  diagŶostiĐ  est  l͛opĠƌatioŶ  Ƌui  ĐoŶsiste  à  ƌeŵoŶteƌ  des symptômes et de leurs ĐaƌaĐtĠƌistiƋues audž dĠfauts pƌĠseŶts daŶs le  sLJstğŵe d͛iŶtĠƌġt. Cette Ġtape utilise doŶĐ les  soƌties  de l͛Ġtape pƌĠĐĠdeŶte de suƌǀeillaŶĐe pouƌ fouƌŶiƌ uŶe liste de dĠfauts et de dĠfaillaŶĐes ĠǀeŶtuels  ainsi que leurs caractéristiques ;gƌaǀitĠ, loĐalisatioŶ…Ϳ. EŶfiŶ, l͛Ġtape de dĠĐisioŶ ĐoŶsiste à ƌĠagiƌ ĐoƌƌeĐteŵeŶt à l͛appaƌitioŶ de dĠfauts et de dĠfaillaŶĐes  au  seiŶ  du  sLJstğŵe,  et  à  eŶtƌepƌeŶdƌe  les  aĐtioŶs  ĐoƌƌeĐtes  peƌŵettaŶt  d͛assuƌeƌ  la  sûƌetĠ  de  fonctionnement du procédé (changement de consigne, passage dans un mode dégradé de foŶĐtioŶŶeŵeŶt, opĠƌatioŶ de ŵaiŶteŶaŶĐe, ƌĠpaƌatioŶ, ŵise hoƌs seƌǀiĐe…Ϳ. Concernant les applications de gestion de batteries embarquées dans des HEVs et EVs, la surveillance de la batterie (le système  d͛iŶtĠƌġtͿ  ĐoŶsiste  à  estiŵeƌ  les  iŶdiĐateuƌs  d͛Ġtats  ;les  symptômes) qui seront présentés dans le paragraphe suivant. Pour y parvenir, la tension et le Page | 19 courant sont le plus souvent observés (constituant les connaissances en fonctionnement). Des connaissances a priori peuvent également être rajoutées en utilisant un modèle de batterie. Ensuite, l͛Ġtape de diagŶostiĐ ĐoŶsiste eŶ gĠŶĠƌal à attƌiďueƌ uŶ seuil pouƌ ĐhaƋue iŶdiĐateuƌ. Paƌ edžeŵple uŶ  état de charge aux alentours de Ͳ% peut entrainer une surdéchaƌge  si  l͛aĐĐuŵulateuƌ  ĐoŶtiŶue  à  dĠďiteƌ du ĐouƌaŶt, ĐeĐi aLJaŶt des ĐoŶsĠƋueŶĐes ŶĠfastes suƌ l͛aĐĐuŵulateuƌ. L͛Ġtape de diagŶostiĐ  ĐoŶsisteƌa doŶĐ iĐi à Đoŵpaƌeƌ l͛Ġtat de Đhaƌge ĐouƌaŶt de l͛aĐĐuŵulateuƌ aǀeĐ uŶ seuil pƌĠdĠteƌŵiŶĠ  proche de Ͳ %. Une fois ce seuil franchi intervient la dernière étape du système de supervision : la tâĐhe  de  dĠĐisioŶ.  Pouƌ  l͛edžeŵple  pƌĠĐĠdeŶt  de  suƌdĠĐhaƌge,  il  s͛agiƌa  de  liŵiteƌ  le  ĐouƌaŶt  puis  d͛ouǀƌiƌ le ĐoŶtaĐteuƌ de sĠĐuƌitĠ eŶ Đas de fƌaŶĐhisseŵeŶt du seuil afiŶ de ƌĠagir correctement à cet événement particulier. Les systèmes regroupant toutes ces fonctionnalités sont appelés systèmes de gestion ou de supervision de batteries, ou plus communément « BMS » (pour Battery Management system). 1.5 L’accumulateur : objet de modélisation AfiŶ  d͛assuƌeƌ  les  diffĠƌeŶtes  tâĐhes  du  BM“,  la  ŵodĠlisatioŶ  des  aĐĐuŵulateuƌs  s͛aǀğƌe  uŶ  outil  essentiel pour comprendre et prédire leur fonctionnement dans un système aussi délicat que les HEVs et EVs. Elle aide à développer des outils théoriques et pratiques nécessaires pour la compréhension et la caractérisation des accumulateurs, siège de différents phénomènes ĠleĐtƌoĐhiŵiƋues  Đoŵpledžes.  Ce  ŵodğle  doit  s͛adapteƌ  à  Ŷ͛iŵpoƌte  Ƌuel  pƌofil  de  Đhaƌge  suƌ  uŶe  large variation du ��� de  l͛aĐĐuŵulateur et à différentes températures de fonctionnement. Cette seĐtioŶ est de Ŷatuƌe ďiďliogƌaphiƋue [Ϯϳ]. L͛oďjeĐtif Ŷ͛est pas de ƌeĐeŶseƌ tous les ŵodğles edžistaŶts  mais plutôt de se positionner par rapport aux travaux existants et souligner a posteriori les choix adoptés dans cette thèse. 1.5.1 Boite Blanche Il s͛agit des ŵodğles phLJsio-chimiques. Ce sont les modèles les plus précis et les plus utilisés par les ĐoŶĐepteuƌs d͛aĐĐuŵulateuƌs pouƌ optiŵiseƌ les peƌfoƌŵaŶĐes d'uŶ aĐĐuŵulateuƌ [Ϯϳ]. Toutefois, ils  sont également les plus lents et les plus difficiles à configurer (paramètres basés sur la connaissance de la structure, la chimie, la composition, la capacité, la température, et d'autres caractéristiques de l͛aĐĐuŵulateuƌͿ.  Paƌ  edžeŵple,  [Ϯϴ][Ϯϵ]  oŶt  dĠǀeloppé un modèle électrochimique isotherme qui décrit la charge et la décharge d'un accumulateur au lithium pour un seul cycle. Ce modèle se base suƌ  la  ƌĠsolutioŶ  d͛ĠƋuatioŶs  diffĠƌeŶtielles  ŵettaŶt  eŶ  jeu  les  ĐoŶĐeŶtƌatioŶs  des  espğĐes  eŶ  solution. Ces modèles  peƌŵetteŶt  de  pƌĠdiƌe  la  teŶsioŶ  de  l͛aĐĐuŵulateuƌ  eŶ  foŶĐtioŶ  du  teŵps,  ŵais aussi les pƌofils de ĐoŶĐeŶtƌatioŶ au seiŶ des ĠleĐtƌodes et de l͛ĠleĐtƌolLJte [ϯϬ]. Ils peuǀeŶt aussi Page | 20 être utilisés pour définir les capacités disponibles à différents profils de sollicitation ou établir les régimes optimaux de courant admissible. 1.5.2 Boite noire Il  s͛agit  des modèles empiriques [27] consistant à établir une relation directe entre les conditions d͛usage  et  les  peƌfoƌŵaŶĐes  de  l͛aĐĐuŵulateuƌ  ;ĐapaĐitĠ,  ĠŶeƌgie,  …Ϳ. Ces modèles sont les plus faciles à configurer mais sont difficilement extrapolables. Les paramètres utilisés n'ont pas de sigŶifiĐatioŶ phLJsiƋue, Đe Ƌui liŵite sĠƌieuseŵeŶt l͛aŶalLJse du ĐoŵpoƌteŵeŶt de l͛aĐĐuŵulateuƌ. La  loi de Peukert [14] est un exemple de ce genre de modèle. On peut aussi citer dans cette catégorie les modèles basés sur la logique floue [31][32][33][34] ou ceux sur les réseaux de neurones [35][36][37]. Bien que la précision, la vitesse et la complexité de ces modèles soient acceptables, le ĐoŵpoƌteŵeŶt  de  l͛aĐĐuŵulateuƌ  est  dĠĐƌit  paƌ  des  relations sans aucun lien direct avec les phénomènes physico-ĐhiŵiƋues  Ƌui  s͛LJ  dĠƌouleŶt.  Paƌ  ĐoŶsĠƋueŶt,  l͛iŶteƌpƌĠtatioŶ  phLJsiƋue  des  résultats demeure difficile. 1.5.3 Boite grise Au lieu de modéliser le  ĐoŵpoƌteŵeŶt  de  l͛aĐĐuŵulateuƌ,  soit  eŶ  dĠĐƌiǀaŶt  les  pƌoĐessus  électrochimiques, soit par approximation empirique, les modèles de type boite grise [27] tentent de fournir une représentation équivalente du comportement d'un accumulateur. Bien que le nombre de paramètres soit en général limité, ces modèles font appel à des tables qui nécessitent un effort de configuration important. Il s͛agit eŶ paƌtiĐulieƌ de la modélisation des accumulateurs par des circuits électriques équivalents (���s) [38][39][40][41][42][43] qui constitue un outil essentiel pour les professionnels du génie électrique. De tels circuits permettent de traduire le comportement électrique fréquentiel et temporel des accumulateurs. Grâce à l'analogie entre les différents domaines de la physique-chimie et le domaine de l'électricité, les circuits électriques peuvent, sous certaines conditions de linéarité, approcher les différents phénomènes physico-chimiques présents dans un accumulateur au moyen d͛ĠlĠŵeŶts  passifs  ;ƌĠsistaŶĐes,  ĐapaĐités, inductances) et actifs (force électromotrice, source de ĐouƌaŶt …Ϳ. Il est important de distinguer les modèles statiques des modèles dynamiques. Les modèles statiques ne prennent pas en compte les phénomènes transitoires et leur impédance est constituée uniquement d'éléments résistifs, tandis que les modèles dynamiques sont capables de décrire les phénomènes transitoires en utilisant des éléments dont les impédances sont complexes. Suivant la gamme de validité du modèle, les paramètres de ces circuits peuǀeŶt iŶtĠgƌeƌ l͛iŶflueŶĐe  de diǀeƌs faĐteuƌs tels Ƌue la teŵpĠƌatuƌe, l͛Ġtat de Đhaƌge, le ĐouƌaŶt et l͛Ġtat de saŶtĠ. UŶe phase Page | 21 de ĐaƌaĐtĠƌisatioŶ pƌĠalaďle est aloƌs ƌĠalisĠe peƌŵettaŶt d͛Ġtaďliƌ le lieŶ eŶtƌe Đes paƌaŵğtƌes et les  différents facteurs. Enfin, quelle que soit la complexité du modèle ��� utilisé, des modèles supplémentaires sont ŶĠĐessaiƌes  pouƌ  pouǀoiƌ  suiǀƌe  l͛ĠǀolutioŶ  du ��� ;ǀia  le  suiǀi  de  l͛��� par exemple), de la température ;ǀia  uŶ ŵodğle  d͛ĠǀolutioŶ  d͛uŶ  ou  plusieuƌs  paƌaŵğtƌes  du ���), et du ��� (via un modèle d͛ĠǀolutioŶ d͛uŶ ou plusieuƌs paƌaŵğtƌes du ���). 1.5.3.1 Le modèle de Randles généralisé L͛aĐĐuŵulateuƌ  pƌĠseŶte  des  ĐoŵpoƌteŵeŶts  ŵiĐƌosĐopiƋues  tƌğs  Đoŵpledžes  et  des  phĠŶoŵğŶes  internes fortement couplés. Randles a proposé un circuit électrique équivalent (Figure 1-91-9) en les traduisant avec des composants électriques [44]. Figure 1-9 : Circuit de Randles. Une interprétation préalable des composants est possible. Le modèle (Figure 1-91-9) renferme une résistance ohmique (�) et une inductance (�) en série modélisant les effets des électrodes, de l͛ĠleĐtƌolLJte  et  de  la  ĐoŶŶeĐtiƋue. Le comportement de la double couche peut être associé à la capacité �ௗ௟ alors que la cinétique de la réaction électrochimique peut être décrite par la résistance de transfert de charge (�௧௖Ϳ. “eloŶ soŶ ŵodğle, le poteŶtiel d͛ĠƋuiliďƌe est représenté par une source de tension idéale (���). Enfin le phénomène de diffusion, connu pour être difficile à étudier, est modélisé par une impédance de Warburg ( �� Ϳ.  Tƌois  Đas  d͛iŵpĠdaŶĐe  de  Waƌďuƌg  soŶt  gĠŶĠƌaleŵeŶt  utilisĠs  seloŶ  l͛Ġpaisseuƌ de la couche de diffusion [18] : épaisseur semi-infinie, Ġpaisseuƌ fiŶie eŶ pƌĠseŶĐe de la ĐoŶǀeĐtioŶ ou de l͛hLJpothğse de NeƌŶst, et Ġpaisseuƌ fiŶie à tƌaǀeƌs  un film mince. Ces impédances peuvent être généralisées en intégrant des exposants non entiers dans leur expression. Aussi,  afiŶ  de  pƌĠseŶteƌ  les  ĠƋuatioŶs  ĐoƌƌespoŶdaŶtes  à  ĐhaƋue  Đas,  il  s͛aǀğƌe  ŶĠĐessaiƌe  d͛iŶtƌoduiƌe ƌapideŵeŶt des ĐoŵposaŶts à iŵpĠdaŶĐe d͛oƌdƌe ŶoŶ eŶtieƌ appelĠs ĠlĠŵeŶts à phase  constante (��� pour « Constant Phase Element »Ϳ [ϰϱ][ϰϲ] et pƌĠseŶtĠs plus eŶ dĠtails daŶs l͛AŶŶedže  A de Đe ŵĠŵoiƌe. La foƌŵule gĠŶĠƌale de l͛iŵpĠdaŶĐe d͛uŶ ��� est donnée par : �஼௉ாሺ�ሻ = ͳ �ሺ�ʹ��ሻ ௣  Ͳ ൑ � ൑ ͳ Equation 1-7 Page | 22 �� ൜ � = ͳ: �������é ����    � = Ͳ: �é�������� ���� � est une constante et  � est un complexe tel que �ଶ = −ͳ, � étant la fréquence, � ĠtaŶt l͛oƌdƌe ŶoŶ  entier du ���. Dans cette étude, un ��� va être connecté en parallèle à une résistance �. Afin de clarifier la notion du ���,  l͛iŵpĠdaŶĐe  du  ĐiƌĐuit �//��� est tracée à la Figure 1-101-10 pour différentes valeurs de �. Figure 1-10 : Diagramme de Nyquist de ��//��� pour différentes valeurs de � [47]. Normalement, un système réel dépend non seulement de son état actuel mais également de ses états passés. La dériǀĠe  d͛oƌdƌe  ŶoŶ-eŶtieƌ  d͛uŶe  foŶĐtioŶ �ሺ�ሻ permet de prendre en compte les valeurs de �ሺ�ሻ à tous les instants �  <  Ͳ gƌâĐe  à  l͛iŶtĠgƌatioŶ  Ƌui  appaƌaît  ŶatuƌelleŵeŶt  daŶs  les  dĠfiŶitioŶs  pƌĠseŶtĠes  daŶs l͛aŶŶedže A. Elle fournit donc une caractérisation globale de �ሺ�ሻ.  C͛est  cet effet mémoire qui fait de la dérivation non-entière un outil intéressant pour modéliser ĐoƌƌeĐteŵeŶt les phĠŶoŵğŶes ĐapaĐitifs et diffusifs Ƌui oŶt lieu au seiŶ d͛uŶ aĐĐuŵulateuƌ. EŶ  foŶĐtioŶ  du  Đas  ĐoŶsidĠƌĠ,  l͛iŵpĠdaŶĐe  de  diffusion est exprimée de manière différente [18] (Figure 1-111-11) :  la diffusion semi-infinie est correctement modélisée par un ��� [18],  la diffusion finie d’après l’hypothèse de Nernst [18] est modélisée par : �ௐሺ�ሻ = � ���ℎሺ���ሻ௣ ሺ���ሻ௣ Equation 1-8 A tƌğs ďasses fƌĠƋueŶĐes, l͛iŵpĠdaŶĐe de Waƌďuƌg pƌĠseŶte le ĐoŵpoƌteŵeŶt d͛uŶe ƌĠsistaŶĐe. C͛est  pourquoi on parle de « circuit fermé ».  la diffusion finie à travers un film mince [18] est modélisée par : �ௐሺ�ሻ = � ���ℎሺ���ሻ௣ ሺ���ሻ௣ Equation 1-9 La  paƌtie  iŵagiŶaiƌe  teŶd  ǀeƌs  l͛iŶfiŶi  pouƌ  les  fƌĠƋueŶĐes  ďasses  Đe  Ƌui  ĐoƌƌespoŶd  à  l͛iŵpĠdaŶĐe  d͛uŶe ĐapaĐitance ou à un état de « circuit ouvert ». Ces phĠŶoŵğŶes diffusifs seƌoŶt ŶĠgligĠs daŶs la suite de la thğse ǀu Ƌu͛ils Ŷe soŶt solliĐitĠs Ƌue pouƌ  des fréquences extrêmement basses. Page | 23 Figure 1-11 : Trois types d’impédance de Warburg [18]. 1.5.3.2 Application aux cellules LiFePO4 Le modèle classique de Randles donné à la Figure 1-91-9 et ďasĠ suƌ des iŵpĠdaŶĐes d͛oƌdƌe eŶtieƌ  Ŷ͛est pas approprié pour décrire finement le comportement macroscopique complexe de l͛aĐĐuŵulateuƌ. AfiŶ de ŵodĠliseƌ ĐoƌƌeĐteŵeŶt uŶ aĐĐuŵulateuƌ, le ƌeĐouƌs à l͛utilisatioŶ des ���� s͛aǀğƌe  iŶtĠƌessaŶt,  et  paƌtiĐuliğƌeŵeŶt  pouƌ  ŵodĠliseƌ  l͛effet  de  ĐouĐhe  douďle  et  du  filŵ  de  passiǀatioŶ. C͛est pouƌƋuoi le ŵodğle de ‘aŶdles gĠŶĠƌalisĠ ;Figure 1-121-12) consistant à introduire dans le circuit classique deux de ces termes, ���௙ et ���ௗ௟, a été proposé dans K.DONG [18] pour modéliser un accumulateur de type ������ସ. Figure 1-12 : Modèle de batteries LiFePO4 [18]. L͛ĠƋuatioŶ aŶalLJtiƋue de l͛iŵpĠdaŶĐe totale de Đe ĐiƌĐuit où l͛iŵpĠdaŶĐe de Waƌďuƌg est ŶĠgligĠe est  donc finalement donnée par : �௔௡௔௟௬௧௜௤௨௘ ሺ�ሻ = � + ʹπ��� + �௙ ͳ + �௙�௙ሺʹπ��ሻ ௣೑ + �௧௖ ͳ + �௧௖�ௗ௟ሺʹπ��ሻ ௣೏೗ Equation 1-10 Le Tableau 1-2 ƌĠĐapitule l͛eŶseŵďle  des  paƌaŵğtƌes  de  Đe ŵodğle aiŶsi  Ƌue les  phĠŶoŵğŶes  Ƌue  [18] a essayé de leur associer. � Résistance des électrodes, électrolytes et connexions � Inductance de connexions �௙ Résistance du film de passivation �௙, �௙ Paramètres du ���௙ : effet du film de passivation Page | 24 �௧௖ Résistance de transfert de charge �ௗ௟, �ௗ௟ Paramètres du ���ௗ௟ : effet de la double couche Tableau 1-2 : Récapitulatif des paramètres du ��� de Randles amélioré. Le simulateur associé (Annexe C), développé sous Matlab/Simulink à l͛INE“4 [18][20][48], a montré de ďoŶŶes peƌfoƌŵaŶĐes loƌs d͛edžpĠƌiŵeŶtatioŶs ŵeŶĠes  suƌ des aĐĐuŵulateuƌs gƌaphite ������ସ de la compagnie A123 Systems Ltd, de capacité nominale ʹ,͵ �ℎ et de tension nominale de ͵,͵� (cf. Annexe B). Le modèle présenté ici sera donc celui utilisé dans la suite de ce mémoire, et le simulateur correspondant sera utilisé pour la réalisation des études en simulations, préliminaires à la phase expérimentale. 1.6 Circuit électrique équivalent et notion d’impédance électrique La validité des ���� précédents est basée sur les hypothèses suivantes :  Un ��� est défini et valable uniquement autour d’un point de fonctionnement donné.  L’amplitude  des  fluctuations  de  courant  à  l’entrée  de  l’accumulateur  reste  faible.  Par  conséquent,  l’accumulateur modélisé autour du point de fonctionnement choisi peut être considéré comme linéaire.  Sous  les  hypothèses  précédentes  et  pour  un  point  de  fonctionnement  fixe,  l’accumulateur  peut être considéré comme un système linéaire et invariant dans le temps (LIT) pour lequel les notions de fonction de transfert et de réponse fréquentielle sont parfaitement définies, comme il est montré dans le chapitre suivant.  Dans  ce  cas,  l’impédance  électrique  définie  par  l’Equation 1-10 correspond à la réponse fréquentielle  du  système  LIT  constitué  par  l’accumulateur  au  point  de  fonctionnement  fixe  considéré, dont l’entrée est le  courant parcourant  cet accumulateur,  et  la  sortie la tension à  ses bornes. Cette impédance dépend des différents éléments du ��� choisi et contient donc la majeure partie de  l͛iŶfoƌŵatioŶ  liĠe  audž  phĠŶoŵğŶes  phLJsiƋues  Ƌui  pƌeŶŶeŶt  plaĐe  daŶs  l͛aĐĐuŵulateuƌ.  Elle  est  doŶĐ  iŵpoƌtaŶte  à  ĐalĐuleƌ  pouƌ  sa  ĐaƌaĐtĠƌisatioŶ  et/ou  sa  suƌǀeillaŶĐe.  C͛est  suƌ  Đette  deƌŶiğƌe  remarque que repose la démarche suivie dans les chapitres suivants. 4 Institut National de l’Energie SolairePage | 25 Chapitre 2 :  Identification  de  l’impédance  électrique  d’un  accumulateur L͛ideŶtifiĐatioŶ  de  sLJstğŵes  est  uŶ  eŶseŵďle  de  ŵĠthodes  ǀisaŶt  à  ŵodĠliseƌ  les  sLJstğŵes  dynamiques à partir de données expérimentales. Elle consiste à déterminer un modèle mathématique du système en utilisant et en analysant ses entrées et ses sorties. Si ce modèle mathématique repose sur un ensemble fini de paramètres, on parle d'identification « paramétrique ».  L͛ideŶtifiĐatioŶ  paƌaŵĠtƌiƋue permet dans la plupart des cas de faciliter la synthèse de lois de commande, ce qui en fait un outil très apprécié dans le domaine de l͛autoŵatiƋue.  “i  le  ŵodğle  ŵathĠŵatiƋue  ĐoŶsiste  eŶ  uŶe  foŶĐtioŶ  Ƌui  ĐaƌaĐtĠƌise  le  sLJstğŵe  à  identifier, comme la fonction de transfert ou les réponses impulsionnelle ou fréquentielle d'un sLJstğŵe liŶĠaiƌe et iŶǀaƌiaŶt daŶs le teŵps, oŶ paƌle aloƌs d͛ideŶtifiĐatioŶ « non paramétrique ». De plus, deux approches différentes de l'identification peuvent être envisagées. Si les entrées du système sont imposées par l'utilisateur spécifiquement pour l'identification, on parle d'approche « active ». Par contre, si on utilise les signaux d'entrée et de sortie du système en fonctionnement, sans ajouter aucun signal supplémentaire pour l'identification, on parle d'approche « passive ». DaŶs  Đe  Đhapitƌe,  Đ͛est  l͛ideŶtifiĐatioŶ  ŶoŶ  paƌaŵĠtƌiƋue  aĐtiǀe  Ƌui  est  Đhoisie.  EŶ  effet,  uŶe  fois  liŶĠaƌisĠ  autouƌ  d͛uŶ  poiŶt  de  foŶĐtioŶŶeŵeŶt,  le système peut être caractérisé par sa réponse fréquentielle, autrement dit son impédance électrique. Cette grandeur constitue donc un modèle non-paƌaŵĠtƌiƋue de l͛aĐĐuŵulateuƌ ǀalaďle autouƌ du poiŶt de foŶĐtioŶŶeŵeŶt ĐoŶsidĠƌĠ. L͛oďjeĐtif  des méthodes développées dans ce chapitre est de réaliser une estimatioŶ pƌĠĐise  de l͛iŵpĠdaŶĐe  ĠleĐtƌiƋue d͛uŶ aĐĐuŵulateuƌ autouƌ d͛uŶ poiŶt de foŶĐtioŶŶeŵeŶt eŶ eŵploLJaŶt uŶ sigŶal d͛eŶtƌĠe  dĠdiĠ  à  l͛ideŶtifiĐatioŶ  et  eŶ  ŵesuƌaŶt  le  sigŶal  de  soƌtie  ĐoƌƌespoŶdaŶt.  De  plus,  les  ŵĠthodes  présentées devront permettre de suiǀƌe l͛ĠǀolutioŶ de Đette iŵpĠdaŶĐe au Đouƌs du teŵps. Ce  Đhapitƌe  Ġtaďlit  tout  d͛aďoƌd  les  hLJpothğses  de  tƌaǀail  Ƌui  seƌoŶt  ƌespeĐtĠes  tout  au  loŶg  de  l͛Ġtude.  EŶsuite,  uŶ  Ġtat  de  l͛aƌt  suƌ  les  ŵĠthodes  ĐouƌaŵŵeŶt  utilisĠes  ;paƌaŵĠtƌiƋues  et  ŶoŶ  paramétriƋuesͿ  pouƌ  ideŶtifieƌ  l͛iŵpĠdaŶĐe  ĠleĐtƌiƋue  d͛uŶ  aĐĐuŵulateuƌ  est  pƌĠseŶtĠ.  EŶfiŶ,  la  possibilité d'employer des méthodes d'identification large-bande pour estimer cette impédance ĠleĐtƌiƋue  suƌ  des  ďaŶdes  de  fƌĠƋueŶĐe  doŶŶĠes  seƌa ĠtudiĠe.  L͛iŶtĠƌġt ŵajeur de cette approche seƌa la possiďilitĠ d͛ġtƌe iŵplaŶtĠe sous foƌŵe ƌĠĐuƌsiǀe et doŶĐ eŶ teŵps-réel, et embarqué dans les véhicules. Page | 26 2.1 Hypothèses de travail Le système en étude (accumulateur), ayant pour entrée le courant de polarisation �ௗ௖ (courant ĐoŶtiŶu  appliƋuĠ  à  l͛aĐĐuŵulateuƌͿ auquel est superposée une composante alternative de faible amplitude  ∆�ሺ�ሻ , et pour sortie la réponse en tension correspondante, a en général un ĐoŵpoƌteŵeŶt  ŶoŶ  liŶĠaiƌe  [ϰϵ][ϱϬ].  CepeŶdaŶt,  l͛ideŶtification non paramétrique proposée dans Đette  Ġtude  est  ƌestƌeiŶte  audž  sLJstğŵes  liŶĠaiƌes  et  iŶǀaƌiaŶts  daŶs  le  teŵps  ;LITͿ.    Pouƌ  Ƌu͛elle  aboutisse à des résultats valables, il faut que les conditions expérimentales permettent une linéarisation locale autouƌ d͛uŶ poiŶt de foŶĐtioŶŶeŵeŶt fidže. Ce deƌŶieƌ est assoĐiĠ à uŶ eŶseŵďle  de paramètres qui doivent tous pouvoir être considérés comme constants au cours de la mesure. Le pƌeŵieƌ  de  Đes  paƌaŵğtƌes  est  l͛iŶteŶsitĠ  du  ĐouƌaŶt  de  polaƌisatioŶ  Ƌui  est  ďieŶ  Đonstante. Les autƌes  paƌaŵğtƌes  soŶt  ƌelatifs  à  l͛Ġtat  gloďal  de  l͛aĐĐuŵulateuƌ : son ���, son ��� et sa température �.  Tout  d͛aďoƌd,  le  ��� est considéré naturellement constant étant donné sa dLJŶaŵiƋue tƌğs leŶte. EŶsuite, l͛aĐĐuŵulateuƌ foŶĐtioŶne dans un régime stable établi à température ambiante : sa température est donc également considérée constante. Finalement, le ��� est effeĐtiǀeŵeŶt plus ou ŵoiŶs ǀaƌiaďle duƌaŶt la ŵesuƌe ;seloŶ l͛iŶteŶsitĠ du ĐouƌaŶt de polaƌisatioŶͿ.  Cependant, en respeĐtaŶt  uŶ  Đoŵpƌoŵis  eŶtƌe  la  duƌĠe  de  ŵesuƌe  et  l͛iŶteŶsitĠ  du  ĐouƌaŶt  de polarisation, une variation de ��� limitée à ʹ% est considérée comme acceptable. Sous les hLJpothğses pƌĠĐĠdeŶtes, le poiŶt de foŶĐtioŶŶeŵeŶt autouƌ duƋuel l͛aĐĐuŵulateuƌ foŶĐtionne peut être considéré comme fixe. La composante alternative ��ሺ�ሻ superposée au courant de polarisation doit ĠgaleŵeŶt ġtƌe d͛aŵplitude suffisaŵŵeŶt faiďle pouƌ peƌŵettƌe la liŶĠaƌisatioŶ du sLJstğŵe. OŶ  ĐoŶsidğƌe daŶs la suite Ƌu͛elle Ŷe doit pas pƌovoquer plus de ʹͲ à ͶͲ �� de variation sur la réponse en tension [51], une amplitude de ͳͷͲ �� est alors admise (soit un régime de �/ͳͷ). Pour récapituler, les hypothèses de travail se résument à :  une durée de mesure suffisamment faible pour que le ��� ne varie pas de plus de ʹ%.  une composante alternative ∆�ሺ�ሻ suffisamment faible, correspondant à une amplitude de �/ͳͷ. Sous ces conditions, l'accumulateur sera considéré comme un système LIT autour du point de fonctionnement fixe, et donc pouvant être caractérisé par sa réponse fréquentielle. Cette dernière ƌelie  le  ĐouƌaŶt  d'eŶtƌĠe  et  la  teŶsioŶ  de  soƌtie  de  l͛aĐĐuŵulateuƌ,  il s'agit  doŶĐ  d'uŶe  iŵpĠdaŶĐe  électrique. 2.2 Etat de l’art Dans la littérature, on trouve plusieurs paramètres électriques dont la définition est plus ou moins siŵpleŵeŶt  ƌeliĠe  à  Đelle  de  l͛iŵpĠdaŶĐe  ĠleĐtƌiƋue  d͛uŶ  aĐĐuŵulateuƌ.  La  teƌŵiŶologie  est  changeante, ce qui rend parfois difficile la compréhension de la grandeur mesurée. Page | 27 2.2.1 Identification de la résistance interne Le modğle ĠleĐtƌiƋue le plus siŵple d͛uŶ aĐĐuŵulateuƌ est uŶe souƌĐe de teŶsioŶ eŶ sĠƌie aǀeĐ uŶe  résistance. Cette dernière englobe les résistances dues aux processus électrochimiques ainsi que Đelles  des  ĐoŶŶedžioŶs.  Ce  teƌŵe  de  ƌĠsistaŶĐe  Ŷ͛est  pas  dĠfiŶi  de  façon claire définitive, chaque définition dépendant de la technique de mesure utilisée [52]. 2.2.1.1 Mesure par milliohmmètre EŶ  appliƋuaŶt  uŶ  sigŶal  d͛edžĐitatioŶ  siŶusoïdal  à  haute  fƌĠƋueŶĐe  ;tLJpiƋueŵeŶt  ͳ ��� ), le ŵilliohŵŵğtƌe  doŶŶe  diƌeĐteŵeŶt  la  paƌtie  ƌĠelle  de  l͛iŵpĠdaŶĐe  Đoŵpledže  de  l͛aĐĐuŵulateuƌ  à  cette fréquence [52]. 2.2.1.2 Temps de repos (period-of-rest) Le  ĐouƌaŶt  de  dĠĐhaƌge  appliƋuĠ  à  l͛aĐĐuŵulateuƌ est  iŶteƌƌoŵpu  ďƌutaleŵeŶt  Đe  Ƌui  Đause  apƌğs  une certaine durée de repos �, une variation ∆� suƌ  la  teŶsioŶ  de  l͛aĐĐuŵulateuƌ.  La  ƌĠsistaŶĐe  iŶteƌŶe de l͛aĐĐuŵulateuƌ, dite aussi ƌĠsistaŶĐe dLJŶaŵiƋue [ϱϮ], est aloƌs dĠfiŶie paƌ : �ௗሺ�ሻ = ∆�ሺ�ሻ � Equation 2-1 2.2.1.3 Impulsion de courant Une impulsion de courant ∆� est appliquée après une période de repos ou ajoutée à un courant de Đhaƌge ou de dĠĐhaƌge dĠjà appliƋuĠ à l͛aĐĐuŵulateuƌ. UŶe ǀaƌiatioŶ ∆� est ensuite observée après une durée �. Une nouvelle définition de la résistance interne peut alors être établie [53] : �ௗሺ�ሻ = ∆�ሺ�ሻ ∆� Equation 2-2 2.2.1.4 Interprétation Dans ces deux dernières techniques, la résistance interne dépend fortement du temps de repos T [52]. [52] présente que sur les technologies de batterie au plomb et nickel-cadmium, on a :  si �  <  ͳͲ ��, �ௗ correspondra au terme � du circuit de Randles amélioré (Figure 1-12),  si � ~ ͳ �, les processus à constantes de temps supérieures à ͳ � influent sur la mesure et �ௗ dépendra des termes �  et �௙,  si �  >  ͳ ���, les processus lents s’ajoutent et �ௗ dépendra d’une  relation entre �, �௙ et �௧௖ du circuit de Randles amélioré. Afin de comprendre la relation entre la grandeur résistive estimée par le simple rapport tension sur courant et les termes résistifs du ��� de la Figure 1-12, une simulation a été réalisée en se référant au circuit électrique paramétré sur des cellules A123 ʹ,͵ �ℎ tel que présenté au chapitre précédent (paragraphe 1.5.3.2.). Un échelon de courant est appliqué en entrée du simulateur. Les valeurs du Page | 28 rapport tension sur courant calculées (�ௗ) apƌğs  diffĠƌeŶts  teŵps  d͛atteŶte  soŶt  ĐoŵpaƌĠes  audž  termes résistifs connus du ��� choisi (Figure 2-12-1). On observe que : - le terme � associé à la résistance Joule (électrodes et électrolyte) est mesurable pour des durées inférieures à Ͳ,ͳ �� ce qui nécessite des systèmes de métrologie  à  fréquences  d’acquisition  élevées.  Cette  grandeur  est  intéressante  vu  qu’elle  est  souvent  liée  aux ��� et ��� [52] [53] pour certaines technologies d’accumulateurs. - une valeur de résistance peut correspondre à la somme des contributions des termes � et �௙, ce qui peut s’observer notamment au niveau du coude formé par l’allure de la réponse en tension, - un temps d’attente long  sur la  réponse  en tension fournit  une  valeur de  résistance plus grande  mais sans sens physique précis. Figure 2-1 : Estimation de la résistance via le rapport de ∆� ∆� en utilisant le simulateur et comparaison avec les valeurs des paramètres du ��� implanté. 2.2.1.5 Exploitation La  ƌĠsistaŶĐe  dLJŶaŵiƋue  ŵesuƌĠe  Ŷ͛est  Ŷi  uŶe  ƌĠsistaŶĐe  puƌe  Ŷi  le  ŵodule  de  l͛iŵpĠdaŶĐe  électrique à une fréquence donnée [52]. Cependant, les deux dernières techniques (temps de repos et impulsion de courant) citées ci-dessus sont généralement utilisées en raison de leur simplicité de ŵise  eŶ  œuǀƌe.  Elles  ŶĠĐessiteŶt  uŶe  ǀaƌiatioŶ  de  ĐouƌaŶt  eŶ  eŶtƌĠe  du  sLJstğŵe.  DaŶs  ĐeƌtaiŶes  appliĐatioŶs  ;ǀĠhiĐules  ƌoulaŶtͿ  Đette ǀaƌiatioŶ est  ŶatuƌelleŵeŶt  gĠŶĠƌĠe. DaŶs  d͛autƌes  ;ďatteƌies  des véhicules en charge ou UPS (Uninterruptible Power Supply) en mode de veille), on se permet de générer une variation de durée juste suffisante pour effectuer les mesures [24]. La quantité obtenue �ௗ a fait l͛oďjet d͛Ġtudes pouƌ dĠteƌŵiŶeƌ uŶe possiďle ƌelatioŶ aǀec les indices d͛Ġtat ��� et ��� de l͛aĐĐuŵulateuƌ, saŶs pouƌ autaŶt l͛assoĐieƌ à des pƌoĐessus ĠleĐtƌoĐhiŵiƋues  [52][54]. Notamment, il a été montré l͛utilitĠ de Đe paƌaŵğtƌe au diagŶostiĐ du ��� [52][55][56][57]. Page | 29 EtaŶt doŶŶĠes les ĐoŶtƌaiŶtes d͛ĠĐhaŶtilloŶŶage d͛uŶ sLJstğŵe eŵďaƌƋuĠ, Đette ŵĠthode Ŷe seŵďle  pas permettre de déterminer directement la valeur de la résistance �  car il faudrait alors échantillonner à haute fréquence. L͛ĠǀolutioŶ  de  la  ŵesuƌe  du  teƌŵe � + �௙ peut toutefois peƌŵettƌe de suiǀƌe l͛ĠǀolutioŶ de Đet iŶdiĐateuƌ d͛Ġtat. 2.2.2 Spectroscopie d’impédance électrique (SIE) La  speĐtƌosĐopie  d͛iŵpĠdaŶĐe  ĠleĐtƌiƋue  ;“IEͿ,  appelĠe  aussi  teĐhŶiƋue  d͛aŶalLJse  paƌ  haƌŵoŶiƋue  (AH) [58][51][59][60], est particulièrement utile et efficace pour étudier la dynamique des processus électrochimiques et physiques aux interfaces électrode/électrolyte [60]. Elle a également été utilisée pour caractériser l'impédance d'accumulateurs électriques [61]. Elle permet de déconvoluer les phénomènes à constantes de temps différentes. Cette méthode consiste à appliquer une excitation sinusoïdale et à mesurer la réponse de l͛aĐĐuŵulateuƌ.  La  solliĐitatioŶ  peut ġtƌe  eŶ  ĐouƌaŶt  ou eŶ  teŶsioŶ ; on parle alors respectivement des modes galvanostatique ou potentiostatique. DaŶs le Đas d͛uŶ essai galvanostatique, le courant continu (nommé aussi courant de polarisation) est contrôlé et une composante alternative sinusoïdale ฀ i(t) Imax sin(2Sft) lui est superposée. Le sLJstğŵe  ĠtaŶt  liŶĠaƌisĠ  autouƌ  d͛uŶ  poiŶt  de  foŶĐtioŶŶeŵeŶt,  la  ƌĠpoŶse  eŶ  teŶsioŶ  de  l͛aĐĐuŵulateuƌ est ŵesuƌĠe et ĐoŶsidĠƌĠe de la  foƌŵe suiǀaŶte : ฀ v(t) Vmax sin(2Sft M). En utilisant Đes  deudž  gƌaŶdeuƌs,  l͛iŵpĠdaŶĐe  Đoŵpledže  de  l͛aĐĐuŵulateur est donnée dans le domaine fréquentiel par : *exp( ( )) )( )( max max fj I V f Z f est  M Equation 2-3 Dans les deux modes, en balayant une gamme de fréquence donnée, fréquence par fréquence, une bonne estimation de l'impédance complexe de  l͛aĐĐuŵulateuƌ peut ġtƌe oďteŶue. 2.2.3 Vers une rupture inévitable des méthodes classiques BieŶ Ƌu͛elles soieŶt siŵples et  faĐiles à ŵettƌe eŶ œuǀƌe, les ŵĠthodes d͛ideŶtifiĐatioŶ paƌtielle de  l͛iŵpĠdaŶĐe  ĠleĐtƌiƋue  d͛uŶ  aĐĐuŵulateuƌ  Ŷ͛oŶt  pas  la  ƌiĐhesse  fƌéquentielle nécessaire pour l͛aŶalLJse fiŶe de soŶ ĐoŵpoƌteŵeŶt.  EŶ  Đe  Ƌui  ĐoŶĐeƌŶe    l͛AH, elle  ƌeste  diffiĐile  à  utiliseƌ  pouƌ  des  appliĐatioŶs eŵďaƌƋuĠes  telles  Ƌue  pouƌ les EVs et HEVs où le Đoût de l͛ĠleĐtƌoŶiƋue  ŶĠĐessaiƌe à soŶ iŵplaŶtatioŶ ƌeste pƌohibitif. UŶ  autƌe  poiŶt  faiďle  de  Đes  ŵĠthodes  est  à  souligŶeƌ.  EŶ  effet,  l͛iŵpĠdaŶĐe  ĠleĐtƌiƋue  est  uŶe  gƌaŶdeuƌ  iŶtĠƌessaŶte  pouƌ  oďteŶiƌ  des  iŶfoƌŵatioŶs  suƌ  les  iŶdiĐes  d͛Ġtats  de  l͛aĐĐuŵulateuƌ.  Toutefois, pour pouvoir suivre leur évolution dans le temps, elle doit être estimée à plusieurs dates teŵpoƌelles  ĐoŶsĠĐutiǀes.  Oƌ,  aǀeĐ  l͛AH  paƌ  edžeŵple,  ĐhaƋue  Ŷouǀelle  estiŵatioŶ  de  l͛iŵpĠdaŶĐe  https://hal.archives-ouvertes.fr/tel-01066805/document G´en´eration de mod`eles num´eriques de surface et d´etection de changements 3D `a partir d’imagerie satellite st´er´eoscopique tr`es haute r´esolution Cyrielle Gu´erin To cite this version: Cyrielle Gu´erin. G´en´eration de mod`eles num´eriques de surface et d´etection de changements 3D `a partir d’imagerie satellite st´er´eoscopique tr`es haute r´esolution. Other. Universit´e Ren´e Descartes - Paris V, 2014. French. . HAL Id: tel-00953485 https://tel.archives-ouvertes.fr/tel-00953485 Submitted on 28 Feb 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.THESE DE DOCTORAT DE ` l’UNIVERSITE PARIS DESCARTES ´ Sp´ecialit´e : Informatique Ecole doctorale Informatique, T´el´ecommunications et ´ Electronique (Paris) ´ Pr´esent´ee par Cyrielle GUERIN Pour obtenir le grade de DOCTEUR de l’UNIVERSITE PARIS DESCARTES ´ G´en´eration de Mod`eles Num´eriques de Surface et D´etection de Changements 3D `a Partir d’Imagerie Satellite St´er´eoscopique Tr`es Haute R´esolution soutenue le 18 f´evrier 2014 devant le jury compos´e de : M. Pascal Monasse Rapporteur M. Laurent Polidori Rapporteur M. Andres Almansa Examinateur M. Bruno Vallet Examinateur Mme. Nicole Vincent Examinatrice M. Renaud Binet Encadrant M. Marc Pierrot-Deseilligny Directeur de th`ese2Remerciements Avant tout, mes remerciements vont `a Renaud Binet et Marc Pierrot-Deseilligny, initiateurs et encadrants de ce sujet de th`ese qui m’a captiv´e pendant ces trois ann´ees. Merci `a Marc de m’avoir fait d´ecouvrir MicMac et la programmation dynamique que j’utilise maintenant partout ! Merci Renaud pour ton enthousiasme, tes nombreuses id´ees au cours de la th`ese et surtout pour m’avoir beaucoup appris dans le domaine de l’imagerie optique. Je tiens aussi `a remercier la DGA d’avoir financ´e ces travaux. Participer `a ce programme a ´et´e tr`es motivant. Merci `a Philippe Blanc, toujours de tr`es bon conseil et `a Bruno Vallet pour le travail tr`es enrichissant que nous avons r´ealis´e ensemble. Merci `a toute l’´equipe du CALTECH pour m’avoir invit´ee dans vos murs et fait d´ecouvrir d’autres pistes de recherche ! Merci S´ebastien pour toute l’aide que tu m’as apport´ee durant ce stage mais aussi pour m’avoir fait visiter ce petit bout des Etats–Unis ! J’esp`ere que notre ´ collaboration ne s’arrˆetera pas l`a. Je tiens aussi `a remercier les enseignants du Master 2 de l’EGID et surtout Samia Boukir et Nesrine Chehata. Merci de m’avoir incit´ee `a continuer dans la recherche quand je n’´etais qu’´etudiante en master ! J’esp`ere Nesrine qu’on se retrouvera encore souvent pour des conf´erences, IGARSS a ´et´e un tr`es bon moment. Je n’oublie sˆurement pas tout le labo TSE avec lequel j’ai travaill´e pendant ces trois ann´ees. Merci bien sˆur `a Philippe pour m’avoir accueillie dans ce labo et m’avoir encourag´ee tout au long de la th`ese. Un grand bravo `a Adrien pour m’avoir cˆotoy´ee dans le mˆeme bureau pendant plus de 2 ans ! Tu resteras mon irrempla¸cable coll`egue de bureau et ami. Merci `a Thierry d’avoir toujours eu confiance en moi et de m’avoir soutenu tous les jours, bon 3ou moins bon...Merci `a B´eatrice pour nos collaborations sur divers projets. Merci `a Philippe, Rodolphe et Eric pour avoir accept´e de relire cette th`ese. Finalement merci `a vous tous, ¸ca a ´et´e un r´eel plaisir de travailler avec vous dans ce labo. Merci aussi `a tous ceux que j’ai rencontr´ee durant cette th`ese. Merci `a Franck pour d’inoubliables conversations et fous rires si d´ecompressants sur la ligne C3 ! Je te souhaite le meilleur pour ta nouvelle carri`ere et j’esp`ere qu’on ne se perdra pas de vue. Bien sˆur, je remercie Boris, rencontr´e de fa¸con si inopin´e et qui s’est r´ev´el´e ˆetre un ami tr`es pr´ecieux, merci d’avoir pass´e ces heures `a m’´epauler pour mon article, tu m’as beaucoup apport´e. You rock ! Merci enfin `a mes parents et `a mes soeurs, vous m’avez soutenue durant toutes ces ann´ees d’´etudes. J’ai pu compter sur votre soutien inflexible lors de mes plus grandes p´eriodes de stress. Du fond du coeur, merci. C’est `a vous que je d´edie cette th`ese. 4R´esum´e L’imagerie satellite permet aujourd’hui l’acquisition d’un nombre croissant de donn´ees dont l’augmentation des r´esolutions spatiale et temporelle permet de caract´eriser de plus en plus finement une sc`ene et son ´evolution. Dans ce contexte, les m´ethodes de d´etection des changements apparus entre deux sc`enes sont particuli`erement ´etudi´ees. Elles sont g´en´eralement bas´ees sur les diff´erences radiom´etriques entre les images. Cependant, ces m´ethodes s’av`erent souvent peu robustes `a des changements radiom´etriques non pertinents tels que ceux induits par la variation des conditions d’acquisition des images. L’objectif de cette th`ese est ainsi de d´evelopper une m´ethode alternative, bas´ee sur la recherche des changements d’´el´evation de la sc`ene. L’´el´evation repr´esente en effet une information pertinente et adapt´ee, notamment dans un contexte de d´etection des changements de type urbain (construction, destruction ou modification d’infrastructures). Pour r´epondre `a des besoins en analyse d’image qui n´ecessitent des r´esultats rapides et fiables, la m´ethode que nous proposons est une chaˆıne de traitements compl`ete et automatique bas´ee sur l’exploitation de couples d’image satellites st´er´eoscopiques tr`es haute r´esolution permettant la g´en´eration et la comparaison de Mod`eles Num´eriques de Surface (MNS). Afin de limiter les fausses alarmes de changements dues aux erreurs li´ees `a la g´en´eration des MNS, une ´etape cl´e de cette th`ese a consist´e `a augmenter la pr´ecision des MNS, notamment `a travers la prise en compte des zones d’occlusions et de mauvaise corr´elation. La m´ethode de g´en´eration des MNS `a ainsi ´et´e am´elior´ee et une technique innovante de fusion des deux MNS provenant du mˆeme couple d’images a ´et´e d´evelopp´ee. La comparaison des MNS g´en´er´es avec un MNS LiDAR montre que notre approche permet une nette augmentation de la qualit´e des MNS, les erreurs de corr´elation sont r´eduites tandis que les zones d’occlusion sont 5pr´ecis´ement localis´ees. La m´ethode de d´etection des changements d’´el´evation est, quant `a elle, bas´ee sur une labellisation par optimisation des pixels du MNS diff´erentiel calcul´e `a partir des MNS produits `a chaque date. Cette ´etape permet de mettre en ´evidence les vrais changements de la sc`ene parmi le bruit r´esiduel des MNS. Les r´esultats obtenus sur diff´erents sites test´es montrent que plus de 80% des changements de taille sup´erieure `a 15 pixels x 15 pixels (ou 100 m2 avec des images tr`es haute r´esolution) sont d´etect´es par notre m´ethode, avec moins de 20% d’erreurs. Nous montrons cependant que ces r´esultats d´ependent principalement du param`etre de r´egularisation de la d´etection des changements, qui contrˆole le taux de fausses alarmes par rapport au taux de bonnes d´etections du r´esultat. 6Abstract The growing amount of satellite data, increasingly resolved spatially and temporally, represents a high potential of information allowing the accurate characterization of the evolution of an area of interest. For this reason, automatic analysis techniques such as change detection methods are widely investigated. Most of them are based on radiometric changes between remote sensed optical images. These methods are however very sensitive to a significant number of irrelevant changes such as those due to the variation of the geometrical conditions between two different acquisitions. The objective of this work is then to develop an alternative method based on the elevation change detection. The advantage of using the elevation is that this information is particularly relevant and well adapted in a context of urban monitoring where the elements of interest correspond to buildings that can be constructed, modified or destroyed between two dates. In order to satisfy new needs in image analysis which require quick and reliable results, our method is a complete and automatic processing flow based on the analysis of high resolution satellite stereoscopic couples and the generation of Digital Surface Models (DSM). Stereoscopic DSMs, however, generally suffer from a high number of correlation errors leading to false alarms in the final change detection map. One of the main contribution of this work consisted in increasing the DSM accuracy, especially through a better handling of the occlusion and miss-correlation areas. For this purpose, the image matching technique has been improved and all DSMs computed from the same stereoscopic couple are then fusioned through a new approach, based on an optimization method. The comparison between our DSM with a LiDAR-based DSM indicates that our method largely improves the DSM quality, the amount of correlation errors is decreased while the occlusion areas are accurately localized. The change detection method itself is based on the labelization of the pixels of the differential 7DSM computed from the DSMs generated at each date of interest. This step, performed through another optimization process, enables to bring forward the relevant changes among the residual noise of the DSMs. The results, obtained for several experimental areas, show that more than 80% of the changes larger than 15 pixels x 15 pixels (100 m m2 with high resolution images) are detected with our method, with less than 20% of false alarms. We also show that these results mainly depend on the regularization parameter which controls the balance between the amount of false alarms towards the amount of true detections in the final results. 8Table des mati`eres Introduction G´en´erale 13 1 Etudes bibliographiques et strat´egie adopt´ee ´ 17 1.1 La d´etection de changements : ´etat de l’art . . . . . . . . . . . . . . . . . . . . . 18 1.1.1 M´ethodes de d´etection des changements radiom´etriques . . . . . . . . . . 18 1.1.2 M´ethodes alternatives : d´etection des changements d’´el´evation . . . . . . 19 1.2 M´ethodes de restitution 3D : ´etat de l’art . . . . . . . . . . . . . . . . . . . . . . 23 1.2.1 Mise en correspondance d’images par m´ethode d’optimisation . . . . . . . 25 1.2.2 Caract´eristiques des corr´elateurs . . . . . . . . . . . . . . . . . . . . . . . 27 1.2.3 Les strat´egies de mise en correspondance . . . . . . . . . . . . . . . . . . 29 1.2.4 Les outils de restitution 3D existants . . . . . . . . . . . . . . . . . . . . . 33 1.3 Description g´en´erale de la chaˆıne de traitements d´evelopp´ee . . . . . . . . . . . . 35 1.4 Capteurs utilis´es et donn´ees d’entr´ee . . . . . . . . . . . . . . . . . . . . . . . . . 37 1.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 2 Outils et m´ethodes n´ecessaires `a la chaˆıne de traitements 41 2.1 Co–localisation des images : utilisation d’un outil de spatio–triangulation . . . . 42 2.1.1 Contexte et objectif . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 2.1.2 Principe de la spatio–triangulation . . . . . . . . . . . . . . . . . . . . . . 43 2.2 Outil pour la r´esolution de probl`emes de labellisation . . . . . . . . . . . . . . . . 47 2.2.1 Trois probl`emes de labellisation . . . . . . . . . . . . . . . . . . . . . . . . 47 2.2.2 Les m´ethodes d’optimisation existantes . . . . . . . . . . . . . . . . . . . 49 2.2.3 Description de l’algorithme s´electionn´e . . . . . . . . . . . . . . . . . . . . 55 2.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 9TABLE DES MATIERES ` 3 G´en´eration de Mod`eles Num´eriques de Surface sur une grille r´eguli`ere `a partir de couples st´er´eoscopiques 61 3.1 Description de la strat´egie de mise en correspondance adopt´ee . . . . . . . . . . . 62 3.1.1 Technique de mise en correspondance . . . . . . . . . . . . . . . . . . . . 62 3.1.2 Fonction d’optimisation et r´egularisation . . . . . . . . . . . . . . . . . . . 63 3.1.3 Prise en compte des zones d’occlusion . . . . . . . . . . . . . . . . . . . . 65 3.2 D´eveloppement d’une m´ethode de basculement des MNS sur une grille g´eographique r´eguli`ere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 3.2.1 Interpolation des points de la grille r´eguli`ere . . . . . . . . . . . . . . . . . 66 3.2.2 Conditions au calcul de l’´el´evation d’un point . . . . . . . . . . . . . . . . 67 3.3 Am´elioration des MNS : d´eveloppement d’une m´ethode de fusion des MNS . . . 72 3.3.1 Erreurs des MNS asym´etriques . . . . . . . . . . . . . . . . . . . . . . . . 72 3.3.2 M´ethode de fusion des MNS asym´etriques . . . . . . . . . . . . . . . . . . 74 3.4 Qualit´e et pr´ecision des MNS obtenus . . . . . . . . . . . . . . . . . . . . . . . . 82 3.4.1 Co–localisation LiDAR et MNS . . . . . . . . . . . . . . . . . . . . . . . . 82 3.4.2 Crit`eres de qualit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 3.5 Application au cas de la multi–st´er´eoscopie . . . . . . . . . . . . . . . . . . . . . 87 3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 4 D´eveloppement d’une m´ethode de d´etection des changements d’´el´evation 93 4.1 Calcul et analyse du MNS diff´erentiel . . . . . . . . . . . . . . . . . . . . . . . . 94 4.2 M´ethode de d´etection des changements . . . . . . . . . . . . . . . . . . . . . . . . 97 4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 5 Exp´erimentation et discussion des r´esultats de la m´ethode de d´etection des changements d’´el´evation 101 5.1 Pr´esentation des zones de test . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 5.1.1 Phoenix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 5.1.2 Christchurch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 5.1.3 R´egion de Tohoku : analyse d’une zone catastroph´ee . . . . . . . . . . . . 105 5.2 M´etriques d’analyse des r´esultats de la d´etection de changements . . . . . . . . . 109 5.2.1 Variables calcul´ees . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109 10TABLE DES MATIERES ` 5.2.2 M´etriques d’analyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111 5.3 Analyse de sensibilit´e des r´esultats obtenus . . . . . . . . . . . . . . . . . . . . . 112 5.3.1 Influence des param`etres de la m´ethode sur les r´esultats . . . . . . . . . . 113 5.3.2 Impact de la qualit´e des donn´ees d’entr´ee . . . . . . . . . . . . . . . . . . 118 5.3.3 Int´erˆet d’une m´ethode globale : comparaison avec un filtrage local . . . . 121 5.3.4 Influence du paysage de la zone d’´etude . . . . . . . . . . . . . . . . . . . 124 5.4 Analyse des r´esultats sur la zone de Sendai . . . . . . . . . . . . . . . . . . . . . 127 5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 6 Conclusion g´en´erale 133 6.1 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 6.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 Table des figures 139 Liste des tableaux 143 Bibliographie 145 11TABLE DES MATIERES ` 12Introduction G´en´erale Depuis le lancement des premiers satellites d´edi´es `a la t´el´ed´etection spatiale, leur nombre, leur r´esolution et leur capacit´e d’acquisition n’ont de cesse d’augmenter. Aujourd’hui, Pl´eiades 1A et 1B fournissent des images `a 70 cm de r´esolution tandis que WorldView-3 est attendu avec une r´esolution inf´erieure `a 50 cm. Ce nombre de donn´ees, d’une qualit´e toujours meilleure, permet d’acc´eder `a une grande quantit´e d’informations pour caract´eriser et analyser une sc`ene et son ´evolution `a de tr`es fines ´echelles spatiales et temporelles. Pour traiter ces nouveaux flux de donn´ees, les m´ethodes permettant l’analyse de s´eries multi– temporelles d’images sont alors particuli`erement int´eressantes et en fort d´eveloppement. Les applications `a ces ´etudes sont tr`es nombreuses, `a commencer par l’agriculture, pour caract´eriser l’´evolution des sols, jusqu’aux g´eosciences, pour l’observation des glaciers en termes de volume, d’´etendue ou de vitesse [1], pour la surveillance des volcans [2] ou encore pour les mesures des d´eformations tectoniques [3, 4]. L’augmentation drastique de la r´esolution des images permet aussi aujourd’hui une observation beaucoup plus fine des milieux urbains pour une meilleure analyse g´eographique et d´emographique des villes `a travers la mise `a jour des plans cadastraux ou autres bases de donn´ees [5] mais aussi pour la cartographie de d´egˆats mat´eriels (en terme de bˆatiments ou d’infrastructures d´etruits) apr`es une catastrophe majeure telle qu’un s´eisme, un tsunami, un glissement de terrain, un ´ev´enement m´et´eorologique ou encore une guerre [6]. Dans ce contexte, les m´ethodes de d´etection des changements, automatiques ou semi–automatiques, sont particuli`erement avantageuses. Les algorithmes de d´etection de changements sont traditionnellement bas´es sur l’´etude 13INTRODUCTION GEN´ ERALE ´ d’images radars ou optiques. En imagerie optique, la plupart des m´ethodes s’int´eressent aux diff´erences de r´eflectances entre les donn´ees acquises `a des dates t1 et t2 [7]. Cependant, les r´esultats montrent que, dans un contexte de suivi des infrastructures urbaines, de nombreuses fausses alarmes ou changements non pertinents sont g´en´er´es par ces m´ethodes de d´etection 2D. Ces alarmes sont g´en´eralement dues aux diff´erentes conditions d’acquisition des images (conditions d’´eclairement ou d’atmosph`ere, azimut solaire, saison ou encore angles d’acquisition des images) lors des prises de vue ainsi qu’`a de nombreux changements radiom´etriques tels que l’´evolution des sols, les r´enovations de toitures ou de revˆetement de sol. Le travail de th`ese pr´esent´e ici s’inscrit dans cette probl´ematique de d´etection de changements. Dans le but de s’affranchir des changements radiom´etriques, nous nous int´eressons aux changements d’´el´evation de type urbain (directement reli´es au bˆati) et dans un contexte de suivi temporel ou de crise majeure n´ecessitant des r´esultats fiables et rapides. Afin de r´epondre au mieux `a cette probl´ematique, la technique propos´ee est bas´ee enti`erement sur les diff´erences d’´el´evation de la sc`ene entre les deux dates d’int´erˆet. En effet, cette information, dont la variation en milieu urbain est g´en´eralement li´ee `a des changements du bˆati, est robuste `a la plupart des changements 2D et est donc particuli`erement adapt´ee `a cet objectif [8]. Aujourd’hui, diff´erents syst`emes d’acquisition permettent d’acc´eder `a l’information d’´el´evation d’une sc`ene : les lasers a´eroport´es (Airborne Laser Scaning ou ALS), le LiDAR (Light Detection And Ranging), les satellites radar ou encore l’imagerie st´er´eoscopique, a´erienne ou spatiale, `a travers la g´en´eration de Mod`eles Num´eriques de Surface (MNS). Du fait de leur tr`es haute r´esolution, leur large capacit´e d’acquisition et la rapidit´e de livraison et de traitement de ces donn´ees, les satellites optiques produisant des images st´er´eoscopiques apparaissent comme la meilleure r´eponse pour la d´etection des changements d’´el´evation. De plus, le coˆut de ces images est relativement faible compar´e aux autres syst`emes d’acquisition, voire nulle lors d’une crise majeure car ces images sont alors gratuitement mises `a disposition des agences cartographiques `a travers la Charte Internationale Espace et Catastrophes Majeures, sign´ee par de nombreux pays. L’objectif de ce travail est ainsi de d´evelopper et de tester, dans un contexte urbain, une m´ethode de d´etection de changements innovante et bas´ee sur les changements d’´el´evation d’une sc`ene entre deux dates. Afin de r´epondre de fa¸con adapt´ee `a la probl´ematique de quantification 14INTRODUCTION GEN´ ERALE ´ de d´egˆats apr`es une catastrophe, la technique de d´etection de changements d´evelopp´ee est une chaˆıne de traitements compl`ete et automatique, d´ebutant par le recalage des donn´ees brutes et fournissant, en sortie, une carte g´eor´ef´erenc´ee des changements d´etect´es. Au cours de cette th`ese, nous d´etaillerons toutes les ´etapes de cette chaˆıne de traitements, leurs objectifs et leurs r´esultats. Dans une premi`ere partie, nous montrerons l’int´erˆet de la recherche des changements d’´el´evation (ou 3D) par rapport aux changements radiom´etriques `a travers un ´etat de l’art de ces m´ethodes. Nous ´etudierons aussi les m´ethodes de g´en´eration de MNS `a partir d’images st´er´eoscopiques (chapitre 1), ´etape primordiale de la chaˆıne de traitements. Dans une seconde partie, nous d´ecrirons les outils existants n´ecessaires `a notre chaˆıne de traitements, qui consistent en un outil de recalage des images, ´etape indispensable `a tout traitement g´eom´etrique des images et un outil de r´esolution de probl`emes de labellisation par programmation dynamique (chapitre 2). Cet algorithme est en effet central pour trois ´etapes de calcul de notre chaˆıne de traitements. Puis, dans le chapitre 3, nous d´etaillerons la m´ethode compl`ete de g´en´eration des MNS. Cette m´ethode, qui d´ebute par la mise en correspondance des images st´er´eoscopiques pr´esente ensuite deux innovations majeures permettant d’am´eliorer la pr´ecision des MNS en vue de la d´etection des changements. La technique de d´etection de changements 3D, bas´ee sur une classification de la carte des diff´erences d’´el´evation par une m´ethode de labellisation, sera finalement expos´ee dans le chapitre 4. Enfin, la derni`ere partie aura pour objectif d’illustrer l’int´erˆet de la chaˆıne de traitements d´evelopp´ee et d’analyser les r´esultats obtenus dans diff´erentes sc`enes urbaines, que ce soit dans un contexte de mise `a jour des bases de donn´ees ou pour la caract´erisation et la quantification rapide des d´egˆats apr`es une catastrophe majeure (chapitre 5). 15INTRODUCTION GEN´ ERALE ´ 16Chapitre 1 Etudes bibliographiques et strat´egie ´ adopt´ee Dans le domaine de la d´etection de changements par imagerie satellite, de nombreuses m´ethodes existent mais elles sont principalement bas´ees sur l’exploitation de la radiom´etrie des images tandis que tr`es peu de m´ethodes utilisent l’information 3D de la sc`ene. C’est cette approche que nous avons choisi de d´evelopper dans notre chaˆıne de traitements car elle se r´ev`ele particuli`erement pertinente pour la d´etection des changements de type bˆati, dans un contexte urbain. La chaˆıne de traitements propos´ee n´ecessite ainsi une ´etape de reconstruction 3D de la sc`ene. Cependant, les contraintes li´ees aux acquisitions satellites rendent le calcul de la mise en correspondance des images particuli`erement complexe et de multiples techniques ont ´et´e d´evelopp´ees afin d’am´eliorer leur robustesse. Dans une premi`ere partie de ce chapitre, nous pr´esenterons quelques unes des m´ethodes classiques de d´etection de changements radiom´etriques. Nous d´etaillerons ensuite plus particuli`erement les m´ethodes d´evelopp´ees pour la d´etection des changements d’´el´evation et nous montrerons leur int´erˆet, notamment en milieu urbain. Puis, dans une seconde partie, nous analyserons les m´ethodes de restitution 3D existantes et l’int´erˆet de certaines techniques pour notre chaˆıne de traitements. Enfin, dans une derni`ere partie, nous d´etaillerons toutes les ´etapes de notre chaˆıne de traitements et les donn´ees utilis´ees lors des phases exp´erimentales. 171.1. LA DETECTION DE CHANGEMENTS : ´ ETAT DE L’ART ´ 1.1 La d´etection de changements : ´etat de l’art 1.1.1 M´ethodes de d´etection des changements radiom´etriques Les m´ethodes traditionnelles en d´etection de changements sont bas´ees sur la comparaison temporelle des radiom´etries qui peut ˆetre effectu´ee directement `a l’´echelle du pixel. Un large inventaire des m´ethodes les plus connues est fourni par Radke [7]. Les m´ethodes les plus simples et rapides `a impl´ementer sont celles utilisant les diff´erences radiom´etriques ou les rapports (ratios) entre les pixels correspondant en t1 et t2 [7, 9, 10]. Cependant, ces m´ethodes n´ecessitent souvent des seuillages ou des r`egles de d´ecisions et restent tr`es sensibles au bruit des images, aux erreurs de recalage et surtout aux conditions d’acquisition des images, diff´erentes entre t1 et t2, qui g´en`erent de nombreuses alarmes de changements, g´en´eralement non pertinentes. D’autres m´ethodes, de type statistique, sont aussi employ´ees `a l’´echelle du pixel [7, 9]. Le but est de d´ecider, pour chaque pixel, s’il correspond `a un changement ou non en fonction de l’hypoth`ese changement ou non changement qui d´ecrit le mieux son intensit´e. Ces hypoth`eses sont pos´ees `a partir des variations d’intensit´e des pixels dans la s´erie temporelle [7]. L’analyse par composantes principales (PCA) est aussi largement utilis´ee [10–12]. Elle permet de r´eduire la dimension spectrale des images aux composantes les plus riches en information et donc o`u les changements les plus importants ont la plus grande probabilit´e d’apparaˆıtre. Cependant, les hypoth`eses, n´ecessaires pour la mise en oeuvre de ces m´ethodes, proviennent souvent d’une premi`ere analyse des changements recherch´es et limitent ainsi l’automatisation de ces m´ethodes. Les m´ethodes de classification des pixels sont aussi tr`es d´evelopp´ees. Deux m´ethodes sont principalement utilis´ees : la post classification et la classification directe multi–date [13]. La premi`ere consiste `a classer les pixels, de fa¸con supervis´ee ou non, sur chaque image ind´ependamment puis `a comparer les classes. Le probl`eme de cette approche est l’impact important d’une erreur de classe dans l’une des images sur le r´esultat final. Cette m´ethode est ainsi plutˆot utilis´ee pour la d´etection de changements `a grande ´echelle comme pour l’occupation des sols par exemple [7, 9, 10, 12]. 18CHAPITRE 1. ETUDES BIBLIOGRAPHIQUES ET STRAT ´ EGIE ADOPT ´ EE´ La classification directe multi–dates n´ecessite la concat´enation des images, puis la classification, souvent supervis´ee, des pixels selon leur valeur dans toutes les bandes afin de faire apparaˆıtre les changements [11]. Enfin, les images multi–spectrales permettent aussi l’utilisation d’outils tels que les Support Vector Machine (SVM) [14]. Les valeurs spectrales de chaque pixel sont alors repr´esent´ees par un vecteur dans l’espace temporel, la magnitude et la direction de ces vecteurs permettent le classement des pixels en changement ou non changement dans l’image. Ces m´ethodes de classification s’av`erent souvent plus robustes aux erreurs de recalage ou au bruit des images mais elle n´ecessitent souvent des processus supervis´es. Aujourd’hui, avec l’augmentation de la r´esolution spatiale des images, l’int´egration d’informations sur le voisinage des pixels devient indispensable car un objet est maintenant repr´esent´e par plusieurs pixels dans l’espace image. L’image peut alors ˆetre analys´ee de fa¸con plus efficace en consid´erant cette information spatiale [11, 12, 15]. Ainsi, Bruzzone [16] utilise une approche bas´ee sur les Champs de Markov Al´eatoires (Markov Random Fields, MRF) afin de mod´eliser les probabilit´es d’appartenance d’un pixel `a une classe en fonction de son voisinage. Al–Khudhairy [15] se base sur la forme et l’homog´en´eit´e des objets afin de les classer. Ces approches, de plus en plus r´epandues, am´eliorent la robustesse des algorithmes au bruit et aux distorsions g´eom´etriques des images mais sans pour autant supprimer la sensibilit´e `a tous les changements radiom´etriques non pertinents tels que les variations de r´eflectance des surfaces, l’´evolution des sols ou des revˆetements d’infrastructures. 1.1.2 M´ethodes alternatives : d´etection des changements d’´el´evation Derni`erement, de nouvelles approches, alternatives `a la d´etection de changements 2D, ont ´emerg´e. Leur but est de concentrer la d´etection sur les changements d’´el´evation de la sc`ene tout en ´etant plus robuste aux conditions d’acquisition des images ou aux changements non pertinents qui correspondent souvent `a des changements 2D. Dans le cadre d’une d´etection des changements urbains de type bˆati, ces m´ethodes apparaissent donc particuli`erement appropri´ees. Les donn´ees d’entr´ee utilis´ees pour obtenir cette information d’´el´evation proviennent alors de campagnes LiDAR, de lasers a´eroport´es ou plus fr´equemment d’imagerie st´er´eoscopique, spatiale ou a´erienne [17, 18]. Ces techniques de d´etection des changements 3D peuvent ˆetre divis´ees en deux cat´egories 191.1. LA DETECTION DE CHANGEMENTS : ´ ETAT DE L’ART ´ principales : les techniques image `a base de donn´ees et les techniques image `a image. Les techniques dites image–base de donn´ees consistent g´en´eralement `a comparer une base de donn´ees vecteur, contenant les empreintes de bˆatiments (telles que des donn´ees cadastrales) et une image de l’´el´evation de tous les points de la sc`ene. Ces techniques sont les plus utilis´ees en d´etection de changements car elles sont n´ecessaires pour la mise `a jour automatique ou semi–automatique de bases de donn´ees d´ej`a existantes. La strat´egie g´en´eralement adopt´ee dans ce cas est l’extraction des bˆatiments sur la carte d’´el´evation et la comparaison des empreintes obtenues avec la base de donn´ees initiale afin de constater la pr´esence ou non du bˆatiment `a la date de la base de donn´ees [5, 19, 20]. L’extraction des bˆatiments est alors le point sensible de la m´ethode et peut ˆetre effectu´ee, selon le type de donn´ees d’entr´ee, par un algorithme d’extraction de structures dans un nuage de points g´en´er´e par des donn´ees laser [18], par des m´ethodes de classification `a partir de MNS et de donn´ees multispectrales [19, 21] ou bien par l’extraction des contours 2D des bˆatiments sur un MNS afin de comparer les segments obtenus avec la base de donn´ees vecteur [5]. Cette ´etape d’extraction est particuli`erement sensible car une erreur peut g´en´erer une fausse diff´erence entre la base de donn´ees et les empreintes calcul´ees, notamment lorsque la carte des ´el´evations de la sc`ene est g´en´er´ee `a partir d’images, plus bruit´ees que les donn´ees laser. De mˆeme, l’´etape de comparaison n´ecessite g´en´eralement que les donn´ees vecteur et image soient tr`es pr´ecis´ement recal´ees. Des post–filtrages sont souvent appliqu´es sur les extractions de bˆatiment afin de compenser ce type d’erreur, mais ces filtrages peuvent alt´erer la d´etection des changements les plus petits, tels que les modifications apport´ees `a un bˆatiment. Enfin, l’inconv´enient majeur de ces techniques r´eside dans le fait que les bases de donn´ees cadastrales sont tr`es rarement disponibles et mises `a jour, rendant ce type de m´ethode totalement inadapt´e pour la quantification des d´egˆats apr`es une catastrophe majeure par exemple [19]. Les techniques image `a image repr´esentent alors la seule alternative lorsqu’aucune donn´ee externe n’est disponible ou valide. Elles consistent `a calculer la diff´erence entre deux images d’´el´evation acquises aux dates t1 et t2 afin de mettre en ´evidence les changements d’´el´evation apparus. Cette m´ethode est largement utilis´ee pour des probl´ematiques de g´eoscience telles que l’´etude 20CHAPITRE 1. ETUDES BIBLIOGRAPHIQUES ET STRAT ´ EGIE ADOPT ´ EE´ d’objets g´eologiques comme les volcans [2] ou les glaciers [1], la mesure des mouvements topographiques ou des glissements de terrain [3, 4]. Dans ce contexte de surveillance des milieux, il est souvent n´ecessaire d’acqu´erir des s´eries temporelles compos´ees de nombreuses images afin de suivre les variations sur une grande p´eriode de temps. Les donn´ees employ´ees sont alors tr`es souvent des donn´ees satellitaires ou a´eriennes qui permettent d’acqu´erir des sc`enes sur de vastes emprises terrain. Pour des applications en g´eoscience, les variations recherch´ees sont typiquement de tr`es basse fr´equence spatiale et de faible amplitude altim´etrique, visibles `a grande ´echelle et donc facilement d´etectables par une simple diff´erence entre les cartes d’´el´evation, g´en´er´ees `a basse ou moyenne r´esolution [3, 4]. Au contraire, dans le contexte urbain dans lequel se place ce travail, les changements recherch´es sont g´en´eralement de tr`es haute fr´equence spatiale et de forte amplitude, n´ecessitant une pr´ecision de d´etection qui ne peut ˆetre obtenue qu’avec des images tr`es haute r´esolution. Les m´ethodes d´evelopp´ees pour la basse ou moyenne r´esolution ne sont pas adapt´ees `a cette probl´ematique car il est alors n´ecessaire de mettre en ´evidence les changements recherch´es parmi les nombreuses fausses alarmes g´en´er´ees `a haute ou tr`es haute r´esolution spatiale [8, 22]. Parmi les m´ethodes de d´etection image–image `a tr`es haute r´esolution, deux types de techniques sont appliqu´es : les techniques semi–automatiques, bas´ees sur l’utilisation d’informations multi–spectrales ou contextuelles telles que la taille ou la forme des objets ou encore sur l’utilisation de zones d’apprentissage et les techniques enti`erement automatiques. Jung [23] propose une m´ethode semi–automatique qui utilise des MNS g´en´er´es par imagerie st´er´eoscopique a´erienne. Dans une premi`ere ´etape, un algorithme de focusing permet de rechercher les zones ayant probablement chang´e grˆace `a la comparaison des MNS de chaque date. Puis une seconde ´etape permet, pour chaque date, de classer ces zones d’int´erˆet selon les labels ”bˆatiment” ou ”non–bˆatiment” `a l’aide d’arbres de d´ecision g´en´er´es `a partir de zones d’apprentissage. Les deux segmentations ainsi obtenues sont alors compar´ees pour retrouver les changements du bˆati. Avec ce type de m´ethode, la qualit´e de la d´etection d´epend alors de chacune des segmentations et ne permet pas de retrouver les modifications apport´ees `a un bˆatiment. Aujourd’hui, peu d’´etudes portent sur la d´etection des changements d’´el´evation entre deux 211.1. LA DETECTION DE CHANGEMENTS : ´ ETAT DE L’ART ´ MNS g´en´er´es `a partir d’images satellites st´er´eoscopiques tr`es haute r´esolution. En effet, malgr´e les avantages qu’apporte la haute r´esolution temporelle de ces images qui sont aussi moins on´ereuses qu’une campagne d’acquisition a´erienne, leur r´esolution reste beaucoup plus basse que celle des images a´eriennes (aujourd’hui WorldView–1 atteins 50 cm de r´esolution nadir lorsque les images a´eriennes ont une r´esolution de l’ordre du d´ecim`etre). De plus, les images a´eriennes sont plus contrast´ees que les images satellites permettant une mise en correspondance plus efficace pour la g´en´eration de MNS pr´ecis. Enfin, leur acquisition quasi nadir permet de limiter les zones d’occlusion dans les images. Ainsi, les MNS produits `a partir de couples d’images satellites souffrent de plus nombreuses erreurs de corr´elation et de zones d’occlusion par rapport `a ceux produits par l’a´erien, erreurs se propageant souvent sous forme de fausses alarmes sur les cartes finales de d´etection de changements. Afin de r´eduire l’impact des erreurs de MNS dans le MNS diff´erentiel, Tian [8] propose le calcul d’une diff´erence robuste entre les MNS des deux dates d’acquisition qui se traduit par l’affectation, pour chaque pixel (i, j) de l’image des diff´erences, de la diff´erence minimale obtenue entre le pixel du MNS `a t1 en (i, j) et un pixel du MNS t2 appartenant `a une fenˆetre de taille d´efinie et centr´ee sur le pixel (i, j). Puis, dans une seconde ´etape, la carte des diff´erences obtenue est analys´ee par une extraction de contours suivie par un affinage de formes par un algorithme de box-fitting. Dans une autre approche, Tian [24] propose, apr`es le calcul de la diff´erence robuste, l’application d’un masque des zones d’ombre, bas´e sur l’exploitation des bandes multispectrales tel que l’a impl´ement´ee Marchant [25]. Ce masque est alors combin´e `a un masque regroupant les corr´elations de faible coefficient obtenues lors de la g´en´eration des MNS. La diff´erence masqu´ee ainsi obtenue est alors segment´ee puis les ´el´ements mis en ´evidence sont filtr´es `a partir de crit`eres de tailles et de formes d´ecrits par Chaabouni–Chouayakh [22], afin de mieux s´eparer les changements appartenant au bˆati des fausses erreurs. Cette approche permet la d´etection de 60% `a 80% des objets de plus de 100 m2 et de 2 m `a 3 m d’´el´evation diff´erentielle, respectivement et avec 50% `a 15% de fausses alarmes. Plus r´ecemment, Tian [26] a am´elior´e cette approche grˆace `a l’ajout d’un indicateur de changements calcul´e directement entre les images panchromatiques ayant permis la g´en´eration 22CHAPITRE 1. ETUDES BIBLIOGRAPHIQUES ET STRAT ´ EGIE ADOPT ´ EE´ des MNS. Cet indicateur de changements est bas´e sur l’analyse de l’´evolution des statistiques locales d’une image entre deux dates. Le r´esultat de la fusion des informations obtenues par la diff´erence robuste segment´ee et par les indicateurs de changements radiom´etriques est ensuite filtr´e `a partir des mˆemes crit`eres de formes et de tailles. Les r´esultats montrent alors de 55% `a 93% des changements d´etect´es avec 45% `a 16% de fausses alarmes. Cependant, si les r´esultats de ces m´ethodes apparaissent prometteurs, les nombreux seuils et crit`eres n´ecessaires peuvent limiter les changements d´etectables `a certaines formes et tailles. Enfin, Reinartz [6] effectue une segmentation des images aux dates t1 et t2 en utilisant une m´ethode de classification bas´ee sur le IR–MAD (Iteratively Reweighted Multivariate Alteration) d´evelopp´ee par Nielsen [27]. Les r´esultats de segmentation aux deux dates sont alors associ´es avec le MNS diff´erentiel afin de d´ecider, pour chaque r´egion segment´ee, si elle correspond `a des bˆatiments d´etruits ou nouveaux. En conclusion de cette ´etude, nous noterons que, `a notre connaissance, aucune m´ethode totalement automatique n’existe pour la d´etection des changements d’´el´evation `a partir d’imagerie satellite seule, sans ajout d’informations externes ou contextuelles. Pourtant, la capacit´e de r´eactivit´e des satellites face `a une crise, leur agilit´e pour la st´er´eoscopie ainsi que leur r´esolution inf´erieure au m`etre sont des atouts majeurs pour des probl´ematiques de d´etection de changements d’´el´evation, mˆeme si la g´en´eration de MNS pr´ecis `a partir de ces donn´ees demeure difficile. 1.2 M´ethodes de restitution 3D : ´etat de l’art Classiquement, la reconstruction 3D d’une sc`ene n´ecessite le calcul de la disparit´e entre tous les pixels homologues des deux images d’un couple st´er´eoscopique. Les pixels homologues correspondent `a des pixels repr´esentant un mˆeme point terrain, rep´er´es sur chaque image du couple st´er´eoscopique. La disparit´e correspond au d´ecalage g´eom´etrique (en pixels) mesur´e entre deux pixels homologues lorsque les angles de prise de vue des images diff`erent. Cette valeur de disparit´e est reli´ee `a l’´el´evation de la sc`ene au pixel consid´er´e, elle est donc calcul´ee pour tous les pixels d’une image par la mise en correspondance dense des images 231.2. METHODES DE RESTITUTION 3D : ´ ETAT DE L’ART ´ afin d’obtenir l’´el´evation de tous les points de la sc`ene. Cependant, les contraintes li´ees aux acquisitions satellite rendent le calcul de la disparit´e particuli`erement complexe car de nombreuses difficult´es se pr´esentent : – les angles d’acquisition des images sont souvent importants (jusqu’`a 30◦ d’incidence) g´en´erant des diff´erences radiom´etriques importantes, – ces angles d’incidence g´en`erent d’importantes zones d’occlusion : c’est–`a–dire des zones cach´ees dans l’image, typiquement les zones aux abords des bˆatiments. Dans ce cas il n’est pas possible de trouver des pixels homologues dans ces zones, – des d’objets peuvent ˆetre en mouvement : la mise en correspondance des images d’un couple implique comme hypoth`ese que la sc`ene soit parfaitement immobile entre les deux acquisitions, or, dans la r´ealit´e, cette hypoth`ese n’est pas r´ealisable, – certaines zones sont trop homog`enes ou poss`edent une texture r´ep´etitive ou bien une structure 3D tr`es complexe (c’est le cas pour la structure de la v´eg´etation), dans tous ces cas il est tr`es difficile de d´eterminer pr´ecis´ement les pixels homologues, – il existe des changements radiom´etriques entre les acquisitions : toutes les surfaces n’´etant pas lambertiennes, c’est–`a–dire que la lumi`ere n’est pas forc´ement r´efl´echie de la mˆeme fa¸con dans toutes les directions, une mˆeme surface peut pr´esenter diff´erentes radiom´etries selon l’angle de l’acquisition et ainsi compliquer la mise en correspondance, – certains d´efauts g´eom´etriques r´esiduels subsistent, mˆeme apr`es l’affinage, comme nous le montrerons dans la section 2.1. Depuis les 30 derni`eres ann´ees, de nombreux algorithmes ont ´et´e d´evelopp´es pour la reconstruction 3D de sc`enes `a partir d’imagerie terrestre, a´erienne ou spatiale. Des inventaires de ces techniques ont ´et´e r´ealis´es par Scharstein [28], Brown [29] puis plus r´ecemment par Lazaros [30]. La base de donn´ees de Middlebury 1 a notamment ´et´e tr`es utilis´ee pour r´ealiser ces inventaires. Ils permettent de comparer un grand nombre de ces techniques en termes de performance et de m´ethodologie. Les techniques pr´esent´ees ne sont cependant pas toutes transposables aux images satellites. 1. Ensemble de jeux de donn´ees correspondant `a des images st´er´eoscopiques accompagn´ees de v´erit´es terrain mis `a disposition des utilisateurs pour tester des algorithmes de mise en correspondance. Le contexte et les images sont cependant ´eloign´es de notre probl´ematique de reconstruction 3D par imagerie satellite en milieu urbain. 24CHAPITRE 1. ETUDES BIBLIOGRAPHIQUES ET STRAT ´ EGIE ADOPT ´ EE´ 1.2.1 Mise en correspondance d’images par m´ethode d’optimisation Pour de nombreux auteurs, la mise en correspondance d’images peut ˆetre vue comme un probl`eme de labellisation [31],[32],[33],[34] : chaque valeur de disparit´e ou d’´el´evation (alors consid´er´ee comme un label) affect´ee `a un pixel d’une image maˆıtre est d´eduite de la s´election du pixel homologue parmi plusieurs candidats dans l’image esclave. La mise en correspondance peut ainsi ˆetre r´esolue `a partir d’une m´ethode d’optimisation : l’objectif est alors de retrouver, pour chacun des pixels d’une image maˆıtre, les pixels homologues dans l’image esclave (ou dans toutes les autres images dans le cas de la multi–st´er´eoscopie). La mise en correspondance peut alors ˆetre r´ealis´ee par des m´ethodes locales d’optimisation : la recherche de primitives homologues (pixels, segments ou r´egions) est alors effectu´ee de fa¸con locale uniquement, ou bien `a travers des m´ethodes globales (ou semi–globales) selon lesquelles la mise en correspondance est r´esolue en recherchant la solution de disparit´e sur l’image enti`ere (ou des subdivisions de l’image). Ainsi, les m´ethodes de mise en correspondance peuvent ˆetre bas´ees sur les algorithmes d’optimisation que nous verrons plus en d´etails dans le chapitre 2, section 2.2.2. M´ethodes locales de mise en correspondance Les m´ethodes locales peuvent ˆetre bas´ees sur la mise en correspondance des segments ou des contours de l’image, tels que les contours de bˆatiments. Plusieurs auteurs utilisent ces contours pour aider `a la mise en correspondance radiom´etrique des images. La m´ethode propos´ee par Baillard [35] recherche les points de contours des bˆatiments sur des images a´eriennes afin d’apporter une contrainte g´eom´etrique `a la corr´elation radiom´etrique des pixels, effectu´ee dans une seconde ´etape. Zhang [36] propose, sur des images satellites, une m´ethode hybride bas´ee sur la combinaison de la mise en correspondance dense des pixels et celle des contours de l’image. Cette technique permet d’imposer une forte contrainte de r´egularisation entre les contours d´etect´es afin de garantir une surface r´eguli`ere tout en pr´eservant les discontinuit´es au niveau des contours. Ces techniques montrent des r´esultats particuli`erement int´eressants, notamment pour les zones homog`enes mais elles peuvent ˆetre sensibles `a la d´etection de contours. Les m´ethodes bas´ees 251.2. METHODES DE RESTITUTION 3D : ´ ETAT DE L’ART ´ sur les contours restent cependant peu utilis´ees `a cause des erreurs produites par la d´etection de contours et la difficult´e de retrouver les plus petites structures. Les m´ethodes les plus populaires de mise en correspondance sont g´en´eralement bas´ees sur l’intensit´e des pixels des images et la mise en correspondance dense de tous les pixels de l’image, souvent `a travers la m´ethode dite de block matching. Cette m´ethode est bas´ee sur la corr´elation d’une fenˆetre de pixels d´efinie sur l’image maˆıtre avec une fenˆetre glissante sur l’image esclave et le calcul d’un score de corr´elation. La disparit´e est ensuite ´evalu´ee `a partir du pixel ayant engendr´e le meilleur score de corr´elation (technique du winner take all) [37]. La zone de recherche est alors souvent contrainte par la ligne ´epipolaire (ou pseudo–´epipolaire dans le cas des images satellites). Ce type de m´ethode, tr`es rapide, est cependant particuli`erement sensible au bruit des images, aux diff´erences radiom´etriques ou encore aux d´efauts d’orientation r´esiduels des images lorsque la mise en correspondance est r´ealis´ee le long de l’´epipolaire seulement. R´ecemment, d’autres techniques ont ´emerg´e, bas´ees sur la mise en correspondance de zones segment´ees d’une image [38] et l’assignement d’une valeur de disparit´e `a ces zones par m´ethode d’optimisation. Ces techniques sont cependant sensibles `a toutes les erreurs de segmentation qui sont alors susceptibles de provoquer des erreurs de reconstruction 3D. M´ethodes globales ou semi–globales Les m´ethodes de reconstruction 3D les plus populaires et les plus efficaces sont aujourd’hui les m´ethodes bas´ees sur la mise en correspondance `a travers une optimisation sur l’image. Ces m´ethodes fonctionnent par le calcul d’un coˆut de mise en correspondance li´e au score de corr´elation obtenu entre les fenˆetres de pixels candidates sur chaque image (block matching), auquel s’ajoute un terme de r´egularisation. Nous d´ecrirons en d´etail cette optimisation dans le chapitre 3, section 3.1. Les diff´erences entre les nombreuses m´ethodes bas´ees sur une optimisation sont li´ees `a la mesure de similarit´e, `a la contrainte de r´egularisation et `a la m´ethode d’optimisation employ´ee. Comme nous le verrons dans le chapitre 2, section 2.2.2, de nombreuses m´ethodes d’optimisation ont ´et´e d´evelopp´ees et appliqu´ees au traitement d’images et plus particuli`erement `a la mise en 26CHAPITRE 1. ETUDES BIBLIOGRAPHIQUES ET STRAT ´ EGIE ADOPT ´ EE´ correspondance d’images. On trouve notamment les m´ethodes globales telles que le belief propagation [39], [33], ou les graph-cuts [40], [41], l’objectif est alors de retrouver, pour tous les pixels de l’image simultan´ement, une solution qui minimise une fonctionnelle d’´energie globale sur l’image. Les m´ethodes dites semi–globales [42] permettent de calculer une solution non plus sur toute l’image simultan´ement mais sur des s´equences de pixels de l’image trait´ees ind´ependamment [43]. Ces s´equences peuvent ˆetre form´ees par les lignes [34] de l’image ou bien par les lignes, colonnes et toutes les directions interm´ediaires de l’image, selon la m´ethode de Hirschmuller [ ¨ 31] ou Pierrot-Deseilligny [32] ou encore par un graphe s´electionn´e dans l’image comme le propose Veksler [44]. Les r´esultats obtenus sur chaque s´equence de l’image sont ensuite fusionn´es afin d’obtenir la solution semi–globale. Nous verrons dans la section 2.2.3 que la m´ethode de reconstruction que nous avons s´electionn´ee est bas´ee sur ce type d’optimisation semi–globale et r´esolue par programmation dynamique `a l’image des m´ethodes propos´ees par Hirschmuller et Pierrot-Deseilligny [ ¨ 31], [32]. 1.2.2 Caract´eristiques des corr´elateurs Quelle que soit la m´ethode d’optimisation choisie, la mesure de similarit´e employ´ee pour calculer la correspondance entre les pixels ou entre les fenˆetres de pixels de chaque image (matching cost), est un point important pour s´electionner les pixels homologues. Une ´etude des diff´erentes mesures de la litt´erature a ´et´e r´ealis´ee par Scharstein et Szeliski [28], puis Hirschmuller [ ¨ 45]. Les mesures les plus utilis´ees sont : – la somme des diff´erences radiom´etriques au carr´e (Sum of Absolute Differences ou SAD), – la somme des diff´erences radiom´etriques absolues (Sum of Squared Differences ou SSD), – le normalized cross correlation coefficient (ou NCC). De nombreuses autres mesures de similarit´e sont propos´ees dans la litt´erature. Birchfield [46] propose une mesure de ressemblance robuste `a l’´echantillonnage pixellique des images : au lieu de comparer deux fenˆetres de pixels d´ecal´ees par un nombre entier de pixels, il compare chaque pixel de l’image maˆıtre avec une interpolation lin´eaire d’une fenˆetre de pixels sur l’autre 271.2. METHODES DE RESTITUTION 3D : ´ ETAT DE L’ART ´ image. Afin d’ˆetre le plus robuste possible aux diff´erences radiom´etriques provoqu´ees par la variation d’angle de prise de vue, des m´ethodes dites ”non-param´etriques” sont aussi tr`es utilis´ees. Elles consistent `a filtrer les donn´ees avant la corr´elation afin de r´eduire l’impact de ces diff´erences [37]. Le filtrage de rank, par exemple, recherche dans une fenˆetre centr´ee sur un pixel, le nombre de pixels dont la valeur est en dessous de celle du pixel consid´er´e puis remplace la valeur du pixel central par cette valeur. La correlation (r´ealis´ee avec la mesure SAD) va alors d´ependre de l’agencement des valeurs et non plus de l’intensit´e. Cependant, ce filtrage engendre une perte d’information spatiale qui r´eduit le pouvoir discriminant de la m´ethode [29]. Une variation `a ce filtrage, nomm´e le filtre census, pr´eserve la distribution spatiale de la fenˆetre en encodant le r´esultat du filtre de rank pour chaque pixel dans une chaˆıne de bytes [29]. D’autres filtrages de la fenˆetre de mise en correspondance sont utilis´es tels que le Laplacian of Gaussian ou le filtrage moyen [45]. Tous ces filtres tentent d’am´eliorer la robustesse aux conditions d’acquisition et aux erreurs de corr´elation des images car ils diminuent la sensibilit´e aux outliers des images. Ils sont majoritairement suivis d’une corr´elation par SAD. Hirschmuller [ ¨ 31] propose une mesure de similarit´e bas´ee sur la notion d’information mutuelle, r´eput´ee moins sensible au recalage et aux conditions d’illumination des images. L’information mutuelle entre deux fenˆetres de pixels est calcul´ee en additionnant l’entropie des histogrammes de chaque image puis en soustrayant l’entropie de l’histogramme joint. Hirschmuller et Szeliski [ ¨ 45] ont compar´e diff´erents coˆuts de corr´elation et leur efficacit´e pour la mise en correspondance dense des images. Ils montrent d’abord que la performance d’une fonction de coˆut d´epend avant tout de la m´ethode d’optimisation employ´ee indiquant que la fonction de coˆut a finalement un impact mod´er´e sur le r´esultat final. Cependant, ils observent que le filtrage de rank et l’information mutuelle semblent plus efficaces au niveau des discontinuit´es car ils permettent notamment une meilleure robustesse `a l’effet d’adh´erence qui conduit g´en´eralement `a la dilatation des objets de la sc`ene. Ce probl`eme, inh´erent aux m´ethodes de block matching, apparaˆıt lorsqu’il y a un saut brutal de disparit´e dans l’une des images qui ne peut ˆetre parfaitement localis´e `a l’int´erieur de la fenˆetre de corr´elation. Finalement, bien que plus performants, le filtre de rank ou l’information mutuelle n´ecessitent un temps de calcul 1,5 `a 5 fois plus important que le temps requis pour une mesure de type SAD. Cette derni`ere est la mesure impl´ement´ee dans l’outil de mise en correspondance que 28CHAPITRE 1. ETUDES BIBLIOGRAPHIQUES ET STRAT ´ EGIE ADOPT ´ EE´ nous utilisons. 1.2.3 Les strat´egies de mise en correspondance L’approche multi–r´esolution Aujourd’hui, la plupart des auteurs utilisent une approche coarse to fine ou multi–´echelle pour la g´en´eration des MNS. Cette m´ethode est bas´ee sur la corr´elation r´ealis´ee sur les images r´e–´echantillonn´ees de l’´echelle la plus grande `a la plus petite. Le r´esultat obtenu pour une certaine ´echelle sert alors d’initialisation pour la corr´elation `a ´echelle suivante. Le grand avantage de cette technique est un important gain de temps [31], [32]. Cependant, Szintsev [40] montre que de tels algorithmes ont tendance `a flouter les bords de bˆatiments car lors de l’agr´egation des pixels d’une fenˆetre de corr´elation, des pixels appartenant `a deux surfaces diff´erentes sont m´elang´es aux ´echelles les plus grandes et les discontinuit´es sont plus difficilement retrouv´ees. Des erreurs peuvent alors se propager `a toute la pyramide d’images. Certains auteurs proposent des fenˆetres de corr´elation adaptatives au niveau des zones de fortes discontinuit´es [47]. Sizintsev [40] et Pierrot-Deseilligny [32] proposent l’´equivalent d’un filtrage morphologique `a chaque niveau de la pyramide d’images en utilisant la fenˆetre de corr´elation comme ´el´ement structurant afin de simuler une fenˆetre adaptative pouvant se d´eplacer autour de la discontinuit´e qui a ´et´e calcul´ee au niveau sup´erieur de la pyramide, augmentant la pr´ecision au niveau de ces zones de discontinuit´es. Cet algorithme est d´ecrit par P´enard et al.[48] et est impl´ement´e dans l’outil de mise en correspondance que nous avons s´electionn´e. La prise en compte des occlusions L’un des points les plus sensibles de la mise en correspondance r´eside dans la pr´esence des zones d’occlusion sur les images st´er´eoscopiques. Elles correspondent `a des zones observ´ees sur une des deux images seulement et pour lesquelles il est impossible de retrouver les pixels homologues (ces zones sont souvent appel´ees demi–occlusion ou half–occlusion dans la litt´erature car l’occlusion n’est pr´esente que sur une des deux images). Ces zones se situent aux abords 291.2. METHODES DE RESTITUTION 3D : ´ ETAT DE L’ART ´ des bˆatiments et ont une taille variable en fonction de l’angle d’incidence de l’acquisition de l’image. Or, pour la st´er´eoscopie, les angles d’incidence peuvent ˆetre tr`es importants (jusqu’`a 30˚pour les images WorldView) cr´eant des zones d’occlusion de taille importante dans l’image. Ces derni`eres ann´ees, de nombreux auteurs se sont int´eress´es `a ce sujet. Brown [29] d´efinit trois classes d’algorithmes prenant en compte les occlusions : ceux qui d´etectent les occlusions (g´en´eralement apr`es le calcul de la disparit´e), ceux qui sont plus robustes aux zones d’occlusion grˆace aux fonctions de coˆut impl´ement´ees et enfin ceux qui mod´elisent les zones d’occlusion lors de la mise en correspondance. Les m´ethodes les plus simples pour la d´etection des zones d’occlusion sont bas´ees sur la d´etection des discontinuit´es dans l’image. Fua [49] et Qingxiong [33] calculent deux cartes de disparit´e en inversant les rˆoles maˆıtre et esclave des images `a chaque fois. Les disparit´es dont les valeurs sont trop ´eloign´ees entre elles pour le mˆeme point sont alors consid´er´ees comme des occlusions. Cette m´ethode dite de back matching est aujourd’hui impl´ement´ee dans de nombreux algorithmes [29]. Elle est cependant longue en temps de calcul et peut g´en´erer de tr`es nombreuses zones dites d’occlusion qui sont en r´ealit´e dues `a des diff´erences d’illumination, des zones homog`enes ou plus g´en´eralement des zones de mauvaise corr´elation sur l’une des deux cartes de disparit´e. Egnal [50] compare cinq approches de d´etection des zones d’occlusion bas´ees sur : – l’analyse de l’histogramme des disparit´es dans une fenˆetre de disparit´e, – les variations du coefficient de corr´elation, – le double calcul de la disparit´e `a partir de chacune des images, – l’analyse de la contrainte d’ordre des disparit´es (pas forc´ement respect´ee lors d’une occlusion), – les discontinuit´es de la disparit´e. Ce dernier algorithme, ainsi que l’algorithme de double calcul de disparit´e apparaissent comme les plus prometteurs. Cependant, leur efficacit´e semble d´ependre du paysage en pr´esence (la position de l’occlusion, la pr´esence d’objets fins, etc...). De plus, il n’y a pas eu d’´etude concernant la performance de ces algorithmes en fonction de la m´ethode d’optimisation appliqu´ee. Les m´ethodes r´eduisant la sensibilit´e aux zones d’occlusion correspondent souvent `a 30CHAPITRE 1. ETUDES BIBLIOGRAPHIQUES ET STRAT ´ EGIE ADOPT ´ EE´ l’adaptation de la mesure de similarit´e en fonction de ce probl`eme. Chambon [51] utilise deux mesures combin´ees : le zero mean normalized cross correlation coefficient et le smooth median absolute deviation, afin d’am´eliorer la robustesse envers ces zones. Les filtrages de rank et census propos´es par Zabih [37] permettent aussi une certaine robustesse aux outliers et donc souvent aux erreurs parfois ponctuelles g´en´er´ees par les zones d’occlusion (lorsque l’angle d’incidence reste faible). Enfin, d’autres m´ethodes passent par l’utilisation de fenˆetres adaptatives en fonction du degr´e de confiance de la corr´elation, le but est d’optimiser les r´esultats de la corr´elation pr`es des zones d’occlusion [29]. Les m´ethodes mod´elisant les zones d’occlusion, c’est–`a–dire permettant leur localisation en fonction du voisinage, int`egrent les zones d’occlusion directement dans la recherche de la disparit´e en cr´eant des fonctions de coˆut sp´ecifiques `a ces zones. Belhumeur [52] a impl´ement´e un mod`ele complexe de fonction de coˆut incluant des termes pour les surfaces lisses, les limites d’objets et les pentes. Bobick et Intille [34] associent un coˆut avec les zones d’occlusion qu’ils r´eduisent ou augmentent en fonction de l’orientation des contours de bˆatiments et donc de celle de la zone d’occlusion. L’´etude comparative de Egnal [50] ne consid`ere que des m´ethodes de d´etection des zones d’occlusion. A notre connaissance, aucune ´etude ne permet de comparer les diff´er ` entes techniques cit´ees pour la prise en compte de ces zones (d´etection - sensibilit´e - mod´elisation). Cependant, les m´ethodes les plus efficaces, rapides et faciles `a impl´ementer sont vraisemblablement les m´ethodes de d´etection des occlusions, mˆeme si elles n´ecessitent g´en´eralement un double calcul de la disparit´e ou un post–traitement des cartes de disparit´e g´en´er´ees. Les m´ethodes r´eduisant la sensibilit´e aux occlusions montrent certaines performances mais ne permettent pas la localisation des occlusions et peuvent donc engendrer des erreurs dans le MNS, erreurs qui se propagent g´en´eralement ensuite dans la d´etection des changements de la sc`ene. Au contraire, les m´ethodes de mod´elisation s’av`erent tr`es performantes pour la localisation mais elles sont particuli`erement difficiles `a impl´ementer. Dans la chaˆıne de traitements d´evelopp´ee, nous avons choisi une m´ethode de d´etection des zones d’occlusion appliqu´ee apr`es le calcul des cartes d’´el´evation par mise en correspondance. Cet 311.2. METHODES DE RESTITUTION 3D : ´ ETAT DE L’ART ´ algorithme, bas´e sur des contraintes g´eom´etriques au niveau des discontinuit´es de l’image sera d´ecrit dans le chapitre 3, section 3.2. Les g´eom´etries de mise en correspondance La g´eom´etrie de mise en correspondance correspond `a la technique choisie pour la recherche des pixels homologues entre les images st´er´eoscopiques. Selon le nombre d’images disponibles et leur pr´ecision d’orientation, plusieurs g´eom´etries sont possibles. Classiquement, cette recherche est bas´ee sur la g´eom´etrie ´epipolaire (ou pseudo–´epipolaire dans le cas des images satellites) comme repr´esent´e sur la figure 1.1(a). La recherche d’un pixel de l’image maˆıtre est effectu´ee le long de la ligne ´epipolaire correspondante sur l’image esclave. Une recherche bi–dimensionnelle (transversale `a l’´epipolaire) permet d’ˆetre plus robuste aux erreurs r´esiduelles dans les mod`eles g´eom´etriques des images. Cette technique, encore tr`es r´epandue, n´ecessite cependant un r´e–´echantillonnage ´epipolaire des images. La seconde g´eom´etrie, tr`es classique aujourd’hui, est la g´eom´etrie image (ou faisceaux), illustr´ee en figure 1.1(b). Le principe est la recherche du pixel homologue d’une image maˆıtre sur l’image esclave en localisant celui–ci grˆace aux mod`eles g´eom´etriques des images (affin´es pr´ealablement) et pour chaque altitude d´efinie dans un rep`ere terrain [36], [32]. Une fois le pixel localis´e sur l’image esclave, il est aussi possible d’effectuer la recherche selon une seconde dimension, dans l’espace image afin d’ˆetre, l`a encore, plus robuste aux erreurs g´eom´etriques des images. Enfin, la g´eom´etrie dite terrain, repr´esent´ee en figure 1.1(c), permet de retrouver, pour chaque altitude z d’un point d´efini dans un rep`ere terrain, les pixels de chaque image qui correspondent `a ce point terrain grˆace aux mod`eles g´eom´etriques des images. Un score de corr´elation est alors calcul´e entre les fenˆetres de pixels d´efinies autour des pixels s´electionn´es. L’altitude finale choisie est alors celle qui maximise le score de corr´elation entre les fenˆetres de pixels s´electionn´ees. Cette technique permet le calcul direct de la carte de profondeur sur une grille terrain r´eguli`ere, quel que soit le nombre d’images utilis´e. De plus, toutes les images sont consid´er´ees ensemble, sans notion de maˆıtre et esclave, permettant un processus sym´etrique. Si cette technique se 32CHAPITRE 1. ETUDES BIBLIOGRAPHIQUES ET STRAT ´ EGIE ADOPT ´ EE´ montre peu robuste aux erreurs g´eom´etriques des images ou aux occlusions lorsque seulement deux images sont utilis´ees, elle s’av`ere tr`es avantageuse lorsque le nombre d’images augmente car elle est alors plus pr´ecise (notamment pour la prise en compte des zones d’occlusion) et plus rapide qu’une mise en correspondance d’images deux `a deux. Ces diff´erentes g´eom´etries de mise en correspondance sont d´ecrites en d´etail, avec leurs avantages et inconv´enients, dans l’article de P´enard et al [48]. Les auteurs montrent notamment que la g´eom´etrie image pr´esente g´en´eralement de meilleurs r´esultats que la g´eom´etrie terrain, c’est pourquoi cette derni`ere a ´et´e s´electionn´ee pour la mise en correspondance dans notre chaˆıne de traitements. 1.2.4 Les outils de restitution 3D existants Aujourd’hui, de nombreux outils de reconstruction 3D existent sous forme de packages commerciaux ou open–source. On notera, parmi les packages commerciaux les plus populaires, Socet–set de BAE Systems, Erdas Imagine de Intergraph, Sat–PP de 4D Ixplorer, OrthoEngine de PCI Geomatics, Smart3DCapture de Acute3D ou encore Photo Modeler. Les performances de ces outils sont g´en´eralement bonnes mais le param´etrage peut ˆetre difficile surtout lorsque les codes sources ne sont pas accessibles, ce qui les rend peu exploitables dans un cadre de recherche. D’autre outils existent tels que PMVS, de Furukawa et Ponce [53], OpenCV library (contenant les librairies pour la mise en correspondance selon l’algorithme de Hirschmuller ¨ [31]) ou encore MicMac d´evelopp´e par l’IGN [32]. Ces outils sont libres de t´el´echargement mais parmi eux, seul MicMac est un outil totalement open–source. Le t´el´echargement des codes sources de MicMac permet en effet le contrˆole de tous les param`etres et la maˆıtrise interne compl`ete du code. Ses diff´erentes options, qui autorisent la mise en correspondance selon toutes les g´eom´etries cit´ees pr´ec´edemment, l’utilisation de plusieurs m´ethodes d’optimisation et d’interpolation et l’option multi–´echelle en font un outil particuli`erement adaptable `a tous les contextes (g´eologique ou urbain, en imagerie spatiale ou terrestre). C’est pourquoi l’outil MicMac est donc celui que nous avons s´electionn´e pour la mise en correspondance des images st´er´eoscopiques. 331.2. METHODES DE RESTITUTION 3D : ´ ETAT DE L’ART ´ (a) Sch´ema de principe de la g´eom´etrie ´epipolaire (b) Sch´ema de principe de la g´eom´etrie image (c) Sch´ema de principe de la g´eom´etrie terrain Figure 1.1 – Sch´ema de principe des diff´erentes g´eom´etries de mise en correspondance. 34CHAPITRE 1. ETUDES BIBLIOGRAPHIQUES ET STRAT ´ EGIE ADOPT ´ EE´ 1.3 Description g´en´erale de la chaˆıne de traitements d´evelopp´ee L’objectif fix´e lors du travail de th`ese est de d´evelopper une m´ethode totalement automatique pour la d´etection des changements d’´el´evation `a partir d’images satellites st´er´eoscopiques. Nous nous pla¸cons dans un contexte urbain, le but ´etant de retrouver tous les changements du bˆati (construction, destruction ou modifications d’infrastructure). Les contraintes du syst`eme sont alors les suivantes : – le syst`eme doit ˆetre enti`erement automatique de l’acquisition des images `a la g´en´eration des cartes de changements, – la m´ethode doit ˆetre applicable quels que soient le ou les capteurs tr`es haute r´esolution utilis´es, qu’ils soient satellites ou a´eriens, – les param`etres doivent ˆetre suffisamment g´en´eriques afin que la m´ethode soit applicable dans des contextes vari´es (milieu urbain, montagneux, d´esertique). Afin de r´epondre au mieux `a ces contraintes, une chaˆıne compl`ete et innovante de traitements `a ´et´e d´evelopp´ee. Cette chaˆıne, illustr´ee en figure 1.2 comprend trois ´etapes majeures : la premi`ere ´etape (entour´ee en trait plein sur la figure) correspond `a la spatio–triangulation ou recalage simultan´e de toutes les images disponibles, sans consid´eration de leur date d’acquisition. Cette ´etape, d´ecrite dans le chapitre 2, section 2.1, sera r´ealis´ee `a l’aide d’outils existants permettant la recherche de points de liaison entre les images et l’affinage des mod`eles g´eom´etriques des images. La seconde ´etape (entour´ee en pointill´es fins) permet la g´en´eration de MNS pr´ecis pour chaque date. Cette ´etape, d´ecrite dans le chapitre 3 consiste d’abord en une mise en correspondance des images `a l’int´erieur de chaque couple, chaque image ´etant successivement maˆıtre et esclave. Cette mise en correspondance, r´ealis´ee `a l’aide de l’outil MicMac et par une m´ethode d’optimisation (voir section 3.1), est suivie par le basculement des MNS g´en´er´es sur une grille r´eguli`ere commune (voir section 3.2) puis par la fusion de tous les MNS obtenus avec un algorithme de labellisation par optimisation (voir section 3.3). Ces deux derni`eres ´etapes sont issues de d´eveloppements r´ealis´es au cours de la th`ese et 351.3. DESCRIPTION GEN´ ERALE DE LA CHA ´ ˆINE DE TRAITEMENTS DEVELOPP ´ EE´ Figure 1.2 – Illustration des diff´erentes ´etapes de la chaˆıne globale de traitements. permettent de prendre en compte toutes les contraintes et sources d’erreurs inh´erentes aux images satellites afin de g´en´erer des MNS pr´ecis en vue de la d´etection des changements d’´el´evation. 36CHAPITRE 1. ETUDES BIBLIOGRAPHIQUES ET STRAT ´ EGIE ADOPT ´ EE´ Ainsi, la derni`ere ´etape (entour´ee en pointill´es larges) a pour objectif l’analyse de la diff´erence des MNS afin de mettre en ´evidence les changements d’´el´evation les plus pertinents de la sc`ene selon une m´ethode que nous avons d´evelopp´ee. Cette m´ethode, d´ecrite dans le chapitre 4, est bas´ee sur la classification des pixels du MNS diff´erentiel `a travers un algorithme de labellisation par optimisation. Nous noterons finalement que trois ´etapes de calcul r´ealis´ees dans cette chaˆıne de traitements sont bas´ees sur une labellisation des pixels de l’image r´esolue par une m´ethode d’optimisation. Un algorithme ”noyau” a ainsi ´et´e d´evelopp´e au cours de th`ese et a ´et´e adapt´e pour la r´esolution de chacun de ces probl`emes. Cet algorithme est d´ecrit dans le chapitre 2, section 2.2.3. 1.4 Capteurs utilis´es et donn´ees d’entr´ee Au cours de ce travail, de nombreux jeux de donn´ees ont ´et´e utilis´es afin d’exp´erimenter les m´ethodes sur diff´erentes sc`enes et d’en analyser les r´esultats. Seules des images panchromatiques provenant de capteurs tr`es haute r´esolution spatiale ont ´et´e employ´es : Ikonos, dont les images obtenues ´etaient r´e–´echantillonn´ees `a 1 m de r´esolution spatiale, WorldView-1 et 2, produisant des images `a environ 60 cm de r´esolution spatiale et Pl´eiades, produisant des images `a environ 70 cm de r´esolution spatiale. Le tableau 1.1 r´esume toutes les donn´ees utilis´ees. Bien que les images multispectrales puissent apporter des informations permettant de filtrer les cartes de d´etection de changements obtenues `a la mani`ere de Tian [8], nous avons choisi de d´evelopper notre chaˆıne de traitements `a partir des images panchromatiques uniquement. Tous ces capteurs sont de type push–broom : barrettes lin´eaires de d´etecteurs permettant l’acquisition de chaque ligne de l’image successivement grˆace au d´efilement du paysage dans le plan focal. Quatre zones g´eographiques ont ´et´e ´etudi´ees pour les diff´erentes ´etapes de calcul de la m´ethode, en fonction des donn´ees disponibles. Pour l’illustration de la chaˆıne compl`ete, i.e. de la g´en´eration des MNS `a la d´etection de changements, la ville de Phoenix, en Arizona (Etats-Unis) a ´et´e analys´ee entre les dates de 2008 et 2011. ´ Cette zone permet d’´evaluer les performances de la m´ethode lors de l’analyse de l’´evolution ty- 371.4. CAPTEURS UTILISES ET DONN ´ EES D’ENTR ´ EE´ Capteur Date R´esolution Angle Angle b/h d’acquisition spatiale (m) d’azimut (◦ ) d’´el´evation (◦ ) Donn´ees acquise sur la ville de Phoenix (Etats-Unis) WorldView-1 2008-10-06 0,59 51,5 64,1 0,67 WorldView-1 2008-10-06 0,56 141,6 67,6 WorldView-1 2011-04-28 0,62 156,2 59,6 0,70 WorldView-1 2011-04-28 0,56 65,0 67,6 Donn´ees acquise sur la ville de Toulouse (France) Pl´eiades 2012-05-07 0,70 115,5 64,7 0,54 Pl´eiades 2012-05-07 0,70 88,9 64,6 0,55 Pl´eiades 2012-05-07 0,70 102,2 65,2 0,54 Donn´ees acquise sur la ville de Chistchurch (Nouvelle Z´elande) WorldView-1 2009-09-16 0,66 85,7 57,2 0,66 WorldView-1 2009-09-16 0,58 66,3 23,7 WorldView-2 2011-08-30 0,60 199,5 57,3 0,66 WorldView-2 2011-08-30 0,47 289,0 87,2 Donn´ees acquise sur la ville de Sendai (Japon) Ikonos 2010-12-11 1 (reech.) 64,9 64,65 0,79 Ikonos 2010-12-11 1 (reech.) 149,15 60,66 Ikonos 2011-08-13 1 (reech.) 314,4 61,14 0,72 Ikonos 2011-08-13 1 (reech.) 250,96 56,66 Table 1.1 – M´etadonn´ees des images utilis´ees lors des diff´erentes ´etudes. pique d’un milieu urbain. Dans ce mˆeme contexte, la ville de Christchurch, en Nouvelle Z´elande a aussi ´et´e ´etudi´ee. L’int´erˆet de cette zone est la pr´esence de deux acquisitions LiDAR effectu´ees au mˆeme endroit et `a des dates proches des acquisitions satellitaires. Cette zone permet ainsi une quantification pr´ecise des performances des algorithmes mis en place. Les donn´ees Pl´eiades, acquises sur la ville de Toulouse selon le mode tri–st´er´eoscopique, permettent d’illustrer l’int´erˆet de l’algorithme de g´en´eration des MNS pour le traitement d’acquisitions multi–st´er´eoscopiques. 38CHAPITRE 1. ETUDES BIBLIOGRAPHIQUES ET STRAT ´ EGIE ADOPT ´ EE´ La zone de Sendai (Japon), permet enfin de tester de la chaˆıne de traitements sur un cas concret de catastrophe majeure. En effet, les donn´ees disponibles ont ´et´e acquises avant et apr`es le s´eisme suivi par le tsunami qui a ravag´e la cˆote de Sendai le 11 mars 2011. 1.5 Conclusion Ce chapitre pr´esente tout d’abord de nombreuses m´ethodes de d´etection de changements `a partir d’images satellites ou a´eriennes. Cependant, si les m´ethodes classiques bas´ees sur la comparaison radiom´etrique des images montrent de bonnes performances, elles ne s’av`erent pas toujours efficaces du fait des nombreuses fausses alarmes qu’elles g´en`erent et sont souvent difficilement automatisables car trop d’a priori sur les changements sont n´ecessaires. Les m´ethodes bas´ees sur l’exploitation de l’information d’´el´evation de la sc`ene paraissent alors mieux adapt´ees, notamment au contexte urbain. Bien que ces m´ethodes n´ecessitent aussi des informations a priori ou contextuelles, l’analyse de la diff´erence entre deux cartes d’´el´evation montre de tr`es bon r´esultats. Dans cet objectif, de nombreuses m´ethodes de restitution 3D ont ´et´e ´etudi´ees afin de s´electionner une strat´egie suffisamment robuste pour la mise en correspondance d’images satellites et la g´en´eration de cartes d’´el´evation. Nous avons vu que de nombreuses techniques permettent de prendre en compte les erreurs de recalage des images ou bien les zones d’occlusion, ces deux points ´etant particuli`erement importants dans le cas des images satellites. La chaˆıne de traitements r´ealis´ee lors de cette th`ese est ainsi bas´ee sur la g´en´eration de MNS `a travers plusieurs ´etapes de calcul permettant d’am´eliorer leur pr´ecision grˆace `a une technique de mise en correspondance s´electionn´ee pour ses performances et son adaptabilit´e, suivi par des post–traitements permettant une meilleur prise en compte des erreurs d’occlusion. La m´ethode de d´etection des changements d´evelopp´ee est, quant `a elle, une m´ethode innovante car totalement automatique permettant la d´etection des changements pertinents du bˆati grˆace `a la seule utilisation de l’information d’´el´evation produite aux dates d’int´erˆet. 391.5. CONCLUSION 40Chapitre 2 Outils et m´ethodes n´ecessaires `a la chaˆıne de traitements Ce chapitre pr´esente les outils de calcul, utilis´es en l’´etat ou bien impl´ement´es, n´ecessaires `a la chaˆıne de traitements d´evelopp´ee. La premi`ere ´etape de la chaˆıne de traitements consiste en un recalage simultan´e de toutes les donn´ees disponibles aux dates t1 et t2. Cette ´etape est bas´ee sur des outils existants pour la recherche de points de liaison entre les images et l’affinage des mod`eles g´eom´etriques des images par ajustement de faisceaux. Cette ´etape est essentielle pour la g´en´eration des MNS et le calcul des MNS diff´erentiels, calculs qui n´ecessitent une grande pr´ecision de recalage entre les images. Apr`es un bref rappel de l’objectif et du principe de la spatio–triangulation des images, nous verrons quelques r´esultats obtenus apr`es ce calcul et nous discuterons des erreurs r´esiduelles g´en´er´ees. Nous verrons ensuite dans ce chapitre l’outil central n´ecessaire aux ´etapes de calcul r´ealis´ees dans notre chaˆıne de traitements. Cet outil est un algorithme d’optimisation semi-globale et permettant la r´esolution de probl`emes de labellisation. Nous montrerons tout d’abord comment cet algorithme a ´et´e s´electionn´e parmi les nombreux algorithmes d’optimisation existants puis nous d´etaillerons son impl´ementation telle que nous l’avons r´ealis´ee. 412.1. CO–LOCALISATION DES IMAGES : UTILISATION D’UN OUTIL DE SPATIO–TRIANGULATION 2.1 Co–localisation des images : utilisation d’un outil de spatio– triangulation 2.1.1 Contexte et objectif Les capteurs tr`es haute r´esolution tels que les capteurs Pl´eiades, WorldView, Ikonos, GeoEye ou OrbView sont particuli`erement agiles, facilitant les acquisitions st´er´eoscopiques. Les images peuvent alors ˆetre prises par vue lat´erale (across track) ou plus commun´ement en mode avant–arri`ere le long de la trace du satellite (along track), permettant des acquisitions quasi–simultan´ees. Ces diff´erentes conditions d’acquisition sont le point cl´e de la st´er´eoscopie. Cependant, les mod`eles g´eom´etriques fournis avec les images et contenant les informations sur la position du satellite, son orientation et sa direction de vis´ee lors de l’acquisition, ne sont pas suffisamment pr´ecis. En effet, pour des satellites tr`es haute r´esolution tels que Pl´eiades, il faudrait atteindre une pr´ecision de restitution des angles de vis´ee au microm`etre pour que l’orientation du satellite soit connue `a l’´echelle du pixel. Ceci n’est aujourd’hui pas r´ealisable par les syst`emes de contrˆole [54]. La figure 2.1 pr´esente les angles correspondant aux variations d’attitudes du satellite appel´es roulis αR, tangage αT et lacet αL. Ainsi, lorsque les mod`eles g´eom´etriques natifs associ´es aux images sont exploit´es, on observe que les pixels homologues (ou points de liaison) appartenant `a diff´erentes images (du mˆeme couple st´er´eoscopique ou non) et repr´esentant un mˆeme point physique ne correspondent pas aux mˆemes coordonn´ees terrain. On observe des biais variables selon les satellites et la pr´ecision de leurs mod`eles g´eom´etriques : DigitalGlobe annonce une pr´ecision de localisation absolue au sol de 15 m pour QuickBird, 9 m pour Ikonos et 5 m pour WorldView tandis que Pl´eiades est annonc´e `a 12 m de pr´ecision [54]. Or, la mise en correspondance des images n´ecessite une pr´ecision subpixellique (typiquement inf´erieure `a 0,5 m) de localisation relative des images. En effet, la technique employ´ee, d´etaill´ee au chapitre 3, est bas´ee sur le parcours des lignes de vis´ee de chacun des pixels. De mˆeme, lors de l’´etape de d´etection de changements, d´ecrite dans le chapitre 4, le calcul de la diff´erence des 42CHAPITRE 2. OUTILS ET METHODES N ´ ECESSAIRES ´ A LA CHA ` ˆINE DE TRAITEMENTS MNS pixel `a pixel est particuli`erement sensible au recalage des MNS, lui–mˆeme directement li´e au recalage des images d’origine. Afin de s’assurer de la pr´ecision de co–localisation des images puis des MNS, nous avons choisi de proc´eder, avant tout autre traitement, `a une spatio–triangulation [55] (plus connue sous le nom d’a´ero–triangulation pour les images a´eriennes). 2.1.2 Principe de la spatio–triangulation Le principe de la spatio–triangulation est de corriger les erreurs des mod`eles g´eom´etriques des images afin que les lignes de vis´ee provenant des pixels homologues de chacune des images se croisent au mieux sur les mˆemes coordonn´ees au sol [56]. Cet affinage des mod`eles peut ˆetre r´ealis´e de fa¸con absolue au sol si des points d’appuis sont disponibles (points rep´er´es dans l’image et de coordonn´ees terrain connues) ou relative, c’est–`a–dire que les images sont alors seulement co–localis´ees entre elles. Le principe de la spatio–triangulation est illustr´e dans les figures 2.2(a) et 2.2(b) qui pr´esentent l’orientation des images avant et apr`es cette ´etape. Figure 2.1 – Illustration du syst`eme d’acquisition en barrette push–broom et des angles d’attitude du satellite. 432.1. CO–LOCALISATION DES IMAGES : UTILISATION D’UN OUTIL DE SPATIO–TRIANGULATION (a) Orientation et localisation des images avant spatio– triangulation. (b) Orientation et localisation des images apr`es spatio– triangulation. Figure 2.2 – Illustration du r´esultat de la spatio–triangulation pour le recalage des images. Selon les donn´ees fournies avec les images satellites, les mod`eles g´eom´etriques peuvent correspondre au mod`ele physique des images ou aux fractions rationnelles (RPC). Le mod`ele physique est un mod`ele explicite, calcul´e en prenant en compte les param`etres de prise de vue du syst`eme `a chaque instant et d´efini par les ´eph´em´erides du satellite (orbitographie, attitude et orientation du satellite `a chaque instant). Les fractions rationnelles permettent de mod´eliser la ligne de vis´ee de chacun des pixels afin de retrouver les matrices de passage des coordonn´ees images aux coordonn´ees terrain pour n’importe quelle altitude [56]. En g´eom´etrie image, on d´efinit par mod`ele direct, le mod`ele physique ou analytique, permettant le calcul des coordonn´ees terrain d’un point `a partir de ses coordonn´ees image (et d’une altitude). Le mod`ele inverse permet de calculer les coordonn´ees image d’un point `a partir de ses coordonn´ees terrain. Ainsi, la spatio–triangulation consiste `a affiner les mod`eles g´eom´etriques des images, et plus particuli`erement les angles d’attitude : roulis, tangage et lacet, en leur introduisant un mod`ele 44CHAPITRE 2. OUTILS ET METHODES N ´ ECESSAIRES ´ A LA CHA ` ˆINE DE TRAITEMENTS d’erreur. L’objectif est de corriger ces mod`eles afin de garantir la crois´ee des faisceaux provenant d’un jeu de points de liaison ou d’appuis. Cet objectif peut ˆetre atteint si les mod`eles d’erreurs introduits, sur l’instrument, l’orientation ou l’attitude du satellite, sont en ad´equation avec la r´ealit´e [55]. Lorsque seuls des points de liaison sont disponibles, des contraintes de localisation absolue sont pos´ees grˆace `a des a priori afin d’´eviter que le mod`ele ne diverge. Les points d’appuis ´etant des donn´ees rares voire inexistantes, toutes les images de la chaˆıne de traitements propos´ee sont recal´ees entre elles de fa¸con relative. Une premi`ere ´etape, avant l’affinage des mod`eles, consiste `a rechercher des points de liaison entre les images. Cette ´etape est r´ealis´ee grˆace `a un outil de corr´elation d’images d´evelopp´e au CEA 1 . Cet outil permet la corr´elation non dense des images deux `a deux afin de d´eterminer les points homologues les plus fiables (c’est–`a–dire ceux montrant le meilleur score de corr´elation). Seuls quelques centaines de points, bien r´epartis sur chaque image, sont n´ecessaires pour affiner les mod`eles. L’´etape d’ajustement de faisceaux est ensuite effectu´ee `a l’aide du logiciel Euclidium, d´evelopp´e par le CNES et l’IGN. Ces outils de corr´elation et d’ajustement de faisceaux, d´ej`a existants et valid´es, fonctionnent de fa¸con totalement automatique pour tous type de capteurs. Cependant, il apparaˆıt que mˆeme apr`es l’affinage des mod`eles g´eom´etriques des images, des erreurs r´esiduelles persistent. Ces erreurs sont g´en´eralement dues `a des variations temporelles d’orientation du capteur lors de la prise de vue, impossibles `a mod´eliser et `a corriger par la spatio–triangulation du fait du faible nombre de degr´es de libert´e du mod`ele d’erreur (biais et d´erive temporelle d’attitude). Un autre d´efaut, inh´erent aux traitements sol, peut aussi repr´esenter une source d’erreur non corrigeable par la spatio–triangulation : c’est le d´efaut provenant de la simulation en “capteur parfait” des images. En effet, l’acquisition des images satellites est r´ealis´ee par segments, illustr´es en figure 2.1. Lorsque l’image est produite, les segments de chaque ligne sont fusionn´es afin de simuler un capteur lin´eaire monolitique. Or, des d´efauts de calibration sur les distances inter–barrettes peuvent subsister et engendrer des erreurs dans les mod`eles g´eom´etriques des images (RPC ou mod`eles physiques), erreurs qui ne peuvent ˆetre mod´elis´ees et corrig´ees par la 1. Cet outil a ´et´e d´evelopp´e en interne et aucune publication n’y fait r´ef´erence. 452.1. CO–LOCALISATION DES IMAGES : UTILISATION D’UN OUTIL DE SPATIO–TRIANGULATION (a) D´efauts r´esiduels d’une image OrbView-3 apr`es spatio–triangulation. (b) D´efauts r´esiduels d’une image WorldView-1 apr`es spatio–triangulation. Figure 2.3 – Illustration du r´esultat de la spatio–triangulation pour le recalage des images (´echelle en pixels). spatio–triangulation car elle n’autorise pas de degr´es de libert´e sur le plan focal. Figure 2.4 – Illustration du calcul des r´esidus de la spatio–triangulation. Dans le but de quantifier ces erreurs, les distances r´esiduelles entre les faisceaux provenant de points homologues trouv´es entre les deux images d’un couple OrbView-3 et d’un couple WorldView-1 ont ´et´e calcul´ees (figures 2.3(a) et 2.3(b)). 46CHAPITRE 2. OUTILS ET METHODES N ´ ECESSAIRES ´ A LA CHA ` ˆINE DE TRAITEMENTS La figure 2.4 permet d’illustrer le calcul de cette distance pour deux points homologues M i1 et M i2, appartenant `a deux images diff´erentes I1 et I2. Le recalage des images n’´etant pas parfait, les faisceaux provenant de ces points ne se croisent pas. La plus petite distance entre ces faisceaux est repr´esent´ee par la distance entre les points M et M′ dans l’espace terrain. Projet´ee en g´eom´etrie image, cette distance correspond `a la distance d entre les points M i2 (point homologue `a M i1) et M i′ 2 (point retrouv´e par corr´elation ´epipolaire entre les deux images). Cette distance, calcul´ee apr`es le recalage des images, repr´esente l’erreur r´esiduelle de la spatio–triangulation. Cette distance a ´et´e calcul´ee apr`es l’affinage des mod`eles g´eom´etriques d’un couple d’images OrbView–3 et d’un couple d’images WorldView–1. Les figures 2.3(a) et 2.3(b) illustrent les r´esultats obtenus pour ces deux capteurs. On observe sur la figure 2.3(b) des artefacts lin´eaires tr`es marqu´es formant des discontinuit´es dans l’image (rep´er´es par les fl`eches rouges en haut de la figure 2.3(b)), d’amplitude d’environ 0,7 pixel pour les images WorldView-1. Ces d´efauts correspondent aux d´efauts capteurs non corrig´es des images (ils ne sont pas visibles sur la figure 2.3(a)). Les d´efauts d’attitude sont, quant `a eux, visibles sous formes d’ondulations quasi horizontales et tr`es marqu´ees sur la figure 2.3(a) et horizontales sur la figure 2.3(b). Ces d´efauts sont rep´er´es par les fl`eches noires `a gauche de chacune des figures. Ces r´esidus, d’ordre pixellique pour les images OrbView-3 mettent en ´evidence des erreurs d’orientation trop importantes sur ce capteur pour notre ´etude, tandis que les erreurs d’ordre subpixelliques du capteur WorldView-1 sont acceptables et autorisent la mise en correspondance des images pour la g´en´eration fiable de MNS. 2.2 Outil pour la r´esolution de probl`emes de labellisation 2.2.1 Trois probl`emes de labellisation A l’int´erieur de cette chaˆıne de traitements, trois ´etapes d ` e calcul sont bas´ees sur la r´esolution d’un probl`eme de labellisation (voir section 1.3). C’est–`a–dire qu’`a chacune de ces 472.2. OUTIL POUR LA RESOLUTION DE PROBL ´ EMES DE LABELLISATION ` ´etapes de calcul, la valeur de chaque pixel de l’image de sortie r´esulte d’un choix r´ealis´e entre plusieurs valeurs ou attributs possibles selon des crit`eres calcul´es appel´es attaches aux donn´ees. Dans une premi`ere ´etape de calcul, lors de la mise en correspondance des images, le pixel homologue `a un pixel de l’image maˆıtre est choisi parmi plusieurs candidats en fonction d’un crit`ere de similarit´e. La s´election du pixel homologue permet alors de d´eduire l’´el´evation du point terrain repr´esent´e par ces pixels homologues (voir chapitre 3, section 3.1). Dans un second calcul, qui correspond `a la fusion des MNS, les pixels du MNS final r´esultent du choix entre les diff´erentes valeurs d’´el´evation propos´ees par chacun des pixels des MNS `a fusionner. Ce choix est r´ealis´e en fonction d’un crit`ere de confiance calcul´e pour chacun des pixels des diff´erents MNS (voir chapitre 3, section 3.3). Enfin, lors de la d´etection des changements, c’est en fonction de la valeur du pixel dans la diff´erence de MNS qu’un label de changement (positif, n´egatif ou non changement) est attribu´e au pixel de la carte finale des changements (voir chapitre 4). Ces probl´ematiques, bien que tr`es diff´erentes en termes de labels et d’objectifs, ont pour caract´eristique commune que toutes les solutions ne sont pas ´equiprobables. En effet, `a crit`eres d’attache aux donn´ees identiques, on privil´egie les solutions r´eguli`eres. Cette r´egularit´e se traduit par le fait que, dans une image, la valeur d’un pixel n’est pas ind´ependante des valeurs des pixels qui l’entourent, de mˆeme, le label affect´e `a un pixel d´epend des labels affect´es aux pixels voisins. L’ensemble des labels peut ainsi ˆetre consid´er´e comme un champ de Markov al´eatoire [28, 42, 57, 58] et la probabilit´e d’affectation d’un label `a un pixel d´epend alors de la probabilit´e conjointe de l’appartenance du label `a ce pixel et aux pixels de son voisinage. Le probl`eme de labellisation n’est alors plus consid´er´e comme un probl`eme local mais peut ˆetre r´esolu de fa¸con globale sur l’image. Toutes les solutions de labellisation possibles sur l’image ne sont pas ´equiprobables. Cependant, il existe une solution optimale qui correspond a priori `a une solution r´eguli`ere sur l’image qui limite les variations de hautes fr´equences, correspondant g´en´eralement `a du bruit. Cette formulation se traduit alors par l’introduction d’une contrainte de r´egularisation spatiale dans le calcul de labellisation des pixels. Chacune des labellisations rencontr´ees dans la chaˆıne de traitements est alors r´esolue `a 48CHAPITRE 2. OUTILS ET METHODES N ´ ECESSAIRES ´ A LA CHA ` ˆINE DE TRAITEMENTS partir d’une mˆeme m´ethode bas´ee sur la minimisation d’une fonctionnelle d’´energie globale E sur l’ensemble des pixels x d’une image X et permettant d’assigner un label n j appartenant au jeu de labels N = {n 1 , n2 , ..., nz}, (z ´etant le nombre total de labels) `a chacun des pixels x ∈ X selon la fonction suivante : E(n) = X x∈X Cdata(n(x)) + X (x′)∈V (x) Creg(n(x), n(x ′ )). (2.1) Cdata(n(x)) repr´esente le coˆut pour l’affectation du label n au pixel x en fonction d’un crit`ere de probabilit´e d’appartenance `a ce label. Creg(n(x), n(x ′ )) correspond au coˆut pour l’affectation d’un des labels n `a deux pixels voisins x et x ′ . Ce terme traduit la contrainte de r´egularisation. 2.2.2 Les m´ethodes d’optimisation existantes De nombreuses approches existent pour r´esoudre la minimisation d’une fonctionnelle d’´energie sur une image. Ce sujet a notamment ´et´e largement ´etudi´e pour r´esoudre le probl`eme de la mise en correspondance d’images [28], comme nous l’avons vu dans le chapitre 1, section 1.2, mais cette approche est aussi tr`es utilis´ee en restauration d’image ou en segmentation [12, 58]. Nous rappelons que les algorithmes de minimisation d’´energie peuvent ˆetre divis´es en deux cat´egories : les algorithmes permettant de retrouver une solution exacte ou approch´ee en consid´erant toute l’image en une seule fois, et les algorithmes qui partitionnent l’image en une s´erie de probl`emes plus simples `a r´esoudre (g´en´eralement en consid´erant l’image par s´equences de pixels en une dimension) et qui permettent de retrouver des solutions minimales localement qui sont ensuite fusionn´ees afin d’obtenir le r´esultat global [43]. Ce sont les m´ethodes semi–globales [42]. Les m´ethodes globales Les m´ethodes les plus populaires d’optimisation globale sont celles bas´ees sur les graph-cuts [59], [58] et [41], ou encore le belief propagation [43, 60]. Ces m´ethodes sont parmi les plus efficaces comme l’a d´emontr´e Scharstein [28], `a partir du benchmark Middelbury [61], puis 492.2. OUTIL POUR LA RESOLUTION DE PROBL ´ EMES DE LABELLISATION ` (a) Illustration de la construction des graph–cuts. Figure provenant de l’article de Roy et Cox [59] (b) Illustration du graphe 3D et de la surface de disparit´e. Figure 2.5 – Illustration de la m´ethode des graph–cuts appliqu´ee au calcul de la disparit´e. Schindler [42] sur des probl`emes de classification d’images. D’autres m´ethodes, comme les recuits–simul´es (simulated annealing), d´evelopp´es par Geman [57], sont souvent jug´ees moins efficaces et trop lourdes en temps de calcul, notamment parce que les labels de chacun des pixels sont recalcul´es `a chaque it´eration afin de retrouver un minimum global [58]. Formulation du probl`eme de mise en correspondance `a travers la th´eorie du Maximum-flow. L’id´ee des graph–cuts est de ramener le probl`eme de minimisation d’´energie `a un probl`eme de coupe minimale dans un graphe, ce qui, d’apr`es le th´eor`eme de Ford-Fulkerson [62], revient `a trouver le flot maximal (ou MaxFlow) `a travers un graphe, probl`eme pour lequel il existe des algorithmes de calcul exacts et efficaces. Dans le cas d’un probl`eme de mise en correspondance, Roy et Cox [59] ont d´evelopp´e un algorithme permettant de retrouver globalement et en une seule fois la surface de disparit´e (repr´esent´ee en rouge sur la figure 2.5) pour un couple d’images st´er´eoscopiques. Avec cet algorithme d’optimisation, et afin de satisfaire une contrainte de r´egularisation spatiale dans toutes les directions, la mise en correspondance ne peut pas se faire selon une seule dimension `a travers la mise en correspondance classique des lignes ´epipolaires. 50CHAPITRE 2. OUTILS ET METHODES N ´ ECESSAIRES ´ A LA CHA ` ˆINE DE TRAITEMENTS L’id´ee est alors de construire un graphe 3D (x, y, z), x et y repr´esentent la dimension image (ligne,colonne) et z repr´esente les hypoth`eses d’´el´evation donn´ees par la recherche sur les parallaxes. A ce graphe sont ajout´es une source ` S et un puits T permettant de former le graphe G = (V, E) avec V l’ensemble des sommets du graphe, c’est `a dire la grille 3D form´ee entre S et T, et E l’ensemble des arˆetes qui connectent tous les sommets de la grille (repr´esent´ee sur la figure 2.5(b)). A chaque arˆete est affect´e un coˆut (ou une capacit´e de flot) : – les arrˆetes verticales (nomm´ees D sur la figure 2.5(b)) sont les arˆetes dites de disparit´e et correspondent directement au coˆut de mise en correspondance : un coefficient de corr´elation ´elev´e entre deux pixels va permettre la saturation de l’arˆete correspondante par le flot maximal et inversement, – les arˆetes horizontales (nomm´ees O sur la figure 2.5(b)) sont les arˆetes d’occlusion (O) qui contrˆolent la r´egularisation et permettent de limiter les variations de la surface de disparit´e selon le poids de la r´egularisation, – les arˆetes connect´ees `a la source ou au puits sont, quant `a elles, de capacit´e infinie. Toute solution Z = f(x) repr´esente une coupe minimale qui divise le graphe selon deux ensembles : – Z > f(x), c’est l’ensemble appel´e background dans la figure 2.5(a), – Z < f(x), c’est l’ensemble appel´e foreground dans la figure 2.5(a). On montre que le coˆut de la coupe minimale d´efinie pr´ec´edemment est calcul´e exactement par la formule pr´ec´edente (´equation 2.1). Ce probl`eme peut donc ˆetre formul´e comme un probl`eme de flot maximum pour lequel Cox et Roy proposent une solution optimis´ee [59]. Kolmogorov [63] a cependant montr´e que l’application des graph–cuts est soumise `a une condition dite de “sous–modularit´e” de la fonction d’´energie de r´egularisation. En effet, les poids des arˆetes du graphe doivent ˆetre forc´ement positifs de la source vers le puits afin que l’algorithme converge, cette condition se traduit par l’´equation suivante : Creg(0, 0) + Creg(1, 1) ≤ Creg(0, 1) + Creg(1, 0). (2.2) Avec Creg le coˆut d’affectation de deux labels binaires (0 ou 1) `a deux pixels voisins. Si l’´energie 512.2. OUTIL POUR LA RESOLUTION DE PROBL ´ EMES DE LABELLISATION ` de r´egularisation ne satisfait pas ces contraintes, la solution optimale ne peut ˆetre garantie. Cette contrainte peut limiter la gamme de fonctions de coˆut possible pour la r´esolution d’un probl`eme d’optimisation par graph–cuts. Autres approches d’optimisation globale Un autre algorithme, largement utilis´e pour l’optimisation globale est le belief propagation [39], [33] ou la version loopy belief propagation propos´ee par Felzenszwalb [43]. Cette m´ethode fonctionne par passage de “messages” entre le graphe d´efini par les quatre connexes d’un pixel. Chaque message est un vecteur de dimension ´egale au nombre de labels en jeu et fonction du coˆut minimum obtenu pour chaque label, consid´erant leurs probabilit´es sur les quatre connexes du pixel. Cependant, Kolmogorov montre que la convergence de cet algorithme n’est pas toujours assur´ee [64, 65] et la solution trouv´ee apparaˆıt souvent de plus haute ´energie que les graph–cuts et donc non optimale. De plus, le temps de calcul n´ecessaire reste particuli`erement long [64], bien que la variante de Felzenszwalb permette de r´eduire ce temps [43]. Une m´ethode proche du belief propagation a ´et´e r´ecemment introduite, le tree-reweighted message passing [65]. Cette m´ethode apparaˆıt moins gourmande en ´energie puisque les ”messages” ne sont plus pass´es entre un graphe form´e des quatre connexes mais `a travers un graphe form´e par un arbre. Kolmogorov [65] et Szeliski [64] ont montr´e que cette m´ethode ´etait plus efficace que les graph–cuts sur les jeux de test de Middelbury mais reste n´eanmoins plus lente que les graph–cuts. De mani`ere g´en´erale, les graph–cuts et autres m´ethodes d’optimisation globales n´ecessitent de tr`es grandes capacit´es m´emoire (notamment lorsque plusieurs labels sont en jeu) et sont alors difficilement applicables sur des images compl`etes de grande emprise telles que les images satellites tr`es haute r´esolution [42]. Les m´ethodes semi–globales D’autres proc´ed´es permettent la r´esolution de probl`emes d’optimisation, non pas en recherchant une solution exacte ou approch´ee au minimum global sur toute l’image simultan´ement mais en fonctionnant it´erativement sur la recherche de minimas locaux sur l’image `a partir de 52CHAPITRE 2. OUTILS ET METHODES N ´ ECESSAIRES ´ A LA CHA ` ˆINE DE TRAITEMENTS Figure 2.6 – Illustration d’un effet de streaking le long des lignes d’une image trait´ee par programmation dynamique. fonctions qui permettent une approximation de la fonction globale. L’avantage de ces m´ethodes est de r´eduire largement la complexit´e des probl`emes en les divisant en sous–probl`emes plus faciles et rapides `a r´esoudre [43]. La m´ethode la plus populaire est la programmation dynamique. Cette m´ethode est aujourd’hui appliqu´ee dans de nombreux domaines de traitement d’image [31, 34, 44, 66]. Appliqu´ee `a une image, l’id´ee de base de la programmation dynamique consiste `a optimiser une fonction d’´energie sur chacune des lignes ind´ependamment [34]. L’inconv´enient majeur de cette m´ethode est le manque de coh´erence entre chacune des lignes, cr´eant des effets de streaking ou artefacts lin´eaires, le long des lignes dans le r´esultat lorsqu’un label a tendance `a se propager le long de la ligne du fait de la r´egularisation spatiale. Ce ph´enom`ene est illustr´e sur le MNS pr´esent´e en figure 2.6 o`u la propagation de valeurs d’´el´evation le long des lignes, sans coh´erence avec les colonnes, est fortement marqu´ee. Afin de limiter ce probl`eme, plusieurs approches ont ´et´e d´evelopp´ees : Bobick et Intille [34], dans un contexte de mise en correspondance d’images, d´etectent pr´ealablement les contours de l’image et adaptent les coˆuts le long de ces contours afin d’aligner les disparit´es dans l’image finale. La difficult´e r´eside alors dans la d´etection pr´ecise des contours de l’image `a prendre en 532.2. OUTIL POUR LA RESOLUTION DE PROBL ´ EMES DE LABELLISATION ` compte. Ohta [67] proc`ede d’abord `a une recherche des disparit´es selon les lignes puis utilise les r´esultats obtenus afin de contraindre une recherche selon les colonnes de l’image. Les r´esultats obtenus sont alors additionn´es pour s´electionner la disparit´e finale de chaque pixel. Veksler [44] applique la programmation dynamique sur des structures en arbre, choisies en fonction des contours les plus importants de l’image. Cet algorithme permet alors de minimiser l’´energie selon deux dimensions afin de se rapprocher au mieux d’une optimisation globale. L’inconv´enient de cette m´ethode r´eside ici dans le choix des structures d’arbre utilis´ees et de leur initialisation. Hirschmuller [ ¨ 31] applique la programmation dynamique selon plusieurs directions sur l’image, ind´ependamment les unes des autres, puis additionne les coˆuts obtenus pour chaque label afin de calculer le coˆut final de chaque disparit´e pour chacun des pixels de l’image. Cet algorithme permet le calcul rapide de l’optimisation et prend en compte tout le voisinage des pixels puisque toutes les directions de l’image sont calcul´ees. Cette optimisation quasi globale est appel´ee le semi–global labelling [31, 42]. Schindler, [42] compare plusieurs m´ethodes de classification d’images bas´ees sur (i) un algorithme de graph–cuts tel que celui propos´e par Boykov [58], (ii) un algorithme de semi–global labelling bas´e sur la m´ethode de Hirschmuller [ ¨ 31] et (iii) des m´ethodes de classification locale, sans contrainte spatiale. Il apparaˆıt d’abord que les m´ethodes d’optimisation globales sont plus efficaces que les m´ethodes de classification locales : les r´esultats obtenus montrent une pr´ecision g´en´erale de classification de 70,5% `a 80% pour une m´ethode locale, 72% `a 80% pour une m´ethode semi-globale et de 72,5% `a 85% pour une m´ethode de graph–cuts. Cependant, si les m´ethodes graph–cuts pr´esentent la meilleure efficacit´e, Schindler observe que les m´ethodes de semi–global labelling montrent des performances tr`es proches tout en maintenant un temps de calcul inf´erieur, ce qui en fait une bonne alternative aux graph–cuts pour des labellisations sur de nombreuses ´etiquettes et une large emprise. Le semi–global labelling apparaˆıt donc comme une m´ethode d’optimisation suffisamment performante pour des questions de labellisation et tr`es adapt´ee dans un contexte de traitement 54CHAPITRE 2. OUTILS ET METHODES N ´ ECESSAIRES ´ A LA CHA ` ˆINE DE TRAITEMENTS rapide et automatique puisque ses performances en termes de temps de calcul et d’allocation m´emoire sont sup´erieures `a celles des m´ethodes globales. Ce type de m´ethode a donc ´et´e s´electionn´e pour la r´esolution des probl`emes de labellisation rencontr´es dans notre chaˆıne de traitements. 2.2.3 Description de l’algorithme s´electionn´e L’algorithme de programmation dynamique utilis´e dans ce travail est bas´e sur la programmation dynamique sur une s´equence, algorithme d´ecrit par Felzenszwalb [66]. Une s´equence correspond alors `a un sous–ensemble de pixels de l’image. Afin de r´eduire les effets de streaking de la programmation dynamique, les minimisations sont effectu´ees ind´ependamment sur plusieurs directions de l’image : lignes, colonnes, diagonales et directions interm´ediaires, telles que repr´esent´ees sur la figure 2.7 et selon la technique propos´ee par Hirschmuller et Pierrot-Deseilligny [ ¨ 31, 32]. Tous les coˆuts, obtenus par label pour chaque pixel et selon chaque direction sont ensuite fusionn´es afin d’obtenir la solution semi–globale sur toute l’image. De cette fa¸con, et en parall´elisant les calculs dans chaque direction, l’optimisation est effectu´ee efficacement selon un temps polynomial. Figure 2.7 – Illustration du parcours des diff´erentes directions pour la programmation dynamique afin de calculer le coˆut ”semi–global”. 552.2. OUTIL POUR LA RESOLUTION DE PROBL ´ EMES DE LABELLISATION ` Algorithme de minimisation selon une direction Soit une s´equence lin´eaire de pixels X = {x0, x1, ..., xi , ..., xf } le long d’une direction de l’image. Le but est d’assigner `a chacun des pixels xi un label n(xi) appartenant au jeu de labels N = {n 1 , n2 , ..., nz}, z ´etant le nombre total de labels. La solution S de labellisation sur la s´equence de x0 `a xf correspond alors `a la solution qui minimise les coˆuts de labellisation en chaque pixel de la s´equence, selon l’´equation : S(n(x0), ..., n(xf )) = Xxf x0 Cdata(x, n(xi)) + λ xX f−1 x0 Creg((xi , n(xi)),(xi+1, n(xi+1)). (2.3) Cdata(x, n(xi)) repr´esente la fonction d’attache au donn´ees, c’est la probabilit´e que le label n corresponde au pixel xi de la s´equence. Creg((xi , n(xi)),(xi+1, n(xi+1)) repr´esente le coˆut de r´egularisation entre deux pixels cons´ecutifs xi et xi+1 sur la s´equence et portant un label n. Cette fonction de r´egularisation est souvent calcul´ee selon le mod`ele de Potts [68] dans lequel le coˆut affect´e au label n est ´egal `a 0 si les deux labels cons´ecutifs sont identiques et 1 sinon (´equation 2.4). Creg((xi , n(xi)),(xi+1, n(xi+1))) =    0 if n(xi) = n(xi+1), 1 if n(xi) 6= n(xi+1). (2.4) Ce mod`ele est utilis´e lors de l’´etape de d´etection des changements (chapitre 4) mais nous verrons que les ´etapes de mise en correspondance (chapitre 3 section 3.1) et de fusion des MNS (section 3.3) n´ecessitent des fonctions de r´egularisation plus complexes. La variable scalaire λ repr´esente, quant `a elle, le poids accord´e `a la contrainte de r´egularisation : plus cette valeur est importante, plus la contrainte spatiale sera renforc´ee, c’est–`a–dire que le coˆut d’affectation d’un label, diff´erent du label pr´ec´edent, sera augment´e. En pratique, nous verrons que cette variable est d´efinie en fonction du r´esultat recherch´e qui doit ˆetre plus ou moins r´egulier selon le contexte. Le principe de l’algorithme est de calculer le meilleur chemin passant par chaque couple pixel–label (xi , nj ), selon un parcours de la s´equence de pixels de x0 `a xf . L’objectif est de 56CHAPITRE 2. OUTILS ET METHODES N ´ ECESSAIRES ´ A LA CHA ` ˆINE DE TRAITEMENTS Figure 2.8 – Illustration du calcul des coˆuts obtenus pour chaque label et chaque pixel de la s´equence selon l’´equation 2.5. Les fl`eches vertes repr´esentent chacun des coˆuts calcul´es, les fl`eches rouges repr´esentent le coˆut le plus faible obtenu entre un label d’un pixel et tous les labels du pixel pr´ec´edent. calculer, pour un couple pixel–label (xi , nj ), le coˆut pour le couple suivant (xi+1, nj ) (figure 2.8). Soit A(x0, nj ) le coˆut initial du label n j au pixel x0 de la position 0 est d´efini par : A(x0, nj ) = Cdata(x0, n). (2.5) A la position ` xi de la s´equence, le coˆut A(xi , nj ) pour lui assigner un label n j se calcule selon l’´equation suivante : A(xi , nj ) = Cdata(xi , nj ) + min nk  A(xi−1, nk ) + λCreg(n j , nk )  , (2.6) n j et n k deux labels appartenant au jeu de labels N. Ainsi, pour chacun des labels n j (j ∈ [1 : z]) propos´es `a chacun des pixels xi , le coˆut obtenu correspond `a tous les coˆuts cumul´es du chemin de x0 `a xi qui minimisent le coˆut en n j . Dans la figure 2.8, les fl`eches vertes repr´esentent tous les chemins possibles pour parvenir `a chacun des labels. Le chemin amenant le coˆut minimal en chaque label de chaque pixel est repr´esent´e par les fl`eches rouges. Une fois tous ces coˆuts calcul´es, le meilleur chemin de x0 `a xf correspond au chemin ayant 572.2. OUTIL POUR LA RESOLUTION DE PROBL ´ EMES DE LABELLISATION ` amen´e le label de coˆut minimal n j∗ xf au dernier pixel xf , tel que : n ∗ (xf ) = argmin n A(xf , n(xf ))). (2.7) La matrice finale contenant la somme des coˆuts de chacun des labels et pour chaque pixel est alors parcourue afin de retrouver le label amenant le coˆut minimal sur chaque pixel. G´en´eralisation de l’algorithme `a plusieurs directions Le coˆut semi–global est d´efini comme le coˆut de chaque label obtenu `a travers le sous–graphe d´etermin´e par toutes les directions calcul´ees dans l’image. Selon cette d´efinition, la minimisation est appliqu´ee sur des s´equences lin´eaires de pixels dans toutes les directions impos´ees et de fa¸con ind´ependante entre les s´equences comme illustr´e sur la figure 2.7. Les matrices de coˆuts, obtenues pour chaque pixel et selon chaque direction sont ensuite fusionn´ees afin d’obtenir un coˆut final pour chaque label et pour chaque pixel, tel que le d´ecrivent Hirschmuller et Pierrot-Deseilligny [ ¨ 31, 32]. Or, les coˆuts obtenus dans les matrices ne peuvent ˆetre directement comparables entre eux puisque les coˆuts sont cumul´es lors des parcours de chaque s´equence de pixels qui ne poss`edent pas forc´ement le mˆeme nombre de pixels. Afin de rendre possible cette comparaison de coˆut entre les labels d’un mˆeme pixel sur les diff´erentes directions, il est n´ecessaire de les recalculer selon une mˆeme ´echelle. Cette op´eration se traduit par le calcul de la distance `a la solution optimale de labellisation, C(nx) d sur toutes les s´equences obtenues, selon la formule : C(xi , n(xi))d = C(xi , n(xi)) − C(xi , n∗ (xi)). (2.8) Ces distances `a la solution optimale par label peuvent alors ˆetre additionn´ees pour chaque label et selon chacune des directions. Le label final n d∗ choisi pour chaque pixel xi et dans toutes les directions est finalement celui ayant le coˆut minimal, tel que : n d∗ (xi) = argmin n X dirs C(xi , n(xi))d . (2.9) Le nombre de directions peut avoir un impact important sur le r´esultat final. Cependant, `a partir d’un certain nombre de directions trait´ees, les diff´erences entre les r´esultats diminuent fortement, elles sont presque nulles au del`a de 12 directions. Or, le nombre de directions trait´ees 58CHAPITRE 2. OUTILS ET METHODES N ´ ECESSAIRES ´ A LA CHA ` ˆINE DE TRAITEMENTS augmente sensiblement le temps de calcul de la m´ethode, il est donc n´ecessaire de trouver le nombre de directions ad´equat afin d’obtenir le meilleur ´equilibre entre temps de calcul et pr´ecision du r´esultat. Dans la plupart des probl`emes trait´es dans ces travaux, un nombre de 8 ou 12 directions sera utilis´e. Une comparaison des r´esultats obtenus avec 1, 4, 8, 12 et 16 directions est pr´esent´ee dans le chapitre 5. 2.3 Conclusion La spatio–triangulation permet l’affinage des mod`eles g´eom´etriques des images afin de corriger les erreurs d’orientation et d’attitude dues `a une restitution imparfaite des informations sur la position du satellite, son orientation et sa direction de vis´ee lors de l’acquisition. L’objectif de cette op´eration, r´ealis´ee simultan´ement sur toutes les images disponibles, est de permettre un recalage relatif pr´ecis entre toutes ces donn´ees. Cette ´etape est r´ealis´ee `a l’aide d’outils existants permettant la recherche fiable de points homologues puis l’ajustement des faisceaux. Cependant, nous avons montr´e que des d´efauts, de capteur ou d’attitude, persistent dans les mod`eles affin´es. Ces erreurs peuvent n´eanmoins ˆetre acceptables lorsqu’elles restent sub– pixelliques comme c’est le cas pour les images WorldView-1 que nous utilisons. Le second outil que nous avons d´etaill´e, au cours de ce chapitre, est un algorithme de programmation dynamique que nous avons impl´ement´e et adapt´e pour le calcul de trois des traitements de la chaˆıne d´evelopp´ee au cours de cette th`ese : la mise en correspondance, la fusion des MNS et la d´etection des changements d’´el´evation. Cet algorithme de programmation dynamique a ´et´e s´electionn´e pour sa facilit´e d’impl´ementation par rapport `a d’autres m´ethodes d’optimisation globales classiques telles que les graph–cuts mais aussi et surtout pour la rapidit´e d’ex´ecution des calculs et son efficacit´e reconnue. 592.3. CONCLUSION 60Chapitre 3 G´en´eration de Mod`eles Num´eriques de Surface sur une grille r´eguli`ere `a partir de couples st´er´eoscopiques Comme nous l’avons vu dans le chapitre 1, de nombreuses techniques existent pour la g´en´eration de MNS en fonction des contraintes associ´ees aux donn´ees d’entr´ee et des sources d’erreurs `a prendre en compte. La strat´egie que nous avons choisie est bas´ee sur trois ´etapes de calcul. La premi`ere ´etape consiste en une mise en correspondance des images `a l’aide d’un outil existant, MicMac, et dont les options que nous utilisons seront d´ecrites dans une premi`ere partie de ce chapitre. Puis nous d´etaillerons la m´ethode que nous avons d´evelopp´ee afin de basculer les MNS sur une grille r´eguli`ere terrain tout en localisant et filtrant certaines erreurs de mise en correspondance. Dans une troisi`eme partie, nous pr´esenterons certaines erreurs de mise en correspondance non corrig´ees, notamment dues aux zones d’occlusion de l’image esclave et nous d´ecrirons la m´ethode que nous avons d´evelopp´ee pour r´esoudre ce probl`eme et am´eliorer la pr´ecision des MNS obtenus. Cette m´ethode est bas´ee sur la fusion des deux MNS g´en´er´es `a partir du mˆeme couple d’images st´er´eoscopiques par inversion des rˆoles maˆıtre et esclave des images. Nous d´etaillerons notamment l’algorithme permettant cette fusion `a travers la labellisation des pixels du MNS final, contrˆol´ee par une contrainte de r´egularisation spatiale. 613.1. DESCRIPTION DE LA STRATEGIE DE MISE EN CORRESPONDANCE ADOPT ´ EE´ Puis, dans une derni`ere partie, nous analyserons les r´esultats obtenus `a travers la comparaison des MNS g´en´er´es avec une v´erit´e LiDAR, acquise `a une date proche de nos donn´ees satellites, sur la ville de Christchurch en Nouvelle-Z´elande. 3.1 Description de la strat´egie de mise en correspondance adopt´ee 3.1.1 Technique de mise en correspondance La m´ethode de mise en correspondance d’images que nous avons s´electionn´ee est bas´ee sur la g´eom´etrie image (repr´esent´ee figure 1.1(b), p34). Comme cit´e dans le chapitre 1, section 1.2.3, cette g´eom´etrie ne n´ecessite pas le r´e–´echantillonnage complet de l’image en g´eom´etrie ´epipolaire et se montre plus robuste que la g´eom´etrie terrain aux erreurs g´eom´etriques des images ainsi qu’aux zones d’occlusion lorsque seulement deux images sont en jeu [48]. Cette robustesse est un avantage certain pour notre chaˆıne de traitements dans laquelle toute erreur de MNS (planim´etrique ou altim´etrique) peut avoir des cons´equences sur la carte finale des changements de la sc`ene. Le principe de la g´eom´etrie image r´eside dans le parcours des lignes de vis´ee des pixels dont la mod´elisation a ´et´e affin´ee lors de l’´etape de spatio-triangulation (chapitre 2,section 2.1). Pour chacun des pixels de l’image maˆıtre (g´en´eralement l’image la plus au nadir) et de coordonn´ees xM(lM, cM), la ligne de vis´ee est parcourue de fa¸con discr`ete avec un pas altim´etrique d´etermin´e par l’utilisateur. Chaque pas d´efinit un point P dans l’espace, de coordonn´ees (Px, Py, Pz). La ligne de vis´ee de l’image esclave passant par ce point de l’espace est alors d´etermin´ee `a partir du mod`ele g´eom´etrique inverse de l’image esclave et le pixel correspondant dans cette image, de coordonn´ee (lE, cE) est localis´e. La corr´elation entre les pixels est alors effectu´ee `a travers des fenˆetres de corr´elation centr´ees sur chacun des pixels de l’image maˆıtre et de l’image esclave et de taille sp´ecifi´ee par l’utilisateur (ici une fenˆetre de rayon R = 2 pixels est utilis´ee). L’imagette de l’image esclave est alors r´e–´echantillonn´ee dans la g´eom´etrie de l’imagette maˆıtre. Lorsque le pixel homologue est s´electionn´e, on obtient alors, pour le pixel consid´er´e dans l’image maˆıtre, une valeur directe de 62CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ l’altitude du point. Toutefois, la g´en´eration de MNS dans la g´eom´etrie de l’image maˆıtre pr´esente un inconv´enient. En effet, puisque la recherche de l’´el´evation est r´ealis´ee `a partir de l’image maˆıtre, la carte des ´el´evations est g´en´er´ee dans la g´eom´etrie de l’image maˆıtre et il est alors n´ecessaire de les r´e–´echantillonner dans une nouvelle grille g´eographique r´eguli`ere afin que les MNS produits `a partir de diff´erentes images maˆıtre soient comparables entre eux pixel `a pixel. 3.1.2 Fonction d’optimisation et r´egularisation Parmi les m´ethodes d’optimisation impl´ement´ees dans l’outil MicMac, nous avons choisi une m´ethode bas´ee sur la programmation dynamique, notamment pour des raisons de temps de calcul (cf. chapitre 2 section 2.2.2). L’´equation g´en´erale de cette optimisation est pr´esent´ee en section 2.2.3 Lors de la mise en correspondance, les labels correspondent `a toutes les ´el´evations z test´ees et le coˆut d’attache aux donn´ees Cdata(xMi , z(xMi )), c’est–`a–dire le coˆut pour assigner une ´el´evation z `a un pixel xMi de l’image maˆıtre, est une fonction du score de corr´elation obtenu entre le pixel de l’image maˆıtre xMi et le pixel homologue trouv´e dans l’image esclave xE. Il est ici calcul´e avec le NCC (´equation 3.1) : Cdata(xMi , z(xMi )) = NCC(xMi , xE). (3.1) Soit deux vecteurs uM et uE constitu´es de l’ensemble des q valeurs des vignettes de corr´elation centr´ees en xMi et en xE, respectivement. p ds w est une fonction de pond´eration, w ∈ [1 : q]. Pour chaque vecteur uM de valeurs Uw, on pose : R(uM) = Pq w=1 p ds P w Uw n w=1 p ds w (3.2) La d´efinition est identique pour chaque vecteur VE de valeurs Vw. Le coefficient de corr´elation s’´ecrit : NCC(uM, vE) = R(uMvM) − R(uM)R(vE) q (R(u 2 M) − R(uM) 2) ∗ (R(v 2 E ) − R(vE) 2) (3.3) Lors de la g´en´eration de MNS, la r´egularisation a pour but de limiter les variations d’altitude. Ainsi, cette fonction est calcul´ee `a partir de la diff´erence d’altitude obtenue entre deux pixels 633.1. DESCRIPTION DE LA STRATEGIE DE MISE EN CORRESPONDANCE ADOPT ´ EE´ cons´ecutifs de l’image maˆıtre xMi et xMi−1 selon l’´equation suivante : Creg((xMi , z(xMi )),(xMi−1 , z(xMi−1 ))) = f(| z(xMi) − z(xMi−1) |). (3.4) (a) Carte des ´el´evations d’un couple WorldView-1, r´egularisation λ = 0.02. (b) Carte des ´el´evations d’un couple WorldView-1, r´egularisation λ = 1.0. Figure 3.1 – Illustration de l’impact de la r´egularisation pour la g´en´eration de MNS. Le param`etre de r´egularisation est un param`etre particuli`erement important dans la g´en´e- 64CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ ration des MNS puisqu’il contrˆole les variations d’altitudes des MNS g´en´er´es. En effet, plus sa valeur est importante, plus le poids de la r´egularisation spatiale sera important, faisant disparaˆıtre les structures les plus fines (et le bruit) du MNS et flouter les bords de bˆatiments. Ce ph´enom`ene est bien repr´esent´e en figure 3.1(b). Inversement, une faible r´egularisation va permettre d’observer les variations plus fines d’altitude (et ainsi de s´eparer les bˆatiments tr`es proches les uns des autres), mais en augmentant la pr´esence de bruit (figure 3.1(a)). Ainsi, en milieu urbain, milieu dans lequel les discontinuit´es et les variations fines d’´el´evation doivent ˆetre respect´ees afin d’obtenir un MNS pr´ecis au niveau des bˆatiments, la r´egularisation est d´efinie `a une valeur faible, de mˆeme pour un milieu fortement escarp´e. Inversement, en milieu rural, d´esertique ou vallonn´e, la r´egularisation peut ˆetre largement augment´ee. L’outil MicMac permet d’adapter ais´ement ce param`etre qui fait ainsi partie des param`etres de notre chaˆıne de traitements. 3.1.3 Prise en compte des zones d’occlusion La m´ethode choisie pour la prise en compte des zones d’occlusion est bas´ee sur une localisation post–traitement, apr`es la g´en´eration de la carte d’´el´evation de la sc`ene en g´eom´etrie image. En effet, lors du r´e–´echantillonnage de la carte des ´el´evations sur une grille r´eguli`ere, ´etape dite de “basculement”, nous avons d´evelopp´e une m´ethode permettant de localiser ces zones en fonction des angles d’acquisition de l’image maˆıtre et de la pr´esence de discontinuit´es. Le basculement a ainsi un rˆole majeur dans la g´en´eration du MNS final. 3.2 D´eveloppement d’une m´ethode de basculement des MNS sur une grille g´eographique r´eguli`ere Comme pr´ecis´e pr´ec´edemment, selon cette technique de mise en correspondance, la carte des ´el´evations est calcul´ee dans la g´eom´etrie de l’image maˆıtre. Afin de comparer des cartes d’´el´evations obtenues sur une mˆeme zone selon diff´erentes dates, diff´erents capteurs ou mˆeme selon diff´erentes techniques de g´en´eration de MNS, il est n´ecessaire de r´e–´echantillonner ces cartes d’´el´evations selon une grille terrain r´eguli`ere et commune `a toutes les cartes produites. C’est l’´etape de basculement. G´en´eralement, ce r´e–´echantillonnage est effectu´e par interpolation des points de la grille 653.2. DEVELOPPEMENT D’UNE M ´ ETHODE DE BASCULEMENT DES MNS SUR UNE ´ GRILLE GEOGRAPHIQUE R ´ EGULI ´ ERE ` r´eguli`ere. Ainsi, l’´el´evation de chacun des points de cette grille r´eguli`ere est interpol´ee `a partir des coordonn´ees terrain des trois points les plus proches de lui provenant de la carte des ´el´evations calcul´ee. Pour ce faire, les pixels de la grille image sont parcourus par triplets. Cette technique d’interpolation est la plus commune, notamment parce que la maille d’origine est une maille carr´ee. Le basculement que nous proposons est aussi bas´e sur une interpolation des points de la grille r´eguli`ere `a partir du nuage de points form´e par la carte des ´el´evations en g´eom´etrie image. Mais, avant chaque interpolation d’un point de la grille `a partir des points les plus proches, certaines conditions sont v´erifi´ees afin de d´eterminer si le point est valide et peut ˆetre calcul´e ou non. Ces conditions reposent sur des contraintes g´eom´etriques permettant la d´etection des fa¸cades et des zones d’occlusion et une contrainte qualitative sur le score de corr´elation obtenu lors de la mise en correspondance. Elles ont pour but de limiter les erreurs sur le MNS final produit. 3.2.1 Interpolation des points de la grille r´eguli`ere L’´etape de basculement repose sur une interpolation de l’´el´evation de chacun des points de la grille r´eguli`ere `a partir des trois points les plus proches formant un triangle autour du pixel consid´er´e, le syst`eme est illustr´e en figure 3.2. Ce triplet de point provient du nuage de points obtenu lors de la mise en correspondance et dont les coordonn´ees planim´etriques ont ´et´e calcul´ees grˆace aux mod`eles g´eom´etriques des images. Les pixels de l’espace image, consid´er´es par triplets, de coordonn´ees ligne l et colonne c tel que P I 1 = (l, c), P I 2 = (l, c+ 1) et P I 3 = (l + 1, c) correspondent alors `a des coordonn´ees x y et z dans l’espace terrain T tel que P E 1 = (x1, y1, z1), P E 2 = (x2, y2, z2) et P E 3 = (x3, y3, z3) (sommets des triangles noirs sur la figure 3.2). Si un point de la grille terrain r´eguli`ere (en rouge sur la figure 3.2) se situe `a l’int´erieur du triangle, les points de coordonn´ees P = (xP , yP , zP ) sont alors interpol´es par une interpolation lin´eaire `a partir des coordonn´ees des trois sommets du triangle P E 1 , P E 2 et P E 3 . 66CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ Figure 3.2 – Principe de parcours de la grille image maˆıtre pour l’interpolation des points de la grille r´eguli`ere. 3.2.2 Conditions au calcul de l’´el´evation d’un point Les images ayant ´et´e acquises avec un angle d’incidence pouvant ˆetre fort, deux difficult´es doivent ˆetre consid´er´ees : – les fa¸cades de bˆatiments, visibles sur l’image maˆıtre, g´en`erent plusieurs points d’´el´evations diff´erentes mais avec les mˆemes coordonn´ees planim´etriques, – les zones d’occlusion des images doivent ˆetre localis´ees afin de ne pas interpoler les points correspondants. Pour le premier cas, lors du calcul de l’´el´evation d’un point situ´e `a l’int´erieur d’un triangle d’interpolation tel que le point P de la figure 3.2, si il apparaˆıt qu’une ´el´evation a d´ej`a ´et´e d´etermin´ee `a ces mˆemes coordonn´ees planim´etriques, cela peut signifier que ce point appartient `a une fa¸cade de bˆatiment. En effet, le long d’une fa¸cade, les points poss`edent les mˆemes coordonn´ees planim´etriques mais des coordonn´ees altim´etriques diff´erentes. Dans ce cas, seul le point correspondant `a l’´el´evation maximum trouv´e doit ˆetre pris en compte, ceci afin de retrouver l’´el´evation la plus haute du bˆatiment (son toit). Cette technique de recherche de la plus haute ´el´evation d’un objet est connue sous le nom de Z-Buffer dans la litt´erature [69]. 673.2. DEVELOPPEMENT D’UNE M ´ ETHODE DE BASCULEMENT DES MNS SUR UNE ´ GRILLE GEOGRAPHIQUE R ´ EGULI ´ ERE ` Pour le second cas, les zones d’occlusion doivent ˆetre localis´ees afin de ne pas interpoler les points de ces zones ce qui entraˆınerait des erreurs. Dans ce but, nous avons mis en place une technique de d´etection des zones d’occlusion bas´ee sur leur localisation `a partir de l’analyse des angles d’acquisition (´el´evation et azimut) de l’image maˆıtre. La figure 3.3 illustre le principe de localisation utilis´e. Sur la figure 3.3, les points P E 1 , P E 2 et P E 3 repr´esentent les points dans l’espace terrain correspondant `a un triplet de pixels de l’image maˆıtre. Le point P correspond au point de la grille r´eguli`ere `a interpoler. Dans une premi`ere ´etape, les deux points du triplet de points correspondant `a l’´el´evation maximum et minimum dans le triangle sont d´etermin´es, si la diff´erence d’´el´evation Dh obtenue sur le triangle est inf´erieure `a 1 m (r´esolution altim´etrique des MNS), le point P de la grille terrain situ´e dans le triangle peut ˆetre calcul´e directement car le terrain est consid´er´e comme quasiment plat `a cet endroit. Si une diff´erence d’´el´evation plus importante est relev´ee, il est alors n´ecessaire de d´efinir si une zone d’occlusion est pr´esente `a cet endroit et quelle est son emprise afin de d´ecider si le triangle est viable pour le calcul d’un point. En premier lieu, on d´efinit le point le plus ´elev´e (P E 1 dans la figure 3.3) et le plus bas (point P E 3 ) du triplet de points. La droite DM reliant la projection de P E 1 , P E′ 1 sur le plan horizontal et le point P E 3 est calcul´ee. Cette droite repr´esente la distance au sol entre le point le plus haut et le point le plus bas. Puis, les angles d’azimut a et d’incidence i sont d´efinis pour le point P E 1 . On d´etermine alors la droite Di , projection sur le plan horizontal du vecteur d´efini dans l’espace par les angles d’azimut et d’incidence au point P E 1 . La droite Di repr´esente alors l’orientation et la longueur au sol de la zone d’occlusion. Le vecteur DM pr´ec´edemment obtenu est alors projet´e sur le vecteur Di en un vecteur Dx. Cette projection permet de situer le triplet de points consid´er´es en fonction de la zone d’occlusion, i.e si les vecteurs sont oppos´es le point peut ˆetre calcul´e car il n’y a pas de zone d’occlusion (sur l’image maˆıtre). Si les vecteurs sont dans le mˆeme sens et que Dx est plus grand que Resplani 2 , Resplani ´etant la r´esolution planim´etrique du MNS, alors le point ne peut pas ˆetre calcul´e car il 68CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ Figure 3.3 – Illustration du principe de l’interpolation d’une grille r´eguli`ere terrain `a partir des points obtenus dans la g´eom´etrie de l’image maˆıtre. se situe dans la zone d’occlusion de l’image maˆıtre. Ce principe permet la localisation rapide des zones d’occlusion qui pourront alors ˆetre prises en compte dans la suite des calculs. Enfin, une derni`ere contrainte sur le basculement consiste `a ne pas prendre en compte, dans le calcul, les pixels de la carte des ´el´evations dont le score de corr´elation final, obtenu lors de la mise en correspondance, est inf´erieur `a un certain seuil. L’objectif est ici de filtrer les points pour lesquels la corr´elation a ´echou´e, toujours afin de limiter les erreurs sur le MNS final. Ce seuil sur le score de corr´elation est d´efini ici `a 2σ, σ ´etant l’´ecart–type obtenu `a l’histogramme des scores de corr´elation. Cette valeur est g´en´eralement proche de 0, 45. La figure 3.4(b) illustre le r´esultat d’un basculement d’une carte des ´el´evations pr´esent´ee en figure 3.4(a) obtenue `a partir d’un couple d’images WorldView-1 `a 60 cm de r´esolution spatiale. Sur la carte bascul´ee, les pixels noirs repr´esentent les zones masqu´ees lors du basculement, que 693.2. DEVELOPPEMENT D’UNE M ´ ETHODE DE BASCULEMENT DES MNS SUR UNE ´ GRILLE GEOGRAPHIQUE R ´ EGULI ´ ERE ` (a) Carte des ´el´evations en g´eom´etrie image (b) Carte des ´el´evations en g´eom´etrie terrain Figure 3.4 – Illustration du r´esultat du basculement d’un MNS WorldView-1 `a partir de la carte des ´el´evations en g´eom´etrie image. 70CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ ce soit `a cause des zones d’occlusion de l’image maˆıtre ou d’un score de corr´elation trop faible. Il faut noter que lors de toutes les ´etapes suivantes de notre chaˆıne de traitements, ces points ne sont jamais interpol´es `a partir de leurs voisins. En effet, leur interpolation serait susceptible de produire des erreurs dans le MNS, erreurs pouvant se r´epercuter dans la carte finale de d´etection de changements. Cette technique de localisation des zones d’occlusion est bas´ee uniquement sur une analyse g´eom´etrique, post´erieure au calcul des ´el´evations par mise en correspondance. Son principal inconv´enient est de produire de nombreuses fausses zones d’occlusion. Ces erreurs proviennent le plus souvent d’erreurs de corr´elation dans la carte des ´el´evations originale. En effet, une erreur de corr´elation g´en`ere, par d´efinition, une ´el´evation erron´ee et donc souvent une variation d’´el´evation entre deux pixels voisins, qui ne repr´esente pas la r´ealit´e. Dans la m´ethode de d´etection des zones d’occlusion, cette variation est assimil´ee `a la pr´esence d’un bˆatiment et la zone `a proximit´e de la variation d’´el´evation est alors consid´er´ee comme une zone d’occlusion. Ainsi, de nombreux pixels du MNS bascul´es peuvent ˆetre masqu´es sans pour autant faire partie d’une zone d’occlusion. Sur des zones homog`enes de l’image, toit de bˆatiment large et lisse par exemple tel que celui du bˆatiment carr´e encercl´e dans la figure 3.4(a), on observe de nombreuses petites zones noires masqu´ees. Ces zones masqu´ees proviennent tr`es probablement de pixels dont le score de corr´elation se situait en dessous du seuil fix´e. Dans les sections et chapitres suivants, ces zones d’occlusion et de mauvaise corr´elation d´etect´ees et masqu´ees lors du basculement seront regroup´ees et cit´ees sous le terme de “masque du MNS“. Ce masque de MNS sera pris en compte lors de toutes les ´etapes suivantes de la chaˆıne de traitements. 713.3. AMELIORATION DES MNS : D ´ EVELOPPEMENT D’UNE M ´ ETHODE DE FUSION ´ DES MNS 3.3 Am´elioration des MNS : d´eveloppement d’une m´ethode de fusion des MNS 3.3.1 Erreurs des MNS asym´etriques Les figures 3.5(a) et 3.5(c) pr´esentent les r´esultats de deux MNS calcul´es `a partir du mˆeme couple st´er´eoscopique mais avec inversion des rˆoles maˆıtre et esclave de chaque image. Sur ces images, les pixels noirs repr´esentent les zones masqu´ees car appartenant `a des zones d’occlusion ou des zones de faible score de corr´elation, calcul´ees lors du basculement (section 3.2). De fa¸con g´en´erale, les deux MNS produits `a partir du mˆeme couple st´er´eoscopique sont tr`es similaires. On note, pour une zone de 2000 × 2000 pixels sur un couple d’image WorldView-1 acquis en 2008 sur la ville de Phoenix, une diff´erence moyenne de 0,004 m avec un ´ecart–type de 1,76 m. Cet ´ecart-type r´esulte typiquement du bruit provenant de mauvaises corr´elations ou de zones d’occlusion ayant g´en´er´e des erreurs lors de la mise en correspondance des images, erreurs ensuite r´epercut´ees sur les MNS bascul´es. On observe que, selon le MNS (et donc selon l’angle d’acquisition de l’image maˆıtre), les zones d’occlusion sont g´er´ees et masqu´ees plutˆot au sud (figure 3.5(a)) ou au nord (figure 3.5(c)) des bˆatiments. De plus, comme d´etaill´e pr´ec´edemment, certaines erreurs de corr´elation ont g´en´er´e des variations d’´el´evation dans la carte des ´el´evations qui ont elles–mˆemes g´en´er´e des occlusions virtuelles lors du basculement. Ces erreurs ´etant variables d’un MNS `a l’autre, les zones d’occlusion g´en´er´ees sont aussi variables entre les MNS. Enfin, des erreurs importantes de corr´elation sont visibles dans les MNS. Ces erreurs sont variables en amplitude et en localisation selon le MNS, elles sont notamment visibles `a proximit´e des bˆatiments et encercl´ees en rouge sur la figure 3.5(a). Afin d’obtenir un MNS coh´erent et le plus pr´ecis possible, la solution propos´ee est de calculer les deux cartes d’´el´evation provenant du mˆeme couple avec inversion des rˆoles maˆıtre et esclave des images puis de fusionner ces MNS, pr´ealablement bascul´es dans la mˆeme g´eom´etrie. L’objectif de cette fusion est de garder le maximum d’informations correctes provenant de l’un ou l’autre des MNS. 72CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ (a) MNS1, couple st´er´eoscopique WorldView-1 du 24/06/2008. (c) MNS2, couple st´er´eoscopique WorldView-1 du 24/06/2008. Figure 3.5 – MNS asym´etriques provenant du mˆeme couple d’images st´er´eoscopiques. 733.3. AMELIORATION DES MNS : D ´ EVELOPPEMENT D’UNE M ´ ETHODE DE FUSION ´ DES MNS 3.3.2 M´ethode de fusion des MNS asym´etriques Plusieurs techniques peuvent ˆetre employ´ees pour la fusion des deux MNS. Une technique consiste `a calculer, pour chaque pixel, la moyenne entre les deux valeurs obtenues. Si l’une des deux valeurs appartient `a un des masques de MNS calcul´es lors du basculement, alors le pixel du MNS final est lui–mˆeme enregistr´e dans le masque final du MNS. Ce masque final repr´esente alors l’union des deux masques g´en´er´es pour chaque MNS. Un r´esultat de cette fusion est pr´esent´e figure 3.6(c). Sur cette figure, les erreurs de corr´elation encercl´ees pr´ec´edemment n’ont pas ´et´es corrig´ees, on observe mˆeme que le MNS fusionn´e poss`ede toutes les erreurs provenant de chacun des MNS. De mˆeme, le masque final, union des deux masques des MNS est plus cons´equent que les masques de chacun des MNS. Cette fusion par la moyenne entraˆıne donc la perte qualitative et quantitative d’information par rapport `a chacun des MNS source. Afin de mieux prendre en compte les erreurs d’´el´evation de l’un ou l’autre des MNS tout en utilisant toute l’information spatiale correcte de chacun des MNS (c’est–`a–dire en limitant les erreurs et les zones masqu´ees), nous proposons de r´esoudre la fusion `a l’aide d’une contrainte de r´egularisation spatiale. La m´ethode propos´ee est bas´ee sur un probl`eme de labellisation permettant d’obtenir le MNS final : `a chaque pixel xi du MNS final est attribu´e un label m provenant du jeu de label M ∈ {MNS1, MNS2, Occlusion}. La valeur du pixel attribu´ee au MNS final est alors celle qui correspond au label s´electionn´e. Les labels MNS1 et MNS2 correspondent, pour chaque pixel, aux valeurs d’´el´evation calcul´ees lors de la g´en´eration de l’un ou l’autre MNS, tandis que le label Occlusion correspond `a un label occlusion, attribu´e au pixel lorsque aucune valeur de MNS ne paraˆıt coh´erente. Le choix d’un label, pour chacun des pixels du MNS final est effectu´e `a partir des diff´erentes donn´ees obtenues `a la g´en´eration des MNS. Ces donn´ees sont : – le Normalized Cross Correlation Coefficient, NCC(pr´esent´e en section 3.1.2 et d’´equation 3.3) obtenu lors de la mise en correspondance des images pour chacun des pixels (et r´e– ´echantillonn´e dans la mˆeme g´eom´etrie que le MNS lors de l’´etape de basculement, section 74CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ (a) MNS1. (b) MNS2. (c) R´esultat de la fusion des MNS par une moyenne et l’intersection des zones d’occlusion. Figure 3.6 – MNS provenant du mˆeme couple st´er´eoscopique et r´esultat de leur fusion par la moyenne. 753.3. AMELIORATION DES MNS : D ´ EVELOPPEMENT D’UNE M ´ ETHODE DE FUSION ´ DES MNS 3.2), – la diff´erence d’´el´evation obtenue entre les deux MNS pour le mˆeme pixel, – la r´egularisation spatiale qui d´epend de la variation d’altitude entre deux pixels cons´ecutifs dans le MNS final. Le NCC est une donn´ee importante qui permet ici de donner un indice de confiance `a l’altitude d´elivr´ee par chaque pixel de chacun des MNS : plus le NCC est important, plus la probabilit´e que la corr´elation soit correcte en ce pixel est ´elev´ee. La comparaison des NCC provenant de chaque MNS permet alors d’indiquer quelle valeur de MNS paraˆıt la plus pertinente. De mˆeme, la diff´erence obtenue entre les valeurs de MNS sur un mˆeme pixel permet de localiser des zones de mauvaise corr´elation ou d’occlusion. En effet, l’´el´evation obtenue en un pixel doit ˆetre sensiblement la mˆeme pour les deux MNS, une diff´erence d’´el´evation correspond alors g´en´eralement `a une erreur sur l’un ou les deux MNS. C’est le principe utilis´e par les techniques de back matching pour la d´etection des zones d’occlusion [49], [33]. Enfin, la pr´esence d’une contrainte de r´egularisation spatiale permet de lisser le MNS final. Comme d´etaill´e au chapitre 2, section 2.2.1, ce probl`eme de labellisation peut ˆetre r´esolu par une minimisation d’´energie dont l’algorithme est d´ecrit en section 2.2.3 et l’´equation g´en´erale est de type : E(n) = X x∈X Cdata(n(x)) + X (x′)∈V (x) Creg(n(x), n(x ′ )). (3.5) Nous rappelons que chaque MNS poss`ede d´ej`a son propre masque, calcul´e lors de l’´etape de basculement d´ecrit en section 3.2. Les pixels appartenant `a ce masque doivent alors ˆetre pris en compte lors du calcul du MNS final par fusion. Ainsi, la valeur de tous les pixels de chaque MNS et correspondant `a un masque est d´efinie `a −9999 lors de cette ´etape de fusion. Les valeurs correspondantes dans la carte des NCC sont, elles, d´efinies `a 0. Nous d´etaillerons tout au long de cette section, comment ces pixels sont pris en compte dans la fusion. Dans cette ´etape de fusion, la fonction d’attache aux donn´ees, CData(xi , m(xi)), pour les labels MNS1 et MNS2 d´epend du coefficient de corr´elation (NCC) obtenu `a la g´en´eration des 76CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ MNS : plus ce coefficient est important pour le label consid´er´e m au pixel xi , plus la probabilit´e du label est ´elev´ee en ce pixel. Concernant le label Occlusion, la fonction d’attache aux donn´ees d´epend du NCC maximum obtenu entre les deux NCC correspondant `a chacune des valeurs de MNS en pr´esence et de la diff´erence calcul´ee entre les deux valeurs de MNS au pixel xi . Ainsi, lorsque l’un ou les deux MNS obtiennent un score de corr´elation important, leur coˆut d’attache aux donn´ees est faible tandis que celui du label Occlusion est fort car il est calcul´e comme ´etant l’inverse du maximum de corr´elation obtenu. La probabilit´e du label Occlusion est donc faible au pixel xi . Le choix entre les labels MNS1 et MNS2 d´epend alors de chacun de leur coefficient de corr´elation et de la r´egularisation. Ce cas est repr´esent´e par un chemin de fl`eches vertes en larges pointill´es sur la figure 3.7. L’´equation 3.6 r´esume le calcul des attaches aux donn´ees pour chacun des labels : CData(xi , m(xi)) =    1 − NCC(xi , m(xi)) si m ∈ {MNS1, MNS2}, max[NCC(xi , MNS1), NCC(xi , MNS2)] + F1(xi) si m ∈ {Occlusion}. (3.6) Dans la fonction d’attache aux donn´ees du label Occlusion, la fonction F1(xi) correspond `a la valeur absolue de la diff´erence d’´el´evation relev´ee au pixel xi et normalis´ee entre 0 et 1 tel que : F1(xi) = 1 1 + e−L(|Z(xi,MNS1)−Z(xi,MNS2)|−t1) . (3.7) Le param`etre L est d´efini `a 1. Cette fonction, non lin´eaire, permet d’affecter un coˆut suffisamment faible pour les diff´erences sup´erieures `a un seuil t1 d´efini `a 5 m, diff´erences consid´er´ees ici comme importantes et donc pouvant provenir d’une occlusion. Des diff´erences plus faibles peuvent en revanche provenir d’une faible erreur sur l’un des MNS qui ne doit pas pour autant privil´egier le label Occlusion mais plutˆot le label MNS le plus pertinent, en particulier si le NCC correspondant est fort. C’est pourquoi le NCC maximum est int´egr´e dans la fonction d’attache aux donn´ees du label Occlusion : plus le maximum NCC est fort, plus la probabilit´e d’une occlusion est faible. Dans le cas o`u l’une des valeurs de MNS au pixel xi correspond au masque natif du MNS, 773.3. AMELIORATION DES MNS : D ´ EVELOPPEMENT D’UNE M ´ ETHODE DE FUSION ´ DES MNS par exemple pour le MNS2, on obtient : NCC(xi , MNS2) = 0 et MNS2(xi) = −9999, donc : CData(xi , MNS1) = 1 − NCC(x, MNS1), CData(xi , MNS2) = 1, CData(xi , Occlusion) = NCC(x, MNS1) + 0. (3.8) Le pixel xi peut alors ˆetre labellis´e MNS1 ou bien Occlusion selon la valeur de NCC obtenue en xi pour le MNS1. C’est le chemin repr´esent´e en fl`eches violettes et en petits pointill´es dans la figure 3.7. Dans le cas o`u les valeurs des deux MNS en xi appartiennent aux masques d’occlusion on obtient : CData(xi , MNS1) = 1, CData(xi , MNS2) = 1, CData(xi , Occlusion) = 1. (3.9) Dans ce cas particulier, la valeur du MNS final en xi est forc´ement ´egale `a 0 (puisque tous les labels en pr´esence correspondent `a une valeur `a 0) et le label s´electionn´e d´epend alors seulement du terme de r´egularisation. C’est le chemin repr´esent´e en fl`eches oranges et lignes pleines dans la figure 3.7. La fonction de r´egularisation est d´efinie telle que : CReg((xi , m(xi)),(xi+1, m(xi+1))) = C R, (3.10) avec C R le terme de r´egularisation qui d´epend de la diff´erence absolue entre les valeurs d’´el´evations Z(xi , m(xi)) et Z(xi+1, m(xi+1)) obtenues par les labels m pour deux pixels cons´ecutifs xi et xi+1. Ce terme est calcul´e ainsi : C R =    F2(| Z(xi , m(xi)) − Z(xi+1, m(xi+1)) |) si m(xi) et m(xi+1) ∈ {MNS1, MNS2}, β si m(xi) ∈ {MNS1, MNS2} et m(xi+1) ∈ {Occlusion}, γ si m(xi) ∈ {Occlusion}. (3.11) avec F2 d´efinie par : F2(| Z(xi , m(xi)) − Z(xi+1, m(xi+1)) |) = 1 1 + e−L(|Z(xi,m(xi))−Z(xi+1,m(xi+1))|−t2) . (3.12) 78CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ Le param`etre L est d´efini `a 1. La valeur t2 de la fonction F2 est ici pos´ee `a 2.5 m (valeur seuil utilis´ee dans la m´ethode de d´etection de changements). L’objectif de cette fonction est de normaliser les diff´erences d’´el´evations entre 0 et 1 afin que les valeurs de coˆut obtenues pour chaque label soient comparables entre elles. F2 est une fonction de r´egularisation entre deux labels de pixels cons´ecutifs et permet ainsi de lisser le MNS final car la valeur du label choisi est alors celle qui se rapproche le plus de la valeur voisine. L’utilisation d’une fonction sigmo¨ıde permet de donner des coˆuts similaires aux labels amenant des variations d’´el´evation proches et ainsi ´eviter une fonction seuil qui attribuerait des coˆuts ´egaux `a 0 ou 1 et orienterait alors trop fortement le choix final du label. Lors du calcul de la fonction de r´egularisation : – lorsque l’une des deux valeurs cons´ecutives appartient `a l’un des masques natifs des MNS, le coˆut calcul´e par la fonction F2 est alors proche de 1, coˆut ´elev´e permettant de limiter la probabilit´e de ce label, – lorsque les deux valeurs de pixels correspondent aux masques natifs des MNS, F2 est alors ´egal `a 0. Les coˆuts de labellisation sont alors similaires en ce pixel pour les deux MNS. Les variables β et γ correspondent `a des valeurs fix´ees `a une valeur moyenne de coˆut (β = 0.5 et γ = 0.5). Ces valeurs, tr`es lˆaches, permettent d’attribuer des coˆuts neutres aux labels consid´er´es, le coˆut final du label d´epend alors principalement de l’attache aux donn´ees. La figure 3.7 pr´esente un sch´ema r´ecapitulatif qui illustre l’orientation du choix de chacun des labels en fonction des donn´ees d’entr´ee (NCC et valeur de MNS) et des fonctions d’attache aux donn´ees utilis´ees. Sur la figure 3.7, les carr´es bleus clair indiquent les labels gagnants pour lesquels le coˆut attribu´e est le plus faible en fonction du calcul de l’attache aux donn´ees mais aussi en fonction de la r´egularisation. Les labels entour´es en rouge repr´esentent les labels impossibles pour chacun des cas d´ecrits. En pratique, il est `a noter que les fonctions d’attache aux donn´ees, de mˆeme que la r´egularisation, ne privil´egient que rarement le label Occlusion. Cette caract´eristique n’est cependant pas un inconv´enient puisque l’objectif est de diminuer les occlusions, et notamment 793.3. AMELIORATION DES MNS : D ´ EVELOPPEMENT D’UNE M ´ ETHODE DE FUSION ´ DES MNS les fausses occlusions provenant d’erreurs de corr´elation, et les pixels de faible NCC afin de privil´egier les valeurs correctes de chacun des MNS. De mˆeme, on note que des coˆuts tr`es similaires peuvent ˆetre affect´es aux deux labels MNS. Or, comme pr´ecis´e pr´ec´edemment, en de nombreux pixels des MNS, les ´el´evations calcul´ees sont tr`es proches car il n’y avait pas d’ambigu¨ıt´es dans la mise en correspondance. Dans ce cas, l’affectation de l’une ou l’autre valeur des MNS n’a pas d’impact r´eel sur le MNS final. La figure 3.8(c) pr´esente le r´esultat obtenu par la fusion par labellisation des deux MNS produits `a partir du mˆeme couple st´er´eoscopique. Bien que toujours globalement similaire aux MNS, ce r´esultat ne pr´esente plus les erreurs importantes de corr´elation encercl´ees pr´ec´edemment. Figure 3.7 – Sch´ema r´ecapitulatif de la proc´edure de fusion des MNS en fonction des valeurs initiales et de l’attache aux donn´ees. 80CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ (a) MNS1 (b) MNS2 (c) R´esultat de la fusion par optimisation avec r´egularisation spatiale. Figure 3.8 – 3.8(a) et 3.8(b) : MNS calcul´es `a partir du mˆeme couple st´er´eoscopique et r´esultats de leur fusion par optimisation globale 3.8(c). 813.4. QUALITE ET PR ´ ECISION DES MNS OBTENUS ´ Elles ont pu ˆetre supprim´ees grˆace `a cette m´ethode de fusion. De plus, les zones masqu´ees sont r´eduites par rapport `a la fusion par la moyenne pr´esent´ee en figure 3.6(c), permettant d’obtenir un r´esultat contenant une plus grande quantit´e d’informations car c’est la somme des informations pertinentes des MNS1 et MNS2. Enfin, il est `a noter que, bien que ces zones masqu´ees puissent ˆetre interpol´ees `a partir des valeurs qui les entourent, nous avons choisi de ne pas le faire afin de ne pas g´en´erer d’erreurs d’interpolation qui pourraient engendrer des erreurs dans la carte finale des changements d’´el´evation. Ces zones sont alors consid´er´ees comme des zones de “non–information” et prises en compte lors de la d´etection des changements d’´el´evation. 3.4 Qualit´e et pr´ecision des MNS obtenus Afin d’observer l’apport de la m´ethode de g´en´eration des MNS par fusion par rapport `a la g´en´eration de MNS asym´etriques par mise en correspondance simple, le MNS g´en´er´e sur la ville de Christchurch (Nouvelle-Z´elande) est compar´e avec une v´erit´e terrain obtenue avec un LiDAR. Ce LiDAR 1 a ´et´e acquis en 2011, ann´ee d’acquisition des images WorldView-2 sur la mˆeme zone (voir tableau 1.1, chapitre 1, section 1.4). La comparaison a ´et´e effectu´ee sur une zone commune entre le LiDAR et les MNS d’environ 2300 × 2600 pixels. 3.4.1 Co–localisation LiDAR et MNS Le LiDAR dont nous disposons a ´et´e r´e–´echantillonn´e `a 1 m de r´esolution spatiale. Comme discut´e dans le chapitre 2, section 2.1, les images ayant permis la g´en´eration des MNS ont ´et´e affin´ees simultan´ement permettant leur co–localisation pr´ecise entre elles et ainsi, la co–localisation pr´ecise entre les MNS. Cependant, cette co–localisation est effectu´ee en relatif et la localisation absolue des mod`eles n’est pas garantie. Ainsi, les MNS et le LiDAR ne peuvent ˆetre nativement co–localis´es (on observe des biais 1. Pour des raisons de confidentialit´e, le LiDAR et les informations associ´ees ne peuvent ˆetre pr´esent´es dans ce manuscrit. Nous nous excusons pour cette restriction aupr`es des lecteurs. 82CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ jusqu’`a 12 m en longitude et 25 m en latitude entre le MNS et le LiDAR). Afin de permettre la comparaison pr´ecise entre le LiDAR et les MNS, il est alors n´ecessaire de recaler ces donn´ees entre elles. Cette op´eration est effectu´ee de fa¸con classique, en prenant des points de liaison entre les donn´ees (ces points sont s´electionn´es au milieu des toits afin d’obtenir une meilleure pr´ecision). L’erreur r´esiduelle sur ces points est d’environ 0,7 pixels RMS (erreur moyenne quadratique). Puis, un mod`ele de d´eformation affine du MNS est calcul´e en fonction de ces points de liaison afin d’obtenir un MNS recal´e (au pixel pr`es) sur le LiDAR. 3.4.2 Crit`eres de qualit´e La comparaison entre le LiDAR et les MNS a ´et´e effectu´ee `a plusieurs niveaux : une diff´erence globale a ´et´e r´ealis´ee entre les donn´ees afin d’observer le bruit de ces derni`eres. Puis, une comparaison a ´et´e effectu´ee entre les zones masqu´ees des MNS afin d’observer les erreurs r´esiduelles sur ces zones et leurs diff´erences entre le MNS asym´etrique et le MNS fusionn´e. Enfin, la comparaison de profils s´electionn´es sur les diff´erentes donn´ees va permettre d’observer comment les structures telles que les bords de bˆatiments, les toits mais aussi les zones homog`enes sont g´er´ees dans les MNS. Diff´erence globale Dans un premier temps, l’image des diff´erences entre le LiDAR et le MNS asym´etrique (MNS obtenu `a partir de la g´eom´etrie image puis bascul´e dans un espace terrain)a ´et´e calcul´ee. La moyenne des diff´erences obtenue est d’environ −0, 4 m avec un ´ecart–type d’environ 3, 1 m. Cet ´ecart–type est particuli`erement important et illustre le bruit pr´esent dans le MNS. La diff´erence calcul´ee entre le MNS fusionn´e (par la technique d´ecrite en section 3.3) montre, elle, une moyenne d’environ −0, 25 m avec un ´ecart–type d’environ 2, 4 m. Ces valeurs, largement plus faibles que les r´esultats obtenus avec le MNS asym´etrique attestent que la proportion d’erreur a diminu´e sur le MNS fusionn´e. 833.4. QUALITE ET PR ´ ECISION DES MNS OBTENUS ´ Diff´erences entre les masques des MNS asym´etrique et fusionn´e Les zones masqu´ees sur le MNS asym´etrique et pas sur le MNS fusionn´e, ou inversement, repr´esentent les zones o`u la probabilit´e d’erreur est la plus forte. Dans la section 3.3, nous expliquons que la fusion de deux MNS g´en´er´es `a partir du mˆeme couple st´er´eoscopique, mais avec inversion des rˆoles maˆıtre et esclave, permet de prendre en compte les zones d’occlusion situ´ees sur les deux images du couple st´er´eoscopique. Cependant, nous avons pu noter, dans la section 3.2, que les erreurs de corr´elation g´en´er´ees lors de la mise en correspondance peuvent engendrer des fausses zones d’occlusion. Ainsi, le masque du MNS fusionn´e peut contenir des pixels faussement enregistr´es comme occlusion. La comparaison de la taille de ces masques donne une premi`ere id´ee sur la qualit´e des MNS et la pr´ecision des masques : en effet, on observe que 19,3% des pixels appartenant au MNS asym´etrique sont enregistr´es dans le masque, tandis que cette quantit´e baisse `a 15,5% pour le MNS fusionn´e. Cette diff´erence indique qu’une plus petite quantit´e de pixels a ´et´e enregistr´ee dans le masque du MNS fusionn´e. Ce ph´enom`ene est paradoxal puisque le MNS fusionn´e permet d’enregistrer les occlusions appartenant aux deux images du couple st´er´eoscopique au contraire du MNS asym´etrique. On peut donc en d´eduire que le masque du MNS fusionn´e est plus pr´ecis sur les zones d’occlusion et limite le nombre de pixels masqu´es. De plus, les masques des MNS prennent aussi en compte les scores de corr´elation les plus faibles obtenus lors de la mise en correspondance. Or, nous avons vu que la fusion des MNS permet de r´eduire le nombre de pixels masqu´es `a cause de ce seuil. En effet, lorsqu’un pixel est masqu´e dans l’un des MNS mais poss`ede un score de corr´elation suffisamment ´elev´e dans l’autre MNS tout en r´epondant `a la contrainte de r´egularisation, cette valeur de pixel est alors privil´egi´ee dans le MNS final plutˆot que la valeur masqu´ee. Ces contraintes de calcul sur le MNS final permettent ainsi de r´eduire les zones masqu´ees. Afin de comparer la qualit´e des masques des MNS asym´etrique et fusionn´e, tous les pixels enregistr´es dans un masque pour l’un des MNS et ayant une valeur d´efinie dans l’autre MNS, sont compar´es avec la v´erit´e LiDAR. 84CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ (a) Histogramme des diff´erences entre le LiDAR et les pixels masqu´es dans le MNS fusionn´e mais d´efinis dans le MNS asym´etrique (b) Histogramme des diff´erences entre le LiDAR et les pixels masqu´es dans le MNS asym´etrique mais d´efinis dans le MNS fusionn´e Figure 3.9 – 3.9(a) et 3.9(b) : Histogrammes des cartes de diff´erences calcul´ees entre le liDAR et le MNS asym´etrique et MNS fusionn´e, respectivement. L’histogramme pr´esent´e en figure 3.9(a) int`egre les pixels masqu´es dans le MNS fusionn´e et ayant une valeur d’´el´evation d´efinie dans le MNS asym´etrique. Ces pixels repr´esentent 11,9% de l’image. On observe une moyenne des diff´erences entre ces valeurs dans le MNS asym´etrique et le LiDAR de −2, 32 m avec un ´ecart–type de 6, 14 m. L’histogramme confirme cette tendance de fortes diff´erences entre ces valeurs et le LiDAR. Nous pouvons ainsi en d´eduire que ces valeurs d´efinies dans le MNS asym´etrique mais pas dans le MNS fusionn´e repr´esentent principalement des erreurs d’´el´evation du MNS asym´etrique. L’histogramme pr´esent´e en figure 3.9(b) correspond aux pixels masqu´es dans le MNS asym´etrique mais ayant une valeur d´efinie dans le MNS fusionn´e. On recense 8% des pixels de l’image appartenant `a cette cat´egorie. La diff´erence calcul´ee entre ces pixels appartenant au MNS fusionn´e et la v´erit´e LiDAR est en moyenne de −1, 1 m avec un ´ecart–type de 3, 9 m. Ces chiffres montrent un r´esultat bien meilleur sur ces pixels bien que des erreurs subsistent. Ce r´esultat indique qu’un grand nombre de ces pixels, recens´es dans le masque du MNS asym´etrique, poss´edaient en r´ealit´e une altitude d´efinie et correcte, car proche du LiDAR, dans l’autre MNS asym´etrique. Ces valeurs sont donc maintenant des valeurs correctes dans le MNS 853.4. QUALITE ET PR ´ ECISION DES MNS OBTENUS ´ fusionn´e. Cependant, certaines erreurs r´esiduelles pourraient ˆetre corrig´ees, par exemple, grˆace `a l’utilisation de plus de deux images st´er´eoscopiques afin d’am´eliorer la pr´ecision de ce masque. Comparaison de profils d’´el´evation Les figures 3.10(a) et 3.10(b) permettent de comparer des profils d’´el´evation obtenus entre le LiDAR, le MNS asym´etrique et le MNS fusionn´e. Ce profil, qui s’´etend sur une distance de 1000 m (la r´esolution spatiale des pixels ´etant de 1 m), montre de nombreux bˆatiments, de hauteurs variables entre 4 et 9 m environ. Globalement, les profils des MNS asym´etrique et fusionn´e suivent la tendance du profil LiDAR, on observe cependant un biais entre le LiDAR et les MNS, ces derniers pr´esentent en effet une altitude plus faible de plusieurs dizaine de centim`etres d’apr`es la zone basse entre 1900 m et 2100 m. Ce biais est aussi visible sur les bˆatiments situ´es entre 1800 m et 1900 m. Ce biais reste n´eanmoins dans la r´esolution altim´etrique donn´ee pour les MNS qui est de 1 m. On observe, malgr´e le bruit pr´esent sur les MNS, que le toit gondol´e du bˆatiment situ´e entre 2100 m et 2200 m est particuli`erement bien rendu dans les deux MNS. De mˆeme, les bˆatiments, pourtant proches les uns des autres entre 1700 m et 1800 m apparaissent tr`es bien d´emarqu´es. On note que le MNS asym´etrique semble g´en´erer un bruit plus important, avec de plus fortes variations d’´el´evations, que celui g´en´er´e par le MNS fusionn´e. Les bords de bˆatiment (correspondant `a des zones d’occlusion) sont aussi mieux g´er´es par le MNS fusionn´e. En effet, on observe, notamment pour les bˆatiments entre 2100 m et 2300 m, que le MNS asym´etrique a tendance `a ´elargir les bˆatiments et `a g´en´erer des ´el´evations tr`es fortes aux abords des bˆatiments. Ce ph´enom`ene est corrig´e dans le MNS fusionn´e dans lequel tous les bords de bˆatiments sont supprim´es car consid´er´es comme des zones d’occlusion. Ce comportement montre l’int´erˆet de g´erer les zones d’occlusion dans les MNS puisque des bords de bˆatiments ´elargis sont de fortes sources de fausses alarmes dans la carte finale des changements. 86CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ (a) Comparaison des profils LiDAR et MNS asym´etrique. (b) Comparaison des profils LiDAR et MNS fusionn´e. Figure 3.10 – Profils d’´el´evation compar´es entre le MNS asym´etrique (en vert), le MNS fusionn´e (en bleu) et le Lidar (en rouge). 3.5 Application au cas de la multi–st´er´eoscopie L’algorithme que nous avons d´evelopp´e pr´ec´edemment permet le calcul d’un MNS pr´ecis `a partir d’un couple st´er´eoscopique. Or, les nouveaux satellites tels que Pl´eiades permettent aujourd’hui l’acquisition d’images en n–uplet st´er´eoscopiques, avec n ∈ [2 : 25] pour Pl´eiades. Chaque image est alors acquise avec un angle d’incidence et d’azimut diff´erent. Dans ce cas, il est n´ecessaire de prendre en compte tout ou partie des images produites pour le calcul d’un MNS. L’algorithme de fusion des MNS est alors une solution int´eressante pour g´erer les n-uplets st´er´eoscopiques. 873.5. APPLICATION AU CAS DE LA MULTI–STER´ EOSCOPIE ´ Dans ce contexte, la solution propos´ee est la cr´eation de tous les MNS possibles provenant de la mise en correspondance de toutes les images 2 `a 2 avec inversion des rˆoles maˆıtre et esclave et la fusion de tous les MNS obtenus afin de calculer un MNS final. Pour un n–uplet st´er´eoscopique, le nombre de MNS `a g´en´erer est alors de NMNS = n ∗ (n − 1). Le nombre de labels pr´esents dans la fusion est ensuite ´egal au nombre total des MNS g´en´er´es, additionn´e du label Occlusion. Dans le calcul de la fusion, effectu´e selon l’algorithme d´ecrit pr´ec´edemment, la seule diff´erence notable est le calcul de l’attache aux donn´ees pour le label Occlusion (´equation 3.6). Dans le cas de la st´er´eoscopie simple, il est n´ecessaire de calculer la diff´erence entre les deux valeurs de MNS obtenues au mˆeme pixel xi . Dans le cas de la multi–st´er´eoscopie, le nombre de MNS en jeu ´etant sup´erieur `a 2, toutes les diff´erences entre les MNS g´en´er´es sont calcul´ees et l’attache aux donn´ees est alors fonction de la diff´erence minimale obtenue (en dehors des diff´erences ´egales `a 0 qui proviennent de la diff´erence entre deux masques de MNS). Ce choix d’utiliser la diff´erence minimum est orient´e par le fait qu’en un pixel, les valeurs de MNS doivent ˆetre similaires. Ainsi, plus des valeurs seront proches, plus la probabilit´e que les valeurs de MNS soient pertinentes est ´elev´ee. La figure 3.12 pr´esente le r´esultat du calcul d’un MNS `a partir de deux images d’un triplet st´er´eoscopique 3.12(a) et des trois images du triplet 3.12(b). Ce triplet d’images Pl´eiades a ´et´e acquis sur la ville de Toulouse en mai 2012 (figure 3.11(a)). La figure 3.11(b) permet de montrer les conditions d’acquisition de ce triplet. Dans cette figure, la position d’un point sur le p´erim`etre du cercle repr´esente l’angle d’azimut de l’acquisition de l’image consid´er´ee tandis que la position sur le rayon du cercle repr´esente l’angle d’incidence de l’acquisition. Selon cette figure, on observe que le triplet st´er´eoscopique a ´et´e acquis avec un angle d’incidence assez ´elev´e (environ 25˚) et selon un seul passage du satellite. Ce syst`eme d’acquisition n’apparaˆıt pas id´eal pour limiter les zones d’occlusion puisque les angles azimutaux des trois images sont particuli`erement proches entre eux. En effet, le MNS calcul´e `a partir de deux images contient de nombreuses zones masqu´ees `a cause des nombreuses zones d’occlusion, particuli`erement importantes du fait des angles d’acquisition des images, mais aussi des erreurs de corr´elation (sur les toits de bˆatiments, par exemple). Tandis 88CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ (a) Partie d’une image panchromatique du triplet st´er´eoscopique Pl´eiades acquis sur la ville de Toulouse le 07/05/2012. (b) Illustration de la g´eom´etrie d’acquisition du triplet st´er´eoscopique. Figure 3.11 – Illustration du triplet st´er´eoscopique Pl´eiades acquis sur la ville de Toulouse. 893.5. APPLICATION AU CAS DE LA MULTI–STER´ EOSCOPIE ´ (a) Toulouse, MNS fusionn´e `a partir d’un couple st´er´eoscopique. (b) Toulouse, MNS fusionn´e `a partir d’un triplet st´er´eoscopique. Figure 3.12 – MNS calcul´es `a partir de 2 images puis 3 images du mˆeme uplet st´er´eoscopique. 90CHAPITRE 3. GEN´ ERATION DE MOD ´ ELES NUM ` ERIQUES DE SURFACE SUR UNE ´ GRILLE REGULI ´ ERE ` A PARTIR DE COUPLES ST ` ER´ EOSCOPIQUES ´ que le MNS tri-st´er´eoscopiques apparaˆıt beaucoup plus lisse et seules les vraies zones d’occlusion (zones vues par aucune des images), situ´ees, comme attendues, au nord–ouest des bˆatiments, sont masqu´ees. De fa¸con quantitative, on observe que sur le MNS form´e `a partir de deux images st´er´eoscopiques, 19,2% des valeurs du MNS appartiennent au masque tandis que sur le MNS obtenu avec le triplet st´er´eoscopique complet, seule 8,3% des valeurs appartiennent au masque. Ce r´esultat montre l’apport de la multi–st´er´eoscopie pour la g´en´eration des MNS, mˆeme lorsque les conditions d’acquisition st´er´eoscopiques ne sont pas id´eales, c’est–`a–dire que les images ne sont pas acquises selon des angles d’azimut tr`es diff´erents. Cette comparaison permet de d´emontrer non seulement la capacit´e de la m´ethode pour la multi–st´er´eoscopie mais aussi le fort int´erˆet de la multi-st´er´eoscopie pour la pr´ecision des MNS. 3.6 Conclusion La m´ethode de g´en´eration d´evelopp´ee dans notre chaˆıne de traitements est bas´ee sur trois ´etapes de calcul. La premi`ere est la mise en correspondance des images, selon une g´eom´etrie image et donc bas´ee sur le calcul de l’´el´evation de tous les points d’une image maˆıtre, calcul effectu´e par l’outil MicMac. La seconde ´etape est le basculement des ´el´evations, de la g´eom´etrie image `a une g´eom´etrie terrain d´efinie. Cette op´eration, d´evelopp´ee au cours de cette th`ese, a permis de mettre en place une meilleure gestion des points terrain situ´es dans des zones d’occlusion de l’image maˆıtre, et de filtrer les points dont le score de corr´elation est particuli`erement bas. Cette technique de mise en correspondance ´etant asym´etrique, les erreurs dues notamment aux zones d’occlusion de l’image esclave ne sont pas prises en compte. La troisi`eme ´etape de calcul a donc pour objectif de g´en´erer un MNS final dans lequel les zones d’occlusion appartenant `a l’une ou l’autre des images du couple sont prises en compte tout en limitant les erreurs ponctuelles de corr´elation pr´esentes sur l’un des MNS seulement. Pour cela, la mise en correspondance est r´ealis´ee deux fois, avec inversion des images maˆıtre et esclave et les MNS obtenus sont fusionn´es selon une technique formul´ee comme un probl`eme de labellisation dans lequel les labels de chaque pixel correspondent aux valeurs de chacun des MNS en pr´esence ou `a un label occlusion. Ce probl`eme est alors r´esolu `a partir de l’algorithme de programmation dynamique impl´ement´e, dont les fonctions de coˆuts ont ´et´e adapt´ees afin de privil´egier les meilleurs coefficients de corr´elation 913.6. CONCLUSION obtenus et les valeurs permettant de lisser les variations du MNS final. Tous les param`etres et seuils de la m´ethode compl`ete de g´en´eration des MNS sont r´esum´es dans le tableau 3.1. La comparaison des MNS r´esultats avec un LiDAR acquis sur la mˆeme zone a permis de pr´esenter l’apport de cette fusion de MNS par rapport `a un MNS asym´etrique, notamment envers les zones d’occlusion ou les zones de mauvaise corr´elation. Enfin, nous avons montr´e que cette m´ethode et l’algorithme d´evelopp´e ´etaient parfaitement adaptables au cas de la multi–st´er´eoscopie quels que soient les angles d’acquisition des images. Etape Param`etre impact sur le r´esultat Valeur recommand´ee MicMac R´egularisation Impact important D´epend de la zone trait´ee : des MNS sur les variations du MNS en milieu urbain λ = 0.02 Nombre de direction Impact mod´er´e d`es 12 directions de calcul 12 directions Basculement R´esolution de la grille Impact sur la r´esolution 2 fois la r´esolution terrain du MNS du r´esultat native des images Seuil sur le score de Impact sur la qualit´e du 2σ corr´elation MNS r´esultat Fusion Seuil t1 Impact sur la quantit´e D´epend des scores de corr´elation de pixels d´efinis en label occlusion obtenus t1 5 m Seuil t2 Impact faible D´efini `a 2,5 m sur la r´egularisation du MNS β et γ Impact faible D´efinies arbitrairement `a 0,5 Nombre de directions Impact tr`es mod´er´e G´en´eralement pos´e `a 12 de calcul sur le r´esultat R´egularisation Impact mod´er´e D´efini exp´erimentalement `a 5,0 sur la r´egularisation du MNS Table 3.1 – Tableau de synth`ese des param`etres de la m´ethode compl`ete de g´en´eration des MNS. 92Chapitre 4 D´eveloppement d’une m´ethode de d´etection des changements d’´el´evation La derni`ere ´etape de la chaˆıne de traitements, d´evelopp´ee au cours de cette th`ese, consiste `a d´etecter les changements d’´el´evation r´eels et pertinents de la sc`ene. Dans un contexte urbain, ces changements correspondent `a toutes les constructions, destructions ou modifications de bˆatiments ou d’infrastructures apparues entre les deux dates d’int´erˆet. La m´ethode employ´ee pour la d´etection de changement est bas´ee sur l’analyse de la diff´erence des MNS obtenus pour les dates t1 et t2. Cependant, `a la diff´erence de Tian [26] qui filtre le MNS diff´erentiel `a partir d’op´erations morphologiques et de connaissances a priori sur les tailles et formes des objets recherch´es, notre analyse est bas´ee sur une classification par une m´ethode d’optimisation semi–globale des pixels de l’image. Dans cette section, nous pr´esenterons tout d’abord l’int´erˆet du filtrage du MNS diff´erentiel pour la mise en ´evidence des changements d’´el´evation puis nous d´etaillerons la m´ethode que nous avons d´evelopp´ee afin de mettre en ´evidence les changements les plus pertinents. 934.1. CALCUL ET ANALYSE DU MNS DIFFERENTIEL ´ 4.1 Calcul et analyse du MNS diff´erentiel Comme d´ecrit dans le sch´ema global de la chaˆıne de traitements (chapitre 1, section 1.3, figure 1.2), une fois les MNS g´en´er´es pour les dates t1 et t2, leur diff´erence dMNS est calcul´ee telle que : dMNS = MNSt2 − MNSt1 . (4.1) Ainsi, les constructions apparues entre t1 et t2 apparaissent avec des pixels de valeurs positives sur le MNS diff´erentiel tandis que les destructions correspondent `a des valeurs n´egatives. L’union des zones masqu´ees de chacun des MNS, sont, quant `a elles d´efinies `a z´ero dans le MNS diff´erentiel. Cependant, certaines erreurs r´esiduelles de corr´elation restent attach´ees `a chacun des MNS, comme nous l’avons illustr´e dans le chapitre 3, section 3.4 lors de la comparaison avec la v´erit´e LiDAR et ce, malgr´e l’am´elioration de la pr´ecision des MNS. Ces erreurs de corr´elation proviennent le plus souvent de la mise en correspondance sur des zones difficiles telles que : – les structures 3D complexes comme celles de la v´eg´etation, – les zones homog`enes ou tr`es p´eriodiques, – les bords de bˆatiments, – les cibles mobiles, – les zones d’occlusion. Or, toute erreur dans un des MNS peut g´en´erer une diff´erence d’´el´evation potentiellement importante dans le MNS diff´erentiel et ainsi provoquer une fausse d´etection dans la carte finale des changements. La seule segmentation du MNS diff´erentiel ne permet donc pas de mettre en ´evidence les changements pertinents d’´el´evation dans le bˆati car le nombre d’alarmes de d´etection provenant des erreurs du MNS est alors trop grand. Les figures 4.1(a) et 4.1(b) repr´esentent les MNS obtenus sur la ville de Phoenix aux dates t1 = 2008 et t2 = 2011. La figure 4.2(a) montre le MNS diff´erentiel calcul´e `a partir de ces deux MNS. Enfin, la figure 4.2(b) pr´esente un exemple de seuillage du MNS diff´erentiel. Sur cet exemple toutes les diff´erences d’´el´evation inf´erieures `a -2,5 m sont repr´esent´ees en rouge et celle sup´erieures `a 2,5 m, en bleu. 94CHAPITRE 4. DEVELOPPEMENT D’UNE M ´ ETHODE DE D ´ ETECTION DES ´ CHANGEMENTS D’EL´ EVATION ´ (a) MNS ombr´e calcul´e `a partir des images WorldView-1 de 2008. (b) MNS ombr´e calcul´e `a partir des images WorldView-1 de 2011. Figure 4.1 – 4.1(a) et 4.1(b) MNS de 2008 et 2011 calcul´es sur la zone 1 d´efinie sur la ville de Phoenix. 954.1. CALCUL ET ANALYSE DU MNS DIFFERENTIEL ´ (a) MNS diff´erentiel calcul´e `a partir des MNS 2008 et 2011. (b) MNS diff´erentiel segment´e `a 2,5 m (changements positifs en bleus) et `a -2,5 m (changements n´egatifs en rouge). Figure 4.2 – 4.2(a) MNS diff´erentiel. 4.2(b) MNS diff´erentiel seuill´e. 96CHAPITRE 4. DEVELOPPEMENT D’UNE M ´ ETHODE DE D ´ ETECTION DES ´ CHANGEMENTS D’EL´ EVATION ´ Notons que ce seuil `a 2,5 m repr´esente le seuil que nous utiliserons pour toutes les d´etections de changements effectu´ees `a partir des MNS calcul´es `a 1 m de r´esolution altim´etrique et planim´etrique. Ce seuil correspond `a la hauteur standard d’un ´etage de bˆatiment et paraˆıt tout `a fait adapt´e pour la r´esolution des MNS (1 m de r´esolution altim´etrique et planim´etrique). Sur cette figure, de tr`es nombreuses alarmes de changements sont visibles. Ces alarmes de changements, souvent repr´esent´ees par quelques pixels, sont r´eparties sur toute l’image. Les changements r´eels et pertinents du bˆati sont pourtant ais´ement rep´erables (pour les plus importants) sur la carte seuill´ee. En effet, ces changements sont g´en´eralement repr´esent´es par des amas de pixels, homog`enes spatialement et bien d´elimit´es contrairement au bruit. C’est pourquoi, nous avons choisi de mettre en ´evidence ces changements pertinents `a partir d’une technique de classification r´esolue `a travers une optimisation globale du MNS diff´erentiel, associ´ee `a une contrainte de r´egularisation spatiale. Cette technique permet en effet de prendre en compte la coh´erence locale du MNS diff´erentiel afin d’´eliminer le bruit tout en conservant les changements coh´erents du bˆati. 4.2 M´ethode de d´etection des changements La m´ethode choisie pour la d´etection des changements d’´el´evation consiste en une classification des pixels du MNS diff´erentiel. A chaque pixel est attribu´e un label ` r provenant du jeu de labels R et qui correspond `a un changement positif (construction), `a un changement n´egatif (destruction) ou `a un non–changement, en fonction de sa valeur mais aussi de celle des ses voisins afin de satisfaire la contrainte de r´egularisation spatiale (R ∈ {Changementpositif, Changementngatif, Nonchangement}). Ce probl`eme s’apparente alors aux probl`emes d’optimisations globales, introduits dans le chapitre 2.2, et r´esolus `a partir de l’´equation g´en´erale 2.2.3. La fonction d’attache aux donn´ees utilis´ee dans cette optimisation, CData(xi , r(xi)), correspond au coˆut pour attribuer un label r au pixel xi du MNS diff´erentiel, i ´etant la valeur de 974.2. METHODE DE D ´ ETECTION DES CHANGEMENTS ´ diff´erence d’´el´evation au pixel xi . Ce coˆut, pour chaque label, d´epend de la valeur de diff´erence d’´el´evation obtenue dans le MNS diff´erentiel et normalis´ee par une fonction sigmo¨ıde (repr´esent´ee en figure 4.3). Il est d´efini par : CData(xi , r(xi)) =    1 1+exp−L(|i|−T ) si r(xi) = {non changement}, 1 − 1 1+exp−L(i−T ) si r(xi) = {changement positif}, 1 − 1 1+exp−L(−i−T ) si r(xi) = {changement n´egatif}. (4.2) Dans l’´equation 4.2, le param`etre T est fix´e `a 2,5 m, seuil de la d´etection de changements d´efini pr´ec´edemment. La normalisation des valeurs du MNS diff´erentiel dans la fonction d’attache aux donn´ees permet de rendre comparable entre eux les coˆuts obtenus par un pixel et pour chaque label. Si de nombreuses techniques permettent la normalisation des valeurs, nous avons choisi une fonction sigmo¨ıde qui permet un seuillage ”flexible” des coˆuts de chacun des labels selon la valeur du pixel. En effet, une fonction concave (ou “marche”) calculerait un coˆut `a 0 ou `a 1 sans aucun interm´ediaire pour chaque label, une fonction lin´eaire, au contraire, ne serait pas suffisamment d´eterminante pour des valeurs de pixels trop diff´erentes du seuil fix´e. Tandis que la fonction sigmo¨ıde permet un seuillage plus doux. Le param`etre L est li´e `a la courbure de la fonction sigmo¨ıde. La figure 4.3 pr´esente diff´erentes sigmo¨ıdes calcul´ees avec des valeurs de L allant de L = 1, 0 `a L = 4, 0. D’apr`es cette figure, on observe que la valeur de L s´electionn´ee permet d’obtenir des coˆuts diff´erents de 0 et 1 pour des valeurs de diff´erence d’´el´evation situ´ees entre 0,5 m et 4,5 m tandis qu’une valeur de L plus forte telle que L = 4, 0 restreint ce seuillage `a des valeurs de diff´erences entre 1,0 m et 4,0 m. Au contraire, une valeur de L plus faible n’est pas suffisamment restrictive car on observe alors des valeurs de coˆut encore importantes (et donc une probabilit´e plus faible de changements positifs) pour une diff´erence d’´el´evation de 4,0 m qui est pourtant une diff´erence d’´el´evation non n´egligeable. Le param`etre L a ainsi ´et´e choisi `a L = 3, 0, cette valeur paraˆıt plus adapt´ee aux diff´erences d’´el´evation recherch´ees. 98CHAPITRE 4. DEVELOPPEMENT D’UNE M ´ ETHODE DE D ´ ETECTION DES ´ CHANGEMENTS D’EL´ EVATION ´ Figure 4.3 – Fonction sigmo¨ıde permettant le calcul des coˆuts d’attache aux donn´ees pour le label changement positif. Les quatre courbes illustrent les r´esultats pour diff´erentes valeurs de L utilis´ees. Il faut noter cependant que l’impact de L sur le r´esultat final est plutˆot faible. Nous rappelons que tous les pixels appartenant `a l’un ou l’autre des masques des MNS g´en´er´es `a t1 et t2 sont d´efinis `a z´ero dans le MNS diff´erentiel. Leur probabilit´e de changement est donc fix´ee `a z´ero tandis que leur probabilit´e de non–changement est tr`es ´elev´ee. Le label de ces pixels n’est cependant pas fix´e de fa¸con d´efinitive, ainsi, selon la r´egularisation employ´ee et le voisinage de ces pixels, leur labellisation en changement est autoris´ee si les conditions sont favorables. Le terme de r´egularisation, CReg((xi , r(xi)),(xi+1, r(xi+1))) correspond `a un coˆut de transition seulement et calcul´e selon le mod`ele de Potts [68]. Ce terme d´epend ainsi de la variation de labels entre deux pixels cons´ecutifs xi et xi+1 de la s´equence. Il est d´efini par : C T ((xi , r(xi)),(xi+1, r(xi+1))) =    0 si r(xi) = r(xi+1) 1 si r(xi) 6= r(xi+1) (4.3) Enfin, le param`etre λ repr´esente, dans ce contexte, une variable particuli`erement importante puisqu’elle d´efinit le poids accord´e `a la fonction de r´egularisation par rapport `a celui de la 994.3. CONCLUSION fonction d’attache aux donn´ees. Plus cette valeur est ´elev´ee, plus la contrainte de r´egularisation sera importante et aura tendance `a supprimer les variations fines de labels et donc les alarmes de changements les plus petites spatialement et inversement. Le param`etre λ permet alors le contrˆole de l’´equilibre entre la pr´ecision de la d´etection et la sensibilit´e aux changements r´eels de la sc`ene. 4.3 Conclusion La m´ethode d’analyse du MNS diff´erentiel que nous avons d´evelopp´ee est bas´ee sur la classification des pixels selon des labels changements positifs, changements n´egatifs ou non–changement en fonction de la valeur du pixel et de son voisinage, pris en compte `a travers une contrainte de r´egularisation spatiale. Les param`etres de la m´ethode sont d´ecrits dans le tableau 4.1. Cette m´ethode de filtrage global permet ainsi le contrˆole de la pr´ecision et de la sensibilit´e du r´esultat grˆace au param`etre de r´egularisation λ, contrˆole d’autant plus important qu’il va permettre `a l’utilisateur de moduler le r´esultat en fonction des changements recherch´es. Les r´esultats obtenus par cette m´ethode de d´etection des changements d’´el´evation et selon diff´erents param`etres seront analys´es dans la section 5 Param`etre impact Valeur Seuil T Impact important D´epend de la r´esolution alti. du MNS sur la hauteur des changements d´etect´es pour 1 m : seuil = 2,5 m R´egularisation Impact important sur la pr´ecision D´epend des r´esultats recherch´es et sensibilit´e du r´esultat g´en´eralement entre 2 et 7 Directions Impact mod´er´e sur le r´esultat G´en´eralement pos´ee `a 12 Courbure L Impact n´egligeable D´epend du seuil en ´el´evation des changements recherch´es Table 4.1 – Tableau de synth`ese des param`etres n´ecessaires `a la m´ethode de d´etection des changements d’´el´evation. 100Chapitre 5 Exp´erimentation et discussion des r´esultats de la m´ethode de d´etection des changements d’´el´evation Afin d’analyser les performances de la m´ethode de d´etection des changements, trois sites sont analys´es `a travers la pr´ecision de la m´ethode (quantit´e de fausses alarmes d´etect´ees par rapport au nombre total de d´etections) et sa sensibilit´e, aussi appel´ee rappel, (quantit´e de bonnes d´etections retrouv´ees par rapport au nombre total de changements de la sc`ene). Les deux premiers sites sont repr´esent´es par plusieurs zones choisies sur les villes de Phoenix (Arizona, USA) et de Christchurch (Nouvelle–Z´elande), villes dynamiques `a d´eveloppement continu. Le troisi`eme site se trouve dans la r´egion de Tohoku (Japon), et plus particuli`erement sur la ville de Sendai. Cette zone, qui a ´et´e d´evast´ee par une catastrophe majeure, permet en effet d’analyser les r´esultats de la m´ethode dans un contexte de crise. 1015.1. PRESENTATION DES ZONES DE TEST ´ 5.1 Pr´esentation des zones de test 5.1.1 Phoenix Sur la ville de Phoenix, deux couples st´er´eoscopiques ont ´et´e acquis en 2008 et 2011 par le capteur WorldView-1 (cf. tableau 1.1, chapitre 1, section 1.4). Trois zones d’´etudes ont ´et´e d´efinies `a partir de ces images. Ces zones, d’une taille de 2000 × 2000 pixels ont ´et´e s´electionn´ees sur l’image en fonction du nombre de changements qui ont ´et´e retrouv´es mais aussi en fonction de la vari´et´e de bˆatiments et infrastructures qu’elles contiennent. Les figures 5.1(a), 5.1(b) et 5.1(c) repr´esentent ces diff´erentes zones. La zone 1 (figure 5.1(a)) comprend de petits pavillons r´esidentiels, de nombreux parcs ainsi que des quartiers d’affaires. La zone 2 (figure 5.1(b)) contient plutˆot des quartiers d’affaires avec quelques tr`es hauts bˆatiments. Enfin, la zone 3 (figure 5.1(c)) pr´esente plutˆot des zones industrielles. Sur ces zones, on note aussi la pr´esence d’autoroutes avec de nombreux v´ehicules mobiles, de la v´eg´etation, ou encore des pavillons tr`es proches les uns des autres. Tous ces ´el´ements repr´esentent des sources d’erreurs potentiellement importantes pour les MNS, qui se r´epercutent dans la d´etection de changements. Ces diff´erentes difficult´es permettent ainsi de tester au mieux les performances de notre chaˆıne de traitements. Aucune v´erit´e terrain de type cadastrale n’´etant disponible sur la ville de Phoenix, une carte de r´ef´erence a ´et´e g´en´er´ee manuellement pour chacune des trois zones d’´etude. Plus pr´ecis´ement, cette carte a ´et´e cr´e´ee par comparaison visuelle entre les images acquises aux dates t1 et t2. Tous les changements du bˆati visibles ont ´et´e rep´er´es et localis´es dans cette carte de r´ef´erence, qu’ils soient de quelques m`etres carr´es (taille d’un conteneur) ou de plusieurs centaines de m`etres carr´es (bˆatiment industriel). Cependant, afin de mieux analyser les r´esultats, les changements ont ´et´e divis´es en deux cat´egories : les changements sup´erieurs ou ´egaux `a 15×15 pixels, soit 100 m2 pour des images `a 60 cm de r´esolution, et tous les changements de l’image. Ce seuil repr´esente la taille g´en´eralement d´etectable par les m´ethodes de d´etection de changements sur des images tr`es haute r´esolution d´ecrites par ailleurs [26]. Or, l’analyse des performances de la m´ethode lorsque toutes les tailles 102CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ (a) Illustration de la zone #1 de Phoenix. (b) Illustration de la zone #2 de Phoenix. (c) Illustration de la zone #3 de Phoenix. (d) Illustration de la zone de Christchurch. Figure 5.1 – Orthoimages provenant des images panchromatiques WorldView–1 repr´esentant les trois zones test´ees sur la ville de Phoenix et la zone de Christchurch. 1035.1. PRESENTATION DES ZONES DE TEST ´ (a) Orthoimage WorldView-1, 2008, Phoenix zone 1. (b) Donn´ee de r´ef´erence. En vert les changements de taille > 100 m2 , en noir les changements inf´erieurs `a 100 m2 Figure 5.2 – 5.2(a)Orthoimage calcul´ee et 5.2(b) donn´ee de r´ef´erence des changements de la zone 1 de Phoenix. de changements sont recherch´ees permet de mieux appr´ehender les limites de la m´ethode. Au cours de ces analyses de sensibilit´e, nous parlerons plutˆot de ce seuil `a 100 m2 mais nous pr´ecisons que ce seuil d´epend avant tout de la r´esolution des images native. Pour des images haute r´esolution `a 2 m, ce seuil serait calcul´e `a 15×15 pixels soit 300m2 . Finalement, sur la zone 1 de Phoenix, 126 changements de toutes tailles ont ´et´e recens´es dont 55 changements sup´erieurs `a 100 m2 (figure 5.2(b)). Sur la zone 2 de Phoenix, 71 changements ont ´et´e recens´es dont 22 larges changements. Enfin, sur la zone 3, 138 changements ont ´et´e retrouv´es dont 34 sup´erieurs `a 100 m2 . 5.1.2 Christchurch Sur la ville de Christchurch, en Nouvelle-Z´elande, nous disposons de deux acquisitions st´er´eoscopiques de 2009 et 2011 (cf. tableau 1.1, chapitre 1, section 1.4). A ces donn´ees s’ajoutent deux acquisitions LiDAR de 2010 et 2011. La zone commune aux donn´ees optiques et LiDAR a ´et´e s´electionn´ee pour tester la m´ethode de d´etection de changement. Cette zone, d’une superficie de 1200 km2 environ, est repr´esent´ee en figure 5.1(d). 104CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ Le LiDAR a ´et´e pr´ealablement r´e–´echantillonn´e `a une r´esolution planim´etrique identique `a celle des MNS (1 m). Cependant, la pr´ecision d’acquisition du LiDAR est largement meilleure que celle des MNS g´en´er´es. Les petites structures, les bˆatiments et tous les objets de la sc`ene sont donc plus nets 1 . Une d´etection des changements d’´el´evation entre les deux acquisitions LiDAR a donc ´et´e r´ealis´ee avec une r´egularisation faible (λ = 2, 0) et un seuil classique `a 2,5 m. L’objectif est de faire ressortir tous les changements de la sc`ene. Ainsi, les changements d´etect´es entre les deux acquisitions LiDAR sont consid´er´es comme suffisamment pr´ecis et exhaustifs pour repr´esenter une v´erit´e terrain qui permettra l’analyse des r´esultats obtenus sur cette zone par la d´etection de changements appliqu´ee entre les MNS g´en´er´es. Cependant, les LiDAR ayant ´et´e acquis `a des saisons diff´erentes, une faible r´egularisation a aussi fait ressortir tous les changements li´es `a la v´eg´etation. Ces changements ont dˆu ˆetre manuellement supprim´es de la v´erit´e terrain g´en´er´ee. De plus, une ann´ee s´epare la premi`ere acquisition satellite st´er´eoscopique de la premi`ere acquisition LiDAR (cf tableau 1.1, section 1.4). Afin de prendre en compte cet ´ecart et les changements ayant eu lieu entre ces acquisitions, ces derniers ont ´et´e d´etect´es en appliquant la m´ethode de d´etection entre l’acquisition satellite de 2009 et LiDAR de 2010, `a faible r´egularisation spatiale. Puis, ces changements ont ´et´e manuellement filtr´es des fausses alarmes telles que celles provenant de la v´eg´etation. La carte des changements ainsi obtenue a ensuite ´et´e additionn´ee `a la v´erit´e terrain. Tout comme pour les trois zones de Phoenix, les changements rep´er´es ont ´et´e divis´es selon les deux cat´egories : ceux de taille sup´erieure `a 100 m2 et tous les changements. Finalement, 43 changements de toutes tailles ont ´et´es rep´er´es sur la zone, dont 35 de taille sup´erieure `a 100 m2 . 5.1.3 R´egion de Tohoku : analyse d’une zone catastroph´ee La r´egion de Tohoku est situ´ee au Nord Est du Japon, sur la pr´efecture de Miyagi. 1. Nous rappelons que pour des raisons de confidentialit´e des donnn´ees, les donn´ees LiDAR ne peuvent ˆetre pr´esent´ees ici. 1055.1. PRESENTATION DES ZONES DE TEST ´ (a) Orthoimage Ikonos de 2010, Sendai. (b) Orthoimage Ikonos de 2011, Sendai. (c) MNS obtenu `a partir du couple Ikonos 2010. (d) MNS obtenu `a partir du couple Ikonos 2011. Figure 5.3 – Ortho images et MNS calcul´es avant et apr`es la catastrophe de Sendai du 11/03/2011. 106CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ Cette r´egion a ´et´e frapp´ee le 11 mars 2011 par un s´eisme de magnitude 9 qui a ´et´e suivi par l’un des plus puissants tsunamis jamais connus au Japon puisque la vague a atteint 7,6 m de haut pr`es de la pr´efecture de Miyagi et plus de 40 m plus au Nord [70]. Un rapport de police fait ´etat de plus de 15 000 personnes d´ec´ed´ees et 2800 disparus. Le tsunami a aussi g´en´er´e de tr`es importants d´egˆats avec pr`es de 240 000 bˆatiments d´etruits et 224 000 partiellement endommag´es. Les images pr´esent´ees en figures 5.3(a) et 5.3(b) montrent une partie de la r´egion touch´ee par cette catastrophe, avant et apr`es le 11 mars 2011. Ces images proviennent de couples st´er´eoscopiques acquis par le capteur Ikonos le 11 d´ecembre 2010 et le 13 aoˆut 2011 (cf. tableau 1.1, chapitre 1, section 1.4). Contrairement aux zones de Phoenix et Christchurch pr´ec´edemment pr´esent´ees, la zone de Sendai montre un paysage totalement diff´erent entre les acquisitions avant et apr`es le passage du tsunami. La zone habitable a ´et´e presque totalement d´etruite de mˆeme que tous les terrains agricoles aux alentours. Ce type de paysage rendrait totalement impossible une d´etection de changements radiom´etriques qui g´en`ererait alors un tr`es grand nombre de fausses alarmes. Les MNS pr´esent´es en figures 5.3(c) et 5.3(d) font ´etat de l’ampleur de la catastrophe et des destructions g´en´er´ees. Afin de tester les performances du syst`eme pour la d´etection des d´egˆats, une large zone, d’environ 360 km2 a ´et´e s´electionn´ee parmi les zones les plus touch´ees (repr´esent´ee par le rectangle rouge dans les figures 5.3(a) et 5.3(b). Cette zone ainsi que la carte de r´ef´erence des changements sont illustr´ees en figure 5.4. On peut observer sur cette zone la destruction totale de la partie la plus proche de la cˆote, puis, plus au nord–ouest, des bˆatiments qui semblent avoir r´esist´e. Le nombre de bˆatiments chang´es est alors largement sup´erieur `a celui des bˆatiments inchang´es. L’objectif est donc de tester notre chaˆıne de traitements sur une zone sinistr´ee afin d’observer les r´esultats obtenus en d´etection de changements du bˆati. Comme pour les zones urbaines pr´ec´edentes, une carte de r´ef´erence des changements a ´et´e r´ealis´ee sur la zone. Cependant, les d´egˆats importants et donc les changements massifs rendent difficile la quantification des r´esultats, notamment par le coefficient Kappa (que nous 1075.1. PRESENTATION DES ZONES DE TEST ´ expliquerons section 5.2.2). Pour r´esoudre ce probl`eme et quantifier pr´ecis´ement les performances de la m´ethode, la carte de r´ef´erence contient tous les changements (bˆatiments d´etruits) mais aussi les non–changements (bˆatiments intacts) de la sc`ene. Au total, 220 bˆatiments d´etruits ont ´et´e r´epertori´es et 76 bˆatiments intacts. Nous pr´ecisons cependant que cette carte de r´ef´erence, r´ealis´ee manuellement `a partir des images panchromatiques avant et apr`es la catastrophe, regroupe parfois plusieurs bˆatiments adoss´es les uns aux autres en un seul ´el´ement (d´etruit ou non), ce qui entraˆıne une diminution de sa pr´ecision. (a) Orthoimage Ikonos de 2010, Sendai. (b) Orthoimage Ikonos de 2011, Sendai. (c) Carte de r´ef´erence des bˆatiments d´etruits (en rouge) et intacts(en vert). Figure 5.4 – Zone partiellement d´etruite par le Tsunami et quantifi´ee `a travers la carte de r´ef´erence des bˆatiments d´etruits et intacts. 108CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ 5.2 M´etriques d’analyse des r´esultats de la d´etection de changements 5.2.1 Variables calcul´ees Afin d’analyser les performances de la m´ethode, les alarmes, vraies ou fausses, d´etect´ees par la m´ethode sont compt´ees `a l’´echelle de l’objet et non du pixel. En effet, la qualit´e de nos donn´ees de r´ef´erence, et notamment le d´etourage des changements dans les cartes de r´ef´erence g´en´er´ees manuellement, ne permet pas une correspondance au pixel pr`es entre les d´etections sur la carte des changements d´etect´es et les changements d´etour´es sur la carte de r´ef´erence. De plus, la m´ethode de d´etection des changements mise en place est bas´ee sur une r´egularisation spatiale ce qui tend `a ´eroder les bords des alarmes de changements dans la carte r´esultat. Le d´ecompte des pixels bien ou mal class´es ne repr´esenterait alors pas la r´ealit´e de la d´etection. Le d´ecompte des vraies et fausses d´etections est donc effectu´e au niveau objet, c’est–`a–dire que tout pixel isol´e ou amas de pixels connexes (avec 8 connexes consid´er´es autour de chaque pixel) rencontr´e dans la carte des changements r´esultante est compt´e comme une alarme de changement. Ainsi, une vraie d´etection est confirm´ee d´es lors qu’un, ou plusieurs pixels, labellis´es en changement dans la carte des changements, correspondent `a un changement r´eel dans la carte de r´ef´erence. Inversement, si un pixel isol´e, ou un amas de pixels, labellis´e changement dans la carte des changements, ne correspond `a aucun changement de la carte de r´ef´erence, cette d´etection est consid´er´ee comme une fausse alarme. Nous noterons enfin que dans la carte de r´ef´erence des changements, les changements r´eels sont marqu´es sans consid´eration de leur sens (changement positif ou n´egatif). Le d´ecompte des changements r´eels bien d´etect´es par la m´ethode se fait donc sans cette consid´eration (on parlera des classes changement et non–changement). En effet, le d´ecompte s´epar´e des changements positifs et n´egatifs n’apporte pas d’indice sur les performances de la m´ethode. La d´etection distincte de ces changements lors du calcul de la carte des changements est n´ecessaire au fonctionnement de la m´ethode de d´etection mais pas `a l’analyse des r´esultats. La quantification des r´esultats est effectu´ee `a travers le calcul de plusieurs variables : 1095.2. METRIQUES D’ANALYSE DES R ´ ESULTATS DE LA D ´ ETECTION DE ´ CHANGEMENTS – TP (True Positives ou vrai positifs) : nombre de changements r´eels bien d´etect´es, – TN (True Negatives ou vrai n´egatifs) : nombre de non–changements bien d´etect´es, – FP (False Positives ou faux positifs) : nombre de non–changements d´etect´es comme changement (aussi appel´e fausse alarme), – FN (False Negatives ou faux n´egatifs) : nombre de changements r´eels omis (ou omissions). Le calcul de la quantit´e TN est difficile et n’a jamais ´et´e r´ealis´e, `a notre connaissance, `a l’´echelle objet dans la litt´erature. Pourtant cette variable est essentielle pour le calcul d’une de nos m´etriques d’analyse, le coefficient Kappa. Lors de ce travail, nous avons choisi de calculer cette valeur selon une d´efinition empirique, bas´ee sur le nombre de pixels total de l’image divis´e par la taille moyenne d’un objet (´equation 5.1). De cette fa¸con, l’image est consid´er´ee comme si elle ´etait totalement constitu´ee d’objets `a d´etecter. T N = (l × c) moyenneobjet − T P − F N − F P. (5.1) Dans l’´equation 5.1, l et c repr´esentent le nombre de lignes et de colonnes de l’image respectivement, moyenneobjet repr´esente la taille moyenne d’un objet d’une sc`ene urbaine. Il est d´etermin´e ici `a environ 15 × 15 pixels, valeur consid´er´ee comme une taille moyenne de d´etections si toutes les d´etections (vraies et fausses) sont compt´ees `a faible r´egularisation. Avec cette d´efinition particuli`ere de TN, toute l’emprise de l’image est alors prise en compte, quelle que soit la densit´e des habitations. En effet, si le TN devait ˆetre repr´esent´e par le nombre de bˆatiment uniquement, alors, dans une sc`ene contenant moins de 10 bˆatiments mais de nombreuses sources de fausses alarmes, le nombre de fausses alarmes serait particuli`erement ´elev´e et le TN tr`es faible, diminuant la pr´ecision de la m´ethode sans pour autant repr´esenter la r´ealit´e de la d´etection. La consid´eration de la sc`ene comme recouverte d’objets permet ainsi d’am´eliorer la pr´ecision du calcul des performances de la m´ethode. Il est cependant `a noter que cette variable TN sera utilis´ee dans une m´etrique particuli`ere permettant la comparaison, entre elles, des classifications r´ealis´ees dans ce travail et la recherche des param`etres de la m´ethode les plus adapt´es. La d´efinition de TN est alors la mˆeme pour tous les r´esultats de classification qui seront compar´es lors de ce travail. 110CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ 5.2.2 M´etriques d’analyse Les m´etriques d’analyse des r´esultats utilis´ees sont des m´etriques standards qui permettent l’´evaluation des performances de la d´etection de changements par rapport aux donn´ees de r´ef´erence. Les m´etriques les plus classiques correspondent aux taux de bonnes d´etections (ou True Positive Rate, TPR) et de fausses d´etections (ou False Positive Rate, FPR), calcul´ees selon les ´equations 5.2. T P R = T P T P + F N × 100, F P R = F P F P + T P × 100. (5.2) Une autre m´etrique importante est repr´esent´ee par le coefficient Kappa (´equation 5.3) qui correspond au calcul de l’accord entre la v´erit´e terrain et le r´esultat de classification obtenu. La premi`ere description et utilisation de ce coefficient provient de Cohen [71] et a permis de calculer le degr´e de coh´erence entre deux jugements psychiatriques ind´ependants. Plus r´ecemment et dans notre domaine d’´etude, ce coefficient a ´et´e employ´e notamment par Wilkinson [72] pour l’analyse et l’inter–comparaison des r´esultats de diff´erentes m´ethodes de classification d’images recens´es sur 15 ans. L’objectif de cette analyse ´etait l’´evaluation des performances de nombreuses m´ethodes de classification supervis´ees ou non, utilisant des donn´ees externes ou non et quel que soit le nombre de classes ou la r´esolution initiale de l’image. Dans ce contexte, l’utilisation du coefficient Kappa, dont les donn´ees d’entr´ees correspondent au nombre de classes et aux variables TP, TN, FP et FN d´ecrites pr´ec´edemment, apparaˆıt alors particuli`erement adapt´ee. Ce coefficient est calcul´e selon l’´equation suivante : K = OA − Pe 1 − Pe , (5.3) OA = T P T P + F P + F N , (5.4) Pe = M (T P + F P + T N + F N) 2 , (5.5) M = (T P + F P) × (T P + F N) + (F N + T N) × (F P + T N). (5.6) 1115.3. ANALYSE DE SENSIBILITE DES R ´ ESULTATS OBTENUS ´ OA correspond `a la pr´ecision g´en´erale de la classification (Overall Accuracy). Pe est d´ecrit comme le taux de concordance al´eatoire. Cette valeur est ´egale `a 1 si la correspondance entre la v´erit´e terrain et le r´esultat de classification obtenu est uniquement le fait du hasard et `a 0 sinon. L’avantage de cette m´etrique est d’ˆetre particuli`erement adapt´ee lorsque les classes en pr´esence sont d´es´equilibr´ees, c’est–`a–dire, dans notre contexte, lorsque la classe des non– changements est tr`es grande par rapport `a la classe changement. De plus, les taux de vraies et de fausses d´etections ne permettent pas de d´efinir la r´egularisation qui entraˆınera le meilleur ´equilibre entre fausses alarmes et bonnes d´etections. En effet, ces m´etriques, ind´ependantes l’une de l’autre, indiquent le meilleur param´etrage de l’algorithme en fonction du taux de bonnes d´etections recherch´ees ou bien du taux de fausses alarmes maximum accept´e. Le coefficient Kappa prend en compte tous les termes de la matrice de confusion de la d´etection de changement (TP, TN, FP, FN). Cette m´etrique permet ainsi la comparaison pr´ecise de plusieurs classifications tout en mettant en ´evidence le param´etrage de l’algorithme le plus adapt´e, qui correspond alors `a la meilleure correspondance entre la carte de r´ef´erence des changements et la carte calcul´ee et donc au meilleur ´equilibre entre bonnes d´etections et fausses alarmes. Le calcul du coefficient Kappa est donc particuli`erement important pour l’analyse compl`ete des r´esultats obtenus par la m´ethode de d´etection tandis que l’analyse des diff´erents taux de bonne ou fausse d´etection est importante pour expliquer le comportement du Kappa. Ces deux m´etriques sont tr`es compl´ementaires entre elles. 5.3 Analyse de sensibilit´e des r´esultats obtenus Dans cette section, plusieurs analyses de sensibilit´e sont effectu´ees. Elles concernent les diff´erents param`etres de la m´ethode et leur impact sur les r´esultats mais aussi l’analyse de l’impact de la qualit´e des donn´ees d’entr´ee (MNS) ou des changements recherch´es ou encore l’analyse des performances en fonction des caract´eristiques de la zone ´etudi´ee. Les cartes de d´etections de changements calcul´ees en vue de ces analyses de sensibilit´e ont, 112CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ pour la plupart, ´et´e g´en´er´ees `a partir de la zone 1 de Phoenix. Cette zone pr´esente en effet de tr`es nombreux changements et des sources r´eduites de fausses alarmes ce qui en fait une zone test int´eressante pour la mesure de l’influence des param`etres ou des donn´ees d’entr´ee. 5.3.1 Influence des param`etres de la m´ethode sur les r´esultats Nombre de directions de la programmation dynamique Le premier param`etre de la d´etection de changements que nous ´etudions est le nombre de directions utilis´ees dans le calcul. En effet, comme d´ecrit dans le chapitre 2, section 2.2.3, l’algorithme de programmation dynamique, con¸cu au cours de cette th`ese, n´ecessite le calcul des coˆuts de labellisation selon plusieurs directions dans l’image, coˆuts calcul´es ind´ependamment pour chaque direction puis fusionn´es afin de retrouver la solution finale de labellisation. Nous avons montr´e en effet que l’utilisation de nombreuses directions permet de limiter les effets de streaking sur le r´esultat final. Les figures 5.5(c), 5.5(d), 5.5(e) et 5.5(f) illustrent les r´esultats obtenus avec 1, 8, 12 et 16 directions respectivement et une r´egularisation moyenne λ = 3, 0. On observe que lorsqu’une seule direction est calcul´ee, les effets de streaking sont particuli`erement importants (visible le long des lignes de l’image 5.5(c)). D’apr`es la figure 5.5(d), le calcul de 8 directions r´eduit l’effet de streaking. Puis, de 12 `a 16 directions, le r´esultat est globalement identique et l’effet de streaking est quasi nul. La figure 5.6 pr´esente les taux de bonnes et fausses d´etections obtenues avec une r´egularisation fix´ee `a λ = 3, 0 et un nombre variable de directions de calcul, de 1 `a 16 directions. La r´egularisation a ´et´e fix´ee `a une valeur relativement faible afin de bien observer l’impact de ce nombre de directions sur un grand nombre de d´etections. Comme attendu d’apr`es les figures pr´ec´edentes, on observe une tr`es forte diminution des fausses alarmes (mais aussi des bonnes d´etections) entre 1 et 4 directions de calcul. A partir de 4 ` directions, les taux diminuent de fa¸con moins flagrante puis ils semblent se stabiliser entre 12 et 16 directions. 1135.3. ANALYSE DE SENSIBILITE DES R ´ ESULTATS OBTENUS ´ (a) Orthoimage WorldView-1, 2008. (b) Orthoimage WorldView-1, 2011. (c) Carte des changements calcul´ee avec 1 direction de calcul. (d) Carte des changements calcul´ee avec 8 directions de calcul. (e) Carte des changements calcul´ee avec 12 directions de calcul. (f) Carte des changements calcul´ee avec 16 directions de calcul. Figure 5.5 – Cartes de d´etection de changements obtenues `a partir d’un nombre variable de directions de calcul et une r´egularisation λ = 3, 0. R´esultats calcul´es sur la zone 1 de Phoenix. 114CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ Figure 5.6 – Illustration de l’impact du nombre de directions de calcul sur les taux de bonnes et fausses d´etections. R´esultats calcul´es sur la zone 1 de Phoenix avec une r´egularisation λ = 3, 0. La d´etection de changements est donc g´en´eralement calcul´ee avec 12 directions. Le calcul `a 16 directions n’apportant pas de diff´erences significative au r´esultat mais augmente le temps de traitement. Param`etre de r´egularisation Le param`etre λ est le param`etre ayant le plus d’influence sur le r´esultat de d´etection de changements. Les figures 5.7(c), 5.7(d), 5.7(e) et 5.7(f) illustrent qualitativement l’effet de ce param`etre. Chacune de ces figures repr´esente une carte de d´etection de changements obtenue `a partir d’un λ ´egal `a 2,0, 3,0, 4,5 et 6,0, respectivement. D’apr`es ces figures, les alarmes de changements disparaissent en fonction de leur taille, que ce soit les fausses alarmes (situ´ees principalement dans la carte obtenue avec une tr`es faible r´egularisation) ou les vrais changements, et ce, de la plus faible `a la plus forte r´egularisation. On note, par exemple, que de nombreux changements r´eels marqu´es dans la carte de r´ef´erence ne sont pas d´etect´es `a λ = 6, 0. Afin d’observer les effets de la r´egularisation sur les r´esultats de d´etection de changement, les taux de bonnes d´etections (TPR) et de fausses alarmes (FPR) ont ´et´e trac´es en fonction du 1155.3. ANALYSE DE SENSIBILITE DES R ´ ESULTATS OBTENUS ´ param`etre de r´egularisation sur les figures 5.8(a) `a 5.8(d). (a) Orthoimage WorldView-1 de 2008, Phoenix zone #1. (b) Orthoimage WorldView-1 de 2011, Phoenix zone #1. (c) Carte des d´etections obtenue avec λ = 2. (d) Carte des d´etections obtenue avec λ = 3. (e) Carte des d´etections obtenue avec λ = 5. (f) Carte des d´etections obtenue avec λ = 6. Figure 5.7 – Cartes des d´etections calcul´ee avec diff´erentes valeurs de λ et 12 directions. R´esultats calcul´es sur la zone 1 de Phoenix avec une r´egularisation λ = 3, 0 116CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ Ces figures pr´esentent le comportement des m´etriques avec l’augmentation de la r´egularisation. Dans un premier temps, les TPR (figures 5.8(a) et 5.8(c)) marquent un palier proche de 100% de bonnes d´etections tandis que les taux de FPR, d’abord tout aussi haut, diminuent de fa¸con presque lin´eaire. Puis, pour des λ entre 2,5 et 3,5, le taux de bonnes d´etections commence `a d´ecroˆıtre mais plus faiblement que le taux de fausses alarmes qui baisse drastiquement. Puis la courbe des fausses alarmes atteint un pallier vers λ = 4, 0 de mˆeme que celle des TPR qui ne d´ecroit que faiblement. Ce comportement r´esulte en fait de la suppression des petites fausses alarmes, souvent tr`es nombreuses `a faible r´egularisation, ce qui entraˆıne une tr`es forte baisse des taux FPR. Les petits changements pertinents, eux aussi supprim´es, sont cependant moins nombreux, expliquant la d´ecroissance moins rapide de la courbe des TPR. Lorsque toutes ces petites d´etections sont supprim´ees, les d´etections restantes sont alors des fausses alarmes ou des vraies d´etections de taille importante et donc tr`es difficiles `a supprimer `a moins d’augmenter tr`es fortement la r´egularisation, ceci explique le palier `a la fin des courbes. Autres param`etres de la m´ethode Nous avons vu, dans la section 4, que d’autres param`etres interviennent dans la m´ethode de d´etection de changements d´evelopp´ee. Ces param`etres sont notamment le seuil T, fix´e `a 2,5 m et la courbure L, fix´ee `a 3,0. Des analyses de sensibilit´e pourraient ˆetre r´ealis´ees pour observer les performances de la m´ethode en fonction de ces deux param`etres. Cependant, le seuil a ´et´e fix´e ici d’apr`es une valeur standard et en consid´erant la r´esolution altim´etrique obtenue pour les MNS. C’est pourquoi aucune ´etude n’a ´et´e men´ee quant `a la sensibilit´e de ce param`etre. La courbure L permet, comme nous l’avons montr´e, de contrˆoler les coˆuts pour chaque label en fonction de la proximit´e entre la valeur du pixel et le seuil. Ce param`etre n’a cependant que peu d’impact d’apr`es les quelques tests que nous avons r´ealis´es cependant aucune analyse compl`ete n’a encore ´et´e effectu´ee. 1175.3. ANALYSE DE SENSIBILITE DES R ´ ESULTATS OBTENUS ´ 5.3.2 Impact de la qualit´e des donn´ees d’entr´ee Influence de la qualit´e des MNS Afin d’observer la sensibilit´e de la m´ethode de d´etection des changements envers les donn´ees d’entr´ee qui lui sont inject´ees, c’est–`a–dire les MNS utilis´es, l’algorithme a ´et´e test´e sur des MNS de qualit´e diff´erente : les MNS obtenus apr`es une mise en correspondance asym´etrique simple et les MNS obtenus apr`es fusion de MNS asym´etriques (technique d´ecrite dans le chapitre 3, section 3.3). La qualit´e de ces MNS a ´et´e discut´ee dans section 3.4. Les figures 5.8 pr´esentent les r´esultats obtenus pour la zone 1 de Phoenix, dont les changements ont ´et´e d´etect´es `a partir des MNS asym´etriques (courbes vertes et turquoises pointill´ees) et des MNS fusionn´es (courbes bleues et rouges pleines). Les r´esultats ont ´et´e calcul´es sur la zone 1 de Phoenix puis trac´es en fonction du param`etre λ utilis´e. Les figures 5.8(a) et 5.8(c) pr´esentent les taux de bonnes et de fausses d´etections lorsque seuls les changements sup´erieurs `a 100 m2 sont consid´er´es et lorsque tous les changements sont consid´er´es. D’apr`es ces figures, les taux de bonnes d´etections obtenues avec les MNS fusionn´es apparaissent sensiblement plus ´elev´es que ceux obtenus avec les MNS asym´etriques : une diff´erence de 5% `a 20% est not´ee. De mˆeme, les taux de fausses alarmes d´etect´ees `a partir des MNS fusionn´es sont plus faibles que ceux obtenus avec les MNS asym´etriques. L’´ecart constat´e est de 0 `a plus de 10%. Les figures 5.8(b) et 5.8(d) pr´esentent les coefficients Kappa obtenus pour tous les changements ou les changements sup´erieurs `a 100 m2 uniquement, pour le MNS fusionn´e et pour le MNS asym´etrique pr´esent´es. D’apr`es ces figures, le Kappa apparaˆıt fortement corr´el´e aux taux de fausses et bonnes d´etections : plus les taux de vraies d´etections et de fausses d´etections sont proches l’un de l’autre (c’est–`a–dire autant de bonnes d´etections que de fausses alarmes) plus le Kappa est faible, indiquant une mauvaise classification et inversement un taux de bonnes d´etections tr`es sup´erieur `a un taux de fausses alarmes entraine un fort coefficient Kappa et donc une bonne classification. 118CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ (a) Taux de vrais et faux positifs calcul´es pour les changements sup´erieurs `a 100 m2 . (b) Coefficient Kappa calcul´e pour les changements sup´erieurs `a 100 m2 . (c) Taux de vrais et faux positifs calcul´es pour tous les changements de la sc`ene. (d) Coefficient Kappa calcul´e pour tous les changements de la sc`ene. Figure 5.8 – 5.8(a) et 5.8(c) variation des taux de fausses et vraies d´etection en fonction de la r´egularisation λ. 5.8(b) et 5.8(d) : Variations du coefficient Kappa en fonction de la r´egularisation λ. R´esultats calcul´es pour la zone 1 de Phoenix. Comme attendu ici, les valeurs de Kappa obtenues `a partir des MNS fusionn´es sont largement plus hautes que celles provenant des r´esultats de MNS asym´etriques, quelle que soit la taille des changements recherch´es. D’apr`es les diff´erents taux TPR et FPR calcul´es, cela s’explique par le nombre important 1195.3. ANALYSE DE SENSIBILITE DES R ´ ESULTATS OBTENUS ´ des fausses alarmes par rapport au nombre total de d´etections lorsque les MNS utilis´es sont asym´etriques. En effet, les MNS fusionn´es pr´esentent une meilleure pr´ecision sur les fines structures de la sc`ene et moins d’erreurs de corr´elation, entraˆınant un taux de fausses alarmes plus faible. Cette diff´erence a n´eanmoins tendance `a disparaˆıtre avec des r´egularisations plus importantes puisque ce param`etre agit comme un filtre qui supprime les plus fines erreurs des MNS. Le r´esultat final `a haute r´egularisation est alors tr`es similaire que ce soit pour les MNS fusionn´es ou pour les MNS asym´etriques. Influence de la taille de changements recherch´ee Les figures 5.8 pr´esentent les r´esultats obtenus pour la zone 1 de Phoenix lorsque l’on consid`ere les changements sup´erieurs `a 100 m2 (figures 5.8(a) et 5.8(b)). Dans ce cas, le taux de bonnes d´etections observ´e est de 100% `a plus de 75% pour des r´egularisations de 1 `a 6,5. A la valeur de Kappa maximum (soit `a une r´egularisation `a ` λ = 5, 0 d’apr`es la figure 5.8(b)), le taux de bonnes d´etections est de 90%, avec moins de 10% de fausses alarmes. Lorsque les changements de toutes tailles sont consid´er´es, la valeur maximale du kappa atteint seulement 0,76 pour une r´egularisation `a λ = 3, 0. D’apr`es la figure 5.8(c), cela correspond `a environ 80% des changements bien d´etect´es et 35% de fausses alarmes. En effet, les changements inf´erieurs `a 100 m2 repr´esentent les deux tiers de tous les changements mais sont tr`es difficiles `a d´etecter et ont tendance `a ˆetre supprim´es rapidement lorsque la r´egularisation augmente. Une plus faible r´egularisation est donc n´ecessaire pour les rep´erer ce qui implique alors un taux de fausses alarmes r´esiduelles plus important et donc un coefficient Kappa plus faible. Nous rappelons que la taille des changements recherch´es d´epend en premier lieu de la r´esolution des images (puis des MNS) en entr´ee de la chaˆıne de traitements. En effet, la taille de 100 m2 (soit 15 × 15 pixels) est adapt´ee pour des images acquises `a 60 cm de r´esolution permettant la g´en´eration de MNS `a 1 m de r´esolution spatiale. Cette taille doit ˆetre red´efinie en fonction de la r´esolution des images d’entr´ee du syst`eme. 120CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ 5.3.3 Int´erˆet d’une m´ethode globale : comparaison avec un filtrage local Cette section pr´esente la comparaison de la m´ethode de classification des changements employ´ee avec une m´ethode plus classique, repr´esent´ee par un filtrage morphologique. Ce type de filtrage local est en effet souvent utilis´e dans la litt´erature et plus particuli`erement par Tian [26] et Chaabouni [22] pour l’analyse de MNS diff´erentiels en vue de la d´etection des changements d’´el´evation. Le filtrage local test´e est appliqu´e sur le r´esultat d’une segmentation (`a +2,5 m et -2,5 m, valeur de seuil identique `a celle utilis´ee dans le filtrage global) du MNS diff´erentiel. Ce filtrage est bas´e sur l’application d’une op´eration morphologique sur l’image segment´ee, sous forme d’une ouverture. Pour rappel, une ouverture (binaire), en morphologie math´ematique, correspond `a l’´erosion des amas de pixels connexes portant une valeur ´egale `a 1 (donc un label changement dans notre cas) `a l’aide d’un ´el´ement structurant, suivi par la dilatation de ces mˆemes amas avec le mˆeme ´el´ement [73]. Cette op´eration permet de supprimer les d´etections (vraies ou fausses) de taille inf´erieure `a l’objet structurant. Ainsi, la variation de la taille de l’objet structurant permet de contrˆoler le nombre de fausses d´etections mais aussi celui des vraies d´etections en fonction de leur taille. Cette technique se rapproche ainsi du filtrage global dont le param`etre de r´egularisation permet aussi le contrˆole des taux de fausses alarmes et de vrais positifs. Les r´esultats de ce filtrage morphologique sont pr´esent´es dans les figures 5.9 et compar´es aux r´esultats obtenus avec le filtrage global. Sur les figures, les courbes noires repr´esentent les r´esultats obtenus avec le filtrage morphologique. Les courbes bleues et rouges pr´esentent les r´esultats obtenus avec le filtrage global pour les changements sup´erieurs `a 100 m2 et tous les changements, respectivement. Lorsque seuls les changements importants (sup´erieurs `a 100 m2 ) sont consid´er´es, les taux de bonnes d´etections des deux types de filtrage atteignent tous les deux les 100% (`a faible r´egularisation) mais avec des taux de fausses alarmes de 78% environ pour le filtrage morphologique et de 50% pour le filtrage optimis´e (figure 5.9(a)). 1215.3. ANALYSE DE SENSIBILITE DES R ´ ESULTATS OBTENUS ´ (a) Taux de vrais et faux positifs calcul´es pour les changements sup´erieurs `a 100 m2 . (b) Coefficient Kappa calcul´e pour les changements sup´erieurs 100 m2 . (c) Taux de vrais et faux positifs calcul´es pour tous les changements de la sc`ene. (d) Coefficient Kappa calcul´e pour tous les changements de la sc`ene. Figure 5.9 – 5.9(a) et 5.9(c) : Variations des taux de fausses et vraies d´etections en fonction de la r´egularisation λ ou de la taille de l’´el´ement structurant. 5.9(b) et 5.9(d) : Variations du coefficient Kappa en fonction de la r´egularisation λ ou de la taille de l’´el´ement structurant. R´esultats calcul´es sur la zone 1 de Phoenix Si un faible taux de fausses alarmes est recherch´e (moins de 10%), le taux de bonnes d´etections descend alors `a 58% pour le filtrage morphologique tandis qu’il se maintient au–dessus des 90% pour le filtrage optimis´e. Les courbes Kappa (figure 5.9(b)) confirment une diff´erence importante entre les r´esultats des 122CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ filtrages puisque la valeur maximale du Kappa atteint par le filtrage optimis´e est de 0,92 tandis qu’elle atteint seulement 0,72 pour le filtrage morphologique. Lorsque tous les changements sont consid´er´es, le taux de bonnes d´etections du filtrage morphologique apparaˆıt globalement plus ´elev´e que celui du filtrage optimis´e mais le taux de fausses alarmes est plutˆot ´elev´e par rapport `a celui du filtrage optimis´e (figure 5.9(c)). Les courbes Kappa montrent en effet que certains r´esultats des filtrages optimal et morphologique sont comparables lorsqu’une r´egularisation de λ = 4, 0 est utilis´ee pour le filtrage optimis´e et un ´el´ement structurant de taille 5 × 5 est utilis´e pour le filtrage morphologique. Avec ces param`etres, le filtrage optimis´e pr´esente un TPR d’environ 58% et un FPR d’environ 10% tandis que le filtrage morphologique pr´esente un TPR d’environ 61% pour un taux FPR d’environ 20%, entraˆınant une valeur de Kappa de 0,68. Cependant, pour une r´egularisation `a λ = 3, 5, r´egularisation donnant les meilleurs r´esultats pour le filtrage optimis´e d’apr`es les courbes Kappa en figure 5.9(d), le TPR obtenu est d’environ 72% pour un FPR de moins de 30% et une valeur de kappa `a 0,71, l´eg`erement meilleure que celle obtenu par filtrage morphologique. Les r´esultats obtenus pour le filtrage morphologique apparaissent ainsi d’une qualit´e presque semblable `a celle du filtrage optimis´e lorsque tous les changements sont recherch´es mais tr`es en dessous des r´esultats du filtrage optimis´e lorsque la d´etection se concentre sur les changements les plus larges uniquement. Les taux de bonnes d´etections et de fausses alarmes ´etant `a chaque fois inf´erieurs en qualit´e `a ceux du filtrage optimis´e. Si nous ne r´efutons pas que les r´esultats obtenus, particuli`erement pour les changements larges, peuvent ˆetre dus `a l’utilisation non optimale des op´erations morphologiques, nous montrons cependant ici que le filtrage optimis´e et son param´etrage peuvent ˆetre utilis´es de fa¸con tr`es simple et efficacement pour la recherche des changements quelle que soit leur taille. Tandis que les op´erations morphologiques peuvent ˆetre complexes `a param´etrer afin d’ˆetre adapt´ees aux changements recherch´es et montrer des performances ´equivalentes. 1235.3. ANALYSE DE SENSIBILITE DES R ´ ESULTATS OBTENUS ´ 5.3.4 Influence du paysage de la zone d’´etude Dans cette section, les performances obtenues sur les diff´erentes zones tests pr´esent´ees au d´ebut de ce chapitre seront compar´ees entre elles afin d’analyser les r´esultats en fonction des zones, des difficult´es qu’elles pr´esentent et du nombre de fausses alarmes qu’elles g´en`erent. Phoenix Les r´esultats obtenus sur les trois zones de Phoenix sont pr´esent´es en figure 5.10 avec, comme pr´ec´edemment le calcul des taux de bonnes (TPR) et fausses (FPR) d´etections et le calcul du coefficient Kappa pour tous les changements et pour les changements sup´erieurs `a 100 m2 . Lorsque seuls les grands changements sont pris en compte, globalement et selon les zones, les taux de bonnes d´etections se situent entre 100% et 75%, avec un taux de fausses alarmes variant alors de 100% `a moins de 5%. Malgr´e les variations de paysage de ces zones, la r´egularisation optimale pour ces changements se situe toujours approximativement `a λ = 5, 0, d’apr`es les courbes Kappa pr´esent´ees dans les figures 5.10(b), 5.10(d) et 5.10(f). Ainsi, `a cette r´egularisation, la valeur du Kappa est alors ´egale `a 0,93 pour la zone 1, avec 90% de bonnes d´etections et 5,6% de fausses alarmes. Pour la zone 2, on obtient une valeur de Kappa ´egale `a 0,82 pour λ = 5, 0 pour des taux de 81% de bonnes d´etections et de 18% de fausses alarmes. Enfin, concernant la zone 3, la valeur du Kappa est `a 0,87 pour λ = 5, 0 et les taux de bonnes et fausses d´etections atteignent 79,5% et 3,57%, respectivement. Lorsque tous les changements sont consid´er´es, en revanche, la r´egularisation optimale est d’environ λ = 3, 5. Les coefficients Kappa, calcul´es pour chacune des zones sont alors de 0,72, 0,50 et 0,59, respectivement pour les zones 1, 2 et 3. Les taux de bonnes d´etections atteignent alors 72% pour les zones 1 et 2 et 53% pour la zone 3 tandis que les taux de fausses alarmes sont de 28,3% pour la zone 1, 62% pour la zone 2 et 34% pour la zone 3. D’apr`es tous ces r´esultats, la zone 1 semble pr´esenter les meilleurs taux de bonnes et fausses d´etections. Cette zone contient en fait de tr`es nombreux changements (126) dont pr`es de la moiti´e sont des changements de grande taille. 124CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ (a) Taux de vrais et faux positifs pour la zone #1. (b) Coefficient Kappa calcul´e pour la zone #1. (c) Taux de vrais et faux positifs pour la zone #2. (d) Coefficient Kappa calcul´e pour la zone #2. (e) Taux de vrais et faux positifs pour la zone #3. (f) Coefficient Kappa calcul´e pour la zone #3. Figure 5.10 – 5.10(a), 5.10(c) et 5.10(e) Variations des taux de bonnes et fausses d´etections en fonction du λ. 5.10(b), 5.10(d) et 5.10(f ) Variations du coefficient Kappa. R´esultats calcul´es pour chacune des zones de Phoenix 1255.3. ANALYSE DE SENSIBILITE DES R ´ ESULTATS OBTENUS ´ De plus, les sources de fausses alarmes sont assez r´eduites par rapport aux autres zones. La zone 2 de Phoenix pr´esente des r´esultats de moins bonne qualit´e. Ceci s’explique par le fait que cette zone contient de nombreux bˆatiments particuli`erement hauts. Ces bˆatiments g´en`erent de grandes zones d’occlusion et donc de nombreuses erreurs qui ne sont pas totalement filtr´ees lors de la g´en´eration des MNS. De plus, cette zone contient plusieurs zones de v´eg´etation qui entraˆınent de nombreuses fausses alarmes. Enfin, seulement 71 changements sont recens´es dans cette zone dont moins d’un tiers sont de grands changements bien d´etectables. Finalement, la zone 3 pr´esente des r´esultats situ´es qualitativement entre la zone 1 et la zone 2. Cette zone contient de nombreux changements (138) mais seul un quart correspond `a des changements larges, ce qui explique les taux plus faibles de bonnes d´etections. Cette zone contient aussi une voie express avec de nombreux v´ehicules g´en´erant un certain nombre de fausses alarmes. Cependant, `a forte r´egularisation, les nombreuses fausses alarmes g´en´er´ees, (qui sont de petite taille) sont supprim´ees permettant d’atteindre un tr`es faible taux de fausses alarmes `a λ = 5. Christchurch Les r´esultats obtenus pour la zone de Christchurch sont pr´esent´es en figure 5.11. Comme pr´ec´edemment, les changements de taille sup´erieure `a 100 m2 sont repr´esent´es par la courbe bleue et les changements toutes tailles confondues par la courbe rouge. Au vu du tr`es faible nombre de changements inf´erieurs `a 100 m2 (8 seulement), les courbes sont tr`es proches, que ce soit les courbes de bonnes d´etections ou de fausses alarmes. Dans les deux cas, le coefficient Kappa atteint plus de 0,8 (0,8 pour tous les changements et 0,85 pour les changements sup´erieurs `a 100 m2 ). Lorsque tous les changements sont consid´er´es, ce coefficient apparaˆıt tr`es haut par rapport `a celui obtenu sur les zones de Phoenix (il est de 0,72 dans le meilleur r´esultat de Phoenix). Ceci s’explique par le faible nombre de changements de petite taille. Lorsque seuls les grands changements sont consid´er´es, le coefficient Kappa est de 0,85, coefficient proche des meilleurs r´esultats de Phoenix. Cependant, d’apr`es la figure 5.11(a), si le taux de bonne d´etection est haut (il va de 100% `a 80% pour les changements larges), on observe un taux de fausses alarmes assez haut. 126CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ (a) Taux de vrais et faux positifs calcul´es pour la zone de Christchurch. (b) Coefficient Kappa calcul´es pour la zone de Christchurch. Figure 5.11 – 5.11(a) : Variations des taux de bonnes et fausses d´etections en fonction du λ. 5.11(b) : Variation du coefficient Kappa. R´esultats calcul´es pour la zone de Christchurch. En effet, la zone s´electionn´ee dans Christchurch contient beaucoup de v´eg´etation sous la forme d’arbres imposants et tr`es proches des habitations. Cet ´el´ement est souvent source de fausses alarmes, notamment lorsque des arbres sont coup´es ou des haies sont plant´ees entre deux acquisitions. Cette zone, assez diff´erente en terme de paysage et contenant des d´efauts plus prononc´es que les zones de Phoenix, montre tout de mˆeme une r´egularisation optimale aux environs d’un λ = 5, 0 pour des changements sup´erieurs `a 100 m2 . Cette valeur de r´egularisation, identique `a celle trouv´ee pour les 3 zones de Phoenix apparaˆıt ainsi bien adapt´ee au contexte urbain. 5.4 Analyse des r´esultats sur la zone de Sendai Les r´esultats obtenus sur la zone de Sendai sont pr´esent´es en figure 5.12. Sur cette figure, la courbe des bonnes d´etections est trac´ee en bleue, la courbe des fausses alarmes en rouge et la courbe du coefficient Kappa en vert. Contrairement aux zones pr´esent´ees pr´ec´edemment, la courbe des bonnes d´etections d´ecroˆıt doucement, de fa¸con presque lin´eaire, tandis que la courbe des fausses alarmes, tr`es basse mˆeme `a faible r´egularisation, ne d´ecroˆıt que tr`es peu puis semble se stabiliser `a moins de 10% de fausses alarmes. 1275.4. ANALYSE DES RESULTATS SUR LA ZONE DE SENDAI ´ La courbe Kappa, quant `a elle, pr´esente un maximum `a environ 6,5 pour une r´egularisation `a λ = 3, 0. Le fort taux de bonnes d´etections, mˆeme `a haute r´egularisation, s’explique par le nombre tr`es important de changements contigus de la sc`ene. En effet, pr`es de 300 bˆatiments ont ´et´e recens´es sur une zone de 270 km2 soit une densit´e d’habitation de plus d’un bˆatiment pour 1 000 m2 . Densit´e indiquant des bˆatiments tr`es proches entre eux. De plus, ces bˆatiments sont tr`es peu ´elev´es par rapport `a ceux des villes pr´ec´edemment ´etudi´ees puisque leur hauteur n’exc`ede pas 5 m. Or, la m´ethode d´evelopp´ee, bas´ee sur la notion de coh´erence locale traduite par l’utilisation d’une r´egularisation spatiale, a tendance `a lisser les variations de labels hautes fr´equences. Dans le cas du suivi urbain, cette caract´eristique permet de supprimer les fines variations de labels qui repr´esentent alors g´en´eralement des fausses alarmes puisque la grande majorit´e de l’image est labellis´ee non–changement. Dans le cas de Sendai, au contraire, la majorit´e de l’image est labellis´ee en changement. Ainsi, `a l’int´erieur de la zone d´etruite, ce sont les pixels labellis´es non–changements qui apparaissent comme des variations fines de labels et qui auront donc tendance `a ˆetre supprim´es. Ce ph´enom`ene tend `a limiter la pr´esence de fausses alarmes de changements sous forme d’amas de pixels isol´es et `a maintenir un taux de bonnes d´etections tr`es haut. Ainsi, la m´ethode d´evelopp´ee ne permet pas de discriminer chacun des bˆatiments d´etruits dans la zone totalement sinistr´ee mais elle va plutˆot d´elimiter cette zone sinistr´ee. Toutefois, la m´ethode peut s’av´erer tr`es int´eressante pour localiser les bˆatiments d´etruits isol´es et plus difficiles `a retrouver visuellement car noy´es au milieu des tr`es nombreux changements radiom´etriques. La courbe Kappa pr´esente une forte augmentation partant d’une r´egularisation λ = 1, 0 `a λ = 3, 5, augmentation due `a la baisse du nombre de fausses alarmes et au maintien des bonnes d´etections `a un taux ´elev´e. Puis, entre λ = 3, 5 et λ = 5, 0, le kappa montre une diminution qui s’explique par un palier et mˆeme une l´eg`ere augmentation du nombre de fausses alarmes (ph´enom`ene qui apparait lorsque la r´egularisation va diviser une alarme importante de changement en deux alarmes distinctes) et la baisse du taux de bonnes d´etections. 128CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ Figure 5.12 – Courbes des taux de bonnes d´etections, fausses alarmes et coefficient Kappa. Enfin, lorsque la r´egularisation atteint λ = 5, 0, le Kappa baisse de fa¸con quasi lin´eaire en suivant la tendance du taux de bonnes d´etections. Finalement, les courbes pr´esent´ees montrent de nouveau une r´egularisation optimale proche de λ = 3, 0 lorsque des changements de toutes les tailles (mais majoritairement inf´erieurs `a 100 m2 ) sont recherch´es, mˆeme dans un contexte aussi particulier que celui d’une destruction massive du bˆati et surtout avec des images provenant d’un capteur tr`es haute r´esolution diff´erent de celui utilis´e pour les zones exp´erimentales pr´ec´edentes. La figure 5.13 pr´esente la carte des changements obtenue sur une emprise importante de la r´egion de Sendai. Cette carte a ´et´e obtenue avec une r´egularisation λ = 3, 0, r´egularisation optimale d´efinie pr´ec´edemment. L’ampleur de la destruction est particuli`erement visible sur cette carte qui laisse pourtant apparaˆıtre des zones en changements positifs. Ces zones ne sont pas des erreurs mais correspondent en fait `a des amas, tr`es probablement de d´ebris, apparus entre les acquisitions avant et apr`es la catastrophe. Nous rappelons que l’image post–´ev`enement a ´et´e acquise 5 mois apr`es la catastrophe. La zone d´etruite a donc ´et´e en grande partie d´eblay´ee durant ces 5 mois. Cet intervalle d’acquisition peut alors repr´esenter un inconv´enient pour la mesure de la performance de notre m´ethode, le r´esultat de la carte de changement serait peut ˆetre diff´erent si la zone n’avait pas ´et´e d´eblay´ee. 1295.4. ANALYSE DES RESULTATS SUR LA ZONE DE SENDAI ´ (a) Ortho image Ikonos de 2010. (b) Ortho image Ikonos de 2011. (c) Carte des changements d’´el´evation obtenue avec λ = 3. Figure 5.13 – Images ortho rectifi´ees de la r´egion de Tohoku et carte des changements r´esultante. 130CHAPITRE 5. EXPERIMENTATION ET DISCUSSION DES R ´ ESULTATS DE LA ´ METHODE DE D ´ ETECTION DES CHANGEMENTS D’ ´ EL´ EVATION ´ Cette carte de changements met aussi clairement en ´evidence les destructions apparues dans la v´eg´etation, notamment sur la partie sud de l’image o`u une forˆet enti`ere a ´et´e d´evast´ee par le tsunami. Bien que les changements sur la v´eg´etation soient g´en´eralement compt´es en fausses alarmes, ceux–ci apparaissent pertinents puisque les d´egˆats environnementaux peuvent aussi avoir un fort impact ´economique pour une r´egion et n´ecessiter une ´evaluation. 5.5 Conclusion Ce chapitre a permis de tester les performances de la m´ethode d´evelopp´ee pour la d´etection des changements d’´el´evation ainsi que sa sensibilit´e envers les param`etres utilis´es ou les donn´ees d’entr´ee. Ces ´evaluations ont ´et´e r´ealis´ees grˆace `a la comparaison des cartes de changements obtenues avec des cartes de r´ef´erences g´en´er´ees manuellement (ou `a l’aide d’un LiDAR) et `a travers l’utilisation de plusieurs m´etriques classiques de la litt´erature : les taux de bonnes d´etections et de fausses alarmes ainsi que le coefficient Kappa. Comme attendu, la r´egularisation est le param`etre ayant la plus forte influence sur le r´esultat. Les diff´erents cas test pr´esent´es (Phoenix, Christchurch et Sendai) ont permis de montrer que lorsque des changements de toutes tailles sont recherch´es, la r´egularisation optimale se situe `a environ λ = 3, 0 et permet d’obtenir 100% des changements d´etect´es pour 70% `a 80% de fausses alarmes. Lorsque seuls les changements sup´erieurs `a 100 m2 sont cibl´es, une r´egularisation λ = 5, 0 est recommand´e et permet d’obtenir plus de 80% de bonnes d´etections et moins de 20% de fausses alarmes. Nous avons aussi pu observer que la qualit´e du MNS avait un impact important sur la qualit´e du r´esultat, notamment `a faible r´egularisation lorsque les changements de petite taille sont consid´er´es et que le taux de fausses alarmes g´en´er´ees par les erreurs des MNS est ´elev´e. Enfin, dans le cas d’une sc`ene pr´esentant des changements tr`es important dus `a une catastrophe majeure, nous avons pu montrer les performances de la m´ethode en termes de bonnes d´etections et de fausses alarmes tout en confirmant une r´egularisation optimale `a λ = 3, 0 lorsque les changements de toutes les tailles sont recherch´es. Si ces analyses permettent d´ej`a une bonne ´evaluation des performances de la m´ethode envers diff´erents param`etres, elles pourraient 1315.5. CONCLUSION cependant ˆetre compl´et´ees par des analyses portant sur l’impact de la r´esolution native et la qualit´e (contraste et piqu´e) des images d’entr´ee sur la taille des changements d´etectables et leur taux de d´etection. 132Chapitre 6 Conclusion g´en´erale 6.1 Conclusion Nous pr´esentons, dans ce travail de th`ese, une chaˆıne de traitements automatique, non supervis´ee et efficace pour la recherche des changements d’´el´evation apparus entre deux dates d’int´erˆet. Cette chaˆıne est bas´ee sur la g´en´eration de MNS `a chaque date `a partir de couples d’images satellites st´er´eoscopiques tr`es haute r´esolution puis sur l’analyse de leur diff´erences. L’un des avantages de cette chaˆıne est d’ˆetre totalement automatique, c’est–`a–dire qu’aucune information externe n’est n´ecessaire. Cet avantage permet de garantir l’efficacit´e de la m´ethode sur n’importe quelle zone du globe, pourvu que des couples st´er´eoscopiques soient pr´esents aux dates d’int´erˆet. Nous avons montr´e au cours de cette th`ese que l’un des ´el´ements les plus sensibles de la m´ethode est la qualit´e du MNS, c’est pourquoi une grande partie de ce travail est d´edi´ee `a l’am´elioration de la pr´ecision des MNS produits par imagerie spatiale. Une technique innovante, bas´ee sur la fusion de tous les MNS asym´etriques r´ealisables `a partir d’un mˆeme couple st´er´eoscopique a ´et´e d´evelopp´ee dans cet objectif. Cette m´ethode s’est av´er´ee particuli`erement efficace pour diminuer les erreurs de corr´elations dans le MNS final, qu’elles proviennent de la mise en correspondance sur des objets difficiles de la sc`ene ou des zones d’occlusion de l’une ou l’autre image du couple. Enfin, nous avons montr´e que cette m´ethode ´etait aussi avantageuse pour traiter la multi–st´er´eoscopie. 1336.1. CONCLUSION La m´ethode de d´etection des changements d’´el´evation d´evelopp´ee dans la chaˆıne de traitements est bas´ee sur une classification optimis´ee de tous les pixels du MNS diff´erentiel, classification qui d´epend de la valeur de diff´erence d’´el´evation des pixels mais aussi d’une contrainte spatiale permettant de limiter les variations de labels affect´es `a des pixels connexes. Cette m´ethode de classification permet ainsi de mettre en avant les changements coh´erents de la sc`ene tout en supprimant le bruit de corr´elation tandis que l’´equilibre fausses alarmes et bonnes d´etections est alors contrˆol´e par le param`etre de r´egularisation λ. Cette m´ethode a ´et´e test´ee sur plusieurs zones diff´erentes et dans un contexte de recherche des changements urbains typiques d’une ville. Ces zones ont ´et´e s´electionn´ees dans les villes de Phoenix (Arizona, Etats-Unis) et de Christchurch (Nouvelle-Z´elande). ´ Les r´esultats montrent que, lorsque un taux de d´etection de plus de 80% est attendu et pour des changements de taille sup´erieure `a 15×15 pixels, les taux de fausses alarmes varient alors de 20% `a 35% seulement et avec une r´egularisation optimale d´efinie `a λ = 5, 0. Lorsque des changements de toutes tailles sont recherch´es, la r´egularisation optimale est alors abaiss´ee `a environ λ = 3, 0 et permet la d´etection de 60% `a 80% des changements avec de 40% `a 60% de fausses alarmes. Ces r´esultats sont cependant particuli`erement sensibles aux sources d’erreurs de corr´elation pr´esentes dans la sc`ene. Dans un contexte plus particulier de destruction urbaine importante, apr`es une catastrophe majeure, nous montrons que les mˆemes r´egularisations peuvent s’appliquer et entraˆınent un taux de plus de 95% de bonnes d´etections et moins de 10% de fausses alarmes, valeurs obtenues pour la r´egion de Tohoku, touch´ee par un tsunami le 11 mars 2011. La chaˆıne de traitement d´evelopp´ee n´ecessite cependant l’utilisation de nombreux param`etres, que ce soit pour la g´en´eration des MNS ou la d´etection des changements. On montre pourtant que, quel que soit le contexte ou le capteur tr`es haute r´esolution (ville de Phoenix en image WorldView-1 ou r´egion d´etruite de Sendai en images Ikonos) les mˆeme param`etres peuvent ˆetre utilis´es. Nous montrons ainsi que seule la r´esolution du capteur ou le contexte de la zone d’´etude (urbaine ou rurale vallonn´ee) doivent ˆetre pris en compte pour la g´en´eration des MNS tandis que la r´esolution des images, la taille des changements ou la pr´ecision recherch´ee 134CHAPITRE 6. CONCLUSION GEN´ ERALE ´ sont les seules v´eritables contraintes du syst`eme de d´etection de changements. Enfin, le syst`eme fonctionne sur un seul et mˆeme “noyau” algorithmique, noyau que nous avons r´ealis´e de fa¸con `a le rendre adaptable `a de nombreux probl`emes de labellisation tandis que les probl`emes rencontr´es dans la chaˆıne de traitements sont eux–mˆemes tous formul´es en termes de labellisation des pixels d’une image selon des contraintes de probabilit´e et une contrainte de r´egularisation spatiale. 6.2 Perspectives Nous pouvons mettre en ´evidence trois perspectives d’´evolution `a fort int´erˆet pour la chaˆıne de traitements d´evelopp´ee. La premi`ere consiste en la cr´eation d’un masque de v´eg´etation. En effet, nous avons montr´e, lors des ´etapes de g´en´eration de MNS, que la mise en correspondance avait une forte tendance `a produire des erreurs sur des textures 3D aussi complexes que la v´eg´etation. Dans l’´etape de basculement des MNS, la v´eg´etation est partiellement supprim´ee grˆace aux contraintes sur le score de corr´elation et dans l’´etape suivante de fusion des MNS, d’autres erreurs dues `a la v´eg´etation peuvent ˆetre ´elimin´ees grˆace `a la r´egularisation sur le MNS. Mais ces erreurs restent n´eanmoins une des sources principales de fausses alarmes dans la d´etection des changements, notamment lorsque les couples ou n-uplets st´er´eoscopiques n’ont pas ´et´e acquis `a la mˆeme saison et que la v´eg´etation est alors plus ou moins d´evelopp´ee entre les images. Ce ph´enom`ene a notamment ´et´e illustr´e sur les cartes de changements obtenues sur la zone de Christchurch. Cependant, nous avons aussi pu montrer les d´egˆats importants sur la v´eg´etation apr`es la catastrophe de Sendai grˆace aux changements d´etect´es sur la v´eg´etation. Les changements apparus sur la v´eg´etation peuvent ainsi, selon le contexte ou l’application demand´ee, ˆetre recherch´es ou ˆetre consid´er´es en fausses alarmes. C’est pourquoi une perspective int´eressante `a ce travail est la cr´eation de masques de v´eg´etation afin de diminuer les fausses alarmes g´en´er´ees ou bien afin de mettre en ´evidence les alarmes de changements que la v´eg´etation produit. 1356.2. PERSPECTIVES Afin d’´eviter les cas o`u une zone de v´eg´etation serait transform´ee en zone bˆatie ou inversement, il serait alors n´ecessaire de g´en´erer des masques de v´eg´etation correspondant `a chacune des dates d’´etude. Deux solutions pourraient ensuite ˆetre envisag´ees pour la prise en compte de ces masques dans la d´etection des changements. Une premi`ere approche serait le filtrage post–traitement des alarmes de changements lorsque qu’une alarme correspond, `a chacune des dates, `a une zone de v´eg´etation. Une seconde approche, certainement plus pr´ecise, consisterait `a consid´erer la v´eg´etation comme un label `a part enti`ere lors de la classification des pixels. Une autre perspective d’am´elioration de la pr´ecision des r´esultats peut ˆetre repr´esent´ee par le couplage de la m´ethode de d´etection des changements d’´el´evation, telle que nous l’avons con¸cue, avec une m´ethode de d´etection des changements radiom´etriques. Nous avons pr´ecis´e, au d´ebut de ce travail, que les m´ethodes de d´etection des changements radiom´etriques ´etaient tr`es sensibles aux conditions d’acquisitions des images et d´etectaient ainsi des changements d’illumination non pertinents pour notre contexte. Cependant, nous avons aussi montr´e que notre m´ethode peut aussi g´en´erer des fausses alarmes mais sur des zones trop homog`enes ou trop p´eriodiques qui sont une gˆene pour la mise en correspondance. Ainsi, le filtrage, par exemple, des alarmes de changements 3D par une m´ethode de d´etection des changements radiom´etriques pourrait s’av´erer tr`es avantageux pour la pr´ecision des r´esultats finaux. Enfin, une derni`ere perspective `a ce travail est la g´en´eration de MNS `a partir d’images satellites monososcopiques, n’ayant pas ´et´e acquises simultan´ement. En effet, la chaˆıne de traitements d´evelopp´ee est bas´ee sur l’utilisation de couple ou uplets st´er´eoscopiques n´ecessaires pour les deux dates t1 et t2. Cette condition, requise pour tout traitement, n’est pourtant pas toujours satisfaite sur toutes les r´egions du globe car si les satellites aujourd’hui font preuve d’une grande r´eactivit´e et peuvent acqu´erir des images st´er´eoscopiques dans un court d´elai et n’importe o`u, les archives st´er´eoscopiques ne sont, elles, pas toujours disponibles. Une piste importante consisterait donc `a d´evelopper une m´ethode capable de g´en´erer des MNS `a partir de nombreuses images monoscopiques acquises dans les mois qui entourent la date d’int´erˆet t1 et avec n’importe quel capteur tr`es haute r´esolution. La mise en correspondance de 136CHAPITRE 6. CONCLUSION GEN´ ERALE ´ toutes les images n´ecessiterait alors la prise en compte de leurs diff´erences qu’elles soient dues `a l’acquisition des images comme les diff´erences d’illumination ou aux changements survenus entre les acquisitions. Cette piste pr´esente ainsi un fort int´erˆet dans de nombreux domaines n´ecessitant la cr´eation de MNS. 1376.2. PERSPECTIVES 138Table des figures 1.1 Sch´ema de principe des diff´erentes g´eom´etries de mise en correspondance. . . . . 34 1.2 Illustration des diff´erentes ´etapes de la chaˆıne globale de traitements. . . . . . . . 36 2.1 Illustration du syst`eme d’acquisition en barrette push–broom et des angles d’attitude du satellite. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.2 Illustration du r´esultat de la spatio–triangulation pour le recalage des images. . . 44 2.3 Illustration du r´esultat de la spatio–triangulation pour le recalage des images (´echelle en pixels). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 2.4 Illustration du calcul des r´esidus de la spatio–triangulation. . . . . . . . . . . . . 46 2.5 Illustration de la m´ethode des graph–cuts appliqu´ee `a une image. . . . . . . . . . 50 2.6 Illustration d’un effet de streaking le long des lignes d’une image trait´ee par programmation dynamique. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 2.7 Illustration du parcours des diff´erentes directions pour la programmation dynamique afin de calculer le coˆut ”semi–global”. . . . . . . . . . . . . . . . . . . . . . 55 2.8 Illustration du calcul des coˆuts obtenus pour chaque label et chaque pixel de la s´equence selon l’´equation 2.5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.1 Illustration de l’impact de la r´egularisation pour la g´en´eration de MNS. . . . . . 64 3.2 Principe de parcours de la grille image maˆıtre pour l’interpolation des points de la grille r´eguli`ere. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 3.3 Illustration du principe de l’interpolation d’une grille r´eguli`ere terrain `a partir des points obtenus dans la g´eom´etrie de l’image maˆıtre. . . . . . . . . . . . . . . . . . 69 3.4 Illustration du r´esultat du basculement d’un MNS WorldView-1 `a partir de la carte des ´el´evations en g´eom´etrie image. . . . . . . . . . . . . . . . . . . . . . . . 70 139TABLE DES FIGURES 3.5 MNS asym´etriques provenant du mˆeme couple d’images st´er´eoscopiques. . . . . . 73 3.6 MNS provenant du mˆeme couple st´er´eoscopique et r´esultat de leur fusion par la moyenne. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 3.7 Sch´ema r´ecapitulatif de la proc´edure de fusion des MNS en fonction des valeurs initiales et de l’attache aux donn´ees. . . . . . . . . . . . . . . . . . . . . . . . . . 80 3.8 3.8(a) et 3.8(b) : MNS calcul´es `a partir du mˆeme couple st´er´eoscopique et r´esultats de leur fusion par optimisation globale 3.8(c). . . . . . . . . . . . . . . . . . . . . 81 3.9 3.9(a) et 3.9(b) : Histogrammes des cartes de diff´erences calcul´ees entre le liDAR et le MNS asym´etrique et MNS fusionn´e, respectivement. . . . . . . . . . . . . . . 85 3.10 Profils d’´el´evation compar´es entre le MNS asym´etrique (en vert), le MNS fusionn´e (en bleu) et le Lidar (en rouge). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 3.11 Illustration du triplet st´er´eoscopique Pl´eiades acquis sur la ville de Toulouse. . . 89 3.12 MNS calcul´es `a partir de 2 images puis 3 images du mˆeme uplet st´er´eoscopique. . 90 4.1 4.1(a) et 4.1(b) MNS de 2008 et 2011 calcul´es sur la zone 1 d´efinie sur la ville de Phoenix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.2 4.2(a) MNS diff´erentiel. 4.2(b) MNS diff´erentiel seuill´e. . . . . . . . . . . . . . . 96 4.3 Fonction sigmo¨ıdale permettant le calcul des coˆuts d’attache aux donn´ees pour le label changement positif. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 5.1 Orthoimages provenant des images panchromatiques WorldView–1 repr´esentant les trois zones test´ees sur la ville de Phoenix et la zone de Christchurch. . . . . . 103 5.2 5.2(a)Orthoimage calcul´ee et 5.2(b) donn´ee de r´ef´erence des changements de la zone 1 de Phoenix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 5.3 Ortho images et MNS calcul´es avant et apr`es la catastrophe de Sendai du 11/03/2011. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 5.4 Zone partiellement d´etruite par le Tsunami et quantifi´ee `a travers la carte de r´ef´erence des bˆatiments d´etruits et intacts. . . . . . . . . . . . . . . . . . . . . . 108 5.5 Cartes de d´etection de changement obtenues `a partir d’un nombre variable de directions de calcul et une r´egularisation λ = 3, 0. . . . . . . . . . . . . . . . . . . 114 5.6 Illustration de l’impact du nombre de directions de calcul sur les taux de bonnes et fausses d´etections. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115 140TABLE DES FIGURES 5.7 Cartes des d´etections calcul´ee avec diff´erentes valeurs de λ et 12 directions. . . . 116 5.8 5.8(a) et 5.8(c) : Variations des taux de fausses et vraies d´etections en fonction de la r´egularisation λ. 5.8(b) et 5.8(d) : Variation du coefficient Kappa en fonction de la r´egularisation λ. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 5.9 5.9(a) et 5.9(c) : Variations des taux de fausses et vraies d´etections en fonction de la r´egularisation λ ou de la taille de l’´el´ement structurant. 5.9(b) et 5.9(d) : Variations du coefficient Kappa en fonction de la r´egularisation λ ou de la taille de l’´el´ement structurant. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122 5.10 5.10(a), 5.10(c) et 5.10(e) Variations des taux de bonnes et fausses d´etections en fonction du λ ; 5.10(b), 5.10(d) et 5.10(f ) Variations du coefficient Kappa pour chacune des zones test de Phoenix. . . . . . . . . . . . . . . . . . . . . . . . . . . 125 5.11 5.11(a) : Variations des taux de bonnes et fausses d´etections en fonction du λ. 5.11(b) : Variation du coefficient Kappa. R´esultats calcul´es pour la zone de Christchurch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127 5.12 Courbes des taux de bonnes d´etections, fausses alarmes et coefficient Kappa. . . . 129 5.13 Images ortho rectifi´ees de la r´egion de Tohoku et carte des changements r´esultante. 130 141TABLE DES FIGURES 142Liste des tableaux 1.1 M´etadonn´ees des images utilis´ees lors des diff´erentes ´etudes. . . . . . . . . . . . . 38 3.1 Tableau de synth`ese des param`etres de la m´ethode compl`ete de g´en´eration des MNS. 92 4.1 Tableau de synth`ese des param`etres n´ecessaires `a la m´ethode de d´etection des changements d’´el´evation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 143LISTE DES TABLEAUX 144Bibliographie [1] E. Berthier, Y. Arnaud, R. Kumar, S. Ahmad, P. Wagnon, and P. Chevallier. Remote sensing estimates of glacier mass balances in the Himachal Pradesh (Western Himalaya, India). In Remote Sensing of Environment, vol. 108 no. 3 pp. 327–338, 2007. [2] P. Baldi, M. Fabris, M. Marsella, and R. Monticelli. Monitoring the morphological evolution of the sciara del fuoco during the 2002 – 2003 Stromboli eruption using multi–temporal photogrammetry. In ISPRS Journal of Photogrammetry and Remote Sensing, vol. 59 no. 4 pp. 199–211, 2005. [3] M. Koga and A. Iwasaki. Improving the measurement accuracy of three-dimensional topography changes using optical satellite stereo image data. In IEEE Transactions on Geoscience and Remote Sensing, vol. 49 no. 8 pp. 2918–2923, Aug. 2011. [4] K. Tsutsui, S. Rokugawa, H. Nakagawa, S. Miyazaki, C. Cheng, T. Shiraishi, and Shiun-Der Yang. Detection and volume estimation of large-scale landslides based on elevation–change analysis using DEMs extracted from high–resolution satellite stereo imagery. In IEEE Transactions on Geoscience and Remote Sensing , vol. 45 no. 6 pp. 1681–1696, Jun. 2007. [5] N. Champion, D. Boldo, M. Pierrot-Deseilligny, and G. Stamon. 2D Change detection from satellite imagery : performance analysis and impact of the spatial resolution of input images. In IEEE International Geoscience and Remote Sensing Symposium (IGARSS), pp. 1421–1424, Jul. 2011. [6] P. Reinartz, J. Tian, and A.A. Nielsen. Building damage assessment after the earthquake in Haiti using two post–event satellite stereo imagery and dsms. In Joint Urban Remote Sensing Event (JURSE), pp. 057–060, 2013. 145BIBLIOGRAPHIE [7] R.J. Radke, S. Andra, O. Al-Kofahi, and B. Roysam. Image change detection algorithms : a systematic survey. In IEEE Transactions on Image Processing, vol. 14, no. 3, pp. 294–307, Mar. 2005. [8] J. Tian, H. Chaabouni-Chouayakh, P. Reinartz, T. Krauss, and P. d Angelo. Automatic 3D change detection based on optical satellite stereo imagery. In ISPRS TC VII Symposium, Vienna, 2010. [9] P. J. Deer. Digital change detection techniques : Civilian and military applications. In International Symposium on Spectral Sensing Research, 1995. [10] A. Singh. Review article digital change detection techniques using remotely–sensed data. In International Journal of Remote Sensing, vol. 10, no. 6, pp. 989–1003, 1989. [11] M. Volpi, D. Tuia, M. Kanevski, F. Bovolo, and L. Bruzzone. Supervised change detection in VHR images : a comparative analysis. In IEEE International Workshop on Machine Learning for Signal Processing, pp. 1–6, Sept. 2009. [12] L. Bruzzone and F. Bovolo. A conceptual framework for change detection in very high resolution remote sensing images. In IEEE International Geoscience and Remote Sensing Symposium (IGARSS), pp. 2555–2558, Jul. 2010. [13] P.L. Rosin and E. Ioannidis. Evaluation of global image thresholding for change detection. In Pattern Recognition Letters, vol. 24, no. 14, pp. 2345–2356, 2003. [14] F. Bovolo, L. Bruzzone, and M. Marconcini. A novel approach to unsupervised change detection based on a semi–supervised SVM and similarity measure. In IEEE Transaction on Geoscience and Remote Sensing Letters, vol. 46, no. 7, pp. 2070–2082, 2008. [15] D.H.A. Al-Khudhairy, I. Caravaggi, and S. Clada. Structural damage assessments from Ikonos data using change detection, object–oriented segmentation and classification techniques. In Photogrammetric Engineering and Remote Sensing, vol. 71, pp. 825–837, 2005. [16] L. Bruzzone and D.F. Prieto. Automatic analysis of the difference image for unsupervised change detection. In IEEE Transactions on Geoscience and Remote Sensing, vol. 38, no. 3, pp. 1171–1182, May 2000. 146BIBLIOGRAPHIE [17] T.T. Vu, M. Matsuoka, and F. Yamazaki. Lidar–based change detection of buildings in dense urban areas. In IEEE International Geoscience and Remote Sensing Symposium (IGARSS), vol. 5, pp. 3413–3416, Sep. 2004. [18] G. Sithole and G. Vosselman. Automatic structure detection in a point–cloud of an urban landscape. In 2nd GRSS/ISPRS Joint Workshop on Remote Sensing and Data Fusion over Urban Areas, pp 67–71, May 2003. [19] F. Rottensteiner. Automated updating of building data bases from digital surface models and multi–spectral images : Potential and limitations. In ISPRS Congress, Beijing, China, vol. 37, pp. 265–270, Dec. 2008. [20] G. Vosselman, B. G. H. Gorte, and G. Sithole. Change detection for updating medium scale maps using laser altimetry. In Proceedings of the 20th ISPRS Congress, pp. 12–23, 2004. [21] L. Matikainen, J. Hyyppa, E. Ahokas, L. Markelin, and H. Kaartinen. Automatic detection of buildings and changes in buildings for updating of maps. In Remote Sensing, vol. 2, no. 5, pp. 1217–1248, 2010. [22] H. Chaabouni-Chouayakh, P. d’Angelo, T. Krauss, and P. Reinartz. Automatic urban area monitoring using digital surface models and shape features. In Joint Urban Remote Sensing Event (JURSE), pp. 85–88, Apr. 2011. [23] F. Jung. Detecting building changes from multitemporal aerial stereopairs. In ISPRS Journal of Photogrammetry and Remote Sensing, vol. 58, no. 4, pp. 187–201, 2004. [24] J. Tian, H. Chaabouni-Chouayakh, and P. Reinartz. 3D Building change detection from high resolution spaceborne stereo imagery. In International Workshop on Multi-Platform/MultiSensor Remote Sensing and Mapping (M2RSM), pp. 1–7, 2011. [25] J. A. Marchant and C. M. Onyango. Shadow-invariant classification for scenes illuminated by daylight. In Journal of the Optical Society of America A, vol. 17, no. 11, pp. 1952–1961, Nov. 2000. [26] J. Tian, S. Cui, and P. Reinartz. Building change detection based on satellite stereo imagery and digital surface models. In IEEE Transactions on Geoscience and Remote Sensing, pp. 1–12, 2013. 147BIBLIOGRAPHIE [27] A.A. Nielsen. The regularized iteratively reweighted mad method for change detection in multi- and hyperspectral data. In IEEE Transactions on Image Processing, vol. 16, no. 2, pp. 463–478, 2007. [28] D. Scharstein and R. Szeliski. A taxonomy and evaluation of dense two–frame stereo correspondence algorithms. In International Journal of Computer Vision, vol. 47, pp. 7–42, 2002. [29] M.Z. Brown, D. Burschka, and G.D. Hager. Advances in computational stereo. In IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 25, no. 8, pp. 993–1008, 2003. [30] N. Lazaros, G.C. Sirakoulis, and A. Gasteratos. Review of stereo vision algorithms : from software to hardware. In International Journal of Optomechatronics, vol. 2, no. 4, pp. 435–462, 2008. [31] H. Hirschmuller. Accurate and efficient stereo processing by semi–global matching and mutual information. In IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), vol. 2, pp. 807–814, Jun. 2005. [32] M. Pierrot-Deseilligny and N. Paparoditis. A multiresolution and optimization–based image matching approach : an application to surface reconstruction from SPOT5-HRS stereo imagery. In Internationales Archives of Photogrammetry and Remote Sensing, 2006. [33] Q. Yang, L. Wang, R. Yang, H. Stewenius, and D. Nister. Stereo matching with colorweighted correlation, hierarchical belief propagation, and occlusion handling. In IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 31, no. 3, pp. 492–504, 2009. [34] A.F. Bobick and S.S. Intille. Large occlusion stereo. In International Journal of Computer Vision, pp. 181–200, 1999. [35] C. Baillard and A. Zisserman. Automatic reconstruction of piecewise planar models from multiple views. In IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), vol. 2, pp. 559–65, Jun. 1999. 148BIBLIOGRAPHIE [36] L. Zhang and A. Gruen. Multi–image matching for dsm generation from ikonos imagery. In ISPRS Journal of Photogrammetry and Remote Sensing, vol. 60, no. 3, pp. 195–211, 2006. [37] R. Zabih and J. Woodfill. Non–parametric local transforms for computing visual correspondence. In Computer Vision ECCV’94, pp. 151–158, 1994. [38] A. Klaus, M. Sormann, and K. Karner. Segment-based stereo matching using belief propagation and a self–adapting dissimilarity measure. In IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CPVR), vol. 2, Jun. 2006. [39] J. Sun, Y. Li, S.B. Kang, and H.Y. Shum. Symmetric stereo matching for occlusion handling. In IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), vol. 2, pp. 399–406, 2005. [40] M. Sizintsev and R.P. Wildes. Coarse-to-fine stereo vision with accurate 3d boundaries. In Image and Vision Computing, vol. 28, no. 3, pp. 352–366, 2010. [41] Y. Boykov and V. Kolmogorov. An experimental comparison of min-cut/max- flow algorithms for energy minimization in vision. In IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 26, no. 9, pp. 1124–1137, Sep. 2004. [42] K Schindler. An overview and comparison of smooth labeling methods for land–cover classification. In IEEE Transactions on Geoscience and Remote Sensing, vol. 50, no. 11, pp. 4534–4545, Nov. 2012. [43] P.F. Felzenszwalb and D.R. Huttenlocher. Efficient belief propagation for early vision. In IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), vol. 1, pp. 261–268, Jul. 2004. [44] O. Veksler. Stereo correspondence by dynamic programming on a tree. In IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CPVR), vol. 2, pp. 384– 390, Jun. 2005. [45] H. Hirschmuller and D. Scharstein. Evaluation of cost functions for stereo matching. In IEEE Conference on Computer Vision and Pattern Recognition (CVPR), pp. 1–8, Jun. 2007. 149BIBLIOGRAPHIE [46] S. Birchfield and C. Tomasi. Depth discontinuities by pixel–to–pixel stereo. In International Journal of Computer Vision, vol. 35, pp. 269–293, 1999. [47] H. Hirschmuller, P. R Innocent, and J. Garibaldi. Real–time correlation based stereo vision with reduced border errors. In International Journal of Computer Vision, vol. 47, no. 3, pp. 229–246, 2002. [48] M. Pierrot-Deseilligny L. Penard, N. Paparoditis. 3d building facade reconstruction under mesh form from multiple wide angle views. In Proceedings of the 20th ISPRS Congress, 2005. [49] P. Fua. A parallel stereo algorithm that produces dense depth maps and preserves image features. In Machine Vision and Applications, vol. 6, pp. 35–49, 1993. [50] G. Egnal and R.P. Wildes. Detecting binocular half-occlusions : empirical comparisons of five approaches. In IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 24, no. 8, pp. 1127–1133, 2002. [51] S. Chambon and A. Crouzil. Towards correlation-based matching algorithms that are robust near occlusions. In Proceedings of the 17th International Conference on Pattern Recognition (ICPR), vol. 3, pp. 20–23, 2004. [52] P. N. Belhumeur. A bayesian approach to binocular steropsis. In International Journal of Computer Vision, vol. 19, no. 3, pp. 237–260, 1996. [53] Y. Furukawa and J. Ponce. Accurate dense and robust multi–view stereopsis. In IEEE Transactions Pattern Analysis and Machine Intelligence, vol. 32, pp. 1362–1376, 2010. [54] F De Lussy, D. Greslou, C Dechoz, V. Amberg, J. M. Delvit, L. Lebegue, G. Blanchet, and S. Fourest. Pleiades HR in flight geometrical calibration : location and mapping of the focal plane. In ISPRS International Archives of the Photogrammetry, Remote Sensing and Spatial Information Sciences, vol. 39, pp. 519–523, 2012. [55] J. Grodecki and G. Dial. Block adjustment of high-resolution satellite images by rational polynomials. In Photogrammetric Engineering and Remote Sensing, vol. 69, pp. 59–68, 2003. 150BIBLIOGRAPHIE [56] C.S. Fraser, G. Dial, and J. Grodecki. Sensor orientation via RPCs. In ISPRS Journal of Photogrammetry and Remote Sensing, vol. 60, pp. 182–194, 2006. [57] S. Geman and D. Geman. Stochastic relaxation, gibbs distributions, and the bayesian restoration of images. In IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 6, no. 6, pp. 721–741, Nov. 1984. [58] Y. Boykov, O. Veksler, and R. Zabih. Fast approximate energy minimization via graph– cuts. In IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 23, no. 11, pp. 1222–1239, Nov. 2001. [59] S. Roy and I.J. Cox. A maximum–flow formulation of the n-camera stereo correspondence problem. In Sixth International Conference on Computer Vision, pp. 492–499, Jan. 1998. [60] Y. Weiss and W.T. Freeman. On the optimaly of solutions of the max-product belief propagation algorithm in arbitrary graphs. In IEEE Transactions Information Theory, vol. 47, pp. 723–735, 2001. [61] Daniel Scharstein and Richard Szeliski. vision.middlebury, 2012. [62] L. Randolph Ford and D.R. Fulkerson. A simple algorithm for finding maximal network flows and an application to the Hitchcock problem. Rand Corporation, 1955. [63] V. Kolmogorov and R. Zabih. What energy functions can be minimized via graph–cuts. In IEEE Transactions Pattern Analysis and Machine Intelligence, vol. 26, pp. 147–159, 2004. [64] R. Szeliski, R. Zabih, D. Scharstein, O Veksler, V Kolmogorov, A. Agarwala, and C. Rother. A comparative study of energy minimization methods for markov random fields. In Computer Vision-ECCV, pp. 16–29, 2006. [65] V. Kolmogorov. Convergent tree–reweighted message passing for energy minimization. In IEEE Transactions Pattern Analysis and Machine Intelligence, vol. 28, pp. 1568–1583, 2006. [66] P.F. Felzenszwalb and R. Zabih. Dynamic programming and graph algorithms in computer vision. In IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 33, no. 4, pp. 721–740, Apr. 2011. 151BIBLIOGRAPHIE [67] Y. Otha and T. Kanade. Stereo by intra- and inter–scanline search using dynamic programming. In IEEE Transactions Pattern Analysis and Machine Intelligence, vol. 2, pp. 139–154, 1985. [68] R. B. Potts. Some generalized order–disorder transformations. Cambridge Philos. Soc. Math. Proc., vol. 48, pp. 106–109, 1952. [69] A. Fahmi, J. Jansa, C. Ries, et al. The generation of true orthophotos using a 3D building model in conjunction with conventional DTM. In International Archives of Photogrammetry and Remote Sensing, vol. 32, 1998. [70] G. Singh, Y. Yamaguchi, W.-M. Boerner, and Sang-Eun Park. Monitoring of the March 11, 2011, off-tohoku 9.0 earthquake with super–tsunami disaster by implementing fully polarimetric high–resolution polsar techniques. In Proceedings of the IEEE, vol. 101, no. 3, pp. 831–846, 2013. [71] J. Cohen. A coefficient of agreement for nominal scales. In Educational and psychological measurement, vol. 20, no. 1, pp. 37–46, 1960. [72] G.G. Wilkinson. Results and implications of a study of fifteen years of satellite image classification experiments. In IEEE Transactions on Geoscience and Remote Sensing, vol. 43, no. 3, pp. 433–440, Mar. 2005. [73] R.M. Haralick, S.R. Sternberg, and X. Zhuang. Image analysis using mathematical morphology. In IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 9, no. 4, pp. 532–550, 1987. 152 Une approche d’alignement `a la probl´ematique de la d´etection des activit´es habituelles Rick Moritz To cite this version: Rick Moritz. Une approche d’alignement `a la probl´ematique de la d´etection des activit´es habituelles. Computers and Society. INSA de Rouen, 2014. French. . HAL Id: tel-00944105 https://tel.archives-ouvertes.fr/tel-00944105 Submitted on 10 Feb 2014 HAL is a multi-disciplinary open access archive for the deposit and dissemination of scientific research documents, whether they are published or not. The documents may come from teaching and research institutions in France or abroad, or from public or private research centers. L’archive ouverte pluridisciplinaire HAL, est destin´ee au d´epˆot et `a la diffusion de documents scientifiques de niveau recherche, publi´es ou non, ´emanant des ´etablissements d’enseignement et de recherche fran¸cais ou ´etrangers, des laboratoires publics ou priv´es.THESE Pr´esent´ee `a : L’Institut National des Sciences Appliqu´ees de Rouen En vue de l’obtention du grade de : Docteur en Informatique Par Rick P. C. MORITZ Routine Activity Extraction from Local Alignments in Mobile Phone Context Data Soutenance le 05/02/2014 Devant le jury compos´e de : Pr´esident Christophe Garcia Professeur des Universit´es LIRIS, INSA Lyon Rapporteurs Bruno Cr´emilleux Professeur des Universit´es GREYC, Universit´e de Caen Philippe Leray Professeur des Universit´es LINA, Universit´e de Nantes Directeur de Th`ese Michel Mainguenaud Professeur des Universit´es LITIS, INSA de Rouen Co-Encadrants Alexandre Pauchet Maˆıtre de Conf´erences LITIS, INSA de Rouen Gr´egoire Lefebvre Ing´enieur R&D, Docteur Orange Labs MeylanAbstract Humans are creatures of habit, often developing a routine for their day-to-day life. We propose a way to identify routine as regularities extracted from the context data of mobile phones. Mobile phones have become the de facto wearable sensor device, used and carried on person over most of the day. We study existing approaches to this problem, and deem past results not satisfactory, with regard to the ever richer context data available, that is not being exploited. Subsequently, we choose Lecroq et al.’s existing state of the art algorithm as basis for a set of modifications that render it suitable for the task, foremostly addressing performance issues. This algorithm is itself an evolution of a dynamic programming based local alignment algorithm, which is frequently used in biological sequence analysis. Our approach searches alignments in sequences of n-tuples of context data, which correspond to the user traces of routine activity. Our key enhancements to this algorithm are exploiting the sequential nature of the data to reduce algorithmic complexity by a factor equal to the number of data sources available, and using an early maximisation approach to reject non-optimal alignments in favour of optimal alignments. We develop a generator of context-like data to allow us to evaluate our approach automatically, without relying on manual annotation of ground truth. Additionally, we collect and manually annotate a mobile phone context dataset to facilitate the evaluation of our algorithm. The results are promising, allowing us to prove the concept of our approach, while also outlining the limitations. Our contribution can be used as a filter for a domain expert (e.g. the user of the mobile phone himself) to determine whether a certain interval of data corresponds to an actual activity based habit, reducing the workload compared to a pure manual approach. The configurability of the algorithm allows the expert to have control over which patterns are filtered or retained.Contents Nomenclature . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 State of the Art . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1 Context Datasets . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.1 Reality Mining Dataset . . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.2 Lausanne Data Collection Campaign . . . . . . . . . . . . . . . . . 7 2.1.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2.2 Machine Learning and Statistical Analysis . . . . . . . . . . . . . . 9 2.2.1 Classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2.2 Clustering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2.3 Probabilistic State Machines . . . . . . . . . . . . . . . . . . . . . 12 2.2.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3 Sequence Mining . . . . . . . . . . . . . . . . . . . . . . . . 13 2.3.1 Itemset Mining and Sequential Pattern Mining . . . . . . . . . . . 14 2.3.2 String Mining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.3.3 Comparison . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 2.4 Conclusion and Direction . . . . . . . . . . . . . . . . . . . . . 46 3 Alignment of Sequences of n-Tuples . . . . . . . . . . . . . . . . . . . 47 3.1 Context Model . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.1.1 Sequence of n-tuples . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3.1.2 Blocking and Sampling . . . . . . . . . . . . . . . . . . . . . . . . 49 3.1.3 Meta-data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 3.1.4 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 3.2 Alignment Algorithm. . . . . . . . . . . . . . . . . . . . . . . 55 iv3.2.1 Contribution I: Reduction to n-tuple Problem . . . . . . . . . . . . 57 3.2.2 Contribution II: Locally Optimal Alignments . . . . . . . . . . . . 63 3.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 4 Experimental Validation and Results . . . . . . . . . . . . . . . . . . 69 4.1 Synthetic Data Evaluation. . . . . . . . . . . . . . . . . . . . . 69 4.1.1 Synthetic Data Generator and Dataset . . . . . . . . . . . . . . . . 69 4.1.2 Synthetic Data Pattern Extraction Evaluation . . . . . . . . . . . 89 4.1.3 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.2 Real World Data Evaluation . . . . . . . . . . . . . . . . . . . . 96 4.2.1 Data Collection Campaign . . . . . . . . . . . . . . . . . . . . . . . 96 4.2.2 Evaluation of Alignment Approach on Real Data . . . . . . . . . . 102 4.2.3 Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 5 Conclusions and Future Work . . . . . . . . . . . . . . . . . . . . . 109 Bibliography . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 A Benchmarks of Supervised Classification Algorithms for Next Place Prediction . . 130 A.1 The Next Place Prediction Problem . . . . . . . . . . . . . . . . . 130 A.2 Dataset Analysis . . . . . . . . . . . . . . . . . . . . . . . . 130 A.3 Next Visit Prediction. . . . . . . . . . . . . . . . . . . . . . . 132 A.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 B Details on the evaluation processes . . . . . . . . . . . . . . . . . . . 138 B.1 Real world data . . . . . . . . . . . . . . . . . . . . . . . . . 138 B.1.1 Similarity score tables . . . . . . . . . . . . . . . . . . . . . . . . . 138 B.1.2 Detailed results of the alignment algorithm evaluation on synthetic data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141 B.1.3 Expert annotated patterns . . . . . . . . . . . . . . . . . . . . . . 145 vList of Figures 2.3.1 A WAP-tree and conditional WAP-trees for two subsequences c and ac (Source: Pei et al. [2000]) . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3.2 Examples of different types of repeat-related features in a string. . . . . . 26 2.3.3 Construction of a suffix tree from abcbcabc%. The numbers indicate both the order and the index of the current suffix being added. New leaves and nodes at each step are shaded. . . . . . . . . . . . . . . . . . . . . . . . . 28 2.3.4 Identification of longest repeats using Baker’s algorithm in the complete suffix tree from Fig. 2.3.3. Steps 7, 8 and 9 of the tree construction are performed, adding the three shaded leaves. The order in which the leaves are added is given by the nodes and indicated by the superscripts of the vertex labels. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 2.3.5 Original Needleman-Wunsch algorithm, as introduced by Needleman and Wunsch [1970]. The left table is filled with incrementation markers (“1”) at each location where a pair of values match. In the right table, the values for all the cells have been determined, and the alignment highlighted by arrows and bold values. The alignment (arrows) starts at the maximum value and then follows the maximum values, upwards and to the left in the table. The “skips” between values 5 and 4, and 3 and 2 are indicative of deletions in the row-string. . . . . . . . . . . . . . . . . . . . . . . . . . 33 2.3.6 Calculation of the local similarity using the dynamic programming approach. The preceding values in the table are either incremented by the substitution score, in the case of the diagonal predecessor, or decremented by the indel penalty. The maximum value is carried over for all successive operations. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 vi2.3.7 Dynamic programming version of the Needleman-Wunsch algorithm. Nonmatching substitutions have no penalty, matching substitutions score a value of 1 and insertions and deletions are penalised with a value of - 1. The left table shows how a particular cell value is calculated from three predecessor values, the right table shows the complete table and highlights the series of maximal values which indicate the alignment operations. Note that the traceback follows substitutions over indels in cases of ambiguity (e.g. the 4→3 transition marked in the right table), as the value that was used to calculate the current value defines the path for the traceback, and not necessarily the maximum value. . . . . . . . . . . . . . 36 2.3.8 Two accumulated similarity tables obtained using the Smith-Waterman algorithm. The left has been calculated using a similarity score of 1 for matches, and dissimilarity penalties of -2 for non-matching substitutions and indels. The right table has this penalty reduced to -1. In each case, the alignments with a similarity score of at least 3 have been highlighted. Note how the higher penalty leads to smaller, more local alignments. . . . 38 2.3.9 Row and column prefixes, and accompanying notation. . . . . . . . . . . 40 2.3.10Three different ways of modelling context for different sequence mining approaches. “Data synchronisation” refers to the need to have a full set of sensor readings available at every time step, irrespective of different sampling frequencies of the actual sensors. . . . . . . . . . . . . . . . . . . 42 3.1.1 The transformation of continuous context C(t) into context data in a sequential model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 3.1.2 Linking w- and z-axes into a single dimension, due to translational symmetry (i.e.: every set of discrete steps taken along the z-axis is replicated identically in the w-axis). . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.1.3 Splitting a long sequence of context data into blocks of roughly equal (but not necessarily equal) lengths. . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.1.4 The reduction of the size of individual accumulated similarity score tables which can be obtained by blocking. a and b are two sequences, with the local similarity scores contained in the volume spanned between them. . . 51 3.1.5 A sample substitution similarity score table from the set of n tables. . . . 52 3.1.6 Two intervals of identical values but different lengths can be aligned by assigning positive similarity score to insertions and deletions of identical values. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 vii3.2.1 Two example context sequences, the resulting context data sequences and an alignment (cells underlaid in grey) that corresponds to two similar subsequences. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 3.2.2 Alignment of two context sequences a and b from a corpus. . . . . . . . . 56 3.2.3 Selection of tuple elements in a sequence using reverse addressing. The origin of the coordinate system used here is in the lower right end of the sequence. From there the first coordinate is incremented when moving one element to left, and the second when moving one element upwards. . 58 3.2.4 Example of the •i,,j operator. If the operator is used on the same sequence of n-tuples, with one pair of indices being higher than the other, the smaller result is a subset of the larger one. In this case the result underlaid in black is a subset of the result underlaid in grey. . . . . . . . . . . . . . 59 3.2.5 Selection of a column and row using the ↑ and ← operators. . . . . . . . . 60 3.2.6 Calculation of a column similarity score. Two columns are extracted from two sequences, then aligned in inverse order, up to the point where the similarity score reaches zero. The maximum similarity from this interval is the similarity value we assign these two columns. . . . . . . . . . . . . . 61 3.2.7 The local dependencies of the calculation of a local similarity value. To the left in the three-dimensional table of accumulated similarity scores T and to the right the equivalent representation in the domain of the two sequences a and b. Operations V and VI – insertion and deletion – are one-dimensional operations and therefore appear only either in a or on b. 63 3.2.8 The rightmost (n-th) z-slice of a table T. The axes of the plane correspond to the temporal axes of the sequences. The height and colour are representations of the accumulated similarity value in the cell in T. The white profile line denotes the plane of an arbitrarily chosen MASS. The highest value is denoted by an X. . . . . . . . . . . . . . . . . . . . . . . . 64 3.2.9 The local neighbourhood of a node (in the centre of the shown cube) in the accumulated score table T. The shown cube consists of 27 sub cubes, the one at the centre being the “home node”. The other 26 surrounding it, are the direct neighbours. A partial spatial subdivision is shown in the lower left corner to illustrate the notion of “radius”. . . . . . . . . . . . . 66 viii3.2.10Accumulated similarity score table for the alignment operations of the context data corresponding to two consecutive days. Each graph represents one of the five slices (n = 5) of the z-axis, starting at one at the top, incrementing to five at the bottom right. Height and colour correspond to local similarity values. The x - y plane is spanned by the temporal axes of the sequences. Note multiple peaks at different heights. . . . . . . . . . 67 4.1.1 Stream, pattern and cell for a simulated 4-tuple dataset. The stream consists of patterns (coloured) and random data (light grey). Each pattern consists of defined values (blue) and undefined values (white). . . . . . . . 71 4.1.2 Four alphabets A1, A2, A3, A4 with respective spectra 5, 6, 4 and 2. N.B.: Different symbols across different sensors (e.g. “A”, “1”, “a”, “0”) are used here for illustration purposes only, symbols are actually represented by their indices (i.e. as in A2). . . . . . . . . . . . . . . . . . . . . . . . . 72 4.1.3 A set of patterns, P = {X1, . . . , Xm}, with n data sources and lengths l1, . . . , lm, and a pattern element x = Xm,n,1 ∈ An. . . . . . . . . . . . . . 74 4.1.4 Illustration of dependence coefficient determination during creation of similar patterns. The right vectors are created from the values of the left vectors, through linear interpolation and scaling. . . . . . . . . . . . . 79 4.1.5 Noise is applied to symbol x from alphabet A1 using transition cost matrix T1 and transition cost vectors ~b1, ~d1, ~e1. The resulting value is y = 4. This example uses integer values for easier reading and comprehension, in general the random values are real values. The process starts with value x2,1,1 = 2 from pattern X2, extracts the corresponding row from T1 and selects the smallest absolute value in the sum of the extracted row and a random vector, to determine the index of the element to replace x. . . . . 84 4.1.6 Extract of a possible resulting stream with n = 4 and m = 3 different patterns (blue, yellow and green) and noise (red). I and D indicate cells in which insertions or deletions have happened. y is the symbol that has been generated in Fig. 4.1.5. . . . . . . . . . . . . . . . . . . . . . . . . . . 85 4.1.7 Evaluation scoring example. . . . . . . . . . . . . . . . . . . . . . . . . . . 90 ix4.1.8 The ratios of the number of alignments to the combinatorially expected number of identical pairs of patterns in two different files, for all five datasets and all 27 experiments. As the number of patterns rises, the expected number of pairs gets lower, and the rate of alignments gets closer to the number of pairs. *Note: The values for dataset 3 are on another scale than the others. . . . 93 4.2.1 Clustering of locations into places of the data gathered by one subject over a one week timespan. Artificial jitter has been introduced to the data, to better visualise data density. Note how nine incidences in the top left are clustered together with the other points towards the top left. The low number of incidences renders this error negligible. . . . . . . . . . 100 4.2.2 Visualisation of an extract of the captured data, with similar intervals marked. This extract covers the morning period of two consecutive days. The y-axis represents the different discretised context values. The values shown in this extract are light intensity on a logarithmic scale (loglux), the state of the proximity sensor (prox), the location cluster id (place), the battery level (batt) and the orientation of the phone (ori). . . . . . . . 101 4.2.3 Alignment of three pre-selected patterns with campaign data in 58 slices corresponding to 24-hour periods of 5-tuples. . . . . . . . . . . . . . . . . 103 4.2.4 Mean precision and recall for the instances in the corpus (“B” - part of the alignment) for the 24 test configurations. From left to right are the different values of MASS used. With rising MASS, both precision and recall increase. The rightmost bars are fewer, as no alignments were made with MASS values 1,700 and above for pattern 3, and no alignments were made with MASS values 3,000 for pattern 1. Due to the smaller number of elements contained in pattern 3, it has higher values than patterns 1 and 2 for the same MASS. . . . . . . . . . . . . . . . . . . . . . . . . . . 107 A.3.1Results for the Naive Bayes Classification Algorithm . . . . . . . . . . . . 134 A.3.2Results for the LogitBoost Adaptive Decision Tree Classification Algorithm135 A.3.3Results for the SMO Classification Algorithm without Feature Selection Filters . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135 A.3.4Results for the SMO Classification Algorithm with Feature Selection Filters136 B.1.1Reference pattern 1 - evening and night at the week-end home. . . . . . . 146 B.1.2Reference pattern 2 - morning and transit to work on a week-day. . . . . . 147 B.1.3Reference pattern 3 - at work, telephone stored or turned over. . . . . . . 148 xList of Tables 2.1 Comparison of SPM and string mining . . . . . . . . . . . . . . . . . . . . 45 4.1 Configuration of the five datasets. . . . . . . . . . . . . . . . . . . . . . . 87 4.2 Configuration values for the 27 experiments making up a dataset. . . . . . 88 4.3 Transition matrix T used for the generation of the test datasets. . . . . . 88 4.4 Key results: averages and standard deviations across all configurations. . 91 4.5 Average Pattern Size for Dataset One . . . . . . . . . . . . . . . . . . . . 92 4.6 Key results: averages and standard deviations across all configurations for the state of the art algorithm . . . . . . . . . . . . . . . . . . . . . . . 95 4.7 Evaluation results. A is the search pattern, B is the instance in the corpus.105 A.1 Classifier and Filter Configurations Tested . . . . . . . . . . . . . . . . . . . . 133 B.1 Similarity score table for luminance . . . . . . . . . . . . . . . . . . . . . . 139 B.2 Similarity score table for proximity . . . . . . . . . . . . . . . . . . . . . . 139 B.3 Similarity score table for places . . . . . . . . . . . . . . . . . . . . . . . . 139 B.4 Similarity score table for battery levels . . . . . . . . . . . . . . . . . . . . 140 B.5 Similarity score table for orientation values . . . . . . . . . . . . . . . . . 140 xiNomenclature API Application Programming Interface. A set of exposed functions available to programmers to make use of an established software platform. BIDE BI-Directional Extension based frequent closed sequence mining. A closed sequential pattern mining algorithm by Wang and Han (2004) BLAST Basic Local Alignment Search Tool. An approximative but fast local alignment algorithm by Altschul et al. (1990). BLOSUM BLOcks SUbstitution Matrix - A substitution scoring matrix for the alignment of proteins. The matrix entries are determined by statistical analysis of a database of evolutionary observations. BT Backtrack - Second step of a dynamic programming algorithm; in our case a trace along elements in a score table, marking the operations required to convert one sequence into another. DNA Desoxyribonucleic acid. A molecule that encodes genetic information in a sequence. FASTA fast - All. A sequence mining software suite developed by Lipman and Pearson (1985). FP-growth Frequent Pattern; Introduced with the FP-growth algorithm by Han et al. (2000). GPS Global Positioning System – Satellite based time-of-flight positioning system xiiGSM Global System for Mobile communication – European standard for second generation digital cellular networks for mobile phones. GSP Generalized Sequential Patterns. An Apriori-type sequential pattern mining algorithm developed by Agrawal and Srikant (1996) indel Insertions and deletions in sequences. A single term is sufficient to describe both these inverse operations, due to the symmetry of the alignment operation with respect to the order of the input sequences. LAN Local Area Network - a computer network with scope limited to a small geographic entity and using local addressing. LZ A set of compression algorithms proposed by Ziv and Lempel in 1977 and 1978. MASS Minimum Accumulated Similarity Score. This value is the criterium whether two sequences are to be considered similar or not. MDC Nokia Mobile Data Challenge. A data mining and visualisation competition held over the first half of 2012, on a mobile phone dataset gathered by Nokia. The dataset is explained in Subsection 2.1.2, and one of the competition tasks is presented in Annex A. RMD Reality Mining Dataset. See subsection 2.1.1. RNA Ribonucleic acid. A functional molecule that encodes genetic information in a sequence. sensor In this work: a source of discrete context data. This can be anything from a Boolean indicator to a fusion of multiple semantically linked context data readings, such as orientation, linking the data of an accelerometer and magnetometer. SPADE Sequential PAttern Discovery using Equivalence classes. A sequential pattern mining algorithm proposed by Zaki (1998) SPAM Sequential PAttern Mining. An algorithm proposed by Ayres et al. (2002) for finding all frequent sequences within a transactional database. SPM Sequential Pattern Mining xiiiWAP Web Access Pattern. A user’s trace when navigating across websites. WLAN Wireless Local Area Network. A term encompassing networking as defined in IEEE standards group 802.11. xivIntroduction Multiple studies have shown that humans are creatures of habit – from Heidegger’s musings in “Sein und Zeit” to the more concrete works of Gonzalez et al. [2008] and Eagle and Pentland [2009]. Although routine is not universal, for those that adhere to it, it provides a stable framework of activities. If a computer system can be made to be aware of this routine, then it can be proactive and anticipatory in nature, preparing for commonly encountered situations, or even alerting the user when routine is unexpectedly broken at some point. Routine can also be used to enhance a computing system which adapts itself to current events. When historical data can be linked to the present state, activities and contexts can be recognised with increased certainty. All this is beneficial, when developing ubiquitous computing systems – specifically with regard to ambient, passive interfaces. We assume that habits (i.e. activity patterns indicating routine) can be derived from user context data. “Context” classically refers to the entirety of the environment of a human-computer interaction – slightly varying definitions have been proposed by Schmidt et al. [1999], Chalmers [2004] and Dourish [2004]. Examples of context data are factors such as physical environment (e.g. place, light, noise), social environment, system status and simultaneous tasks. For the purpose of determining routine, we are primarily interested in specific aspects of context, that are characteristic to an activity. This does not necessarily imply that the context data allows one to infer the actual activity, but it is sufficient to identify recurrences. One theme of this thesis is in fact that of the title of Schmidt et al. [1999] “There is more to context than location”: there exists a large body of work on spatio-temporal routine detection, but our aim is to go further, and include other context data to obtain a model of routine that is richer in information and higher in resolution. 1Currently, the most widespread device in use with the capability to observe a reasonable amount of context, is the mobile phone. These phones are equipped with a number of sensors and an almost constant network connectivity which allows queries to nearby fixed sensors. For many people, their mobile phone is a constant companion allowing the capture of context data for a large number of activities. Furthermore, as multi-purpose mobile computing terminals, these same phones also form the interface to the computing system that benefits the most from having access to routine information. With regard to the definitions of context previously given, there is one further remark to make: context is defined as being linked to an interaction. At first glance, capturing data over the course of a day, to observe routine, is a passive process and does not fall under the traditional view of an interaction. But – within the concept of ambient interfaces – even just carrying a mobile phone (or in fact, even not carrying it) becomes an interaction, because we instrument the phone. Therefore, this implicit interaction happens within a context, which is duly recorded. Routine conveys important information all by itself, but can also be used to enhance current context information. A key use of context data is directly on mobile devices, which are situated within a certain context, used within a certain context and thus ideally exploit this data to better fulfil their purpose, as well as adapt and respond to changes in context. One pertinent example for such a mobile application that uses routine and current context data, is the Magitti leisure guide [Bellotti et al., 2008]. Similar applications in the domain of prediction and recommendation are presented by Anand and Mobasher [2007]. Wesson et al. [2010] discuss the benefits of adapting the mobile user interface of a computing system to the current context. Baldauf et al. [2007]’s survey of context aware systems essentially covers many more examples, where having additional context information based on a routine model can improve the user experience. The spectrum of approaches covers safety, security, entertainment and education. Mobile guidance and navigation systems can also be made to be context sensitive and routine dependent [Brush et al., 2010, Li and Willis, 2006]. Our technical goal is to detect patterns in the context data of a mobile phone user, with the expectation that patterns in the data correspond to routine activities. Raw context data can be understood to be a number of time series of physical values. Based on this representation, there exist multiple ways to analyse the data: Statistical approaches based on state transition probabilities (e.g. Ashbrook and Starner [2002]), database oriented approaches based on sequential apparition frequency (e.g. Giannotti et al. [2007]) and sequence based approaches based on edit distances and similarity measures (e.g. Sigg et al. [2010]). As the title of the work suggests, we ultimately pursue an 2approach that performs approximate string matching by aligning pairs of sequences. This algorithm determines local similarity scores for sequences of context data – we suppose that highly similar sequences of context data correspond to similar contexts and thus to actions of the same type. But we must also consider potential shortcomings of the data on which we base our study: sensor noise may render an activity difficult to recognise, and an activity is not repeated identically every time, leading to potential variations in duration and values in the corresponding context data, which must also be accounted for. Our alignment algorithm – an adapted version of the algorithm introduced by Lecroq et al. [2012] – is based on a representation of context data as a sequence of n-tuples. In this structure we calculate local alignments. To determine if these alignments correspond to context patterns, we devise an evaluation procedure. This procedure is in one case applied to synthetic data, generated according to predefined parameters, and in another to real world data which we gathered during a data collection campaign. The results from a large spectrum of test conditions allows us to characterise the suitability of our algorithm for the routine activity detection problem. The final results indicate that the algorithm reliably performs as a filter for context data, to limit the function of a domain expert to approving or rejecting the extracted data as being correspondent to a routine activity. Conversely, there are limitations to using it as a general, fully automated routine extraction approach. This work is structured as follows: ❼ In the second chapter, we examine the state of the art for both available context datasets and pattern detection approaches. We study the datasets for their suitability for routine context extraction and their data collection methods. The pattern detection approaches are divided into statistical and sequence mining approaches. We briefly discuss statistical approaches, and explore the various sequence mining approaches in more detail. We split the latter field into sequential pattern mining approaches, which take a database oriented view on sequences, and on string mining, which is focused on comparing long, individual sequences. We conclude this chapter with a direct comparison of the most promising approaches and an argumentation for our choice of approach, as well as identifying the limitations upon which our solution has to improve. ❼ The third chapter introduces our context model and algorithmic contributions. The context model defines a similarity measure for a pair of context sequences, which the alignment algorithm then uses to find maximally similar subsequences 3from a pair of sequences. Our algorithmic contribution is divided into two parts. The first part reduces algorithmic complexity by simplifying the state of the art approach, the second part details our local maximisation approach to further increase performance. ❼ The fourth chapter is dedicated to the experimental evaluation of our approach, on synthetic and real world data. It describes a data generator we developed with the goal of creating well-understood data with context-data-like characteristics and a high degree of configurability to allow the reproduction of a variety of scenarios. We also document our results obtained on five different such scenarios. A set of variable parameters for each scenario allows us to gain a further insight on the theoretical performance of our algorithm and its behaviour under varied conditions. We also present our data collection campaign in some detail. We used part of that data for a second evaluation, which is also described in this chapter. ❼ The final section gives a summary of our contributions and results, presents our conclusions and discusses limitations to our approach as well as potential future work to address these limitations and propose extensions. 4State of the Art As we laid out in the introduction, our approach to identifying routine activities is to find patterns in time series of context data. In this section we present and discuss different possible approaches, which should theoretically reveal such temporal patterns. We briefly revisit the notion of “context” and examine how context data is represented in actual context datasets. By class of approach, we present existing routine activity detection solutions. We examine the varying approaches for a number of criteria, relevant to our task. These criteria are: 1. The ability to process data that has the volumetric characteristics of context data, regarding both algorithmic complexity and real world constraints; 2. The degree of pre-treatment of context data required; 3. The flexibility of the underlying model, to accept situation-specific tuning; 4. The resilience of the approach against the inherent noise and unreliability in sensors and slight variations in how activities are repeated; 5. The impact of temporal effects, such as desynchronisation of data and dilation or contraction of the time-scale of an activity; 6. The effort required to parametrize the underlying model and 7. The suitability to a (partial) deployment on mobile platforms. We will refer to these criteria by their number in the following sections, whenever a relevant bit of information is touched upon. 5Our examination of the state of the art is split into three sections. First, we take a look at existing context datasets, to situate our goal with regard to available data. Then, we survey the state of the art for relevant methods that allow us to match, compare or extract patterns in time series data, by studying two fields of specific interest: Statistical approaches to pattern mining and sequence mining based approaches. Finally, we crosscompare the most suitable approaches and datasets, to determine the course for this work. 2.1 Context Datasets When examining user behaviour over the long term, a large dataset of context data is crucial to verify our hypothesis. In this section, we look at a number of different context datasets to learn more about available context data, and the utility of this data for our task. A small dataset, that can be understood to be a pioneering precursor, is that of Raento [2004]. Another early dataset by M¨antyj¨arvi et al. [2004] was limited to a strict set of scenarios, and did not actually consist of a recording of real world data. Kotz and Essien [2005] present a simple location-focused dataset, obtained by studying the movement of wireless network users of Dartmouth college. Two specific context data sets have caught our attention, the reality mining dataset (RMD [Eagle and Pentland, 2005]), and the Nokia mobile data challenge (MDC [Kiukkonen et al., 2010]) dataset. They represent, respectively, the first large scale mobile phone dataset ever published as well as the largest and most complete dataset currently available. 2.1.1 Reality Mining Dataset The RMD is the first large scale mobile phone context data set that has been collected. Due to its public availability, it stands as a reference dataset when it comes to the detection of routine user behaviour. It was designed with this goal in mind and used in the work of Eagle and Pentland [2009] to determine behavioural routines. The dataset is the result of a broad (100 participants) mobile phone data acquisition campaign the data from which was made available to the scientific community. The RMD was established using the Context Phone application developed by Raento et al. [2005]. It contains primarily finely grained location information, but also application and communication use logs and relative proximity indicators among study subjects. 6The specific protocol was established as follows: One hundred MIT students and members of faculty staff were given Nokia smart phones, pre-installed with several applications that track context. This context data comprises call meta data, the set of Bluetooth devices in range, the ID of the connected cellular radio tower, application usage and some phone status variables, such as whether the phone is idling or charging. This data was collected over an academic year, aggregating 450,000 hours of data, with Bluetooth data being logged in five minute intervals. The researchers report some data loss (around 15%) due to some subjects deactivating their phones during the night, and also due to some data corruption events. Finally, there are incidents of forgotten phones, where the phone records data, which has no association with the actual activities of the test subject. In addition to the context data, there is data from surveys of subsets of the test group to establish some meta-data (relationships between study participants and social activities) to the main data gathered by the phones. Some subjects also kept more detailed activity diaries over part of the data gathering period. 2.1.2 Lausanne Data Collection Campaign This dataset [Kiukkonen et al., 2010] includes data from 200 users from the Lake Geneva region in Switzerland and consists of the data from around 80 different smart phone context data sources, recorded over a period of over one year. This data was made available to researchers within the framework of the Mobile Data Challenge [Laurila et al., 2012], but is not readily available to the public. The gathered data can be divided into four groups: Location data, media-related data, social interaction data and behavioural data. The central physical data present in the set are 3D accelerometer readings, location and sound measurements. Additionally logs of applications, communications and the operating system are kept, alongside the agenda and contact list. A key distinction of this dataset is the heterogeneous study group. Where the RMD only studied students and faculty staff members from the Media Lab, as well as students of one other lab, this campaign stretches much wider. By consequence, the social graph among the participants is much less dense. Another difference lies in the precision of the location data. Cell tower data is notoriously imprecise, discriminating at around the city block level, whereas more powerful modern phones are equipped with GPS which can reduce this to roughly the street address level, even without further augmentation with wireless networks. Using WLAN access points – as done for this study – increases this precision further, especially in 7urban zones. In comparison, the Bluetooth augmentation chosen for the RMD only works in select installations outfitted with a beacon. This much higher fidelity of the data leads to a much larger challenge, when distributing this data, as pure anonymisation no longer suffices to protect the identity of the subjects. Furthermore, the higher potential fidelity also implies a potential higher use of the battery. Non-intrusiveness in the routine usage of the phone is a key requirement, as otherwise the impact of adapting to the measuring device would create behaviours and data not corresponding to the reality of the test subject’s day to day life. In an attempt to mitigate these effects, each data source has its own update frequency, in an adaptive event-based system. This allows the sampling to run throughout the day. To minimise data losses, collected data is transmitted to a database server via wireless networks twice a day. With regard to ground truth, an initial questionnaire establishes some demographic and social information, but no further information is acquired. 2.1.3 Discussion A key limitation to the present datasets, is that none of the bases contains any ground truth regarding context routine. Most do not include any manual annotation with semantic data at all. In fact, the large scale nature is somewhat at odds with such demands, as the effort to manually annotate a large dataset by someone other than the subject is immense. Conversely, asking a subject to annotate his or her own data introduces a higher level of effort required to take part in such a campaign and decreases the number of participants. Another problem is that most datasets are limited to location data, and lack many of the physical sensors present in more modern phones, that we presume to capture physical context more accurately. Although the Nokia MDC-dataset does provide accelerometric data and some sound samples, modern smart phones are also equipped with gyroscopes, compasses, light meters and proximity sensors. Conversely, the approach taken by Nokia for the Lausanne data collection campaign includes a vast number of sensors, some of which are not necessarily of interest for the routine activity detection task, increasing the complexity of the required pre-treatment (2). The asynchronous nature of data collection preserves relative temporal structures in high detail (5). Finally, the acquisition platforms used for these two previous datasets have been obsoleted by the development of the mobile phone market. Therefore, if a new dataset would be a requirement, this would entail a new development of the data collection software 8suite. The creation of a new mobile context dataset that contains at least sufficient physical sensor values therefore appears possible and necessary. Many of the paradigms put forward for the different collection campaigns remain valid, such as the principle of nonintrusiveness and the need to assure data integrity. Alternatively, it is common to use synthetic data to verify the behaviour of an algorithm. For this type of data, ground truth of the generation step can be used to address the lack of ground truth in real context datasets. Once a solution to gather the required physical context data is achieved, the next challenge is to find routine data within it. 2.2 Machine Learning and Statistical Analysis Classic statistical machine learning approaches are a mainstay of much of the work of context data analysis. We focus on three key categories: classification as a means of context and activity recognition and prediction, clustering to determine similarities in data and probabilistic state machines – specifically (hidden) Markov models – as a means of modelling routine. 2.2.1 Classification Classification algorithms are a class of algorithms that use a set of examples to learn rules that are then applied to determine which label is to be associated to a measurement. Typically, this is represented by the determination of a characteristic vector over the feature space of the observed events. We discuss two different usages of these types of algorithm, within the scope of the routine activity detection problem: in activity recognition, a current set of measurements of context data are used to determine the current activity; in activity or place prediction, the current state of system is used as a characteristic vector for predicting a future state. 2.2.1.1 Activity Recognition Supervised classification is the principal component in most activity recognition systems. They function by assigning a characteristic vector to each element of a set of activities, and then estimating from actual measurements the current activity. In the field of mobile device based activity recognition, supervised classification has been used (for example) in the works of Choudhury et al. [2008], Lester et al. [2006], 9Berchtold et al. [2010] and Sigg et al. [2010]. Activity recognition by itself does not solve the routine activity detection problem, but a well functioning activity detector can reduce the complexity of the problem by orders of magnitude by transforming it from a multi-dimensional problem into a uni-dimensional one (1,2). We can nonetheless state a limitation to this approach, in that a supervised activity detection requires knowledge of each of the activities that are to be discerned (6). This renders this approach of limited use, when trying to solve a general version of the routine activity detection problem. Furthermore, feature vectors are understood as a unit, therefore algorithms based on them cannot work around desynchronized data (4,5). 2.2.1.2 Activity and Place Prediction Another potential application of supervised classification is in the field of predicting future activities. The approach is similar to activity detection, with the difference that characteristic vectors are assigned to subsequent activities or places. This type of approach was frequently chosen by entries for the MDC “next location prediction” task [Etter et al., 2012, Wang and Prabhala, 2012, Gao et al., 2012], as for that task the known data was restricted to the context data obtained during the “visit” to the directly preceding place. The most successful approaches relies on heuristics which reject certain subsets of the data by declaring it out-of-date information with regard to the prediction task. The benchmarks of three state of the art algorithms – naive Bayes [John and Langley, 1995], alternating decision trees [Holmes et al., 2002] and a sequential minimal optimization based approach [Platt, 1999] – on the MDC prediction task are available in Annex A. The Magitti [Bellotti et al., 2008] recommendation system predicts next activities using a supervised classification approach [Partridge and Price, 2009]. The system is based on the assignment of a leisure activity (e.g. “eat” or “watch”) to corresponding locations in town instead of having a location specific activity model. This meta-activity approach avoids the problem of being limited to recognising specific activities, but consequently the result is too general for many applications outside the activity adviser use case they target (3). 2.2.2 Clustering Where classification assigns one of a pre-defined set of labels to a sample of data, clustering attempts to group a set of data points via a pre-defined distance metric. There are three aspects to clustering that are of relevance to the routine activity detection prob- 10lem: Using clustering to segment sensor data, using clustering to segment sequences and clustering entire sequences. The first is an important step towards obtaining a discrete context model, the second helps identifying atomic activities, and the third is a routine activity extraction approach. 2.2.2.1 Context Data Clustering Context data clustering is a useful first pre-treatment step to reduce the complexity of the routine activity detection problem (1), by transforming the problem from one on continuous data (and essentially a signal processing problem) into a problem over discrete data (2,4). This has been used by Ashbrook and Starner [2002] to derive semantically relevant places from a user’s spatio-temporal positioning data, which then allows the construction of a state-based predictor on the transformed data. Their choice of clustering algorithm was the k-means clustering algorithm. In their article they also meet one of the limitations inherent to clustering algorithms: the results often have to be manually verified, or selected from a number of different configurations (3,6). 2.2.2.2 Sequence Segmentation Sequence clustering can be performed to segment long sequences of context data into locally self-similar subsequences [Clarkson and Pentland, 1999, Himberg et al., 2001]. This can be used as a semi-automatic pre-treatment step to address (1,2,6,7) in routine activity detection approaches, at some potential disadvantage to (4,5). In general, sequence clustering with a simple Euclidean distance does not produce meaningful results [Keogh et al., 2003], requiring the choice of a meaningful metric, before implementation. 2.2.2.3 Sequence Clustering Clustering can also be used to group subsequences by inter-similarity and thus identify patterns. This has been shown by Laasonen [2005] to be a potential avenue of establishing a routine based user model and subsequently recognising and predicting a mobile user’s routes. This works by classifying some of the locations visited by a user as bases, which are locations where a user rests, and others as transient points. In this case, a place corresponds to the currently connected network cell. An edit distance and item similarity measure serves as basis for the clustering model. Katsaros et al. [2003] have shown a similar sequence clustering solution to predict locations, but without the distinction of location classes. The distance measure for the hierarchical clustering which they employ, is a weighted edit distance. This can have good performance with regard to (4,5) at some 11cost to (6). As a statistical approach, there is also a limitation with regard to (1), in that a certain minimal amount of data is required to obtain clusters with acceptable confidence values. 2.2.3 Probabilistic State Machines In the third type of approach, we look at different kinds of probabilistic state machines, which are relevant for user activity recognition and prediction. A relevant example of using hidden Markov models [Baum et al., 1970] to find routine in context is the work of Clarkson [2003], who studied video streams taken from two worn cameras, with the goal of identifying context recurrences. They use an alignment based approach, similar to dynamic time warping [Myers and Rabiner, 1981]. Ashbrook and Starner [2002] use second order Markov models to predict next locations. This required clustering of geolocation data into discrete locations, which where then studied for transition probabilities. In the work of Song et al. [2004], multiple predictors based on probabilistic state machines (Markov models and LZ compression [Ziv and Lempel, 1978]) are evaluated on a common dataset from the Dartmouth campus wireless network [Kotz and Essien, 2005]. A state machine approach requires a sequence segmentation to be viable (6). This means that activities are identified either based on supervised activity recognition or based on sequence segmentation. A common drawback to all approaches outlined in this subsection, is that they are not truly suited to treating multiple data sources in parallel (1,5). 2.2.4 Discussion Within the frame of the routine activity detection problem, statistical approaches can be divided into two categories of application: on the one hand there are data pre-treatment approaches, that reduce the complexity of the actual routine extraction process, and on the other hand there are statistical models that encode routine activity. The former can be used at different levels of granularity, and comprise classification, clustering and segmentation. A high abstraction approach – as often chosen in the literature we presented – can simplify the routine activity detection problem to the point where it is merely the extraction of frequent state transitions. While in theory this is advantageous with regard to (1), (6) and (7), it invariably has drawbacks, when applying criteria (2), (3) and (5). A low abstraction level has the inverse consequences. Therefore, the choice of abstraction level has to be carefully weighed, when developing 12a discrete model. The routine activity detection approaches – using sequence clustering or probabilistic state machines – are relatively simple propositions (1) which depend heavily on accurate preprocessing (2). The central weakness of these approaches – when used on rich context data – is that they use a simple model derived from data that has been heavily preprocessed and abstracted, which results in abstract routine models. These are easy to interpret but hard to validate against the actual data. Furthermore, there is a whole host of limitations to automatic context data abstraction that essentially make this class of approaches not suitable for context data that has multiple independent data sources. When working at a finely grained level, with less abstraction, the models become harder to interpret, and lose their appealing simplicity. This downside leads us to examine approaches that are more suited to this kind of data representation: sequence mining algorithms. 2.3 Sequence Mining Context data is inherently of sequential nature: for each aspect of context, one state follows another and each activity is followed by another. Sequence mining is a subset of data mining, which consists of approaches specifically targeted at sequential data. The field of sequence mining offers a variety of algorithms designed to discover all kinds of features in sequences of discrete elements. As laid out in the introduction, our primary interest is pattern detection. There are two schools of thought, with regard to this problem: 1. Sequential pattern mining (SPM) takes an itemset mining and association rule learning approach to finding such patterns, by looking at the frequency of occurrence of subsequences in a corpus. 2. String mining is an approach that has its roots in bioinformatics, and can be seen as a generalisation of Hamming and Levenshtein distances. We are particularly interested in alignment problems, where the goal is the identification of similar sequences. In the following two sections, we will present different approaches and applications of sequential pattern mining and string mining. In the third subsection we will compare the particular advantages and challenges of each class of approach, and evaluate them against our set of criteria. 132.3.1 Itemset Mining and Sequential Pattern Mining The aim of sequential pattern mining (SPM) is to find within a database of sequences of itemsets (i.e. sets of discrete elements) a subset of interesting sequences. Within the context of the routine activity detection problem, this criterion of interest is that the sequences appear frequently. Sequences in this case are not limited to consecutive elements, but are based on the notion “event Y occurs after event X, within an interval window δ”. There are several ways to formulate the routine activity detection problem in terms of an SPM problem, each suited to a specific group of algorithms from the field. First, context could be abstracted to fit the “sequence of itemsets” paradigm. There is a wealth of classic approaches that find potentially non-consecutive exact sequential patterns. A first challenge in adapting the problem to this formulation lies in finding a useful time-discretisation and temporal splitting interval. The former is achieved by having each sensor value discretised into an item, and by grouping measurements during a predefined time interval into itemsets. The latter requires study of how gravely nonconsecutive patterns impact the results. By shortening the sequences, such patterns become less of an issue, but other, larger patterns may disappear. Additionally, there is the question of which level of support is desired as basis for the result. An early review of examination of patterns in sequential data was performed by Laird [1993]. At this stage, the focus of research was mainly on prediction, extrapolation and modelling of time series. In the same year, itemset mining was introduced by Agrawal et al. [1993]. This forms the basis for all of the following SPM approaches, which is why we take a closer look at the key approaches of the field. The following classification of the approaches is based on the taxonomies proposed by Mabroukeh and Ezeife [2010] and Mooney and Roddick [2013]. We assign the following classes to differentiate between approaches: ❼ Apriori-based (including variants for closed patterns or hierarchical data), ❼ Pattern-growth (including variants for closed patterns), ❼ Vertical data structures, ❼ Early-Pruning and ❼ Hybrid; and then we also discuss variations of these which take into account hierarchical metadata, specifically and exclusively mine closed or maximal frequent patterns, or mine multidi- 14mensional or approximate patterns. All algorithms and challenges identified in the field of itemset mining can be transferred almost exactly to sequential pattern mining. 2.3.1.1 Itemset Mining Itemset mining has as prerequisite the presence of a database which is partitioned according to a primary criterion (e.g. a user ID or a calendar day). The goal is to find subsets of data that occur multiple times among the sets of data points connected to each instance of the criterion. An example relevant to the field of mobile and context sensitive computing is a database consisting of entries that have been generated by logging discretised context data of a user over time. Splitting the database to obtain individual data per hour, and then searching for co-occurrences of certain context values in these sets across different hours, shall determine which context states are frequently encountered together in temporal proximity. Once the frequency of appearance of such an item combination is above a certain threshold, the set is considered to be significant. Furthermore, there is an interest in maximising these sets: a single element that appears across multiple sets is of little interest, whereas large sets carry more information. Once these sets are identified, association rules can be created among them. Association rules can be understood as a way to encode the conditional probability of the presence of an element in an itemset, given a set of elements already present in that set. For example, let there be three context states a, b and c(e.g. loud noise, bright light and medium movement speed) that were recorded during one hour. Furthermore, let the set (a, b, c) appear frequently (and maximally) in a database. Then, it is possible to predict that if a and c are present in one set, that b might also be present in this set (e.g. because all three are present when the user rides his motorcycle on a sunny day) based on the support of the set (a, b, c) (i.e. how often the elements appear together, relative to the overall number of sets created by splitting the database along the key criterion). In terms of context prediction, this means that it is possible to predict context event b as a function of the presence of context events a and c. Clearly, this is limited in scope with regard to the routine activity detection problem, but the close link to sequential pattern mining makes it deserving of a study, to introduce the concepts used further on. Apriori-Based Algorithms The itemset mining problem has first been approached by means of the Apriori-class of algorithms [Agrawal and Srikant, 1994, Mannila et al., 1994]. The key property on which the Apriori-class algorithms are built is the downward closure: the fact that each frequent itemset consists of sub-itemsets that are all frequent, 15and inversely, extending a non-frequent itemset by any item results in another infrequent itemset. This can be exploited to first find frequent elements, and then iteratively extend these candidates to sets, element by element, until the support frequency-threshold is no longer attained. Han et al. [2007] offer an extensive list of further improvements to this approach, with regard to distributed and parallel approaches, as well as general efficiency improvements. The key limitation to this approach lies in the high number of database scans – one for each growth operation – that are necessary to determine the support value for each of the valid candidates that have been generated. Compared to the naive approach, the Apriori property enables the rejection of all subsets which are an extension of subsets that by themselves do not have sufficient support in the database. Pattern-Growth Algorithms Another class of approaches avoids the expensive candidate generation aspect of the Aprior-type algorithms. FP-growth is one such algorithm, introduced by Han et al. [2000b]. This approach uses a divide-and-conquer technique. First, the database is transformed into a list of frequent ordered according to of descending support, and by key-criterion. From this list, a tree is constructed: a node is created for each frequent element, and they are arranged in the tree by their direct prefix item. If an element with an existing identical prefix is found, it is merged into the existing node and the frequency counter of that node is incremented. From every node in this tree, it is then possible to identify frequent itemsets, by following a path of nodes toward the root, from each leaf corresponding to an item. Each such leaf defines a specific sub-itemset. The support of the itemsets are represented by the support of each leaf. A similar tree-based algorithm has been presented by Agarwal et al. [2001]. Vertical Data Structure Algorithms A third way to approach the problem of frequent itemset mining, is to take an orthogonal view at the database [Zaki, 2000]: Instead of assigning to each key criterion a set of items, assign to each item a set of elements from the key criterion. In an example, this would mean that instead of having a set of activities (items) assigned to each day (criterion), to instead assign to each activity the list of days where they occurred. Using this representation, the Apriori property can still be used to generate set extension candidates. Support for a candidate is determined by intersecting the sets that are created by the inversion of the database table. A key advantage is that determining support is as easy as counting the number of elements that are assigned to an item. What is notable about this approach, is that the corresponding sequential pattern 16mining algorithm SPADE [Zaki, 1998] was developed before this idea was ported to itemset mining. Concept Hierarchy-Aware Algorithms An important extension to itemset mining is the acknowledgement that items may be related, and that at times it is useful to mine sets not only of items, but of classes of items. By using concept hierarchies, these classes can be established and (hierarchically) interrelated. One approach to mining such itemsets is a top-down specialisation approach, where first top-level general sets are mined, and then their specialisations are examined for sufficient frequency/support. This is possible if the minimal support threshold is constant across all abstraction levels of the concept hierarchy [Han and Fu, 1995, Srikant and Agrawal, 1995]. Han et al. [2006] present a variation of this approach to problems where minimal support varies by level. Closed and Maximal Frequent Patterns Two further important concepts that restrict the scope of the problem to obtain more expressive results are the concepts of closed frequent patterns and maximal frequent patterns. The former are patterns for which no pattern exists that encompasses it, where both have the same support. This eliminates from the results the most trivial subsets of frequent patterns, without reducing the overall information contained in the results compared to mining all frequent patterns. Any two patterns with different support remain separate. Maximal frequent patterns on the other hand restrict this even further: all frequent itemsets that are subsets of another pattern that is frequent, are discarded. This means that the frequency information for these sub-patterns is lost. There exist Apriori-type algorithms optimised for closed itemsets (e.g. A-Close by Pasquier et al. [1999]) as well as FP-based algorithms (e.g. FPClose by Grahne and Zhu [2003]). Yang [2004] showed that enumerating maximal patterns is an NP-hard problem. 2.3.1.2 Sequential Pattern Mining Sequential pattern mining, when compared to itemset mining, adds the additional dimension of (temporal) order to the problem. Itemset mining examines merely the co-presence of items with respect to the key criterion, whereas sequential pattern mining respects the order of appearance of the itemsets in the data. A naive approach to pattern mining is to count the number of instances of every imaginable subsequence of a database (database being used synonymous with databank, 17i.e. restricted to the physical storage of data). A subsequence in the context of sequence mining consists of itemsets, therefore the presence of multiple items in such an itemset produces ever more possible subsequences to test against the database. Therefore, much as for itemset mining, the goal remains to reduce the number of subsequences to test and the complexity of counting support. Sequential pattern mining has relatively frequently been the subject of extensive surveys. Zhao and Bhowmick [2003] present some of the earlier developments in the field, Mabroukeh and Ezeife [2010] have established a taxonomy and cross-comparison of the key approaches to sequential pattern mining and more recently Mooney and Roddick [2013] have proposed a slightly differing classification and comparison on the same subject. Han et al. [2007] present a survey of approaches to the more general frequent pattern mining problem. All four surveys discuss in more detail what has been introduced here. The following are the main approaches to sequential pattern mining, for the most part mirroring the concepts used in itemset mining: Apriori-Based Algorithms On the base of the Apriori property, Agrawal and Srikant [1995] developed an Apriori-type SPM-algorithm, which has then been extended into the “Generalized Sequential Patterns” (GSP) algorithm in Srikant and Agrawal [1996]. This approach uses a similar minimal starting point, and then iterative growth of candidates, but with a fixed and predefined order for the sequential aspect. An approach that integrates ideas from other algorithms is SPAM by Ayres et al. [2002]. SPAM generates a lexicographic tree and descends along the nodes in depth-first order. The Apriori property determines that any children of a node that does not have minimum support can be discarded from the search. Support is determined by counting incidences in a vertical data structure, which consists of a binary bit map of the sequence, upon which a binary and operation is executed. Pattern-Growth Algorithms The divide and conquer approach has also been applied to sequence mining in the PrefixSpan algorithm [Pei et al., 2001, 2004]. PrefixSpan first determines the set of frequent patterns of length one, and then extends the patterns by determining possible prefixes from within this set, in a similar approach to FP-growth. To do this efficiently, the database is transformed into a more suitable representation. In the case of PrefixSpan, this is a projected database, as introduced in FreeSpan [Han et al., 2000a]. The projection mechanism for sequences and subsequences functions as follows: A sequence S 0 is a projection of its supersequence S with respect to a prefix P if there exists no other supersequence of S 0 that is also a subsequence of S which shares 18the prefix P. This means that the extension of S 0 to S is done purely by extending the prefix P. The database is rearranged according to the prefixes (which are the frequent items in the first step), where each prefix is assigned all occurrences of its postfixes by projection. By matching all postfixes with possible extensions of the prefix – to find frequent patterns – it is possible to determine a new set of prefixes upon which to project the database. A new scan if the database is not necessary, as the relevant sequences to project are already assigned to the prefix used in the previous step. This makes PrefixSpan fast, but the construction of the projected database becomes a major influence on the overall complexity of the algorithm. Another Pattern-Growth approach uses tree projection instead of database projection. One representative from this group is WAP-mine Pei et al. [2000]. Similarly to the database projection approach, there are very few scans of the database - in this case two. The first determines the frequent items, the second builds the tree of frequent subsequences related to these items. The initial tree consists of an empty root, to which the frequent elements are added as nodes. The first element to be added is the first frequent item of the first sequence in the database. The second frequent item is added as a child. This is followed through for all frequent elements in their order of appearance in the first sequence. The same is done for the other sequences, but whenever an element is already present in the correct order in the tree, the existing element is used instead. In parallel, a header link table is established. It links each occurrence of an itemset to the next occurrences of the same itemset within the tree, beginning with the first. To mine this tree, the least frequent item in the tree is chosen, and set as a conditional suffix. Based on this suffix, an intermediate tree is constructed, which consists of those branches that end (whether on a leaf or a node) on this suffix. These are identified by following the header links previously established. The new conditional tree therefore consists of the old tree, minus all the nodes header-linked to the corresponding suffix, and minus the branches that do not contain the suffix at all. For the next step, the suffix is grown by the least frequent item of the new tree, and the process repeated, until only a suffix and the root node are left. Each suffix generated this way is a frequent sequential pattern. This process is demonstrated in Fig. 2.3.1, with the sequences abdac, eaebcac, babf aec and af bacfc, using the example from Pei et al. [2000]. Hybrid Algorithms SPADE [Zaki, 2001] can be considered as a hybrid approach, combining Apriori-based and Pattern-Growth characteristics. It uses an orthogonal view approach to itemset mining for sequential pattern mining. Similarly to Apriori-based 19Figure 2.3.1.: A WAP-tree and conditional WAP-trees for two subsequences c and ac (Source: Pei et al. [2000]) approaches, this approach generates a large amount of candidate sequences that are then reduced by growing the length of the sequences progressively. SPADE transforms a database into a set of key-value pairs, where a list of pairs of sequences (in which it appears) and partition IDs of the key distinction criterion (e.g. a day) is assigned to each itemset (element of a sequence). The algorithm consists of three steps: first, the frequent sequences of length one are identified, then these sequences are extended to frequent sequences of length two. These are arranged in a lattice1 structure, which is traversed in the third step, to count support and enumerate frequent sequences. This lattice structure can grow very large, as it defines an order across all frequent patterns. The authors propose to partition the lattice into smaller subsets, that are sufficiently self contained to be given the term equivalence classes. The strength of SPADE is mining maximal sequences, as when mining all frequent sequential patterns the performance is no better than GSP [Mabroukeh and Ezeife, 2010]. Early-Pruning Techniques This class of approaches exploits the sequential nature of the data, by tracking the positions of items that appear in the sequence. Specifically, if the (absolute) last position of an item is smaller than the position of the current sequence under consideration, then that item cannot occur behind this current sequence [Yang and Kitsuregawa, 2005]. LAPIN [Yang et al., 2007] maintains both a list of the last positions of frequent items, as well as a set of prefix border positions for each frequent item to achieve this. The former is a straight forward table, assigning each sequence a 1A lattice is a specific way to represent a (partially) ordered set, with operations defined to determine infima and suprema for pairs of set elements. See Davey and Priestley [2002] for a complete introduction. 20list of indices corresponding to items that are frequent over all the database; the latter is generated from this list, and consists of all occurrences that have last appearances after the first instance of the item they are related to. By counting the elements in the second set – and determining whether they have sufficient support – it is possible to find the frequent patterns without searching the database. Notable about this approach is that the data structure used is relatively static and has to be regenerated whenever new entries are added to the database. This makes determining the update frequency an engineering challenge when used in conjunction with high frequency data sources. Closed Sequential Pattern Mining These basic approaches return all frequent patterns, particularly including all single elements that are frequent. In most applications this is undesirable, hence closed sequential pattern mining algorithms such as CloSpan [Yan et al., 2003] and BIDE [Wang and Han, 2004] have been developed. CloSpan exploits the property that when projecting a database of sequences with respect to two sequence prefixes, where one prefix is a subsequence of the other, the resulting two projected databases are equivalent if and only if the number of items of each of the projected databases is equal. This allows CloSpan to determine whether extending a sequence by an additional item creates an equivalent sequence or a sequence with different support. This permits the algorithm to distinguish between redundant candidate sequences and those that form a separate result. BIDE is an extension to this approach, that uses projections in two directions to remove non-closed frequent patterns. This covers the most basic approaches to sequential pattern mining. With regard to the routine activity mining problem, there are two further characteristics of interest: multi-dimensional approaches and approximate approaches. Multi-dimensional Sequential Pattern Mining The previously presented notion of “sequence” covers sequences of itemsets, which could comprise the information from multiple context data streams in parallel. Adding a clear notion of orthogonality between the different types of data allows for a more discerning treatment. By assigning each context data source its own dimension, there is no interaction between different states of different sensors. The first “multi-dimensional” sequential pattern mining approach by Pinto et al. [2001] was so only with regard to allowing multiple key criteria according to which support is calculated. This allowed a multi-dimensional notion of support, but the actual itemsets where still restrained to consist of elements of a single dimension. This work has 21been extended with an optimisation for closed multidimensional patterns in the work of Songram et al. [2006] and Boonjing and Songram [2007]. Plantevit et al. [2010] undertook the next logical effort, to treat sequences of multidimensional, multi-level data. They develop the bottom-up approach described by Beyer and Ramakrishnan [1999] to mine maximally atomic frequent sequences, which are sequences consisting of a single (hence atomic) multi-dimensional item. This item must be the most specific – with regard to the concept hierarchy model – item that is still frequent in the database. From this point, the sequences of length one are built up to longer sequences using the SPADE algorithm [Zaki, 2001]. Approximate Sequential Pattern Mining The realisation that exact pattern mining is too restrictive for real world problems has been reached by Wang et al. [2000]. The first approach to mining long sequential patterns from noisy data by Yang et al. [2002] uses a probabilistic model to account for the noise: a compatibility matrix consisting of the conditional probabilities, that x is the real value, given that y has been observed, gives a notion of relative proximity of values, with regard to the measurement (or data generation) process. The notion of support is adapted to become noise-tolerant. The actual significance criterion under noisy influences on the data is termed match, and is defined as the maximum conditional probability of an occurrence of a pattern, given any one subsequence of a sequence, averaged across the database. A slightly modified Apriori-property holds for the match measure as it does for support, if subpatterns are defined as a pattern that lacks some symbols present in the respective superpattern. Although theoretically it is possible to use classical algorithm with this model, the large number of candidates and database scans generated using Apriori-/support-based approaches makes them impractical. Instead, the authors propose a statistical filtering approach to reduce the number of passes, which is based on two criteria: First the additive Chernoff bound [Hoeffding, 1963, Domingos and Hulten, 2000] is used to estimate the size of a pattern (i.e. the points beyond which extending a subsequence reduces its match below the relevance threshold) based on the results of random sampling. This divides the set of candidates into three (probable) classes: frequent, infrequent and ambiguous patterns. The second optimisation deals with the ambiguous patterns – which require further attention – to determine the frequent and infrequent patterns contained within. The specific approach refines the borders (left and right limits of the end of the ambiguously frequent subsequence) obtained during the random sampling approach by collapsing them down to the actual borders. This is done using a hierarchical division of the two estimated borders, which takes at worst O(log(n)) steps to find the correct 22border, where a classic linear algorithm would take n steps. Overall performance of the approach depends very much on the data and the number of ambiguous patterns that cannot be identified during the first probabilistic step. ApproxMAP [Kum et al., 2003] – another approximate method – borrows some notions from string mining. This algorithm mines consensus patterns (i.e. short patterns that appear in similar fashion across many of the examined sequences) through multiple pattern alignment. It uses a hierarchical edit distance as a similarity measure for pairs of sequences, and thus determines clusters of similar sequences. In a second step, a representative for each cluster is selected. A consensus pattern is determined to be present whenever a sufficient number of sequences in the cluster share this representative to achieve a strength threshold – a notion similar to “minimum support”. Applications in Context Pattern Mining The main application to context data mining is the field of trajectory mining and more generally spatio-temporal data mining. Due to the limited scope of this problem, compared to the routine activity detection problem, we only briefly introduce a few key approaches. Rashad et al. [2007b] developed a multi-dimensional PrefixSpan [Pei et al., 2001] specialisation called MobilePrefixSpan (based on the work of Pinto et al. [2001]), to mine movement patterns of mobile users. Their database consists of entries, describing which user was present in which mobile phone network cell, at which time. Using the generated movement profiles, they try to predict future positions of users, with the goal of providing better resource management in the wireless network itself. Compared to the original PrefixSpan, they restrict sequences to consecutive sequences, as they argue that the exact order in which cells are visited is more important than the more global trends that traditional sequence mining detects. Giannotti et al. [2007] also perform pattern mining on GSM or GPS location data. They extend the basic SPM model with annotations indicating the typical transition times between elements (see also the previous work of Yoshida et al. [2000]) and replace itemsets by spatial points. The calculation of support is not done by exact matching, but instead by an error tolerant neighbourhood function. One of the key problems of this approach, is that of determining Regions-of-Interest – i.e. semantically similar regions, to determine the neighbourhood function – for which they provide a seed-and-growth approach, using popular spatial points as starting points. The actual mining algorithm is introduced in Giannotti et al. [2006] and uses prefix projection (like PrefixSpan [Pei et al., 2001]), but modified to accept time-stamped sequences. Further work in this field can be found in the works of Kang and Yong [2010], Lei and 23Wong [2009], Nanni et al. [2010], Zhao et al. [2013], Zheng et al. [2011]. 2.3.1.3 Discussion SPM, at first glance, presents a suitable approach to the routine activity detection problem. The blocking metaphor (selecting sequences from a database by a key criterion) works well with the notion of days and weeks structuring human activity. The performance is compatible with the volumetry of context data (1). Although actual algorithmic complexity largely depends on the data, the sample data presented usually scales up to hundreds of thousands of itemsets in the sequences. The notion of closed patterns and maximal patterns allow refining the result to those patterns that should be the most interesting. The traditional SPM is limited, in that it can only identify exact patterns. Semantic hierarchical models can help with this (3,6). In this case, similar sensor values are grouped under a more general label, to allow for more general patterns to be mined. Additionally, approximative approaches exist, that are able to find patters in noisy data, or use string mining approaches to identify similar sequences, thus addressing criterion (4). Although these hierarchical approaches are more realistically employed to solve the routine activity detection problem, there still persists one problem. Treating each sensor merely as one source of items that are all fundamentally equivalent, in that in theory each item can be replaced by any other, leads to a large number of comparisons that can be prevented, if from the start the data is considered multidimensional. Plantevit et al. [2010]’s multilevel and multi-dimensional approach is capable of eliminating these ambiguities, which should in theory allow an optimized treatment of such truly parallel data. On the other hand, this approach is limited to exact matches, which puts higher demands on the preprocessing of the context data. As with the other approaches, the non-consecutive sequences that do not make sense need to be removed from the results. Lastly, tuples (i.e. multi-dimensional datasets) are treated as a unit, so desynchronised context data would prove problematic (5). A notable drawback then, across almost all SPM algorithms – when dealing with context data – is that in the classical retail shopping scenario, items are numerous and sequences are short, but for the context scenario, sequences are long, and “items” are relatively few. This is the foremost limitation, as non-consecutive patterns can appear by coincidence much more easily in these conditions, without actually indicating a recurring activity. The consecutive approach by Rashad et al. [2007b] provides a solution to this, but inversely the increased requirement for exactness (as now erroneous values are not 24skipped) requires more intense preprocessing, which renders an adoption problematic. The time-interval supporting approaches by Yoshida et al. [2000] and Giannotti et al. [2006] allow to quantify these intervals between items and use them to determine patterns that take these intervals into account. Compared to SPM, string mining addresses approximate approaches much more comprehensively, and with less inherent complexity. 2.3.2 String Mining Strings are finite length character sequences. By assigning to each state of a context or sensor a specific character, it is possible to represent context data sequences with strings. String mining, as a discipline, is closely linked to bioinformatics and computational biology. With the discovery of the structure of DNA, RNA and protein structure, and the ability to obtain base pair sequences and amino acid sequences from cells, the search for meaning in these sequences became a major research topic. This so-called “biological revolution” has motivated a large parallel effort in the development of effective and efficient sequence analysis (i.e. string mining) algorithms. In their survey of string mining in bioinformatics, Abouelhoda and Ghanem [2010] provide a taxonomy of the field, discerning principally between repeat-related problems and string comparison problems. Repeat-related problems try to find repeated or otherwise interesting subsequences within larger sequences, whereas string comparison problems are based on comparisons between two separate strings, and often inspired by a need to determine a similarity metric. Each of these two categories is explored in the following, with a closer look at approaches that are of relevance to our routine activity detection problem. 2.3.2.1 Repeat-Related Problem Repeat-related problems can be divided into the following subclasses (c.f. Fig. 2.3.2): Dispersed Repeats i.e. finding repeats through a sequence. These repeats can be either approximate or exact, with fixed or variable length. Tandem Repeats i.e. repeats that occur in an adjacent manner. These repeats can also be either exact or approximate in nature. Unique Subsequences i.e subsequences that do not have repeats and appear only once in a sequence. 25Absent Words i.e. subsequences that do not exist at all in the original sequence. Only the shortest absent words are of interest, as generally there is an infinite number of subsequences not contained within a sequence. With regard to the class of repeat-related problems, our task falls within the scope of a dispersed longest repeat problem: Find a pair of sub-strings that match, where neither the pairs of preceding elements nor the pairs of succeeding elements match. Alternatively, if a sufficiently powerful classifier were to exist, which could consistently assign a correct activity label to a set of sensor readings, the routine activity detection task could be expressed as an exact repeat problem; otherwise it would be a more general approximate repeat problem. The approximate repeat problem is solved by a local alignment algorithm in O(n 2 ) [Smith and Waterman, 1981], which technically belongs to the class of comparison problems, and is described in the corresponding – next – subsection. A naive, brute-force approach to finding (longest) pairs of exact repeats would be to create a scatter plot, and scan along its diagonals for series of matches. Given n lines of input, this type of approach would use O(n 2 ) time and O(n) space. a b c c a d c d a c a b d b c c c b a d a a c a c d d c b b b b c c d b b a c a b c c a d c d a c a b d b c c c b a d a a c a c d d c b b b b c c d b b a c a b c c a d c d a c a b d b c c c b a d a a c a c d d c b b b b c c d b b a c a b c c a d c d a c a b d b c c c b a d a a c a c d d c b b b b c c d b b a c {aaa,aab,aad,aba,abb,acb,acc,adb,add,baa,bab,bba,bbd,bca,bcb,bcd, bda,bdc,bdd,caa,cbc,cbd,cdc,dab,dad,dba, dbd,dca,dcc} dispersed exact repeats of size 3 tandem exact repeats of size 2 unique subsequences of size 2 absent words of size 3: a b c c a d c d a c a b d b c c c b a d a a c a c d d c b b b b c c d b b a c dispersed approximate repeats of size ~5 a b c c a d c d a c a b d b c c c b a d a a c a c d d c b b b b c c d b b a c tandem approximate repeats of size ~3 Figure 2.3.2.: Examples of different types of repeat-related features in a string. 26Suffix Tree Approach A suffix tree [McCreight, 1976] based approach appears more suited for large volumes of data. Baker [1992] proposes an exact matching algorithm using the suffix tree structure, that finds pairs of maximal repeats in a sequence of length n and m repeats in O(n + m) time. It follows a description of this approach and an illustration on the example input string abcbcabc% (% is the string termination symbol). The algorithm consists of four steps: 1. A suffix tree is generated, as follows: a) An empty tree is generated (as in Fig. 2.3.3-0); b) A leaf containing the entire string (appended with a termination symbol “%”) is created (as in Fig. 2.3.3-1); c) A new leaf containing the first suffix (comprising all but the first element) is created (as in Fig. 2.3.3-2 to -6, and Fig. 2.3.4 for the final three leaves); d) If the head (i.e. the first elements of this suffix) is present in an existing leaf, a new node representing this head is created, and two leaves representing each of the possible suffixes to this head are added to it (e.g. in Fig. 2.3.3-4 for bc, when the suffix bcabc% is added to the tree which already contains a leaf bcbcabc%); e) Repeat (c) and (d) with the first suffix of the remaining string (as in Fig. 2.3.3- 3 to -6 and Fig. 2.3.4 for the final three leaves, 7, 8 and 9). Each newly added leaf representing a new suffix is assigned the index of its first element in the original string. 2. In the suffix tree, identify head nodes (circular nodes in Fig. 2.3.4) which satisfy a minimum length condition (≥ 2 for this example). They correspond to repeating sub-strings, with differing right elements (as otherwise the head node would already comprise this right element). The left element may still be identical. In the example these are the nodes bc and abc. 3. Build a list of suffixes, grouped by left elements: For each possible element to the left of the node “head” element, a list is created. Each leaf is added to the corresponding list. In the example, this is shown for node bc in Fig. 2.3.4, with the left elements a (in the case ∗abc∗, leaves 2 and 7) and c (in the case ∗cbc∗, leaf 4). The leaves are emphasised by being enclosed within the dashed ellipses, and labelled with the prefixes. 27root 0 root abcbcabc% 1 root abcbcabc% 2 bcbcabc% root abcbcabc% bcbcabc% cbcabc% 3 root cbcabc% 4 root 5 abcbcabc% c bc bc root 6 c bc % abc Figure 2.3.3.: Construction of a suffix tree from abcbcabc%. The numbers indicate both the order and the index of the current suffix being added. New leaves and nodes at each step are shaded. 4. Form the cross-product of each distinct pair of lists for all nodes. In the example this is the cross-product of the lists (2, 7) × (4) = (2, 4),(7, 4) for the node bc, meaning that bc is the longest repeat for the instances of bc in the fourth position in the string, with the instances in the second and seventh position. The pair of leaves 2 and 7 of the node bc in the example are not longest matches, as the preceding character is an a each time. Therefore the actual longest match is to be found elsewhere: in the node abc and the pair of leaves 1 and 6. Applications to User Modelling Within the context of routine activity detection, this approach has been used by Pitkow and Pirolli [1999] to mine users’ web access logs, with the goal of predicting websites that a user will visit in the near future. After extraction of the longest matching subsequences, these subsequences are split, and Markov models (of different orders) are used to obtain transition probabilities. The key use of the longest repeat problem in this case was to optimize performance over a previous approach, by limiting the generation of Markov models to the data contained within longest matching subsequences, while maintaining similar prediction performance. Similarly, Pauchet et al. [2009] use suffix-tree based repeat-mining to identify recurring 28root 7 + 8 + 9 % c bc %(7) %(8) abc %(9) 1 6 2 4 7 8 5 9 3 example for node bc: 2 7 x 4 bc in position 4 has longest match with bc in positions 2 and 7 left prefix leaves a 2,7 c 4 prefix a prefix c Figure 2.3.4.: Identification of longest repeats using Baker’s algorithm in the complete suffix tree from Fig. 2.3.3. Steps 7, 8 and 9 of the tree construction are performed, adding the three shaded leaves. The order in which the leaves are added is given by the nodes and indicated by the superscripts of the vertex labels. behaviour of users of medical catalogues. This information is then used to present a subset of works from the catalogue to the user, which contains elements which are expected to be part of the desired search result. In the field of pervasive and mobile computing, Katsaros and Manolopoulos [2005] propose an approach to – for example – track the location of a client in a wireless cellular network. They describe a prediction task, and also use a suffix tree to find longest exact matches, from which they construct a probabilistic model of transitions. Sigg et al. [2010] use exact (or approximate) repeat search as the first stage of their context prediction algorithm. This stage is used to determine “typical” contexts. Suffixes of the observed context are then aligned with these typical contexts, to find the best match. They then predict the next context to be the continuation of the identified typical context. 2.3.2.2 String Comparison Problem String comparison problems can be categorized as follows: global i.e. compare entire strings; 29semi-global i.e. search problems – finding short strings within a larger one; local i.e. problems on sets of sub-strings. Local problems can further be subdivided into problems with variable length and fixed length of these sub-strings. Furthermore, each of these problems has exact and approximate variations. When approaching the task of identifying routine activities from context data as a comparison problem, then this problem should be interpreted as local comparison problem, either of exact or approximate nature, and of variable length. Additionally, a dispersed approximate repeat problem can be reformulated in terms of an equivalent comparison problem: comparing pairs of subsequences of the sequence in which approximate repeats are sought. Exact Matching Local exact matches (i.e. identical sub-strings within two larger strings) can be found in a brute force way: Pair all sub-strings of one string of length n and the other, and check for identity. Due to the identical length requirement, this implies O(n 3 ) string comparisons. Search space reduction to strings of length l further reduces this to O(n 2 l). To render the problem more tractable, it is possible to limit the search to maximal exact matches. In this case, Baker’s suffix tree algorithm for finding maximal repeats (see subsubsection 2.3.2.1) can be modified to find maximal exact matches instead. The modifications are the following: The lists of positions (shown in the right part of Fig. 2.3.4) are split into two subsets, one containing those suffixes belonging to the first of the input strings, the other containing those that belong to the second input string. The result is then obtained by forming the Cartesian product of each pair of lists, where both the input string and the left element are distinct. This minimal modification has no effect on algorithmic time and space complexity. A complete survey of a large number of both recent and early approaches to exact on-line string matching (i.e. finding a known pattern in a string) can be found in a review of the field by Faro and Lecroq [2013]. Each of the algorithms in the survey has been tested against a battery of synthetic and real world data, and characterised in how well it suits two problem characteristics, pattern size and alphabet size. We voluntarily omit detailed study of these approaches, as expressing the routine activity detection problem as a search problem is highly inefficient, due to the combinatorial scale of the possible, unknown, patterns. The identification problem (“Is the current context a known context?”), which these algorithms address, is much less complex than the routine mining problem, and even a worst case O(n) algorithm [Knuth et al., 1977] 30has little impact on the overall performance. Applications to User Modelling One application of this algorithm in the field of context data, is the SHIP algorithm by Cook et al. [2003], which uses exact matching to determine frequencies of following activities, with the goal of predicting future context from recognising frequent sequences. This approach can also be classified as a sequential pattern mining approach, given the fact that the exact matching is used to extract a frequency measure for a part of a sequence. The approach requires permanent access to a history of past activities, in order to perform a matching of the current subsequence with historic data. SHIP is one of multiple algorithms of the MavHome smart home architecture. This is an agent-based multilayer architecture, which uses a predefined set of concepts to transform physical sensor data (“lowest” layer) into abstract, discrete context data, before it is treated by the learning and decision-making modules (“highest” layer). String matching algorithms have also been adapted to two- or multidimensional data. This is possible through an extension of the string-matching paradigm to “wider” data structures (i.e. where each string element itself is a string of length greater than one) which has been proposed by Baker [1978]. The problem is reduced back to a string matching problem, which allows the use of efficient, well known algorithms. First rows from the search pattern are matched with rows from the subject array, then a table of matches annotated with a row ID is created. In this table, the row IDs are matched with the order of row IDs in the pattern array, column-wise. Therefore, the algorithm effectively represents the problem as the concatenation of two string matching problems. A similar approach is taken by Zhu and Takaoka [1989]. They use the hashing pattern matching approach of Karp and Rabin [1987] on the columns of the input data to first reduce the array problem to a string problem, and then use the algorithm of Knuth et al. [1977] row by row to find the array patterns. To the best of our knowledge, these approaches have not been used within the field of context data mining or applied to related fields, but could be considered as candidates, given a suitable framework. The k-Error Problem The k-error problem (explored in depth in the work of Navarro [2001]) is a quite specific approximate string comparison problem, where the goal is to match a pattern to a string, without incurring more than a fixed number of modifications, and the more general alignment problem, in either global or local flavour. A global alignment of two strings is the ideal ordered set of operations to transform one string to 31another, whereas local alignments are based on the same principle, but look instead to find maximally similar sub-strings within the pair of input strings. The k-error problem is too limited in scope, to be of use in the simple string case, as it is restricted to a search functionality, and the constraints of the fixed number of changes make no sense when dealing with context data. Nonetheless, further on we cover some variants of this approach, that generalize it to two dimensions, where the reasonable complexity of the solutions has some more interest. The class of alignment problems on the other hand is more flexible, and thus more interesting of analysis, and can also be used to solve the k-error problem. Global Alignment The first foray into the field was led by two biologists, Needleman and Wunsch [1970]. They propose a method to find the largest similar subsequence of a pair of amino acid sequences. More specifically, their algorithm finds similar subsequences of maximum length. Their original algorithm – which has largely been surpassed by a dynamic programming version – is illustrated for an example in Fig. 2.3.5. Two input strings are orthogonally arranged, so that a table can be spanned between them. In this version, every match of two symbols is given a score (1) in a table – as shown in the left table in Fig. 2.3.5. This value is added to the largest value in the top left sub-table – the empty table is assumed to contain the score 0 – this process is detailed in the right table of Fig. 2.3.5 . Following the increases in score across the table, gives the operations required to perform an alignment (denoted by arrows in the example). Non-deterministic configurations can be encountered, for example when one string contains a sub-string in inverse order as the other string (e.g. abcd and acbd). In that case, the following value can be based on either of the two previous rows of the table. This is because the incremented value for the b-b-match is not in the sub-table from which the maximum is chosen when examining the c-c-match. This leads to two equal values, one in each row of the table, and a common value in the following table. Because the top-most of the equal values is to the right of the lower-most, it is not possible to traverse both values, leading to the non-deterministic situation, where one of the two equally valid paths (deletion of b or deletion of c) has to be chosen. Dynamic Programming Algorithm The formalisation of the dynamic programming algorithm for global sequence alignment [Sankoff, 1972], requires the definition of a few terms. Let Σ be an alphabet of characters and let Σ∗ be the set of all possible combinations of characters into sequences. Let ε be the empty word. Let a ∈ Σ 32A C G T C G A C G A 1 0 0 0 0 0 1 0 0 C 0 2 1 1 2 1 1 2 1 T 0 1 2 3 2 2 2 2 2 C 0 2 2 2 4 3 3 4 3 A 1 1 2 2 3 4 5 4 4 C 0 2 2 2 4 4 4 6 5 G 0 1 3 2 3 5 4 5 7 A C G T C G A C G A 1 1 C 1 1 1 T 1 C 1 1 1 A 1 1 C 1 1 1 G 1 1 1 Figure 2.3.5.: Original Needleman-Wunsch algorithm, as introduced by Needleman and Wunsch [1970]. The left table is filled with incrementation markers (“1”) at each location where a pair of values match. In the right table, the values for all the cells have been determined, and the alignment highlighted by arrows and bold values. The alignment (arrows) starts at the maximum value and then follows the maximum values, upwards and to the left in the table. The “skips” between values 5 and 4, and 3 and 2 are indicative of deletions in the row-string. 333 3 2 3 2 1 insertion -1 -1 ±0 deletion Figure 2.3.6.: Calculation of the local similarity using the dynamic programming approach. The preceding values in the table are either incremented by the substitution score, in the case of the diagonal predecessor, or decremented by the indel penalty. The maximum value is carried over for all successive operations. and b ∈ Σ (a 6= b) be two such characters. For each pair of (a, b), define an elementwise replacement edit distance or substitution distance sub(a, b) ∈ R where it holds sub(a, a) 6= sub(a, b). In the original paper, the proposed values were 1 for a match and 0 for a mismatch. An alignment can comprise insertions and deletions (indels). These operations are assigned a penalty value indel ∈ R (= −1 in the original paper). The next step is the accumulation of these values in an array (“accumulated similarity score table”) spanned by the two input sequences. Row by row, the array is filled. Each cell in the array is calculated as the maximum of the sum of values in the directly adjacent cells with already determined values and the indel penalty, and the sum of the value in the diagonally adjacent cell with already determined value and the appropriate substitution score for the position of the cell (cf. Fig. 2.3.6 ). Formally: For two sequences S1 and S2 with last elements a and b respectively, the similarity score sim(S1, S2) is recursively defined as: sim(S1, S2) := max   sim(S −1 1 , S−1 2 ) + sub(a, b) sim(S −1 1 , S2) + indel sim(S1, S−1 2 ) + indel   (2.3.1) 34where S −1 is the prefix of length |S| − 1 of a sequence S. The initial condition is sim(S, ε) = sim(ε, S) = 0. Once the array has been completely populated, the maximum value in the last row or column is selected as origin. From this point, a trace of maximum values in the array is followed in the opposite direction of its generation. The direction taken at each step corresponds to an alignment operation. A diagonal movement corresponds to a substitution, whereas a movement into a directly adjacent cell corresponds to an indel. The sequence of operations that is returned this way is the sequence of operations required to align one of the input strings with the other. Using a dynamic programming approach, the algorithm can be implemented within the constraints of O(n 2 ) time and space. When comparing k sequences (of average length n), the complexity is of the order of O(n k ). Optimal Global Alignment Hirschberg [1975] proposes a linear space algorithm, which computes only the optimal score, and returns only the optimal sequence of alignment operations. This is achieved through a divide and conquer approach. Let S i be the suffix consisting of the last i elements of a sequence S and S −i be the corresponding prefix. Given sequences S1, S2 ∈ Σ ∗ , with |S1| = n and |S2| = m, it holds: ∀0≤i≤n : M(i) := max 0≤j≤m {sim(S −i 1 , S−j) 2 ) + sim(S i 1 , Sj 2 )} → M(i) = sim(S1, S2) This means that, for each position i in S1, there exists a position j in S2 such that the sum of similarity values of the pair of prefixes and the pair for suffixes from these positions is equal to the similarity value of the pair of sequences. Splitting S1 approximately in half (at index i) therefore implies an optimal split of S2 at the j where the minimum M(i) is calculated. Repeat this process on the pairs of first and second subsequences generated by the split until only a trivial problem (such as S2 being empty, or S1 containing only a single symbol and S2 being not empty) remains. The dynamic programming approach is illustrated – for the same pair of strings as in the previous example – in Fig. 2.3.7. Note how the value in each cell depends only on the three neighbouring values (as indicated in equation 2.3.1), which is crucial to Hirschberg’s approach. Local Alignment Global alignments are of interest, when a corpus of known interesting subsequences exists. As referenced above, Sigg et al. [2010] use global alignment 35A C G T C G A C G A 1 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 C 0 2 1 0 - 1 - 2 - 3 - 4 - 5 T - 1 1 2 2 1 0 - 1 - 2 - 3 C - 2 0 1 2 3 2 1 0 - 1 A - 3 - 1 0 1 2 3 3 2 1 C - 4 - 2 - 1 0 2 2 3 4 3 G - 5 - 3 - 1 - 1 1 3 2 3 5 A C G T C G A C G A 1 0 - 1 - 2 - 3 - 4 - 5 - 6 - 7 C 0 2 1 0 - 1 - 2 - 3 - 4 - 5 T - 1 1 2 2 1 0 - 1 - 2 - 3 C - 2 0 1 2 3 2 1 0 - 1 A - 3 - 1 0 1 2 GC - 1 - 1 ± 0 Figure 2.3.7.: Note that the traceback follows substitutions over indels in cases of ambiguity (e.g. the 4 shows the complete table and highlights the series of maximal values which indicate the alignment operations. -1. The left table shows how a particular cell value is calculated from three predecessor values, the right table penalty, matching substitutions score a value of 1 and insertions and deletions are penalised with a value of Dynamic programming version of the Needleman-Wunsch algorithm. Non-matching substitutions have no →3 transition marked and not necessarily the maximum value. in the right table), as the value that was used to calculate the current value defines the path for the traceback, 36to identify known context sequences in a stream of real-time context data. In order to actually identify such repeating patterns in sequences, local alignments need to be found. The reference local alignment algorithm is Smith and Waterman’s algorithm [Smith and Waterman, 1981], a variation on the dynamic programming Needleman-Wunsch optimal matching algorithm described earlier. The key differences are that negative values are used to represent the similarity of different values, and that in the accumulated similarity score table all negative values are truncated to zero. The similarity function above is modified to: sim(S1, S2) := max   0 sim(S −1 1 , S−1 2 ) + sub(a, b) sim(S −1 1 , S2) + indel sim(S1, S−1 2 ) + indel   (2.3.2) and furthermore, a backtrack halts when a zero value is encountered. The result is that – in the accumulated similarity score table – the score rises along pairs of local subsequences that are similar, then drops as they become dissimilar further on, and finally reaches zero. This zero value then serves as a delimiter: any similarity elsewhere is not impacted by the previous values, and thus locality is introduced. The degree of locality is directly dependent on how quickly similarity scores are accumulated to reach zero, from the point that the two subsequences diverge. This means: the dissimilarity of a pair of intervals between two pairs of similar intervals determines whether the two intervals are treated as a single pair of similar sub-strings containing the dissimilar substrings, or as two separate pairs. An example of this is given in Fig. 2.3.8, with two different penalties (-2 and -1 for left and right tables respectively) used to calculate the two tables. The result is that the smaller alignments are each time reset (to a zero score) in the left table, before they can form a larger alignment. Although Myers and Miller [1988] showed that it is possible to apply Hirschberg’s approach to local alignments, this is not always desirable, as reducing the result to the optimal alignment, discards all other local alignments present in the data. Fast Search Algorithms In bioinformatics, one of the key challenges is to check for the presence of medium length sequences within a genome. This is best achieved by algorithms that are optimized for search, such as FASTA by Lipman and Pearson [1985] and BLAST by Altschul et al. [1990]. These algorithms use heuristics to achieve 37A C G T C G A C G A 1 0 0 0 0 0 1 0 0 C 0 2 1 0 1 0 0 2 1 T 0 1 2 2 1 1 0 1 2 C 0 1 1 2 3 2 1 1 1 A 1 0 1 1 2 3 3 2 1 C 0 2 1 1 2 2 3 4 3 G 0 1 3 2 1 3 2 3 5 A C G T C G A C G A 1 0 0 0 0 0 1 0 0 C 0 2 0 0 1 0 0 2 0 T 0 0 0 1 0 0 0 0 0 C 0 1 0 0 2 0 0 1 0 A 1 0 0 0 0 0 1 0 0 C 0 2 0 0 1 0 0 2 0 G 0 0 3 1 0 2 0 0 3 Figure 2.3.8.: Two accumulated similarity tables obtained using the Smith-Waterman algorithm. The left has been calculated using a similarity score of 1 for matches, and dissimilarity penalties of -2 for non-matching substitutions and indels. The right table has this penalty reduced to -1. In each case, the alignments with a similarity score of at least 3 have been highlighted. Note how the higher penalty leads to smaller, more local alignments. much better search performance than exact methods, at the cost of a guarantee that the obtained results are correct. By being limited to search, these approaches do not offer themselves to the more exploratory nature of the routine activity detection problem pursued in this work. A further number of approximate on-line string matching algorithms is exposed in a survey by Navarro [2001], which introduces algorithms that are also based on statistical approaches, automata based approaches, filtering approaches and bit-parallelism based approaches. Two-Dimensional Pattern Matching Approximate pattern matching approaches for multiple dimensions can be divided into two classes: error-tolerance-based approaches and alignment-based approaches. The former use a simple model, that merely counts the number of modifications required to transform one structure into the pattern that is being sought. If the number of operations required exceeds a limit, a mismatch between data and pattern is assumed, similar to the k-mismatch approach for strings. Krithivasan and Sitalakshmi [1987] present a row-based approach to this problem, and a simple generalisation of the dynamic programming algorithm. Their model of a pattern is rectangular. The algorithm consists of two steps: first patterns are represented in an optimized fashion, by reducing rows that are identical or similar to a differential representation. Then, the data is searched for occurrences of the first row of the pattern, and for each occurrence it is 38verified whether the second row of the pattern follows. The number of required modi- fications is tracked for the set of occurrences, and whenever the error-limit is exceeded, the occurrence is discarded. Amir and Farach [1991] present an early algorithm that takes into account general structures, as opposed to merely rectangular ones. To achieve reasonable run time, they use numerical convolutions to perform the approximate matching. Baeza-Yates and Navarro [1998] present an approach of identical optimal complexity, that consists of a filtering step, discarding all rows in the text that cannot possibly contain a pattern, before using a standard dynamic programming algorithm for the final matching. Two-Dimensional Motif Extraction The previously introduced two-dimensional matching approaches do not allow the extraction of patterns from data, but instead solve the problem of finding a known pattern within data. As in the one-dimensional case, matching alone is not the key issue of the routine activity detection problem. Instead, the identification of common patterns in input data, is the key problem of the routine activity detection problem. Such extraction algorithms have first been proposed by Apostolico et al. [2008]. The notion of a pattern in their work is still essentially rectangular, but through the use of “don’t care”-symbols (symbols in patterns that match any symbol in the input data) the actual informational content of a pattern can take arbitrary shapes. Their approach primarily searches for autocorrelations of a single input array. An autocorrelation in their nomenclature is a similarity between the array and its transposed array. They propose an incremental combinatoric approach to detecting a base of patterns. A base is a set of maximally sized and maximally dense patterns, which comprises all patterns of an autocorrelation. Within the framework of the routine activity detection problem, such a base would correspond to a set of recurring contexts of maximal length and specificity, that describes all recurring contexts in a specified time frame. The incremental algorithm functions as follows: iterating over the cells of the array, in a row-major order, from the lower right corner to the upper right, a base is found for each sub-set of elements contained up to the current position. During the iteration step, new base element patterns are generated, through inclusion of the new symbol. Some of these patterns are novel – i.e. have not been generated previously – and render some old patterns obsolete, either by rendering them more specific, or by extending them in size. New patterns can be not novel, for example when a novel pattern removes an old pattern through extension from the base, but a previously removed pattern does then again become a valid base element, through this removal. Iterating this process across 39data of size N = m × n requires O(N3 ) time. By reducing the alphabet to a binary alphabet, complexity can be reduced to O(N2 ) [Rombo, 2009]. Two-Dimensional Local Alignment A generalizations of the local alignment by dynamic programming paradigm to two dimensions is presented in Lecroq et al. [2012]. This approach can be seen as an extension of the Smith-Waterman algorithm. It computes similarity scores for each pair of “prefixes” (in the two-dimensional case, this is the array to the top and left of the chosen position) in a table, that has now gained four dimensions. Two of these dimensions correspond to the widths and the other two dimensions correspond to the lengths of the two arrays being locally aligned. S 1 2 .. i .. n-1 n 1 C1 A2 Ai Bn-1 An 2 C1 A2 Bi Cn-1 An 3 A1 B2 Ci Bn-1 Cn 4 A1 A2 Ai Bn-1 Cn … … … … … … … j A1 A2 … Ci … Bn-1 Cn … … … … … … … l-4 C1 C2 Ai An-1 Bn l-3 B1 B2 Ci An-1 Cn l-2 C1 B2 Ai An-1 An l-1 C1 B2 Ci An-1 Bn l C1 A2 Ai An-1 Cn S S Figure 2.3.9.: Row and column prefixes, and accompanying notation. The similarity value in the table entry is computed as a function of the preceding values, much as in the Smith-Waterman dynamic programming algorithm. The difference in the two-dimensional case is that the preceding values now number eight instead of three. First of all, the number of possible deletion and insertion operations has doubled (lines V to VIII in equation 2.3.3), as they can be either in vertical (VII, VIII) or horizontal (V,VI) direction, and furthermore substitutions can be accompanied by different movements in the top-left direction. These directions are either top (IV), left (III) or top-left (in both arrays simultaneously - I and II). Finally, in the case of the top-left movement, the order of the submovements (top-left (II) or left-top (I)) influences the score. This is the case, because row prefix and column prefix similarities play a role in the calculation of the substitution scores, taking the place of the per-element substitution scores used in the one-dimensional case. In the following, let S ← and S ↑ denote the row prefix and column prefix of the bottom-right element of a sequence S (cf. Fig. 2.3.9) Column-prefix similarities are added to the similarity score, when doing an in-row substitution movement, and row prefix similarities are added, when doing an in-column 40substitution movement. In the case of the combined diagonal movement, the order then impacts which row prefix and which column prefix is considered. Let the upper index in S −i,−j denote which array prefix is used: S −1,0 is S without the last row, S 0,−1 is S without the last (rightmost) column, and S −1,−1 is S without both last row and column. indel(S) is the indel score of the bottom right element of S. To formalize (compare with equation 2.3.2), the similarity of two arrays S1 and S2 is defined as: sim(S1, S2) := max   0 sim(S −1,−1 1 , S−1,−1 2 ) + sim(S1 ↑, S2 ↑) + sim(S 0,−1 1 ←, S0,−1 2 ←) (I) sim(S −1,−1 1 , S−1,−1 2 ) + sim(S −1,0 1 ↑, S−1,0 2 ↑) + sim(S1 ←, S2 ←) (II) sim(S 0,−1 1 , S0,−1 2 ) + sim(S1 ↑, S2 ↑) (III) sim(S −1,0 1 , S−1,0 2 ) + sim(S1 ←, S2 ←) (IV) sim(S1, S−1,0 2 ) + indel(S2) (V) sim(S1, S0,−1 2 ) + indel(S2) (VI) sim(S −1,0 1 , S2) + indel(S1) (VII) sim(S 0,−1 1 , S2) + indel(S1) (VIII)   (2.3.3) This similarity is then implemented in the same way as the standard Smith-Waterman approach, with time complexity in O(N × M), where N is the number of elements in S1 and M is the number of elements in S2. Although this algorithm is generally designed to detect patterns in arrays, the actual use in Lecroq et al. [2012] is to identify similar passages of annotated conversations. This kind of data is notably sequential only in the time dimension, whereas the annotation dimension is fixed, and each column has its own alphabet. Therefore, the application is to a problem of finding similar subsequences in sequences of tuples. With these different approaches having been exposed, we can now compare their suitability for the routine activity detection problem. 2.3.2.3 Discussion Our look at string mining is focused on alignment techniques, as this class of approaches returns pairs of similar subsequences from two input sequences of symbols and thus allows us to extract information from the data. There are three identifiable ways how to apply this to our routine activity detection problem: 41❼ reduce the sensor data to discrete context states, and obtain a single sequence of such states – each similar pair of subsequences should correspond to a routine activity; ❼ formulate the task as a multi-sequence task (to remain coherent with multiple sources of context data) and seek alignments on each sequence – merged similar subsequences should correspond to routine activities; or ❼ consider context to be a sequence of n-tuples, with each tuple corresponding to a context state, consisting of multiple discrete context factors – pairwise locally similar subsets should correspond to routine activities. These three different conceptual approaches are illustrated in Fig. 2.3.10. In each case, it is required that the context is represented in a discrete format. The difference between the first and following two approaches lies in the alphabet size and tolerance to desynchronisation. A single value that encodes multiple values cannot encode certain intricacies in context data, such as one sensor reading leading or lagging the same sensor reading in another instance (5), with regard to the other sensor data. This restricts the appeal of the single string approach. t sensor data context state abstraction sensor state abstraction sensor state abstraction data synchronisation Pattern-mining a single sequence Pattern-mining multiple sequences and merging Pattern-mining an n-dimensional sequence Figure 2.3.10.: Three different ways of modelling context for different sequence mining approaches. “Data synchronisation” refers to the need to have a full set of sensor readings available at every time step, irrespective of different sampling frequencies of the actual sensors. 42The multi-sequence approach is excellent with regard to desynchronisations, as each sensor is studied at an independent temporal time scale from the others, to find patterns. On the other hand, this complete uncoupling means that coupling effects only get introduced after the first pattern mining pass, introducing additional model parameters (6) to characterise the merge operations. The multi-dimensional approach is limited, in that there are no efficient ways of mining such patterns. On the other hand – as the illustration makes readily apparent – it is possible to project the data into the plane, which induces “neighbourhood artefacts” where the link between neighbouring sensors is stronger than between those that are projected into areas that are further apart. The Smith-Waterman based two-dimensional local alignment algorithm can find patterns in this data, but at the cost of relatively high complexity (1). The exact motif-extraction approach of Apostolico et al. [2008] is also capable of extracting information from such projected context data, but the time complexity of its combinatorial approach is even higher (1). Additionally, it will only extract exact patterns, having only the freedom of the don’t care symbol, but not permitting structural variation between pattern instances (5). Although the exact approach means that initial parametrisation is not required, by consequence it is not possible to obtain an intrinsic distance between two patterns, or to allow for substituted elements outside of replacements with the don’t care symbol, which removes all information of the subset of symbols that can appear in those positions. With sufficient pre-treatment of the context data, in theory it could be possible to reliably extract patterns, of flexible shapes. In comparison to the alignment approach the complexity is too limiting, and the amount of pre-treatment too vast, for this approach to be considered suitable for the routine activity detection problem. Similarly, although the suffix-tree solution to the dispersed repeat problem has efficient solutions (1,7), the fact that it merely covers exact repeats, means that the pre-treatment has to deliver a sequence of activities as input (2,3). Otherwise the variations which one can expect in context data, render the approach unsuitable (4,5). Such a pre-treatment is difficult to obtain in a sufficiently general manner, which renders exact repeat solutions more difficult to apply to the routine activity detection problem than alignment solutions. 2.3.3 Comparison For each of the two approaches, we have presented similar classes of approaches. Looking back at the list of seven criteria we initially defined, we can rank features of classes of approaches for each one: 43Complexity (1) The first criterion favours approaches which have low algorithmic complexity and also an inherent capacity to deal with multidimensional data. Whereas the former is an obvious implication, the latter judgement is based on the fact that any other approach would either require a merging post-processing step or projecting pre-processing, both of which may have unexpected implications on complexity. Preprocessing (2) The second criterion similarly favours multi-dimensional approaches, as pre-treatment can be reduced to the per-element level and possibly a simple synchronisation. Adaptability (3) The third criterion is somewhat in opposition with criteria (2) and (6). Complex models are able to closer match the actual data, and give a richer representation. Approaches using multi-level hierarchical or substitution score based models have advantages under this criterion. Noise (4) Extraction from noisy data is best performed by approximate approaches. Exact approaches require additional pre-treatment to fulfil this criterion. Time Effects (5) This criterion also favours approximate approaches, specifically those that allow skipping or ignoring individual entries when mining for patterns, as well as treating each sensor with a certain amount of individuality. Parametrisation Effort (6) The parametrisation effort is lower for substitution based models compared to hierarchical models, as there is no need to define cross-sensor relations. Partial Mobile Deployment (7) This final criterion mostly an engineering challenge, as all sequence mining based approaches require a large off-line component, that does not need to be based on the mobile device. On the other hand, a recognition or prediction algorithm based on an established model can be deployed on a mobile device with little worry about platform constraints. For both string mining and SPM, we can at this stage discard the exact one-dimensional approaches – exact repeat mining and the standard sequential pattern mining algorithms – as the demands this would put on the pre-treatment of the data cannot reasonably expected to be met. 44Table 2.1.: Comparison of SPM and string mining sequential pattern mining string mining approximative Y N Y N multi-dimensional Y N Y N Y2 N Y N (1) complexity X high med. low high med. high low (2) preprocessing high med. high low high med. high (3) adaptability med. med. low high med. low low (4) noise tolerance high med. low high med. med. low (5) time effects tolerance low med. low high low low low (6) parametrisation effort med. high low high med. low low (7) mobile deployment no no yes no yes no yes The approximate methods of string mining have a larger maturity compared to the approximate approaches of sequential pattern mining, or in the case of the approach by Kum et al. [2003] is even based on a string mining paradigm. Additionally, there remains a drawback of sequential pattern mining, in that there is no consecutivity criterion present in most algorithms. Plantevit et al. [2010]’s multi-dimensional approach based on the M3SP algorithm is the only true multi-dimensional algorithm in both fields. To some degree, it shares the drawbacks of the exact sequential pattern mining approaches, but due to the multidimensionality, the pre-treatment of the data becomes much less of an issue, and the underlying hierarchical model can be used to give a semblance of an approximate approach. A way to render it more suitable to the routine activity detection, would be to add a consecutivity criterion, as has been done with the algorithm of Pinto et al. [2001] by Rashad et al. [2007a] or take into account temporal data [Giannotti et al., 2006, Yoshida et al., 2000]. The two-dimensional approach by Lecroq et al. [2012] appears to be similarly suitable. The key drawback lies in the required projection of the multi-dimensional context data into the plane in which the algorithm operates, but it takes into account desynchronisations across different sensors, and could be reduced to a lower complexity by taking into account the projection, and thus the incompatibility of data that is adjacent in the sensor-dimension. A side-by-side comparison of the general approaches with regard to the seven criteria is presented in Table 2.1. 2This is an estimate based on a naive extension of the approach of [Lecroq et al., 2012] to multiple dimensions. 452.4 Conclusion and Direction Our survey of available context datasets has shown that none of them is truly suitable to quantifiably verify that detected patterns correspond to routine activity. The lack of ground truth is the prime limitation, but there is also only a small subset of physical context data present in the existing datasets. This leads us to pursue two strategies to address – separately – each of the shortcomings: A generation algorithm can give us true ground truth knowledge, whereas our own data collection campaign would provide us with as much physical information as required. We also need to annotate some of the real world data with routine activities, to quantitatively verify our claims. With regard to the algorithms and approaches we studied, none matches our task directly. All require either modification or extensive adaptation to a specific dataset. A common drawback is the substantial effort required to prepare context data for the data model used in conjunction with the algorithms; alignment based approaches minimise this aspect, by only requiring tables of similarity scores, which can be determined using statistical analysis. Alignment approaches are also uniquely tolerant to desynchronisations between sensor streams. In the above comparison to SPM, the alignment approaches win out, barely. Compared to a clustering or a probabilistic state machine approach, the simpler pre-processing of the alignment approach is the deciding factor in its favour. This leads us to pursue an approach based on n-tuple sequence alignment. 46Alignment of Sequences of n-Tuples Overview This chapter presents our algorithmic contributions towards an answer to the routine activity detection problem. First we introduce a model that presents context in a way that an alignment algorithm can use. Next we cover our algorithmic contributions to the alignment algorithms of the state of the art, and finally we discuss the implications of our approach. 3.1 Context Model Fundamentally, context data is the set of values of a number of context factors, at a specific moment in time. Assuming there are n context factors, this is most accurately reflected as a vector-valued function over time, of the type C(t) = (c1(t), c2(t), . . . , cn(t)). Of course, a digital computer can impossibly treat continuous data of any kind, and a digital sensor can never capture data in a continuous manner. Any context data therefore is a discrete valued time series, unless different context factors are sampled at different rates, in which case the data is in the form of multiple time series. We adhere closely to this natural representation in the following. 3.1.1 Sequence of n-tuples We postulated in the introduction that routine activities correspond to recurrent motives in context data. The state of the art approaches to finding such motives favour the use of a sequence based approach. Consequently, we adopt a model that represents context as a sequence of context states. In specific, we structure context as a sequence of n-tuples. 471.1 0.3 0.2 0.8 0.7 0.2 0.4 0.5 0.3 0.4 0.6 0.4 0.6 0.5 0.5 0.8 0.3 0.2 0.5 0.6 0.2 C = C(t) ℝ  ℝn t discretisation t synchronisation and classification t A1 A2 A3 A4 B1 A2 A3 A4 C1 B2 A3 A4 C1 B2 B3 A4 B1 B2 B3 B4 B1 A2 A3 B4 C1 B2 A3 B4 C = (c1 (t1 ), c2 (t2 ),…, cn (tn )) ℕn  ℕ n C = (c1 , c2 ,…, cn)(t) ℕ  ℕ n Figure 3.1.1.: The transformation of continuous context C(t) into context data in a sequential model. With regard to the natural time series representation, this requires that our context data sources are synchronized and sampled at constant and equal intervals. Each position in a tuple contains a (coarsely – e.g. at a semantically relevant level) discretised or classified reading from one of n context data sources. These context data sources each measure one context factor and are referred to as sensors in the following. Each tuple represents context at a moment in time, which we assume to be valid over the constant interval of time, until the next set of values becomes available. In Fig. 3.1.1 the process of transformation from physical context into context data and finally into a synchronized and coarsely discretised n-tuple representation is illustrated. Discretisation (at the physical digital sensor level) transforms context from the continuous function over time into a number of time series. This is then synchronised into a single time series, and the values are replaced with abstract representative class IDs, column by column. In the example, we excluded possible expansions or contractions in the “width”, due to a single sensor measuring multiple physical properties, or data from multiple sensor being used to determine a class based on multidimensional data. This is merely to aid comprehension — in reality these characteristics may appear in the process chain. By choosing an n-tuple approach to alignment, over a 2D-approach, we can eliminate a degree of freedom from the latter. The fact that each sensor has its own, separate set of values, allows us to fuse the two in-tuple dimensions into a single one, by requiring that any operation performed along one axis has to be equally performed along the other. This enforced translational (across sequences) symmetry not only prevents us from having to define similarity values for nonsensical configurations (e.g.: How similar 48x y z w z C C determine local similarities fuse dimensions T∈ℕ4 3 Figure 3.1.2.: Linking w- and z-axes into a single dimension, due to translational symmetry (i.e.: every set of discrete steps taken along the z-axis is replicated identically in the w-axis). is a bright light to an upside down mobile device?) but also reduces complexity of the alignment algorithm. The specific consequences are discussed in subsection 3.2.1. Fig. 3.1.2 shows how the four-dimensional alignment problem has been reduced to a three-dimensional one, by linking the in-tuple dimensions. 3.1.2 Blocking and Sampling Although it is generally possible to find pairs of similar subsequences by searching for local alignments of a sequence with itself, the time and memory required to do so grow by the square of the length of the sequence (cf. paragraph Local Alignment on page 35). There exists a limit from which on it is no longer possible to calculate local alignments, because no computer system has sufficient memory available to perform the computation. We have identified two means of managing the issues that arise from an increased volume of data: ❼ A first variable that we can control a priori is the sampling frequency of context data. Depending on the granularity of context patterns we wish to identify, we can reduce or increase the sampling frequency. This also reduces or increases the sequence length, for a given time interval of context data. 49… … l i l i+1 ≠ corpus context C Figure 3.1.3.: Splitting a long sequence of context data into blocks of roughly equal (but not necessarily equal) lengths. ❼ Another way to address this problem is by splitting the sequence along regular (time-)intervals into subsequences of n-tuples. It is often sensible to do this along semantically relevant lines, for example by choosing 24 hour intervals or seven day intervals. This is illustrated in Fig. 3.1.3 where a long sequence of context data is divided into a set of subsequences with potentially different lengths. The different lengths are artefacts of the data collection, and do not affect the alignment calculation. Memory constrained situations are defused by using this approach, as the accumulated score tables for each pair of subsequences are much smaller. Fig. 3.1.4 shows how the large table spanned between two long sequences a and b is reduced to many smaller tables, when the long sequences are divided into blocks. The impact on total computation time is negligible, due to high number of alignment operations that result, which also scales to the square of the number of segments. On the other hand, it is trivial to parallelise across pairs of blocks, which reduces the real duration (i.e. wall time) of performing an alignment when more than one processor is available. 50Blocking into N Blocks Volume = N2 small volumes a b Figure 3.1.4.: The reduction of the size of individual accumulated similarity score tables which can be obtained by blocking. a and b are two sequences, with the local similarity scores contained in the volume spanned between them. Another advantage to blocking, lies in that fact that blocks are crucial for a sequence mining approach. Conversely, a downside is that there is an accuracy penalty, even when choosing “convenient” intervals (i.e. such that periods of interest are well away from the beginning or end of a block). Notably, patterns that fall across these boundaries could be represented as two separate alignments, or not at all, because each half might be too short to meet an imposed similarity criterion. One possible means of addressing this shortcoming, is to allow overlaps between adjacent blocks. This practice introduces some overhead, when alignments that can be found in the overlap are “stitched together”. 3.1.3 Meta-data As we pursue a local alignment-based approach, we need to be able to determine local similarities of subsequences. A key requirement is that we define the relation between each pair of discrete states of each sensor by means of a set of similarity scores. These similarity scores are by nature positive, when describing the similarity of identical values, and negative when describing the similarity of non-identical values. We chose to represent these values in the form of n (one for each element of an n-tuple) symmetrical tables, containing positive values in the main diagonal, and negative values elsewhere. A small example is given in Fig. 3.1.5. 513 -1 -1 -2 -2 -1 3 -1 -2 -2 -1 -1 3 -2 -2 -2 -2 -2 5 1 -2 -2 -2 1 5 n A B C D E A B C D E S Figure 3.1.5.: A sample substitution similarity score table from the set of n tables. We can imagine four ways, how such a set of meta-data can be obtained. The first two are based on statistical analysis of an existing dataset: transition frequencies between sensor states are a possible indicator to an underlying system, but the same can be claimed of substitution probabilities between sensor states for hand-selected patterns. A third approach is to base the values on the physical distances of the underlying classes. In the case of two places, the distance of the shortest route between the two, or the time required to cover that distance, could be such physical pointers. Finally, in absence of such data, a simple model that does not assign different scores at all, except one positive and one negative score to differentiate between same and different values can be used. Each approach requires expert supervision, and of course it is also possible for an expert to project his own view of the problem onto a manually crafted set of meta data that does not directly reference any of the above approaches, or mixes them. Besides these substitution scores, an alignment-oriented model also requires insertion and deletion scores. Contrary to the affine (for length) and constant (for deleted/inserted value) approach chosen in bioinformatics (cf. BLOSUM-type block transition score tables by Henikoff and Henikoff [1992] and the work of Altschul and Erickson [1986]), we decide to use scores which are a fixed offset of the substitution similarity score. Our reasoning behind this choice is as follows: in context data it is common for context sources to return a constant value, for a different length of time. Particularly, periods of inactivity (with regard to the mobile device) show this characteristic. An example: 52constant value constant value locally optimal alignment with negative deletion score desired locally optimal alignment aligns if insertion/deletion of constant values has positive similarity Figure 3.1.6.: Two intervals of identical values but different lengths can be aligned by assigning positive similarity score to insertions and deletions of identical values. a user sleeps for different lengths of time during two different nights in a week. Our goal in this case is to align the entirety of both instances of “user sleeps”, instead of just the closest matching sub-sequence of the longer interval. The score offset gives a high similarity score for alignments of a subsequence of constant values with another subsequence of identical values but different length, while also penalising non-identical deletions and insertions over substitutions. This concept is illustrated in Fig. 3.1.6, where two intervals of constant values but different lengths are shown side by side, with two possible ways of defining similarity being shown: To the right, the state-of-the-art approach of assigning negative scores to all deletions and insertions, and to the left an example where the sum of deletion score and substitution score of the two constant values is positive. This allows the inclusion of the entire interval. In practice, a positive score would usually be undesirable, as problems of scale might arise. Often it is sufficient to allow a similarity score to bridge across such intervals without penalizing the accumulated score too much, as activities following longer series of constant values are usually also similar, if the constant values are part of the trace of a significant routine activity. In this case a lightly negative score-sum is preferred. 533.1.4 Discussion This model – and particularly the definition of a similarity measure – is specific to alignment approaches. Data that is presented according to this model can be transformed to conform to another model, as long as the granularity of the discretisation is not too coarse, and the classification key which is used to map raw values to abstract context values is available. Of specific interest to us, is the transformation to a model that is compatible to a sequential pattern mining approach, because it would enable a direct comparison. Such a conversion would require that the similarity tables are transformed into a similarity hierarchy. We consider the absence of semantic and physical information in data that conforms to this model to be an advantage: it protects the privacy of the user whose data is being treated. Despite it being possible to infer some semantic information (e.g. which location IDs correspond to home and work) from a stream of data formatted according to this model, there is very little risk of physical information (i.e. where the previously mentioned places are located) to become compromised. This makes our model suitable for data storage and processing on distributed systems, that are not necessarily under direct control of the user, with little risk of a breach of privacy. This hypothesis is reinforced by the evaluation of Voigtmann et al. [2012] of different context analysis approaches and models. The adaptation of raw data to our model requires some amount of intervention by an expert, but automation is possible to a degree. The influence of this expert in the creation of the model is pivotal. Assuming that an expert has derived a perfect context model, we cannot guarantee that he can transform this model with perfect accuracy into a set of meta-data. This limitation is due to the fact that similarity values are limited in precision and difficult to scale across multiple sensors. Anecdotally, in the field of biological sequence alignment, research showed that incorrectly obtained substitution score tables (Styczynski et al. [2008]) can in fact increase the accuracy of the used alignment algorithm. In this case an error in the statistical determination of similarity values from a reference dataset was present. We therefore theorise that our similar model would display similar resilience to slight inaccuracies in the similarity value tables. We also have to emphasise that the parametrisation of a model that performs exactly as expected is far from a well understood or intuitive practice. With this model in place, we examine in more detail our approach to process this data for routine context. 541 2 .. n-1 n A1 B2 An-1 Bn B1 C2 An-1 Cn C1 C2 Cn-1 An A1 A2 Bn-1 An A1 A2 … Bn-1 Cn C1 C2 Bn-1 Bn C1 B2 Cn-1 Cn B1 B2 An-1 Cn B1 A2 Cn-1 Bn A1 C2 Bn-1 An 1 2 .. n-1 n C1 A2 Bn-1 An C1 A2 Cn-1 An A1 B2 Bn-1 Cn A1 A2 Bn-1 Cn A1 A2 … Bn-1 Cn C1 C2 An-1 Bn B1 B2 An-1 Cn C1 B2 An-1 An C1 B2 An-1 Bn C1 A2 An-1 Cn alignment Figure 3.2.1.: Two example context sequences, the resulting context data sequences and an alignment (cells underlaid in grey) that corresponds to two similar subsequences. 3.2 Alignment Algorithm It is our declared goal to find patterns in context data. As we have laid out in our survey of the state of the art (cf. section 2.4 on page 46), the search for local alignments appears to be the most suitable approach to this task. Any such alignment (i.e. a pair of similar subsequences of two sequences from a corpus of context data) corresponds to two instances of similar activities or contexts. Fig. 3.2.1 reprises how context sequences correspond to alignments. Two similar sequences of activities (being at home, working at the hospital in the morning and the laboratory in the afternoon, before playing hockey on one hand and the same activities in a different order on the other) result in two similar sets of context data. A subset of this data attains a locally optimal similarity score and is therefore considered to be in alignment. This alignment then serves as pointer for the original similarity in the activities. Fig. 3.2.2 illustrates how pairs of context sequences from a corpus (i.e. an established set of subsequences of context data - cf. subsection 3.1.2 on page 49) are generally aligned. This is the key operation to find frequently appearing similar subsequences in 55x y z w z a b determine local similarities Figure 3.2.2.: Alignment of two context sequences a and b from a corpus. this corpus, which we then understand to be representatives of routine activities. Before we continue, we briefly discuss the two key terms that we use so frequently in this work: alignment and similarity. An alignment is defined as a result of an alignment algorithm with a specific configuration. More generally, it is a subsequence and the associated operations to transform it into another similar subsequence (cf. subsection 2.3.2 on page 25). On the other hand, the – rather abstract – notion of similarity is less obvious. With regard to sequences, we can define four key criteria of similarity: Substitution similarity at the elemental level is the most atomic criterion. It stems from the pair-wise similarity values defined beforehand (cf. subsection 3.1.3 on page 51). Another similarity criterion is the density of positive substitution similarities. A high density means a high similarity of a set of values. A third similarity criterion is size: at the same density, a larger set of values can be considered to be more similar, than a smaller one. Finally, we impose a synchronicity criterion. The less gaps need to be opened or filled in a pair of subsequences, given the same size and density, the higher the similarity score for the overall sequence. In the following, we implement this notion of similarity with a recursively accumulated similarity measure. Basically, we call a sequence “similar” to another, if the last row and column of both sequences are similar, and the remaining sequence is also similar 56(cf. subsection 2.3.2 on page 25 and the next subsection for formal descriptions), while using a standard one-dimensional similarity measure for rows and columns. This measure allows us to describe a very precise notion of what similarity is. By parametrising the context model appropriately, we can craft a measure that corresponds to specific expectations. An expert – who defines a set of rules that effectively links certain kinds of patterns in the data to routine activities – can therefore tune the parameters on a case-by-case basis. A similarity measure based on this concept lies at the heart of the work of Lecroq et al. [2012] on aligning annotated dialogues to find similar structures. We extend and adapt this approach for use on context data and our context model. Our modifications to their algorithm, which primarily address significant performance issues that arise when attempting to use their approach on long sequences of context data, are detailed in the following. 3.2.1 Contribution I: Reduction to n-tuple Problem Our first angle of approach lies in the elimination of unnecessary size of the table of accumulated scores. In the original approach, this table spans four dimensions, to take into account insertions and deletions in horizontal and vertical directions in the plane. As our context model does not allow for any interaction between different elements of the same tuple, we restrict permitted operations from the 2D approach (cf. subsection 3.1.1 on page 47 and Fig. 3.2.2 on the preceding page). When determining the similarity of a pair of tuples we now only allow substitutions between elements with identical indices. This brings our approach closer to a true ntuple approach. As a consequence, insertion and deletion operations are restricted to the sequence dimension, but are not limited to entire n-tuples at a time. This optimisation reduces the local similarity score table T to three dimensions, and thereby each cell only depends upon five “predecessor cells”. Each of these cells corresponds to a vertex in the cube marked T in Fig. 3.2.7. This step also simplifies and thereby optimises some ancillary calculations. It is often required to calculate row and column similarity scores locally; for the row case, only substitutions are of interest. The local column alignments also mean that the algorithm retains full flexibility when working with data that has a tendency to de-synchronise, by being able to “break up” tuples to form alignments. As the calculation of the score table is naturally defined in a recursive manner, we will first define ways of selecting individual tuple elements in a sequence with a reference point in the bottom right. For the following, let s be a sequence of n-tuples of length l. 57Definition 1. s [i, j] , i < l ∈ N, j < n ∈ N is the element in the j-th position from the end of the n-tuple in the i-th position from the rear (l-th row) of the sequence s. In Fig. 3.2.3, we present three examples (one general, and two similar to the common usage in the following) of how this inverted addressing of elements of a sequence works. s 1 2 .. i .. n-1 n 1 C1 A2 Ai Bn-1 An 2 C1 A2 Bi Cn-1 An 3 A1 B2 Ci Bn-1 Cn 4 A1 A2 Ai Bn-1 Cn … … … … … … … j A1 A2 … Ci … Bn-1 Cn … … … … … … … l-4 C1 C2 Ai An-1 Bn l-3 B1 B2 Ci An-1 Cn l-2 C1 B2 Ai An-1 An l-1 C1 B2 Ci An-1 Bn l C1 A2 Ai An-1 Cn s[n-i,l-j] s[1,1] s[0,1] Figure 3.2.3.: Selection of tuple elements in a sequence using reverse addressing. The origin of the coordinate system used here is in the lower right end of the sequence. From there the first coordinate is incremented when moving one element to left, and the second when moving one element upwards. Next, we define a way to express the recursive reduction of the sequence: Definition 2. The •i,,j operator represents the sub-sequence consisting of the original sequence, minus the last i tuples and the last j tuple elements. If we understand s to be an ordered set of coordinate-value pairs, this can be expressed as si,,j := s \ s [x, y] ∀x < i ∨ y < j. This operator is illustrated in Fig. 3.2.4, where both a general case is shown, and the 58usage that is most common in the following, with indices in the [0,1] range. s 1 2 .. i .. n-1 n 1 C1 A2 Ai Bn-1 An 2 C1 A2 Bi Cn-1 An 3 A1 B2 Ci Bn-1 Cn 4 A1 A2 Ai Bn-1 Cn … … … … … … … j A1 A2 … Ci … Bn-1 Cn … … … … … … … l-4 C1 C2 Ai An-1 Bn l-3 B1 B2 Ci An-1 Cn l-2 C1 B2 Ai An-1 An l-1 C1 B2 Ci An-1 Bn l C1 A2 Ai An-1 Cn sn-i,l-j s1,1 Figure 3.2.4.: Example of the •i,,j operator. If the operator is used on the same sequence of n-tuples, with one pair of indices being higher than the other, the smaller result is a subset of the larger one. In this case the result underlaid in black is a subset of the result underlaid in grey. To calculate in-tuple and in-column similarity values, we define two operators: Definition 3. s [i, j]← := {s [i, j + 1] , s [i, j + 2] , . . . , s [i, n]} is the right-to-left sequence of elements to the left of a position in a tuple, and s [i, j]↑ := {s [i + 1, j] , s [i + 2, j] , . . . , s [l, j]} is the bottom-to-top sequence of all prior elements in a column (i.e. all elements with the same tuple index). One example of each of these operations is illustrated in Fig. 3.2.5. 59s 1 2 .. i .. n-1 n 1 C1 A2 Ai Bn-1 An 2 C1 A2 Bi Cn-1 An 3 A1 B2 Ci Bn-1 Cn 4 A1 A2 Ai Bn-1 Cn … … … … … … … j A1 A2 … Ci … Bn-1 Cn … … … … … … … l-4 C1 C2 Ai An-1 Bn l-3 B1 B2 Ci An-1 Cn l-2 C1 B2 Ai An-1 An l-1 C1 B2 Ci An-1 Bn l C1 A2 Ai An-1 Cn s[2,1] s[1,0] Figure 3.2.5.: Selection of a column and row using the ↑ and ← operators. Lastly, we require a uni-dimensional similarity measure, to determine what used to be row and column scores: Definition 4. For two sequences x, y of single elements, sim(x, y) is the ❼ locally (i.e. before the similarity reaches a zero value) maximum similarity score of the Smith-Waterman algorithm on the reversed column sequences, if x and y are both sequences generated with the ↑ operator. ❼ maximum accumulated value of substitution similarity scores, if x and y are sequences generated by the ← operator. Fig. 3.2.6 shows an example to illustrate this, based on 4 steps: First a pair of columns is extracted from a sequence of n-tuples, then reversely aligned, one with the other. Once the similarity score reaches zero, the alignment is aborted, and the local maximum in the aligned interval is the score returned by the sim operator. 60s 1 2 .. i .. n-1 n 1 C1 A2 Ai Bn-1 An 2 C1 A2 Bi Cn-1 An 3 A1 B2 Ci Bn-1 Cn 4 A1 A2 Ai Bn-1 Cn … … … … … … … j A1 A2 … Ci … Bn-1 Cn … … … … … … … l-4 C1 C2 Ai An-1 Bn l-3 B1 B2 Ci An-1 Cn l-2 C1 B2 Ai An-1 An l-1 C1 B2 Ci An-1 Bn l C1 A2 Ai An-1 Cn Bn-1 Cn-1 Bn-1 Bn-1 … Bn-1 … An-1 An-1 An-1 An-1 An-1 Cn-1 Bn-1 … Bn-1 … Bn-1 Cn-1 An-1 2 - align 3 - accumulated similarity reaches 0 1- extract 4 – sim is the maximum accumulated similarity score in this interval Figure 3.2.6.: Calculation of a column similarity score. Two columns are extracted from two sequences, then aligned in inverse order, up to the point where the similarity score reaches zero. The maximum similarity from this interval is the similarity value we assign these two columns. With these prerequisites in place, we can express the accumulated similarity score for two subsequences a and b recursively as follows: Definition 5. For two sequences of n-tuples a, b and the accumulated similarity score is: sim(a, b) = max   0 sim(a1,1, b1,1) + sim(a [0, 0] ↑, b [0, 0] ↑) + sim(a [0, 1] ←, b [0, 1] ←) (I) sim(a1,1, b1,1) + sim(a [1, 0] ↑, b [1, 0] ↑) + sim(a [0, 0] ←, b [0, 0] ←) (II) sim(a0,1, b0,1) + sim(a [0, 0] ↑, b [0, 0] ↑) (III) sim(a1,0, b1,0) + sim(a [0, 0] ←, b [0, 0] ←) (IV) sim(a0,0, b1,0) + indel(b[0, 0]) + sim(a[0, 0] ←, b[1, 0] ←) (V) sim(a1,0, b0,0) + indel(b[0, 0]) + sim(a[1, 0] ←, b[0, 0] ←) (VI)   (3.2.1) The similarity score sim(a, b) is 0, if a = ∅ ∨ b = ∅. 61In the domain of the accumulated local similarity score table T, each cell contains the similarity values of the subsequences (of sub-tuples) defined by the coordinates (cf. subsection 2.3.2). The iterative algorithm of determining each value in T is started by initialising the first plane in each dimension of the table with zeroes, to satisfy the end condition of the recursive definition of the similarity scoring function. The other cells are calculated as illustrated in Fig. 3.2.7: Each arrow (labelled I-VI) corresponds to an operation in equation 3.2.1, excluding the column and row similarities. These are the operations that are performed in each case, before choosing the maximum value amongst them: (I) Substitution and movement to the left (column-row-order): The space diagonal predecessor value is added to the column similarity of the predecessor and the row similarity of the current rows. (II) Substitution and movement to the left (row-column-order): The space diagonal predecessor value is added to the column similarity of the current columns and the row similarity of the predecessor. (III) Movement to the left: The z-axis predecessor value is added to the column similarity of the current columns. (IV) Substitution: The x-y-diagonal predecessor value is added to the row similarity of the current rows. (V) Insertion: The y-axis predecessor value is added to the row similarity of the current row and preceding row. (VI) Deletion: The x-axis predecessor value is added to the row similarity of the preceding row and current row. The dynamic programming paradigm of the approach is therefore maintained, despite our recursive definition of local similarity. 62a b z z z x y x y i-1 plane j-1 plane k-1 plane i,j,k i,k j,k I,II III IV V VI i lies on the x-axis j lies on the y-axis k lies on the z-axis T Figure 3.2.7.: The local dependencies of the calculation of a local similarity value. To the left in the three-dimensional table of accumulated similarity scores T and to the right the equivalent representation in the domain of the two sequences a and b. Operations V and VI – insertion and deletion – are one-dimensional operations and therefore appear only either in a or on b. 3.2.2 Contribution II: Locally Optimal Alignments The state-of-the-art approach selects every position in the accumulated score table where the score is above a minimum similarity threshold as a candidate for a backtrack (BT) – and by extension as an alignment. This leads to a large number of alignments being calculated, especially if high-scoring alignments (i.e. large alignments with a high similarity density) are present in the data. In such a high-scoring alignment, the minimal score is reached long before the end of the alignment. Each cell with a similarity score above this minimum generates a new BT and eventually the corresponding alignment, none of which are in any way meaningful. Alignments can branch in three (four, in the original algorithm) dimensions, which results in a very large number of BTs, as large volumes of cells containing high similarity values exist in the 3D scoring table. Whereas an individual BT operation is not extremely costly from a computational point of view, this high number of BTs effectively – and severely – limits either the usable problem size or the usable minimal accumulated similarity score (MASS). 63Figure 3.2.8.: The rightmost (n-th) z-slice of a table T. The axes of the plane correspond to the temporal axes of the sequences. line denotes the plane of an arbitrarily chosen MASS. The highest value is denoted by an X. The height and colour are representations of the accumulated similarity value in the cell in T. The white profile 64In Fig. 3.2.8, we look at an extract of the n-th slice of the table T, where typically accumulated scores are highest compared to other z-slices. Any point above the reference plane at MASS-level is a potential candidate for a BT. This volume is visibly of considerable size. To alleviate this problem, we retain only the most meaningful alignments. The inspiration for this choice can be found in bioinformatics, where the algorithm of Smith and Waterman [1981] is often used to identify only the optimum local alignment (Myers and Miller [1988]). This goes so far, that many evolutionary optimisations have focused exclusively on this problem. In fact, in Lecroq et al. [2012], reference is also made to a maximal element for the BT, but also in a global sense. Although this approach is too radical for our problem, we still perform a similar optimisation, but on a local scale. We calculate BTs exclusively from the locally highest accumulated scores– as opposed to from every score higher than the MASS. This corresponds to the peak in Fig. 3.2.8. A simple check whether any one of the 26 adjacent values is higher than the value in the current position determines if the current position in the accumulated score table is retained as a candidate for a BT. The number 26 stems from the fact that each cell has six directly neighbouring cells (one per surface of a cube), as well as three times four in-plane diagonal neighbours (one per vertex) and eight “node diagonal” neighbours (one per node), in the 3D table. Although this introduces a large number of branches into the execution, it reduces the number of candidates (and therefore of expensive BTs) drastically. All of the removed backtracks are in essence redundant: The higher scoring alignment includes all elements a smaller alignment would include, and a larger alignment with a lower score would have an overall lower similarity, and therefore the added elements are not similar. We restrict ourselves to a maximum search radius of 1 (√ 2 for in-plane diagonals and √ 3 for space diagonals). Fig. 3.2.9 visualises how we obtain the number of 26 neighbours, and what these distances mean in the 3D geometry of the accumulated score table. Though there is a benefit to extending the search radius, in that “double peaks” would no longer lead to twin alignments of largely similar nature, the added cost of extending the search radius would quadratically (surface of a sphere) increase the number of branches, and the additional reduction in candidates would be comparatively small. On the other hand, the number 26 is also the minimal number of checks required for this approach to be functional, as otherwise for large accumulated similarity values there would always be greater-than-MASS values in one of the adjacent positions. For an illustration of the scale of this issue, Fig. 3.2.10 shows an example similarity score table. It shows that selecting a small MASS is necessary to detect smaller similar 653 3=27 cubes 26 neighbours to central cube l = 1 l 2 = 2 l 2 = 3 Figure 3.2.9.: The local neighbourhood of a node (in the centre of the shown cube) in the accumulated score table T. The shown cube consists of 27 sub cubes, the one at the centre being the “home node”. The other 26 surrounding it, are the direct neighbours. A partial spatial subdivision is shown in the lower left corner to illustrate the notion of “radius”. structures (values above 1500 in this case are of significant interest), but large similar structures generate huge amounts of potential candidates at this smaller value. We reduce the volume of BTs from the volume around each of the peaks to just the number of peaks themselves. The side-by-side representation of the third dimension obscures somewhat that the 5 surfaces in the figure actually form a volume, but each point in a surface is neighbouring to the point in the same coordinates in a neighbouring surface, and they are all considered for the selection of final candidates for a BT. 3.3 Discussion Reducing the degrees of freedom from the two-dimensional approach leads to a lowered complexity. Where originally the accumulated score table required O(lmn2 ) (where l and m are the sequence lengths, n the number of elements in a tuple) space (and time to calculate), this has now been reduced to O(lmn), without any reduction in relevant capability. This means that we can now work with sequences that are n-times longer than previously, within the same system constraints. The two-dimensional basis for the algorithm means that the order of columns still has 66Figure 3.2.10.: Accumulated similarity score table for the alignment operations of the context data corresponding to two consecutive days. Each graph represents one of the five slices (n = 5) of the z-axis, starting at one at the top, incrementing to five at the bottom right. Height and colour correspond to local similarity values. The x - y plane is spanned by the temporal axes of the sequences. Note multiple peaks at different heights. 67an impact on the accumulated similarity scores. A notion of single-step cursor movement is still present in our approach (cf. equation 3.2.1), and thus accumulated scores depend only and directly on the scores of the left tuple neighbour and the accumulated similarity score of the sequences to the left of the elements under consideration. Reducing the number of BT candidates by local optimization can drastically increase performance, especially when the MASS is a small fraction of maximum accumulated similarity scores. If the neighbourhood of every peak consists of 5 cells in each direction of each of the three dimensions where the score is above MASS, this reduces the number of BTs by a factor of around 1000. The average worst case (i.e. in an infinitely large table where cells with values higher than MASS are surrounded by exactly one layer of cells with value 0) improvement is by a factor of 7. This optimisation does remove some granularity, as possibly semantically atomic routine elements can be included within larger scale alignments, and thus disappear from view. On the other hand, they would be lost in the noise of meaningless alignments, if the classic approach were to be retained. A way to recover such smaller scale patterns, could be by iteratively locally aligning intervals of interest, with ever decreasing MASS. Beyond this theoretical evaluation, we also performed an experimental validation. There we address whether the alignment approach is valid for context data, as opposed to just general sequential data. 68Experimental Validation and Results Overview This part is dedicated to the evaluation of the alignment-based approach on both automatically annotated synthetic data and manually annotated real-world data. Before getting to the actual evaluation, we first examine the provenance of our test data. Consequently, we detail the synthetic data generation procedure. Additionally, we present the real world data collection campaign and the pre-treatment process required by our context data model. The evaluation of the algorithm on synthetic data is detailed in the following section, and the evaluation on real world data in the subsequent one. 4.1 Synthetic Data Evaluation Testing on “real” data is crucial to being able to judge the “in the wild”-performance of an algorithm, but there are several limitations when solely relying on it. The manual annotation of ground truth is often labour intensive and error-prone. This limits the scope of possible evaluation. Conversely, an evaluation on synthetic data allows us to complement the results we can obtain from real world data, particularly by giving better control over the results and a wider variety of testing conditions. 4.1.1 Synthetic Data Generator and Dataset In the following, we introduce a model and an algorithm that simulates parallel data from multiple sources containing cross-source repetitive patterns. Due to the many parameters that can be set, and the multiple random influences, the overall model for the generator is complex. For this reason, the description is split in five sub-sections, 69of which the first lays out the requirements and design choices, the second some key definitions and terms used in the context of the description of the generation model and algorithm; the third and fourth sub-section detail each of the major sub-routines of generating data. An illustratory example is used throughout this subsection. 4.1.1.1 Data Generation Context Model It is our goal to give the experimenter the greatest possible freedom with regard to the characteristics of the generated data. Some general expectations of what makes up context data guide us in the design of our generator. The basic structure of context is a sequence of n-tuples, when n context data sources are present. Within this sequence, we encounter two different states of context. Either the current context is part of a set of routine contexts, or it is not. A routine context influences a specific subset of context measurements, reproducibly each time it is present in the data. Per sensor, different amounts of data may be relevant to a pattern. How much influence a routine context has on the context data is determined by how much variation there is between different instances of the context. This variation can be expressed as a random process. This random process modifies values between different instances of routine context, or leads to desynchronisation effects when elements are skipped or extended. It is inherent to each routine context. Furthermore, non-routine contexts may also lead to desynchronisation of following routine contexts, due to the global continuity of context. A separate random process determines these effects, and the amount of value modifications in the non-routine data, if a baseline has been defined. A model of probabilistic distances determines how likely it is for a certain value to be modified to another one, or to be extended or skipped. The order of appearance of the routine contexts is usually regular as well, but can also vary under random influences. A real world example could be a person oversleeping, and skipping an entire morning activity, on their way to work. These varying orders can also be modelled by a random process. Finally, different context sources may have interactions. As an example, location and radio signal strength are often correlated. Such correlations need to be taken into account when evaluating the random process which determines the ultimate values of a context. and may also be interesting when defining a set of routine contexts. 70data 1 pattern time pattern cell data 2 data 3 data 4 stream Figure 4.1.1.: Stream, pattern and cell for a simulated 4-tuple dataset. The stream consists of patterns (coloured) and random data (light grey). Each pattern consists of defined values (blue) and undefined values (white). 4.1.1.2 Definitions The model used during the generation process consists of two key structures: the stream is a concept which represents data from multiple independent sensors evolving over time. In terms of the context model, it represents the sequence of n-tuples of sensordata. Patterns are two-dimensional arrangements of data symbols in a rectangular grid (cf. the example in Fig. 4.1.1). The stream is created by alternating intervals of n-tuples of random data and randomly modified instances of these patterns. The output of the data is a direct representation of the stream. The atomic unit of data – the individual grid element – is called a cell. Each cell is specific to a moment in time (horizontal) and a data source (vertical). Data sources in this context are discrete random variables, with a limited set of states (“alphabet”), each element of which is a symbol. The number of different attainable symbols - the cardinality of the alphabet - is called the spectrum of a data source (cf. Fig. 4.1.2). The real-world counter part to these data sources are filtered sensors producing discrete measurement values. Each cell of a pattern contains either a symbol from the corresponding alphabet or is a place holder asterisk “*” value indicating an entry that is not defined by the pattern. 71Figure 4.1.2.: Four alphabets A1, A2, A3, A4 with respective spectra 5, 6, 4 and 2. N.B.: Different symbols across different sensors (e.g. “A”, “1”, “a”, “0”) are used here for illustration purposes only, symbols are actually represented by their indices (i.e. as in A2). Random effects – termed noise in the following – are a key factor in the generation of patterns and the stream. This noise is based on random variables, which are sampled, and the resulting values then transformed into length variations or symbol substitutions. All random variables that are used to generate noise are considered to be normally distributed (except in the limit-case of infinite variance, which is transformed into uniform distribution over an interval). The effect of noise is derived from user defined transition cost matrices (one for each alphabet) with the number of rows and columns equal to the size of the alphabet, and correlation matrices (one for each pattern, and one for non-pattern intervals). The transition cost matrices contain the cost of substitution between symbols. The costs of transitions for the following special symbols * place holder for empty cells in patterns; del delete a cell from the stream; ins add an additional value to the stream. make up a further four vectors: 1. A vector containing the cost of conversion of any symbol to the * value; 2. A vector containing the cost of conversion from * to an alphabet value; 723. A vector associated to ins, which contains the cost of converting any alphabet value or * to an insertion; 4. A vector associated to del, which contains the cost of converting any alphabet value or * to a deletion. These symbols form a global (i.e. across all data sources) alphabet of control-characters Ag = {*, del, ins}. Of these, * can appear in patterns (hence there being both a “to” and “from” vector of transition costs), but none of these symbols appears in the stream. The operations linked to these symbols represent two different kind of noise effects: Temporal noise (del and ins) causes relative shifts in the time domain of data sources by inserting or deleting values, as well as local extension or compression of periods of data. Data noise (values replacing *) introduces random values in predefined areas, which corresponds to variable parts of otherwise fixed patterns and permits us to use rectangular patterns with little loss of generality. The correlation matrices are lower triangular matrices with one line and column for each data source. Each line corresponds to the relative weights given to the calculation of a value by other values in the previous rows. A positive correlation value means that the influence of the random values used to determine the content of the respective cell have a quasi-linear effect on the determination of the current value. A negative correlation value conversely has an inverse quasi-linear effects. Zero values mark independent data sources. In this context “quasi-linearity” is an artificial effect to transform multi-dimensional random values from one space to another. This may not hold up to a comparison to real world data, but provides a reasonably simple model which avoids having to define correlations per pattern and per symbol individually. The following naming conventions are used henceforth: Z>0 = {1, 2, 3, . . .} the natural numbers excluding zero and R≥0 = S x∈R,x≥0 {x} all non-negative real values. The notation xi,h,k represents the element in the h-th line of the k-th column of a matrix (or table) Xi . Let n ∈ Z>0 be the number of data sources, m ∈ Z>0 be the number of patterns, Ai = {x ∈ Z>0|x ≤ si},(1 ≤ i ≤ n) be the (abstracted) alphabet of the i-th data source and lj ∈ Z>0 be the length of the j-th pattern Xj ∈ P ⊂ Sm j=1× n i=1(Ai ∪ {∗}) lj of the indexed set of patterns (cf. Fig 4.1.3 for a complete set of patterns, with empty cells, a sample elements and corresponding dimensions.). Let ~s ∈ N n >0 with components si be the spectra-vector where ∀1≤i≤n : si = |Ai |, with | · | being the cardinality and let lstream ∈ Z>0 be the number of total grid columns of the stream. In the following, x, y ∈ Ai ∪ Ag,(1 ≤ i ≤ n) stand for symbols. 73X1 X2 X3 Xm -1 Xm n lm l1 lm-1 empty cell cell element x Figure 4.1.3.: A set of patterns, P = {X1, . . . , Xm}, with n data sources and lengths l1, . . . , lm, and a pattern element x = Xm,n,1 ∈ An. N (ση), η ∈ {o, p, q, r, u} are Gaussian distributions with variance σ 2 η serving as sources of random values for o value variety of noise intervals between two instances of patterns in the stream, random variable o; p noise applied to pattern-defined values during the instantiation of patterns in the stream, random variable p; q variations in length – unless lengths are predefined for each pattern – and values between two different patterns, random variable q; r variations of the interval length between two instances of the same pattern in the stream, random variable r; u variations of the length of noise intervals in the stream, random variable u. The transition cost matrices are Ti = [ti,h,k],(1 ≤ i ≤ n) ∈ R si×si ≥0 and form the set T := Sn i=1, {Ti}. The entries ti,h,k are the positive real-valued costs of transforming the 74h-th symbol of Ai into the k-th symbol. The costs of transition relative to the elements of Ag are the pattern insertion and deletion cost vectors ~bi , ~ci ∈ R si for the transitions from and to *, and the stream insertion and deletion cost vectors ~di , ~ei ∈ R (si+1) for transitions to del and ins. Transition cost tables are related to the substitution score tables of the algorithms used to align pattern instances. In the alignment algorithm, they indicate similarity based on the way the model is configured. In this generator, they define the probability of random transformations of symbols. An important feature of transition cost tables is that they do not necessarily need to be symmetric, even though a naive approach considering the value spaces as Euclidean spaces with distances would indicate this. Yet, when using probabilities of transition in example data as basis for the cost of state-transitions, the assumption of symmetry is rendered invalid, as the resulting graph of transitions is not necessarily symmetric. For the values in the table to have the expected effect, they need to be scaled in consideration of the variances of p and q. A gappiness vector ~g ∈ R n ≥0 , with ∀ n i=1~gi ≤ 1 contains the ratio of pattern entries to empty cells for each data source, and simulates effects of limited data source availability and information significance and density. Let lower triangular matrices ξi ∈ R n×n , i = {1, .., m} be the correlation matrices for patterns Xi and let ξ0 be the correlation matrix for non-patterned values. These matrices are lower triangular, as each new value can only ever be correlated to values that have already been generated. The entries are normalized so that each row-sum is equal to one. Let ~w ∈ Z m >0 be a representation of the frequency of pattern apparition in the stream. Each value corresponds roughly to the relative period of apparition of a pattern in the stream. Finally, let lnoise ∈ R be the average length and let ¯lnoise ∈ Z>0 be the maximum length of a non-pattern-interval in the stream. For our running example, let n = 4, m = 3, ~s> = (5, 6, 4, 2) and ~l > = (10, 6, 7). Let the corresponding gappiness vector be ~g = (0.1, 0.1, 0.3, 0.3), and let the first of four transition tables be T1 =   0 7 5 4 8 7 0 2 5 3 5 2 0 1 2 4 5 1 0 3 8 3 2 3 0   ∈ T . 75Furthermore, let ~b1 =   3 9 5 9 2   , ~c1 =   4 8 3 4 9   , ~d1 =   5 2 3 9 7 4   , ~e1 =   5 2 4 7 6 6   and the correlation matrices ξ0 = ξ1 =   1 0 0 0 0 1 0 0 1 0 0 0 0.5 0 0 0.5   . Finally, let ~w > = (45,30, 50), lnoise = 4.8 and ¯lnoise = 15. We use these values to demonstrate how to generate pattern values and pattern instances in the stream. 4.1.1.3 Pattern Generation The first step R1 of the algorithm is to generate m different patterns according to the parameters given: X1 = R1(n, l1, ~s, T , ξ1, ~g) Xj = R1(n, lj , ~s, X1, σq, T , ξj ), j = 2, . . . , m A reference pattern X1 is generated first, consisting of randomly selected entries based on vectors ~γl ∈ ×i 1 are then modified to reflect the correlations dictated by ξ1: ψ 0 i,l := X i k=1 ξ1,i,k si + 1 sk + 1 d l(sk+1) si+1 X e j=b (l−1)(sk+1) si+1 c+1 ψ~ k,jωi,j,k (4.1.1) where ωi,j,k :=    j − (l−1)(sk+1) si+1 if j < (l−1)(sk+1) si+1 + 1 ∧ sk > si l(sk+1) si+1 − j + 1 if j > l(sk+1) si+1 ∧ sk > si 1 if (l−1)(sk+1) si+1 + 1 ≤ j ≤ l(sk+1) si+1 l(sk+1) si+1 − j + 1 if j > (l−1)(sk+1) si+1 + 1 ∧ sk < si j − (l−1)(sk+1) si+1 if j < l(sk+1) si+1 ∧ sk < si sk+1 si+1 if l(sk+1) si+1 ≤ j ≤ (l−1)(sk+1) si+1 + 1 which corresponds to a constant resampling, linearising across vector dimensions by treating them as intervals. An example is given in Fig. 4.1.4. The values on each arrow correspond to the scaled value that is used to determine the value at the end of the arrow. In the left case, the values in the left vector are scaled up (by 5/3) and in the right case, the values are scaled down (by 3/5). Then, these scaled values are spread according to the coverage they have on the corresponding parts of the vector. In the case of the middle value (2 - marked with red dashed line) in the left example, this is 1/5 for the second value of the right vector, 1 for the third value, and 1/5 for the fourth value. Scaling is applied accordingly, hence (2 · 5/3 · 1/5) = 2/3 is the influence on the top value of the three values that are marked in the right vector. Let x = x1,i,l be the value of the i-th row and l-th column of X1 and the k-th element of Ai . Let vx ∈ R si+1 be a vector whose components are the l-th of Ti and the l-th element of ~c: vx :=   ti,1,k ti,2,k . . . ti,si,k ci,k   78s+1=3 s+1=5 s+1=5 s+1=3 1 2 3 1 4/3 2 8/3 3 1 2 3 4 5 1.4 3 4.6 0.6 0.8 0.4 1.8 0.8 1.6 3.0 1 2/3 2/3 2 2/3 2 3 Figure 4.1.4.: Illustration of dependence coefficient determination during creation of similar patterns. The right vectors are created from the values of the left vectors, through linear interpolation and scaling. or, in the case of x = *: v* :=   b1 b2 . . . bk 0   The index y of the minimal component of |vx − ψ~0 i |, y = min ] |vx − ψ~0 i | (here | · | is the component-wise absolute value) is the value that takes the place of x in Xj , unless y = si+1 in which case * is inserted into the pattern at this position. This is repeated for all n × lj entries of the pattern. Furthermore, the length lj of the j-th pattern – if not specifically set to a certain value beforehand – is calculated by obtaining a random real value ∆lj from N (σq), adding it to l1 and rounding to the closest integer: 79lj :=    b∆lj + l1 + 0.5c ∆lj + l1 > 0 0 ∆lj + l1 = 0 d∆lj + l1 − 0.5e ∆lj + l1 < 0 Addition or removal of elements is done column-wise: for every column, a random check is performed against |∆lj | max(lj ,l1) (until the lj -th column is reached) to determine whether the current column of X1 is skipped or a column of equally distributed randomly selected symbols inserted. To compute x2,1,1 of the pattern X2 ∈ Z 4×6 >0 of our running example, given σ 2 q = 2 as the variance of the distribution of q, we first determine whether the first line is skipped to make up for the difference in length to X1. This is done by obtaining a random value from the interval [0, 1] and testing whether it is smaller than 10−7 max(10,7) = 0.3. We assume – for the sake of this example – that this is not the case, and instead x2,1,1 is derived from x1,1,1. We obtain a vector ψ~ 1 ∈ R 6 by repeatedly sampling q: ψ > 1 = (0.1, 0.5, −1.6, 1.1, −0.8, 0.3). Then x2,1,1 = min ] |vx1,1,1 − ψ~0 1 | = min ] |v2 − ψ~ 1| = min ]   t1,1,2 t1,2,2 t1,3,2 t1,4,2 t1,5,2 c1,2 − ψ~ 1   = min ]   7 − 0.1 0 − 0.5 2 + 1.6 5 − 1.6 3 + 0.8 8 − 0.3   = 2 The values x2,k,l,(k > 1), are calculated by taking into account the correlation matrix. Let ψ~> 4 = (−1.5, 0.8, −0.3). We determine ψ~0 4 using equation 4.1.1, and the resampling of ψ~ 1 shown in Figure 4.1.4: ψ~0 4 = 0.5   0.3 −0.25 −0.5   + . . . + 0.5   −1.5 0.8 −0.3   =   −0.6 0.275 −0.4   This allows us to calculate x2,4,1 = | min ] ψ~0 4 − vx1,4,1 | as above. 80These steps are repeated until m patterns have been created. These patterns are then integrated into the stream. 4.1.1.4 Stream Generation Streams are generated by interposing modified instances of patterns with blocks of random values. The generation of streams can be considered as a relation R2(n, T , P, σp, σo, σr, σu, ~w, lnoise, ¯lnoise, ξ0) : Z>0 × R n×si×si × [m j=1 n × i=1 (A lj i ∪ {∗}) × R n ≥0 × R n ≥0 × R≥0 × R≥0 × Z m >0 × R × Z>0 → n × i=1 (Zsi+1 \ {0}) lstream This is a projection of the configuration space (dimensions, transition model, patterns, randomness, correlations) into a stream. There are three main tasks to consider: Scheduling Each pattern has a predefined frequency of instantiation, which can be understood as an m-vector ~w ∈ R m. σp determines how much the appearance intervals vary. Noise Noise duration and variety are defined by lnoise, ¯lnoise, σu and σo. Modifications The variance between instances of the same pattern is defined by σr ∈ R n . Scheduling is managed in the following way: 1. During the first run, ~w 0 = ~w is created in order to track changes to ~w without losing the original information. 2. The pattern Xmin]( ~w0) is selected and inserted into the stream, where min]( ~w 0 ) is the index of the minimal component of ~w 0 : min ] ( ~w 0 ) = i|∀| ~w0 | j=1 : w 0 i ≤ w 0 j . If multiple components share the same smallest value, the value of min] is picked at random from the corresponding indices. 3. The vector ~w 0 is updated by adding ~wmin]( ~w0) + r to the component pertaining to Xmin]( ~w0) : w 0 min]( ~w0) = w 0 min]( ~w0) + wmin]( ~w0) + r 81Algorithm 4.1 Scheduling pattern instances input : The scheduling vector ~w ∈ R m output: A scheduled stream ~w 0 ← ~w; l ← 0; while l < lstream do jins ← min]( ~w 0 ) = i|∀| ~w0 | j=1 : w 0 i ≤ w 0 j ; append pattern Xjins to stream; increment l by the length of Xjins ; w 0 jins ← w 0 jins + wjins + r; // update minimal value in ~w 0 for j ← 1 to m do // update other values in ~w 0 if j 6= jins then w 0 j ← w 0 j − wjins m−1 end end append noise interval of length min((lnoise + u), ¯lnoise) to stream; l ← l + min((lnoise + u), ¯lnoise) end 4. ∀j=1,...,m,j6=min]( ~w0) : w 0 j = w 0 j − wmin] ( ~w0) m−1 , which avoids under- and overflows due to incrementation and decrementation, as the decrement of each step is equal to its increment, and E(r) = 0. 5. A noise interval of the length of min((lnoise + u), ¯lnoise) is injected into the stream, containing random values that adhere to the dependencies defined by ξ0. This is also formulated in pseudocode in algorithm 4.1. Within the frame of our example, this has the following effects: First, an interval of noise of length 5 is appended to the stream based on the assumption that the average value of 4.8 is not significantly impacted by the random effects of u. Then, pattern X2 is appended to the stream, as the smallest value in ~w > (30), is in the second position. ~w 0 is then updated as follows: ~w 0 =   w 0 1 − w2 2 w 0 2 + w2 + r w 0 3 − w2 3   =   45 − 15 30 + 30 + r 50 − 15   =   30 60 + r 35   The contents of a noise interval cell are generated by determining the index of the smallest component of the distance ∆o,i = |φi − vˆ0|, where φi ∈ R si+2 is a set of vectors of subsequent results of the event at the base of o, modified according to the method 82proposed in equation 4.1.1 (replacing ξ1 with ξ0 and adjusting sizes) and ˆv0 ∈ R si+2 is ~b appended by the last entries of ~d and ~e respectively: vˆ0 =   b1 b2 . . . bsi dsi+1 esi+1   Thus, the symbol added to the stream is: y = min] |φ − vˆ0| In the case of y = si + 2, the control value ins is generated: a new φ is randomly obtained, ∆o,i re-evaluated, and a new value is inserted after the current position using this very same algorithm. If the minimum index obtained is si + 1, a del control value is generated and no value is written into the i-th row of the stream during this iteration. For all other indices, the resulting index corresponds directly to the symbol of the corresponding alphabet to be written into the stream. Once this is done, the algorithm continues, by performing the same actions on the symbol in the cell to the right, for all columns that are to be generated. The modifications applied to instances of patterns in the stream are calculated in the same way for non-defined cells. For cells of patterns containing symbols, the above algorithm is adapted by calculating min] ∆p,i = min] |ρ − vˆx|, with ρ ∈ R si+2 a vector of random values obtained by sampling p (si + 2)-times, and x being the value in the pattern cell and hence ˆvx being the x-th column of Ti appended by the x-th elements of ~d and ~e: vˆx :=   ti,1,x ti,2,x . . . ti,si,x dx ex   In Figure 4.1.5, we show how the element x2,1,1 = 2 is instantiated into the stream, modified by noise to become the sensor value 4. 83pattern element x = 2 є A1 1 2 3 4 5 ins del * 3 9 5 9 2 5 5 1 0 7 5 4 8 2 2 2 7 0 2 5 3 3 4 3 5 2 0 1 2 9 7 4 4 5 1 0 3 7 6 5 8 3 2 3 0 4 6 4335207 1-204-423 35316-24 output symbol y = 4 T1 0 zero mean noise Gaussian d e b Figure 4.1.5.: Noise is applied to symbol x from alphabet A1 using transition cost matrix T1 and transition cost vectors b ~ 1, d ~ 1, ~e1. The resulting value is y = 4. This example uses integer values for easier reading and comprehension, in general the random values are real values. The process starts with value x2,1,1 = 2 from pattern X2, extracts the corresponding row from T1 and selects the smallest absolute value in the sum of the extracted row and a random vector, to determine the index of the element to replace x. 84I D D I I I I I D I time Figure 4.1.6.: Extract of a possible resulting stream with n = 4 and m = 3 different patterns (blue, yellow and green) and noise (red). I and D indicate cells in which insertions or deletions have happened. y is the symbol that has been generated in Fig. 4.1.5. This process (schedule - noise - pattern) is repeated until the sum over all noiseinterval-lengths and pattern-instance-lengths is equal or larger than lstream. A schematic example of a resulting stream is given in Fig. 4.1.6. With regard to our initially targeted model, this allows us to control most variables precisely. We can generate data that locally or progressively desynchronises, data that has controlled amounts of noisy variation and in any size or shape desirable. To help this latter fact, we also permit the handcrafting and loading of pre-defined patterns. We currently identify the following weaknesses to our approach: we limit ourselves to normally distributed noise for all random aspects of the generation process. We consider this as a safe default choice, especially to model sensor measurement noise, but it may not be an accurate model for variations caused by human actions. In the absence of a better model for this kind of variation, we restricted ourself to Gaussian distributions. Our correlation algorithm between two data sources with different numbers of symbols is not correct, in the sense that we linearise across dimensions which have no actual linear relationship. On the other hand, we see this as the only way to implement correlation. Due to the difficult nature of this feature, we do not use it for the generation of our data, based on the assumption that strongly correlated data is unified to a single sensor reading in real world context data. 85A final problematic issue is that of our multidimensional noise issue, which makes the link between a chosen variance value and the actual effect on value transitions rather unintuitive. Although a probability interval based approach may have had more predictable results, it would be more complex to integrate with the notion of data source correlation, and would require a rather complex calculation of interval limits for each of the possible transitions. Taking into account these limitations, we feel nonetheless confident that it allows us to generate a number of well understood datasets. The ability to retain the information of which pattern is instantiated in which cells of the output stream allows us to evaluate our alignment algorithm against this ground truth. 4.1.1.5 Dataset Generation For the evaluation procedure, we generate 135 datasets, which can be characterised by five different scenarios, each of which has 27 different variations by adjusting three variables. Each scenario serves to link a configuration of the data generator, to a specific type of behaviour of a simulated human exhibiting a certain way of life. These five scenarios are: 1. A scenario without random influences, outside the order of pattern instantiation. This corresponds to a human who reproduces the exact same set of context data every time a certain activity is performed, and always performs activities that are repeated eventually. 2. A scenario with an interval (of length 10) of random data between each two pattern instances. This could represent a person that performs some activities exactly the same way, between which there are intervals of irregular activity. 3. A scenario where each pattern instance is heavily treated with noise. This correspond to a person that acts with regularity, but is insufficiently instrumented to give trustworthy data, or does the same activity in a different way. 4. A scenario where each pattern is instantiated in varying intervals. A user profile exhibiting this behaviour would be a from a person performing activities identically each time, but not in the same order or at the same frequency. 5. A scenario where 75% of the cells of each pattern are undefined. These sparse patterns represent a faulty sensor suite or someone who only has a few key detectable regularities in their daily activities. 86These configurations are summarised in Table 4.1. A number of other configurations parameters are equal across all configurations and scenarios: ❼ All patterns have length 10; ❼ Each simulated sensor has an alphabet size of 10 – a realistic compromise between separation and resolution; ❼ Transition costs are equal for all configurations; ❼ The inter-pattern variance is infinite across all configurations – each pattern is generated independently from the others. Furthermore, we vary three properties in three ways each: ❼ Number of patterns: 2, 5 or 10; ❼ Number of rows: 2, 5 or 10; ❼ Number of columns: 100, 200 or 500 (cf. Table 4.2). In Table 4.2, advancing a column increments from the base index given in the first column. For example, the 15th configuration can be found in the column denoted +5 in the row denoted 10. These latter give us the 27 variations of each of the five principal scenarios and thus we obtain the number of 135 configurations. For each scenario, a set of ten patterns is defined, of which suitable subsets are used for each of the configurations. We define the transition costs for the generator such that the identity transition is assigned a zero cost, whereas a substitution with any other symbol is assigned a cost of one. Substituting a symbol with an insertion or a deletion is given a cost of two (using the classic model of fixed indel scores), and substituting a don’t care symbol with any alphabet symbol is given a cost of one as well. Table 4.3 contains the entire transition cost matrix. Table 4.1.: Configuration of the five datasets. Dataset 1 2 3 4 5 noise interval length (count) 0 10 0 0 0 pattern noise distribution (σ 2 ) 0 0 9 0 0 pattern repetition distribution (σ 2 ) 0 0 0 9 0 gappiness (ratio) 0 0 0 0 0.75 87Table 4.2.: Configuration values for the 27 experiments making up a dataset. index +0 +1 +2 +3 +4 +5 +6 +7 +8 2 5 10 2 5 10 2 5 10 num. of patterns (m) 1 2 2 2 5 5 5 10 10 10 num. of rows (n) 100 100 100 100 100 100 100 100 100 num. of columns (l) 2 5 10 2 5 10 2 5 10 num. of patterns (m) 10 2 2 2 5 5 5 10 10 10 num. of rows (n) 200 200 200 200 200 200 200 200 200 num. of columns (l) 2 5 10 2 5 10 2 5 10 num. of patterns (m) 19 2 2 2 5 5 5 10 10 10 num. of rows (n) 500 500 500 500 500 500 500 500 500 num. of columns (l) Table 4.3.: Transition matrix T used for the generation of the test datasets. ins del 0 1 2 3 4 5 6 7 8 9 * * 2 2 1 1 1 1 1 1 1 1 1 1 0 0 2 2 0 1 1 1 1 1 1 1 1 1 1 1 2 2 1 0 1 1 1 1 1 1 1 1 1 2 2 2 1 1 0 1 1 1 1 1 1 1 1 3 2 2 1 1 1 0 1 1 1 1 1 1 1 4 2 2 1 1 1 1 0 1 1 1 1 1 1 5 2 2 1 1 1 1 1 0 1 1 1 1 1 6 2 2 1 1 1 1 1 1 0 1 1 1 1 7 2 2 1 1 1 1 1 1 1 0 1 1 1 8 2 2 1 1 1 1 1 1 1 1 0 1 1 9 2 2 1 1 1 1 1 1 1 1 1 0 1 The similarity score table for the local alignment algorithm is derived from these values. The identity score is set to 10. The substitution of one symbol with a different one is assigned a penalty of -15. This value is chosen as an optimisation for scenario 2, based on the following consideration: The chance of a random match is 1/10 for each cell. In the two row case, completely bridging the noise interval between two patterns requires an alignment of the 20 cells between two patterns. The expected value of random matches in this interval is two. To improve pattern separation, the penalty value is chosen to prevent over-alignment even for four instances of matches in the interval of noise. This covers 95% of all cases in the two-row configuration. The insertion and deletion penalty are chosen twice as high (-30) as the substitution penalty, mirroring the generation configuration. 88For each one of the 135 configurations, a dataset consisting of ten sequences is generated. Next, we evaluate our alignment approach on this generated data. 4.1.2 Synthetic Data Pattern Extraction Evaluation This subsection presents the results obtained from using our local alignment algorithm (as introduced in Chapter 3) on synthetic data generated according to a number of different scenarios. We have generated a total of 135 different datasets, and use the alignment approach to extract patterns, which are then compared to the actual patterns – as generated – in the test data. We decided to limit ourselves to 135 datasets, as we assume this to be a good compromise between covering some of the breadth of possible configurations, and also allowing us to present all the results. 4.1.2.1 Evaluation Criteria We evaluate the alignments on four criteria. Number How many alignments are made, with regard to the expected number of possible pairings of patterns between the two sequences? Precision How much of an alignment actually covers a pattern? Recall What part of a pattern is covered by an alignment? Alignment size How big are the alignments that are found, compared to the size of the patterns present? We average precision and recall across all alignments for a configuration. If an alignment covers multiple patterns, we only consider the best-covered pattern. In Fig. 4.1.7, the precision and recall measures are presented on an example. 4.1.2.2 Hypotheses With regard to the five scenarios characterising each dataset laid out in the previous section, we can expect the following results: 1. The first dataset, especially in conjunction with low numbers of patterns, should develop “macro-pattern” artefacts (i.e. series of patterns with the same order of individual patterns) and few, but overly large alignments can be expected. 89Aligned cells outside pattern Unaligned pattern cells Total pattern cells: 24 Total aligned cells: 20 Aligned pattern cells = 16 Precision = 16/20 = 4/5 Recall = 16/24 = 2/3 Size ratio = 20/24 = 5/6 Unaligned non-pattern cells Aligned pattern cells Figure 4.1.7.: Evaluation scoring example. 2. The second dataset should have a low incidence rate for complete over-alignments. These occur when two patterns appear in the same order in two input matrices and the random values between patterns are sufficiently similar. Patterns should otherwise be well discerned. Single-row over-alignments can be expected to be more common (over one third for configurations with only two patterns), especially for larger row numbers. 3. Dataset three can be expected to be a case where the algorithm would not be able to identify most of the patterns. The selected configuration means that almost 80% of all values are changed during instantiation. This makes alignable patterns rare. Despite a minimal admissible score of only 60% compared to datasets one, three and four, complete and correct alignments of patterns are unlikely to be made. The contiguous characteristics of the alignments mean that some changed cells of patterns can be included in the alignments. 4. Results on dataset four should also be similar to those on dataset one, but with – on average – shorter alignments, as macro-patterns should be less likely to emerge, when the order of pattern instantiation is less regular. The impact of this is expected to be more noticeable with configurations with a higher number of patterns. Alignments are more likely to match well with patterns. 905. In the fifth dataset finally, the scoring system in place and the extreme gappiness should have a large percentage of false positives among very few, partial alignments of actual patterns. It can be seen to serve as a negative control experiment. In contrast to set three, the alignments should be more likely to span non-pattern cells. 4.1.2.3 Results The average evaluation results for each scenario are contained within Table 4.4. This table contains the ratio of detected alignments to expected number of pairs of patterns in the data, the average precision and recall values across all 27 configurations (which are themselves the averages across all alignments for each configuration) and the size ratio. The values for Dataset 3 and Dataset 5 are not directly comparable to the others, as we used a different MASS base score, to account for the noise in Dataset 3 and the missing data in the case of Dataset 5. MASS in these cases have been reduced to 0.6 (a value we consider to be similar to what may pass as a real world noise tolerance value) and 0.25 (three-quarters of the cells of a pattern are undefined) respectively of the corresponding MASS in the other configurations. For these, MASS is equal to the size of the pattern, as we assign a similarity score of one per identical cell. Table 4.4.: Key results: averages and standard deviations across all configurations. Measure Dataset 1 Dataset 2 Dataset 31 Dataset 4 Dataset 52 #alignments #pairs of pat. 0.31 ± 0.26 0.69 ± 0.29 0.041 ± 0.054 0.31 ± 0.26 0.22 ± 0.32 precision 0.54 ± 0.22 0.77 ± 0.20 0.13 ± 0.06 0.52 ± 0.24 0.54 ± 0.18 recall 1.00 ± 0.00 1.00 ± 0.00 0.56 ± 0.19 1.00 ± 0.01 0.20 ± 0.06 alignment size pattern size 5.66 ± 4.48 2.45 ± 2.51 6.72 ± 3.96 6.65 ± 6.08 1.60 ± 0.24 The runtime for the complete set of alignments is around 4 minutes of real time on a pair of Intel➤ Xeon➤ E5-2560. Across all 135 configurations, we obtained 214,963 alignments. In Fig. 4.1.8, we present the ratios of alignments to expected pairs of patterns per configuration. The most striking trend is that datasets 1 and 4, and to a lesser extent dataset 2, show a series of this measure rising in patterns of three. This can be directly attributed to the macro-patterns that are created, which are obviously more numerous when the number of patterns in the data is low, and simultaneously 1The results for Sets 3 have been obtained with a MASS of 60% of those of Sets 1,2 and 4. 2The results for Sets 5 have been obtained with a MASS of 25% of those of Sets 1,2 and 4. 91the lack of noise does not allow segmentation of the patterns into their components. Table 4.5.: Average Pattern Size for Dataset One config. mean error 0 4.13 ±2.73 1 1.32 ±0.93 2 1.82 ±1.99 3 1.29 ±0.81 4 5.86 ±5.50 5 5.25 ±5.31 6 2.81 ±3.25 7 8.92 ±5.61 8 8.99 ±5.64 9 4.69 ±5.07 10 1.53 ±1.27 11 1.23 ±0.73 12 3.70 ±2.86 13 3.09 ±2.53 14 1.89 ±1.60 15 4.35 ±2.68 16 3.72 ±2.75 17 2.98 ±2.22 18 8.68 ±10.54 19 2.22 ±3.11 20 11.26 ±12.35 21 8.45 ±11.74 22 4.50 ±8.19 23 17.55 ±14.69 24 17.89 ±14.89 25 8.88 ±12.30 26 5.83 ±4.86 A more subtle trend lies in the reduced number of alignments made, when there are more sensors in the data. This can possibly be ascribed to the higher MASS in use for those scenarios. For dataset one, almost all patterns are covered by alignments and average alignment size is 5.66 times the pattern size (validating our macropattern hypothesis), two outlier configurations (16 and 17) reach an average pattern size over 17 times larger than patterns, with very large deviations in the samples (cf. detailed results in Annex B.1.2 and an extract in Table 4.5). Mean precision across all configurations is 0.55 (standard deviation across means of each configuration: 0.22). Dataset two benefits from the fact that it is the reference for the score matrix. This means good separation of patterns due to the noise between them (alignment size on average 2.45 times the pattern size). The average number of alignments is 0.69 times the number of pairs of patterns. Precision is relatively high, and almost all patterns are completely covered by at least one alignment. Problems with over-alignment arise when a low number of patterns is combined with a high number of sensors. Here the score obtained by aligning a pattern with another is high, and the chance that the following patterns match is also high; this means that an alignment stretches over multiple patterns when the score penalty incurred by the noise interval is not sufficient to prevent overalignment. Dataset three highlights the detrimental effects of noise on alignment quality and quantity. Especially with the equidistant layout of the value space, there are very few alignments made with the provided score matrix. The preci- 920 0,2 0,4 0,6 0,8 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Dataset 1 0 0,2 0,4 0,6 0,8 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Dataset 2 0 0,05 0,1 0,15 0,2 0,25 0,3 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Dataset 3* 0 0,2 0,4 0,6 0,8 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Dataset4 0 0,2 0,4 0,6 0,8 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Dataset 5 Figure 4.1.8.: The ratios of the number of alignments to the combinatorially expected number of identical pairs of patterns in two different files, for all five datasets and all 27 experiments. As the number of patterns rises, the expected number of pairs gets lower, and the rate of alignments gets closer to the number of pairs. *Note: The values for dataset 3 are on another scale than the others. 93sion score is very low, alignment size varies wildly, but is on average very large, despite a 40% reduction in minimal admissible scores, which should favour smaller alignments. The pattern coverage metric is no longer accurate for this case, as its implementation depends on the simultaneous start of a pattern which is no longer guaranteed once insertions and deletions appear. Notably, some patterns were found in all configurations. The results from dataset four are in most aspects very similar to those from dataset one. In comparison, the average size of patterns is higher; recall and precision are lower, and show a slight increase in variability. Dataset five – serving as negative control – has the minimal admissible score of the alignments reduced to one quarter of those of dataset one, to offset the three-quarter loss of information induced by the gappiness value. This visibly does not even out the loss of information due to gappy patterns. The score matrix punishes inequality too heavily for but a few chance alignments to arise, if any at all. Precision is no lower than for datasets one and four, as the low scores of the alignments do not allow the inclusion of a large number of non-matching values in alignments. The average recall for patterns covered by alignments is very low. Alignment sizes reflect the reduced scores and are similar across all configurations (0.05 standard deviation, excluding configurations without alignments). 4.1.2.4 Performance Comparison Our key contributions having as goal performance improvements of an existing algorithm, we compare these results with those obtained with the original algorithm. Where the previous results – with the new algorithm – were obtained in just over 4 minutes, the original algorithm (as described by Lecroq et al., 2012) gave most results after around 10 hours, but eight configurations with large alignments (particularly configurations of datasets 1 and 3 with long sequence lengths and few different patterns) took over a week to give results, under the same testing configuration. To verify that this drastic increase in performance did not negatively influence our performance metrics, they are presented in Table 4.6. Even if initially the values appear better (especially precision for datasets one and four) than what we obtained from the faster algorithm, we argue that this is possibly due to an undesired effect. The key difference in results, is that a total of 291,858 alignments are made using the slower approach. Since these alignments can be assumed to be smaller than the ones we obtain using the fast variant (due to the score maximisation effort), they reduce the impact of macro-patterns on the evaluation scores. On the other hand, they are also likely to be redundant, as they should be covered by or similar to another alignment of the same pair 94Table 4.6.: Key results: averages and standard deviations across all configurations for the state of the art algorithm Measure Dataset 1 Dataset 2 Dataset 33 Dataset 4 Dataset 54 #alignments #pairs of pat. 0.57 ± 0.27 0.867 ± 0.15 0.022 ± 0.024 0.55 ± 0.27 0.15 ± 0.23 precision 0.70 ± 0.24 0.93 ± 0.06 0.22 ± 0.10 0.69 ± 0.26 0.64 ± 0.21 recall 0.98 ± 0.03 1.00 ± 0.00 0.72 ± 0.32 0.95 ± 0.14 0.20 ± 0.05 alignment size pattern size 2.82 ± 2.20 1.12 ± 0.11 6.48 ± 4.21 3.19 ± 3.37 1.40 ± 0.16 of input sequences. The improved average recall values of our new algorithm compared to the older one also are indicative of this. Additionally, our results for the more difficult datasets (three and five) actually show an improvement with regard to the number of alignments found using our new approach over the state of the art algorithm. We therefore claim that the reduction in results and much decreased time required for the calculation make the resulting reduction in average precision an acceptable trade off, especially because there is evidence that the decrease is due to additional, non-maximal patterns in the data, which are of less interest. 4.1.3 Analysis Overall, this evaluation shows that the algorithm works largely as expected, and allows us to judge system constraints. Our optimisations on the state of the art algorithm have reduced run time massively. This renders it capable of realistically dealing with data that has a much larger scale than previously possible. On the dataset for which the algorithm was tuned, the results are acceptable, especially when the presence of many patterns inhibits the formation of macro patterns. Recall values in particular indicate that most of the time an alignment corresponds to a pattern. The results also show the limits of our approach. Although in the ideal case we observe many perfect fits of alignments to patterns, we also observe the tendency of the current configuration to extend alignments beyond pattern boundaries, if identical pattern sequences are present. In sparse data or in noisy data, the simple model we use here prevents reliable extraction of patterns, because all substitutions are equiprobable. This is especially characterised by the low recall values, indicating that most alignments are made from data that is randomly similar to other data. One of the key observations on these results is that the length of the sequence has a detrimental effect on almost all performance measures. This is due to combinatorial 3The results for Sets 3 have been obtained with a MASS of 60% of those of Sets 1,2 and 4. 4The results for Sets 5 have been obtained with a MASS of 25% of those of Sets 1,2 and 4. 95effects which create macro-patterns in a higher number in these long sequences. Minimising length – so that only a few patterns are included in a sequence – allows for better precision. Especially in real world data, when examining data from people with a routine-heavy lifestyle, one would expect to find larger patterns if the search window is sufficiently large. This is reinforced by the number of different patterns countering this combinatorial effect. Another observation is that the wider the dataset, the worse the impact of macropatterns. This is due to the higher accumulated similarity score after each block of identical data, and therefore increased tendency to bridge the gaps between identical blocks. Although this is a problem with ideally replicated pattern instances, in noisy data this increased resiliency might be beneficial. The effect can be controlled by adjusting the similarity scores for the various edit operations. On the other hand, the actual behaviour on context data can only be determined by testing the approach on real world data. This is explored in the next section. 4.2 Real World Data Evaluation The previous synthetic data based evaluation of our algorithm allowed us to determine the runtime of our algorithm under specific, controlled conditions, as well as gain some initial insights on how it performs with regard to our accuracy measures. To truly validate our approach, further evaluation on real data is required. In the following we describe how we obtained the real data we use, present our results and then analyse them for potential conclusions. 4.2.1 Data Collection Campaign The validation of our approach on real world data is a key part of this work. After an examination of available context datasets (cf. section 2.4 on page 46), we come to the conclusion that none of these is suitable for the specific aims of this work. Hence, we designed a specific data collection protocol and launched a data collection campaign in late 2011. This section documents the process of this campaign from conception to an annotated dataset that is in a suitable format for the alignment approach introduced in the previous chapters. 964.2.1.1 Motivation The key limitations we identified in existing datasets, were the absence of ground truth data and the limited scope of the available context data. Our key goal therefore was to address these shortcomings, by including more physical context data and simultaneously maintaining a reasonable volume of data – so that manual annotation with ground truth data would be possible. The key design imperative is a small footprint, in the sense of the context data capture mechanism not impeding the daily routine of the test subjects. Additionally, it is important for the data collection mechanism to maximize the amount of data available, both by implementing safeguards to prevent the loss of already recorded data, and by allowing the subjects to selectively disable individual sensors. The latter follows our reasoning that users would be more open to gathering data if they could selectively disable sensors. It is better to lose some data for an interval, than to lose all of it, in case a user wants to disable tracking. This approach – coupled with visible feedback of the current sensor values – aligns our data capture philosophy with the one proposed by K¨arkk¨ainen et al. [2010]. 4.2.1.2 Data Collection Campaign We decided to use an Android application as mobile segment of our data collection software. This application regularly records sensor data and transmits this data in aggregated batches to a storage database server. The following values are being recorded every ten seconds: ❼ Local time and date, ❼ Geolocation (via the Android Location API: Based on GPS and radio network fingerprints), ❼ Linear acceleration forces (3D Accelerometer), ❼ Angular velocity (3-axis gyroscope), ❼ Magnetic field (3-axis magnetometer), ❼ Luminance, ❼ State of the handset proximity sensor, ❼ Type of data network currently available, 97❼ Signal strength of cellular network and ❼ Remaining battery charge. These values are first written to a local database on each of the phones, and then automatically sent to a central database server every 24 hours, if a wireless LAN connection is available. Otherwise a retransmission is attempted every six hours. A participant in the data collection campaign can also manually trigger a transmission of the locally stored data. Our campaign was centred around Rouen (a major regional town in northern France) and Grenoble (a university town in south-eastern France). We recruited a total of 20 test subjects, from 5 of which we obtained useful amounts of data. The other test subjects did not participate over the entire term of the campaign, possibly due to lack of incentive or usability issues caused by the increased battery drain of their phones. The campaign ran for a duration of two months, from November 2011 until January 2012. The total amount of data we accumulated was around 430 MB, most of which was from 3 of these 5 users, with the remaining users contributing much less data. Most of this variation is either due to early termination of participation in our campaign, or because many sensors were either disabled by the participant or not available on the participant’s hardware. Besides the obvious privacy concerns of such a campaign, one other issue that presented itself to participants was the high battery usage, particularly of the GPS and microelectromechanical sensors (e.g. accelerometer, gyroscope, magnetometer). This reduced the battery run time of most of the handsets used in the campaign to significantly less than 24 hours, meaning that recharging the device every night was recommended and necessary. With regard to the design goals, this was the principal concession we had to make. Using the smart phone as capture platform for the context data, allowed for less disruption in the daily lives than a separate device would have generated. Our other criterion, of capturing a wide variety of physical context data, has been mostly met. Unfortunately many phones lacked gyroscopes and some device specific issues when using the microphone prevented us from reliably capturing environmental noise levels, which ultimately prevented us from including this in our data. Meteorological information also appeared as a promising aspect of context data to us, but at the time of development, thermometers, barometers and hygrometers were not available on phone platforms, and using real time data from a nearby weather station is both unreliable and difficult to implement. Getting this data after the end of the campaign was also an option, but historical data is 98only available at low temporal resolutions and from services implementing strict quotas on queries. 4.2.1.3 Data Preparation The data we collected requires some amount of pre-treatment to fit to the model we have laid out earlier. Although the ten-second acquisition interval gave us a regular time-discrete source of data, most values were still quasi-continuous. Due to the amount of manual intervention required at this stage, we reduce our test dataset to the data of the test subject which contributed the largest amount of data. Examination of this data reveals that this participant’s device lacked a gyroscope, so no angular velocity data is available. Other sensors contain obviously “troublesome” (false readings, singleton outliers) values, which we eliminate. We also discard network type and signal strength data, as they are highly correlated with geolocation. To further reduce the amount of data present – to facilitate manual annotation of patterns – we fuse magnetic and accelerometric orientation data into one single 6-axis sensor. This leaves us with five context data sources: 1. light intensity on a logarithmic scale 2. state of the proximity sensor 3. location 4. battery charge level 5. orientation with regard to the magnetic North Pole and the gravitational centre of the earth. The next step is the actual discretisation, which is performed manually. Clustering algorithms (such as k-means and X-means [Pelleg and Moore, 2000]) serve as an aid to assign 14 place-IDs to all pairs of longitude and latitude values (see Fig. 4.2.1 for an example), 8 orientation IDs to all 6-tuples of accelerometer and magnetometer readings and 8 discrete battery charge levels. The luxmeter only gives 10 different levels of luminance, which are used directly and the proximity sensor returns a binary reading. We then reduce the sampling frequency to one measurement every one hundred seconds, and cut the data into 24-hour segments, from 4 a.m. to 4 a.m. the following day. These segments are around 850 5-tuples long, which renders them tractable both for the alignment algorithm (cf. the runtime of our initial experiments in subsection 4.1.2.4) and – to a much larger degree – manual annotation. The latter is a necessary step to allow 99Figure 4.2.1.: Clustering of locations into places of the data gathered by one subject over a one week timespan. Artificial jitter has been introduced to the data, to better visualise data density. Note how nine incidences in the top left are clustered together with the other points towards the top left. The low number of incidences renders this error negligible. proper evaluation of discovered alignments: Three key patterns (cf. Annex B.1.3) have been selected by visual analysis of graphs of the sensor data (cf. Fig. 4.2.2), and then each occurrence has been labelled by hand, by annotating the raw data with a pattern ID for the sensors and intervals that visually resembled one another. Although this is an inaccurate practice, it does allow us to roughly label some of the features we expect the algorithm to correctly identify and inter-align. As the choice of “ground truth” is somewhat arbitrary, especially with regard to the vast amount of data present even after the sweeping reductions in data volume, it cannot be understood to be a truly ideal measure. Nonetheless, it is the best measure available under the circumstances, especially considering that the envisioned application is as a decision aid. Being able to detect these key features is a good benchmark of whether this capability of the algorithm also persists for similar data. 4.2.1.4 Post Processing Once the discretised data is available, the next step is to determine the additional information required to obtain the metadata information (substitution score tables and indel penalties). We assign each pair of states for each sensor a similarity value, using 10086420 12 10 5:38 5:47 5:57 6:06 6:17 6:28 6:37 6:48 7:01 7:10 7:20 7:31 7:42 9:42 9:53 10:04 10:13 86420 12 10 6:33 6:44 6:55 7:03 7:14 7:23 7:36 7:45 7:56 8:07 8:15 8:26 8:37 8:46 8:57 9:06 9:17 loglux prox place batt ori time Figure 4.2.2.: Visualisation of an extract of the captured data, with similar intervals marked. This extract covers the morning period of two consecutive days. The y-axis represents the different discretised context values. The values shown in this extract are light intensity on a logarithmic scale (loglux), the state of the proximity sensor (prox), the location cluster id (place), the battery level (batt) and the orientation of the phone (ori). 101the approach laid out in the following. For this evaluation, we create a set of similarity scores derived from both external knowledge of the data sources and transition probabilities between each of the different values. Specifically: In the case of the battery level, we used a linear distance function between the discrete levels, and for everything else we based the similarity measure on the transition probability, and then symmetrised these values. The negative values in the latter case correspond to a projection of the transition probabilities onto a quasi-logarithmic scale, with a score of -10 penalizing less than one transition in 10,000 observations, and a score of -4 corresponding to one transition in five observations. The positive values are around 5 times the transition probability. The special case of the missing reading is dealt with, by assigning a weak malus to any substitution of this value with another and a weak bonus when matched, as we do not consider sensor malfunction and deactivation to be a reliable context information, despite the potential significance. For this data, we expect many temporal extensions and compressions of patterns, and therefore wish to align constant similar sections of different length. Due to the combined insertion/deletion+substitution approach, we set a relatively low negative supplement score for insertion and deletion of -2, compared to the maximum negative score of -10 for transition probabilities smaller than 10−5 . The full substitution score tables can be found in Appendix B.1.1. One key relationship in these tables is that of positive scores to negative scores, as it defines the tolerance of alignments to differences in data. Due to the weakly positive to weakly negative effect of “constant” insertions and deletions, as well as the width of the data we are using and the long periods of constant values in the data, it is preferable to penalize non-identical substitutions heavily. This also shapes more compact alignments, preventing “over-alignment”. With the dataset now laid out, we can use it for the evaluation process. 4.2.2 Evaluation of Alignment Approach on Real Data This section quantifies how well the alignment approach works to match the manually selected patterns to the instances of these patterns in the dataset. The key parameters are the substitution score tables, as well as the insertion and deletion scores, and finally the minimal accumulated similarity score (MASS, cf. section 3.2). The generation of the tables is described in the previous section, and the choice of MASS is discussed in the following section. Thereupon follow the results we have obtained. 1021 2 3 campaign data patterns find local alignments for each pairing with different MASS #58 Figure 4.2.3.: Alignment of three pre-selected patterns with campaign data in 58 slices corresponding to 24-hour periods of 5-tuples. 4.2.2.1 Experimental Setup Besides the model parametrisation, the other parameter that we can control is the minimal accumulated similarity score. This has a key impact in this context, as it affects the minimum size of alignments and the tolerance to differences between two aligned pieces of data. To show the effect of different MASS values, in the following we perform an alignment of the three identified patterns (cf. Annex B.1.3) with all 58 days worth of data from the campaign participant we isolated in the previous subsection, with eight different values for MASS. This process is illustrated in Fig. 4.2.3. The number of manually annotated instances per pattern is as follows: ❼ Pattern 1: 13 instances, ❼ Pattern 2: 18 instances, ❼ Pattern 3: 27 instances. As a starting point, we examine the three patterns, and expected accumulated similarity scores. The first pattern is 190 5-tuples in size. By analysing the representing sample that is used for searching instances in the remaining data, we can obtain the 103score of a perfect match with itself, which gives an upper bound. This score is 2,962 for the first pattern, 3,271 for the second (199 5-tuples) and 1,441 for the third (197 2-tuples – this pattern only covers proximity and location data). Our choice of a useful lower bound is based on the assumption that an hour of similar values is the minimum scale of interest. As one hour corresponds to 36 5-tuples, and assuming that we require perfect matches during this hour to meet our minimal criterion of similarity, then the target value is around 500, which corresponds to an average similarity row score of ∼ 2.78; the average score per row – assuming uniform distribution of all symbols – is ∼ 2.65. Using these two extrema as starting points, we select the following values as our reference points: 500 as lower bound, 700, 850, 1000, as a range that should give expected results for the smaller pattern, and 1,300, 1,700 and 2,200 as a spread more useful for the larger patterns; finally, we choose 3,000 as the upper boundary, which can only be expected to give a single alignment – namely the alignment of the extracted pattern 2 with itself in the corpus. 4.2.2.2 Results We use precision and recall (i.e. the ratio of cells correctly aligned in an alignment and ratio of cells of an annotated pattern covered by an alignment) for each of the pair of 5-tuple sequences to be aligned, similarly to the evaluation of the synthetic data results. Additionally we determine the number of alignments made, and for each pattern the number of instances we have manually annotated. For the four values of precision and recall, we calculate mean and standard deviation across all alignments for each MASSconfiguration. These values can be found in table 4.7. An alignment consists of two elements: one in the predefined pattern, and one in one of the 58 day-slices of the campaign data. In this table, “A” identifies the part of the alignment in the search sequence, and “B” represents the corresponding aligned part in a sequence from the corpus. Fig. 4.2.4 visualises these results, by plotting recall and precision across each MASS-value and the B-parts of each pattern. When looking at “B” recall values, it is important to note, that alignments of non-annotated data result in a zero value, which then impacts the mean recall and precision for a result. This is reflected in the high standard error for these values. 104Table 4.7.: Evaluation results. A is the search pattern, B is the instance in the corpus. Dataset Pattern 1 Measure prec. A. rec. A. prec. B. rec. B num. MASS = 500 1 0.277±0.158 0.024±0.114 0.013±0.083 5011 MASS = 700 1 0.397±0.158 0.072±0.208 0.050±0.171 1049 MASS = 850 1 0.440±0.163 0.100±0.242 0.071±0.200 734 MASS = 1000 1 0.514±0.151 0.138±0.290 0.107±0.245 462 MASS = 1300 1 0.585±0.128 0.201±0.332 0.158±0.285 306 MASS = 1700 1 0.657±0.104 0.329±0.379 0.267±0.336 171 MASS = 2200 1 0.802±0.071 0.712±0.247 0.633±0.288 38 MASS = 3000 X X X X 0 5 Dataset Pattern 2 Measure prec. A. rec. A. prec. B. rec. B num. MASS = 500 1 0.358±0.157 0.045±0.184 0.031±0.129 5201 MASS = 700 1 0.432±0.149 0.070±0.227 0.048±0.160 3206 MASS = 850 1 0.486±0.131 0.078±0.245 0.057±0.176 2240 MASS = 1000 1 0.524±0.125 0.085±0.268 0.064±0.195 1516 MASS = 1300 1 0.566±0.138 0.190±0.385 0.137±0.281 563 MASS = 1700 1 0.605±0.138 0.277±0.442 0.193±0.321 286 MASS = 2200 1 1 1 1 1 MASS = 3000 1 1 1 1 1 Dataset Pattern 3 Measure prec. A. rec. A. prec. B. rec. B num. MASS = 500 0.965±0.059 0.574±0.189 0.596±0.387 0.380±0.324 387 MASS = 700 0.955±0.067 0.680±0.146 0.602±0.376 0.357±0.253 248 MASS = 850 0.966±0.054 0.750±0.060 0.744±0.283 0.433±0.209 185 MASS = 1000 0.992±0.014 0.774±0.046 0.820±0.239 0.505±0.216 46 MASS = 1300 1 1 1 1 1 MASS = 1700 X X X X 0 5 MASS = 2200 X X X X 0 5 MASS = 3000 X X X X 0 5 Across all 7,771 alignments made in search for pattern 1 in the corpus, 6,891 alignments are false positives (i.e. with not even partial coverage of the instances). For pattern 2 this is 11,504 out of 13,014 total, and for the third pattern 186 out of 867 alignments do not even partially cover an annotated instance. This allows us to determine an upper bound for the number of partial false positives (880, 1510, 681) – alignments that intersect with annotated pattern instances, consist of subsequences of such instances or are partially 5X denotes the absence of data 105covered by other alignments. These numbers also include the alignments that best cover a pattern, which can not exceed eight times the number of instances per pattern (104, 144, 216) due to the accumulation of the values across all repetitions of the experiment, and the perfectly matching alignments, which number 20 in total (7, 8, 5). Even when the MASS is set to 1,700, we still find 205 alignments of pattern 2 within the corpus, that in fact do not correspond to an annotated instance. Some of the excess can be explained by multiple locally optimal alignments, that partially cover a ground-truth annotated interval, other is in sequences that are simply sufficiently similar according to our measure, but in non-annotated parts of the corpus. The “A” part of the results is less interesting, as the precision values for the first two patterns are necessarily equal to one, due to every element in the search sequence being part of the pattern. In the third pattern, this value indicates how much of the alignment covers the undetermined part of the pattern. Recall values for the first two patterns are directly the ratio of alignment size to pattern size. For the third pattern, this does not hold true, as the alignment can cover non-determined cells. An additional factor to consider is that some of the alignments might qualify as patterns to an expert, when they are discovered by alignment, despite not having been selected in the non-aided, manual annotation process, due to the fuzzy nature of the latter. 4.2.3 Analysis The initial observation on these results is that finding pre-identified patterns by means of aligning n-tuples requires extensive pre-analysis by the expert user to formulate a reasonable expectation of MASS and number of pattern instances in the corpus, based on the scoring tables, size of the pattern and variability between pattern instances. Nonetheless, given the reasonable time of execution for our example (6 minutes for the sequential execution of the 24 samples of this experiment, on an Intel➤ Xeon➤ E5-2650), it is possible to quickly perform a number of alignment processes with different MASS, and discard those that appear to be too inclusive or too restrictive. If the parameters are chosen fortuitously, then the alignments closely match the expert’s expectation of what constitutes a pattern instance, or at the very least point to areas of interest. We also note that although pattern one and pattern two share almost the same amount of alignments made at the base score of 500, the elimination of false positives with increasing MASS differs greatly between them. The number of alignments for pattern one drops drastically at the step from 500 to 700 and then is reduced more gradually, whereas for pattern two the number of alignments drops more evenly at the lower MASS 1060 0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,11 500 700 850 1000 1300 1700 2200 3000 prec 1 rec 1 prec 2 rec 2 prec 3 rec 3 MASS score Figure 4.2.4.: Mean precision and recall for the instances in the corpus (“B” - part of the alignment) for the 24 test configurations. From left to right are the different values of MASS used. With rising MASS, both precision and recall increase. The rightmost bars are fewer, as no alignments were made with MASS values 1,700 and above for pattern 3, and no alignments were made with MASS values 3,000 for pattern 1. Due to the smaller number of elements contained in pattern 3, it has higher values than patterns 1 and 2 for the same MASS. 107samples, but then very abruptly at a higher score level. And even though the maximum score is higher for pattern two, at MASS 1,700 there are fewer alignments made than for pattern one. This observation suggests that the larger instances of pattern two are also more varied. The consequence is, that as similarity values are accumulated by the alignment algorithm, they stay lower due to constant penalties. Conversely, instances of pattern one have higher local similarity, leading to a better separation of patterns from lower scoring false positives, as penalty scores are fewer and further between. The similarity based approach can therefore also be used to make qualitative observations on sensor data, especially when using a denser sampling of MASS values, for added precision. Although this evaluation does not cover the alignment of entire day sequences with one another, together with the synthetic evaluation it gives a clear notion of the characteristics of our proposed alignment algorithm, when it is applied on context data. The main challenge to evaluating the algorithm on real data is that this evaluation cannot be done with objective measures, as the notion of what constitutes a “pattern” in context data is not universal, and determining whether an actual routine activity is taking place requires activity diary data in parallel to the data collection campaign, which is unrealistic at relevant scales. Therefore we limit our experimentation to these two aspects. 108Conclusions and Future Work The aim of this work is to determine whether it is possible to detect routine in the dayto-day lives of mobile phone users. We come to the conclusion, that indeed it is possible – if such routine elements are present. We consider this result an extension, refinement and affirmation of existing approaches that detect routine in context data, such as the works of Clarkson [2003] and Eagle and Pentland [2009]. Our results align themselves particularly well with Clarkson’s work, in that our approach uses high resolution data, but is only validated against a single person’s real world data. What we present is to be seen as a proof of concept, as it lacks additional evaluation against a broader dataset. Before we continue to discuss the advantages and limitations to our approach, we briefly resume our contribution and results. We presented in this work an alignment algorithm for sequences of context data, that has been derived from an existing two-dimensional alignment approach, but optimised to take advantage of the characteristics of the data and the desired results, to decrease total calculation time by several orders of magnitude in some cases. To achieve this increased performance, we took into account the structure of context data as a sequence of n-tuples, which allowed us to decrease the original alignment problem complexity by one dimension, and gave a theoretical speed-up of n. Additionally, we used an early discard approach to finding locally optimal alignments in the data, greatly increasing real-wold performance by reducing the amount of backtracking operations required for the dynamic programming algorithm. This algorithm is then evaluated against two types of datasets, one generated by a specially developed simulator, the other an annotated subset of data recorded during a collection campaign. The results on the former show that our approach works largely as expected, with a weakness when attempting to segment patterns that appear in the same 109sequential order in two different input files. On the real world dataset, we used a different evaluation approach to account for the difficulty of obtaining a ground truth reference. The algorithm was used to align known routines with sequences that contained the data of one day each. This result showed that the quality of the results depends directly on the choice of the minimal admissible similarity score, which needs to be optimised to within a small fraction of the ideal value, to obtain results that closely match one’s expectations. One of the main advantages of our approach, is that it can point out from a dataset some candidate intervals that should correspond to pairs of routine elements in context. Our evaluation on synthetic data shows that – if naively configured – the algorithm has a strong tendency to cover multiple patterns, if they appear in the same sequence. It is disputable whether this is always desirable – as it reduces the segmentation of the results – but it follows from our choice to search optimal alignments to reduce the overall number of patterns extracted. An example of where this could be problematic, is when a person frequently does two activities in sequence, but occasionally only one individually. Then – numerically – one routine activity happens more often than the other, but this is not reflected in the result: when aligning two samples that contain the sequence of pairs, the result is a single alignment, with no direct relation to other alignments comprising only one activity. Our real data evaluation was limited in that we only checked for a set of pre-determined patterns – primarily due to the challenge of manually determining a desirable evaluation target, without a specific target application. Nonetheless, we were able to display how the minimal accumulated similarity score is related to the results. Good accuracy can be expected, if one is capable of expressing one’s expectation of what constitutes an alignment in the terms of individual per-element similarity scores and lower accumulated similarity score limits. In the introduction, we listed a wide variety of applications. When comparing the breadth of requirements different applications may have with regards to models of activity routine with our algorithmic results, we realise that our approach is not an all-in one solution to providing a better understanding of context. This is mostly due to the genericness of our approach, linked with the lack of a common, inherent understanding of what truly makes up a routine activity. What we provide then, is primarily an exploratory tool, enabling domain experts – for example application developers – to gauge across large datasets where there is detectable routine in sensor logs and what the general characteristics of the present routine activities are. They can then iteratively adapt 110and parametrise our approach, until they can accurately express their notion of what makes up a routine activity within the design space the alignment paradigm provides. Other potential interest groups include the people generating the data themselves (as a means of introspection and reflection) and researchers in social sciences. Usage in the advertisement industry or intelligence field could also be imagined. Although such a usage entails some preparation of the context data, the process is relatively straightforward: the first step is synchronisation of the different context streams. Next, the data is discretised, which often requires some manual intervention, to estimate a good number of clusters in the data, or determine a set of criteria to evaluate a clustering result. Based on this step, the meta-data (in the form of substitution score tables) is generated. A statistical approach to this can be mostly automated, a semantic approach requires direct intervention, and may provide better results. In each case, subsequent refinements may be necessary, depending on the first alignment results which reveal some consistency characteristics of the data. This iterative approach can provide a flexible – but complex – tool to extract specifically the patterns a user is interested in. False positives are a frequent occurrence which may have to be rejected by hand. Considering the scale of the raw data, this reduction of the problem of finding routine is a significant step forward, even despite the setup complexity. We already touched upon three limitations: the iterative, supervised approach is not completely automatable; there may be unexpected alignments among the results, which are classified as false positives; alignments are always maximised and may not extract discrete smaller patterns. Additionally, there are some limitations on the algorithmic level. Currently, our algorithm produces results which are dependent on the order in which the sensor data is arranged; an artefact carried over from the algorithm upon which we developed our adapted approach. We are also faced with a similar “multilevel”-problematic as Clarkson encountered, in that a single accumulated similarity value may be insufficient to characterise all kinds of patterns as alignments. The value may for example be equal for a large alignment with some errors and a small perfect alignment – no qualitative information, besides the number of aligned symbols and maximum similarity score, is retained. The future work we suggest is threefold. Firstly, there are some ways of modifying the algorithm to improve results and enhance performance. Secondly, there are some means of evaluation that can still be explored to gain an even better understanding of how our approach interacts with context data. Finally, we point to some pre- and post-treatment methods that could render this approach more powerful and simpler to use. 111Although we did improve and adapt the algorithm to our use case from a time and space performance standpoint, a weakness still persists: the in-tuple order of elements remains a factor in the alignments found. Correcting this by calculating and memorising the order in which each tuple element is accessed would result in order-independent alignments, at the cost of increased time and space requirements. A possible solution to the issue of large patterns obscuring smaller ones, can be approached by performing a further pattern extraction step on the results of the first extraction, using a lower MASS. This should reveal whether smaller patterns are present within the larger ones. The algorithm can be parallelised in its implementation in many ways, which can provide great speed-ups. The one-dimensional string alignment approaches exist in versions optimised for stream processing, porting the ideas of these implementations to our methods could increase performance on specialised hardware, such as graphics processors and processors with streaming extensions. Ultimately, the memory limitation will persist. We currently lack evaluation of actual pattern extraction on real world data, due the reasons we stated earlier in this chapter. A possible way to evaluate our approach, as a decision aid, would be to undertake user studies, to see how potential users – interested in finding patterns in context data – would be able to parametrise a model that enables them to do just that. Furthermore, a comparative evaluation against the approach of Plantevit et al. [2010] would be of interest, to see how the ultimate parametrisation efforts compare, as well as to be able to judge the results against a similar approach. Lastly, evaluating the extraction performance against a dataset supported with diary entries would be able to provide further insights – but ultimately be limited by the flexible notion of what makes up a routine activity. Each test subject providing a diary may have a different notion of routine from the other test subjects, or the experimenter ultimately constructing a model, which can lead to data that is nearly impossible to correctly interpret. As a result, either a naive model would be used, with results probably similar to those we obtained on synthetic data, or a properly developed, supervised model, which would again only demonstrate how well the model can be parametrised to correspond to a consistent but arbitrary notion of routine. We have already proposed some pre-treatment methods, to obtain a model that is partly automatically generated from a corpus of known data. Using advanced clustering algorithms, and defining a set of heuristics for the permissible error rates for specific sensors, as well as filtering rules, would further simplify the pre-treatment. From a post- 112treatment perspective, it is interesting to reduce the vast amount of pairs of results into representatives of actual routine activities. This has been done in the work of Pauchet et al. [2013], using a clustering approach. This approach can be extended, by using a variation of Hirschberg’s algorithm [Hirschberg, 1975] to obtain a local cumulative edit distance function across the different aligned elements. This would allow us to cluster multiple inter-similar context episodes to clusters of routine contexts, while also finding similar subsegments. Alternatively, a global alignment can be used, if the further segmentation has already been performed separately. 113Bibliography Mohamed Abouelhoda and Moustafa Ghanem. String Mining in Bioinformatics. In Mohamed Medhat Gaber, editor, Scientific Data Mining and Knowledge Discovery: Principles and Foundations, pages 207–247. Springer Berlin Heidelberg, Berlin, Heidelberg, 2010. ISBN 978-3-642-02787-1. doi: 10.1007/978-3-642-02788-8. URL http://www.springerlink.com/index/10.1007/978-3-642-02788-8. Ramesh C. Agarwal, Charu C. Aggarwal, and V. V. V. Prasad. A Tree Projection Algorithm for Generation of Frequent Item Sets. Journal of Parallel and Distributed Computing, 61(3):350–371, March 2001. ISSN 0743-7315. doi: 10.1006/jpdc.2000.1693. URL http://www.sciencedirect.com/science/article/ pii/S0743731500916939. Rakesh Agrawal and Ramakrishnan Srikant. Fast Algorithms for Mining Association Rules. In Jorge B. Bocca, Matthias Jarke, and Carlo Zaniolo, editors, Int’l Conf. Very Large Databases (VLDB ’94), pages 487–499, Santiago de Chile, Chile, 1994. Morgan Kaufmann Publishers Inc. San Francisco, CA, USA. Rakesh Agrawal and Ramakrishnan Srikant. Mining sequential patterns. In Proceedings of the Eleventh International Conference on Data Engineering, pages 3–14. IEEE Comput. Soc. Press, 1995. ISBN 0-8186-6910-1. doi: 10.1109/ICDE.1995.380415. Rakesh Agrawal, Tomasz Imielinski, and Arun Swami. Mining association rules between sets of items in large databases. In Proceedings of the 1993 ACM SIGMOD international conference on Management of data, pages 207–216, Washington, D.C., 1993. ACM New York, NY, USA. Stephen F. Altschul and Bruce W Erickson. Optimal sequence alignment using af- 114fine gap costs. Bulletin of Mathematical Biology, 48(5-6):603–616, 1986. ISSN 0092- 8240. doi: 10.1016/S0092-8240(86)90010-8. URL http://www.sciencedirect.com/ science/article/pii/S0092824086900108. Stephen F. Altschul, Warren Gish, Webb Miller, Eugene W. Myers, and David J. Lipman. Basic local alignment search tool. Journal of Molecular Biology, 215:403–410, 1990. URL http://www.cmu.edu/bio/education/courses/03510/LectureNotes/ Altschul1990.pdf. Amihood Amir and Martin Farach. Efficient 2-dimensional approximate matching of non-rectangular figures. In SODA ’91 Proceedings of the second annual ACM-SIAM symposium on Discrete algorithms, number 908, pages 212–223. Society for Industrial and Applied Mathematics Philadelphia, PA, USA, 1991. URL http://dl.acm.org/ citation.cfm?id=127829. Sarabjot Singh Anand and Bamshad Mobasher. Contextual Recommendation. In Bettina Berendt, Andreas Hotho, Dunja Mladenic, and Giovanni Semeraro, editors, From Web to Social Web Discovering and Deploying User and Content Profiles, volume 4737 of Lecture Notes in Computer Science, chapter 8, pages 142–160. Springer Berlin Heidelberg, 2007. ISBN 9783540749509. doi: 10.1007/978-3-540-74951-6 8. URL http://www.springerlink.com/content/r28874294253q051. Alberto Apostolico, Laxmi Parida, and Simona E. Rombo. Motif patterns in 2D. Theoretical Computer Science, 390(1):40–55, January 2008. ISSN 0304-3975. URL http://www.sciencedirect.com/science/article/pii/S0304397507007645. Daniel Ashbrook and Thad Starner. Learning significant locations and predicting user movement with GPS. In Proceedings of the 6th IEEE International Symposium on Wearable Computers, pages 101–108, Seattle, WA, USA, 2002. IEEE Computer Society, Washington, DC, USA. ISBN 0-7695-1816-8. doi: 10.1109/ISWC. 2002.1167224. URL http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm? arnumber=1167224. Jay Ayres, Jason Flannick, Johannes Gehrke, and Tomi Yiu. Sequential Pattern mining using a bitmap representation. In Proceedings of the eighth ACM SIGKDD international conference on Knowledge discovery and data mining - KDD ’02, page 429, New York, New York, USA, 2002. ACM Press. ISBN 158113567X. doi: 10.1145/775107. 775109. URL http://portal.acm.org/citation.cfm?doid=775047.775109. 115Ricardo A. Baeza-Yates and Gonzalo Navarro. Fast two-dimensional approximate pattern matching. In Claudio L. Lucchsei and Arnaldo V. Moura, editors, LATIN’98 Proceedings of the Third Latin American Symposium on Theoretical Informatics, pages 341–351, Campinas, Brazil, 1998. Springer-Verlag London, UK. URL http: //link.springer.com/chapter/10.1007/BFb0054334. Brenda S. Baker. A program for identifying duplicated code. In Computing Science and Statistics, pages 24:49–57, College Station, TX, USA, 1992. Theodore P. Baker. A Technique for Extending Rapid Exact-Match String Matching to Arrays of More than One Dimension. SIAM Journal on Computing, 7(4):533–541, November 1978. ISSN 0097-5397. doi: 10.1137/0207043. URL http://dx.doi.org/ 10.1137/0207043. Matthias Baldauf, Schahram Dustdar, and Florian Rosenberg. A survey on contextaware systems. International Journal of Ad Hoc and Ubiquitous Computing, 2(4): 263–277, 2007. Leonard E. Baum, Ted Petrie, George Soules, and Norman Weiss. A maximization technique occurring in the statistical analysis of probabilistic functions of Markov chains. The annals of mathematical statistics, 41(1):164–171, 1970. Victoria Bellotti, Bo Begole, Ed H. Chi, Nicolas Ducheneaut, Ji Fang, Ellen Isaacs, Tracy King, Mark W. Newman, Kurt Partridge, Bob Price, Paul Rasmussen, Michael Roberts, Diane J. Schiano, and Alan Walendowski. Activity-based serendipitous recommendations with the Magitti mobile leisure guide. In Proceeding of the twenty-sixth annual SIGCHI conference on Human factors in computing systems, pages 1157–1166, New York, NY, USA, 2008. ACM. ISBN 9781605580111. doi: 10.1145/1357054.1357237. Martin Berchtold, Matthias Budde, Hedda R. Schmidtke, and Michael Beigl. An extensible modular recognition concept that makes activity recognition practical. In R¨udiger Dillmann, J¨urgen Beyerer, Uwe Hanebeck, and Tanja Schultz, editors, Proceedings of the 33rd annual German conference on Advances in artificial intelligence, pages 400– 409. Springer-Verlag Berlin, Heidelberg, 2010. ISBN 3-642-16110-3 978-3-642-16110-0. doi: 10.1007/978-3-642-16111-7 46. Kevin Beyer and Raghu Ramakrishnan. Bottom-up computation of sparse and Iceberg CUBEs. In SIGMOD ’99 Proceedings of the 1999 ACM SIGMOD international con- 116ference on Management of data, pages 359–370, Philadelphia, PA, 1999. ACM New York, NY, USA. V Boonjing and P Songram. Efficient Algorithms for Mining Closed Multidimensional Sequential Patterns, 2007. A. J. Bernheim Brush, Amy K. Karlson, James Scott, Raman Sarin, Andy Jacobs, Barry Bond, Oscar Murillo, Galen Hunt, Mike Sinclair, Kerry Hammil, and Steven Levi. User experiences with activity-based navigation on mobile devices. In Proceedings of the 12th international conference on Human computer interaction with mobile devices and services, pages 73–82, 2010. doi: 10.1145/1851600.1851616. URL http://portal. acm.org/citation.cfm?id=1851616. Matthew Chalmers. A Historical View of Context. Computer Supported Cooperative Work (CSCW), 13(3-4):223–247, August 2004. ISSN 0925-9724. doi: 10.1007/s10606-004-2802-8. URL http://www.springerlink.com/index/10.1007/ s10606-004-2802-8. Tanzeem Choudhury, Gaetano Borriello, Sunny Consolvo, Dirk Haehnel, Beverly Harrison, Bruce Hemingway, Jeffrey Hightower, Predrag ”Pedja” Klasnja, Karl Koscher, Anthony Lamarca, James A. Landay, Louis LeGrand, Jonathan Lester, Ali Rahimi, Adam Rea, and Denny Wyatt. The mobile sensing platform: An embedded activity recognition system. Pervasive Computing, 7(2):32–41, 2008. Brian Clarkson and Alex (Sandy) Pentland. Unsupervised clustering of ambulatory audio and video. In Proceedings of the 1999 International Conference on Acoustics, Speech, and Signal Processing, pages 3037–3040 vol. 6, Phoenix, Arizona, United States, 1999. IEEE. doi: 10.1109/ICASSP.1999.757481. URL http://ieeexplore. ieee.org/xpls/abs_all.jsp?arnumber=757481. Brian Patrick Clarkson. Life Patterns : structure from wearable sensors. PhD thesis, MIT, 2003. Diane J. Cook, Michael Youngblood, Edwin O. Heierman, Karthik Gopalratnam, Sira Rao, Andrey Litvin, and Farhan Khawaja. MavHome : An Agent-Based Smart Home. In Proceedings of the First IEEE International Conference on Pervasive Computing and Communications (PerCom 2003), pages 521–5244, Fort Worth, TX, 2003. IEEE. ISBN 0769518931. Brian A. Davey and Hilary A. Priestley. Introduction to Lattices and Order (2. ed.). Cambridge University Press, 2002. ISBN 978-0-521-78451-1. 117Pedro Domingos and Geoff Hulten. Mining high-speed data streams. In Proceedings of the sixth ACM SIGKDD international conference on Knowledge discovery and data mining, KDD ’00, pages 71–80, New York, NY, USA, 2000. ACM. ISBN 1-58113-233-6. doi: 10.1145/347090.347107. URL http://doi.acm.org/10.1145/347090.347107. Paul Dourish. What we talk about when we talk about context. Personal and Ubiquitous Computing, 8(1):19–30, February 2004. ISSN 1617-4909. doi: 10.1007/s00779-003-0253-8. URL http://www.springerlink.com/openurl.asp? genre=article&id=doi:10.1007/s00779-003-0253-8. Nathan Eagle and Alex (Sandy) Pentland. Reality mining: sensing complex social systems. Personal and Ubiquitous Computing, 10(4):255–268, November 2005. ISSN 1617-4909. doi: 10.1007/s00779-005-0046-3. URL http://link.springer.com/10. 1007/s00779-005-0046-3. Nathan Eagle and Alex (Sandy) Pentland. Eigenbehaviors: identifying structure in routine. Behavioral Ecology and Sociobiology, 63(7):1057–1066, April 2009. ISSN 0340-5443. doi: 10.1007/s00265-009-0739-0. URL http://www.springerlink.com/ index/10.1007/s00265-009-0739-0. Vincent Etter, Mohamed Kafsi, and Ehzan Kazemi. Been There, Done That : What Your Mobility Traces Reveal about Your Behavior. In Nokia Mobile Data Challenge - Next Place Prediction, 2012. Simone Faro and Thierry Lecroq. The Exact Online String Matching Problem : a Review of the Most Recent Results. ACM Computing Surveys (CSUR), 45(2):Article No. 13, 2013. doi: 10.1145/0000000.0000000. Huiji Gao, Jiliang Tang, and Huan Liu. Mobile Location Prediction in Spatio-Temporal Context. In Nokia Mobile Data Challenge - Next Place Prediction, number 2, 2012. Fosca Giannotti, Mirco Nanni, and Dino Pedreschi. Efficient mining of temporally annotated sequences. In In Proc. SDM’06, pages 348–359, 2006. Fosca Giannotti, Mirco Nanni, Dino Pedreschi, and Fabio Pinelli. Trajectory pattern mining. In Proceedings of the International Conference on Knowledge Discovery and Data Mining (KDD), pages 330–339, San Jose, CA, 2007. ISBN 9781595936097. Marta C. Gonzalez, Cesar A. Hidalgo, and Albert-Laszlo Barabasi. Understanding individual human mobility patterns. Nature, 453(7196):779–782, June 2008. ISSN 0028- 0836. 118G¨osta Grahne and Jianfei Zhu. Efficiently Using Prefix-trees in Mining Frequent Itemsets. In Proceedings of the ICDM’03 international workshop on requent itemset mining implementations (FIMI ’03), volume 15, pages 123–132, Melbourne, FL, 2003. URL http://ftp.informatik.rwth-aachen.de/Publications/CEUR-WS/ Vol-90/grahne.pdf. M A Hall. Correlation-based feature selection for machine learning. PhD thesis, The University of Waikato, 1999. Mark Hall, Eibe Frank, Geoffrey Hilmes, Bernhard Pfahringer, Peter Reutemann, and Ian H Witten. The WEKA Data Mining Software: An Update. SIGKDD Explorations, 11(1), 2009. Jiawei Han and Yongjian Fu. Discovery of multiple-level association rules from large databases. In Proceeding of the 21st international conference on very large data bases (VLDB’95), pages 420–431, Zurich, Switzerland, 1995. Jiawei Han, Jian Pei, Behzad Mortazavi-Asl, Qiming Chen, Umeshwar Dayal, and MeiChun Hsu. FreeSpan: frequent pattern-projected sequential pattern mining. In KDD ’00 Proceedings of the sixth ACM SIGKDD international conference on Knowledge discovery and data mining, pages 355–259. ACM New York, NY, USA, 2000a. Jiawei Han, Jian Pei, and Yiwen Yin. Mining frequent patterns without candidate generation. In SIGMOD ’00 Proceedings of the 2000 ACM SIGMOD international conference on Management of data, pages 1–12, Dallas, TX, 2000b. ISBN 1581132182. doi: 10.1145/335191.335372. Jiawei Han, Micheline Kamber, and Jian Pei. Data mining: concepts and techniques. Morgan kaufmann, 2006. ISBN 0080475582. Jiawei Han, Hong Cheng, Dong Xin, and Xifeng Yan. Frequent pattern mining: current status and future directions. Data Mining and Knowledge Discovery, 15(1):55–86, January 2007. ISSN 1384-5810. doi: 10.1007/s10618-006-0059-1. URL http://link. springer.com/10.1007/s10618-006-0059-1. Martin Heidegger. Sein und Zeit. Max Niemayer Verlag, T¨ubingen, 10 (1963) edition, 1927. Steven Henikoff and Jorja G. Henikoff. Amino acid substitution matrices from protein blocks. Proceedings of the National Academy of Sciences of the United States of America, 89(22):10915–10919, November 1992. ISSN 0027-8424. 119Johan Himberg, Kalle Korpiaho, Heikki Mannila, Johanna Tikanm¨aki, and Hannu T. T. Toivonen. Time series segmentation for context recognition in mobile devices. In Proceedings 2001 IEEE International Conference on Data Mining, volume c, pages 203–210. IEEE Comput. Soc, 2001. ISBN 0-7695-1119-8. doi: 10.1109/ICDM. 2001.989520. URL http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm? arnumber=989520. Daniel S. Hirschberg. A Linear Space Algorithm for Computing Maximal Common Subsequences. Communications of the ACM, 18(6):341–343, 1975. Wassily Hoeffding. Probability Inequalities for Sums of Bounded Random Variables. Journal of the American Statistical Association, 58(301):13–30, March 1963. ISSN 0162-1459. doi: 10.1080/01621459.1963.10500830. URL http://amstat. tandfonline.com/doi/abs/10.1080/01621459.1963.10500830. Geoffrey Holmes, Bernhard Pfahringer, Richard Kirkby, Eibe Frank, and Mark Hall. Multiclass alternating decision trees. In ECML, pages 161–172. Springer, 2001. Geoffrey Holmes, Bernhard Pfahringer, Richard Kirkby, Eibe Frank, and Mark Hall. Multiclass Alternating Decision Trees. In Proceedings of the 13th European Conference on Machine Learning, ECML ’02, pages 161–172, London, UK, UK, 2002. SpringerVerlag. ISBN 3-540-44036-4. URL http://dl.acm.org/citation.cfm?id=645329. 650070. George H. John and Pat Langley. Estimating Continuous Distributions in Bayesian Classifiers. In Eleventh Conference on Uncertainty in Artificial Intelligence, pages 338–345, San Mateo, 1995. Morgan Kaufmann. Juyoung Kang and Hwan-Seung Yong. Mining spatio-temporal patterns in trajectory data. Journal of Information Processing Systems, 6(4):521–536, 2010. Tuula K¨arkk¨ainen, Tuomas Vaittinen, and Kaisa V¨a¨an¨anen-Vainio-Mattila. I Don’t Mind Being Logged, but Want to Remain in Control: A Field Study of Mobile Activity and Context Logging. In Proceedings of the 28th international conference on Human factors in computing systems - CHI ’10, pages 163–172, Atlanta, GA, USA, 2010. ACM New York, NY, USA. ISBN 9781605589299. Richard M Karp and M O Rabin. Efficient randomized pattern-matching algorithms, 1987. 120Dimitrios Katsaros and Yannis Manolopoulos. A Suffix Tree Based Prediction Scheme for Pervasive Computing Environments. In Panayiotis Bozanis and Elias N. Houstis, editors, 10th Panhellenic Conference on Informatics, PCI 2005, pages 267–277, Volos, Greece, 2005. Dimitrios Katsaros, Alexandros Nanopoulos, Murat Karakaya, Gokhan Yavas, Ozg ur Ulusoy, and Yannis Manolopoulos. Clustering mobile trajectories for resource allocation in mobile environments. In Proceedings of the 5th International Symposium on Intelligent Data Analysis, IDA 2003, number 102, pages 319–329, Berlin, Germany, 2003. Springer Berlin Heidelberg. Eamonn Keogh, Jessica Lin, and Wagner Truppel. Clustering of time-series subsequences is meaningless: implications for previous and future research. In Proceedings of the Third IEEE International Conference on Data Mining (ICDM’03), pages 115–122, 2003. ISBN 0769519784. Niko Kiukkonen, Jan Blom, Olivier Dousse, Daniel Gatica-Perez, and Juha K. Laurila. Towards rich mobile phone datasets: Lausanne data collection campaign. In Proceedings of ACM international conference on pervasive services (ICPS), Berlin, 2010. Donald E. Knuth, James H. Morris, Jr, and Vaughan R. Pratt. Fast pattern matching in strings. SIAM journal on computing, 6(2):323–350, 1977. URL http://epubs.siam. org/doi/abs/10.1137/0206024. David Kotz and Kobby Essien. Analysis of a campus-wide wireless network. Wireless Networks, 11(1-2):115–133, 2005. ISSN 1022-0038. Kamala Krithivasan and R Sitalakshmi. Efficient two-dimensional pattern matching in the presence of errors. Information Sciences, 43(3):169–184, December 1987. ISSN 0020-0255. doi: 10.1016/0020-0255(87)90037-5. URL http://www.sciencedirect. com/science/article/pii/0020025587900375. Hye-Chun Kum, Jian Pei, Wei Wang, and Dean Duncan. ApproxMAP: Approximate mining of consensus sequential patterns. In Third SIAM International Conference on Data Mining (SIAM-DM), pages 311–315, San Francisco, CA, 2003. Kari Laasonen. Clustering and prediction of mobile user routes from cellular data. In Knowledge Discovery in Databases: PKDD 2005, pages 569–576, Porto, Portugal, 2005. 121Philip Laird. Identifying and using patterns in sequential data. In KlausP. Jantke, Shigenobu Kobayashi, Etsuji Tomita, and Takashi Yokomori, editors, Algorithmic Learning Theory SE - 1, volume 744 of Lecture Notes in Computer Science, pages 1–18. Springer Berlin Heidelberg, 1993. ISBN 978-3-540-57370-8. doi: 10.1007/ 3-540-57370-4 33. Juha K. Laurila, Daniel Gatica-Perez, Imad Aad, Jan Blom, Olivier Bornet, TrinhMinh-Tri Do, Olivier Dousse, Julien Eberle, and Markus Miettinen. The mobile data challenge: Big data for mobile computing research. In Mobile Data Challenge by Nokia Workshop in Conjunction with Int. Conf. on Pervasive Computing, Newcastle, UK, 2012. Thierry Lecroq, Alexandre Pauchet, Emilie Chanoni, and Gerardo Solano Ayala. Pattern ´ discovery in annotated dialogues using dynamic programming. International Journal of Intelligent Information and Database Systems, 6(6):603–618, 2012. Philip I. S. Lei and Angus K. Y. Wong. The Multiple-Touch User Interface Revolution. IT Professional, 11(February):42–49, 2009. Jonathan Lester, Tanzeem Choudhury, and Gaetano Borriello. A practical approach to recognizing physical activities. Pervasive Computing, pages 1–16, 2006. doi: 10.1.1. 138.6972. Chao Li and Katharine Willis. Modeling context aware interaction for wayfinding using mobile devices. In Proceedings of the 8th conference on Human-computer interaction with mobile devices and services - MobileHCI ’06, page 97, New York, New York, USA, 2006. ACM. ISBN 1595933905. doi: 10.1145/1152215.1152235. URL http: //portal.acm.org/citation.cfm?doid=1152215.1152235. David J. Lipman and William R. Pearson. Rapid and sensitive protein similarity searches. Science, 227(4693):1435–1441, March 1985. doi: 10.1126/science.2983426. URL http://www.sciencemag.org/content/227/4693/1435.abstract. H Liu and R Setiono. A probabilistic approach to feature selection - A filter solution. In 13th International Conference on Machine Learning, pages 319–327, 1996. Nizar R. Mabroukeh and C. I. Ezeife. A taxonomy of sequential pattern mining algorithms. ACM Computing Surveys, 43(1):3:1–3:41, November 2010. ISSN 03600300. doi: 10.1145/1824795.1824798. URL http://portal.acm.org/citation.cfm?doid= 1824795.1824798. 122Heikki Mannila, Hannu Toivonen, and A. Inkeri Verkamo. Efficient Algorithms for Discovering Association Rules. In AAAI Workshop on Knowledge Discovery in Databases (KDD-94), number July, pages 181–192. AAAI Press, 1994. Jani M¨antyj¨arvi, Johan Himberg, Petri Kangas, Urpo Tuomela, and Pertti Huuskonen. Sensor Signal Data Set for Exploring Context Recognition of Mobile Devices. In Workshop ”Benchmarks and a database for context recognition” in conjuction with the 2nd Int. Conf. on Pervasive Computing (PERVASIVE 2004), Linz/Vienna, Austria, 2004. Edward M. McCreight. A space-economical suffix tree construction algorithm. Journal of the ACM (JACM), 23(2):262–272, 1976. URL http://dl.acm.org/citation.cfm? id=321946. Carl H. Mooney and John F. Roddick. Sequential Pattern Mining - Approaches and Algorithms. ACM Computing Surveys (CSUR), 45(2):19:1–19:39, 2013. doi: 10.1145/ 2431211.2431218. Cory S. Myers and Lawrence R. Rabiner. A Comparative Study of Several Dynamic Time-Warping Algorithms for Connected-Word. Bell System Technical Journal, 60 (7):1389–1409, 1981. Eugene W. Myers and Webb Miller. Optimal alignments in linear space. Computer applications in the biosciences : CABIOS, 4(1):11–17, March 1988. doi: 10. 1093/bioinformatics/4.1.11. URL http://bioinformatics.oxfordjournals.org/ content/4/1/11.abstract. Mirco Nanni, Roberto Trasarti, Chiara Renso, Fosca Giannotti, and Dino Pedreschi. Advanced Knowledge Discovery on Movement Data with the GeoPKDD system. In Proceedings of the 13th International Conference on Extending Database Technology EDBT ’10, pages 693–696. ACM New York, NY, USA, 2010. ISBN 9781605589459. Gonzalo Navarro. A guided tour to approximate string matching. ACM Computing Surveys, 33(1):31–88, March 2001. ISSN 03600300. doi: 10.1145/375360.375365. URL http://portal.acm.org/citation.cfm?doid=375360.375365. Saul B. Needleman and Christian D. Wunsch. A general method applicable to the search for similarities in the amino acid sequence of two proteins. Journal of molecular biology, 48(3):443–453, 1970. 123Kurt Partridge and Bob Price. Enhancing Mobile Recommender Systems with Activity Inference. User Modeling, Adaptation, and Personalization, pages 307–318, 2009. Nicolas Pasquier, Yves Bastide, Rafik Taouil, and Lotfi Lakhal. Discovering Frequent Closed Itemsets for Association Rules. In Catriel Beeri and Peter Buneman, editors, Database Theory – ICDT ’99 SE - 25, volume 1540 of Lecture Notes in Computer Science, pages 398–416. Springer Berlin Heidelberg, 1999. ISBN 978-3-540-65452-0. doi: 10.1007/3-540-49257-7\ 25. URL http://dx.doi.org/10.1007/3-540-49257-7_25. Alexandre Pauchet, Abed Mohamad El, Tayeb Merabti, Elise Prieur, Thierry Lecroq, ´ and St´efan Darmoni. Identification de r´ep´etitions dans les navigations au sein d’un catalogue de sant´e. Revue d Intelligence Artificielle, 23(1):113–132, 2009. URL http: //hal.archives-ouvertes.fr/hal-00450114. Alexandre Pauchet, Fran¸cois Rioult, Emilie Chanoni, Zacharie Ales, and Ovidiou Serban. ´ Advances on Dialogue Modelling Interactive Narration Requires Prominent Interaction and Emotion. In International Conference on Agents and Artificial Intelligence, pages 527–530, Barcelona, Spain, 2013. Jian Pei, Jiawei Han, Behzad Mortazavi-asl, and Hua Zhu. Mining Access Patterns Ef- ficiently from Web Logs. In Proceedings of the 4th Pacific-Asia Conference on Knowledge Discovery and Data Mining, PAKDD 2000, volume 0, pages 396–407, Kyoto, Japan, 2000. Springer Berlin Heidelberg. Jian Pei, Jiawei Han, Behzad Mortazavi-Asl, Helen Pinto, Qiming Chen, Umeshwar Dayal, and Mei-Chun Hsu. Prefixspan: Mining sequential patterns efficiently by prefixprojected pattern growth. In Proceeding of the 2001 international conference on data engineering (ICDE’01), pages 215–224, Heidelberg, Germany, 2001. Jian Pei, Jiawei Han, Behzad Mortazavi-Asl, Jianyong Wang, Helen Pinto, Qiming Chen, Umeshwar Dayal, and Mei-Chun Hsu. Mining Sequential Patterns by Pattern-Growth : The PrefixSpan Approach. IEEE Transactions on Knowledge and Data Engineering, 16(10):1424–1440, 2004. Dan Pelleg and Andrew Moore. X-means: Extending k-means with efficient estimation of the number of clusters. In Proceedings of the Seventeenth International Conference on Machine Learning, pages 727–734, 2000. Helen Pinto, Jiawei Han, Jian Pei, Ke Wang, Qiming Chen, and Umeshwar Dayal. Multi-dimensional sequential pattern mining. In Proceedings of the tenth international 124conference on Information and knowledge management - CIKM’01, pages 81–88, New York, New York, USA, 2001. ACM. ISBN 1581134363. doi: 10.1145/502598.502600. James Pitkow and Peter Pirolli. Mining longest repeating subsequences to predict world wide web surfing. In Proceedings of USITS ’99: The 2nd USENIX Symposium on Internet Technologies & Systems, pages 139–150, 1999. Marc Plantevit, Anne Laurent, Dominique Laurent, Maguelonne Teisseire, and Yeow Wei Choong. Mining multidimensional and multilevel sequential patterns. ACM Transactions on Knowledge Discovery from Data, 4:4:0–4:37, 2010. doi: 10.1145/1644873. 1644877. URL http://dl.acm.org/citation.cfm?id=1644877. John C. Platt. Advances in kernel methods. chapter Fast train, pages 185–208. MIT Press, Cambridge, MA, USA, 1999. ISBN 0-262-19416-3. URL http://dl.acm.org/ citation.cfm?id=299094.299105. Mika Raento. Mobile communication and context dataset. In Proceedings of the Workshop towards Benchmarks and a Database for Context Recognition, International Conference on Pervasive Computing, Vienna, Austria, 2004. Mika Raento, Antti Oulasvirta, Renaud Petit, and Hannu Toivonen. ContextPhone: A Prototyping Platform for Context-Aware Mobile Applications. IEEE Pervasive Computing, 4(2):51–59, 2005. ISSN 1536-1268. doi: 10.1109/MPRV.2005.29. Sherif Rashad, Mehmed Kantardzic, and Anup Kumar. PAC-WHN: Predictive Admission Control for Wireless Heterogeneous Networks. In 2007 IEEE Symposium on Computers and Communications, pages 139–144. Ieee, July 2007a. ISBN 978-1- 4244-1520-5. doi: 10.1109/ISCC.2007.4381633. URL http://ieeexplore.ieee.org/ lpdocs/epic03/wrapper.htm?arnumber=4381633. Sherif Rashad, Mehmed Kantardzic, and Anup Kumar. MSP-CACRR: Multidimensional Sequential Patterns Based Call Admission Control and Resource Reservation for Next-Generation Wireless Cellular Networks. 2007 IEEE Symposium on Computational Intelligence and Data Mining, (Cidm):552–559, 2007b. doi: 10.1109/ CIDM.2007.368924. URL http://ieeexplore.ieee.org/lpdocs/epic03/wrapper. htm?arnumber=4221348. Simona E. Rombo. Optimal extraction of motif patterns in 2D. Information Processing Letters, 109(17):1015–1020, August 2009. ISSN 0020-0190. URL http: //www.sciencedirect.com/science/article/pii/S0020019009001926. 125D Sankoff. Matching sequences under deletion-insertion constraints. Proceedings of the National Academy of Sciences of the United States of America, 69(1):4–6, January 1972. ISSN 0027-8424. URL http://www.pubmedcentral.nih.gov/articlerender. fcgi?artid=427531&tool=pmcentrez&rendertype=abstract. Albrecht Schmidt, Michael Beigl, and Hans-W. Gellersen. There is more to context than location. Computers & Graphics, 23(6):893–901, December 1999. doi: 10.1016/ S0097-8493(99)00120-X. Stephan Sigg, Sandra Haseloff, and Klaus David. An Alignment Approach for Context Prediction Tasks in UbiComp Environments. IEEE Pervasive Computing, 9(4):90– 97, 2010. ISSN 1536-1268. doi: 10.1109/MPRV.2010.23. URL http://ieeexplore. ieee.org/lpdocs/epic03/wrapper.htm?arnumber=5406495. Temple F. Smith and Michael S. Waterman. Identification of common molecular subsequences. Journal of Molecular Biology, 147(1):195–197, 1981. ISSN 0022-2836. Libo Song, David Kotz, Ravi Jain, and Xiaoning He. Evaluating location predictors with extensive Wi-Fi mobility data. In INFOCOM 2004. Twenty-third AnnualJoint Conference of the IEEE Computer and Communications Societies, volume 00, pages 1414–1424 vol. 2, Hong Kong, China, 2004. ISBN 0780383567. P. Songram, V. Boonjing, and S. Intakosum. Closed Multidimensional Sequential Pattern Mining. In Third International Conference on Information Technology: New Generations (ITNG’06), pages 512–517, Las Vegas, NV, USA, 2006. Ieee. ISBN 0-7695- 2497-4. doi: 10.1109/ITNG.2006.41. URL http://ieeexplore.ieee.org/lpdocs/ epic03/wrapper.htm?arnumber=1611644. Ramakrishnan Srikant and Rakesh Agrawal. Mining generalized association rules. In Proceeding of the 21st international conference on very large data bases (VLDB’95), pages 407–419, Zurich, Switzerland, 1995. Ramakrishnan Srikant and Rakesh Agrawal. Mining sequential patterns: Generalizations and performance improvements. In EDBT’96 Proceeding of the 5th international conference on extending database technology: Advances in Database Technology, pages 3–17, Avignon, France, 1996. Springer-Verlag London, UK. Mark P. Styczynski, Kyle L. Jensen, Isidore Rigoutsos, and Gregory Stephanopoulos. BLOSUM62 miscalculations improve search performance. Nat Biotech, 26(3):274–275, March 2008. ISSN 1087-0156. doi: 10.1038/nbt0308-274. 126Christian Voigtmann, Klaus David, Hendrik Skistims, and Alexander Roßnagel. Legal assessment of context prediction techniques. 2012 IEEE Vehicular Technology Conference (VTC Fall), pages 1–5, September 2012. doi: 10.1109/VTCFall. 2012.6399381. URL http://ieeexplore.ieee.org/lpdocs/epic03/wrapper.htm? arnumber=6399381. Jianyong Wang and Jiawei Han. BIDE: efficient mining of frequent closed sequences. In Proceedings of the 20th International Conference on Data Engineering, 2004., pages 79–90, 2004. ISBN 1063-6382 VO -. doi: 10.1109/ICDE.2004.1319986. Jingjing Wang and Bhaskar Prabhala. Periodicity Based Next Place Prediction. In Nokia Mobile Data Challenge - Next Place Prediction, 2012. Wei Wang, Jiong Yang, and Philip S. Yu. Mining patterns in long sequential data with noise. ACM SIGKDD Explorations Newsletter, 2(2):28–33, December 2000. ISSN 19310145. doi: 10.1145/380995.381008. URL http://portal.acm.org/citation. cfm?doid=380995.381008. Janet L. Wesson, Akash Singh, and Bradley van Tonder. Can Adaptive Interfaces Improve the Usability of Mobile Applications? Human-Computer Interaction, pages 187–198, 2010. Xifeng Yan, Jiawei Han, and Ramin Afshar. CloSpan: Mining closed sequential patterns in large datasets. In Proc. 2003 SIAM Int’l Conf. Data Mining (SDM’03), pages 166–177, 2003. Guizhen Yang. The complexity of mining maximal frequent itemsets and maximal frequent patterns. In Proceedings of the tenth ACM SIGKDD international conference on Knowledge discovery and data mining, KDD ’04, pages 344–353, New York, NY, USA, 2004. ACM. ISBN 1-58113-888-1. doi: 10.1145/1014052.1014091. URL http://doi.acm.org/10.1145/1014052.1014091. Jiong Yang, Wei Wang, Philip S. Yu, and Jiawei Han. Mining long sequential patterns in a noisy environment. Proceedings of the 2002 ACM SIGMOD international conference on Management of data - SIGMOD ’02, 4(d):406, 2002. doi: 10.1145/564736.564738. URL http://portal.acm.org/citation.cfm?doid=564691.564738. Zhenglu Yang and Masaru Kitsuregawa. LAPIN-SPAM: An Improved Algorithm for Mining Sequential Pattern. In 21st International Conference on Data Engineering Workshops (ICDEW’05), pages 1222–1222. Ieee, 2005. ISBN 0-7695-2657-8. 127doi: 10.1109/ICDE.2005.235. URL http://ieeexplore.ieee.org/lpdocs/epic03/ wrapper.htm?arnumber=1647839. Zhenglu Yang, Yitong Wang, and M Kitsuregawa. LAPIN: effective sequential pattern mining algorithms by last position induction for dense databases. In R. Kotagirim, P. R. Krishna, M. Mohania, and E. Nantajeewarawat, editors, 12th International Conference on Database Systems for Advanced Applications, DASFAA 2007, volume 1, pages 1020–1023, Bangkok, Thailand, 2007. Springer Berlin Heidelberg. URL http: //link.springer.com/chapter/10.1007/978-3-540-71703-4_95. Mariko Yoshida, Tetsuya Iizuka, Hisako Shiohara, and Masanori Ishiguro. Mining sequential patterns including time intervals. volume 4057, pages 213–220, 2000. URL http://dx.doi.org/10.1117/12.381735. Mohammed J. Zaki. Efficient enumeration of frequent sequences. In Proceedings of the seventh international conference on Information and knowledge management, pages 68–75. ACM, 1998. URL http://dl.acm.org/citation.cfm?id=288643. Mohammed J. Zaki. Scalable algorithms for association mining. IEEE Transactions on Knowledge and Data Engineering, 12(3):372–390, 2000. URL http://ieeexplore. ieee.org/xpls/abs_all.jsp?arnumber=846291. Mohammed J. Zaki. SPADE: An Efficient Algorithm for Mining Frequent Sequences. Machine Learning, 42(1-2):31–60, 2001. ISSN 0885-6125. doi: 10.1023/A:1007652502315. URL http://dx.doi.org/10.1023/A:1007652502315. Qiankun Zhao and Sourav S. Bhowmick. Sequential pattern mining: A survey. Technical Report 2003118, CAIS Nayang Technological University Singapore, 2003. URL http: //www.textedu.ru/tw_files2/urls_6/147/d-146938/7z-docs/5.pdf. Zhou Zhao, Da Yan, and Wilfred Ng. Mining Probabilistically Frequent Sequential Patterns in Large Uncertain Databases. IEEE Transactions on Knowledge and Data Engineering, 99(PrePrints):1, July 2013. ISSN 1041-4347. doi: 10.1109/TKDE.2013. 124. URL http://doi.ieeecomputersociety.org/10.1109/TKDE.2013.124. Yu Zheng, Lizhu Zhang, Zhengxin Ma, Xing Xie, and Wei-Ying Ma. Recommending friends and locations based on individual location history. ACM Transactions on the Web, 5(1):1–44, February 2011. ISSN 15591131. doi: 10.1145/1921591.1921596. URL http://portal.acm.org/citation.cfm?doid=1921591.1921596. 128Rui Feng Zhu and Tadao Takaoka. A technique for two-dimensional pattern matching. Communications of the ACM, 32(9):1110–1120, 1989. URL http://dl.acm.org/ citation.cfm?id=66459. Jacob Ziv and Abraham Lempel. Compression of individual sequences via variablerate coding. Information Theory, IEEE Transactions on, 24(5):530–536, 1978. ISSN 0018-9448. 129Benchmarks of Supervised Classification Algorithms for Next Place Prediction A.1 The Next Place Prediction Problem This annex illustrates our efforts undertaken in the context of the Nokia Mobile Data Challenge (MDC, Laurila et al. [2012]) task 2 “Next Place Prediction”. Our aim is to assess the performance of some well explored statistical algorithms chosen according to our expectations of their suitability, as well as classic “benchmark” approaches. This allows the selection of the most accurate algorithm for the prediction task, and a general judgement on the suitability of the approaches for this task. A step of pre-treatment of the MDC dataset is required to generate a subset of data that is suitable for training a statistical model using the algorithms explored. This treatment consists of a combination of two global – being applied equally to all users – filters, the first of which is an a priori “2D” feature selection, and the second a projection of these values into a 1D feature vector. Subsequently two statistical methods of feature selection are evaluated on this vector on per user basis. This pre-processing step is documented in the second section. The third section contains a brief presentation of the algorithms examined and their respective evaluation results. The final section summarizes the results and contains our conclusions. A.2 Dataset Analysis The MDC dataset [Laurila et al., 2012] is highly heterogeneous in nature. This stems both from the peculiarities of the group providing the data, and from the challenges of leading a large scale acquisition campaign. The most obvious heterogeneity lies in the 130difference of sizes of the per-user data sets: around 620 MB±320 MB in human readable, tabulator separated value format. Additionally, different users have made different use of the phone capabilities, leading to different distributions of useful data, e.g. some users not using the calendar functionality of their phone, and others using it extensively. The size of the dataset is also an important quantity: the “width” – i.e. the number of different data sources – is large (around 75 features), but the actual number of training cases (per individual) for the next place prediction task is fairly small (between 100 and 1500). This means that statistical analysis is more likely to be influenced by outliers, potentially leading to inadvertent overfitting of models and in general a higher error for the smaller sub-datasets. The data itself can also be unreliable: there are intervals of missing data and occasionally the data does not pass basic sanity tests, e.g. a time zone changing by many hours, during a single visit. The hardware homogenity at least allows for some transversal coherency of the gathered data, but this is of little consequence for the next place prediction. We propose a three-step approach for the preparation of this data, that consists of two a priori selection, and a final statistic filtering, using either the consistency criterion proposed by Liu and Setiono [1996] or a correlation-based feature selector (Cfs, [Hall, 1999]). In the first step we select twelve features, that should influence or indicate the decision which location is going to be visited next, according to our global conceptual model. From the 75 features available, this is the subset used as base of the model: ❼ hour of the day and day of the week – based on the assumption that certain visits will have a regularity in time, which is the case in non-shift workers and students; ❼ place id – based on the assumption, that some places are visited exclusively after a visit of another place; ❼ bluetooth devices – can link to sub-locations of a visit, transportation choice or the social environment; ❼ applications used – a mapping application may strongly correlate with first-time visits, the messaging application may provide information on a social link; ❼ call / message type – an outgoing or incoming phone call or message influence the choice of next location; ❼ call duration – the length of a phone call is expected to be an indicator of the social link between call participants; ❼ call / message contact – the contact can be an indicator of the next destination; 131❼ movement of the phone – is an indicator of physical activity, which could indicate a destination; ❼ charging state – if the phone is charged at a place, it can be expected that the next place is less likely to have charging facilities available, or that a long transition will follow; ❼ battery level – if the battery level at departure is low, the next location is likely to be a place with charging facilities, and close by; ❼ calendar event titles – both the knowledge that a calendar event is linked to the current place and visit, as well as the next known calendar event are clearly hints at the following destination. As most of these values are time dependant during a visit, the next step is to project the key information of these twelve features into a single characteristic vector. Here again the choices were made based on expected utility and with the goal of minimizing the features to limit noise and computational effort required. Per visit, the hour of day and day of week values were retained for both the beginning and end of the visit. The two most frequently encountered bluetooth addresses were recorded, as well as the two most frequently used phone applications. The details of the last communication (incoming/outgoing, message/call and contact ID), the sum of all acceleration values with a log weighting favouring the end of the visit, the portion of the visit that the phone was connected to the charger, the mean battery level as well as the battery level at the end of the visit and any calendar event during the following 24 hours and the first calendar event planned for the current visit. On average 59.6% (±14.3) of recorded visits were to the two most visited locations. More than one third of visits, 37.2% (±11.2), were to the most visited location. This value represents a lower boundary for prediction precision, when using the training set for evaluation. Around one sixth of the visits were to places that had an incidence rate below one percent. These were grouped as a single location, which, when predicted, are considered to be a new location. A.3 Next Visit Prediction It is currently beyond the scale of physical and logical modelling to emulate the decisionmaking process of a person, even if their complete context and history are known. In addition our knowledge of users and their context are imperfect. Even logical links 132Table A.1.: Classifier and Filter Configurations Tested Classifier Classifier Explicit Multiclass Settings Schemes NaiveBayes [John and Langley, 1995] Kernel estimator none (“NB”) 1-1 (“M3”) 1-all (“M0”) LADTree [Holmes et al., 2001] 10 or 20 Boosts none (“LAD”) 1-1 (“M3”) 1-all (“M0”) SMO [Platt, 1999] Complexity parameter none C = 0.5 or 10 1-1 (“M3”) Polynomial Kernel 1-all (“M0”) with exponent E = 1.0 or 2.0 between a decision and known context cannot be certainly established; at best different correlation measures could be calculated. As a result, there is no clear a priori indication which statistical classification model is best applicable to this process. Hence an empirical, iterative approach is the way we choose to obtain a predictor with optimal accuracy. A common evaluation scenario similar to the test scenario was chosen, dividing the training set along a 90%/10% split. The first 90% were used as training set, which was then evaluated on the other 10%. The evaluation metric is the ratio and number of correct predictions. Our interpretation of the problem as a multi-class classification problem, with asymmetrically sized classes and a mixed characteristic vector, containing both numerical and nominal values, permitted us to evaluate the naive Bayesian approach [John and Langley, 1995], the LogitBoost alternating decision (LAD, [Holmes et al., 2001]) tree classifier and a support vector machine based classifier, the sequential minimal optimization (SMO, [Platt, 1999]) algorithm. These methods represent three different approaches to statistical modelling and are all flexible enough to accept our dataset without modification. The specific configurations are referenced in Table 1. Additionally we tested four configurations of the feature vector, a basic vector using just the time and location information of the previous visit (time of day and day of week of both beginning and end of the visit and location), the extended vector (labeled “full” in the graphs) including the context data mentioned above, and two reduced vectors, using the features selected by either the correlation based feature selection filter (labelled “Cfs”) or consistency based feature selection [Liu and Setiono, 1996] filter (labelled “Consist”). For each filter 13330 35 40 45 50 55 Mean Number of Correct Predictions Relative Accuracy (%) Figure A.3.1.: Results for the Naive Bayes Classification Algorithm we were able to use an exhaustive search algorithm, due to our limited feature set size. These four variants allow us to show the impact of the availability of additional context information as well as what can be achieved by filtering on a per user level. To cater to the multi-class nature of the task, we used each algorithm’s natural multiclass approach, and also put in place two variants that forced the classifiers to function in 1-against-all (labelled M0 in the graphs) and 1-against-1 (labelled M3) mode. For our experiments, we used the Weka statistics suite [Hall et al., 2009]. In the following we present the results of our evaluation of a total of 84 different con- figurations. We constrain ourself to two evaluation scores: mean absolute accuracy, i.e. the average number of correct predictions, and mean relative accuracy, i.e. the average percentage of correct predictions. The former is a closer indicator of the algorithm’s performance for the challenge, the latter is a better measure of overall user experience. Significantly larger numbers of boost iterations for the LADtree could not be used, as the data set for some users is too small. The partial results we did obtain were not indicative of precision enhancements. Similarly, our attempts to run exhaustive error correction multiclass classifiers were foiled by the large size of other user’s data sets, which required more than 4GB of memory. Looking at the results of the naive Bayes classifier (see Fig. A.3.1), it becomes obvious, that it is negatively impacted (losing around 5 percent points of average accuracy) by the additional context information, unless it is filtered. Otherwise, results vary very little: mean accuracy is between 49% and 52%, the average number of correct predictions varies between 30 and 31 for the full feature vector and between 32.5 and 35 in the other configurations. Specifically, the minimalist dataset has the same average accuracy as the feature selection filtered variants of the full dataset. 134Figure A.3.2.: Results for the LogitBoost Adaptive Decision Tree Classification Algorithm Figure A.3.3.: Results for the SMO Classification Algorithm without Feature Selection Filters The LADtree (see Fig. A.3.2) model is the most stable of all tested algorithms, and appears to perform almost independently of the additional data. Mean accuracy is consistently between 49 and 52 percent and there are between 33 and 35 (one outlier at 31.4) average correct predictions. Two configurations (10x Boosting on the full dataset and 10x Boosting on the minimal dataset in a 1 - 1 multiclass classifier) exceed a mean correct prediction count of 35, equivalent to over 2800 correct predictions on our test dataset. Overall, LADtree performs the most consistent manner and is the most accurate, but only barely exceeds the results from the Naive Bayesian approach. Most of the results of our evaluations of the SMO algorithm (see Figs. A.3.3 and A.3.4) are disappointing, especially when using any of the two tested feature selection filters. Also, using a 1 - all multi-class approach decreased accuracy noticeably, leading to some 135Figure A.3.4.: Results for the SMO Classification Algorithm with Feature Selection Filters of the weakest results of our evaluation. Nonetheless, without feature selection filters, on the reduced dataset, and either forced 1 - 1 multi-class classification or the native 1 - 1 multi-class approach of SMO, results exceeding 50% mean accuracy could be achieved. Any additional data in the training set decreased accuracy. A.4 Conclusion The approaches we examined here only show marginal differences in performance, when only the most accurate configurations are taken into account. Nonetheless, the overall best algorithm in our testing set of three is the LADtree classifier. Regarding the feature selection, correlation based feature selection appears to perform consistently better than consistency based filtering. Also, a LogitBoost decision tree model performs slightly better with 10 boosting iterations, than with 20 iterations - in the majority of cases. The around 50% accuracy of the predictions observed during our evaluations, lead us to believe that a dedicated hybrid modelling approach, optimised just to predict the two most frequently visited locations, may achieve higher accuracies than we obtained during our series of evaluations. Given the constrained time resources given by the challenge, and the complexity and heterogeneity of the dataset, we decided to first examine the necessity of following a dedicated modelling approach. One example of a possible adaptation, would be the development of dedicated estimators for each feature, when using a naive Bayes classifier. For example the cyclic nature of the temporal 136features are currently not being correctly taken into account. Another important observation is the fact that adding what appeared to be – from an a priori stand point – a useful set of features extracted from the context to the classification process has little to no value in all three prediction models we examined. The relatively low number of training instances makes observation of strong correlations unlikely, which in turn reduces the predictive capability of any model based on this data. While our examination was by no means exhaustive, we see no basis to expect major gains using a similar approach, with more extensive, iterative tuning. It therefore appears that the extended conceptual model we based our feature extraction process on, was not matched by any of the statistical models we evaluated during this work. 137Details on the evaluation processes B.1 Real world data B.1.1 Similarity score tables These are the similarity scores used for the alignment of our real world dataset. The value 0 in each table represents the place holder value, if a sensor had no (valid) reading at this point in time. 138Table B.1.: Similarity score table for luminance 0 1 2 3 4 5 6 7 8 9 10 0 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 4 -9 -8 -9 -9 -10 -9 -10 -10 -10 2 -1 -9 3 -7 -8 -9 -9 -9 -9 -9 -9 3 -1 -8 -7 3 -8 -9 -10 -9 -9 -9 -10 4 -1 -9 -8 -8 3 -9 -10 -9 -9 -10 -10 5 -1 -9 -9 -9 -9 3 -9 -9 -9 -9 -8 6 -1 -10 -9 -10 -10 -9 1 -10 -7 -10 -7 7 -1 -9 -9 -9 -9 -9 -10 1 -7 -10 -8 8 -1 -10 -9 -9 -9 -9 -7 -7 3 -10 -10 9 -1 -10 -9 -9 -10 -9 -10 -10 -10 2 -7 10 -1 -10 -9 -10 -10 -8 -7 -8 -10 -7 2 Table B.2.: Similarity score table for proximity 0 1 2 0 1 -1 -1 1 -1 2 -5 2 -1 -5 2 Table B.3.: Similarity score table for places 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 0 1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 6 -9 -10 -9 -9 -10 -10 -9 -10 -10 -10 -9 -9 -10 2 -1 -9 3 -9 -8 -9 -10 -9 -9 -10 -9 -10 -8 -9 -10 3 -1 -10 -9 2 -10 -9 -10 -9 -7 -10 -10 -10 -8 -9 -10 4 -1 -9 -8 -10 3 -8 -9 -9 -8 -10 -10 -10 -8 -9 -10 5 -1 -9 -9 -9 -8 5 -9 -8 -10 -10 -9 -10 -9 -8 -10 6 -1 -10 -10 -10 -9 -9 5 -8 -9 -10 -9 -10 -9 -9 -10 7 -1 -10 -9 -9 -9 -8 -8 5 -9 -10 -10 -10 -10 -9 -10 8 -1 -9 -9 -7 -8 -10 -9 -9 6 -9 -9 -10 -9 -9 -9 9 -1 -10 -10 -10 -10 -10 -10 -10 -9 5 -8 -10 -10 -8 -10 10 -1 -10 -9 -10 -10 -9 -9 -10 -9 -8 6 -10 -10 -8 -10 11 -1 -10 -10 -10 -10 -10 -10 -10 -10 -10 -10 7 -10 -9 -10 12 -1 -9 -9 -8 -8 -9 -9 -10 -9 -10 -10 -10 2 -8 -10 13 -1 -9 -9 -9 -9 -8 -9 -9 -9 -8 -8 -9 -8 5 -9 14 -1 -10 -10 -10 -10 -10 -10 -10 -9 -10 -10 -10 -10 -9 7 139Table B.4.: Similarity score table for battery levels 0 1 2 3 4 5 6 7 8 0 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 1 -1 -4 -3 -5 -1 -6 -2 2 -1 -1 1 -5 -4 -6 -2 -7 -3 3 -1 -4 -5 1 -1 -1 -3 -2 -2 4 -1 -3 -4 -1 1 -3 -2 -4 -1 5 -1 -5 -6 -1 -3 1 -4 -1 -2 6 -1 -1 -2 -3 -2 -4 1 -5 -1 7 -1 -6 -7 -2 -4 -1 -5 1 -3 8 -1 -2 -3 -2 -1 -2 -1 -3 1 Table B.5.: Similarity score table for orientation values 0 1 2 3 4 5 6 7 8 0 1 -1 -1 -1 -1 -1 -1 -1 -1 1 -1 2 -8 -7 -8 -4 -7 -7 -9 2 -1 -8 4 -7 -9 -7 -9 -8 -9 3 -1 -7 -7 2 -8 -4 -7 -7 -9 4 -1 -8 -9 -8 4 -8 -9 -9 -8 5 -1 -4 -7 -4 -8 4 -9 -8 -9 6 -1 -7 -9 -7 -9 -9 3 -5 -9 7 -1 -7 -8 -7 -9 -8 -5 4 -9 8 -1 -9 -9 -9 -8 -9 -9 -9 4 140B.1.2 Detailed results of the alignment algorithm evaluation on synthetic data These are the detailed result for the 5 datasets and 27 configurations used for the synthetic evaluation, for the three metrics which have thus far only been presented in aggregated form. 141d-set 1 d-set 2 precision size ratio recall precision size ratio recall index mean err mean err mean err mean err mean err mean err 0 0.42 0.32 4.13 2.73 1.00 0.00 0.91 0.20 1.23 0.65 1.00 0.00 1 0.89 0.21 1.32 0.93 1.00 0.00 0.96 0.10 1.06 0.25 1.00 0.00 2 0.82 0.30 1.82 1.99 1.00 0.00 0.95 0.13 1.09 0.34 1.00 0.00 3 0.89 0.21 1.29 0.81 1.00 0.00 0.97 0.09 1.06 0.24 1.00 0.00 4 0.45 0.39 5.86 5.50 1.00 0.00 0.55 0.33 3.03 2.61 1.00 0.00 5 0.50 0.39 5.25 5.31 1.00 0.04 0.88 0.23 1.38 1.02 1.00 0.00 6 0.68 0.36 2.81 3.25 1.00 0.00 0.92 0.18 1.18 0.55 1.00 0.00 7 0.23 0.26 8.92 5.61 1.00 0.00 0.42 0.33 4.43 3.24 0.98 0.07 8 0.23 0.26 8.99 5.64 1.00 0.00 0.63 0.37 2.97 2.75 0.99 0.06 9 0.54 0.39 4.69 5.07 0.99 0.07 0.79 0.30 1.74 1.46 1.00 0.02 10 0.85 0.27 1.53 1.27 1.00 0.04 0.94 0.15 1.13 0.42 1.00 0.00 11 0.91 0.19 1.23 0.73 1.00 0.00 0.95 0.12 1.08 0.29 1.00 0.00 12 0.51 0.36 3.70 2.86 1.00 0.00 0.70 0.32 1.95 1.24 1.00 0.00 13 0.58 0.37 3.09 2.53 1.00 0.06 0.90 0.20 1.24 0.64 1.00 0.00 14 0.77 0.32 1.89 1.60 1.00 0.00 0.93 0.16 1.16 0.47 1.00 0.00 15 0.39 0.31 4.35 2.68 1.00 0.00 0.58 0.34 2.50 1.51 0.99 0.04 16 0.49 0.36 3.72 2.75 1.00 0.07 0.71 0.32 1.92 1.22 1.00 0.00 17 0.57 0.36 2.98 2.22 1.00 0.02 0.85 0.25 1.41 0.78 1.00 0.01 18 0.39 0.37 8.68 10.54 1.00 0.00 0.89 0.22 1.30 0.77 1.00 0.00 19 0.79 0.32 2.22 3.11 1.00 0.01 0.94 0.14 1.12 0.40 1.00 0.00 20 0.36 0.39 11.26 12.35 1.00 0.00 0.49 0.35 5.38 6.90 1.00 0.00 21 0.48 0.40 8.45 11.74 1.00 0.00 0.86 0.25 1.43 1.14 1.00 0.00 22 0.70 0.38 4.50 8.19 1.00 0.00 0.93 0.17 1.16 0.52 1.00 0.00 23 0.26 0.34 17.55 14.69 1.00 0.00 0.29 0.34 10.44 8.49 0.98 0.08 24 0.26 0.34 17.89 14.89 1.00 0.00 0.30 0.34 10.29 8.45 0.98 0.07 25 0.47 0.40 8.88 12.30 0.99 0.08 0.76 0.32 2.17 2.84 1.00 0.02 26 0.37 0.33 5.83 4.86 1.00 0.00 0.91 0.20 1.24 0.67 1.00 0.00 d-set 3 d-set 4 0 0.17 0.10 6.96 2.66 0.96 0.13 0.45 0.32 3.66 2.56 1.00 0.00 1 0.04 0.06 6.13 7.33 0.21 0.26 0.90 0.22 1.33 1.02 1.00 0.00 2 0.15 0.16 6.52 5.70 0.63 0.37 0.77 0.32 2.11 2.39 1.00 0.02 3 0.08 0.11 5.28 4.58 0.34 0.35 0.91 0.21 1.27 0.81 1.00 0.00 4 0.11 0.10 6.93 4.86 0.68 0.42 0.30 0.33 8.03 5.72 1.00 0.00 5 0.16 0.20 4.17 4.20 0.48 0.44 0.49 0.38 5.33 5.42 0.99 0.10 6 0.13 0.15 4.40 3.29 0.52 0.44 0.70 0.36 2.77 3.16 1.00 0.02 7 0.10 0.05 10.07 6.50 0.78 0.31 0.30 0.31 7.36 5.34 1.00 0.00 8 0.10 0.06 10.34 6.51 0.81 0.28 0.31 0.32 7.34 5.37 1.00 0.009 0.20 0.31 2.80 1.56 0.41 0.47 0.50 0.38 4.97 5.14 0.99 0.09 10 0.09 0.09 4.22 2.58 0.42 0.42 0.82 0.28 1.58 1.22 1.00 0.00 11 0.06 0.12 3.59 2.24 0.25 0.39 0.91 0.21 1.24 0.69 1.00 0.00 12 0.15 0.10 4.33 2.22 0.71 0.43 0.43 0.32 3.98 2.72 1.00 0.00 13 0.23 0.18 3.41 2.15 0.69 0.40 0.60 0.37 2.93 2.35 0.99 0.12 14 0.16 0.20 3.27 2.01 0.46 0.45 0.75 0.32 1.92 1.59 1.00 0.00 15 0.13 0.06 5.94 2.48 0.78 0.33 0.49 0.34 3.60 2.60 1.00 0.00 16 0.23 0.18 2.95 1.49 0.63 0.40 0.50 0.36 3.71 2.75 0.98 0.13 17 0.26 0.28 2.97 1.71 0.60 0.42 0.62 0.37 2.87 2.39 1.00 0.00 18 0.05 0.05 12.08 7.45 0.51 0.18 0.16 0.20 17.17 14.66 1.00 0.00 19 0.06 0.08 7.89 8.96 0.27 0.26 0.73 0.35 2.92 4.75 1.00 0.03 20 0.09 0.09 11.88 11.49 0.64 0.39 0.20 0.29 18.45 14.15 1.00 0.00 21 0.12 0.15 5.31 5.28 0.44 0.41 0.44 0.40 9.92 12.32 1.00 0.04 22 0.10 0.13 5.72 5.24 0.41 0.41 0.67 0.39 5.05 8.81 1.00 0.04 23 0.10 0.09 17.29 16.14 0.83 0.23 0.15 0.24 21.38 14.20 1.00 0.00 24 0.14 0.18 16.43 16.20 0.80 0.26 0.15 0.24 21.37 14.21 1.00 0.00 25 0.17 0.24 3.09 1.96 0.44 0.44 0.44 0.39 9.77 12.88 0.99 0.08 26 0.08 0.07 7.55 3.85 0.56 0.25 0.27 0.28 7.52 5.27 1.00 0.00 d-set 5 0 0.82 0.24 0.33 0.14 0.25 0.06 1 0.48 0.11 0.39 0.12 0.18 0.04 2 0.67 0.34 0.36 0.13 0.24 0.13 3 0.42 0.12 0.41 0.13 0.16 0.04 4 0.46 0.11 0.41 0.14 0.18 0.04 5 0.52 0.10 0.39 0.11 0.19 0.04 6 0.37 0.10 0.48 0.09 0.17 0.03 7 8 9 0.29 0.03 0.49 0.09 0.14 0.02 10 0.77 0.26 0.38 0.16 0.28 0.10 11 0.65 0.36 0.36 0.12 0.24 0.14 12 0.44 0.10 0.38 0.12 0.16 0.04 13 0.46 0.13 0.46 0.15 0.20 0.04 14 0.44 0.10 0.34 0.10 0.15 0.04 15 0.42 0.14 0.48 0.14 0.18 0.01 16 0.81 0.24 0.34 0.17 0.25 0.06 17 0.75 0.26 0.40 0.18 0.28 0.10 18 0.66 0.35 0.36 0.14 0.24 0.13 19 0.43 0.11 0.40 0.13 0.16 0.04 20 0.51 0.11 0.35 0.10 0.17 0.0321 0.33 0.09 0.49 0.13 0.16 0.03 22 0.31 0.11 0.55 0.18 0.15 0.03 23 0.39 0.04 0.36 0.05 0.14 0.03 24 0.82 0.24 0.34 0.16 0.25 0.06 25 0.75 0.27 0.39 0.17 0.28 0.10 26B.1.3 Expert annotated patterns These are the reference patterns identified through visual examination of the dataset of one participant of our data collection campaign. They were selected through side by side comparison of data for all days, and identifying similar visual structures in the bar diagrammes. Pattern 1 (Fig. B.1.1) corresponds to the campaign participant spending a weekend evening and night at the out-of-town second home. Pattern 2 (Fig. B.1.2) is one of the instances of the campaign participant getting up in the morning and going to work. Pattern 3 (Fig. B.1.3) is slightly more tenuous: it covers only the proximity sensor and location, and corresponds to the campaign participant being at work and busy, hence the phone is stored away, with the screen covered. 14502468 10 12 14 23:02 23:08 23:15 23:21 23:28 23:35 23:41 23:48 23:54 0:01 0:09 0:16 0:23 0:29 0:36 0:42 0:49 0:55 1:02 1:11 1:15 1:22 1:28 1:35 1:41 1:50 1:57 2:03 2:10 2:16 2:23 2:29 2:36 2:42 2:49 2:56 3:02 3:09 3:15 3:22 3:28 3:37 3:41 3:50 3:57 Ori Batt Geo prox loglux date