Coordination Modulaire de Gestionnaires Autonomes par Contrôle Discret - Thèse Informatique

Coordination Modulaire de Gestionnaires Autonomes par Contrôle Discret - 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 
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