Exécution efficace de systèmes multi-agents sur GPU - Thèse Informatique

Exécution efficace de systèmes multi-agents sur GPU - 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 
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