Vers une capitalisation des connaissances orientée utilisateur : extraction et structuration automatiques de l'information issue de sources ouvertes - Thèse Informatique
Vers une capitalisation des connaissances orientée utilisateur : extraction et structuration automatiques de l'information issue de sources ouvertes - thèse Informatique
- Revenir à l'accueil
Vers une capitalisation des connaissances orient´ee
utilisateur : extraction et structuration automatiques de
l’information issue de sources ouvertes
Laurie Serrano
To cite this version:
Laurie Serrano. Vers une capitalisation des connaissances orient´ee utilisateur : extraction et
structuration automatiques de l’information issue de sources ouvertes . Computer Science.
Universt´e de Caen, 2014. French.
HAL Id: tel-01082975
https://hal.archives-ouvertes.fr/tel-01082975
Submitted on 14 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.Universit´e de Caen Basse-Normandie
Ecole doctorale SIMEM ´
Th`ese de doctorat
pr´esent´ee et soutenue le : 24/01/2014
par
Laurie Serrano
pour obtenir le
Doctorat de l’Universit´e de Caen Basse-Normandie
Sp´ecialit´e : Informatique et applications
Vers une capitalisation des connaissances orient´ee utilisateur
Extraction et structuration automatiques de l’information issue de
sources ouvertes
Directrice de th`ese : Maroua Bouzid
Jury
Laurence Cholvy Directrice de recherche DTIM, ONERA (Rapporteur)
Thierry Poibeau Directeur de recherche LaTTiCe, ENS (Rapporteur)
Fatiha Sa¨ıs Maˆıtre de conf´erences LRI, Univ. Paris 11 (Examinatrice)
Ga¨el Dias Professeur des universit´es GREYC, Univ. de Caen (Examinateur)
Stephan Brunessaux Senior expert Cassidian, EADS (Co-directeur de th`ese)
Thierry Charnois Professeur des universit´es LIPN, Univ. Paris 13 (Co-encadrant de th`ese)
Maroua Bouzid Professeur des universit´es GREYC, Univ. de Caen (Directrice de th`ese)Mis en page avec la classe thloria.Résumé
Face à l’augmentation vertigineuse des informations disponibles librement (notamment sur le Web),
repérer efficacement celles qui présentent un intérêt s’avère une tâche longue et complexe. Les analystes
du renseignement d’origine sources ouvertes sont particulièrement concernés par ce phénomène. En effet,
ceux-ci recueillent manuellement une grande partie des informations d’intérêt afin de créer des fiches de
connaissance résumant le savoir acquis à propos d’une entité. Dans ce contexte, cette thèse a pour objectif
de faciliter et réduire le travail des acteurs du renseignement et de la veille. Nos recherches s’articulent
autour de trois axes : la modélisation de l’information, l’extraction d’information et la capitalisation des
connaissances. Nous avons réalisé un état de l’art de ces différentes problématiques afin d’élaborer un
système global de capitalisation des connaissances. Notre première contribution est une ontologie dédiée
à la représentation des connaissances spécifiques au renseignement et pour laquelle nous avons défini et
modélisé la notion d’événement dans ce domaine. Par ailleurs, nous avons élaboré et évalué un système
d’extraction d’événements fondé sur deux approches actuelles en extraction d’information : une première
méthode symbolique et une seconde basée sur la découverte de motifs séquentiels fréquents. Enfin, nous
avons proposé un processus d’agrégation sémantique des événements afin d’améliorer la qualité des
fiches d’événements obtenues et d’assurer le passage du texte à la connaissance. Celui-ci est fondé sur
une similarité multidimensionnelle entre événements, exprimée par une échelle qualitative définie selon
les besoins des utilisateurs.
Mots-clés: Gestion des connaissances, exploration de données, représentation des connaissances, renseignement
d’origine sources ouvertes, ontologies (informatique), Web sémantique.
Abstract
Due to the considerable increase of freely available data (especially on the Web), the discovery
of relevant information from textual content is a critical challenge. Open Source Intelligence (OSINT)
specialists are particularly concerned by this phenomenon as they try to mine large amounts of heterogeneous
information to acquire actionable intelligence. This collection process is still largely done by hand
in order to build knowledge sheets summarizing all the knowledge acquired about a specific entity. Given
this context, the main goal of this thesis work is to reduce and facilitate the daily work of intelligence
analysts. For this sake, our researches revolve around three main axis : knowledge modeling, text mining
and knowledge gathering. We explored the literature related to these different domains to develop a
global knowledge gathering system. Our first contribution is the building of a domain ontology dedicated
to knowledge representation for OSINT purposes and that comprises a specific definition and modeling
of the event concept for this domain. Secondly, we have developed and evaluated an event recognition
system which is based on two different extraction approaches : the first one is based on hand-crafted
rules and the second one on a frequent pattern learning technique. As our third contribution, we proposed
a semantic aggregation process as a necessary post-processing step to enhance the quality of the
events extracted and to convert extraction results into actionable knowledge. This is achieved by means
of multiple similarity measures between events, expressed according a qualitative scale which has been
designed following our final users’ needs.
Keywords: Knowledge management, data mining, knowledge representation (information theory), open
source intelligence, ontologies (information retrieval), Semantic Web.Remerciements
Cette thèse ayant été réalisée dans le cadre d’une convention industrielle, je tiens tout d’abord à
remercier les personnes de mon entreprise et de mon laboratoire qui en sont à l’origine : notamment
Stephan Brunessaux et Bruno Grilheres pour m’avoir recrutée et encadrée en stage puis proposé cette
collaboration, mais aussi mes encadrants académiques, Maroua Bouzid et Thierry Charnois. Je vous suis
à tous extrêmement reconnaissante pour le temps que vous m’avez consacré du début à la fin de cette
thèse ainsi que pour toutes nos discussions enrichissantes qui ont permis à mes travaux d’avancer.
Je tiens par ailleurs à remercier l’ensemble des membres du jury : Laurence Cholvy et Thierry Poibeau
pour avoir accepté de rapporter mon travail ainsi que Fatiha Saïs et Gaël Dias pour leur participation
au jury de soutenance.
Mes remerciements les plus sincères vont également aux deux équipes au sein desquelles j’ai été
intégrée pendant ces trois ans. Je remercie tous les membres de l’équipe MAD pour leur accueil et leurs
conseils notamment lors des groupes de travail. Mais aussi et bien sûr tous les membres de l’équipe
IPCC : vous m’avez accueillie les bras ouverts et je garderai une place pour vous tous dans ma petite
tête, je ne pouvais pas rêver mieux comme équipe pour une première expérience professionnelle. Je te
remercie encore Stephan de m’avoir recrutée, Bruno pour ton encadrement justement dosé qui m’a guidé
tout en favorisant mon autonomie, Khaled mon cher collègue de bureau pour tes conseils mais aussi pour
nos rires même dans les moments de rush. Yann, Arnaud, Emilien, Amandine pour votre aide précieuse
quand je venais vous embêter avec mes questions et tous les autres bien sûr qui m’ont spontanément
apporté leur aide et soutien. Fred (je ne t’oublie pas non non), notre "chef de centre" farceur et toujours là
pour entretenir cette bonne humeur qui caractérise notre équipe, je te remercie pour toutes nos rigolades.
Toi aussi, Dafni, ma grecque préférée, je te dois énormément, professionnellement et personnellement, tu
as su me comprendre et me conseiller à tout moment et je ne l’oublierai pas. Véro, ma tata, mon amie, tu
as été là pour moi depuis le tout premier jour quand tu es venue me chercher à la gare et que nous avons
tout de suite sympathisé. Je te remercie pour tout ce que tu as fait pour moi et tout ce que tu continues
d’apporter à cette équipe avec ton grand cœur.
Je pense aussi à mes amis qui ont été présents pendant cette aventure, tout proche ou à distance,
ponctuellement ou en continu, dans les moments difficiles ou pour le plaisir, mais tous toujours là. Milie,
Manon, Laure, Lucile, Rosario, Chacha, Marlou, je vous remercie mes chers Talistes/Taliens pour votre
soutien, votre écoute, votre folie, nos retrouvailles, nos fiestas et bien d’autres moments passés avec vous.
Un gros merci également à mes amis et colocs rouennais, Romain, Etienne, mon Aldricou, Nico, Juline,
Manuella, Camille et bien d’autres, vous avez su me changer les idées durant nos traditionnelles soirées
à l’Oka, à la coloc, nos escapades au ski, à Brighton et ailleurs. Je suis fière de vous avoir rencontrés et je
ne vous oublierai pas. Une pensée pour toi aussi ma Lady, toi qui m’a soutenue dans l’un des moments les
plus difficiles de cette thèse. Je vous remercie Julien, Xavier, Mariya et Laura, mes chers amis de Caen,
avec vous j’ai pu partager mes petits soucis de thésarde et passer de très agréables soirées caennaises.
Last but not least, vous mes Trouyiens adorés, mes amis de toujours, éparpillés en France et ailleurs,
Bolou, Maelion, Solenou, Loicou, Tildou, Emilie et Quitterie, sans même vous en rendre compte, vous
m’avez aidée pendant cette thèse oui oui, car cette thèse n’est qu’une petite partie d’une aventure bien
plus enrichissante...
Enfin, je veux remercier mes parents, los de qui cau, qui, drets sus la tèrra, m’ont transmis des
valeurs chères à mes yeux et m’ont poussée à aller au bout de ce que j’entreprends et de ce que j’aime.
iii
Copyright c 2013 - CASSIDIAN - All rights reservediv
Copyright c 2013 - CASSIDIAN - All rights reservedTable des matières
Résumé i
Abstract i
Remerciements iii
Table des figures x
Liste des tableaux xi
Introduction 1
1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Renseignement d’Origine Sources Ouvertes . . . . . . . . . . . . . . . . . . 3
1.2 Media Mining & la plateforme WebLab . . . . . . . . . . . . . . . . . . . . 5
2 Objectifs et axes de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Contributions de la thèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4 Organisation du mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
I État de l’art 13
1 Représentation des connaissances 17
1.1 Données, informations et connaissances . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2 L’information sémantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.1 Le Web sémantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.2 Les ontologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.2.3 Les langages de représentation . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.4 Inférence et bases de connaissances . . . . . . . . . . . . . . . . . . . . . . 23
1.2.5 Les éditeurs d’ontologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3 Modélisation des événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.3.1 Qu’est-ce qu’un événement ? . . . . . . . . . . . . . . . . . . . . . . . . . 26
v
Copyright c 2013 - CASSIDIAN - All rights reservedTable des matières
1.3.1.1 Les événements en extraction d’information . . . . . . . . . . . . . . 27
1.3.1.2 Les ontologies orientées "événement" . . . . . . . . . . . . . . . . . . 28
1.3.2 Modélisation du temps et de l’espace . . . . . . . . . . . . . . . . . . . . . 33
1.3.2.1 Représentation du temps . . . . . . . . . . . . . . . . . . . . . . . . . 33
1.3.2.2 Représentation de l’espace . . . . . . . . . . . . . . . . . . . . . . . . 34
1.3.3 Spécifications dédiées au ROSO . . . . . . . . . . . . . . . . . . . . . . . . 35
1.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2 Extraction automatique d’information 39
2.1 Définition et objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.2 Approches d’extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2.1 Extraction d’entités nommées et résolution de coréférence . . . . . . . . . . 43
2.2.2 Extraction de relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.2.3 Extraction d’événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.3 Plateformes et logiciels pour l’EI . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.4 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.5 Évaluation des systèmes d’EI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.5.1 Campagnes et projets d’évaluation . . . . . . . . . . . . . . . . . . . . . . . 54
2.5.2 Performances, atouts et faiblesses des méthodes existantes . . . . . . . . . . 56
2.6 Problèmes ouverts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.7 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3 Capitalisation des connaissances 61
3.1 Fusion de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.1.1 Réconciliation de données . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.1.2 Web de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.1.3 Similarité entre données . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.2 Capitalisation appliquée aux événements . . . . . . . . . . . . . . . . . . . . . . . 66
3.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
II Contributions de la thèse 69
4 Modélisation des connaissances du domaine 73
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2 Notre modèle d’événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2.1 La dimension conceptuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2.2 La dimension temporelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
vi
Copyright c 2013 - CASSIDIAN - All rights reserved4.2.3 La dimension spatiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.2.4 La dimension agentive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.3 WOOKIE : une ontologie dédiée au ROSO . . . . . . . . . . . . . . . . . . . . . . 78
4.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5 Extraction automatique des événements 83
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.2 La plateforme GATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.3 Extraction d’entités nommées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3.1 Composition de la chaine d’extraction . . . . . . . . . . . . . . . . . . . . . 87
5.3.2 Développement du module de règles linguistiques . . . . . . . . . . . . . . 88
5.4 Extraction d’événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.4.1 Approche symbolique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.4.2 Apprentissage de patrons linguistiques . . . . . . . . . . . . . . . . . . . . 97
5.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6 Agrégation sémantique des événements 101
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.2 Normalisation des entités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.3 Similarité sémantique entre événements . . . . . . . . . . . . . . . . . . . . . . . . 105
6.3.1 Similarité conceptuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.3.2 Similarité temporelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.3.3 Similarité spatiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.3.4 Similarité agentive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.4 Processus d’agrégation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
7 Expérimentations et résultats 115
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
7.2 Évaluation du système d’extraction . . . . . . . . . . . . . . . . . . . . . . . . . . 116
7.2.1 Protocole d’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
7.2.2 Analyse des résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.2.3 Bilan de l’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.3 Premières expérimentions sur l’agrégation sémantique . . . . . . . . . . . . . . . . 122
7.3.1 Implémentation d’un prototype . . . . . . . . . . . . . . . . . . . . . . . . 122
7.3.2 Jeu de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.3.3 Exemples d’observations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.3.4 Bilan de l’expérimentation . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
vii
Copyright c 2013 - CASSIDIAN - All rights reservedTable des matières
7.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Conclusion et perspectives 131
1 Synthèse des contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
1.1 État de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
1.2 Un modèle de connaissances pour le ROSO . . . . . . . . . . . . . . . . . . 133
1.3 Une approche mixte pour l’extraction automatique des événements . . . . . 134
1.4 Un processus d’agrégation sémantique des événements . . . . . . . . . . . . 134
1.5 Évaluation du travail de recherche . . . . . . . . . . . . . . . . . . . . . . . 135
2 Perspectives de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Annexes 139
A WOOKIE : taxonomie des concepts 141
B WOOKIE : événements spécifiques au ROSO 143
C WOOKIE : relations entre concepts 145
D WOOKIE : attributs des concepts 147
E GATE : exemple de chaine de traitement 149
F Gazetteer pour la détection de personnes en français 151
G L’ontologie-type pizza.owl 153
H Extrait de l’ontologie pizza.owl au format OWL 155
I Exemple de document WebLab contenant des événements 159
J Exemple de règle d’inférence au formalisme Jena 163
K Extrait d’un document du corpus d’apprentissage 165
L Extrait d’un document du corpus de test 167
M Source s12 : dépêche de presse à l’origine des événements Event1 et Event2 169
N Source s3 : dépêche de presse à l’origine de l’événement Event3 171
Bibliographie 173
viii
Copyright c 2013 - CASSIDIAN - All rights reservedTable des figures
1 Architecture de la plateforme WebLab . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Système de capitalisation des connaissances proposé . . . . . . . . . . . . . . . . . . . 9
1.1 Linking Open Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.2 L’environnement Protégé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3 L’ontologie Event : modélisation des événements . . . . . . . . . . . . . . . . . . . . . 29
1.4 LODE : modélisation des événements . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.5 LODE : alignements entre propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
1.6 SEM : modélisation des événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.7 DUL : modélisation des événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.8 CIDOC CRM : taxonomie des classes . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.9 CIDOC CRM : modélisation des événements . . . . . . . . . . . . . . . . . . . . . . . 33
1.10 Algèbre temporel d’Allen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.11 Les relations topologiques RCC-8 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1 Le pentagramme du renseignement . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.1 Exemple de règle d’extraction exprimée dans le formalisme JAPE . . . . . . . . . . . . 85
5.2 Règle d’extraction de dates en français . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.3 Règle d’extraction de dates en anglais . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.4 Extrait du gazetteer org_key.lst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
5.5 Règle d’extraction d’organisations en anglais . . . . . . . . . . . . . . . . . . . . . . . 91
5.6 Extrait du gazetteer person_pre.lst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.7 Règle d’extraction de personnes en français . . . . . . . . . . . . . . . . . . . . . . . . 92
5.8 Extrait du gazetteer loc_key.lst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.9 Règle d’extraction de lieux en français . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
5.10 Gazetteer bombings.lst . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.11 Exemple d’analyse syntaxique en dépendance . . . . . . . . . . . . . . . . . . . . . . . 96
5.12 Extraction des événements : différentes étapes . . . . . . . . . . . . . . . . . . . . . . 96
5.13 Extraction des événements : chaine de traitement GATE pour l’anglais . . . . . . . . . . 97
5.14 Extraction des événements : exemple d’annotation GATE . . . . . . . . . . . . . . . . 97
5.15 Visualisation et sélection des motifs avec l’outil Camelis . . . . . . . . . . . . . . . . . 100
6.1 Désambiguïsation des entités spatiales : exemple de triplets RDF/XML produits . . . . . 104
7.1 Exemples de motifs séquentiels fréquents sélectionnés . . . . . . . . . . . . . . . . . . 118
7.2 Nombre de motifs retournés en fonction des paramètres choisis . . . . . . . . . . . . . . 119
7.3 Un exemple d’événement issu de la base GTD . . . . . . . . . . . . . . . . . . . . . . . 125
ix
Copyright c 2013 - CASSIDIAN - All rights reservedTABLE DES FIGURES
7.4 Similarités entre événements : extrait représenté en RDF/XML . . . . . . . . . . . . . . 126
7.5 Visualisation des 3 événements extraits sur une carte géographique . . . . . . . . . . . 128
x
Copyright c 2013 - CASSIDIAN - All rights reservedListe des tableaux
5.1 Classes argumentales pour l’attribution des rôles sémantiques . . . . . . . . . . . . . . 96
6.1 Normalisation des dates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
7.1 Chaines d’extraction d’événements : variantes évaluées . . . . . . . . . . . . . . . . . . 119
7.2 Extraction d’événements : précision, rappel et F-mesure . . . . . . . . . . . . . . . . . . 120
7.3 Extraction d’événements : apport de l’analyse syntaxique . . . . . . . . . . . . . . . . . 121
7.4 Extraction d’événements : influence de la REN . . . . . . . . . . . . . . . . . . . . . . 121
7.5 Alignement des types d’événement entre le modèle GTD et l’ontologie WOOKIE . . . . 124
7.6 Événements extraits et leurs dimensions . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.7 Exemple de 3 événements agrégés automatiquement . . . . . . . . . . . . . . . . . . . 127
7.8 Fiches d’événements de référence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
xi
Copyright c 2013 - CASSIDIAN - All rights reservedLISTE DES TABLEAUX
xii
Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction
Sommaire
1 Contexte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1 Renseignement d’Origine Sources Ouvertes . . . . . . . . . . . . . . . . 3
1.2 Media Mining & la plateforme WebLab . . . . . . . . . . . . . . . . . . . 5
2 Objectifs et axes de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
3 Contributions de la thèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
4 Organisation du mémoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1
Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction
Le savoir occupe aujourd’hui et depuis toujours une place centrale dans notre société, il est au cœur de
toute activité humaine. Épanouissement intellectuel pour certains et capital pour d’autres, la connaissance
est considérée comme une richesse pouvant servir un large panel d’objectifs. Que ce soit à des fins
personnelles ou professionnelles, la principale visée de l’acquisition du savoir quel qu’il soit est, sans
aucun doute, de mieux appréhender et de comprendre notre environnement. Dans des situations variées
et en constante mutation, la capacité à observer et à analyser ce qui nous entoure (objets, personnes,
situations, relations, faits, etc.) est un préalable fondamental à tout processus de prise de décision.
L’essor d’Internet et des nouvelles technologies de l’information a récemment déstabilisé les principaux
mécanismes traditionnels de gestion de la connaissance. Passé d’un ensemble restreint et structuré
de silos à la Toile, le savoir est de plus en plus accessible à tous et partout. Ce changement provient
principalement de la démocratisation des moyens de communication et de publication de l’information.
Deux problématiques principales émergent alors :
– Comment faire face à cette nouvelle masse disponible qui constitue une mine d’or mais peut également
s’avérer néfaste à notre acquisition de connaissance ?
– Quels moyens mettre en place pour extraire un savoir homogène à partir de contenus de plus en
plus diversifiés sur le fond et sur la forme ?
Celles-ci occupent une place centrale dans divers domaines pour lesquels l’acquisition du savoir est
stratégique : le Renseignement d’Origine Sources Ouvertes (ROSO) est l’un de ces domaines.
2
Copyright c 2013 - CASSIDIAN - All rights reserved1. Contexte
1 Contexte
En guise d’introduction de nos travaux, nous proposons tout d’abord un rapide tour d’horizon du
contexte de cette étude, réalisée dans un cadre à la fois académique et applicatif. Nous parlerons, dans
un premier temps, du Renseignement d’Origine Sources Ouvertes constituant le fil directeur de nos
recherches en termes de besoins opérationnels. Puis, nous introduirons un champ de recherche visant à
répondre à ces besoins et dans lequel se situe plus précisément notre sujet de recherche, à savoir la fouille
de documents multimédia, plus communément désignée par le terme de Media Mining.
1.1 Renseignement d’Origine Sources Ouvertes
Le Renseignement d’Origine Sources Ouvertes (dit ROSO) désigne toute activité de recueil et d’analyse
de l’information disponible publiquement et légalement (presse écrite, blogs, sites internet, radio,
télévision, etc.) [Best and Cumming, 2007]. Initialement définie dans le domaine de la défense, cette activité
est aujourd’hui menée plus largement à des fins stratégiques et économiques sous le nom de veille
à partir de sources ouvertes.
En effet, les Sources Ouvertes (SO) sont très prolifiques et peuvent, par exemple, fournir les données
nécessaires pour analyser la situation d’un pays : caractéristiques géopolitiques et sociales, diffé-
rents acteurs économiques, politiques, militaires, terroristes ou criminels, etc. Lors d’une crise, l’analyse
systématique des médias nationaux et internationaux peut permettre, par exemple, de produire automatiquement
une synthèse qui facilitera les prises de décision. Des processus de veille peuvent également
être mis en œuvre pour effectuer une recherche pro-active d’informations liées à l’environnement, aux
opportunités ou aux menaces qui constituent des signaux faibles et qui doivent faire l’objet d’une écoute
anticipative.
Les objectifs premiers du ROSO sont les suivants :
– Savoir : s’informer sur les intentions d’un acteur intérieur ou extérieur, comprendre cet acteur et
la situation ;
– Prévoir : anticiper les évolutions, prévenir les menaces, influencer les situations.
Le cycle du renseignement a été défini pour répondre à ces deux objectifs et est constitué de 5 étapes :
1. Orientation : il s’agit de définir le besoin en renseignement et spécifier les indicateurs permettant
de valider la réussite de l’action de renseignement,
2. Planification : elle consiste à trouver les sources et les gisements d’information d’intérêt et à définir
le besoin de veille,
3. Recherche : elle vise à réaliser l’acquisition et le pré-traitement des données à partir des gisements
précédemment définis,
4. Exploitation : il s’agit d’analyser le contenu des données, de les filtrer pour en faire émerger de la
connaissance,
5. Diffusion : elle consiste à faire la synthèse et à remonter l’information utile vers le décideur.
Le ROSO est aujourd’hui devenu un processus complexe à mettre en œuvre. En effet, avec la croissance
du Web 2.0 et la multiplication des gisements d’information, les spécialistes du renseignement
3
Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction
et les veilleurs se trouvent confrontés, d’une part, à une masse de données toujours plus importante et,
d’autre part, à une diversité croissante des formats et structures. Face à ce nouveau phénomène, des
systèmes d’information plus performants sont désormais nécessaires pour accéder et traiter cette masse
d’information. Ces systèmes sont notamment indispensables pour dépasser les limites des moteurs de
recherche "grand public" et proposer une collecte ciblée et précise de l’information à la fois dans le Web
public, mais aussi dans le Web profond. Ils doivent également être capables de détecter les informations
pouvant constituer des signes précoces de changement ou de menace. Dès lors, le développement et
l’utilisation de tels outils deviennent des tâches de plus en plus complexes.
L’essor des nouveaux moyens de communication favorise l’émergence des sources d’information
mettant à disposition des informations aux caractéristiques particulières. La prise en compte de celles-ci
est primordiale pour obtenir un système adapté à la fois aux besoins des analystes du renseignement
mais également aux informations que ceux-ci sont amenés à traiter. Ainsi, les principales problématiques
rencontrées lors du traitement des informations issues de sources ouvertes sont les suivantes :
– L’hétérogénéité des formats et structures : les informations disponibles sont proposées dans des
formats variés (pages HTML, flux RSS, réseaux sociaux, wiki, blogs, forums, etc.) et ne sont pas
toujours structurées. Le traitement de ces ressources implique l’utilisation d’un ensemble varié
d’outils dont l’interopérabilité n’est pas assurée. Pour atteindre ses objectifs, le veilleur doit se
former à leur utilisation combinée, ce qui augmente encore la complexité de son travail.
– Le multilinguisme : avec la démocratisation de l’accès à Internet, le nombre de langues employées
sur la Toile a fortement augmenté ces dernières années, ce qui pose des problèmes d’intercompréhension.
Les outils de traduction automatique deviennent donc clés afin de donner un accès
à ces contenus dans des langues non maitrisées par l’analyste.
– La quantité d’information à traiter : la quantité et le volume des informations mises à disposition
aujourd’hui en sources ouvertes, notamment avec la croissance des contenus audio et vidéo
en ligne, sont tels qu’il devient impossible de collecter manuellement toutes ces informations.
En effet, la collecte de ces grands volumes nécessite des connexions réseaux rapides, du temps,
ainsi qu’un espace de stockage important, dont on ne dispose généralement pas. De plus, face à
cette quantité d’informations disponibles, le veilleur se trouve submergé et il devient impossible
pour lui de traiter efficacement ces nouvelles données, et de discerner clairement les informations
pertinentes pour sa tâche.
– La qualité et l’interprétation des informations : les informations disponibles en sources ouvertes
peuvent être peu fiables, contradictoires, dispersées, et il s’avère souvent difficile, voire impossible
de savoir quel crédit leur accorder au premier abord. Il convient alors de recouper et d’analyser ces
informations pour leur donner un sens et une valeur, ce qui reste une étape manuelle et donc coû-
teuse, à la fois en termes de temps et de moyens. Comment rassembler et sélectionner efficacement
dans la masse d’informations, les plus pertinentes, qui seront ensuite interprétées et auxquelles on
tachera de donner un sens et évaluer une crédibilité ?
Aujourd’hui, les plateformes de veille tentent de répondre à ces premières problématiques, mais du
fait de l’évolution rapide des technologies, des formats et des structures d’information, ces systèmes
ne sont pas toujours cohérents et évolutifs. S’il existe de nombreux outils publics et accessibles sur
Internet (moteurs de recherche généralistes ou verticaux), une veille qui repose uniquement sur ceux-ci
se trouve rapidement limitée. Pour répondre à des besoins d’information précis et garder une réactivité
importante face à de nouveaux types d’information, la sélection des techniques les plus pertinentes reste
indispensable. De plus, la prise en main de ces outils s’avère coûteuse en temps pour les analystes,
4
Copyright c 2013 - CASSIDIAN - All rights reserved1. Contexte
c’est pourquoi l’efficacité d’un travail de veille va dépendre de l’intégration de ces divers outils au sein
d’une seule et même plateforme, mais aussi et surtout des performances de chacun des composants de
traitement de l’information.
1.2 Media Mining & la plateforme WebLab
La coordination d’un ensemble de techniques de traitement de l’information pour les besoins que
nous venons d’évoquer est notamment l’objet de recherche de la fouille de documents multimédia ou
Media Mining. En effet, l’exploitation d’un tel volume d’informations requiert l’automatisation de tout
ou partie des traitements d’analyse, d’interprétation et de compréhension des contenus. Il s’agit donc de
rechercher, de collecter, d’extraire, de classer, de transformer ou, plus généralement, de traiter l’information
issue des documents disponibles et, enfin, de la diffuser de façon sélective en alertant les utilisateurs
concernés. Cet ensemble d’analyses est généralement implémenté sous forme d’une même chaine de
traitement. Ceci permet de diminuer la quantité d’outils que l’analyste doit maîtriser et utiliser durant sa
veille et par là même de faciliter le passage de l’information entre les différents services d’analyse. Ces
chaines de traitement apportent une valeur ajoutée dans la recherche d’informations à partir de sources
ouvertes mais également dans le traitement de l’ensemble des informations numériques. Dans le cadre
du ROSO, elles implémentent des technologies principalement issues des domaines de l’Intelligence
Artificielle (IA) et de la gestion des connaissances (KM pour Knowledge Management).
Concernant le traitement des données textuelles, par exemple, différentes approches complémentaires
peuvent être utilisées. Ainsi, des techniques statistiques permettent d’analyser les contenus d’un grand
nombre de documents pour déterminer automatiquement les sujets abordés en fonction des termes les
plus discriminants. Par ailleurs, des techniques probabilistes peuvent également être utilisées avec succès
pour identifier la langue d’un document. Des techniques d’analyse linguistique à base de grammaires
permettent de réaliser d’autres types de traitement en Extraction d’information (EI) tels que la recherche
d’expressions régulières, d’amorces de phrases, de noms de personnes, de dates d’événements, etc. Une
analyse sémantique permet, quant à elle, de traduire les chaines de caractères ou les données techniques
contenues dans les documents multimédia par des concepts de haut niveau. Par ailleurs, des ontologies
de domaine peuvent être définies et utilisées pour annoter et rechercher les documents selon un modèle
commun bien défini.
La même variété de technologies et approches se retrouve dans le domaine du multimédia. La transcription
de la parole, par exemple, permet de réaliser des fonctions similaires aux documents texte sur
les documents audio ou vidéo. Une fois transcrit, le document peut être indexé puis retrouvé de façon
rapide et efficace. De plus, des outils de traduction peuvent également être intégrés dans une chaîne de
traitement. Dans le domaine de l’image, la détection ou la reconnaissance de visages, la recherche par
similarité peuvent permettre de retrouver automatiquement une information d’intérêt. La combinaison
des techniques de fouille de textes et de fouilles de documents audio ou vidéo ouvre la voie à des traitements
de plus en plus puissants. Côté logiciels, il existe un grand nombre de solutions et de briques
technologiques mises à disposition par des éditeurs commerciaux ou en open-source et par la communauté
scientifique. Le choix de la meilleure brique est souvent très difficile car les critères sont nombreux,
variés et évolutifs.
Pour composer des offres "sur mesure" bien adaptées au besoin, des plateformes dites d’intégration
permettent d’assembler et de faire inter-opérer les outils sélectionnés. Le choix d’une plateforme devient
5
Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction
alors un enjeu essentiel pour produire un système de traitement des informations structurées et non
structurées. Seule une plateforme basée sur des standards largement répandus peut permettre d’assurer
l’interopérabilité des outils retenus.
WebLab est une de ces plateformes d’intégration, elle est développée et maintenue par la société
Cassidian et constitue le socle fonctionnel et technque au sein duquel nos recherches se sont déroulées
[Giroux et al., 2008] La plateforme WebLab vise à faciliter l’intégration de composants logiciels
plus particulièrement dédiés, au traitement de documents multimédia et d’informations non-structurées
(texte, image, audio et vidéo) au sein d’applications dédiées à diverses activités de veille telles que le
ROSO mais aussi la veille économique et stratégique. Différents composants spécifiques viennent ré-
gulièrement enrichir cette plateforme pour lui offrir des fonctionnalités de collecte de données sur des
sources ouvertes (Internet, TV ou radio, presse écrite, etc.) ou dans des entrepôts privés, de traitement
automatique des contenus (extraction d’information, analyse sémantique, classification, transcription de
la parole, traduction, segmentation, reconnaissance d’écriture, etc.), de capitalisation (stockage, indexation,
enregistrement dans des bases de connaissance, etc.) et d’exploitation des connaissances (recherche
avancée, visualisation et synthèse graphique, aide à la décision, etc.).
Les objectifs scientifiques et technologiques de la plateforme sont multiples :
– Il s’agit de définir un modèle de référence, basé sur les standards du Web Sémantique (XML,
RDF, RDFS, OWL, SPARQL, etc.), permettant à des composants logiciels hétérogènes d’échanger
efficacement des données brutes, des méta-données associées ou des informations élaborées de
façon automatique.
– Il s’agit également de proposer des interfaces génériques de services afin de normaliser les interactions
entre les composants et de simplifier la construction de chaînes de traitement au sein
desquelles ils sont mis en œuvre conjointement.
– Il s’agit enfin de proposer et de mettre à disposition un ensemble de briques logicielles réutilisables
et composables pour construire rapidement des applications adaptées à un besoin particulier. Ces
briques prennent la forme de services qui couvrent un large spectre de fonctionnalités et de composants
d’IHM 1 qui permettent de piloter les services et d’en exploiter les résultats côté utilisateur.
Enfin, l’IHM est constituée par assemblage de composants qui s’exécutent au sein d’un portail Web
personnalisable par l’utilisateur final. Pour des besoins nouveaux ou spécifiques, les services et composants
d’IHM peuvent être créés de toute pièce ou développés en intégrant des composants du commerce
et/ou open-source. L’architecture de cette plateforme est résumée par la figure 1.
2 Objectifs et axes de recherche
Étant donné le contexte que nous venons de décrire, cette thèse a pour objectif de faciliter et de réduire
le travail des analystes dans le cadre du ROSO et de la veille plus généralement. Face à l’augmentation
croissante des informations disponibles pour tous librement et légalement, notamment sur le Web, et face
à l’hétérogénéité des contenus, il s’agit de proposer un système global de capitalisation des connaissances
permettant aux acteurs du ROSO d’exploiter cette masse d’informations.
1. Interface Homme-Machine
6
Copyright c 2013 - CASSIDIAN - All rights reserved2. Objectifs et axes de recherche
FIGURE 1 – Architecture de la plateforme WebLab
Nos recherches s’articulent autour de trois axes principaux, correspondant à trois des nombreuses
problématiques de l’Intelligence Artificielle :
– Modélisation de l’information
– Extraction d’information
– Capitalisation des connaissances
Nos travaux au sein de ce premier axe visent à définir l’étendue et la nature des informations d’intérêt
pour le domaine du ROSO, c’est-à-dire mettre en place un modèle de connaissances. Plus concrètement,
il s’agira de recenser, définir et formaliser sémantiquement l’ensemble de concepts utilisés par les experts
de ce domaine et leurs relations. Ce modèle servira de socle de référence à notre processus global de
capitalisation des connaissances : pour exprimer l’ensemble des informations de façon unifiée mais aussi
assurer une communication entre les différents services de traitement de l’information développés. Nous
explorerons pour cela les travaux existants et notamment les représentations sous forme d’ontologie de
domaine qui est, à l’heure actuelle, le mode de représentation le plus utilisé dans ce but.
Le second axe a pour objectif de proposer une approche nouvelle d’extraction d’information à partir
de textes en langage naturel. Celle-ci devra permettre de repérer automatiquement l’ensemble des entités
et événements d’intérêt pour le ROSO définis au sein du premier axe de recherche. Pour ce faire,
7
Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction
nous nous intéresserons notamment à la combinaison de différentes techniques actuelles (linguistiques,
statistiques ou hybrides) afin d’améliorer la qualité des résultats obtenus.
Le dernier axe de recherche vise à définir un processus de transformation des informations extraites
en réelles connaissances, c’est-à-dire les normaliser, les structurer, les relier, considérer les problématiques
de continuité (redondance/contradiction, temps/espace), etc. Ces traitements doivent aboutir à la
création de fiches de connaissances destinées aux analystes, résumant l’ensemble du savoir acquis automatiquement
au sujet d’une entité d’intérêt. Celles-ci seront stockées et gérées au sein d’une base de
connaissances pour permettre leur mise à jour lors du traitement de nouveaux documents mais également
des mécanismes de raisonnement/inférence afin d’en déduire de nouvelles connaissances.
Une place importante sera réservée à l’articulation de ces trois axes de recherche au sein d’un processus
global de capitalisation des connaissances que nous souhaitons maintenir le plus générique et flexible
possible. La figure 2 présente de façon synthétique la problématique et les objectifs de nos recherches.
3 Contributions de la thèse
Nos travaux de recherche ont donné lieu à plusieurs contributions selon les objectifs que nous venons
de définir ainsi qu’à un certain nombre de publications que nous listons ci-dessous.
Nous avons tout d’abord réalisé un état de l’art des différents axes de recherche abordés par le sujet.
Suite à cela, nous avons mis en place une ontologie de domaine nommée WOOKIE (Weblab Ontology
for Open sources Knowledge and Intelligence Exploitation) dédiée à la représentation des connaissances
spécifiques au ROSO et à la veille de façon plus générale. Nous avons notamment défini, et intégré au
sein de WOOKIE, un modèle de représentation de l’événement en prenant pour base les conclusions de
l’état de l’art. Un événement y est défini comme une entité complexe à quatre dimensions : une dimension
conceptuelle (le type de l’événement), une dimension temporelle (la date de l’événement), une dimension
spatiale (le lieu de l’événement) et une dimension agentive (les participants de l’événement).
Dans un second temps, nous avons élaboré et évalué un système d’extraction d’événements dit
"mixte". En effet, les travaux explorés dans le domaine de l’extraction d’information ayant mis en évidence
un certain nombre de limites aux techniques existantes (symboliques et statistiques), nous nous
sommes orientés vers une approche combinant deux techniques actuelles. La première méthode proposée
consiste en des règles d’extraction élaborées manuellement couplées avec une analyse syntaxique
en dépendance. La seconde est basée sur un apprentissage dit "symbolique" de patrons linguistiques par
extraction de motifs séquentiels fréquents. Nous avons implémenté ces deux extracteurs en prenant pour
base l’ontologie de domaine WOOKIE ainsi que notre représentation des événements et en assurant une
possible intégration au sein de la plateforme WebLab. Une première évaluation de ces deux extracteurs
a été mise en œuvre et publiée (voir les publications ci-dessous). Chacune des deux méthodes a obtenu
des résultats satisfaisants et comparables à l’état de l’art. Cette évaluation a également montré qu’un
processus d’agrégation adapté permettra d’exploiter au mieux les points forts de ces deux approches et
d’ainsi améliorer significativement la qualité de l’extraction d’événements.
Ce processus d’agrégation constitue notre troisième contribution. Pour cela, nous avons exploré notamment
les travaux existants en fusion de données et plus particulièrement en fusion d’informations
textuelles. Nous avons choisi d’élaborer un processus d’agrégation sémantique multi-niveaux : une simi-
8
Copyright c 2013 - CASSIDIAN - All rights reserved3. Contributions de la thèse
FIGURE 2 – Système de capitalisation des connaissances proposé
9
Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction
larité entre événements est estimée au niveau de chaque dimension puis nous définissons un processus
d’agrégation global basé sur ces similarités intermédiaires pour aider l’utilisateur à déterminer si deux
événements extraits réfèrent ou non à un même événement dans la réalité. Les similarités sont exprimées
selon une échelle qualitative définie en prenant en compte les besoins des utilisateurs finaux. Enfin, nous
avons implémenté un prototype d’évaluation permettant l’agrégation des événements suivant le processus.
Nos travaux de recherche ont donné lieu à plusieurs publications dans des conférences nationales et
internationales dans les domaines abordés par cette thèse :
– Serrano, L., Grilheres, B., Bouzid, M., and Charnois, T. (2011). Extraction de connaissances pour
le renseignement en sources ouvertes. In Atelier Sources Ouvertes et Services (SOS 2011) en
conjonction avec la conférence internationale francophone (EGC 2011), Brest, France
– Serrano, L., Charnois, T., Brunessaux, S., Grilheres, B., and Bouzid, M. (2012b). Combinaison
d’approches pour l’extraction automatique d’événements (automatic events extraction by combining
multiple approaches) [in french]. In Actes de la conférence conjointe JEP-TALN-RECITAL
2012, volume 2: TALN, Grenoble, France. ATALA/AFCP
– Serrano, L., Bouzid, M., Charnois, T., and Grilheres, B. (2012a). Vers un système de capitalisation
des connaissances : extraction d’événements par combinaison de plusieurs approches. In Atelier
des Sources Ouvertes au Web de Données (SOS-DLWD’2012) en conjonction avec la conférence
internationale francophone (EGC 2012), Bordeaux, France
– Caron, C., Guillaumont, J., Saval, A., and Serrano, L. (2012). Weblab : une plateforme collaborative
dédiée à la capitalisation de connaissances. In Extraction et gestion des connaissances
(EGC’2012), Bordeaux, France
– Serrano, L., Bouzid, M., Charnois, T., Brunessaux, S., and Grilheres, B. (2013b). Extraction et
agrégation automatique d’événements pour la veille en sources ouvertes : du texte à la connaissance.
In Ingénierie des Connaissances 2013 (IC 2013), Lille, France
– Serrano, L., Bouzid, M., Charnois, T., Brunessaux, S., and Grilheres, B. (2013a). Events extraction
and aggregation for open source intelligence: from text to knowledge. In IEEE International
Conference on Tools with Artificial Intelligence (ICTAI 2013), Washington DC, USA
4 Organisation du mémoire
Ce mémoire est organisé en deux parties reflétant l’ensemble du travail de recherche accompli durant
cette thèse :
– la première partie État de l’art est divisée en trois chapitres et présente l’étude de l’état de l’art
réalisée ;
– la seconde partie Contributions de la thèse, composée de quatre chapitres, expose l’ensemble des
contributions réalisées.
Le premier chapitre, intitulé Représentation des connaissances, propose un tour d’horizon, centré sur
notre problématique, du domaine de la représentation et de la modélisation des connaissances. Nous commençons
par rappeler succinctement les concepts de base dans ce cadre avant d’aborder la thématique de
l’information sémantique avec notamment les travaux autour du Web sémantique et des ontologies. En-
fin, nous centrons notre présentation sur l’objet central à cette thèse – les événements – afin de rappeler
comment ce concept et ses propriétés ont été définis et modélisés jusqu’à nos jours au sein des différents
10
Copyright c 2013 - CASSIDIAN - All rights reservedaxes de recherche mentionnés précédemment.
Le second chapitre Extraction automatique d’information réalise un état de l’art autour de la problé-
matique principale de nos travaux, à savoir l’extraction automatique d’information. Dans celui-ci nous
recensons notamment les différentes recherches menées récemment autour des trois grands types d’objets
de l’EI que sont kes entités nommées, les relations et enfin les événements. Puis, nous nous focalisons
sur des aspects plus applicatifs à travers la présentation de quelques plateformes/logiciels pour l’EI et un
certain nombre de cas d’application dans ce domaine. Nous clôturons ce chapitre en abordant les problé-
matiques d’évaluation et les performances des méthodes proposées en EI.
Le chapitre Capitalisation des connaissances termine cette partie d’état de l’art par une présentation
d’ensemble de la problématique nouvelle que constitue la capitalisation des connaissances. Celle-ci
aborde tout d’abord les travaux liés à notre sujet de recherche dans des domaines tels que la fusion
et la réconciliation de données mais également le mouvement nouveau autour du Web de données. Enfin,
nous présentons un ensemble d’approches existantes visant à appliquer les techniques de capitalisation
au traitement des événements.
En seconde partie, le quatrième chapitre, intitulé Modélisation des connaissances du domaine, dé-
taille la première contribution proposée durant nos travaux de thèse : une modélisation des événements
ainsi qu’une ontologie de domaine nommée WOOKIE. Celles-ci ont été élaborées en fonction des
conclusions de notre état de l’art et de façon adaptée à notre problématique et notre cadre de recherche,
à savoir l’extraction automatique des événements dans le cadre du ROSO.
Le chapitre Extraction automatique des événements constitue le cœur de nos recherches et présente notre
seconde contribution, c’est-à-dire l’ensemble de nos réalisations autour du second axe de nos recherches.
Nous y détaillons, tout d’abord, la méthode que nous avons élaborée pour l’extraction automatique des
entités nommées pour les langues anglais et française. Puis, est explicitée et exemplifiée notre contribution
centrale, à savoir la conception et la réalisation d’une approche pour l’extraction automatique des
événements fondée sur deux méthodes issues de l’état de l’art que nous améliorées et adaptées à notre
problématique et à notre cadre applicatif.
Le chapitre suivant Agrégation sémantique des événements présente les recherches que nous avons menées
dans le cadre du troisième axe "Capitalisation des connaissances". Tout d’abord, nous nous sommes
intéressés à la réconciliation de divers méthodes et systèmes pour proposer une méthodologie générique
d’agrégation sémantique des événements issus des outils d’extraction. Ce chapitre présente ses fondements
autour d’une approche permettant d’estimer la similarité sémantique entre événements et ensuite
de les agréger pour faciliter le travail des analystes du ROSO.
Notre mémoire se poursuit avec le dernier chapitre nommé Expérimentations et résultats dans lequel sont
exposées deux expérimentations réalisées dans le cadre de cette thèse dans le but d’estimer les apports et
limites des contributions présentées. La première évaluation concerne notre approche pour l’extraction
automatique des événements : pour ce faire nous avons employé un corpus de test issu d’une campagne
d’évaluation en EI ainsi que des métriques classiques dans cette discipline. La seconde évaluation est
qualitative est montre l’apport de notre méthode d’agrégation sémantique des événements au travers
d’exemples réels issus de nos travaux. Pour chacune de ces expérimentations nous exposons également
leurs limites ainsi que les perspectives envisagées.
Nous conclurons ce mémoire de recherche en rappelant l’ensemble des contributions réalisées, puis
nous exposerons les différentes perspectives ouvertes par nos travaux.
11
Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction
12
Copyright c 2013 - CASSIDIAN - All rights reservedPremière partie
État de l’art
13
Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction
Cette première partie a pour objectif de réaliser un tour d’horizon de l’existant dans les principaux
domaines abordés par cette thèse. Le premier chapitre de cet état de l’art (chapitre 1) sera centré sur les
concepts et approches actuels en représentation des connaissances. L’accent sera mis ici sur les technologies
du Web sémantique et la modélisation des événements. Le chapitre suivant (chapitre 2) explorera
les principales recherches et réalisations dans le domaine de l’extraction d’information et plus particuliè-
rement les travaux concernant l’une de nos principales problématiques, à savoir l’extraction automatique
des événements. Pour finir, nous aborderons, au travers du chapitre 3, un ensemble de travaux menés
autour de la capitalisation des connaissances, notamment en fusion de données et résolution de coréfé-
rence entre événements. Pour conclure chacun de ces trois chapitres, nous dresserons un bilan des forces
et faiblesses des approches explorées et nous introduirons chacune de nos contributions en réponse à cet
état de l’art.
15
Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction
16
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1
Représentation des connaissances
Sommaire
1.1 Données, informations et connaissances . . . . . . . . . . . . . . . . . . . . . 18
1.2 L’information sémantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.1 Le Web sémantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.2 Les ontologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.2.3 Les langages de représentation . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.4 Inférence et bases de connaissances . . . . . . . . . . . . . . . . . . . . . 23
1.2.5 Les éditeurs d’ontologies . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.3 Modélisation des événements . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.3.1 Qu’est-ce qu’un événement ? . . . . . . . . . . . . . . . . . . . . . . . . 26
1.3.1.1 Les événements en extraction d’information . . . . . . . . . . . . . 27
1.3.1.2 Les ontologies orientées "événement" . . . . . . . . . . . . . . . . 28
1.3.2 Modélisation du temps et de l’espace . . . . . . . . . . . . . . . . . . . . 33
1.3.2.1 Représentation du temps . . . . . . . . . . . . . . . . . . . . . . . 33
1.3.2.2 Représentation de l’espace . . . . . . . . . . . . . . . . . . . . . . 34
1.3.3 Spécifications dédiées au ROSO . . . . . . . . . . . . . . . . . . . . . . . 35
1.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
17
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances
Dans ce premier chapitre nous réalisons un tour d’horizon, centré sur notre problématique de recherche,
des domaines de la représentation et de la modélisation des connaissances. Nous commençons
par rappeler succinctement les concepts de base de donnée, information et connaissance, avant d’aborder
la thématique de l’information sémantique avec notamment les travaux autour du Web sémantique et
des ontologies. Enfin, nous centrons notre présentation sur l’objet central à cette thèse – les événements
– afin de déterminer comment ce concept et ses propriétés sont définis et modélisés par les différents
travaux actuels.
1.1 Données, informations et connaissances
La distinction entre les termes "donnée", "information" et "connaissance" est couramment abordée
dans la littérature liée à la gestion des connaissances [Balmisse, 2002] [Crié, 2003] [Paquet, 2008]. Celleci
est nécessaire afin, d’une part, de mieux comprendre les différentes problématiques soulevées par le
traitement de l’information (au sens large) et, d’autre part, de pointer à quel niveau d’analyse se situent
les différents technologies et outils existants.
Une donnée est généralement définie comme un élément brut non traité et disponible hors de tout
contexte. Une fois collectées et traitées, par le cerveau humain ou par une machine, ces données deviennent
des informations. Une information est le résultat de la contextualisation d’un ensemble de données
afin d’en saisir les liens et de leur donner un sens. L’information est statique et périssable, sa valeur
diminue dans le temps (car dépendante de son contexte qui est amené à varier). A l’inverse, la connaissance
est le résultat d’un processus dynamique visant à assimiler/comprendre les principes sous-jacents
à l’ensemble des informations obtenues. Cette compréhension permet de prévoir l’évolution future d’une
situation et d’entreprendre des actions en conséquence. Sous réserve de cette interprétation profonde,
une plus grande quantité d’information mène à une meilleure connaissance d’un sujet donné.
Prenons par exemple la donnée brute "11/20", sans indication de contexte, cette suite de symboles
peut véhiculer diverses informations et ne peut être exploitée en l’état. Toutefois, si cela fait référence
à la note obtenue an mathématiques par Pierre, cette donnée contextualisée prend du sens et devient
une information. Par ailleurs, si cette première information est associée avec le fait que la moyenne
de la classe s’élève à 13/20, chacun peut faire le lien entre ces deux informations et savoir (obtenir
la connaissance) que Pierre a des difficultés dans cette matière. Ainsi, cette connaissance acquise, les
parents de Pierre pourront, par exemple, prendre la décision de l’inscrire à du soutien scolaire.
La distinction entre ces trois concepts correspond à la dimension hiérarchique de la connaissance
proposée par [Charlot and Lancini, 2002]. Les auteurs définissent quatre autres dimensions dont la dimension
épistémologique introduisant deux grandes formes de connaissance : celle dite "explicite" qui
peut être codifiée et partagée, d’une part, et celle dite "tacite", d’autre part, difficilement exprimable
dans un langage commun et donc peu transmissible. Cette définition suggérée par [Polanyi, 1966] est
largement partagée par les cogniticiens.
Depuis les débuts du Web, ce passage des données aux connaissances s’est placé au centre des pré-
occupations de divers secteurs d’activité (industriel, gouvernemental, académique, etc.). En effet, avec
l’explosion de la quantité d’information mise en ligne, il est devenu primordial, en particulier pour les
organisations, de pouvoir exploiter cette masse afin d’en obtenir des connaissances. Nous sommes passés
ainsi de l’époque des bases de données à celle des bases de connaissances.
18
Copyright c 2013 - CASSIDIAN - All rights reserved1.2. L’information sémantique
1.2 L’information sémantique
Le développement du Web et des NTIC 2
a mis en avant un nouvel enjeu : le partage des connaissances.
D’un Web de documents (Web 1.0) voué à la publication/visualisation statique des informations
grâce au langage HTML, nous avons évolué vers un Web plus collaboratif et dynamique. Ce Web 2.0,
introduit aux débuts des années 2000, a constitué une première évolution dans ce sens en remettant
l’homme au centre de la toile grâce aux blogs, réseaux sociaux, wikis et autres moyens lui permettant
de créer, publier et partager ses propres connaissances. Dès les début du Web 2.0, Tim Berners-Lee évoquait
déjà la prochaine "version" du World Wide Web : le Web sémantique [Berners-Lee et al., 2001].
Les sections suivantes présentent ce Web 3.0 et les différentes technologies associées.
1.2.1 Le Web sémantique
Le Web sémantique désigne un projet d’évolution de notre Web actuel (Web 2.0) initié par le W3C3
.
Cette initiative est aussi connue sous les noms de Web de données, Linked Data, Linked Open Data ou
encore Linking Open Data. L’objectif principal de ce mouvement est de faire en sorte que la quantité de
données exposée sur le Web (qui ne cesse de croître) soit disponible dans un format standard, accessible
et manipulable de manière unifiée par toutes les applications du Web.
Le Web sémantique de Tim Berners-Lee est voué à donner du sens à l’ensemble des données mises
en ligne afin de faciliter la communication entre les hommes et les machines et permettre ainsi à ces
dernières de réaliser des tâches qui incombaient jusqu’alors aux utilisateurs. Par ailleurs, le nom Web
de données met en avant la nécessité de créer des liens entre données pour passer d’un Web organisé
en silos de données déconnectés (ayant leur propres formats, protocoles, applications, etc.) à un espace
unifié sous la forme d’une collection de silos inter-connectés.
La figure 1.1 présente l’état actuel du LOD 4
sous la forme d’un graphe où les noeuds correspondent
à des bases de connaissances respectant les principes du Web sémantique et les arcs représentent les liens
existants. Parmi les plus renommés des silos de données, la base sémantique DBPedia fournit une grande
partie du contenu de Wikipedia et incorpore des liens vers d’autres bases de connaissances telles que
Geonames, par exemple. Ces relations (sous la forme de triplets RDF 5
, voir la section 1.2.3) permettent
aux applications Web d’exploiter la connaissance supplémentaire (et potentiellement plus précise) issue
d’autres bases de connaissances et de fournir ainsi de meilleurs services à leurs utilisateurs.
2. Nouvelles Technologies de l’Information et de la Communication
3. World Wide Web Consortium, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴
4. Linking Open Data cloud diagram, by Richard Cyganiak and Anja Jentzsch. ❤tt♣✿✴✴❧♦❞✲❝❧♦✉❞✳♥❡t✴
5. Resource Description Framework, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴❘❉❋✴
19
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances
As of September 2011
Music
Brainz
(zitgist)
P20
Turismo
de
Zaragoza
yovisto
Yahoo!
Geo
Planet
YAGO
World
Factbook
El
Viajero
Tourism
WordNet
(W3C)
WordNet
(VUA)
VIVO UF
VIVO
Indiana
VIVO
Cornell
VIAF
URI
Burner
Sussex
Reading
Lists
Plymouth
Reading
Lists
UniRef
UniProt
UMBEL
UK Postcodes
legislation
data.gov.uk
Uberblic
UB
Mannheim
TWC LOGD
Twarql
transport
data.gov.
uk
Traffic
Scotland
theses.
fr
Thesaurus
W
totl.net
Telegraphis
TCM
Gene
DIT
Taxon
Concept
Open
Library
(Talis)
tags2con
delicious
t4gm
info
Swedish
Open
Cultural
Heritage
Surge
Radio
Sudoc
STW
RAMEAU
SH
statistics
data.gov.
uk
St.
Andrews
Resource
Lists
ECS
Southampton
EPrints
SSW
Thesaur
us
Smart
Link
Slideshare
2RDF
semantic
web.org
Semantic
Tweet
Semantic
XBRL
SW
Dog
Food
Source Code
Ecosystem
Linked Data
US SEC
(rdfabout)
Sears
Scotland
Geography
Scotland
Pupils &
Exams
Scholarometer
WordNet
(RKB
Explorer)
Wiki
UN/
LOCODE
Ulm
ECS
(RKB
Explorer)
Roma
RESEX
RISKS
RAE2001
Pisa
OS
OAI
NSF
Newcastle
LAAS
KISTI
JISC
IRIT
IEEE
IBM
Eurécom
ERA
ePrints dotAC
DEPLOY
DBLP
(RKB
Explorer)
Crime
Reports
UK
Courseware
CORDIS
(RKB
Explorer)
CiteSeer
Budapest
ACM
riese
Revyu
research
data.gov.
uk Ren.
Energy
Generators
reference
data.gov.
uk
Rechtspraak.
nl
RDF
ohloh
Last.FM
(rdfize)
RDF
Book
Mashup
Rådata
nå!
PSH
Product
Types
Ontology
Product
DB
PBAC
Poké-
pédia
patents
data.go
v.uk
Ox
Points
Ordnance
Survey
Openly
Local
Open
Library
Open
Cyc
Open
Corporates
Open
Calais
OpenEI
Open
Election
Data
Project
Open
Data
Thesaurus
Ontos
News
Portal
OGOLOD
Janus
AMP
Ocean
Drilling
Codices
New
York
Times
NVD
ntnusc
NTU
Resource
Lists
Norwegian
MeSH
NDL
subjects
ndlna
my
Experiment
Italian
Museums
meducator
MARC
Codes
List
Manchester
Reading
Lists
Lotico
Weather
Stations
London
Gazette
LOIUS
Linked
Open
Colors
lobid
Resources
lobid
Organisations
LEM
Linked
MDB
LinkedL
CCN
Linked
GeoData
LinkedCT
Linked
User
Feedback
LOV
Linked
Open
Numbers
LODE
Eurostat
(Ontology
Central)
Linked
EDGAR
(Ontology
Central)
Linked
Crunchbase
lingvoj
Lichfield
Spending
LIBRIS
Lexvo
LCSH
DBLP
(L3S)
Linked
Sensor Data
(Kno.e.sis)
Klappstuhlclub
Goodwin
Family
National
Radioactivity
JP
Jamendo
(DBtune)
Italian
public
schools
ISTAT
Immigration
iServe
IdRef
Sudoc
NSZL
Catalog
Hellenic
PD
Hellenic
FBD
Piedmont
Accomodations
GovTrack
GovWILD
Google
Art
wrapper
gnoss
GESIS
GeoWord
Net
Geo
Species
Geo
Names
Geo
Linked
Data
GEMET
GTAA
STITCH
SIDER
Project
Gutenberg
Medi
Care
Eurostat
(FUB)
EURES
Drug
Bank
Diseasome
DBLP
(FU
Berlin)
Daily
Med
CORDIS
(FUB)
Freebase
flickr
wrappr
Fishes
of Texas
Finnish
Municipalities
ChEMBL
FanHubz
Event
Media
EUTC
Productions
Eurostat
Europeana
EUNIS
EU
Institutions
ESD
standards
EARTh
Enipedia
Population
(EnAKTing)
NHS
(EnAKTing)
Mortality
(EnAKTing)
Energy
(EnAKTing)
Crime
(EnAKTing)
CO2
Emission
(EnAKTing)
EEA
SISVU
educatio
n.data.g
ov.uk
ECS
Southampton
ECCOTCP
GND
Didactal
ia
DDC Deutsche
Biographie
data
dcs
Music
Brainz
(DBTune)
Magnatune
John
Peel
(DBTune)
Classical
(DB
Tune)
Audio
Scrobbler
(DBTune)
Last.FM
artists
(DBTune)
DB
Tropes
Portuguese
DBpedia
dbpedia
lite
Greek
DBpedia
DBpedia
dataopenac-uk
SMC
Journals
Pokedex
Airports
NASA
(Data
Incubator)
Music
Brainz
(Data
Moseley
Incubator)
Folk
Metoffice
Weather
Forecasts
Discogs
(Data
Incubator)
Climbing
data.gov.uk
intervals
Data
Gov.ie
data
bnf.fr
Cornetto
reegle
Chronicling
America
Chem2
Bio2RDF
Calames
business
data.gov.
uk
Bricklink
Brazilian
Politicians
BNB
UniSTS
UniPath
way
UniParc
Taxono
my
UniProt
(Bio2RDF)
SGD
Reactome
PubMed
Pub
Chem
PROSITE
ProDom
Pfam
PDB
OMIM
MGI
KEGG
Reaction
KEGG
Pathway
KEGG
Glycan
KEGG
Enzyme
KEGG
Drug
KEGG
Compound
InterPro
Homolo
Gene
HGNC
Gene
Ontology
GeneID
Affymetrix
bible
ontology
BibBase
FTS
BBC
Wildlife
Finder
BBC
Program
mes BBC
Music
Alpine
Ski
Austria
LOCAH
Amsterdam
Museum
AGROV
OC
AEMET
US Census
(rdfabout)
Media
Geographic
Publications
Government
Cross-domain
Life sciences
User-generated content
FIGURE 1.1 – Linking Open Data
20
Copyright c 2013 - CASSIDIAN - All rights reserved1.2. L’information sémantique
Pour mettre en œuvre les principes du Web sémantique, le W3C recommande un ensemble de technologies
du Web sémantique (RDF, OWL, SKOS, SPARQL, etc.) fournissant un environnement dans lequel
les applications du Web peuvent partager une modélisation commune, interroger "sémantiquement" le
LOD (Linked Open Data), inférer de nouvelles connaissances à partir de l’existant, etc.
1.2.2 Les ontologies
Le concept d’ontologie s’avère aujourd’hui indissociable du Web sémantique. Toutefois, les ontologies
ne sont pas nouvelles et sont les héritières des travaux en Ontologie (la science de l’Être) menés
par des philosophes de le Grèce antique tels qu’Aristote ou Platon. L’ontologie telle qu’on l’entend en
informatique est maintenant assez éloignée de ces études menées au carrefour entre la métaphysique et
la philosophie.
Plusieurs définitions ont été proposées dont celles de [Gruber, 1993] et [Neches et al., 1991]. Le
premier donne une définition très abstraite des ontologies mais largement admise dans la littérature :
"Une ontologie est une spécification explicite d’une conceptualisation" 6
. Le second propose celle-ci :
"Une ontologie définit les termes et les relations de base du vocabulaire d’un domaine ainsi queMaître
de conférences les règles qui permettent de combiner les termes et les relations afin de pouvoir étendre le
vocabulaire" 7
. La définition de [Gruber, 1993] renvoie à deux caractéristiques principales des ontologies
à savoir, d’une part, l’élaboration d’un modèle abstrait de l’existant (conceptualisation) et, d’autre part,
sa formalisation en vue d’une exploitation par des machines (spécification explicite).
Les ontologies à l’ère du Web sémantique sont aux bases de connaissances ce que les modèles de
données sont aux bases de données [Charlet et al., 2004]. Elles définissent l’ensemble des objets du
domaine de connaissances ciblé ainsi que les attributs et relations caractérisant ces objets. Les objets
sont représentés sous forme de concepts hiérarchisés constituant la taxonomie de classes de l’ontologie.
Cette relation de subsomption se retrouve dans toutes les ontologies, quelque soit le domaine concerné :
les classes de plus haut niveau dans la hiérarchie correspondent à des concepts généraux et les classes
inférieures représentent des concepts plus spécifiques. S’ajoutent à cette taxonomie des relations entre
concepts de nature diverse ainsi que des attributs de concepts. Les premières ont pour domaine ("domain"
en anglais) et co-domaine ("range" en anglais) des classes de l’ontologie tandis que les seconds ont pour
domaine une classe et pour co-domaine une valeur d’un certain type (chaine de caractères, nombre, date,
booléen, etc.). Ce type de modélisation implique un phénomène d’héritage : chaque classe de l’ontologie
hérite des propriétés (relations et attributs) de sa classe supérieure (dite "classe mère"). Pour résumer,
nous pouvons dire qu’une ontologie définit sémantiquement et de façon non-ambigüe un ensemble de
concepts et propriétés issus d’un consensus.
Un exemple commun dans la communauté d’ingénierie des connaissances est l’ontologie des pizza.owl
servant couramment de base aux tutoriels dédiés aux ontologies. Cet exemple-type très complet contient
un ensemble de classes, propriétés, attributs et instances du domaine ainsi que des fonctionnalités plus
avancées de contraintes, cardinalités et axiomes. L’annexe G présente une vue d’ensemble de cette ontologie
grâce au logiciel Protégé (présenté en section 1.2.5).
6. traduction de l’anglais "An ontology is an explicit specification of a conceptualization"
7. traduction de l’anglais "An ontology defines the basic terms and relations comprising the vocabulary of a topic area as
well as the rules for combining terms and relations to define extensions to the vocabulary"
21
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances
Par ailleurs, on distingue différents types d’ontologie selon la portée de la modélisation [Guarino,
1998] : les ontologies dites "générales" ou "de haut niveau", les ontologies de domaine, de tâche ou
d’application. Les premières visent à décrire les objets du monde communs à plusieurs domaines tels
que le temps et l’espace alors que les trois autres types modélisent des concepts spécifiques. La création
d’ontologies de haut niveau est parfois vue comme une utopie et la majorité des travaux de la littérature
se fondent sur des ontologies de domaine.
Plusieurs aspects peuvent rendre la construction d’une ontologie délicate et coûteuse en temps. En
effet, ce travail de modélisation comporte une part de subjectivité car plusieurs visions d’un même domaine
sont possibles et le temps pour arriver à un consensus peut s’en trouver allongé. Ce phénomène
s’amplifie avec la complexité du domaine à modéliser mais également avec la taille de la communauté
concernée. Afin de faciliter la tâche d’élaboration d’une ontologie des travaux tels que [Noy and Mcguinness,
2001], [Mizoguchi, 2003a] ou encore [Mizoguchi, 2003b] suggèrent un ensemble de bonnes
pratiques.
1.2.3 Les langages de représentation
Pour permettre aux ordinateurs d’exploiter cette modélisation, des langages informatiques de spéci-
fication d’ontologie ont été créés dans le cadre du Web Sémantique.
Les premiers langages ont été développés par la DARPA au début des années 2000, il s’agit de
DAML 8
, OIL 9
[Fensel et al., 2001] ou DAML+OIL [Horrocks, 2002]. Ceux-ci sont les ancêtres des
langages RDFS et OWL 10 devenus les recommandations actuelles du W3C. La majorité d’entre eux
est fondée sur des formalismes inspirés du modèle des assertions en logique de premier ordre. RDF est
le formalisme recommandé par le W3C mais d’autres existent tels que Common Logic 11 [Bachmair
and Ganzinger, 2001], DOGMA 12 [Jarrar and Meersman, 2009], KIF 13 [Genesereth, 1991], F-Logic 14
[Kifer et al., 1995], etc.
RDF est un formalisme pour la représentation de faits sur le Web fondé sur la notion de triplet. Tel les
assertions en logique des prédicats, un triplet RDF est composé de trois éléments : un sujet, un prédicat
et un objet. Le sujet et le prédicat sont des ressources et, dans le cas du Web sémantique, il s’agit de tout
objet pouvant être identifié (une page Web, une personne, une propriété, etc.). Une ressource Web est
représentée par un URI 15 qui peut être, par commodité, raccourci grâce à un espace de nom (namespace).
L’objet du triplet, quant à lui, peut être soit une ressource (le triplet exprime une relation entre objets)
soit une valeur (le triplet exprime un attribut d’un objet). L’ensemble des valeurs possibles en RDF
est emprunté du format XML. Bien que le W3C recommande l’utilisation du formalisme RDF/XML,
d’autres types de sérialisation existent telles que les formats N3 (Notation3), N-triples, Turtle, JSON,
etc.
8. DARPA Agent Markup Language
9. Ontology Inference Layer
10. Ontology Web Language, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴❚❘✴♦✇❧✲❢❡❛t✉r❡s✴
11. ❤tt♣✿✴✴✐s♦✲❝♦♠♠♦♥❧♦❣✐❝✳♦r❣✴
12. Developing Ontology-Grounded Methods and Applications, ❤tt♣✿✴✴✇✇✇✳st❛r❧❛❜✳✈✉❜✳❛❝✳❜❡✴r❡s❡❛r❝❤✴❞♦❣♠❛✳
❤t♠
13. Knowledge Interchange Format, ❤tt♣✿✴✴✇✇✇✳❦s❧✳st❛♥❢♦r❞✳❡❞✉✴❦♥♦✇❧❡❞❣❡✲s❤❛r✐♥❣✴❦✐❢✴
14. Frame Logic
15. Uniform Resource Identifier
22
Copyright c 2013 - CASSIDIAN - All rights reserved1.2. L’information sémantique
Le langage RDFS est une première extension de RDF visant à structurer les ressources pour la
spécification des ontologies. Les propriétés les plus utilisées du formalisme RDFS sont les suivantes :
rdfs :Class, rdfs :subClassOf, rdfs :domain, rdfs :range et rdfs :label. Les deux premières servent à défi-
nir la taxonomie de l’ontologie, les deux suivantes permettant de formaliser la notion de sujet et d’objet
et enfin, la propriété label sert à nommer les éléments de l’ontologie (classes et propriétés).
Enfin, le langage largement privilégié aujourd’hui pour la modélisation des ontologies est OWL. Dé-
veloppé depuis 2002 par un groupe de travail du W3C, celui-ci constitue une seconde extension plus
expressive du standard RDF/XML. OWL permet notamment grâce à des constructeurs d’exprimer des
contraintes supplémentaires sur les classes et propriétés définies : disjonction, union et intersection de
classes, propriétés symétriques, inverses, etc. Une majeure partie de ces constructeurs est directement
issue des logiques de description permettant des mécanismes d’inférence sur les connaissances de l’ontologie.
Précisons également que le langage OWL se décline en plusieurs sous-langages selon leurs
niveaux d’expressivité : OWL-Lite, OWL-DL et OWL-Full. Nous présentons en annexe H un extrait de
l’ontologie pizza.owl exprimée au format OWL.
1.2.4 Inférence et bases de connaissances
Nous pouvons définir l’inférence comme le fait de déduire de nouvelles connaissances par une analyse
de l’existant. Dans le cas des ontologies, il s’agit concrètement de découvrir de nouveaux triplets à
partir des triplets connus en exploitant la structure de l’ontologie et les contraintes logiques spécifiées.
Autrement dit, l’inférence permet de faire apparaître automatiquement des faits implicites que l’œil humain
ne peut détecter car ils sont masqués par la complexité de la modélisation. Ce genre de raisonnement
peut être effectué au niveau de l’ontologie en elle-même (terminological box ou TBox) ou au niveau des
instances de l’ontologie (assertional box ou ABox). Il faut noter que plus le langage de représentation
utilisé est expressif, plus l’inférence sera complexe voire impossible à mettre en œuvre. Dans le cas du
langage OWL, la complexité de l’inférence est croissante lorsque l’on passe du sous-langage OWL-Lite à
OWL-DL et enfin à OWL-Full. Ces mécanismes d’inférence sont implémentés dans des raisonneurs tels
que Pellet 16, Fact++ 17 ou encore Hermitt 18. Lorsque la complexité de la modélisation est trop élevée
pour ces raisonneurs, il est possible de définir des règles d’inférence manuellement grâce à des langages
tels que SWRL 19 ou Jena rules 20
.
Ces mécanismes de déduction constituent une réelle plus-value des ontologies car ils permettent,
d’une part, de vérifier la qualité des bases de connaissance construites et, d’autre part, d’y ajouter de
nouvelles connaissances de façon entièrement automatique. Les systèmes de gestion de base de données
classiques (MySQL, Oracle Database, IBM DB2, etc.) ont vu se créer leurs équivalents sémantiques,
nommés triplestores, permettant le stockage et le requêtage de triplets RDF. Les grands fournisseurs de
SGBD propriétaires adaptent aujourd’hui leurs solutions au Web sémantique et des triplestores opensource
sont également disponibles comme Sesame 21, Virtuoso 22 ou encore Fuseki 23. La récupération
16. ❤tt♣✿✴✴❝❧❛r❦♣❛rs✐❛✳❝♦♠✴♣❡❧❧❡t✴
17. ❤tt♣✿✴✴♦✇❧✳♠❛♥✳❛❝✳✉❦✴❢❛❝t♣❧✉s♣❧✉s✴
18. ❤tt♣✿✴✴✇✇✇✳❤❡r♠✐t✲r❡❛s♦♥❡r✳❝♦♠✴
19. Semantic Web Rule Language, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴❙✉❜♠✐ss✐♦♥✴❙❲❘▲✴
20. ❤tt♣✿✴✴❥❡♥❛✳❛♣❛❝❤❡✳♦r❣✴❞♦❝✉♠❡♥t❛t✐♦♥✴✐♥❢❡r❡♥❝❡✴
21. openRDF, ❤tt♣✿✴✴✇✇✇✳♦♣❡♥r❞❢✳♦r❣✴
22. OpenLink, ❤tt♣✿✴✴✈✐rt✉♦s♦✳♦♣❡♥❧✐♥❦s✇✳❝♦♠✴
23. Apache Jena, ❤tt♣✿✴✴❥❡♥❛✳❛♣❛❝❤❡✳♦r❣✴
23
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances
de ces données sémantiques est réalisée majoritairement grâce au langage SPARQL 24, l’équivalent sé-
mantique du langage SQL 25 dont l’usage est recommandé par le W3C pour l’interrogation de bases
de connaissances sémantiques. La requête ci-dessous, par exemple, permet de récupérer l’ensemble des
entités de type foaf :Person dont le nom de famille commence par la lettre S.
PREFIX r d f : < h t t p : / / www. w3 . o r g / 1 9 9 9/ 0 2/ 2 2 − r d f −s y nt a x −n s #>
PREFIX f o a f : < h t t p : / / xmlns . com / f o a f / 0 . 1 / >
SELECT ? f ? l WHERE
{
? p r d f : t y p e f o a f : P e r s o n .
? p f o a f : f i r s t N a m e ? f .
? p f o a f : l a stN am e ? l .
FILTER ( r e g e x ( ? l , "^ S " ) )
}
1.2.5 Les éditeurs d’ontologies
Bien que l’intérêt pour les ontologies sur le Web soit relativement récent, de nombreux outils ont
été développés dans le but de modéliser et de manipuler des ontologies. Le principal atout de ces logiciels
est la possibilité de gérer une ontologie dans l’un des formats cités précédemment sans avoir à
modifier manuellement le code sous-jacent. Nous présentons ici quelques logiciels distribués librement
et gratuitement.
Tout d’abord, SWOOP 26 est un éditeur simplifié d’ontologies open-source, développé par l’université
du Maryland. Implémenté en Java, cet outil supporte les formats RDF (différentes sérialisations) et
OWL. Parallèlement à ses fonctions d’édition, Swoop permet d’effectuer des raisonnements et propose
un service de recherche des ontologies existantes.
D’autre part, OntoWiki 27 est une application Web conçue comme un wiki permettant de gérer une
ontologie de manière simple et collaborative. Cet outil est développé par le groupe de recherche AKSW 28
de l’université de Leipzig, également connu pour leur projet DBPedia. Cet outil supporte plusieurs formats
tels que RDF/XML, Notation3, Turtle ou encore Talis(JSON). L’accent est également mis sur
l’aspect Linked Data et l’intégration de ressources externes. Des extensions sont disponibles pour par
exemple attacher des pages de wiki à des ressources de l’ontologie, visualiser des informations statistiques
grâce à CubeViz ou encore intégrer des fonds de carte géographiques.
L’outil TopBraid Composer 29 est fourni par la société anglo-saxonne TopQuadrant et s’insrcit dans
la suite d’outils professionnels TopBraid Suite. Plusieurs versions de TopBraid Composer sont disponibles
dont une édition gratuite Free Edition (FE). Cette application est implémentée en Java grâce à la
plateforme Eclipse et exploite les fonctionnalités de la librairie Apache Jena. Elle supporte l’import et
24. SPARQL Protocol and RDF Query Language, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴❚❘✴s♣❛rq❧✶✶✲♦✈❡r✈✐❡✇✴
25. Structured Query Language
26. ❤tt♣✿✴✴❝♦❞❡✳❣♦♦❣❧❡✳❝♦♠✴♣✴s✇♦♦♣✴
27. ❤tt♣✿✴✴♦♥t♦✇✐❦✐✳♥❡t✴Pr♦❥❡❝ts✴❖♥t♦❲✐❦✐
28. Agile Knowledge engineering and Semantic Web
29. ❤tt♣✿✴✴✇✇✇✳t♦♣q✉❛❞r❛♥t✳❝♦♠✴♣r♦❞✉❝ts✴❚❇❴❈♦♠♣♦s❡r✳❤t♠❧
24
Copyright c 2013 - CASSIDIAN - All rights reserved1.3. Modélisation des événements
l’export de fichiers en langage RDF(S), OWL et OWL2 et son système de built-ins ouvre de nombreuses
autres fonctionnalités telles que l’utilisation de divers moteurs d’inférence, le requêtage en SPARQL, le
développement de règles d’inférence en SWRL, les vérification d’intégrité et gestion des exceptions.
L’application Apollo 30 est développée par le Knowledge Media Institute (KMI). Cet outil implémentée
en Java fournit les fonctions basiques de création d’ontologie et présente une bonne flexibilité grâce
à son système de plug-ins. Toutefois, Apollo ne permet pas de mécanismes d’inférence et est fondé sur
son propre métalangage ce qui ne facilite pas l’interopérabilité avec d’autres outils.
NeOn Toolkit 31 est un autre environnement open-source très complet d’ingénierie des ontologies issu
du projet européen NeOn. Cet outil est particulièrement adapté à la gestion d’ontologies multi-modulaires
ou multilingues, à la fusion d’ontologies et à leur intégration dans des applications sémantiques plus
larges. L’accent y est mis sur la contextualisation et la mise en réseau de modélisations hétérogènes et
sur les aspects collaboratifs de la gestion d’ontologies. Fondé sur l’environnement de développement
Eclipse, NeOn Toolkit propose l’intégration de divers plugins pour la modélisation visuelle, l’apprentissage
et l’alignement d’ontologie, la définition de règles d’inférence, etc. Son architecture ouverte et
modulaire est compatible avec les architectures orientées services (SOA) [Haase et al., 2008].
Terminons par l’éditeur d’ontologies le plus renommé et le plus utilisé dans la communauté d’ingé-
nierie des connaissances : l’environnement Protégé 32. Créé par les chercheurs de l’université de Stanford,
Protégé est développé en Java, gratuit et open-source. Il s’agit d’une plateforme d’aide à la création, la
visualisation et la manipulation d’ontologies dans divers formats de représentation (RDF, RDFS, OWL,
etc.). Ce logiciel peut également être utilisé en combinaison avec divers moteurs d’inférence (tels que
RacerPro ou Fact) afin d’effectuer des raisonnements et d’obtenir de nouvelles assertions. De plus, de
par la flexibilité de son architecture, Protégé est facilement configurable et extensible par les plugins dé-
veloppés au sein d’autres projets. La figure 1.2 présente une vue de l’ontologie-exemple pizza.owl dans
l’environnement Protégé. Enfin, les créateurs de cet outil mettent l’accent sur l’aspect collaboratif dans
la modélisation d’ontologies en proposant Collaborative Protégé et WebProtégé. Le premier est une extension
intégrée à Protégé permettant à plusieurs utilisateurs d’éditer la même ontologie et de commenter
les modifications effectuées par chacun. Un système de vote rend également possible la concertation sur
tel ou tel changement. WebProtégé est une application Web légère et open-source reprenant les principes
de Collaborative Protégé dans le contexte du Web. Elle permet une édition d’ontologies collaborative et
à distance.
Pour une description plus détaillée et une comparaison plus poussée de ces éditeurs, nous renvoyons
le lecteur aux présentations faites par [Alatrish, 2012] et [Charlet et al., 2004].
1.3 Modélisation des événements
Le concept d’événement étant au centre de nos travaux, les sections suivantes visent à définir plus
précisément cette notion complexe. Nous nous intéressons aux différentes visions de l’événement dans
la littérature et plus particulièrement dans les domaines de l’extraction d’information et du Web sémantique.
Nous résumons les grands courants de représentation des événements dans le but de les extraire
30. ❤tt♣✿✴✴❛♣♦❧❧♦✳♦♣❡♥✳❛❝✳✉❦✴
31. ❤tt♣✿✴✴♥❡♦♥✲t♦♦❧❦✐t✳♦r❣
32. ❤tt♣✿✴✴♣r♦t❡❣❡✳st❛♥❢♦r❞✳❡❞✉✴
25
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances
FIGURE 1.2 – L’environnement Protégé
automatiquement. Puis, nous réalisons un état des lieux des ontologies existantes centrées sur la modé-
lisation des événements. Enfin, un focus est proposé sur les questions de représentation du temps et de
l’espace qui sont des aspects importants dans le traitement des événements.
1.3.1 Qu’est-ce qu’un événement ?
Considéré comme une entité aux propriétés bien spécifiques, l’événement a initialement été étudié
par des philosophes [Davidson, 1967] puis par des linguistes [Van De Velde, 2006] [Desclés, 1990] (voir
[Casati and Varzi, 1997] pour une bibliographie exhaustive).
[Higginbotham et al., 2000] compare quelques définitions de l’événement et met notamment l’accent
sur deux courants traditionnels opposés : les événements comme concepts universaux (généraux et répé-
tables) d’une part, et particuliers (spécifiques et uniques), d’autre part. Dans le premier courant, on peut
citer [Montague, 1969] pour lequel les événements sont des propriétés attribuées à des instants (ou des
intervalles) dans le temps, ou encore [Chisholm, 1970] qui les définit comme des situations ("states of
affairs") pouvant décrire le même intervalle de temps de façon différente. Par ailleurs, [Quine, 1960] et
[Kim, 1973] appartiennent au second courant : les événements sont définis comme des objets particuliers
("individuals"). Le premier considère que les événements ont le même statut que les objets physiques et
portent le contenu (parfois hétérogène) d’une portion de l’espace-temps. Il n’y a donc qu’un seul et même
événement possible par région spatio-temporelle mais ce même événement peut donner lieu à différentes
descriptions linguistiques. [Kim, 1973] se place à l’opposé de cette vision en permettant à un nombre
26
Copyright c 2013 - CASSIDIAN - All rights reserved1.3. Modélisation des événements
indéfini d’événements d’occuper un seul et même moment. L’événement est ici un objet concret (ou
une collection d’objets) exemplifiant une propriété (ou un ensemble de propriétés) à un moment donné.
Enfin, une position intermédiaire est celle de [Davidson, 1969] qui considère les événements selon leur
place dans un réseau de causalité : des événements sont identiques s’ils partagent les mêmes causes et
les mêmes effets. Cependant, ce même auteur reviendra plus tard vers la thèse de Quine.
Suite à ces réflexions sur la nature des événements (qui est encore débattue à l’heure actuelle),
d’autres recherches ont vu le jour en linguistique, analyse du discours et philosophie du langage. En
effet, les événements étant avant tout des objets sociaux, leur étude doit se faire entre étroite corrélation
avec la manière dont ils sont relatés et exprimés par l’homme. Parmi ces travaux nous pouvons
citer [Krieg-Planque, 2009]. Celle-ci donne une définition simple de l’événement mais qui nous paraît
très juste : "un événement est une occurrence perçue comme signifiante dans un certain cadre". Ici, le
terme "occurrence" met l’accent sur la notion de temporalité qui est reconnue comme partie intégrante
de ce concept par la quasi totalité des travaux. Le "cadre" selon Krieg-Planque réfère à "un système d’attentes
donné" qui "détermine le fait que l’occurrence acquiert (ou non) [...] sa remarquabilité [...] et, par
conséquent, est promue (ou non) au rang d’événement.". C’est ici qu’est fait le lien avec la sociologie
et l’histoire : tout événement prend place dans un milieu social qui détermine l’obtention de son statut
"remarquable".
Enfin, [Neveu and Quéré, 1996] s’attachent à décrire plus précisément l’apparition des événements
dits "modernes", façonnés et relayés par les médias actuels. Ils soulignent que l’interprétation d’un évé-
nement est étroitement liée au contenu sémantique des termes utilisés pour nommer cet événement. Pour
plus de clarté nous appellerons ces termes des "noms d’événement". Ces "noms d’événement" transposent
en langage naturel la "propriété sémantique" des événements mentionnée par [Saval, 2011]. Cette
description de l’événement est également au centre d’un phénomène plus large, que [Ricœur, 1983]
nomme "mise en intrigue" : celui-ci vise à organiser, selon le cadre mentionné plus haut, un ensemble
d’éléments circonstants ou participants de l’événement.
1.3.1.1 Les événements en extraction d’information
On distingue actuellement deux grandes visions de l’événement dans la communauté de l’extraction
d’information [Ahn, 2006]. D’une part, l’approche TimeML provient de recherches menées en 2002 dans
le cadre du programme AQUAINT 33 fondé par l’ARPA 34. D’autre part, le modèle ACE a été défini dans
la tâche Event Detection and Recognition (VDR) des campagnes d’évaluation du même nom à partir de
2005.
L’approche TimeML [Pustejovsky et al., 2003] définit les événements de la façon suivante : "situations
that happen or occur [...] predicates describing states or circumstances in which something obtains
or holds true". Ceux-ci peuvent être ponctuels ou duratifs et sont organisés en sept types : Occurrence,
State, Reporting, I-Action, I-State, Aspectual, Perception. L’événement est considéré conjointement à
trois autres types d’entité : TIMEX, SIGNAL et LINK. Les objets TIMEX correspondent aux entités temporelles
simples telles que les expressions de dates et heures, durée, fréquence, etc. (annotées par des
étiquettes TIMEX3 36). Les entités SIGNAL correspondent à des mots fonctionnels exprimant des rela-
33. Advanced Question Answering for Intelligence, ❤tt♣✿✴✴✇✇✇✲♥❧♣✐r✳♥✐st✳❣♦✈✴♣r♦❥❡❝ts✴❛q✉❛✐♥t✴
34. ancien nom de la DARPA, Defense Advanced Research Projects Agency, 35
36. ❤tt♣✿✴✴t✐♠❡♠❧✳♦r❣✴s✐t❡✴t✐♠❡❜❛♥❦✴❞♦❝✉♠❡♥t❛t✐♦♥✲✶✳✷✳❤t♠❧
27
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances
tions temporelles. Il peut s’agir de prépositions de temps (pendant, après, etc.), de connecteurs temporels
(quand, lorsque, etc.), de mots subordonnants (si, etc.), d’indicateurs de polarité (négation) ou encore de
quantifieurs (dix fois, souvent, etc.). Enfin, les annotations LINK font le lien entre les différentes entités
temporelles (EVENT, TIMEX et SIGNAL). Ces liens sont de trois types : TLINK (liens temporels entre
événements ou entre un événement et une autre entité de type TIMEX), SLINK (liens de subordination
entre deux événements ou entre un événement et une entité SIGNAL), ALINK (liens aspectuels entre un
événement aspectuel et son argument).
Dans le modèle ACE [NIST, 2005] un événement est vu comme une structure complexe impliquant
plusieurs arguments pouvant également être complexes. L’aspect temporel correspond ici à un type d’argument
mais n’est pas au centre de la modélisation. Ce modèle définit un ensemble de types et sous-types
d’événement (8 types comme Life, Movement, Business, etc. et 33 sous-types comme Marry, DeclareBankruptcy,
Convict, Attack, etc.) et associe à chaque événement un ensemble d’arguments autorisés
pouvant être des entités ou des valeurs et auxquels est associé un rôle (parmi 35 rôles dont Time, Place,
Agent, Instrument, etc. [LDC, 2005]). Par ailleurs, les événements tels que définis dans la campagne
ACE possèdent des attributs tels que le temps, la modalité, la polarité ou encore la généricité. Enfin,
comme pour les autres types d’entité, on distingue la notion de mention d’événement, d’une part, qui
correspond à une portion de texte constituée d’une ancre d’événement et de ses arguments et, d’autre
part, l’événement en lui-même, c’est-à-dire un ensemble de mentions d’événement qui réfère au même
objet du monde réel.
Ces deux modèles sont différents sur plusieurs aspects, la divergence principale étant que la première
approche vise à annoter tous les évènements d’un texte, alors que la seconde a pour cibles uniquement
les événements d’intérêt pour une application donnée. Le modèle TimeML, considérant un événement
comme tout terme temporellement ancré, est généralement choisi dans des projets où cet aspect est
central (pour la construction de chronologies par exemple). L’approche ACE est la plus utilisée car
elle s’applique aux besoins de divers domaines mais implique toutefois un processus d’annotation plus
complexe à mettre en place (la représentation de l’événement étant elle-même plus complexe).
1.3.1.2 Les ontologies orientées "événement"
Plusieurs ontologies disponibles sur le Web proposent une modélisation spécifique au concept d’évé-
nement. Nous présentons ci-après les caractéristiques principales de cinq d’entre elles :
– The Event Ontology (EO) 37
– Linking Open Descriptions of Events (LODE) 38
– Simple Event Model (SEM) 39
– DOLCE-UltraLite (DUL) 40
– CIDOC Conceptual Reference Model (CIDOC CRM) 41
The Event Ontology a été développée par les chercheurs Yves Raimond et Samer Abdallah du Centre
for Digital Music à Londres [Raimond et al., 2007] et sa dernière version date d’octobre 2007. Cette
37. ❤tt♣✿✴✴♠♦t♦♦❧s✳s♦✉r❝❡❢♦r❣❡✳♥❡t✴❡✈❡♥t✴❡✈❡♥t✳❤t♠❧
38. ❤tt♣✿✴✴❧✐♥❦❡❞❡✈❡♥ts✳♦r❣✴♦♥t♦❧♦❣②
39. ❤tt♣✿✴✴s❡♠❛♥t✐❝✇❡❜✳❝s✳✈✉✳♥❧✴✷✵✵✾✴✶✶✴s❡♠✴
40. ❤tt♣✿✴✴♦♥t♦❧♦❣②❞❡s✐❣♥♣❛tt❡r♥s✳♦r❣✴♦♥t✴❞✉❧✴❉❯▲✳♦✇❧
41. ❝✐❞♦❝✲❝r♠✳♦r❣✴
28
Copyright c 2013 - CASSIDIAN - All rights reserved1.3. Modélisation des événements
ontologie est centrée sur la notion d’événement telle que [Allen and Ferguson, 1994] la définissent : "[...]
events are primarily linguistic or cognitive in nature. That is, the world does not really contain events.
Rather, events are the way by which agents classify certain useful and relevant patterns of change.".
Cette ontologie des événements à été développée dans le cadre du projet Music Ontology et est donc
particulièrement adaptée à la représentation des événements dans ce domaine (concerts, représentations,
etc.). Comme le montre la figure 1.3, cette modélisation se veut générique et s’appuie sur des ontologies
largement utilisées telles que FOAF, ainsi que sur des standards de représentation spatio-temporelle
recommandés par le W3C42. Toutefois, la classe Event n’est pas sous-typée et les propriétés factor et
product paraissent vaguement définies (pas de co-domaine).
FIGURE 1.3 – L’ontologie Event : modélisation des événements
L’ontologie LODE [Troncy et al., 2010] a été créée dans le cadre du projet européen EventMedia 43
[Fialho et al., 2010]. Ce projet vise à concevoir un environnement Web permettant aux internautes d’explorer,
de sélectionner et de partager des événements. L’ontologie est au centre de cette initiative car
elle constitue le socle commun pour représenter et stocker des événements provenant de sources hétérogènes.
Les concepteurs de cette ontologie la présente comme un modèle minimal dont l’objectif premier
est, dans la mouvance du LOD (Linked Open Data), de créer des liens entre les ontologies existantes
afin de représenter les aspects faisant consensus dans la communauté de représentation des événements.
Pour ce faire, un certain nombre d’alignements entre ontologies est implémenté dans LODE tels que des
équivalences de classes et propriétés avec les ontologies DUL, EO, CIDOC CRM, etc. Cette interopérabilité
permet notamment d’obtenir des connaissances supplémentaires lors des mécanismes d’inférence.
Cette ontologie n’est donc pas réellement une ontologie des événements mais plutôt un outil d’alignement
des modélisations existantes. Enfin, les concepteurs ont exclu pour le moment tout travail sur la
sous-catégorisation des événements et la définition de relations entre événements (inclusion, causalité,
etc.). Les figures 1.4 et 1.5 schématisent respectivement les relations entre concepts et les relations entre
propriétés dans LODE.
42. ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴✷✵✵✻✴t✐♠❡★ et ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴✷✵✵✸✴✵✶✴❣❡♦✴✇❣s✽✹❴♣♦s★
43. ❤tt♣✿✴✴❡✈❡♥t♠❡❞✐❛✳❝✇✐✳♥❧✴
29
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances
FIGURE 1.4 – LODE : modélisation des événements
FIGURE 1.5 – LODE : alignements entre propriétés
L’ontologie SEM a été créée par le groupe Web & Media de l’université d’Amsterdam [van Hage
et al., 2011]. Elle décrit les événements dans le but de répondre à la question "who did what with what to
whom, where and when ?" mais aussi dans une perspective d’interopérabilité entre différents domaines.
Une particularité de SEM est l’accent mis sur la représentation des rôles associés aux acteurs impliqués
dans un événement. SEM permet de modéliser la nature du rôle, des informations temporelles sur sa validité
mais également la source l’ayant attribué à l’acteur. Dans le même objectif que LODE, SEM fournit
de nombreux liens (sous la forme de propriétés SKOS 44) avec une dizaine d’ontologies existantes : ontologies
dédiées aux événements (EO, LODE, etc.), standards W3C (Time, WGS84), ontologies de haut
niveau reconnues (SUMO, OpenCyc, etc.), etc. Toutefois, les événements dans cette ontologie ne sont
pas sous-typés et, mise à part la propriété hasSubEvent, aucune autre relation entre événements n’est mo-
44. Simple Knowledge Organization System, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴✷✵✵✹✴✵✷✴s❦♦s✴
30
Copyright c 2013 - CASSIDIAN - All rights reserved1.3. Modélisation des événements
délisée. La figure 1.6, fournie par les développeurs de l’ontologie, schématise les concepts et relations
principaux dans SEM.
FIGURE 1.6 – SEM : modélisation des événements
DUL (DOLCE+DnS-UltraLite) est une ontologie développée par le laboratoire italien STLab 45 à
la suite de DOLCE 46, une ontologie de haut niveau créée dans le cadre du projet WonderWeb 47. Un
événement y est défini comme suit : "Any physical, social, or mental process, event, or state.". Plus
concrètement, la classe Event est spécifiée en deux sous-classes Action et Process, la première se diffé-
renciant de la seconde par la propriété executesTask indiquant l’objectif de l’action. Comme le montre
la figure 1.7, cette ontologie de haut niveau ne comporte pas de liens vers d’autres modélisations et
notamment la représentation spatio-temporelle des événements y reste peu définie.
Pour finir, le modèle CIDOC CRM est un standard international ISO pour le partage d’information
dans le domaine du patrimoine culturel. Celui-ci est développé depuis 1994 et distribué au format OWL
par les chercheurs de l’Université d’Erlangen-Nuremberg en Allemagne 48. L’événement est une sousclasse
de TemporalEntity et y est défini comme un changement d’état : "changes of states in cultural,
social or physical systems, regardless of scale, brought about by a series or group of coherent physical,
cultural, technological or legal phenomena.". La figure 1.8 présente une vue globale de l’organisation
des différents concepts de cette ontologie avec un focus sur la classe Event. Les différentes propriétés de
l’événement sont schématisées dans la figure 1.9. Les remarques faites sur DUL (absence de liens vers
d’autres ontologies et représentation spatio-temporelle peu définie) s’appliquent également à cette ontologie.
Par ailleurs, la distinction entre les concepts Event, Period et Condition State n’est pas clairement
45. Semantic Technology laboratory
46. Descriptive Ontology for Linguistic and Cognitive Engineering
47. ❤tt♣✿✴✴✇♦♥❞❡r✇❡❜✳s❡♠❛♥t✐❝✇❡❜✳♦r❣✴
48. ❤tt♣✿✴✴❡r❧❛♥❣❡♥✲❝r♠✳♦r❣
31
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances
FIGURE 1.7 – DUL : modélisation des événements
définie. Enfin, bien que CIDOC CRM se veuille générique et définisse de nombreuses sous-classes de
l’événement, cette taxonomie ne paraît pas s’appliquer à tous les domaines.
FIGURE 1.8 – CIDOC CRM : taxonomie des classes
32
Copyright c 2013 - CASSIDIAN - All rights reserved1.3. Modélisation des événements
FIGURE 1.9 – CIDOC CRM : modélisation des événements
1.3.2 Modélisation du temps et de l’espace
Comme l’ont montré les sections précédentes, la définition des événements est indissociable des notions
de temps et d’espace. Bien que ces concepts soient intuitivement compréhensibles par tous, leur
modélisation en vue de traitements automatisés n’est pas chose aisée. En effet, le temps et l’espace
peuvent revêtir différentes dimensions sociologiques et physiques donnant lieu à diverses représentations.
Nous proposons ci-après un résumé des grands courants théoriques de représentation temporelle
et spatiale ainsi que quelques exemples d’ontologies associées.
1.3.2.1 Représentation du temps
On distingue classiquement deux types de représentation temporelle : d’une part, une vue sous forme
de points/instants et, d’autre part, un découpage du continuum temporel en intervalles/périodes. Les
travaux les plus connus sont ceux de [McDermott, 1982] pour la représentation en points et ceux de
[Allen, 1983] pour les intervalles. Le premier considère l’espace temps comme une succession de points
et définit les relations suivantes entre deux points ti et tj :
(ti < tj ) ∨ (ti > tj ) ∨ (ti = tj )
Allen définit l’unité temporelle de base comme étant un intervalle de temps et propose une algèbre
composée de 13 relations (voir la figure 1.10). Ces deux modèles temporels sont les plus utilisés mais
d’autre types ont été proposés pour, par exemple, hybrider ces deux approches. De nombreuses recherches
sont menées également dans diverses disciplines (philosophie, informatique théorique, bases
de données, etc.) sur d’autres problématiques liées au temps telles que les logiques et les contraintes
temporelles, le raisonnement sur le temps, etc. [Allen, 1991] [Hayes, 1995]
Parmi ces travaux, [Ladkin, 1987] propose un système de représentation du temps faisant le lien entre
les nombreux modèles théoriques développés et les besoins applicatifs de traitement du temps. Il s’agit
33
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances
FIGURE 1.10 – Algèbre temporel d’Allen
du Time Unit System (TUS), une approche hiérarchique et granulaire qui représente toute expression
temporelle en un groupe de granules (c’est-à-dire des unités temporelles indivisibles). Un granule (ou
unité de temps) est une séquence finie d’entiers organisés selon une hiérarchie linéaire : année, mois,
jour, heure, etc. De plus, ce formalisme introduit la notion de BTU (Basic Time Unit) qui correspond
au niveau de granularité choisi en fonction de la précision nécessitée par une application (e.g. les jours,
les secondes, etc.). Par exemple, si le BTU est fixé à heure, chaque unité temporelle sera exprimée
comme une séquence d’entiers i telle que : i = [année,mois,jour,heure]. De plus, TUS définit la fonction
maxj ([a1, a2, ..., aj−1]) donnant la valeur maximale possible à la position j pour qu’une séquence temporelle
soit valide en tant que date. Cet opérateur est nécessaire car, selon notre actuel système calendaire,
le granule jour dépend des granules mois et année.
Depuis les débuts du Web sémantique, les chercheurs se sont intéressés à l’application des modèles
théoriques existants pour la construction d’ontologies temporelles. L’ontologie OWL Time 49, issue d’un
groupe de travail du W3C, est la plus connue et la plus utilisée actuellement. Celle-ci définit un concept de
base TemporalEntity, spécifié en instants et intervalles. On y trouve également les relations temporelles
issues de l’algèbre d’Allen ainsi qu’un découpage calendaire du temps (année, mois, jour, heure, minute
et seconde).
1.3.2.2 Représentation de l’espace
Du côté de la représentation spatiale, les premières approches proviennent des mathématiques : d’une
part, Euclide définit plusieurs catégories d’objets géométriques de base (points, lignes, surfaces, etc.)
ainsi que leurs propriétés et relations ; d’autre part, Descartes considère le point comme élément fondamental
et propose un modèle numérique de représentation géographique en associant à chaque point un
ensemble de valeurs pour chacune de ses dimensions (coordonnées cartésiennes). Ces deux modélisations
constituent la vision classique de l’espace en termes de points.
49. ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴❚❘✴♦✇❧✲t✐♠❡✴
34
Copyright c 2013 - CASSIDIAN - All rights reserved1.3. Modélisation des événements
Plus récemment, se développe une vision alternative où l’unité de base de modélisation spatiale est
la région. Introduite par [Whitehead, 1920], celle-ci se fonde sur une perception plus commune de l’espace
et est également désignée sous le nom de "géométrie du monde sensible". Cette représentation dite
aussi qualitative (en contraste avec les premières approches quantitatives) permet de décrire toute entité
spatiale selon les trois concepts suivants : intérieur, frontière et extérieur. Ce principe est à l’origine de
l’analyse topologique visant à décrire les relations spatiales selon cette notion de limite. Cette proposition
de Whitehead a donné lieu à l’élaboration de diverses théories de l’espace fondées sur les régions
dont [Tarski, 1956]. Ce mode de représentation a été celui adopté par la communauté de l’Intelligence
Artificielle parce qu’étant plus proche de la vision humaine et donc plus applicatif. Le modèle RCC-8 de
[Randell et al., 1992] est le formalisme de premier ordre le plus utilisé pour modéliser et raisonner sur
des entités spatiales. Il s’agit d’une transposition de l’algèbre d’Allen au problème de la représentation
spatiale. Ce modèle comprend huit types de relation entre deux régions spatiales schématisés par la figure
1.11.
FIGURE 1.11 – Les relations topologiques RCC-8
Du côté du Web sémantique, [Minard, 2008] propose un état de l’art de quelques ontologies d’objets
géographiques développées notamment par des laboratoires spécialisés tels que l’INSEE, l’IGN ou
AGROVOC. S’ajoutent à ces ontologies de nombreux thésaurus et bases de connaissances géographiques
telles que la plus renommée GeoNames 50. Il nous faut mentionner également le groupe de travail W3C
Geospatial Incubator Group (GeoXG) 51 et le consortium international OGC52 qui collaborent depuis
quelques années pour faciliter l’interopérabilité entre les systèmes d’information géographique (SIG)
dans le cadre du Web sémantique. Plusieurs initiatives en découlent dont le vocabulaire WGS84 Geo
Positioning 53, le langage de balisage GML 54 ou encore le langage de requête GeoSPARQL 55
.
1.3.3 Spécifications dédiées au ROSO
Nous proposons ici un tour d’horizon des modélisations réalisées et exploitées dans le domaine militaire
et de la sécurité au sens large.
50. ❤tt♣✿✴✴✇✇✇✳❣❡♦♥❛♠❡s✳♦r❣
51. ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴✷✵✵✺✴■♥❝✉❜❛t♦r✴❣❡♦✴❳●❘✲❣❡♦✲♦♥t✲✷✵✵✼✶✵✷✸✴
52. Open Geospatial Consortium, ❤tt♣✿✴✴✇✇✇✳♦♣❡♥❣❡♦s♣❛t✐❛❧✳♦r❣✴
53. ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴✷✵✵✸✴✵✶✴❣❡♦✴✇❣s✽✹❴♣♦s★
54. Geography Markup Language, ❤tt♣✿✴✴✇✇✇✳♦♣❡♥❣❡♦s♣❛t✐❛❧✳♦r❣✴st❛♥❞❛r❞s✴❣♠❧
55. ❤tt♣✿✴✴❣❡♦s♣❛rq❧✳♦r❣✴
35
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances
Une première catégorie de ressources existantes sont les standards OTAN 56 dits STANAGs 57. Ceuxci
sont des accords de normalisation ratifiés par les pays de l’Alliance pour faciliter les interactions entre
leurs armées. Ces documents définissent des procédures, termes et conditions formant un référentiel commun
(technique, opérationnel ou administratif) dédié à être mis en œuvre au sein des différents services
militaires de l’OTAN. Certains sont spécifiques aux systèmes d’information et de communication (SIC)
tels que les NATO Military Intelligence Data Exchange Standard [NATO, 2001] et Joint Consultation
Command Control Information Exchange Data Model [NATO, 2007]. Le premier, également nommé
STANAG 2433 ou AINTP-3(A), a pour objectif l’échange de l’information et de l’intelligence au sein
de l’Alliance et la proposition d’un ensemble de standards d’implémentation. Les structures de données
qui y sont définies constituent un exemple pour les pays membres qui, pour la plupart, s’en sont inspirés
dans la conception de leurs bases de données. Le second accord, dit STANAG 5525 ou JC3IEDM, sert
d’interface commune pour l’échange d’informations sur le champ de bataille. Il vise une interopérabilité
internationale entre les systèmes d’information de type C2 (Command and Control) pour faciliter
le commandement des opérations interarmées. Ces standards militaires ne sont pas des ontologies mais
définissent un ensemble de concepts (et relations entre ces concepts) spécifiques à certaines procédures.
Ceux-ci sont organisés de façon hiérarchique et décrits le plus précisément possible en langage naturel.
Ces modèles sont généralement très complets et très bien documentés car ils sont destinés à des
opérateurs humains spécialistes du sujet traité.
Par ailleurs, nous pouvons citer l’agence de recherche américaine IARPA 58 et son programme OSI 59
dont l’objectif est le développement de méthodes pour l’analyse des données accessibles publiquement.
Cette organisation finance des projets d’innovation technologique pour la détection automatique et l’anticipation
d’événements sociétaux tels que les situations de crise, catastrophes naturelles, etc. Dans le
cadre de ce programme a été développée la typologie IDEA 60 incluant environ 250 types d’événements
sociaux, économiques et politiques ainsi que des entités simples avec lesquelles ils sont en relation [Bond
et al., 2003].
Du côté des ontologies, on recense notamment les modélisations swint-terrorism [Mannes and Golbeck,
2005], reprenant les concepts principaux nécessaires au domaine du terrorisme, et AKTiveSA
[Smart et al., 2007], dédiée à la description des contextes opérationnels militaires autres que la guerre.
[Baumgartner and Retschitzegger, 2006] réalise également un état de l’art des ontologies de haut niveau
dédiées à la tenue de situation (situation awareness). [Inyaem et al., 2010b] s’attache à la définition
d’une ontologie floue pour l’extraction automatique d’événements terroristes. Toutefois, comme dans
beaucoup de travaux de ce domaine, l’ontologie développée n’est pas distribuée publiquement pour des
raisons stratégiques et/ou de confidentialité. Le site web ❤tt♣✿✴✴♠✐❧✐t❛r②♦♥t♦❧♦❣②✳❝♦♠ recense un
certain nombre d’ontologies pour le domaine militaire.
Enfin, [Bowman et al., 2001] et [Boury-Brisset, 2003] proposent un ensemble de conseils méthodologiques
pour la construction d’ontologies dédiées aux applications militaires et stratégiques.
56. Organisation du Traité de l’Atlantique Nord
57. STANdardization AGreement, ❤tt♣✿✴✴✇✇✇✳♥❛t♦✳✐♥t✴❝♣s✴❡♥✴♥❛t♦❧✐✈❡✴st❛♥❛❣✳❤t♠
58. Intelligence Advanced Research Projects Activity, ❤tt♣✿✴✴✇✇✇✳✐❛r♣❛✳❣♦✈✴
59. Open Source Indicators, ❤tt♣✿✴✴✇✇✇✳✐❛r♣❛✳❣♦✈✴Pr♦❣r❛♠s✴✐❛✴❖❙■✴♦s✐✳❤t♠❧
60. Integrated Data for Events Analysis, ❤tt♣✿✴✴✈r❛♥❡t✳❝♦♠✴■❉❊❆✳❛s♣①
36
Copyright c 2013 - CASSIDIAN - All rights reserved1.4. Conclusions
1.4 Conclusions
A travers ce premier état de l’art, nous avons pu nous familiariser avec les différentes problématiques
de la représentation des connaissances au sens large. Nous avons, dans un premier temps, rappelé une
distinction importante antre les notions de donnée, information et connaissance qui constitue l’une de
bases théoriques de ce domaine. Nous avons, par la suite, présenté, dans leur ensemble, les principes et
technologies du Web sémantique qui sont partie intégrante d’une majorité de travaux actuels en fouille de
documents et dont l’adéquation à cette problématique n’est plus à prouver. Enfin, nous avons réalisé un
focus sur la place des événements en représentation des connaissances et présenté les différentes théories
et modèles de la littérature. Dans un souci d’interopérabilité avec les systèmes existants, nous avons
privilégié l’utilisation de modèles communs au sein de nos travaux tout en les adaptant aux besoins
spécifiques de notre application si nécessaire. Le modèle ACE, très utilisé par la communauté en EI,
nous parait bien adapté à la modélisation des événements dans le cadre de nos recherches. En effet,
comme nous l’avons montré dans ce chapitre, celui-ci est compatible avec les besoins des analystes du
ROSO ainsi qu’avec le modèle de données de la plateforme WebLab. Nous avons par la suite réalisé
un tour d’horizon des ontologies centrées sur les événements déjà développées et réutilisables : les plus
communes présentent toutes des similarités de structure et un effort est réalisé dans la communauté
pour lier les différentes modélisations entre elles via des alignements ontologiques. Parmi celles-ci, les
ontologies DUL et LODE présentent le plus de correspondances avec nos travaux. L’ensemble de ces
observations seront prises en compte lors de l’élaboration de notre modèle de connaissances présentée
au chapitre 4.
37
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 1. Représentation des connaissances
38
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2
Extraction automatique d’information
Sommaire
2.1 Définition et objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.2 Approches d’extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
2.2.1 Extraction d’entités nommées et résolution de coréférence . . . . . . . . . 43
2.2.2 Extraction de relations . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.2.3 Extraction d’événements . . . . . . . . . . . . . . . . . . . . . . . . . . 48
2.3 Plateformes et logiciels pour l’EI . . . . . . . . . . . . . . . . . . . . . . . . . 50
2.4 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.5 Évaluation des systèmes d’EI . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
2.5.1 Campagnes et projets d’évaluation . . . . . . . . . . . . . . . . . . . . . 54
2.5.2 Performances, atouts et faiblesses des méthodes existantes . . . . . . . . . 56
2.6 Problèmes ouverts . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
2.7 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
39
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information
Depuis les débuts du Traitement Automatique du Langage dans les années 60-70, la compréhension
automatique de textes est l’objet de nombreuses recherches. L’objectif principal est de permettre à un
ordinateur de comprendre le sens global d’un document comme savent le faire les êtres humains. Les
échecs récurrents des systèmes alors développés mettent rapidement en cause une vision trop générique
de la compréhension automatique. En effet, de tels outils s’avèrent alors inutilisables dans un contexte
opérationnel en raison du coût élevé des adaptations nécessaires (bases de connaissances et ressources
lexicales spécifiques). Conscients d’être trop ambitieux au regard des possibilités technologiques, les
chercheurs s’orientent alors vers des techniques plus réalistes d’extraction d’information. S’il n’est pas
directement possible de comprendre automatiquement un texte, le repérage et l’extraction des principaux
éléments de sens apparaît comme un objectif plus raisonnable. Cette réorientation théorique est reprise
de façon détaillée par [Poibeau, 2003].
Ce chapitre présente tout d’abord les objectifs principaux de l’extraction d’information (section 2.1),
puis une synthèse des méthodes les plus couramment mises en œuvre dans ce domaine (section 2.2). Pour
cela, nous distinguons les travaux existants selon la nature des informations extraites : entités nommées,
relations entre entités et événements. Quelques travaux en résolution de coréférence sont également
présentés. La section 2.3 propose un tour d’horizon des outils et plateformes existants pour le développement
de systèmes d’extraction d’information. Nous parcourons ensuite (section 2.4) quelques-unes des
applications possibles dans ce domaine. Pour conclure ce chapitre, la section 2.5 aborde le problème
de l’évaluation en extraction d’information à travers une revue des campagnes d’évaluation, puis une
présentation des performances (atouts et faiblesses) des systèmes existants et enfin, un récapitulatif des
limites restantes à l’heure actuelle.
2.1 Définition et objectifs
Face à l’augmentation vertigineuse des documents textuels mis à disposition de tous, l’extraction
automatique d’information voit un intérêt grandissant depuis une vingtaine d’années. En effet, noyés
sous cette masse d’information non-structurée, nous rêvons d’un système automatique capable, dans nos
tâches quotidiennes (professionnelles ou personnelles), de repérer et d’extraire de façon rapide et efficace
les informations dont nous avons besoin. En réponse à cela, les systèmes développés visent à analyser un
texte de manière automatique afin d’en extraire un ensemble d’informations jugées pertinentes [Hobbs
and Riloff, 2010]. Il s’agit généralement de construire une représentation structurée (bases de données,
fiches, tableaux) à partir d’un ou plusieurs documents à l’origine non-structurés. Cela en fait une approche
guidée par le but de l’application dans laquelle elle s’intègre, dépendance qui reste, à l’heure
actuelle, une limite majeure des systèmes d’extraction [Poibeau, 2003].
L’extraction d’information (EI) a souvent été confondue avec un autre domaine de l’intelligence artificielle
(IA) qu’est la recherche d’information (RI). Bien que cet amalgame s’explique car ces deux
champs de recherche partagent un objectif premier — présenter à l’utilisateur des informations qui ré-
pondent à son besoin — ceux-ci diffèrent sur plusieurs autres points. Tout d’abord, les outils de RI
renvoient généralement une liste de documents à l’utilisateur alors qu’en extraction d’information les
résultats sont des éléments d’information extraits de ces documents. Par ailleurs, la recherche d’information
s’attache à répondre à une requête exprimée par un utilisateur grâce à un système de mots-clés
(ou d’autres mécanismes plus sophistiqués de recherche sémantique) [Vlahovic, 2011]. Dans le domaine
de l’EI, la réponse des outils est guidée par une définition a priori des éléments d’information à repérer
40
Copyright c 2013 - CASSIDIAN - All rights reserved2.1. Définition et objectifs
dans un ensemble de textes. Malgré ces distinctions et comme c’est le cas avec d’autres disciplines du
TALN 61, l’EI est utile à la RI et inversement. Les systèmes d’extraction d’information bénéficient souvent
de la capacité de filtrage des outils de RI en focalisant leur analyse sur un ensemble déterminé de
documents. A l’inverse, la recherche d’information peut exploiter les informations extraites par les outils
d’EI en tant que champs de recherche additionnels et ainsi améliorer le filtrage et l’ordonnancement des
documents pour une requête donnée.
Les tâches les plus communes en extraction d’information sont l’extraction d’entités nommées [Nadeau
and Sekine, 2007], le repérage de relations entre ces entités [Rosario and Hearst, 2005] et la dé-
tection d’événements [Naughton et al., 2006]. Celles-ci se distinguent par la nature et la complexité des
informations que l’on cherche à repérer et à extraire automatiquement : entités nommées, relations ou
événements. Nous détaillons ci-après les objets d’étude et les objectifs spécifiques à chaque tâche.
La reconnaissance d’entités nommées (REN) vise à reconnaître et catégoriser automatiquement un
ensemble d’éléments d’information qui correspondent généralement à des noms propres (noms de personnes,
organisations, lieux) mais aussi aux dates, unités monétaires, pourcentages, unités de mesure,
etc. Ces objets sont communément appelés "entités nommées" et s’avèrent indispensables pour saisir le
sens d’un texte. Le terme "entité nommée" (EN) n’est apparu en EI que très récemment lors de la 6ème
édition des campagnes d’évaluation MUC62 (voir la section 2.5) et sa définition est encore aujourd’hui
l’objet de nombreuses discussions. Ce terme renvoie à la théorie de la "référence directe" évoquée dès
la fin du 19ème siècle par des philosophes du langage tels que John Stuart Mill. A l’heure actuelle, une
majorité de travaux se retrouvent dans la définition proposée par [Kripke, 1980] sous le nom de "désignateurs
rigides" : "entités fortement référentielles désignant directement un objet du monde". Il nous
faut également souligner que ces entités nommées dites "entités simples" constituent généralement un
premier niveau de la chaîne d’extraction et permettent la détection de structures plus complexes que sont
les relations et les événements. A cette première tâche d’extraction est couramment associé le problème
de résolution de coréférence entre EN. La résolution de coréférence vise à regrouper plusieurs extractions
ayant des formes de surface différentes mais référant à la même entité du monde : par exemple,
"Big Apple" et "New York", ou encore "JFK" et "John Fitzgerald Kennedy". Ce problème a surtout été
exploré conjointement à la détection d’entités nommées mais cette problématique est applicable à tout
type d’extraction. Dans les campagnes MUC, la résolution de coréférence fait partie d’un ensemble de
tâches nommé SemEval (Semantic Evaluation) ayant pour objectif une compréhension plus profonde des
textes [Grishman and Sundheim, 1996]. De plus, la différentiation entre les termes "mention" et "entité"
introduite lors des campagnes ACE 63 (voir la section 2.5) met en avant ce besoin de regrouper plusieurs
"mentions" d’une entité provenant d’un ou plusieurs textes. Nous détaillons dans la section 2.2.1 les mé-
thodes employées pour la reconnaissance de ces entités nommées et la résolution de coréférence entre
ces entités.
L’extraction de relations a pour objet d’étude les liens existants entre plusieurs entités : celle-ci
peut-être binaire (entre deux objets) ou n-aire (plus de deux objets en relation). Il s’agit par exemple de
détecter dans un corpus de documents que Barack Obama est l’actuel président des États-Unis, ce qui
se traduira par une relation de type "président de" entre l’entité de type Personne "Barack Obama" et
l’entité de type Lieu "États-Unis". La détection de relations n-aires correspond à ce que l’on nomme en
anglais "record extraction" où il s’agit de repérer un réseau de relations entre entités et dont l’extraction
61. Traitement Automatique du Langage Naturel
62. Message Understanding Conference, ❤tt♣✿✴✴✇✇✇✲♥❧♣✐r✳♥✐st✳❣♦✈✴r❡❧❛t❡❞❴♣r♦❥❡❝ts✴♠✉❝✴
63. Automatic Content Extraction, ❤tt♣✿✴✴✇✇✇✳✐t❧✳♥✐st✳❣♦✈✴✐❛❞✴♠✐❣✴t❡sts✴❛❝❡✴
41
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information
d’événements fait partie. Cette problématique diffère de la tâche de reconnaissance des entités nommées
sur un point essentiel. Une entité nommée correspond à une portion séquentielle de texte et peut être
directement représentée par une annotation délimitant le début et la fin de cette séquence. Une relation
entre entités ne correspond pas directement à un ensemble consécutif de mots mais représente un lien
entre deux portions de texte. Cela implique des processus et des formats d’annotation différents pour ces
deux types de tâches. Dans la section 2.2.2, nous nous focaliserons sur les méthodes utilisées pour la
détection de relations binaires, les relations n-aires seront abordées par le biais de l’extraction des événements.
Est couramment associée à cette tâche d’EI l’extraction d’attributs ayant pour objectif d’extraire
automatiquement un ensemble pré-défini de propriétés rattachées à ces entités, le type de ces propriétés
dépendant directement de la nature de l’objet en question. Par exemple pour une personne, on pourra
extraire son nom et son prénom, sa nationalité, son âge, etc. et pour une entreprise, son siège social, le
nombre d’employés, etc.
L’extraction des événements est une autre tâche de l’EI très étudiée. Celle-ci peut être conçue comme
une forme particulière d’extraction de relations où une "action" est liée à d’autres entités telles qu’une
date, un lieu, des participants, etc. Comme cela a été décrit dans les sections 1.3 et 1.3.1.2, cette définition
peut varier selon les points de vue théoriques et les applications et donne lieu à différentes représentations
et ontologies dédiées aux événements. La détection d’événements s’avère particulièrement utile dans les
activités de veille en général et intéresse de plus en plus les entreprises de nombreux domaines pour ses
applications en intelligence économique et stratégique [Capet et al., 2011]. Nous présentons par la suite
(en section 2.2.3) un tour d’horizon des techniques utilisées pour le repérage des événements dans les
textes.
2.2 Approches d’extraction
En extraction d’information émergent historiquement deux principaux types d’approche : l’extraction
basée sur des techniques linguistiques d’un côté et les systèmes statistiques à base d’apprentissage de
l’autre. Cette distinction se retrouve largement en IA et dans les autres disciplines du TALN telles que la
traduction automatique, etc.
Le premier type d’approche est nommé dans la littérature "approche symbolique", "à base de connaissances",
"déclarative", "à base de règles" ou encore "système-expert" et exploite les avancées en TALN.
Celles-ci reposent principalement sur une définition manuelle de toutes les formes linguistiques permettant
d’exprimer l’information ciblée, autrement dit l’ensemble des contextes d’apparition de telle
entité ou relation. Cela se traduit généralement par l’utilisation de grammaires formelles constituées de
règles et patrons linguistiques élaborés par des experts-linguistes. Ces patrons sont généralement de deux
types : les patrons lexico-syntaxiques et les patrons lexico-sémantiques. Les premiers associent des caractéristiques
de mot (forme fléchie, lemme, genre, casse, etc.) à des indices structurels et de dépendance
(syntagmatiques, phrastiques ou textuels). Les patrons lexico-sémantiques y ajoutent des éléments sé-
mantiques tels que la projection de lexiques (gazetteers), l’utilisation de réseaux sémantiques externes
tels que WordNet 64 ou encore d’ontologies [Hogenboom et al., 2011]. Les méthodes symboliques ont
pour principales faiblesses leur taux de rappel peu élevé et leur coût de développement manuel coûteux.
64. ❤tt♣✿✴✴❣❧♦❜❛❧✇♦r❞♥❡t✳♦r❣
42
Copyright c 2013 - CASSIDIAN - All rights reserved2.2. Approches d’extraction
Le second type d’approche utilise des techniques statistiques pour apprendre des régularités sur
de larges corpus de textes où les entités-cibles ont été préalablement annotées (domaine du "machine
learning"). Ces méthodes d’apprentissage sont supervisées, non-supervisées ou semi-supervisées et exploitent
des caractéristiques textuelles plus ou moins linguistiques. Parmi celles-ci nous pouvons citer les
"Modèles de Markov Caché" (Hidden Markov Models, HMM), les "Champs Conditionnels Aléatoires"
(Conditional Random Fields, CRF), les "Machines à Vecteur de Support" (Support Vector Machines,
SVM), etc. ([Ireson et al., 2005] pour un état de l’art approfondi). Les principales limites de ce second
type d’approche restent qu’elles nécessitent une grande quantité de données annotées pour leur phase
d’apprentissage et produisent des modèles de type "boite noire" qui restent à l’heure actuelle difficilement
accessibles et interprétables. Pour répondre à ce problème, des méthodes non-supervisées telles que
[Etzioni et al., 2005] proposent d’utiliser des techniques de clustering pour extraire des entités d’intérêt.
Depuis quelques années, les méthodes hybrides tendent à se généraliser : les acteurs du domaine
combinent plusieurs techniques face aux limites des approches symboliques et statistiques. De plus en
plus de recherches portent sur l’apprentissage de ressources linguistiques ou encore sur l’utilisation d’un
apprentissage dit "semi-supervisé" visant à combiner des données étiquetées et non-étiquetées ([Nadeau
and Sekine, 2007], [Hobbs and Riloff, 2010]). Afin de diminuer l’effort de développement des systèmes
symboliques, certains travaux s’intéressent à l’apprentissage automatique de règles d’extraction. A partir
d’un corpus annoté, l’objectif est de trouver un ensemble minimal de règles permettant d’atteindre les
meilleures performances, c’est-à-dire la meilleure balance entre précision et rappel (voir la section 2.5
pour une définition de ces mesures). Ces approches sont soit ascendantes ("bottom-up" en anglais) lorsqu’elles
ont pour point de départ un ensemble de règles très spécifiques et opèrent des généralisations
pour augmenter la couverture du système [Califf and Mooney, 2003] ; soit descendantes ("top-down"
en anglais) lorsqu’elles partent d’un ensemble de règles très génériques pour arriver, par spécialisations
successives, à un système plus précis [Soderland, 1999]. [Muslea, 1999] propose un tour d’horizon des
grands types de règle résultant d’un apprentissage automatique.
Toutes ces méthodes reposent généralement sur des pré-traitements linguistiques dits "classiques"
comme la "tokenization" (découpage en mots), la lemmatisation (attribution de la forme non-fléchie
associée), l’analyse morphologique (structure et propriétés d’un mot) ou syntaxique (structure d’une
phrase et relations entre éléments d’une phrase). Notons ici l’importance particulière accordée à l’analyse
syntaxique (en constituants ou dépendance) dans le repérage et le typage des relations et des événements.
Nous détaillons par la suite quelques techniques couramment mises en œuvre selon le type d’objet à
extraire : entité nommée, relation ou événement.
2.2.1 Extraction d’entités nommées et résolution de coréférence
La reconnaissance automatique d’entités nommées fut consacrée comme l’une des tâches principales
de l’EI lors de la 6ème campagne d’évaluation MUC. Les systèmes alors proposés s’attellent à l’extraction
de trois types d’entités définis sous les noms "ENAMEX", "TIMEX" et "NUMEX" correspondant
respectivement aux noms propres (personnes, lieux, organisations, etc.), entités temporelles et entités
numériques. Cette classification n’est pas la seule dans la littérature, [Daille et al., 2000] aborde notamment
la distinction entre les catégorisations dites "référentielles" (telles que celle de MUC) et celles dites
"graphiques". Les premières classent les entités nommées selon la nature des objets du monde auxquels
elles renvoient tandis que les secondes proposent une classification selon la composition graphique des
43
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information
entités. A titre d’exemple, une classification inspirée de [Jonasson, 1994] distingue les entités nommées
"pures simples", des EN "pures complexes" et des EN "mixtes". Quelque soit la catégorisation choisie,
celle-ci est fixée a priori dans la majorité des applications. A l’inverse, les récents travaux autour de la
construction d’ontologies et de bases de connaissances à partir de textes mettent en œuvre une extraction
"tous types confondus" pour en déduire a posteriori une classification.
L’extraction des entités nommées est généralement déroulée en deux phases : leur repérage dans
le texte et leur typage selon la catégorisation pré-définie. [Nadeau and Sekine, 2007] propose un état
de l’art des différentes approches explorées jusqu’à nos jours pour réaliser cette tâche : on y retrouve
l’opposition "classique" (abordée dans la section précédente) entre méthodes symboliques et statistiques
ainsi que l’intérêt récent pour les approches hybrides. Par ailleurs, [Friburger, 2006] présente les aspects
linguistiques les plus communément exploités par les systèmes de REN.
Les approches à base de règles linguistiques sont les plus anciennes et, bien que coûteuses car elles
sont définies manuellement par un expert, elles s’avèrent généralement plus rapides à l’exécution et plus
personnalisables. L’ensemble de règles s’apparente à une grammaire locale et vise à définir de façon la
plus exhaustive possible les différents contextes d’apparition de telle entité. De nombreux formats d’expression
de règles d’extraction existent (CPSL [Appelt and Onyshkevych, 1998], JAPE [Cunningham
et al., 2000], DataLog [Ceri et al., 1989], etc.) et celles-ci partagent la structure générique suivante :
regle : contexte → action
La partie contexte est composée de plusieurs propositions décrivant un contexte textuel au moyen
de diverses caractéristiques linguistiques et formelles. Le repérage des entités nommées se base géné-
ralement sur la présence de majuscules puis leur catégorisation est réalisée grâce à des listes de noms
propres connus ou de mots dits "catégorisants" (par exemple les prénoms). Ces caractéristiques peuvent
être des attributs associés aux tokens (unités lexicales correspondant plus ou moins à un découpage en
mots), à des segments plus larges tels que les syntagmes, à la phrase ou au texte dans son entier. Elles
peuvent provenir de l’entité elle-même ou de son co-texte (respectivement "internal evidence" et "external
evidence" [McDonald, 1996]). Lorsque le contexte est repéré dans le corpus à traiter, la partie action
de la règle est exécutée. Il s’agit dans la plupart des cas d’apposer une annotation d’un certain type sur
tout ou partie du contexte textuel repéré.
Afin de gérer d’éventuels conflits lors de l’exécution d’un ensemble de règles, la plupart des systèmes
intègrent des polices d’exécution sous forme d’heuristiques (par exemple : la règle qui produit
l’annotation la plus longue est privilégiée) ou d’attribution de priorité à chaque règle. Par ailleurs, les
systèmes à base de règles sont couramment implémentés en cascade, c’est-à-dire que les annotations
fournies par un premier ensemble de règles peuvent être réutilisées en entrée d’un second ensemble de
règles. [Wakao et al., 1996] développe le système LaSIE, une chaine de traitement symbolique fondée
sur des grammaires d’unification exprimées en Prolog. Cet extracteur d’EN pour l’anglais a été évalué
sur un ensemble d’articles du Wall Street Journal et atteint une F-mesure d’environ 92%. A la même
période, l’ancien Stanford Research Center propose FASTUS (sponsorisé par la DARPA), un automate
à états finis non-déterministe pour l’extraction d’entités nommées (sur le modèle de MUC-4) dans des
textes en anglais et en japonais [Hobbs et al., 1997]. Plus récemment, [Maurel et al., 2011] présente le
système open-source CasEN dédié au traitement des textes en français et développé grâce au logiciel
CasSys (fourni par la plateforme Unitex) facilitant la création de cascades de transducteurs. Cet outil a
44
Copyright c 2013 - CASSIDIAN - All rights reserved2.2. Approches d’extraction
notamment été testé lors de la campagne d’évaluation ESTER 2 65 (voir la section 2.5) dont l’objectif est
de comparer les performances des extracteurs d’EN sur des transcriptions de la parole.
Bien que les approches statistiques bénéficient d’un essor plus récent, de nombreuses techniques
d’extraction ont été et sont encore explorées. Le principe sous-jacent de ces méthodes est d’apprendre, à
partir de textes pré-annotés avec les entités-cibles, un modèle de langage qui, appliqué sur un nouveau
corpus, permettra d’extraire de nouvelles entités du même type. La majorité de ces approches se fonde
sur un corpus d’apprentissage segmenté en tokens auxquels est associé un certain nombre de caracté-
ristiques représentées par des vecteurs. Ces caractéristiques peuvent être intrinsèques au token (telles
que sa forme de surface, sa longueur, sa catégorie grammaticale, etc.), liées à sa graphie (sa casse, la
présence de caractères spécifiques, etc.) ou encore provenir de ressources externes (bases d’entités nommées
connues, liste de mots catégorisants, etc.). A partir de ces différentes informations fournies dans le
corpus d’apprentissage, la reconnaissance d’entités nommées est traitée comme un problème de classi-
fication. On distingue d’une part, des classifieurs dits linéaires tels que les modèles à base de régression
logistique ou les machines à vecteurs de support [Isozaki and Kazawa, 2002] et, d’autre part, des classifieurs
graphiques probabilistes tels que les HMMs [Zhao, 2004] ou les CRFs [Lafferty et al., 2001].
Le second type de classification est généralement plus performant car il permet de prendre en compte,
lors de l’apprentissage du modèle d’annotation, les dépendances de classe entre tokens voisins. La principale
limite de toutes ces approches reste le fait qu’elles construisent leur modèle au niveau token et ne
permettent pas d’exploiter d’autres caractéristiques à un niveau de granularité plus élevé. Pour pallier à
ce problème, il existe des techniques d’apprentissage statistique fondées sur un découpage en segments
(en groupes syntaxiques, par exemple) ou sur une analyse de la structure globale des textes [Viola and
Narasimhan, 2005]. Toutefois, les CRFs restent le modèle statistique le plus utilisé actuellement en REN
de par leurs bonnes performances et leur capacité d’intégration de diverses caractéristiques [Tkachenko
and Simanovsky, 2012].
Par ailleurs, les chercheurs en EI s’intéressent ces dernières années à combiner des techniques issues
des approches symboliques et statistiques pour améliorer les performances de leurs systèmes d’extraction.
[Charnois et al., 2009], par exemple, propose une approche semi-supervisée par apprentissage de
patrons linguistiques pour l’extraction d’entités biomédicales (ici les noms de gènes). Ce travail met
en œuvre une extraction de motifs séquentiels fréquents par fouille de textes et sous contraintes. Cette
approche permet une extraction plus performante en utilisant un nouveau type de motif appelé LSR (utilisation
du contexte du motif pour augmenter sa précision). Par ailleurs, [Charton et al., 2011] s’intéresse
à l’extraction d’entités nommées en utilisant des motifs d’extraction extraits à partir de Wikipedia pour
compléter un système d’apprentissage statistique par CRF. Les auteurs exploitent ici le contenu riche
en noms propres et leurs variantes des ressources encyclopédiques telles que Wikipedia pour en extraire
des patrons linguistiques. Ces résultats sont ensuite fusionnés avec ceux de l’approche statistique et une
amélioration de la REN est constatée après évaluation sur le corpus de la campagne ESTER 2. L’inconvé-
nient ici étant le besoin de données annotées, d’autres méthodes proposent d’interagir avec l’utilisateur :
celui-ci fournit un petit ensemble d’exemples permettant d’obtenir un premier jeu de règles et celui-ci
est amélioré de façon interactive et itérative [Ciravegna, 2001]. D’autres travaux tels que [Mikheev et al.,
1999] choisissent de limiter la taille des gazetteers utilisés pour la REN et montrent que, tout en allégeant
fortement la phase de développement de leur système (une approche hybride combinant un système à
base de règles à un modèle probabiliste à Maximum d’Entropie), cela à un impact faible sur ses performances.
[Fourour, 2002] propose Nemesis, un outil de REN fondé sur une approche incrémentielle se
65. Évaluation des Systèmes de Transcription Enrichie d’Émissions Radiophoniques, ❤tt♣✿✴✴✇✇✇✳❛❢❝♣✲♣❛r♦❧❡✳♦r❣✴
❝❛♠♣❴❡✈❛❧❴s②st❡♠❡s❴tr❛♥s❝r✐♣t✐♦♥✴
45
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information
déroulant en trois phases : un premier jeu de règles est appliqué, celui-ci est suivi d’une étape d’apprentissage
pour améliorer ce jeu, puis un second repérage est effectué grâce au jeu de règles amélioré.
Pour finir, beaucoup de travaux se penchent sur la résolution de coréférence entre entités nommées.
En effet, comme introduit dans la section 2.1, il est courant de faire référence à une entité du monde réel
(une personne, un lieu, une organisation, etc.) de plusieurs manières : par son/ses nom(s) propre(s) (par
exemple, "Paris" ou "Paname"), par une expression la décrivant ("la capitale de la France") ou encore
par un groupe nominal ou un pronom en contexte ("cette ville", "elle"). Ainsi, lorsqu’un texte contient
différentes mentions d’une même entité, il apparait intéressant de pouvoir les lier (on obtient ainsi des
chaines de référence) pour indiquer qu’elles font référence à un seul et même objet réel, qu’il y a donc
coréférence. Cette problématique n’est pas triviale et peut s’appliquer à un seul et même document
mais aussi au sein d’un corpus (coréférence entre entités provenant de textes distincts). La résolution de
coréférence peut se faire de façon endogène ou exogène (en utilisant des ressources externes), en utilisant
des techniques linguistiques, statistiques ou hybrides. Cette tâche fait notamment partie de campagnes
d’évaluation telles que ACE (Global Entity Detection and Recognition). [Bontcheva et al., 2002] adopte
une approche à base de règles pour la résolution de coréférence entre ENs et pronominale. Ces travaux
ont été implémentés sous la forme d’un transducteur à états finis au sein de la plateforme GATE et sont
intégrés à la chaine de traitement ANNIE (il s’agit des modules nommés Orthomatcher et Pronominal
Corerefencer). Un exemple d’approche statistique et exogène est celle présentée par [Finin et al., 2009]
où la base de connaissances Wikitology (construites à partir de Wikipedia, DBPedia et FreeBase) est
utilisée en entrée d’un classifeur SVM (avec une trentaine d’autres caractéristiques textuelles) pour la
construction de chaines de référence.
2.2.2 Extraction de relations
L’extraction de relations consiste à détecter et typer un lien exprimé textuellement entre deux entités.
Cette tâche a notamment été proposée à l’évaluation lors de la campagne MUC-7, évaluation poursuivie
par les campagnes ACE à partir de 2002. Les avancées dans cette problématique proviennent essentiellement
des travaux d’EI menés dans les domaines de la médecine et de la biologie, notamment pour
l’analyse des rapports médicaux et expérimentaux.
Les premiers systèmes développés sont fondés sur un ensemble de règles d’extraction dont les plus
simples définissent des patrons sous forme de triplets du type : e1 relation e2 (où e1 et e2 sont deux
entités reconnues au préalable). La majorité des relations n’étant pas exprimées aussi simplement dans
les textes réels, les règles d’extraction doivent être plus élaborées et intégrer d’autres caractéristiques
textuelles situées soit entre les deux entités visées soit autour du triplet relationnel. Comme pour la
REN, les systèmes complètent couramment des caractéristiques de mot et une analyse structurelle par
des indices sémantiques. [Muller and Tannier, 2004] présente une méthode symbolique comprenant une
analyse syntaxique pour la détection de relations temporelles entre entités de type "événement". Dans
le domaine médical, [Fundel et al., 2007] développe RelEx, un outil visant à extraire les interactions
entre protéines et gènes et dont l’évaluation (sur le corpus MEDLINE) a montré de bonnes performances
(précision et rappel d’environ 80%). [Nakamura-Delloye and Villemonte De La Clergerie, 2010] propose
une méthode d’extraction de relations entre entités nommées basée sur une analyse en dépendance. Leur
idée est de repérer les chemins syntaxiques entre deux entités (i.e. l’ensemble des relations de dépendance
qu’il faut parcourir pour relier ces deux entités) afin de construire par généralisation des groupes de
patrons de relations syntaxiques spécifiques à tel type de relation sémantique.
46
Copyright c 2013 - CASSIDIAN - All rights reserved2.2. Approches d’extraction
De nombreux travaux se tournent également vers l’apprentissage automatique de patrons de relation
afin de faciliter ou de remplacer le travail manuel de l’expert. [Cellier et al., 2010], par exemple, s’attache
au problème de la détection et du typage des interactions entre gènes par apprentissage de règles linguistiques.
Leur approche réutilise une technique employée à l’origine en fouille de données : l’extraction
de motifs séquentiels fréquents. Celle-ci permet d’apprendre à partir d’un corpus annoté un ensemble de
régularités pour les transformer, après validation par un expert, en règles d’extraction. Il faut noter ici
que le corpus d’apprentissage n’est pas annoté avec les relations-cibles mais uniquement avec des caractéristiques
de plus bas niveau (entités nommées de type "gène", catégories morpho-syntaxiques, etc.).
De plus, l’ajout de contraintes permet de diminuer la quantité de motifs retournés par le système et ainsi
faciliter le tri manuel fait par l’expert.
Du côté des approches statistiques, [Rosario and Hearst, 2004] s’intéresse à la détection de relations
entre maladies et traitements (de sept types distincts dont "cures", "prevents", "is a side effect of", etc.) et
compare plusieurs méthodes statistiques pour cette tâche. Une sous-partie du corpus MEDLINE 2011 est
annotée manuellement par un expert du domaine afin d’entraîner et tester plusieurs modèles graphiques et
un réseau de neurones. Ce dernier obtient les meilleures performances avec une précision d’environ 97%.
Une autre approche statistique pour l’extraction de relations est celle de [Zhu et al., 2009] proposant de
combiner un processus de "bootstrapping" et un réseau logique de Markov. Le premier permet d’initier
l’apprentissage à partir d’un petit jeu de relations fournies par l’utilisateur et ainsi diminuer le besoin en
données annotées. De plus, ce travail exploite les capacités d’inférence permises par les réseaux logiques
de Markov afin d’augmenter les performances globales de leur système StatSnowball.
La plupart des approches supervisées étant dépendantes du domaine de leur corpus d’apprentissage,
[Mintz et al., 2009] s’intéresse à une supervision dite "distante" en utilisant la base de connaissances
sémantique Freebase 66. Le principe de ce travail est de repérer dans un corpus de textes brut des paires
d’entités étant en relation dans Freebase et d’apprendre des régularités à partir du contexte textuel de
cette paire. L’apprentissage est implémenté ici sous la forme d’un classifieur à logique de régression
multi-classes et prend en compte des caractéristiques lexicales (par exemple, la catégorie grammaticale
des mots), syntaxiques (une analyse en dépendance) et sémantiques (un repérage des entités nommées).
Pour finir, nous pouvons citer quelques travaux comme ceux de [Hasegawa et al., 2004] ou [Wang
et al., 2011] proposant d’appliquer des techniques de "clustering" à l’extraction de relations. Le premier
décrit une méthode non-supervisée d’extraction et de catégorisation de relations entre EN par "clustering".
Celui-ci s’opère par une première étape de représentation du contexte de chaque paire d’entités
proches en vecteurs de caractéristiques textuelles. Puis, on calcule une similarité cosinus entre vecteurs
qui est donnée en entrée d’un "clustering" hiérarchique à lien complet. On obtient ainsi un "cluster" par
type de relation, relation nommée en prenant le mot ou groupe de mot le plus fréquent entre paires d’EN
au sein du "cluster". D’autre part, [Wang et al., 2011] s’intéresse à la détection de relations en domaine
ouvert et de façon non-supervisée. Pour cela, leur approche est d’extraire un ensemble de relations par
plusieurs phases de filtrage puis de les regrouper par type en utilisant des techniques de "clustering". La
première étape est réalisée par trois filtrages successifs : les phrases contenant deux ENs et au moins un
verbe entre les deux sont sélectionnées, puis les phrases non-porteuses de relation sont évacuées par des
heuristiques et enfin par un apprentissage à base de CRFs. Une fois l’ensemble des relations pertinentes
extraites, celles-ci sont regroupées par type sémantique en utilisant un algorithme de "clustering de Markov".
Cette méthode ne nécessite pas d’annoter les relations dans un corpus d’apprentissage, ni de fixer
au préalable les différents types de relation à extraire.
66. ❤tt♣✿✴✴✇✇✇✳❢r❡❡❜❛s❡✳❝♦♠✴
47
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information
2.2.3 Extraction d’événements
L’extraction d’événements, parfois considérée comme une extraction de relations n-aires, consiste à
repérer dans un ou plusieurs textes des événements d’intérêt tels que définis dans la section 1.3. Cette
tâche peut se résumer par le fait de répondre à la question suivante : "Who did what to whom when and
where ?". Certains modèles y ajoutent les questions "how ?" et "why ?". La littérature dans ce domaine
montre que l’extraction des événements regroupe généralement plusieurs sous-tâches [Ahn, 2006] :
1. détection des marqueurs d’événement ;
2. affectation des attributs ;
3. identification des arguments ;
4. estimation des rôles ;
5. résolution de coréférence.
Plusieurs campagnes MUC67 s’y sont intéressé avec notamment des tâches de remplissage automatique
de formulaires ("template filling"). Comme en extraction d’information de façon générale, la
littérature du domaine offre à la fois des travaux basés sur des approches symboliques et des techniques
purement statistiques.
La première approche symbolique retenue est décrite dans [Aone and Ramos-Santacruz, 2000] : il
s’agit du système REES 68 permettant l’extraction de relations et d’événements à grande échelle. Cet
outil repose sur l’utilisation combinée de lexiques et de patrons syntaxiques pour la détection d’évé-
nements principalement basés sur des verbes. Ces lexiques correspondent à une description syntaxique
et sémantique des arguments de chaque verbe déclencheurs d’événement. Ces informations sont par la
suite réutilisées au sein des patrons syntaxiques décrivant les différents contextes d’apparition d’un évé-
nement. Dans la lignée, [Grishman et al., 2002b] s’intéresse à la détection d’événements épidémiques
au moyen d’un transducteur à états finis. Par ailleurs, le système d’extraction IE2
(Information Extraction
Engine) a été développé par la société américaine SRA International spécialisée dans le traitement
de l’information [Aone et al., 1998]. Cet outil a obtenu les meilleures performances (51% de F-mesure)
pour la tâche Scenario Template (ST) lors de la campagne d’évaluation MUC-7. Il s’agit d’une extracteur
modulaire comprenant 6 modules dont celui nommé "EventTag" permettant le remplissage de scénarios
d’événement grâce à des règles syntactico-sémantiques élaborées manuellement. Un autre outil d’EI à
base de connaissances est celui proposé par [Appelt et al., 1995], il s’agit du système FASTUS ayant
participé à plusieurs campagnes d’évaluation (MUC-4, MUC-5 et MUC-6). Cet extracteur est fondé sur
un ensemble de règles de grammaire développé par des experts et a montré de bonnes performances dans
la tâche d’extraction d’événements de MUC-6 69. FASTUS a obtenu une F-mesure de 51% contre 56%
pour le meilleur des systèmes de la campagne. Cet outil est fondé sur un formalisme d’expression de
règles nommé FASTSPEC visant à faciliter l’adaptation de l’outil à de nouveaux domaines.
Du côté des approches statistiques, [Chieu, 2003] développe le système ALICE 70 afin d’extraire des
événements par apprentissage statistique. Ceux-ci ont évalué quatre algorithmes de classification issus de
la suite Weka sur les données-test de la campagne MUC-4. Le corpus d’apprentissage est constitué des
documents sources (des dépêches de presse) et des fiches d’événements associés. Les caractéristiques utilisées
intègrent notamment une analyse des dépendances syntaxiques par phrase du corpus ainsi que des
67. Message Understanding Conference
68. Relation and Event Extraction System
69. la tâche concernait les changements de personnel dans la direction d’une entreprise
70. Automated Learning-based Information Content Extraction
48
Copyright c 2013 - CASSIDIAN - All rights reserved2.2. Approches d’extraction
chaines de coréférence entre entités nommées. Les meilleurs résultats sont obtenus avec un classifieur à
Maximum d’Entropie (ALICE-ME) et celui-ci approche les performances du meilleur des participants de
la campagne MUC-4. D’autre part, [Jean-Louis et al., 2012] présente un outil d’extraction d’événements
sismiques exploitant des techniques d’analyse du discours et d’analyse de graphes. La reconnaissances
des événements s’effectue en trois phases : un découpage des textes selon leur contenu événementiel, la
construction d’un graphe des entités reconnues et le remplissage d’un formulaire d’événement par sélection
des entités pertinentes dans le graphe. La première phase repose sur un apprentissage statistique par
CRF tandis que la seconde est réalisée grâce à un classifieur à Maximum d’Entropie. Le corpus d’apprentissage
pour ces deux premières étapes est constitué de dépêches provenant de l’AFP et de Google
Actualités pour lesquelles des experts ont manuellement construits les formulaires d’événements. Les
caractéristiques pour l’apprentissage (découpage en mots et phrases, détection des ENs, analyse syntaxique,
etc.) ont été obtenues de l’analyseur LIMA [Besançon et al., 2010]. Enfin, le remplissage des
formulaires d’événement est réalisé par combinaison de plusieurs algorithmes de sélection (PageRank,
vote, etc.) afin de choisir la meilleure entité du graphe pour chaque champ du formulaire.
Les méthodes d’apprentissage de patrons ou les approches semi-supervisées apparaissent intéressantes
comme par exemple le système de [Xu et al., 2006]. Ceux-ci proposent un outil d’extraction
de patrons linguistiques par une méthode de "bootstrapping" appliquée à la détection des événements
comme des remises de prix ("prize award events"). Cette approche est itérative et faiblement supervisée
car elle permet, en partant de quelques exemples d’événements provenant d’une base de données
existante, d’apprendre des régularités d’occurrence de ces événements et d’en déduire des patrons d’extraction.
Ceux-ci ont ensuite été implémentés sous forme de règles dans une application créée grâce à
la plateforme SProUT 71 [Drozdzynski et al., 2004]. Nous pouvons égelement citer le projet TARSQI 72
(respectant la spécification TimeML) qui a donné lieu au développement du système Evita 73. [Saurí
et al., 2005] présente succinctement les principes théoriques sur lesquels repose cet outil ainsi que son
fonctionnement général. Les auteurs définissent les verbes, noms et adjectifs comme les trois catégories
de mots déclencheurs étant les plus porteuses de sens pour la détection d’événements. Ils détaillent par
la suite les différentes méthodes d’extraction associées à chaque type de déclencheur et plus particulièrement
les caractéristiques textuelles et grammaticales à prendre en compte. Ainsi, pour la détection
d’événements portés par un verbe, Evita opère un découpage en syntagmes verbaux et détermine pour
chacun sa tête ; puis, vient une phase de tri lexical pour écarter les têtes ne dénotant pas un événement
(verbes d’état, etc.) ; l’on tient ensuite compte des traits grammaticaux du verbe tels que la voix, la polarité
(positif/négatif), la modalité, etc. ; et une analyse syntaxique de surface vient aider à l’identification
des différents participants de l’événement. Pour finir, [Huffman, 1995] propose LIEP 74, un système de
découverte de patrons d’extraction dont les résultats sont utilisés par l’extracteur d’événements symbolique
ODIE 75. Dans cette approche, on propose à l’utilisateur une interface lui permettant de remplir une
fiche d’événement correspondant à une phrase donnée. Ces éléments sont ensuite utilisés pour apprendre
par une approche ascendante (voir section 2.2) un ensemble de patrons récurrents qui sont ensuite ajoutés
en tant que nouveaux chemins dans le transducteur à états finis de l’outil ODIE. Les auteurs de ce
système montrent que LIEP approche les performances d’un système purement symbolique avec une
F-mesure de 85% contre 89% pour ODIE.
71. Shallow Processing with Unification and Typed feature structures
72. Temporal Awareness and Reasoning Systems for Question Interpretation
73. Events In Texts Analizer
74. Learning Information Extraction Patterns
75. On-Demand Information Extraction
49
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information
2.3 Plateformes et logiciels pour l’EI
Ces années de recherche en EI ont donné lieu comme vu précédemment à de nombreux travaux et,
par conséquent, au développement de nombreux outils d’extraction d’information. Afin de faciliter ces
développements et leur réutilisation au sein de chaines plus complexes, est apparu un nombre important
de ce qu’on pourrait appeler des boites à outils pour l’EI et le TAL plus généralement. Celles-ci partagent
une même visée finale, à savoir le traitement automatique des textes, mais se différencient sur plusieurs
points. Elles proviennent tout d’abord de milieux différents, soit académique, soit industriel, soit sont
issues d’une collaboration entre laboratoire(s) de recherche et entreprise(s) au sein d’un projet commun.
De plus, il peut s’agir soit de simples entrepôts d’outils et algorithmes, soit de véritables plateformes
d’intégration de modules hétérogènes. Dans ce cas, on pourra constater des choix d’architecture distincts
pour la combinaison et l’enchainement de ces différents modules. Par ailleurs, la diversité et la complexité
des documents traités constitue également un facteur de variation (différents formats, langues,
domaines, structures, etc.). Cette hétérogénéité des contenus se traduit naturellement par différents choix
de représentation de l’information, même si le format XML tend à se généraliser. Enfin, ces boites à
outils ne donnent pas la même priorité à l’interaction avec l’utilisateur et ne se dotent pas des mêmes
moyens de visualisation [Enjalbert, 2008].
Nous présentons ici un rapide tour d’horizon de ces boites à outils, centré sur différentes plateformes
et suites logicielles distribuées en open-source et/ou gratuitement. Précisons tout d’abord que cette liste
est non-exhaustive et a été constituée, sans ordre préférentiel, au fil de notre état de l’art et de nos travaux.
OpenCalais
Tout d’abord, la société Thomson Reuters (qui a racheté ClearForest) propose plusieurs services
autour de l’extraction d’information regroupés sous le nom OpenCalais 76. Celle-ci a mis en place OpenCalais
Web Service, un outil en ligne d’extraction d’entités nommées, relations et évènements. Cet outil
ainsi que les divers plugins qui l’accompagnent (Marmoset, Tagaroo, Gnosis, etc.) sont utilisables gratuitement
pour usage commercial ou non. Le service d’annotation en ligne permet de traiter des textes
en anglais, français et espagnol grâce à une détection automatique de la langue du texte fourni. Il extrait
pour toutes ces langues un nombre conséquent de types d’entités nommées (villes, organisations,
monnaies, personnes, e-mails, etc.) et attribue également un indice de pertinence/intérêt à chacune des
extractions. L’analyse des textes en anglais est plus complète : extraction d’événements et de relations,
désambiguïsation d’entités, détection de thème, association automatique de mots-clés ("semantic tags"),
etc. Toutes ces annotations peuvent être récupérées au format RDF 77. Enfin, précisons qu’OpenCalais
fournit aussi bien des modules fondés sur des techniques linguistiques que des méthodes statistiques ou
hybrides.
76. ❤tt♣✿✴✴✇✇✇✳♦♣❡♥❝❛❧❛✐s✳❝♦♠✴
77. Ressource Description Framework
50
Copyright c 2013 - CASSIDIAN - All rights reserved2.3. Plateformes et logiciels pour l’EI
LingPipe
LingPipe développé par Alias-i 78 constitue une autre véritable "boîte à outils" pour l’analyse automatique
de textes. Divers outils y sont disponibles gratuitement pour la recherche et, parmi ceux-ci,
une majorité relèvent plus ou moins directement du domaine de l’extraction d’information. D’une part,
des modules de pré-traitement permettent de « préparer » le texte pour la phase d’extraction : analyse
morpho-syntaxique, découpage en phrases, désambiguïsation sémantique de mots. D’autre part, LingPipe
met à disposition des modules de détection d’entités nommées, de phrases d’intérêt, d’analyse
d’opinion et de classification thématique. Ces traitements sont tous réalisés par approche statistique et
notamment par l’utilisation de CRF et d’autres modèles d’apprentissage (spécifiques à une langue, un
genre de texte ou un type de corpus).
OpenNLP
Également reconnu, le groupe OpenNLP 79 rassemble un nombre important de projets open-source
autour du Traitement Automatique du Langage. Son objectif principal est de promouvoir ces initiatives
et de favoriser la communication entre acteurs du domaine pour une meilleure interopérabilité des systèmes.
En extraction d’information, nous pouvons retenir les projets NLTK 80, MALLET 81, Weka 82 ou
encore FreeLing 83. Le premier correspond à plusieurs modules en Python pouvant servir de base au dé-
veloppement de son propre outil d’extraction. Le second projet, MALLET, est un logiciel développé par
les étudiants de l’université du Massachussetts Amherst sous la direction d’Andrew McCallum, expert
du domaine [McCallum, 2005]. Ce logiciel inclut différents outils pour l’annotation de segments (entités
nommées et autres), tous basés sur des techniques statistiques de type CRF, HMM et MEMM 84. Dans la
même lignée, Weka est une suite de logiciels gratuits de "machine learning" développé à l’Université de
Waikato (Nouvelle-Zélande) et distribués sous licence GNU GPL 85 [Hall et al., 2009]. Enfin, FreeLing
[Padró and Stanilovsky, 2012] est une suite d’analyseurs de langage dont des modules de découpage en
phrases, de tokenisation, lemmatisation, étiquetage grammatical, analyse syntaxique en dépendance, etc.
Ce projet propose notamment une palette d’outils de traitement automatique pour la langue espagnole.
GATE
GATE est une plateforme open-source Java dédiée à l’ingénierie textuelle [Cunningham et al., 2002].
Créée il y a une vingtaine d’années par les chercheurs de l’université de Sheffield (Royaume-Uni), GATE
est largement utilisé par les experts en TAL et dispose d’une grande communauté d’utilisateurs. Cela lui
permet de disposer d’un ensemble de solutions d’aide et de support (forum, liste de diffusion, foire aux
questions, wiki, tutoriels, etc.). Par ailleurs, les créateurs de GATE propose des formations ainsi que des
certifications permettant de faire valoir ses compétences à l’utilisation de cette plateforme.
78. ❤tt♣✿✴✴❛❧✐❛s✲✐✳❝♦♠✴❧✐♥❣♣✐♣❡✴
79. Open Natural Language Processing, ❤tt♣✿✴✴♦♣❡♥♥❧♣✳s♦✉r❝❡❢♦r❣❡✳♥❡t✴
80. Natural Language ToolKit, ❤tt♣✿✴✴✇✇✇✳♥❧t❦✳♦r❣✴
81. Machine Learning for LanguagE Toolkit, ❤tt♣✿✴✴♠❛❧❧❡t✳❝s✳✉♠❛ss✳❡❞✉✴
82. Waikato Environment for Knowledge Analysis, ❤tt♣✿✴✴✇✇✇✳❝s✳✇❛✐❦❛t♦✳❛❝✳♥③✴♠❧✴✇❡❦❛✴
83. ❤tt♣✿✴✴♥❧♣✳❧s✐✳✉♣❝✳❡❞✉✴❢r❡❡❧✐♥❣✴
84. Maximum Entropy Markov Models
85. General Public License
51
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information
LinguaStream
Par ailleurs, le GREYC 86 développe depuis 2001 la plateforme LinguaStream 87, un environnement
intégré orienté vers la pratique expérimentale du TALN. Celui-ci permet un assemblage visuel de modules
de traitement hétérogènes pour des applications en EI, RI, veille, résumé automatique, enseignement,
etc. Ces enchainements de modules sont représentés sous forme de graphes acycliques et l’ensemble
des données traitées est sérialisé en XML. [Widlocher et al., 2006] présente une application
(réalisée dans le cadre de DEFT’2006) de segmentation thématique de textes implémentée grâce à la
plateforme LinguaStream.
Unitex
La boite à outils Unitex est principalement développée par Sébastien Paumier à l’Institut Gaspard
Monge (Université de Paris-Est Marne-la-Vallée) [Paumier, 2003]. Il s’agit d’une plateforme open-source
multilingue pour le traitement en temps réel de grandes quantités de textes en langage naturel. Unitex
permet d’appliquer des traitements divers sur les textes tels que le repérage de patrons linguistiques
sous forme d’expressions régulières ou d’automates, l’application de lexiques et de tables, etc. Cela y
est implémenté par des réseaux de transition récursifs définissables graphiquement. Cet outil propose
également la production de concordances ou encore un ensemble d’études statistiques en corpus.
Nooj
Créateur de la plateforme Intex au LADL 88 (sous la direction du Professeur Maurice Gross), le Professeur
Max Silberztein continue ses travaux depuis 2002 en proposant NooJ 89, un environnement de
développement dédié au traitement du langage naturel écrit [Silberztein et al., 2012]. Cette suite propose
des modules de traitement pour une vingtaine de langues (anglais, français, portugais, arabe, chinois,
hébreu, etc.) et gère plus d’une centaine de formats de fichier d’entrée. Comme dans beaucoup de plateformes
de ce type, les données y sont manipulées au format XML et enrichies grâce aux annotations
fournies par les différents composants appliqués en cascade. Une communauté, en majorité européenne,
s’est formée autour de cette plateforme donnant lieu depuis 2005 à une conférence NooJ annuelle réunissant
divers travaux réalisés grâce à cet outil ainsi qu’à des tutoriels et ateliers réguliers.
Stanford NLP Group et Ontotext
Pour finir, mentionnons également les groupes de recherche Stanford NLP Group 90 et Ontotext 91
dont les travaux sont intégrés dans GATE. L’équipe de l’université de Stanford en Californie, a créé différents
outils de TAL très utiles pour l’extraction d’information : un analyseur syntaxique probabiliste
pour l’anglais, un étiqueteur morpho-syntaxique ainsi qu’un système d’extraction d’entités nommées qui
86. Groupe de Recherche en Informatique, Image, Automatique et Instrumentation de Caen
87. ❤tt♣✿✴✴✇✇✇✳❧✐♥❣✉❛str❡❛♠✳♦r❣
88. Laboratoire d’Automatique Documentaire et Linguistique - Université de Paris-Est Marne-la-Vallée
89. ❤tt♣✿✴✴✇✇✇✳♥♦♦❥✹♥❧♣✳♥❡t✴
90. ❤tt♣✿✴✴♥❧♣✳st❛♥❢♦r❞✳❡❞✉✴
91. ❤tt♣✿✴✴✇✇✇✳♦♥t♦t❡①t✳❝♦♠✴
52
Copyright c 2013 - CASSIDIAN - All rights reserved2.4. Applications
reconnaît les noms de personne, d’organisation et de lieu. Ontotext développe ses activités autour des
technologies sémantiques et diffuse gratuitement la plateforme KIM 92 pour un usage non-commercial.
Celle-ci propose de créer des liens sémantiques entre documents mais aussi d’extraire les entités nommées,
relations et événements d’un texte et de les stocker automatiquement dans une base de données.
2.4 Applications
Les applications possibles de l’extraction automatique d’information sont à l’heure actuelle nombreuses
et ne cessent de croître avec les avancées de la recherche (en particulier dans le domaine du
Web). Dans cet ensemble d’applications, un petit nombre est historique et continue de susciter l’inté-
rêt depuis les débuts de l’EI : il s’agit notamment de l’analyse des "news", du domaine biomédical ou
encore de la veille économique et stratégique. D’autres usages sont plus récents et coïncident avec l’apparition
de nouvelles technologies et des nouveaux besoins utilisateur ou techniques qui en découlent.
Nous proposons ici un aperçu (non-exhaustif et général) de quelques cas d’application et des travaux de
la littérature associés.
Tout d’abord, un grand nombre de travaux s’intéressent à l’utilisation des outils d’EI pour des besoins
de veille : celle-ci peut être au service d’une entreprise, d’une entité gouvernementale ou encore
d’un particulier souhaitant rester informé sur un sujet donné. Cette veille peut aider à la protection des
populations par la prévention des épidémies ([Lejeune et al., 2010], [Grishman et al., 2002a], [Chaudet,
2004]) ou des événements sismiques [Besançon et al., 2011], par exemple. Par l’analyse automatique
de différents types de sources d’information (rapports médicaux, dépêches de presse, réseaux sociaux,
etc.), l’objectif est d’anticiper autant que possible ce genre de catastrophes et de suivre leur propagation
pour assister les forces de secours par exemple. Les gouvernements portent aussi un grand intérêt
à l’EI pour automatiser leurs processus de veille stratégique et militaire. [Zanasi, 2009], [Capet et al.,
2008], [Tanev et al., 2008] ou encore [Pauna and Guillemin-Lanne, 2010] présentent leurs travaux pour
une évaluation et un suivi du risque militaire et/ou civil, national et/ou international. [Hecking, 2003] se
concentre sur l’analyse automatique des rapports écrits par les militaires, [Sun et al., 2005] et [Inyaem
et al., 2010a] de leur côté s’intéressent à la prévention des actes de terrorisme. Enfin, [Goujon, 2002]
présente une extraction automatique des événements appliquée à la crise de 2002 en Côte d’Ivoire. Dans
le domaine économique, cette veille vise essentiellement à cerner des communautés de consommateurs
(par exemple à partir du contenu des blogs [Chau and Xu, 2012]), à assurer un suivi des technologies
et/ou produits d’un secteur donné pour les besoins d’une entreprise [Zhu and Porter, 2002] ou encore
à améliorer son service-client par analyse des conversations téléphoniques [Jansche and Abney, 2002].
Pour tous les types de veille mis en œuvre, les acteurs du domaine s’intéressent également à adapter les
processus d’EI pour garantir un traitement des informations en temps réel [Piskorski and Atkinson, 2011]
[Liu et al., 2008]. Cette "fraicheur" des informations est particulièrement importante pour les analystes
financiers et le suivi des évolutions des bourses par exemple [Borsje et al., 2010].
Par ailleurs, les chercheurs en EI se mettent au service d’autres sciences telles que la médecine et
la biologie en permettant l’analyse automatique de rapports médicaux pour l’extraction d’interactions
entre protéines, gènes, etc. [Rosario and Hearst, 2005] [Bundschus et al., 2008]. Dans un autre domaine
d’intérêt public, la Commission Européenne a financé le projet PRONTO pour la détection d’événements
dans les réseaux de transport public [Varjola and Löffler, 2010]. Les techniques d’EI sont également
92. Knowledge and Information Management
53
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information
exploitées pour aider les acteurs judiciaires avec notamment l’analyse automatique des rapports de police
[Chau et al., 2002]. Un autre cas d’application est le traitement automatique des publications scientifiques
pour la construction de bases de citations telles que Citeseer [Lawrence et al., 1999]. De plus, comme
mentionné en introduction de ce chapitre (voir la section 2.1), les résultats des outils d’extraction peuvent
servir à d’autres disciplines de l’IA telles que la recherche d’information [Vlahovic, 2011], les systèmes
de questions-réponses [Saurí et al., 2005], la construction des ontologies [Vargas-Vera and Celjuska,
2004] [Piskorski et al., 2007], le résumé automatique de documents [Radev et al., 2001], etc.
Enfin, avec la récente démocratisation de l’IA et l’entrée dans les foyers de nouvelles technologies
de l’information, beaucoup de recherches en EI concernent des applications dédiées au grand public. Les
systèmes de recommandation en ligne en bénéficient [Luberg et al., 2012] [Ittoo et al., 2006], mais aussi
les logiciels anti-spam [Jason et al., 2004] ou encore les sites de recherche d’emploi [Califf and Mooney,
2003] [Ciravegna, 2001]. De plus, l’important volume de données récemment accessibles par le biais
des réseaux sociaux, des sites de partage, collaboratifs, etc. a ouvert la voie à de nouvelles applications
orientées vers le Web et en particulier le Web Sémantique. [Popescu et al., 2011] et [Sayyadi et al.,
2009] s’intéressent à l’extraction d’événements dans les flux sociaux (Twitter notamment). [Nishihara
et al., 2009] propose un système de détection des expériences personnelles dans les blogs. On peut
également exploiter les méta-données fournies par les utilisateurs, comme le fait [Rattenbury et al., 2007]
en analysant les "tags" postés sur Flickr pour en extraire des événements et des lieux dans les photos
partagées. Pour finir, citons l’encyclopédie collaborative Wikipedia qui est non seulement une ressource
précieuse pour le développement des outils d’EI mais qui bénéficie aussi de ces technologies [Chasin,
2010].
2.5 Évaluation des systèmes d’EI
2.5.1 Campagnes et projets d’évaluation
En parallèle des nombreux systèmes d’EI développés ces dernières années (dont certains ont été
présentés dans les sections précédentes), la communauté des chercheurs a mis en place un certain nombre
de campagnes d’évaluation telles que ACE, MUC, ESTER, CONLL 93, TAC94, etc.
Afin de stimuler le développement des techniques d’extraction d’information et de dégager les pistes
de recherche les plus prometteuses, ces campagnes d’évaluation sont menées tant au niveau national
qu’international. Celles-ci ont pour but de mettre en place un protocole d’évaluation commun permettant
aux experts du domaine de mesurer les performances de leurs outils. Les campagnes définissent
généralement plusieurs tâches à accomplir telles que l’extraction d’entités nommées, de relations ou
encore d’événements, la résolution de coréférence, etc. Le protocole le plus courant est de fournir un
corpus d’entraînement et un corpus de test où les éléments à extraire ont été pré-annotés ainsi qu’un
ou plusieurs scripts d’évaluation ("scoring"). Le corpus d’entraînement permet de préparer l’outil à la
tâche d’extraction pour pouvoir ensuite s’auto-évaluer sur le corpus de test et estimer son score grâce
aux scripts fournis. Une fois leurs systèmes préparés à la tâche d’évaluation, les participants sont évalués
et classés par les organisateurs de la campagne. Ces évaluations s’accompagnent le plus souvent de
publications d’articles dans lesquels ceux-ci décrivent leur outil et les techniques mises en œuvre. Cela
93. Conference on Computational Natural Language Learning, ❤tt♣✿✴✴✐❢❛r♠✳♥❧✴s✐❣♥❧❧✴❝♦♥❧❧✴
94. Text Analysis Conference, ❤tt♣✿✴✴✇✇✇✳♥✐st✳❣♦✈✴t❛❝✴
54
Copyright c 2013 - CASSIDIAN - All rights reserved2.5. Évaluation des systèmes d’EI
permet de mettre en avant les nouvelles approches et de faire le point sur les performances de celles déjà
connues.
Dans le domaine de l’extraction d’information, les campagnes MUC restent les pionnières et les plus
connues au niveau international. Créées au début des années 1990 par la DARPA 95, elles constituent les
premières initiatives pour encourager l’évaluation des systèmes d’extraction et ont fortement contribué
à l’essor de ce domaine. À l’origine destinées au domaine militaire, les sept séries d’évaluation menées
ont permis de diversifier les applications. Celles-ci se caractérisent par la tâche d’extraction consistant à
remplir un formulaire à partir d’un ensemble de documents en langage naturel. Certains jeux de données
de ces campagnes sont actuellement mis à disposition gratuitement.
La DARPA a également initié le « Machine Reading Program » (MRP) : projet visant à construire
un système universel de lecture de texte capable d’extraire automatiquement la connaissance du langage
naturel pour la transformer en représentation formelle. Celui-ci est destiné à faire le lien entre le savoir
humain et les systèmes de raisonnement nécessitant ce savoir. Il s’agit pour cela de combiner les avancées
en TALN et en IA.
Par ailleurs, nous pouvons citer le programme ACE (Automatic Content Extraction) qui, sous la direction
du NIST 96, mène également des campagnes d’évaluation. Spécialisées dans l’analyse d’articles
de presse, celles-ci évaluent l’extraction d’entités nommées et la résolution de co-référence (mentions
d’entités nommées). Aujourd’hui, la campagne TAC (Text Analysis Conference) a pris la suite des actions
menées dans le cadre du programme ACE.
Toujours à l’échelle mondiale, les campagnes CoNLL (Conference on Natural Language Learning)
évaluent et font la promotion des méthodes d’extraction par apprentissage. Celles-ci sont classées parmi
les meilleures conférences internationales dans le domaine de l’intelligence artificielle. Ce succès est en
partie du au fait que ces conférences sont dirigées par l’ACL (Association of Computational Linguistics),
la plus réputée des associations de linguistique et informatique. Celle-ci est aussi à l’origine des
conférences Senseval/Semeval spécialisées dans l’évaluation des outils de désambiguïsation sémantique,
point crucial en extraction d’information.
En Europe, l’association ELRA (European Language Ressources Association) a mis en place les
conférences LREC (Language Ressources and Evaluation Conference). Lors de celles-ci les différents
acteurs en ingénierie linguistique présentent de nouvelles méthodes d’évaluation ainsi que divers outils
liés aux ressources linguistiques. De plus, cette association participe à l’évaluation de systèmes divers
en fournissant les corpus et données nécessaires. Enfin, il nous faut citer la campagne française ESTER
(Évaluation des Systèmes de Transcription Enrichie d’Émissions Radiophoniques) qui, entre autres
activités, évalue le repérage d’entités nommées appliqué à des textes issus de transcription de la parole.
Les mesures d’évaluation les plus communément utilisées en extraction d’information sont la précision,
le rappel et la F-mesure. Ces métriques peuvent être définies ainsi :
Précisioni =
nombre d’entités correctement étiquetées i
nombre d’entités étiquetées i
95. Defense Advanced Research Projects Agency
96. National Institute of Standards and Technology
55
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information
Rappeli =
nombre d’entités correctement étiquetées i
nombre d’entités i
F-mesurei =
(1 + β
2
) · (précisioni
· rappeli
)
(β
2 · précisioni + rappeli
)
où β ∈ R+
β est une facteur de pondération permettant de favoriser soit la précision soit le rappel lors du calcul
de la F-mesure. La plupart des travaux pondère de façon égale la précision et le rappel, il est donc plus
fréquemment utilisé une F1-mesure définie comme suit :
F1-mesurei =
2 · précisioni
· rappeli
précisioni + rappeli
Précisons également que ces métriques sont souvent évaluées lors de la conception des approches
afin de favoriser soit la précision soit le rappel de celles-ci en fonction de l’application visée.
2.5.2 Performances, atouts et faiblesses des méthodes existantes
Bien que le système d’évaluation actuel ne soit pas parfait, les différentes campagnes d’évaluation
menées depuis plus de vingt ans permettent de dresser un bilan des performances des outils développés
et de comparer les atouts et faiblesses des différentes approches adoptées. Comme nous l’avons exprimé
précédemment, les avancées en EI sont disparates, elles varient en fonction de nombreux paramètres tels
que l’objet ciblé (sa nature et sa complexité intrinsèque), l’ancienneté de la tâche en EI, le domaine/genre
des textes analysés, les techniques employées, etc. Tout cela, rend très difficile une comparaison quantitative
des systèmes développés et un bilan qualitatif nous parait plus approprié. Pour ce faire, nous nous
inspirons de [Hogenboom et al., 2011] qui propose une évaluation selon quatre critères : la quantité de
données annotées nécessaire, le besoin de connaissances externes, la nécessité d’une expertise humaine
et l’interprétabilité des résultats. Nous donnons tout de même, à titre indicatif, quelques résultats (en
termes de précision, rappel et F-mesure) issus des campagnes d’évaluation présentées ci-dessus.
En premier lieu, les systèmes purement linguistiques, bien que très précis, ont pour principales faiblesses
leur taux de rappel moindre et leur coût de développement manuel coûteux. Ceux-ci ne nécessitent
pas de corpus annoté mais impliquent un fort besoin en expertise humaine et dépendent souvent de
connaissances externes (listes de mots, réseaux lexicaux, bases de connaissances, etc.). Ce dernier point
se vérifie particulièrement dans le cas des systèmes à base de règles lexico-sémantiques. Un avantage
non-négligeable de ces approches reste leur caractère symbolique permettant, sous réserve d’une expertise
en TAL, d’appréhender plus facilement leur machinerie interne, de les adapter après analyse des
résultats et d’observer dans la foulée l’impact des modifications. Ce cycle d’ingénierie est devenu plus
aisé avec l’apparition des boites à outils pour l’EI (voir la section 2.3) dont certaines proposent des modules
d’évaluation en temps réel de la chaine d’extraction. A titre d’exemple, le meilleur participant de la
dernière campagne MUC pour l’extraction des événements (tâche Scenario Template de MUC-7) est un
système symbolique et obtient les scores suivants : 65% de précision, 42% de rappel et 51% de F-mesure.
Sur la tâche de REN, [Appelt, 1999] rapporte un taux d’erreur de 30% inférieur pour les approches symboliques
comparées aux méthodes statistiques entièrement supervisées (respectivement environ 96% et
56
Copyright c 2013 - CASSIDIAN - All rights reserved2.6. Problèmes ouverts
93% de F-mesure). Les systèmes à base de connaissances sont également les plus performants pour la
résolution de coréférence avec des résultats allant jusqu’à 63% de rappel et 72% de précision.
De leur côté, les approches statistiques permettent de couvrir de nombreux contextes d’apparition
(leur rappel est généralement plus élevé) mais nécessitent une grande quantité de données annotées pour
l’apprentissage du modèle sous-jacent. Cela constitue une réelle contrainte car les corpus d’apprentissage
sont inégalement disponibles selon la langue ciblée, le domaine/genre des textes, etc. Quelques travaux
présentés plus haut s’intéressent à cette problématique en diminuant la supervision nécessaire dans le
développement de tels systèmes : c’est le cas du "clustering" ou des techniques de "bootstrapping".
En contrepartie, l’apprentissage statistique nécessite peu ou pas d’expertise humaine et des ressources
externes limitées. Toutefois, il reste l’inconvénient que ces approches produisent des modèles de type
"boite noire" qui restent à l’heure actuelle difficilement accessibles et interprétables. Enfin, les méthodes
statistiques ont montré leur efficacité tout particulièrement en contexte bruité, dans le traitement des
transcriptions de l’oral, par exemple. La meilleure approche statistique de la campagne CoNLL obtient
une F-mesure de 91% en reconnaissance d’entités nommées. Les méthodes d’extraction par apprentissage
statistique testées lors du challenge PASCAL 2005 atteignent une F-mesure de 75% pour la tâche
d’extraction de relations.
Pour finir, nous avons vu l’intérêt récent pour le développement d’approches hybrides afin d’exploiter
les points forts des méthodes précédentes. Même si ce type d’approche n’est pas parvenu pour le moment
à éviter tous les écueils pointés ci-dessus, la combinaison des techniques symboliques et statistiques
présente plusieurs atouts. L’apprentissage symbolique permet, par exemple, de diminuer l’effort de développement
des règles d’un système-expert classique tout en augmentant le rappel de ces approches. On
peut également opter pour une construction automatique des ressources linguistiques externes dont dé-
pendent beaucoup des outils développés. Après analyse des erreurs d’extraction par méthode statistique,
il est aussi intéressant de compléter le système par un ensemble de règles pour gérer les cas statistiquement
peu fréquents. L’outil LP2
(ayant remporté le challenge PASCAL 2005) implémente une méthode
de déduction de règles d’extraction et obtient une F-mesure de près de 90% pour l’extraction de relations.
Par ailleurs, dans le domaine médical, le système CRYSTAL montre une précision de 80% et un rappel
de 75%.
Toutes approches confondues, les meilleurs systèmes en extraction de relations obtiennent une Fmesure
d’environ 75% sur des données de la campagne ACE (ce score passe à 40% lorsque l’annotation
des ENs est automatisée). Pour la tâche de remplissage de formulaires, les systèmes développés montent
à une F-mesure de 60% (une annotation humaine obtenant 80%).
2.6 Problèmes ouverts
Pour conclure cet état de l’art sur l’extraction d’information, nous souhaitons faire le point sur les
différents problèmes et challenges restant à résoudre. En effet, même si des progrès considérables ont été
accomplis depuis les débuts de l’EI, un certain nombre de problèmes constituent toujours un réel frein à
la commercialisation des systèmes existants [Piskorski and Yangarber, 2013].
Tout d’abord, la plupart des solutions sont développées pour un domaine ou un genre de texte particulier
et voient leurs performances décroître rapidement face à des textes différents de ce point de vue.
Le même problème survient lorsque les outils sont développés à partir de corpus très homogènes (sur la
57
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information
forme ou le contenu) et que ceux-ci sont réutilisés sur d’autres corpus de nature plus variée. Ces limites
concernent à la fois les méthodes symboliques et statistiques et nécessitent une ré-adaptation constante
des techniques. Il a été montré que les performances d’un système d’extraction peuvent varier de 20% à
40% lors du passage à un nouveau domaine/genre de texte [Nadeau and Sekine, 2007]. Des travaux tels
que [Chiticariu et al., 2010] ou [Daumé et al., 2010] s’attachent à faciliter la portabilité des outils d’EI
d’un domaine à un autre tout en maintenant de bonnes performances.
Un autre enjeu est la réduction de l’effort de développement des systèmes, qu’ils soient symboliques
ou statistiques. Outre leurs performances, ce point déterminera la commercialisation à grande échelle de
ces outils. Du côté des approches à base de règles, cela est abordé par les travaux en apprentissage symbolique
[Cellier and Charnois, 2010] tandis que pour réduire la quantité de données annotées nécessaires
aux systèmes statistiques, les chercheurs se tournent vers des techniques comme l’apprentissage dit actif
("active learning") [Culotta et al., 2006] [Thompson et al., 1999]. Plus récemment, une solution prometteuse
s’offre aux développeurs de systèmes supervisés et semi-supervisés, il s’agit du crowdsourcing :
cette nouvelle pratique consiste à mettre à contribution les internautes pour créer du contenu et constitue
un bon moyen pour la création de corpus annotés par exemple [Lofi et al., 2012].
Par ailleurs, on s’intéresse à adapter les méthodes d’extraction actuelles à une classification plus fine
des entités nommées (villes, ONG, missiles, etc.) [Sekine et al., 2002] [Fleischman and Hovy, 2002]. En
effet, la REN telle qu’elle était étudiée lors des premières campagnes d’évaluation atteint aujourd’hui
des performances quasi-égales à celles d’un annotateur humain et ne répond que partiellement au besoin
réel des utilisateurs finaux.
Au sujet de l’évaluation des technologies, nous pouvons souligner, d’une part, le peu de discussions
dans la communauté de l’EI au sujet des métriques d’évaluation. En effet, ces métriques proviennent
directement de l’évaluation en recherche d’information et s’avèrent, dans certains cas, peu adaptées à
l’évaluation des systèmes d’extraction. [Lavelli et al., 2004] propose un résumé critique des méthodologies
d’évaluation mises en œuvre depuis les débuts de l’EI. D’autre part, nous pouvons nous demander
si les meilleurs résultats obtenus depuis quelques années en EI sont directement issus de l’amélioration
des technologies ou s’il s’agit plutôt d’une simplification générale des tâches d’extraction.
Un dernier défi provient directement du récent engouement pour le Web Sémantique : il s’agit de
tisser des liens entre les communautés de l’extraction d’information et de l’ingénierie des connaissances
afin de "sémantiser" les informations extraites. Suivant l’objectif premier du Web Sémantique et du Web
de données — favoriser l’émergence de nouvelles connaissances en liant les informations aux connaissances
déjà présentes sur la toile — certains travaux s’attèlent à la problématique de création de liens
sémantiques entre la sortie des extracteurs et les bases de connaissance existantes (notamment grâce au
nommage unique par URI dans les données au format RDF). [Mihalcea and Csomai, 2007] [Ratinov
et al., 2011] [Milne and Witten, 2008] sont des exemples de travaux de ce type dont le but est de lier les
informations extraites à des concepts Wikipedia. Nous reviendrons plus amplement sur ces approches au
chapitre 3.1.2.
2.7 Conclusions
La réalisation de cet état de l’art sur l’extraction d’information a révélé un domaine de recherche
très étudié étant donné sa relative jeunesse : nous avons pu recenser un nombre important d’approches,
58
Copyright c 2013 - CASSIDIAN - All rights reserved2.7. Conclusions
d’applications possibles, de logiciels et plateformes développés ainsi que de campagnes et projets d’évaluation
menés jusqu’à nos jours. Les méthodes développées sont historiquement réparties en deux catégories
: les symboliques et les statistiques. Les premières, développées manuellement par des experts
de la langue, s’avèrent globalement plus précises, tandis que les secondes réalisent un apprentissage sur
une grande quantité de données présentent généralement un fort taux de rappel. Parallèlement à cela,
nous avons constaté une certaine complémentarité des approches existantes (voir la section 2.5.2) non
seulement en termes de précision et rappel de façon générale mais également du point de vue des types
d’entité ciblés, du genre textuel, du domaine d’application, etc. Il nous parait en conséquence pertinent
de proposer un système d’extraction fondé sur la combinaison de plusieurs approches existantes afin de
tirer partie de leurs différentes forces. Pour ce faire, les approches par apprentissage symbolique nous
paraissent intéressantes car elles s’avèrent faiblement supervisées et plus flexible que d’autres approches
statistiques. Enfin, ce tour d’horizon nous a permis de comparer différents outils et logiciels pour la mise
en œuvre de ces approches ainsi que différents jeu de données potentiellement adaptés à l’évaluation de
nos travaux.
59
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 2. Extraction automatique d’information
60
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 3
Capitalisation des connaissances
Sommaire
3.1 Fusion de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.1.1 Réconciliation de données . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.1.2 Web de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.1.3 Similarité entre données . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
3.2 Capitalisation appliquée aux événements . . . . . . . . . . . . . . . . . . . . . 66
3.3 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
61
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 3. Capitalisation des connaissances
Lorsque la quantité de documents disponibles dépasse un certain seuil, la problématique essentielle
devient d’aider les analystes à analyser cette masse de données et à identifier les informations d’inté-
rêt sans avoir à parcourir et synthétiser manuellement l’ensemble des documents. Dans ce contexte, les
outils d’EI abordés en chapitre 2 se trouvent limités : en effet, la plupart réalise une analyse de l’information
parcellaire, mono-document, mono-genre et mono-langue. De plus, comme nous l’avons montré,
ces systèmes sont encore, à l’heure actuelle, imparfaits et, même si les progrès dans ce sens ont été signi-
ficatifs depuis des années, les erreurs d’analyse ne sont pas rares. Face à cela, il devient de plus en plus
nécessaire d’adopter un point de vue global et de concevoir un système de capitalisation des connaissances
permettant à la fois d’extraire les informations d’intérêt à partir d’une masse de documents mais
également de valoriser les résultats des extracteurs en assurant leur cohérence (éliminer les redondances,
contradictions, créer des liens entres les informations, etc.) [Ji, 2010].
Cette problématique, relativement nouvelle, ne bénéficie pas encore d’un intérêt comparable aux
deux premiers axes (chapitres 1 et 2) mais elle est l’objet de recherches dans divers domaines tels que
la fusion de données, la réconciliation et le nettoyage de données, le Linked Data, la résolution de coréférence,
la détection de similarité entre données, etc. Nous présentons dans ce chapitre quelques-unes
des méthodes développées explorant différents angles d’un même axe de recherche, à savoir la capitalisation
globale et automatisée des connaissances.
3.1 Fusion de données
La fusion de données a fait ses débuts aux États-Unis dans les années 70 et a été beaucoup étudiée
jusqu’à nos jours dans des domaines divers tels que les applications militaires, de robotique, de transport
ou encore en traitement d’images. L’objectif principal de cette discipline est d’optimiser l’acquisition de
connaissances en combinant un ensemble d’informations (souvent imparfaites et hétérogènes) provenant
de multiples sources plutôt que de les considérer chacune individuellement. Selon l’application, la fusion
de données peut servir, d’une part, à reconstituer une situation le plus fidèlement possible à la réalité ou,
d’autre part, à améliorer le processus de prise de décision [Desodt-Lebrun, 1996]. Parallèlement aux données
à fusionner, la plupart des méthodes de fusion emploie des informations supplémentaires guidant
la combinaison. Celles-ci peuvent provenir des données elles-mêmes ou de sources externes et sont par
conséquent potentiellement exprimées dans des formalismes distincts. On distingue généralement plusieurs
niveaux de fusion selon le type des informations traitées. Nous retiendrons la distinction principale
entre la fusion dite numérique manipulant des informations de bas niveau (provenant essentiellement de
capteurs) [Bloch, 2005] et la fusion dite symbolique dédiée aux informations de plus haut niveau. C’est
dans le cadre de ce second type de fusion (symbolique) qu’apparaissent les travaux introduisant des techniques
issues de l’intelligence artificielle et principalement ce que l’on nomme les systèmes à base de
connaissance. Ceux-ci sont fondés, d’une part, sur une base de connaissances contenant l’expertise du
domaine (les faits ou assertions connus) et, d’autre part, un moteur d’inférence permettant de déduire de
nouvelles connaissances à partir de l’existant. Les systèmes à base de connaissance peuvent impliquer
différents types de traitement sur les données : les raisonnements temporel et spatial, les déductions et
inductions logiques, l’apprentissage automatique, diverses techniques de traitement automatique du langage,
etc. La fusion symbolique est souvent choisie pour le traitement des données textuelles et trouve de
nombreuses applications dans les systèmes automatiques nécessitant une interaction avec l’être humain.
62
Copyright c 2013 - CASSIDIAN - All rights reserved3.1. Fusion de données
Alors que beaucoup de recherches ont été menées dans le cadre de la fusion de données numériques,
l’extraction automatique d’information apparait comme une perspective nouvelle permettant d’appliquer
ces techniques à un autre type de données et dans un contexte particulièrement incertain et bruité. Ce
besoin est fondé sur une constatation principale qui s’avère particulièrement vraie dans le contexte de
la veille en sources ouvertes : la même information est rapportée de nombreuses fois par des sources
différentes et sous diverses formes. Cela ce traduit notamment par l’utilisation de divers vocabulaires et
conventions pour exprimer les mêmes données, des informations plus ou moins à jour et complètes selon
les sources, des points de vue différents sur les faits, etc.
Dans les sections suivantes, nous abordons plusieurs axes de recherche traitant de cette problématique,
à savoir la réconciliation des données, le Web de données et la détection de similarité entre données,
puis nous nous centrerons sur l’application des méthodes de capitalisation de connaissances à la
reconnaissance des événements.
3.1.1 Réconciliation de données
Le réconciliation de données est abordée dans la littérature sous de multiples dénominations, provenant
de différentes communautés scientifiques et mettant l’accent sur un aspect particulier de cette
problématique : des travaux comme ceux de [Winkler et al., 2006] parlent de record linkage (littéralement
traduit par "liaison d’enregistrements ou d’entrées"), on trouve également les termes d’appariement
d’objets (object matching), réconciliation de référence [Saïs et al., 2009], duplicate record detection
(détection de doublons) [Elmagarmid et al., 2007], désambiguïsation d’entités ou encore résolution de
co-référence entre entités [Bhattacharya and Getoor, 2007]. Les premiers sont plutôt issus de la communauté
des bases de données, tandis que ces derniers sont généralement employés par les chercheurs en
intelligence artificielle (TAL, ingénierie des connaissances, Web sémantique, etc.).
Le problème de la réconciliation de données a fait ses débuts dans les années 60 avec les travaux de
[Newcombe et al., 1959] en génétique puis avec ceux de [Fellegi and Sunter, 1969] pour le traitement
de duplicats dans des fichiers démographiques. La capacité à désambiguïser des dénominations polysé-
miques ou d’inférer que deux formes de surface distinctes réfèrent à la même entité est cruciale pour
la gestion des bases de données et de connaissances. La méthode la plus simple (mais aussi la moins
efficace) pour réconcilier des données est de comparer uniquement leurs représentations textuelles. Les
premiers travaux dans ce sens réalisent une réconciliation de référence par paires de mentions et fondée
sur la représentation de leurs contextes linguistiques en vecteurs de caractéristiques. Différentes mesures
de similarité (voir la section 3.1.3) sont ensuite estimées entre ces vecteurs pour les combiner de fa-
çon linéaire par moyenne pondérée, par exemple [Dey et al., 1998]. Plus récemment, d’autres travaux
proposent un appariement des descriptions de données plus générique mais toujours basé sur des comparaisons
locales [Benjelloun et al., 2006] ou suivent une approche globale exploitant les dépendances
existant entre les réconciliations [Dong et al., 2005]. Enfin, [Saïs et al., 2009] propose une approche de
réconciliation de référence à base de connaissances et non-supervisée qui combine une méthode logique
et une technique numérique. Ces travaux permettent d’exploiter la sémantique exprimée par les données
et par leur structure par application d’un ensemble d’heuristiques.
Dans le domaine du traitement de données textuelles, lorsque cette tâche est réalisée sans liaison à
une base de connaissances externe, elle est souvent appelée résolution de co-référence : les mentions
d’entités provenant soit d’un même document soit de plusieurs sont regroupées, chaque groupe référant
63
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 3. Capitalisation des connaissances
à une seule et même entité réelle. La tâche de résolution de co-référence sur un ensemble de documents
a été adressée par plusieurs chercheurs en commençant par [Bagga and Baldwin, 1999]. Ceux-ci se sont
attelés au problème de la co-référence inter-documents en comparant, pour chaque paire d’entités dans
deux documents distincts, les vecteurs de mots construits à partir de toutes les phrases contenant les
mentions des deux entités. Pour aller plus loin, d’autres approches utilisent des modèles probabilistes
[Verykios and Elmagarmid, 1999] mais ceux-ci nécessitent une grande quantité de données annotées
pour leur apprentissage. [Wacholder et al., 1997] a développé Nominator l’un des premiers systèmes de
REN et de co-référence entre entités fondé sur des mesures de similarité entre contextes d’occurrence.
Par ailleurs, un ensemble de travaux récents proposent de représenter l’information extraite de plusieurs
documents sous la forme d’un réseau [Ji et al., 2009] où les entités d’intérêt sont vues comme les feuilles
d’un graphe et peuvent être liées entre elles par différents types de relations statiques.
Ces différentes études visent à regrouper toutes les mentions d’une même entité au sein d’une collection
de textes. Toutefois, la construction d’une chaine de co-référence entre entités ne suffit pas à la
capitalisation des connaissances car il reste nécessaire de rattacher cette chaine à une entité du monde
réel. Il s’agit d’une tâche complexe et il s’avère parfois difficile, même pour un lecteur humain, de dé-
terminer à quel objet il est fait référence dans un texte. Dans la plupart des cas, celui-ci identifie la
référence d’une entité grâce à des indices issus de son contexte textuel mais aussi et surtout en exploitant
l’ensemble du savoir qu’il a déjà acquis par des expériences passées.
3.1.2 Web de données
Avec l’essor du Web sémantique de nombreuses recherches proposent d’aller plus loin dans la réconciliation
de données et de lier les connaissances entre elles pour créer un Web de données ou Linked Open
Data (LOD). Ce liage d’entités est défini comme l’appariement d’une mention textuelle d’une entité et
d’une entrée définie dans une base de connaissances.
On distingue 3 défis à dépasser pour cette tâche [Dredze et al., 2010] :
– Les variations de forme : une seule et même entité est souvent mentionnée sous diverses formes
textuelles telles que des abréviations (JFK pour John Fitzgerald Kennedy), des expressions raccourcies
(Obama pour Barack Obama), des orthographes alternatives (Osama, Ussamah ou encore
Oussama pour désigner l’ancien dirigeant d’Al-Qaïda) et des alias/pseudonymes (Big Apple pour
la ville de New York).
– Les ambiguïtés référentielles : une seule et même forme de surface peut correspondre à plusieurs
entrées dans une base de connaissances. En effet, de nombreux noms d’entités sont polysémiques
(Paris est une ville en France mais aussi au Texas).
– L’absence de référent : il peut arriver, particulièrement lorsque la quantité de documents traités
est conséquente, que la ou les base(s) de connaissances servant de référentiel ne contiennent pas
d’entrée pour une ou plusieurs des entités repérées dans les textes (par exemple, le tout nouveau
nom donné par les spécialistes à une catastrophe naturelle).
De par sa popularité et son exhaustivité, la base de connaissances Wikipédia a largement été utilisée
comme base de référence pour le liage de données : ce cas particulier a même reçu le nom de Wikification.
Etant donné une chaine de caractères identifiée dans un texte, l’objectif est de déterminer la page
Wikipédia à laquelle cette chaine fait référence. Par exemple, pour la phrase suivante "Votre avion dé-
collera de JFK", un système de Wification retournera l’identifiant ❤tt♣✿✴✴❢r✳✇✐❦✐♣❡❞✐❛✳♦r❣✴✇✐❦✐✴
64
Copyright c 2013 - CASSIDIAN - All rights reserved3.1. Fusion de données
❆✪❈✸✪❆✾r♦♣♦rt❴✐♥t❡r♥❛t✐♦♥❛❧❴❏♦❤♥✲❋✳✲❑❡♥♥❡❞②, correspondant à l’aéroport de New York et non
la page du 35ème président des États-Unis, par exemple. Les études existantes sur la Wikification diffèrent
en fonction des types de corpus traités et des expressions qu’elles cherchent à lier. Par exemple,
certains travaux se focalisent sur la Wikification des entités nommées alors que d’autres visent toutes les
expressions d’intérêt en cherchant à reproduire un équivalent de la structure de liens de Wikipédia pour
un ensemble de textes donné.
Le système Wikifier [Milne and Witten, 2008], par exemple, est fondé sur une approche utilisant les
liens entre les articles de Wikipédia en tant que données d’apprentissage. En effet, les liens entre les pages
de cette base étant créés manuellement par les éditeurs, ils constituent des données d’apprentissage très
sûres pour réaliser des choix de désambiguïsation. Par ailleurs, le prototype LODifier [Augenstein et al.,
2012] vise à convertir des textes en langage naturel de tout domaine en données liées. Cette approche
incorpore plusieurs méthodes de TAL : les entités nommées sont repérées par un outil de REN, des relations
normalisées sont extraites par une analyse sémantique profonde des textes et une méthode de
désambiguisation sémantique (Word Sense Disambiguation en anglais) permet de traiter les cas de polysémie.
L’outil Wikifier y est utilisé pour améliorer la couverture de la REN mais également pour obtenir
des liens vers le Web de données grâce aux identifiants DBPedia proposés. Le sens d’un document est
finalement consolidé en un graphe RDF dont les noeuds sont connectés à des bases à large couverture du
LOD telles que DBPedia et WordNet. Contrairement aux approches précédentes, les travaux de [Dredze
et al., 2010] sont facilement adaptables à d’autres bases de connaissances que Wikipédia. Cette approche
implémente un apprentissage supervisé fondé sur un ensemble exhaustif de caractéristiques textuelles et
s’avère particulièrement efficace dans les cas d’absence de référent.
Pour finir, citons l’initiative NLP2RDF 97 qui, également dans l’objectif de créer le Web de données,
propose le format d’échange unifié NIF (NLP Interchange Format) afin de favoriser l’interopérabilité des
méthodes et systèmes de TAL et l’exploitation de leurs résultats au sein du LOD (via le langage RDF
notamment).
3.1.3 Similarité entre données
Comme entrevu dans les sections précédentes, les recherches menées en réconciliation de données
(au sens large) vont de paire, dans la littérature, avec les travaux conduits autour des calculs de similarité
entre ces données. La multitude des calculs de similarité existants faisant que nous ne pourrons les parcourir
de façon exhaustive ici, nous choisissons de les présenter par catégories et ce en faisant référence
à des états de l’art existants, spécialisés sur cette problématique.
Nous avons retenu deux d’entre eux très complets à savoir [Elmagarmid et al., 2007] et [Bilenko
et al., 2003]. Les approches de calcul de similarité procèdent généralement en deux étapes : une phase
dite de préparation des données suivie d’une phase de fusion des champs référant à une même entité.
En effet, hétérogènes du point de vue de leur fond et de leur forme, les données manipulées nécessitent
d’être pré-traitées dans le but de les stocker de façon la plus uniforme possible dans les bases de données.
Cela consiste généralement à réduire au maximum leur diversité structurelle en les convertissant dans un
format commun et normalisé. Vient, dans un second temps, l’étape de comparaison des données entre
elles et d’estimation de leur similarité. Une grande quantité de méthodes ont été proposé pour ce faire :
celles-ci varient sur plusieurs critères (type de données visé, niveau de comparaison, etc.) qui donnent
97. ❤tt♣✿✴✴♥❧♣✷r❞❢✳♦r❣✴❛❜♦✉t
65
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 3. Capitalisation des connaissances
à des catégorisations différentes. [Elmagarmid et al., 2007] distingue les mesures de similarité au niveau
caractère (distance d’édition, affine gap distance, distance de Smith-Waterman, distance de Jaro,
Q-Grams) et les métriques basées sur les tokens (chaines atomiques, WHIRL, Q-Grams avec TF.IDF).
[Bilenko et al., 2003] différencie les mesures statiques (distance d’édition, métrique de Jaro et ses variantes,
distances basées sur les tokens et hybrides) de celles à base d’apprentissage (classifieurs SVM
entrainés avec des vecteurs de caractéristiques, affine gap distance, modèles d’apprentissage avec distance
de Levenstein). Pour finir, nous pouvons citer les recherches de [Moreau et al., 2008] définissant
un modèle générique en vue de faciliter la combinaison de différentes mesures de similarité au sein d’un
même système.
3.2 Capitalisation appliquée aux événements
Selon [Quine, 1985], deux mentions d’événement co-réfèrent si elles partagent les mêmes propriétés
et participants. Contrairement à la co-référence entre entités dites simples, celle entre événements s’avère
plus complexe principalement car les mentions d’événements présentent des structures linguistiques plus
riches et variées que les mentions d’entités simples. De plus, le premier type de tâche est réalisé au niveau
du mot ou du groupe de mots alors que la résolution de co-référence entre événements doit s’effectuer à
un niveau plus élevé (phrase, discours).
Une partie des approches existantes pour répondre à ce problème repose sur des méthodes d’apprentissage
supervisées explorant diverses caractéristiques linguistiques des textes [Humphreys et al.,
1997] [Bagga and Baldwin, 1999] [Naughton et al., 2006]. [Lee et al., 2012], par exemple, propose
une approche globale par apprentissage pour la résolution de co-référence, réalisée de façon conjointe
entre entités et événements, au sein d’un seul ou de plusieurs documents. Celle-ci est fondée sur une
méthode itérative de regroupement exploitant un modèle de régression linéaire appris sur ces données.
Toutefois, la résolution de co-référence entre événements impliquant d’explorer une grande quantité de
caractéristiques linguistiques, annoter un corpus d’apprentissage pour cette tâche requiert un effort de
développement manuel important. De plus, étant donné que ces modèles reposent sur des décisions locales
d’appariement, ils ne peuvent généralement pas capturer des relations de co-référence au niveau
d’un sujet défini ou sur une collection de plusieurs documents. En réponse à cela, sont créés des systèmes
comme Resolver [Yates and Etzioni, 2009] qui permet d’agréger des faits redondants extraits (par l’outil
d’extraction d’information TextRunner) grâce à un modèle non-supervisé estimant la probabilité qu’une
paire de mentions coréfèrent en fonction de leur contexte d’apparition (exprimé sous forme de n-tuples).
Par ailleurs, [Chen and Ji, 2009] propose de représenter les co-références entre événements par un graphe
pondéré non-orienté où les nœuds représentent les mentions d’événement et les poids des arêtes correspondent
aux scores de co-référence entre deux des mentions. La résolution de co-référence est ensuite
réalisée comme un problème de clustering spectral du graphe mais le problème le plus délicat reste l’estimation
des similarités en elles-mêmes. Il nous faut noter enfin les travaux de [Khrouf and Troncy, 2012]
explorant la problématique de la réconciliation des événements dans le Web de données. En effet, partant
du constat que le nuage LOD contient un certain nombre de silos d’événements possédant leurs propres
modèles de données, ceux-ci proposent d’aligner cet ensemble de descriptions d’événements grâce à diverses
mesures de similarité et de les représenter avec un modèle commun (l’ontologie LODE présentée
en section 1.3.1.2).
66
Copyright c 2013 - CASSIDIAN - All rights reservedPour finir, concernant l’évaluation de cette problématique, nous pouvons mentionner la campagne
d’évaluation ACE (présentée en section 2.5.1) mettant à disposition des données d’évaluation pour la
tâche Event Detection and Recognition (VDR). Toutefois, son utilisation s’avère limitée car cette ressource
ne contient que des annotations de co-référence intra-documents et pour un nombre restreint de
types d’événements (Life, Movement, Transaction, Business, Conflict, Contact, Personnel and Justice).
3.3 Conclusions
La réalisation de cet état de l’art a mis en exergue une suite logique à nos travaux sur l’extraction
automatique d’information, à savoir la problématique du passage du texte à la connaissance proprement
dite. Comme nous avons pu le voir, celle-ci a donné lieu à diverses recherches au sein de plusieurs
communautés de l’IA, chacune d’elles manipulant sa propre terminologie adaptée à ses propres besoins.
Ses divergences de vocabulaire n’empêchent pas de voir la place importante réservée à la capitalisation
des connaissances au sein des recherches actuelles que ce soit en fusion de données, extraction d’information
ou Web sémantique. Certains de ces travaux nous paraissent convenir à nos objectifs tels que
[Chen and Ji, 2009] avec leur représentation en graphe de l’ensemble des connaissances (bien adaptée
aux travaux dans le cadre du Web sémantique et du WebLab notamment), [Khrouf and Troncy, 2012]
pour leur approche globale autour de plusieurs bases de connaissances et enfin, les différentes similarités
entre données qui peuvent permettre de réconcilier des extractions. Les enseignements tirés de ce tour
d’horizon ont été exploités lors de l’élaboration de notre approche d’agrégation des événements (voir le
chapitre 6). Ce chapitre clôture notre partie état de l’art sur les différents domaines de recherche abordés
par cette thèse.
67
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 3. Capitalisation des connaissances
68
Copyright c 2013 - CASSIDIAN - All rights reservedDeuxième partie
Contributions de la thèse
69
Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction
Cette seconde partie présente les contributions réalisées durant cette thèse en réponse à notre problé-
matique de recherche et de façon adaptée aux conclusions de l’état de l’art réalisé. Nous y proposons,
dans le chapitre 4 Modélisation des connaissances du domaine, notre première contribution : un modèle
de représentation des connaissances conçu en accord avec les besoins de notre cadre applicatif (le
ROSO et le Media mining) et avec les observations faites au chapitre 1 (sur les modèles et approches
existantes). Cette première proposition comprend, d’une part, une modélisation des événements en plusieurs
dimensions et, d’autre part, une implémentation de ce modèle au sein d’une ontologie de domaine,
nommée WOOKIE, élaborée durant nos recherches. Dans un second chapitre (5 Extraction automatique
des événements), les contributions liées à notre axe de recherche Extraction d’information seront exposées.
Nous commencerons par la conception d’une approche de reconnaissance d’entités nommées pour
l’anglais et le français et implémentée grâce à la plateforme GATE. Puis, le cœur du chapitre sera dédié à
l’élaboration d’une approche mixte pour l’extraction automatique des événements dans les textes selon le
modèle de connaissances défini auparavant. Celle-ci est fondée sur deux techniques actuelles issue de la
littérature en extraction d’information : une première méthode symbolique à base de règles linguistiques
contextuelles et une seconde fondée sur un apprentissage de patrons d’extraction par fouille de motifs
séquentiels fréquents. L’ensemble des méthodes exposées seront accompagnées d’exemples tirés de données
réelles afin de faciliter leur compréhension. Enfin, le dernier chapitre de cette partie (6 Agrégation
sémantique des événements) sera centré sur un processus d’agrégation sémantique des événements destiné
à assurer la création d’un ensemble de connaissances cohérent et d’intérêt pour l’utilisateur. Cela
sera réalisé en différentes phases (conformément aux observations faites durant l’état de l’art) : une première
étape de normalisation des différentes extractions, suivie d’une approche permettant d’estimer une
similarité sémantique multi-niveaux entre événements et un processus d’agrégation sémantique fondé
sur une représentation en graphe des connaissances.
71
Copyright c 2013 - CASSIDIAN - All rights reservedIntroduction
72
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 4
Modélisation des connaissances du
domaine
Sommaire
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2 Notre modèle d’événement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.2.1 La dimension conceptuelle . . . . . . . . . . . . . . . . . . . . . . . . . 75
4.2.2 La dimension temporelle . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.2.3 La dimension spatiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.2.4 La dimension agentive . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.3 WOOKIE : une ontologie dédiée au ROSO . . . . . . . . . . . . . . . . . . . 78
4.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
73
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 4. Modélisation des connaissances du domaine
4.1 Introduction
Ce chapitre détaille la première contribution proposée durant nos travaux de thèse : une modélisation
des événements ainsi qu’une ontologie de domaine nommée WOOKIE. Celles-ci ont été élaborées en
fonction des conclusions de notre état de l’art et de façon adaptée à notre problématique, à savoir l’extraction
automatique des événements dans le cadre du ROSO. Nous proposons, tout d’abord, le modèle
d’événement défini pour servir de guide à l’ensemble de notre processus de capitalisation des connaissances.
Un événement est représenté selon quatre dimensions (conceptuelle, temporelle, spatiale et agentive)
pour chacune desquelles nous avons défini des propriétés bien spécifiques. Enfin, nous présentons
l’élaboration de notre ontologie de domaine au regard de la littérature et en y intégrant notre modélisation
des événements. Nous terminons ce chapitre par un bilan des forces et faiblesses de notre contribution.
4.2 Notre modèle d’événement
Nous prenons pour point de départ la définition de Krieg-Planque ("un événement est une occurrence
perçue comme signifiante dans un certain cadre") qui apparaît bien adaptée à nos travaux. Cette
définition restant très théorique, il convient d’expliciter comment un événement est exprimé au sein des
dépêches de presse (celles de l’AFP 98, par exemple). Après observation de plusieurs dépêches, celles-ci
semblent généralement être centrées sur un événement principal, celui-ci étant le plus souvent résumé
dans le titre et explicité tout au long de l’article (en faisant parfois référence à d’autres événements).
Cette description de l’événement tout au long de la dépêche, est constituée de plusieurs sous-événements
("mentions d’événement" dans le modèle ACE) qui contribuent à la "mise en intrigue" mentionnée auparavant.
Ces mentions d’événements sont généralement composées d’un terme déclencheur (dit aussi
"nom d’événement" ou "ancre") associé à une ou plusieurs autres entités d’intérêt ("arguments" dans le
modèle ACE) telles que des circonstants spatio-temporels (date et lieu de l’événement) et des participants
(acteurs, auxiliaires, instruments, etc.). L’objectif de nos travaux est d’extraire automatiquement
les mentions d’événement pertinentes pour notre application pour ensuite agréger celles qui réfèrent à un
seul et même événement dans la réalité.
Afin de proposer une définition formelle des événements, nous nous fondons également sur les travaux
de [Saval et al., 2009] décrivant une extension sémantique pour la modélisation d’événements de
type catastrophes naturelles. Les auteurs définissent un événement E comme la combinaison d’une propriété
sémantique S, d’un intervalle temporel T et d’une entité spatiale SP. Nous adaptons cette modé-
lisation à notre problématique en y ajoutant une quatrième dimension A pour représenter les participants
impliqués dans un événement et leurs rôles respectifs. Par conséquent, un événement est représenté
comme suit :
Définition 1. Un événement E est modélisé comme E =< S, T, SP, A > où la propriété sémantique S
est le type de l’événement (que nous appellerons dimension conceptuelle), l’intervalle temporel T est la
date à laquelle l’événement est survenu, l’entité spatiale SP est le lieu d’occurrence de l’événement et
A est l’ensemble des participants impliqués dans E associés avec le(s) rôle(s) qu’ils tiennent dans E.
Exemple 1. L’événement exprimé par "M. Dupont a mangé au restaurant Lafayette à Paris en 1999" est
représenté comme (Manger, 1999, Paris, M. Dupont).
98. Agence France Presse
74
Copyright c 2013 - CASSIDIAN - All rights reserved4.2. Notre modèle d’événement
Les sections suivantes décrivent comment chaque dimension de l’événement est modélisée.
Enfin, dans nos travaux, le "cadre" mentionné par Krieg-Planque est défini par l’ontologie de domaine
WOOKIE 99 (voir la section 4.3) et plus précisément par la spécification de la classe événement ("Event")
en différentes sous-classes et propriétés. Il détermine quels sont les entités et événements d’intérêt pour
notre application.
4.2.1 La dimension conceptuelle
La dimension conceptuelle S d’un événement correspond au sens véhiculé par le nom porteur de
cet événement. En effet, comme le souligne [Neveu and Quéré, 1996], l’interprétation d’un événement
dépend étroitement de la sémantique exprimée par les termes employés pour nommer cet événement.
Cette dimension équivaut à la propriété sémantique des événements évoquée par [Saval et al., 2009]
et représente le type de l’événement, c’est-à-dire sa classe conceptuelle au sein de notre ontologie de
domaine.
C’est la taxonomie des événements au sein de WOOKIE qui constitue le support principal de cette
dimension conceptuelle. Nous avons défini pour notre application environ 20 types d’événement d’intérêt
pour le renseignement militaire regroupés sous le concept de MilitaryEvent. Les différentes sous-classes
d’événement sont les suivantes :
– AttackEvent : tout type d’attaque,
– BombingEvent : les attaques par explosifs,
– ShootingEvent : les attaques par armes à feu,
– CrashEvent : tous les types d’accidents,
– DamageEvent : tous les types de dommages matériels,
– DeathEvent : les décès humains,
– FightingEvent : les combats,
– InjureEvent : tout type d’événement entrainant des blessés,
– KidnappingEvent : les enlèvements de personnes,
– MilitaryOperation : tout type d’opération militaire,
– ArrestOperation : les arrestations,
– HelpOperation : les opérations d’aide et de secours,
– PeaceKeepingOperation : les opérations de maintien de la paix,
– SearchOperation : les opérations de recherche,
– SurveillanceOperation : les opérations de surveillance,
– TrainingOperation : les entrainements,
– TroopMovementOperation : les mouvements de troupes,
– NuclearEvent : tout type d’événement nucléaire,
– TrafficEvent : tout type de trafic illégal.
Cette taxonomie a été essentiellement constituée en nous inspirant des modélisations existantes dans
le domaine telles que celles présentées en section 1.3.3. Mais également par observation des différents
types d’événements rapportés dans des dépêches de presse sur des thèmes tels que les guerres en Afghanistan
et en Irak ou encore les diverses attaques terroristes dans le monde.
99. Weblab Ontology for Open sources Knowledge and Intelligence Exploitation
75
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 4. Modélisation des connaissances du domaine
4.2.2 La dimension temporelle
Pour la représentation des entités temporelles extraites nous utilisons le "Time Unit System" (TUS)
proposé par [Ladkin, 1987]. Contrairement à la majorité des modèles théoriques dédiés à la logique temporelle
[Fisher et al., 2005], ce formalisme s’avère plus applicable à des situations réelles de traitement
des entités temporelles, notamment, par sa proximité avec les systèmes calendaires communément utilisés.
Il s’agit d’une approche hiérarchique et granulaire qui représente toute expression temporelle en
un groupe de granules (c’est-à-dire des unités temporelles indivisibles). Un granule (ou unité de temps)
est une séquence finie d’entiers organisés selon une hiérarchie linéaire : année, mois, jour, heure, etc. De
plus, ce formalisme introduit la notion de BTU (Basic Time Unit) qui correspond au niveau de granularité
choisi en fonction de la précision nécessitée par une application (e.g. les jours, les secondes, etc.). Par
exemple, si le BTU est fixé à heure, chaque unité temporelle sera exprimée comme une séquence d’entiers
i telle que : i = [année,mois,jour,heure]. De plus, TUS définit la fonction maxj ([a1, a2, ..., aj−1])
donnant la valeur maximale possible à la position j pour qu’une séquence temporelle soit valide en tant
que date. Cet opérateur est nécessaire car, selon notre actuel système calendaire, le granule jour dé-
pend des granules mois et année. [Ligeza and Bouzid, 2008] définit toutes les valeurs maximales pour le
granule jour de la façon suivante :
– max3([g1, 2]) = 29 lorsque a1 est une année bissextile
– max3([g1, 2]) = 28 lorsque a1 est une année non-bissextile
– max3([g1, g2]) = 31 quelque soit g1 et lorsque g2 ∈ {1, 3, 5, 7, 8, 10, 12}
– max3([g1, g2]) = 30 quelque soit g1 et lorsque g2 ∈ {4, 6, 9, 11}
Une date est dite légale lorsqu’elle est valide au regard de cet opérateur et plus généralement du système
calendaire courant et elle est dite illégale dans le cas contraire.
Pour notre application, nous choisissons un BTU jour correspondant à la précision maximale des
dates extraites. Par conséquent, toute expression temporelle i aura la forme suivante : i = [année,mois,jour].
Par exemple, [2010,09,19] représente un intervalle de temps qui débute le 18 septembre 2012 à minuit
et termine un jour plus tard (ce qui équivaut à un BTU).
De plus, les entités temporelles extraites peuvent s’avérer plus ou moins précises. Dans certains
cas, les expressions de temps peuvent être imprécises à l’origine (e.g. "en Mai 2010") et, dans d’autres
cas, l’imprécision peut être causée par une erreur d’extraction. Pour représenter ces entités floues, nous
introduisons le symbole ∅ défini comme le manque d’information au sens général. Soit T = [g1, g2, g3]
une expression temporelle :
Définition 2. Expression temporelle complète : T est complète lorsque ∀i∈{1,2,3}
, gi 6= ∅
Définition 3. Expression temporelle incomplète : T est incomplète lorsque ∃i∈{1,2,3}
, gi = ∅
Nous listons ci-dessous toutes les formes possibles que peuvent revêtir les dates extraites une fois
exprimées avec le formalisme TUS ainsi que des exemples :
– [year, month, day], e.g. [2011, 12, 14] ;
– [year, month] e.g. [2011, 12, ∅] ;
– [month, day], e.g. [∅, 12, 14] ;
– [year] e.g. [2011, ∅, ∅] ;
– [month] e.g. [∅, 12, ∅] ;
76
Copyright c 2013 - CASSIDIAN - All rights reserved4.2. Notre modèle d’événement
– [day] e.g. [∅, ∅, 14].
Enfin, le modèle TUS introduit l’opérateur convexify permettant la représentation des intervalles
temporels convexes. Prenant pour paramètres deux intervalles primaires i et j, convexify(i, j) retourne
le plus petit intervalle de temps contenant i et j. Par exemple, convexify([2008], [2011]) correspond à
l’intervalle de 3 ans entre le premier jour de l’année 2008 et le dernier jour de 2011. Nous utilisons cet
opérateur pour exprimer de façon unifiée les périodes de temps extraites des textes et permettre ainsi des
calculs temporels grâce au modèle TUS. Par conséquent, une extraction telle que "from 2001 to 2005"
est normalisé sous la forme convexify([2001], [2005]).
4.2.3 La dimension spatiale
Pour notre application, nous choisissons de représenter les entités spatiales comme des aires géographiques
et d’utiliser les relations topologiques du modèle RCC-8 pour leur agrégation. En effet, ce
modèle s’avère mieux adapté à la comparaison d’entités spatiales que ceux à base de points et fondés
sur les coordonnées géographiques. Comme dans le cas des entités temporelles, le raisonnement spatial
nécessite d’opérer sur des objets non-ambigus et nous devons par conséquent préciser géographiquement
tous les lieux extraits par notre système. Dans le cadre du WebLab, nous nous intéressons notamment à la
désambiguïsation d’entités spatiales dans le but d’effectuer des traitements plus avancés comme la géolocalisation
ou l’inférence spatiale [Caron et al., 2012]. Cette étape est réalisée en associant un identifiant
GeoNames 100 unique (une URI) à chaque lieu extrait. Utiliser une base géographique comme GeoNames
a plusieurs avantages : tout d’abord, il s’agit d’une base open-source et sémantique, par conséquent bien
adaptée à une intégration au sein du WebLab ; de plus, en complément des coordonnées géographiques,
cette ressource fournit des relations topologiques entre lieux, comme par exemple des relations d’inclusion.
Nous utilisons, plus précisément, les trois propriétés suivantes pour l’agrégation des événements
(voir la section 6.3.3) :
– la propriété "children" réfère à une inclusion administrative ou physique entre deux entités géographiques
;
– la propriété "nearby" relie deux entités qui sont géographiquement proches l’une de l’autre ;
– la propriété "neighbour" est utilisée lorsque deux entités géographiques partagent au moins une
frontière.
La section 6.3.3 détaille comment nous utilisons ces relations topologiques pour l’agrégation des
entités spatiales.
4.2.4 La dimension agentive
Comme dit précédemment, tous les participants d’un événement et leurs rôles respectifs sont repré-
sentés formellement par la dimension A. Nous définissons cette dimension de l’événement comme un
ensemble A = (Pi
, rj ) où chaque élément est un couple composé d’un participant pi et d’un rôle rj et
où i et j ∈ N. Notre modèle ne limite pas la nature du champ "participant" (chaîne de caractères, entité
nommée, nom propre/commun, etc.) pour rester le plus générique possible. Toutefois, dans notre application
un participant correspond concrètement à une entité nommée de type Personne ou Organisation
ayant été extraite et liée automatiquement à l’événement dans lequel elle est impliquée. Les différents
100. ❤tt♣✿✴✴✇✇✇✳❣❡♦♥❛♠❡s✳♦r❣✴
77
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 4. Modélisation des connaissances du domaine
types de rôles possibles ne sont également pas restreints ici car cela est fortement corrélé à l’application
et aux capacités des extracteurs. Notre méthode d’extraction (voir la section 5.4) n’ayant pas été conçue
pour déterminer le rôle joué par un participant dans un événement, cet aspect ne sera pas traité ici.
4.3 WOOKIE : une ontologie dédiée au ROSO
Afin de définir précisément quelles sont les informations d’intérêt pour notre application, nous avons
développé une ontologie de domaine nommée WOOKIE constituant la base de notre système de capitalisation
des connaissances. Celle-ci a été créée de façon collaborative et a pour but de représenter les
concepts de base nécessaires aux diverses applications du domaine. Cet aspect collaboratif (grâce notamment
au logiciel WebProtégé) constitue un point important car il nous a permis de mettre en commun
les visions de plusieurs membres de l’équipe IPCC afin de mieux cerner les besoins des opérationnels du
renseignement. De plus, cette ontologie est implémentée au format OWL 101 selon les recommandations
du W3C102 pour la représentation des connaissances au sein du Web Sémantique. Notre objectif étant de
développer une ontologie à taille raisonnable mais générique pour le renseignement militaire, nous avons
tout d’abord mené quelques recherches pour faire le point sur les ontologies existantes. En effet, il nous
est apparu intéressant de pouvoir reprendre tout ou partie d’une modélisation déjà disponible. WOOKIE
a donc été élaborée suite à un état de l’art approfondi de la littérature du domaine et des ontologies
existant à l’heure actuelle (dont une partie est présentée dans le chapitre 1).
Nous avons commencé par examiner les ontologies générales (dites "de haut niveau") les plus connues
et utilisées telles que SUMO 103, PROTON 104, BFO 105, DOLCE 106 ou encore COSMO 107. Ces ontologies
sont modélisées à divers niveaux : elles définissent des concepts de haut niveau ou "meta-concepts"
(pouvant servir de base à l’organisation d’encyclopédies par exemple) mais aussi des spécialisations des
concepts Lieu et Organisation qui se sont avérées particulièrement intéressantes pour le développement
de notre ontologie. Puis, d’autres modélisations plus spécifiques nous ont été utiles, telles que des modélisations
spécifiques au domaine militaire (voir la section 1.3.3), des ontologies spécialisées dans la
description des évènements (voir la section 1.3). Ces différentes observations ont montré qu’aucune des
ontologies trouvées ne correspondaient parfaitement au modèle de connaissances voulu et qu’il n’était
donc pas adéquat de reprendre une de ces représentations en l’état. Toutefois, nous nous sommes inspirés
de ces modélisations tout au long de la construction de WOOKIE et avons veillé à maintenir des équivalences
sémantiques avec les ontologies existantes. Le développement de notre ontologie de domaine a été
guidé par les méthodologies de la littérature telles que [Noy and Mcguinness, 2001] [Mizoguchi, 2003a].
Celles-ci nous ont permis d’organiser notre travail en plusieurs étapes que nous détaillons ci-après.
Nous avons commencé par concevoir une taxonomie de concepts de haut niveau constituant la base
de notre modélisation. Pour cela, nous avons accordé une attention particulière aux standards OTAN
car ils définissent les objets d’intérêt et leurs propriétés pour le renseignement militaire. Ces standards
demeurant trop techniques et détaillés, nous avons fait le choix de nous concentrer sur les catégories de
101. Ontology Web Language, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴❚❘✴♦✇❧✲❢❡❛t✉r❡s✴
102. World Wide Web Consortium, ❤tt♣✿✴✴✇✇✇✳✇✸✳♦r❣✴
103. Suggested Upper Merged Ontology
104. PROTo ONtology
105. Basic Formal Ontology
106. Descriptive Ontology for Linguistic and Cognitive Engineering
107. Common Semantic MOdel
78
Copyright c 2013 - CASSIDIAN - All rights reserved4.3. WOOKIE : une ontologie dédiée au ROSO
l’intelligence définies par le STANAG 2433, connues sous le nom de "pentagramme du renseignement"
(voir la figure 4.1).
FIGURE 4.1 – Le pentagramme du renseignement
Ce pentagramme reprend les éléments centraux du domaine du renseignement militaire et les définit
comme ci-dessous.
– Le concept Units y est défini comme tout type de rassemblement humain partageant un même
objectif, pouvant être hiérarchiquement structuré et divisé en sous-groupes. Il s’agit à la fois des
organisations militaires, civiles, criminelles, terroristes, religieuses, etc.
– Le concept Equipment désigne toute sorte de matériel destiné à équiper une personne, une organisation
ou un lieu pour remplir son rôle. Il peut s’agir d’équipement militaire ou civil, terrestre,
aérien, spatial ou sous-marin.
– Le concept Places regroupe les points ou espaces terrestres ou spatiaux, naturels ou construits par
l’homme, pouvant être désignés par un ensemble de coordonnées géographiques.
– Le concept Biographics désigne les individus et décrit un certain nombre de propriétés associées
telles que des éléments d’identification, des informations sur la vie sociale et privée, un ensemble
de relations avec d’autres individus ou organisations, etc.
– Le concept Events décrit toute occurrence d’un élément considéré comme ayant de l’importance.
Un événement peut être divisé en plusieurs sous-événements.
Toutefois, les standards OTAN ne détaillent pas les sous-classes du pentagramme et les diverses
propriétés de classes évoquées doivent être triées et réorganisées. Nous avons donc développé notre ontologie
de haut en bas (approche descendante ou "top-down"), en partant des concepts plus généraux vers
les plus spécifiques. Nous avons effectué cette spécialisation en conservant les classes intéressantes des
autres ontologies observées. Pour ce faire, nous nous sommes inspirés de la méthodologie de construction
d’une ontologie proposée par [Noy and Mcguinness, 2001].
La création de sous-classes a été guidée par le contexte du renseignement militaire et ses éléments
d’intérêt. La taxonomie complète des classes de WOOKIE est donnée en annexe A. Pour la classe Equipment,
nous nous sommes limités à décrire les différents types de véhicules et d’armes. La classe Person
79
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 4. Modélisation des connaissances du domaine
est liée par équivalence au concept Person dans l’ontologie FOAF 108 mais n’a pas nécessité plus de pré-
cision. En ce qui concerne le concept Unit, nous avons choisi de distinguer deux sous-classes Group et
Organisation afin de différencier les groupements de personnes, point important dans le domaine visé.
La classe Place a également été sous-typée en prenant en compte les besoins militaires, notamment par
l’aspect stratégique des sous-classes du concept Infrastructure. Enfin, la modélisation de la classe Event
s’est avérée une tâche essentielle compte tenu de l’importance de ces entités dans le renseignement et
la veille militaire. Nous avons pour cela réservé plus de temps à la spécification de la classe MilitaryEvent,
c’est-à-dire au choix et à l’organisation des différentes sous-classes en prenant en compte les
observations préalables. La taxonomie des événements spécifiques au ROSO est présentée en annexe B.
Par la suite, parallèlement aux relations hiérarchiques, nous avons liés les concepts de l’ontologie
entre eux par des relations sémantiques (object properties). Il s’agit de propriétés ayant pour co-domaine
un concept de l’ontologie. Celles-ci ont également été choisies en fonction des besoins du renseignement
militaire et en concertation avec les membres de notre équipe. Plusieurs liens sont modélisés entre les
personnes tels que des liens familiaux, de connaissance, des liens hiérarchiques, etc. (isFamilyOf, isSpouseOf,
isFriendOf, isColleagueOf, etc.). Nous avons également créé des relations entre personnes et
organisations (hasEmployee), entre organisations et équipements (producesEquipment, sellsEquipment)
ou encore entre lieux et personnes (bornIn, diedIn), etc. Enfin, la classe Event est en relation avec tous les
autres éléments du pentagramme conformément à notre modèle d’événement (voir la section 4.2). Ainsi
par exemple, un événement implique des participants de type Person ou Unit (involves) ainsi qu’un instrument
appartenant à la classe Equipment (hasEquipment) et se déroule dans un lieu associé à la classe
Place (takesPlaceAt). Un événement peut également être relié à d’autres événements par des relations
d’antécédence, succession, cause, conséquence, etc. (hasAssociatedEvent, causes, follows, etc.).
Une quatrième étape a été d’attribuer à chaque classe un ensemble de propriétés permettant de les
définir plus précisément en leur associant une valeur particulière. Cette valeur peut être une chaine de
caractères, un nombre, une date, un booléen, etc. Comme nous l’avons déjà précisé plus haut, ces attributs
sont héréditaires : ceux de la classe-mère sont automatiquement transmis aux classes-filles. Les 5 classes
de plus haut niveau possèdent les attributs picture, pour leur associer une image, et alias, qui associé à la
propriété rdfs :label permet d’indiquer leur(s) nom(s) alternatif(s). La classe Person possède un certain
nombre d’attributs tels que la nationalité, la profession, l’âge, l’adresse postale, l’adresse électronique,
les dates de naissance et de décès, etc. La classe Unit est également caractérisée par des adresses postale
et électronique ainsi que des coordonnées téléphoniques. La classe Place n’a pas nécessité d’attributs. Le
concept Equipment possède lui des attributs essentiellement liés à des caractéristiques techniques telles
que la couleur, les dimensions, la vitesse ou encore à des informations d’identification comme la marque,
le modèle, la plaque d’immatriculation, l’année de production, etc. Enfin, pour la classe Event, nous
avons précisé les dates de début et fin, la durée ainsi que le nombre de victimes et de décès engendrés.
La totalité des attributs de concepts est donnée en annexe D).
Pour terminer, nous avons précisé les différents propriétés et attributs définis en spécifiant certaines
contraintes et axiomes dans l’ontologie WOOKIE. Comme permis par la spécification OWL, des liens
entre propriétés de type owl :inverseOf ont été implémentés pour indiquer que telle propriété porte un
sens contraire à telle autre propriété. Par exemple, la relation isEmployeeOf (qui lie une personne à l’organisation
à laquelle elle appartient) est l’inverse de hasEmployee. Par ailleurs, nous avons utilisé, le
cas échéant, les restrictions symmetric/assymetric, irreflexive et transitive des modèles OWL et OWL2.
La propriété hasFriend est, par exemple, symétrique et non-réflexive. La relation isSuperiorTo entre
108. Friend Of A Friend, ❤tt♣✿✴✴✇✇✇✳❢♦❛❢✲♣r♦❥❡❝t✳♦r❣✴
80
Copyright c 2013 - CASSIDIAN - All rights reserved4.4. Conclusions
deux membres d’une organisation est quant à elle transitive. Enfin, comme mentionné en section 1.3.1.2,
WOOKIE intègre des liens sémantiques avec d’autres ontologies sous forme d’axiomes tels que des équivalences
de classes (owl :equivalentClass) ou des relations de subsomption (rdfs :subClassOf). Ainsi, le
concept Person de WOOKIE est équivalent au concept Person de l’ontologie FOAF et la classe Place de
WOOKIE est un sous-type de Feature dans l’ontologie GeoNames. Par ailleurs, le concept d’événement
dans notre ontologie équivaut sémantiquement au concept Event de l’ontologie LODE, par exemple.
4.4 Conclusions
L’ontologie que nous venons de décrire constitue le modèle de connaissances qui servira de guide
à notre approche d’extraction et de capitalisation des connaissances. Les principaux atouts de cette modélisation
sont les suivants : tout d’abord, elle se fonde sur des modèles reconnus (ACE et DUL pour
les événements et le modèle TUS et les relations topologiques RCC-8 pour la représentation spatiotemporelle).
De plus, notre ontologie a été conçue en accord avec les besoins du ROSO (taxonomie de
classes et propriétés) et intègre de nombreux liens sémantiques vers d’autres ontologies afin de maintenir
une interopérabilité au sein du Web sémantique. Celle-ci présente toutefois quelques limites et nous envisageons
des perspectives d’amélioration telles que l’intégration d’une cinquième dimension que nous
appellerons "contextuelle" afin de représenter des éléments du contexte linguistique et extra-linguistique
(indices de modalité, confiance, temporalité, propagation spatiale, etc.). Par ailleurs, nous souhaitons approfondir
la représentation des rôles au sein de la dimension agentive en étudiant, par exemple, le modèle
SEM (voir le chapitre 1.3.1.2).
81
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 4. Modélisation des connaissances du domaine
82
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5
Extraction automatique des événements
Sommaire
5.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.2 La plateforme GATE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.3 Extraction d’entités nommées . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3.1 Composition de la chaine d’extraction . . . . . . . . . . . . . . . . . . . 87
5.3.2 Développement du module de règles linguistiques . . . . . . . . . . . . . 88
5.4 Extraction d’événements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.4.1 Approche symbolique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
5.4.2 Apprentissage de patrons linguistiques . . . . . . . . . . . . . . . . . . . 97
5.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
83
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements
5.1 Introduction
Une fois notre modèle de connaissances établi, nous proposons de concevoir une approche permettant
de reconnaitre automatiquement dans un ensemble de textes les différentes informations d’intérêt pour
peupler la base de connaissances (créer des instances des différentes classes de l’ontologie WOOKIE et
les liens existants entre ces instances). Ce chapitre présente notre seconde contribution : un système d’extraction
automatique d’événements pour la veille en sources ouvertes. Celui-ci ayant été essentiellement
élaboré grâce à la plateforme GATE, nos critères de choix ainsi qu’une présentation générale de cet outil
sont exposés dans une première partie. Nous décrivons par la suite le développement d’un extracteur
d’entités nommées nécessaire à la reconnaissance des événements tels que définis dans le chapitre 4.2.
Nous terminons par une présentation de notre système de reconnaissance des événements fondé sur deux
méthodes : une approche à base de règles linguistiques, d’une part, et une méthode par apprentissage de
motifs fréquents, d’autre part. Les paramètres choisis pour notre application ainsi que les performances
de notre système d’EI seront présentés en section 7.2.
5.2 La plateforme GATE
GATE est une plateforme open-source implémentée en Java dédiée à l’ingénierie textuelle au sens
large [Cunningham et al., 2002]. Créée il y a une vingtaine d’années par les chercheurs de l’université de
Sheffield (Royaume-Uni), GATE est largement utilisée par les experts en TAL et dispose d’une grande
communauté d’utilisateurs. Cela lui permet de proposer un ensemble de solutions d’aide et de support
(forum, liste de diffusion, foire aux questions, wiki, tutoriels, etc.). Ce point a constitué un critère important
afin de choisir notre environnement de développement parmi les différentes plateformes et outils
présentés en section 2.3. Par ailleurs, GATE propose une chaine d’extraction d’entités nommées pour
l’anglais nommée ANNIE composée de différents modules open source. Cette chaine ayant déjà été utilisée
au sein de la plateforme WebLab, elle a constitué une première base pour l’élaboration de notre
propre système d’extraction d’information.
Fonctionnement général
L’environnement GATE repose sur le principe de chaines de traitement composées de différents
modules (dits "Processing Resources" PR) appliqués successivement sur un ou plusieurs textes (dits
"Language Resources" LR). Les LR peuvent être des textes seuls, fournit dans l’interface par copiercoller
ou URL, ou des corpus de textes créés manuellement ou importés d’un dossier existant. Produit
d’une communauté d’utilisateurs croissante, l’ensemble des PR disponibles est conséquent : ceux-ci sont
organisés au sein de plugins thématiques et permettent des traitements variés pour une quinzaine de
langues au total. L’utilisateur peut ainsi sélectionner un ensemble de briques logicielles pertinentes pour
sa tâche, les paramétrer et les organiser à sa convenance pour construire une chaine de traitement de texte
adaptée (voir l’annexe E pour un exemple de chaine de traitement).
La majorité des modules de traitement fournit une analyse des textes à traiter par un système d’annotations
exprimées au format XML et selon le modèle de la plateforme. Ce système permet à chaque
brique de traitement d’exploiter les annotations fournies par les modules précédents. Cela consiste géné-
84
Copyright c 2013 - CASSIDIAN - All rights reserved5.2. La plateforme GATE
ralement à associer un ensemble d’attributs à une zone de texte. Ces attributs se présentent sous la forme
propriété = "valeur". Voici un exemple d’annotation créée par un composant de segmentation en mots :
Token { c a t e g o r y =NNP, ki n d =word , l e n g t h =5 , o r t h = u p p e r I n i t i a l ,
s t r i n g =Obama}
Il s’agit ici d’une annotation de type Token à laquelle sont associés plusieurs attributs comme sa
catégorie grammaticale (NNP), son type (word), sa longueur en nombre de caractères (5), sa casse (upperInitial)
et la chaîne de caractères correspondante (Obama).
Le formalisme JAPE
Parallèlement aux différents modules d’analyse, la plateforme GATE propose un formalisme d’expression
de grammaires contextuelles nommé JAPE (Java Annotation Patterns Engine). Ce formalisme
est employé pour la définition de règles au sein des modules de type transducteurs à états finis. Ce système
s’avère très utile en extraction d’information car il permet de définir les contextes d’apparition des
éléments à extraire pour ensuite les repérer et les annoter dans un ensemble de textes. Le principe est de
combiner différentes annotations fournies par les modules précédant le transducteur (tokens, syntagmes,
relations syntaxiques, etc.) pour en créer de nouvelles plus complexes (entités nommées, relations, évè-
nements, etc.) : cela revient à l’écriture de règles de production et donc à l’élaboration d’une grammaire
régulière. Une grammaire dans GATE se décompose en plusieurs phases exécutées consécutivement et
formant une cascade d’automates à états finis. Chaque phase correspond à un fichier .jape et peut être
constituée d’une ou plusieurs règle(s) écrite(s) selon le formalisme JAPE. Classiquement, ces règles sont
divisées en deux blocs : une partie gauche (Left Hand Side ou LHS) définissant un contexte d’annotations
à repérer et une partie droite (Right Hand Side ou RHS) contenant les opérations à effectuer sur le corpus
à traiter lorsque le contexte LHS y a été repéré. Le lien entre ces deux parties se fait en attribuant des
étiquettes à tout ou partie du contexte défini en LHS afin de cibler les annotations apposées en RHS. Pour
plus de clarté, prenons l’exemple d’une règle simple :
1 R ule : OrgAcronym
2 (
3 { O r g a n i s a t i o n }
4 { Token . s t r i n g == " ( " }
5 ( { Token . o r t h == " a l l C a p s " } ) : o r g
6 { Token . s t r i n g == " ) " }
7 )
8 −−>
9 : o r g . O r g a n i s a t i o n = { r u l e =" OrgAcronymRule " , ki n d =" Acronym "}
FIGURE 5.1 – Exemple de règle d’extraction exprimée dans le formalisme JAPE
L’objectif de celle-ci est d’annoter avec le type Organisation tous les acronymes entre parenthèses
positionnés après une première annotation de ce même type. La première ligne de cette règle indique
le nom qui lui a été donné par son auteur. Les lignes 2 à 7 définissent le motif à repérer dans le texte :
les types des annotations sont encadrés par des accolades (e.g. {Organisation}), l’accès aux attributs
85
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements
des annotations se fait sous la forme Annotation.attribut (Token.string, par exemple, permet d’obtenir la
valeur de la propriété string associée aux annotations de type Token fournies par un module précédent),
(...) :org permet d’étiqueter la partie visée du motif pour y référer en partie RHS de la règle. Puis, la flèche
(ligne 8) sert de séparateur entre les parties LHS et RHS. La ligne 9 permet d’attribuer une annotation
de type Organisation au segment étiqueté org en partie gauche. Remarquons également en partie droite
l’ajout des propriétés rule et kind à l’annotation produite afin d’indiquer quelle règle en est à l’origine et
qu’il s’agit d’un acronyme d’organisation. Ces attributs peuvent être librement définis par le développeur
de grammaires.
Précisons également qu’un système de macros permet de nommer une séquence d’annotations afin de
la réutiliser de façon raccourcie dans les règles définies. Enfin, il est possible de gérer l’ordre d’exécution
d’un ensemble de règles en choisissant un des différents modes de contrôle proposés par le formalisme
JAPE (all, once, appelt, etc.).
Quelques modules utilisés dans nos travaux
Dans cette section, nous présentons différents modules qui nous ont été utiles pour mettre en oeuvre
notre système d’extraction d’information. Tout d’abord, nous devons parler d’ANNIE (A Nearly-New
Information Extraction system), une chaine complète dédiée à la reconnaissance d’entités nommées pour
l’anglais. Fournie conjointement à la plateforme, cette chaine comprend différents modules d’analyse :
1. Document Reset : supprime toutes les annotations apposées précédemment sur le document,
2. English Tokenizer : découpe le texte en mots (tokens),
3. Gazetteer : repère les éléments contenus dans une liste (gazetteer) et les annote en tant que Lookup,
4. Sentence Splitter : découpe le texte en phrases,
5. POS Tagger : ajoute à l’annotation Token (mise par le tokenizer) une propriété category indiquant la
catégorie morpho-syntaxique du mot en question. Il s’agit, ici, d’une version dérivée de l’étiqueteur
Brill [Brill, 1992],
6. NE Transducer : un transducteur JAPE définissant un ensemble de règles afin de repérer des entités
nommées (Person, Organization, Location, Date, URL, Phone, Mail, Address, etc.),
7. OrthoMatcher : annote les relations de co-référence entre les entités nommées repérées précédemment.
ANNIE étant spécialisée pour le traitement de textes anglais, d’autres modules se sont avérés né-
cessaires pour l’extraction d’information en français. Nous avons notamment utilisé les modules de
découpage en mots et d’étiquetage morpho-syntaxique adaptés pour la langue française (French tokenizer
et TreeTagger). De plus, la phase d’extraction d’événements a nécessité l’utilisation de l’analyseur
syntaxique Stanford parser fournissant une analyse syntaxique en dépendance des phrases à traiter. Par
ailleurs, nos travaux nécessitant un découpage des textes en groupes syntaxiques (nominaux et verbaux),
les modules NP Chunker et VP Chunker ont répondu à ce besoin. Enfin, divers modules d’analyse linguistique
nous ont été utiles tels qu’un analyseur morphologique ou encore un repérage lexical paramétrable
(dit Flexible Gazetteer).
86
Copyright c 2013 - CASSIDIAN - All rights reserved5.3. Extraction d’entités nommées
5.3 Extraction d’entités nommées
La phase d’extraction d’entités nommées consiste à mettre en place un système de détection et de
typage des entités d’intérêt pour l’anglais et le français. En effet, pour reconnaitre des événements tels
qu’ils sont définis dans WOOKIE, notre premier objectif est de repérer les entités de type Person, Unit,
Date et Place. Pour ce faire, comme nous l’avons montré dans l’état de l’art correspondant (voir la
section 2.2.1), plusieurs types de méthodes ont été explorées : des approches symboliques, statistiques
ou encore hybrides. Celles-ci ayant montré des performances comparables pour le problème de la REN,
notre choix a été guidé par le contexte applicatif de nos travaux. En effet, il apparait important dans le
contexte du ROSO d’éviter l’extraction d’informations erronées (ce que l’on nomme plus communément
le bruit). Ce critère nous a donc orienté vers le choix d’une approche à base de règles, pour laquelle la
littérature a montré une plus grande précision et qui s’avère également plus facilement adaptable à un
domaine d’application donné.
Notre système de REN a été élaboré selon un processus ascendant et itératif : nous avons collecté
un ensemble de dépêches de presse en anglais et français et repéré manuellement des exemples d’entités
nommées à extraire. Partant de ces exemples, nous avons construit (par généralisations successives des
contextes d’apparition de ces entités) une première version du système, que nous avons appliqué sur ce
même jeu de textes pour vérifier la qualité des règles construites (en termes de précision et rappel). Le
système a ensuite été modifié pour atteindre la qualité voulue, puis un nouveau corpus de textes a été
constitué pour découvrir de nouvelles formes d’entités et ainsi de suite. De par la proximité des langues
anglaise et française, cette méthode a été appliquée pour les deux langues et les systèmes d’extraction
développés suivent donc les mêmes principes et présentent une structure commune. Nous présentons
ci-dessous les différentes étapes d’extraction ainsi que leur implémentation pour l’anglais et le français
grâce à la plateforme GATE.
5.3.1 Composition de la chaine d’extraction
La chaine d’extraction d’entités nommées est composée de différents modules d’analyse listés et dé-
crits ci-après. L’ordre d’exécution de ces modules a son importance car chaque traitement exploite les
annotations créées précédemment. Pour cela, nous nous sommes inspirés de la chaine d’extraction ANNIE
présentée ci-dessus tout en l’adaptant à notre problématique et à notre représentation des connaissances.
La composition de modules obtenue reste la même pour l’anglais et le français bien que certains
des modules soient spécifiques à la langue traitée. Notons également que les quatre premières étapes sont
réalisées par des briques (reprises en l’état) proposées dans GATE tandis que les deux derniers modules
ont été au centre de nos travaux et ont nécessité notre expertise.
1. Réinitialisation du document
Ce premier module permet de nettoyer le document traité de toute annotation existante afin de le
préparer à l’exécution d’une nouvelle chaine d’extraction. Il est indépendant de la langue.
2. Découpage en mots
Ce second module découpe le texte en mots ou plus précisément en tokens. Ce traitement dépend
de la langue traitée : nous avons donc utilisé les tokenizers spécifiques à l’anglais et au français
fournis dans GATE.
87
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements
3. Découpage en phrases
Cette étape permet d’obtenir une annotation par phrase du texte. L’anglais et le français étant des
langues proches syntaxiquement, le même module a été utilisé pour ces deux langues.
4. Étiquetage grammatical
Également nommée "étiquetage morpho-syntaxique" ou Part-Of-Speech (POS) tagging en anglais,
cette phase donne pour chaque token repéré un ensemble d’informations grammaticales telles que
la catégorie grammaticale (nom, verbe, adjectif, etc.), le genre, le nombre, etc. Ce module est
dépendant de la langue considérée : l’analyseur pour l’anglais est celui présent dans la chaine
ANNIE tandis que pour le français nous avons choisi l’outil TreeTagger.
5. Repérage lexical
Cette étape consiste à repérer dans les textes à traiter un ensemble de mots clés préalablement
définis dans des listes nommées gazetteers. Ces mots clés sont généralement des termes communs
dont l’occurrence peut indiquer la présence d’une entité nommée. Les gazetteers sont de nature
variée : listes de prénoms pour la reconnaissance des noms de personnes, jours de la semaine et
noms des mois pour la détection des dates, etc. A chaque liste est associée une étiquette sémantique
qui constituera le type de l’annotation apposée. Même s’il s’agit généralement d’une simple projection
de lexique, ce module s’avère très utile pour l’extraction des entités nommées en tant que
telle effectuée par le module suivant. En effet, les annotations fournies par ce module entrent dans
la définition des différents contextes d’apparition des entités nommées (partie gauche des règles).
Un exemple de gazetteer pour la détection des personnes en français est présentée en annexe F.
6. Règles d’extraction
Ce dernier module d’annotation constitue le cœur du système de REN et contient les règles linguistiques
élaborées manuellement, suivant le formalisme JAPE, pour la détection des entités de
type Personne, Organisation, Lieu et Date.
Nous avons fait le choix, dans le cadre de nos recherches, de ne pas conserver le module de résolution
de co-référence Orthomatcher au sein de notre système d’extraction. En effet, nous avons constaté que la
précision de ce module n’étant pas suffisamment bonne pour notre cas d’application et que cela détériorait
la qualité de l’extraction d’événements (fortement dépendantes de l’extraction d’entités nommées).
5.3.2 Développement du module de règles linguistiques
Le module d’extraction constitue le cœur de notre système. L’ensemble des règles linguistiques dé-
veloppées sont contextuelles et partagent la forme suivante :
regle : contexte → action
Elles sont implémentées selon le formalisme JAPE décrit en section 5.2.
Conformément à notre cas d’application, nous avons veillé, lors de leur développement, à privilégier
la précision au rappel, c’est-à-dire l’extraction d’informations pertinentes pour mieux répondre à l’attente
des opérationnels du domaine. Concrètement, cela s’est traduit par la construction de règles linguistiques
dont les résultats sont plus sûrs et la mise à l’écart de règles pouvant entrainer de fausses annotations.
88
Copyright c 2013 - CASSIDIAN - All rights reserved5.3. Extraction d’entités nommées
Celles-ci sont organisées en plusieurs ensembles, chacun étant spécifique au type d’entité ciblé. Ces
ensembles sont implémentés sous la forme d’automates à états finis et l’exécution des règles au sein d’un
même ensemble est régie par un système de priorité. Celui-ci permet de déterminer, lorsqu’il y a conflit
entre plusieurs règles, quelle est celle qui doit être privilégiée pour annoter une portion de texte. Les
différents ensembles de règles sont eux exécutés successivement selon un ordre fixé à l’avance au sein du
système, constituant ce que l’on appelle des phases d’extraction. Pour déterminer le meilleur agencement
de ces phases au sein du module de règles, nous nous sommes référés aux travaux de [Mikheev, 1999]
et plus particulièrement à la gestion d’éventuelles ambiguïtés entre entités. Le principe suggéré est le
suivant : afin d’éviter toute ambiguïté, il est conseillé d’exécuter en premier les règles les plus sûres
(basées essentiellement sur le contexte linguistique), puis de typer les entités encore inconnues grâce aux
gazetteers du module précédent et de lever les ambiguïtés restantes dans une phase finale. Nos propres
observations nous ont amenés à choisir, en outre, un ordre de détection entre les 4 entités-cibles : nous
typons, tout d’abord, les dates qui ne sont généralement pas confondues avec les autres entités ; puis,
vient une phase de détection des organisations, suivie par les entités de type Personne et, enfin, les
noms de lieux. En effet, nous avons observé que les noms d’organisations peuvent inclure des noms
de personnes ou de lieux et doivent donc être repérés en priorité afin d’écarter l’ambiguïté. Par ailleurs,
certains prénoms présentant une homonymie avec des noms de lieux, les entités de type Personne doivent
être extraites avant celles de type Lieu. Ces premières présentent des formes moins variables et sont donc
plus facilement repérables (grâce notamment aux listes de prénoms et de titres personnels).
Pour l’extraction des EN en anglais, nous sommes partis de l’existant (la chaine ANNIE) en modifiant
l’ordre des phases selon le principe explicité ci-dessus et sélectionnant/améliorant les règles les plus
pertinentes pour notre application. Dans le cas du français, nous avons construit le système complet en
s’appuyant sur la même méthodologie. Nous présentons, pour conclure cette section, quelques exemples
de règles et gazetteers pour chaque type d’extraction.
Extraction des dates
La référence au temps peut s’exprimer de façon diverse et les expressions temporelles revêtent des
formes textuelles variées : littérales ("en janvier"), numériques (10/01/2013) ou mixtes ("le 9 janvier").
La littérature distingue les expressions dites "absolues" de celles dites "relatives" : les premières permettent
à elles seules de se repérer sur un axe temporel (par exemple, "le 9 janvier 2002" ou "l’année
2010") alors que les secondes ("hier matin", "le 5 mars", etc.) nécessitent pour cela des informations
complémentaires provenant du co-texte ou du contexte extra-linguistique. On constate aussi des diffé-
rences dans l’expression des dates d’une langue à une autre : dans notre cas, les anglophones n’expriment
pas les dates comme les francophones. Toutes ces variations rendent la détection automatique des dates
complexe et le développement des règles doit être réalisé en tenant compte des spécificités de l’anglais
et du français.
Voici pour exemple deux règles JAPE extraites de notre système : la première 5.2 permet d’extraire
des dates en français, la seconde 5.3 est l’équivalent pour l’anglais (les dates en gris sont des exemples
pouvant être détectés par la règle). Comme mentionné plus haut, il est fait usage de macros (termes en
majuscules) pour faciliter la lecture et la maintenance du jeu de règles. De plus, un ensemble de propriétés
est adjoint à l’annotation pour faciliter la normalisation des dates (voir la section 6.2).
89
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements
/ / l u n d i 27 a v r i l 2009
/ / 27 a v r i l 2009
/ / 1 e r a v r i l 2006
R ule : DateC om plete
(
(NOM_JOUR) ?
(NB_JOUR ) : j o u r
( { Token . s t r i n g == "−" } ) ?
(NOM_MOIS ) : mois
(ANNEE ) : a n n e e
) : d a t e
−−>
: d a t e . Date = { r u l e = " DateC om plete " , s t a r t Y e a r = : a n n e e . Token . s t r i n g ,
s t a r tM o n t h = : mois . Lookup . v al u e , s t a r t D a y = : j o u r . Lookup . v a l u e }
FIGURE 5.2 – Règle d’extraction de dates en français
/ / Wed 10 J ul y , 2000
/ / Sun , 21 May 2000
/ / 10 t h o f J ul y , 2000
R ule : DateNameComplete
P r i o r i t y : 100
(
(DAY_NAME (COMMA) ? ) ?
(ORDINAL | DAY_NUM ) : day
(MONTH_NAME ) : month
(COMMA) ?
(YEAR ) : y e a r
) : d a t e
−−>
: d a t e . Date = { r u l e = " DateNameComplete " , s t a r t Y e a r =
: y e a r . Token . s t r i n g , s t a r tM o n t h = : month . Lookup . v al u e , s t a r t D a y =
: day . Token . s t r i n g }
FIGURE 5.3 – Règle d’extraction de dates en anglais
Extraction des organisations
Le système développé permet d’extraire des noms d’organisations divers tels que : NATO, Communist
Party of India-Maoist, Ouattara Party, Nations Unies, AFP, Radio Azzatyk, armée de l’Air, etc. Nous
utilisons pour cela des gazetteers de mots couramment associés à des noms d’organisations, qu’ils fassent
partie de l’entité nommée ou non (la figure 5.4 est un extrait d’un de ces gazetteers pour l’anglais).
La règle ci-dessous 5.5 utilise un de ces gazetteers afin de reconnaitre des noms d’organisations en
anglais précédés d’un titre ou d’une fonction de personne tels que the director of the FBI ou the interim
vice president of Comcast Business.
Extraction des personnes
Concernant la reconnaissance des noms de personne, nous avons assez classiquement utilisé des
gazetteers de prénoms. Toutefois, face à l’immense variété des prénoms (même en domaine restreint) et
90
Copyright c 2013 - CASSIDIAN - All rights reserved5.3. Extraction d’entités nommées
FIGURE 5.4 – Extrait du gazetteer org_key.lst
R ule : O r g T i t l e
P r i o r i t y : 60
(
{ Lookup . maj o rT y pe == " j o b t i t l e " }
{ Token . s t r i n g == " o f " }
( { Token . s t r i n g == " t h e " } ) ?
(
(UPPER ( POSS ) ? ) [ 1 , 4 ]
ORG_KEY
) : o r g
)
−−>
: o r g . O r g a n i s a t i o n = { r u l e = " O r g T i t l e " }
FIGURE 5.5 – Règle d’extraction d’organisations en anglais
les ambiguïtés possibles, il est nécessaire d’exploiter d’autres indices contextuels tels que les titres ou
fonctions personnelles. Ces derniers peuvent être placés en début ou en fin de l’entité nommée, la figure
5.6 donne quelques exemples d’indices antéposés en anglais.
Enfin, la règle suivante 5.7, par exemple, exploite les annotations posées par différents gazetteers
(fonctions et nationalités ici) pour l’extraction des noms de personne.
91
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements
FIGURE 5.6 – Extrait du gazetteer person_pre.lst
R ule : P e r s F o n c t i o n
(
FONCTION
( NATIONALITE ) ?
( ( ( NP ) [ 1 , 3 ] ) : l a s t ) : p e r s o n
)
−−>
: p e r s o n . P e r s o n = { r u l e = " P e r s F o n c t i o n " }
FIGURE 5.7 – Règle d’extraction de personnes en français
Extraction des lieux
L’extraction automatique des noms de lieux est, avec celle des organisations, l’une des plus complexe
à mettre en œuvre de par la grande diversité formelle et référentielle de ces entités. En effet, les dépêches
de presse relatant généralement des faits de façon précise, nous pouvons y trouver des noms de lieux granularité
variable (noms de pays, villes, villages, régions, quartiers, rues, etc.) et exprimés parfois de façon
relative ou imprécise (par exemple, eastern Iraq, Asie centrale, au nord de l’Afghanistan). De même que
92
Copyright c 2013 - CASSIDIAN - All rights reserved5.3. Extraction d’entités nommées
pour la détection des organisations, de nombreuses ressources géographiques sont disponibles librement
(gazetteers de toponymes, bases de données géographiques, etc.) et nous avons pu constituer quelques
listes de base pour la détection des lieux communément mentionnés (liste des pays, des continents, des
capitales, etc.). Il est nécessaire également de fonder nos règles d’extraction sur des indices contextuels
tels que des noms communs déclencheurs d’entités géographiques (voir la figure 5.8 pour des exemples
en français).
FIGURE 5.8 – Extrait du gazetteer loc_key.lst
Pour finir, la figure 5.9 est un exemple de règle JAPE exploitant ces indices de contexte :
R ule : L o cK e y I n cl
P r i o r i t y : 50
(
{ Lookup . mino rType == " l o c _ k e y _ i n c l " }
(DE ) ?
( ARTICLE ) ?
(UPPER ) [ 1 , 3 ] ( ADJLOC ) ?
) : l o c
−−>
: l o c . L o c a ti o n = { r u l e = " L o cK e y I n cl " }
FIGURE 5.9 – Règle d’extraction de lieux en français
93
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements
5.4 Extraction d’événements
Nous détaillons, dans cette section, le cœur de notre première contribution à savoir la conception
et l’implémentation d’un système d’extraction automatique d’événements tels que nous les avons défi-
nis au chapitre 4. L’objectif est donc d’extraire un ensemble d’événements associés aux participants et
circonstants suivants : la date de l’événement, son lieu d’occurrence et les entités de type Personne et Organisation
impliquées. Celui-ci est constitué de deux extracteurs suivant deux approches distinctes : une
méthode symbolique à base de règles linguistiques élaborées manuellement et une approche par apprentissage
de motifs séquentiels fréquents. En effet, l’état de l’art réalisé (voir le chapitre 2.2.3) n’ayant pas
révélé d’approche nettement supérieure aux autres, la combinaison de plusieurs méthodes parait être la
solution la plus pertinente. Élaborer un système composite permet de tirer le meilleur parti des approches
actuelles en exploitant la complémentarité des différents types d’approche (statistique, symbolique, etc.).
Nous nous sommes tournés, dans le cadre de cette thèse, vers la combinaison d’un système à base
de règles et d’un apprentissage symbolique pour plusieurs raisons. Tout d’abord, de par les besoins du
ROSO, il est préférable de privilégier l’extraction d’informations fiables et précises et les approches symboliques
répondent bien à ce besoin. Par ailleurs, afin d’améliorer les performances de ces techniques, il
est apparu intéressant de les combiner avec un système d’apprentissage, dont le rappel est généralement
meilleur. Nous nous sommes, dans un premier temps, orientés vers un système statistique tels que les
CRFs, cependant après plusieurs recherches, nous n’avions pas à disposition un corpus d’apprentissage
adapté (annoté en événements du domaine militaire/sécurité). Cela nous a donc mené vers le choix d’une
méthode d’apprentissage faiblement supervisée telle que l’extraction de motifs fréquents qui ne nécessite
pas de données annotées avec les entités-cibles.
Nous présentons ci-dessous les principes théoriques de chaque approche choisie ainsi que la façon
dont nous les avons mises en œuvre pour le traitement de dépêches de presse en langue anglaise. La
méthode élaborée se veut indépendante de la langue des textes considérés et a été illustrée, dans le cadre
de cette thèse, pour des textes en anglais uniquement en raison d’une plus grande disponibilité pour cette
langue des outils et données nécessaires.
5.4.1 Approche symbolique
La première méthode employée pour la détection d’événements est fondée sur la définition de règles
linguistiques contextuelles (du même type que celles présentées en section 5.3) couplée avec une analyse
syntaxique des textes. Celle-ci a été implémentée grâce à la plateforme GATE sous la forme d’une
chaîne de traitement composée de différents modules d’analyse linguistique (tokenisation, découpage en
phrases, repérage lexical, étiquetage grammatical, analyse syntaxique, etc.) et se déroule en plusieurs
étapes détaillée ci-après.
Repérage des déclencheurs d’événements
La première étape consiste à repérer dans les textes à traiter les termes qui réfèrent potentiellement
aux événements ciblés, que nous appellerons des "déclencheurs d’événements" (correspondant aux
ancres du modèle ACE). Tout d’abord, nous considérons comme possibles déclencheurs d’événements
94
Copyright c 2013 - CASSIDIAN - All rights reserved5.4. Extraction d’événements
les verbes et les noms, éléments porteurs de sens. Le repérage de ces déclencheurs se fait par l’utilisation
de gazetteers contenant, d’une part, des lemmes verbaux pour les déclencheurs de type verbe et,
d’autre part, des lemmes nominaux pour les déclencheurs de type nom. Nous avons chois de constituer
des listes de lemmes afin d’obtenir des listes plus courtes et d’étendre le repérage des déclencheurs à
toutes les formes fléchies (grâce au module GATE de type flexible gazetteer). Ces déclencheurs (139
lemmes actuellement) ont été manuellement répartis en différentes listes, chacune étant associée à un
type d’événement (c’est-à-dire à une classe de notre ontologie) afin d’être repérés et annotés dans le corpus
à analyser. Après une phase de découpage en mots, un analyseur morphologique attribue à chaque
token son lemme. Nous comparons ensuite chaque lemme aux listes de déclencheurs et, s’ils correspondent,
le mot lemmatisé est annoté comme étant un déclencheur d’événement. De plus, on lui associe
la classe d’événement qu’il représente.
La figure 5.4.1 présente la liste des lemmes verbaux utilisés comme déclencheurs des événements de
type BombingEvent (les informations indiquées après le symbole § seront clarifiées par la suite).
FIGURE 5.10 – Gazetteer bombings.lst
Analyse des dépendances syntaxiques
Une fois les déclencheurs d’événement repérés, il nous faut leur associer les différentes entités impliquées
pour former l’événement dans son ensemble. Pour cela, nous effectuons, dans un premier temps,
une extraction automatique d’entités nommées grâce au système présenté en section 5.3 ainsi qu’une
analyse en constituants syntaxiques (syntagmes nominaux NP, verbaux VP, prépositionnels SP ou adjectivaux
SA).
Nous devons ensuite repérer les différentes relations entre le déclencheur et les entités de la phrase.
Nous employons, dans ce but, un analyseur syntaxique donnant les dépendances entre les différents élé-
ments phrastiques. En effet, une analyse syntaxique permet d’obtenir une meilleure précision par rapport
à l’utilisation d’une analyse dite "par fenêtre de mots" associant un simple découpage en syntagmes
(chunking) et des règles contextuelles. Après avoir examiné les différentes solutions proposées dans la
plateforme GATE, nous avons opté pour l’utilisation du Stanford parser [De Marneffe and Manning,
2008]. Ici, nous faisons le choix de n’utiliser que les dépendances principales à savoir les relations sujet,
objet, préposition et modifieur de nom. Les dépendances extraites par le Stanford parser se présentent
sous la forme de liens entre les éléments centraux du syntagme-recteur et du syntagme-dépendant, plus
communément appelés "têtes de syntagme" (voir la figure 5.11).
95
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements
FIGURE 5.11 – Exemple d’analyse syntaxique en dépendance
Voix active Voix passive
Classe 1 sujet = agent, objet = patient sujet = patient, ct. prep. "by" 109 = agent
Classe 2 sujet = agent, objet = instrument sujet = instrument, ct. prep. "by" = agent
Classe 3 sujet = instrument, objet = patient sujet = patient, ct. prep. "by" = instrument
Classe 4 sujet = agent, objet = locatif sujet = locatif, ct. prep. "by" = agent
Classe 5 sujet = patient ∅
TABLE 5.1 – Classes argumentales pour l’attribution des rôles sémantiques
Attribution des rôles sémantiques
La dernière étape consiste à attribuer un rôle sémantique (agent, patient, instrument, etc.) aux diffé-
rents participants de l’événement. Cela est rendu possible par une étude de la structure argumentale du
verbe ou du nom déclencheur : à savoir déterminer sa valence (nombre d’arguments) et les rôles sémantiques
de ses différents actants. Si nous prenons l’exemple des verbes anglais kill et die, nous remarquons
qu’ils ont des valences différentes (2 et 1 respectivement) et que leurs sujets n’ont pas le même rôle sé-
mantique : le premier sera agent et le second patient. L’attribution de ces rôles sémantiques nécessite
d’étudier, en amont, la construction des lemmes présents dans nos gazetteers [François et al., 2007].
Pour cela, nous avons choisi de constituer 5 classes argumentales, chacune d’elles correspondant à un
type de construction verbale ou nominale (voir le tableau 5.1).
L’attribution des rôles sémantiques est réalisée par un ensemble de règles linguistiques (implémenté
sous la forme d’un transducteur JAPE) exploitant les informations fournies par les phases précédentes.
La figure 5.12 résume les différentes étapes de notre approche.
FIGURE 5.12 – Extraction des événements : différentes étapes
L’ensemble de ces traitements ont été implémentés grâce à des modules fournis dans GATE (voir la
figure 5.13) et permettent d’obtenir une annotation positionnée sur l’ancre d’événement indiquant le type
96
Copyright c 2013 - CASSIDIAN - All rights reserved5.4. Extraction d’événements
de l’événement (sa classe dans l’ontologie de domaine) ainsi que les différentes entités impliquées (date,
lieu et participants). Un exemple d’annotation obtenu est fourni par la figure 5.14.
FIGURE 5.13 – Extraction des événements : chaine de traitement GATE pour l’anglais
FIGURE 5.14 – Extraction des événements : exemple d’annotation GATE
5.4.2 Apprentissage de patrons linguistiques
Dans un second temps, nous nous sommes intéressés à l’extraction d’événements par une technique
d’extraction de motifs séquentiels fréquents. Ce type d’approche permet d’apprendre automatiquement
des patrons linguistiques compréhensibles et modifiables par un expert linguiste.
Présentation de l’approche
La découverte de motifs séquentiels a été introduite par [Agrawal et al., 1993] dans le domaine de
la fouille de données et adaptée par [Béchet et al., 2012] à l’extraction d’information dans les textes.
97
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements
Ceux-ci s’intéressent en particulier à la découverte de motifs séquentiels d’itemsets. Il s’agit de repérer,
dans un ensemble de séquences de texte, des enchaînements d’items ayant une fréquence d’apparition
supérieure à un seuil donné (dit support). La recherche de ces motifs s’effectue dans une base de sé-
quences ordonnées d’itemsets où chaque séquence correspond à une unité de texte. Un itemset est un
ensemble d’items décrivant un élément de cette séquence. Un item correspond à une caractéristique particulière
de cet élément. Un certain nombre de paramètres peuvent être adaptés selon l’application visée :
la nature de la séquence et des items, le nombre d’items, le support, etc. La fouille sur un ensemble de
séquences d’itemsets permet l’extraction de motifs combinant plusieurs types d’items et d’obtenir ainsi
des patrons génériques, spécifiques ou mixant les informations (ce qui n’est pas permis par les motifs
d’items simples). Par exemple, cette technique permet d’extraire les patrons suivants :
< t h r e e C h i l e a n s a r r e s t e d n e a r Buenos A i r e s >
< NP a r r e s t e d n e a r L o c a ti o n >
< NP VB PRP L o c a ti o n >
où NP est un syntagme nominal, VB est un verbe, PRP est une préposition et Location est une entité
nommée de type Lieu.
La phase d’apprentissage permet d’obtenir un ensemble de motifs séquentiels fréquents qui sont
ensuite sélectionnés par un expert pour en retenir les plus pertinents pour la tâche d’extraction visée.
Les motifs retenus sont alors appliqués sur un le nouveau corpus à analyser, préalablement annoté pour
obtenir les différents types d’items considérés.
Contrairement à d’autres approches d’EI (présentées en section 2.2), la découverte de motifs séquentiels
fréquents ne nécessite ni corpus annoté avec les entités-cibles, ni analyse syntaxique. Cela constitue
un réel avantage car, tout d’abord, l’annotation manuelle de corpus reste un effort important et l’analyse
syntaxique est encore une technologie aux performances inégales et peu disponible librement selon les
langues. Toutefois, le point faible partagé par les méthodes d’apprentissage symbolique reste le nombre
important de motifs extraits. Pour pallier ce problème, [Béchet et al., 2012] propose l’ajout de contraintes
pour diminuer la quantité de motifs retournés et l’utilisation de l’outil Camelis [Ferré, 2007] pour ordonner
et visualiser les motifs des plus généraux aux plus spécifiques puis filtrer les plus pertinents.
Application à l’extraction automatique des événements
Dans la lignée de ces travaux, nous avons utilisé un outil d’extraction de motifs séquentiels développé
au GREYC110 (selon la méthode de [Béchet et al., 2012]). Le système repris présente plusieurs points
forts qui justifient ce choix : il permet d’extraire des motifs dits "fermés" (c’est-à-dire non redondants)
et génère ainsi moins de motifs que d’autres systèmes. De plus, ce logiciel s’avère robuste et permet
la fouille de séquences d’itemsets, fonctionnalité qui est rarement proposée par les outils de fouille de
données existants.
Notre contribution a donc été d’adapter la technique de fouille de motifs séquentiels à notre domaine
d’application et au traitement de dépêches de presse dans le but de générer automatiquement des patrons
linguistiques pour la détection d’événements. Nous avons tout d’abord défini un ensemble de paramètres
de base pour l’apprentissage : nous choisissons comme séquence la phrase et comme unité de base le
110. ❤tt♣s✿✴✴s❞♠❝✳❣r❡②❝✳❢r
98
Copyright c 2013 - CASSIDIAN - All rights reserved5.5. Conclusions
token ainsi qu’un ensemble d’items de mot tels que sa forme fléchie, son lemme, sa catégorie grammaticale.
Pour segmenter le corpus d’apprentissage et obtenir ces différentes informations, nous avons
employé l’analyseur morpho-syntaxique TreeTagger 111 [Schmid, 1994]. A cela, nous proposons d’ajouter
une reconnaissance des entités nommées (de type Personne, Organisation, Lieu et Date) ainsi qu’un
repérage lexical des déclencheurs d’événements. Nous pouvons ainsi découvrir des motifs séquentiels
fréquents impliquant un déclencheur d’événement et une ou plusieurs entités d’intérêt constituant les
participants/circonstants de l’événement en question. Ces deux traitements sont réalisés grâce à la chaine
de REN présentée en section 5.3 et aux gazetteers construits pour le premier système symbolique.
Enfin, pour réduire le nombre de motifs retournés et faciliter la sélection manuelle de l’expert, nous
introduisons un ensemble de contraintes spécifiques à notre application. D’une part, des contraintes linguistiques
d’appartenance permettant de filtrer les motifs selon les items qu’ils contiennent. Pour notre
application, la contrainte d’appartenance utilisée est de ne retourner que les motifs contenant au minimum
un déclencheur d’événement et une entité nommée d’un type d’intérêt (voir plus haut). D’autre
part, nous avons employé une contrainte dite de gap [Dong and Pei, 2007], permettant l’extraction de
motifs ne contenant pas nécessairement des itemsets consécutifs (contrairement aux n-grammes dont les
éléments sont strictement contigus). Un gap d’une valeur maximale n signifie qu’au maximum n itemsets
(mots) sont présents entre chaque itemset du motif retourné dans les séquences correspondantes. Par
exemple, si la séquence suivante (1) est présente dans le corpus d’apprentissage et que le gap est fixé à
2, le système pourra retourner le motif (2) :
(1) [...] a suspected sectarian attack in Mehmoodabad area of Karachi [...]
(2) < DT EventTrigger PRP Location PRP Location >
où DT est un déterminant, EventTrigger un déclencheur d’événement, PRP une préposition et Location
une entité nommée de type Lieu. La contrainte de gap permet, dans cet exemple, de retourner un
motif plus générique en omettant la présence des mots "suspected" et "sectarian" si ceux-ci ne sont pas
fréquents. Les contraintes de gap et de support (fréquence minimale d’un motif) sont des paramètres à
ajuster lors de la phase d’apprentissage. Ce paramétrage a été réalisé pour nos expérimentations et est
présenté en partie 7.2.1.
Une fois le nombre de motifs extraits diminué grâce à des contraintes, ceux-ci ont été manuellement
sélectionnés en fonction de leur pertinence pour la tâche d’extraction des événements. Pour cela, nous
utilisons l’outil Camelis [Ferré, 2007] permettant d’ordonner et visualiser les motifs des plus généraux
aux plus spécifiques puis de filtrer les plus pertinents. La figure 5.15 présente un aperçu de cet outil.
Les motifs ainsi sélectionnés sont ensuite appliqués sur un nouveau corpus afin d’en extraire les
événements-cibles. Dans un souci de réutilisation des systèmes déjà développés et pour faciliter cette
dernière étape, nous choisissons d’exprimer les motifs obtenus grâce au formalisme JAPE et obtenons
ainsi un nouveau module intégrable dans une chaine de traitement GATE.
5.5 Conclusions
Notre seconde contribution détaillée dans ce chapitre est une approche mixte pour l’extraction automatique
des événements fondée sur une méthode symbolique à base de grammaires contextuelles et sur
111. ❤tt♣✿✴✴✇✇✇✳✐♠s✳✉♥✐✲st✉tt❣❛rt✳❞❡✴♣r♦❥❡❦t❡✴❝♦r♣❧❡①✴❚r❡❡❚❛❣❣❡r✴
99
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 5. Extraction automatique des événements
FIGURE 5.15 – Visualisation et sélection des motifs avec l’outil Camelis
une seconde technique de fouille de motifs séquentiels fréquents. Dans un premier temps, nous avons implémenté
un extracteur d’entités nommées sur le modèle des approches symboliques classiques. Celui-ci
permet d’annoter au préalable les différentes entités dites simples nécessaires à la reconnaissance des
événements. Les résultats de ce premier extracteur ont montré des performances comparables à l’état
de l’art bien qu’il pourrait être amélioré en réalisant notamment une extraction des dates dites relatives
ou encore des entités d’intérêt autres que les entités nommées (comme l’extraction des équipements par
exemple). Les deux méthodes pour l’extraction des événements ont montré leur efficacité lors de l’état
de l’art présenté à la section 2.2.3 et nous renvoyons à la section 7.2 pour une évaluation de leurs performances
sur un corpus de test de notre domaine d’application. La méthode à base de règles GATE pourra
être améliorée en tenant compte d’autres informations fournies par l’analyse syntaxique telles que la
voix (passive ou active) du déclencheur, la polarité de la phrase (négative ou positive), la modalité mais
aussi les phénomènes de valence multiple. L’approche à base de motifs séquentiels fréquents pourrait
également tirer profit de cette analyse syntaxique en intégrant les relations de dépendance produites en
tant que nouveaux items ou sous forme de contraintes. Enfin, concernant les deux approches, leur limite
principale (qui est aussi celle de beaucoup des approches de la littérature) est qu’ils réalisent l’extraction
au niveau phrastique. Une granularité plus large tel que le paragraphe ou le discours pourrait permettre
d’améliorer le rappel de ces approches.
100
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6
Agrégation sémantique des événements
Sommaire
6.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.2 Normalisation des entités . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.3 Similarité sémantique entre événements . . . . . . . . . . . . . . . . . . . . . 105
6.3.1 Similarité conceptuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.3.2 Similarité temporelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.3.3 Similarité spatiale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.3.4 Similarité agentive . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.4 Processus d’agrégation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.5 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
101
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6. Agrégation sémantique des événements
6.1 Introduction
L’état de l’art réalisé ainsi que le développement de notre propre système d’extraction d’information
a montré la difficulté de cette tâche mais également et surtout des pistes d’amélioration possibles.
Un premier constat est que les outils d’EI existants fournissent des résultats pouvant être incomplets,
redondants, flous, conflictuels, imprécis et parfois totalement erronés. Par ailleurs, comme confirmé par
nos premières expérimentations (voir la section 7.2), plusieurs approches actuelles s’avèrent complé-
mentaires et une combinaison adaptée de leurs résultats pourrait aboutir à une découverte de l’information
plus efficace. Dans le cadre de cette thèse, l’objectif visé est d’améliorer la qualité des fiches de
connaissances générées et présentées à l’utilisateur afin de faciliter son processus de découverte des informations
d’intérêt. Pour ce faire, nous proposons un processus d’agrégation sémantique des résultats
issus de la phase d’extraction des événements. Cette troisième contribution vise à produire un ensemble
de connaissances cohérent 112 en regroupant entre elles les mentions d’événements référant à un seul et
même événement du monde réel. Ce processus est fondé sur des calculs de similarité sémantique et permet
d’agréger à la fois des événements provenant des deux extracteurs développés et/ou de différentes
sources d’information (agrégation intra- et inter-documents).
Dans ce chapitre, nous présentons tout d’abord les mécanismes mis en place pour la normalisation
des entités extraites, étape préalable nécessaire au processus d’agrégation. Dans un second temps,
sont exposées les différentes méthodes définies pour estimer la similarité des événements au niveau de
chacune de leurs dimensions (conceptuelle, temporelle, spatiale et agentive). Enfin, nous détaillons le
processus d’agrégation proposé, fondé sur ces mesures de similarité locales.
6.2 Normalisation des entités
Notre processus d’agrégation sémantique des événements nécessite de manipuler non plus de simples
portions de texte extraites mais des objets sémantiques, des éléments de connaissance à proprement parler.
Pour cela, nous proposons une première phase de normalisation visant à désambiguïser les différentes
entités impliquées dans les événements dans le but de les rattacher à un objet du monde réel (c’est-à-dire
déterminer leur référence). Nous présentons, dans les sections suivantes, les différentes méthodes mises
en place pour la normalisation de ces entités.
Normalisation des dates
La normalisation des entités temporelles est nécessaire en raison des multiples façons possibles d’exprimer
le temps en langage naturel ("04/09/2012", "Mon, 09/April/12", "two days ago", etc.). Celle-ci
consiste à les convertir en un format unique facilitant leur comparaison et le calcul de leur similarité (voir
la section 6.3.2). Conformément à notre modélisation temporelle de l’événement (voir la section 4.2.2),
nous avons choisi pour cela le format TUS, définissant une représentation numérique unifiée des dates.
Nous avons effectué cette normalisation au sein-même de notre module d’extraction d’information : les
règles JAPE en question récupèrent séparément les différents éléments de la date (année, mois et jour,
112. Nous entendons ici par "cohérence" une absence de contradictions et de redondances.
102
Copyright c 2013 - CASSIDIAN - All rights reserved6.2. Normalisation des entités
les granules dans le modèle TUS) afin de reconstituer sa forme normalisée et d’ajouter cette information
sous forme d’attribut aux annotations de type Date produites.
Nous avons fait le choix de nous intéresser exclusivement aux dates absolues car la résolution des
dates relatives est un sujet de recherche à part entière [Llorens Martínez, 2011] que nous ne pouvons
approfondir dans le cadre de cette thèse. En effet, l’extraction de ces dernières nécessite des traitements
plus complexes en vue de leur normalisation tels que la résolution d’anaphores temporelles, l’analyse
automatique du contexte linguistique d’occurrence, etc.
Le tableau 6.1 ci-dessous présente quelques exemples de dates extraites dans des textes en anglais
ainsi que leurs formes normalisées par notre outil.
Date extraite Date normalisée
1999-03-12 1999-03-12
1948 1948-01-01/12-31
April 4, 1949 1949-04-04
July 1997 1997-07-01/31
03-12-99 1999-12-03
TABLE 6.1 – Normalisation des dates
Normalisation des lieux
[Garbin and Mani, 2005] ont montré que 40% des toponymes présents dans un corpus de dépêches
de l’AFP sont ambigus. Il existe différents types d’ambiguïté : un nom propre peut référer à des entités
de types variés (Paris peut faire référence à une ville ou à une personne), deux lieux géographiques
peuvent porter le même nom (London est une ville en Angleterre mais aussi au Canada), certaines entités
géographiques peuvent également porter plusieurs noms ou en changer au cours du temps, etc.
Notre objectif ici est d’associer à chaque entité géographique extraite un référent unique correspondant
à une entité du monde réel bien définie. Nous avons pour cela utilisé un service de désambiguïsation
des entités géographiques développé dans notre département. Celui-ci opère en attribuant à chaque entité
géographique extraite un identifiant de la base sémantique GeoNames. Le projet GeoNames a notamment
pour avantages d’être open-source, de définir de nombreux toponymes dans le monde (l’information n’est
pas limitée à certaines régions géographiques) et d’intégrer des relations avec d’autres sources de données
(permettant des traitements plus avancés si nécessaire). Par ailleurs, ce composant de normalisation
des lieux s’inspire des travaux de [Buscaldi, 2010]. L’approche est fondée sur des calculs de cohérence
sur l’ensemble des toponymes possibles pour chaque entité géographique extraite. Cette cohérence est
définie à partir de trois types de critères :
– les distances géographiques entre toponymes ;
– les types géographiques des toponymes (continent, ville, rivière ...) ;
– les distances entre les entités géographiques au sein du texte considéré.
L’intérêt de cette méthode est de pouvoir dégager des groupes de toponymes cohérents entre eux. De
plus, elle permet de donner plus d’importance à la notion de qualité administrative par rapport à celle de
proximité géographique lorsqu’une dépêche parle, par exemple, de New York, Paris et Londres.
103
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6. Agrégation sémantique des événements
Le code ci-dessous est un extrait des triplets RDF/XML produits par ce service. Les quatre premières
lignes lient l’entité extraite identifiée par l’URI http ://weblab.ow2.org/wookie/instances/Place#india et
son entité de référence dans la base GeoNames (ayant pour identifiant http ://sws.geonames.org/1269750/).
Le reste de l’exemple donne quelques-unes des propriétés de l’entité GeoNames Republic of India : sa
classe dans l’ontologie Geonames (ligne 15), ses coordonnées géographiques selon le standard WGS84
(lignes 9 et 11), son nom dans GeoNames (ligne 14), etc.
1 < r d f : D e s c r i p t i o n
2 r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / P l a c e # i n d i a " >
3 < g e o : h a s S p a t i a l T h i n g r d f : r e s o u r c e = " h t t p : / / sws . geonames . o r g / 1 2 6 9 7 5 0/ " / >
4 < / r d f : D e s c r i p t i o n >
5
6 < r d f : D e s c r i p t i o n r d f : a b o u t = " h t t p : / / sws . geonames . o r g / 1 2 6 9 7 5 0/ " >
7 < g e o : p a r e n t F e a t u r e r d f : r e s o u r c e = " h t t p : / / sws . geonames . o r g / 6 2 9 5 6 3 0/ " / >
8 < g e o : p a r e n t F e a t u r e r d f : r e s o u r c e = " h t t p : / / sws . geonames . o r g / 6 2 5 5 1 4 7/ " / >
9 < w g s 8 4:l o n g
10 r d f : d a t a t y p e = " h t t p : / / www. w3 . o r g / 2 0 0 1 / XMLSchema# d o u bl e " > 7 7 . 0 < / w g s 8 4:l o n g >
11 < w g s 8 4 : l a t
12 r d f : d a t a t y p e = " h t t p : / / www. w3 . o r g / 2 0 0 1 / XMLSchema# d o u bl e " > 2 0 . 0 < / w g s 8 4 : l a t >
13 < r d f s : l a b e l > R e p u bli c o f I n d i a < / r d f s : l a b e l >
14 < ge o: name > R e p u bli c o f I n d i a < / ge o: name >
15 < r d f : t y p e r d f : r e s o u r c e = " h t t p : / / www. geonames . o r g / o nt o l o g y # F e a t u r e " / >
16 < / r d f : D e s c r i p t i o n >
FIGURE 6.1 – Désambiguïsation des entités spatiales : exemple de triplets RDF/XML produits
Normalisation des participants
La normalisation des participants est également une problématique complexe de par la diversité des
noms de personnes et d’organisations rencontrés dans les dépêches de presse. Une même entité est souvent
mentionnée sous de multiples formes telles que des abréviations (Boston Symphony Orchestra vs.
BSO), des formes raccourcies (Osama Bin Laden vs. Bin Laden), des orthographes alternatives (Osama
vs. Ussamah vs. Oussama), des alias ou pseudonymes (Osama Bin Laden vs. Sheikh Al-Mujahid). De
nombreux travaux se sont intéressés à la désambiguïsation de telles entités et particulièrement depuis
l’essor du mouvement Linked Data et la mise à disposition de nombreuses bases de connaissances sé-
mantiques sur le Web (voir le chapitre 3). Bien que cette thèse ne nous ait pas permis d’approfondir cette
problématique, nous avons retenu, à titre de perspectives, certaines approches théoriques et outils qui
pourront être intégrés au sein de notre processus d’agrégation.
Nous pouvons citer, parmi les outils disponibles sur le Web, DBPedia Spotlight 113 et Zemanta 114
,
permettant l’attribution d’un référent unique (provenant d’une base de connaissances externe) à chaque
entité d’intérêt repérée dans un texte. Le premier outil est issu d’un projet open source et se présente
sous la forme d’un service Web utilisant DBPedia comme base sémantique de référence. Le système
Zemanta est lui propriétaire et initialement conçu pour aider les créateurs de contenu Web (éditeurs,
blogueurs, etc.) grâce à des suggestions automatiques diverses (images, liens, mots-clés, etc.). Cet outil
suggère notamment des liens sémantiques vers des concepts issus de nombreuses bases de connaissances
telles que Wikipédia, IMDB, MusicBrainz, etc. Du côté des travaux théoriques, nous avons retenu deux
113. ❤tt♣s✿✴✴❣✐t❤✉❜✳❝♦♠✴❞❜♣❡❞✐❛✲s♣♦t❧✐❣❤t✴❞❜♣❡❞✐❛✲s♣♦t❧✐❣❤t✴✇✐❦✐
114. ❤tt♣✿✴✴❞❡✈❡❧♦♣❡r✳③❡♠❛♥t❛✳❝♦♠✴
104
Copyright c 2013 - CASSIDIAN - All rights reserved6.3. Similarité sémantique entre événements
approches qui nous paraissent adaptées pour réaliser cette étape de normalisation des participants d’un
événement. D’une part, [Cucerzan, 2007] propose de réaliser de façon conjointe la reconnaissance des
entités nommées et leur désambiguïsation. Pour cette seconde tâche, cette approche emploie une grande
quantité d’informations contextuelles et catégorielles automatiquement extraites de la base Wikipédia.
Il est notamment fait usage des nombreux liens existants entre les entités de cette base, des pages de
désambiguïsation sémantique (redirections) ainsi que d’un modèle vectoriel créé à partir du contexte
textuel des entités nommées repérées. Par ailleurs, [Mann and Yarowsky, 2003] présente un ensemble
d’algorithmes visant à déterminer le bon référent pour des noms de personne en utilisant des techniques
de regroupement non-supervisé et d’extraction automatique de caractéristiques. Les auteurs montrent
notamment comment apprendre et utiliser automatiquement l’information biographique contenue dans
les textes (date de naissance, profession, affiliation, etc.) afin d’améliorer les résultats du regroupement.
Cette technique a montré de bons résultats sur une tâche de désambiguïsation de pseudonymes.
6.3 Similarité sémantique entre événements
Nous proposons d’évaluer la similarité entre événements, c’est-à-dire d’estimer à quel degré deux
mentions d’événement peuvent référer à un seul et même événement de la réalité. Cette estimation sera
utilisée dans notre application pour aider l’utilisateur final à compléter ses connaissances et à prendre
des décisions de fusion d’information. Celui-ci pourra, le cas échéant, décider de fusionner deux fiches
de connaissances (une interface d’aide à la fusion de fiches a été développée au sein de la plateforme
WebLab) qu’il considère référer au même événement réel. Ci-après, nous détaillons les mesures de similarité
mises en œuvre pour chacune des dimensions de l’événement et les exprimons selon une échelle
qualitative. En effet, une échelle qualitative s’avère plus pertinente pour élaborer un processus de capitalisation
orienté utilisateur : étant donné que ces similarités seront présentées à l’analyste, une estimation
symbolique sera mieux comprise qu’une similarité numérique. Nous définissons cette échelle comme
composée de quatre niveaux :
1. identité (ID) : les deux dimensions réfèrent à la même entité réelle,
2. proximité (PROX) : les deux dimensions ont des caractéristiques communes et pourraient référer
à la même entité du monde réel,
3. différence (DIFF) : les deux dimensions ne réfèrent pas à la même entité,
4. manque d’information (MI) : il y a un manque d’information dans l’une ou les deux dimensions
(résultant du document d’origine ou du système d’extraction) qui empêche de savoir si elles ré-
fèrent ou non à la même entité réelle.
Définition 4. Une fonction de similarité sémantique est une fonction :
R : E × E → {ID, P ROX, DIF F, MI}
où E est un ensemble d’événements et ID, PROX, DIFF et MI représentent respectivement l’identité, la
proximité, la différence et le manque d’information.
Ces niveaux sont définis et illustrés dans les sections suivantes, à travers différentes fonctions de
similarité spécifiques à chaque dimension de l’événement : Rs, Rt
, Rsp et Ra.
105
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6. Agrégation sémantique des événements
6.3.1 Similarité conceptuelle
Soient e = (S, T, SP, A) et e
0 = (S
0
, T0
, SP0
, A0
) deux événements et S et S
0
leurs dimensions
conceptuelles respectives.
Définition 5. Rs est une fonction de similarité conceptuelle :
Rs : E × E → {ID, P ROX, DIF F}
tel que
1. Rs(e, e0
) = DIF F ssi S et S
0
sont deux classes différentes de l’ontologie et ne sont pas en relation
de subsomption l’une avec l’autre
2. Rs(e, e0
) = P ROX ssi S est une sous-classe (à tout niveau) de S
0 dans l’ontologie (et inversement)
3. Rs(e, e0
) = ID ssi S et S
0
correspondent à la même classe de l’ontologie de domaine
Notons ici que le niveau Manque d’Information (MI) n’est pas défini car la dimension conceptuelle
d’un événement est nécessairement fournie par notre système d’extraction. En effet, celui-ci est conçu
de façon telle qu’il n’y a pas d’extraction d’événement sans déclencheur d’événement et association à
une classe de l’ontologie.
Prenons quelques exemples pour illustrer le calcul de cette similarité conceptuelle.
Exemple 2. Soient e1, e2, e3 et e4 des événements et S1, S2, S3 et S4 leurs dimensions conceptuelles
respectives tel que S1 = AttackEvent, S2 = BombingEvent, S3 = SearchOperation et S4 =
AttackEvent.
1. Rs(e1, e3) = DIF F car les classes S1 et S3 ne sont pas en relation de subsomption dans notre
ontologie de domaine (voir l’annexe B).
2. Rs(e1, e2) = P ROX car S2 est une sous-classe de S1 dans l’ontologie (voir l’annexe B).
3. Rs(e1, e4) = ID car e1 et e4 sont des instances de la même classe d’événement dans WOOKIE
(S1 = S4 = AttackEvent).
6.3.2 Similarité temporelle
Soient T = [g1, g2, g3] et T
0 = [g
0
1
, g0
2
, g0
3
] deux entités temporelles exprimées au formalisme TUS.
Définition 6. Nous définissons ⊕, un opérateur de complétion temporelle, prenant en paramètres T et T
0
où T et/ou T
0
est incomplet (voir la section 4.2.2) et retourne une expression temporelle T
00 = [g
00
1
, g00
2
, g00
3
]
où :
1. si gi = g
0
i
alors g
00
i = gi = g
0
i
2. si gi = ∅ alors g
00
i = g
0
i
(et inversement)
Exemple 3. Si T = [∅, 3, 15] et T
0 = [2012, ∅, ∅] alors T
00 = T ⊕ T
0 = [2012, 3, 15]
Exemple 4. Si T = [∅, 2, ∅] et T
0 = [2013, ∅, 29] alors T
00 = T ⊕ T
0 = [2013, 2, 29]
106
Copyright c 2013 - CASSIDIAN - All rights reserved6.3. Similarité sémantique entre événements
Dans certains cas, deux événements ayant deux dates d’occurrence strictement différentes selon le
format TUS (niveau DIFF défini plus bas) peuvent tout de même référer au même événement dans le
monde réel. Par exemple, une attaque peut durer plusieurs heures sur deux jours et ce même événement
pourra être reporté avec deux dates différentes. Afin de traiter ces situations particulières, nous
définissons Dt(T, T0
), une fonction générique retournant une distance temporelle entre deux entités et
un seuil dt délimitant la différence (DIFF) et la proximité (PROX) temporelle. Cette distance peut être
obtenue par des librairies dédiées à la manipulation d’entités temporelles et le seuil dt défini en fonction
de l’application.
Soient e = (S, T, SP, A) et e
0 = (S
0
, T0
, SP0
, A0
) deux événements, nous définissons Rt au moyen
de ces différents opérateurs et seuils.
Définition 7. Rt est une fonction de similarité temporelle :
Rt
: E × E → {ID, P ROX, DIF F, MI}
telle que
1. Rt(e, e0
) = DIF F ssi l’une des conditions suivantes est vérifiée :
∃i∈{1,2,3}
tel que gi 6= ∅ et g
0
i
6= ∅ et gi 6= g
0
i
et Dt(T, T0
) > dt
si T ou T
0
est incomplet et T ⊕ T
0
retourne une date illégale (voir la section 4.2.2)
2. Rt(e, e0
) = P ROX ssi l’une des conditions suivantes est vérifiée :
Rt(e, e0
) = DIF F et Dt(T, T0
) ≤ dt
T ou T
0
est incomplet et T ⊕ T
0
retourne une date légale (voir la section 4.2.2)
3. Rt(e, e0
) = ID ssi T et T
0
sont complets (voir la section 4.2.2) et ∀i∈{1,2,3}
, gi = g
0
i
4. Rt(e, e0
) = MI ssi T et/ou T
0
est inconnu (c’est-à-dire que soit l’information n’était pas présente
dans la source, soit elle n’a pas été extraite par le système d’extraction)
Prenons quelques exemples pour illustrer le calcul de cette similarité temporelle.
Exemple 5. Soient e1, e2, e3, e4 et e5 des événements et T1, T2, T3, T4 et T5 leurs dimensions temporelles
respectives tel que T1 = [2012, 11, 05], T2 = [2013, 11, 05], T3 = ∅, T4 = [2012, 11, ∅] et T5 =
[2013, 11, 05].
1. Rt(e1, e2) = DIF F
2. Rt(e1, e4) = P ROX
3. Rt(e2, e5) = ID
4. Rt(e2, e3) = MI
6.3.3 Similarité spatiale
Pour estimer la similarité entre entités géographiques, nous utilisons les relations topologiques du
modèle RCC-8 (présenté en section 4.2.3) ainsi que les différentes relations spatiales existantes dans la
base GeoNames. Comme mentionné précédemment, la dimension spatiale peut varier avec le point de
107
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6. Agrégation sémantique des événements
vue duquel un événement est rapporté : par exemple, un événement survenu à Cestas (un petit village à
côté de Bordeaux) pourra être précisément situé par une agence de presse française mais pourrait être plus
généralement localisé à Bordeaux (la grande ville la plus proche) par une agence étrangère. La similarité
peut également être influencée par la nature des deux entités spatiales comparées (ville, pays, quartier,
continent, etc.) et par la taille de la région administrative les englobant (par exemple, la distance entre
deux villes du Lichtenstein ne sera pas considérée de la même façon que celle entre deux villes de Russie).
Pour résumer, l’absence d’identité topologique entre deux lieux peut être due à une différence dans
le niveau d’abstraction mais ne signifie pas nécessairement une différence spatiale (niveau DIFF). Pour
mieux traiter ces cas, nos introduisons Dsp(SP, SP0
), une fonction générique retournant une distance
spatiale entre deux entités géographiques et un seuil dsp délimitant la différence (DIFF) et la proximité
(PROX) spatiale. Cette distance peut être obtenue par des librairies dédiées à la manipulation d’entités
spatiales et le seuil dsp défini en fonction de l’application.
Soient e = (S, T, SP, A) et e
0 = (S
0
, T0
, SP0
, A0
) deux événements et r une relation RCC-8 entre
deux entités spatiales SP et SP0
(voir la section 1.3.2 et la figure 1.11).
Définition 8. Rsp est une fonction de similarité spatiale :
Rsp : E × E → {ID, P ROX, DIF F, MI}
telle que
1. Rsp(e, e0
) = DIF F ssi r(SP, SP0
) = DC et Dsp(SP, SP0
) > dsp
2. Rsp(e, e0
) = P ROX ssi l’une des conditions suivantes est vérifiée :
r(SP, SP0
) ∈ {EC, P O, T P P, NT P P, T P P i, NT P P i}
r(SP, SP0
) = DC et Dsp(SP, SP0
) < dsp
3. Rsp(e, e0
) = ID ssi r(SP, SP0
) = EQ
4. Rsp(e, e0
) = MI ssi SP et/ou SP0
est inconnu (c’est-à-dire que soit l’information n’était pas
présente dans la source, soit elle n’a pas été extraite par le système d’extraction)
Ces définitions théoriques sont implémentées en utilisant les relations GeoNames comme suit :
Définition 9. 1. Rsp(e, e0
) = DIF F ssi SP et SP0 ne sont liés par aucune relation topologique
dans GeoNames et Dsp(SP, SP0
) > dsp
2. Rsp(e, e0
) = P ROX ssi
(a) SP et SP0
sont liés par une relation "nearby", "neighbour" ou "children" dans la base
GeoNames
(b) SP et SP0 ne sont liés par aucune relation topologique dans GeoNames et Dsp(SP, SP0
) <
dsp
3. Rsp(e, e0
) = ID ssi SP et SP0 ont le même identifiant GeoNames (c’est à dire la même URI)
4. Rsp(e, e0
) = MI ssi SP et/ou SP0
est inconnu (c’est-à-dire que soit l’information n’était pas
présente dans la source, soit elle n’a pas été extraite par le système d’extraction)
Prenons quelques exemples pour illustrer le calcul de cette similarité spatiale.
108
Copyright c 2013 - CASSIDIAN - All rights reserved6.3. Similarité sémantique entre événements
Exemple 6. Soient e1, e2, e3, e4 et e5 des événements et SP1, SP2, SP3, SP4 et SP5 leurs dimensions
spatiales respectives tel que SP1 = P aris, SP2 = Singapour, SP3 = ∅, SP4 = F rance et SP5 =
Singapour.
1. Rsp(e1, e2) = DIF F
2. Rsp(e1, e4) = P ROX
3. Rsp(e2, e5) = ID
4. Rsp(e2, e3) = MI
6.3.4 Similarité agentive
Comme mentionné précédemment, l’ensemble des participants d’un événement est composé d’entités
nommées de type Personne ou Organisation et ces participants sont concrètement stockés dans une
base de connaissances sous la forme de chaines de caractères. Par conséquent, l’agrégation au niveau de
cette dimension implique l’utilisation de mesures de similarité dédiées aux chaines de caractères mais
aussi adaptées à la comparaison des entités nommées. La distance de Jaro-Winkler [Winkler et al., 2006]
convient bien à notre cadre d’application en raison de son temps d’exécution modéré et sa bonne performance
dans le traitement des similarités entre noms de personne notamment. Notre approche visant
à rester indépendante des mesures de similarité choisies, il conviendra d’évaluer plusieurs métriques au
sein de notre système de capitalisation des connaissances pour guider notre choix final et définir le seuil
de distance dstr utilisé ci-dessous.
Nous définissons Dstr(P, P0
), une fonction générique retournant une distance entre deux chaines de
caractères tel que Dstr(P, P0
) = 0 signifie que les chaines de caractères représentant les participants P
et P
0
sont égales.
De plus, comme nous manipulons des entités nommées et non de simples chaines de caractères, nous
avons exploré d’autres techniques dédiées à la résolution de coréférence entre entités nommées telles que
[Finin et al., 2009]. Dans un premier temps, nous proposons d’utiliser la base sémantique DBpedia 115
pour agréger tous les noms alternatifs référant à la même entité réelle. Nous définissons alt(P) comme
une fonction retournant tous les noms alternatifs donnés dans DBpedia pour une participant P.
Définition 10. P et P
0
coréfèrent, noté P ' P
0
, ssi P ∈ alt(P
0
) (et inversement) ou Dstr(P, P0
) = 0
Par ailleurs, comme mentionné en section 4.2.4, la dimension A est définie comme un ensemble de
participants, par conséquent, l’agrégation des participants d’un événement doit permettre de traiter une
similarité entre ensembles.
Définition 11. A et A0
coréfèrent, noté A ∼= A0
, ssi |A| = |A0
| et ∀P ∈ A, ∃P
0 ∈ A0
tel que P ' P
0
(et
inversement)
Soient e = (S, T, SP, A) et e
0 = (S
0
, T0
, SP0
, A0
) deux événements tels que A = {P1, P2, . . . , Pn}
et A0 = {P
0
1
, P0
2
, . . . , P0
n}.
115. ❤tt♣✿✴✴❞❜♣❡❞✐❛✳♦r❣✴
109
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6. Agrégation sémantique des événements
Définition 12. Ra est une fonction de similarité agentive :
Ra : E × E → {ID, P ROX, DIF F, MI}
tel que
1. Ra(e, e0
) = DIF F ssi ∀P ∈A et ∀P0∈A0, P 6∈ alt(P
0
) (et inversement) et Dstr(P, P0
) > dstr
2. Ra(e, e0
) = P ROX ssi l’une des conditions suivantes est vérifiée :
∀P ∈A, ∃P0∈A0 tel que P ' P
0
∀P ∈A, ∃P0∈A0 tel que Dstr(P, P0
) ≤ dstr
3. Ra(e, e0
) = ID ssi A ∼= A0
4. Ra(e, e0
) = MI ssi |A| = 0 et/ou |A0
| = 0 (c’est-à-dire que soit l’information n’était pas présente
dans la source, soit elle n’a pas été extraite par le système d’extraction)
Prenons quelques exemples pour illustrer le calcul de cette similarité agentive.
Exemple 7. Soient e1, e2, e3, e4 et e5 des événements et A1, A2, A3, A4 et A5 leurs dimensions agentives
respectives tel que A1 = {Elmer Eusebio}, A2 = {Police}, A3 = {∅}, A4 = {E. Eusebio} et A5 =
{Police}.
1. Ra(e1, e2) = DIF F
2. Ra(e1, e4) = P ROX
3. Ra(e2, e5) = ID
4. Ra(e2, e3) = MI
6.4 Processus d’agrégation
Nous proposons un processus d’agrégation fondé sur une représentation en graphe : l’ensemble des
similarités calculées est organisé en un graphe non-orienté G = (E, edges), où E est l’ensemble des
sommets et chaque sommet e ∈ E est un événement extrait, et où edges est l’ensemble des arêtes
et chaque arête edge est un lien entre deux sommets e et e0 défini comme une fonction de similarité
multivaluée.
Définition 13. La fonction edge a pour domaine de définition :
edge : E × E → R
où R = Rs × Rt × Rsp × Ra correspondant aux fonctions de similarité définies précédemment.
Définition 14. La fonction edge est définie telle que :
edge(e, e0) = hRs(e, e0), Rt(e, e0), Rsp(e, e0), Ra(e, e0)i
110
Copyright c 2013 - CASSIDIAN - All rights reserved6.4. Processus d’agrégation
Cette représentation est bien adaptée à notre cadre d’application (la plateforme WebLab et les technologies
du Web sémantique au sens large), car la connaissance provenant des différents services de
traitement de l’information est stockée dans des bases de connaissances sémantiques fondées sur les
graphes.
Le graphe G est construit selon le principe suivant : chaque événement extrait (avec l’ensemble de
ses dimensions) est comparé deux à deux à chacun des autres événements pour déduire un degré de
similarité au niveau de chaque dimension (Rs, Rt
, Rsp et Ra) (selon les principes théoriques exposés
dans les sections précédentes). Nous créons ensuite dans G l’ensemble des sommets E correspondant aux
événements extraits ainsi qu’une arête multivaluée de similarité edge entre chaque paire d’événements.
Les similarités obtenues pour chacune des dimensions (conceptuelle, temporelle, spatiale et agentive)
constituent un ensemble d’indicateurs que nous souhaitons exploiter afin de déterminer si des événements
co-réfèrent. Il est communément admis dans les applications de veille en sources ouvertes que l’information
manipulée par les analystes est incertaine à plusieurs niveaux : l’information en elle-même (sa
véracité, sa fiabilité, etc.), la source, les traitements opérés, etc. Partant de ce constat, nous voulons laisser
à l’utilisateur le choix final de fusionner (ou non) deux événements jugés similaires, et cela dans le but
d’éviter toute perte d’information pouvant survenir avec une fusion entièrement automatisée. L’objectif
de nos travaux est en effet, non pas de concevoir un système de fusion de fiches à proprement parler,
mais plutôt d’aider l’analyste dans sa prise de décision grâce à un processus d’agrégation sémantique des
événements.
Pour ce faire, nous proposons d’appliquer un regroupement automatique (clustering) sur le graphe
de similarités obtenu afin de guider l’analyste au sein de cet ensemble de connaissances. Différentes
combinaisons de similarités sont possibles pour réaliser ce regroupement en fonction des besoins de
l’utilisateur. Nous proposons, dans un premier temps, de hiérarchiser l’ensemble de ces configurations
selon leur degré de similarité global (en commençant par celle qui lie les événements les plus similaires)
de la manière suivante :
Configuration (C1) {isConceptuallyID, isT emporallyID, isSpatiallyID, isAgentivelyID}
Configuration (C2a) {isConceptuallyID, isT emporallyID, isSpatiallyID, isAgentivelyP ROX}
Configuration (C2b) {isConceptuallyID, isT emporallyID, isSpatiallyP ROX, isAgentivelyID}
Configuration (C2c) {isConceptuallyID, isT emporallyP ROX, isSpatiallyID, isAgentivelyID}
Configuration (C2d) {isConceptuallyP ROX, isT emporallyID, isSpatiallyID, isAgentivelyID}
Configuration (C3a) {isConceptuallyID, isT emporallyID, isSpatiallyP ROX, isAgentivelyP ROX}
Configuration (Cn) etc.
Intuitivement, la configuration C1 parait la plus à même de regrouper entre eux les événements qui
co-réfèrent. Toutefois, l’incomplétude et l’hétérogénéité des données extraites est telle que cette première
configuration est peu fréquemment observée dans une application réelle. De sorte que, si l’analyste souhaite
retrouver dans sa base de connaissances des événements similaires, il sera plus pertinent d’explorer
d’autres configurations d’agrégation. Pour cela, nous proposons de réaliser un regroupement ascendant
et hiérarchique du graphe de similarités fondé sur les différentes configurations de similarités possibles.
Le processus de regroupement se déroule ainsi :
111
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6. Agrégation sémantique des événements
1. Nous appliquons une première passe de regroupement selon la première configuration de notre
hiérarchie C1 afin d’obtenir un premier jeu de n agrégats d’événements Ω.
Ainsi, chaque sommet e ∈ Ωi est lié à tous les autres sommets de Ωi par une arête edgeC1 satisfaisant
la configuration C1.
Par ailleurs, chaque agrégat Ωi ainsi formé possède la caractéristique suivante : l’ensemble des
arêtes edgeCn (présentes avant le premier regroupement) reliant un sommet e ∈ Ωi à un autre
sommet e0 ∈ Ωj sera de même configuration de similarités.
2. Nous pouvons donc fusionner cet ensemble d’arêtes en une nouvelle arête edgeCx où Cx correspond
à cette configuration commune et relie l’agrégat Ωi au sommet e ∈ Ωj .
3. Une fois ce nouvel ensemble d’arêtes créé, nous proposons d’effectuer de nouveau un regroupement
selon une nouvelle configuration Cx (la suivante dans la hiérarchie) et ainsi de suite.
Ce processus de regroupements successifs n’a pas vocation à être réalisé jusqu’à épuisement des
configurations possibles. En effet, afin de proposer un environnement d’aide à la décision flexible et
adaptable, nous envisageons de laisser l’analyste libre du nombre de regroupements qu’il souhaite effectuer
ainsi que de définir ses propres configurations de regroupement. Cela sera réalisé de la façon
suivante : les différents agrégats d’événements constitués après chaque phase de regroupement seront
rendus accessibles à l’utilisateur au travers de diverses interfaces de la plateforme WebLab (recherche,
carte géographique, bandeau temporel et autres vues). Celui-ci pourra observer les différents agrégats
proposés et décider en fonction de cela du prochain regroupement à effectuer. Par exemple, l’utilisateur
pourra demander au système de lui renvoyer tous les événements jugés similaires seulement sur le plan
temporel (niveau PROX) et ensuite examiner les fiches d’événements correspondantes pour en déduire
de nouvelles connaissances. Ce processus d’agrégation itératif et interactif sera illustré dans la section
7.3 de nos expérimentations.
6.5 Conclusions
Ce chapitre nous a permis de présenter un processus d’agrégation sémantique des événements fondé
sur une échelle de similarité qualitative et sur un ensemble de mesures spécifiques à chaque type de dimension.
Nous avons tout d’abord proposé des mécanismes de normalisation des entités, adaptés à leurs
natures, afin d’harmoniser formellement les différentes informations extraites. Concernant ce premier
aspect, nous envisageons des améliorations futures telles que la désambiguïsation des dates relatives, par
exemple, ou encore l’intégration au sein de notre système d’un outil de désambiguïsation des participants
(tels que ceux mentionnés en section 6.2). Nous avons ensuite proposé un une échelle de similarité
qualitative orientée utilisateur et un ensemble de calculs de similarité intégrant à la fois un modèle théorique
adapté à chaque dimension et une implémentation technique employant les technologies du Web
sémantique (ontologies et bases de connaissances externes). Nous souhaitons poursuivre ce travail en
élargissant le panel de similarités employées comme en intégrant des mesures de proximité ontologique
plus sophistiquées ainsi des outils de distance temporelle et spatiale (fondés sur les coordonnées géographiques
par exemple) et pour la similarité agentive, une distance dédiée aux ensembles telle que SoftJaccard
[Largeron et al., 2009]. L’ensemble des similarités calculées pourraient également provenir d’une
fonction d’équivalence apprise automatiquement à partir de données annotées manuellement. Enfin, un
processus d’agrégation fondé sur les graphes a été proposé afin de regrouper les mentions d’événements
similaires et de permettre à l’analyste de découvrir de nouvelles connaissances. Ce type d’agrégation
possède l’avantage principal d’être intrinsèquement adapté aux traitement des bases de connaissances et
112
Copyright c 2013 - CASSIDIAN - All rights reserved6.5. Conclusions
ainsi aisément généralisable à d’autres silos du Web de données. Cette agrégation pourrait également être
réalisée par calcul d’une similarité globale qui combinerait les différentes similarités locales. Le point
délicat pour cette méthode sera alors d’estimer le poids de chaque dimension dans cette combinaison.
Enfin, la possibilité donnée à l’utilisateur de fusionner des fiches grâce aux suggestions d’agrégats soulèvera
d’autres problématiques à explorer telles que la mise à jour et le maintien de cohérence de la base
de connaissance en fonction des actions de l’analyste.
113
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 6. Agrégation sémantique des événements
114
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7
Expérimentations et résultats
Sommaire
7.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
7.2 Évaluation du système d’extraction . . . . . . . . . . . . . . . . . . . . . . . . 116
7.2.1 Protocole d’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
7.2.2 Analyse des résultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
7.2.3 Bilan de l’évaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.3 Premières expérimentions sur l’agrégation sémantique . . . . . . . . . . . . . 122
7.3.1 Implémentation d’un prototype . . . . . . . . . . . . . . . . . . . . . . . 122
7.3.2 Jeu de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
7.3.3 Exemples d’observations . . . . . . . . . . . . . . . . . . . . . . . . . . 125
7.3.4 Bilan de l’expérimentation . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.4 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
115
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats
7.1 Introduction
Ce dernier chapitre présente les expérimentations réalisées durant cette thèse afin d’évaluer l’apport
scientifique et technique de nos contributions. Nous commençons par une évaluation du système d’extraction
d’événements conçu et implémenté tel que décrit dans le chapitre 5. Est ensuite détaillée notre
seconde expérimentation appliquée cette fois-ci à l’évaluation du processus d’agrégation sémantique des
événements (voir le chapitre 6). Pour chacune des évaluations, nous décrivons, tout d’abord, le système
évalué et les différents corpus et paramètres utilisés pour l’expérimentation. Puis, nous présentons une
analyse qualitative et/ou quantitative (par différentes métriques) des résultats obtenus. Enfin, nous exposons
les différentes limites et perspectives de ces évaluations.
7.2 Évaluation du système d’extraction
La première expérimentation vise à évaluer l’approche d’extraction des événements élaborée et dé-
taillée en section 5.4. Nos objectifs sont, d’une part, d’estimer de façon quantitative les performances de
chacune des méthodes d’extraction d’événements conçue et implémentée (l’extracteur à base de règles et
celui fondé sur un apprentissage de motifs) et, d’autre part, de montrer leur complémentarité et l’utilité
de les combiner.
7.2.1 Protocole d’évaluation
Pour réaliser ces objectifs nous proposons d’extraire automatiquement l’ensemble des événements
d’intérêt pour notre domaine d’application au sein d’une collection de textes de type journalistique en
anglais et dont le thème est d’intérêt pour le ROSO. Nous nous focalisons donc sur la vingtaine de
types d’événement listée en section 4.2.1 et sur leurs dimensions : temporelle (la date de l’événement),
spatiale (son lieu d’occurrence) et agentive (les personnes et organisations impliquées) conformément au
modèle d’événement présenté au chapitre 4.2. Nous présentons par la suite les données et les paramètres
d’apprentissage ayant servi à mettre en place l’approche à base de motifs séquentiels. Précisons que la
première approche symbolique n’a pas nécessité de paramétrage particulier.
Données d’apprentissage
Le premier ensemble de données nécessaire est un corpus d’apprentissage afin de mettre en œuvre
notre système d’extraction par motifs séquentiels fréquents. Conformément aux paramètres définis en
section 5.4.2, la découverte de motifs pertinents pour notre tâche d’extraction des événements nécessite
un corpus de textes présentant les caractéristiques suivantes :
– découpage en phrases ;
– découpage en tokens;
– lemmatisation ;
– étiquetage grammatical ;
– annotation des entités nommées (dates, lieux, personnes et organisations) ;
– repérage des déclencheurs d’événements.
116
Copyright c 2013 - CASSIDIAN - All rights reserved7.2. Évaluation du système d’extraction
Nous avons constitué ce corpus de manière semi-automatique à partir de 400 dépêches de presse sur
l’engagement du Canada en Afghanistan collectées sur le Web 116 et de 700 dépêches parues entre 2003
et 2009 sur le site de l’ISAF 117. Dans un second temps, nous avons traité automatiquement ce corpus
pour obtenir l’ensemble des annotations nécessaires : les découpages en phrases et mots ainsi que la
lemmatisation ont été réalisés par des modules fournis dans GATE, l’étiquetage grammatical par l’outil
TreeTagger et enfin l’annotation en entités nommées et déclencheurs d’événements grâce à notre système
d’extraction d’EN et nos gazetteers d’événements. Puis, nous avons révisé manuellement ces deux
derniers types d’annotation afin de corriger les éventuelles erreurs et ainsi garantir une meilleure qualité
des données d’apprentissage. Enfin, un ensemble de pré-traitements spécifiques sont réalisés pour
transformer l’ensemble de ce corpus au format supporté par l’outil d’extraction de motifs (notamment la
constitution des itemsets). L’annexe K présente, à titre d’exemples, plusieurs phrases extraites du corpus
d’apprentissage.
Données de test
Le second jeu de données nécessaire est un corpus de test (ou référence) permettant de comparer
notre extraction d’événements par rapport à une vérité-terrain. Pour cela, nous avons choisi d’utiliser un
corpus fourni dans la campagne d’évaluation MUC-4 et constitué de 100 dépêches de presse relatant des
faits terroristes en Amérique du Sud. Il est fourni avec ce corpus un ensemble de fiches de référence,
une seule fiche correspondant à une seule dépêche et décrivant l’événement principal relaté par celleci
ainsi qu’un ensemble de propriétés. Ces fiches d’événements ne correspondant pas exactement aux
besoins de cette évaluation, nous n’avons pu les réutiliser comme référence. En effet, la granularité
(une seule fiche d’événement est proposée pour la totalité d’une dépêche) et le type des événements
(uniquement de type ATTACK et BOMBING) ne correspondent pas à notre modélisation et ne permettent
pas d’évaluer la totalité de notre approche. Par conséquent, notre évaluation porte sur une partie de
ce corpus qui a été annotée manuellement, soit environ 210 mentions d’événements et près de 240 de
leurs dimensions (55 dimensions temporelles, 65 dimensions spatiales et 120 dimensions agentives).
L’annotation manuelle a été facilitée notamment par l’utilisation de la plateforme Glozz 118 dédiée à
l’annotation et à l’exploration de corpus. L’annexe L présente, à titre d’exemple, une dépêche du corpus
de test annotée avec les événements de référence.
Phase d’apprentissage
Nous avons, tout d’abord, opéré un apprentissage de motifs séquentiels fréquents sur le premier corpus
en considérant quatre types d’item : la forme fléchie du mot, sa catégorie grammaticale, son lemme
et sa classe sémantique (LookupEvent, Date, Place, Unit ou Person). Nous avons choisi de réaliser une
tâche d’apprentissage par type de d’entité impliquée en utilisant le système des contraintes d’appartenance.
Nous avons donc défini et employées les quatre contraintes :
– Le motif retourné doit contenir un déclencheur d’événement et au minimum une entité de type
Date ;
116. ❤tt♣✿✴✴✇✇✇✳❛❢❣❤❛♥✐st❛♥✳❣❝✳❝❛✴❝❛♥❛❞❛✲❛❢❣❤❛♥✐st❛♥, consulté le 21/03/2012
117. International Security Assistance Force, ❤tt♣✿✴✴✇✇✇✳♥❛t♦✳✐♥t✴✐s❛❢✴❞♦❝✉✴♣r❡ssr❡❧❡❛s❡s, consulté le
21/03/2012
118. ❤tt♣✿✴✴✇✇✇✳❣❧♦③③✳♦r❣✴
117
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats
– Le motif retourné doit contenir un déclencheur d’événement et au minimum une entité de type
Place ;
– Le motif retourné doit contenir un déclencheur d’événement et au minimum une entité de type
Unit ;
– Le motif retourné doit contenir un déclencheur d’événement et au minimum une entité de type
Person.
Nous obtiendrons donc après apprentissage quatre ensembles de motifs de type LookupEvent-Date,
LookupEvent-Place, LookupEvent-Person et LookupEvent-Unit.
Au préalable, il est nécessaire de fixer les deux paramètres de support et de gap (voir la section
5.4.2) : le premier donnant le nombre d’occurrences minimal du motif dans l’ensemble des séquences
et le second permettant de "relâcher" la composition des motifs en autorisant un nombre maximal de
mots possibles entre chaque élément du motif. Ce paramétrage a été effectué de façon itérative : nous
avons fixé une première de valeur de support et de gap pour chaque apprentissage, effectué une première
extraction de motifs, estimé leur qualité (en observant leur nombre, leur généricité/spécificité, leur couverture/précision),
puis ajusté ces paramètres en fonction de nos observations. Le tableau 7.2 présente
le nombre de motifs retournés par type de motif en fonction des paramètres choisis. Au regard de ces
tests, nous avons choisi de fixer un gap maximal de 3 (correspondant à 3 mots possibles entre chaque
élément du motif) et un support absolu relativement bas (environ 6% des séquences) afin d’obtenir des
motifs intéressants mais en nombre raisonnable pour une exploration et une validation manuelles (environ
12000 motifs au total). Une fois l’ensemble des motifs raffinés par les contraintes d’appartenance et
de gap, nous avons sélectionnés manuellement et les plus pertinents grâce à l’outil Camelis. La figure
7.1 suivante présente certains des motifs retenus 119, nous en avons conservés au total une cinquantaine.
1 { P e r s o n }{ VBD }{ DT }{ NN }{ IN }{ DT }{ E v e nt }
2 { , }{ DT }{ NN }{ E v e nt }{ J J }{ IN }{ P l a c e }
3 { J J }{ E v e nt }{ NP }{ NP }{ Date }
4 { s e r v e VBG }{ IN a s }{ a }{ NN }{ IN }{ t h e }{ J J }{ NP U nit }{ E v e nt }
FIGURE 7.1 – Exemples de motifs séquentiels fréquents sélectionnés
Pour finir, le jeu de motifs final a été converti en un ensemble de règles JAPE, nous obtenons donc
un module indépendant facilement intégrable au sein de notre chaine globale d’extraction d’événements.
Évaluation réalisée
Une fois cette phase d’apprentissage accomplie, nous avons constitué trois chaines d’extraction
GATE distinctes :
Chaine 1 Approche à base de règles linguistiques (voir la section 5.4.1) ;
Chaine 2 Approche par apprentissage de motifs (voir la section 5.4.2) ;
119. Les items des motifs correspondent aux catégories grammaticales et aux annotations sémantiques telles que VBD : auxiliaire
"être" au passé, DT : déterminant, NN : nom commun au singulier, IN : préposition, JJ : adjectif, NP : nom propre au
singulier, VBG : auxiliaire "être" au participe présent, Person : entité nommée de type personne, Event : déclencheur d’événement
équivalant à l’étiquette LookupEvent ci-dessus, Place : entité nommée de type lieu, Date : entité nommée de type date,
Unit : entité nommée de type organisation.
118
Copyright c 2013 - CASSIDIAN - All rights reserved7.2. Évaluation du système d’extraction
LookupEvent-Date LookupEvent-Place LookupEvent-Person LookupEvent-Unit
Sup3 Gap0 - - - 1381
Sup4 Gap0 113 - 67748 -
Sup4 Gap2 - - - 18278
Sup6 Gap0 - 1000 - -
Sup6 Gap2 1046 - - 2039
Sup8 Gap0 30 317 - -
Sup8 Gap2 699 - - 725
Sup8 Gap3 1108 - - -
Sup10 Gap2 - 8693 1730 344
Sup10 Gap3 681 6596 9540 47
Sup12 Gap3 - - 4614 -
FIGURE 7.2 – Nombre de motifs retournés en fonction des paramètres choisis
Chaine 3 Union des deux approches : elle contient l’ensemble des pré-traitements nécessaires à chaque
approche (listés en section 5.4) ainsi que les deux modules de règles développés exécutés successivement.
Ces trois chaines ont été exécutées sur le corpus de test et nous avons comparé manuellement et par
document la qualité des événements extraits aux événements de référence correspondants. Cela nous a
permis de calculer des scores de précision, rappel et F1-mesure (voir la section 2.5.1 pour la définition
de ces métriques) pour chaque chaine.
Par ailleurs, nous avons souhaité évaluer l’influence de l’analyse syntaxique en dépendance et de
la qualité de la REN sur nos systèmes d’extraction d’événements. Le tableau 7.1 ci-dessous résume les
différentes variantes des chaines évaluées et dont les résultats sont présentés dans la section suivante.
Règles manuelles Motifs séquentiels Union des résultats
Avec analyse syntaxique x x
Sans analyse syntaxique x x
REN automatique x x x
REN manuelle x x x
TABLE 7.1 – Chaines d’extraction d’événements : variantes évaluées
7.2.2 Analyse des résultats
Le tableau 7.2 présente les scores de précision, rappel et F1-mesure obtenus : il s’agit des résultats
d’évaluation des 3 chaines présentées plus haut par type de dimension et toutes dimensions confondues.
Précisons qu’il s’agit des métriques calculées avec une annotation manuelle des entités nommées pour
les 3 chaines et avec analyse syntaxique en dépendance pour la chaine 1.
Nous pouvons tout d’abord constater que l’approche à base de règles et l’apprentissage de motifs
obtiennent tous deux une très bonne précision globale et que, comme attendu, le rappel est meilleur pour
cette dernière approche. Par ailleurs, nous avons été assez surpris par la bonne précision de la méthode par
119
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats
Approche à base de règles manuelles Apprentissage de motifs Union des résultats
Précision Rappel F1-mesure Précision Rappel F1-mesure Précision Rappel F1-mesure
Date 0,93 0,25 0,39 0,90 0,64 0,75 0,90 0,68 0,78
Lieu 0,92 0,37 0,53 0,86 0,49 0,63 0,81 0,60 0,69
Participants 0,97 0,49 0,42 0,93 0,32 0,47 0,92 0,51 0,66
Toutes dimensions 0,94 0,37 0,45 0,90 0,48 0,62 0,88 0,60 0,71
TABLE 7.2 – Extraction d’événements : précision, rappel et F-mesure
apprentissage, que nous expliquons par une sélection manuelle restrictive et précise des motifs. Quant aux
taux de rappel peu élevés, ce n’est pas rare pour les approches à base de règles construites manuellement
et, dans le cas de l’apprentissage de motifs, cela peut être du à un "gap" maximal trop restreint qui ne
permet pas d’extraire les relations distantes. Par ailleurs, une analyse des résultats par type de dimension
permet d’en apprendre sur les points forts et faiblesses de chacune des approches développées. Nous
pouvons, par exemple, voir que le système à base de motifs séquentiels est nettement plus performant
pour la reconnaissance des dates des événements. Concernant la dimension spatiale, bien que celle-ci soit
meilleure en termes de F1-mesure, l’approche symbolique s’avère plus précise. Enfin, tandis que pour
ces deux premières dimensions (temporelle et spatiale) l’union des résultats apporte peu par rapport à la
meilleure des deux approches, celle-ci s’avère particulièrement utile pour la dimension agentive.
Enfin, nous pouvons retenir de cette expérimentation que l’union des résultats obtient une F1-mesure
nettement supérieure (près de 10 points par rapport à la meilleure des deux approches), ce qui dénote une
amélioration globale de la qualité d’extraction pour tout type de dimension. De plus, nous remarquons
que l’apprentissage de patrons complète avec succès notre approche symbolique en augmentant sensiblement
le taux global de rappel. Nous constatons tout de même une légère perte de précision de l’union
par rapport aux deux approches seules : celle-ci résulte du fait que réaliser une simple union des résultats,
même si elle permet d’additionner les vrais positifs des deux approches, entraine aussi une addition des
faux positifs. Toutes approches confondues, les résultats obtenus sont satisfaisants comparés à l’état de
l’art même s’il convient de prendre des précautions lorsque l’on compare des systèmes évalués selon
différents protocoles.
Apport de l’analyse syntaxique
Parallèlement à ces résultats, nous nous sommes intéressés à l’apport de l’analyse syntaxique au
sein de notre approche symbolique. Le tableau 7.3 présente les performances de notre système avec
et sans analyse syntaxique en dépendance. Nous pouvons constater que celle-ci permet d’augmenter
sensiblement la qualité des extractions pour tous les types de dimension. Bien que les outils d’analyse
syntaxique soient inégalement disponibles selon les langues, cette observation confirme l’intérêt de cette
technique pour l’extraction des événements. Une perspective intéressante serait d’exploiter les résultats
de l’analyse syntaxique au sein de la seconde approche en tant que caractéristique supplémentaire à
prendre en compte lors de l’apprentissage des motifs séquentiels fréquents.
Influence de la reconnaissance automatique des entités nommées
Pour compléter les résultats précédents fondés sur une annotation manuelle des entités nommées,
nous avons évalué les 3 chaines avec une annotation automatique des entités (voir la section 5.3). En
120
Copyright c 2013 - CASSIDIAN - All rights reserved7.2. Évaluation du système d’extraction
Sans analyse syntaxique Avec analyse syntaxique
Précision Rappel F1-mesure Précision Rappel F1-mesure
Date 0,32 0,45 0,38 0,93 0,25 0,39
Lieu 0,86 0,18 0,30 0,92 0,37 0,53
Participants 0,90 0,31 0,46 0,97 0,49 0,42
Toutes dimensions 0,69 0,31 0,38 0,94 0,37 0,45
TABLE 7.3 – Extraction d’événements : apport de l’analyse syntaxique
effet, les entités nommées étant repérées de façon automatique dans les applications réelles, il est important
d’estimer quelle sera l’influence de cette automatisation sur l’extraction des événements. Le tableau
7.4 ci-dessous compare les performances de la 3ème chaine d’extraction (c’est-à-dire l’union des deux
approches) avec une REN réalisée manuellement ou automatiquement. Nous observons une baisse géné-
rale de la qualité des extractions qui s’explique par le fait que notre système d’extraction des événements
dépend de ces entités nommées pour la reconnaissances des différentes dimensions. Par conséquent, si
une entité nommée impliquée dans un événement n’a pas été reconnue, celui-ci ne pourra la reconnaître
en tant que dimension de cet événement (ce qui fait diminuer le rappel de notre approche). Par ailleurs,
si une entité a bien été reconnue mais mal catégorisée ou mal délimitée cela entrainera une perte de pré-
cision pour notre extracteur d’événements. Malgré cette influence négative sur les résultats globaux, les
scores obtenus par notre approche restent à la hauteur de l’état de l’art.
REN manuelle REN automatique
Précision Rappel F1-mesure Précision Rappel F1-mesure
Date 0,90 0,68 0,78 0,86 0,64 0,73
Lieu 0,81 0,60 0,69 0,94 0,46 0,62
Participants 0,92 0,51 0,66 0,94 0,39 0,55
Toutes dimensions 0,88 0,60 0,71 0,91 0,50 0,64
TABLE 7.4 – Extraction d’événements : influence de la REN
7.2.3 Bilan de l’évaluation
Cette première évaluation a permis les observations suivantes :
1. les deux approches proposées pour l’extraction des événements obtiennent des résultats équivalents
voire supérieurs aux systèmes existants (voir la section 2.5.2) ;
2. l’analyse syntaxique en dépendance des phrases améliore significativement la qualité des extractions
réalisées par l’approche symbolique ;
3. les performances globales de notre approche sont impactées à un niveau acceptable par la détection
automatique des entités nommées ;
4. les deux techniques mises en œuvre pour l’extraction des événements présentent des forces complémentaires
;
5. une union de leurs résultats (peu coûteuse à réaliser) permet d’améliorer sensiblement la qualité
des événements extraits.
121
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats
Nous dressons donc un bilan positif de cette première évaluation. Toutefois, celle-ci présente des
limites qui donnent lieu à plusieurs perspectives d’amélioration. Tout d’abord, la conclusion 1 bien que
vraie si l’on compare les scores obtenus, doit être nuancée car il s’avère toujours difficile de comparer
des systèmes d’extraction ayant été évalués selon des protocoles différents. L’influence de la REN automatique
révèle une problématique plus largement présente dans le contexte du Media Mining : il s’agit de
l’interdépendance des modules de traitement et du suivi de qualité tout au long de la chaine de traitement.
Dans notre cas de figure, il serait intéressant de mettre en place une réelle collaboration (et non plus une
simple juxtaposition) entre les modules de REN et d’extraction d’événements en explorant, par exemple,
les travaux sur la qualité des annotations. Par ailleurs, suite à l’observation 2, nous souhaiterions amé-
liorer notre approche d’extraction de motifs séquentiels avec de nouvelles caractéristiques issues d’une
analyse syntaxique. Celles-ci pourraient notamment servir en tant que contraintes supplémentaires afin
de limiter la quantité de motifs retournés. Enfin, évaluer les résultats obtenus par une simple union des
deux approches a mis en exergue leurs complémentarités et de nouvelles pistes d’exploration pour élaborer
une combinaison plus adaptée. Dans le cadre de nos travaux, nous avons choisi de réaliser l’extraction
selon les deux approches successivement et de gérer cette problématique sur le même procédé que les
mentions d’événements provenant de différents documents.
7.3 Premières expérimentions sur l’agrégation sémantique
Cette seconde expérimentation vise à évaluer le prototype d’agrégation sémantique des événements
que nous avons développé selon l’approche présentée au chapitre 6. Nous présentons, dans un premier
temps, les principales caractéristiques techniques de ce prototype puis le jeu de données employé pour
cette expérimentation. Par la suite, nous présentons nos premiers résultats et concluons par un bilan de
cette expérimentation ainsi que les perspectives envisagées.
7.3.1 Implémentation d’un prototype
L’approche proposée au chapitre 6 a été implémentée au sein de plusieurs services (en langage Java)
permettant de traiter un ensemble de documents au format WebLab issus du service d’extraction d’information
développé (voir la section 5.4). Un exemple de document contenant des événements extraits par
notre système et représentés en RDF/XML selon le schéma l’ontologie WOOKIE est proposé en annexe
I. L’ensemble des connaissances créé et modifié par ces services est stocké et géré au sein de bases de
connaissances sémantiques grâce au triplestore Jena Fuseki 120. Dans un premier temps, les événements
extraits ainsi que leurs dimensions provenant du système d’extraction sont stockés dans une première
base de connaissances A régie par notre ontologie de domaine (voir la section 4.3).
Les différents calculs de similarité ont été implémentés au sein d’un premier service qui présente les
fonctionnalités suivantes (le reste des fonctions restant comme perspectives à nos travaux) :
– similarité conceptuelle : implémentation par des tests de subsomption ontologique (telle que pré-
sentée en section 6.3.1) ;
– similarité temporelle : implémentation telle que proposée en section 6.3.2 mais sans la fonction de
distance temporelle ;
120. ❤tt♣✿✴✴❥❡♥❛✳❛♣❛❝❤❡✳♦r❣✴❞♦❝✉♠❡♥t❛t✐♦♥✴s❡r✈✐♥❣❴❞❛t❛✴
122
Copyright c 2013 - CASSIDIAN - All rights reserved7.3. Premières expérimentions sur l’agrégation sémantique
– similarité spatiale : implémentation du service de désambiguïsation spatiale par GeoNames (voir
la section 6.3.3) mais sans la fonction de distance spatiale ;
– similarité agentive : implémentation par distance de Jaro-Winkler comme proposé en section 6.3.4,
la désambiguïsation avec DBPedia reste à mettre en place.
Les calculs de similarité sont combinés grâce à la librairie Apache Jena 121 et son mécanisme de
règles d’inférence (voir l’annexe J pour un exemple de règle). Le moteur d’inférence développé est
appliqué à la base A qui se trouve ainsi augmentée de l’ensemble des liens de similarité.
Un second service réalise le processus d’agrégation sémantique : celui-ci permet de définir une confi-
guration et d’appliquer une phase de regroupement au graphe de similarité entre événements (chargé dans
la base A). Une fois le regroupement réalisé, c’est-à-dire lorsque le premier graphe a été enrichi avec les
agrégats d’événements similaires, celui-ci est stocké dans une seconde base de connaissances B. Cette
base sera alors disponible et interrogeable par les services de la plateforme WebLab pour présenter les
agrégats à l’utilisateur final par divers modes de visualisation.
Cette implémentation constitue une première preuve de concept pour montrer la faisabilité de notre
processus d’agrégation sémantique. Toutefois, le système que nous avons conçu n’est, à l’heure actuelle,
pas apte à passer à l’échelle pour obtenir des résultats significatifs sur un corpus d’évaluation à taille
réelle. Ce passage à l’échelle constitue la principale perspective à court terme de nos travaux. Nous
présentons dans les sections suivantes les observations que nous avons pu réaliser sur un jeu de données
réelles plus réduit.
7.3.2 Jeu de données
Pour cette expérimentation, nous nous appuyons sur une base de données nommée Global Terrorism
Database (GTD). Il s’agit d’une base open-source contenant plus de 104 000 événements terroristes recensés
manuellement de 1970 à 2011 [LaFree and Dugan, 2007]. Cette collection est gérée par le consortium
américain START 122 étudiant les faits terroristes survenus dans le monde. Celle-ci est constituée
à la fois d’événements d’échelle internationale et nationale, principalement collectés à partir de sources
d’actualité sur le Web mais aussi provenant de bases de données existantes, livres, journaux et documents
légaux. Les événements dans la base GTD sont catégorisés selon les neuf types suivants :
1. Assassination
2. Hijacking
3. Kidnapping
4. Barricade Incident
5. Bombing/Explosion
6. Unknown
7. Armed Assault
8. Unarmed Assault
9. Facility/Infrastructure Attack
121. ❤tt♣s✿✴✴❥❡♥❛✳❛♣❛❝❤❡✳♦r❣✴
122. Study of Terrorism and Responses to Terrorism
123
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats
En fonction de son type, un événement peut présenter entre 45 et 120 propriétés/attributs tels que les
suivants :
– type de l’événement ;
– date de l’événement (année, mois, jour) ;
– lieu de l’événement (région, pays, état/province, ville, latitude/longitude) ;
– auteur(s) (personne ou groupe) ;
– nature de la cible ;
– type de l’arme utilisée ;
– dommages matériels ;
– nombre de décès ;
– nombre de blessés ;
– résumé ;
– indice de certitude ;
– sources (1 à 3) : nom de la source, extrait (titre), date de l’article, URL ;
– etc.
L’ensemble de ces données est représenté sous forme de couples "champ-valeur" et téléchargeable au
format CSV. Nous disposons d’ores et déjà d’une partie de cette base (environ 4800 fiches d’événements
survenus en 2010) convertie en base de connaissance sémantique (graphe RDF).
Cette base de données est bien adaptée à l’évaluation de notre processus global de capitalisation des
connaissances car elle constitue une collection de fiches d’événements manuellement agrégées à partir
de plusieurs sources d’information. Les sources (articles et dépêches principalement) à l’origine d’une
fiche sont accessibles via l’attribut scite qui spécifie leurs URLs. Une collecte automatique de ces sources
(grâce à un service WebLab) permet donc facilement de constituer un corpus d’évaluation composé de
dépêches de presse et des fiches d’événements correspondantes.
Il faut noter également que cette base est fondée sur une modélisation différente de celle définie
dans le cadre de nos recherches (l’ontologie WOOKIE). Il nous faut donc trouver le meilleur alignement
de classes et attributs afin de pouvoir évaluer les résultats de notre approche par rapport aux fiches de
référence de la base GTD. Le modèle d’événement employé par cette base étant sensiblement similaire
au nôtre, l’alignement des attributs d’intérêt (date, lieu et participants) n’a pas soulevé de difficultés.
Concernant la taxonomie des événements, 4 classes (sur les 9 du modèle GTD) ont pu être alignées avec
le modèle WOOKIE car ayant la même sémantique (voir le tableau 7.5). Nos expérimentations sont donc
limitées par ce point et ne concernent que des événements de ces 4 types.
Modèle GTD Ontologie WOOKIE
Facility/Infrastructure Attack DamageEvent
Bombing/Explosion BombingEvent
Armed Assault AttackEvent
Hostage Taking KidnappingEvent
TABLE 7.5 – Alignement des types d’événement entre le modèle GTD et l’ontologie WOOKIE
124
Copyright c 2013 - CASSIDIAN - All rights reserved7.3. Premières expérimentions sur l’agrégation sémantique
7.3.3 Exemples d’observations
Calculs de similarité
Nous présentons ici un exemple d’application à ce jeu de données de la similarité sémantique entre
événements : nous collectons et analysons trois dépêches de presse (que nous nommerons source1,
source2 et source3) à l’origine d’une même fiche d’événement issue de la base GTD 123 et résumée
par la figure 7.3. Le tableau suivant 7.6 présente quatre des événements extraits automatiquement par
FIGURE 7.3 – Un exemple d’événement issu de la base GTD
notre système à partir de ces sources, ainsi que leurs dimensions.
Event1 Event2 Event3 Event4
rdfs :label explosions explosions bomb blasts attacked
rdf :type BombingEvent BombingEvent BombingEvent AttackEvent
wookie :date - [∅ ,10,31] - -
wookie :takesPlaceAt Atirau city - - Kazakstan
wookie :involves - KNB department Kazakh Police -
source scite1 scite2 scite3 scite2
TABLE 7.6 – Événements extraits et leurs dimensions
Nous constatons dans cet exemple que, sans post-traitement adapté, ces quatre événements seraient
présentés à l’utilisateur final de façon distincte et sans aucun lien entre eux (quatre fiches de connaissance
différentes seraient créées). Toutefois, appliquer notre modèle de similarité sémantique entre événements,
permet de compléter cet ensemble de connaissances avec des relations de similarité entre ces quatre
fiches de connaissance. La figure 7.4 constitue un extrait des différentes similarités obtenues représentées
en RDF/XML. Tout d’abord, une proximité conceptuelle a été détectée entre les événements Event2
et Event4 (ligne 9) de par le fait que le type de l’événement Event2 est une sous-classe de celui de
l’événement Event4 dans l’ontologie de domaine. De plus, le service de désambiguïsation géographique
ayant assigné des identifiants GeoNames aux entités Atirau city et Kazahstan, nous pouvons appliquer
123. National Consortium for the Study of Terrorism and Responses to Terrorism (START). (2012). Global Terrorism Database
[Data file]. Retrieved from ❤tt♣✿✴✴✇✇✇✳st❛rt✳✉♠❞✳❡❞✉✴❣t❞
125
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats
le calcul de similarité spatiale et déduire que les événements Event1 et Event4 sont spatialement proches
(ligne 5). Enfin, la fonction de similarité agentive utilisant la distance de Jaro-Winkler a permis d’estimer
que les participants des événements Event2 et Event3 ne co-réfèrent pas (ligne 10).
1 < r d f : D e s c r i p t i o n r d f : a b o u t = " # E ve nt 1 " >
2
3
4
5
6 < / r d f : D e s c r i p t i o n >
7 < r d f : D e s c r i p t i o n r d f : a b o u t = " # E ve nt 2 " >
8
9
10
11 < / r d f : D e s c r i p t i o n >
12 < r d f : D e s c r i p t i o n r d f : a b o u t = " # E ve nt 3 " >
13
14 < / r d f : D e s c r i p t i o n >
FIGURE 7.4 – Similarités entre événements : extrait représenté en RDF/XML
Processus d’agrégation
Dans un second temps, notre processus global d’agrégation a été testé sur un sous-ensemble du
corpus GTD : l’ensemble des traitements (extraction, calculs de similarité et agrégation sémantique) a
été appliqué sur 60 dépêches de presse collectées du Web. Nous pouvons déjà faire quelques observations
chiffrées sur ce corpus de test et les résultats obtenus :
(a) 92 fiches d’événements de référence correspondent à ces 60 dépêches ;
(b) la majorité des dépêches (40) est associée à une seule fiche de référence, 15 dépêches relatent chacune
2 événements de référence et les 5 restantes renvoient chacune à 3 événements ;
(c) 223 mentions d’événements ont été repérées par notre approche d’extraction (tous types confondus) ;
(d) 44 de ces événements extraits font partie des 4 types de l’alignement (voir le tableau 7.5 et ont pu
donc être évalués ;
(e) ces 44 mentions d’événements comprennent 20 AttackEvent, 14 BombingEvent, 2 DamageEvent et
8 KidnappingEvent ;
(f) parmi ces 44 mentions, 3 possèdent une date, 7 présentent un lieu extrait et 5 impliquent des participants.
Nous nous sommes ensuite intéressés aux différentes relations de similarité de type ID et PROX (les
plus pertinentes pour rapprocher des événements similaires) créées entre les 44 événements extraits :
– 20 relations de type isConceptuallyID ont été détectées ;
– 17 relations de type isConceptuallyPROX ;
– 4 relations de type isAgentivelyID ;
– 3 relations de type isSpatiallyPROX.
126
Copyright c 2013 - CASSIDIAN - All rights reserved7.3. Premières expérimentions sur l’agrégation sémantique
Nous pouvons constater que peu de relations de ce type ont été détectées. Cela est, tout d’abord, à
corréler avec l’observation (f) faite plus haut, montrant que, parmi les 44 événements extraits et analysables,
peu de dimensions ont été extraites. Ce manque est du notamment à une limite de notre corpus
d’évaluation mise en avant par l’observation (b) : chaque événement du jeu de données est rapporté
au maximum par 3 sources, ce qui ne reflète pas les conditions réelles d’un processus de veille, où de
nombreuses sources et articles reportant le même événement sont quotidiennement collectés et analysés.
Dans un second temps, nous avons appliqué un premier regroupement avec pour condition de regrouper
entre eux les événements partageant au minimum une similarité de niveau ID et une similarité
de niveau PROX. Au vu des relations de similarité ci-dessus, seules deux configurations ont permis d’obtenir
des agrégats :
– {isConceptuallyID, isT emporallyLI, isSpatiallyLI, isAgentivelyID} produit
3 agrégats d’événements ;
– {isConceptuallyP ROX, isT emporallyLI, isSpatiallyP ROX, isAgentivelyLI} produit
1 agrégat d’événements.
Appliqué sur les 3 agrégats produits par la première configuration, un second regroupement par la
configuration {isConceptuallyDIF F, isT emporallyLI, isSpatiallyLI, isAgentivelyID} permet d’obtenir
un agrégat contenant les trois événements présentés dans le tableau 7.7. Deux des événements proviennent
d’une même source (Event2 et Event3) et le troisième (Event1) d’une source différente, celles-ci
sont reportées en annexes M et N.
Event1 Event2 Event3
gtd :source s3 s12 s12
rdfs :label kidnapping kidnapped bomb
wookie :involves Taliban Taliban
TABLE 7.7 – Exemple de 3 événements agrégés automatiquement
Afin d’évaluer l’apport de cette agrégation, nous avons examiné les fiches de référence associées aux
deux sources dont ces événements ont été extraits : la source s3 renvoie à un seul événement (que nous
nommerons Reference1) et la source s12 renvoie à deux événements (que nous nommerons Reference2 et
Reference3). Le tableau 7.8 ci-dessous présente ces trois fiches de référence ainsi que quelques propriétés
d’intérêt pour cette expérimentation.
Nous pouvons, à partir de cet exemple, faire les observations suivantes :
– Les trois extractions d’événements réalisées correspondent bien aux fiches de référence associées
à leurs sources respectives ;
– Les deux regroupements successifs ont permis d’agréger 3 événements perpétrés par le même
agent ("Taliban") ;
– Une géolocalisation des 3 événements de référence (voir la figure 7.5) montrent que les 3 événements
agrégés se sont produits dans la même zone géographique. Bien que les lieux des 3 événements
n’aient pas été repérés automatiquement, l’agrégation permettrait à l’analyste de découvrir
cette proximité (en remontant par exemple aux sources des trois événements) ;
– Dans l’hypothèse qu’avec une plus grande quantité de sources analysées les dimensions manquantes
(date et lieu) auraient pu être extraites, l’analyste aurait pu analyser la répartition spatiale
et temporelle de ces 3 événements afin d’en déduire de nouvelles connaissances ou de nouvelles
prédictions.
127
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats
Reference1 Reference2 Reference3
eventID 201009260002 201001230002 201001230007
source s3 s12 s12
year 2010 2010 2010
month 9 1 1
day 26 23 23
country Afghanistan Afghanistan Afghanistan
region South Asia South Asia South Asia
province/state Konar Konar Paktika
city Chawkay Shigal Unknown
attackType1 Hostage Taking (Kidnapping) Hostage Taking (Kidnapping) Armed Assault
attackType2 Armed Assault
targetType1 NGO Police Transportation
corp1 Development Alternatives Inc Sheigal Law Enforcement
target1 Linda Norgrove police chief of Sheigal district and two other police officers Civilians
targetType2 NGO
corp2 Development Alternatives Inc
target2 Three Afghan aid employees
perpetrator Taliban Taliban Taliban
TABLE 7.8 – Fiches d’événements de référence
FIGURE 7.5 – Visualisation des 3 événements extraits sur une carte géographique
7.3.4 Bilan de l’expérimentation
Cette première expérimentation a montré des résultats prometteurs à la fois pour notre approche
de similarité entre événements et pour le processus d’agrégation sémantique en tenant compte de ces
similarités. En effet, nous avons montré que notre approche globale peut être mise en œuvre sur des
128
Copyright c 2013 - CASSIDIAN - All rights reserveddonnées réelles sans nécessiter d’effort d’adaptation important et en maintenant le niveau de qualité
escompté.
Toutefois, celle-ci présente un certain nombre de limites qui constituent autant de perspectives à explorer
à l’avenir. Tout d’abord, nous souhaitons améliorer notre prototype en implémentant la totalité des
mesures de similarité proposées en section 6.3 (distances temporelles et spatiales ainsi que la desambiguïsation
agentive grâce à la base DBPedia). De plus, nous complèterons le service de regroupement en
y intégrant le procédé de regroupement hiérarchique par plusieurs passes (une seule passe est réalisée
pour le moment). Enfin, des problèmes techniques empêchent, à l’heure actuelle, d’obtenir des résultats
significatifs et quantitatifs sur un plus grand ensemble de données. Ce passage à l’échelle constitue notre
plus proche perspective future et permettra d’évaluer notre approche de façon exhaustive et avec des
métriques adaptées (issues par exemple de l’évaluation des méthodes de clustering) sur l’ensemble du
jeu de données présenté en section 7.3.2 : soit environ 5000 événements de référence. Cette évaluation
devra principalement permettre de répondre aux deux questions suivantes :
– est-ce que les événements extraits correspondant à une seule et même fiche de référence sont bien
rapprochés ?
– est-ce que les événements extraits ne correspondant pas à la même fiche de référence sont bien
différenciés ?
7.4 Conclusions
Dans ce dernier chapitre, nous avons présenté deux expérimentations destinées à évaluer deux de
nos contributions. Tout d’abord, une première évaluation a porté sur notre approche mixte d’extraction
automatique des événements : celle-ci a été testée et comparée à un corpus de référence annoté manuellement
pour les besoins de l’expérimentation. Pour ce faire, nous avons effectué une évaluation en
termes de précision/rappel/F1-mesure et cela selon différentes configurations : chaque approche a été
évaluée séparément puis comparée à l’union de leurs résultats. Nous avons également fait varier diffé-
rents paramètres tels que la présence de l’analyse syntaxique ou encore l’automatisation de la REN. Une
analyse détaillée des résultats a montré de bonnes performances en comparaison avec l’état de l’art et ceci
pour l’ensemble des configurations d’évaluation testées. Cette première évaluation a également pointé
quelques limites de notre approche telles que l’impact de l’extraction d’entités nommées sur les performances
des extracteurs d’événements. De plus, celle-ci pourrait être améliorée en exploitant davantage
les informations fournies par l’analyse syntaxique en dépendance.
La seconde expérimentation a constitué une première analyse qualitative dans le but d’illustrer les
résultats de notre processus d’agrégation sémantique sur un jeu de données réelles. Nous avons présenté,
dans un premier temps, l’implémentation d’un prototype fonctionnel couvrant la chaine complète d’agré-
gation des événements. Puis, la base de données Global Terrorism Database a été introduite ainsi qu’un
sous-ensemble de celle-ci servant de corpus d’évaluation pour cette expérimentation. Les tests réalisés se
sont avérés prometteurs à la fois pour ce qui est du calcul de similarité entre événements et du processus
d’agrégation proposé. Le premier traitement a rapproché efficacement des mentions d’événements qui
co-réfèrent et permettra ainsi de réduire la tâche de l’analyste du ROSO en lui proposant l’ensemble des
liens de similarité en tant que critères supplémentaires de recherche. Puis, nous avons appliqué notre
processus d’agrégation par regroupements successifs sur ce jeu de test et ceci pour pour 3 types de confi-
guration. Malgré le peu d’agrégats formés (en raison de la taille réduite du corpus), nous avons montré
129
Copyright c 2013 - CASSIDIAN - All rights reservedChapitre 7. Expérimentations et résultats
par un exemple l’utilité de cette agrégation du point de vue utilisateur. Cette seconde contribution pourra
être améliorée en intégrant l’ensemble des fonctions de similarité proposées à notre prototype d’agrégation
et en optimisant celui-ci pour permettre son passage à l’échelle d’un processus de veille réel.
130
Copyright c 2013 - CASSIDIAN - All rights reservedConclusion et perspectives
Sommaire
1 Synthèse des contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
1.1 État de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
1.2 Un modèle de connaissances pour le ROSO . . . . . . . . . . . . . . . . 133
1.3 Une approche mixte pour l’extraction automatique des événements . . . . 134
1.4 Un processus d’agrégation sémantique des événements . . . . . . . . . . 134
1.5 Évaluation du travail de recherche . . . . . . . . . . . . . . . . . . . . . . 135
2 Perspectives de recherche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
131
Copyright c 2013 - CASSIDIAN - All rights reservedConclusion et perspectives
1 Synthèse des contributions
La problématique étudiée durant cette thèse est la capitalisation des connaissances à partir de sources
ouvertes. Nous nous sommes plus particulièrement intéressés à l’extraction et à l’agrégation automatique
des événements dans le domaine du Renseignement d’Origine Sources Ouvertes. Ce sujet de recherche
nous a amenés à explorer les principaux axes de recherche suivants :
– La représentation et la modélisation des connaissances ;
– L’extraction automatique d’information ;
– La capitalisation des connaissances.
Pour répondre à cette problématique, nous avons, dans une première phase de nos recherches, réalisé
un état de l’art approfondi de ces trois axes scientifiques.
1.1 État de l’art
Nous avons, tout d’abord, exploré les principes théoriques et les recherches actuelles dans les domaines
de la représentation des connaissances, du Web sémantique et de la modélisation des événements.
Ce premier état de l’art a rappelé la distinction fondamentale entre les concepts de donnée, information
et connaissance. Il a également confirmé l’importance croissante des technologies du Web sémantique
qui sont partie intégrante d’une majorité de travaux actuels en fouille de documents. Les ontologies, plus
particulièrement, se positionnement comme un mode de représentation des connaissances en adéquation
avec les nouvelles problématiques du traitement de l’information. Combinées aux bases de connaissances
sémantiques et moteurs d’inférence, cela constitue un socle de technologies particulièrement adapté à la
capitalisation des connaissances à partir de sources ouvertes. Dans un second temps, nous nous sommes
focalisés sur la place des événements en représentation des connaissances et avons étudié les différentes
théories, modèles et ontologies proposés jusqu’alors. L’événement apparait comme un concept complexe,
dont la définition et la modélisation sont encore aujourd’hui des sujets de discussions et débats. Beaucoup
de travaux s’accordent sur un objet multi-dimensionnel impliquant une situation spatio-temporelle
et un ensemble d’acteurs et facteurs. Nous avons également exploré les spécifications utilisées par les
acteurs du renseignement afin d’adapter notre proposition à ce cadre d’application.
La seconde revue de littérature a été centrée sur l’extraction automatique d’information dans les
textes. Celle-ci a révélé un domaine de recherche très étudié bien que relativement jeune : nous avons pu
recenser un nombre important d’approches, d’applications possibles, de logiciels et plateformes développés
ainsi que de campagnes et projets d’évaluation menés jusqu’à nos jours. Les méthodes développées
sont historiquement réparties en deux catégories : les symboliques et les statistiques. Les premières, dé-
veloppées manuellement par des experts de la langue, s’avèrent globalement plus précises, tandis que
les secondes réalisent un apprentissage sur une grande quantité de données et présentent généralement
un fort taux de rappel. Parallèlement à cela, nous avons constaté une certaine complémentarité des approches
existantes, non seulement en termes de précision et de rappel mais également du point de vue des
types d’entités ciblées, du genre textuel, du domaine d’application, etc. Il apparait, par conséquent, pertinent
de combiner les approches existantes afin de tirer partie de leurs atouts respectifs. Pour ce faire, les
approches hybrides constituent des alternatives intéressantes car elles s’avèrent faiblement supervisées
et plus flexibles que d’autres approches statistiques. Enfin, ce tour d’horizon nous a permis de comparer
132
Copyright c 2013 - CASSIDIAN - All rights reserved1. Synthèse des contributions
différents outils et logiciels pour la mise en œuvre de notre approche ainsi que différents jeux de données
potentiellement adaptés à l’évaluation de nos travaux.
Le dernier état de l’art autour de la capitalisation des connaissances a mis en avant une suite logique
à nos travaux en extraction automatique d’information : la conception d’une approche globale
permettant la transition du texte vers la connaissance proprement dite. Cette problématique a donné lieu
à diverses recherches au sein de plusieurs communautés de l’IA, chacune d’elles manipulant sa propre
terminologie adaptée à ses propres besoins. Ses divergences de vocabulaire n’empêchent pas d’observer
la place importante réservée à la capitalisation des connaissances au sein des recherches actuelles, que
ce soit en réconciliation de données, extraction d’information ou Web sémantique. La majorité des approches
proposées en réconciliation de données trouve ses origines dans les bases de données. Il s’agit
dans ce cadre d’assurer le maintien de cohérence des bases en détectant les entrées et champs dupliqués.
Pour cela, beaucoup de travaux sont fondés sur des calculs de similarité : les plus simples opèrent une
similarité entre chaines de caractère tandis que les plus avancés exploitent le contexte linguistique et
extra-linguistique des données à comparer. Ces dernières se distinguent ensuite par le type et la méthode
employée pour obtenir ces caractéristiques de contexte et sur leur mode de combinaison. Nous avons
également exploré les techniques de capitalisation au sein du Web sémantique. A l’heure actuelle, cela
est réalisé principalement par ce que l’on nomme la Wikification : il s’agit de désambuiguïser sémantiquement
les mentions textuelles d’intérêt afin de les rattacher à une entité du monde référencée dans une
base de connaissances externe (dans le LOD essentiellement). Enfin, la capitalisation des connaissances
sur les événements extraits est l’objet d’un intérêt grandissant. Également nommée co-référence entre
événements, cette problématique est adressée principalement par des méthodes statistiques supervisées
ou non, d’une part, et des approches fondées sur les graphes et les calculs de similarité d’autre part.
Suite à la réalisation de ces états de l’art, nous avons proposé trois contributions relatives aux trois
domaines scientifiques explorés. Celles-ci s’articulent au sein de notre processus global de capitalisation
des connaissances. Au regard des conclusions de l’état de l’art, l’objectif directeur de nos recherches
est de concevoir un système global de reconnaissance et d’agrégation des événements le plus générique
possible et intégrant des méthodes et outils de la littérature.
1.2 Un modèle de connaissances pour le ROSO
Notre première contribution est l’élaboration d’un modèle de connaissances qui servira de guide à
notre approche de capitalisation des connaissances. Nous avons, tout d’abord, défini une modélisation des
événements fondée sur des modèles reconnus en ingénierie des connaissances et en extraction d’information.
Un événement est représenté par quatre dimensions : une dimension conceptuelle (correspondant au
type de l’événement), une dimension temporelle (la date/ période d’occurrence de l’événement), une dimension
spatiale (le lieu d’occurrence de l’événement) et une dimension agentive (dédiée aux différents
acteurs impliqués dans l’événement). Pour la définition de ses dimensions, nous avons privilégié la gé-
néricité du modèle ainsi que sa reconnaissances par la communauté scientifique concernée (par exemple,
le modèle TUS et la représentation spatiale en aires géographiques). Par ailleurs, afin de modéliser l’ensemble
des informations d’intérêt pour les analystes du ROSO, une ontologie de domaine a été proposée.
Celle-ci comprend en tant que classes de plus haut niveau les cinq entités principales de ce domaine :
les organisations, les lieux, les personnes, les équipements et les événements. De plus, notre ontologie
intègre de nombreux liens sémantiques vers d’autres modélisations existantes afin de maintenir une interopérabilité
au sein du Web sémantique. Cette contribution présente quelques limites et nous envisageons
133
Copyright c 2013 - CASSIDIAN - All rights reservedConclusion et perspectives
des perspectives d’amélioration telles que l’intégration d’une cinquième dimension contextuelle afin de
représenter des éléments du contexte linguistique et extra-linguistique, mais également une définition des
rôles au sein de la dimension agentive.
1.3 Une approche mixte pour l’extraction automatique des événements
Notre seconde contribution est une approche mixte pour l’extraction automatique des événements
fondée sur une méthode symbolique à base de grammaires contextuelles, d’une part, et sur une technique
de fouille de motifs séquentiels fréquents, d’autre part. La méthode symbolique comporte un ensemble de
règles d’extraction développées manuellement et exploite notamment la sortie d’une analyse syntaxique
en dépendance combinée avec un ensemble de classes argumentales d’événement. La seconde technique
permet d’obtenir de manière faiblement supervisée un ensemble de patrons d’extraction grâce à la fouille
de motifs séquentiels fréquents dans un ensemble de textes. Nous avons également conçu et implémenté
un système de reconnaissance d’entités nommées sur le modèle des approches symboliques classiques.
Celui-ci permet d’annoter au préalable les différentes entités dites simples nécessaires à la reconnaissance
des événements. Les deux méthodes pour l’extraction des événements ont montré leur efficacité lors
de l’état de l’art réalisé et leurs performances ont été évaluées sur un corpus de test de notre domaine
d’application (voir la section Évaluation du travail de recherche ci-dessous). La méthode à base de règles
pourra être améliorée en tenant compte d’autres informations fournies par l’analyse syntaxique telles que
la voix (passive ou active) du déclencheur, la polarité de la phrase (négative ou positive), la modalité mais
aussi les phénomènes de valence multiple. L’approche à base de motifs séquentiels fréquents pourrait
également tirer profit de cette analyse syntaxique en intégrant les relations de dépendance produites en
tant que nouveaux items ou sous forme de contraintes. Enfin, concernant les deux approches, leur limite
principale (qui est aussi celle d’autres approches de la littérature) est qu’elles réalisent l’extraction au
niveau phrastique. Une granularité plus large tel que le paragraphe ou le discours pourrait permettre
d’améliorer les performances de ces approches.
1.4 Un processus d’agrégation sémantique des événements
Notre contribution suivante est un processus d’agrégation sémantique des événements fondé sur une
échelle de similarité qualitative et sur un ensemble de mesures spécifiques à chaque type de dimension.
Nous avons tout d’abord proposé des mécanismes de normalisation des entités, adaptés à leurs natures,
afin d’harmoniser formellement les différentes informations extraites. Concernant ce premier aspect,
nous envisageons des améliorations telles que la désambiguïsation des dates relatives, par exemple, ou
encore l’intégration au sein de notre système d’un outil de désambiguïsation sémantique des participants.
Nous avons ensuite proposé un une échelle de similarité qualitative orientée utilisateur et un ensemble de
calculs de similarité intégrant à la fois un modèle théorique adapté à chaque dimension et une implémentation
technique employant les technologies du Web sémantique (ontologies et bases de connaissances
sémantiques). Nous souhaitons poursuivre ce travail en élargissant le panel de similarités employées :
notamment, des mesures de proximité ontologique plus sophistiquées ainsi que des outils de distance
temporelle et spatiale et, pour la similarité agentive, une distance dédiée aux ensembles d’entités. Les
similarités entre événements pourraient également provenir d’une fonction d’équivalence apprise automatiquement
à partir de données annotées manuellement. Enfin, un processus d’agrégation fondé sur les
graphes a été proposé afin de regrouper les mentions d’événements similaires et de permettre à l’analyste
134
Copyright c 2013 - CASSIDIAN - All rights reserved1. Synthèse des contributions
de découvrir de nouvelles connaissances. Ce type d’agrégation possède l’avantage principal d’être intrinsèquement
adapté aux traitement des bases de connaissances et ainsi aisément généralisable à d’autres
silos du Web de données. Cette agrégation pourrait également être réalisée par calcul d’une similarité
globale qui combinerait les différentes similarités locales. Le point délicat pour cette méthode sera alors
d’estimer le poids de chaque dimension dans cette combinaison.
1.5 Évaluation du travail de recherche
Pour conclure ce bilan des contributions, nous avons proposé durant notre travail de recherche deux
expérimentations destinées à évaluer deux de nos contributions. Tout d’abord, une première évaluation
a porté sur notre approche mixte d’extraction automatique des événements : celle-ci a été testée et comparée
à un corpus de référence (issu de la campagne d’évaluation MUC) annoté manuellement pour les
besoins de l’expérimentation. Une analyse détaillée des résultats a montré de bonnes performances en
comparaison avec l’état de l’art et ceci pour l’ensemble des configurations d’évaluation testées. Cette
première évaluation a également pointé quelques limites de notre approche telles que l’impact de l’extraction
d’entités nommées sur les performances des extracteurs d’événements. De plus, celle-ci pourrait
être améliorée en exploitant davantage les informations fournies par l’analyse syntaxique en dépendance.
La seconde expérimentation a constitué une première analyse qualitative dans le but d’illustrer les résultats
de notre processus d’agrégation sémantique sur un jeu de données réelles. Nous avons présenté, dans
un premier temps, l’implémentation d’un prototype fonctionnel couvrant la chaine complète d’agrégation
des événements. Puis, la base de données Global Terrorism Database a été introduite ainsi qu’un
sous-ensemble de celle-ci servant de corpus d’évaluation pour cette expérimentation. Les tests réalisés se
sont avérés prometteurs à la fois pour ce qui est du calcul de similarité entre événements et du processus
d’agrégation proposé. Le premier traitement a rapproché efficacement des mentions d’événements qui
co-réfèrent et permettra ainsi de réduire la tâche de l’analyste du ROSO en lui proposant l’ensemble des
liens de similarité en tant que critères supplémentaires de recherche. Puis, nous avons appliqué notre processus
d’agrégation par regroupements successifs sur ce jeu de test et nous avons montré par un exemple
l’utilité de cette agrégation du point de vue utilisateur. Cette seconde contribution pourra être améliorée
en intégrant l’ensemble des fonctions de similarité proposées à notre prototype d’agrégation et en
optimisant celui-ci pour permettre son passage à l’échelle d’un processus de veille réel.
135
Copyright c 2013 - CASSIDIAN - All rights reservedConclusion et perspectives
2 Perspectives de recherche
Les travaux de recherche menés durant cette thèse ont permis de mettre en avant des perspectives
d’amélioration de notre processus de capitalisation des connaissances.
La première suite à donner à nos travaux sera de mettre en place une évaluation quantitative et sur
un jeu de données significatif (la base GTD par exemple) de notre processus global de capitalisation de
connaissances. Pour cela, nous envisageons d’optimiser l’implémentation de notre processus d’agrégation
sémantique pour passer à l’échelle de notre corpus d’évaluation.
L’extraction des événements pourra être améliorée par différentes méthodes exploitant la connaissance
disponible dans le Web de données. L’ensemble des silos sémantiques liés entre eux par des équivalences
et des relations ontologiques peut être exploité par divers moyens. Une autre piste d’amélioration
est l’intégration d’un système d’estimation de la confiance ou qualité des extractions afin de guider soit
les systèmes suivants soit l’utilisateur. De plus, il pourra être intéressant d’y ajouter d’autres méthodes
performantes de l’EI comme par exemple une extraction par apprentissage statistique sous réserve de
disposer d’un corpus annoté adéquat. Concernant notre approche à base de motifs séquentiels, nous
pourrons diversifier le corpus d’apprentissage utilisé afin d’obtenir des patrons plus génériques et performants
pour d’autres domaines ou genres de texte. Les récentes recherches visant à évaluer la qualité
des extractions telles que [Habib and van Keulen, 2011], nous paraissent également à prendre en compte
afin d’améliorer les performances de nos extracteurs mais aussi dans le but de réaliser une hybridation
intelligente de ces différentes méthodes d’extraction.
Par ailleurs, comme dit précédemment le travail présenté ici est centré sur la définition d’un système
global de reconnaissance et d’agrégation d’événements le plus générique possible. Cela implique que les
différentes mesures de similarité présentées sont facilement interchangeables avec d’autres mesures plus
avancées sans remettre en cause notre approche globale. La similarité agentive pourra, par exemple, être
améliorée en y intégrant des techniques de résolution de co-référence entre entités. Nous pourrons également
prendre en compte certaines dépendances entre les dimensions d’événement : à titre d’exemple,
la dimension sémantique peut influencer l’agrégation d’entités temporelles dans le cas d’événements
duratifs comme des épidémies ou des guerres où deux mentions d’événement peuvent avoir deux dates
différentes mais tout de même référer au même événement du monde réel. En effet, nous n’étudions pour
le moment que les événements dits ponctuels mais il sera intéressant de poursuivre ce travail en étudiant
les événements duratifs et plus particulièrement les liens temporels entre événements grâce aux relations
d’Allen [Allen, 1981] et à l’opérateur convexify défini dans le modèle TUS. Une autre perspective
pourra être d’étudier tous les types de dépendance entre dimensions, notamment en explorant certaines
techniques de résolution collective d’entités.
Concernant le processus d’agrégation proposé, nous envisageons d’étudier les travaux existants autour
de la cotation de l’information et plus particulièrement de la fiabilité des sources et des informations.
La qualité des connaissances capitalisées peut être grandement améliorée dès lors que le processus
d’agrégation des informations tient compte de ces indices (voir par exemple les travaux de [Cholvy,
2007]).
Pour finir, l’interaction avec l’utilisateur constitue également une piste de recherche intéressante.
[Noël, 2008] met en avant que les technologies du Web sémantique ont souvent été critiquées pour
le fait que les aspects utilisateur y ont souvent été négligés. Ceux-ci proposent donc l’application des
techniques de recherche exploratoire au Web sémantique et, plus particulièrement, à l’accès aux bases
136
Copyright c 2013 - CASSIDIAN - All rights reservedde connaissances par les utilisateurs. De plus, la possibilité donnée à l’utilisateur de fusionner des fiches
grâce aux suggestions d’agrégats soulèvera d’autres problématiques à explorer telles que la mise à jour
et le maintien de cohérence de la base de connaissance en fonction des actions de l’analyste.
137
Copyright c 2013 - CASSIDIAN - All rights reservedConclusion et perspectives
138
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexes
139
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe A
WOOKIE : taxonomie des concepts
141
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe A. WOOKIE : taxonomie des concepts
142
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe B
WOOKIE : événements spécifiques au
ROSO
143
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe B. WOOKIE : événements spécifiques au ROSO
144
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe C
WOOKIE : relations entre concepts
145
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe C. WOOKIE : relations entre concepts
146
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe D
WOOKIE : attributs des concepts
147
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe D. WOOKIE : attributs des concepts
148
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe E
GATE : exemple de chaine de traitement
149
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe E. GATE : exemple de chaine de traitement
150
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe F
Gazetteer pour la détection de personnes
en français
151
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe F. Gazetteer pour la détection de personnes en français
152
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe G
L’ontologie-type pizza.owl
153
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe G. L’ontologie-type pizza.owl
154
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe H
Extrait de l’ontologie pizza.owl au format
OWL
< !−−
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ /
/ / OWL C l a s s e s
/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
−−>
< !−− C l a s s : h t t p : / /www. co−ode . o r g / o n t o l o g i e s / p i z z a / p i z z a . owl# Ame rican −−>
< o w l : C l a s s r d f : a b o u t = " # Ame rican " >
< r d f s : l a b e l xml :l a n g= " p t " >Ame rica na < / r d f s : l a b e l >
< r d f s : s u b C l a s s O f >
< o w l : R e s t r i c t i o n >
< o w l : o n P r o p e r t y r d f : r e s o u r c e = " # h a sT o p pi n g " / >
< owl: s omeVal ue sF r om r d f : r e s o u r c e = " # TomatoTopping " / >
< / o w l : R e s t r i c t i o n >
< / r d f s : s u b C l a s s O f >
< r d f s : s u b C l a s s O f >
< o w l : R e s t r i c t i o n >
< o w l : o n P r o p e r t y r d f : r e s o u r c e = " # h a sT o p pi n g " / >
< owl: s omeVal ue sF r om r d f : r e s o u r c e = " # P e p e r o ni S a u s a g e T o p pi n g " / >
< / o w l : R e s t r i c t i o n >
< / r d f s : s u b C l a s s O f >
< r d f s : s u b C l a s s O f >
< o w l : R e s t r i c t i o n >
< o w l : o n P r o p e r t y r d f : r e s o u r c e = " # h a sC o u nt r y O f O ri gi n " / >
< o wl: h a s V al u e r d f : r e s o u r c e = " # Ame rica " / >
< / o w l : R e s t r i c t i o n >
< / r d f s : s u b C l a s s O f >
< r d f s : s u b C l a s s O f >
< o w l : R e s t r i c t i o n >
< o w l : o n P r o p e r t y r d f : r e s o u r c e = " # h a sT o p pi n g " / >
< owl: s omeVal ue sF r om r d f : r e s o u r c e = " # M o z z a r ell a T o p pi n g " / >
< / o w l : R e s t r i c t i o n >
155
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe H. Extrait de l’ontologie pizza.owl au format OWL
< / r d f s : s u b C l a s s O f >
< r d f s : s u b C l a s s O f >
< o w l : C l a s s r d f : a b o u t = " # NamedPizza " / >
< / r d f s : s u b C l a s s O f >
< r d f s : s u b C l a s s O f >
< o w l : R e s t r i c t i o n >
< o w l : o n P r o p e r t y r d f : r e s o u r c e = " # h a sT o p pi n g " / >
< o wl: all V al u e s F r o m >
< o w l : C l a s s >
< o wl: u ni o n O f r d f : p a r s e T y p e = " C o l l e c t i o n " >
< o w l : C l a s s r d f : a b o u t = " # M o z z a r ell a T o p pi n g " / >
< o w l : C l a s s r d f : a b o u t = " # P e p e r o ni S a u s a g e T o p pi n g " / >
< o w l : C l a s s r d f : a b o u t = " # TomatoTopping " / >
< / o wl: u ni o n O f >
< / o w l : C l a s s >
< / o wl: all V al u e s F r o m >
< / o w l : R e s t r i c t i o n >
< / r d f s : s u b C l a s s O f >
< / o w l : C l a s s >
< !−−
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ /
/ / OWL O bj e ct P r o p e r t i e s
/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
−−>
< !−− O bj e ct p r o p e r t y : h t t p : / /www. co−ode . o r g / o n t o l o g i e s / p i z z a / p i z z a . owl# h a sB a s e −−>
< o w l : O b j e c t P r o p e r t y r d f : a b o u t = " # h a sB a s e " >
< r d f : t y p e r d f : r e s o u r c e = "&owl ; F u n c t i o n a l P r o p e r t y " / >
< r d f : t y p e r d f : r e s o u r c e = "&owl ; I n v e r s e F u n c t i o n a l P r o p e r t y " / >
< o w l : i n v e r s e O f >
< o w l : O b j e c t P r o p e r t y r d f : a b o u t = " # i sB a s e O f " / >
< / o w l : i n v e r s e O f >
< r d f s : d o m a i n >
< o w l : C l a s s r d f : a b o u t = " # P i z z a " / >
< / r d f s : d o m a i n >
< r d f s : r a n g e >
< o w l : C l a s s r d f : a b o u t = " # Pi z z aB a s e " / >
< / r d f s : r a n g e >
< / o w l : O b j e c t P r o p e r t y >
< !−−
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ /
/ / OWL I n d i v i d u a l s
/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
−−>
< !−− I n d i v i d u a l : h t t p : / /www. co−ode . o r g / o n t o l o g i e s / p i z z a / p i z z a . owl# Ame rica −−>
< o wl: T hi n g r d f : a b o u t = " # Ame rica " >
156
Copyright c 2013 - CASSIDIAN - All rights reserved< r d f : t y p e r d f : r e s o u r c e = " # C o u nt r y " / >
< / o wl: T hi n g >
< !−−
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
/ /
/ / OWL Axioms
/ /
/ / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
−−>
< o w l : C l a s s r d f : a b o u t = " # LaRei ne " >
< o w l : d i s j o i n t W i t h >
< o w l : C l a s s r d f : a b o u t = " #Mushroom " / >
< / o w l : d i s j o i n t W i t h >
< / o w l : C l a s s >
< o w l : C l a s s r d f : a b o u t = " #Mushroom " >
< o w l : d i s j o i n t W i t h >
< o w l : C l a s s r d f : a b o u t = " # LaRei ne " / >
< / o w l : d i s j o i n t W i t h >
< / o w l : C l a s s >
< o w l : A l l D i f f e r e n t >
< o w l : d i s t i n c tM e m b e r s r d f : p a r s e T y p e = " C o l l e c t i o n " >
< o wl: T hi n g r d f : a b o u t = " # Ame rica " / >
< o wl: T hi n g r d f : a b o u t = " # I t a l y " / >
< o wl: T hi n g r d f : a b o u t = " #Germany " / >
< o wl: T hi n g r d f : a b o u t = " # F r a n c e " / >
< o wl: T hi n g r d f : a b o u t = " # E n gla n d " / >
< / o w l : d i s t i n c tM e m b e r s >
< / o w l : A l l D i f f e r e n t >
< / r d f:RDF >
157
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe H. Extrait de l’ontologie pizza.owl au format OWL
158
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe I
Exemple de document WebLab contenant
des événements
xml v e r si o n = " 1 . 0 " e n c o di n g = "UTF−8" s t a n d al o n e = " y e s " ?>
< r e s o u r c e x s i : t y p e = " n s 3:D oc ume nt " u r i = " w e bl a b: / / S m a l l E n g l i s h T e s t / 1 "
xml n s: n s 3 = " h t t p : / / we bla b . ow2 . o r g / c o r e / 1 . 2 / model # "
x m l n s : x s i = " h t t p : / / www. w3 . o r g / 2 0 0 1 / XMLSchema−i n s t a n c e " >
< a n n o t a t i o n u r i = " w e bl a b: / / S m a l l E n g l i s h T e s t /1#0−a2 " >
< d a t a xml n s: n s 2 = " h t t p : / / we bla b . ow2 . o r g / 1 . 2 / model # " >
< r d f:RDF xml n s: d c = " h t t p : / / p u r l . o r g / dc / el e m e n t s / 1 . 1 / "
x m l n s : r d f = " h t t p : / / www. w3 . o r g / 1 9 9 9/ 0 2/ 2 2 − r d f−s y nt a x−n s # " >
< r d f : D e s c r i p t i o n r d f : a b o u t = " w e bl a b: / / S m a l l E n g l i s h T e s t / 1 " >
< d c : l a n g u a g e >en< / d c : l a n g u a g e >
< / r d f : D e s c r i p t i o n >
< / r d f:RDF >
< / d a t a >
< / a n n o t a t i o n >
< m e di aU nit x s i : t y p e = " n s 3 : T e x t " u r i = " s o u r c e : / / x p _ s 7 8 " >
< a n n o t a t i o n u r i = " s o u r c e : / / x p _ s 7 8 # a0 " >
< d a t a >
< r d f:RDF x m l n s : r d f s = " h t t p : / / www. w3 . o r g / 2 0 0 0 / 0 1 / r d f−schema # "
x m l n s : d c t = " h t t p : / / p u r l . o r g / dc / t e rm s / "
x m l n s : r d f = " h t t p : / / www. w3 . o r g / 1 9 9 9/ 0 2/ 2 2 − r d f−s y nt a x−n s # "
x ml n s: wl r = " h t t p : / / we bla b . ow2 . o r g / c o r e / 1 . 2 / o nt ol o g y / r e t r i e v a l # "
xml n s:wl p = " h t t p : / / we bla b . ow2 . o r g / c o r e / 1 . 2 / o nt o l o g y / p r o c e s s i n g # "
xml n s:w o o ki e = " h t t p : / / we bla b . ow2 . o r g / wookie # " >
< r d f : D e s c r i p t i o n r d f : a b o u t = " s o u r c e : / / x p _ s 7 8 #4 " >
< w l p : r e f e r s T o
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / S e a r c h O p e r a t i o n #40 d72785−
2171−4372−8e61 −5808 b41122c3 " / >
< w l p : r e f e r s T o
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / S e a r c h O p e r a t i o n #832 b376 f−
c7dd−4d23−a8ea −4441027 c4115 " / >
< / r d f : D e s c r i p t i o n >
< r d f : D e s c r i p t i o n r d f : a b o u t = " s o u r c e : / / x p _ s 7 8 #5 " >
< w l p : r e f e r s T o
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / C r a s hE v e nt #81 b9be1e−a f a 9−
4 a84 −9066−414 b8021468c " / >
< w l p : r e f e r s T o
159
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe I. Exemple de document WebLab contenant des événements
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / C r a s hE v e nt #5 bbe4888 −5445−
4896−a d f 0 −0a 2 0 b 7 6ee d 2 7 " / >
< / r d f : D e s c r i p t i o n >
< r d f : D e s c r i p t i o n r d f : a b o u t = " s o u r c e : / / x p _ s 7 8 # a0 " >
< wl p:i s P r o d u c e dB y
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / w e b s e r v i c e s / g a t e s e r v i c e " / >
< / r d f : D e s c r i p t i o n >
< r d f : D e s c r i p t i o n
r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / C r a s hE v e nt #5 bbe4888 −5445−4896−
a d f 0 −0a 2 0 b 7 6ee d 2 7 " >
< w o o k i e : s o u r c e > s o u r c e : / / x p _ s 7 8 < / w o o k i e : s o u r c e >
< r d f s : l a b e l > i n c i d e n t < / r d f s : l a b e l >
< r d f : t y p e
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie # C r a s hE v e nt " / >
< / r d f : D e s c r i p t i o n >
< r d f : D e s c r i p t i o n
r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / S e a r c h O p e r a t i o n #832 b376 f−c7dd−
4 d23−a8ea −4441027 c4115 " >
< w o o k i e : i n v o l v e s
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / U nit # p o l i c e " / >
< w o o k i e : s o u r c e > s o u r c e : / / x p _ s 7 8 < / w o o k i e : s o u r c e >
< r d f s : l a b e l > i n v e s t i g a t i n g < / r d f s : l a b e l >
< r d f : t y p e
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie # S e a r c h O p e r a t i o n " / >
< / r d f : D e s c r i p t i o n >
< r d f : D e s c r i p t i o n
r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / S e a r c h O p e r a t i o n #40 d72785−2171−
4372−8e61 −5808 b41122c3 " >
< w o o k i e : s o u r c e > s o u r c e : / / x p _ s 7 8 < / w o o k i e : s o u r c e >
< r d f s : l a b e l > i n v e s t i g a t i n g < / r d f s : l a b e l >
< r d f : t y p e
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie # S e a r c h O p e r a t i o n " / >
< / r d f : D e s c r i p t i o n >
< r d f : D e s c r i p t i o n
r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / C r a s hE v e nt #81 b9be1e−a f a 9 −4a84−
9066−414 b8021468c " >
< w o o k i e : i n v o l v e s
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / U nit # p o l i c e " / >
< w o o k i e : s o u r c e > s o u r c e : / / x p _ s 7 8 < / w o o k i e : s o u r c e >
< r d f s : l a b e l > i n c i d e n t < / r d f s : l a b e l >
< r d f : t y p e
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie # C r a s hE v e nt " / >
< / r d f : D e s c r i p t i o n >
< r d f : D e s c r i p t i o n
r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / P e r s o n # muhammad_khan_ sa soli " >
< w l p : i s C a n d i d a t e > t r u e < / w l p : i s C a n d i d a t e >
< r d f s : l a b e l >Muhammad Khan S a s o l i < / r d f s : l a b e l >
< r d f : t y p e
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie # P e r s o n " / >
< / r d f : D e s c r i p t i o n >
< r d f : D e s c r i p t i o n
r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / U nit # k h u z d a r _ p r e s s _ c l u b " >
< w l p : i s C a n d i d a t e > t r u e < / w l p : i s C a n d i d a t e >
< r d f s : l a b e l >Khuzda r P r e s s Club < / r d f s : l a b e l >
< r d f : t y p e
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie # U nit " / >
< / r d f : D e s c r i p t i o n >
160
Copyright c 2013 - CASSIDIAN - All rights reserved< r d f : D e s c r i p t i o n r d f : a b o u t = " s o u r c e : / / x p _ s 7 8 #2 " >
< w l p : r e f e r s T o
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s /
P e r s o n # muhammad_khan_ sa soli " / >
< / r d f : D e s c r i p t i o n >
< r d f : D e s c r i p t i o n r d f : a b o u t = " s o u r c e : / / x p _ s 7 8 #3 " >
< w l p : r e f e r s T o
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / U nit # p o l i c e " / >
< / r d f : D e s c r i p t i o n >
< r d f : D e s c r i p t i o n
r d f : a b o u t = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / U nit # p o l i c e " >
< w l p : i s C a n d i d a t e > t r u e < / w l p : i s C a n d i d a t e >
< r d f s : l a b e l > P o l i c e < / r d f s : l a b e l >
< r d f : t y p e
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie # U nit " / >
< / r d f : D e s c r i p t i o n >
< r d f : D e s c r i p t i o n r d f : a b o u t = " s o u r c e : / / x p _ s 7 8 #1 " >
< w l p : r e f e r s T o
r d f : r e s o u r c e = " h t t p : / / we bla b . ow2 . o r g / wookie / i n s t a n c e s / U nit # k h u z d a r _ p r e s s _ c l u b " / >
< / r d f : D e s c r i p t i o n >
< / r d f:RDF >
< / d a t a >
< / a n n o t a t i o n >
< se gme nt x s i : t y p e = " n s 3: Li n e a r S e g m e nt " s t a r t = " 303 " end= " 321 "
u r i = " s o u r c e : / / x p _ s 7 8 #1 " / >
< se gme nt x s i : t y p e = " n s 3: Li n e a r S e g m e nt " s t a r t = " 386 " end= " 406 "
u r i = " s o u r c e : / / x p _ s 7 8 #2 " / >
< se gme nt x s i : t y p e = " n s 3: Li n e a r S e g m e nt " s t a r t = " 523 " end= " 529 "
u r i = " s o u r c e : / / x p _ s 7 8 #3 " / >
< se gme nt x s i : t y p e = " n s 3: Li n e a r S e g m e nt " s t a r t = " 533 " end= " 546 "
u r i = " s o u r c e : / / x p _ s 7 8 #4 " / >
< se gme nt x s i : t y p e = " n s 3: Li n e a r S e g m e nt " s t a r t = " 551 " end= " 559 "
u r i = " s o u r c e : / / x p _ s 7 8 #5 " / >
< c o n t e n t >
Wednesday , December 1 5 , 2010 E−Mail t h i s a r t i c l e t o a f r i e n d P r i n t e r F r i e n d l y
V e r si o n
More S h a ri n g S e r v i c e s S h a r e | S h a r e on f a c e b o o k S h a r e on t w i t t e r S h a r e on
l i n k e d i n S h a r e on st um bl e u p o n S h a r e on em ail S h a r e on p r i n t |
J o u r n a l i s t gunned down i n Khuzda r
KALAT: U n i d e n t i f i e d a rmed men gunned down Khuzda r P r e s s Club p r e s i d e n t i n
Khuzda r on T ue s da y . A c c o r di n g t o t h e l o c a l p o l i c e , Muhammad Khan S a s o l i was on
h i s way home when t h e u n i d e n t i f i e d men gunned him down i n La b o u r Colony . The
a s s a i l a n t s f l e d f rom t h e s c e n e . P o l i c e i s i n v e s t i g a t i n g t h e i n c i d e n t . app
< / c o n t e n t >
< / m e di aU nit >
< / r e s o u r c e >
161
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe I. Exemple de document WebLab contenant des événements
162
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe J
Exemple de règle d’inférence au
formalisme Jena
@ p r e fi x r d f : < h t t p : / /www. w3 . o r g / 1 9 9 9/ 0 2/ 2 2 − r d f−s y nt a x−n s # >.
@ p r e fi x owl : < h t t p : / /www. w3 . o r g / 2 0 0 2 / 0 7 / owl # >.
@ p r e fi x r d f s : < h t t p : / /www. w3 . o r g / 2 0 0 0 / 0 1 / r d f−schema # >.
@ p r e fi x x s d : < h t t p : / /www. w3 . o r g / 2 0 0 1 / XMLSchema# >.
@ p r e fi x wookie : < h t t p : / / we bla b . ow2 . o r g / wookie # >.
[ I n i t i a l i z a t i o n :
−> p r i n t ( " / / / / / / / / / / / / / / E v e nt s s e m a n ti c s i m i l a r i t y r u l e s / / / / / / / / / / / / / / / / / / / / " )
]
/ / / / / / / / / / / / / / / S em a nti c s i m i l a r i t y / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / / /
[ SemSIM_1 :
( ? e1 wookie : s e m a nti c all y S IM ? e2 )
<−
( ? e1 r d f : t y p e ? c1 ) ,
( ? e2 r d f : t y p e ? c2 ) ,
i s R e l e v a n t ( ? c1 ) ,
i s R e l e v a n t ( ? c2 ) ,
n oVal ue ( ? e1 wookie : s e m a nti c all y S IM ? e2 ) ,
n ot E q u al ( ? e1 , ? e2 ) ,
n ot E q u al ( ? c1 , ? c2 ) ,
h a s S u bCl a s s ( ? c1 , ? c2 )
]
163
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe J. Exemple de règle d’inférence au formalisme Jena
164
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe K
Extrait d’un document du corpus
d’apprentissage
{ However howeve r RB }{ , , , }{ Canada Canada NP P l a c e }{ c o n t i n u e s c o n t i n u e VBZ }{
t o t o TO }{ make make VB }{ p r o g r e s s p r o g r e s s NN }{ on on IN }{ t h e t h e DT }{
s i x s i x CD }{ p r i o r i t i e s p r i o r i t y NNS }{ we we PP }{ ha ve ha ve VBP }{ i d e n t i f i e d
i d e n t i f y VBN }{ t h a t t h a t WDT }{ w i l l w i l l MD }{ h el p h el p VB LookupEvent }{
b u i l d b u i l d VB }{ t h e t h e DT }{ f o u n d a t i o n f o u n d a t i o n NN }{ f o r f o r IN }{ a a DT
}{ more more RBR }{ s t a b l e s t a b l e J J }{ A f g h a n i s t a n A f g h a n i s t a n NP P l a c e }{ . .
SENT }
{ The t h e DT }{ f i f t h f i f t h J J }{ q u a r t e r l y q u a r t e r l y J J }{ r e p o r t r e p o r t NN }{
h i g h l i g h t s h i g h l i g h t VBZ }{ C a n a di a n C a n a di a n J J }{ a c t i v i t y a c t i v i t y NN }{ i n
i n IN }{ s e v e r a l s e v e r a l J J }{ a r e a s a r e a NNS }{ : : : }{ − − : }{ Unde r u n d e r
IN }{ a a DT }{ Ca na dia n−s u p p o r t e d Ca na dia n−s u p p o r t e d J J }{ p r o j e c t p r o j e c t NN
}{ t o t o TO }{ c l e a r c l e a r J J }{ l a n dmi n e s l a n dmi n e NNS }{ and and CC }{ o t h e r
o t h e r J J }{ e x p l o s i v e s e x p l o s i v e NNS }{ , , , }{ t r a i n i n g t r a i n i n g NN
LookupEvent }{ be ga n b e gi n VBD }{ f o r f o r IN }{ 80 @card@ CD }{ l o c a l l y l o c a l l y
RB }{ r e c r u i t e d r e c r u i t VBN }{ d emi n e r s d emi n e r s NNS }{ i n i n IN }{ Ka n da ha r
Ka n da ha r NP P l a c e }{ , , , }{ and and CC }{ an an DT }{ a d d i t i o n a l a d d i t i o n a l J J
}{ 2 7 0 , 0 0 0 @card@ CD }{ s q u a r e s q u a r e J J }{ m et r e s m et r e NNS }{ o f o f IN }{
l a n d l a n d NN }{ we re be VBD }{ c l e a r e d c l e a r VBN }{ . . SENT }
{ Canada Canada NP P l a c e }{ c o n t i n u e s c o n t i n u e VBZ }{ t o t o TO }{ p u r s u e p u r s u e VB
}{ i t s i t s PP$ }{ e f f o r t s e f f o r t NNS }{ t o t o TO }{ p r o t e c t p r o t e c t VB
LookupEvent }{ i t s i t s PP$ }{ s e c u r i t y s e c u r i t y NN }{ by by IN }{ h e l p i n g h el p
VBG LookupEvent }{ t h e t h e DT }{ A fghan A fghan J J U nit }{ g o v e r nm e nt g o v e r nm e nt
NN U nit }{ t o t o TO }{ p r e v e n t p r e v e n t VB }{ A f g h a n i s t a n A f g h a n i s t a n NP P l a c e }{
f rom f rom IN }{ a g a i n a g a i n RB }{ becoming become VBG }{ a a DT }{ b a s e b a s e NN
}{ f o r f o r IN }{ t e r r o r i s m t e r r o r i s m NN }{ d i r e c t e d d i r e c t VBN }{ a g a i n s t
a g a i n s t IN }{ Canada Canada NP P l a c e }{ o r o r CC }{ i t s i t s PP$ }{ a l l i e s a l l y
NNS }{ . . SENT }
165
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe K. Extrait d’un document du corpus d’apprentissage
166
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe L
Extrait d’un document du corpus de test
TST4−MUC4−0001
C o n c e p ci o n < / Pl a c e > , 23 Aug 88< / Date> ( S a n t i a g o D ome stic
S e r v i c e < / Uni t> ) −− [ R e p o rt ]
[ Mi g uel Angel V a l d e b e n i t o < / Person> ] [ T e xt ] P o l i c e < / Uni t> s o u r c e s
ha ve r e p o r t e d t h a t
u n i d e n t i f i e d i n d i v i d u a l s p l a n t e d a bomb< / LookupEvent> i n f r o n t o f a <
Pl a c e >Mormon Chu rch < / Pl a c e > i n
T al c a h u a n o D i s t r i c t < / Pl a c e > . The bomb , which e x pl o d e d < /
LookupEvent> and c a u s e d p r o p e r t y
damage< / LookupEvent> w o rt h 5 0 , 0 0 0 p e s o s , was p l a c e d a t a c h a p e l o f t h e Chu rch
o f
J e s u s C h r i s t o f L a t t e r −Day S a i n t s < / Pl a c e > l o c a t e d a t No 3856 Gomez C a r r e n o
S t r e e t < / Pl a c e > .
The s h o c k wave d e s t r o y e d a w all , t h e r o o f , and t h e windows o f t h e
c h u rc h , b ut di d n ot c a u s e any i n j u r i e s .
C a r a b i n e r o s bomb s q u a d < / Uni t> p e r s o n n e l i m m e di at el y went < /
LookupEvent> t o t h e l o c a t i o n
and d i s c o v e r e d t h a t t h e bomb was made o f 50 g rams o f an−f o [ ammonium
n i t r a t e −f u e l o i l b l a s t i n g a g e n t s ] and a sl ow f u s e .
C a r a b i n e r o s s p e c i a l f o r c e s < / Uni t> s o o n r a i d e d < / LookupEvent> a
l a r g e a r e a t o t r y t o
a r r e s t < / LookupEvent> t h o s e r e s p o n s i b l e f o r t h e a t t a c k , b ut t h e y we re
u n s u c c e s s f u l .
The p o l i c e < / Uni t> ha ve a l r e a d y i n f o rm e d t h e a p p r o p r i a t e a u t h o r i t i e s , t h a t
i s , t h e n a t i o n a l p r o s e c u t o r and t h e T al c a h u a n o c r i m i n a l c o u r t < / Uni t> , o f t h i s
a t t a c k .
167
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe L. Extrait d’un document du corpus de test
168
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe M
Source s12 : dépêche de presse à l’origine
des événements Event1 et Event2
J a n u a r y 2 4 , 2010
Two U. S . S o l d i e r s Are Among 17 A fghan D e at h s
By ROD NORDLAND and SANGAR RAHIMI
KABUL, A f g h a n i s t a n − At l e a s t 17 p e o pl e di e d i n f o u r s e p a r a t e e p i s o d e s i n
A f g h a n i s t a n on S at u r d a y , w hil e a p o l i c e c h i e f was ki d n a p p e d and a p r o v i n c i a l
g o v e r n o r n a r r o wl y e s c a p e d a s s a s s i n a t i o n .
T h r e e women and a young boy we re k i l l e d when a t a x i crammed wit h a t l e a s t e i g h t
p a s s e n g e r s t r i e d t o r u n an i l l e g a l T a l i b a n c h e c k p o i n t i n P a k t i k a P r o vi n c e , i n
t h e e a s t , and t h e m i l i t a n t s r i d d l e d t h e c a r wit h b u l l e t s .
F o u r A fghan s o l d i e r s g u a r di n g t h e g o v e r n o r o f Wardak P r o vi n c e , j u s t w e st o f Kabul ,
we re k i l l e d when t h e T a l i b a n s e t o f f a hi d d e n bomb a s he t r a v e l e d t o a s c h o o l
b u i l d i n g i n s p e c t i o n ; t h e g o v e r n o r was unha rmed .
Two Ame rican s o l d i e r s we re k i l l e d by an i m p r o vi s e d e x p l o s i v e d e v i c e i n s o u t h e r n
A f g h a ni st a n , a c c o r d i n g t o a p r e s s r e l e a s e f rom t h e i n t e r n a t i o n a l m i l i t a r y
command h e r e .
And s e v e n A f g ha n s we re k i l l e d i n t h e r em ot e v i l l a g e o f Qulum B al a q i n F a r y a b
P r o vi n c e , i n n o r t h e r n A f g h a ni st a n , when t h e y t r i e d t o e x c a v a t e an ol d bomb
d r o p p e d by an a i r c r a f t many y e a r s ago , a c c o r d i n g t o a s t a t e m e n t f rom t h e
I n t e r i o r M i n i s t r y . One p e r s o n was wounded .
I n a d d i t i o n , t h e p o l i c e c h i e f o f S h e i g a l d i s t r i c t i n Kuna r P r o vi n c e , J a m a t u l l a h Khan
, and two o f h i s o f f i c e r s we re ki d n a p p e d w hil e p a t r o l l i n g j u s t a f t e r mi d ni g ht on
S a t u r d a y c l o s e t o t h e b o r d e r wit h P a k i s t a n . Gen . K h a l i l u l l a h Zia yee , t h e
p r o v i n c i a l p o l i c e c h i e f , s a i d t h e y we re a b d u ct e d " by t h e e n emi e s o f p e a c e and
s t a b i l i t y i n t h e c o u nt r y , " t h e g o v e r nm e nt ’ s c at c h−a l l t e rm f o r i n s u r g e n t s .
"We don ’ t ha ve any i n f o r m a t i o n a b o ut him y et , " G e n e r al Zi a y e e s ai d , s p e a ki n g o f t h e
p o l i c e c h i e f . He a d de d t h a t a s e a r c h was u n d e r way .
The T a l i b a n and common c r i m i n a l s o f t e n ki d n a p o f f i c i a l s f o r ransom .
169
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe M. Source s12 : dépêche de presse à l’origine des événements Event1 et Event2
The t a x i c a b s h o o t i n g o c c u r r e d a s t h e d r i v e r was t r y i n g t o t a k e h i s p a s s e n g e r s t o g e t
m e di c al c a r e a t a n e a r b y m i l i t a r y b a s e r u n by i n t e r n a t i o n a l f o r c e s . I n a d d i t i o n
t o t h e t h r e e women and a boy o f 5 o r 6 who we re k i l l e d , t h r e e o t h e r p a s s e n g e r s
we re wounded , a c c o r d i n g t o Mukhles Afghan , a spokesman f o r t h e p r o v i n c i a l
g o v e r n o r i n P a k t i k a .
The a t t e m p t e d a s s a s s i n a t i o n o f t h e g o v e r n o r o f Wardak , Mohammad Halim F e di y e e ,
o c c u r r e d d u r i n g a t r i p t h a t had bee n announced , l e a v i n g h i s convoy v u l n e r a b l e .
"We we re awa re o f t h e pl a n n e d a t t a c k and we had a l r e a d y d e f u s e d two bombs p l a n t e d on
o u r way , " s a i d S h a h e d ull a h Shahed , a spokesman f o r t h e g o v e r n o r who was
t r a v e l i n g wit h him .
He s a i d a T a l i b a n l o c a l commander named Ahmadullah and a n o t h e r f i g h t e r had p l a n t e d a
new bomb j u s t b e f o r e t h e convoy c r o s s e d a c u l v e r t , d e t o n a t i n g i t u n d e r t h e
f i r s t a rm o re d v e h i c l e i n t h e convoy . The b l a s t k i l l e d f o u r s o l d i e r s i n t h e
v e h i c l e .
Mr . Shahed s a i d o t h e r s o l d i e r s managed t o c a p t u r e t h e two T a l i b a n members a s t h e y
t r i e d t o f l e e . " T hi s t r i p was an a n n o u nce d t r i p , and e v e r y b o d y was w a i t i n g f o r
t h e g o v e r n o r t o h el p them s o l v e t h e i r p r o blem s , " Mr . Shahed s a i d . " H u n d re d s o f
t r i b a l e l d e r s and l o c a l p e o pl e we re w a i t i n g t o s e e t h e g o v e r n o r . "
An A fghan em pl o yee o f The New York Times i n K h o st P r o vi n c e c o n t r i b u t e d r e p o r t i n g .
170
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe N
Source s3 : dépêche de presse à l’origine de
l’événement Event3
F o u r ki d n a p p e d i n e a s t A f g h a n i s t a n
Sun Sep 2 6 , 2010 3: 7PM
M i l i t a n t s ha ve ki d n a p p e d a B r i t i s h woman al o n g wit h t h r e e l o c a l s i n e a s t e r n
A f g h a n i s t a n a s s e c u r i t y c o n t i n u e s t o d e t e r i o r a t e i n t h e war−r a v a g e d c o u n t r y .
Those a b d u ct e d i n t h e p r o v i n c e o f Kunar a r e r e p o r t e d l y em pl o y e e s o f an Ame rican
company .
L o c al o f f i c i a l s ha ve blamed t h e ki d n a p pi n g on t h e T a l i b a n b ut t h e m i l i t a n t s ha ve n ot
y e t cl aim e d r e s p o n s i b i l i t y .
Ki d n a p pi n g s ha ve r e c e n t l y bee n on t h e r i s e i n A f g h a n i s t a n a s t h e s e c u r i t y s i t u a t i o n
d e t e r i o r a t e s t o i t s w o r st l e v e l s s i n c e t h e 2001 US−l e d i n v a s i o n t h e r e .
The T a l i b a n ha ve a b d u ct e d o v e r a d oze n p e o pl e a c r o s s A f g h a n i s t a n d u r i n g t h e r e c e n t
p a r l i a m e n t a r y e l e c t i o n s .
T hi s i s w hil e some 1 5 0 , 0 0 0 US−l e d f o r e i g n t r o o p s a r e r e s p o n s i b l e f o r s e c u r i t y i n t h e
war−t o r n n a t i o n .
JR /AKM/MMN
171
Copyright c 2013 - CASSIDIAN - All rights reservedAnnexe N. Source s3 : dépêche de presse à l’origine de l’événement Event3
172
Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie
[Agrawal et al., 1993] Agrawal, R., Imielinski, T., and Swami, A. (1993). Mining association rules ´
between sets of items in large databases. In Proceedings of the 1993 ACM SIGMOD international
conference on Management of data, SIGMOD ’93, pages 207–216, New York. ACM. 97
[Ahn, 2006] Ahn, D. (2006). The stages of event extraction. Proceedings of the Workshop on Annotating
and Reasoning about Time and Events - ARTE ’06, pages 1–8. 27, 48
[Alatrish, 2012] Alatrish, E. S. (2012). Comparison of ontology editors. eRAF Journal on Computing,
4 :23–38. 25
[Allen, 1981] Allen, J. F. (1981). An interval-based representation of temporal knowledge. In Proceedings
of the 7th international joint conference on Artificial intelligence - Volume 1, pages 221–226,
San Francisco, CA, USA. Morgan Kaufmann Publishers Inc. 136
[Allen, 1983] Allen, J. F. (1983). Maintaining knowledge about temporal intervals. Commun. ACM,
26(11) :832–843. 33
[Allen, 1991] Allen, J. F. (1991). Time and time again : The many ways to represent time. Journal of
Intelligent Systems, 6(4) :341–355. 33
[Allen and Ferguson, 1994] Allen, J. F. and Ferguson, G. (1994). Actions and events in interval temporal
logic. Journal of Logic and Computation, 4 :531–579. 29
[Aone et al., 1998] Aone, C., Halverson, L., Hampton, T., and Ramos-Santacruz, M. (1998). SRA :
Description of the IE2 system used for MUC-7. In Proceedings Seventh Message Understanding
Conference (MUC-7), Fairfax, VA. 48
[Aone and Ramos-Santacruz, 2000] Aone, C. and Ramos-Santacruz, M. (2000). REES : A large-scale
relation and event extraction system. In ANLP, pages 76–83. 48
[Appelt, 1999] Appelt, D. E. (1999). Introduction to information extraction. AI Commun., 12(3) :161–
172. 56
[Appelt et al., 1995] Appelt, D. E., Hobbs, J. R., Bear, J., Israel, D., Kameyama, M., Martin, D., Myers,
K., and Tyson, M. (1995). SRI International FASTUS system : MUC-6 test results and analysis. In
Proceedings of the 6th conference on Message understanding, MUC6 ’95, pages 237–248, Stroudsburg,
PA, USA. Association for Computational Linguistics. 48
[Appelt and Onyshkevych, 1998] Appelt, D. E. and Onyshkevych, B. (1998). The common pattern specification
language. In Proceedings of a workshop on held at Baltimore, Maryland : October 13-15,
1998, TIPSTER ’98, pages 23–30, Stroudsburg, PA, USA. Association for Computational Linguistics.
44
173
Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie
[Augenstein et al., 2012] Augenstein, I., Padó, S., and Rudolph, S. (2012). Lodifier : generating linked
data from unstructured text. In Proceedings of the 9th international conference on The Semantic Web :
research and applications, ESWC’12, pages 210–224, Berlin, Heidelberg. Springer-Verlag. 65
[Bachmair and Ganzinger, 2001] Bachmair, L. and Ganzinger, H. (2001). Resolution theorem proving.
In Handbook of Automated Reasoning, pages 19–99. Elsevier and MIT Press. 22
[Bagga and Baldwin, 1999] Bagga, A. and Baldwin, B. (1999). Cross-document event coreference :
Annotations, experiments, and observations. In In Proc. ACL-99 Workshop on Coreference and Its
Applications, pages 1–8. 64, 66
[Balmisse, 2002] Balmisse, G. (2002). Gestion des connaissances. Outils et applications du knowledge
management. Vuibert. 18
[Baumgartner and Retschitzegger, 2006] Baumgartner, N. and Retschitzegger, W. (2006). A survey of
upper ontologies for situation awareness. Proc. of the 4th IASTED International Conference on Knowledge
Sharing and Collaborative Engineering, St. Thomas, US VI, pages 1–9+. 36
[Béchet et al., 2012] Béchet, N., Cellier, P., Charnois, T., and Crémilleux, B. (2012). Discovering linguistic
patterns using sequence mining. In CICLing (1), pages 154–165. 97, 98
[Benjelloun et al., 2006] Benjelloun, O., Garcia-Molina, H., Kawai, H., Larson, T. E., Menestrina, D.,
Su, Q., Thavisomboon, S., and Widom, J. (2006). Generic entity resolution in the serf project. IEEE
Data Eng. Bull., 29(2) :13–20. 63
[Berners-Lee et al., 2001] Berners-Lee, T., Hendler, J., and Lassila, O. (2001). The Semantic Web.
Scientific American, 284(5) :34–43. 19
[Besançon et al., 2010] Besançon, R., de Chalendar, G., Ferret, O., Gara, F., Mesnard, O., Laïb, M., and
Semmar, N. (2010). LIMA : A multilingual framework for linguistic analysis and linguistic resources
development and evaluation. In Chair), N. C. C., Choukri, K., Maegaard, B., Mariani, J., Odijk, J.,
Piperidis, S., Rosner, M., and Tapias, D., editors, Proceedings of the Seventh International Conference
on Language Resources and Evaluation (LREC’10), Valletta, Malta. European Language Resources
Association (ELRA). 49
[Besançon et al., 2011] Besançon, R., Ferret, O., and Jean-Louis, L. (2011). Construire et évaluer une
application de veille pour l’information sur les événements sismiques. In CORIA, pages 287–294. 53
[Best and Cumming, 2007] Best, R. and Cumming, A. (2007). Open source intelligence (osint) : Issues
for congress. Rl 34270, Congressional Research Service. 3
[Bhattacharya and Getoor, 2007] Bhattacharya, I. and Getoor, L. (2007). Collective entity resolution in
relational data. ACM Transactions on Knowledge Discovery from Data, 1(1) :5–es. 63
[Bilenko et al., 2003] Bilenko, M., Mooney, R. J., Cohen, W. W., Ravikumar, P., and Fienberg, S. E.
(2003). Adaptive name matching in information integration. IEEE Intelligent Systems, 18(5) :16–23.
65, 66
[Bloch, 2005] Bloch, I. (2005). Fusion d’informations numériques : panorama méthodologique. In
Journées Nationales de la Recherche en Robotique 2005, pages 79–88, Guidel, France. 62
[Bond et al., 2003] Bond, D., Bond, J., Oh, C., Jenkins, J. C., and Taylor, C. L. (2003). Integrated Data
for Events Analysis (IDEA) : An Event Typology for Automated Events Data Development. Journal
of Peace Research, 40(6) :733–745. 36
[Bontcheva et al., 2002] Bontcheva, K., Dimitrov, M., Maynard, D., Tablan, V., and Cunningham, H.
(2002). Shallow Methods for Named Entity Coreference Resolution. In TALN 2002. 46
174
Copyright c 2013 - CASSIDIAN - All rights reserved[Borsje et al., 2010] Borsje, J., Hogenboom, F., and Frasincar, F. (2010). Semi-automatic financial
events discovery based on lexico-semantic patterns. Int. J. Web Eng. Technol., 6(2) :115–140. 53
[Boury-Brisset, 2003] Boury-Brisset, A.-C. (2003). Ontological approach to military knowledge modeling
and management. In NATO RTO Information Systems Technology Symposium (RTO MP IST
040), Prague. 36
[Bowman et al., 2001] Bowman, M., Lopez, A. M., and Tecuci, G. (2001). Ontology development for
military applications. In Proceedings of the Thirty-ninth Annual ACM Southeast Conference. ACM
Press. 36
[Brill, 1992] Brill, E. (1992). A simple rule-based part of speech tagger. In Proceedings of the third
conference on Applied natural language processing, ANLC ’92, pages 152–155, Stroudsburg, PA,
USA. Association for Computational Linguistics. 86
[Bundschus et al., 2008] Bundschus, M., Dejori, M., Stetter, M., Tresp, V., and Kriegel, H.-P. (2008).
Extraction of semantic biomedical relations from text using conditional random fields. BMC Bioinformatics,
9(1) :1–14. 53
[Buscaldi, 2010] Buscaldi, D. (2010). Toponym Disambiguation in Information Retrieval. PhD thesis,
Universidad Politecnica de Valencia. 103
[Califf and Mooney, 2003] Califf, M. E. and Mooney, R. J. (2003). Bottom-Up Relational Learning of
Pattern Matching Rules for Information Extraction. J. Mach. Learn. Res., 4 :177–210. 43, 54
[Capet et al., 2011] Capet, P., Delavallade, T., Généreux, M., Poibeau, T., Sándor, Á., and Voyatzi,
S. (2011). Un système de détection de crise basé sur l’extraction automatique d’événements. In
et P. Hoogstoel, M. C., editor, Sémantique et multimodalité en analyse de l’information, pages 293–
313. Lavoisier. 42
[Capet et al., 2008] Capet, P., Delavallade, T., Nakamura, T., Sandor, A., Tarsitano, C., and Voyatzi, S.
(2008). A risk assessment system with automatic extraction of event types. In Shi, Z., MercierLaurent,
E., and Leake, D., editors, Intelligent Information Processing IV, volume 288 of IFIP – The
International Federation for Information Processing, pages 220–229. Springer US. 53
[Caron et al., 2012] Caron, C., Guillaumont, J., Saval, A., and Serrano, L. (2012). Weblab : une plateforme
collaborative dédiée à la capitalisation de connaissances. In Extraction et gestion des connaissances
(EGC’2012), Bordeaux, France. 77
[Casati and Varzi, 1997] Casati, R. and Varzi, A. (1997). Fifty years of events : an annotated bibliography
1947 to 1997. ❤tt♣✿✴✴✇✇✇✳♣❞❝♥❡t✳♦r❣✴♣❛❣❡s✴Pr♦❞✉❝ts✴❡❧❡❝tr♦♥✐❝✴❡✈❡♥ts❜✐❜✳❤t♠. 26
[Cellier and Charnois, 2010] Cellier, P. and Charnois, T. (2010). Fouille de données séquentielle d’itemsets
pour l’apprentissage de patrons linguistiques. In Traitement Automatique des Langues Naturelles
(short paper). 58
[Cellier et al., 2010] Cellier, P., Charnois, T., and Plantevit, M. (2010). Sequential patterns to discover
and characterise biological relations. In Gelbukh, A., editor, Computational Linguistics and Intelligent
Text Processing, volume 6008 of Lecture Notes in Computer Science, pages 537–548. Springer Berlin
Heidelberg. 47
[Ceri et al., 1989] Ceri, S., Gottlob, G., and Tanca, L. (1989). What you always wanted to know about
datalog (and never dared to ask). IEEE Transactions on Knowledge and Data Engineering, 1(1) :146–
166. 44
[Charlet et al., 2004] Charlet, J., Bachimont, B., and Troncy, R. (2004). Ontologies pour le Web sémantique.
In Revue I3, numéro Hors Série «Web sémantique». Cépaduès. 21, 25
175
Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie
[Charlot and Lancini, 2002] Charlot, J.-M. and Lancini, A. (2002). De la connaissance aux systèmes
d’information supports. In Rowe, F., editor, Faire de la recherche en systèmes d’information, pages
139–145. Vuibert FNEGE. 18
[Charnois et al., 2009] Charnois, T., Plantevit, M., Rigotti, C., and Cremilleux, B. (2009). Fouille de
données séquentielles pour l’extraction d’information dans les textes. Revue Traitement Automatique
des Langues (TAL), 50(3) :59–87. 45
[Charton et al., 2011] Charton, E., Gagnon, M., and Ozell, B. (2011). Génération automatique de motifs
de détection d’entités nommées en utilisant des contenus encyclopédiques. In 18e Conférence sur
le Traitement Automatique des Langues Naturelles (TALN 2011), Montpellier. Association pour le
Traitement Automatique des Langues (ATALA). 45
[Chasin, 2010] Chasin, R. (2010). Event and temporal information extraction towards timelines of wikipedia
articles. In UCCS REU 2010, pages 1–9. Massachusetts Institute of Technology. 54
[Chau and Xu, 2012] Chau, M. and Xu, J. (2012). Business intelligence in blogs : understanding consumer
interactions and communities. MIS Q., 36(4) :1189–1216. 53
[Chau et al., 2002] Chau, M., Xu, J. J., and Chen, H. (2002). Extracting meaningful entities from police
narrative reports. In Proceedings of the 2002 annual national conference on Digital government
research, dg.o ’02, pages 1–5. Digital Government Society of North America. 54
[Chaudet, 2004] Chaudet, H. (2004). Steel : A spatio-temporal extended event language for tracking
epidemic spread from outbreak reports. In In U. Hahn (Ed.), Proceedings of KR-MED 2004, First
International Workshop on Formal Biomedical Knowledge Representation. 53
[Chen and Ji, 2009] Chen, Z. and Ji, H. (2009). Graph-based event coreference resolution. In Proceedings
of the 2009 Workshop on Graph-based Methods for Natural Language Processing, TextGraphs-
4, pages 54–57, Stroudsburg, PA, USA. Association for Computational Linguistics. 66, 67
[Chieu, 2003] Chieu, H. L. (2003). Closing the gap : Learning-based information extraction rivaling
knowledge-engineering methods. In In Proceedings of the 41st Annual Meeting of the Association for
Computational Linguistics, pages 216–223. 48
[Chisholm, 1970] Chisholm, R. (1970). Events and propositions. Noûs, 4(1) :15–24. 26
[Chiticariu et al., 2010] Chiticariu, L., Krishnamurthy, R., Li, Y., Reiss, F., and Vaithyanathan, S. (2010).
Domain adaptation of rule-based annotators for named-entity recognition tasks. In In EMNLP (To
appear. 58
[Cholvy, 2007] Cholvy, L. (2007). Modelling information evaluation in fusion. In FUSION, pages 1–6.
136
[Ciravegna, 2001] Ciravegna, F. (2001). Adaptive information extraction from text by rule induction and
generalisation. In Proceedings of the 17th international joint conference on Artificial intelligence -
Volume 2, IJCAI’01, pages 1251–1256, San Francisco, CA, USA. Morgan Kaufmann Publishers Inc.
45, 54
[Crié, 2003] Crié, D. (2003). De l’extraction des connaissances au Knowledge Management. Revue
française de gestion, 29(146) :59–79. 18
[Cucerzan, 2007] Cucerzan, S. (2007). Large-scale named entity disambiguation based on Wikipedia
data. In Proceedings of the 2007 Joint Conference on Empirical Methods in Natural Language Processing
and Computational Natural Language Learning (EMNLP-CoNLL), pages 708–716, Prague,
Czech Republic. Association for Computational Linguistics. 105
176
Copyright c 2013 - CASSIDIAN - All rights reserved[Culotta et al., 2006] Culotta, A., Kristjansson, T., McCallum, A., and Viola, P. (2006). Corrective feedback
and persistent learning for information extraction. Artificial Intelligence, 170(14–15) :1101 –
1122. 58
[Cunningham et al., 2002] Cunningham, H., Maynard, D., Bontcheva, K., and Tablan, V. (2002). GATE :
A framework and graphical development environment for robust nlp tools and applications. In Proceedings
of the 40th Annual Meeting of the Association for Computational Linguistics, Philadelphia,
PA, USA. 51, 84
[Cunningham et al., 2000] Cunningham, H., Maynard, D., and Tablan, V. (2000). JAPE : a Java Annotation
Patterns Engine (Second Edition). Technical Report Technical Report CS–00–10, of Sheffield,
Department of Computer Science. 44
[Daille et al., 2000] Daille, B., Fourour, N., and Morin, E. (2000). Catégorisation des noms propres :
une étude en corpus. In Cahiers de Grammaire - Sémantique et Corpus, volume 25, pages 115–129.
Université de Toulouse-le-Mirail. 43
[Daumé et al., 2010] Daumé, III, H., Kumar, A., and Saha, A. (2010). Frustratingly easy semisupervised
domain adaptation. In Proceedings of the 2010 Workshop on Domain Adaptation for
Natural Language Processing, DANLP 2010, pages 53–59, Stroudsburg, PA, USA. Association for
Computational Linguistics. 58
[Davidson, 1967] Davidson, D. (1967). The logical form of action sentences. In Rescher, N., editor, The
Logic of Decision and Action. University of Pittsburgh Press, Pittsburgh. 26
[Davidson, 1969] Davidson, D. (1969). The individuation of events. In Rescher, N., editor, Essays in
honor of Carl G. Hempel, pages 216–234. D. Reidel, Dordrecht. reprinted in Davidson, Essays on
Actions and Events. 27
[De Marneffe and Manning, 2008] De Marneffe, M.-C. and Manning, C. D. (2008). Stanford typed
dependencies manual. Technical report, Stanford University. 95
[Desclés, 1990] Desclés, J.-P. (1990). "State, event, process, and topology". General Linguistics,
29(3) :159–200. 26
[Desodt-Lebrun, 1996] Desodt-Lebrun, A.-M. (1996). Fusion de données. In Techniques de l’ingénieur
Automatique avancée, number 12 in 96, pages 1–9. Editions Techniques de l’Ingénieur. 62
[Dey et al., 1998] Dey, D., Sarkar, S., and De, P. (1998). A probabilistic decision model for entity matching
in heterogeneous databases. Management Science, 44(10) :1379–1395. 63
[Dong and Pei, 2007] Dong, G. and Pei, J. (2007). Sequence Data Mining, volume 33 of Advances in
Database Systems. Kluwer. 99
[Dong et al., 2005] Dong, X., Halevy, A., and Madhavan, J. (2005). Reference reconciliation in complex
information spaces. Proceedings of the 2005 ACM SIGMOD international conference on Management
of data - SIGMOD ’05, page 85. 63
[Dredze et al., 2010] Dredze, M., McNamee, P., Rao, D., Gerber, A., and Finin, T. (2010). Entity disambiguation
for knowledge base population. In Proceedings of the 23rd International Conference
on Computational Linguistics, COLING ’10, pages 277–285, Stroudsburg, PA, USA. Association for
Computational Linguistics. 64, 65
[Drozdzynski et al., 2004] Drozdzynski, W., Krieger, H.-U., Piskorski, J., Schäfer, U., and Xu, F. (2004).
Shallow processing with unification and typed feature structures — foundations and applications.
Künstliche Intelligenz, 1 :17–23. 49
177
Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie
[Elmagarmid et al., 2007] Elmagarmid, A. K., Ipeirotis, P. G., and Verykios, V. S. (2007). Duplicate
record detection : A survey. IEEE Trans. on Knowl. and Data Eng., 19(1) :1–16. 63, 65, 66
[Enjalbert, 2008] Enjalbert, P. (2008). « Préface ». In Plate-formes pour le traitement automatique des
langues, volume 49 of Revue interntaionale Traitement Automatique des Langues, chapter 2, pages
7–10. ATALA. 50
[Etzioni et al., 2005] Etzioni, O., Cafarella, M., Downey, D., Popescu, A.-M., Shaked, T., Soderland,
S., Weld, D. S., and Yates, A. (2005). Unsupervised named-entity extraction from the web : An
experimental study. Artif. Intell., 165(1) :91–134. 43
[Fellegi and Sunter, 1969] Fellegi, I. P. and Sunter, A. B. (1969). A theory for record linkage. Journal
of the American Statistical Association, 64 :1183–1210. 63
[Fensel et al., 2001] Fensel, D., van Harmelen, F., Horrocks, I., McGuinness, D. L., and Patel-Schneider,
P. F. (2001). OIL : An ontology infrastructure for the semantic web. IEEE Intelligent Systems,
16(2) :38–45. 22
[Ferré, 2007] Ferré, S. (2007). CAMELIS : Organizing and Browsing a Personal Photo Collection with
a Logical Information System. In Diatta, J., Eklund, P., and Liquière, M., editors, Int. Conf. Concept
Lattices and Their Applications, volume 331, pages 112–123, Montpellier, France. 98, 99
[Fialho et al., 2010] Fialho, A., Troncy, R., Hardman, L., Saathoff, C., and Scherp, A. (2010). What’s
on this evening ? Designing user support for event-based annotation and exploration of media. In
EVENTS 2010, 1st International Workshop on EVENTS - Recognising and tracking events on the
Web and in real life, May 4, 2010, Athens, Greece, Athens, GRÈCE. 29
[Finin et al., 2009] Finin, T., Syed, Z., Mayfield, J., McNamee, P., and Piatko, C. (2009). Using Wikitology
for Cross-Document Entity Coreference Resolution. In Proceedings of the AAAI Spring
Symposium on Learning by Reading and Learning to Read. AAAI Press. 46, 109
[Fisher et al., 2005] Fisher, M., Gabbay, D., and Vila, L. (2005). Handbook of Temporal Reasoning in
Artificial Intelligence. Foundations of Artificial Intelligence. Elsevier Science. 76
[Fleischman and Hovy, 2002] Fleischman, M. and Hovy, E. (2002). Fine grained classification of named
entities. Proceedings of the 19th international conference on Computational linguistics -, 1 :1–7. 58
[Fourour, 2002] Fourour, N. (2002). Nemesis, un système de reconnaissance incrémentielle des entités
nommées pour le français. Actes de la 9ème Conférence Nationale sur le Traitement Automatique des
Langues Naturelles (TALN 2001), 1 :265–274. 45
[François et al., 2007] François, J., Le Pesant, D., and Leeman, D. (2007). Présentation de la classification
des verbes français de jean dubois et françoise dubois-charlier. Langue Française, 153(153) :3–
32. 96
[Friburger, 2006] Friburger, N. (2006). « Linguistique et reconnaissance automatique des noms propres
». Meta : journal des traducteurs / Meta : Translators’ Journal, 51(4) :637–650. 44
[Fundel et al., 2007] Fundel, K., Küffner, R., Zimmer, R., and Miyano, S. (2007). Relex–relation extraction
using dependency parse trees. Bioinformatics, 23. 46
[Garbin and Mani, 2005] Garbin, E. and Mani, I. (2005). Disambiguating toponyms in news. In Proceedings
of the conference on Human Language Technology and Empirical Methods in Natural Language
Processing. 103
[Genesereth, 1991] Genesereth, M. R. (1991). Knowledge interchange format. In KR, pages 599–600.
22
178
Copyright c 2013 - CASSIDIAN - All rights reserved[Giroux et al., 2008] Giroux, P., Brunessaux, S., Brunessaux, S., Doucy, J., Dupont, G., Grilheres, B.,
Mombrun, Y., and Saval, A. (2008). Weblab : An integration infrastructure to ease the development
of multimedia processing applications. ICSSEA. 6
[Goujon, 2002] Goujon, B. (2002). Annotation d’événements dans les textes pour la veille stratégique.
Event (London). 53
[Grishman et al., 2002a] Grishman, R., Huttunen, S., and Yangarber, R. (2002a). Information extraction
for enhanced access to disease outbreak reports. Journal of biomedical informatics, 35(4) :236–46.
53
[Grishman et al., 2002b] Grishman, R., Huttunen, S., and Yangarber, R. (2002b). Real-time event extraction
for infectious disease outbreaks. Proceedings of the second international conference on Human
Language Technology Research -, pages 366–369. 48
[Grishman and Sundheim, 1996] Grishman, R. and Sundheim, B. (1996). Message understanding
conference-6 : a brief history. In Proceedings of the 16th conference on Computational linguistics
- Volume 1, pages 466–471, Morristown, NJ, USA. Association for Computational Linguistics. 41
[Gruber, 1993] Gruber, T. R. (1993). A translation approach to portable ontology specifications. Knowl.
Acquis., 5(2) :199–220. 21
[Guarino, 1998] Guarino, N. (1998). Formal ontology and information systems. In Proceedings of
Formal Ontology in Information System, pages 3–15. IOS Press. 22
[Haase et al., 2008] Haase, P., Lewen, H., Studer, R., Tran, D. T., Erdmann, M., d’Aquin, M., and Motta,
E. (2008). The NeOn Ontology Engineering Toolkit. In WWW 2008 Developers Track. 25
[Habib and van Keulen, 2011] Habib, M. B. and van Keulen, M. (2011). Improving named entity disambiguation
by iteratively enhancing certainty of extraction. Technical Report TR-CTIT-11-29, Centre
for Telematics and Information Technology University of Twente, Enschede. 136
[Hall et al., 2009] Hall, M., Frank, E., Holmes, G., Pfahringer, B., Reutemann, P., and Witten, I. H.
(2009). The WEKA data mining software : an update. SIGKDD Explor. Newsl., 11(1) :10–18. 51
[Hasegawa et al., 2004] Hasegawa, T., Sekine, S., and Grishman, R. (2004). Discovering relations
among named entities from large corpora. In Proceedings of the 42nd Annual Meeting on Association
for Computational Linguistics, ACL ’04, Stroudsburg, PA, USA. Association for Computational
Linguistics. 47
[Hayes, 1995] Hayes, P. (1995). A catalog of temporal theories. Technical report, University of Illinois.
Tech report UIUC-BI-AI-96-01. 33
[Hecking, 2003] Hecking, M. (2003). Information extraction from battlefield reports. Proceedings of
the 8thInternational Command and Control Research and Technology Symposium (ICCRTS). 53
[Higginbotham et al., 2000] Higginbotham, J., Pianesi, F., and Varzi, A. (2000). Speaking of Events.
Oxford University Press. 26
[Hobbs et al., 1997] Hobbs, J. R., Appelt, D. E., Bear, J., Israel, D. J., Kameyama, M., Stickel, M. E.,
and Tyson, M. (1997). FASTUS : A Cascaded Finite-State Transducer for Extracting Information
from Natural-Language Text. CoRR, cmp-lg/9705013. 44
[Hobbs and Riloff, 2010] Hobbs, J. R. and Riloff, E. (2010). Information extraction. In Handbook of
Natural Language Processing, Second Edition. CRC Press, Taylor and Francis Group, Boca Raton,
FL. 40, 43
179
Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie
[Hogenboom et al., 2011] Hogenboom, F., Frasincar, F., Kaymak, U., and de Jong, F. (2011). An Overview
of Event Extraction from Text. In van Erp, M., van Hage, W. R., Hollink, L., Jameson, A., and
Troncy, R., editors, Workshop on Detection, Representation, and Exploitation of Events in the Semantic
Web (DeRiVE 2011) at Tenth International Semantic Web Conference (ISWC 2011), volume 779
of CEUR Workshop Proceedings, pages 48–57. CEUR-WS.org. 42, 56
[Horrocks, 2002] Horrocks, I. (2002). daml+oil : a description logic for the semantic web. IEEE Data
Engineering Bulletin, 25 :4–9. 22
[Huffman, 1995] Huffman, S. (1995). Learning information extraction patterns from examples. In
Connectionist, Statistical, and Symbolic Approaches to Learning for Natural Language Processing,
pages 246–260. Springer. 49
[Humphreys et al., 1997] Humphreys, K., Gaizauskas, R., and Azzam, S. (1997). Event coreference for
information extraction. In Proceedings of the ACL-97 Workshop on Operational Factors in Practical,
Robust Anaphora Resolution for Unrestricted Texts, Madrid, Spain. 66
[Inyaem et al., 2010a] Inyaem, U., Haruechaiyasak, C., Meesad, P., and Tran, D. (2010a). Terrorism
event classification using fuzzy inference systems. CoRR, abs/1004.1772. 53
[Inyaem et al., 2010b] Inyaem, U., Meesad, P., Haruechaiyasak, C., and Tran, D. (2010b). Construction
of fuzzy ontology-based terrorism event extraction. In WKDD, pages 391–394. IEEE Computer
Society. 36
[Ireson et al., 2005] Ireson, N., Ciravegna, F., Califf, M. E., Freitag, D., Kushmerick, N., and Lavelli,
A. (2005). Evaluating machine learning for information extraction. In Proceedings of the 22nd
international conference on Machine learning, ICML ’05, pages 345–352, New York, NY, USA.
ACM. 43
[Isozaki and Kazawa, 2002] Isozaki, H. and Kazawa, H. (2002). Efficient support vector classifiers for
named entity recognition. In In Proceedings of the 19th International Conference on Computational
Linguistics (COLING’02, pages 390–396. 45
[Ittoo et al., 2006] Ittoo, A., Zhang, Y., and Jiao, J. (2006). A text mining-based recommendation system
for customer decision making in online product customization. In Management of Innovation and
Technology, 2006 IEEE International Conference on, volume 1, pages 473–477. 54
[Jansche and Abney, 2002] Jansche, M. and Abney, S. P. (2002). Information extraction from voicemail
transcripts. In In Proc. Conference on Empirical Methods in NLP. 53
[Jarrar and Meersman, 2009] Jarrar, M. and Meersman, R. (2009). Ontology engineering — the
DOGMA approach. In Dillon, T. S., Chang, E., Meersman, R., and Sycara, K., editors, Advances
in Web Semantics I, pages 7–34. Springer-Verlag, Berlin, Heidelberg. 22
[Jason et al., 2004] Jason, R. S., Crawford, J., Kephart, J., and Leiba, B. (2004). Spamguru : An enterprise
anti-spam filtering system. In In Proceedings of the First Conference on E-mail and Anti-Spam,
page 2004. 54
[Jean-Louis et al., 2012] Jean-Louis, L., Romaric, B., and Ferret, O. (2012). Une méthode d’extraction
d’information fondée sur les graphes pour le remplissage de formulaires. In Actes de la 19e conférence
sur le Traitement Automatique des Langues Naturelles (TALN’2012), pages 29–42, Grenoble, France.
49
[Ji, 2010] Ji, H. (2010). Challenges from information extraction to information fusion. In Proceedings
of the 23rd International Conference on Computational Linguistics : Posters, COLING ’10, pages
507–515, Stroudsburg, PA, USA. Association for Computational Linguistics. 62
180
Copyright c 2013 - CASSIDIAN - All rights reserved[Ji et al., 2009] Ji, H., Grishman, R., Chen, Z., and Gupta, P. (2009). Cross-document Event Extraction
and Tracking : Task, Evaluation, Techniques and Challenges. Society, pages 166–172. 64
[Jonasson, 1994] Jonasson, K. (1994). Le Nom Propre, Constructions et interprétations. Champs linguistiques.
Duculot. 44
[Khrouf and Troncy, 2012] Khrouf, H. and Troncy, R. (2012). Réconcilier les événements dans le web
de données. In Actes de IC2011, pages 723–738, Chambéry, France. 66, 67
[Kifer et al., 1995] Kifer, M., Lausen, G., and Wu, J. (1995). Logical foundations of object-oriented and
frame-based languages. J. ACM, 42(4) :741–843. 22
[Kim, 1973] Kim, J. (1973). Causation, nomic subsumption, and the concept of event. Journal of
Philosophy, 70(8) :217–236. 26
[Krieg-Planque, 2009] Krieg-Planque, A. (2009). A propos des noms propres d’événement, volume 11,
pages 77–90. Les carnets du Cediscor. 27
[Kripke, 1980] Kripke, S. (1980). Naming and Necessity. Harvard University Press. 41
[Ladkin, 1987] Ladkin, P. (1987). The logic of time representation. phdphd, University of California,
Berkeley. 33, 76
[Lafferty et al., 2001] Lafferty, J. D., McCallum, A., and Pereira, F. C. N. (2001). Conditional random
fields : Probabilistic models for segmenting and labeling sequence data. In Proceedings of the Eighteenth
International Conference on Machine Learning, ICML ’01, pages 282–289, San Francisco,
CA, USA. Morgan Kaufmann Publishers Inc. 45
[LaFree and Dugan, 2007] LaFree, G. and Dugan, L. (2007). Introducing the Global Terrorism Database.
Terrorism and Political Violence, 19(2) :181–204. 123
[Largeron et al., 2009] Largeron, C., Kaddour, B., and Fernandez, M. (2009). Softjaccard : une mesure
de similarité entre ensembles de chaînes de caratères pour l’unification d’entités nommées. In Ganascia,
J.-G. and Gançarski, P., editors, EGC, volume RNTI-E-15 of Revue des Nouvelles Technologies
de l’Information, pages 443–444. Cépaduès-Éditions. 112
[Lavelli et al., 2004] Lavelli, A., Califf, M. E., Ciravegna, F., Freitag, D., Giuliano, C., Kushmerick, N.,
and Romano, L. (2004). IE evaluation : Criticisms and recommendations. In In AAAI-2004 Workshop
on Adaptive Text Extraction and Mining. 58
[Lawrence et al., 1999] Lawrence, S., Giles, C. L., and Bollacker, K. (1999). Digital libraries and autonomous
citation indexing. IEEE COMPUTER, 32(6) :67–71. 54
[LDC, 2005] LDC, L. D. C. (2005). ACE (Automatic Content Extraction) : English annotation guidelines
for events, version 5.4.3 2005.07.01 edition edition. 28
[Lee et al., 2012] Lee, H., Recasens, M., Chang, A., Surdeanu, M., and Jurafsky, D. (2012). Joint entity
and event coreference resolution across documents. In Proceedings of the 2012 Joint Conference
on Empirical Methods in Natural Language Processing and Computational Natural Language Learning,
EMNLP-CoNLL ’12, pages 489–500, Stroudsburg, PA, USA. Association for Computational
Linguistics. 66
[Lejeune et al., 2010] Lejeune, G., Doucet, A., Yangarber, R., and Lucas, N. (2010). Filtering news for
epidemic surveillance : towards processing more languages with fewer resources. In CLIA/COLING,
pages 3–10. 53
[Ligeza and Bouzid, 2008] Ligeza, A. and Bouzid, M. (2008). Temporal specifications with xtus. a hierarchical
algebraic approach. In Cotta, C., Reich, S., Schaefer, R., and Lig˛eza, A., editors, KnowledgeDriven
Computing, volume 102 of Studies in Computational Intelligence, pages 133–148. Springer
Berlin / Heidelberg. 76
181
Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie
[Liu et al., 2008] Liu, M., Liu, Y., Xiang, L., Chen, X., and Yang, Q. (2008). Extracting key entities and
significant events from online daily news. In IDEAL, pages 201–209. 53
[Llorens Martínez, 2011] Llorens Martínez, H. (2011). A semantic approach to temporal information
processing. PhD thesis, Universidad de Alicante. 103
[Lofi et al., 2012] Lofi, C., Selke, J., and Balke, W.-T. (2012). Information extraction meets crowdsourcing
: A promising couple. Datenbank-Spektrum, 12(2) :109–120. 58
[Luberg et al., 2012] Luberg, A., Järv, P., and Tammet, T. (2012). Information extraction for a tourist recommender
system. In Fuchs, M., Ricci, F., and Cantoni, L., editors, Information and Communication
Technologies in Tourism 2012, pages 332–343. Springer Vienna. 54
[Mann and Yarowsky, 2003] Mann, G. S. and Yarowsky, D. (2003). Unsupervised personal name disambiguation.
In Proceedings of the Seventh Conference on Natural Language Learning at HLT-NAACL
2003 - Volume 4, CONLL ’03, pages 33–40, Stroudsburg, PA, USA. Association for Computational
Linguistics. 105
[Mannes and Golbeck, 2005] Mannes, A. and Golbeck, J. (2005). Building a terrorism ontology. In
ISWC Workshop on Ontology Patterns for the Semantic Web. 36
[Maurel et al., 2011] Maurel, D., Friburger, N., Antoine, J.-Y., Eshkol, I., and Nouvel, D. (2011). Cascades
de transducteurs autour de la reconnaissance des entités nommées. Traitement Automatique des
Langues, 52(1) :69–96. 44
[McCallum, 2005] McCallum, A. (2005). Information extraction : Distilling structured data from unstructured
text. Queue, 3(9) :48–57. 51
[McDermott, 1982] McDermott, D. (1982). A temporal logic for reasoning about processes and plans*.
Cognitive Science, 6(2) :101–155. 33
[McDonald, 1996] McDonald, D. D. (1996). Internal and external evidence in the identification and
semantic categorization of proper names. In Boguraev, B. and Pustejovsky, J., editors, Corpus processing
for lexical acquisition, pages 21–39. MIT Press, Cambridge, MA, USA. 44
[Mihalcea and Csomai, 2007] Mihalcea, R. and Csomai, A. (2007). Wikify ! : linking documents to encyclopedic
knowledge. In Proceedings of the sixteenth ACM conference on Conference on information
and knowledge management, CIKM ’07, pages 233–242, New York, NY, USA. ACM. 58
[Mikheev, 1999] Mikheev, A. (1999). A knowledge-free method for capitalized word disambiguation.
Proceedings of the 37th annual meeting of the Association for Computational Linguistics on Computational
Linguistics -, pages 159–166. 89
[Mikheev et al., 1999] Mikheev, A., Moens, M., and Grover, C. (1999). Named entity recognition without
gazetteers. In Proceedings of the ninth conference on European chapter of the Association for
Computational Linguistics, EACL’99, pages 1–8, Stroudsburg, PA, USA. Association for Computational
Linguistics. 45
[Milne and Witten, 2008] Milne, D. and Witten, I. H. (2008). Learning to link with wikipedia. In
Proceedings of the 17th ACM conference on Information and knowledge management, CIKM ’08,
pages 509–518, New York, NY, USA. ACM. 58, 65
[Minard, 2008] Minard, A.-L. (2008). Etat de l’art des ontologies d’objets géographiques. Master’s
thesis, Laboratoire COGIT (IGN). 35
[Mintz et al., 2009] Mintz, M., Bills, S., Snow, R., and Jurafsky, D. (2009). Distant supervision for
relation extraction without labeled data. In Proceedings of the Joint Conference of the 47th Annual
182
Copyright c 2013 - CASSIDIAN - All rights reservedMeeting of the ACL and the 4th International Joint Conference on Natural Language Processing of
the AFNLP : Volume 2 - Volume 2, ACL ’09, pages 1003–1011, Stroudsburg, PA, USA. Association
for Computational Linguistics. 47
[Mizoguchi, 2003a] Mizoguchi, R. (2003a). Tutorial on ontological engineering : Part 1 : Introduction
to ontological engineering. New Generation Comput., 21(4) :365–384. 22, 78
[Mizoguchi, 2003b] Mizoguchi, R. (2003b). Tutorial on ontological engineering : Part 2 : Ontology
development, tools and languages. New Generation Comput., 22(1) :61–96. 22
[Montague, 1969] Montague, R. (1969). On the nature of certain philosophical entities. The Monist,
53(2) :159–194. 26
[Moreau et al., 2008] Moreau, E., Yvon, F., and Cappé, O. (2008). Robust similarity measures for named
entities matching. In Proceedings of the 22nd International Conference on Computational Linguistics
- Volume 1, COLING ’08, pages 593–600, Stroudsburg, PA, USA. Association for Computational
Linguistics. 66
[Muller and Tannier, 2004] Muller, P. and Tannier, X. (2004). Annotating and measuring temporal relations
in texts. In Coling 2004 , Genève,, pages 50–56. Association for Computational Linguistics.
46
[Muslea, 1999] Muslea, I. (1999). Extraction Patterns for Information Extraction Tasks : A Survey.
Proc. AAAI-99 Workshop Machine Learning for Information Extraction, pages 1–6. 43
[Nadeau and Sekine, 2007] Nadeau, D. and Sekine, S. (2007). A survey of named entity recognition
and classification. Linguisticae Investigationes, 30(1) :3–26. Publisher : John Benjamins Publishing
Company. 41, 43, 44, 58
[Nakamura-Delloye and Villemonte De La Clergerie, 2010] Nakamura-Delloye, Y. and Villemonte De
La Clergerie, É. (2010). Exploitation de résultats d’analyse syntaxique pour extraction semisupervisée
des chemins de relations. In TALN 2010, page taln2010_submission_164, Montréal, Canada.
46
[NATO, 2001] NATO (2001). The NATO Military Intelligence Data Exchange Standard AINTP-3(A).
Technical report, NATO. 36
[NATO, 2007] NATO (2007). Joint c3 information exchange data model - jc3iedm. Technical report,
NATO. 36
[Naughton et al., 2006] Naughton, M., Kushmerick, N., and Carthy, J. (2006). Event extraction from
heterogeneous news sources. In Proc. Workshop Event Extraction and Synthesis. American Nat.
Conf. Artificial Intelligence. 41, 66
[Neches et al., 1991] Neches, R., Fikes, R., Finin, T., Gruber, T., Patil, R., Senator, T., and Swartout,
W. R. (1991). Enabling technology for knowledge sharing. AI Mag., 12(3) :36–56. 21
[Neveu and Quéré, 1996] Neveu, E. and Quéré, L. (1996). Le temps de l’événement I, chapter Présentation,
pages 7–21. Number 75 in Réseaux. CNET. 27, 75
[Newcombe et al., 1959] Newcombe, H. B., Kennedy, J. M., Axford, S. J., and James, A. P. (1959).
Automatic Linkage of Vital Records. Science, 130(3381) :954–959. 63
[Nishihara et al., 2009] Nishihara, Y., Sato, K., and Sunayama, W. (2009). Event extraction and visualization
for obtaining personal experiences from blogs. In Proceedings of the Symposium on Human
Interface 2009 on Human Interface and the Management of Information. Information and Interaction.
Part II : Held as part of HCI International 2009, pages 315–324, Berlin, Heidelberg. Springer-Verlag.
54
183
Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie
[NIST, 2005] NIST (2005). The ACE 2005 (ACE05) Evaluation Plan. 28
[Noël, 2008] Noël, L. (2008). From semantic web data to inform-action : a means to an end. Workshop
SWUI (Semantic Web User Interaction), CHI 2008, 5-10 Avril, 2008, Florence, Italie. 136
[Noy and Mcguinness, 2001] Noy, N. F. and Mcguinness, D. L. (2001). Ontology Development 101 : A
Guide to Creating Your First Ontology. Technical Report KSL-01-05, Stanford Knowledge Systems
Laboratory. 22, 78, 79
[Padró and Stanilovsky, 2012] Padró, L. and Stanilovsky, E. (2012). Freeling 3.0 : Towards wider multilinguality.
In Proceedings of the Language Resources and Evaluation Conference (LREC 2012),
Istanbul, Turkey. ELRA. 51
[Paquet, 2008] Paquet, P. (2008). De l’information à la connaissance. In Information et communication
et management dans l’entreprise : quels enjeux ?, pages 17–48. Harmattan. 18
[Paumier, 2003] Paumier, S. (2003). A Time-Efficient Token Representation for Parsers. In Proceedings
of the EACL Workshop on Finite-State Methods in Natural Language Processing, pages 83–90,
Budapest. 52
[Pauna and Guillemin-Lanne, 2010] Pauna, R. and Guillemin-Lanne, S. (2010). Comment le text mining
peut-il aider à gérer le risque militaire et stratégique ? Text. 53
[Piskorski and Atkinson, 2011] Piskorski, J. and Atkinson, M. (2011). Frontex real-time news event extraction
framework. In Proceedings of the 17th ACM SIGKDD international conference on Knowledge
discovery and data mining, KDD ’11, pages 749–752, New York, NY, USA. ACM. 53
[Piskorski et al., 2007] Piskorski, J., Tanev, H., and Wennerberg, P. O. (2007). Extracting violent events
from on-line news for ontology population. In Proceedings of the 10th international conference on
Business information systems, BIS’07, pages 287–300, Berlin, Heidelberg. Springer-Verlag. 54
[Piskorski and Yangarber, 2013] Piskorski, J. and Yangarber, R. (2013). Information extraction : Past,
present and future. In Poibeau, T., Saggion, H., Piskorski, J., and Yangarber, R., editors, Multi-source,
Multilingual Information Extraction and Summarization, Theory and Applications of Natural Language
Processing, pages 23–49. Springer Berlin Heidelberg. 57
[Poibeau, 2003] Poibeau, T. (2003). Extraction automatique d’information : Du texte brut au web sé-
mantique. Lavoisier. 40
[Polanyi, 1966] Polanyi, M. (1966). The tacit dimension. Routledge and Keagan Paul. 18
[Popescu et al., 2011] Popescu, A.-M., Pennacchiotti, M., and Paranjpe, D. (2011). Extracting events
and event descriptions from Twitter. In Proceedings of the 20th international conference companion
on World wide web, WWW ’11, pages 105–106, New York, NY, USA. ACM. 54
[Pustejovsky et al., 2003] Pustejovsky, J., Castaño, J. M., Ingria, R., Sauri, R., Gaizauskas, R. J., Setzer,
A., Katz, G., and R., R. D. (2003). TimeML : Robust specification of event and temporal expressions
in text. In New Directions in Question Answering’03, pages 28–34. 27
[Quine, 1985] Quine, W. V. (1985). Events and reification. In Actions and Events : Perspectives on the
Philosophy of Davidson, pages 162–71. Blackwell. 66
[Quine, 1960] Quine, W. V. O. (1960). Word and Object. MIT Press paperback series. Technology Press
of the Massachusetts Inst. of Technology. 26
[Radev et al., 2001] Radev, D. R., Blair-Goldensohn, S., Zhang, Z., and Raghavan, R. S. (2001). Interactive,
domain-independent identification and summarization of topically related news articles. In
Proceedings of the 5th European Conference on Research and Advanced Technology for Digital Libraries,
ECDL ’01, pages 225–238, London, UK, UK. Springer-Verlag. 54
184
Copyright c 2013 - CASSIDIAN - All rights reserved[Raimond et al., 2007] Raimond, Y., Abdallah, S. A., Sandler, M. B., and Giasson, F. (2007). The music
ontology. In ISMIR, pages 417–422. 28
[Randell et al., 1992] Randell, D. A., Cui, Z., and Cohn, A. G. (1992). A spatial logic based on regions
and connection. In Proceedings of the 3rd international conference on knowledge representation and
reasoning. 35
[Ratinov et al., 2011] Ratinov, L., Roth, D., Downey, D., and Anderson, M. (2011). Local and global
algorithms for disambiguation to wikipedia. In Proceedings of the 49th Annual Meeting of the Association
for Computational Linguistics : Human Language Technologies - Volume 1, HLT ’11, pages
1375–1384, Stroudsburg, PA, USA. Association for Computational Linguistics. 58
[Rattenbury et al., 2007] Rattenbury, T., Good, N., and Naaman, M. (2007). Towards automatic extraction
of event and place semantics from flickr tags. In Proceedings of the 30th annual international
ACM SIGIR conference on Research and development in information retrieval, SIGIR ’07, pages
103–110, New York, NY, USA. ACM. 54
[Ricœur, 1983] Ricœur, P. (1983). Temps et récit 1. L´intrigue et le récit historique, volume 227 of
Points : Essais. Ed. du Seuil, Paris. 27
[Rosario and Hearst, 2004] Rosario, B. and Hearst, M. A. (2004). Classifying semantic relations in bioscience
texts. Proceedings of the 42nd Annual Meeting on Association for Computational Linguistics
- ACL ’04, pages 430–es. 47
[Rosario and Hearst, 2005] Rosario, B. and Hearst, M. A. (2005). Multi-way relation classification : application
to protein-protein interactions. In Proceedings of the conference on Human Language Technology
and Empirical Methods in Natural Language Processing, HLT ’05, pages 732–739, Stroudsburg,
PA, USA. Association for Computational Linguistics. 41, 53
[Saurí et al., 2005] Saurí, R., Knippen, R., Verhagen, M., and Pustejovsky, J. (2005). Evita : a robust
event recognizer for QA systems. In Proceedings of the conference on Human Language Technology
and Empirical Methods in Natural Language Processing, HLT ’05, pages 700–707, Stroudsburg, PA,
USA. Association for Computational Linguistics. 49, 54
[Saval, 2011] Saval, A. (2011). Modèle temporel, spatial et sémantique pour la découverte de relations
entre évènements. PhD thesis, Univeristé de Caen Basse-Normandie. 27
[Saval et al., 2009] Saval, A., Bouzid, M., and Brunessaux, S. (2009). A Semantic Extension for Event
Modelisation. 2009 21st IEEE International Conference on Tools with Artificial Intelligence, pages
139–146. 74, 75
[Sayyadi et al., 2009] Sayyadi, H., Hurst, M., and Maykov, A. (2009). Event Detection and Tracking in
Social Streams. In Proceedings of International Conference on Weblogs and Social Media (ICWSM).
54
[Saïs et al., 2009] Saïs, F., Pernelle, N., and Rousset, M.-C. (2009). Combining a logical and a numerical
method for data reconciliation. In Spaccapietra, S., editor, Journal on Data Semantics XII, volume
5480 of Lecture Notes in Computer Science, pages 66–94. Springer Berlin Heidelberg. 63
[Schmid, 1994] Schmid, H. (1994). Probabilistic part-of-speech tagging using decision trees. In Proceedings
of the International Conference on New Methods in Language Processing, Manchester, UK.
99
[Sekine et al., 2002] Sekine, S., Sudo, K., and Nobata, C. (2002). Extended named entity hierarchy.
In Rodríguez, M. G. and Araujo, C. P. S., editors, Proceedings of 3
rd International Conference on
Language Resources and Evaluation (LREC’02), pages 1818–1824, Canary Islands, Spain. 58
185
Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie
[Serrano et al., 2013a] Serrano, L., Bouzid, M., Charnois, T., Brunessaux, S., and Grilheres, B. (2013a).
Events extraction and aggregation for open source intelligence : from text to knowledge. In IEEE
International Conference on Tools with Artificial Intelligence (ICTAI 2013), Washington DC, USA.
[Serrano et al., 2013b] Serrano, L., Bouzid, M., Charnois, T., Brunessaux, S., and Grilheres, B. (2013b).
Extraction et agrégation automatique d’événements pour la veille en sources ouvertes : du texte à la
connaissance. In Ingénierie des Connaissances 2013 (IC 2013), Lille, France.
[Serrano et al., 2012a] Serrano, L., Bouzid, M., Charnois, T., and Grilheres, B. (2012a). Vers un système
de capitalisation des connaissances : extraction d’événements par combinaison de plusieurs approches.
In Atelier des Sources Ouvertes au Web de Données (SOS-DLWD’2012) en conjonction avec
la conférence internationale francophone (EGC 2012), Bordeaux, France.
[Serrano et al., 2012b] Serrano, L., Charnois, T., Brunessaux, S., Grilheres, B., and Bouzid, M. (2012b).
Combinaison d’approches pour l’extraction automatique d’événements (automatic events extraction
by combining multiple approaches) [in french]. In Actes de la conférence conjointe JEP-TALNRECITAL
2012, volume 2 : TALN, Grenoble, France. ATALA/AFCP.
[Serrano et al., 2011] Serrano, L., Grilheres, B., Bouzid, M., and Charnois, T. (2011). Extraction de
connaissances pour le renseignement en sources ouvertes. In Atelier Sources Ouvertes et Services
(SOS 2011) en conjonction avec la conférence internationale francophone (EGC 2011), Brest,
France.
[Silberztein et al., 2012] Silberztein, M., Váradi, T., and Tadic, M. (2012). Open source multi-platform
nooj for nlp. In COLING (Demos), pages 401–408. 52
[Smart et al., 2007] Smart, P., Russell, A., Shadbolt, N., Shraefel, M., and Carr, L. (2007). Aktivesa.
Comput. J., 50 :703–716. 36
[Soderland, 1999] Soderland, S. (1999). Learning information extraction rules for semi-structured and
free text. Mach. Learn., 34 :233–272. 43
[Sun et al., 2005] Sun, Z., Lim, E.-P., Chang, K., Ong, T.-K., and Gunaratna, R. K. (2005). Event-driven
document selection for terrorism information extraction. In Proceedings of the 2005 IEEE international
conference on Intelligence and Security Informatics, ISI’05, pages 37–48, Berlin, Heidelberg.
Springer-Verlag. 53
[Tanev et al., 2008] Tanev, H., Piskorski, J., and Atkinson, M. (2008). Real-time news event extraction
for global crisis monitoring. In Proceedings of the 13th international conference on Natural Language
and Information Systems : Applications of Natural Language to Information Systems, NLDB ’08,
pages 207–218, Berlin, Heidelberg. Springer-Verlag. 53
[Tarski, 1956] Tarski, A. (1956). Logic, Semantics, Metamathematics, chapter Foundations of the Geometry
of Solids. Oxford, Clarendon Press. 35
[Thompson et al., 1999] Thompson, C. A., Califf, M. E., and Mooney, R. J. (1999). Active learning for
natural language parsing and information extraction. In Proceedings of the Sixteenth International
Conference on Machine Learning, ICML ’99, pages 406–414, San Francisco, CA, USA. Morgan
Kaufmann Publishers Inc. 58
[Tkachenko and Simanovsky, 2012] Tkachenko, M. and Simanovsky, A. (2012). Named entity recognition
: Exploring features. In Jancsary, J., editor, Proceedings of KONVENS 2012, pages 118–127.
ÖGAI. Main track : oral presentations. 45
[Troncy et al., 2010] Troncy, R., Shaw, R., and Hardman, L. (2010). LODE : une ontologie pour repré-
senter des événements dans le web de données. In IC 2010, 21st Journées Francophones d’Ingénierie
des Connaissances, June 8-11, 2010, Nîmes, France, Nîmes, FRANCE. 29
186
Copyright c 2013 - CASSIDIAN - All rights reserved[Van De Velde, 2006] Van De Velde, D. (2006). Grammaire des événements. Presses Universitaires du
Septentrion. 26
[van Hage et al., 2011] van Hage, W. R., Malaisé, V., Segers, R., Hollink, L., and Schreiber, G. (2011).
Design and use of the Simple Event Model (SEM). Web Semantics : Science, Services and Agents on
the World Wide Web, 9(2) :128–136. 30
[Vargas-Vera and Celjuska, 2004] Vargas-Vera, M. and Celjuska, D. (2004). Event recognition on news
stories and semi-automatic population of an ontology. In Proceedings of the 2004 IEEE/WIC/ACM
International Conference on Web Intelligence, WI ’04, pages 615–618, Washington, DC, USA. IEEE
Computer Society. 54
[Varjola and Löffler, 2010] Varjola, M. and Löffler, J. (2010). PRONTO : Event Recognition for Public
Transport. Proceedings of 17th ITS World Congress, Busan, Korea. 53
[Verykios and Elmagarmid, 1999] Verykios, V. S. and Elmagarmid, A. K. (1999). Automating the approximate
record matching process. Information Sciences, 126 :83–98. 64
[Viola and Narasimhan, 2005] Viola, P. and Narasimhan, M. (2005). Learning to extract information
from semi-structured text using a discriminative context free grammar. In Proceedings of the 28th
annual international ACM SIGIR conference on Research and development in information retrieval,
SIGIR ’05, pages 330–337, New York, NY, USA. ACM. 45
[Vlahovic, 2011] Vlahovic, N. (2011). Information Retrieval and Information Extraction in Web 2.0
environment. nternational Journal of Computers, 5(1). 40, 54
[Wacholder et al., 1997] Wacholder, N., Ravin, Y., and Choi, M. (1997). Disambiguation of proper
names in text. In Proceedings of the fifth conference on Applied natural language processing, ANLC
’97, pages 202–208, Stroudsburg, PA, USA. Association for Computational Linguistics. 64
[Wakao et al., 1996] Wakao, T., Gaizauskas, R., and Wilks, Y. (1996). Evaluation of an algorithm for
the recognition and classification of proper names. In Proceedings of the 16th conference on Computational
linguistics - Volume 1, COLING ’96, pages 418–423, Stroudsburg, PA, USA. Association for
Computational Linguistics. 44
[Wang et al., 2011] Wang, W., Besançon, R., Ferret, O., and Grau, B. (2011). Filtering and clustering
relations for unsupervised information extraction in open domain. Proceedings of the 20th ACM
international conference on Information and knowledge management - CIKM ’11, page 1405. 47
[Whitehead, 1920] Whitehead, A. (1920). The Concept of Nature. Dover science books. Dover Publications.
35
[Widlocher et al., 2006] Widlocher, A., Bilhaut, F., Hernandez, N., Rioult, F., Charnois, T., Ferrari, S.,
and Enjalbert, P. (2006). Une approche hybride de la segmentation thématique : collaboration du traitement
automatique des langues et de la fouille de texte. In Actes de DEfi Fouille de Texte (DEFT’06),
Semaine du Document Numérique (SDN’06), Fribourg, Suisse. 52
[Winkler et al., 2006] Winkler, W. E., Winkler, W. E., and P, N. (2006). Overview of record linkage and
current research directions. Technical report, Bureau of the Census. 63, 109
[Xu et al., 2006] Xu, F., Uszkoriet, H., and Li, H. (2006). Automatic Event and Relation Detection with
Seeds of Varying Complexity. In AAAI 2006 Workshop on Event Extraction and Synthesis. 49
[Yates and Etzioni, 2009] Yates, A. and Etzioni, O. (2009). Unsupervised methods for determining object
and relation synonyms on the web. J. Artif. Intell. Res. (JAIR), 34 :255–296. 66
187
Copyright c 2013 - CASSIDIAN - All rights reservedBibliographie
[Zanasi, 2009] Zanasi, A. (2009). Virtual weapons for real wars : Text mining for national security.
In Corchado, E., Zunino, R., Gastaldo, P., and Herrero, A., editors, Proceedings of the International
Workshop on Computational Intelligence in Security for Information Systems CISIS’08, volume 53 of
Advances in Soft Computing, pages 53–60. Springer Berlin Heidelberg. 53
[Zhao, 2004] Zhao, S. (2004). Named entity recognition in biomedical texts using an hmm model. In
Proceedings of the International Joint Workshop on Natural Language Processing in Biomedicine and
its Applications, JNLPBA ’04, pages 84–87, Stroudsburg, PA, USA. Association for Computational
Linguistics. 45
[Zhu and Porter, 2002] Zhu, D. and Porter, A. L. (2002). Automated extraction and visualization of
information for technological intelligence and forecasting. Technological Forecasting and Social
Change, 69(5) :495 – 506. TF Highlights from {ISF} 2001. 53
[Zhu et al., 2009] Zhu, J., Nie, Z., Liu, X., Zhang, B., and Wen, J.-R. (2009). StatSnowball : a statistical
approach to extracting entity relationships. In Proceedings of the 18th international conference on
World wide web, WWW ’09, pages 101–110, New York, NY, USA. ACM. 47
188
Copyright c 2013 - CASSIDIAN - All rights reserved
Normalisation et Apprentissage de Transductions
d’Arbres en Mots
Gr´egoire Laurence
To cite this version:
Gr´egoire Laurence. Normalisation et Apprentissage de Transductions d’Arbres en Mots.
Databases. Universit´e des Sciences et Technologie de Lille - Lille I, 2014. French. .
HAL Id: tel-01053084
https://tel.archives-ouvertes.fr/tel-01053084
Submitted on 29 Jul 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Universit´e des Sciences et Technologies de Lille – Lille 1
D´epartement de formation doctorale en informatique Ecole doctorale SPI Lille ´
UFR IEEA
Normalisation et Apprentissage de
Transductions d’Arbres en Mots
THESE `
pr´esent´ee et soutenue publiquement le 4 Juin 2014
pour l’obtention du
Doctorat de l’Universit´e des Sciences et Technologies de Lille
(sp´ecialit´e informatique)
par
Gr´egoire Laurence
Composition du jury
Pr´esident : Olivier Carton (Olivier.Carton@liafa.univ-paris-diderot.fr)
Rapporteurs : Olivier Carton (Olivier.Carton@liafa.univ-paris-diderot.fr)
Marie-Pierre B´eal (beal@univ-mlv.fr)
Directeur de th`ese : Joachim Niehren (joachim.niehren@lifl.fr)
Co-Encadreur de th`ese : Aur´elien Lemay (aurelien.lemay@univ-lille3.fr)
Laboratoire d’Informatique Fondamentale de Lille — UMR USTL/CNRS 8022
INRIA Lille - Nord EuropeRésumé
Le stockage et la gestion de données sont des questions centrales en informatique.
La structuration sous forme d’arbres est devenue la norme (XML,
JSON). Pour en assurer la pérennité et l’échange efficace des données, il est
nécessaire d’identifier de nouveaux mécanismes de transformations automatisables.
Nous nous concentrons sur l’étude de transformations d’arbres en mots
représentées par des machines à états finies. Nous définissons les transducteurs
séquentiels d’arbres en mots ne pouvant utiliser qu’une et unique fois chaque
nœud de l’arbre d’entrée pour décider de la production.
En réduisant le problème d’équivalence des transducteurs séquentiels à
celui des morphismes appliqués à des grammaires algébriques (Plandowski,
95), nous prouvons qu’il est décidable en temps polynomial.
Cette thèse introduit la notion de transducteur travailleur, forme normalisée
de transducteurs séquentiels, cherchant à produire la sortie le «plus tôt
possible» dans la transduction. A l’aide d’un algorithme de normalisation et
de minimisation, nous prouvons qu’il existe un représentant canonique, unique
transducteur travailleur minimal, pour chaque transduction de notre classe.
La décision de l’existence d’un transducteur séquentiel représentant un
échantillon, i.e. paires d’entrées et sorties d’une transformation, est prouvée
NP-difficile. Nous proposons un algorithme d’apprentissage produisant à partir
d’un échantillon le transducteur canonique le représentant, ou échouant, le
tout en restant polynomial. Cet algorithme se base sur des techniques d’infé-
rence grammaticales et sur l’adaptation du théorème de Myhill-Nerode.
Titre : Normalisation et Apprentissage de Transductions d’Arbres en MotsAbstract
Storage, management and sharing of data are central issues in computer
science. Structuring data in trees has become a standard (XML, JSON). To
ensure preservation and quick exchange of data, one must identify new mechanisms
to automatize such transformations.
We focus on the study of tree to words transformations represented by
finite state machines. We define sequential tree to words transducers, that use
each node of the input tree exactly once to produce an output.
Using reduction to the equivalence problem of morphisms applied to contextfree
grammars (Plandowski, 95), we prove that equivalence of sequential transducers
is decidable in polynomial time.
We introduce the concept of earliest transducer, sequential transducers
normal form, which aim to produce output "as soon as possible" during the
transduction. Using normalization and minimization algorithms, we prove the
existence of a canonical transducer, unique, minimal and earliest, for each
transduction of our class.
Deciding the existence of a transducer representing a sample, i.e. pairs of
input and output of a transformation, is proved NP-hard. Thus, we propose a
learning algorithm that generate a canonical transducer from a sample, or fail,
while remaining polynomial. This algorithm is based on grammatical inference
techniques and the adaptation of a Myhill-Nerode theorem.
Title : Normalization and Learning of Tree to Words TransductionsRemerciements
Cet espace me permettant de remercier toutes les personnes m’ayant aider
à effectuer, rédiger, soutenir et fêter cette thèse, je tiens tout d’abord à saluer le
travail effectué par Marie-Pierre Béal et Olivier Carton, qui ont du rapporter
et être jury de cette thèse. Je les remercie d’avoir eu le courage de relire
l’intégralité de ce manuscrit, des retours qu’ils m’en ont fait, et de l’intérêt
qu’ils ont portés à mon travail.
Cette thèse n’aurait jamais eu lieu sans la présence de mes encadrants,
tout particulièrement Joachim Niehren qui m’a permis d’intégrer cette équipe
dès mon stage de recherche, et lancé les travaux qui mènent à ce que vous
tenez maintenant entre vos mains. Merci à Joachim, Aurélien Lemay, Slawek
Staworko et Marc Tommasi de m’avoir suivi pendant cette (longue) épreuve,
de m’avoir guidé, soutenu, et aider à mener cette thèse pour arriver à ce
résultat qui je l’espère vous fait autant plaisir qu’a moi. Tout n’a pas toujours
été facile, je n’ai pas toujours été aussi investi qu’il aurait fallut, mais vous
avez toujours réussi à me remettre sur la route, et permis d’arriver à cette
étape.
Je ne peut remercier mes encadrants sans penser à l’intégralité des membres
de l’équipe Mostrare (links, magnet, et même avant) qui m’ont permis de passer
ces quelques années dans un parfait environnement de travail (mais pas
que). Ayant plus ou moins intégré cette équipe depuis mon stage de maitrise
(grâce à Isabelle Tellier et Marc), il me serait difficile d’énumérer ici
l’intégralité des membres que j’y ai croisé, et ce que chacun m’a apporté. Je
m’adonne quand même à ce petit exercice pour l’ensemble des doctorants qui
ont partagé cette position de thésard dans l’équipe : Jérôme, Olivier, Edouard,
Benoît, Antoine, Tom, Jean, Adrien, Radu, et Guillaume (même si il n’était
pas doctorant).
Ces années ont également été occupées par mes différents postes dans l’enseignements
à Lille 3 ou encore Lille 1 et je remercie l’ensemble des enseignants
qui m’ont aidés et accompagné durant cette tâche, tout particulièrement Alain
Taquet avec qui j’ai partagé mes premiers enseignements.
Même si il n’ont pas à proprement contribué à ce que contient cette thèse
(enfin ça dépend lesquels), malgré eux ils y sont pour beaucoup, je parle bien
entendu de mes amis et ma famille. Je n’en ferait pas non plus la liste ici,
n’en déplaise à certains, mais je remercie tout particulièrement mes parents,
ma soeur pour m’avoir supporter et permis d’en arriver là, mon parrain et ma
marraine pour leur présence et l’intérêt tout particulier qu’ils ont portés à ma
thèse. Merci à toute ma famille et mes amis d’avoir été présents avant, pendant,
et je l’espère encore longtemps après cette thèse, d’avoir réussi à me lafaire oubliée parfois. Une pensée toute particulière à Sébatien Lemaguer qui a
eu la lourde tâche de relire l’intégralité de cette thèse (sauf ces remerciements)
à la recherche de fautes (trop nombreuses).
Je ne pouvait pas finir ces remerciement sans parler de mon amie, amour,
Manon, a qui cette thèse appartient au moins autant qu’a moi, support inconditionnel
dans l’ombre sans qui je n’aurai surement pas réussi à terminer
cette thèse. Elle a vécue au moins autant que moi toute cette épreuve, jusqu’à
son dernier moment, et m’a permis de malgré tout mes périodes de doutes
d’aboutir à ce résultat. Merci à toi,
et merci à vous tous.Table des matières
Introduction 1
1 Automates 11
1.1 Mots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.1 Mots et langages . . . . . . . . . . . . . . . . . . . . . . . . 11
1.1.2 Grammaires . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.1.3 Automates . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2 Arbres d’arité bornée . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.2 Automates d’arbres . . . . . . . . . . . . . . . . . . . . . . 21
1.3 Arbres d’arité non-bornée . . . . . . . . . . . . . . . . . . . . . . . 25
1.3.1 Definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.3.2 Comment définir les automates ? . . . . . . . . . . . . . . 25
1.3.3 Codage binaire curryfié (ascendant) . . . . . . . . . . . . 26
1.3.4 Codage binaire frère-fils (descendant) . . . . . . . . . . . 29
1.4 Mots imbriqués . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.4.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.4.2 Linéarisation d’arbres d’arité non-bornée . . . . . . . . . 32
1.4.3 Automates de mots imbriqués . . . . . . . . . . . . . . . . 33
1.4.4 Automate descendant . . . . . . . . . . . . . . . . . . . . . 34
2 Transducteurs 37
2.1 Transducteurs de mots . . . . . . . . . . . . . . . . . . . . . . . . 39
2.1.1 Transducteurs rationnels . . . . . . . . . . . . . . . . . . . 39
2.1.2 Transducteurs déterministes . . . . . . . . . . . . . . . . . 50
2.1.3 Transducteurs déterministes avec anticipation . . . . . . 76
2.2 Transducteur d’arbres d’arité bornée . . . . . . . . . . . . . . . . 80
2.2.1 Transducteur descendants . . . . . . . . . . . . . . . . . . 81
2.2.2 Transducteur ascendant . . . . . . . . . . . . . . . . . . . 88
2.2.3 Transducteur avec anticipation . . . . . . . . . . . . . . . 90
2.2.4 Macro-transducteurs descendants . . . . . . . . . . . . . . 93
2.3 Transducteurs d’arbres en mots . . . . . . . . . . . . . . . . . . . 95
2.3.1 Transducteurs descendants . . . . . . . . . . . . . . . . . . 95
2.3.2 Transducteurs ascendants . . . . . . . . . . . . . . . . . . 98
2.4 Transducteurs d’arbres d’arité non bornée . . . . . . . . . . . . . 100
2.4.1 Transducteurs de mots imbriqués en mots . . . . . . . . 101
2.4.2 Transducteurs de mots imbriqués en mots imbriqués . . 1043 Transformations XML 105
3.1 XSLT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
3.1.1 XSLT en Pratique . . . . . . . . . . . . . . . . . . . . . . . 105
3.2 Transducteurs et xslt . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.2.1 dST2W . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3.2.2 Macro-Transducteurs et xpath . . . . . . . . . . . . . . . 110
4 Équivalence de transducteurs séquentiels d’arbres en mots 115
4.1 Relation avec l’équivalence de morphismes sur CFGs . . . . . . 115
4.1.1 Exécution d’un dNW2W . . . . . . . . . . . . . . . . . . 116
4.1.2 Arbre syntaxique étendu . . . . . . . . . . . . . . . . . . . 116
4.2 Relation entre dB2W et dT2W . . . . . . . . . . . . . . . . . . . 121
5 Normalisation et minimisation des transducteurs descendants
d’arbres en mots 125
5.1 dST2W travailleur . . . . . . . . . . . . . . . . . . . . . . . . . . 125
5.2 Caractérisation sémantique . . . . . . . . . . . . . . . . . . . . . . 127
5.2.1 Approche naïve . . . . . . . . . . . . . . . . . . . . . . . . 127
5.2.2 Décompositions et résiduels . . . . . . . . . . . . . . . . . 129
5.2.3 Transducteur canonique . . . . . . . . . . . . . . . . . . . 133
5.3 Minimisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
5.3.1 Minimisation des edST2Ws . . . . . . . . . . . . . . . . . 135
5.3.2 Minimisation de dST2Ws arbitraires . . . . . . . . . . . 138
5.4 Normalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
5.4.1 Réduction de langages . . . . . . . . . . . . . . . . . . . . 143
5.4.2 Faire traverser un mot dans un langage . . . . . . . . . . 143
5.4.3 Déplacement de gauche à droite . . . . . . . . . . . . . . 148
5.4.4 Algorithme de normalisation . . . . . . . . . . . . . . . . 151
5.4.5 Bornes exponentielles . . . . . . . . . . . . . . . . . . . . . 158
6 Apprentissage de transducteurs descendants d’arbres en mots161
6.1 Théorème de Myhill-Nerode . . . . . . . . . . . . . . . . . . . . . 161
6.2 Consistence des dST2Ws . . . . . . . . . . . . . . . . . . . . . . . 162
6.3 Modèle d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . 165
6.4 Algorithme d’apprentissage . . . . . . . . . . . . . . . . . . . . . . 166
6.5 Décompositions, résiduels et équivalence . . . . . . . . . . . . . . 166
6.6 Echantillon caractéristique . . . . . . . . . . . . . . . . . . . . . . 170
7 Conclusion 177
7.1 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
Bibliographie 183Introduction
De tout temps, le stockage, la gestion et l’échange de données sont des
questions centrales en informatique, plus encore de nos jours, la quantité de
données devenant de plus en plus importante et partagée entre différents services.
La structuration des données participe énormément à ces défis. Elle
permet par exemple d’intégrer une certaine sémantique absolument nécessaire
pour l’échange, d’effectuer plus efficacement des traitements comme des
requêtes ou des transformations. Les arbres de données sont une telle représentation
structurée des informations. Mon travail de thèse est une contribution
à l’étude de ces arbres de données et particulièrement leurs transformations.
Une question centrale que j’aborde consiste en la définition d’algorithmes d’apprentissage
de ces programmes de transformations, que je représente sous la
forme de machines à états finis : les transducteurs.
Arbres de données
Les arbres de données permettent d’apporter une structure à des données
textuelles. Ces arbres sont composés de nœuds étiquetés par des symboles
issus d’un alphabet fini. Les valeurs textuelles se retrouvent au niveau du
feuillage de l’arbre ou dans ses nœuds internes sous forme d’attributs. Elles
sont composés à partir d’un alphabet fini, comme par exemple celui de l’ASCII
ou de l’unicode, mais ne sont pas bornées en taille.
Certains modèles existants, tels que le xml (recommandation du W3C)
ou JSON (JavaScript Object Notation), cherchent à homogénéiser le format
des données des documents structurés sous forme d’arbre en proposant une
syntaxe permettant de les représenter. Que ce soit sous forme d’arbres d’arité
non bornée, ordonnés, associés à des champs textuels et des enregistrements
pour le xml, ou d’arbres d’arité bornée et d’ensembles d’enregistrements non
bornés ni ordonnés pour ce qui est de JSON, le but reste de spécifier une
syntaxe en limitant le moins possible la sémantique que l’utilisateur souhaite
associer à la structure.
Certains formats de données qui en découlent limitent le choix des étiquettes
de nœuds utilisables dans la structure. Ces étiquettes (les balises)
doivent appartenir à un ensemble fini et fixé et portent chacune une sémantique
forte. C’est le cas de fichiers html ou des méta-données contenues dans
certains document issus de logiciels de traitement de texte. Les arbres de
données peuvent se trouver également dans les bases de données, ou encore2 Introduction
dans le «Cloud computing», où même si parfois ils partagent des syntaxes
proches, peuvent être utilisés dans des domaines totalement différents avec
des sémantiques qui leurs sont propres. Que ce soit pour l’échange, la mise
en relation ou la sélection de données, il devient de plus en plus nécessaire,
au delà des modifications automatiques de texte, comme pouvait le permettre
des programmes tels que Perl, d’identifier de nouveaux mécanismes de transformation
basés sur la structure. Il est surtout intéressant de voir jusqu’où les
méta-données contenues dans la structure même jouent un rôle dans le choix
des transformations à effectuer.
Transformations
Pour cela, il faut dans un premier temps se demander quel type de transformation
nous intéresse. Il existe déjà plusieurs moyens de transformer des
arbres de données, que ce soit pour une tâche spécifique ou comme le permet
le langage xslt, une représentation des transformations dans le sens le
plus large du terme. Le langage de programmation xslt (Clark, 1999), pour
«eXtensible Stylesheet Language Transformations», est un langage défini au
sein de la recommandation xsl du consortium W3C. Il permet de transformer
des arbres de données, représentés par un ou plusieurs xml, en données
de différents types, xml, textuels ou même binaires. Il est lui même repré-
senté sous la forme d’un arbre de données dont certaines étiquettes de noeuds
spécifient les fonctions de transformation à appliquer. Cette application passe
par la sélection de noeuds à transformer à l’aide de requêtes xpath (Clark
et DeRose, 1999). Ces requêtes permettent la sélection de noeuds dans un
arbre de données à l’aide d’opérations primitives de déplacement dans la fi-
liation de l’arbre. Une grande expressivité se faisant souvent au détriment de
la complexité, xslt est un programme Turing-complet (Kepser, 2004; Onder
et Bayram, 2006). Pour pouvoir étudier théoriquement et se diriger vers un
possible apprentissage, Il est nécessaire d’en introduire des sous classes, moins
expressives.
L’intérêt d’un arbre de données étant de structurer des informations pour
en simplifier la recherche et l’utilisation, il n’est pas surprenant qu’une des
fonctions les plus utilisées dans le langage xslt soit la fonction «xsl ∶ value − of »
retournant l’ensemble des valeurs textuelles contenues dans les feuilles des
sous-arbres traités. Par exemple, comme l’illustre la figure 1, cherchons à récupérer
le nom et prénom du premier contact contenu dans un carnet d’adresse
sous format xml, pour un futur affichage dans un document html . Cela
donne en xslt, l’appel de la balise suivante :
3
contacts
contact
identite
nom
Laurence
prenom
Grégoire
adresse
⋯
⋯
⋯
⇒ "Laurence Grégoire"
Figure 1 – Exemple de transformation xslt basique
Seule la structure de l’arbre importe ici pour décider du traitement à effectuer
sur les feuilles. De ce fait, les valeurs textuelles pourraient être abstraites
sous la forme de balises dédiées ne servant qu’à les identifier, et permettre leur
réutilisation dans la sortie.
Toutefois, la structure interne n’est pas toujours suffisante pour décider
du traitement à effectuer. Les valeurs textuelles sont parfois des éléments
centraux d’une transformation. Les opérations telles que les jointures utilisent
ces valeurs textuelles comme repères pour regrouper certaines informations.
Dès lors elles font partie intégrante de la sélection des noeuds à manipuler et
ne peuvent plus être ignorés.
Qu’en est il de la sortie ? Il n’est pas toujours intéressant de garder la
structure de l’entrée. Comme l’illustre la transformation représentée dans la
figure 1, il est parfois nécessaire de se concentrer sur la concaténation de
champs textuels sélectionnés. Même si une structure est parfois nécessaire,
il reste tout à fait possible de la représenter sous format xml, une chaîne
composée de balises ouvrantes et fermantes représentant un arbre de données.
Cette liberté dans la représentation de la sortie se fait au détriment du contrôle
de la structure de sortie, qui n’est plus reconnue en tant qu’arbre de données,
empêchant ainsi son utilisation directe en entrée d’une autre transformation.
Il n’est plus possible dès lors de composer plusieurs transformations sans pré-
traitements sur les données intermédiaires.
Nous décidons dans cette thèse de nous concentrer sur les transformations
d’arbres en mots qui permettent la concaténation dans la sortie. Cela repré-
sente une simplification des transformations d’arbres de données à arbres de
données. Il est dès lors plus possible d’exprimer les opérations de jointures.4 Introduction
Nous perdons également les propriétés de compositions, la structure d’entrée
n’étant plus présente dans la production. Cela nous permet de nous concentrer
sur la possibilité de manipuler les chaînes de sortie, ce qui nous intéresse ici.
Motivation générale
Notre but reste l’automatisation de la tâche de transformation. Cela passe
par un apprentissage de la transformation que l’on souhaite effectuer. L’apprentissage
considéré ici revient à chercher à identifier une cible, appartenant
à une classe de langages connue, à partir d’exemples (et de possibles contreexemples).
Il nous reste donc à identifier formellement une classe de transformations
d’arbres en mots, de choisir le modèle d’apprentissage que nous
souhaitons appliquer, et les exemples à partir desquels apprendre.
L’apprentissage que nous souhaitons utiliser se base sur l’inférence grammaticale
(Gold, 1967) en cherchant à identifier à la limite un langage cohérent
avec les exemples d’entrée. Le plus souvent cette technique se divise en deux
étapes, une représentation des exemples dans un formalisme les regroupant,
et la généralisation de ce modèle pour en déduire un langage reconnaissant
souvent un langage plus large que celui représenté par les exemples, mais tout
en restant cohérent avec cet échantillon.
Pour ce qui est des exemples, la transformation d’arbres en mots peut
être vue comme un ensemble de paires composées d’un arbre et de la chaîne
de mots résultant de la transformation de cet arbre. Il est connu que, pour
apprendre un langage de mots régulier, ne considérer que des exemples positifs
n’est pas suffisant en inférence grammaticale (Gold, 1967). Il est nécessaire
d’avoir des contre-exemples ou autres éléments permettant d’éviter une surgénéralisation.
Qu’en est-il de nos transformations ?
Une des propriétés permettant de contrôler cette possible sur-généralisation
est le fait qu’une transformation doit rester fonctionnelle. Nous devons pour
cela nous assurer qu’une entrée ne puisse être transformée qu’en au plus un
résultat. Le deuxième contrôle peut être fait à l’aide du domaine d’entrée, le
langage d’arbres sur lequel la transformation peut s’effectuer. Il existe pour
cela de nombreuses possibilités, que ce soit à l’aide d’exemples négatifs ou
encore par la connaissance directe du domaine, donné en entrée de l’apprentissage.
L’apprentissage de langage d’arbres étant un problème connu et ayant
déjà été résolu par inférence grammaticale (Oncina et Garcia, 1992), nous opterons
pour la deuxième solution, en supposant que le domaine nous est déjà
donné.
Une fois le type d’exemples et d’apprentissage choisi, il nous reste à choisir
quel modèle utiliser pour représenter notre transformation, vérifier que ce mo-5
dèle dispose des propriétés nécessaires pour un apprentissage, et enfin définir
l’algorithme d’apprentissage à proprement parler. Nous choisissons d’utiliser
les transducteurs, machines à états finis permettant d’évaluer une entrée en
produisant la sortie associée.
Nous souhaitons donc que toute transformation de la classe qui nous intéresse
soit définissable par la classe de transducteurs choisie, ce qu’il reste à
prouver. Nous voulons également que la cible d’un apprentissage soit unique,
qu’a chaque transformation lui soit associé un transducteur canonique la représentant.
Cela repose sur la normalisation du transducteur, pour en homogénéiser
le contenu, et de sa minimisation pour assurer l’unicité. Il est donc
nécessaire d’introduire une classe de transducteurs permettant de représenter
les transformations d’arbres en mots, disposant d’une forme normale. La
cible de l’apprentissage d’une transformation sera le transducteur canonique,
unique minimal, de cette classe la représentant. Il est donc nécessaire de définir
un théorème de type Myhill-Nerode (Nerode, 1958) pour ce modèle, assurant,
entre autre, l’existence d’un transducteur canonique pour chaque transformation
de notre classe. L’algorithme d’apprentissage en lui même se résume à
la décomposition de la transformation représentée par les exemples, pour en
déduire les états du transducteur cible. Cela repose sur la possibilité de tester
efficacement l’équivalence de fragments de la transformation pour identifier
les fragments communs. Il reste à spécifier le modèle de transducteurs à l’aide
duquel nous souhaitons modéliser notre transformation.
Transducteurs
Que ce soit sur les mots ou les arbres, de nombreux modèles de transducteurs
ont déjà été proposés et étudiés dans le domaine. Nous nous intéressons
particulièrement aux modèles déterministes, ne permettant qu’une exécution
possible pour une donnée d’entrée fixée, qui en plus d’assurer la fonctionnalité
de la transformation représentée, simplifie la décidabilité de problèmes
importants. Avant de nous concentrer sur un modèle permettant de transformer
des arbres en mots, nous pouvons évoquer deux classes de transducteurs
permettant respectivement de gérer les mots et les arbres.
Les transducteurs sous-séquentiels, transducteurs déterministes de mots
introduits par Schützenberger (1975), transforment, lettre par lettre un mot
d’entrée dans sa sortie. Cette production est obtenue par concaténation de
toutes les chaînes produites par le transducteur. Pour ce qui est des arbres,
les transducteurs déterministes d’arbres d’arité bornée, basés sur les travaux
de Rounds (1968) et Thatcher (1970), permettent, en parcourant un arbre de
sa racine à ses feuilles, de produire un arbre. Chaque règle de cet arbre associe6 Introduction
à un noeud de l’arbre d’entrée et ses fils, un contexte, arbre à trous. Chacun
de ces sous-arbres manquants s’obtient par l’application d’une transduction
à un fils de ce noeud. Aucune contrainte n’est faite sur l’ordre d’utilisation
de ces fils ou encore du nombre de fois qu’ils sont utilisés. Cela revient à
autoriser la copie et le réordonnancement des fils d’un noeud dans la sortie. Il
n’est cependant pas possible de fusionner le contenu de plusieurs noeuds ou
de supprimer des noeuds internes.
Ces classes de transducteurs disposent de résultats de décidabilité sur les
problèmes théorique importants. Ainsi, le problème d’équivalence est montré
décidable, par Engelfriet et al. (2009) pour les transducteurs d’arbres, et par
Choffrut (1979) pour les transducteurs de mots. Une forme normale, assurant
à l’aide de contraintes une représentation normalisé d’un transducteur, a été
introduite pour chacun d’entre eux, que ce soit par Choffrut (1979) pour les
mots ou par Lemay et al. (2010) pour les arbres, afin d’assurer l’existence d’un
transducteur canonique, normalisé minimal unique, pour chaque transformation
exprimable par un transducteur de la classe. Des algorithmes d’apprentissages
ont été proposés pour chacune de ces classes, que ce soit l’algorithme
OSTIA (Oncina et al., 1993) pour les transducteurs sous-séquentiels, ou plus
récemment sur les transducteurs d’arbres en arbres (Lemay et al., 2010).
Pour ce qui est des transformations d’arbres en mots que nous cherchons
à représenter, nous nous dirigeons sur une machine proche des transducteurs
d’arbres, du moins sur le traitement de l’entrée, mais produisant cette foisci
des mots. Les règles produisent maintenant, pour un noeud et ses fils, la
concaténation de mots et du résultat de transduction des fils. Les problèmes
théoriques, tel que l’équivalence et l’existence de représentants canoniques,
sont ouverts pour cette classe de transductions.
Il est également possible de pousser vers d’autres modèles de transducteurs
plus expressifs tels que les macro transducteurs d’arbres (Engelfriet, 1980),
plus proche des transformations de type XSLT que les modèles évoqués pré-
cédemment. Mais ce modèle autorisant également des opérations telles que
la concaténation, il n’est pas intéressant d’attaquer cette classe alors que des
classes strictement moins expressives, et utilisant le même type d’opérateurs,
n’ont toujours pas de résultats de décidabilité sur les problèmes théoriques.
Maintenant que nous avons décidé du type de transformation qui nous
intéresse, d’arbres en mots, ainsi que la manière de les représenter, transducteurs
déterministes d’arbres en mots, nous pouvons nous concentrer sur
l’apprentissage en lui-même.7
Contributions
Dans cette thèse, nous définissons et étudions les transducteurs séquentiels
déterministes descendants d’arbres d’arité bornée en mots. Être séquentiel signifie
que chaque règle de ces transducteurs associe à un noeud une production
obtenue par concaténation de mots et de l’application d’une transduction sur
chacun de ces fils. Chaque fils doit être utilisé une et une seule fois, et ce dans
leur ordre d’apparition dans l’entrée. Les règles d’un transducteur séquentiel
sont de la forme :
⟨q, f(x1, . . . , xk)⟩ → u0 ⋅ ⟨q1, x1⟩ ⋅ . . .⟨qk, xk⟩uk
qui spécifie que la transformation d’un arbre f(t1, . . . , tk) à partir d’un
état q sera le résultat de la concaténation des chaînes ui et des résultats de
transduction des sous arbres ti à partir des états qi respectifs. Le fait d’interdire
la réutilisation et le réordonnancement des fils dans la production de la
sortie est une simplification du modèle assez conséquente. Mais comme nous le
verrons par la suite, cette restriction est nécessaire pour décider efficacement
de problèmes théoriques cruciaux dans l’élaboration d’un apprentissage. Le
problème d’équivalence de ce modèle est par exemple connu décidable pour la
famille plus générale de transduction. Toute fois, il ne permet pas de disposer
d’une solution efficace.
Équivalence efficace
En réduisant le problème d’équivalence à celui de l’équivalence de morphismes
appliqués à des grammaires algébriques, prouvé décidable en temps
polynomial dans la taille des morphismes et de la grammaire (Plandowski,
1995), nous prouvons que l’équivalence des transducteurs séquentiels est décidable
également en temps polynomial dans la taille du transducteur considéré.
Cette réduction se base sur la définition d’une grammaire représentant l’exécution
parallèle de transducteurs séquentiels sur lesquels sont définis deux morphismes
recomposant la sortie de transducteurs séquentiels respectifs. Toute
la sortie est contenue dans les règles représentées sur cette exécution.
Malgré des expressivités foncièrement différentes, les transducteurs d’arbres
en mots ascendants, descendants, et les transducteurs de mots imbriqués en
mots partagent des représentations d’exécutions similaires, l’ordre de l’entrée
y étant toujours gardé. Cette similarité permet de mettre en relations ces
principales classes de transductions d’arbres en mots en étendant le résultat
de décidabilité de l’équivalence à chacune d’entre elles (Staworko et al., 2009).8 Introduction
Normalisation
Par la suite (Laurence et al., 2011), nous introduisons une forme normale
pour les transducteurs séquentiels d’arbres en mots, cherchant à produire la
sortie le plus tôt possible dans le transducteur. Cette notion de «plus tôt»
pouvant être perçue de plusieurs manières nous allons l’illustrer à l’aide d’un
court exemple.
Exemple 1. Prenons un transducteur séquentiel M composé de deux états q0
et q1, de l’axiome initial permettant de produire de la sortie avant même de
commencer la lecture d’un arbre entrée q0, n’ajoutant ici aucune sortie, et des
règles suivantes.
⟨q0, f(x1, x2)⟩ → ⟨q1, x1⟩ ⋅ ac ⋅ ⟨q1, x2⟩, ⟨q1, g(x1)⟩ → ⟨q1, x1⟩ ⋅ abc, ⟨q1, a⟩ → ε.
Nous pouvons représenter son exécution par l’annotation de l’arbre transformé,
la sortie s’obtenant par la concaténation des mots produits en suivant
le parcours en profondeur, comme l’illustre le premier arbre de la figure 2.
f
g g
a g
a
ac
ε ε
ε abc
ε
ε abc
ε abc
ε
f
g g
a g
a
ε
a c
bca ε
ε
cab ε
cab ε
ε
Figure 2 – Exemple d’exécution d’un transducteur séquentiel et sa version
normalisée
Nous choisissons comme normalisation de débuter par la sortie la production
le plus haut possible dans l’arbre. Par exemple, si l’arbre à pour racine f,
nous savons directement que sa sortie débutera par un “a” et se terminera par
un “c”. Il nous faut donc remonter ces deux lettres, respectivement à gauche
et à droite, en les faisant passer à travers la transduction des sous arbres. Une
fois que la sortie se trouve le plus haut possible, pour assurer un seul résultat
pour la normalisation d’un arbre, nous avons décider de forcer la sortie à être9
produite le plus à gauche d’une règle, comme l’illustre le passage de droite à
gauche des productions sur les noeuds étiquetés par un g.
Cela donne le transducteur suivant. L’état q1 a été divisé en deux états qg
et qd, le traitement du sous arbre gauche et droit étant maintenant différents.
Les règles du transducteur obtenu sont les suivantes :
⟨q0, f(x1, x2)⟩ → ⟨qg, x1⟩ ⋅ ac ⋅ ⟨qd, x2⟩, ⟨qg, g(x1)⟩ → bca ⋅ ⟨qg, x1⟩,
⟨qg, a⟩ → ε, ⟨qd, g(x1)⟩ → cab ⋅ ⟨qd, x1⟩, ⟨qd, a⟩ → ε.
L’exécution de ce transducteur est illustré sur le deuxième arbre de la figure 2.
Nous définissons un algorithme de normalisation permettant à partir de
tout transducteur séquentiel de le renvoyer sous forme normalisée. La difficulté
de cette normalisation est la manipulation de la sortie, les mots devant à la
fois être tirés à gauche et droite du transducteur et parfois poussés à travers
la transduction de sous arbres, comme l’illustre l’exemple. Si on se limite à la
sortie, cette opération revient à manipuler des mots à travers des grammaires
algébriques de mots, projection du transducteur sur la sortie. La force de
notre normalisation est, qu’a partir de contraintes globales devant s’appliquer
les unes après les autres, nous avons réussi à en déduire des contraintes locales.
En arrivant à représenter ces modifications à l’aide d’un langage d’opérations
sur les mots, pouvant être directement appliquées aux états d’un transducteur,
nous avons mis en place une normalisation efficace et locale d’un transducteur
séquentiel d’arbres en mots.
Nous identifions également les bornes sur la taille d’un transducteur sé-
quentiel normalisé en fonction de la taille du transducteur de base, pouvant
parfois atteindre une taille double exponentielle dans celle de la source.
Apprentissage
Nous aboutissons, en nous basant sur les précédents résultats, sur l’apprentissage
des transducteurs séquentiels d’arbres en mots (Laurence et al., 2014).
Pour cela, il faut tout d’abord identifier les transformations apprenables (i.e.
représentables par des transducteurs séquentiels). Pour cela, on cherche à retrouver
directement la structure des transducteurs dans une transformation.
Cette restructuration passe par la décomposition de la sortie par rapport
à l’entrée, l’introduction de sous transformations associées aux chemins de
l’arbre d’entrée, ainsi que l’instauration de classes d’équivalence regroupant
ces résiduels. À partir de cela, nous pouvons introduire des propriétés sur les
transformations assurant une représentation possible sous la forme d’un transducteur
séquentiel, puis prouver ces résultats par l’adaptation du théorème de
Myhill-Nerode à notre classe de transduction.10 Introduction
Il reste à adapter cette même approche pour l’apprentissage, non plus à
partir d’une transformation complète en notre possession, mais à partir d’un
échantillon d’exemples et d’un automate représentant son domaine. Nous limitant
au modèle séquentiel, toute transformation et tout échantillon d’exemples
n’est pas représentable par un transducteur séquentiel. Notre algorithme doit
pouvoir échouer si les exemples ne peuvent être représentés par un transducteur
séquentiel. En adaptant chaque étape, de la décomposition à l’identifi-
cation des classes d’équivalences, l’algorithme s’assure en temps polynomial
de l’existence d’un transducteur séquentiel cohérent avec l’entrée, et produit
le transducteur canonique correspondant, ou le cas échéant échoue. À l’aide
de la notion d’échantillon caractéristique, nous prouvons cependant que cet
algorithme n’échoue pas dans les cas où l’entrée est suffisante pour aboutir à
un transducteur cible représenté par cet échantillon.
Plan de thèse
Après avoir rappelé les différentes notions nécessaires à la compréhension
de cette thèse, nous rappellerons également les différents modèles d’automates
permettant de reconnaître des langages d’arbres, ces modèles étant la base des
transducteurs qui nous intéressent. Nous y présenterons également les diffé-
rents résultats tels que la décidabilité de l’équivalence ou encore l’apprentissage,
ce qui nous permettra à travers des modèles plus simples d’illustrer les
approches que nous appliquerons par la suite sur les transducteurs.
Le deuxième chapitre nous permettra, à travers un survol des différentes
classes de transductions existantes, de montrer les différents résultats existant
dans le domaine, et où se placent les modèles que nous étudieront dans cet
ensemble. Nous profiterons du troisième chapitre pour montrer une des facettes
pratiques de la transformation à travers le langage xslt, qui permet
de représenter et effectuer la transformation de fichiers xml sous différents
formats.
Les trois derniers chapitres présenteront les contributions de cette thèse.
Le premier chapitre se concentre sur le problème d’équivalence, en améliorant
la décidabilité pour les transducteurs d’arbres en mots. La réduction qui y est
introduite permettra également d’apporter un autre regard sur les différentes
classes de transductions d’arbres en mots évoquées. Les deux derniers chapitres
présenteront les résultats centraux de cette thèse, à savoir la normalisation,
minimisation et l’apprentissage des transducteurs séquentiels.Chapitre 1
Automates
Avant de pouvoir parler de transducteurs, il est indispensable de poser les
bases sur lesquelles ils se construisent. Après avoir défini formellement les différents
modèles de données manipulés dans cette thèse, nous nous attarderons
sur les automates, structure de base à partir desquelles les transducteurs sont
définis. Pour cela, nous partirons des automates de mots, pour ensuite survoler
les différents types d’automates permettant la manipulations d’arbres.
1.1 Mots
1.1.1 Mots et langages
Un alphabet est un ensemble fini et non vide de symboles. La taille d’un
alphabet Σ est le nombre de symboles qu’il contient, noté ∣Σ∣.
Un mot est une séquence possiblement vide de symboles appartenant à
un alphabet Σ. On représente par ε le mot vide. L’étoile de Kleene est la
clôture réflexive et transitive d’un langage, noté Σ∗ pour l’alphabet Σ. Σ∗ est
l’ensemble de tout les mots définissable à partir de l’alphabet Σ.
On note u1 ⋅ u2 la concaténation de deux mots u1 et u2. La taille d’un
mot u est le nombre de symboles qui le compose, noté ∣u∣. Les mots sont liés
entre eux par une relation d’ordre totale .
HAL Id: tel-00987630
https://tel.archives-ouvertes.fr/tel-00987630
Submitted on 6 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.Th`ese de Doctorat
Universit´e Pierre et Marie Curie – Paris 6
Sp´ecialit´e
SYSTEMES ` INFORMATIQUES
pr´esent´ee par
Mme. Nada SBIHI
pour obtenir le grade de
Docteur de l’universit´e Pierre et Marie Curie – Paris 6
Gestion du trafic dans les r´eseaux orient´es contenus
Jury
James ROBERTS Directeur de th`ese Chercheur, INRIA et SystemX
Serge FDIDA Directeur de th`ese Professeur, UPMC Sorbonne universit´es – Paris 6
Leila SAIDANE Rapporteur Professeur, ENSI–Tunisie
Walid DABBOUS Rapporteur Chercheur, INRIA Sophia Antipolis
Sebastien TIXEUIL Examinateur Professeur, UPMC Sorbonne universit´es – Paris 6
Diego PERINO Examinateur Chercheur, Bell Labs–Alcatel-Lucent
Gwendal SIMON Examinateur Maˆıtre de conf´erence, Telecom BretagneRemerciements
Je tiens tout particuli`erement `a remercier mon encadrant de th`ese M. Jim Roberts de
m’avoir donn´e la chance de poursuivre mes ´etudes. Son suivi et ses pr´ecieux conseils m’ont
apport´es beaucoup d’aide durant ma th`ese. Son experience est une source in´epuisable dont
j’ai pu apprendre grˆace `a son encadrement et sa g´en´erosit´e.
Je remercie ´egalement M.Serge Fdida d’avoir accept´e de diriger ma th`ese ainsi que Mme.
Leila Saidane et Mr. Walid Dabbous mes rapporteurs, pour leurs remarques et suggestions
sur la version pr´eliminaire de ce document.
Je suis reconnaissante `a M.S´ebastien Tixeuil, M. Diego Perino et M. Gwendal Simon
pour avoir accept´e de m’honorer de leur participation au jury de cette th`ese.
Je tiens `a remercier M. Philippe Robert de m’avoir acceuilli au sein de l’´equipe R´eseaux,
algorithmes et Probabilit´es(RAP) `a l’INRIA.
Je suis tr`es reconnaissante `a Mme. Christine Fricker pour son aide, sa g´en´erosit´e et sa gentillesse.
Ton savoir scientifique, ta p´edagogie et ta modestie m’ont donn´e beaucoup d’espoirs.
Je remercie ´egalement les anciens et nouveaux membres de l’´equipe Rap et particuli`erement
Virginie Collette.
Un grand merci `a mes parents pour leur encouragement et Otmane, mon ´epoux pour
son soutien, petit clin d’oeil particulier `a mon fils Amine.
Merci `a ma famille, amies, et coll´egues.
3Resum ´ e´
Les r´eseaux orient´es contenus (CCN) ont ´et´e cr´e´es afin d’optimiser les ressources r´eseau
et assurer une plus grande s´ecurit´e. Le design et l’impl´ementation de cette architecture
est encore `a ces d´ebuts. Ce travail de th`ese pr´esente des propositions pour la gestion de
trafic dans les r´eseaux du future. Il est n´ecessaire d’ajouter des m´ecanismes de contrˆole
concernant le partage de la bande passante entre flots. Le contrˆole de trafic est n´ecessaire
pour assurer un temps de latence faible pour les flux de streaming vid´eo ou audio, et
pour partager ´equitablement la bande passante entre flux ´elastiques. Nous proposons un
m´ecanisme d’Interest Discard pour les r´eseaux CCN afin d ?optimiser l’utilisation de la
bande passante. Les CCN favorisant l’utilisation de plusieurs sources pour t´el´echarger un
contenu, nous ´etudions les performances des Multipaths/ Multisources ; on remarque alors
que leurs performances d´ependent des performances de caches. Dans la deuxi`eme partie de
cette th`ese, nous ´evaluons les performances de caches en utilisant une approximation simple
et pr´ecise pour les caches LRU. Les performances des caches d´ependent fortement de la
popularit´e des objets et de la taille des catalogues. Ainsi, Nous avons ´evalu´e les performances
des caches en utilisant des popularit´es et des catalogues repr´esentant les donn´ees r´eelles
´echang´ees sur Internet. Aussi, nous avons observ´e que les tailles de caches doivent ˆetre
tr`es grandes pour assurer une r´eduction significative de la bande passante ; ce qui pourrait
ˆetre contraignant pour l’impl´ementation des caches dans les routeurs. Nous pensons que
la distribution des caches devrait r´epondre `a un compromis bande passante/m´emoire ; la
distribution adopt´ee devrait r´ealiser un coˆut minimum. Pour ce faire, nous ´evaluons les
diff´erences de coˆut entre architectures.
4Abstract
Content Centric Network (CCN) architecture has been designed to optimize network resources
and ensure greater security. The design and the implementation of this architecture
are only in its beginning. This work has made some proposals in traffic management related
to the internet of the future. We argue that it is necessary to supplement CCN with
mechanisms enabling controlled sharing of network bandwidth by competitive flows. Traf-
fic control is necessary to ensure low latency for conversational and streaming flows, and
to realize satisfactory bandwidth sharing between elastic flows. These objectives can be
realized using ”per-flow bandwidth sharing”. As the bandwidth sharing algorithms in the
IP architecture are not completely satisfactory, we proposed the Interest Discard as a new
technique for CCN. We tested some of the mechanisms using CCNx prototype software and
simulations. In evaluating the performance of multi-paths we noted the role of cache performance
in the choice of selected paths. In the second part, we evaluate the performance
of caches using a simple approximation for LRU cache performance that proves highly
accurate. As caches performance heavily depends on populations and catalogs sizes, we
evaluate their performance using popularity and catalogs representing the current Internet
exchanges. Considering alpha values, we observe that the cache size should be very large ;
which can be restrictive for caches implementation in routers. We believe that the distribution
of caches on an architecture creates an excessive bandwidth consumption. Then,
it is important to determine a tradeoff bandwidth/memory to determine how we should
size caches and where we should place them ; this amounts to evaluate differences, in cost,
between architectures.
5Table des matieres `
Introduction g´en´erale 10
I La gestion du trafic dans les r´eseaux orient´es contenus 16
1 Introduction 17
1.1 Probl´ematique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.2 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.2.1 Contrˆole du trafic au coeur du r´eseau . . . . . . . . . . . . . . . . . 18
1.2.2 Protocole de transport . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.2.3 Multipath et multisource . . . . . . . . . . . . . . . . . . . . . . . . 19
2 Partage de bande passante 21
2.1 Identification des flots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.2 Caches et files d’attente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.3 Le principe du flow aware networking . . . . . . . . . . . . . . . . . . . . . 23
2.3.1 Partage des ressources dans les CCN . . . . . . . . . . . . . . . . . . 23
2.3.2 Contrˆole de surcharge . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3 M´ecanismes pour CCN 26
3.1 M´ecanismes pour les utilisateurs . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.1 D´etection des rejets . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.1.2 Protocole de transport . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 M´ecanismes pour op´erateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.1 Motivation ´economique . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.2 Interest Discard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
4 Strat´egies d’acheminement 31
4.1 Multicast . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.2 Multisources . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2.1 Protocole de transport Multipath . . . . . . . . . . . . . . . . . . . . 32
64.2.2 Performance de MPTCP . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2.3 CCN et routage multipath . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.4 Performances des multipaths . . . . . . . . . . . . . . . . . . . . . . 38
5 Simulations et exp´erimentations 42
5.1 Simulations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.2 Exp´erimentations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2.1 Fair sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.2.2 Interest discard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.2.3 Sc´enarios et r´esultats . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6 Conclusion 46
II Performances des caches 48
7 Introduction 49
7.1 Probl´ematique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.2 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
7.3 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
8 Mesure du trafic et performances des caches 51
8.1 Mesure du trafic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8.1.1 Types de contenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8.1.2 La taille des contenus et des objets . . . . . . . . . . . . . . . . . . . 52
8.1.3 Distribution de la popularit´e . . . . . . . . . . . . . . . . . . . . . . 53
8.2 Le taux de hit d’un cache LRU . . . . . . . . . . . . . . . . . . . . . . . . . 54
8.2.1 Independent Reference Model . . . . . . . . . . . . . . . . . . . . . . 54
8.2.2 Les mod`eles analytiques . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.2.3 La formule de Che . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
8.3 Autres politiques de remplacement . . . . . . . . . . . . . . . . . . . . . . . 57
8.3.1 Le cache Random . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
8.3.1.1 Relation entre taux de hit et temps moyen de s´ejour . . . . 57
8.3.1.2 Approximation de Fricker . . . . . . . . . . . . . . . . . . . 59
8.3.1.3 Approximation de Gallo . . . . . . . . . . . . . . . . . . . . 60
8.3.2 Le cache LFU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
8.3.3 Comparaison des politiques de remplacement . . . . . . . . . . . . . 63
9 Les performances des hi´erarchies de caches 64
9.1 Caract´eristiques d’une hi´erarchie de caches . . . . . . . . . . . . . . . . . . 64
9.1.1 Politique de remplacement . . . . . . . . . . . . . . . . . . . . . . . . 64
9.1.2 Les politiques de meta-caching . . . . . . . . . . . . . . . . . . . . . 65
9.1.3 Les politiques de forwarding . . . . . . . . . . . . . . . . . . . . . . . 67
9.2 Performances des hi´erarchies de caches . . . . . . . . . . . . . . . . . . . . . 69
9.2.1 G´en´eralisation de la formule de Che . . . . . . . . . . . . . . . . . . 699.2.2 Cas d’application : hi´erarchie de caches avec mix de flux . . . . . . . 72
10 Conclusion 76
III Coˆuts d’une hi´erarchie de caches 77
11 Introduction 78
11.1 Probl´ematique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
11.2 Etat de l’art . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
12 Coˆut d’une hi´erarchie de caches `a deux niveaux 82
12.1 Diff´erence des coˆuts entre structures . . . . . . . . . . . . . . . . . . . . . . 83
12.2 Estimation num´erique des coˆuts . . . . . . . . . . . . . . . . . . . . . . . . . 84
12.2.1 Coˆut normalis´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
12.2.2 Solution optimale en fonction du taux de hit global . . . . . . . . . . 87
12.3 Exemple : coˆuts des torrents . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
13 Coop´eration de caches 90
13.1 Load sharing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
13.2 Caches coop´eratifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
13.3 Routage orient´e contenu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
14 Hi´erarchies alternatives 99
14.1 Coˆut d’une hi´erarchie de caches `a plusieurs niveaux . . . . . . . . . . . . . . 99
14.1.1 Evaluation des coˆuts . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
14.1.2 Coop´eration de caches . . . . . . . . . . . . . . . . . . . . . . . . . . 101
14.2 Coˆuts et politiques de remplacement . . . . . . . . . . . . . . . . . . . . . . 102
14.2.1 Politique LFU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
14.2.2 Politique Random . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
15 Conclusion 107
Conclusion g´en´erale 108Introduction gen´ erale ´
Les r´eseaux orient´es contenus
L’id´ee de passer d’un r´eseau `a connexion point `a point `a un r´eseau orient´e contenu date
de plus d’une d´ecennie. En effet le projet TRIAD 1 proposait d´ej`a une architecture ICN.
Cependant, peu de travaux ont ´et´e construits sur la base de ce projet, sans doute parce que
les contenus `a cette ´epoque n’avaient pas le mˆeme poids ´enorme qu’ils prennent actuellement
dans le trafic Internet. Quelques ann´ees apr`es, d’autres propositions commencent `a ´eclairer
la recherche dans le domaine des r´eseaux orient´es contenu.
DONA, une architecture orient´ee donn´ees a ´et´e propos´ee en 2007 par Koponen et al. [1].
Elle se base sur l’utilisation de noms autocertifi´es et incorpore des fonctionnalit´es de caching.
Plus r´ecemment l’architecture CCN a attir´e l’attention de la communaut´e scienti-
fique, alert´ee par la croissance ´enorme du trafic de distribution de contenus et le succ`es
des CDNs proposant des services payants aux fournisseurs de contenus. Les CDNs utilisent
d’une mani`ere intelligente les chemins menant aux contenus et implantent des caches partout
dans le monde afin d’acc´el´erer les t´el´echargements. Akamai reste le leader mondiale
dans ce domaine.
Les op´erateurs ne peuvent pas rester passifs dans cet univers des contenus et sont oblig´es
d’envisager une mise `a niveau de l’Internet afin de r´eduire les coˆuts engendr´es par l’augmentation
rapide du trafic de contenus, notamment de vid´eos. L’architecture CCN vient
au bon moment et suscite beaucoup d’int´erˆet de la communaut´e scientifique, d’autant plus
que celui qui propose cette architecture n’est autre que Van Jacobson tr`es connu pour des
contributions marquantes au d´eveloppement d’IP [2]. Plusieurs autres projets d’architecture
orient´ee contenu ont ´et´e propos´ees dont 4WARD/SAIL [3] et PSIRP/PURSUIT [4].
Ghodsi et al. [5] ont compar´e les diff´erentes propositions de r´eseaux ICN et ont dress´e
les points de divergences et les points communs entre ces architectures. Ils d´eplorent aussi
le peu de remise en question de l’utilisation des ICN en comparaison avec une solution
d’´evolution des CDNs.
Les architectures ICN pr´esentent plusieurs points communs de design. Les ´echanges sur
ces architecture sont bas´es sur le mod`ele publish/subsribe, le nom de l’objet est publi´e, un
objet est demand´e par l’envoi de paquet Interest. Les caches ICN sont utilis´es pour tout
1http ://gregorio.stanford.edu/triad/
1011
type de donn´ees et protocole. Ils sont ouverts `a tout utilisateur qui peut ainsi d´eposer ses
propres contenus dans les caches. Tous les noeuds du r´eseau utilisent un cache localis´e au
niveau routeur et les contenus sont s´ecuris´es ind´ependamment de leur emplacement. C’est
le serveur d’origine qui signe les contenus, et les utilisateurs peuvent v´erifier les contenus
grˆace `a leur signature publique.
Les architectures diff`erent dans certains points. Certains designs proposent la s´ecurisation
des contenus avec un m´ecanisme d’auto-certification. Dans ce cas, les contenus portent des
noms qui n’ont pas de signification ´evidente pour l’homme (un code `a plusieurs caract`eres
par exemple). La s´ecurit´e des contenus est assur´ee par la signature des objets. L’utilisateur
peut v´erifier l’authenticit´e de l’objet en validant sa signature au moyen d’une clef publique
r´ecup´er´ee grˆace aux PKI.
Le routage orient´e contenus est aussi un point de divergence entre architectures, certaines
architectures pr´econisent le routage orient´e contenus bas´e sur BGP alors que d’autres
proposent leur propre mod`ele de routage. Dans tous les cas, ce domaine reste encore mal
explor´e et pose des probl`emes s´erieux de passage `a l’´echelle.
CCN
Van Jacobson propose la nouvelle architecture d’Internet orient´ee contenu nomm´ee CCN
(Content-centric networking) [2]. Cette architecture permettrait une recherche directe d’un
contenu sans avoir `a identifier son d´etenteur, comme dans le cas des r´eseaux IP.
En effet, dans les r´eseaux IP les donn´ees sont recherch´ees par leur localisation et non pas
par leur nom. Un utilisateur cherchant une donn´ee doit avoir une information sur l’adresse
IP de la machine contenant cette information pour pouvoir la r´ecup´erer. Ce fonctionnement
pose plusieurs probl`emes de s´ecurit´e, de disponibilit´e et de complexit´e des processus de
r´ecup´eration de donn´ees.
L’architecture CCN a pour objectif de simplifier les processus de recherche. Un utilisateur
cherche une donn´ee `a travers son nom. D´es lors que la requˆete est lanc´ee, une demande
sous forme d’un paquet dit “Interest” est envoy´ee `a son routeur d’acc`es. Si la donn´ee n’est
pas pr´esente dans le content store de ce routeur, la requˆete se propage au fur et `a mesure
dans le r´eseau. Une fois la donn´ee trouv´ee, elle suit le chemin inverse de la requˆete de recherche
jusqu’`a l’utilisateur final et sera stock´ee dans un “Content Store” dans les routeurs
CCN interm´ediaires.
Cette architecture offre plusieurs possibilit´es de disponibilit´e ind´ependamment de l’adresse
d’une machine. La s´ecurit´e est associ´ee directement aux donn´ees et pas aux “conteneurs”
( liens, routeurs, serveurs,...) ce qui permet d’ajuster de mani`ere tr`es flexible le niveau
de s´ecurit´e `a la nature du contenu en question. Plus int´eressant encore, les contenus ne
sont plus associ´es `a des conteneurs pr´ecis mais peuvent ˆetre dupliqu´es `a volont´e et stock´es
notamment dans des m´emoires caches au sein du r´eseau.
Les contenus sont divis´es en “chunks”, chaque chunk ayant typiquement la taille d’un
paquet IP. CCN respecte le d´eroulement logique d’une requˆete : un utilisateur demande
une donn´ee en ´emettant des paquets de type “Interest” et re¸coit en retour des paquets
de donn´ees de type “Data”. A chaque paquet Interest correspond un seul paquet Data et12
B
Provider P1
S2
Interests
U2
S1
of Data
U1 Provider P2
A
C source
emitter of
Figure 1 – Un segment du r´eseau CCN reliant un utilisateur U1 `a une source S1
chaque paquet Data correspond `a un Chunk.
La figure 1 repr´esente un segment d’un r´eseau CCN. Pour r´ecup´erer des donn´ees du
fournisseur P2, l’usager U1 envoie des paquets “Interest” pour le contenu demand´e au
travers des routeurs A et B. Supposant que les Content Stores de A et B ne contiennent
pas le document demand´e, les paquets Data suivent le chemin inverse de S1 vers U1 en
passant par B et A.
Pour g´erer l’envoi des donn´ees, trois types de m´emoires sont utilis´ees au niveau de
chaque noeud :
• Content Store : Dans cette base de donn´ees sont stock´es des objets physiquement.
• Pending Interest Table (PIT) : Dans cette table sont stock´es les noms des donn´ees et
les interfaces demandeuses correspondantes.
• FIB : par analogie avec IP, le FIB dans CCN stocke les pr´efixes des noms des donn´ees
ainsi que les prochaines interfaces `a emprunter pour arriver `a la donn´ee. Cette table
est enrichie `a travers les d´eclarations de d´etention de donn´ees par les noeuds du
r´eseau.
Dans CCN il n’y a nul besoin d’acheminer les adresses source et destination `a travers
le r´eseau pour r´ecup´erer la donn´ee. Le format des paquets Interests et Data est explicit´e `a
la figure 2.
Selector
Nonce
Content Name
Signature
Content Name
Signed Info
Data
Interest Packet Data Packet
Figure 2 – Format des paquets CCN13
A la r´eception d’un Interest par un noeud, ce dernier v´erifie si le chunk demand´e existe
dans son Content Store. Si c’est le cas, le paquet Data sera envoy´e `a l’interface demandeuse.
Sinon le chunk demand´e sera recherch´e dans le PIT. S’il est trouv´e, l’interface demandeuse
sera rajout´ee au PIT. Si les deux bases de donn´ees ne fournissent aucune information, on
cherchera dans le FIB si une entr´ee matche avec le chunk recherch´e. Alors le paquet Interest
sera achemin´e vers les interfaces conduisantes `a la donn´ee. La table PIT sera mise `a jour
avec une nouvelle entr´ee pour le chunk en question.
A la r´eception d’un paquet Data par un noeud, une recherche est effectu´ee dans le
Content Store. Si une entr´ee matche, alors le paquet re¸cu est supprim´e, car ceci implique que
le chunk est d´ej`a livr´e `a toutes les interfaces demandeuses. Sinon la donn´ee sera recherch´ee
dans le PIT. Si une entr´ee matche avec la donn´ee re¸cue, elle sera achemin´ee vers les interfaces
demandeuses. Le chunk sera typiquement stock´e en mˆeme temps dans le Content Store.
image
video
1,0
1
video
......
......
file
0
0
0
0
video
fichier 3
2
1
image
video
1
2
image
data
......
A .......
C
Interest[video]
FIB(A)
Content Store(C)
Interest[image]
Interest[video]
B D
FIB(B)
PIT(B)
Interest[image]
Content Store(D)
Figure 3 – La recherche des donn´ees dans CCN
Dans l’exemple de la figure 3, le noeud A cherche les chunks “video” et “image”. Le FIB
du noeud A indique que les paquets Interests doivent ˆetre achemin´es vers l’interface 0 et 1
pour l’image, et vers l’interface 1 pour la vid´eo. A la r´eception de l’Interest demandant la
vid´eo par le noeud B, ce dernier ignore l’Interest re¸cu car le PIT contient d´ej`a une entr´ee.
Cette entr´ee est mise `a jour. Cependant, quand le noeud B re¸coit l’Interest demandant
l’image, il l’envoie `a l’interface 1 indiqu´ee par le FIB. Le noeud D, par la suite, achemine la
donn´ee vers le noeud A. Cette donn´ee sera stock´ee dans tous les Content Stores des noeuds
l’ayant re¸cu ou transit´e.
Le s´equencement des paquets est ´etabli grˆace aux noms des chunks. Ces derniers sont
organis´es d’une fa¸con hi´erarchique. Ainsi, pour demander un segment il faut indiquer le14
nom hi´erarchique du chunk demand´e dans le paquet Interest. Le FIB d´etermine l’interface
de sortie ad´equate grˆace `a un algorithme “longest prefixe match”.
La gestion du trafic
La gestion du trafic consiste `a contrˆoler le partage de la bande passante des liens afin
d’assurer la qualit´e de service des diverses applications. Le partage ´equitable de la bande
passante entre flots r´epond aux exigences des flux sensibles `a d´ebit faible et prot`ege les flux
adaptatifs des flux gourmands. La gestion du trafic dans les r´eseaux IP a fait l’objet de
plusieurs travaux de recherches, mais jusqu’`a pr´esent aucune solution enti`erement satisfaisante
n’a ´et´e trouv´ee.
Jacobson et al. proposent un mod`ele CCN bas´e sur un ´echange Interest/Data : pour
recevoir un paquet Data, l’utilisateur devrait envoyer un paquet Interest. Ils assurent que
ce m´ecanisme r´ealise une bonne gestion de trafic. Ceci est insuffisant en r´ealit´e. Tous les
utilisateurs n’utilisent pas un protocole de transport unique ; ce dernier peut ˆetre modifi´e
par l’utilisateur final. Il est alors n´ecessaire de d´efinir des m´ecanismes pour g´erer le partage
de la bande passante. La d´etection de rejets par num´eros de s´equences des paquets
n’est plus applicable sur CCN ; l’utilisation des multipaths et multichemins change l’ordre
des paquets, et le timeout ne suffit pas pour assurer de bonnes performances du protocole
de transport. D’autre part, dans CCN, l’utilisateur ne peut plus utiliser un protocole de
transport multipath car il ignore les destinations possibles de ces paquets.
En plus des diff´erences entre CCN et IP en termes de mod`ele d’´echange de donn´ees, les
CCN impl´ementent des caches au niveau de chaque routeur. Ainsi, l’utilisation des caches
r´eduit la consommation de bande passante, et les d´elais de transmission.
Contributions de la th`ese
Le rapport est structur´e comme suit :
• Gestion du trafic dans les r´eseaux orient´es contenus : Nous proposons des m´ecanismes
pour g´erer les flots dans CCN, en identifiant les flots par le nom d’objet, et en adaptant
le Fair queuing `a CCN. Nous proposons un m´ecanisme Interest Discard pour prot´eger
les op´erateurs des rejets de Data, un nouveau mod`ele de tarification, une d´etection
rapide des rejets pour contrˆoler les fenˆetres des protocoles de transport, et nous
´evaluons les performances des Multipaths. Nous ´evaluons les m´ecanismes propos´es
par simulation et exp´erimentation.
• Performance des caches : Nous ´evaluons les types des contenus, leur taille, et leur loi
de popularit´e. Nous utilisons la formule de Che comme mod`ele analytique fiable pour
mesurer les taux de hit des caches LRU, nous adaptons cette formule au cas Random,15
nous ´evaluons le taux de hit d’une hi´erarchie `a deux niveaux, et nous proposons une
diff´erentiation de stockage de donn´ees pour am´eliorer la probabilit´e de hit.
• Coˆuts des hi´erarchies de caches : Nous cherchons un optimum pour un tradeoff bande
passante/m´emoire, nous effectuons une estimation des couts, nous appliquons les
calculs `a un cas r´eel de donn´ees de type torrents et nous comparons les performances
d’une hi´erarchie coop´erative et non-coop´erative.
Le travail de th`ese a contribu´e `a la r´edaction des articles suivants :
• S. Oueslati, J. Roberts, and N. Sbihi, Flow-Aware traffic control for a content-centric
network, in Proc of IEEE Infocom 2012.
• C. Fricker, P. Robert, J. Roberts, and N. Sbihi, Impact of traffic mix on caching performance
in a content-centric network, in IEEE NOMEN 2012, Workshop on Emerging
Design Choices in Name-Oriented Networking
• J. Roberts, N. Sbihi, Exploring the Memory-Bandwidth Tradeoff in an InformationCentric
Network, International Teletraffic Congress, ITC 25, Shanghai, 2013.Premi`ere partie
La gestion du trafic dans les
r´eseaux orient´es contenus
16Chapitre 1
Introduction
1.1 Probl´ematique
Jacobson et al [2] remettent en cause l’architecture TCP/IP en constatant qu’il est n´ecessaire
de mettre en place une nouvelle architecture Internet r´epondant mieux `a la croissance exponentielle
de la demande pour des contenus de tous types. Con¸cu au d´ebut pour des
´echanges simples, l’Internet devient en effet le moyen incontournable pour consulter les
sites du Web, ´echanger vid´eos et audios, et partager des fichiers. Son utilisation ayant
´evolu´e, son architecture devrait suivre.
Plusieurs projets sont consacr´es `a la conception du r´eseau du futur. La proposition CCN
de Jacobson et al. [2] est une des plus cr´edibles et a fait l’object de nombreuses ´etudes. Nous
avons constat´e cependant que la d´efinition de cette nouvelle architecture reste incompl`ete,
notamment en ce qui concerne la gestion du trafic. L’objet de la pr´esente partie du rapport
est de d´ecrire nos ´etudes sur cette question.
Le contrˆole de trafic est essentiel afin d’assurer aux flots audios et vid´eos des d´elais
faibles mˆeme quand ils partagent la bande passante avec des flots de donn´ees `a haut d´ebit. Il
importe ´egalement d’empˆecher d’´eventuels “flots gourmands” d’alt´erer la qualit´e des autres
flots en s’accaparant une part excessive de la bande passante des liens qu’ils partagent.
Nous pouvons diviser les axes de recherches concernant la gestion du trafic en 3 volets :
• Le partage de bande passante. Dans CCN comment faut il partager la bande passante
entre flots et comment identifier un flot quand les adresses IP ne sont plus utilis´ees
dans les paquets ? Comment exploiter la particularit´e des r´eseaux CCN, dite de “flow
balance”, o`u les paquets Data suivent exactement le chemin inverse des paquets Interest.
• Le protocole de transport. La conception d’un protocole de transport sous CCN est
plus compliqu´e qu’en IP. En effet, nous ne pouvons plus prendre en compte la succession
des num´eros de s´equence des paquets comme garantie de non congestion, car,
sous CCN mˆeme sans congestion les paquets ne se suivent pas forc´ement. Un flot ne
1718 1.2. ETAT DE L’ART
se dirige pas vers une destination particuli`ere et unique. Les paquets Data peuvent
venir de n’importe quelle source de donn´ees, y compris des caches, et peuvent suivre
des chemins diff´erents.
• Multipath et multisource. Sous CCN le t´el´echargement des objets de sources multiples
devient une opportunit´e int´eressante pour augmenter les d´ebits. Cette multiplicit´e
a l’avantage de pouvoir am´eliorer les d´ebits de t´el´echargment. Cependant, il y a
´egalement un inconv´enient car, les paquets empruntant plusieurs chemins diff´erents,
l’opportunit´e d’exploiter les caches devient plus faible.
1.2 Etat de l’art
Lorsque nous avons fait les ´etudes pr´esent´ees dans cette partie, `a partir du Chapitre 2, il
n’y avait pas de publications qui abordaient les questions mentionn´ees ci-dessus. Cet ´etat
de fait a chang´e depuis et dans la pr´esente section nous ´evoquons quelques articles dont les
propositions peuvent mettre en cause nos choix.
1.2.1 Contrˆole du trafic au coeur du r´eseau
Nous proposons, dans le chapitre 2, la mise en oeuvre dans les files d’attente des routeurs
d’un ordonnancement de type Deficit Round Robin (DRR) afin d’assurer l’´equit´e du partage
de bande passante. Nous associons `a cet ordonnancement un m´ecanisme “Interest discard”
de rejet s´electif de paquets Interest dans la direction inverse. D’autres ont propos´e d’assurer
l’´equit´e du partage en ordonnan¸cant plutˆot les flots de paquets Interest dans un m´ecanisme
dit “Interest shaping”. Dans ce cas, les paquets Data sont achemin´es dans une simple file
FIFO.
Dans [6], Fdida et al. d´ecrivent un m´ecanisme d’Interest shaping impl´ement´e au niveau
de chaque routeur CCN. La file de transmission des paquets Data est observ´ee et un seuil
de remplissage est fix´e. Le d´ebit des paquets Interest est r´egul´e suivant le d´ebit des paquets
Data et en tenant compte de la diff´erence entre la taille de la file d’attente et le seuil.
Ainsi les paquets Interest peuvent ˆetre retard´es si le nombre de paquets Data stock´es en
file d’attente d´epassent le seuil.
Dans l’article [7], Gallo et al. proposent un m´ecanisme d’Interest shaping presque identique
`a la nˆotre sauf que les paquets Interest subissent un retard d’envoi en cas de congestion
afin de limiter leur d´ebit. Des files virtuelles accueillent les paquets Interest selon l’objet
recherch´e et un compteur est attribu´e `a chaque file.
Les m´ecanismes d’Interest shaping peuvent provoquer des pertes de d´ebits dans certains
sc´enarios. Dans l’exemple de la figure 1.1, si on applique l’Interest shaping sur tout le trafic
on va retarder les paquets Interest ind´ependamment de leur appartenance aux flots. On va
alors transmettre plus de paquets Interest du flot2 que du flot1. Sachant que le flot 2 sur le
lien suivant perd en bande passante puisque la capacit´e du lien est inf´erieur `a la capacit´e
du lien emprunt´e par le flot 1, cette situation particuli`ere entraine une perte en capacit´e.
Il nous semble que notre choix d’agir directement sur le flux de donn´ees en imposant
l’´equit´e par ordonnancement DRR est plus robuste. l’Interest discard n’intervient alorsCHAPITRE 1. INTRODUCTION 19
Client ccn node
Serveur1
Serveur2
3Mb
3Mb
1Mb
Flow1
Flow2
Figure 1.1 – Exemple illustrant la perte en d´ebit en utilisant le shaping sans classification
par flot
que comme m´ecanisme de contrˆole secondaire permettant le routeur de ne pas inutilement
demander des paquets Data qui ne peuvent pas ˆetre achemin´es `a cause de la congestion
sur la voie descendante. Il est notable aussi que le m´ecanisme d’Interest discard s’int`egre
naturellement avec l’ordonnancement DRR dans la mˆeme “line card”.
1.2.2 Protocole de transport
Dans notre proposition, le protocole de transport n’est pas critique car le contrˆole d’´equit´e
du partage est r´ealis´e par ordonnancement DRR. D’autres ont propos´e plutˆot de maintenir
de simples files FIFO en se fiant au protocole de transport pour le contrˆole d’´equit´e.
Dans IP deux moyens permettent de d´etecter un rejet de paquet : les num´eros de
s´equences des paquets s’ils ne se suivent pas ou le timeout si le d´elai d’acquittement
d´epasse un seuil. Dans CCN les paquets Data, mˆeme s’ils ne subissent aucun rejet, n’ont
pas forc´ement le bon ordre puisque les paquets peuvent ˆetre re¸cus de plusieurs sources
diff´erentes. D’autre part le timeout calcul´e sur la base du RTT change tout le temps et ceci
pourrait conduire `a des timeouts inopin´es.
Gallo et al. [8] d´efinissent un protocole de transport d´enomm´e ICP (Interest Control
Protocol). Ils proposent la d´etection de rejet par timeout mais en mettant `a jour r´eguli`erement
le seuil de temporisation selon un historique. CCN dans ses premi`eres versions proposait
un timeout fixe ce qui sanctionnait lourdement les flots en n´ecessitant une attente excessive
avant de d´etecter les rejets. Vu que les RTTs peuvent varier dans CCN non seulement `a
cause de la congestion, mais, du fait qu’on peut r´ecup´erer les objets de plusieurs sources,
cette d´etection par timeout semble difficile `a mettre en oeuvre.
Dans notre approche, d´etaill´ee plus loin, nous proposons un m´ecanisme de notification
explicite de congestion qui permettrait une d´etection rapide de congestion sans besoin de
timeout.
1.2.3 Multipath et multisource
Dans CCN, un utilisateur ne peut pas connaitre d’avance les chemins emprunt´es par les
paquets, car les paquets Interest ne contiennent que le nom de l’objet et le num´ero du20 1.2. ETAT DE L’ART
paquet demand´e, sans aucune pr´ecision sur la destination. La difficult´e alors de d´etecter
ou de s´eparer les chemins rend l’utilisation des protocoles de type MPTCP (multipath
TCP) quasiment impossible. De ce fait, on ne peut pas utiliser une fenˆetre par chemin car
l’utilisateur n’a aucun moyen d’acheminer ses paquets en suivant un chemin pr´ecis. Ce sont
les routeurs qui choisissent le chemin d’un paquet Interest.
Gallo et al. [7] proposent un couplage entre protocole de transport multipath et un
m´ecanisme de forwarding au niveau des routeurs. Ils adaptent le protocole ICP au cas
multipath en collectant les RTT venant de diff´erents chemins. En effet, un paquet Interest
ne peut pas “savoir” `a l’avance vers quel chemin il serait achemin´e, mais, une fois achemin´e
par le r´eseau, un paquet Data “connait” surement le chemin qu’il a emprunt´e. Le r´ecepteur
peut donc identifier et enregistrer les chemins emprunt´es par les paquets. Ceci permet
notamment d’estimer le RTT de chaque chemin.
Cette approche nous paraˆıt lourde `a mettre en oeuvre. Dans notre proposition, on
envisage l’utilisation de multipaths mais l’imposition d’un ordonnancement DRR par flot
rend inefficace les m´ecanismes de coop´eration `a la MPTCP. Nous envisageons donc d’autres
m´ecanismes pour ´eviter les ´ecueils d’un contrˆole de congestion ind´ependant par chemin.
Cependant, nous notons ´egalement que le gain de d´ebit dˆu `a l’utilisation simultan´ee de
plusieurs chemins n’est r´ealisable que par des flots ne subissant pas de limitation au niveau
de l’acc`es. Cette observation nous m`ene `a croire qu’un seul chemin, judicieusement choisi,
peut largement suffire dans la grande majorit´e des cas.
Par ailleurs, Rossini et al. [9] identifie un ph´enom`ene de “pollution” des caches caus´e par
l’utilisation des multipaths. Leurs r´esultats montrent des taux de hit nettement inf´erieurs
en cas d’utilisation de chemins multiples, dˆu `a l’´eparpillement des copies de paquets dans
les diff´erents caches.Chapitre 2
Partage de bande passante
L’utilisation des caches au sein des CCN contribue `a l’am´elioration des d´elais de t´el´echargement
et r´eduit les probl`emes de congestion. Mais la demande en trafic est en augmentation permanente,
et il reste n´ecessaire d’utiliser des m´ecanismes de gestion du trafic.
En effet, le contrˆole de congestion est n´ecessaire pour assurer des d´elais n´egligeables pour
les flots voix et vid´eos, et pour ´eviter une consommation abusive de la bande passante par
des flots agressifs. Des travaux ant´erieurs sur le r´eseau IP sugg`erent que le partage de bande
passante par flot impos´e par un ordonnancement dans les routeurs est une solution efficace.
Il r´ealise en effet une diff´erentiation de service implicite et assure de bonnes performances.
Les flots dans les CCN peuvent ˆetre identifi´es selon l’objet recherch´e et il est possible ainsi
d’appliquer une politique de congestion orient´ee flot.
Pour g´erer le trafic et ´eviter la congestion, nous adoptons donc une politique “flowaware”
o`u les actions de gestion tiennent compte de l’appartenance des paquets `a des flots.
Nous pensons que ceci est pr´ef´erable `a un contrˆole de congestion o`u la performance d´epend
d’un protocole mis en oeuvre dans l’´equipement des utilisateurs, comme dans le r´eseau
IP actuel. En effet, rien ne garantit l’utilisation fid`ele de ce protocole. De plus, plusieurs
variantes de TCP qui voient le jour le rendant de plus en plus agressif vis `a vis des versions
ant´erieures.
2.1 Identification des flots
Dans IP, un flot est d´efini par les adresses IP et les num´eros de port ; cela correspond
typiquement `a une requˆete pr´ecise et sp´ecifique. Dans un CCN, au niveau de l’interface
r´eseau, on ne peut acheminer qu’une seule demande pour le mˆeme objet. Un CCN utilise
le multicast en envoyant l’objet re¸cu `a toutes les interfaces indiqu´ees dans la PIT. Nous
identifions un flot grˆace aux noms de l’objet recherch´e et le fait que les paquets sont observ´es
au mˆeme point du r´eseau et sont rapproch´es dans le temps.
La figure 2.1 montre le format de l’entˆete des paquets en CCN. Les paquets Data et
Interest portent le mˆeme nom d’objet mais, actuellement, il n’y a pas moyen de parser
2122 2.2. CACHES ET FILES D’ATTENTE
chunk name
user supplied name version chunk number other fields
object name
Figure 2.1 – Format des paquets CCN
ce nom car c’est le ‘chunk name’ qui identifie un paquet data. Le champ ‘object name’
pourrait ˆetre analys´e afin d’identifier d’une fa¸con unique les paquets correspondants `a la
demande d’objet mais ceci n´ecessiterait une modification du code CCNx.
2.2 Caches et files d’attente
La d´eclaration faite dans l’article de Van Jacobson que “LRU remplace FIFO” semble
ˆetre inexacte. Une file d’attente ne peut jouer le rˆole d’un cache, et vice versa, puisque
la file d’attente devrait ˆetre de taille faible pour permettre un acc`es rapide `a la m´emoire,
alors qu’un cache devrait ˆetre de taille grande mˆeme si le temps d’acc`es est plus lent. On
d´emontre ceci par des exemples.
On consid`ere une politique d’ordonnancement id´eal (LFU) o`u les objets les plus populaires
sont stock´es dans un cache de taille N. L’impl´ementation d’une telle politique est
possible selon [10]. On consid`ere des applications g´en´erant la majorit´e du trafic Internet
comme YouTube et BitTorrent. La popularit´e des objets de ces applications suit la loi Zipf
de param`etre α, c’est `a dire que la popularit´e du i
eme ` objet le plus populaire est proportionnelle
`a i
−α. Des observations rapport´ees dans les articles [11] et [12] placent ce param`etre
`a 0.75 environ. On consid`ere que les objets ont tous la mˆeme taille et que le catalogue est
de M objets.
La probabilit´e de hit global h pour une politique LFU peut ˆetre exprim´ee par :
h =
PN
i=1 i
−α
PM
i=1 i−α
.
Si on consid`ere un catalogue et une taille de cache assez grands, on a h ≈
N
M
1−α
.
Pour 100 millions vid´eos Youtube de taille 4MB [13] il faut 640 GB de m´emoire pour
un taux de hit de 20 % ou de 25 TB de m´emoire pour un taux de hit de 50 %. Pour 400
000 torrents avec une taille moyenne de 7 GB, il faut 4 TB pour un taux de hit de 20 %,
ou de 175 TB de m´emoire pour un taux de hit de 50 %.
Par ailleurs, la taille d’une file d’attente est au maximum ´egale au produit de la bande
passante par le d´elai RTT [14] ; pour un lien `a 10 Gb/s et un d´elai de 200 ms, la taille d’une
file d’attente est donc de l’ordre de 300 MB.
Il est donc clairement n´ecessaire de distinguer deux m´emoires diff´erentes : des m´emoires
cache de grande taille pour le stockage des donn´ees, et une file d’attente de taille beaucoup
moins importante et avec un acc`es rapide.CHAPITRE 2. PARTAGE DE BANDE PASSANTE 23
Le contrˆole du trafic s’appuie sur la gestion des files d’attente. Il est donc important
´egalement pour cette raison de bien reconnaˆıtre la distinction entre ces files et le Content
Store.
2.3 Le principe du flow aware networking
Afin de prot´eger les flots sensibles audio et vid´eo, des techniques pour la gestion de la QoS
comme Diffserv et Intserv ont ´et´e propos´ees. Le marquage de paquets dans Diffserv est une
technique qui a ´et´e impl´ement´ee pour prioriser les flots voix ou vid´eo. Cependant, c’est une
technique qui reste complexe `a mettre en oeuvre et sujette `a une possibilit´e de modification
illicite du marquage. Il est bien connu par ailleurs que les approches orient´ees flots d’Intserv
sont trop complexes et ne passent pas `a l’´echelle.
On pourrait ´eventuellement prot´eger les flots sensibles et assurer une certaine ´equit´e
dans le partage des ressources en utilisant un protocole de transport comme TCP. Cependant,
l’utilisateur garde dans tous les cas une possibilit´e de modifier les impl´ementations
ou bien d’utiliser des versions agressives de TCP.
Nous pensons que le flow aware networking, d´eja propos´e pour les r´eseaux IP peut ˆetre
adapt´e aux r´eseaux CCN. Ceci consiste `a mettre en place deux fonctionnalit´es :
1. le partage ´equitable de bande passante par flot,
2. le contrˆole de surcharge.
Nous d´eveloppons ces deux points ci-dessous.
2.3.1 Partage des ressources dans les CCN
Le partage ´equitable de la bande passante offre plusieurs avantages tr`es connus (voir [15],
[16], [17] et [18]). Nous citons `a titre d’exemple :
• les flots ´emettant des paquets `a un d´ebit inf´erieur au d´ebit ´equitable ne subissent pas
de rejets de paquets.
• les flot sensibles (conversationnels et streaming) ayant g´en´eralement des d´ebits faibles
sont prot´eg´es et b´en´eficient d’un service de diff´erentiation implicite,
• les flots agressifs ne gagnent rien en ´emettant des paquets trop rapidement car leur
d´ebit ne peut d´epasser le d´ebit ´equitable.
Pour une utilisation ´equitable de la bande passante, et pour prot´eger les flot sensibles,
nous proposons que le r´eseau CCN assure lui-mˆeme le partage ´equitable des ressources
r´eseau. Les avantages de cette technique ont ´et´e largement d´evelopp´es dans les articles
pr´ecit´es ; elle peut s’adapter parfaitement aux r´eseaux CCN.
Pour le partage ´equitable des ressources, nous avons revu plusieurs propositions. Nous
comparons par simulations certains protocoles fair drop, et un protocole fair queuing. On
consid`ere un lien `a 10 Mb/s partag´e par les flux suivants :24 2.3. LE PRINCIPE DU FLOW AWARE NETWORKING
• TCP1 : facteur AIMD=1/2, RTT=10ms
• TCP2 : facteur AIMD=1/2, RTT=30ms
• TCP3 : facteur AIMD=1/2, RTT=50ms
• CBR : flux `a d´ebit constant de 3Mb/s
• Poisson : Un flux poissonien de paquets repr´esentant la superposition d’un grand
nombre de flux de faible d´ebit. La figure 2.2 pr´esente les r´esultats obtenus.
0
1
2
3
4
5
Tail Drop Fred Afd
tcp0
tcp1
tcp2
cbr
Poisson
(a) Algorithmes Fair drop
0
1
2
3
4
5
Fair Queuing
Throughput(Mb/s)
tcp0
tcp1
tcp2
cbr
Poisson
(b) Fair queuing
Figure 2.2 – Comparaison des protocoles fair drop et du protocole Fair queuing
Il est clair que le fair queuing est l’algorithme le plus efficace. Il a ´egalement l’avantage
d’ˆetre sans param`etre. Son passage `a l’´echelle a ´et´e d´emontr´e `a condition d’assurer
´egalement un contrˆole de surcharge.
En effet, il a ´et´e d´emontr´e dans [19] que le nombre de flots ne d´epasse pas quelques
centaines si la charge du r´eseau reste inf´erieur `a 90 %, une valeur de charge au-dessus
des exigences des op´erateurs. Le d´ebit ´equitable pour un lien de capacit´e C et de
charge ρ est estim´e `a C(1 − ρ) [20]. Dans un r´eseau `a charge normale (ne d´epassant
pas 90 %) ce d´ebit est largement suffisant pour les flots streaming et conversationnels.
Le partage ´equitable n’est pas un objectif en soi, mais un moyen d’assurer un d´ebit
acceptable et de prot´eger les flots adaptatifs des flots gourmands. Ainsi, tout flot ne
d´epassant pas le d´ebit ´equitable ne subit aucun rejet de paquet dont le d´elai est tr`es
faible. C’est aussi un moyen automatique pour assurer un fonctionnement normal sur
Internet sans se soucier des comportements de l’utilisateur final.
Notons que la possibilit´e de contourner l’imposition d’un partage ´equitable par la
g´en´eration de multiples flots au lieu d’un seul est tr`es limit´ee [21]. Tr`es peu d’usagers
peuvent en fait ´emettre du trafic `a un d´ebit plus fort que le d´ebit ´equitable. Le d´ebit
pour la plupart des usagers est limit´e par leur d´ebit d’acc`es. De plus, dans un r´eseauCHAPITRE 2. PARTAGE DE BANDE PASSANTE 25
CCN o`u les flots sont d´efinis par le nom de l’objet, la possibilit´e de d´emultiplier les
flots est beaucoup plus limit´ee qu’en IP.
Nous proposons l’utilisation d’un algorithme d’ordonnancement comme DRR [22]
o`u les files par flot sont mod´elis´ees par des listes chain´ees utilisant une structure
nomm´ee ActiveList. Il a ´et´e d´emontr´e que le nombre de flots dans ActiveList est limit´e
`a quelques centaines pour une charge ne pas d´epassant 90%, ind´ependamment de la
capacit´e du lien C [19]. Ces r´esultats d´emontrent le “scalabilit´e” de l’ordonnancement
DRR.
2.3.2 Contrˆole de surcharge
La demande en trafic est le produit du d´ebit d’arriv´ee des flots par la taille moyenne
d’un flot. On dit qu’un r´eseau est en surcharge si la demande d´epasse la capacit´e du
lien. Dans ce cas, le r´eseau est instable : le nombre de flots en cours croˆıt et leur d´ebit
devient tr`es faible.
Le partage ´equitable de la bande passante par flot n’est donc scalable que si la charge
du lien (demande divis´ee par la capacit´e du lien) est normale. On consid`ere la valeur
maximale d’une charge normale ´egale `a 90%. Si la charge du r´eseau d´epasse 90%, le
nombre de flots devient trop grand et donc lourd `a g´erer.
Pour contrˆoler la charge, on pourrait mettre en place un m´ecanisme de contrˆole
d’admission. Ceci consiste `a ´eliminer tout nouveau flot d`es que la charge du r´eseau
atteint une valeur maximale. Pour ceci, il faut sauvegarder une liste de flots en cours
et ´ecarter tout nouveau flot arrivant. Cependant, pour un r´eseau bien dimensionn´e,
le probl`eme de surcharge ne se pose qu’en certains cas rares, comme par exemple une
panne sur un lien r´eseau.
Pour CCN, plutˆot qu’un contrˆole d’admission complexe et peu utilis´e, nous proposons
la simple suppression des paquets d’une certaine liste de flots afin de r´eduire le niveau
de charge. Cette liste pourrait ˆetre d´efinie de mani`ere arbitraire (par une fonction hash
sur l’identit´e du flot) ou, si possible, de mani`ere plus s´elective en n’incluant que les
flots les moins prioritaires.Chapitre 3
Mecanismes pour CCN ´
3.1 M´ecanismes pour les utilisateurs
L’usager dans un CCN doit participer `a la gestion du trafic en modulant la vitesse
`a laquelle il envoie les Interests pour les chunks d’un mˆeme objet. L’utilisation du
protocole de transport adaptatif dans un r´eseau CCN ´equip´e de l’ordonnancement
DRR n’est pas n´ecessaire pour assurer le bon fonctionnement du r´eseau. Cependant,
nous recommandons l’utilisation d’un protocole adaptatif pour ´eviter les r´e´emissions
multiples, dues aux rejets Interest.
3.1.1 D´etection des rejets
Nous proposons pour l’utilisateur un m´ecanisme de d´etection rapide de rejet dont
voici la description. Si un paquet est rejet´e au niveau de la file d’attente en raison de
sa saturation ou en raison d’une politique de gestion de la file d’attente, on envoie
`a l’utilisateur l’entˆete du paquet data sans le payload. L’utilisateur, en recevant un
paquet data de payload nul, sait que le paquet a ´et´e rejet´e, et donc r´eajuste la vitesse
d’´emission des Interests pour ´eviter l’accumulation de r´e´emissions inutiles. Mieux
encore, une modification peut ˆetre apport´ee `a l’entˆete du paquet data afin de pr´eciser
qu’il correspond `a un discard.
Cette technique de d´etection de rejet est particuli`erement int´eressante dans les CCN,
puisqu’on ne peut pas se baser sur le s´equencement des paquets. En effet, contrairement
`a TCP/IP, deux paquets qui se suivent `a l’origine ne se suivent pas forc´ement
`a la r´eception, car la source d’une donn´ee n’est pas forc´ement unique, et le chemin
n’est pas forc´ement le mˆeme pour tous les paquets.
Actuellement, dans l’impl´ementation CCNx, la d´etection est faite uniquement en se
basant sur le timeout. Ceci reste tr`es impr´ecis, et peut poser des probl`emes. A titre
26CHAPITRE 3. MECANISMES POUR CCN ´ 27
d’exemple, avec un timeout fixe, comme c’est le cas de CCNx dans ses premi`eres
versions, une d´etection de rejet ne correspond pas forc´ement en fait `a un rejet, mais `a
un temps de propagation et de transmission d´epassant le timeout. R´eduisant la fenˆetre
dans un tel cas ne fait que d´et´eriorer les d´ebits des flots malgr´e la disponibilit´e de la
capacit´e dans les liens.
Un protocole de transport efficace arrive `a d´etecter rapidement les rejets. Ceci devient
plus difficile lorsque le protocole de transport connecte l’utilisateur `a deux sources ou
plus. Dans CCN, un utilisateur ne peut savoir `a l’avance s’il est servi par deux sources,
car la seule donn´ee qu’il d´etient est le nom d’objet. De plus, toute l’architecture du
r´eseau et la localisation des serveurs de donn´ees sont invisibles pour lui, ce qui est
le but de CCN. L’article de Carofiglio et al. [8] apporte une r´eponse `a ce probl`eme.
En utilisant un historique un peu large, on collecte des informations statistiques sur
le nombre de chemins utilis´es ainsi que les RTT recens´es pendant les ´echanges, et
on construit, sur la base de ces informations, un protocole de transport multipath
efficace.
En tous les cas, nous sommes peu favorables `a l’utilisation des multipaths et multisources.
Les liens r´eseaux ont des capacit´es tellement grandes que le d´ebit d’un seul
flot ne peut gu`ere atteindre la capacit´e du lien. Le d´ebit des flots est limit´e en fait
par le d´ebit d’acc`es au r´eseau qui est faible par rapport au d´ebit des liens au coeur de
r´eseau. Donc, un seul lien non surcharg´e est largement suffisant pour q’un flot r´ealise
son d´ebit maximal. Par contre, nous sommes favorables `a des m´ecanismes de load
balancing en cas de surcharge de certains liens, ce qui devrait ˆetre assez exceptionnel
dans un r´eseau bien dimensionn´e.
Avec la d´etection rapide des rejets, le paquet Interest qui a subi le discard est transform´e
en paquet data sans payload, avec ´eventuellement une modification l´eg`ere de
l’entˆete afin de signaler le discard. Le paquet traverse le chemin inverse en supprimant
au fur et `a mesure les entr´ees correspondantes `a la PIT. A la r´eception du paquet
data, l’utilisateur ou les utilisateurs corrigeront le probl`eme d´etect´e en adaptant au
mieux le d´ebit d’´emission selon le protocole de transport.
3.1.2 Protocole de transport
Dans le cas d’un ordonnancement fair queuing, l’utilisateur ne gagne pas en bande passante
en ´etant tr`es agressif. Les r´e´emissions multiples d’Interest sont une cons´equence
directe d’un protocole de transport agressif ne prenant pas en compte le feedback
r´eseau. Si le fair sharing est impos´e, comme nous l’avons sugg´er´e, le protocole de
transport n’est plus vu comme un outil pour r´ealiser le partage de bande passante.
Le plus simple serait d’envoyer des paquets Interest `a d´ebit constant, mais dans ce
cas, le r´ecepteur devrait g´erer une large liste de paquets Interest en attente.
Nous proposons plutˆot un protocole AIMD (additive increase/multiplicative-decrease)
comme TCP avec d´etection rapide de perte et en utilisant une fenˆetre adaptative
CWND (Congestion Window). Le nombre de paquets Interest d’un flot qui transite28 3.2. MECANISMES POUR OP ´ ERATEURS ´
dans le r´eseau ne doit pas d´epasser la taille de la fenˆetre CWND. A la d´etection d’un
rejet par d´etection rapide ou timeout, la fenˆetre est r´eduite suivant un facteur ; plus ce
facteur est proche de 1, plus le protocole est aggressif. En absence de perte, la fenˆetre
CWND croˆıt lin´eairement selon un certain taux. Encore, plus ce taux est grand, plus
le protocole est aggressif.
3.2 M´ecanismes pour op´erateurs
En plus de l’ordonnancement “fair queuing”, nous envisageons un m´ecanisme pr´eventif
de rejet d’Interest. L’op´erateur devrait ´egalement exploiter les sources multiples de
certaines donn´ees en appliquant une strat´egie d’acheminement adapt´ee.
3.2.1 Motivation ´economique
Il est important de mettre en place une motivation ´economique pour encourager
l’op´erateur `a d´eployer cette nouvelle architecture. Il est ´egalement important que le
fournisseur de r´eseau soit r´emun´er´e pour le trafic qu’il ´ecoule.
On consid`ere que le fournisseur devrait ˆetre pay´e pour les data envoy´es ; par exemple,
dans la figure 3.1, l’utilisateur U1 paye le fournisseur P1 pour les data qu’il fournit, et
P1 paye P2 pour les data re¸cus. Cette approche fournit bien la motivation n´ecessaire
pour d´eployer un r´eseau CCN muni de caches, car le fournisseur, en utilisant des
caches, ne serait pas amen´e `a acheter le mˆeme contenu plusieurs fois.
Les frais devraient couvrir les coˆuts d’infrastructure (bande passante et caches), et leur
nature exacte pourrait prendre de nombreuses formes, y compris les tarifs forfaitaires
et des accords de peering.
3.2.2 Interest Discard
L’utilisateur ne paye le fournisseur que s’il re¸coit effectivement la donn´ee. Le fournisseur
doit donc assurer un contrˆole de congestion afin d’´eviter la perte des donn´ees
transmises `a ses clients. Il a int´erˆet `a rejeter les Interests en exc`es pour ´eviter de racheter
des donn´ees qui ne peuvent pas ˆetre revendues `a cause d’une congestion ´eventuelle.
Afin d’´eviter un tel probl`eme, nous proposons un m´ecanisme compl´ementaire pour
prot´eger le fournisseur.
Supposons le lien AB dans la figure 3.1 congestionn´e ; B va limiter le d´ebit des Interests
envoy´es vers le fournisseur P2 pour ´eviter d’acheter des donn´ees qui ne seront pas
revendues `a l’utilisateur final U1 puisqu’elles seront perdues `a cause de la congestion.
Nous appelons ce m´ecanisme “Interest Discard”.
On consid`ere le lien AB de la figure 3.1. A re¸coit les paquets Interest de U1 et renvoie
ces paquets vers B. B re¸coit dans l’autre sens les paquets de donn´ees r´ecup´er´es du
fournisseur P2 et applique le Deficit Round Robin sur les paquets Data envoy´es vers A.CHAPITRE 3. MECANISMES POUR CCN ´ 29
Ub
Aout Bin
Ain Bout
Interests
Data
Interests
Data
Sb Ua Sa
Figure 3.1 – Les cartes r´eseaux des routeurs A et B travers´ees par des paquets Interest et
Data
B calcule en effet un d´ebit d’´equit´e correspondant `a l’inverse du temp de cycle moyen
de DRR. Le d´ebit des Interest est limit´e par des rejets forc´es en utilisant un sceau
`a jetons. Le d´ebit des Interests est limit´e au d´ebit correspondant au d´ebit ´equitable
r´ealis´e actuellement par le DRR (tenant compte de la taille diff´erente des paquets
Interest et Data). Le sceau `a jetons est donc aliment´e au rythme de l’ordonnancement.
Notons que le DRR et le sceau `a jetons seront r´ealis´es dans la mˆeme carte r´eseau
facilitant ainsi leur couplage. Nous pr´esentons le pseudocode interest Discard, cet
algorithme doit ˆetre utilis´e au niveau de chaque interface r´eseau. Il est ex´ecut´e `a
l’arriv´ee d’un interest `a l’interface, et `a chaque cycle Round Robin incr´ementer tous
les compteurs de l’interface. Nous r´esumons ci-dessous l’algorithme ex´ecut´e au niveau
de l’interface r´eseau.
Algorithm 1 A l’arriv´ee d’un paquet interest `a l’interface r´eseau
R´ecup´erer le nom d’objet du paquet name
Calculer le hash du nom d’objet hash
if f ile[hash]∄ then
Cr´eer la file ayant comme ID hash
Attribuer un compteur count[hash] au flux
Initialiser le compteur count[hash] = b
end if
if count(hash)==0 then
rejeter l’interest i
else
count(hash)- - ;
end if
Nous adoptons le DRR comme algorithme fair queuing, il utilise un nombre fixe
de files. On note M le nombre maximal de files Round Robin30 3.2. MECANISMES POUR OP ´ ERATEURS ´
Algorithm 2 A la sortie de l’interface r´eseau
i = 0
while i < M do
if f ile[i]∃ then
Servir le premier paquet de f ile[i]
end if
if f ile[i] = ∅ et count[i] = b then
Supprimer la file physique f ile[i]
end if
for i = 0 to M − 1 do
count[i] = count[i] + 1
end for
end whileChapitre 4
Strategies d’acheminement ´
L’architecture CCN offre de nouvelles possibilit´es d’acheminement. Il est en particulier
possible d’utiliser plusieurs sources pour un mˆeme objet. Nous avons fait quelques
´etudes sur l’acheminement multi-sources. On d´emontre que les m´ecanismes de gestion
du trafic fonctionnent bien dans ce contexte. Cependant, avant de poursuivre
la recherche dans ce domaine, il est essentiel de comprendre les possibilit´es r´eelles
qu’offrirait un r´eseau CCN en fonction de sa politique de stockage. Nos ´etudes dans
cette direction sont d´ecrites dans les deux parties suivantes de ce rapport.
4.1 Multicast
Sur la figure 3.1 les utilisateurs Ua et Ub demandent le mˆeme objet stock´e au niveau
du fournisseur S1. Si les demandes se passent en mˆeme temps, une seule demande sera
enregistr´ee au niveau du routeur B et donc le flot correspondant `a l’objet demand´e
aura le mˆeme d´ebit des flots unicast dans le lien BS1. Il n’y a donc pas lieu de
distinguer ces flots dans l’ordonnanceur DRR.
Si les demandes sont d´ecal´ees dans le temps et que l’utilisateur Ua commence le
t´el´echargement des paquets avant l’utilisateur Ub, il est possible que le d´ebit accord´e
au flot soit divis´e par deux au niveau du lien BS1. Mais puisque le routeur B est
dot´e d’une m´emoire cache, il est tr`es probable que l’utilisateur Ub trouve les paquets
pr´ec´edemment t´el´echarg´es par Ua au niveau du cache B, et donc seuls les paquets
non t´el´echarg´es par U1 seront demand´es et traverseront le lien S1B. Le d´ebit des
flots multicast est donc ´egal au d´ebit des flots unicast sur toutes les branches du
r´eseau. Il suffit que le temps de t´el´echargement d’un objet soit inf´erieur au temps de
stockage de l’objet dans un cache. Encore, il n’y a pas lieu de distinguer ces flots dans
l’ordonnanceur DRR.
3132 4.2. MULTISOURCES
Il est important alors de maintenir une m´emoire sauvegardant les paquets des flots en
cours, ´evitant ainsi la division du d´ebit des flot par deux ou plus au cas o`u plusieurs
flots cherchant le mˆeme objet arrivent en mˆeme temps sur une interface r´eseau, et
que ces flot soient non synchronis´es.
4.2 Multisources
4.2.1 Protocole de transport Multipath
L’utilisation des multipaths n’a pas de sens que si les performances du r´eseau s’am´eliorent,
et que cette utilisation ne r´eduit pas le d´ebit des flots et leurs performances par rapport
`a une utilisation compl`etement unipath. Il est important de v´erifier que l’utilisation
du routage multipath ne diminue de mani`ere sensible la r´egion de stabilit´e.
Un r´eseau stable, est un r´eseau o`u les flots sont servis en un temps fini, c’est `a dire
qu’aucun flot souffre de congestion `a cause de la charge sur un lien de son chemin.
Dans un mod`ele enti`erement unipath, un r´eseau est stable `a condition que chaque
chemin r constitu´e d’un ensemble de liens L(r) et travers´e par un ensemble de flots
S v´erifie :
X
k∈S
ρk < Cl ∀l ∈ L(r).
Le fair queuing, que nous pr´econisons d’utiliser au niveau des routeurs, n’est pas
seulement b´en´efique pour prot´eger les flot gourmands, et pour r´ealiser une certaine
´equit´e entre les flots, mais c’est aussi un moyen de maximiser la r´egion de stabilit´e.
En effet, les auteurs de [23] ont d´emontr´e que le fair queuing offrait une r´egion de
stabilit´e maximale, et donc permettrait une utilisation optimale du r´eseau.
Dans un r´egime multipath, les auteurs de [24] ont d´emontr´e qu’un r´eseau est stable
sous la condition :
X
r∈S
ρr <
X
l∈L(s)
Cl
.
4.2.2 Performance de MPTCP
Afin de mieux comprendre l’utilisation du routage multipath dans CCN, nous avons
´etudi´e d’abord l’impact sur la performance des diff´erentes versions de MPTCP envisag´ees
actuellement pour le r´eseau IP. Les protocoles Multipaths sont class´es en
deux cat´egories : les protocoles non coordonn´es et les protocoles coordonn´es. Un
protocole de transport non coordonn´e permet de r´ecup´erer un maximum de d´ebit
mais cette augmentation de d´ebit p´enalise le d´ebit des autres flots car le flot multipath
consomme plus de capacit´e que les autres. L’exemple illustr´e dans la figure 4.1
montre que l’utilisation du TCP non coordonn´e peut r´eduire le d´ebit des flots unicast
en offrant plus de d´ebit aux flots multichemins, ce qui est loin de nos objectifs. EnCHAPITRE 4. STRATEGIES D’ACHEMINEMENT ´ 33
effet, le flot f1 partage le lien `a 2 Mb/s avec le flot f2 malgr´e la disponibilit´e d’un
autre lien enti`erement d´edi´e pour lui et pouvant servir tout le d´ebit requis.
flux2
flux1
c=4 c=2
c=2
Figure 4.1 – Le TCP Multipath non coordonn´e n’assure pas l’´equit´e
Le MPTCP coordonn´e r´epond `a la condition de stabilit´e. Sa description est pr´esent´e
par l’IETF1
; la RFC 6356 d´ecrit les fonctionnalit´es d’un protocole de transport
MPTCP. Il offre beaucoup d’avantages tels que la fiabilit´e en maintenant la connexion
en cas de panne, le load balancing en cas de congestion ou l’utilisation du r´eseau wifi
et ADSL en mˆeme temps, par exemple, pour r´ecup´erer le mˆeme contenu. Chaque flot
utilisant MPTCP est subdivis´e en plusieurs sous-flots, chacun ´eventuellement suivant
un chemin diff´erent. Chaque sous-flot r d´etient sa propre fenˆetre wr [25].
On trouve deux types de protocole MPTCP coordonn´e : le MPTCP semi coupl´e
et le MPTCP coupl´e. Dans le cas d’un protocole MPTCP coupl´e, `a la d´et´ection
d’un rejet, la fenˆetre cwndr du sous-flot r d´ecroit `a max(cwndr − cwndtotal/2, 1).
Dans le cas d’un contrˆole de congestion MPTCP semi coupl´e la fenˆetre d’un sous-flot
d´ecroit selon sa propre fenˆetre de congestion uniquement. En utilisant un MPTCP
enti`erement coupl´e, les fenˆetres s’annulent `a tour de rˆole rendant le fonctionnement
de ce protocole instable [26].
Dans notre proposition du module de gestion du trafic pour CCN, nous avons propos´e
l’utilisation du Round Robin, il s’av`ere que le Round Robin invalide le fonctionnement
du MPTCP coordonn´e. Les ajustements faits par l’utilisateur ne corrigent pas ce
probl`eme. Nous avons observ´e ce ph´enom`ene en simulant avec ns2 un tron¸con de
r´eseau pr´esent´e dans la figure 4.2.
Un flot MPTCP ´emis par le noeud A est constitu´e de deux sous-flot : TCP0, qui suit
le plus long chemin vers le r´ecepteur MPTCP (noeud D) A-B-C-D, et T CP2, qui
suit le plus court chemin vers le r´ecepteur MPTCP A-D. Un flot TCP g´en´er´e par le
noeud E suit le plus court chemin E-B-C-F vers le r´ecepteur TCP.
Nous comparons dans un premier temps les d´ebits des flots T CP0 et T CP2 partageant
le lien B-C avec une politique Tail drop dans tous les noeuds du r´eseau.
La figure 14.3 confirme l’efficacit´e du MPTCP coordonn´e qui r´ealise l’´equit´e en prenant
en compte toute la bande passante offerte au flot, et non pas la bande passante
offerte par un lien uniquement. Avec le MPTCP non coordonn´e le flot TCP0 partage
1http ://datatracker.ietf.org/wg/mptcp/charter/34 4.2. MULTISOURCES
Emetteur TCP
Recepteur TCP
Emetteur MPTCP Recepteur MPTCP
TCP0
TCP1
TCP0
TCP1
TCP0
1Mb
2Mb
Figure 4.2 – un r´eseau pour illustrer les Multipaths
(a) MPTCP coordonn´e (b) MPTCP non coordonn´e
Figure 4.3 – MPTCP coordonn´e priorise le flot unipath
´equitablement la bande passante avec TCP2, ce qui est ´equitable localement sur le
lien, mais ne l’est pas globalement dans le r´eseau, puisque l’´emetteur TCP re¸coit un
d´ebit suppl´ementaire du sous-flot TCP1. Le protocole MPTCP coordonn´e corrige ce
probl`eme et offre au flot unipath TCP1 plus de d´ebit que TCP0.
Nous recommen¸cons le mˆeme sc´enario mais en appliquant une politique Round Robin
au noeud B. Nous observons le d´ebit des flots TCP0 et TCP2. On obtient les r´esultats
pr´esent´es dans la figure 4.4 :
Le MPTCP coordonn´e avec Round Robin r´ealise une ´equit´e par lien. Les flots TCP0 et
TCP2 partage ´equitablement la bande passante au niveau du lien B-C, contrairement
aux r´esultats observ´es avec Tail Drop, ou le flot TCP2 gagnait plus de d´ebit. L’effetCHAPITRE 4. STRATEGIES D’ACHEMINEMENT ´ 35
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
0 2 4 6 8 10 12 14 16 18 20
throughput
temps
tcp0
reno0
Figure 4.4 – Le Round Robin annule l’efficacit´e du MPTCP
des changements des fenˆetres d’une mani`ere coordonn´ee sont invalid´es par le Round
Robin. L’effet du partage ´equitable local par lien du Round Robin est dominant, et
le MPTCP coordonn´e perd son efficacit´e.
Pour pallier `a ce probl`eme ,on propose un nouveau protocole MPRR(Multipath
Round Robin) permettant de r´ealiser l’´equit´e niveau flot et de pr´eserver les performances
du protocole MPTCP, le protocole MPTCP est d´ecrit par les algorithme
ci dessous :
Algorithm 3 A l’arriv´ee d’un paquet interest `a l’interface r´eseau I0 et sortant de l’interface
I1
R´ecup´erer le nom d’objet du paquet name
Calculer le hash du nom d’objet hash
if f ile[hash]∄ then
Cr´eer la file ayant comme ID hash
Attribuer un compteur mark[hash] au flux
Initialiser le compteur mark[hash] = 0
end if
if interest marqu´e then
mark[hash]++ ;
else
envoyer le paquet interest `a l’interface I1
if Une autre interface I2 r´eseau est utilis´e par le flux name then
envoy´e un paquet interest marqu´e `a I2
end if
end if36 4.2. MULTISOURCES
Algorithm 4 A la sortie de l’interface r´eseau
i = 0
while i < M do
if f ile[i]∃ then
if mark[i] == 0 then
Servir le premier paquet de f ile[i]
end if
else
mark[i]- - ;
end if
if f ile[i] = ∅ then
Supprimer la file physique f ile[i]
end if
end while
Au niveau d’un routeur, si deux interfaces I1 et I2 sont utilis´ees pour envoyer les
paquets d’un flot f, `a chaque fois qu’un paquet Interest du flot f est envoy´e vers
une interface, un paquet Interest dupliqu´e et marqu´e serait envoy´e `a la deuxi`eme
interface. Les interfaces servant un flot multipath sont sauvegard´ees au niveau de la
FIB. Au niveau du cache, `a chaque fois qu’on re¸coit un paquet Interest marqu´e, il
prendrait place dans la file d’attente du flot f et le compteur Interest discard du flot
f serait d´ecr´ement´e. Mais ce paquet ne serait pas achemin´e vers les autres interfaces
du r´eseau, il est utilis´e uniquement pour mettre en place l’´equit´e entre flots.
Chaque flot a une file unique au niveau de chaque interface. La file correspondante
au flot f est trait´e une seule fois `a chaque cycle Round Robin comme tous les flots
arrivants `a l’interface. Afin de v´erifier notre protocole, on utilise le simulateur Simpy
pour simuler le r´eseau de la figure 4.5.
1,2
1,2
1
capacity=10Mb/s capacity=1Mb/s
capacity=2Mb/s
Figure 4.5 – r´eseau simul´e avec Simpy
En utilisant le MPRR au niveau des interfaces on obtient les r´esultats pr´esent´es dans
la figure 4.6 Le d´ebit du flot TCP0 partageant le lien avec le sous-flot MPTCP TCP1,
et le d´ebit du sous flot MPTCP circulant sur le deuxi`eme lien TCP2 en utilisant les
politiques Tail drop, Round Robin et MPRR sont repr´esent´es dans la figure 4.6.CHAPITRE 4. STRATEGIES D’ACHEMINEMENT ´ 37
0
200000
400000
600000
800000
1e+06
1.2e+06
1.4e+06
1.6e+06
1.8e+06
2e+06
0 50 100 150 200 250 300 350 400 450 500
Throughput(b/s)
Time
tcp0
tcp1
tcp2
(a) politique Tail drop
100000
200000
300000
400000
500000
600000
700000
800000
900000
1e+06
1.1e+06
1.2e+06
0 50 100 150 200 250 300 350 400 450 500
T hroughput(b/s)
T ime
tcp0
tcp1
tcp2
(b) politique Round Robin
Figure 4.6 – D´ebits des flots avec politique Tail drop (gauche) et Round Robin (droite)
Le MPTCP offre des d´ebits approximativement ´equitables tenant compte de la capacit´e
global offerte au flot. Le Round Robin assure une ´equit´e au niveau de chaque
lien, ce qui a pour effet de r´ealiser une in´equit´e au sens global en prenant compte de
la capacit´e globale offerte.
200000
400000
600000
800000
1e+06
1.2e+06
1.4e+06
1.6e+06
1.8e+06
0 50 100 150 200 250 300 350 400 450 500
Throughput(b/s)
Time
tcp0
tcp1
tcp2
Figure 4.7 – D´ebits des flot avec politique Multipath Round Robin
Le MPRR corrige le probl`eme provoqu´e par l’utilisation du Round Robin en r´ealisant
des d´ebits presque ´equitables en prenant compte toute la capacit´e offerte aux flots,
les graphes montrent une am´elioration par rapport au Tail drop traditionnel.38 4.2. MULTISOURCES
4.2.3 CCN et routage multipath
Mˆeme si le MPTCP s’av`ere performant en utilisant Tail drop, ou en utilisant le
MPRR, on ne peut pas faire enti`erement confiance `a tous les utilisateurs de l’Internet.
L’utilisateur d´etient toujours la possibilit´e de modifier son protocole de transport,
ou d’utiliser le MPTCP non coordonn´e, par exemple. Rien n’oblige l’utilisateur `a
participer `a la gestion de congestion.
On note aussi la difficult´e d’impl´ementer un protocole MPTCP dans CCN, du fait que
l’utilisateur ne peut choisir la destination de chaque paquet. On pourrait envisager
une m´ethode statistique se basant sur l’historique des chemins travers´es et leur RTTs.
Si on ne peut choisir le chemin qui serait travers´e `a l’´emission, il reste possible de
savoir le chemin qui a ´et´e suivi par un paquet `a la r´eception en stockant les noeud
travers´es dans chaque paquet, par exemple [27]. Malheureusement cette m´ethode reste
compliqu´ee et demande beaucoup de modifications au niveau de chaque paquet. De
plus, la coordination des routeurs est n´ecessaire pour r´ealiser l’´equit´e globale dans le
r´eseau.
Nous pensons que les multipaths dans CCN ne devrait pas ˆetre g´er´es par les utilisateurs,
ou du moins les utilisateurs ne sont pas responsables de la gestion du trafic dans
le r´eseau. Nous ne pouvons qu’´emettre des conseils permettant `a l’utilisateur d’utiliser
au mieux la bande passante et d’´eviter les rejets d’Interests successifs rendant
leur protocole de transport compliqu´e `a g´erer. C’est le r´eseau qui devrait distribuer
les paquets ´equitablement sur les liens disponibles.
4.2.4 Performances des multipaths
Nous pensons que les flots multipaths devraient ˆetre g´er´e par le r´eseau lui-mˆeme. Pour
´evaluer les performances des multipaths, nous proposons d’´etudier deux segments de
r´eseaux pr´esent´es dans la figure 4.8.
N1
a) multiple single-hop sources
N1
N4
N3
N2
S2
S3
S4
b) short paths and long paths
Figure 4.8 – Deux r´eseaux pour illustrer les Multipaths
Dans la figure 4.8a, les flot arrivants au noeud N1 peuvent r´ecup´erer les donn´ees duCHAPITRE 4. STRATEGIES D’ACHEMINEMENT ´ 39
routeur S1 localis´ee dans le noeud N1, sinon dans le cas o`u la donn´ee est introuvable,
la r´ecup´erer d’une des 3 sources S4,S2 ou S3.
Dans la figure 4.8b, deux routeurs sont choisi aux hasard pour r´ecup´erer les donn´ees.
Nous comparons les 3 cas suivants :
– un seul chemin qui correspond au chemin le plus court en nombre de sauts est
utilis´e par les flots,
– deux chemins sont utilis´es conjointement,
– on utilise un contrˆole de charge s´electif qui consiste `a refuser l’acc`es au lien `a
tout flot multipath si le lien est un chemin secondaire, et si la charge du lien
d´epasse un certain seuil.
On utilise des simulations Monte-Carlo pour ´evaluer le d´ebit moyen des flots en fonction
de la charge, et comparer ainsi les performances des strat´egies d’acheminement.
La figure repr´esente la bande passante en fonction de la charge. Pour le premier
(a) a (b) b
Figure 4.9 – MPTCP coordonn´e priorise les flot unipath
r´eseau 4.9(a) la charge maximale `a partir de laquelle le r´eseau est instable est de
5,29 exprim´ee en unit´es du d´ebit d’un lien. Ceci peut ˆetre pr´edit par calcul. Dans ce
cas, les chemins ont le mˆeme nombre de sauts. D´es qu’un chemin est surcharg´e on ne
peut plus l’utiliser. L’utilisation du r´eseau est maximal avec le DRR et le contrˆole de
charge.
Les d´ebits du deuxi`eme r´eseau montrent que l’utilisation des chemins multiples sans
aucune strat´egie m`ene `a une perte en capacit´e (la r´egion de stabilit´e est r´eduite).
Dans ce cas le d´ebit offert est maximale au d´ebut. L’utilisation des chemins unicast
offre une meilleur capacit´e en trafic, mais les d´ebits offerts au d´ebut sont plus faibles.
Afin d’offrir des d´ebits plus importants `a faible charge, tout en offrant une meilleure
capacit´e en trafic, nous proposons d’appliquer le contrˆole de charge s´electif.40 4.2. MULTISOURCES
D`es qu’un seuil de d´ebit est atteint dans un lien, il faut refuser l’acc`es aux flots
multipaths si le lien appartient `a un chemin secondaire. Pour distinguer les chemins
secondaires et principaux pour un flot on peut marquer les paquets qui traversent un
chemin secondaire. On observe effectivement que les performances obtenues avec un
contrˆole de charge s´electif sont mieux que celles obtenus avec une utilisation exclusive
des chemins les plus courts, et ´evidement mieux que l’utilisation al´eatoire des chemins
multipath.
En r´ealit´e les liens au coeur du r´eseau ont des d´ebits tr`es ´elev´es d´epassant le d´ebit
d’acc`es des utilisateurs. L’utilisation des chemins multiples n’est pas forc´ement b´en´efique,
les performances des caches localis´es au niveau des routeurs peuvent s´erieusement
d´ecroitre. Pour illustrer ce ph´enom`ene, on consid`ere un r´eseau simple repr´esent´e dans
la figure 4.10.
A C
B
Figure 4.10 – tron¸con de r´eseau pour d´emontrer l’impact des multipath sur le hit global
Des flots arrivent au noeud A selon un processus de Poisson. Si l’objet se trouve
dans le noeud A alors le cache A r´epond `a la requˆete. Si l’objet demand´e se trouve
dans les deux caches B et C alors un des deux caches est choisi au hasard et l’objet
est r´ecup´er´e du cache choisi. Si un des caches contient l’objet et que l’autre ne le
contient pas, le chemin le plus long menant au cache d´etenteur d’objet est s´electionne
avec une probabilit´e P. Si aucun des caches B ou C ne contient l’objet alors il est
dirig´e vers le serveur d’origine `a travers le routeur B ou C (choisi au hasard). La
popularit´e des requˆetes suit une loi Zipf(0.8). On trace la probabilit´e de hit global de
cette micro architecture en fonction de la probabilit´e de choix du chemin le plus long
pour diff´erentes valeurs de la taille des caches. On choisit une taille de catalogue de
104 objets. Conform´ement `a la proposition CCN les caches ont la mˆeme taille.
Cette exemple illustre un contre exemple des b´en´efices tir´es par les multipaths. Mˆeme
si les multipaths paraissent comme une solution int´eressante pour augmenter le trafic
v´ehicul´e sur Internet, son utilisation dans les r´eseaux CCN tel que pr´esent´e par Van
Jacobson ne parait pas forc´ement b´en´efique. Ce constat a aussi ´et´e d´emontr´e par
Rossini et al. [9]. Il est clair que le mieux pour les r´eseaux CCN est de n’utiliser les
chemins les plus longs que pour les cas extrˆemes ou un flot ne peut ˆetre servi par son
chemin le plus court `a cause d’une charge maximale dans un lien du chemin, et que
le chemin le plus long ne contient aucun lien proche de la surcharge.
Nous proposons de maintenir le choix des chemins les plus courts comme choix principal.
Si un flot est rejet´e de son chemin le plus court `a cause de la surcharge d’un
lien appartenant `a son chemin on peut dans ce cas seulement envisager d’emprunter
un chemin secondaire, `a condition que ce chemin n’atteint pas un certain seuil deCHAPITRE 4. STRATEGIES D’ACHEMINEMENT ´ 41
0
0.2
0.4
0.6
0.8
1
0 0.2 0.4 0.6 0.8 1
hitg
P
T=0.1
T=0.3
T=0.5
Figure 4.11 – Taux de hit en fonction de la probabilit´e du choix du plus long chemin
charge.
A B
C
D
chemin congestionn
Dtection de congestion
Figure 4.12 – Chemin plus longs choisis en cas de congestion uniquement
La figure 4.12 montre un exemple de l’utilisation des multipaths dans CCN. Quand
un objet se trouve dans le cache D, les Interests suivent le plus court chemin A-B-D.
Mais quand le cache D re¸coit l’Interest il ne peut le servir `a travers le chemin inverse
car une congestion est d´etect´e. Le flot est alors redirig´e vers le noeud d’avant B qui
propose un autre chemin vers le cache D. Le chemin ´etant non congestionn´e le flot
emprunte le chemin A-B-C-D. La FIB du noeud B est mise `a jour afin de v´ehiculer
tous les paquets Interest du flot vers l’interface menant au noeud C et non pas au
noeud D. D’autre part, un routage orient´e contenu est lourd `a mettre en place, une
mise `a jour des FIB `a chaque fois qu’un objet est supprim´e d’un cache peut avoir un
impact sur plusieurs tables, surtout si les tables enregistrent les paquets et non les
objets.Chapitre 5
Simulations et
experimentations ´
Nous avons test´e, par simulation et exp´erimentation certains des m´ecanismes que
nous avons propos´es.
5.1 Simulations
On consid`ere un lien `a 10 Mb/s partag´e entre un flot Poisson `a 5 Mb/s et un ensemble
de flots permanents. Les flots sont ordonnanc´es en utilisant le DRR. Le flot de Poisson
repr´esente de mani`ere simplifi´ee un ensemble de flots de d´ebit beaucoup plus faible
que le d´ebit ´equitable. Les paquets de ce flot sont suppos´es appartenir `a des flots
diff´erents. Les flots permanents simul´es sont :
– AIMD (7/8) : l’utilisateur final impl´emente un contrˆole de congestion AIMD
avec facteur de r´eduction de la fenˆetre CWND β = 7/8 et, pour ce flot, RTT =
10 ms.
– AIMD (1/2) : l’utilisateur final impl´emente un contrˆole de congestion AIMD
avec facteur de r´eduction de la fenˆetre CWND β = 1/2 et RTT = 200 ms.
– CWIN (5) : L’utilisateur final maintient une fenˆetre fixe de 5 packets et RTT =
200 ms.
– CWIN (100) : L’utilisateur final maintient une fenˆetre fixe de 100 packets et
RTT = 200 ms.
– CBR : L’utilisateur final envoie des paquets Interest `a taux fixe correspondant
`a un d´ebit constant de paquets data de 4 Mb/s.
42CHAPITRE 5. SIMULATIONS ET EXPERIMENTATIONS ´ 43
Les r´esultats sont r´esum´es dans les tableaux 5.1 et 5.2. On distingue les cas d’une
d´etection rapide par l’utilisateur nomm´ee “Rapid” et une d´etection par timeout fix´e `a
1s. On distingue aussi les deux cas avec “Interest discard” ou sans “Interest discard”.
Table 5.1 – D´ebits en Mb/s
Flow sans discard Interest discard
Rapid TO (1s) Rapid TO (1s)
AIMD (7/8) 1.20 1.24 1.23 1.31
AIMD (1/2) 1.19 1.10 1.12 0.84
CWIN (5) 0.19 0.19 0.19 0.19
CWIN (100) 1.20 1.24 1.23 1.32
CBR 1.20 1.24 1.23 1.32
Table 5.2 – Taux de rejets et de discard (perte/discard)
Flow sans discard Interest discard
Rapid TO (1s) Rapid TO (1s)
AIMD (7/8) .006/0 .01/0 0/.01 0/.01
AIMD (1/2) .002/0 .003/0 0/.001 0/.003
CWIN (5) .006/0 0/0 0/.0 0/0
CWIN (100) .30/0 .18/0 0/.65 0/.22
CBR .76/0 .75/0 0/.75 0/.74
Les flot agressifs CWIN(100) et CBR ont des d´ebits `a peu pr`es ´egaux au flot TCP(7/8),
mais le taux de rejets des data des flot agressifs est tr`es important (30% pour le
CWIN(100) et 76% pour CBR) ; les rejets data sont convertis en rejets Interest en
utilisant le m´ecanisme Interest Discard. A partir de ces r´esultats, nous recommandons
que les utilisateurs choisissent un protocole de transport AIMD agressif avec donc un
facteur de r´eduction proche de 1.
5.2 Exp´erimentations
5.2.1 Fair sharing
Nous avons utilis´e comme algorithme d’ordonnancement le DDR [22]. Cet algorithme
utilise des files virtuelles, chacune correspondant `a un identifiant de flot. A la r´eception
d’un paquet, un hash est calcul´e `a partir du nom d’objet, et le paquet est plac´e dans
la file correspondante `a cet identifiant. Les files sont impl´ement´ees comme une simple
liste chain´ee appel´e ActiveList. Lorsque la file globale atteint une taille maximale, le
dernier paquet de la file de flot la plus longue est supprim´e.44 5.2. EXPERIMENTATIONS ´
client serveur
./ccnd
video1 @ipB
video2 @ipB
FIB
./ccnd
Content Store
video2
video1
Discard de l’interest ou nom?
Identifier nom objet et calculer son hash
Alimenter les conteurs chaque cycle Round Robin
Figure 5.1 – Testbed et interest Discard
5.2.2 Interest discard
On impl´emente un compteur pour chaque flot dans l’ActiveList du DRR. Tous les
compteurs seront incr´ement´es d’un quantum `a chaque fois que l’ordonnanceur DRR
compl`ete un cycle (parcours toutes les files) jusqu’`a une valeur maximale b.
A chaque fois qu’un Interest correspondant `a un flot arrive sur la carte r´eseau, le
compteur du flot est d´ecr´ement´e d’un quantum. Si un Interest arrive et que le compteur
du flot correspondant `a l’Interest est `a z´ero, il faut supprimer l’Interest.
5.2.3 Sc´enarios et r´esultats
Nous avons impl´ement´e un ordonnancement DRR [22] ainsi que l’Interest discard dans
un r´eseau basique de deux noeuds. Un lien full duplex interconnecte deux machines
Linux. Une machine joue le rˆole du serveur et stocke des fichiers de donn´ees, l’autre
machine est client, cherchant ces donn´ees. L’ordonnancement est impl´ement´e dans
l’espace noyau en utilisant une version modifi´ee du module sch sfq d´evelopp´e par
L.Muscariello et P.Viotti [28]. Cette nouvelle impl´ementation permet l’identification
des flots par les noms d’objets. L’Interest discard est impl´ement´e dans le noyau, les
modifications suivantes ont ´et´e apport´ees :
– Cr´eation d’un compteur par flot.
– Incr´ementation de tous les compteurs `a chaque cycle DRR.
– D´ecr´ementation d’un compteur `a chaque fois qu’un Interest est envoy´e.
– Rejet d’un Interest si le compteur est nulle.
Au niveau du serveur, nous appliquons un shaping `a 10 Mb/s, lan¸cons le d´emon ccnd,
et chargeons des fichiers dans le r´ef´erentiel. Au niveau de la machine cliente, nous
lan¸cons le d´emon ccnd, et r´ecup´erons les objets stock´es dans le serveur en utilisantCHAPITRE 5. SIMULATIONS ET EXPERIMENTATIONS ´ 45
deux applications : l’application ccncatchunks2 impl´ement´ee par PARC, et l’application
cbr que nous avons d´evelopp´ee pour envoyer les paquets Interest `a un d´ebit
constant.
La figure 5.2 repr´esente les d´ebits instantan´es dans le cas d’un ordonnancement FIFO,
et dans le cas d’un ordonnancement DRR.
0
5
10
0 20 40 60 80 100
rate (Mb/s)
FIFO
0
5
10
0 20 40 60 80 100
rate (Mb/s)
DRR
Figure 5.2 – D´ebits des flot : cbr et ccncatchunks2
Le flot ccncatchunks2 arrive `a avoir son d´ebit maximal en utilisant le Deficit Round
Robin, contrairement `a l’ordonnancement par d´efaut tail drop. Les r´esultats des
exp´erimentations confirment les simulations. L’Interest Discard permet de convertir
les rejets data en rejets Interest, ce qui aide `a conserver la bande passante et `a
prot´eger l’op´erateur.
sans filtre b = 10 b = 100
perte .42 .002 .005
discard 0 .45 .46
Le tableau ci-dessus montre que l’Interest discard est un m´ecanisme efficace pour
´eviter les rejets data et donc ´eviter un gaspillage de la bande passante.Chapitre 6
Conclusion
Dans cette partie, nous avons propos´e un ensemble de m´ecanismes de gestion du trafic
pour la proposition CCN. Cet ensemble comprend quatre volets essentiels :
– La gestion du partage de bande passante. Grˆace `a l’identification des flots par
les noms d’objets, il est d´esormais possible de d´efinir un flot sous CCN. Nous
soulignions la n´ecessit´e de s´eparer files d’attente et caches parce qu’ils n’ont
pas les mˆemes exigences en termes de taille et de temps de r´eponse. La file
d’attente devrait ˆetre de taille petite avec un temps de r´eponse rapide. Par
contre les caches sont plus grands mais exigent un temps de r´eponse moins
rapide et utilisent typiquement une politique LRU (remplacement de l’objet le
moins r´ecemment demand´e). Le partage de bande passante est assur´e au moyen
de l’ordonnancement fair queuing (DRR de pr´ef´erence) au niveau flot.
– Des m´ecanismes pour utilisateurs. Nous conseillons l’utilisation d’un protocole
AIMD adaptatif, pas pour assurer l’´equit´e, qui est r´ealis´ee directement par
DRR, mais afin de limiter les pertes et le d´eclenchement de r´e´emissions multiples
lourdes `a g´erer. L’utilisateur ne gagne rien en ´etant agressif car le r´eseau
partage ´equitablement la bande passante. La d´etection rapide des rejets assure
l’efficacit´e du protocole de transport. Nous proposons donc une d´etection rapide
de rejets au niveau des routeurs. Si un paquet Interest ne peut ˆetre servi ou si
un paquet Data devrait ˆetre rejet´e, un paquet data sans payload est envoy´e vers
l’usager. Nous utilisons cette m´ethode car, dans CCN, l’existence de chemins
multiples entraine des probl`emes de s´equencement des paquets Data rendant
impossible la d´etection rapide de perte en contrˆolant les num´eros de s´equence.
L’utilisation de sources multiples engendre en plus des variations importantes
du RTT rendant difficile le r´eglage du seuil de Timeout.
– Des m´ecanismes pour op´erateurs. Nous proposons un nouveau mod`ele de facturation
o`u un usager ou un op´erateur “ach`ete” des paquets de Data en ´emettant
46CHAPITRE 6. CONCLUSION 47
les paquets Interest correspondants. Ce m´ecanisme incite les op´erateurs `a investir
dans des ressources r´eseaux afin de pouvoir “vendre” davantage de trafic.
Les op´erateurs sont ´egalement motiv´es `a utiliser les caches afin d’´eviter le rachat
multiple fois d’un objet populaire. Nous proposons aussi un m´ecanisme
d’Interest discard qui limite les rejets Data et permet `a l’op´erateur d’´eviter de
demander des paquets Data qui ne peuvent pas ˆetre revendus en aval.
– Des strat´egies d’acheminement. Le multicast sous CCN est compatible avec le
fair queuing que nous sugg´erons d’utiliser au niveau des routeurs. CCN utilise
le multicast comme une partie de la proposition de sorte que deux flux synchronis´es
demandant le mˆeme objet ne peuvent le t´el´echarger parall`element sur un
lien. Une seule demande est envoy´ee pour les deux flux, ce qui ´evite la division
du d´ebit des flux due au fair queuing. Si les demandes ne sont pas synchronis´ees
l’utilisation des caches permet de maintenir le d´ebit de t´el´echargement grˆace au
stockage temporaire des paquets en cours de t´el´echargement. Par contre l’utilisation
du fair queuing peut poser un s´erieux probl`eme en ce qui concerne les
multipaths. Le fair queuing annule le comportement du flux multipath coordonn´e
et le transforme en un flux multipath non coordonn´e. Une ´equit´e locale
par lien est r´ealis´ee mais l’´equit´e globale ne l’est pas car le flux multipath re¸coit
plus de d´ebit qu’un flux unipath. Nous corrigeons ce probl`eme par la conception
d’un protocole MPRR (multipath Round Robin). Un protocole de type MPTCP
est difficile `a r´ealiser sous CCN puisque l’utilisateur n’a aucune visibilit´e sur les
chemins utilis´es. Nous proposons donc une gestion par flot plutˆot qu’une gestion
par paquet. Il suffit d’observer la charge des liens et de n’accepter aucun nouveau
flot sur un chemin long que si la charge des liens est assez faible. Nous avons
´egalement observ´e que l’utilisation de multipaths nuit `a l’efficacit´e des caches
dans certains cas.
Suite `a nos observations li´es `a la d´egradation du taux de hit global due `a l’utilisation
des multipaths, une ´etude des performances des caches est n´ecessaire, car la gestion
du trafic en d´epend. Cette ´etude est l’objet de la prochaine partie.Deuxi`eme partie
Performances des caches
48Chapitre 7
Introduction
7.1 Probl´ematique
Dans ce chapitre, nous traitons le probl`eme de la performance des caches dans les
r´eseaux orient´es contenus. Compte tenu des modifications majeures `a apporter aux
r´eseaux dans le cas o`u une mise en oeuvre de CCN est envisag´ee (mise `a jour des
caches, protocoles, m´emoires distribu´ees), il est important de mesurer le gain apport´e
par cette architecture.
Il est primordial de mesurer la quantit´e et la mani`ere dont arrivent les objets. Les
conclusions que nous pouvons tirer d’une ´etude de performances d´epend de la popularit´e
des objets arrivant aux caches, et de la taille des catalogues.
Nous souhaitons apporter des conclusions pratiques en utilisant des donn´ees r´eelles.
On note que la diffusion de contenus repr´esente 96% du trafic Internet. Ce contenu est
constitu´e d’un mix de donn´ees. Nous avons alors mis en place une ´evaluation d’une
hi´erarchie de caches `a deux niveaux en utilisant un mix de flux refl´etant un ´echange
r´eel de donn´ees sur Internet.
7.2 Etat de l’art
7.3 Contributions
Dans cette partie, on ´evalue le taux de hit, pour une hi´erarchie de caches `a deux
niveaux, avec un mix de flux r´eel. Ceci en utilisant un mod`ele simple permettant
d’effectuer des calculs rapides pour des tailles importantes de cache. Ce mod`ele,
pr´ec´edemment propos´e dans la litt´erature, a ´et´e test´e, v´erifi´e, et d´emontr´e math´ematiquement.
Des simulations ont ´et´e effectu´ees pour confirmer son exactitude. Nous avons effectu´e
4950 7.3. CONTRIBUTIONS
les calculs en utilisant un mix de flux refl´etant le partage actuel du trafic sur Internet.
Nous proposons un stockage des contenus VoD au niveau des routeurs d’acc`es, vu leur
volume faible par rapport aux autres types de donn´ees. Les autres types devraient
ˆetre stock´es dans un cache tr`es volumineux, probablement constituant un deuxi`eme
niveau de caches.Chapitre 8
Mesure du trafic et
performances des caches
Pour estimer les taux de hit d’une architecture `a deux niveaux, il est primordial de
mesurer les caract´eristiques du trafic, car les taux de hit d´ependent fortement de la
nature du trafic et de son volume.
8.1 Mesure du trafic
Nous pr´esentons les caract´eristiques du trafic Internet, et nous discutons des param`etres
les plus importants pour nos ´evaluations.
8.1.1 Types de contenu
Le “Cisco Visual Networking Index” publi´e en 2011 [29] classifie le trafic Internet et
la demande globale pr´evue pour la p´eriode 2010-2015. 96% du trafic repr´esente le
transfert de contenus susceptibles d’ˆetre stock´es dans les m´emoires cache. On peut
les classifier en quatre cat´egories :
– Donn´ees web : Ce sont les pages web visit´ees par les internautes.
– Fichiers partag´es : G´en´eralement g´er´es par des protocoles pair `a pair, cr´eant
une communaut´e d’entraide : Un utilisateur (leecher) peut t´el´echarger un fichier
stock´e dans une des machines des autres utilisateurs (seeders). D`es que son
t´el´echargement est termin´e, le leecher devient `a son tour seeder. Les r´eseaux pair
`a pair rencontrent de plus en plus de probl`emes `a cause de la violation des droits
5152 8.1. MESURE DU TRAFIC
d’auteur par leurs utilisateurs. Ces derniers peuvent mettre en t´el´echargement
du contenu ill´egal. R´ecemment, `a titre d’exemple, le site Demonoid n’est plus
disponible, probablement `a cause de la violation des droits d’auteur.
– Contenu g´en´er´e par les utilisateurs (UGC) : C’est un ensemble de contenus
g´en´er´es par les utilisateurs, ou directement mis `a disposition par ces derniers.
La communaut´e utilisant ce partage utilise des logiciels libres, des contenus avec
des licences de droit d’auteur flexibles, permettant des ´echanges simples entre
des utilisateurs, mˆeme ´eloign´es g´eographiquement. A la diff´erence des r´eseaux
pair `a pair, les donn´ees sont sauvegard´ees sur les serveurs priv´ees du fournisseur
de contenu. Il d´etient alors la possibilit´e de v´erifier les contenus charg´es par les
utilisateurs avant leur publication.
– Vid´eo `a la demande (VoD) : C’est une technique de diffusion de donn´ees
permettant `a des utilisateurs de commander des films ou ´emissions. La t´el´evision
sur IP est le support le plus utilis´e. Le service VoD est propos´e g´en´eralement
par des fournisseurs d’acc`es Internet, et il est dans la plupart des cas payant. Le
contenu propos´e est lou´e pour une p´eriode donn´ee, assurant ainsi le respect des
droits num´eriques.
Les proportions du trafic sont indiqu´es dans le tableau 8.1.
Fraction du trafic (pi) taille de la taille moyenne
2011 2015 population(Ni) des objets (θi)
Web .18 .16 1011 10 KB
File sharing .36 .24 105 10 GB
UGC .23 .23 108 10 MB
VoD .23 .37 104 100 MB
Table 8.1 – Les caract´eristiques des contenus du trafic Internet
8.1.2 La taille des contenus et des objets
– Web : La soci´et´e Netcraft 1 publie chaque mois le nombre de sites, estim´e grˆace
`a un sondage fait aupr`es de soci´et´es d’h´ebergement et d’enregistrement des noms
de domaine. Elle estime le nombre de sites actifs `a 861 379 152, en consid´erant
la moyenne de nombre de pages par site `a 273 2 nous comptons plus de 2 ∗ 1011
pages web. Pour notre ´etude, on suppose que le nombre de pages web est de 1011
et leur taille moyenne est de 10KB [30].
– Fichiers partag´es : On estime le nombre de fichiers partag´es grˆace aux statistiques
relev´ees sur le site Demonoid3 `a 400 000 fichiers de taille moyenne de 7.4
GB. Nous arrondissons ces chiffres dans le tableau 8.1.
1http ://news.netcraft.com/archives/category/web-server-survey/
2http ://www.boutell.com/newfaq/misc/sizeofweb.html
3www.demonoid.me/CHAPITRE 8. MESURE DU TRAFIC ET PERFORMANCES DES CACHES 53
– UGC : Les contenus UGC sont domin´es par Youtube. Une ´etude r´ecente, faite
par Zhou et al. [31], estime le nombre de vid´eos Youtube `a 5 × 108 de taille
moyenne de 10 MB. Actuellement avec une simple recherche du mot clef ”a” sur
Youtube nous comptons plus de 109 vid´eos.
– VoD : Les vid´eos `a la demande sont estim´ees `a quelques milliers et sont de
taille moyenne de 100 MB. Ce sont sans doute des sous-estimations avec l’essore
r´ecente de certaines applications VoD mais elles sont suffisamment pr´ecises pour
les ´evaluations pr´esent´ees dans la suite.
8.1.3 Distribution de la popularit´e
La distribution de la popularit´e est un des ´el´ements essentiels du calcul des performances
d’un cache.
– Web : La popularit´e des pages web suit g´en´eralement la loi de Zipf : le taux de
demandes q(n) pour le ni´eme objet le plus populaire est proportionnel `a 1/nα.
Selon [32] et [30] le param`etre α varie entre 0.64 and 0.83.
– Fichiers partag´es : Il est possible de calculer la popularit´e des torrents en
utilisant les statistiques extraites du site Demonoid. En entrant un mot clef,
on peut classer les torrents d’une mani`ere d´ecroissante suivant le nombre de
t´el´echargements en cours (mais le site ne permet l’affichage que des 10 000
premiers et les 10 000 derniers torrents). La loi de popularit´e correspond `a peu
pr`es `a une loi de Zipf de param`etre α ´egal 0.82. On estime que la popularit´e du
site PirateBay suit une loi de Zipf de param`etre 0.75.
On trace la popularit´e des vid´eos partag´es pour deux sites ”PirateBay” et ”torrentreactor”
4
. Apr`es une recherche par mot clef, les sites affichent les vid´eos et
le nombre de leechers correspondants. En choisissant comme mot clef la seule
lettre ”a”, et apr`es un tri d´ecroissant du nombre de leechers, nous tra¸cons les
popularit´es pr´esent´ees dans 8.1(a) et 8.1(b). Pour le site torrentreactor, la popularit´e
suit la loi Zipf(0.75) pour les premiers rangs, puis la courbe s’incline et
suit une loi Zipf(1.2) pour la queue de la loi. La mˆeme observation concerne le
site PirateBay.
– UGC : Les flux UGC suivent une loi de Zipf avec α estim´e `a 0.56 [11] ou `a
0.8 [13]. Des travaux r´ecents de Carlinet et al. [33] sugg`erent plutˆot une loi
Zipf(0.88).
– VoD : L’´etude de Carlinet et al. ´evalue ´egalement les VoD. La loi de popularit´e
n’est pas de Zipf, mais une combinaison de deux lois de Zipf. La premi`ere est
de param`etre 0.5 pour les 100 objets les plus populaires, la deuxi`eme est de
param`etre 1.2 pour les objets suivants. Des statistiques ´etudi´ees par Yu et al. [34]
pour un service VoD en Chine sugg`erent une loi de Zipf avec α variant ente 0.65
et 1.
4http ://www.torrentreactor.net54 8.2. LE TAUX DE HIT D’UN CACHE LRU
1
10
100
1000
10000
100000
1 10 100 1000 10000
nombre de leechers
Zipf(0.75)
(a) torrentreactor
1
10
100
1000
10000
1 10 100 1000
rang
nombre de leechers
Pirate Bay
Zipf(0.7)
(b) Pirate Bay
Figure 8.1 – La popularit´e des vid´eos partag´ees sur torrentreactor et Pirate Bay
8.2 Le taux de hit d’un cache LRU
8.2.1 Independent Reference Model
Afin d’utiliser les mod`eles math´ematiques, on consid`ere g´en´eralement un ensemble
d’objets ayant des popularit´es fixes, ainsi qu’un catalogue d’objets fixe. C’est le
mod`ele dit “independance reference model” ou IRM. En r´ealit´e, les objets changent
de popularit´e et les catalogues ne cessent d’augmenter. Une prise en compte d’une
telle complexit´e ne peut ˆetre r´esolue par mod`ele math´ematique, et est tr`es complexe `a
simuler. Cependant, la variance des popularit´es est n´egligeable par rapport au temps
de remplissage d’un cache. On peut consid´erer que les mod`eles sont applicables sur
un intervalle de temps o`u les popularit´es et les catalogues seront approximativement
fixes.
Afin d’appliquer ce mod`ele math´ematique, il faut aussi que les requˆetes soient ind´ependantes.
Ceci est vrai si des demandes arrivent d’un grand nombre d’utilisateurs agissant de
fa¸con ind´ependante. Ces conditions s’appliquent pour un premier niveau de cache.
Mais pour les niveaux sup´erieurs, la corr´elation des demandes invalide le mod`ele IRM.
Cependant, selon Jenekovic et Kang [35], la corr´elation des demandes qui d´ebordent
du premier niveau d’un simple r´eseau de caches `a deux niveaux, a un faible effet sur
la probabilit´e de hit observ´ee. Nous avons d’ailleurs v´erifi´e par simulation l’effet de
la corr´elation des demandes pour un r´eseau de caches en arbre.
Pour conclure, les mod`eles math´ematiques bas´es sur l’IRM peuvent ˆetre appliqu´es
pour les r´eseaux CCN, car la popularit´e des objets varient d’une mani`ere faible par
rapport `a la vitesse de remplissage des caches et l’ind´ependance est respect´ee.CHAPITRE 8. MESURE DU TRAFIC ET PERFORMANCES DES CACHES 55
8.2.2 Les mod`eles analytiques
Une politique de remplacement LFU (least frequently used) reste la politique id´eale ;
mais, il est impossible de mettre en place cet id´eal car la popularit´e des objets est
en g´en´eral inconnue. Van Jacobson propose un ordonnancement LRU (least recently
used) dans tous les caches mˆeme si plusieurs travaux remettent en question les performances
r´eseau avec une utilisation exclusive de LRU.
Les ´etudes de performance des r´eseaux CCN n´ecessitent l’utilisation de mod`eles
math´ematiques afin de confirmer et de g´en´eraliser les observations tir´ees des simulations
et exp´erimentations. Notre objectif, qui est d’´evaluer la performance pour les
tr`es grandes populations (jusqu’`a 1011 pages web, par exemple) et leur m´elange, n’est
pas envisageable par simulation. Les mod`eles exacts sont tr`es complexes, mˆeme dans
le cas basique d’un seul cache. La complexit´e de ces mod`eles croit d’une fa¸con exponentielle
avec la taille des caches et le nombre d’objets. Il est donc plus int´eressant
de cr´eer des mod`eles simplifi´es bas´es sur des approximations.
La majorit´e des mod`eles ont ´et´e con¸cus pour une politique de remplacement LRU
avec le mod`ele dit IRM (Independent Reference Model). Quelques travaux r´ecents
ont trait´e cette probl´ematique. En effet, G. Carofiglio et al. [36] proposent un mod`ele
g´en´eralis´e dans le cas d’un r´eseau de caches (architecture en arbre) ; ce mod`ele se
limite aux cas d’arriv´ees suivant un processus de Poisson et une loi de popularit´e de
type Zipf avec α > 1. Ce mod`ele s’applique `a la mise en cache par paquet (comme
CCN) et prend en compte la d´ependance entre les paquets data d’un mˆeme objet. Un
autre mod`ele pour les r´eseaux de caches a ´et´e propos´e par E.Rosensweig et al. [37] ;
c’est un mod`ele adapt´e `a toute architecture. Cependant, la complexit´e du calcul du
taux de hit, dˆu `a Dan et Towsley [38], limite cette approche `a des r´eseaux et des
populations de taille relativement faible.
8.2.3 La formule de Che
Nous pensons qu’une mise en cache par objet est plus simple `a d´eployer et `a utiliser
qu’une mise en cache par paquet. La proposition de Che et al. [39] est particuli`erement
int´eressante. Hormis sa facilit´e d’utilisation par rapport aux autres mod`eles, sa grande
pr´ecision a ´et´e d´emontr´ee dans plusieurs cas. On consid`ere un cache de taille C, des
objets appartenant `a un catalogue de taille M arrivent au cache suivant une loi de
popularit´e pop(n) proportionnelle `a q(n). Sous un syst`eme conforme au mod`ele IRM,
la probabilit´e de hit h(n) d’un objet n selon l’approximation de Che est estim´ee `a :
h(n) = 1 − e
−q(n)tc
, (8.1)
o`u tc est la solution de l’´equation :
C =
X
n
(1 − e
−q(n)tc
). (8.2)56 8.2. LE TAUX DE HIT D’UN CACHE LRU
Cette approximation est centrale pour le reste du travail. Voici quelques ´el´ements
expliquant sa pr´ecision et sa validit´e comme mod`ele math´ematique. On note Tc(n)
le temps o`u exactement C objets diff´erents de n ont ´et´e demand´es. On suppose une
premi`ere demande de l’objet n faite `a l’instant 0, la prochaine requˆete pour l’objet n
a lieu `a τn, cette demande est un hit si τn < Tc(n). La probabilit´e de hit de l’objet n
peut ˆetre exprim´ee par :
h(n) = P(τn < Tc(n)). (8.3)
Che et al. ont mesur´e par simulation Tc(n) et ont observ´e qu’il est presque d´eterministe
et montre une tr`es faible variation en fonction du rang mˆeme pour des catalogues
petits (catalogue de 10 000 objets). Cette variable est presque ind´ependante de l’objet
n et est caract´eristique au catalogue On pose alors E(Tc(n)) = tc que Che et
al consid`erent comme le “temps caract´eristique” du cache. Puisque les arriv´ees de
requˆetes suivent un processus de Poisson, le temps inter-arriv´ee τn suit une loi exponentielle
de param`etre q(n). On a donc la probabilit´e de hit h(n) de l’objet n, en
r´e´ecrivant (8.3 :
h(n) = P(τn < tc) = 1 − exp(−q(n)tc)
.
Dans l’intervalle [0,tc], nous avons exactement C arriv´ees sans compter l’objet n.
Donc, `a cet instant pr´ecis, parmi les M objets du catalogue, C objets exactement
sont arriv´es au cache `a l’instant tc, sans compter l’objet n. Ceci peut ˆetre exprim´e
par :
X
M
i=1,i6=n
P(τi < tc) = C
o`u τi est le temps s´eparant le d´ebut de l’observation t = 0 du temps d’arriv´ee de la
demande de l’objet i au cache donc exponentielle de paramˆetre q(i). Cette ´equation
permet de calculer le temps caract´eristique des caches tc. Mais pour plus de facilit´e,
l’´equation devient : PM
i=1 P(τi < tc) = C. Ceci est valable si la popularit´e individuelle
de l’objet est relativement petite par rapport `a la somme des popularit´es. En utilisant
le fait que τi est de loi exponentielle de param`etre q(i), l’´equation devient l’´equation
(8.2), C =
PM
i=1(1 − e
−q(i)tc ).
L’approximation n’est pas seulement pr´ecise dans le cas, envisag´e par Che et al, d’un
grand cache et d’une population importante, mais ´egalement pour des syst`emes tr`es
petits. Nous avons v´erifi´e la validit´e de l’approximation par simulation, pour un seul
cache de taille 104
et une loi Zipf(0.8) ou un cache de taille 16 et une loi g´eom´etrique
Geo(0.5). La figure 8.2 montre la pr´ecision de l’approximation et sa validit´e mˆeme
dans le cas d’un petit cache.
Pour calculer le h(n), il faut d’abord trouver le tc qui est le z´ero de l’´equation (8.2).
Pour trouver le z´ero de cette ´equation on utilise la m´ethode de Newton : On peut
trouver une valeur proche du z´ero d’une fonction f(x) en calculant successivementCHAPITRE 8. MESURE DU TRAFIC ET PERFORMANCES DES CACHES 57
0
0.2
0.4
0.6
0.8
1
1 100 10000
hit rate
cache size (objects)
0
0.2
0.4
0.6
0.8
1
1 4 16
cache size (objects)
Figure 8.2 – Taux de Hit en fonction de la taille du cache en utilisant l’approximation de
Che : `a gauche, N = 104
, popularit´e de Zipf(.8) , rangs 1, 10, 100, 1000 ; `a droite, N = 16,
popularit´e geo(.5), rangs 1, 2, 4, 8.
une suite de valeurs xi jusqu’`a l’obtention d’une approximation satisfaisante. xi+1 est
calcul´e `a partir de la valeur de xi
:
xi+1 = xi −
f(xi)
f
′(xi)
. (8.4)
Le x0 est choisi arbitrairement et on calcule x1 en utilisant la formule 8.4. On recalcule
f(x1) et si f(x1) est suffisamment proche de z´ero, x1 est alors le z´ero de f(x). Sinon on
calcule x2,... Nous constatons que la convergence est extrˆemement rapide.
8.3 Autres politiques de remplacement
8.3.1 Le cache Random
8.3.1.1 Relation entre taux de hit et temps moyen de s´ejour
On consid`ere un cache de taille C utilisant une politique de remplacement Random.
Dans cette politique, lorsqu’il faut lib´erer de la place pour cacher un nouveau contenu,
le contenu `a ´eliminer est choisi au hasard. La taille du catalogue est M. On note Ts(n)
le temps de s´ejour de l’objet n. On commence nos observations sur des simulations
pour un catalogue de taille petite (100 objets), et un cache de 50 objets. Nous ´etudions
le cas des objets arrivant suivant une loi Zipf(0.6) et Zipf(1.2). Les requˆetes arrivent
avec un taux de 100 requˆetes/s.
On lance la simulation pour 1 000, 10 000 et 100 000 it´erations. On trace dans ces
trois cas la moyenne du temps de s´ejour Ts(n) en fonction de n (voir figure 8.3).
On remarque que, plus le nombre d’it´erations augmente, plus la moyenne du temps
de s´ejour tend vers une valeur pr´ecise. Cette valeur est la mˆeme quelque soit le rang.
En se basant sur cette observation, on consid`ere que la valeur du temps de s´ejour est
ind´ependante de n (adoptant la mˆeme approximation que Che). Le Ts est fixe quand58 8.3. AUTRES POLITIQUES DE REMPLACEMENT
0
1000
2000
3000
4000
5000
6000
0 10 20 30 40 50 60 70 80 90 100
Ts
rang
1000 iteration
10000 iterations
100000 iterations
(a) Zipf(0.6)
0
2000
4000
6000
8000
10000
12000
0 10 20 30 40 50 60 70 80 90 100
Ts
rang
1000 iteration
10000 iterations
100000 iterations
(b) Zipf(1.2)
Figure 8.3 – Temps de s´ejour en fonction du rang pour un cache Random
le temps de simulation devient grand, car tout objet du cache a la mˆeme probabilit´e
que les autres objets d’ˆetre ´elimin´e. Son ´elimination d´epend surtout du taux de miss
du cache qui devient fixe et stable apr`es un certain temps de simulation.
Nous appliquons la formule de Little. La probabilit´e de hit d’un objet i est exprim´ee
par : h(n) = λ(n)Ts(n) o`u Ts(n) est la moyenne du temps de s´ejour de l’objet n.
Ts(n) ´etant fixe et ind´ependant de n on pose Ts(j) = Ts ∀j. Le taux d’entr´ee dans le
cache est λ(n) = (1 − h(n))pop(n) o`u pop(n) est la popularit´e normalis´ee de l’objet
n. On obtient alors : h(n) = (1 − h(n))pop(n)Ts
Finalement h(n) peut ˆetre exprim´e par :
h(n) = pop(n)Ts
1 + pop(n)Ts
. (8.5)
La moyenne du temps de s´ejour peut ˆetre calcul´ee en utilisant l’´equation suivante
(comme dans le cas d’un cache LRU) :
X
M
i=1
h(i) = X
M
i=1
pop(i)Ts
1 + pop(i)Ts
= C. (8.6)
L’´equation (8.6) peut ˆetre r´esolue avec la m´ethode de Newton. Nous utilisons la valeur
Ts retrouv´ee dans l’´equation (8.5) pour d´eterminer les h(n).
Les valeurs h(n) trouv´e par calcul et h(n) trouv´e par simulation sont compar´ees dans
la Figure 8.4 pour diff´erentes valeurs de taille de cache et pour les deux lois, Zipf(0.6)
et Zipf(1.2) et pour diff´erentes tailles de cache : c = C/M = 0.3, 0.5, 0.7.CHAPITRE 8. MESURE DU TRAFIC ET PERFORMANCES DES CACHES 59
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 10 20 30 40 50 60 70 80 90 100
hit
rang
simulation c=0.5
simulation c=0.3
simulation c=0.7
calcul c=0.5
calcul c=0.3
calcul c=0.7
(a) Zipf(0.6)
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 10 20 30 40 50 60 70 80 90 100
hit
rang
simulation c=0.5
simulation c=0.3
simulation c=0.7
calcul c=0.5
calcul c=0.3
calcul c=0.7
(b) Zipf(1.2)
Figure 8.4 – Taux de hit en fonction du rang pour un cache Random
8.3.1.2 Approximation de Fricker
Dans Fricker, Robert and Roberts [40], l’approximation suivante est donn´ee :
Ts ≃ P
τC
j6=n
q(j)
, (8.7)
o`u τC est une constante. On va discuter de la validit´e de cette approximation. Le
temps de s´ejour d’un objet n peut ˆetre exprim´e, comme repr´esent´e dans la figure 8.5,
par une somme de temps tj o`u tj est la dur´ee entre deux requˆetes successives.
Arrivee de l’objet n
Temps de sejour de l’objet n
t1 t3 ti t2
Arrivee de l’objet n
sortie de l’objet n
Figure 8.5 – Repr´esentation du temps de s´ejour
A chaque arriv´ee au cache, l’objet n peut ˆetre retir´e du cache avec une probabilit´e de
1/C si l’objet arriv´e n’appartient pas d´ej`a au cache. On suppose que toute nouvelle
arriv´ee au cache implique une mise `a jour mˆeme si cette arriv´ee est un hit. Soit n
fix´e. Calculons le temps de s´ejour Ts(n). Tout objet i arrive au cache suivant un
processus de Poisson de taux q(i). Les temps inter-arriv´ees Zi sont des variables
al´eatoires ind´ependantes de loi exponentielle de param`etre q(i). La prochaine requˆete
susceptible de retirer l’objet n du cache se passe `a un temps Xn1
Xn1 = inf
i6=n
(Zi). (8.8)60 8.3. AUTRES POLITIQUES DE REMPLACEMENT
Donc Xn1 suit une loi exponentielle de param`etre P
i6=n
q(i). Comme la politique de
remplacement est Random, on en d´eduit facilement que
Ts(n) = X
Y
j=1
Xnj
(8.9)
o`u Xnj est de loi exponentielle de param`etre P
i6=n
q(i), et Y est de loi g´eom´etrique
de param`etre 1 − 1/C sur N∗
, ind´ependant de (Xnj
)j≥1.
D’o`u, en passant `a l’esp´erance dans l’´equation (8.9),
Ts(n) = X
+∞
i=1
P(Y = i)
X
i
k=1
E(Xnk). (8.10)
Or,
E(Xnk) = 1/
X
j6=n
q(j),
et comme Y suit une loi g´eom´etrique de param`etre 1 − 1/C sur N∗
, il vient que
E(Y ) = C. En effet, une v.a. de loi g´eom´etrique de param`etre a sur N∗
est de
moyenne 1/(1−a). En reportant dans l’´equation (8.10 le temps de s´ejour moyen peut
donc ˆetre exprim´e par :
Ts(n) = E(Y )
P
j6=n
q(j)
=
C
P
j6=n
q(j)
.
Revenons `a l’approximation (8.7). L’id´ee sous-jacente dans [40] est qu’on peut approximer
le temps de s´ejour de n en supposant que toute arriv´ee mˆeme un hit implique
une mise `a jour. Cela revient `a supposer que tous les objets autres que n sont
hors du cache. Intuitivement, cela est justifi´e si
1) le cache est petit devant la taille du catalogue,
2) les objets les plus populaires sont hors du cache car ce sont eux qui contribuent
le plus `a P
j6=n
q(j).
Cette deuxi`eme condition n’est pas du tout naturelle. On va voir, en tra¸cant les
diff´erentes approximations du taux de hit, que cela est vrai pour une loi de popularit´e
de Zipf de param`etre α < 1 o`u les objets ont des popularit´es plus voisines que pour
α > 1 o`u les objets les plus populaires sont dans le cache avec forte probabilit´e.
8.3.1.3 Approximation de Gallo
Gallo et al [41] ont propos´e une approximation pour le taux de hit pour une valeur
de α > 1. La probabilit´e de miss d’un objet i est approxim´ee quand C est grand par :CHAPITRE 8. MESURE DU TRAFIC ET PERFORMANCES DES CACHES 61
M iss(i) = ραi
α
Cα + ραi
α
o`u
ρα =
π
α
sin(
π
α
)
α
.
Cela revient `a
hitg(i) = 1 − M iss(i) ≈
1
ρα(i/C)
α + 1
.
Donc tout calcul fait, le temps de s´ejour devrait ˆetre proportionnel `a
C ∗
sin(
π
α
)
π
α
α
pour α > 1.
On compare l’approximation du taux de hit avec l’approximation de Gallo et al [41]
hitg pour des valeurs de α > 1 pour un catalogue de M = 20 000. Voir Figure 8.6.
On remarque que les deux approximations sont proches pour des valeurs de caches
mˆemes petites (C ≥ 20).
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1 10 100 1000 10000 100000
hit
rang
hitG
hitF
α = 1.2
α = 1.5
α = 1.7
(a) C=20
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1 10 100 1000 10000 100000
hit
rang
hitG
hitF
α = 1.2
α = 1.5
α = 1.7
(b) C=100
Figure 8.6 – Comparaison des taux de hit avec l’approximation de Fricker et Gallo
8.3.2 Le cache LFU
Le cache LFU ne stocke que les objets les plus populaires. Donc, la probabilit´e de
hit LFU peut ˆetre calcul´ee, pour un catalogue de taille M et pour un cache LFU de
taille
C objets :
hit(i) = 1; 0 ≤ i ≤ C,
hit(i) = 0;i > C.62 8.3. AUTRES POLITIQUES DE REMPLACEMENT
La probabilit´e de hit globale d’un cache LFU peut donc ˆetre exprim´ee par :
hitg =
X
C
i=1
pop(i)
o`u pop(i) est la popularit´e normalis´ee de l’objet i.
Pour une loi de Zipf, la popularit´e normalis´ee de l’objet i peut ˆetre exprim´ee par :
pop(i) = 1/iα
PM
k=1 1/kα
Donc la probabilit´e globale de hit pour un cache LFU peut ˆetre exprim´ee par :
hitg =
PC
i=1 1/iα
PM
i=1 1/iα
.
Soit i un entier et t un r´eel tel que i ≤ t ≤ i + 1. Pour α > 0, on a :
1
(i + 1)α
<
1
t
α
<
1
i
α.
Donc,
1
(i + 1)α <
Z i+1
i
1
t
α
dt <
1
i
α
,
d’o`u
(M + 1)1−α − 1
1 − α
<
X
M
i=1
1
i
α
<
M1−α
1 − α
et
(C + 1)1−α − 1
1 − α
<
X
C
i=1
1
i
α
<
C
1−α
1 − α
.
Puisque le nombre d’objets est grand, nous consid´erons M + 1 ≈ M. Nous utilisons
des caches d’au moins quelques centaines d’objets donc, C + 1 ≈ C nous concluons
que :
X
M
i=1
1
i
α
≈
M1−α
1 − α
et X
C
i=1
1
i
α
≈
C
1−α
1 − α
. (8.11)
La probabilit´e de hit global pour un cache LFU peut ˆetre exprim´ee par :
hitg =
C
M
1−α
,CHAPITRE 8. MESURE DU TRAFIC ET PERFORMANCES DES CACHES 63
8.3.3 Comparaison des politiques de remplacement
On compare les deux politiques de remplacement LRU et Random en fonction du
rang, pour des valeurs de α = 0.6 et α = 1.2, et pour un cache de 50% la taille du
catalogue. On fixe le catalogue M = 106 objets.
Il est clair que la politique LRU est plus performante que Random. On remarque aussi
que l’´ecart entre LRU et Random est r´eduit pour un α = 1.2, ce qui est confirm´e par
l’´etude de Gallo et al. [41]. Cet ´ecart se r´eduit de plus en plus quand α grandit. Mais
pour une comparaison effective, il est imp´eratif de comparer le taux de hit global des
caches Random, LRU et LFU.
0
0.2
0.4
0.6
0.8
1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
hitg
c
LRU
LFU
Random
(a) Zipf(0.6)
0
0.2
0.4
0.6
0.8
1
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
hitg
c
LRU
LFU
Random
(b) Zipf(1.2)
Figure 8.7 – Taux de hit global en fonctions des tailles de cache normalis´e
On remarque que la diff´erence des performances des caches est plus grande et visible
dans le cas d’un Zipf(0.6). Cette diff´erence diminue pour un α = 1.2, non seulement
entre LRU et Random, mais aussi LFU. Les caches deviennent aussi plus efficaces. Or,
selon notre ´etude bibliographique et les statistiques tir´ees de certains sites fournisseurs
de donn´ees, on sait que le α est g´en´eralement < 1. La politique LFU dans ce cas
s’´eloigne largement de LRU et Random. Mais un petit ´ecart est `a noter entre les
deux politiques de remplacement LRU et Random.Chapitre 9
Les performances des
hierarchies de caches ´
9.1 Caract´eristiques d’une hi´erarchie de caches
Pour ´evaluer les performances des hi´erarchies de caches, il est important de pr´eciser ses
caract´eristiques. Une hi´erarchie de caches est diff´erente d’une autre si un ou plusieurs
de ces caract´eristiques sont diff´erentes.
9.1.1 Politique de remplacement
La fonction d’un algorithme de remplacement est de choisir un contenu `a remplacer
dans un cache quand le cache est plein, et qu’un nouveau contenu doit ˆetre enregistr´e.
Un algorithme optimal ´elimine le contenu qui serait le moins utilis´e. Pour
ceci, l’´evolution des popularit´es des objets devrait ˆetre connue. Puisque la variation
des popularit´es des objets se produit sur un temps beaucoup plus grand que le
temps n´ecessaire pour remplir un cache, les pr´edictions futures peuvent se baser sur
le comportement pass´e ; ce qu’on appelle principe de localit´e. On trouve diff´erentes
politiques de remplacement
– LRU (Least Recently Used) : cet algorithme remplace le contenu utilis´e
le moins r´ecemment. Il se base sur le principe de localit´e temporelle. Un objet
tr`es populaire sera demand´e plus rapidement qu’un objet moins populaire.
L’impl´ementation de cette politique est simple. Il suffit d’attribuer `a chaque
objet du catalogue un hash, le hash correspond `a une case permettant de renseigner
l’adresse de l’objet recherch´e (si l’objet n’existe pas, l’adresse correspond `a
NULL). Des pointeurs permettent de relier les objets et de sauvegarder l’ordre
des objets.
64CHAPITRE 9. LES PERFORMANCES DES HIERARCHIES DE CACHES ´ 65
– LFU (Least Frequently Used) : cet algorithme remplace le contenu le moins
fr´equemment utilis´e. Il est optimal pour des popularit´es fixes, mais les variations
des popularit´es des objets le rend moins efficace. Si les variations des popularit´es
sont lentes, LFU est un bon algorithme de remplacement. De plus, il est facile
`a impl´ementer, il suffit d’attribuer `a chaque contenu le nombre de fois o`u il a
´et´e demand´e. Par contre, son impl´ementation mat´erielle serait coˆteuse, car un
compteur devrait ˆetre attribu´e `a chaque contenu.
– Random : Cet algorithme remplace un contenu au hasard, il ne demande aucun
enregistrement d’information, mais il est moins performant que LRU.
– MRU (Most recently used) : Cette politique ´elimine le contenu correspondant `a
la donn´ee la plus r´ecemment demand´ee. Cette politique s’av`ere efficace comme
politique de deuxi`eme niveau dans le cas d’une hi´erarchie de caches.
Gallo et al [41] ont d´emontr´e, par simulation et par calcul, que la diff´erence entre les
performances observ´ees entre un cache LRU et Random ne sont pas importantes, et
surtout pour des popularit´es d’objets suivant une loi de Zipf avec α > 1 (α = 1.7).
Nous avons simul´e des caches LRU et Random avec une loi Zipf (0.6), le constat reste
le mˆeme. La diff´erence constat´ee entre probabilit´e de hit obtenue avec LRU et celle
obtenue avec Random est faible. Mais cette diff´erence atteint 16% dans certains cas.
Cette diff´erence, mˆeme n´egligeable, peut r´eduire l’utilisation de la bande passante
d’une mani`ere importante.
9.1.2 Les politiques de meta-caching
– LCE(Leave Copy Everywhere ) : Les objets sont copi´es `a chaque cache
travers´e.
– Fix [42] : Cette politique consiste `a mettre dans le cache un objet selon une
probabilit´e fixe.
– LCD(Leave Copy Down) [42] : Copier uniquement dans le cache suivant.
Selon Laoutaris, cet algorithme offre les meilleurs r´esultats dans tous les cas
´etudi´es, et donc parait le plus prometteur de tous.
– ProbCache [43] : Un objet est copi´e dans un cache suivant une probabilit´e calcul´ee
en se basant sur le nombre de sauts travers´es. Psaras et al. pr´esentent
des r´esultats remettant en cause LCD comme meilleur algorithme de metacaching,
mais la diff´erence des performances reste petite entre les deux algorithmes.
D’autre part, Rossini el al. [44] constatent que, inversement, LCD offre
de meilleurs r´esultats.
– WAVE [45] : c’est un algorithme de meta-caching orient´e chunk. Il est similaire `a
LCD, sauf que des variables sont utilis´ees pour contrˆoler le stockage des donn´ees
selon leur popularit´e. Les objets peu populaires ont peu de chance de traverser
tous les caches menant au demandeur. Cet algorithme semble plus complexe
que LCD, par opposition `a LCD qui stocke naturellement les objets les plus
populaires tout pr`es des utilisateurs.66 9.1. CARACTERISTIQUES D’UNE HI ´ ERARCHIE DE CACHES ´
– Btw [46] : Cet algorithme se base sur le stockage des donn´ees uniquement dans
les noeuds pertinents du r´eseau, c’est-`a-dire ayant la probabilit´e la plus ´elev´ee
d’aboutir `a un hit pour les objets demand´es.
Plusieurs ´etudes mettent en valeur la politique LCD `a cause de son efficacit´e constat´ee
par les ´etudes comparatives, mais aussi par sa simplicit´e par rapport aux autres
politiques. L’´etude r´ecente de Rossini et al. [44] confirme l’efficacit´e de LCD par
rapport aux autres politiques propos´ees. Dans cette perspective, Laoutaris et al. ont
pr´esent´e une ´etude portant sur une hi´erarchie LCD [47] ; cette ´etude commence par
une comparaison entre plusieurs politiques de meta-caching. La politique LCD semble
ˆetre la meilleure avec MCD (Move copy down). Cette ´etude pr´esente aussi un mod`ele
analytique pour calculer num´eriquement le taux de hit pour une hi´erarchie LCD `a
deux niveaux. La probabilit´e de hit au premier niveau d’un objet pour une hi´erarchie
de caches LCD est estim´ee `a :
h1(i) = exp(λi ∗ τ1 − 1)/exp(λiτ1) + exp(λi ∗ τ2)
exp(λi ∗ τ2) − 1
o`u τ1 et τ2 repr´esentent les temps caract´eristiques des caches au premier et au
deuxi`eme niveau ; la probabilit´e de hit au premier niveau d´epend de la taille du
cache au deuxi`eme niveau.
La probabilit´e de hit au deuxi`eme niveau vient directement de la formule de Che
pour LCE, en supposant les arriv´ees au deuxi`eme niveau ind´ependantes. h2(i) =
1 − exp(−λi ∗ M iss1(i) ∗ τ2) o`u M iss1(i) est le taux de miss de l’objet i au premier
niveau de caches. Les temps caract´eristiques sont calcul´es en uti
P
lisant la formule :
i
h(i) = C o`u C est la taille du cache. Cette ´equation peut ˆetre utilis´ee au premier
niveau comme au deuxi`eme niveau de cache.
Nous obtenons alors deux ´equations `a deux inconnues, τ1 et τ2. On r´esout ces ´equations
en utilisant la m´ethode de Newton appliqu´ee aux ´equations `a deux inconnues. Pour
ce faire, on est amen´e `a calculer l’inverse de la matrice jacobienne pour trouver la solution
des ´equations. Nous comparons le mod`ele math´ematique avec les simulations ;
nous observons les r´esultats dans le graphique 9.1 : Nous avons effectu´e des simulations
comparant la politique LCE et LCD jug´ee la meilleure de toutes les politiques
de m´etaching. Nous pr´esentons dans les graphes 9.2 les r´esultats des simulations pour
une hi´erarchie de caches `a deux niveaux, avec 10 serveurs au premier niveau, attach´es
`a un serveur au deuxi`eme niveau. Les r´esultats montrent un avantage de LCD par
rapport `a LCE. Cet avantage diminue au fur et `a mesure que la taille des caches
augmente, r´eduisant ainsi l’utilit´e de LCD. LCD permet de r´eduire le nombre de
copies inutiles dans une hi´erarchie. La politique MCD, en plus de copier les objets
dans le cache inf´erieur, efface les objets dans les caches sup´erieurs, mais l’efficacit´e de
cet algorithme reste presque identique `a LCD, surtout dans le cas d’une hi´erarchie `a
deux niveaux. Ainsi, LCD paraˆıt la politique la plus simple et la plus rentable. Nous
comparons aussi la probabilit´e de hit globale des hi´erarchies afin d’´evaluer l’efficacit´e
globale des algorithmes :CHAPITRE 9. LES PERFORMANCES DES HIERARCHIES DE CACHES ´ 67
0
0.2
0.4
0.6
0.8
1
0 10 20 30 40 50 60 70 80 90 100
hit1 : taux de hit au premier niveau
rang
c1 = c2 = 0.1
c1 = c2 = 0.3
simulation
calcul
(a) Zipf(0.6)
0
0.2
0.4
0.6
0.8
1
0 10 20 30 40 50 60 70 80 90 100
hit1 : taux de hit au premier niveau
rang
c1 = c2 = 0.1
c1 = c2 = 0.3
simulation
calcul
(b) Zipf(0.9)
Figure 9.1 – Taux de hit calcul´e par simulation et mod`ele analytique de Che
0
0.2
0.4
0.6
0.8
1
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
hit1
C2
c1 = 0.1
c1 = 0.3
c1 = 0.5
LCE
LCD
(a) Zipf(0.6)
0
0.2
0.4
0.6
0.8
1
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
hit1
C2
c1 = 0.1
c1 = 0.3
c1 = 0.5
LCE
LCD
(b) Zipf(0.9)
Figure 9.2 – Taux de hit au premier niveau pour une hi´erarchie LCE et LCD
9.1.3 Les politiques de forwarding
– SPR (Shortest Path Routing) : Cette politique consiste `a chercher l’objet
en suivant le chemin le plus court vers le serveur d’origine.
– Flooding [48] : Envoyer la demande `a tous les noeuds et suivre le chemin trouv´e.
Cette technique est lourde `a mettre en place et est tr`es coˆuteuse.
– INFORM [49] : Chaque noeud sauvegarde les valeurs correspondant au temps
de latence n´ecessaire pour arriver `a une destination en passant par chaque noeud
voisin. Le noeud voisin, menant `a destination et offrant le moins de temps pour
y arriver, est s´electionn´e pour r´ecup´erer ou envoyer les prochains paquets.
– CATT [50] : Le choix du prochain noeud `a suivre pour arriver `a la donn´ee est
effectu´e suivant le calcul du param`etre nomm´e potential value. Ce param`etre68 9.1. CARACTERISTIQUES D’UNE HI ´ ERARCHIE DE CACHES ´
0
0.2
0.4
0.6
0.8
1
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
hitg
C2
LCE
LCD
(a) Zipf(0.6)
0
0.2
0.4
0.6
0.8
1
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
hitg
C2
LCE
LCD
(b) Zipf(0.9)
Figure 9.3 – Taux de hit global pour une hi´erarchie LCE et LCD `a deux niveaux pour les
cas de bas en haut c1 = 0.1, c1 = 0.3 et c1 = 0.5
peut ˆetre ´evalu´e selon le nombre de sauts, la situation g´eographique, ou la qualit´e
de la bande passante s´eparant le noeud voisin des noeuds contenant les donn´ees.
– NDN [51] : Cette strat´egie est propos´ee actuellement pour les r´eseaux orient´es
contenus. Elle utilise des tables FIB, PIT et CS ; mais les FIB doivent ˆetre
remplies suivant une autre m´ethode. Cet algorithme suppose des tables FIB
compl`etes.
– NRR(Nearest Routing Replica) : C’est une strat´egie id´ealiste qui consiste
`a trouver la copie la plus proche du cache. Cette politique est lourde `a mettre
en place car il faut maintenir des tables de routage orient´ees contenu tr`es dynamiques.
La majorit´e des algorithmes propos´es r´ecemment se basent sur le calcul de param`etres
de performances menant au cache contenant la donn´ee. Tout ceci n´ecessite
des m´ecanismes de signalisation et d’´echange de messages de contrˆole afin d’identifier
p´eriodiquement les chemins menant `a tous les objets. Cette op´eration est non seulement
coˆuteuse, mais aussi pose des probl`emes de passage `a l’´echelle. SPR reste jusqu’`a
pr´esent l’algorithme le plus utilis´e, et le plus simple ne pr´esentant aucun probl`eme
de passage `a l’´echelle. Si la donn´ee est pertinente et populaire, elle devrait se trouver
dans l’un des caches du plus court chemin menant au serveur d’origine. Ce dernier,
est statique et invariable, sauf en cas de panne. L’utilisation des chemins secondaires
est conditionn´ee par des probl`emes de congestion dans le r´eseau.
La politique NRR semble ˆetre la politique la plus efficace offrant les meilleurs taux
de hit. Nous comparons la politique SPF avec NRR afin d’´evaluer la diff´erence entre
la politique la plus performante, et la politique la plus utilis´ee pour le routage. Les
r´esultats sont pr´esent´es dans le graphique 9.4 :CHAPITRE 9. LES PERFORMANCES DES HIERARCHIES DE CACHES ´ 69
0
0.2
0.4
0.6
0.8
1
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
hit1
c1
SPF
NRR
(a) Zipf(0.6)
0
0.2
0.4
0.6
0.8
1
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
hit1
c1
SPF
NRR
(b) Zipf(0.9)
Figure 9.4 – Taux de hit au premier niveau pour les politiques de forwarding NRR et SPF
9.2 Performances des hi´erarchies de caches
Dans cette partie, nous ´etudions le cas d’une hi´erarchie LRU, avec une politique de
forwarding se basant sur la recherche dans le serveur d’origine le plus proche. Nous
nous limitons au cas de deux niveaux de cache ; Sem Borst [52] affirme qu’il n’y a
aucune utilit´e `a utiliser un cache coop´eratif de plus de deux niveaux.
9.2.1 G´en´eralisation de la formule de Che
Il a ´et´e mentionn´e dans la section pr´ec´edente que la corr´elation des demandes `a un
deuxi`eme niveau de cache n’a qu’une petite influence sur les probabilit´es de hit. Nous
d´emontrons, par simulation, que la formule de Che reste valide pour un deuxi`eme niveau
de cache `a condition d’avoir suffisamment de caches au premier niveau att´enuant
ainsi la corr´elation entre les caches.
On consid`ere un catalogue de M objets ; les demandes arrivent au premier niveau
suivant les lois de popularit´e Zipf(α). On mesure la probabilit´e de hit global de l’architecture
`a deux niveaux, constitu´ee de n caches au premier niveau et d’un seul
cache au deuxi`eme niveau. Les caches au premier niveau ont la mˆeme taille C1. On
pose c1 = C1/M, la taille normalis´ee des caches au premier niveau. T2 est la taille du
cache au deuxi`eme niveau et c2 = C2/M sa taille normalis´ee.
On utilise la formule de Che au deuxi`eme niveau de caches, en consid´erant la popularit´e
pop2(i) de l’objet i `a l’entr´ee du cache au deuxi`eme niveau :
pop2(i) = pmiss1(i) ∗ pop1(i)
o`u pmiss1(i) est la probabilit´e de miss de l’objet i au premier niveau.70 9.2. PERFORMANCES DES HIERARCHIES DE CACHES ´
La formule de Che au premier niveau s’applique normalement :
pmiss1(i) = exp(−pop1(i) ∗ tc1
)
o`u tc1 est la solution de l’´equation
C1 =
X
n
(1 − e
−pop1(i)tc1 ).
La forumule de Che appliqu´ee au deuxi`eme niveau donne :
pmiss2(i) = exp(−pop2(i) ∗ tc2
)
o`u tc2 est la solution de l’´equation
C2 =
X
n
(1 − e
−pop2(i)tc2 ).
La probabilit´e de hit globale hitg(i) de l’objet i est calcul´ee de :
hitg(i) = hit1(i) + hit2(i) − hit1(i) ∗ hit2(i)
et la probabilit´e de hit globale de toute l’architecture est :
hitg =
Xpop1(i) ∗ hitg(i).
Comme on peut le remarquer, le n n’intervient pas dans le calcul du hitg, Che propose
une formule plus complexe que l’´equation initiale incluant le n. La formule ´etant dif-
ficile `a exploiter et nos calculs ne semblant pas donner des r´esultats plus satisfaisants,
nous souhaitons savoir si la forumule de Che pour un cache est valable aussi pour
plusieurs niveaux de cache. On compare les r´esultats des calculs avec les r´esultats des
simulations dans les cas suivants :
On remarque que les r´esultats des simulations sont proches des r´esultats de calcul
pour n = 5, l’approximation de Che devient de plus en plus exacte que n augmente.
Nous avons v´erifi´e que l’approximation est tr`es pr´ecise pour n ≥ 10.
On compare les taux de hit globaux `a chaque niveau de cache pour une hi´erarchie de
caches `a 5 niveaux obtenus par simulation hitgs
et par calcul hitgc
, les tableaux ci
dessous repr´esente le taux d’erreur Te pour des valeurs de n de 2 et 5 (chaque noeud
`a n fils). Le taux d’erreur est calcul´e ainsi :
Te =
hitgs − hitgc
hitgs
On effectue le calcul et la simulation dans le cas de caches de mˆeme taille normalis´ee
c(cas CCN),on pose Tg la taille globale Tg = 5∗c ; les conclusions tir´ees sont identiques,
mˆeme si les tailles de cache sont diff´erentes d’un niveau `a un autre. Il est clair queCHAPITRE 9. LES PERFORMANCES DES HIERARCHIES DE CACHES ´ 71
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0.2 0.4 0.6 0.8 1
hicg
c2
c1 = 0.1
c1 = 0.3
c1 = 0.5
c1 = 0.7
c1 = 0.9
Simulation
Calcul
(a) n=2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0.2 0.4 0.6 0.8 1
hicg
c2
c1 = 0.1
c1 = 0.3
c1 = 0.5
c1 = 0.7
c1 = 0.9
Simulation
Calcul
(b) n=5
Figure 9.5 – Probabilit´es de hit global pour α = 0.6 pour un nombre de caches au premier
niveau ´egal `a 2 (gauche) et 5 (droite)
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0.2 0.4 0.6 0.8 1
hicg
c2
c1 = 0.1
c1 = 0.3
c1 = 0.5
c1 = 0.7
c1 = 0.9
Simulation
Calcul
(a) n=2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0.2 0.4 0.6 0.8 1
hicg
c2
c1 = 0.1
c1 = 0.3
c1 = 0.5
c1 = 0.7
c1 = 0.9
Simulation
Calcul
(b) n=5
Figure 9.6 – Probabilit´es de hit global pour α = 0.8
la formule de Che reste une excellente approximation, mˆeme pour une hi´erarchie de
caches, et `a tous les niveaux de caches. Chaque objet dans CCN est constitu´e d’un
certain nombre de chunks, On peut appliquer l’approximation de Che au niveau des
chunks. On consid`ere que la d´ependance entre chunks est n´egligeable.
On consid`ere un catalogue de taille M objets, un cache de taille C ; chaque objet k est
de taille Tk et constitu´e de Tk/s chunks, o`u s est la taille d’un chunk. La probabilit´e
de hit du chunk oik de l’objet k est :
h(oik) = 1 − exp(−pop(oik) ∗ tc)72 9.2. PERFORMANCES DES HIERARCHIES DE CACHES ´
level M = 104 M = 105
Tg = 20%
level2 13% 17%
level3 23% 25%
level4 28% 29%
level5 30% 32%
Tg = 80%
level2 14% 17%
level3 23% 20%
level4 25% 30%
level5 28% 21%
Table 9.1 – Taux d’erreur pour la formule de Che pour n = 2
level M = 103 M = 104
Tg = 20%
level2 10% 6%
level3 11% 13%
level4 11% 9%
level5 12% 10%
Tg = 80%
level2 1.3% 4%
level3 3.5% 6.8%
level4 5.8% 7.3%
level5 6% 6.9%
Table 9.2 – Taux d’erreur pour la formule de Che pour n = 5
o`u tc est la solution de l’´equation :
C =
X
M
k=1
T
Xk/s
i=1
(1 − exp(−pop(oik) ∗ tc).
Les chunks appartenant au mˆeme objet ont la mˆeme popularit´e que l’objet :
pop(oik) = pop(k).
Donc tc est calcul´e avec l’´equation :
C =
X
M
k=1
(Tk/s) ∗ (1 − exp(−pop(k) ∗ tc).
9.2.2 Cas d’application : hi´erarchie de caches avec mix de flux
Comme soulign´e pr´ec´edemment, les donn´ees Internet sont non homog`enes. Plusieurs
cat´egories de donn´ees avec des lois de popularit´e et des tailles diff´erentes partagent les
ressources r´eseaux. Nous nous limitons `a une hi´erarchie `a deux niveaux. On consid`ere
un r´eseau constitu´e d’un premier niveau de caches (situ´es dans les routeurs d’acc`es)CHAPITRE 9. LES PERFORMANCES DES HIERARCHIES DE CACHES ´ 73
reli´es `a un grand cache de deuxi`eme niveau situ´e au coeur du r´eseau (voir la figure 9.7).
Notons que le deuxi`eme niveau serait r´ealis´e en pratique par un r´eseau de caches dont
les contenus seraient typiquement coordonn´es. L’´etude d’un tel r´eseau est l’objectif
de nos travaux suivants.
sources . .
. . .
layer 2
layer 1
users
.
Figure 9.7 – Hi´erarchie de caches `a deux niveaux
On consid`ere que le nombre de routeurs d’acc`es au premier niveau de caches est large ;
donc, les requˆetes arrivant au deuxi`eme niveau de cache peuvent ˆetre consid´er´ees
comme ind´ependantes (i.e., l’IRM s’applique pour le deuxi`eme niveau). La popularit´e
au deuxi`eme niveau de cache est ´egale `a q
′
(n) = q(n)(1 − h(n)) ; il suffit d’appliquer
la formule de Che, en utilisant la nouvelle valeur de popularit´e, pour trouver la popularit´e
de hit au deuxi`eme niveau h
′
(n). La figure 9.8 repr´esente la probabilit´e globale
de hit, P
n
q(n)(h(n) + (1 − h(n)h
′
(n))/
P
n
q(n), en fonction des tailles de cache au
premier et au deuxi`eme niveau. La loi de popularit´e est de Zipf et la figure montre
l’impact de son param´etre α.
102
104
C1
102
104
C2
20%
40%
60%
80%
102
104
C1
102
104
20%
40%
60%
80%
Figure 9.8 – Taux de hit(%) en fonction de la taille des caches dans les niveaux 1 et 2 :
`a gauche, α = .8, N = 104
; `a droite, α = 1.2.
La mˆeme approche a ´et´e appliqu´ee dans le cas d’un mix de trafic, permettant ainsi
de quantifier les tailles de cache aux deux niveaux pour une probabilit´e de hit cible.74 9.2. PERFORMANCES DES HIERARCHIES DE CACHES ´
108
1012 1016
C1
108
1012
1016
C2
20%
40%
60%
80%
108
1012 1016
108
1012
1016
C2
20%
40%
60%
80%
Figure 9.9 – Taux de hit(%) en fonction de la taille des caches dans les niveaux 1 et 2 :
`a gauche trafic UGC, α = .8 ; `a droite, VoD α = 1.2, N = 104
.
Les caches au premier niveau sont efficaces pour le trafic VoD voir figure 9.9. En effet,
avec un cache `a 1012, la probabilit´e de hit du trafic VoD est de 80%. Avec un cache de
mˆeme taille, on ne peut d´epasser 20% de probabilit´e de hit pour les autres types de
trafic : UGC, fichiers partag´es et web. Il serait donc n´ecessaire de choisir des tailles de
caches assez grandes. Les tailles de cache au premier niveau sont petites permettant
ainsi leur insertion `a un routeur d’acc`es. Les VoD peuvent ainsi ˆetre stock´ees au
premier niveau, contrairement aux autres types de donn´ees.
Dans la table ci-dessous, nous ´evaluons la bande passante conserv´ee par une succession
de deux caches ; le premier situ´e au premier niveau est de taille 1 TB , et le
deuxi`eme situ´e au deuxi`eme niveau est de taille 100 TB. L’´evaluation est effectu´ee
dans le cas d’un partage normal entre contenus, et dans le cas d’un premier niveau
r´eserv´e au VoD. Les r´esultats pr´esent´es correspondent au trafic Mix de 2011 et 2015.
On remarque qu’un stockage exclusif du VoD au premier niveau am´eliore la proZipf
VoD(α) niveau1 R´eduction bande
passante au niveau1
R´eduction bande
passante au niveau1
et 2
2011 0.8 partag´e 17% 50%
VoD 23% 58%
1.2 partag´e 24% 50%
VoD 23% 58%
2015 0.8 partag´e 27% 59 %
VoD 37% 61%
1.2 partag´e 36% 59%
VoD 37% 61%
Table 9.3 – R´eduction en bande passante pour C1=1TB et C2=100TB
babilit´e du hit au premier niveau de cache ; ceci est plus significative pour une loi
Zipf(0.8). Dans tous les cas, un stockage discriminatoire des VoD au premier niveauCHAPITRE 9. LES PERFORMANCES DES HIERARCHIES DE CACHES ´ 75
am´eliore le taux de hit global r´esultant des deux caches, que ce soit pour une loi
Zipf(0.8) ou Zipf(1.2) ; la diff´erence devient moins importante pour le trafic futur en
2015.Chapitre 10
Conclusion
Dans ce chapitre, nous avons ´evalu´e la nature, la quantit´e et la popularit´e des objets
´echang´es sur Internet, le trafic ´etant presque majoritairement du contenu distribu´e.
Nous avons par la suite ´evalu´e les performances d’un cache LRU ; pour ce faire nous
avons test´e la formule de Che. Cette derni`ere est facile `a utiliser num´eriquement,
valable pour toute valeur de α de la loi de Zipf et pour plusieurs autres lois de
popularit´e. Nous avons expliqu´e les raisons de son exactitude, en se basant sur la
d´emonstration pr´esent´ee par Fricker et al. [40]. Nous avons aussi explor´e le cas d’un
cache Random, et compar´e ses performances `a celles d’un cache LRU. Nous avons
d´ecrit les caract´eristiques d’une hi´erarchie de caches, et compar´e les perfomances
des politiques de m´etacaching et forwarding optimales avec des politiques d’usage.
Nous avons constat´e `a travers un exemple en se basant sur des donn´ees repr´esentant
l’´echange actuel sur Internet que pour des lois de popularit´e Zipf avec un param`etre α
¡1 il faut choisir des taille de cache tr`es grands pour r´eduire d’une mani`ere significative
l’utilisation de la bande passante, ce qui est techniquement difficile `a mettre en place
au niveau d’un routeur, ce qui nous m`ene `a penser qu’un d´eployment au niveau
applicatif est plutot convenable. Dans la partie suivante nous comparons les couts
des hierarchies distribu´es `a la CCN et des hierarchie centralis´ees `a la CDN qui nous
paraissent techniquement plus convenables.
76Troisi`eme partie
Coˆuts d’une hi´erarchie de caches
77Chapitre 11
Introduction
11.1 Probl´ematique
Dans la partie pr´ec´edente, nous avons propos´e un stockage diff´erenci´e pour am´eliorer
la probabilit´e de hit de la hi´erarchie. Or, en stockant la majorit´e des contenus au
deuxi`eme niveau, la consommation de la bande passante est plus ´elev´ee. Pour les
op´erateurs, deux crit`eres importants leur permettent de prendre des d´ecisions pour le
stockage de donn´ees : les coˆuts et la difficult´e de mise en oeuvre. Puisque les r´eseaux
de caches comme CCN sont distribu´es, il faut prendre en compte, en plus du coˆut
de la m´emoire, le coˆut de la bande passante. Plus l’op´erateur investit en m´emoire,
moins il investit en bande passante et vice versa. L’op´erateur est amen´e `a d´eterminer
un tradeoff optimal entre bande passante et caches.
D´eploy´es depuis des ann´ees, les CDN deviennent un acteur principal g´erant le contenu
des sites les plus connus et utilis´es `a travers le monde. Les CDN, contrairement aux
CCN, sont des hi´erarchies centralis´ees et non distribu´ees. Entre une technologie d´ej`a
exp´eriment´ee et une technologie en cours de recherche, le choix de l’op´erateur est vite
fait ; les CDN sont d´ej`a d´eploy´es et utilis´es, ne n´ecessitant aucune mise `a jour au
niveau des routeurs ou des protocoles r´eseau. Le seul enjeu pouvant encourager les
op´erateurs `a opter pour une architecture distribu´ee est le coˆut. Le travail de Ghodsi
et al. [5] n’apporte pas cet espoir pour l’avenir des r´eseaux CCN ; cet article vient, en
plein milieu de notre travail de recherche, remettre en cause l’utilisation des CCN `a
l’avenir.
Les arguments avanc´es par Ghodsi et al. sont :
– La difficult´e de changer tout le mod`ele Internet de l’orient´e IP vers l’orient´e
contenu. La convergence vers un r´eseau orient´e contenu n´ecessite un changement
au niveau des routeurs et des protocoles. Ceci n´ecessiterait beaucoup de
temps, compte tenu du temps d’attente avant la mise en place d’une mise `a
78CHAPITRE 11. INTRODUCTION 79
jour mineure telle que l’adressage IPv6. Sans compter le temps n´ecessaire pour
l’impl´ementation de PKI assurant la s´ecurit´e des donn´ees.
– Pour des caches de grande taille, il a ´et´e prouv´e que la coop´eration n’apporte
que tr`es peu de gain ; donc l’utilit´e de distribuer la m´emoire sur tous les routeurs
n’est pas forc´ement b´en´efique.
En plus de ces arguments, notre travail pr´esent´e dans [40] montre qu’une r´eduction
significative de bande passante n´ecessite l’utilisation de caches de tr`es grande taille,
d´epassant largement la taille de la m´emoire pouvant ˆetre ajout´ee `a un routeur [53].
Notre probl`eme revient `a ´evaluer les coˆuts d’une architecture de cache distribu´ee :
qu’est ce qui coˆuterait plus cher, mettre des petits caches partout ou de grands caches
au premier niveau ? Ou plus exactement dans une architecture en arbre, comment
faut-il choisir la taille de cache dans les diff´erents niveaux pour avoir un taux de hit
cible avec le moindre coˆut ?
11.2 Etat de l’art
Certaines ´etudes abordent le probl`eme de l’optimisation en fixant un ou plusieurs
param`etres. Par exemple, Dario Rossi et Giuseppe Rossini [54] se sont d´ej`a pench´es
sur ce probl`eme. Ils ont conclu que l’utilisation de caches de tailles diff´erentes ne fait
augmenter le gain que de 2,5% dans le meilleur des cas, et qu’il vaut mieux utiliser
la mˆeme taille de cache, vu le gain faible et la d´et´erioration de la rapidit´e d’un cache
quand sa taille augmente. Dans cette ´etude, la taille globale de caches a ´et´e fix´ee. Le
coˆut de caching est donc fix´e et le facteur de performance est le taux de hit. Le coˆut
de bande passante n’a pas ´et´e pris en compte. Une configuration est pr´ef´erable `a une
autre si sa probabilit´e de hit est meilleure. On voit que ceci n’est pas suffisant. Par
ailleurs, le param`etre α de la loi Zipf de popularit´e est suppos´e sup´erieur `a 1, ce qui
n’est pas conforme aux mesures.
Sem Borst et al. [52] calculent les coˆuts de bande passante et proposent un algorithme
de coop´eration pour le placement des donn´ees dans une hi´erarchie de caches afin de
minimiser ce coˆut. Le coˆut de la m´emoire n’est pas pris en consid´eration, donc le
tradeoff m´emoire/bande passante n’est pas ´etudi´e.
Kangasharju [55] suppose que la localisation des caches et la capacit´e sont fixes, et
dans [47] est explor´e le probl`eme d’optimisation avec une taille fixe de cache global
comme contrainte.
Notre vision des choses est diff´erente, nous pensons que le coˆut global inclut le coˆut
de la bande passante et le coˆut de la m´emoire. C’est un crit`ere de comparaison fiable
entre architectures.
D’autres ´etudes cherchent le tradeoff m´emoire/bande passante, comme par exemple
Nussbaumer et al. [56]. Ils adoptent une ´evaluation de coˆut similaire `a la nˆotre, en
prenant en compte les coˆuts de la bande passante et de la m´emoire pour une hi´erarchie80 11.2. ETAT DE L’ART
de caches en arbre. Cependant, leurs r´esultats ne sont pas applicables pour nous. Nous
rencontrons le mˆeme probl`eme avec l’article [57] qui n’offre aucun r´esultat num´erique
exploitable.
Il est clair que la taille des caches d´etermine le coˆut de la m´emoire qui est croissant
en fonction de la taille. Par contre le coˆut de la bande passante devient plus petit car
le taux de hit augmente avec la taille. Notre objectif est de d´eterminer la hi´erarchie
de cache optimale, que ce soit une architecture avec, ou sans coop´eration de caches.
On fixe la probabilit´e de hit global de l’architecture `a une probabilit´e de hit cible.
Avec une hi´erarchie de caches, il est toujours possible d’am´eliorer les gains en utilisant
la coop´eration, comme c’´etait le cas pour les proxies, et donc rendre la distribution de
caches rentable par rapport `a une hi´erarchie centralis´ee. Pourtant, Wolman et al. [58]
ont d´emontr´e, par simulation sur une large population de 107 ou 108 objets que la
coop´eration n’apporte que tr`es peu de gain ; ce qui remet en question l’utilit´e de
mettre en place un lourd m´ecanisme de coop´eration et d’´echange de messages entre
serveurs. Pour une population r´eduite, utiliser un seul proxy revient moins cher et est
aussi efficace que plusieurs caches coop´eratifs.
Plus r´ecemment, Fayazbakhsh et al. [59] ont constat´e que le stockage `a l’edge offre
des performances plutˆot bonnes en termes de temps de latence, de congestion, et
de charge du serveur d’origine. De plus, il offre un ´ecart de 17% par rapport `a une
architecture CCN presque optimale, ce que les auteurs consid`erent comme minime,
et compensable en pla¸cant plus de m´emoire `a l’edge.
L’article [44] a remis en question cette ´etude par une contre-´etude, en montrant que
le fait de coupler une strat´egie de forwarding optimale (chercher l’objet dans le cache
le plus proche contenant l’objet recherch´e) avec une politique de m´eta-caching optimale
(LCD pour Leave a Copy Down) augmente consid´erablement la marge entre un
caching `a l’edge et un caching distribu´e `a la CCN, ceci en consid´erant une popularit´e
Zipf avec α = 1.
Wang et al. [60] traitent le probl`eme d’allocation de la m´emoire et cherchent `a trouver
l’optimum. Le raisonnement va dans le mˆeme sens : l’optimum est obtenu `a travers
une distribution non ´equitable des tailles de caches dans une hi´erarchie ; cette distribution
d´epend de la popularit´e des objets, et de la taille du catalogue.
En somme, un caching exclusif `a l’edge est une solution contest´ee du fait qu’elle n’a
pas ´et´e compar´ee `a une solution ICN optimale avec une strat´egie de forwarding, et de
meta-caching optimales. Dans tous les cas, le probl`eme que nous ´etudions est diff´erent
du probl`eme trait´e dans les articles pr´ec´edemment cit´es. En g´en´eral, les chercheurs
fixent une taille de cache global, ou par cache individuel, et cherchent un optimum
pour la probabilit´e de hit globale, ou un optimum selon le nombre moyen de sauts
travers´es par les requˆetes pour trouver l’objet recherch´e, ce qui mesure implicitement
la consommation de la bande passante. Le fait de fixer la taille de cache ´elimine desCHAPITRE 11. INTRODUCTION 81
solutions possibles pour les optima, sachant que l’optimum absolu pour les utilisateurs
est un stockage entier du catalogue `a l’edge ´evitant ainsi tout d´eplacement vers
les serveurs d’origine.
Entre la taille n´ecessaire pour assurer le stockage et la consommation de bande passante,
le choix des op´erateurs devrait se baser sur les coˆuts, sachant que les coˆuts de
la m´emoire d´ecroissent tr`es vite. Un stockage `a l’edge ´eliminerait tous les probl`emes
li´es au routage orient´e contenu qui nous paraissent lourdes et posent des probl`emes de
passage `a l’´echelle. L’utilisateur demande un objet de son edge. Si le routeur d’acc`es
ne d´etient pas l’objet, alors la requˆete est redirig´ee vers le serveur d’origine. Le tableau
11.1 r´esume quelques ´etudes ayant trait´e la probl´ematique de l’optimum.
R´ef´erence Contraintes Optimums
Fayazbakhsh
et al. [59]
Les caches ont la
mˆeme taille
Peu d’avantages `a cacher partout dans le r´eseau, un
caching `a l’edge est b´en´efique
Rossini et
al. [44]
Les caches ont la
mˆeme taille
Avec une politique de meta caching LCD (Leave a
copy down) et une strat´egie de forwarding menant au
cache le plus proche(NRR) contenant l’objet, nous obtenons
un ´ecart de 4% en nombre de sauts par rapport
`a un couplage LCD et une politique de forwarding SPF
menant au serveur d’origine le plus proche.
Borst et al.
[52]
Taille de caches
fixes, recherche
de l’optimum en
terme de bande
passante
L’optimum inter-niveau correspond `a un stockage des
objets les plus populaires dans toutes les feuilles de
l’arbre, et les moins populaires dans le cache sup´erieur.
Table 11.1 – Comparaison des quelques ´etudes des coˆuts des hi´erarchies de cachesChapitre 12
Cout d’une hi ˆ erarchie de ´
caches a deux niveaux `
Dans ce chapitre, nous nous int´eressons aux coˆuts d’une hi´erarchie de caches. Nous
souhaitons r´epondre `a la question : est-ce b´en´efique d’utiliser des caches distribu´es
plutˆot que des caches centralis´es ? Nous pensons que c’est la diff´erence de base entre
les r´eseaux CCN et les CDN.
Afin de voir clairement la diff´erence des deux solutions, nous commen¸cons par une
hi´erarchie `a deux niveaux uniquement. Notre hi´erarchie est repr´esent´ee `a la figure
12 :
Le trafic g´en´er´e par les demandes des utilisateurs est de A en bit/s, le requˆetes
.....
Figure 12.1 – architecture `a deux niveaux
proviennent de n noeuds d’acc`es au premier niveau. Tous les caches au premier niveau
ont la mˆeme taille T1. Le cache de deuxi`eme niveau est de taille T2.
On cherche la structure optimale avec le minimum de coˆut. Les tailles T1 et T2 varient
afin d’obtenir `a chaque fois une structure diff´erente, mais chaque structure devrait
r´ealiser un taux de hit fix´e `a une valeur cible (afin de pouvoir comparer les coˆuts
82CHAPITRE 12. COUT D’UNE HI ˆ ERARCHIE DE CACHES ´ A DEUX NIVEAUX ` 83
des architectures). Donc pour chaque valeur de T1, il existe une seule valeur de T2
v´erifiant un taux de hit global fixe.
12.1 Diff´erence des coˆuts entre structures
Le coˆut d’une architecture est ´egal `a la somme des coˆuts de la bande passante, le coˆut
de la m´emoire, et le coˆut de gestion au niveau des caches.
– Le coˆut de la bande passante Cb est proportionnel (on introduira une constante
kb) au trafic global g´en´er´e entre le premier et le deuxi`eme niveau. Le coˆut d’acc`es
est le mˆeme pour toutes les architectures, et donc il s’annule en diff´erence
Cb = kb × T raf ic
.
– Le coˆut de la m´emoire Cm est proportionnel `a la taille des caches
Cm = km × Taille de la m´emoire
.
– Le coˆut de gestion au niveau des caches Cg est proportionnel au trafic, soit
Cg = ks × T raf ic.
La diff´erence de coˆut entre deux architectures ayant le mˆeme taux de hit global est :
δcout(T1, T′
1
) = (pmiss1 − p
′
miss1
)(kb + ks)A + (n(T1 − T
′
1
) + (T2 − T
′
2
))km
o`u
– pmiss1
est le taux de miss de la premi`ere architecture,
– pmiss′
1
est le taux de miss de la deuxi`eme architecture,
– T1 (T2) est la taille des caches au premier (deuxi`eme) niveau de la premi`ere
architecture
– et T
′
1
(T
′
2
) est la taille des caches au premier (deuxi`eme) niveau de la deuxi`eme
architecture.
Les deux architectures ont le mˆeme taux de hit global et le mˆeme nombre de caches
au premier niveau.84 12.2. ESTIMATION NUMERIQUE DES CO ´ UTS ˆ
12.2 Estimation num´erique des coˆuts
Nous avons besoin de quelques estimations des coˆuts unitaires kb, km et ks.
– kb : On estime kb `a 15 $ par Mbps ; c’est une valeur non publi´ee mais estim´ee
par quelques sources sur le web, et par des ´echanges priv´es avec un op´erateur.
Ce coˆut unitaire couvre le coˆut du transport et des routeurs.
– km : On estime le coˆut unitaire de la m´emoire `a km=0.15 $ par Gigabyte. Cette
estimation est d´eriv´ee des fournisseurs de cloud comme Amazon.
– ks : Le coˆut unitaire de gestion ks est estim´e `a 10 c par Mbps. Cette observation
est tir´ee des charges de t´el´echargement des offres Cloud.
La valeur de ks est donc n´egligeable par rapport `a la valeur de kb de sorte que la
diff´erence des coˆuts entre architectures devient :
∆cout(T1, T′
1
) = (pmiss1 − p
′
miss1
)kbA + (n(T1 − T
′
1
) + (T2 − T
′
2
))km.
Etudier la diff´erence de coˆuts revient `a ´etudier la fonction δ d´efinie par :
∆(T1) = pmiss(T1)kbA + (nT1 + T2(T1))km.
Notre objectif est de d´eterminer les tailles T1 (et donc T2 puisque le taux de hit global
est fix´e) correspondant au minimum de la fonction ∆. Le trafic `a l’acc`es est de l’ordre
de A = 1 Tbp, la taille moyenne de chaque objet est de 1 GB et la taille du catalogue
est estim´ee `a M = 2 × 106 objets.
De plus, notons que la probabilit´e de hit d´epend du rapport entre la taille du cache
et le catalogue. Pour v´erifier ceci, on consid`ere un cache de taille T et un catalogue
de taille M. On trace sur la figure 12.2 la probabilit´e de hit en fonction de T /M pour
diff´erentes valeurs de M et deux lois de popularit´e, Zipf(0.6) et Zipf(0.8).
On observe que la probabilit´e de hit pour une popularit´e Zipf(0.6) est presque la
mˆeme pour des tailles de catalogue diff´erentes. Pour le cas Zipf(0.8), la probabilit´e de
hit est l´eg`erement plus faible pour un catalogue de taille 2 × 104 mais les probabilit´es
de hit se rapprochent pour les grandes tailles de catalogue. Dans tous les cas, `a partir
d’une taille de cache normalis´ee de 10%, les valeurs sont tr`es rapproch´ees. Puisque
les tailles de catalogues sont grandes en r´ealit´e, il est clair que la probabilit´e de hit
ne d´epend en pratique que du rapport entre la taille du cache et du catalogue.
On note c la taille normalis´ee du cache c = T /M, ¯c la taille normalis´ee du cache au
deuxi`eme niveau et h(c) la probabilit´e de hit au premier niveau de cache. La diff´erence
de coˆut devient :
δ(c) = (1 − h(c))kbA + M(nc + ¯c)km.CHAPITRE 12. COUT D’UNE HI ˆ ERARCHIE DE CACHES ´ A DEUX NIVEAUX ` 85
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1e-05 0.0001 0.001 0.01 0.1 1
M = 2 ∗ 104
M = 2 ∗ 105
M = 2 ∗ 106
M = 2 ∗ 107
(a) Popularit´e Zipf α=0.6
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
1e-05 0.0001 0.001 0.01 0.1 1
M = 2 ∗ 104
M = 2 ∗ 105
M = 2 ∗ 106
M = 2 ∗ 107
(b) Popularit´e Zipf α=0.8
Figure 12.2 – Taux de hit en fonction des tailles de caches normalis´ees T /M
12.2.1 Coˆut normalis´e
Dans un premier temps, on consid`ere que l’op´erateur souhaite ´eviter de chercher les
donn´ees en dehors de son r´eseau, et donc la probabilit´e de hit cible est ´egale `a 1. Dans
ce cas ¯c = 0 ( est une diff´erence de tailles de caches au deuxi`eme niveau qui s’annule
dans ce cas).
On pose
Γ = Akb
Mnkm
,
le rapport entre le coˆut maximal de bande passante Akb et le coˆut maximal de m´emoire
Mnkm. Le tradeoff entre m´emoire et bande passante est visible sur l’´equation. On
note Γnominal la valeur de Γ correspondante aux valeurs cit´ees dans le paragraphe
pr´ec´edent,
Γnominal =
1012 × 15 × 10−6
0.15 × 10−9 × 100 × 2 × 106 × 109
= 0.5.
Avec ce choix taux de hit cible, la diff´erence de coˆut normalis´e peut s’exprimer :
δ(c) = Γ(1 − h(c)) + c. Cette fonction est pr´esent´e `a la figure 12.3. On observe que,
pour Γ=0.5 (c’est-`a-dire la valeur nominale), la valeur optimale du coˆut correspond `a
une taille de cache au premier niveau plutˆot petite (inf´erieure `a 10% du catalogue) ;
plus Γ devient petit, plus on a int´erˆet `a tout cacher au deuxi`eme niveau. Plus la valeur
Γ augmente, plus la solution optimale correspondrait `a un grand cache au premier
niveau. Ces observations sont valables pour les deux valeurs de α comme le montre
la figure 12.4.
On remarque que le choix d’une taille de cache au premier niveau ´egale `a la taille du
catalogue offre une solution optimale pour une valeur de Γ > 2 pour α = 0.6, et de
Γ > 3.8 pour α = 0.8. Plus le cache est efficace (param`etre α plus grand ou politique86 12.2. ESTIMATION NUMERIQUE DES CO ´ UTS ˆ
0.1
1
10
0 0.2 0.4 0.6 0.8 1
Γ = 10
Γ = 5.0
Γ = 1.0
Γ = 0.5
Γ = 0.1
(a) Popularit´e Zipf α=0.6
0.1
1
10
0 0.2 0.4 0.6 0.8 1
Γ = 10
Γ = 5.0
Γ = 1.0
Γ = 0.5
Γ = 0.1
(b) Popularit´e Zipf α=0.8
Figure 12.3 – Coˆuts normalis´es en fonction des tailles de caches normalis´es au premier
niveau
0
0.2
0.4
0.6
0.8
1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
coptimal
Γ
α = 0.6
α = 0.8
(a) Popularit´es diff´erentes
0
0.2
0.4
0.6
0.8
1
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
coptimal
Γ
LRU(α = 0.6)
LF U(α = 0.6)
LRU(α = 0.8)
LF U(α = 0.8)
(b) Politiques de remplacement diff´erentes
Figure 12.4 – Taille de cache normalis´ee optimale en fonction de Γ
de remplacement plus efficace), moins il est utile de stocker des donn´ees au premier
niveau de cache. Mais, mˆeme pour un cache LFU et un α = 0.8, la solution optimale
correspond `a un stockage complet du catalogue `a partir de Γ = 5.
La solution optimale actuelle pour le Γ nominal correspond `a une valeur de moins de
10 % du catalogue ; mais les valeurs des coˆuts sont si rapproch´ees pour Γ = 1 que
le choix d’un c a une valeur ´egale au catalogue semble meilleur car l’utilisateur peut
profiter d’une latence plus faible.
La valeur de kc diminue de 40% chaque ann´ee1
, kb diminue de 20% chaque ann´ee, le
1http ://www.jcmit.com/memoryprice.htmCHAPITRE 12. COUT D’UNE HI ˆ ERARCHIE DE CACHES ´ A DEUX NIVEAUX ` 87
trafic T augmente de 40% chaque ann´ee2
et le catalogue augmente d’`a peu pr`es 50%.
Le Γ tend alors `a augmenter au fil du temps, et peut devenir cinq fois plus grand que
le Γ nominal dans 6 ans.
Cependant, les valeurs des coˆuts varient selon la r´egion g´eographique 3
et des ´el´ements
inattendus peuvent augmenter le prix des m´emoires. Le tradeoff reste quand mˆeme
compliqu´e `a d´eterminer car il d´epend de l’emplacement g´eographique, et des lois de
popularit´e.
12.2.2 Solution optimale en fonction du taux de hit global
Nous avons consid´er´e la probabilit´e de hit global ´egale `a 1. Or, pour diff´erentes raisons,
le fournisseur de contenu peut manquer de moyens pour payer le prix optimal. La
solution consiste `a g´erer une partie du catalogue (ce qui correspond `a la partie la
plus populaire) et de confier le stockage des autres contenus `a un serveur distant. Le
nombre de caches au premier niveau ne change rien `a la probabilit´e de hit global, on
peut utiliser la formule de Che `a deux niveaux de caches. Donc
δ(c) = Γ(1 − h(c)) + c + ¯c/n).
On obtient les r´esultats pr´esent´es dans la figure 12.5 avec des probabilit´es de hit global
de 0.5 et 0.9.
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
cout
c
Γ = 0.05
Γ = 0.5
Γ = 2
hitg=0.9
hitg=0.5
(a) Loi Zipf(0.6)
0
0.2
0.4
0.6
0.8
1
1.2
1.4
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8
cout
c
Γ = 0.05
Γ = 0.5
Γ = 2
hitg=0.9
hitg=0.5
(b) Loi Zipf(0.8)
Figure 12.5 – Coˆuts pour diff´erentes valeurs de Γ et de probabilit´es de hit
On remarque que la courbe des diff´erences de coˆuts pour une probabilit´e de hit de 50%
co¨ıncide avec la courbe des coˆuts pour une probabilit´e de hit de 90%. Ceci s’explique
2http ://www.networkworld.com/news/tech/2012/041012-ethernet-alliance-258118.html ?page=1
3http ://www.zdnet.fr/actualites/le-prix-du-transit-ip-baisse-encore-partout-dans-le-monde-
39775196.htm88 12.3. EXEMPLE : COUTS DES TORRENTS ˆ
peut-ˆetre par la valeur de n (n=100) qui implique que la valeur de ¯c/n reste petite et
n’influence pas la valeur des coˆuts. Ceci peut mener `a nous demander `a quel niveau
il faut placer les caches dans un r´eseau.
12.3 Exemple : coˆuts des torrents
Un moteur de recherche comme mininova.org offre un ensemble de torrents. Dan et
al. [61] ont analys´e des donn´ees torrents de cette source et partag´e leurs donn´ees avec
nous. Un premier fichier de donn´ees contient 2.9 × 106
torrents actifs et donne le
nombre de leechers au moment de la capture. Nous avons conserv´e 1.6 × 106
torrents
correspondant `a au moins un leecher actif au moment de la capture. On consid`ere
un torrent de taille s et un nombre de leechers instantan´e de l. En utilisant la loi de
Little, et en consid´erant la dur´ee de t´el´echargement proportionnelle `a la taille s, la
fr´equence d’arriv´ee du torrent est :
λ =
nombre moyen de torrents
temps de t´el´echargement .
La fr´equence d’arriv´ee des torrents est donc proportionnelle `a l/s. Un deuxi`eme fichier
correspondant aux tailles des torrents nous a ´et´e fourni.
La popularit´e de chaque chunk est ´egale `a la popularit´e de son torrent. La formule
de Che est plus facile `a utiliser au niveau chunk qu’au niveau torrent car les torrents
ont des tailles diff´erentes, alors que les chunks ont la mˆeme taille. La popularit´e des
chunks des torrents d´eduite des traces est repr´esent´ee `a la figure 12.6.
1e-05
0.001
0.1
10
1000
100000
1 100 10000 1e+06 1e+08
popularity
rank
head (Zipf(.6)) body (Zipf(.8)) tail
Figure 12.6 – Popularit´e des chunks pour les torrentsCHAPITRE 12. COUT D’UNE HI ˆ ERARCHIE DE CACHES ´ A DEUX NIVEAUX ` 89
0.01
0.1
1
10
100
0 0.2 0.4 0.6 0.8 1
.3 .5 .7 .8 .9 .95 .99
(a) coˆuts normalis´es pour un coˆut de bande passante
lin´eaire
0.01
0.1
1
10
100
0 0.2 0.4 0.6 0.8 1
.3 .5 .7 .8 .9 .95 .99
(b) coˆut normalis´es pour un coˆut de bande passante
non lin´eaire
Figure 12.7 – Coˆuts normalis´es pour diff´erentes valeur de Γ
Les courbes pr´esent´ees dans la figure 12.7 repr´esentent les coˆuts normalis´es dans le cas
d’une probabilit´e de hit globale de 1 pour les torrents. La figure 12.7(b) repr´esente le
cas d’un coˆut de bande passante non lin´eaire T
.75kb, ce qui permet d’´evaluer l’impact
d’´economie d’´echelle. On remarque que les observations sont les mˆemes : pour un
Γ = 10, la solution optimale correspond `a un stockage complet au premier niveau ; de
mˆeme pour Γ = 1 la courbe est presque plate, impliquant qu’un stockage au premier
niveau semble plutˆot b´en´efique.Chapitre 13
Cooperation de caches ´
Un grand nombre de publications met en avant l’avantage qu’on peut tirer de la
distribution de caches et de leur coop´eration. Mais ces publications ne prennent pas
en compte le coˆut des ´echanges entre les caches et donc le coˆut de la bande passante
qui est typiquement plus important que le coˆut de la m´emoire. Dans cette section,
nous nous int´eressons `a l’´evaluation du tradeoff bande passante/ m´emoire, dans le
cas de coop´eration de caches.
13.1 Load sharing
Li et Simon [62] proposent la division du catalogue en P partitions. Chaque cache
peut stocker les ´el´ements d’une partition de taille ´egale `a M/P o`u M est la taille du
catalogue.
Figure 13.1 – R´eseau de caches P=3 et S=12
Pour ´evaluer les coˆuts de cette architecture, on introduit un nouveau facteur k
′
b
repr´esentant le coˆut unitaire des liens entre caches du premier niveau. Une proportion
90CHAPITRE 13. COOPERATION DE CACHES ´ 91
1/P des requˆetes arrivant `a chaque cache correspondent au sous-catalogue attribu´e
au cache, les (P − 1)/P requˆetes restantes ´etant redirig´ees vers les autres caches. La
consommation de bande passante au premier niveau est donc estim´ee `a :
nk′
b
P − 1
P
.
Le coˆut de la bande passante r´esultante du taux de miss au premier niveau est estim´ee
`a :
nkbmiss(C)
o`u miss(C) est la probabilit´e de miss au premier niveau pour cette architecture. Elle
correspond au taux de miss d’un cache LRU de taille C pour un catalogue de taille
M/P. On pose c = CP/M la taille normalis´ee des caches pour cette architecture. On
´ecrit miss(c) = miss(CP/M) o`u miss(c) correspond `a la probabilit´e de miss d’un
cache LRU de taille P C et un catalogue de taille M. Tout calcul fait :
δLS(c) = δ(c) + (1 −
1
P
)(Γk
′
b
kb
− c).
Le partitionnement du catalogue est b´en´efique dans le cas o`u Γk
′
b
kb
< c. Si, par exemple,
Γ = 4 il faut que k
′
b
kb
< c/4 ≤ 1/4. Or, il serait surprenant que le coˆut d’un lien entre
caches de premier niveau soit 4 fois inf´erieur au coˆut d’un lien entre le premier et
le deuxi`eme niveau de caches, ce qui sugg`ere que ce type de partage de charge n’est
gu`ere utile.
13.2 Caches coop´eratifs
Ni et Tsang [63] proposent un algorithme de caches coop´eratifs bas´e sur le load
sharing. Chaque cache est responsable d’une partition du catalogue. Toute requˆete
destin´ee `a un cache sera d’abord recherch´ee dans le cache d’accueil, avant de s’adresser
au cache responsable le plus proche. On d´esigne q(i) la popularit´e normalis´ee de l’objet
i. Pour un cache du premier niveau, la popularit´e de chaque chunk appartenant `a la
partition dont il est responsable est q
′
(n) = q(n)(1 + (P − 1)e
−q
′
(n)tc ). En adaptant
la formule de Che, on trouve tc en utilisant la formule (13.1) :
X
N
n=1
1
P
(1 − e
−q
′
(n)tc
) + (1 −
1
P
)(1 − e
−q(n)tc
) = C (13.1)
On consid`ere un cache k au premier niveau. On note R la fonction d´eterminant
l’identit´e de la partition du catalogue dont il est responsable : R(k) = l veut dire que
le cache k est responsable de la partition Ml
. On note Ak l’ensemble de caches au
premier niveau sauf le cache k. On observe les ´echanges entre caches illustr´es par la
figure 13.2.92 13.2. CACHES COOPERATIFS ´
cache niveau 2
objet i, i /∈ Ml,miss(i)
objet i, i ∈ Ml,miss(i)
cache k
Autres caches Ak
objet i
objet i, i ∈ Ml,miss(i)
Figure 13.2 – illustration des diff´erents ´echanges pour une hi´erarchie coop´erative
En utilisant l’´equation (13.1) pour trouver tc, nous pouvons calculer la probabilit´e de
miss au niveau du cache k pour tout objet i
missk(i) =
exp(−q(i)tc) ;i /∈ Ml
exp(−q
′
(i)tc) ;i ∈ Ml
.
Les caches g`erent le trafic arrivant des noeuds d’acc`es. On note par θ
′
la probabilit´e
de hit global de ce trafic :
θ
′ =
X
N
n=1
q(n)
1
P
(1 − e
−q
′
(n)tc
) + (1 −
1
P
)(1 − e
−q(n)tc
)
/
X
N
n=1
q(n)
En cas de miss local, les requˆetes seront transmises aux caches responsables de la
partition dont l’objet en question fait partie. Le cache k r´ealise un taux de hit
suppl´ementaire pour ces requˆetes. La popularit´e des objets appartenant `a ces requˆetes
`a l’entr´ee du cache k est q
′
(n) et la probabilit´e de hit de chaque objet est 1−e
−q
′
(i)tc
.
Ces objets arrivent avec un taux q(i)e
−q(i)tc et ils arrivent de P − 1 caches. Chaque
cache autre que k envoie uniquement une fraction 1/P des objets ayant subi un miss
au cache k, c’est-`a-dire les objets appartenant au sous-catalogue Ml
. La probabilit´e
de hit global du trafic d´ebordant des caches apr`es un premier essai (cache local) est
exprim´ee par :
θ
′′ =
X
N
n=1
q(n)(1 −
1
P
)e
−q(n)tc
(1 − e
−q
′
(n)tc
)/
X
N
n=1
q(n).
On compare `a la figure 13.3 les r´esultats obtenus par simulation et par calcul pour
les probabilit´es de hit locales θ
′
et les probabilit´es de hit suppl´ementaires dˆu `a laCHAPITRE 13. COOPERATION DE CACHES ´ 93
coop´eration θ
′′, pour un catalogue de 105 objets, pour P ´egale `a 2, 5 et 10 et pour
les deux lois Zipf(0.6) et Zipf(1.2).
0
0.2
0.4
0.6
0.8
1
0 0.2 0.4 0.6 0.8 1
hit local
c
calcul
simulation
(a) α = 0.6
0
0.2
0.4
0.6
0.8
1
0 0.2 0.4 0.6 0.8 1
hit local
c
calcul
simulation
(b) α = 1.2
0
0.1
0.2
0.3
0.4
0.5
0.6
0 0.2 0.4 0.6 0.8 1
hit de coop’eration
c
P = 2
P = 5
P = 10
simulation
calcul
(c) α = 0.6
0
0.1
0.2
0.3
0.4
0.5
0.6
0 0.2 0.4 0.6 0.8 1
hit de coop’eration
c
P = 2
P = 5
P = 10
simulation
calcul
(d) α = 1.2
Figure 13.3 – Les probabilit´es de hit locales et de coop´eration en fonction de la taille de
cache normalis´ee
On remarque que la probabilit´e de hit locale obtenue par calcul co¨ıncide avec celle
obtenue par simulation, et que cette probabilit´e est ind´ependante de P. Pour les
probabilit´es de hit de coop´eration, une l´eg`ere diff´erence entre simulation et calcul est
`a noter pour P = 2. Cette diff´erence diminue au fur et `a mesure que P augmente.
Pour P = 10, les valeurs de simulation et de calcul sont identiques. Ces r´esultats
s’expliquent par la pr´ecision de l’approximation de Che. Appliqu´ee `a un deuxi`eme
niveau de caches, on s’attend `a ce que l’erreur due `a l’hypoth`ese d’ind´ependance soit
faible si le nombre de caches de premier niveau est assez grand (n > 5).
On note θ la probabilit´e de hit global au premier niveau : θ = θ
′ + θ
′′. Pour un cache94 13.2. CACHES COOPERATIFS ´
de taille C, le coˆut global de la structure est :
cout(C) = Ak′
b
P − 1
P
(1 − θ
′
) + Akb(1 − θ) + nkmC.
Cet algorithme est inspir´e du load-sharing et chaque cache ne peut d´epasser la taille
de M/P. La taille normalis´ee du cache peut donc s’´ecrire c = CP/M. On trace la
probabilit´e θ(c/P) en fonction de c pour diff´erentes valeurs de P pour la loi Zipf(0.6).
Les r´esultats sont pr´esent´es `a la figure 13.2.
0
0.2
0.4
0.6
0.8
1
0 0.2 0.4 0.6 0.8 1
θ(c/P)
c
P = 1
P = 2
P = 5
P = 10
Figure 13.4 – Probabilit´e de hit global θ(c/P)
On remarque que θ(c) > θP (c/P) pour P ≥ 2 o`u θ(c) correspond `a la probabilit´e
de hit au premier niveau sans coop´eration (P = 1). On note ˜θ la probabilit´e de hit
locale des objets qui ne font pas partie de la partition du cache. On a ˜θ(c) < θ′
(c) et
θp(c) < θ(cp). Divisant par nkmM, le coˆut normalis´e peut s’exprimer :
δcc(c) = Γ(1 − θP (c)) + Γk
′
b
kb
(1 −
1
P
)(1 − ˜θ(c)) + c/P.
Tout calcul fait :
δcc(c) > δ(c) + (1 −
1
P
)(Γk
′
b
kb
(1 − θ
′
(c)) − c).
Pour savoir quelle architecture est la plus rentable, il faut donc ´evaluer la quantit´e
Γ
k
′
b
kb
(1 − θ
′
(c)) − c.
On pose f(c) = Γk
′
b
kb
(1 − θ
′
(c)) − c. La fonction f(c) est minimale si θ
′
(c) et c sont
maximales, ce qui correspond `a un stockage complet au premier niveau, quel que soitCHAPITRE 13. COOPERATION DE CACHES ´ 95
la valeur de k
′
b
/kb et de Γ. La coop´eration est moins rentable qu’une hi´erarchie simple
si la taille des caches de premier niveau est grande. La conclusion d´epend encore des
coˆuts relatifs k
′
b
et kb. Notons que, plus le coˆut de bande passante augmente relatif
au coˆut des caches, plus il s’av`ere inutile de faire coop´erer les caches.
13.3 Routage orient´e contenu
Notre ´etude est favorable `a un stockage complet `a l’Edge puisque le tradeoff entre
bande passante et m´emoire est optimal dans le cas d’un stockage entier au premier
niveau. Nos r´esultats sont soutenus par d’autres ´etudes telles que [59] et [5]. Cependant,
une autre ´etude remet en question ces r´esultats, les jugeant insuffisants car ils
comparent un r´eseau de caches non optimal avec un caching `a l’Edge ce qui est pour
les auteurs simpliste. Effectivement, [44] met en doute les r´esultats constat´es du fait
que la comparaison n’a pas ´et´e faite avec une hi´erarchie de caches optimale. Avec un
couplage meta-caching/strat´egie de forwarding, l’´ecart entre une hi´erarchie de caches
optimale et un stockage `a l’edge peut s’av´erer beaucoup plus important.
Nous nous int´eressons `a l’influence que peut avoir l’utilisation d’une hi´erarchie de
caches plus efficace que la hi´erarchie LRU utilisant SPF (shortest path first) comme
politique de forwarding. Nous souhaitons utiliser les caches pour obtenir des taux de
hit assez grands (plus de 90%). Dans ce cas, l’efficacit´e de la politique de m´eta-caching
LCD tend vers celle d’une politique LCE.
La seule question restant `a traiter est l’influence de la politique de forwarding sur
les coˆuts. On consid`ere une hi´erarchie de caches LRU `a deux niveaux. On note n le
nombre de caches au premier niveau. Les caches au premier niveau ont la mˆeme taille
C et on consid`ere une demande sym´etrique de donn´ees. Ces caches sont reli´es `a un
cache de niveau 2 stockant la totalit´e du catalogue. Nous ´etudions donc l’optimum
dans le cas d’un taux de hit de 100%.
Chaque cache au premier niveau est reli´e `a tous les autres caches par des liens et le
coˆut de bande passante de chaque lien est kb. Le coˆut de bande passante des liens
reliant le cache du premier niveau au cache du deuxi`eme niveau est k
′
b
. On note θ
′
le taux de hit local dˆu au hit des objets demand´es par les utilisateurs et on note
θ
′′ le taux de hit dˆu `a la coop´eration. Le taux de hit global au premier niveau est
θ = θ
′ + θ
′′. En utilisant les simulations, on trace θ
′
et on le compare `a hit(c) le taux
de hit au premier niveau d’une hi´erarchie SPF pour un catalogue de M = 104 objets.
On remarque que θ
′
est ´egal au taux de hit d’un cache LRU simple, la valeur de n ne
changant rien `a ce constat. Le coˆut de cette hi´erarchie peut donc ˆetre exprim´e par :
cost = Akb(1 − θ(c)) + Ak′
b
θ
′′ + nkmC.
On normalise cette formule et on trouve :
costN (c) = δ(c) + Aθ′′(k
′
b − kb).96 13.3. ROUTAGE ORIENTE CONTENU ´
0
0.2
0.4
0.6
0.8
1
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
θ
′
c
hit1(c)
θ
′
(a) Zipf(0.6)
0
0.2
0.4
0.6
0.8
1
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
T auxdehit
c
hit1(c)
θ
′
(b) Zipf(1.2)
Figure 13.5 – Probabilit´e de hit locale θ
′
et hit(c) compar´es par simulation
Puisque k
′
b < kb, costN (c) < δ(c). Donc en utilisant une politique de forwarding NRR,
on r´ealise un coˆut inf´erieur.
Nous allons ´evaluer les optima dans ce cas. La popularit´e de l’objet i `a l’entr´e de
chaque cache au premier niveau peut ˆetre exprim´e par : q
′
(i) = q(i)+Pn−1
k=1(mn−l
(1−
m)
l
)/l tel que m est la probabilit´e de miss de i de popularit´e q(i) pour un cache LRU.
La probabilit´e de hit locale d’un objet peut ˆetre exprim´ee par : hit(n) = 1 −
exp(−q
′
(n) ∗ tc) Le tc est calcul´e en utilisant l’´equation modifi´ee de Che : PM
i=1(1 −
exp(−q
′
(i) ∗ tc) = C
La probabilit´e de hit locale est exprim´ee par : θ
′ =
PM
i=1 q(i) ∗ (1 − exp(−q
′
(i) ∗ tc))
La probabilit´e de hit de coop´eration est exprim´ee par :θ
′′ =
PM
i=1 q(i) ∗ exp(−q
′
(i) ∗
tc) ∗ (1 − exp(−(n − 1) ∗ tc ∗ q
′
(i)))
On compare les r´esultats de calcul avec les r´esultats de simulation pour un catalogue
de 104 objets, n prenant les valeurs de 10,20,40 et 100.
Les calculs sont effectu´ees pour une loi Zipf(0.6) mais les conclusions sont vrai pour
tout α. Les r´esultats du hit local et du hit de coop´eration sont repr´esent´es dans les
graphs 13.6(a) et 13.6(b)
On remarque que les hit locaux calcul´es par la m´ethode de Che modifi´ee co¨ıncident
exactement avec les probabilit´es de hit r´ecup´er´es des simulations, et ces taux de hit
sont ind´ependants de la valeur de n. D’autre part, on note une diff´erence entre le taux
de hit de coop´eration r´ecup´er´e des calculs, et le taux de hit obtenu par simulation pour
n = 5 et n = 10, mais cette diff´erence disparait pour des tailles de caches grands. Pour
n = 100 aucune diff´erence est `a noter entre les deux m´ethodes calcul et simulation. Le
cout d’une hi´erarchie NRR est estim´ee `a : cost = n∗km ∗C +A∗kb ∗(1−θ)+A∗k
′
b
∗θ
′′CHAPITRE 13. COOPERATION DE CACHES ´ 97
0
0.2
0.4
0.6
0.8
1
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
hit local
c
simulation
calcul
(a) hit local
0
0.2
0.4
0.6
0.8
1
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
hit de coope
′ration
c
simulation
calcul
n = 5
n = 10
n = 50
n = 100
(b) hit coop´eration
Figure 13.6 – Probabilit´e de hit compar´es par simulation et calcul
le cout normalis´e est estim´e `a : costn = c + Γ(1 − θ) + Γ ∗ (
k
′
b
kb
) ∗ θ
′′ On trace la taille
de cache optimale en fonction de Γ et k
′
b
/kb On remarque que pour les valeurs futures
0 1 2 3 4 5
Γ
0
0.2
0.4
0.6
0.8
1
k
′
b
kb
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Figure 13.7 – Taille de cache normalis´ee optimale en fonction de Γ et k
′
b
/kb
du Γ nominal, et pour un k
′
b
/kb=0.8 la solution optimale consiste `a tout stocker au98 13.3. ROUTAGE ORIENTE CONTENU ´
premier niveau de caches.Chapitre 14
Hierarchies alternatives ´
14.1 Coˆut d’une hi´erarchie de caches `a plusieurs niveaux
14.1.1 Evaluation des coˆuts
Sem Borst et al. [52] affirment qu’il n’y a aucun int´erˆet `a distribuer des caches sur
plus de deux niveaux. Cette affirmation a attir´e notre curiosit´e. Pour v´erifier ceci, on
consid`ere une hi´erarchie de caches `a 5 niveaux.
L’approximation de Che ´etant bonne pour tous les niveaux de caches, on l’utilise pour
calculer la probabilit´e de hit globale de la structure ainsi que la probabilit´e de hit `a
chaque niveau.
Pour simplifier notre analyse, on consid`ere le cas d’une hi´erarchie homog`ene et sym´etrique
en arbre `a nblevel niveaux. On se restreint dans cette ´etude `a 5 niveaux de caches
(nblevel = 5). Le cache de niveau 5 est la racine de l’arbre et n’a pas de parent.
Chaque noeud a le mˆeme nombre nbf de fils. A chaque niveau i de l’arbre, les caches
ont la mˆeme taille Ti
. On fixe nbf = 5.
On consid`ere 3 cas :
– une r´epartition ´equitable de m´emoire `a tous les niveaux, Ti = Ti+1 pour tout i,
– une r´epartition favorisant les caches aux premiers niveaux Ti+1 = Ti/2,
– une r´epartition favorisant les caches sup´erieurs Ti+1/2 = Ti
.
Le catalogue a une taille M. Notre objectif est de comparer les diff´erents cas en
terme de coˆuts de m´emoire et de bande passante tout en pr´eservant la mˆeme valeur
de probabilit´e de hit global.
99100 14.1. COUT D’UNE HI ˆ ERARCHIE DE CACHES ´ A PLUSIEURS NIVEAUX `
1 2 3 nb_f
Figure 14.1 – Hi´erarchie de caches `a 5 niveaux
On note pmissi
la probabilit´e de miss au niveau i. Le coˆut de la structure est :
cout = Akb
nblevel
X−1
k=1
Y
k
i=1
pmissi + km
nblevel
X
i=1
Ti(nbf )
nblevel−i
.
On note coutn le coˆut normalis´e en divisant le coˆut par kmMn, n ´etant le nombre
total de caches. On pose Γ = Akb
kmMn
. Alors
coutn = Γ(
nblevel
X−1
k=1
Y
k
i=1
pmissi
) +
nblevel
X
i=1
tinbnblevel−i
f
/n.
La figure 14.1.1 repr´esente les r´esultats obtenus pour diff´erentes valeurs de Γ.
La valeur nominale de Γ est de 0.12. Le stockage favorisant les premiers niveaux est
optimal juqu’`a la valeur d’un taux de hit global de 93%. Le stockage favorisant les
premiers niveaux est toujours optimal si Γ ≥ 0.16. Il est probable que cette valeur soit
bientˆot atteinte puisque Γ est en augmentation permanente du fait de l’augmentation
rapide de la demande entrainant une augmentation de la valeur de d´ebit.
Actuellement les coˆuts de la m´emoire baissent plus vite que les coˆuts de la bande
passante et Γ augmente de plus en plus d´epassant actuellemnt la valeur de 0.12. Il est
vrai que la popularit´e ne suit pas une loi Zipf(0.6) mais plutˆot une loi compos´ee de
Zipf(0.6) et Zipf(0.8), mais dans tous les cas, la tendance future est le stockage entier
au premier niveau en ´evitant la maintenance excessive de la bande passante entre
routeurs. La r´epartition des caches n’est pas forc´ement gagnante pour un op´erateur
ou un fournisseur de contenu puisqu’il faut prendre en compte les coˆuts ´elev´es de la
bande passante par rapport aux coˆuts de la m´emoire.CHAPITRE 14. HIERARCHIES ALTERNATIVES ´ 101
0
0.05
0.1
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0.55
0 0.2 0.4 0.6 0.8 1
coutn
hitg
same size
lower levels favored
higher level favored
(a) Γ = 0.01
0.15
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0.55
0 0.2 0.4 0.6 0.8 1
coutn
hitg
same size
lower levels favored
higher level favored
(b) Γ = 0.08
0.2
0.25
0.3
0.35
0.4
0.45
0.5
0.55
0.6
0 0.2 0.4 0.6 0.8 1
coutn
hitg
same size
lower levels favored
higher level favored
(c) Γ = 0.12
0.25
0.3
0.35
0.4
0.45
0.5
0.55
0.6
0 0.2 0.4 0.6 0.8 1
coutn
hitg
same size
lower levels favored
higher level favored
(d) Γ = 0.15
Figure 14.2 – Coˆuts normalis´es pour diff´erentes valeur de Γ
14.1.2 Coop´eration de caches
On restreint notre ´etude dans cette section au cas d’une r´epartition ´equitable de
m´emoire comme c’est le cas pour CCN. Notre objectif est de d´eterminer le gain en
m´emoire et en bande passante en comparant le cas d’une coop´eration des caches et
le cas d’une non-coop´eration des caches.
Il est clair que le gain en m´emoire qu’on peut avoir avec une coop´eration est tr`es
int´eressant mais par ailleurs le gain en bande passante d´ecroit. On choisit la coop´eration
par r´epartition du catalogue, c’est-`a-dire que chaque niveau de cache est destin´e `a
stocker 1/5 du catalogue. Ainsi, on stocke le chunk num´ero i dans le niveau i (mod 5).
Puisque les niveaux de caches traitent des catalogues disjoints et que les chunks
suivent la mˆeme loi de popularit´e que les objets, il est simple de trouver la probabilit´e
de hit des caches `a chaque niveau.102 14.2. COUTS ET POLITIQUES DE REMPLACEMENT ˆ
La quantit´e de m´emoire utilis´ee est : Pnblevel
i=1 C1(nbf )
nblevel−i
. On note hiti(c1) la
probabilit´e de hit d’un cache de taille normalis´ee c1 pour le niveau de cache i pour
une hi´erarchie de caches p`ere-fils et un catalogue de taille M.
La bande passante utilis´ee pour la hi´erarchie sans coop´eration est :
nblevel
X−1
i=1
(nbf )
nblevel−i
(1 − hiti(c1)).
0
0.5
1
1.5
2
2.5
3
3.5
4
0 0.2 0.4 0.6 0.8 1
bande passante/A
hitg
caches non cooperatives
caches cooperatives
(a) Bande passante
0
5e+07
1e+08
1.5e+08
2e+08
2.5e+08
3e+08
3.5e+08
4e+08
0 0.2 0.4 0.6 0.8 1
Memory
hitg
caches non cooperatives
caches cooperatives
(b) M´emoire
Figure 14.3 – Comparaison entre caches coop´eratifs et non coop´eratifs
On remarque que les caches coop´eratifs utilisent moins de m´emoire pour obtenir la
mˆeme probabilit´e de hit global. Cependant, la quantit´e de bande passante consomm´ee
par les caches coop´eratifs est plus importante que la quantit´e de bande passante
consomm´ee par les caches non coop´eratifs.
14.2 Coˆuts et politiques de remplacement
14.2.1 Politique LFU
On consid`ere une hi´erarchie en arbre de caches LFU avec les objets stock´es du niveau
bas au niveau sup´erieur suivant l’ordre d´ecroissant de leur popularit´e. La politique de
forwarding est une politique de recherche p`ere/fils puisque le fils cherche l’objet en
suivant le chemin le plus court menant au serveur d’origine qui est plac´e au niveau
sup´erieur de la hi´erarchie. On consid`ere alors un catalogue de M objets class´es selon
un ordre d´ecroissant de popularit´e : o1, o2, o3, ..., oM. La taille des caches au niveau i
est ci
. La figure 14.4 repr´esente notre hi´erarchie `a ´etudier et le tableau 14.2.1 pr´esente
les param`etres.CHAPITRE 14. HIERARCHIES ALTERNATIVES ´ 103
niveau n
niveau n−1
C1 niveau 1
Cn−1
Cn
Figure 14.4 – R´eseau de caches avec une politique LFU
M taille du catalogue
Ci taille du cache au niveau i
ci taille du cache au niveau i normalis´ee ci = Ci/M
Pmi probabilit´e de miss de la hierarchie jusqu’au niveau i
kb coˆut unitaire de la bande passante
km coˆut unitaire de la m´emoire
A d´ebit d’entr´ee `a la hierarchie
nbi nombre de caches au niveau i
Pmcible la probabilit´e de miss global cibl´ee
La probabilit´e de miss au premier niveau Pm1 peut ˆetre exprim´e pour LFU par :
Pm1 =
M1−α − C
1−α
1
M1−α
(14.1)
ou
Pm1 = 1 − c
1−α
1
.
D’une mani`ere g´en´erale, la probabilit´e de miss de la hi´erarchie de caches constitu´ee
des niveaux 1 `a i est exprim´ee par :
Pmi = 1 − (
X
i
k=1
ck)
1−α
. (14.2)
On suppose la probabilit´e de hit globale de la hi´erarchie est fix´ee `a une valeur cible :
Pmg = 1 − (
Xn
k=1
ck)
1−α
d’o`u
cn = (1 − Pmg
)
1/(1−α) −
nX−1
k=1
ck. (14.3)
La fonction de coˆut peut ˆetre exprim´ee par :104 14.2. COUTS ET POLITIQUES DE REMPLACEMENT ˆ
cout = Akb(
nX−1
k=1
pmk
) +
nX−1
k=1
(nbk − nbn)Ckkm
On pose Γ′ =
Akb
M km
. On divise la fonction de coˆut par une constante kmM et on
obtient :
coutN =
nX−1
k=1
Γ
′
(1 − (
X
k
i=1
ci)
1−α
) +
nX−1
i=1
(nbi − nbn)ci
.
L’optimum v´erifie ∂coutN
∂c1
= 0 et
∂coutN
∂c2
= 0, pour une probabilit´e de hit global de
1 : c1 = M in(
Γ
′
(1 − α)
(nb1 − nb2)
1/α
, 1). En posant Γ = Γ
′
nb1 − nb2
, on obtient :
c1 = M in(1,(Γ(1 − α))1/α). (14.4)
A la figure 14.5, on trace la valeur de l’optimum en fonction de α.
0
0.2
0.4
0.6
0.8
1
0 0.2 0.4 0.6 0.8 1
Γ = 1
Γ = 2
Γ = 3
Γ = 5
Figure 14.5 – La taille de cache optimale en fonction de α.
On remarque que plus Γ augmente, plus l’optimum correspond `a un stockage au
premier niveau de cache. Pour α = 0.8, `a partir de Γ = 5 l’optimum correspond `a un
stockage entier `a l’edge. Nous nous int´eressons de plus `a la diff´erence de coˆuts entre
LRU et LFU, les r´esultats sont repr´esent´es sur la figure 14.6.
On remarque que la diff´erence de coˆuts entre politiques LRU et LFU diminue quand
la taille des caches augmente. Donc il n’est pas utile d’impl´ementer une politique
mat´eriellement coˆuteuse comme LFU car LRU suffit.CHAPITRE 14. HIERARCHIES ALTERNATIVES ´ 105
0 1 2 3 4 5 6
Γ
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
taille de caches normalis´e
0
5
10
15
20
25
30
(a) α = 0.6
0 1 2 3 4 5 6
Γ
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
taille de caches normalis´e
0
5
10
15
20
25
30
35
40
(b) α = 1.2
Figure 14.6 – Diff´erence entre coˆuts LRU et LFU en %
14.2.2 Politique Random
La politique Random est une concurrente forte de LRU, son impl´ementation mat´erielle
est simple et ses performances ne s’´eloignent pas de celles de LRU. Dans cette section
nous ´etudions le tradeoff de cette politique. En utilisant la mˆeme ´equation des coˆuts
pour la hi´erarchie LRU, le coˆut d’une hi´erarchie de caches Random est exprim´e par :
costN = Γ(1 − h) + c
o`u h est la probabilit´e de hit globale de la hi´erarchie, et c est la taille de cache
normalis´ee au premier niveau. Avec la politique Random, nous tra¸cons `a la figure
14.7 la valeur de l’optimum en fonction du Γ pour diff´erentes valeurs de α. Nous
distinguons les cas α < 1 et α > 1. On remarque que l’optimum correspond `a un
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0 0.5 1 1.5 2 2.5 3 3.5
Cache Optimale
Γ
α = 0.6
α = 0.7
α = 0.8
α = 0.9
(a) α < 1
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0 1 2 3 4 5 6
Cache Optimale
Γ
α = 1.1
α = 1.2
α = 1.3
α = 1.4
(b) α > 1
Figure 14.7 – Tailles de caches optimales en fonction de Γ106 14.2. COUTS ET POLITIQUES DE REMPLACEMENT ˆ
stockage complet `a l’Edge pour des arriv´ees suivant la loi Zipf(0.6) `a partir d’une
valeur de Γ = 1.5. On conclut que mˆeme pour une politique Random, et compte tenu
des valeurs de Γ selon nos estimations, un stockage complet `a l’edge correspond `a la
solution optimale.
Par ailleurs, quand la taille des caches est proche de la taille du catalogue, les probabilit´es
de hit LRU et Random sont tr`es proches. L’utilisation de la politique Random
devient int´eressante alors, car cette derni`ere est moins coˆuteuse mat´eriellement que
LRU.Chapitre 15
Conclusion
Dans cette partie, nous ´evaluons le coˆut d’une hi´erarchie de caches en prenant en
compte le coˆut de la m´emoire et le coˆut de la bande passante. Nous utilisons la
formule de Che pour ´evaluer num´eriquement ce tradeoff. Le coˆut optimal d´epend de
la valeur du rapport Γ = kcA/(M kmn) ainsi que de la loi de popularit´e des objets.
Nos r´esultats sugg`erent que dans un futur proche, l’optimum correspondra `a un stockage
complet `a l’edge. Mais cette ´etude ´etant r´ealis´ee avec une fonction de coˆut
lin´eaire, et avec des estimations non exacts des facteurs impactant les coˆuts, on ne
peut la consid´erer que comme une premi`ere ´evaluation. Les op´erateurs poss´edant plus
de d´etails et pr´ecisions pourraient adapter cette ´etude en int´egrant des fonctions de
coˆuts r´eels.
N´eanmoins, g´erer un grand cache est plus compliqu´e que la gestion d’un petit cache,
et les performances et la rapidit´e de r´eponse d’un cache d´ependent de sa taille. Dans
ce cas, chaque cache `a l’edge peut ˆetre lui-mˆeme distribu´e localement en un ensemble
de caches. L’op´erateur pourrait d´edier `a titre d’exemple un ou plusieurs caches de
taille maximale `a chaque fournisseur de contenu.
Nous pensons que les fonctions de stockage et de gestion de contenu sont ind´ependantes.
L’op´erateur ne peut en plus des fonctions de routage, fournir des r´eponses aux requˆetes
d’utilisateurs, v´erifier les donn´ees en supprimant les donn´ees ill´egales par exemple, en
mettant `a jour une donn´ee, etc. Le fait de centraliser les donn´ees permet de r´ealiser
rapidement des op´erations de mise `a jour sur les donn´ees.
107Conclusion gen´ erale ´
L’Internet devient centr´e sur les contenus, 90% des ´echanges sur internet ´etant des
consultations de sites Web, des t´el´echargements de fichier, ou des streamings audio ou
vid´eo. La proposition CCN de Jacobson et al. vient donc au bon moment et suscite
un grand int´erˆet.
L’objectif de cette th`ese ´etait de rajouter `a la proposition CCN des fonctionnalit´es de
gestion du trafic. En effet le protocole de transport propos´e au d´ebut n’offrait pas un
bon d´ebit, puisque la d´etection de rejet se basait uniquement sur le timeout. D’autre
part les paquets Data suivant le sens inverse des paquets Interest ne suffit pas pour
assurer un partage ´equitable de bande passante et la protection des flux sensibles.
Nous avons propos´e une solution dite “flow aware networking”, inspir´ee de travaux
ant´erieurs sur IP o`u cette mani`ere de g´erer le traffic par flot a prouv´e son efficacit´e.
Nous proposons ´egalement l’utilisation de la d´etection rapide de congestion pour
rendre plus efficaces les protocoles de transport. L’interest Discard est un nouveau
m´ecanisme con¸cu sp´ecialement pour les r´eseaux CCN permettant de limiter les rejets
de paquets Data en supprimant s´electivement des paquets Interest en cas de
congestion.
Avec les r´eseaux orient´es contenus, on cherche les donn´ees dans n’importe quelle
destination poss´edant le contenu. Dans ce contexte, les protocoles multipaths semblent
prometteurs. Nous avons observ´e cependant que le t´el´echargement des donn´ees de
sources multiples “pollue” les caches et d´et´eriore ainsi la probabilit´e de hit globale
de l’architecture. Utiliser les chemins les plus courts pour tous les flux tant que la
charge des liens ne d´epasse pas un seuil maximal s’av`ere suffisant. Les chemins longs
ne doivent ˆetre utilis´es que lorsque leur charge est faible, sauf bien entendu en cas
d’une panne au niveau du chemin le plus court.
Les caches sont des acteurs majeurs dans la gestion du trafic et l’´etude de leur performance
est essentielle. Il est n´ecessaire notamment d’´evaluer la mani`ere dont devrait
ˆetre r´eparti les contenus dans une hi´erarchie de caches. La simulation ´etant coˆuteuse,
puisque toute simulation de catalogue tr`es volumineux consomme beaucoup de temps,
nous avons utilis´e des calculs approch´es `a l’aide de la formule de Che. Cette formule
108CHAPITRE 15. CONCLUSION 109
donne le taux de hit d’un cache de taille donn´ee sous l’hypoth`ese d’ind´ependance
antre les arriv´ees de requˆetes. Elle s’av`ere tr`es pr´ecise et facile `a utiliser ´etant valable
pour tout loi de popularit´e et toute taille de cache. L’utilisation de cette formule peut
s’´etendre `a deux ou plusieurs niveaux de caches, `a condition que le nombre de cache
au niveau inf´erieur soit grand (sup´erieur ou ´egale `a 5, d’apr`es nos ´etudes) afin de garantir
l’ind´ependance des requˆetes. En utilisant ce mod`ele math´ematique, et avec des
popularit´es et tailles de catalogues s’approchant de la r´ealit´e, nous avons pu ´etudier
les perfomances d’une hierarchie de caches LRU.
Dans un article r´ecent [59], Fayazbakhsh et al. se demandent s’il est vraiment n´ecessaire
de distribuer les caches dans une hierarchie. D’autre part les CDNs rencontrent un
succ`es ´enorme et sont op´erationnelles depuis des ann´ees. Pour un op´erateur, l’enjeu
principale dans le choix d’une architecture orient´e contenu est le coˆut et la difficult´e
de mise en place. Au niveau de la difficult´e de mise en place les CDN sont sans contestation
mieux puisqu’ils sont d´eja op´erationnels. Le savoir faire dans ce domaine est
fleurissant contrairement aux ICN qui manquent toujours d’une solution claire pour
le routage, pour l’identification des objets dans le r´eseau ainsi que le changement des
fonctionnalit´es des routeurs pour effectuer le stockage.
Au niveau des coˆuts, nous ne pouvons estimer pr´ecis´ement laquelle des architectures
est la moins coˆuteuse. Il est ´egalement difficile d’estimer tous les coˆuts possibles et
d’avoir un mod`ele de coˆut fiable s’approchant des mod`eles utilis´es par les op´erateurs.
Ne pouvant affranchir le pas de la confidentialit´e des donn´ees des op´erateurs, nous
nous contentons d’estimer les coˆuts en prenant en compte les coˆuts de la m´emoire et
de la bande passante. Nous adoptons un simple mod`ele de coˆut lin´eaire permettant
une comparaison chiffr´ee quoique grossi`ere des diff´erentes options.
Nous consid´erons qu’une hi´erarchie est mieux qu’une autre si le coˆut global incluant le
coˆut des caches et le coˆut de la bande passante est plus faible. Notre objectif revient `a
trouver un tradeoff optimal, puisque une hierarchie distribu´e est coˆuteuse en m`emoire
mais ne coˆute rien en bande passante, alors qu’une hi´erarchie centralis´ee coˆute moins
cher en m´emoire mais est plus coˆuteuse en bande passante.
Suite aux r´esultats de nos ´etudes, nous recommandons un stockage presque complet
`a l’edge. Cette solution paraˆıt optimale sutout dans un avenir proche car le coˆut des
m´emoires baisse beaucoup plus vite que celui de la bande passante. D’autres ´etudes
remettent en question cette conclusion, la jugeant rapide puisque certaines politiques
de meta caching et forwarding am´eliorent la probabilit´e de hit des caches au premier
niveau et r´eduisent donc le coˆut de la bande passante.
Nous avons approfoni l’´etude de certains cas, dont celui de caches coop´eratives avec
une politique de forwarding NRR (Nearest Replica Routing). Dans ce cas pour une
hierarchie `a deux niveaux l’optimum correspond bien `a un stockage `a l’edge. Alors
que Borst et al. [52] assurent qu’il n’ y a aucun avantage `a distribuer les contenus sur
plusieurs niveaux de caches, cette affirmation n’´est pas accompagn´e de preuve. Nous
avons donc estim´e les coˆuts pour une hierarchie `a plusieurs niveaux avec politique
LRU. Les constats restent les mˆemes, il est plus rentable `a moyen terme d’utiliser de110
grands caches `a l’edge.
On devrait poursuivre cette ´evaluation avec, par exemple, une politique de remplacement
LCD et un routage NRR mais nos r´esultats pr´eliminaires mettent s´erieusement
en question la notion CCN de mettre des caches dans tous les routeurs. Nos r´esultats
s’accordent avec ceux de Fayazbakhsh et al. [59], mˆeme si les mod`eles utilis´es sont
tr`es diff´erents.
Un autre probl`eme pos´e par CCN est la difficult´e de gestion de donn´ees dans les
caches. Si un fournisseur de donn´ees souhaite supprimer un objet, il est difficile de
parcourir toute la hierarchie pour supprimer l’objet ou le mettre `a jour. Une hi´erarchie
avec peu de niveaux est plus facile `a g´erer. Compte tenu des doutes concernant le
coˆut ´elev´e de CCN, de la difficult´e de mise en oeuvre n´ecessitant des modifications
majeures, de la n´ecessit´e de mettre en place une strat´egie de gestion de noms d’objets
et leur authentifications, et de la difficult´e `a g´erer les donn´ees sur des serveurs
distribu´es, il nous parait pr´ef´erable de stocker tous les objets `a l’edge tout proche des
usagers. De grands caches `a ce niveau pourraient ˆetre sp´ecialis´e par fournisseur de
contenus pour faciliter la gestion. Chaque objet s’identifierait d’abord par son fournisseur,
qui a la responsabilit´e d’assurer l’unicit´e de l’objet et son authentification,
ainsi que la s´ecurit´e de ses objets.
L’op´erateur peut prendre en charge la fonctionnalit´e du caching `a l’edge en accord
avec les fournisseur de contenus et attribuer `a chaque fournisseur un ou plusieurs
caches. L’op´erateur peut devenir lui aussi fournisseur de contenus. Ceci bien sur peut
ˆetre conclu `a travers des accords commerciaux entre les diff´erents acteurs. La fonctionnalit´e
de l’internet serait alors surtout localis´ee `a l’edge du r´eseau de l’op´erateur.
Certaines fonctionnalit´es propos´es dans CCN peuvent bien entendu ˆetre utiles dans
cette architecture comme, par exemple, l’utilisation des noms d’objets au lieu des
adresses IP. Toute utilisateur demanderait un objet avec le nom du fournisseur suivi
du nom d’objet et c’est le routeur d’acc`es qui va, soit envoyer la donn´e demand´e `a
travers ces caches `a l’edge, soit rediriger la demande vers le fournisseur de contenus.
Pour les travaux futurs, nous souhaitons approfondir l’´etude du tradeoff m´emoire/bande
passante en utilisant des mod`eles de coˆuts plus r´ealistes, et pour des hi´erarchies optimales
NRR/LCD, ou des caches coop´eratives pour plusieurs niveaux de caches.
Nous souhaitons aussi compl´eter notre ´etude sur les multipaths et leurs performances,
d’analyser l’impact des caches et la mani`ere de les g´erer sur les performances des multipaths.
Nous souhaitons aussi adapter la formule de Che `a plusieurs cas, notament
pour le cas d’une hierarchie LCD `a plusieurs niveau de caches. Il est aussi important
d’´evaluer l’´evolution des popularit´es des objets et leurs tailles.Ref´ erences ´
[1] T. Koponen, M. Chawla, G.-B. Chun, A. Ermolinskiy, H. Kim, S. Shenker,
and I. Stoica, “A data-oriented (and beyond) network architecture,” ACM SIGCOMM
Computer Communication Review, vol. 37, no. 4, pp. 181–192, 2007.
[2] V. Jacobson, D. Smetters, J. Thornton, M. Plass, N. Briggs, and R. Braynard,
“Networking named content,” in CoNext 2009, 2009.
[3] B. Ahlgren, M. D’Ambrosio, M. Marchisio, I. Marsh, C. Dannewitz, B. Ohlman,
K. Pentikousis, O. Strandberg, R. Rembarz, and V. Vercellone, “Design considerations
for a network of information,” Proceedings of the 2008 ACM CoNEXT
Conference, 2008.
[4] “Publish-subscribe internet routing paradigm.” http://psirp.hiit.fi/.
[5] A. Ghodsi, S. Shenker, T. Koponen, A. Singla, B. Raghavan, and J. Wilcox,
“Information-centric networking : seeing the forest for the trees,” in Proceedings
of HotNets-X, pp. 1 :1–1 :6, 2011.
[6] S. Fdida and N. Rozhnova, “An effective hop-by-hop interest shaping mechanism
for ccn communications,” in in IEEE NOMEN Workshop, co-located with
INFOCOM, 2012.
[7] G. Carofiglio, M. Gallo, and L. Muscariello, “Joint hop-by-hop and receiverdriven
interest control protocol for content-centric networks,” ACM SIGCOMM
Workshop on Information Centric Networking (ICN’12), 2012.
[8] G. Carofiglio, M. Gallo, and L. Muscariello, “Icp : Design and evaluation of an
interest control protocol for content-centric networking,” IEEE NOMEN Workshop,
co-located with INFOCOM, 2012.
[9] D. Rossi and G. Rossini, “Caching performance of content centric networks under
multi-path routing (and more).” Technical report, Telecom ParisTech, 2011.
[10] P. R. Jelenkovic, “Approximation of the move-to-front search cost distribution
and least-recently-used caching fault probabilities,” Annals of Applied Probability,
vol. 9, no. 2, pp. 430–464, 1999.
111112 REF´ ERENCES ´
[11] P. Gill, M. Arlitt, Z. Li, and A. Mahanti, “Youtube traffic characterization : a
view from the edge,” in Proceedings of the 7th ACM SIGCOMM conference on
Internet measurement, IMC ’07, (New York, NY, USA), pp. 15–28, ACM, 2007.
[12] K.Gummadi, R. S.saroiu, S.Gribble, A.Levy, and J.Zahorjan., “Measurement,
modeling and analysis of a peer-to-peer file shraing workload.,” in SOSP’03,
2003.
[13] M. Cha, H. Kwak, P. Rodriguez, Y.-Y. Ahn, and S. Moon, “I tube, you tube,
everybody tubes : analyzing the world’s largest user generated content video system,”
in Proceedings of the 7th ACM SIGCOMM conference on Internet measurement,
IMC ’07, (New York, NY, USA), pp. 1–14, ACM, 2007.
[14] G. Appenzeller, I. Kesslassy, and N. McKeown, “Sizing router buffers,” in SIGCOMM
2004, 2004.
[15] J.Nagle, “On packet switches with infinite storage,” in RFC 970, 1985.
[16] S. Oueslati and J. Roberts, “A new direction for quality of service : Flow aware
networking,” in NGI 2005, 2005.
[17] R. Pan, L. Breslau, B. Prabhakar, and S. Shenker, “Approximate fair dropping
for variable length packets,” ACM Computer Communications Review, vol. 33,
no. 2, pp. 23–39, 2003.
[18] B. Suter, T. Lakshman, D. Stiliadis, and A. Choudhury, “Buffer management
schemes for supporting TCP in gigabit routers with per-flow queueing,” IEEE
JSAC, vol. 17, no. 6, pp. 1159–1169, 1999.
[19] A. Kortebi, L. Muscariello, S. Oueslati, and J. Roberts, “Evaluating the number
of active flows in a scheduler realizing fair statistical bandwidth sharing,” in
ACM Sigmetrics, 2005.
[20] S. Ben Fredj, T. Bonald, A. Proutiere, G. R´egni´e, and J. W. Roberts, “Statistical
bandwidth sharing : a study of congestion at flow level,” SIGCOMM Comput.
Commun. Rev., vol. 31, no. 4, 2001.
[21] B. Briscoe, “Flow rate fairness : Dismantling a religion,” SIGCOMM Comput.
Commun. Rev., vol. 37, no. 2, pp. 63–74, 2007.
[22] M. Shreedhar and G. Varghese, “Efficient fair queueing using deficit round robin,”
SIGCOMM Comput. Commun. Rev., vol. 25, pp. 231–242, October 1995.
[23] T. Bonald, M. Feuillet, and A. Prouti´ere, “Is the ”law of the jungle” sustainable
for the internet ?,” in INFOCOM, 2009.
[24] P. Key and L. Massouli´e, “Fluid models of integrated traffic and multipath routing,”
Queueing Syst. Theory Appl., vol. 53, pp. 85–98, June 2006.
[25] D. Wischik, C. Raiciu, A. Greenhalgh, and M. Handley, “Design, implementation
and evaluation of congestion control for multipath tcp,” in NSDI’11 Proceedings
of the 8th USENIX conference on Networked systems design and implementation,
2011.REF´ ERENCES ´ 113
[26] C. Raiciu, D. Wischik, and M. Handley, “Practical congestion control for multipath
transport protocols,” in UCL Technical Report, 2010.
[27] G. Carofiglio, M. Gallo, L. Muscariello, and M. Papalini, “Multipath congestion
control in content-centric networks,” IEEE INFOCOM Workshop on emerging
design choices in name oriented networking, 2013.
[28] P. Viotti, “Caching and transport protocols performance in content-centric networks.”
Eurocom Master Thesis, 2010.
[29] Cisco, “Cisco visual networking index : Forecast and methodology, 2010-2015.”
White paper, 2011.
[30] A. Mahanti, C. Williamson, and D. Eager, “Traffic analysis of a web proxy
caching hierarchy,” IEEE Network, pp. 16–23, May/June 2000.
[31] J.Zhou, Y. Li, K. Adhikari, and Z.-L. Zhang, “Counting youtube videos via
random prefix sampling,” in Proceedings of IMC’07, 2011.
[32] L. Breslau, P. Cao, L. Fan, G. Phillips, and S. Shenke, “Web caching and zipflike
distributions : evidence and implications,” INFOCOM ’99. Eighteenth Annual
Joint Conference of the IEEE Computer and Communications Societies.
Proceedings. IEEE, 1999.
[33] Y. Carlinet, B. Kauffmann, P. Olivier, and A. Simonian, “Trace-based analysis
for caching multimedia services.” Orange labs technical report, 2011.
[34] H. Yu, D. Zheng, B. Y. Zhao, and W. Zheng, “Understanding user behavior
in large-scale video-on-demand systems,” SIGOPS Oper. Syst. Rev., vol. 40,
pp. 333–344, April 2006.
[35] P. Jelenkovic, X. Kang, and A. Radovanovic, “Near optimality of the discrete
persistent caching algorithm,” Discrete Mathematics and Theoretical Computer
Science, pp. 201–222, 2005.
[36] G. Carofiglio, M. Gallo, and L. Muscariello, “Bandwidth and storage sharing
performance in information centric networking,” in ACM Sigcomm workshop on
ICN, 2011.
[37] E.Rosensweig, J. Kurose, and D.Towsley, “Approximate models for general cache
networks,” in Infocom, 2010.
[38] A. Dan and D.Towsley, “An approximate analysis of the lru and fifo buffer replacement
schemes,” in SIGMETRICS, 1990.
[39] H. Che, Y. Tung, and Z. Wang, “Hierarchical web caching systems : modeling,
design and experimental results,” IEEE JSAC, vol. 20, no. 7, pp. 1305–1314,
2002.
[40] C. Fricker, P. Robert, and J. Roberts, “A versatile and accurate approximation
for lru cache performance,” in Proceedings of ITC 24, 2012.
[41] M. Gallo, B. Kauffmann, L. Muscariello, A. Simonian, and C. Tanguy, “Performance
evaluation of the random replacement policy for networks of caches,”
ASIGMETRICS ’12, 2012.114 REF´ ERENCES ´
[42] N. Laoutaris, S. Syntila, and I. Stavrakakis, “Meta algorithms for hierarchical
web caches,” in IEEE ICPCC, 2004.
[43] I. Psaras, W. K. Chai, and G. Pavlou, “Probabilistic in-network caching for
information-centric networks,” in Proceedings ICN ’12, (New York, NY, USA),
pp. 55–60, ACM, 2012.
[44] G. Rossini and D. Rossi, “Coupling caching and forwarding : Benefits, analysis,
and implementation,” tech. rep., telecom-paristech.
[45] K. Cho, M. Lee, K. Park, T. Kwonand, Y. Choi, and S. Pack, “Wave : Popularitybased
and collaborative in-network caching for content- oriented networks,,” in
IEEE INFOCOM, NOMEN, 2012.
[46] W. Chai, D. He, I. Psaras, and G. Pavlou, “Cache less for more in informationcentric
networks,” in IFIP NETWORKING, 2012.
[47] N. Laoutaris, H. Che, and I. Stavrakakis, “The lcd interconnection of lru caches
and its analysis,” Perform. Eval., vol. 63, pp. 609–634, July 2006.
[48] R. Chiocchetti, D. Rossi, G. Rossini, G. Carofiglio, and D. Perino, “Exploit the
known or explore the unknown ? : hamlet-like doubts in icn,” in ACM SIGCOMM,ICN,
2012.
[49] R. Chiocchetti, D. Perino, G. Carofiglio, D. Rossi, and G. Rossini, “Inform : a
dynamic interest forwarding mechanism for information centric networking,” in
ACM SIGCOMM, ICN, 2013.
[50] S. Eum, K. Nakauchi, M. Murata, Y. Shoji, and N. Nishinaga, “Catt :potential
based routing with content caching for icn,” in ACM SIGCOMM, ICN, 2012.
[51] C. Yi, A. Afanasyev, I. Moiseenko, L. Wang, B. Zhang, and L. Zhang, “A case
for stateful forwarding plane,” Computer Communications, vol. 36, no. 7, 2013.
[52] S. Borst, V. Gupta, and A. Walid, “Distributed caching algorithms for content
distribution networks,” IEEE INFOCOM, 2010.
[53] D. Perino and M. Varvello, “A reality check for content centric networking,” in
Proceedings of the ACM SIGCOMM workshop on Information-centric networking,
ICN ’11, (New York, NY, USA), pp. 44–49, ACM, 2011.
[54] D. Rossi and G.Rossini, “On sizing ccn content stores by exploiting topogical
information,” IEEE INFOCOM, NOMEN Worshop, 2012.
[55] J. Kangasharju, J. Roberts, and K. W. Ross, “Object replication strategies in
content distribution networks,” Computer Communications, pp. 367–383, 2001.
[56] J. P. Nussbaumer, B. V. Patel, F. Schaffa, and J. P. G. Sterbenz, “Networking
requirements for interactive video on demand,” IEEE Journal on Selected Areas
in Communications, vol. 13, pp. 779–787, 1995.
[57] I. Cidon, S. Kutten, and R. Soffer, “Optimal allocation of electronic content,”
Computer Networks, vol. 40, no. 2, pp. 205 – 218, 2002.REF´ ERENCES ´ 115
[58] A. Wolman, G. M. Voelker, N. Sharma, N. Cardwell, A. Karlin, and H. M. Levy,
“On the scale and performance of cooperative web proxy caching,” in ACM
Symposium on Operating Systems Principles, pp. 16–31, ACM New York, 1999.
[59] S. K. Fayazbakhsh, Y. Lin, A. Tootoonchian, A. Ghodsi, T. Koponen, B. Maggs,
K. C. Ng, V. Sekar, and S. Shenker, “Less pain, most of the gain : incrementally
deployable icn,” SIGCOMM ’13 Proceedings of the ACM SIGCOMM 2013
conference on SIGCOMM, 2013.
[60] Y. Wang, Z. Li, G. Tyson, S. Uhlig, and G. Xie, “Optimal cache allocation for
content-centric networking,” ICNP, IEEE, 2013.
[61] N.Carlson, G.Dan, A.Mahanti, and M. Arlitt., “A longitudinal a characterization
of local and global bittorrent workload dynamics,” In Proceedings of PAM12,
2012.
[62] Z. Li and G. Simon, “Time-shifted tv in content centric networks : The case for
cooperative in-network caching,” In Communications (ICC), 2011.
[63] J. Ni and D. Tsang, “Large-scale cooperative caching and application-level multicast
in multimedia content delivery networks,” Communications Magazine,
IEEE, 2005.
Trigraphes de Berge apprivoises
Th´eophile Trunck
To cite this version:
Th´eophile Trunck. Trigraphes de Berge apprivoises. Discrete Mathematics. Institut d’Optique
Graduate School, 2014. French. .
HAL Id: tel-01077934
https://tel.archives-ouvertes.fr/tel-01077934
Submitted on 27 Oct 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.École Normale Supérieure de Lyon
THÈSE
pour obtenir le grade de
Docteur de l’Université de Lyon, délivré par l’École Normale
Supérieure de Lyon
Spécialité : Informatique
préparée au Laboratoire de l’Informatique du Parallélisme
dans le cadre de l’École Doctorale Info-Math
présentée et soutenue publiquement
par
Théophile Trunck
le 17 septembre 2014
Titre :
Trigraphes de Berge apprivoisés
Directeur de thèse : Nicolas Trotignon
Jury
Celina De Figueiredo, Rapporteur
Frédéric Maffray, Rapporteur
Stéphan Thomassé, Examinateur
Nicolas Trotignon, Directeur
Annegret Wagler, ExaminateurRésumé
L’objectif de cette thèse est de réussir à utiliser des décompositions de graphes afin
de résoudre des problèmes algorithmiques sur les graphes.
Notre objet d’étude principal est la classe des graphes de Berge apprivoisés. Les
graphes de Berge sont les graphes ne possédant ni cycle de longueur impaire supérieur
à 4 ni complémentaire de cycle de longueur impaire supérieure à 4. Dans les années
60, Claude Berge a conjecturé que les graphes de Berge étaient des graphes parfaits,
c’est-à-dire que la taille de la plus grande clique est exactement le nombre minimum
de couleurs nécessaires à une coloration propre et ce pour tout sous-graphe. En 2002,
Chudnovsky, Robertson, Seymour et Thomas ont démontré cette conjecture en utilisant
un théorème de structure : les graphes de Berge sont basiques ou admettent une décomposition.
Ce résultat est très utile pour faire des preuves par induction. Cependant, une
des décompositions du théorème, la skew-partition équilibrée, est très difficile à utiliser
algorithmiquement. Nous nous focalisons donc sur les graphes de Berge apprivoisés,
c’est-à-dire les graphes de Berge sans skew-partition équilibrée. Pour pouvoir faire des
inductions, nous devons adapter le théorème de structure de Chudnovsky et al. à notre
classe. Nous prouvons un résultat plus fort : les graphes de Berge apprivoisés sont basiques
ou admettent une décomposition telle qu’un côté de la décomposition soit toujours
basique. Nous avons de plus un algorithme calculant cette décomposition. Nous utilisons
ensuite notre théorème pour montrer que les graphes de Berge apprivoisés admettent la
propriété du grand biparti, de la clique-stable séparation et qu’il existe un algorithme
polynomial permettant de calculer le stable maximum.
Abstract
The goal of this thesis is to use graph’s decompositions to solve algorithmic problems
on graphs.
We will study the class of tamed Berge graphs. A Berge graph is a graph without
cycle of odd length at least 4 nor complement of cycle of odd length at least 4. In
the 60’s, Claude Berge conjectured that Berge graphs are perfect graphs. The size of
the biggest clique is exactly the number of colors required to color the graph. In 2002,
Chudnovsky, Robertson, Seymour et Thomas proved this conjecture using a theorem of
decomposition: Berge graphs are either basic or have a decomposition. This is a useful
result to do proof by induction. Unfortunately, one of the decomposition, the skewpartition,
is really hard to use. We are focusing here on tamed Berge graphs, i.e Berge
graph without balanced skew- partition. To be able to do induction, we must first adapt
the Chudnovsky et al’s theorem of structure to our class. We prove a stronger result:
tamed Berge graphs are basic or have a decomposition such that one side is always basic.
We also have an algorithm to compute this decomposition. We then use our theorem
to prove that tamed Berge graphs have the big-bipartite property, the clique-stable set
separation property and there exists a polytime algorithm to compute the maximum
stable set.
iiRemerciements
Je tiens tout d’abord à remercier mon directeur de thèse Nicolas Trotignon, pour
sa disponibilité, l’aide qu’il m’a accordée pendant cette thèse et toutes les choses qu’il
a pu m’apprendre tant au niveau de la recherche que de comment bien rédiger ou de
choses plus anecdotiques comme la liste des monarques danois à partir de XVe siècle 1
.
Je souhaite à tous les thésards de pouvoir bénéficier d’un encadrement comme le tien.
Si je peux présenter cette thèse, c’est aussi grâce à mes relecteurs. Je remercie Celina
de Figueiredo pour toutes ses remarques sur le manuscrit et aussi pour avoir accepté de
faire le déplacement à Lyon pour faire partie de mon jury. Je remercie également Frédéric
Maffray, pour sa relecture scrupuleuse qui m’a permis de rendre plus claires certaines
preuves. Merci également à Annegret Wagler d’avoir bien voulu faire partie de mon jury.
Stéphan, merci pour tous les problèmes souvent suivis de solutions très élégantes que tu
as pu nous poser durant ces années à Lyon, merci aussi d’avoir accepté de participer à
ce jury.
Durant ce temps passé en thèse, mais aussi durant mon stage de master où j’ai pu
commencer à travailler sur les problèmes présentés ici, j’ai eu la chance de rencontrer de
nombreuses personnes. Je pense tout d’abord à mes cobureaux, par ordre d’apparition :
Pierre, lorsque j’étais encore en stage de master au Liafa à Paris et qui nous a ensuite fait
l’honneur de ses visites à Lyon. Bruno pour ton accueil au sein du LIP, tes explications
sur le fonctionnement du DI et qui par ta maîtrise de Sage m’a donné goût à la science
expérimentale. Sébastien tes discussions ont contribué à enrichir mes connaissances en
physique, merci surtout pour ton enthousiasme à vouloir travailler sur n’importe quel
problème, qu’il soit ou non lié à ton domaine de recherche. Aurélie sans qui les grapheux
de MC2 n’auraient pas pu aller à toutes ces conférences, merci pour ton soutien. Emilie,
je ne sais pas si nous avons officiellement été cobureaux mais merci pour toutes ces discussions
(scientifiques ou pas) et bien sûr pour ces quiz musicaux. Jean-Florent, pendant
ce semestre à Varsovie j’ai été très content d’avoir un cobureau lui aussi conditionné à
manger à heures fixes, merci de m’avoir aidé à comprendre les wqo. Comme le temps
passé au labo ne se limite pas à mon bureau merci à toute l’équipe MC2 : Nathalie,
Pascal, Irena, Natacha, Michaël, Éric, Éric, Zhentao, Kévin, Maxime, Petru, Sebastián,
Matthieu. Je souhaite à tout le monde de pouvoir travailler dans une telle équipe.
La recherche ne se limite pas à Lyon. Merci à Maria et Kristina de m’avoir appris
autant de choses sur les graphes parfaits lors de votre séjour à Paris au début de mon
stage. Marcin dziękuję za zaproszenie do Warszawy. Merci aussi à Marko et Jarek avec
qui j’ai eu l’occasion de travailler respectivement à Belgrade et à Varsovie. Merci enfin
à ceux qui m’ont les premiers fait découvrir la théorie des graphes lors de mon stage de
M1. Daniël pour avoir proposé un sujet de stage intéressant et accessible, Matthew et
Viresh pour vos discussions, Pim pour tes parties de billard.
La thèse c’est aussi l’enseignement, à ce titre merci à tous ceux avec qui j’ai eu
l’occasion d’enseigner : Christophe, Xavier, Éric, Vincent et Arnaud. Merci aussi à tous
mes élèves, particulièrement à ceux que j’ai eu l’occasion de coacher pour le SWERC.
1. C’est une alternance de Christian et de Frédéric
iiiMême s’ils ne m’ont pas fait gagner de gourde j’ai été très content de les accompagner
à Valence.
Un immense merci à Marie et Chiraz pour les réponses aux innombrables questions
que j’ai pu leur poser et pour l’organisation de mes missions. Chiraz encore merci pour
t’être occupée de l’organisation de ma soutenance. Merci à Damien pour ton aide lors
des procédures d’inscription, de réinscription et de soutenance de thèse. Merci aussi à
Catherine, Évelyne, Laetitia, Sèverine et Sylvie d’avoir toutes, à un moment donné, su
répondre à mes demandes.
Comme une thèse ce n’est pas seulement ce qui se passe au labo, je voudrais remercier
tous ceux qui m’ont accompagné durant ces trois ans. Au risque d’en oublier, merci à :
Coco, Dédé, Pedro, Jo, So, Nico, Julie, Rom, Jess, Marion, Mika, Pauline, Pippo, Audrey,
Camille... Merci aussi à toute ma famille, à mes parents qui ont pu être présents pour
ma soutenance, à ma sœur qui est régulièrement passée à Lyon pendant ma thèse, mais
surtout à Léopold sans qui l’organisation du pot m’aurait bien plus stressé. Enfin Marie,
merci pour ton soutien pendant ces trois dernières années, mais merci surtout de m’avoir
suivi à Lyon.
Et toi lecteur, si tu n’as pas encore trouvé ton nom, je ne t’ai pas oublié. J’espère
juste que /dev/random te permettra de le trouver parmi tous les autres dans la grille
suivante.
O K R A M S H T E R G E N N A Z O G U X
U E L L I M A C H I R A Z J E S S I C A
V E A H C A T A N E M A T T H E W Z V M
S O P E E I L E R U A Y H T A C R W S A
O A Q N H K T T H E N I R E H T A C U R
L T M P I P D X N W P L E O P O L D E I
E N S I U C O C X E M O S E V E R I N E
N E F T K D O T R A R A L L P E O L D H
N H E F E A E L S O V O R E Y G E E B E
O Z I G T L S N A I L I L C N D W A A Y
I A L E V N L A I S R A E F I E W H W E
R I A R N U E A L L V H N R N N P C A I
A R H A Y E S C J S U K C D I A C I L V
M A T R M O I N N E I A R K Q I E M S L
Z M A D O I S T I I M N P I R F X J O Y
N H N T C H G Q S A V I A E S U D F R S
C F R E D E R I C A M J X T F T R I A Y
L A E T I T I A L J B O R A S T I T J O
E I L I M E V E L Y N E R X M R V N E M
M N A H T A N O J R M V S C E L I N A P
ivTable des matières
Table des matières . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
1 Introduction 1
2 Trigraphes de Berge apprivoisés 9
2.1 Définitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2 Trigraphes basiques . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.3 Décompositions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.4 Structure des trigraphes de Berge apprivoisés . . . . . . . . . . . . . 21
2.5 Blocs de décomposition . . . . . . . . . . . . . . . . . . . . . . . . . 28
3 Propriété du grand biparti 35
3.1 Grand biparti dans les trigraphes de Berge apprivoisés . . . . . . . 37
3.2 Clôture par k-joints généralisés . . . . . . . . . . . . . . . . . . . . 44
3.3 Grand biparti dans les classes closes par k-joints . . . . . . . . . . . 45
4 Clique-Stable séparateur 49
4.1 Clique-stable séparateur dans les trigraphes de Berge apprivoisés . . 51
4.2 Clique-stable séparateur dans les classes closes par k-joints . . . . . 55
5 Calcul du stable maximum 59
5.1 Le cas des trigraphes basiques . . . . . . . . . . . . . . . . . . . . . 60
5.2 Stocker α dans les blocs . . . . . . . . . . . . . . . . . . . . . . . . 62
5.3 Calculer α . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
6 Décompositions extrêmes 79
6.1 Décompositions extrêmes . . . . . . . . . . . . . . . . . . . . . . . . 79
6.2 Calculer une fin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7 Conclusion 95
Bibliographie 97
vTABLE DES MATIÈRES
viChapitre 1
Introduction
Les graphes permettent de modéliser de nombreux problèmes. Par exemple,
affecter un nombre minimal de salles permettant de faire cours sans que deux cours
n’aient lieu dans la même salle au même moment est un problème de coloration
du graphe d’intervalles représentant les cours.
Certains de ces problèmes sont “faciles”, c’est-à-dire qu’il existe un algorithme
en temps d’exécution polynomial pour les résoudre, d’autres sont difficiles (NPcomplet)
c’est-à-dire que si l’on trouve un algorithme efficace pour les résoudre, on
résout par la même occasion tous les problèmes NP (ceux pour lesquels si l’on nous
donne une solution il est facile de la vérifier, en particulier tous les problèmes de
chiffrement). Cependant même si un problème est difficile sur les graphes généraux,
il est possible que sur certaines classes de graphes il soit facile. Le problème du
stable maximum est en général difficile, mais dans le cas des graphes bipartis (les
graphes sans cycle de longueur impaire ou de manière équivalente, les graphes
pouvant se partitionner en deux ensembles de sommets V1 et V2, tels que les seules
arêtes soient entre V1 et V2, c’est-à-dire qu’il n’y ait aucune arête dans V1 ni
dans V2) il devient facile. Notons bien que l’adjectif facile veut seulement dire ici
qu’il existe un algorithme polynomial (donc dans un certain sens efficace) pour
le résoudre et pas que cet algorithme est “facile” à trouver. Par exemple, pour
résoudre le problème du stable maximum dans les graphes bipartis, il faut utiliser
le théorème de Kőnig assurant l’égalité entre deux paramètres de graphe et un
algorithme de couplage qui est maintenant classique.
Il est donc intéressant d’étudier des classes de graphes. D’un point de vue
théorique afin de comprendre ce qui fait la difficulté d’un problème, mais également
d’un point de vue pratique. En effet en modélisant un problème il est tout à
fait possible que le graphe obtenu ait des propriétés spécifiques et qu’il soit alors
1CHAPITRE 1. INTRODUCTION
1
1
1
1
2
2 2
3
3
3
Figure 1.1 – Exemple de coloration
possible d’avoir des algorithmes efficaces. De nombreuses restrictions peuvent être
obtenues, par exemple un graphe peut être obtenu à partir d’une carte routière
et donc être représenté sans que ses arêtes ne se croisent (il est alors planaire). Il
peut être obtenu à partir d’intersections d’intervalles de R (c’est alors un graphe
d’intervalles) ou de contraintes entre deux types d’objets. Nous nous intéressons
particulièrement aux classes de graphes définies par sous-graphes induits interdits,
c’est-à-dire qu’en supprimant des sommets, on est assuré de ne pas pouvoir obtenir
certains sous-graphes. De manière équivalente cela veut dire que quel que soit le
sommet que l’on supprime, le graphe reste dans notre classe, ce qui permet par
exemple de faire des inductions. Les graphes bipartis sont un exemple de classe de
graphe définie par sous-graphes induits interdits (les cycles de longueur impaire).
La question générale est celle de l’influence des propriétés locales (on interdit
localement une configuration) sur les propriétés globales : comment peut-on trouver
un ensemble de taille maximum de sommets tous deux à deux non-adjacents,
comment peut-on colorier le graphe avec seulement k couleurs ?
Le problème de coloration est le suivant : étant donné un graphe G, nous voulons
donner à chacun de ses sommets une couleur (classiquement on identifie les
couleurs à des entiers), telle que deux sommets adjacents n’aient pas la même
couleur. Une solution triviale est de donner à chaque sommet une couleur diffé-
rente, mais nous cherchons à minimiser le nombre de couleurs différentes utilisées.
Pour un graphe G on appelle nombre chromatique que l’on note χ(G) le nombre
minimum de couleurs nécessaire pour colorier G.
Une question naturelle à propos du problème de coloration, et c’est celle qui
2va motiver l’introduction de notre classe de graphes, est la suivante : pourquoi un
graphe G peut-il être colorié avec c couleurs mais pas avec c − 1 ? Il est facile de
trouver des conditions nécessaires. Par exemple, si un graphe contient une arête,
c’est-à-dire deux sommets adjacents, il ne peut pas être colorié avec moins de 2
couleurs. Plus généralement s’il contient une clique de taille k (un ensemble de
sommets tous deux à deux adjacents) alors il ne pourra pas être colorié avec strictement
moins de k couleurs. Pour un graphe G on note ω(G) la taille de sa plus
grande clique. Ce que nous venons de voir peut se traduire avec nos notations :
Pour tout graphe G, χ(G) ≥ ω(G). Cependant la présence de clique n’est pas la
seule obstruction. Par exemple, il n’y a pas de clique de taille strictement supé-
rieure à deux dans un cycle sans corde sur 5 sommets, pourtant il est impossible
de le colorier avec strictement moins de 3 couleurs. Plus généralement, il existe de
nombreuses constructions qui pour tout entier k fournissent un graphe Gk n’ayant
pas de triangle (de clique de taille plus que 3), mais qui n’est pas coloriable avec
moins de k couleurs. Dans ce contexte, il est intéressant de regarder comment sont
construits les graphes pour lesquels avoir une clique de taille k est la seule raison
de ne pas être k coloriable. Il y a une petite subtilité technique, avec seulement
cette propriété n’importe quel graphe est, si on lui ajoute une clique suffisamment
grande, dans la classe. Pour éviter ce problème et comprendre vraiment les structures
de nos graphes, Claude Berge a proposé dans les années 1960 de demander
que tous les sous-graphes induits soient également dans la classe. C’est ainsi que
sont définis les graphes parfaits : un graphe G est parfait si et seulement si pour
tout sous-graphe induit H de G, alors la taille de la plus grande clique de H est
égale au nombre de couleurs minimum permettant de colorier le graphe H. Soit
avec nos notations un graphe G est parfait si et seulement si pour tout sous-graphe
induit H de G, χ(H) = ω(H).
Une autre notion importante est celle du stable. Un stable dans un graphe est
un ensemble de sommets sans aucune arête entre eux. Pour tout graphe G on note
α(G) la taille d’un stable maximum de G. Une opération classique sur un graphe
G est de prendre son complémentaire G définit comme suit : les sommets de G
sont les même que ceux de G et deux sommets de G sont adjacents si et seulement
s’ils ne sont pas adjacents dans G. On peut alors voir qu’un stable dans G devient
une clique dans G et inversement. On a alors avec nos notations α(G) = ω(G).
D’un point de vue algorithmique, il est intéressant de noter que trouver un
algorithme de coloration dans les graphes parfaits se ramène à un algorithme de
calcul de stable et de clique maximum pondérés (on met des poids sur les sommets
et on cherche un stable ou une clique de poids maximum). C’est pourquoi cette
3CHAPITRE 1. INTRODUCTION
thèse contient un chapitre sur le calcul du stable mais pas sur un algorithme
de coloration. Ce résultat classique est difficile à extraire des travaux originaux de
Gröstchel, Lovász, Schrijver mais est exposé plus clairement dans plusieurs travaux
ultérieurs [33, 36]. Afin que le problème de coloration soit également traité dans
cette thèse, le voici avec sa démonstration.
Théorème 1.1 (Gröstchel, Lovász, Schrijver, 1988). Pour toute classe C autocomplémentaire
de graphes parfaits, s’il existe un algorithme de complexité
O(n
k
) pour calculer un stable maximum pondéré d’un graphe de C, alors il
existe un algorithme de complexité O(n
k+2) pour colorier les graphes de C.
Démonstration. Commençons par donner un algorithme qui étant donné un graphe
G de C et une liste de cliques maximums de G K1, . . . , Kt avec t < |V (G)| calcule
en temps O(n
k
) un stable de G intersectant toutes ces cliques.
Donnons à chaque sommets le poids yv = |{i; v ∈ Ki}|. Ce poids peut être nul.
Calculons alors avec notre algorithme un stable pondéré maximum S. Nous alons
montrer que S intersecte bien toutes les cliques Ki
.
Considérons alors le graphe G0 obtenu à partir de G en réplicant yv fois chaque
sommet v. Observons que G0 peut ne pas être dans C mais est un graphe parfait.
En réplicant yv fois chaque sommet v de S nous obtenons S
0 un stable maximum
de G0
. Par construction, G0 peut être partitionné en t cliques de taille ω(G) qui
forment un coloriage optimale de G0 car α(G0
) = ω(G0
) = ω(G). Puisque que le
complémentaire d’un graphe parfait est parfait, G0 est parfait, et donc |S
0
| = t.
Donc dans G, S intersecte toutes les cliques Ki
.
Nous allons maintenant montrer comment trouver un stable S intersectant
toutes les cliques maximum de G. Ce stable formera une couleur et nous appliquerons
ensuite cette méthode inductivement sur G \ S qui est bien χ(G) − 1
coloriable. Notons que la classe C n’a pas besoin d’être héréditaire, puisqu’on peut
émuler G\S en donnant un poids nul aux sommets de S. Commençons avec t = 0.
À chaque étape nous avons une liste de cliques maximums K1, . . . , Kt et nous calculons
un stable S les intersectant toutes avec la méthode décrite précédament. Si
ω(G \ S) < ω(G), alors notre stable intersecte toute les cliques maximums de G.
Dans le cas contraire, calculons une clique maximum Kt+1 de G\S. Ce qui revient
à calculer un stable maximum dans G \ S et qui est possible car notre classe est
autocomplémentaire et en donnant un poids nul aux sommets de S.
Pour prouver notre résultat nous n’avons plus qu’à montrer que t la taille de
notre liste de clique maximum est bornée par |V (G)|.
41
1
2
2
3
1
1
1
2
2
2
3
1
1
2
2
3
3
4
Figure 1.2 – Trous et complémentaire de trous (C5 = C5, C7 et C7)
Soit Mt
la matrice d’incidence des cliques K1, . . . Kt
. C’est-à-dire que les colonnes
de Mt correspondent aux sommets de G et que chaque ligne est une clique.
Montrons par induction que les lignes de Mt sont indépendantes. Le cas de base
est trivial. Supposons que les lignes de Mt sont indépendantes et montrons que
celles de Mt+1 le sont.
Soit x le vecteur d’incidence x de S. On a Mtx = 1 mais pas de Mt+1x = 1.
Supposons que les lignes de Mt+1 ne soient pas indépendantes. Nous avons, Kt+1 =
λ1K1 + · · · + λtKt
. En multipliant par x nous avons Kt+1x = λ1 + · · · + λt 6= 1. En
multipliant par le vecteur colonne 1 nous avons alors ω(G) = Kt+11 = λ1ω(G) +
· · · + λtω. Donc λ1 + · · · + λt = 1, une contradiction. Par conséquent, les matrices
M1, M2, . . . ne peuvent avoir plus de |V (G)| lignes, et notre nombre d’itérations
est bien borné par |V (G)|.
Comme nous l’avons vu, contenir un cycle sans corde de longueur impaire nous
assure de ne pas être parfait. Il est facile de voir que contenir le complémentaire
d’un cycle sans corde de longueur impaire (tous les sommets non-adjacents deviennent
adjacents et ceux adjacents deviennent non-adjacents, pour tout graphe
G on note G son complémentaire) empêche également un graphe d’être parfait.
On appelle trou un cycle sans corde, et on note Cn le trou de longueur n. On dit
qu’un graphe sans trou, ni complémentaire de trou de longueur impaire supérieure
à 4 est un graphe de Berge. La propriété d’être parfait pour un graphe est une
propriété globale et elle implique la propriété locale d’être de Berge.
Un exemple trivial d’influence de propriété locale ou d’interdiction de structures
locales sur la coloration est celui d’interdire les arêtes. Dans ce cas il est
immédiat que le graphe est coloriable avec une seule couleur. Voyons un exemple
plus intéressant. On note P4 le chemin de 4 sommets, ce graphe a 3 arêtes. Un
5CHAPITRE 1. INTRODUCTION
graphe G est sans P4 s’il ne contient pas P4 en tant que sous graphe induit.
Théorème 1.2. Les graphes sans P4 sont coloriables optimalement avec l’algorithme
suivant : Commençons par attribuer à chaque couleur un entier. Puis
tant qu’il existe un sommet non colorié le colorier avec la plus petite couleur
non utilisée par un de ses voisins.
Démonstration. Notons k le nombre de couleurs utilisées par l’algorithme. Soit i le
plus petit entier, tel qu’il existe une clique composée de k − i + 1 sommets coloriés
de i à k. Si le graphe ne contient pas d’arête, il est clair que l’algorithme est valide,
sinon cette clique contient au moins 2 sommets. Nous allons montrer que i = 1.
Supposons que ce n’est pas le cas. Par définition de l’algorithme, tout sommet de
la clique a un voisin colorié par i − 1, notons S cet ensemble de sommets. Par
minimalité de i, S ne peut être réduit à un unique sommet. De plus, les sommets
de S ayant la même couleur, ils forment donc un stable (ils sont tous deux à deux
non-adjacents). Il existe deux sommets u et v de S, tels que u a un voisin x dans
la clique qui n’est pas un voisin de v et v a un voisin dans la clique qui n’est pas
un voisin de u. Les sommets u − x − y − v forment un P4, c’est une contradiction.
Il existe donc une clique de taille k. Comme nous l’avons vu précédemment il est
donc impossible de colorier le graphe avec strictement moins de k couleurs. Notre
algorithme est donc optimal.
Cette démonstration classique montre en fait que les graphes sans P4 sont des
graphes parfaits.
Dans les années 1960, Claude Berge a conjecturé qu’un graphe était parfait si
et seulement si il était de Berge. Comme on vient de le voir, le passage du global
(être coloriable avec exactement le même nombre de couleurs que la taille de la
plus grande clique) au local (ne pas contenir de trou ni de complémentaire de
trou de longueur impaire plus grande que 4) est clair. D’après les définitions : les
graphes parfaits sont des graphes de Berge. C’est la réciproque, le passage du local
au global qui est complexe. Cette conjecture a motivé de nombreuses recherches,
utilisant des outils très différents (polyèdre, combinatoire). Finalement c’est grâce à
un théorème de structure qu’en 2002 Chudnovsky, Robertson, Seymour et Thomas
ont pu démontrer cette conjecture.
Théorème 1.3 (Chudnovsky, Robertson, Seymour, Thomas (2002)). Les
graphes de Berge sont parfaits.
6Un théorème de structure est un théorème disant que les graphes d’une classe
sont : ou bien basiques ou bien admettent une décomposition. Par basique, on
entend qu’ils sont dans une sous-classe de graphe suffisamment simple ou étudiée
pour qu’il soit possible de résoudre notre problème sur cette sous-classe. Par
décomposition, on entend que le graphe est obtenu en recollant de manière bien
définie deux graphes plus petits de la classe. Le sommet d’articulation (un sommet
dont la suppression déconnecte le graphe) est un exemple de décomposition.
Si l’on a deux graphes G1 et G2 on peut en former un troisième G3 plus gros
en identifiant un sommet de G1 avec un sommet de G2, ce sommet devient alors
un sommet d’articulation de G3. Il existe également une version plus forte des
théorèmes de structure : les théorèmes de structure extrême, qui énoncent qu’un
graphe est ou bien basique, ou bien admet une décomposition telle qu’un côté de la
décomposition est basique. Si l’on regarde l’arbre de décomposition d’un théorème
de structure extrême, c’est un peigne (chaque nœud interne de l’arbre a comme
fils une feuille et un nœud).
Les théorèmes de structure sont généralement très utiles pour faire des démonstrations
ou obtenir des algorithmes. Ils permettent de faire des inductions. Si une
propriété est vraie pour les graphes basiques et qu’il est possible en utilisant la
forme de la décomposition d’avoir cette propriété sur la composition de graphes,
alors la propriété est vraie pour la classe de graphes. Certaines décompositions
sont faciles à utiliser, par exemple le sommet d’articulation ou plus généralement
la clique d’articulation (une clique dont la suppression déconnecte le graphe) qui
peuvent, par exemple, être utilisées pour la coloration. D’autres sont très difficiles
à utiliser, par exemple le star-cutset (un sommet dont la suppression et la suppression
de certains de ses voisins déconnectent le graphe) et ses généralisations.
En effet, il est possible que le star-cutset soit constitué de la majeure partie du
graphe, dans ce cas toute tentative d’induction nécessitant de conserver le starcutset
dans chaque partie de la décomposition (c’est ce qui est le cas classique)
conduira nécessairement à un algorithme exponentiel.
Dans cette thèse, nous allons utiliser le théorème de structure des graphes de
Berge afin de démontrer un certain nombre de propriétés et d’algorithmes. Le
théorème de Chudnovsky et al. et dont nous avons déjà parlé est le suivant.
Théorème 1.4 (Chudnovsky, Robertson, Seymour, Thomas (2002)). Les
graphes de Berge sont basiques ou décomposables par skew-partitions équilibrées,
2-joints ou complémentaire de 2-joints.
Toutes les définitions seront données dans le chapitre 2. Nous ne savons pas
7CHAPITRE 1. INTRODUCTION
utiliser les skew-partitions (une décomposition généralisant les star-cutset) dans
les algorithmes, nous nous focalisons donc sur les graphes de Berge sans skewpartition.
Vu que notre classe et que nos problèmes sont auto-complémentaires
notre principale décomposition est donc le 2-joint. Nous essayerons tant que possible
de généraliser nos résultats à d’autres classes décomposables par k-joints.
Dans le chapitre 2, nous donnons toutes les définitions. Nous avons en fait
besoin de généraliser la définition d’arête d’un graphe. Nous aurons alors des arêtes
fortes, des non-arêtes fortes et un nouveau type d’adjacence : les arêtes optionnelles
qui encodent une adjacence floue. Ces graphes généralisés sont appelés trigraphes
et on été introduit par Chudnovsky et al. lors de la preuve du théorème fort des
graphes parfaits. Nous avons donc besoin de redéfinir toutes les notions usuelles
de graphe, ainsi que le théorème de structure des graphes de Berge.
Dans le chapitre 3, nous nous intéressons aux classes pour lesquelles il existe
pour tout graphe de la classe deux ensembles de sommets complets dans le graphe
ou dans son complément de taille linéaire. Il y a des contre-exemples de classes
de graphes de Berge sans ces ensembles, mais lorsqu’on exclut les skew-partition
ces ensembles existent toujours. Il est possible de généraliser cette propriété aux
classes construites par k-joints.
Dans le chapitre 4, nous nous intéressons à la propriété de la clique-stable séparation,
c’est-à-dire à l’existence d’un nombre polynomial de partitions du graphe
en 2 ensembles tels que pour toute clique et tout stable sans intersection, il existe
une partition contenant la clique d’un côté et le stable de l’autre. Ce problème est
ouvert en général sur les graphes de Berge, mais nous pouvons le démontrer dans
le cas où on exclut les skew-partition. Ici encore cette propriété peut-être étendue
aux classes construites par k-joints.
Dans le chapitre 5, nous nous intéressons au calcul en temps polynomial du
stable maximum. Notre algorithme est constructif et donne directement les sommets
du stable. Dans le cas général des classes héréditaires on peut reconstruire
avec un surcoût linéaire un stable maximum en sachant calculer sa valeur, cependant
notre classe n’est pas héréditaire. Cet algorithme ne se généralise pas aux
classes construites par k-joints, il existe de telles classes où le calcul du stable maximum
est NP-complet. À partir de l’algorithme de calcul du stable on peut déduire
un algorithme qui calcule une coloration optimale avec un surcoût de O(n
2
).
Dans le chapitre 6, nous montrons qu’en étendant notre ensemble de décompositions
nous pouvons obtenir une version extrême du théorème de structure. Nous
donnons également des algorithmes permettant de calculer une telle décomposition.
8Chapitre 2
Trigraphes de Berge apprivoisés
Les résultats de ce chapitre ont été obtenus avec Maria Chudnovsky, Nicolas Trotignon
et Kristina Vušković, ils font l’objet d’un article [15] soumis à Journal of
Combinatorial Theory, Series B.
Nous introduisons dans ce chapitre une généralisation des graphes, les trigraphes.
Il semble que cette notion de trigraphe, inventée par Chudnovsky, soit
en train de devenir un outil très utile en théorie structurelle des graphes. Les
trigraphes ont entre autre été utilisés pour éliminer la paire homogène (deux ensembles
A et B de sommets se comportant comme deux sommets vis à vis du reste
du graphe i.e tels que le reste du graphe se décompose en quatre ensembles : les
sommets complétement adjacents aux sommets de A et de B, ceux complétement
adjacents aux sommets de A et complétement non-adjacents aux sommets de B,
ceux complétement non-adjacents aux sommets de A et complétement adjacents
aux sommets de B et ceux complétement non-adjacents aux sommets de A et de B)
de la liste des décompositions utilisées pour décomposer les graphes de Berge [9].
Ils apparaissent également dans l’étude des graphes sans griffe [14] ou dans celle
des graphes sans taureau [11, 10]. La notion de trigraphe apparait également lors
de l’étude d’homomorphismes [18, 19]. Cependant il faut bien noter que dans ce
dernier cas, même si le nom et les idées générales sont identiques, les définitions
diffèrent légèrement.
Avant de tout définir, essayons d’expliquer informellement l’intérêt des trigraphes.
Le premier exemple de leurs utilisation est dans la démonstration de
l’amélioration du théorème de décomposition des graphes de Berge. En effet, lors
9CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS
A B
Figure 2.1 – Paire Homogène (Une double arête entre deux ensembles indique
qu’ils sont complet, une arête simple indique qu’on ne sait rien sur leur adjacence,
l’absence d’arête indique qu’il n’y a aucune arête entre les deux ensembles)
de la preuve du théorème des graphes parfaits Chudnovsky, Robertson, Seymour et
Thomas [13] parviennent à décomposer les graphes de Berge en utilisant trois types
de décompositions. Chudnovsky [9] montre alors qu’une de ces décompositions, la
paire homogène est en fait inutile. Voyons l’intérêt des trigraphes dans la démonstration
de ce résultat. L’idée de sa preuve est de prendre le plus petit graphe
G dont la seule décomposition possible est une paire homogène et de chercher
une contradiction. L’idée naturelle est alors de contracter cette paire homogène
afin d’obtenir un graphe plus petit G0
, qui par hypothèse de minimalité, admet
alors une décomposition autre que la paire homogène. On peut alors déduire de
cette décomposition une décomposition dans G. Ce qui est contradictoire puisque
par hypothèse, G n’est décomposable que par paire homogène. Cette idée est en
fait une méthode classique de démonstration en théorie structurelle de graphes.
Le principal problème (et c’est pour répondre à ce problème que les trigraphes
ont été introduit) est de savoir comment contracter la paire homogène. Une paire
homogène étant deux ensembles A et B de sommets se comportant comme deux
sommets vis à vis du reste du graphe, on peut vouloir les réduire à deux sommets a
et b tout en préservant leurs adjacences par rapport au reste du graphe. La question
est de savoir s’il faut ou non mettre une arête entre ces deux sommets contractés.
Sans donner les définitions précises, si on décide de ne pas mettre d’arête entre a
et b, dans un certain sens, a va pouvoir être séparé de b, alors que dans le graphe
de départ, séparer A de B n’a pas de sens. Nous avons le même problème dans
le complémentaire du graphe si l’on décide de mettre une arête entre a et b. En
10fait aucun de ces choix n’est le bon, en effet a priori chacun de ces choix pourrait
créer une décomposition. Ce n’est finalement pas le cas puisque le résultat est
vrai mais toute démonstration se heurte à ce problème. L’idée est alors de mettre
une arête optionnelle. Les trigraphes sont alors définis comme des graphes mais
avec trois types d’adjacence, les arêtes, les arêtes optionnelles et les non-arêtes.
Une réalisation d’un trigraphe est alors une affectation des arêtes optionnelles en
arêtes et non-arêtes. Tout le vocabulaire et les propriétés sur les graphes se traduisent
alors sur les trigraphes de la manière suivante : Une propriété P est vraie
sur le trigraphe T si et seulement si elle est vraie sur toutes les réalisations G de
T. On ne crée alors plus de décomposition car on peut alors montrer que si toutes
les réalisations contiennent cette décomposition, alors cette décomposition était
présente à l’origine, ce qui mène à une contradiction. Bien entendu pour pouvoir
faire l’induction tous les résultats doivent être vrais sur les trigraphes. Comme
c’est souvent le cas lors des preuves par induction afin d’obtenir le résultat voulu
nous devons en montrer un plus fort.
Les trigraphes permettent donc de travailler naturellement sur des hypothèses
d’induction plus fortes ; pour toute réalisation la propriété doit être vraie ; ce qui
nous permet alors de contracter des ensembles de sommets tout en préservant
l’information d’adjacence entre ces sommets. Certains étaient adjacents, d’autre
non, et suivant la réalisation choisie on a ou pas cet état. Ceci nous permet, si une
décomposition existe (dans toutes les réalisations), de la trouver dans le graphe de
départ.
Ceci n’étant que de brèves explications, voyons maintenant les définitions pré-
cises. Dans ce chapitre nous allons commencer par formaliser le vocabulaire usuel
des graphes sur les trigraphes. Nous définissons ensuite plusieurs classes de trigraphes
basiques (il s’agit des classes de base du thérorème fort des graphes parfaits,
à savoir les trigraphes bipartis, les line trigraphes et les trigraphes doublés) et
les décompositions que nous allons utiliser, là encore il s’agit des décompositions
utilisées pour la démonstration du théorème fort des graphes parfaits à savoir
les 2-joints et les skew-partitions équilibrées. Comme mentionné précédemment
les paires homogènes ne sont pas utiles et nous les définirons plus tard lorsque
nous voudrons une version “extrême” du théorème de structure, c’est à dire un
théorème de structure dans lequel à chaque étape de décomposition, un côté au
moins de la décomposition est un trigraphe basique. Nous définissons ensuite la
classe des trigraphes que nous allons étudier, les trigraphes de Berge bigames, il
s’agit d’une généralisation des trigraphes monogames utilisés dans [8]. Dans les
trigraphes monogames les arêtes optionnelles forment un couplage alors que dans
11CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS
les trigraphes bigames on autorise sous certaines conditions des composantes de
deux arêtes optionnelles. Nous devons alors étendre le théorème de décomposition
des trigraphes de Berge monogames aux trigraphes de Berge bigames. Enfin, nous
pourrons définir la sous-classe qui nous intéresse, à savoir les trigraphes de Berge
apprivoisés et montrer qu’ils se comportent bien vis à vis des décompositions du
théorème. En effet il est possible de les décomposer tout en gardant l’information
utile de l’autre partie de la décomposition et en restant dans la sous-classe.
2.1 Définitions
Pour tout ensemble X, on note
X
2
l’ensemble de tous les sous-ensembles de X
de taille 2. Pour alléger les notations, un élément {u, v} de
X
2
sera également noté
uv ou vu. Un trigraphe T est composé d’un ensemble fini V (T), appelé l’ensemble
de sommet de T et d’une application θ :
V (T)
2
−→ {−1, 0, 1}, appelée fonction
d’adjacence.
Deux sommets distincts de T sont dit fortement adjacents si θ(uv) = 1, fortement
antiadjacents si θ(uv) = −1 et semiadjacents si θ(uv) = 0. On dit que u
et v sont adjacents s’ils sont fortement adjacents ou semiadjacents ; et qu’ils sont
antiadjacents, s’ils sont fortement antiadjacents ou semiadjacents. Une arête (antiarête)
est une paire de sommets adjacents (antiadjacents). Si u et v sont adjacents
(antiadjacents), on dit également que u est adjacent (antiadjacent) à v, ou que u
est un voisin (antivoisin) de v. De la même manière, si u et v sont fortement adjacents
(fortement antiadjacents), alors u est un voisin fort (antivoisin fort) de v.
On note E(T), l’ensemble de toutes les paires fortement adjacentes de T, E(T) l’ensemble
de toutes les paires fortement antiadjacentes de T et E
∗
(T) l’ensemble de
toutes les paires semiadjacentes de T. Un trigraphe T peut être considèré comme
un graphe si et seulement si E
∗
(T) est vide. Une paire {u, v} ⊆ V (T) de sommets
distincts est une arête optionnelle si θ(uv) = 0, une arête forte si θ(uv) = 1 et une
antiarête forte si θ(uv) = −1. Une arête uv (antiarête, arête forte, antiarête forte,
arête optionnelle) est entre deux ensembles A ⊆ V (T) et B ⊆ V (T) si u ∈ A et
v ∈ B ou si u ∈ B et v ∈ A.
Soit T un trigraphe. Le complément de T est le trigraphe T avec le même
ensemble de sommet V (T) que T, et avec la fonction d’adjacence θ = −θ. Pour
v ∈ V (T), on note N(v) l’ensemble de tous les sommets de V (T) \ {v} qui sont
adjacents à v. Soit A ⊂ V (T) et b ∈ V (T) \ A. On dit que b est fortement
complet à A si b est fortement adjacent à tous les sommets de A ; b est fortement
122.1. DÉFINITIONS
anticomplet à A si b est fortement antiadjacent à tous les sommets de A ; b est
complet à A si b est adjacent à tous les sommets de A ; et b est anticomplet à A
si b est anticomplet à tous les sommets de A. Pour deux ensembles disjoints A, B
de V (T), B est fortement complet (fortement anticomplet, complet, anticomplet)
à A si tous les sommets de B sont fortement complets (fortement anticomplets,
complets, anticomplets) à A. Un ensemble de sommets X ⊆ V (T) domine (domine
fortement) T, si pour tout sommet v ∈ V (T) \ X il existe u ∈ X, tel que v est
adjacent (fortement adjacent) à u.
Une clique de T est un ensemble de sommets deux à deux adjacents. Une clique
forte est un ensemble de sommets deux à deux fortement adjacents. Un stable est un
ensemble de sommets deux à deux antiadjacents. Un stable fort est un ensemble de
sommets deux à deux fortement antiadjacents. Remarquons qu’avec ces définitions
une clique et un stable peuvent s’intersecter sur plusieurs sommets, dans ce cas
l’intersection est composée uniquement d’arêtes optionnelles.
Pour X ⊆ V (T), le trigraphe induit par T sur X (noté T|X) a X comme
ensemble de sommets et θ restreinte sur
X
2
comme fonction d’adjacence. L’isomorphisme
entre deux trigraphes est défini de manière naturelle et pour deux
trigraphes T et H, on dit que H est un trigraphe induit de T ou que T contient H
en tant que sous-trigraphe induit, s’il existe X ⊆ V (T), tel que H est isomorphe
à T|X. Comme la relation de sous-graphe induit est la principale relation étudiée
dans cette thèse, on dit également que T contient H si T contient H comme
sous-trigraphe induit. On note T \ X le trigraphe T|(V (T) \ X).
Soit T un trigraphe. Un chemin P de T est une suite de sommets distincts
p1, . . . , pk telle que ou bien k = 1, ou bien pour i, j ∈ {1, . . . , k}, pi est adjacent
à pj
, si |i − j| = 1 et pi est antiadjacent à pj si |i − j| > 1. Dans ce cas, V (P) =
{p1, . . . , pk} et on dit que P est un chemin de p1 à pk, son intérieur est l’ensemble
P
∗ = V (P) \ {p1, pk}, et la taille de P est k − 1. Parfois on note P par p1- · · · -pk.
Notons que puisqu’un graphe est également un trigraphe, un chemin dans un
graphe avec notre définition est plus généralement appelé dans la littérature un
chemin sans corde.
Un trou dans un trigraphe T est un sous-trigraphe induit H de T sur un
ensemble de sommets h1, . . . , hk avec k ≥ 4, et pour i, j ∈ {1, . . . , k}, hi est
adjacent à hj si |i − j| = 1 ou si |i − j| = k − 1 ; et hi est antiadjacent à hj si
1 < |i − j| < k − 1. La taille d’un trou est égale au nombre de sommets qu’il
contient. Parfois on note H par h1- · · · -hk-h1. Un antichemin (resp. antitrou) dans
T est un sous-trigraphe induit de T dont le complément est un chemin (resp. trou)
dans T.
13CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS
Une semiréalisation d’un trigraphe T est n’importe quel trigraphe T
0
sur l’ensemble
de sommet V (T) qui vérifie les propriétés suivantes : pour tout uv ∈
V (T)
2
,
si uv ∈ E(T) alors uv ∈ E(T
0
), et si uv ∈ E(T) alors uv ∈ E(T
0
). On peut voir
une semiréalisation de T comme une affectation des arêtes optionnelles de T avec
trois valeurs possibles : “arête forte”, “antiarête forte” ou “arête optionnelle”. Une
réalisation de T est n’importe quel graphe qui est une semiréalisation de T (c’est
à dire que toutes les arêtes optionnelles sont assignées aux valeurs “arête forte”
ou “antiarête forte”). Pour S ⊆ E ∗
(T), on note par GT
S
la réalisation de T avec
E(T)∪S comme ensemble d’arêtes, c’est à dire que dans GT
S
les arêtes optionnelles
de S sont assignées à la valeur “arête” et que celles de E
∗
(T) \ S sont assignées à
la valeur “antiarête”. La réalisation GT
E
∗(T)
est appelée réalisation complète de T.
Soit T un trigraphe. Pour X ⊆ V (T), on dit que X et T|X sont connexes
(resp. anticonnexes) si le graphe G
T|X
E
∗(T|X)
(G
T|X
∅
) est connexe, c’est à dire qu’en
remplaçant toute les arêtes optionnelles par des arêtes fortes (resp. antiarêtes
fortes) le graphe obtenu est connexe (resp. le complémentaire du graphe obtenu
est connexe). Une composante connexe (ou simplement une composante) de X
est un sous-ensemble connexe maximal de X, et une anticomposante connexe (ou
simplement une anticomposante) de X est un ensemble maximal anticonnexe de
X.
L’idée des ces définitions est la suivante :
— une propriété est vraie sur un trigraphe T s’il existe un graphe G réalisation
de T sur laquelle elle est vraie.
— une propriété forte est vraie sur un trigraphe T si pour tout graphe G
réalisation de T elle est vraie.
— une antipropriété est vraie sur un trigraphe T si elle est vraie sur le complémentaire
de T (les arêtes fortes deviennent des antiarêtes fortes et inversement).
Attention dans les sections suivantes, les trigraphes basiques et les décompositions
sont implicitement fortes. En effet si on a besoin de pouvoir parler de
trigraphe connexe (au sens faible), nous n’aurons jamais besoin de parler de trigraphe
faiblement de Berge ou admettant un 2-joint faible. En effet comme mentionné
dans lors des motivations des trigraphes, nous voulons qu’un trigraphe soit
basique ou admette une décomposition si et seulement si c’est le cas pour toutes
ses réalisations. De cette manière nous pourront transformer une obstruction dans
le trigraphe contracté en une obstruction dans le trigraphe de départ.
142.2. TRIGRAPHES BASIQUES
2.2 Trigraphes basiques
Un trigraphe T est de Berge, s’il ne contient pas de trou impair ni d’antitrou
impair. Par conséquent, un trigraphe est de Berge si et seulement si son complé-
ment l’est. Notons également que T est de Berge si et seulement si, toutes ses
semiréalisations (réalisations) sont de Berge. Remarquons qu’un trigraphe sans
arêtes optionnelles et en particulier toutes réalisations d’un trigraphe peuvent être
vues comme un graphe, il est alors important de voir qu’être un trigraphe de Berge
pour un trigraphe sans arêtes optionnelles est exactement être un graphe de Berge.
Notre définition dans les trigraphes est bien une généralisation aux trigraphes de
la définition usuelle dans les graphes.
Un trigraphe T est biparti si on peut partitionner son ensemble de sommets en
deux stables forts. Toute réalisation d’un trigraphe biparti est un graphe biparti,
et donc tout trigraphe biparti est de Berge. De la même manière, les compléments
de trigraphes bipartis sont également de Berge. De même cette définition est bien
une généralisation de la définition de biparti dans les graphes.
Un trigraphe T est un line trigraphe, si la réalisation complète de T est le line
graphe d’un graphe biparti et que toute clique de taille au moins 3 dans T est
une clique forte. L’énoncé suivant est un résultat simple sur les lines trigraphes.
Ici encore un line trigraphe sans arêtes optionnelles est un line graphe de graphe
biparti.
Lemme 2.1. Si T est un line trigraphe, alors toute réalisation de T est le
line graphe d’un graphe biparti. Et plus, toute semiréalisation de T est un line
trigraphe.
Démonstration. Par définition, la réalisation complète G de T est le line graphe
d’un graphe biparti R. Soit S ⊆ E ∗
(T). Définissons RS comme suit. Pour tout
xy ∈ E ∗
(T) \ S, soit vxy l’extrémité commune de x et y dans R. Alors vxy est
de degré 2 dans R car toute clique de taille au moins 3 dans T est une clique
forte. Soit axy et bxy ses voisins. Supprimons vxy de R et remplaçons le par deux
nouveaux sommets, uxy, wxy tels que uxy est seulement adjacent à axy, et wxy est
seulement adjacent à bxy. Maintenant RS est biparti et GT
S
est le line graphe de
RS. On a alors la première partie du résultat, la seconde suit car la réalisation
complète d’une semiréalisation est une réalisation.
Remarquons que cela implique que les line trigraphes ainsi que leurs complé-
ments sont de Berge. Définissons maintenant les trigraphes semblables aux double
15CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS
split graphes (défini pour la première fois dans [13]), c’est à dire les trigraphes
doublés. Une bonne partition d’un trigraphe T est une partition (X, Y ) de V (T)
(les cas X = ∅ ou Y = ∅ ne sont pas exclus) telle que :
— Chaque composante de T|X a au plus deux sommets, et chaque anticomposante
de T|Y a au plus deux sommets.
— Il n’y a pas d’arête optionnelle de T qui intersecte à la fois X et Y
— Pour toute composante Cx de T|X, toute anticomposante CY de T|Y et tout
sommet v dans CX ∪ CY , il existe au plus une arête forte et une antiarête
forte entre CX et CY qui est incidente à v.
Un trigraphe est doublé si et seulement s’il a une bonne partition. Les trigraphes
doublés peuvent aussi être définis comme les sous-trigraphes induits des
double split trigraphes (voir [9] pour une définition des double split trigraphes
que nous n’utiliserons pas ici). Remarquons que les trigraphes doublés sont clos
par sous-trigraphes induit et par complémentation (en effet (X, Y ) est une bonne
partition d’un trigraphe T si et seulement si (Y, X) est une bonne partition de
T). Un graphe doublé est n’importe quelle réalisation d’un trigraphe doublé. Nous
montrons maintenant le résultat suivant :
Lemme 2.2. Si T est un trigraphe doublé, alors toute réalisation de T est un
graphe doublé. De plus, toute semiréalisation de T est aussi un graphe doublé.
Démonstration. L’énoncé sur les réalisations est clair par définition. Soit T un
trigraphe doublé, et (X, Y ) une bonne partition de T. Soit T
0 une semiréalisation de
T. Il est facile de voir que (X, Y ) est aussi une bonne partition de T
0
(par exemple,
si une arête optionnelle ab de T|X est assignée à la valeur “antiarête”, alors {a} et
{b} deviennent des composantes de T
0
|X, mais ils vérifient toujours la définition
d’une bonne partition). Ceci prouve le résultat sur les semiréalisations.
Remarquons que ceci implique que tout trigraphe doublé est de Berge, car tout
graphe doublé est de Berge.
Un trigraphe est basique si c’est, ou bien un trigraphe biparti, ou bien le complément
d’un trigraphe biparti, ou bien un line trigraphe, ou bien le complément
d’un line trigraphe ou bien un trigraphe doublé. Le résultat suivant résume les ré-
sultats de cette section et montre bien que nos classes basiques sont implicitement
fortement basiques.
Lemme 2.3. Les trigraphes basiques sont de Berge et sont clos par soustrigraphe
induit, semiréalisation, réalisation et complémentation.
162.3. DÉCOMPOSITIONS
A1
C1
B1
A2
C2
B2
X1 X2
Figure 2.2 – 2-joint (Une double arête entre deux ensembles indique qu’ils sont
complet, une arête simple indique qu’on ne sait rien sur leur adjacence, l’absence
d’arête indique qu’il n’y a aucune arête entre les deux ensembles)
2.3 Décompositions
Nous pouvons maintenant décrire les décompositions dont nous aurons besoin
afin d’énoncer notre théorème de décomposition. Pour commencer, un 2-joint dans
un trigraphe T est une partition (X1, X2) de V (T) telle qu’il existe des ensembles
disjoints A1, B1, C1, A2, B2, C2 ⊆ V (T) vérifiant :
— X1 = A1 ∪ B1 ∪ C1 et X2 = A2 ∪ B2 ∪ C2 ;
— A1, A2, B1 et B2 sont non-vides ;
— il n’y a pas d’arête optionnelle qui intersecte à la fois X1 et X2 ;
— tout sommet de A1 est fortement adjacent à tous les sommets de A2, et
tout sommet de B1 est fortement adjacent à tous les sommets de B2 ;
— il n’y a pas d’autre arête forte entre X1 et X2 ;
— pour i = 1, 2 |Xi
| ≥ 3 ; et
— pour i = 1, 2, si |Ai
| = |Bi
| = 1, alors la réalisation complète de T|Xi n’est
pas un chemin de taille deux reliant les membres de Ai et ceux de Bi
.
17CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS
Remarquons bien qu’aucune arête importante (celles entre X1 et X2) pour la
définition du 2-joint ne peut être une arête optionnelle. Ici aussi et sauf cas pathologique
(Xi est un triangle d’arêtes optionelles ayant un sommet dans chaque
ensemble Ai
, Bi et Ci), le 2-joint est implicitement fort, dans tout graphe G réalisation
de T, (X1, X2) est un 2-joint. Notons bien que dans les trigraphes de Berge ce
cas pathologique ne peut pas apparaitre car il contredit le lemme 2.4 énoncé juste
après. Nous aurions pu éviter ce problème en choisissant une définition plus forte
du 2-joint, par exemple un 2-joint vérifiant par définition tous les points du théorème
2.9. Ce théorème prouve que dans le cas des trigraphes de Berge apprivoisés
les 2-joints possèdent certaines conditions techniques supplémentaires que n’a pas
ce cas pathologique. Cependant l’utilisation du théorème 2.5 qui est exactement
le théorème 3.1 de [9] ne nous autorise pas à utiliser une définition adaptée aux
trigraphes de Berge apprivoisés.
Dans ces conditions, on dit que (A1, B1, C1, A2, B2, C2) est une affectation de
(X1, X2). Le 2-joint est propre si pour i = 1, 2, toute composante de T|Xi
intersecte
à la fois Ai et Bi
. Remarquons que le fait que le 2-joint soit propre ne dépend pas
du choix de l’affectation.
Un complément de 2-joint d’un trigraphe T est un 2-joint de T. Plus précisé-
ment, un complément de 2-joint d’un trigraphe T est une partition (X1, X2) de
V (T) telle que (X1, X2) est un 2-joint de T ; et (A1, B1, C1, A2, B2, C2) est une
affectation de ce complément de 2-joint, si c’est une affectation du 2-joint correspondant
dans le complément, i.e. A1 est fortement complet à B2 ∪ C2 et fortement
anticomplet à A2, C1 est fortement complet à X2, et B1 est fortement complet à
A2 ∪ C2 et fortement anticomplet à B2.
Lemme 2.4. Soit T un trigraphe de Berge et (A1, B1, C1, A2, B2, C2) une affectation
d’un 2-joint propre de T. Alors tous les chemins dont une extrémité
est dans Ai, l’autre étant dans Bi et dont l’intérieur est dans Ci, pour i = 1, 2
ont des longueurs de même parité.
Démonstration. Dans le cas contraire, pour i = 1, 2, soit Pi des chemins dont une
extrémité est dans Ai
, l’autre extrémité étant dans Bi et dont l’intérieur est dans
Ci
, tels que P1 et P2 ont des parités différentes. Ils forment un trou impair, c’est
une contradiction.
Notre deuxième décomposition est la skew-partition équilibrée. Soit A, B deux
ensembles disjoints de V (T). On dit que la paire (A, B) est équilibrée s’il n’y a
pas de chemin impair de longueur strictement supérieure à 1 dont les extrémités
182.3. DÉCOMPOSITIONS
A1
C1
B1
A2
C2
B2
X1 X2
Figure 2.3 – Complèment de 2-joint (Une double arête entre deux ensembles
indique qu’ils sont complet, une arête simple indique qu’on ne sait rien sur leur
adjacence, l’absence d’arête indique qu’il n’y a aucune arête entre les deux ensembles)
A
B
C D
Figure 2.4 – Skew-partition (Une double arête entre deux ensembles indique
qu’ils sont complet, l’absence d’arête indique qu’il n’y a aucune arête entre les
deux ensembles)
19CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS
sont dans B et dont l’intérieur est dans A et qu’il n’y a pas non plus d’antichemin
de longueur strictement supérieure à 1 dont les extrémités sont dans A et dont
l’intérieur est dans B. Une skew-partition est une partition (A, B) de V (T) telle
que A n’est pas connexe et B n’est pas anticonnexe. Une skew-partition (A, B) est
équilibrée si la paire (A, B) l’est. Étant donné une skew-partition équilibrée (A, B),
(A1, A2, B1, B2) est une affectation de (A, B) si A1, A2, B1 et B2 sont des ensembles
disjoints et non-vide, A1 ∪ A2 = A, B1 ∪ B2 = B, A1 est fortement anticomplet à
A2, et B1 est fortement complet à B2. Remarquons que pour toute skew-partition
équilibrée, il existe au moins une affectation.
Attention, l’adjectif “équilibrée” pourrait laisser penser que les tailles des deux
parties sont comparables, ce n’est absolument pas le cas. Il est tout à fait possible
qu’un des ensembles de l’affectation concentre presque tout le trigraphe, le
reste ne comportant qu’un nombre fixe négligeable de sommets. C’est le problème
majeur à l’élaboration d’algorithmes utilisant les skew-partitions équilibrées. Si
nous étions assurés que chaque ensemble de l’affectation fût composé d’au moins
une fraction du trigraphe, nos algorithmes pourraient alors s’étendre sur tous les
graphes parfaits.
Ces deux décompositions généralisent les décompositions utilisées dans [13]. De
plus toutes les arêtes et non-arêtes “importantes” dans ces décompositions doivent
respectivement être des arêtes fortes et des antiarêtes fortes du trigraphe. Nos
décompositions sont donc bien implicitement fortes. Nous pouvons maintenant
énoncer plusieurs lemmes techniques.
Un trigraphe est dit monogame si tous ses sommets appartiennent à au plus une
arête optionnelle. Nous pouvons maintenant énoncer le théorème de décomposition
pour les trigraphes monogames de Berge. C’est le théorème 3.1 de [9].
Théorème 2.5. Soit T un trigraphe monogame de Berge. Alors un des points
suivants est vrai :
— T est basique ;
— T ou T admet un 2-joint propre ; ou
— T admet une skew-partition équilibrée.
Si (A, B) est une skew-partition d’un trigraphe T, on dit que B est un star
cutset de T si au moins une anticomposante de B a taille 1. L’énoncé suivant est
le Théorème 5.9 de [8].
202.4. STRUCTURE DES TRIGRAPHES DE BERGE APPRIVOISÉS
Lemme 2.6. Si un trigraphe de Berge admet un star cutset, alors il admet
une skew-partition équilibrée.
On dit que X est un ensemble homogène d’un trigraphe T si 1 < |X| < |V (T)|,
et que tout sommet de V (T) \ X est ou bien fortement complet ou bien fortement
anticomplet à X.
Lemme 2.7. Soit T un trigraphe et X un ensemble homogène de T, tel qu’il
existe un sommet de V (T)\X fortement complet à X, et un sommet de V (T)\
X fortement anticomplet à X. Alors T admet une skew-partition équilibrée.
Démonstration. Soit A l’ensemble des sommets de V (T) \ X qui sont fortement
anticomplets à X, et C l’ensemble des sommets de V (T) \ X qui sont fortement
complets à X. Soit x ∈ X. Alors C ∪ {x} est un star cutset de T (puisque A est
X \ {x} sont non-vides et fortement anticomplets entre eux), et donc T admet une
skew-partition équilibrée d’après le lemme 2.6.
Nous aurons également besoin du résultat suivant (qui est un corollaire immé-
diat du théorème 5.13 de [8]) :
Lemme 2.8. Soit T un trigraphe de Berge. Supposons qu’il y ait une partition
de V (T) en quatre ensembles non-vides X, Y, L, R, tels que L est fortement
anticomplet à R, et X est fortement complet à Y . Si (L, Y ) est équilibrée alors
T admet une skew-partition équilibrée.
2.4 Structure des trigraphes de Berge apprivoisés
Pour les besoins de nos inductions nous aurons besoin d’utiliser des trigraphes
plus généraux que les trigraphes monogame. Nous allons donc définir les trigraphes
bigame et montrer que le théorème de décomposition des trigraphes monogames de
Berge s’étend sur les trigraphes bigames de Berge. Pour se familiariser avec notre
objet d’étude principal, les trigraphes de Berge apprivoisés (définis dans la suite
de ce paragraphe), nous allons commencer par montrer que dans ces trigraphes les
2-joints vérifient plusieurs conditions techniques supplémentaires.
Soit T un trigraphe, notons par Σ(T) le graphe ayant V (T) comme ensemble
de sommets et E
∗
(T) (les arêtes optionnelles de T) comme ensemble d’arêtes. Les
21CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS
Figure 2.5 – Configuration possible des arêtes optionnelles dans les trigraphes
bigame (les arêtes sont représentées par des traits pleins et les arêtes optionnelles
par des pointillés)
composantes connexes de Σ(T) sont appelées les composantes optionnelles de T.
On dit qu’un trigraphe de Berge est bigame si les propriétés suivantes sont vérifiées :
— Chaque composante optionnelle de T a au plus deux arêtes (et donc aucun
sommet n’a plus de deux voisins dans Σ(T)).
— Soit v ∈ V (T) de degré deux dans Σ(T), notons x et y ses voisins. Alors, ou
bien v est fortement complet à V (T) \ {v, x, y} dans T, et x est fortement
adjacent à y dans T (dans ce cas on dit que v et la composante optionnelle
qui contient v sont lourds) ou bien v est fortement anticomplet à V (T) \
{v, x, y} dans T, et x est fortement antiadjacent à y dans T (dans ce cas on
dit que v et la composante optionnelle qui contient v sont légers).
Remarquons qu’un trigraphe T est bigame si et seulement si T l’est aussi ; de
plus v est léger dans T si et seulement si v est lourd dans T.
On dit qu’un trigraphe de Berge est apprivoisé s’il est bigame et qu’il ne
contient pas de skew-partition équilibrée.
On dit qu’un graphe de Berge est apprivoisé s’il ne contient pas de skewpartition
équilibrée.
Théorème 2.9. Soit T un trigraphe de Berge apprivoisé et soit
(A1, B1, C1, A2, B2, C2) une affectation d’un 2-joint (X1, X2) dans T. Alors les
propriétés suivantes sont vérifiées :
(i) (X1, X2) est un 2-joint propre ;
(ii) chaque sommet de Xi a un voisin dans Xi, i = 1, 2 ;
(iii) chaque sommet de Ai a un antivoisin dans Bi
, i = 1, 2 ;
(iv) chaque sommet de Bi a un antivoisin dans Ai, i = 1, 2 ;
222.4. STRUCTURE DES TRIGRAPHES DE BERGE APPRIVOISÉS
(v) chaque sommet de Ai a un voisin dans Ci ∪ Bi, i = 1, 2 ;
(vi) chaque sommet de Bi a un voisin dans Ci ∪ Ai, i = 1, 2 ;
(vii) si Ci = ∅, alors |Ai
| ≥ 2 et |Bi
| ≥ 2, i = 1, 2 ;
(viii) |Xi
| ≥ 4, i = 1, 2.
Démonstration. Remarquons que d’après le lemme 2.6, ni T ni T ne peuvent contenir
de star cutset.
Pour démontrer (i), nous devons simplement démontrer que toute composante
de T|Xi
intersecte à la fois Ai et Bi
, i = 1, 2. Supposons par contradiction qu’il
y ait une composante connexe C de T|X1 qui n’intersecte pas B1 (les autres cas
sont symétriques). S’il y a un sommet c ∈ C \ A1 alors pour tout sommet u ∈ A2,
{u} ∪ A1 est un star cutset qui sépare c de B1, c’est une contradiction. Donc
C ⊆ A1. Si |A1| ≥ 2 alors nous pouvons choisir deux sommets c ∈ C et c
0 6= c
dans A1. Dans ce cas {c
0} ∪ A2 est un star cutset qui sépare c de B1. On a alors
C = A1 = {c}. Il existe donc une composante de T|X1 qui n’intersecte pas A1 et
par le même argument on peut déduire que B1 = 1 et que l’unique sommet de
B1 n’a pas de voisin dans X1. Puisque |X1| ≥ 3, il existe un sommet u dans C1.
Maintenant, {c, a2} avec a2 ∈ A2 est un star cutset qui sépare u de B1, c’est une
contradiction.
Pour démontrer (ii), nous avons simplement à remarquer que si un sommet de
Xi n’a pas de voisin dans Xi
, alors il forme une composante de T|Xi qui n’intersecte
pas à la fois Ai et Bi
. Ceci contredit (i).
Pour démontrer (iii) et (iv), considérons un sommet a ∈ A1 fortement complet
à B1 (les autres cas sont symétriques). Si A1 ∪ C1 6= {a} alors B1 ∪ A2 ∪ {a} est
un star cutset qui sépare (A1 ∪ C1) \ {a} de B2. Donc A1 ∪ C1 = {a} et |B1| ≥ 2
car |X1| ≥ 3. Mais alors B1 est un ensemble homogène, fortement complet à A1 et
fortement anticomplet à A2 et donc T admet une skew-partition équilibrée d’après
le lemme 2.7, c’est une contradiction.
Pour démontrer (v) et (vi), considérons un sommet a ∈ A1 fortement anticomplet
à C1 ∪ B1 (les autres cas sont symétriques). D’après (ii), le sommet a a un
voisin dans A1, et donc A1 6= {a}. Dans ce cas {a} ∪ B1 ∪ C1 ∪ B2 ∪ C2 est un star
cutset dans T. C’est une contradiction.
Pour démontrer (vii), supposons que C1 = ∅ et que |A1| = 1 (les autres cas
sont symétriques). D’après (iv) et (vi), et comme C1 = ∅, A1 est à la fois complet
et anticomplet à B1. Ceci implique que l’unique sommet de A1 soit semiadjacent
à tous les sommets de B1 et donc puisque T est apprivoisé, |B1| ≤ 2. Puisque
|X1| ≥ 3, |B1| = 2 et comme T est apprivoisé, l’unique sommet de A1 est ou bien
23CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS
fortement complet ou bien fortement anticomplet à V (T) \ (A1 ∪ B1), c’est une
contradiction car A1 est fortement complet à A2 et fortement anticomplet à B2.
Pour démontrer (viii), nous pouvons supposer d’après (vii) que C1 6= ∅. Supposons
donc par contradiction que |A1| = |C1| = |B1| = 1. Soit a, b, c les sommets
de respectivement A1, B1, C1. D’après (iii), ab est une antiarête. De plus, c est
adjacent au sommet a sinon il y aurait un star cutset centré en b qui séparerait a
de c. Pour la même raison c est adjacent à b. Puisque la réalisation complète de
T|X1 n’est pas un chemin de longueur 2 allant de a à b, nous savons que ab est
une arête optionnelle. Ceci contredit le lemme 2.4.
Soit b un sommet de degré deux dans Σ(T) et soit a, c les voisins de b dans
Σ(T). Supposons également que b soit léger. Nous appelons un sommet w ∈ V (T)\
{a, b, c} un a-appendice de b s’il existe u, v ∈ V (T) \ {a, b, c} tel que :
— a-u-v-w est un chemin ;
— u est fortement anticomplet à V (T) \ {a, v} ;
— v est fortement anticomplet à V (T) \ {u, w} ; et
— w n’a pas de voisin dans Σ(T) à la possible exception de v (i.e. il n’y a pas
d’arête optionnelle contenant w dans T à la possible exception de vw).
Un c-appendice est défini de la même manière. Si b est un sommet lourd de T,
alors w est un a-appendice de b dans T si et seulement si w est un a-appendice de
b dans T.
Le résultat suivant est analogue au théorème 2.5 pour les trigraphes de Berge
bigame.
Théorème 2.10. Tout trigraphe de Berge bigame est ou bien basique, ou bien
admet une skew-partition équilibrée, un 2-joint propre, ou un 2-joint propre
dans son complément.
Démonstration. Pour T un trigraphe de Berge bigame, notons τ (T) le nombre de
sommets de degré deux dans Σ(T). La démonstration est une induction sur τ (T).
Si τ (T) = 0, le résultat est direct à partir du théorème 2.5. Maintenant prenons
T un trigraphe de Berge bigame et soit b un sommet de degré deux dans Σ(T).
Soient a, c les deux voisins de b dans Σ(T). Quitte à passer au complément, on
peut supposer que b est léger.
Soit T
0
le trigraphe obtenu à partir de T en rendant a fortement adjacent à
b. Si b n’a pas de a-appendice, alors nous n’avons pas besoin d’effectuer plus de
modifications ; prenons W = ∅. Dans le cas contraire, choisissons un a-appendice w
242.4. STRUCTURE DES TRIGRAPHES DE BERGE APPRIVOISÉS
de b, et prenons u, v comme dans la définition des a-appendices ; prenons V (T
0
) =
V (T) \ {u, v}, W = {w} et rendons a semiadjacent à w dans T
0
.
Si W = ∅ alors clairement T
0
est un trigraphe de Berge bigame et τ (T) > τ (T
0
).
Supposons que W 6= ∅. Si t ∈ V (T
0
) est adjacent à a et à w, alors a-u-v-w-t est un
trou impair dans T. Par conséquent aucun sommet de T
0 n’est adjacent à la fois à
a et à w. En particulier, il n’y a pas d’antitrou impair de taille au moins 7 dans T
0
qui passe par a et par w. Comme il n’y a pas de trou impair qui passe par a et par
w, T
0
est un trigraphe de Berge bigame. De plus τ (T) > τ (T
0
) (nous rappelons que
dans Σ(T), v est l’unique voisin potentiel de w et b est l’unique voisin potentiel de
a).
Par induction, une des conséquences du théorème 2.10 est vraie pour T
0
. Nous
considérons les cas suivants et montrons que pour chacun d’entre eux, une des
conséquences du théorème 2.10 est vraie pour T.
Cas 1 : T
0
est basique.
Supposons d’abord que T
0
est biparti. Nous affirmons que T est biparti. Soit
V (T
0
) = X ∪Y où X et Y sont des stables forts disjoints. L’affirmation est claire si
b n’a pas de a-appendice, on peut donc supposer que W = {w}. On peut supposer
que a ∈ X ; alors w ∈ Y . Dans ce cas X ∪ {v} et Y ∪ {u} sont des stables forts de
T d’union V (T) et donc T est biparti.
Supposons que T
0
est un line trigraphe. Observons pour commencer qu’aucune
clique de taille au moins trois dans T ne contient u, v ou b. Donc si W = ∅, il
est clair que T est un line trigraphe. Nous pouvons donc supposer que W 6= ∅.
Remarquons que la réalisation complète de T est obtenue à partir de la réalisation
complète de T
0
en subdivisant deux fois l’arête aw. Puisque aucun sommet de T
0
n’est adjacent à la fois à a et à w, T est un line trigraphe (car les line graphes
sont clos par subdivision d’arêtes n’ayant pas d’extrémité commune, et que les line
graphes de graphes bipartis sont clos par double subdivision de telles arêtes).
Supposons que T
0 soit biparti et prenons X, Y une partition de V (T) en deux
cliques fortes de T
0
. On peut supposer que a ∈ X. Supposons pour commencer
que b ∈ Y . Puisque a est l’unique voisin fort de b dans T
0
, Y = {b} et donc
X contient a et c, c’est une contradiction. Par conséquent on peut supposer que
b ∈ X. Puisque a est l’unique voisin fort de b dans T
0
, X = {a, b} et b est fortement
anticomplet à Y \ {c}. Soit N l’ensemble des voisins forts de a dans Y \ {c} et
M l’ensemble des antivoisins forts de a dans Y \ {c}. Puisque T est un trigraphe
de Berge bigame, Y = N ∪ M ∪ W ∪ {c}. Si |N| > 1 ou |M| > 1, alors d’après
le lemme 2.7 T admet une skew-partition équilibrée. On peut donc supposer que
|N| ≤ 1 et que |M| ≤ 1. Puisqu’aucun sommet de T
0 n’est adjacent à la fois à a et
25CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS
à w, |N ∪ W| ≤ 1. Maintenant si M = ∅ ou que N ∪ W = ∅, alors T
0
est biparti et
nous pouvons procéder comme ci-dessus. Sinon N ∪ W ∪ {c} est un clique cutset
de T
0 de taille 2 qui est un star cutset de T et donc d’après le lemme 2.6 T admet
une skew-partition équilibrée.
Supposons maintenant que T
0 est un line trigraphe. Puisque bc est une arête
optionnelle dans T
0
et que b est fortement anticomplet à V (T
0
) \ {a, b, c}, c est
fortement complet à V (T
0
) \ {a, b, c} sinon il y aurait dans T
0 une clique de taille
3 avec une arête optionnelle. Puisque T
0 est un line trigraphe, pour tout triangle
S de T
0
et tout sommet v ∈ V (T
0
) \ S, v a au moins un voisin fort dans S. Si
x, y ∈ V (T
0
) \ {a, b, c} sont adjacents, alors {x, y, c} est un triangle et b n’a pas
de voisin fort à l’intérieur. Par conséquent, V (T
0
) \ {a, b, c} est un stable fort.
Maintenant V (T
0
) \ {a, c}, {a, c} forme une partition de V (T
0
) en deux stables
forts de T
0
. T
0
est donc biparti et nous pouvons procéder comme ci-dessus.
Finalement, supposons que T
0
est un trigraphe doublé et prenons (X, Y ) une
bonne partition de T
0
. Si T
0
|Y est vide ou n’a qu’une unique anticomposante,
alors T
0
est biparti. Nous pouvons donc supposer que Y contient deux sommets
fortement adjacents x et x
0
. S’il existe y 6= x et y
0 6= x
0
, tels que {x, y} et {x
0
, y0}
soient des anticomposantes de T
0
|Y , alors tout sommet de T
0 a au moins deux
voisins forts, c’est une contradiction à cause de b. Ceci implique que par exemple
{x} est une anticomposante de T
0
|Y . Si T
0
|X est connexe ou vide, alors T
0
est le
complément d’un trigraphe biparti. On peut donc supposer que T
0
|X a au moins
deux composantes. Dans ce cas, Y est un star cutset de T
0
centré en x. Ce cas est
le prochain cas traité.
Cas 2 : T
0 admets une skew-partition équilibrée.
Soit (A, B) une skew-partition équilibrée de T
0
. Si W 6= ∅, prenons A0 = A ∪
{u, v} ; et si W = ∅ prenons A0 = A. Dans tous les cas, T|A0 n’est pas connecté.
Nous allons montrer que si une anticomposante Y de B n’intersecte pas {a, b},
alors T admet une skew-partition équilibrée. Puisque a est complet à W dans T
0
,
il existe une composante L de A qui n’intersecte pas {a, b} et donc L est aussi une
composante de A0
. Sans perte de généralité, on peut supposer que Y est disjoint
de W (c’est clair dans le cas où B ∩ {a, b} 6= ∅ et si B ∩ {a, b} = ∅ on peut
sans perte de généralité supposer que Y ∩ W = ∅). Maintenant, dans T, Y est
fortement complet à B \ Y , L est fortement anticomplet à A0 \L et donc A0
, B0
est
une skew-partition de T et (L ∪ Y ) ∩ ({a, b} ∪ W ∪ (A0 \ A)) ⊆ {b}. Puisque A, B
est une skew-partition équilibrée de T
0
, la paire (L, Y ) est équilibrée dans T. Par
conséquent le lemme 2.8 implique que T admet une skew-partition équilibrée.
Nous pouvons donc supposer qu’il n’y a pas de tel ensemble Y et donc T
0
|B a
262.4. STRUCTURE DES TRIGRAPHES DE BERGE APPRIVOISÉS
exactement deux anticomposantes, B1 et B2, de plus a ∈ B1 et b ∈ B2. Puisque
a est l’unique voisin fort de b dans T
0
, B1 = {a}. Puisque a est anticomplet à
W ∪ {c}, nous pouvons en déduire que W ∪ {c} ⊆ A0
. Soit A1 la composante de
T|A0
contenant c et A1 = A0 \ A1. Supposons que a n’ait pas de voisin fort dans
T. Dans ce cas B2 = {b} et puisque T est un trigraphe de Berge bigame, a est
fortement anticomplet à A0
. Nous pouvons supposer que T n’est pas biparti, car
sinon nous aurions déjà le résultat. T contient donc un trou impair C, qui doit être
dans A1 ou dans A2 (en effet {a, b} est fortement complet à A0
). Puisque T est un
trigraphe de Berge bigame, C contient au moins une arête forte xy. Dans ce cas
{x, y} est un star cutset dans T qui sépare {a, b} d’un sommet de A2. D’après le
lemme 2.6, T a une skew-partition équilibrée. Nous pouvons donc supposer que le
sommet a a au moins un voisin fort dans T.
Soit x ∈ A2. Notons N l’ensemble des voisins forts de a dans T. Alors (N ∪
{a}) \ {x} est un star cutset dans T séparant b de x à moins que x soit l’unique
voisin fort de a. Dans ce cas {a, x} est un star cutset séparant A1 de A2 \ {x}, à
moins que A2 = {x}. Supposons alors que c ait un voisin y (dans ce cas c’est un
voisin fort car T est un trigraphe de Berge bigame). Alors {c, y} est un star cutset
séparant A1 \ {c, y} de x, à moins que A1 = {c, y} mais dans ce cas T est biparti.
Supposons donc que c n’ait pas de voisin dans A1. Si T n’est pas biparti, il contient
un trou impair, dans ce cas ce trou est dans A1 et n’importe quelle arête forte (qui
existe puisque T est un trigraphe de Berge bigame) forme un star cutset séparant
c du reste du trou. D’après le lemme 2.6, T a une skew-partition équilibrée.
Cas 3 : T
0 admet un 2-joint propre.
Soit (A1, B1, C1, A2, B2, C2) une affectation d’un 2-joint propre de T
0
. Supposons
que a ∈ A1 ∪ B1 ∪ C1. Alors W ⊆ A1 ∪ B1 ∪ C1. Si W 6= ∅ prenons
C
0
1 = C1 ∪ {u, v}, et sinon prenons C
0
1 = C1. On peut supposer que
(A1, B1, C0
1
, A2, B2, C2) n’est pas un 2-joint propre de T et donc sans perte de
généralité a ∈ A1 et b ∈ A2. Alors c ∈ B2 ∪ C2. Puisque a est l’unique voisin fort
de b dans T
0
, A1 = {a}. D’après le cas 2, on peut supposer que T
0 n’admet pas de
skew-partition équilibré et donc le lemme 2.9 implique que a est anticomplet à B1.
Remarquons que puisque T est un trigraphe de Berge bigame, ab est la seule arête
optionnelle dans T contenant le sommet a. Soit N l’ensemble des voisins forts de a
dans C
0
1 dans T. D’après les définitions du 2-joint propre, N 6= ∅. On peut supposer
que T n’admet pas de skew-partition équilibrée et donc d’après le lemme 2.9, tout
2-joint de T est propre. Dans ce cas, ou bien (N, B1, C0
1 \ N, {a}, B2, C2 ∪ A2) est
une affectation d’un 2-joint propre de T, ou bien |N| = |B1| = 1 et la réalisation
complète de T|(C
0
1 ∪ B1) est un chemin de longueur deux entres N et B1. Notons
27CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS
n-n
0
-b1 ce chemin avec n ∈ N et b1 ∈ B1. Puisque b1 n’a pas de voisin dans Σ(T)
à l’exception possible de n
0
, b1 est un a-appendice de b. En particulier, W 6= ∅.
Puisque W ⊆ B1 ∪ C1, w = b1, u = n et v = n
0
. Dans ce cas |A1 ∪ B1 ∪ C1| = 2,
ce qui contredit le fait que (A1, B1, C1, A2, B2, C2) soit l’affectation d’un 2-joint
propre de T
0
.
Cas 4 : (T
0
) admet un 2-joint propre.
Soit (A1, B1, C1, A2, B2, C2), une affectation d’un 2-joint dans T
0
. Commençons
par supposer que W 6= ∅. Alors on peut supposer que a, w ∈ A1 ∪ B1 ∪ C1.
Puisqu’aucun sommet de T
0
est adjacent à la fois à a et à w, on peut supposer
sans perte de généralité que a ∈ A1, w ∈ B1 et C2 = ∅. Puisque a est l’unique
voisin fort de b dans T
0
, b ∈ B2 et C1 = ∅. Dans ce cas (A1, B1, ∅, B2, A2, ∅) est une
affectation d’un 2-joint de T
0
. D’après le deuxième cas, on peut supposer que T
0
n’admet pas de skew-partition équilibrée et donc ce 2-joint est propre d’après le
lemme 2.9. Nous pouvons alors procéder comme dans le cas précédent. Supposons
donc que W = ∅.
On peut supposer que (A1, B1, C1, A2, B2, C2) n’est pas une affectation d’un
2-joint propre de T, par conséquent et sans perte de généralité, a ∈ A1 ∪ B1 ∪ C1,
et b ∈ A2 ∪ B2 ∪ C2. Puisque a est l’unique voisin fort de b dans T
0
et puisque
A1, B1 sont tous les deux non-vides, b 6∈ C2, et on peut alors supposer que b ∈ B2.
Puisque A1 6= ∅, C1 = ∅ et A1 = {a}. Puisque |A1 ∪ B1 ∪ C1| ≥ 3, |B1| ≥ 2. De
plus c est fortement antiadjacent à a et semiadjacent à b dans T, on peut donc
en déduire que c ∈ A2. Maintenant, si le sommet a a un voisin x dans B1 dans le
trigraphe T (c’est alors un voisin fort), alors {x, a} ∪ A2 ∪ C2 est un star cutset
dans T, et si a est fortement anticomplet à B1 dans T, d’après la définition du
2-joint propre, B1 est un ensemble homogène dans T. Dans tous les cas, d’après le
lemme 2.6 ou le lemme 2.7, T admet une skew-partition équilibrée.
2.5 Blocs de décomposition
La manière d’utiliser les décompositions dans les chapitres suivantes nous demande
de construire des blocs de décompositions et de récursivement poser plusieurs
questions sur ces blocs. Pour pouvoir faire cela, nous devons nous assurer
que les blocs de décompositions sont toujours dans notre classe de graphes.
Un ensemble X ⊆ V (T) est un fragment d’un trigraphe T si une des conditions
suivantes est vérifiée :
1. (X, V (T) \ X) est un 2-joint propre de T ;
282.5. BLOCS DE DÉCOMPOSITION
A2
C2
B2
X2
A2
C2
B2
X2
Figure 2.6 – Blocs de décomposition : 2-joint
2. (X, V (T) \ X) est un complément de 2-joint propre de T.
Remarquons qu’un fragment de T est un fragment de T. Nous pouvons maintenant
définir le bloc de décomposition TX associé à un fragment X. Un 2-joint est
pair ou impair suivant la parité des longueurs des chemins décrits par le lemme 2.4.
Si (X1, X2) est un 2-joint propre impair et si X = X1, alors prenons
(A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Nous construisons alors le bloc
de décomposition TX1 = TX comme suit. Nous partons de T|(A1 ∪ B1 ∪ C1). Nous
ajoutons ensuite deux sommets marqués a et b, tels que a est fortement complet
à A1, b est fortement complet à B1, ab est une arête optionnelle et il n’y a aucune
autre arête entre {a, b} et X1. Remarquons que {a, b} est une composante
optionnelle de TX. Nous l’appelons la composante marquée de TX.
Si (X1, X2) est un 2-joint propre pair et si X = X1, alors prenons
(A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Nous construisons alors le bloc
de décomposition TX1 = TX comme suit. Nous partons de T|(A1 ∪ B1 ∪ C1). Nous
ajoutons ensuite trois sommets marqués a, b et c, tels que a est fortement complet
à A1, b est fortement complet à B1, ac et cb sont deux arêtes optionnelles et il
n’y a aucune autre arête entre {a, b, c} et X1. À nouveau nous appelons {a, b, c}
la composante marquée de TX.
Si (X1, X2) est le complément d’un 2-joint propre impair et si X = X1,
alors prenons (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Nous construi-
29CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS
A2
C2
B2
X2
A2
C2
B2
X2
Figure 2.7 – Blocs de décomposition : Complément de 2-joint
sons alors le bloc de décomposition TX1 = TX comme suit. Nous partons de
T|(A1 ∪ B1 ∪ C1). Nous ajoutons ensuite deux sommets marqués a et b, tels que
a est fortement complet à B1 ∪ C1, b est fortement complet à A1 ∪ C1, ab est une
arête optionnelle et il n’y a aucune autre arête entre {a, b} et X1. À nouveau nous
appelons {a, b} la composante marquée de TX.
Si (X1, X2) est le complément d’un 2-joint propre pair et si X = X1, alors prenons
(A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Nous construisons alors
le bloc de décomposition TX1 = TX comme suit. Nous partons de T|(A1∪B1∪C1).
Nous ajoutons ensuite trois sommets marqués a, b et c, tels que a est fortement
complet à B1 ∪ C1, b est fortement complet à A1 ∪ C1, ac et cb sont deux arêtes
optionnelles, ab est une arête forte et il n’y a aucune autre arête entre {a, b, c} et
X1. À nouveau nous appelons {a, b, c} la composante marquée de TX.
Lemme 2.11. Si X est un fragment d’un trigraphe T de Berge bigame, alors
TX est un trigraphe de Berge bigame.
Démonstration. Par définition de TX, il est clair que tout sommet de TX est ou
bien dans au plus une arête optionnelle, ou bien est lourd, ou bien est léger, TX
est donc bien un trigraphe bigame. Il reste juste à démontrer que TX est de Berge.
Soit X = X1 et (X1, X2) un 2-joint propre de T. Soit (A1, B1, C1, A2, B2, C2)
une affectation de (X1, X2).
302.5. BLOCS DE DÉCOMPOSITION
Commençons par supposer que TX1 a un trou impair H = h1- · · · -hk-h1. Notons
ZX1
l’ensemble des sommets marqués de TX1
. Supposons que les sommets de ZX1
soient consécutifs dans H, alors H \ ZX1
est un chemin P dont une extrémité est
dans A1, l’autre dans B1 et dont l’intérieur est dans C1. Un trou de T est obtenu
en ajoutant à P un chemin dont une extrémité est dans A2, dont l’autre extrémité
est dans B2 et dont l’intérieur est dans C2. D’après le lemme 2.4 ce trou est impair,
c’est une contradiction. Dans ce cas les sommets marqués ne sont pas consécutifs
dans H, et puisque c n’a pas de voisin dans V (T) \ {a, b, c}, on peut en déduire
que c 6∈ V (H). Maintenant, un trou de même longueur que H peut être obtenu
dans T en remplaçant si besoin a et/ou b par des sommets a2 ∈ A2 et b2 ∈ B2,
choisi pour être antiadjacent (ce qui est possible d’après le lemme 2.9).
Supposons alors que TX1 ait un antitrou impair H = h1- · · · -hk-h1. Puisqu’un
antitrou de longueur 5 est également un trou, on peut supposer que H est de
longueur au moins 7. Donc dans H, toute paire de sommets à un voisin commun.
Il y a donc au plus un sommet parmi a, b, c qui est dans H, et à cause de son degré,
c ne peut pas être dans H. Un antitrou de même longueur que H peut être obtenu
dans T en remplaçant si besoin a ou b par un sommet a2 ∈ A2 ou b2 ∈ B2, encore
une fois c’est une contradiction.
Remarquons que les cas où T a un complément de 2-joint sont traités par
complémentation.
Lemme 2.12. Si X est un fragment d’un trigraphe T de Berge apprivoisé,
alors le bloc de décomposition TX n’a pas de skew-partition équilibrée.
Démonstration. Pour démontrer ce résultat commençons par supposer que TX ait
une skew-partition équilibrée (A0
, B0
) et notons (A0
1
, A0
2
, B0
1
, B0
2
) une affectation de
cette skew-partition. Cherchons maintenant une skew-partition dans T. Nous utiliserons
le lemme 2.8 pour démontrer qu’il existe alors une skew-partition équilibrée
dans T. Le résultat sera alors vrai par contradiction.
Soit X = X1 et (X1, X2) un 2-joint propre de T. Soit (A1, B1, C1, A2, B2, C2)
une affectation de (X1, X2).
Puisque les sommets marqués dans TX, a et b n’ont pas de voisin fort commun
et que c n’a pas de voisin fort, il y a, à symétrie près, deux cas : a ∈ A0
1
et b ∈ A0
1
,
ou a ∈ A0
1
et b ∈ B0
1
. Remarquons que lorsque (X1, X2) est pair, le sommet marqué
c doit être dans A0
1
car il est adjacent au sommet a et n’a pas de voisin fort.
Commençons par supposer que les sommets a et b sont tous les deux dans
A0
1
. Dans ce cas (X2 ∪ A0
1 \ {a, b, c}, A0
2
, B0
1
, B0
2
) est une affectation d’une skew-
31CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS
partition (A, B) dans T. La paire (A0
2
, B0
1
) est équilibrée dans T car elle l’est dans
TX. Donc d’après le lemme 2.8, T admets une skew-partition équilibrée, c’est une
contradiction.
Les sommets a et b ne sont donc pas tous les deux dans A0
1
et donc a ∈ A0
1
et
b ∈ B0
1
. Dans ce cas, (A2 ∪C2 ∪A0
1 \ {a, c}, A0
2
, B2 ∪B0
1 \ {b}, B0
2
) est une affectation
d’une skew-partition (A, B) dans T. La paire (A0
2
, B0
2
) est équilibrée dans T car elle
l’est dans TX. Donc d’après le lemme 2.8, T admet une skew-partition équilibrée,
c’est une contradiction.
Le cas où T admet un complément de 2-joint se prouve par complémentation.
Nous avons dans ce chapitre introduit toutes les notions de base qui vont nous
être utiles dans les chapitres suivants. Les résultats les plus importants sont le
théorème 2.10 et les lemmes 2.11 et 2.12 qui nous permettent de dire que les
trigraphes de Berge apprivoisés se décomposent par 2-joint et complémentaire de 2-
joint et que les blocs construits restent dans la classe. Ces résultats sont la base des
trois chapitres suivants dans lesquels nous allons pouvoir prouver divers résultats
sur la classe en décomposant nos graphes puis en appliquant une induction.
Enfin, notons que les graphes de Berge sans skew-partition forment une sousclasse
stricte des graphes de Berge. La figure 2.8 montre un graphe qui, si l’on se
restreint à notre ensemble de décomposition, n’est décomposable que par skewpartition.
Dans ce graphe, les arêtes de couleurs vont vers tous les sommets de
possédant la même couleur.
Un résultat important serait d’arriver, en étendant l’ensemble des décompositions
autorisées, à se débarrasser des skew-partitions.
322.5. BLOCS DE DÉCOMPOSITION
Figure 2.8 – Un graphe de Berge décomposable uniquement par skew-partition
33CHAPITRE 2. TRIGRAPHES DE BERGE APPRIVOISÉS
34Chapitre 3
Propriété du grand biparti
Les résultats de ce chapitre ont été obtenus avec Aurélie Lagoutte, ils font l’objet
d’un article [26] soumis à Discrete Mathematics.
Une des propriétés les plus simples à obtenir à l’aide d’une décomposition par
2-joints est celle du grand biparti. On dit qu’un graphe G d’ordre n a la c-propriété
du grand biparti, s’il existe deux ensembles de sommets V1 ⊆ V et V2 ⊆ V , tels
que |V1| ≥ cn˙ , |V2| ≥ cn˙ et que V1 soit ou bien complet, ou bien anticomplet à
V2. On dit qu’une classe de graphes C a la propriété du grand biparti s’il existe
une constante c, telle que tout graphe G ∈ C d’ordre n a la c-propriété du grand
biparti. Cette propriété est appelée propriété d’Erdős Hajnal forte dans [22].
Par exemple, pour tout entier k, les graphes sans Pk, ni Pk induit ont la propriété
du grand biparti [5]. Cette propriété est intéressante car dans le cas des
classes de graphes définies par un unique sous-graphe induit H interdit, elle implique
la propriété d’Erdős-Hajnal [3, 22]. C’est à dire qu’il existe une constante
δH qui dépend de H, telle que tout graphe G de la classe contient une clique ou
un stable de taille |V (G)
δH |. Nous allons montrer le résultat suivant :
Théorème 3.1. Tout graphe de Berge sans skew-partition équilibrée a la propriété
du (1/148)-grand biparti.
Ce résultat n’implique pas la propriété d’Erdős-Hajnal, puisque la classe des
graphes de Berge apprivoisés n’est pas close par sous-graphe induit, en effet la
suppression de sommets peut créer des skew-partitions équilibrées. Cependant,
il est facile de voir que la propriété d’Erdős-Hajnal est une conséquence directe
35CHAPITRE 3. PROPRIÉTÉ DU GRAND BIPARTI
du théorème fort des graphes parfaits. En effet, pour tout graphe G, |V (G)| ≤
χ(G)α(G) et par perfection des graphes de Berge χ(G) = ω(G), on sait donc
que pour tout graphe de Berge G |V (G)| ≤ ω(G)α(G) donc pour tout graphe de
Berge, ou bien ω(G) ≥
q
|V (G)| ou bien α(G) ≥
q
|V (G)|. En fait nous n’avons
même pas besoin du théorème fort des graphes parfaits, il suffit d’avoir l’inégalité
|V (G)| ≤ ω(G)α(G), prouvée dès 1972 par Lovász [28].
Le théorème 3.1 est dans un certain sens un résultat négatif, en effet les graphes
de Berge n’ont en général pas la propriété du grand biparti. Interdire les skewpartitions
donne donc une classe sensiblement plus petite. Comme l’a observé
Seymour [34], les graphes de comparabilité non triviaux (ici qui ne sont ni des
cliques, ni des graphes bipartis) ont tous une skew-partition. En fait Chvátal à
démontré [16] que les graphes parfaitement ordonables, c’est à dire une super classe
des graphes de comparabilité sont, ou bien biparti, ou bien admettent un starcutset
dans leur complémentaire. Les graphes de comparabilité étant des graphes
de Berge, c’est une des classes les plus intéressantes à regarder pour comprendre
les restrictions posées par l’interdiction des skew-partitions équilibrées.
Le résultat suivant est le théorème 2 de [21].
Théorème 3.2. Soit ε ∈ (0, 1). Pour tout entier n suffisamment grand, il
existe un ordre partiel P sur n éléments tel qu’aucun élément de P n’est
comparable à n
ε autres éléments de P et pour tout A, B ⊂ P tels que
|A| = |B| >
14n
ε log2 n
, il y a un élément de A comparable à un élément de B.
En prenant les graphes de comparabilité des ordres partiels fournis par ce
théorème, nous avons une classe de graphes parfaits qui n’a pas la propriété du
grand biparti. À partir d’un ordre partiel, on construit son graphe de comparabilité
de la manière suivante, les sommets sont les éléments de l’ordre et il y un arête entre
deux sommets si et seulement si les éléments qu’ils représentent sont comparables
dans l’ordre partiel.
Le but de ce chapitre est de montrer que les graphes de Berge apprivoisés
ont la propriété du grand biparti. Pour cela nous allons généraliser le problème
aux trigraphes de Berge apprivoisés. Commençons par étendre la définition. Nous
verrons ensuite comment généraliser ce résultat aux classes construites par k-joints
généralisés.
363.1. GRAND BIPARTI DANS LES TRIGRAPHES DE BERGE APPRIVOISÉS
3.1 Grand biparti dans les trigraphes de Berge
apprivoisés
Soit une constante 0 < c < 1, un trigraphe T sur n sommet a la c-propriété du
grand biparti s’il existe V1, V2 ⊆ V (T) tels que |V1|, |V2| ≥ cn˙ et que V1 est fortement
complet ou anticomplet à V2. Il est immédiat de voir que pour les trigraphes sans
arêtes optionnelles, la définition coïncide avec celle sur les graphes. Une autre
remarque importante est que la propriété du grand biparti est une propriété autocomplémentaire
: un trigraphe T a la propriété du grand biparti si et seulement si
son complémentaire T a aussi la propriété du grand biparti. Nous rappelons qu’être
un trigraphe de Berge apprivoisé est aussi une propriété auto-complémentaire. Lors
de nos inductions nous pouvons donc ramener le cas des complémentaires de 2-
joints au cas des 2-joints.
Nous allons démontrer le résultat suivant :
Théorème 3.3. Soit T un trigraphe de Berge apprivoisé, tel que n = |V (T)| ≥
3. Alors T a la (1/148)-propriété du grand biparti.
Pour les besoins de l’induction nous devons encore étendre notre problème
aux trigraphes de Berge apprivoisés pondérés. Dans la suite, on associe à tout
trigraphe T une fonction de poids w : V (T) ∪ E ∗
(T) → N, telle que w(v) > 0
pour v ∈ V (T) et que toute arête optionnelle de poids non nul soit étiquetée
avec “2-joint” ou “complément 2-joint”. Pour tout sous-ensemble V
0 ⊆ V (T), on
note w(V
0
) = P
v∈V 0 w(v) + P
u,v∈V 0 w(uv). Avec ces notations, le poids W d’un
trigraphe T est la somme w(V (T)) de ses poids, et étant donné une constante
c < 1, on dit que T a la c-propriété du grand biparti, s’il existe V1, V2 ⊆ V (T), tels
que w(V1), w(V2) ≥ cW˙ et V1 est fortement complet ou fortement anticomplet à
V2. Remarquons que si w est une fonction de poids telle que w(v) = 1 pour tout
sommet v ∈ V (T) et que w(uv) = 0 pour toute arête optionnelle uv ∈ E ∗
(T), nous
obtenons la notion précédente.
Remarquons également que la propriété du grand biparti est stable par réalisation
comme le montre le lemme suivant.
Lemme 3.4. Soit CT une classe de trigraphes ayant la c-propriété du grand
biparti, alors la classe des graphes C = {G, G est une réalisation de T ∈ CT }
a la c-propriété du grand biparti.
Démonstration. Si un trigraphe T a la propriété du grand biparti, il existe une
paire d’ensembles de sommets V1, V2 ⊆ V (T) témoins de la propriété. Dans toute
37CHAPITRE 3. PROPRIÉTÉ DU GRAND BIPARTI
réalisation de T, V1, V2 reste une paire de témoins de la propriété du grand biparti.
L’idée de la démonstration du théorème 3.1 est de contracter les sommets de
T, tout en préservant les poids jusqu’à obtenir un trigraphe basique. Soit T un
trigraphe avec une fonction de poids w, (X1, X2) un 2-joint propre dans T ou
dans son complément T, tel que w(X1) ≥ w(X2), et (A1, B1, C1, A2, B2, C2) une
affectation de (X1, X2). Définissons le trigraphe T
0 avec la fonction de poids w
0
comme la contraction de T, noté (T, w) ❀ (T
0
, w0
).
T
0
est le bloc de décomposition TX1
et sa fonction de poids w
0
est définie comme
suit :
— Sur les sommets de X1, on définit w
0 = w.
— Sur les sommets marqués a, b, on définit w
0
(a) = w(A2) et w
0
(b) = w(B2)
— Si le sommet marqué c existe, on définit w
0
(c) = w(C2). Sinon, on définit
w
0
(ab) = w(C2) et on étiquette ab en fonction du type de (X1, X2).
On définit a (resp. b, v ∈ X1) comme étant le représentant de A2 (resp. B2, v)
et pour tout sommet v ∈ A2 (resp. B2, X1) on note v → a (resp. v → b, v → v).
Suivant l’existence de c, c ou ab est le représentant de C2 et pour tout sommet
v ∈ C2 on note v → c ou v → ab.
Si (T, w) ❀ (T
0
, w0
) et V
0 ⊆ V (T
0
), on note également V → V
0
si V = {v ∈
V (T)|∃v
0 ∈ V
0
v → v
0∨ ∃u
0
v
0 ∈ V
02
v → u
0
v
0}. On note par →∗
(resp. ❀∗
) la clôture
transitive de → (resp. ❀).
Lemme 3.5. Si T est un trigraphe avec une fonction de poids w et (T, w) ❀∗
(T
0
, w0
) alors :
— w
0
(V (T
0
)) = w(V (T))
— Si T
0 a la c-propriété du grand biparti, alors T aussi.
Démonstration. La première partie du résultat est claire. Supposons que T
0 ait la
c-propriété du grand biparti. Alors il existe W1, W2 ⊆ V (T), tels que W1 →∗ V1
et W2 →∗ V2. Puisque la contraction ne crée ni adjacence forte, ni antiadjacent
forte qui n’existaient pas auparavant, si V1, V2 sont fortement complets (resp. anticomplets),
W1, W2 sont également fortement complets (resp. anticomplets). De
plus w(W1) = w
0
(V1) et w(W2) = w
0
(V2). Donc la paire (W1, W2) prouve que T
0 a
la c-propriété du grand biparti.
383.1. GRAND BIPARTI DANS LES TRIGRAPHES DE BERGE APPRIVOISÉS
Lemme 3.6. Soit 0 < c < 1/6. Soit T un trigraphe de Berge apprivoisé, et
w sa fonction de poids telle que w(x) < cn˙ pour tout x ∈ V (T) ∪ E ∗
(T). Ou
bien T a la c-propriété du grand biparti, ou bien il existe un trigraphe basique
T
0 avec sa fonction de poids associée w
0
tel que (T, w) ❀∗
(T
0
, w0
) et pour tout
x ∈ V (T
0
) ∪ E ∗
(T
0
), w(x) < cn˙ .
Démonstration. On prouve le résultat par induction sur T, en utilisant le résultat
de décomposition sur les trigraphes de Berge bigames (Théorème 2.10). Si T n’est
pas basique, alors il admet un 2-joint propre ou le complément d’un 2-joint propre.
Le problème étant auto-complémentaire, nous traitons uniquement le cas d’un 2-
joint (X1, X2) de T. Par symétrie, supposons que w(X1) ≥ w(X2) et donc w(X1) ≥
n/2. Soit (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Par définition de X1,
max(w(A1), w(B1), w(C1)) ≥ n/6 ≥ cn˙ . Donc si max(w(A2), w(B2), w(C2)) ≥ cn˙ ,
on a la c-propriété du grand biparti. Sinon, (T, w) ❀ (T
0
, w0
) avec w
0
(x) < cn˙ pour
tout x ∈ V (T
0
) ∪ E ∗
(T
0
) et T
0
est un trigraphe de Berge apprivoisé d’après 2.11.
On peut donc appliquer l’hypothèse d’induction et ; ou bien trouver un trigraphe
basique T
00, tel que (T, w) ❀ (T
0
, w0
) ❀∗
(T
00, w00) et w
00(x) < cn˙ pour tout x ∈
V (T
00) ∪ E ∗
(T
00); ou bien T
0 a la c-propriété du grand biparti, et donc T aussi
d’après le lemme 3.5.
Si T est un trigraphe basique avec une fonction de poids w, on veut transformer
T en un trigraphe ayant des poids uniquement sur ses sommets en transférant les
poids des arêtes optionnelles sur de nouveaux sommets. On définit l’extension T
0 de
T comme le trigraphe avec la fonction de poids w
0
: V (T
0
) → N\{0} définie comme
suit : V (T
0
) = V (T) ∪ {vab|ab ∈ E ∗
(T), w(ab) > 0}, w
0
(v) = w(v) pour v ∈ V (T),
l’étiquette de ab est donnée par vab, w
0
(vab) = w(ab), θ(avab) = θ(bvab) = 0, et si
u ∈ V \ {a, b}, alors θ(uvab) = −1 si l’étiquette de ab est “2-joint” et θ(uvab) = 1 si
l’étiquette est “complément 2-joint”. Remarquons que ab était le représentant de
C2 de l’affectation (A1, B1, C1, A2, B2, C2) du 2-joint, et que vab prend sa place en
tant que contraction de C2, puisque qu’il a le même poids et les même adjacences
et antiadjacences fortes vis à vis du reste du trigraphe. Il n’était pas possible de
garder la contraction de C2 à chaque étape et en même temps de rester apprivoisé,
ce qui est la clé du lemme 3.6. Remarquons finalement que les nouveaux sommets
ajoutés étiquetés “2-joint” forment un stable et que ceux étiquetés “complément
de 2-joint” forment une clique.
39CHAPITRE 3. PROPRIÉTÉ DU GRAND BIPARTI
Lemme 3.7. Soit T un trigraphe de Berge apprivoisé et w sa fonction de poids
associée, tel que w(uv) = 0 pour tout uv ∈ E ∗
(T). Supposons que (T, w) ❀∗
(T
0
, w0
) et soit T
00 avec sa fonction de poids w
00 l’extension de T
0
. Si T
00 a la
c-propriété du grand biparti, alors T aussi.
Démonstration. Soit (V1, V2) deux sous-ensembles de T
00 prouvant que T
00 a la
c propriété du grand biparti. Soit X1 ⊆ V1 un sous-ensemble de sommets de V1
étiquetés. Alors V1\X1 ⊆ V (T
0
) et il existe W1 ⊆ V (T), tel que W1 →∗ V1\X1. Soit
Y1 = {v ∈ V (T)|∃vab ∈ X1, v → ab}. Alors w(W1 ∪ Y1) = w
00(V1) ≥ cn˙ . On définit
de la même manière X2, W2 et Y2 et nous avons les même inégalités w(W2 ∪Y2) =
w
00(V2) ≥ cn˙ . De plus, W1∪Y1 est fortement complet (resp. anticomplet) à W2∪Y2
si V1 est fortement complet (resp. anticomplet) à V2. Donc T a la c-propriété du
grand biparti.
Lemme 3.8. Si T
0
est l’extension d’un trigraphe basique T de Berge apprivoisé
et que sa fonction de poids associée w0 vérifie w0(x) < cn˙ pour tout x ∈
V (T) ∪ E ∗
(T) et si c ≤ 1/148, alors T
0 a la c-propriété du grand biparti.
Avant de pouvoir démontrer ce résultat nous avons besoin d’un lemme technique.
Un graphe G a m arêtes-multiples si son ensemble d’arêtes E est un multiensemble
de V
2 \ {xx|x ∈ V (G)} de taille m : il peut y avoir plusieurs arêtes entre
deux sommets distincts mais pas de boucle. Une arête uv a deux extrémités u et
v. Le degré de v ∈ V (G) est d(v) = |{e ∈ E|v est une extrémité de e}|.
Lemme 3.9. Soit G un graphe biparti (A, B) avec m arêtes multiples et de
degré maximum cm˙ avec c < 1/3. Alors il existe des sous-ensembles d’arêtes
E1, E2 de G, tels que |E1|, |E2| ≥ m/48 et si e1 ∈ E1, e2 ∈ E2 alors e1 et e2
n’ont pas d’extrémité commune.
Démonstration. Si m ≤ 48, il suffit de trouver deux arêtes sans extrémité commune.
De telles arêtes existent toujours puisque le degré maximum est borné par
cm˙ , donc aucun sommet ne peut être une extrémité commune à toutes les arêtes.
Sinon si m > 48, considérons une partition aléatoire uniforme (U, U0
) des sommets.
Pour toute paires d’arêtes distinctes e1, e2, considérons la variable aléatoire
Xe1,e2 = 1 si (e1, e2) ∈ (U
2 × U
02
) ∪ (U
02 × U
2
), et 0 sinon. Si e1 et e2 ont au moins
une extrémité commune, alors Pr(Xe1,e2 = 1) = 0, sinon Pr(Xe1,e2 = 1) = 1/8.
403.1. GRAND BIPARTI DANS LES TRIGRAPHES DE BERGE APPRIVOISÉS
Nous définissons alors :
p = |{(e1, e2) ∈ E
2
|e1 et e2 n’ont pas d’extrémité commune}|
pA = |{(e1, e2) ∈ E
2
|e1 et e2 n’ont pas d’extrémité commune dans A}|
qA = |{(e1, e2) ∈ E
2
|e1 6= e2 et e1 et e2 n’ont pas d’extrémité commune dans A}|
Nous définissons de la même manière pB et qB. Supposons que p ≥
1
3
m
2
. Alors :
E(
X
e1,e2∈E
e16=e2
Xe1,e2
) = X
e1,e2∈E
e16=e2
Pr(Xe1,e2 = 1) = p
8
≥
1
24
m
2
!
.
Donc il existe une partition (U, U0
) telle que :
X
e1,e2∈E
e16=e2
Xe1,e2 ≥
1
24
m
2
!
.
Soit E1 = E ∩ U
2
et E2 = E ∩ U
02
. Alors |E1|, |E2| ≥ m/48, sinon :
X
e1,e2∈E
e16=e2
Xe1,e2 = |E1| · |E2| <
m
48
·
1 −
1
48
m ≤
1
24
m
2
!
,
c’est une contradiction. Donc E1 et E2 vérifient les hypothèses du lemme. Il
nous reste donc à démontrer que p ≥
1
3
m
2
. Le résultat intermédiaire clé est que
pA ≥ 2qA. Numérotons les sommets de A de 1 à |A| et rappelons que d(i) est le
degré de i. Alors P|A|
i=1 d(i) = m et :
pA = 1/2
X
|A|
i=1
d(i)(m − d(i))
= 1/2
X
|A|
i=1
d(i)
2
−
X
|A|
i=1
(d(i))2
= 1/2
X
|A|
i,j=1
i6=j
d(i)d(j)
qA = 1/2
X
|A|
i=1
d(i)(d(i) − 1)
= 1/2
X
|A|
i=1
(d(i))2 − m
41CHAPITRE 3. PROPRIÉTÉ DU GRAND BIPARTI
Par conséquent :
2pA − (4qA + 2m) = X
|A|
i=1
d(i)
X
|A|
j=1
j6=i
d(j) − 2d(i)
=
X
|A|
i=1
d(i)
X
|A|
j=1
d(j) − 3d(i)
=
X
|A|
i=1
d(i) (m − 3d(i))
Mais pour tout i, d(i) ≤ cm˙ ≤ m/3 donc m − 3d(i) ≥ 0. Par conséquent, 2pA −
(4qA + 2m) ≥ 0 et donc pA ≥ 2qA. Mais pA + qA =
m
2
donc qA ≤
1
3
m
2
. De la
même manière, pB ≥ 2qB et qB ≤
1
3
m
2
. Finalement :
p ≥
m
2
!
− qA − qB ≥
m
2
!
−
2
3
m
2
!
≥
1
3
m
2
!
.
Démonstration du lemme 3.8. Soit w la fonction de poids associée à T
0
. Puisque
le problème est auto-complémentaire, il suffit de démontrer le résultat si T est un
trigraphe biparti, un trigraphe doublé ou un line trigraphe. Si T est un trigraphe
doublé, alors T a une bonne partition (X, Y ). En fait, X est l’union de deux stables
X1, X2 et Y est l’union de deux cliques Y1 et Y2. Donc T
0
est l’union de trois stables
X1, X2, X3 (X3 est l’ensemble des sommets étiquetés “2-joint”) et de trois cliques
Y1, Y2, Y3 (Y3 est l’ensemble des sommets étiquetés “complément de 2-joint”). Il
existe un ensemble Z parmi ces six ensembles de taille au moins n/6. Puisque
chaque sommet de Z a poids au plus cn˙ , on peut partitionner Z en (Z1, Z2) avec
w(Z1), w(Z2) ≥ n/12 − cn˙ ≥ cn˙ et Z1 est ou bien fortement complet à Z2 (c’est
le cas si Z est une clique forte) ou bien fortement anticomplet à Z2 (c’est le cas si
Z est un stable fort). Le même argument s’applique si T est un trigraphe biparti,
puisque c’est alors l’union de deux stables forts.
La démonstration est plus compliquée si T est un line trigraphe. Soit X le
stable fort des sommets étiquetés “2-joint” dans T, Y la clique forte des sommets
étiquetés “complément de 2-joint”, et Z = V (T
0
) \ (X ∪ Y ). Par définition du line
trigraphe, la réalisation complète de T
0
|Z est le line graphe d’un graphe biparti
G, et toute clique de T
0
|Z de taille au moins trois est une clique forte. Si vab ∈ X,
423.1. GRAND BIPARTI DANS LES TRIGRAPHES DE BERGE APPRIVOISÉS
alors la réalisation complète de T
0
|(Z ∪ {vab}) est aussi le line graphe d’un graphe
biparti : en effet, vab est semiadjacent à exactement a et b, et antiadjacent au reste
des sommets. Par hypothèse sur les cliques de taille trois de T, il ne peut y avoir de
sommet d ∈ Z adjacent à la fois à a et à b. Cela veut dire que l’extrémité commune
x de a et b dans G a degré exactement deux. Ajoutons l’arête vab entre x et un
nouveau sommet, alors la réalisation complète de T
0
|(Z ∪ {vab}) est le line graphe
d’un graphe biparti. En itérant ce procédé, la réalisation complète T
0
|(Z ∪ X) est
également le line graphe d’un graphe biparti.
Distinguons alors deux cas : s’il existe une clique K de poids w(K) ≥ 4cn˙ dans
T
0
, alors nous pouvons partitionner K en (K1, K2) avec w(K1), w(K2) ≥ 4cn/˙ 2 −
cn˙ ≥ cn˙ et K1 est fortement complet à K2. Sinon, remarquons que dans Z∪X, toute
composante optionnelle a au plus trois sommets. Pour chaque composante prenons
le sommets de poids maximal pour obtenir un ensemble de sommets V
0 ⊆ Z ∪ X
sans arête optionnelle entre eux, c’est à dire T
0
|V
0
est un graphe. De plus T
0
|V
0
est
un sous-graphe de la réalisation complète de T
0
|(Z ∪ X) et donc est le line graphe
d’un graphe biparti G. Au lieu de garder les poids strictement positifs sur les arêtes
de G, nous transformons chaque arête xy de poids m en m arêtes xy. L’inégalité
w(K) ≤ 4cn˙ pour toute clique K implique que d’une part le degré maximum d’un
sommet de G est 4cn˙ , d’autre part, n
0 = w(V
0
) ≥ (n − w(Y ))/3 ≥ n(1 − 4c)/3,
puisque Y est une clique. Le lemme 3.9 prouve l’existence de deux sous-ensembles
d’arêtes E1, E2 de G tels que |E1|, |E2| ≥ n
0/48 et si e1 ∈ E1, e2 ∈ E2 alors e1 et e2
n’ont pas d’extrémité commune. Cela correspond dans T
0 un témoin anticomplet
de la propriété du grand biparti.
Démonstration du Théorème 3.3. Soit c = 1/148. Si n < 1/c, il existe toujours
une arête forte ou une antiarête forte uv par définition des trigraphes bigames, et
nous définissons V1 = {u} et V2 = {v}. Sinon, donnons à T la fonction de poids w,
telle que w(v) = 1 pour tout v ∈ V (T) (en particulier, w(V (T)) = n). Appliquons
le lemme 3.6 à T pour obtenir ou bien la c propriété du grand biparti, ou bien
pour contracter T : il existe un trigraphe basique T
0
tel que (T, w) ❀∗
(T
0
, w0
).
Appliquons alors le lemme 3.8 pour avoir la c-propriété du grand biparti dans
l’extension de T
0
. Grâce au lemme 3.7 nous avons bien la c-propriété du grand
biparti.
43CHAPITRE 3. PROPRIÉTÉ DU GRAND BIPARTI
3.2 Clôture par k-joints généralisés
Dans cette section nous allons voir comment nous pouvons utiliser une géné-
ralisation des 2-joints afin d’obtenir un résultat analogue. Les résulats 2.10, 2.11
et 2.12 montrent qu’en fait les trigraphes de Berge apprivoisés sont la clôture par
2-joints et complément de 2-joints des classes basiques (trigraphes biparti, line
trigraphes, trigraphes doublés et leurs complémentaires). Ces classes basiques ont
la propriété du grand biparti et le théorème 3.3 montre que prendre la clôture de
cette classe préserve la propriété du grand biparti.
Dans cette section nous allons voir comment à partir d’une classe de graphes
héréditaire nous pouvons obtenir une classe de trigraphes, puis comment clore cette
classe de trigraphes par des opérations similaires aux 2-joints et aux complémentaires
de 2-joints. La clôture sera une classe de trigraphe. D’après le lemme 3.4 si
la clôture a la propriété du grand biparti alors la classe de graphes des réalisations
des trigraphes de la clôture aussi. En fait dans ce qui suit un k-joint avec k = 2
sera analogue à la fois à l’opération de 2-joint et à celle du complémentaire de
2-joint.
Dans la section suivante nous verrons que si la classe de graphes basiques a
la propriété du grand biparti, cette propriété est conservée dans la clôture par kjoints.
Il est important de remarquer que prendre la clôture des graphes basiques
du théorème de décomposition des graphes de Berge par k-joints avec k = 2 ne
donne pas exactement la classe des trigraphes de Berge apprivoisés (en particulier
les trigraphes de la clôture ne sont pas tous de Berge). De plus les constantes
obtenues pour les k-joints sont moins bonnes que celles obtenue pour les trigraphes
de Berge apprivoisés.
Soit C une classe de graphes qui doit être vue comme une classe “basique” de
graphes. Pour tout entier k ≥ 1, on construit la classe de trigraphes C
≤k de la
manière suivante : un trigraphe T appartient à C
≤k
si et seulement s’il existe une
partition X1, . . . , Xr de V (T) telle que :
— pour tout 1 ≤ i ≤ r, 1 ≤ |Xi
| ≤ k.
— pour tout 1 ≤ i ≤ r,
Xi
2
⊆ E ∗
(T).
— pour tout 1 ≤ i 6= j ≤ r, Xi × Xj ∩ E ∗
(T) = ∅.
— il existe un graphe G dans C tel que G est une réalisation de T.
En d’autre termes, on part du graphe G de C, on partitionne ses sommets en
petites parties (de taille au plus k), et on change toutes les adjacences à l’intérieur
de ces parties en arêtes optionnelles.
On définit alors le k-joint généralisé entre deux trigraphes T1 et T2, qui géné-
443.3. GRAND BIPARTI DANS LES CLASSES CLOSES PAR K-JOINTS
ralise le 2-joint et qui est similaire au H-joint [6]. Soit T1 et T2 deux trigraphes
vérifiant les propriétés suivantes avec 1 ≤ r, s ≤ k :
— V (T1) est partitionné en (A1, . . . , Ar, B = {b1, . . . , bs}) et Aj 6= ∅ pour tout
1 ≤ j ≤ r.
— V (T2) est partitionné en (B1, . . . , Bs, A = {a1, . . . , ar}) et Bi 6= ∅ pour tout
1 ≤ i ≤ s.
—
B
2
⊆ E ∗
(T1) et
A
2
⊆ E ∗
(T2), ce qui veut dire que A et B contiennent
uniquement des arêtes optionnelles.
— Pour tout 1 ≤ i ≤ s, 1 ≤ j ≤ r, bi et aj sont ou bien fortement complets, ou
bien fortement anticomplets à respectivement Aj et Bi
. En d’autre terme,
il existe un graphe biparti qui décrit les adjacences entre B et (A1, . . . , Ar),
et le même graphe biparti décrit les adjacences entre (B1, . . . , Bs) et A.
Alors le k-joint généralisé de T1 et T2 est le trigraphe T ou V (T) = A1 ∪ . . . ∪
Ar ∪ B1 ∪ . . . ∪ Bs. Soit θ1 et θ2 les fonctions d’adjacences de respectivement T1 et
T2. Autant que possible la fonction d’adjacence θ de T étend θ1 et θ2 (c’est à dire
θ(uv) = θ1(uv) pour uv ∈
V (T1)∩V (T)
2
et θ(uv) = θ2(uv) pour uv ∈
V (T2)∩V (T)
2
),
et pour a ∈ Aj
, b ∈ Bi
, θ(ab) = 1 si bi et Aj sont fortement complets dans T1 (ou
de manière équivalente, si aj et Bi) sont fortement complets dans T2), et −1 sinon.
On définit finalement C
≤k comme la plus petite classe contenant C
≤k
et close
par k-joints généralisés.
3.3 Grand biparti dans les classes closes par kjoints
En fait la méthode de contraction des 2-joints utilisée dans la section précédente
peut être généralisée aux k-joints. Nous avons seulement besoin que la classe C des
graphes basiques soit close par sous-graphes induits pour avoir le résultat sur C
≤k
.
Nous obtenons le résultat suivant :
Théorème 3.10. Soit k ∈ N\{0}, 0 < c < 1/2 et C une classe de graphes telle
que pour tout G ∈ C et pour toute fonction de poids w : V (G) → N \ {0} telle
que w(v) < cn˙ pour tout v ∈ V (G), G a la c-propriété du grand biparti. Alors
tout trigraphe T de C
≤k
, avec au moins k/c sommets, a la (c/k)-propriété du
grand biparti.
Pour démontrer ce théorème, nous définissons la contraction d’un k-joint géné-
ralisé. Paradoxalement cette contraction est plus simple que dans le cas du 2-joint
45CHAPITRE 3. PROPRIÉTÉ DU GRAND BIPARTI
car il n’y a ni poids ni étiquette sur les arêtes optionnelles : soit T un trigraphe avec
une fonction de poids w : V (T) → N\{0} et supposons que T est le k-joint généralisé
de T1 et de T2. Nous suivons les notations introduites dans la définition des kjoints
généralisés. En particulier, V (T) est partitionné en (A1, . . . , Ar, B1, . . . , Bs).
Quitte à échanger T1 et T2, supposons que w(∪
r
j=1Aj ) ≥ w(∪
s
i=1Bi). Alors la
contraction de T est le trigraphe T
0 = T1 avec les poids w
0 définis par w
0
(v) = w(v)
si v ∈ ∪r
j=1Aj
, et w
0
(bi) = w(Bi) pour 1 ≤ i ≤ s. On note cette opération de
contraction par (T, w) ❀ (T
0
, w0
).
Remarquons que le lemme 3.5 est toujours vrai dans ce contexte, et nous obtenons
le lemme suivant :
Lemme 3.11. Soit 0 < c < 1/(2k). Soit (T, w) un trigraphe pondéré de C
≤k
tel
que w(v) < cn˙ pour tout v ∈ V (T). Ou bien T a la c-propriété du grand biparti,
ou bien il existe un trigraphe T
0 ∈ C≤k de poids w
0
tel que (T, w) ❀∗
(T
0
, w0
)
et pour tout v ∈ V (T
0
), w(v) < cn˙ .
Démonstration. La démonstration est similaire au lemme 3.6.
On prouve le résultat par induction sur T. Avec les notations précédentes, T se
partitionne en V (T) = A1 ∪ . . . ∪ Ar ∪ B1 ∪ . . . ∪ Bs Par symétrie, supposons que
w(∪Aj ) ≥ w(∪Bi) et donc w(∪Aj ) ≥ n/2. Par définition de X1, max(w(Aj )) ≥
n/(2k) ≥ cn˙ . Donc si max(w(Bj )) ≥ cn˙ , on a la c-propriété du grand biparti.
Sinon, (T, w) ❀ (T
0
, w0
) avec w
0
(x) < cn˙ pour tout x ∈ V (T
0
)∪ E ∗
(T
0
) et T
0 ∈ C
≤k
par construction de la classe. On peut donc appliquer l’hypothèse d’induction et ;
ou bien trouver un trigraphe basique T
00, tel que (T, w) ❀ (T
0
, w0
) ❀∗
(T
00, w00) et
w
00(x) < cn˙ pour tout x ∈ V (T
00) ∪ E ∗
(T
00); ou bien T
0 a la c-propriété du grand
biparti, et donc T aussi d’après le lemme 3.5.
Démonstration du Théorème 3.10. Soit T un trigraphe de C
≤k
. On définit les poids
w(v) = 1 pour tout v ∈ V (T). En appliquant le lemme 3.11 on a, ou bien la
(c/k) propriété du grand biparti, ou bien il existe un trigraphe T
0 ∈ C≤k
tel que
(T, w) ❀∗
(T
0
, w0
) et w
0
(v) < (c/k).n pour tout v ∈ V (T
0
). Pour chaque composante
optionnelle de T
0
, on choisit le sommet de plus grand poids et on supprime les
autres. On obtient un graphe G ∈ C et on définit w
00(v) = w
0
(v) sur ses sommets.
Remarquons que w
00(V (G)) ≥ w
0
(V (T
0
))/k puisque toute composante optionnelle
a taille au moins k, et pour tout v ∈ V (G), w
00(v) < (c/k).w0
(V (T
0
)) ≤ cw˙
00(V (G)).
Alors il existe V1, V2 ⊆ V (G) tels que w
00(V1), w00(V2) ≥ cw˙
00(V (G)) et V1 est ou
bien fortement complet ou bien fortement anticomplet à V2. Alors w
0
(V1), w0
(V2) ≥
(c/k).w0
(V (T
0
)) et V1 est ou bien fortement complet ou bien fortement anticomplet
463.3. GRAND BIPARTI DANS LES CLASSES CLOSES PAR K-JOINTS
à V2 dans T
0
. Donc T
0 a la (c/k)-propriété du grand biparti. On conclut alors à
l’existence d’une paire d’ensembles témoins de la propriété du grand biparti dans
T avec le lemme 3.5.
Les résultats de ce chapitre ne sont pas spécifiques aux trigraphes de Berge
apprivoisés. En effet la partie la plus technique est la démonstration du cas basique
(lemme 3.8). La partie induction, c’est à dire, la construction par joint est
finalement assez simple. En fait, si le joint est équilibré, il est normal que l’on ait
la propriété du grand biparti entre les deux côtés du joint. Cependant comme les
graphes de Berge n’ont pas tous cette propriété, c’est une autre manière de voir
que notre classe est une sous-classe stricte des graphes de Berge.
47CHAPITRE 3. PROPRIÉTÉ DU GRAND BIPARTI
48Chapitre 4
Clique-Stable séparateur
Les résultats de ce chapitre ont été obtenus avec Aurélie Lagoutte, ils font l’objet
d’un article [26] soumis à Discrete Mathematics.
Une propriété très proche de la propriété du grand biparti est celle de la cliquestable
séparation. Commençons par définir ce qu’est un clique-stable séparateur.
Soit G un graphe, on dit qu’une partition en deux ensembles C = (U, V ) du graphe
G est une coupe. Un ensemble de coupes est un clique-stable séparateur de G si
pour toute clique K et tout stable S de G tels que K ∩ S = ∅ il existe une coupe
C = (U, V ) du graphe G telle que K ⊆ U et S ⊆ V . Bien entendu, pour tout
graphe G il existe toujours un clique-stable séparateur. La question intéressante
est de savoir s’il existe un clique-stable séparateur contenant un nombre polynomial
de coupes. On dit donc qu’une classe C graphes a la propriété de la clique-stable
séparation s’il existe un polynôme P tel que pour tout graphe G ∈ C d’ordre n, G
admette un clique-stable séparateur de taille P(n).
Dans ce chapitre nous allons montrer que les graphes de Berge apprivoisés admettent
un clique-stable séparateur de taille O(n
2
). Nous généraliserons ce résultat
aux classes de trigraphes construites par k-joints généralisés comme défini dans le
chapitre 3.
La propriété de la clique-stable séparation a été introduite par Yannakakis [38]
dans les années 90 lorsqu’il étudiait le problème de l’existence d’une formulation
étendue pour le polytope des stables (l’enveloppe convexe des fonctions caracté-
ristiques de ses stables). C’est à dire un polytope plus simple en dimension plus
grande mais tel que sa projection soit le polytope des stables. Il s’est intéressé à
49CHAPITRE 4. CLIQUE-STABLE SÉPARATEUR
ce problème sur les graphes parfaits car ces graphes ont des propriétés permettant
de définir plus simplement ce polytope. Cela l’a amené à définir un problème de
communication qui est équivalent à celui de la clique-stable séparation. De fait
l’existence d’un clique-stable séparateur de taille polynomial est une condition né-
cessaire à l’existence d’une formulation étendue. Il a pu démontrer l’existence à
la fois d’un clique-stable séparateur de taille polynomiale et d’une formulation
étendue pour de nombreuses sous-classes de graphes parfaits comme par exemple,
les graphes de comparabilité, les graphes triangulés (chordal graph c’est-à-dire
les graphes sans C4 induit), et les compléments de ces classes. Lovász à également
démontré ces propriétés pour les graphes t-parfaits [30]. Cependant ces deux
problèmes restent ouverts pour les graphes parfaits en général. L’existence d’une
formulation étendue n’étant pas toujours vraie pour les graphes [20], il est donc
d’autant plus intéressant de voir si ces propriétés sont vérifiées pour les graphes
parfaits. Remarquons bien que contrairement à la propriété du grand biparti qui
n’est pas vérifiée pour les graphes de comparabilité, la propriété de la clique-stable
séparation est vraie sur cette classe. Les graphes de comparabilité sont une classe
de graphes parfaits assez bien comprise dans laquelle presque tous les graphes ont
de nombreuses skew-partitions équilibrées, de ce point de vue c’est une classe bien
étudiée de graphes de Berge non apprivoisés. Peut-être est-il donc possible d’utiliser
la décomposition du théorème fort des graphes parfaits pour démontrer l’existence
de clique-stable séparateur de taille polynomiale pour les graphes parfaits.
Commençons par voir comment la propriété de la clique-stable séparation et la
propriété du grand biparti sont liées. Dans le cas des classes de graphes héréditaires,
la propriété du grand biparti implique celle de la clique-stable séparation. Comme
le montre le théorème suivant (la démonstration est la même que celle de Bousquet,
Lagoutte et Thomassé dans [4] qui à partir de la propriété du grand biparti prouvé
dans [5] montre que les graphes sans chemin induit ni complémentaire de chemin
induit de taille k ont la propriété de la clique-stable séparation)
Lemme 4.1. Soit C une classe de graphes héréditaire ayant la c-propriété du
grand biparti, alors C a la propriété de la clique-stable séparation.
Démonstration. Le but est de démontrer que tout graphe G dans C admet un
clique-stable séparateur de taille n
cs avec cs =
−1
log2(1−c)
(pour rappel, c-est la
constante de la propriété du grand biparti). Raisonnons par l’absurde et prenons
G un contre-exemple minimal. Notons n = |V (G)|, comme G a la c-propriété du
grand biparti, il existe deux sous-ensembles de sommets disjoints V1, V2 vérifiant,
|V1| ≥ cn˙ , |V2| ≥ cn˙ et V1 est ou bien complet à V2 ou bien anticomplet à V2.
504.1. CLIQUE-STABLE SÉPARATEUR DANS LES TRIGRAPHES DE BERGE
APPRIVOISÉS
Notons V3 = V (G) \ (V1 ∪ V2). Par minimalité de G, G|(V1 ∪ V3) admet un cliquestable
séparateur F1 de taille (|V1| + |V3|)
cs et G|(V2 ∪ V3) admet un clique-stable
séparateur F2 de taille (|V2| + |V3|)
cs. Construisons F un clique stable séparateur
de G. Nous devons distinguer deux cas suivant les adjacences entre V1 et V2. L’idée
est de prendre chaque coupe de F1 et F2 et de la transformer en une coupe de G en
ajoutant les sommets de V2 ou V1 du “bon” côté de la coupe suivant les adjacences
entre V1 et V2. Formellement si V1 est complet à V2, F = {(U ∪ V2, W); (U, W) ∈
F1} ∪ {(U ∪ V1, W); (U, W) ∈ F2}. Si au contraire, V1 est anticomplet à V2, F =
{(U, W ∪ V2); (U, W) ∈ F1} ∪ {(U, W ∪ V1); (U, W) ∈ F2}. Il est facile de voir que
F est un clique-stable séparateur de G. En effet suivant les adjacences entre V1 et
V2 une clique ou un stable de G ne peut pas intersecter à la fois V1 et V2. Pour
toute clique K et stable S ne s’intersectant pas, il existe donc une coupe dans F
qui les sépare. Enfin F a taille au plus 2((1 − c)n)
cs ≤ n
cn
.
Ce résultat ne règle pas vraiment le problème pour les graphes de Berge apprivoisés.
En effet la classe des graphes de Berge apprivoisés n’est pas héréditaire
(la suppression de sommet peut créer des skew-partitions). D’autre part, avec la
constante obtenue dans le théorème 3.3 on obtiendrait un clique-stable séparateur
de taille O(n
101) ce qui, étant donné que nous pouvons montrer qu’il existe un
clique-stable séparateur de taille quadratique, est assez mauvais.
4.1 Clique-stable séparateur dans les trigraphes
de Berge apprivoisés
Comme dans le chapitre précédent, nous allons utiliser le théorème de décomposition
et les blocs du chapitre 2. Nous devons donc étendre notre problème aux
trigraphes. Le résultat principal sera le théorème 4.5 prouvant l’existence de cliquestable
séparateur de taille quadratique pour les trigraphes de Berge apprivoisés.
Commençons par définir les notions de clique-stable séparation dans les trigraphes.
Soit T un trigraphe. Une coupe de T est une paire (U, W) ⊆ V (T)
2
, telle
que U ∪W = V (T) et U ∩W = ∅. Elle sépare une clique K d’un stable S, si H ⊆ U
et S ⊆ W. Parfois on dit que U est la partie clique de la coupe et W la partie stable
de la coupe. Remarquons qu’une clique et un stable ne peuvent être séparés que
s’ils ne s’intersectent pas. Remarquons également qu’ils ne peuvent s’intersecter
que sur une composante optionnelle V (pour rappel pour tout u, v ∈ V , u = v
ou uv ∈ E ∗
(T)). En particulier, si T est un trigraphe bigame, une clique et un
51CHAPITRE 4. CLIQUE-STABLE SÉPARATEUR
stable s’intersectent sur au plus un sommet ou une arête optionnelle. On dit que
la famille F de coupes est un clique-stable séparateur, si pour toute clique K et
tout stable S qui ne s’intersectent pas, il existe une coupe dans F qui sépare K
et S. Étant donnée une classe C de trigraphes, nous nous intéressons à la question
suivante : existe-t-il une constante c, telle que pour tout trigraphe T de C, T admet
un clique-stable séparateur de taille O(n
c
) ?
Supposons qu’il existe un clique-stable séparateur de taille m de T, alors on
construit un clique-stable séparateur de taille m de T en construisant pour chaque
coupe (U, W) la coupe (W, U). Le problème est donc bien auto-complémentaire.
Montrons également qu’il est suffisant de considérer uniquement les cliques et les
stables maximaux.
Lemme 4.2. Si un trigraphe T bigame admet une famille F de coupes qui
sépare toutes les cliques maximales (pour l’inclusion) de tous les stables maximaux,
alors T admet un clique-stable séparateur de taille au plus |F| + O(n
2
).
Démonstration. Pour tout x ∈ V , prenons Cut1,x la coupe N[x], V \N[x] et Cut2,x
la coupe (N(x), V \ N(x)). Pour toute arête optionnelle xy, prenons Cut1,xy (resp.
Cut2,xy, Cut3,xy, Cut4,xy) la coupe (U = N[x] ∪ N[y], V \ U) (resp. (U = N[x] ∪
N(y), V \ U), (U = N(x) ∪ N[y], V \ U), (U = N(x) ∪ N(y), V \ U)). Soit F
0
l’union de F avec toutes les coupes que nous venons de définir pour tout x ∈ V ,
et xy ∈ E ∗
(T). Nous allons démontrer que F
0
est un clique-stable séparateur.
Soit (K, S) une paire d’une clique et d’un stable qui ne s’intersectent pas.
Étendons K et S en ajoutant des sommets jusqu’à avoir une clique maximale
K0
et un stable maximal S
0
. Nous devons traiter trois cas. Ou bien K0
et S
0 ne
s’intersectent pas, dans ce cas il y a une coupe de F qui sépare K0 de S
0
(et donc K
et S). Ou bien K0
et S
0
s’intersectent sur un sommet x, dans ce cas si x ∈ K, alors
Cut1,x sépare K de S, sinon Cut2,x les sépare. Ou bien K0
et S
0
s’intersectent sur
une arête optionnelle xy (en effet une clique et un stable ne peuvent s’intersecter
que sur au plus un sommet ou une arête optionnelle). Dans ce cas, par le même
argument que pour le cas précédent, suivant l’intersection entre {x, y} et K0 une
des coupes Cut1,xy,. . ., Cut4,xy sépare la clique K du stable S.
En particulier, si T a au plus O(n
c
) cliques maximales (ou stables maximaux)
pour une constante c ≥ 2, alors il existe un clique-stable séparateur de taille
O(n
c
). (Il suffit de séparer toutes les cliques maximales puis d’appliquer le lemme
précédent).
524.1. CLIQUE-STABLE SÉPARATEUR DANS LES TRIGRAPHES DE BERGE
APPRIVOISÉS
Nous prouvons maintenant que les trigraphes de Berge apprivoisés admettent
un clique-stable séparateur de taille quadratique. Commençons par traiter le cas
des trigraphes basiques.
Lemme 4.3. Il existe une constante c, telle que tout trigraphe basique admet
un clique-stable séparateur de taille cn˙
2
.
Démonstration. Puisque le problème est auto-complémentaire, nous traitons uniquement
le cas des trigraphes bipartis, des line trigraphes et des trigraphes doublés.
Une clique dans un trigraphe biparti est une arête forte, une arête optionnelle ou
un sommet, il y a donc un nombre quadratique de cliques. Si T est un line trigraphe,
alors sa réalisation complète est le line graphe d’un graphe biparti G et
donc T a au plus un nombre linéaire de cliques car chaque clique correspond à un
sommet de G. Grâce au lemme 4.2, les line trigraphes admettent un clique-stable
séparateur de taille quadratique.
Si T est un trigraphe doublé, alors soit (X, Y ) une bonne partition de T.
Ajoutons à la coupe (Y, X) les coupes suivantes : pour tout Z = {x} avec x ∈ X
ou Z = ∅, et pour tout Z
0 = {y} avec y ∈ Y ou Z
0 = ∅, prenons la coupe (Y ∪ Z \
Z
0
, X ∪ Z
0 \ Z) et pour toute paire x, y ∈ V , prenons la coupe ({x, y}, V \ {x, y}),
et (V \ {x, y}, {x, y}). Ces coupes forment un clique-stable séparateur : soit K
une clique et S un stable de T qui ne s’intersectent pas, alors |K ∩ X| ≤ 2 et
|S ∩ Y | ≤ 2. Si |K ∩ X| = 2 (resp. |S ∩ Y |=2) alors K (resp. S) est seulement une
arête (resp. une antiarête), car par définition, les sommets de K ∩ X n’ont pas de
voisin commun avec Y . Donc la coupe (K, V \ K) (resp. V \ S, S) sépare K et S.
Sinon, |K∩X| ≤ 1 et |S∩Y | ≤ 1 et alors (Y ∪(K∩X)\(S∩Y ), X∪(S∩Y )\(K∩X))
sépare K et S.
Nous pouvons maintenant traiter le cas des 2-joints dans les trigraphes et montrer
comment reconstruire un clique-stable séparateur à partir des clique-stable
séparateurs des blocs de décompositions.
Lemme 4.4. Soit T un trigraphe qui admet un 2-joint propre (X1, X2). Si
les blocs de décomposition TX1
et TX2 admettent des clique-stable séparateurs
de taille respectivement k1 et k2, alors T admet un clique-stable séparateur de
taille k1 + k2.
Démonstration. Soit (A1, B1, C1, A2, B2, C2) une affectation de (X1, X2), TXi
(i =
1, 2) les blocs de décomposition avec les sommets marqués ai
, bi et potentiellement
53CHAPITRE 4. CLIQUE-STABLE SÉPARATEUR
ci suivant la parité du 2-joint. Remarquons que nous n’avons pas besoin de distinguer
le cas du 2-joint pair de celui du 2-joint impair car ci ne joue aucun rôle. Soit
F1 un clique-stable séparateur de TX1 de taille k1 et F2 un clique-stable séparateur
de TX2 de taille k2. Construisons F un clique-stable séparateur de T. Pour chaque
coupe (U, W) ∈ F1, construisons la coupe ((U ∩ X1) ∪ U
0
,(W ∩ X1) ∪ W0 ∪ C2)
avec U
0 ∪ W0 = A2 ∪ B2 et A2 ⊆ U
0
(resp. B2 ⊆ U
0
) si a2 ∈ U (resp. b2 ∈ U),
et A2 ⊆ W0
(resp. B2 ⊆ W0
) sinon. En d’autres termes, A2 va du même côté de
la coupe que a2, B2 va du même côté que b2 et C2 va toujours du côté du stable.
Pour chaque coupe dans F2, nous faisons la même construction : A1 va du côté de
a1, B1 va du côté de b1 et C1 va du côté du stable.
Montrons maintenant que F est bien un clique-stable séparateur : soit K une
clique et S un stable tels que K et S ne s’intersectent pas. Commençons par
supposer que K ⊆ X1. Soit S
0 = (S ∩ X1) ∪ Sa2,b2 avec Sa1,b2 ⊆ {a2, b2} contient
a2 (resp. b2) si et seulement si S intersecte A2 (resp. B2). S
0
est un stable de TX1
,
donc il y a une coupe de F1 qui sépare K de S
0
. La coupe correspondante dans F
sépare (K, S). Le cas K ⊆ X2 se traite de la même manière.
Supposons alors que K intersecte à la fois X1 et X2. Alors K ∩ C1 = ∅ et
K ⊆ A1 ∪ A2 ou K ⊆ B1 ∪ B2. Supposons sans perte de généralité que K ⊆
A1∪A2. Remarquons que S ne peut intersecter à la fois A1 et A2 qui sont fortement
adjacent. Supposons donc que S n’intersecte pas A2. Soit K0 = (K ∩ A1) ∪ {a2}
et S
0 = (S ∩ X1) ∪ Sb2 avec Sb2 = {b2}, si S intersecte B2, et Sb2 = ∅ sinon. K0
est une clique et S
0
est un stable de TX1
, donc il existe une coupe dans F1 qui les
sépare. La coupe correspondante dans F sépare bien K de S, et donc F est bien
un clique-stable séparateur.
Nous pouvons maintenant démontrer le théorème principal de cette section :
Théorème 4.5. Tout trigraphe de Berge apprivoisé admet un clique-stable
séparateur de taille O(n
2
).
Démonstration. Soit c
0
la constante du lemme 4.3 et c = max(c
0
, 2
24). Nous allons
démontrer par induction que tout trigraphe de T admet un clique-stable séparateur
de taille cn˙
2
. Nous avons deux cas de base, celui des trigraphes basiques, traités
par le lemme 4.3 qui donne un clique-stable séparateur de taille c
0n
2
, et celui des
petits trigraphes, c’est à dire celui des trigraphes d’ordre inférieur à 24. Pour ces
trigraphes on peut simplement prendre tous les sous-ensembles de sommet U et
prendre les coupes (U, V \ U) qui forment trivialement un clique-stable séparateur
de taille au plus 2
24n
2
.
544.2. CLIQUE-STABLE SÉPARATEUR DANS LES CLASSES CLOSES PAR
K-JOINTS
Par conséquent, nous pouvons maintenant supposer que le trigraphe T n’est
pas basique et a au moins 25 sommets. D’après le théorème 2.10, T admet un
2-joint propre (X1, X2) (ou le complément d’un 2-joint propre, mais dans ce cas
comme le problème est auto-complémentaire, donc pouvons le résoudre sur T).
Soit n1 = |X1|, d’après le lemme 2.9 nous pouvons supposer que 4 ≤ n1 ≤ n − 4.
D’après le théorème 2.11, nous pouvons appliquer l’hypothèse d’induction sur les
blocs de décomposition TX1
et TX2 afin d’obtenir un clique-stable séparateur de
taille respectivement au plus k1 = c(n1 + 3)2
et k2 = c(n − n1 + 3)2
. D’après
le lemme 4.4, T admet un clique-stable séparateur de taille k1 + k2. Prouvons
maintenant que k1 + k2 ≤ cn˙
2
.
Soit P(n1) = c(n1 + 3)2 + c(n − n1 + 3)2 − cn˙
2
. P est un polynôme de degré
2 de coefficient dominant 2c > 0. De plus P(4) = P(n − 4) = −2c(n − 25) ≤ 0
donc par convexité de P, P(n1) ≤ 0 pour tout 4 ≤ n1 ≤ n − 4, ce qui termine la
démonstration.
4.2 Clique-stable séparateur dans les classes
closes par k-joints
Comme dans le chapitre 3 voyons maintenant comment étendre le résultat sur
l’existence de clique-stable séparateurs de taille polynomial dans les classes de
trigraphes closes par k-joints généralisés. Nous rappelons que nous partons d’une
classe de graphes C héréditaire ayant la propriété de la clique stable séparation.
Nous allons alors construire une classe de trigraphes C
≤k à partir de ces graphes,
puis nous prenons la clôture C
≤k de cette classe par k-joints généralisés. Nous
rappelons que toutes les définitions sont dans la section 3.2 du chapitre 3.
Les remarques du chapitre précédent restent vraies : même si le théorème 2.10
montre que dans un certain sens les trigraphes de Berge apprivoisés sont la clô-
ture par 2-joints et complémentaire de 2-joints des trigraphes basiques, prendre la
clôture par k-joints généralisés des trigraphes basiques avec k = 2 ne donne pas
la classe des trigraphes de Berge apprivoisés. En effet certains graphes de cette
clôture ont des skew-partitions équilibrées. De plus les constantes obtenues dans
le cas des k-joints généralisés sont moins bonnes que celles obtenues directement
sur les trigraphes de Berge apprivoisés.
Dans un premier temps montrons que la transformation des graphes en trigraphes
(de la classe C à la classe C
≤k
), préserve la propriété de la clique-stable
séparation. L’explosion de la taille du clique-stable séparateur est due au fait que
55CHAPITRE 4. CLIQUE-STABLE SÉPARATEUR
dans un trigraphe T, une clique (et de même pour un stable) contenant k arêtes
optionnelles devient une union d’au plus k cliques dans les réalisations de T.
Lemme 4.6. Si chaque graphe G de C admet un clique-stable séparateur de
taille m, alors chaque trigraphe T de C
≤k admet un clique-stable séparateur de
taille mk
2
.
Démonstration. Commençons par démontrer que s’il existe un clique-stable séparateur
F de taille m alors F
0 = {(∩
k
i=1Ui
, ∪
k
i=1Wi)|(U1, W1). . .(Uk, Wk) ∈ F} est
une famille de coupes de taille mk qui sépare chaque clique de chaque union d’au
plus k stables. En effet, si K est une clique et S1 . . . Sk sont k stables, tels qu’ils
n’intersectent pas K, alors il existe dans F k partitions (U1, W1). . .(Uk, Wk) telles
que (Ui
, Wi) sépare K et Si
. Maintenant (∩
k
i=1Ui
, ∪
k
i=1Wi) est une partition qui
sépare K de ∪
k
i=1Si
. Avec le même argument, on peut construire une famille F
00
de coupes de taille mk
2
qui sépare chaque union d’au plus k cliques d’union d’au
plus k stables. Maintenant soit T un trigraphe de C
≤k
et soit G ∈ C, tel que G est
une réalisation de T. Remarquons qu’une clique K (resp. un stable S) dans T est
une union d’au plus k cliques (resp. stables) dans G. Par exemple on peut voir que
Σ(T) ∩ K (resp. Σ(T) ∩ S) est k-coloriable et chaque classe de couleur correspond
à une clique (resp. un stable) dans G. Alors il existe un clique-stable séparateur
de T de taille mk
2
.
Nous pouvons maintenant montrer que le k-joint généralisé de deux trigraphes
préserve la propriété de clique-stable séparation. En fait vu la structure assez forte
du k-joint généralisé, les cliques traversantes (qui ont des sommets des deux côtés
du k-joint généralisé) sont très contraintes. On peut donc presque prendre l’union
des clique-stable séparateurs des deux trigraphes dont on est en train de prendre
le k-joint généralisé.
Lemme 4.7. Si T1 et T2 ∈ C
≤k admettent des clique-stable séparateurs de
taille respectivement m1 et m2, alors le k-joint généralisé T de T1 et T2 admet
un clique-stable séparateur de taille m1 + m2.
Démonstration. La preuve est similaire à celle faite pour le lemme 4.4. On suit les
notations introduites dans les définitions du k-joint généralisé. Soit F1 (resp, F2) un
clique-stable séparateur de taille m1 (resp. m2) sur T1 (resp. T2). Construisons F
un clique-stable séparateur de T. Pour chaque coupe (U, W) dans F1, construisons
la coupe (U
0
, W0
) suivant ces deux règles : pour tout a ∈ ∪r
j=0Aj (resp. b ∈ Bi),
564.2. CLIQUE-STABLE SÉPARATEUR DANS LES CLASSES CLOSES PAR
K-JOINTS
a ∈ U
0
(resp. b ∈ U
0
) si et seulement si a ∈ U (resp. bi ∈ U). En d’autres termes,
on prend une coupe similaire à (U, W) en mettant Bi du même côté que bi
. On
fait l’opération symétrique pour chaque coupe (U, W) dans F2 en mettant Aj du
même côté que aj
.
F est bien un clique-stable séparateur : soit K une clique et S un stable
qui ne s’intersectent pas. Supposons pour commencer qu’un côté de la partition
(A1, . . . , Ar, B1, . . . , Bs) intersecte à la fois K et S. Quitte à échanger T1 et T2
et à renuméroter les Aj
, on peut supposer que A1 ∩ K 6= ∅ et A1 ∩ S 6= ∅.
Puisque pour tout i, A1 est ou bien fortement complet ou bien fortement anticomplet
à Bi
, Bi ne peut intersecter à la fois K et S. Considérons dans T1 la
paire (K0 = (K ∩ V (T)) ∪ Kb, S0 = (S ∩ V (T)) ∪ Sb) avec Kb = {bi
|K ∩ Bi 6= ∅}
et Sb = {bi
|S ∩ Bi 6= ∅}. K0
est une clique dans T1, S
0
est un stable dans T1.
Comme ils ne s’intersectent pas, il y a une coupe les séparant dans F1. La coupe
correspondante dans F sépare K et S.
L’autre cas est celui ou aucune partie de la partition n’intersecte à la fois K
et S. Alors pour tout i, Bi n’intersectent pas non plus à la fois la clique K et le
stable S : le même argument que ci-dessus s’applique encore.
Nous pouvons maintenant démontrer le théorème principal de cette section.
Théorème 4.8. Si tout graphe de C admet un clique-stable séparateur de
taille O(n
c
), alors tout trigraphe de C
≤k admet un clique-stable séparateur de
taille O(n
k
2
c
). En particulier, toute réalisation d’un trigraphe de C
≤k admet
un clique-stable séparateur de taille O(n
k
2
c
).
Démonstration. On prouve par induction qu’il existe un clique-stable séparateur
de taille pnk
2
c avec p = max(p
0
, 2
p0 ) où p
0
est la constante du O de la taille du
clique-stable séparateur des graphes de C et p0 est une constante définie dans la
suite. Le cas de base comporte deux cas : les trigraphes de C
≤k
, pour lesquels la
propriété est vérifiée d’après le lemme 4.6 et les trigraphes d’ordre au plus p0. Pour
ces derniers, on peut considérer tous les sous-ensembles U de sommets et prendre
les coupes (U, V \ U) qui forment un clique-stable séparateur trivial de taille au
plus 2
p0 n
k
2
c
.
Par conséquent, on peut supposer que T est le k-joint généralisé de T1 et T2 et
qu’il a au moins p0 sommets. Soit n1 = |T1| et n2 = |T2| avec n1 + n2 = n + r + s
et r + s + 1 ≤ n1, n2, ≤ n − 1. Par induction, il existe un clique-stable séparateur
de taille pnk
2
c
1
sur T1 et un de taille pnk
2
c
2
sur T2. D’après le lemme 4.7, il existe
57CHAPITRE 4. CLIQUE-STABLE SÉPARATEUR
un clique-stable séparateur sur T de taille pnk
2
c
1 + pnk
2
c
2
. On veut démontrer que
pnk
2
c
1 + pnk
2
c
2 ≤ pnk
2
c
.
Remarquons que n1+n2 = n−1+r+s+1 donc par convexité de x 7→ x
c
sur R
+,
n
k
2
c
1 +n
k
2
c
2 ≤ (n−1)k
2
c+ (r+s+1)k
2
c
. De plus, r+s+1 ≤ 2k+1. Définissons alors
p0 suffisamment grand pour que pour tout n ≥ p0, n
k
2
c − (n − 1)k
2
c ≥ (2k + 1)k
2
c
.
Alors n
k
2
c
1 + n
k
2
c
2 ≤ n
k
2
c
, ce qui conclut la démonstration.
Dans ce chapitre également les résultats sortent du cadre des graphes de Berge
apprivoisés pour s’étendre aux graphes clos par k-joint. Le point clé est de remarquer
que les cliques ne peuvent pas vraiment traverser un k-joint. Le seul cas
possible de traversée est entre deux ensembles complets du k-joint, mais dans ce
cas comme les ensembles sont complets, le stable ne peut pas lui aussi intersecter
ces deux ensembles.
58Chapitre 5
Calcul du stable maximum
Les résultats de ce chapitre ont été obtenus avec Maria Chudnovsky, Nicolas Trotignon
et Kristina Vušković, ils font l’objet d’un article [15] soumis à Journal of
Combinatorial Theory, Series B.
Nous allons dans ce chapitre montrer comment calculer en temps polynomial
la taille du stable maximum dans les graphes de Berge apprivoisés. En toute rigueur
ce problème est déjà résolu dans les graphes parfaits et donc a fortiori dans
les graphes de Berge apprivoisés. Cependant la démonstration, due à Grötschel,
Lovász et Schrijver [33] n’utilise pas du tout la structure (au sens du théorème de
décomposition) des graphes parfaits (qui lui est postérieur) mais utilise principalement
l’égalité entre les nombre chromatique χ et la taille d’une clique maximumω.
En effet Lovász [29] introduit une quantité ϑ, résultat d’un problème d’optimisation
convexe. Dans les graphes cette quantité vérifie l’inégalité α ≤ ϑ ≤ χ (χ est la
taille d’une couverture par clique minimale). Dans les graphes parfaits, ϑ est donc
égal à α la taille maximum d’un stable. Grâce à la méthode de l’ellipsoïde inventée
par Grötschel, Lovász et Schrijver [23], il est alors possible de calculer α en temps
polynomial. L’intérêt de notre résultat est qu’il est complétement combinatoire. À
partir de ce résultat il est possible de colorier les graphes de Berge apprivoisés avec
un surcout de O(n
2
) en utilisant la démonstration classique de Grötschel, Lovász
et Schrijver [33]. Comme dans les chapitres précédents nous allons décomposer le
graphe grâce au théorème 2.10, et faire une induction. Malheureusement contrairement
aux chapitres précédents notre méthode n’est pas générale vis à vis des
2-joints et donc ne se généralise pas aux classes closes par k-joints généralisées.
59CHAPITRE 5. CALCUL DU STABLE MAXIMUM
En effet la structure des stables dépend de la parité du 2-joint (voir surtout le
lemme 5.3 et le lemme 5.4).
Afin de pouvoir faire l’induction nous avons besoin de travailler avec des trigraphes
pondérés. Donc dans la suite de ce chapitre, le terme “trigraphe” signifie
un trigraphe avec des poids sur ses sommets. Les poids sont des nombres de K
avec K ou bien l’ensemble R+ des réels strictement positifs ou bien N+ l’ensemble
des entiers strictement positifs. Les théorèmes sont vrais pour K = R+ mais les
algorithmes sont implémentés avec K = N+. On voit un trigraphe sans poids sur
ses sommets comme un trigraphe pondéré avec tous ses poids égaux à 1. Remarquons
qu’un ensemble de sommets dans un trigraphe T est un stable fort, si et
seulement si c’est un stable dans la réalisation complète de T.
5.1 Le cas des trigraphes basiques
Commençons par montrer que nous pouvons reconnaître les classes basiques et
calculer un stable pondéré maximum dans ces classes.
Théorème 5.1. Il existe un algorithme en temps O(n
4
) dont l’entrée est un
trigraphe et dont la sortie est ou bien “T n’est pas basique”, ou bien le nom de
la classe de base de T et le poids maximum d’un stable fort de T.
Démonstration. Pour toute classe de trigraphe basique, nous fournissons un algorithme
en temps O(n
4
) qui décide si le trigraphe appartient à la classe et si c’est
le cas, calcule le poids maximum d’un stable fort.
Pour les trigraphes bipartis, on construit la réalisation complète G de T. Il
est immédiat de voir que T est biparti si et seulement si G l’est. On peut donc
reconnaitre un trigraphe biparti en temps linéaire en utilisant un parcours. Si T
est biparti, un stable maximum de G est exactement un stable fort maximum de
T, et on peut le calculer en temps O(n
3
) voir [33].
Pour les compléments de trigraphes bipartis, nous procédons de manière analogue
: nous commençons par prendre le complément T de notre trigraphe T, et
nous reconnaissons si la réalisation complète de T est un graphe biparti. Nous
calculons ensuite le poids maximum d’une clique de GT
∅
. Toutes ces opérations
peuvent clairement se faire en temps O(n
2
).
Pour les line trigraphes, nous calculons la réalisation complète G et testons si
G est un line graphe d’un graphe biparti par un algorithme classique comme [27]
ou [32]. Notons que ces algorithmes fournissent également le graphe R tel que
605.1. LE CAS DES TRIGRAPHES BASIQUES
G = L(R). En temps O(n
3
) nous pouvons vérifier que les cliques de taille au
moins 3 dans T sont bien des cliques fortes. On peut donc reconnaitre si T est un
line trigraphe en temps O(n
3
). Si c’est le cas, un stable maximum dans G peut être
calculer en temps O(n
3
) en calculant un couplage de poids maximum (voir [33])
dans le graphe biparti R tel que G = L(R).
Pour les compléments de line trigraphes, nous procédons de manière similaire
pour la reconnaissance en prenant la réalisation complète de T. Et le calcul du
poids maximum d’un stable fort est simple : nous calculons la réalisation complète
G de T, nous calculons ensuite le graphe biparti R tel que G = L(R) (il existe car
d’après le lemme 2.1, les line trigraphes sont clos par réalisation) et nous calculons
un stable de poids maximum de G (un tel stable est un ensemble maximal d’arête
de R toutes deux à deux adjacentes, et il y a un nombre linéaire de tels ensembles).
C’est alors un stable fort de poids maximum dans T.
Pour les trigraphes doublés, nous ne pouvons pas utiliser de résultats classiques.
Pour la reconnaissance, nous pourrions utiliser la liste des graphes non doublés minimaux
décrite dans [2]. Cette liste de 44 graphes sur au plus 9 sommets donne un
algorithme de reconnaissance en temps O(n
9
). Plus récemment Maffray à donné
un algorithme linéaire [31] pour la reconnaissance des graphes doublés. Malheureusement
ce résultat ne semble pas se généraliser directement aux trigraphes. Nous
proposons ici un algorithme en O(n
4
) qui fonctionne également sur des trigraphes.
Si une partition (X, Y ) des sommets d’un trigraphe est donné, on peut décider si
c’est une bonne partition, par une génération exhaustive qui vérifie tous les points
de la définition en temps O(n
2
). Et si une arête ab de T|X est donnée, il est facile
de reconstruire la bonne partition : tous les sommets fortement antiadjacents aux
sommets a et b sont dans X et tous les sommets fortement adjacents à au moins a
ou b sont dans Y . Donc en testant toutes les arêtes uv, on peut prédire laquelle est
dans T|X, puis reconstruire (X, Y ) et donc décider en temps O(n
4
) si le trigraphe
T a une bonne partition (X, Y ), telle que X contient au moins une arête. De
la même manière on peut tester si le trigraphe T a une bonne partition (X, Y ),
telle que Y contient au moins une antiarête. Reste le cas de la reconnaissance
des trigraphes doublés, tels que toute bonne partition est composée d’une clique
forte et d’un stable fort. Dans ce cas le trigraphe est en fait un graphe, et ce type
de graphe est connu comme un split graphe. Ils peuvent être reconnus en temps
linéaire, voir [25] où il est prouvé qu’en regardant les degrés on peut facilement
trouver une partition en clique et stable si une telle partition existe.
Maintenant que nous savons reconnaitre si le trigraphe T est un trigraphe
doublé, regardons comment calculer le poids maximum d’un stable fort de T.
61CHAPITRE 5. CALCUL DU STABLE MAXIMUM
Calculons la réalisation complète G de T. D’après 2.2, G est un graphe doublé,
et en fait (X, Y ) est une bonne partition pour G. Nous calculons alors un stable
pondéré maximum dans G|X (qui est biparti), dans G|Y (dont le complément est
biparti), et tous les stables formés d’un sommet de Y et de ses non-voisins dans
X. Un de ces stables est de poids maximum dans G et donc est un stable fort de
poids maximum dans T.
5.2 Stocker α dans les blocs
Dans cette section, nous définissons plusieurs blocs de décomposition qui vont
nous permettre de calculer le stable de poids maximum. Nous notons α(T) le poids
maximum d’un stable fort de T.
Dans la suite, T est un trigraphe de Berge apprivoisé, X est un fragment de T
et Y = V (T) \ X (donc Y est aussi un fragment de T). Pour calculer α(T), il n’est
pas suffisant de considérer les blocs TX et TY (comme défini dans le chapitre 2)
séparément. Nous devons élargir les blocs afin d’encoder l’information de l’autre
bloc. Dans cette section nous définissons quatre gadgets différents, TY,1, . . ., TY,4
et pour i = 1, . . . , 4, nous prouvons que α(T) peut être calculé à partir de α(TYi
).
Nous définissons parfois plusieurs gadgets pour la même situation. En effet, dans la
section 5.3 (notamment pour démontrer le lemme 5.9), nous avons besoin que nos
gadgets préservent les classes de base, et suivant ces classes de base nous utilisons
différents gadgets. Les gadgets que nous allons définir ne préservent pas la classe
(certains introduisent des skew-partitions équilibrées). Ce n’est pas un problème
dans cette section, mais il faudra y prendre garde dans la section suivante.
Dans [37], un résultat de NP-complétude est prouvé, qui suggère que les 2-
joints ne sont sans doute pas un outil utile pour calculer des stables maximum. En
effet Trotignon et Vušković exhibent une classe de graphes C avec une théorème de
décomposition du type : tout graphe de C est ou bien un line graphe, ou bien un
graphe biparti ou bien admet un 2-joint. Cependant le calcul du stable maximum
dans la classe C est NP=complet. Il semble donc que pour pouvoir utiliser les 2-
joints, nous devons vraiment utiliser le fait que nos trigraphes sont de Berge. Ceci
est fait en prouvant plusieurs inégalités.
Si (X, Y ) est un 2-joint de T alors soit X1 = X, X2 = Y et soit (A1, B1, C1,
A2, B2, C2) une affectation de (X1, X2). Nous définissons αAC = α(T|(A1 ∪ C1)),
αBC = α(T|(B1 ∪ C1)), αC = α(T|C1) et αX = α(T|X1). Soit w la fonction de
poids sur V (T), w(H) est la somme des poids sur les sommets de H.
625.2. STOCKER α DANS LES BLOCS
Lemme 5.2. Soit S un stable fort de poids maximum de T. Alors exactement
un des points suivants est vérifié :
1. S∩A1 6= ∅, S∩B1 = ∅, S∩X1 est un stable fort maximum de T|(A1∪C1)
et w(S ∩ X1) = αAC ;
2. S∩A1 = ∅, S∩B1 6= ∅, S∩X1 est un stable fort maximum de T|(B1∪C1)
et w(S ∩ X1) = αBC ;
3. S ∩ A1 = ∅, S ∩ B1 = ∅, S ∩ X1 est un stable fort maximum de T|C1 et
w(S ∩ X1) = αC ;
4. S ∩ A1 6= ∅, S ∩ B1 6= ∅, S ∩ X1 est un stable fort maximum de T|X1 et
w(S ∩ X1) = αX.
Démonstration. Directe depuis la définition d’un 2-joint.
Nous avons besoin de plusieurs inégalités à propos des intersections entre les
stables forts et les 2-joints. Ces lemmes sont prouvés dans [37] pour les graphes.
Les démonstrations sont similaires pour les trigraphes mais comme ce sont ces
inégalités qui nous permettent d’utiliser le fait que les trigraphes sont de Berge
nous les incluons ici.
Lemme 5.3. 0 ≤ αC ≤ αAC, αBC ≤ αX ≤ αAC + αBC.
Démonstration. Les inégalités 0 ≤ αC ≤ αAC, αBC ≤ αX sont trivialement vraies.
Soit D un stable fort pondéré de poids maximum de T|X1. Nous avons :
αX = w(D) = w(D ∩ A1) + w(D ∩ (C1 ∪ B1)) ≤ αAC + αBC.
Lemme 5.4. Si (X1, X2) est un 2-joint impair de T, alors αC + αX ≤ αAC +
αBC.
Démonstration. Soit D un stable fort de T|X1 de poids αX et C un stable fort
de T|C1 de poids αC. Dans le trigraphe biparti T|(C ∪ D), on note par YA (resp.
YB) l’ensemble des sommets de C ∪ D pour lesquels il existe un chemin dans
T|(C ∪ D) les reliant à des sommets de D ∩ A1 (resp. D ∩ B1). Remarquons que
par définition, D ∩ A1 ⊆ YA, D ∩ B1 ⊆ YB et il n’y a pas d’arêtes entre YA ∪ YB et
(C ∪ D) \ (YA ∪YB). Montrons que YA ∩YB = ∅, et YA est fortement complet à YB.
63CHAPITRE 5. CALCUL DU STABLE MAXIMUM
Supposons le contraire, alors il existe un chemin P dans T|(C ∪ D) d’un sommet
de D ∩ A1 à un sommet de D ∩ B1. On peut supposer que P est minimal vis à vis
de cette propriété, et donc que l’intérieur de P est dans C1 ; Par conséquent, P est
de longueur paire car T|(C ∪ D) est biparti. Ceci contredit l’hypothèse sur le fait
que (X1, X2) était impair. Nous définissons alors :
— ZA = (D ∩ YA) ∪ (C ∩ YB) ∪ (C \ (YA ∪ YB));
— ZB = (D ∩ YB) ∪ (C ∩ YA) ∪ (D \ (YA ∪ YB).
Des définitions et des propriétés ci-dessus, ZA et ZB sont des stables forts et
ZA ⊆ A1∪C1 et ZB ⊆ B1∪C1. Donc, αC +αX = w(ZA)+w(ZB) ≤ αAC +αBC.
Lemme 5.5. Si (X1, X2) est un 2-joint pair de T, alors αAC +αBC ≤ αC +αX.
Démonstration. Soit A un stable fort de T|(A1 ∪ C1) de poids αAC et B un stable
fort de T|(B1 ∪ C1) de poids αBC. Dans le trigraphe biparti T|(A ∪ B), on note
YA (resp. YB) l’ensemble des sommets de A ∪ B pour lesquels il existe un chemin
P dans T|(A ∪ B) les reliant à un sommet de A ∩ A1 (resp. B ∩ B1). Remarquons
que d’après les définitions, A ∩ A1 ⊆ YA, B ∩ B1 ⊆ YB, et YA ∪ YB est fortement
anticomplet à (A ∪ B) \ (YA ∪ YB). Nous allons montrer que YA ∩ YB = ∅ et Y
est fortement anticomplet à YB. Supposons que ce ne soit pas le cas, alors il existe
un chemin P dans T|(A ∪ B) d’un sommet de A ∩ A1 à un sommet de B ∩ B1.
On peut supposer que P est minimal vis à vis de cette propriété, et donc que son
intérieur est dans C1 ; par conséquent, il est de longueur impaire car T|(A ∪ B)
est biparti. Ceci contredit l’hypothèse sur le fait que (X1, X2) était pair. Nous
définissons alors :
— ZD = (A ∩ YA) ∪ (B ∩ YB) ∪ (A \ (YA ∪ YB));
— ZC = (A ∩ YB) ∪ (B ∩ YA) ∪ (B \ (YA ∪ YB)).
À partir des définitions et des propriétés ci-dessus, ZD et ZC sont des stables
forts et ZD ⊆ X1 et ZC ⊆ C1. Donc, αAC +αBC = w(ZC)+w(ZD) ≤ αC +αX.
Nous pouvons maintenant construire nos gadgets.
Si (X, Y ) est un complément de 2-joint propre de T, alors soit X1 = X, X2 = Y
et (A1, B1, C1, A2, B2, C2) une affectation de(X1, X2). Nous construisons le gadget
TY,1 comme suit. Nous partons de T|Y et nous ajoutons deux nouveaux sommets
marqués a, b, tels que a est fortement complet à B2 ∪ C2, b est fortement complet
à A2 ∪ C2 et ab est une arête forte. Nous donnons les poids αA = α(T|A1) et
αB = α(T|B1) respectivement aux sommets a et b. Nous notons αX = α(T|X).
645.2. STOCKER α DANS LES BLOCS
Lemme 5.6. Si (X, Y ) est un complément de 2-joint propre de T, alors TY,1
est de Berge et α(T) = max(α(TY,1), αX).
Démonstration. Puisque TY,1 est une semiréalisation d’un sous-trigraphe induit du
bloc TY , comme défini dans le chapitre 2, il est clairement de Berge d’après 2.11.
Soit Z un stable fort pondéré de poids maximum dans T. Si Z ∩ X1 = ∅, alors
Z est aussi un stable fort dans TY,1, donc α(T) ≤ α(TY,1) ≤ max(α(TY,1), αX). Si
Z ∩ A1 6= ∅ et Z ∩ (B1 ∪ C1) = ∅, alors {a1} ∪ (Z ∩ X2) est un stable fort dans
TY,1 de poids α(T), donc α(T) ≤ α(TY,1) ≤ max(α(TY,1), αX). Si Z ∩ B1 6= ∅ et
Z ∩(A1 ∪ C1) = ∅, alors {b1} ∪(Z ∩ X2) est un stable fort dans TY,1 de poids α(T),
donc α(T) ≤ α(TY,1) ≤ max(α(TY,1), αX). Si Z∩(A1∪C1) 6= ∅ et Z∩(B1∪C1) 6= ∅,
alors α(T) = αX, donc α(T) ≤ max(α(TY,1), αX). Dans tous les cas nous avons
prouvé que α(T) ≤ max(α(TY,1), αX).
Réciproquement, soit α = max(α(TY,1), αX). Si α = αX, alors en considérant
n’importe quel stable fort de T|X1, nous voyons que α = αX ≤ α(T). Nous
pouvons donc supposer que α = α(TY,1) et soit Z un stable fort pondéré de poids
maximum dans TY,1. Si a /∈ Z et b /∈ Z, alors Z est aussi un stable fort dans T,
donc α ≤ α(T). Si a ∈ Z et b /∈ Z, alors Z
0 ∪ Z \ {a}, où Z
0
est un stable fort
pondéré de poids maximum dans T|A1, est aussi un stable fort dans T de même
poids que Z, donc α ≤ α(T). Si a /∈ Z et b ∈ Z, alors Z
0 ∪Z \ {b} quand Z
0
est un
stable de poids maximum dans T|B1 est aussi un stable fort dans T de même poids
que Z, donc α ≤ α(T). Dans tous les cas, nous avons prouvé que α ≤ α(T).
Si (X1, X2) est un 2-joint propre impair de T, alors nous construisons le gadget
TY,2 comme suit. Nous commençons avec T|Y . Nous ajoutons ensuite quatre
nouveaux sommets marqués a, a
0
, b, b
0
, tels que a et a
0
soient fortement complets à
A2, b et b
0
soient fortement complets à B2, et ab est une arête forte. Nous donnons
les poids αAC + αBC − αC − αX, αX − αBC, αAC + αBC − αC − αX et αX − αAC
à respectivement a, a
0
, b et b
0
. Remarquons que d’après 5.3 et 5.4, tous les poids
sont positifs.
Nous définissons un autre gadget de décomposition TY,3 pour la même situation,
de la manière suivante. Nous commençons avec T|Y . Nous ajoutons ensuite trois
nouveaux sommets marqués a, a
0
, b, tels que a et a
0
sont fortement complets à A2,
b est fortement complets à B2, et a
0a et ab sont des arêtes fortes. Nous donnons les
poids αAC − αC, αX − αBC et αBC − αC à respectivement a, a
0
et b. Remarquons
que d’après 5.3, tous les poids sont positifs.
65CHAPITRE 5. CALCUL DU STABLE MAXIMUM
Lemme 5.7. Si (X, Y ) est un 2-joint propre de T, alors TY,2 et TY,3 sont de
Berge, et α(T) = α(TY,2) + αC = α(TY,3) + αC.
Démonstration. Supposons que TY,2 contienne un trou impair H. Puisqu’un trou
impair n’a pas de sommet fortement dominant, il contient au plus un sommet
parmi a, a0
et au plus un sommet parmi b, b0
. Donc H est un trou impair d’une
semiréalisation du bloc TY (comme défini dans le chapitre 2). Ceci contredit 2.11.
De la même manière, TY,2 ne contient pas d’antitrou impair, et est donc de Berge.
La démonstration que TY,3 est de Berge est similaire.
Soit Z un stable fort dans T de poids α(T). Nous construisons un stable fort
dans TY,2 en ajoutant à Z ∩ X2 un des ensembles suivants (en fonction de la
conclusion du lemme 5.2) : {a, a0}, {b, b0}, ∅, ou {a, a0
, b0}. Dans chaque cas, nous
obtenons un stable fort de TY,2 de poids α(T) − αC. Ce qui prouve que α(T) ≤
α(TY,2) + αC.
Réciproquement, soit Z un stable dans TY,2 de poids α(TY,2). On peut supposer
que Z ∩ {a, a0
, b, b0} est un des ensembles {a, a0}, {b, b0}, ∅, ou {a, a0
, b0}, et suivant
chacun de ces cas, on construit un stable fort de T en ajoutant à Z ∩ X2 un stable
fort pondéré de poids maximum d’un des trigraphes suivants : T|(A1∪C1), T|(B1∪
C1), T|C1, ou T|X1. Nous obtenons un stable fort dans T de poids α(TY,2) + αC,
prouvant que α(TY,2) + αC ≤ α(T). Ceci complète la démonstration pour TY,2.
Prouvons maintenant l’égalité pour TY,3. Soit Z un stable fort dans T de poids
α(T). Nous construisons un stable fort dans TY,3 en ajoutant à Z ∩ X2 un des
ensembles suivants (en fonction de la conclusion du lemme 5.2) : {a}, {b}, ∅, or
{a
0
, b}. Dans chaque cas, nous obtenons un stable fort de TY,3 de poids α(T) − αC.
Ceci prouve que α(T) ≤ α(TY,3) + αC.
Réciproquement, soit Z un stable de TY,3 de poids α(TY,3). D’après 5.4, αAC −
αC ≥ αX − αBC, on peut donc supposer que Z ∩ {a, a0
, b} est un des ensembles
{a}, {b}, ∅, ou {a
0
, b}, et suivant chacun, nous construisons un stable fort de T en
ajoutant à Z ∩ X2 un stable fort pondéré de poids maximum d’un des trigraphes
suivants : T|(A1 ∪ C1), T|(B1 ∪ C1), T|C1, ou T|X1. Nous obtenons alors un stable
fort dans T de poids α(TY,3) + αC, ce qui prouve que α(TY,3) + αC ≤ α(T). Ceci
termine la démonstration pour TY,3.
Si (X1, X2) est un 2-joint propre pair de T et X = X1, Y = X2, alors soit
(A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Nous construisons le gadget
TY,4 comme suit. Nous partons que T|Y . Nous ajoutons ensuite trois nouveaux
sommets marqués a, b, c, tels que a est fortement complet à A2, b est fortement
665.3. CALCULER α
complet à B2, et c est fortement adjacent aux sommets a et b et n’a aucun autre
voisin. Nous donnons les poids αX − αBC, αX − αAC, et αX + αC − αAC − αBC à
respectivement a, b et c. Remarquons que d’après 5.3 et 5.5, ces poids sont positifs.
Lemme 5.8. Si (X, Y ) est un 2-joint propre pair de T, alors TY,4 est de Berge
et α(T) = α(TY,4) + αAC + αBC − αX.
Démonstration. Clairement, TY,4 est de Berge, car c’est la semiréalisation du bloc
TY comme défini dans le chapitre 2, qui est de Berge d’après 2.11.
Soit Z un stable fort dans T de poids α(T). Nous construisons un stable fort
dans TY,4 en ajoutant à Z ∩ X2 un des ensembles suivant (suivant la conclusion
de 5.2) : {a}, {b}, {c}, ou {a, b}. Dans chaque cas, nous obtenons un stable fort
de TY,4 de poids α(T) − (αAC + αBC − αX). ce qui prouve que α(T) ≤ α(TY,4) +
αAC + αBC − αX.
Réciproquement, soit Z un stable fort dans TY,4 de poids α(TY,4). On peut
supposer que Z ∩ {a, b, c} est un des ensembles {a}, {b}, {c}, ou {a, b}, et suivant
ces cas, nous construisons un stable fort de T en ajoutant à Z ∩ X2 un stable fort
pondéré de poids maximum d’un des trigraphes suivant : T|(A1∪C1), T|(B1∪C1),
T|C1, ou T|X1. Nous obtenons un stable fort de T de poids α(TY,4) +αAC +αBC −
αX, ce qui prouve que α(TY,4) + αAC + αBC − αX ≤ α(T).
5.3 Calculer α
Nous sommes maintenant prêt à décrire notre algorithme de calcul d’un stable
fort pondéré de poids maximal. La difficulté principale est que les blocs de décomposition
définis dans le chapitre 2 doivent être utilisés pour rester dans la classe,
alors que les gadgets définis dans la section 5.2 doivent être utilisés pour calculer α.
Notre idée est de commencer par utiliser les blocs de décomposition dans un premier
temps, puis de les remplacer par les gadgets lors d’une deuxième étape. Pour
transformer un bloc en un gadget (ce que nous appelons réaliser une expansion),
nous devons effacer une composante optionnelle, et la remplacer par un groupe de
sommets de poids bien choisi. Pour cela nous avons besoin de deux informations ;
la première est le type de décomposition utilisé originellement pour créer cette
composante optionnelle, ainsi que les poids associés ; ces informations sont encodées
dans ce que nous appelons un pré-label. La seconde information nécessaire est
le type de la classe basique dans laquelle cette composante optionnelle va finir (car
tous les gadgets ne préservent pas toutes les classes basiques) ; cette information
67CHAPITRE 5. CALCUL DU STABLE MAXIMUM
est encodée dans ce que nous appelons un label. Remarquons que le pré-label est
connu juste après la décomposition du trigraphe, alors que le label n’est connu
qu’après, lorsque le trigraphe est complétement décomposé. Formalisons cela.
Soit S une composante optionnelle d’un trigraphe bigame T. Un pré-label de
S est défini par :
— (“Complément de 2-joint impair”, αA, αB, αX) avec αA, αB et αX des entiers,
si S est une arête optionnelle.
— (“2-joint impair”, αAC, αBC, αC, αX) avec αAC, αBC, αC et αX des entiers,
si S est une arête optionnelle et qu’aucun sommet de T n’est complet à S.
— (“Complément de 2-joint pair”, αA, αB, αX) avec αA, αB et αX des entiers,
si S est un composante lourde.
— (“2-joint pair”, αAC, αBC, αC, αX) avec αAC, αBC, αC et αX des entiers, si
S est une composante légère.
Remarquons que certains types de composantes optionnelles sont “éligibles” à
la fois au premier et au deuxième pré-label.
Un pré-label doit être vu comme “la décomposition à partir de laquelle la
composante optionnelle est construite”. Quand T est un trigraphe et S est un
ensemble des composantes optionnelles de T, une fonction de pré-label pour (T, S)
est une fonction qui associe à chaque S ∈ S un pré-label. Il est important de
remarquer que S est seulement un ensemble de composantes optionnelles, donc
certaines composantes optionnelles peuvent ne pas avoir de pré-label.
Notons que la définition suivante des labels est un peu ambigüe. En effet, lorsqu’on
parle de “la classe basique contenant le trigraphe” il est possible que certains
trigraphes soient contenus dans plusieurs classes basiques. C’est typiquement le cas
des petits trigraphes et des trigraphes complets par exemple. Il est important de
voir que cela n’est pas un problème ; si un trigraphe appartient à plusieurs classes
de base, notre algorithme choisi arbitrairement une de ces classes, et produit un
résultat correct. Pour ne pas compliquer les notations c’est pas n’est pas complétement
formalisé dans notre algorithme. Pour les trigraphes doublés, il y a une autre
ambiguïté. Si T est un trigraphe doublé et (X, Y ) est une bonne partition de T,
une arête optionnelle uv de T est une arête de couplage si u, v ∈ X et une antiarête
de couplage si u, v ∈ Y . Dans certains cas dégénérés, une arête optionnelle
d’un trigraphe doublé peut être à la fois une arête de couplage et une antiarête de
couplage suivant la bonne partition choisie, cependant une fois la bonne partition
choisie il n’y a plus d’ambiguïté. Là encore ce n’est pas un problème : lorsqu’une
arête optionnelle est ambigüe, notre algorithme choisi arbitrairement une bonne
partition.
685.3. CALCULER α
Soit S une arête optionnelle d’un trigraphe bigame. Un label pour S est une
paire L
0 = (L, N), tel que L est un pré-label et N est une des étiquettes suivantes :
“biparti”, “complément de bipartite”, “line”, “complément de line”, “couplage doublé”,
“anticouplage doublé”. On dit que L
0
étend L. l’étiquette ajoutée au pré-label
d’une composante optionnelle S doit être pensée comme “la classe basique dans
laquelle la composante S finit une fois que le trigraphe est complétement décomposé”.
Quand T est un trigraphe et S est un ensemble de composantes optionnelles de
T, une fonction de label pour (T, S) est une fonction qui associe à chaque S ∈ S un
label. Dans ces conditions, on dit que T est étiqueté. Comme pour les pré-labels,
les composantes optionnelles qui ne sont pas dans S ne reçoivent pas de label.
Soit T un trigraphe étiqueté, S un ensemble de composantes optionnelles de T
et L une fonction de label pour (T, S). L’expansion de (T, S,L), est le trigraphe
obtenu à partir de T après avoir effectué pour chaque S ∈ S de label L l’opération
suivante :
1. Si L = ((“Complément de 2-joint impair”, αA, αB, αX), N) pour une étiquette
N (donc S est une arête optionnelle ab) : transformer ab en arête
forte, donner le poids αA au sommet a et le poids αB au sommet b.
2. Si L = ((“2-joint impair”, αAC, αBC, αC, αX), N) pour une étiquette N (donc
S est une arête optionnelle ab) : transformer ab en arête forte et :
— Si N est une des étiquettes suivantes : “biparti”, “complément de line”,
ou “couplage doublé”, alors ajouter un sommet a
0
, un sommet b
0
, rendre a
0
fortement complet à N(a) \ {b}, rendre b fortement complet à N(b) \ {a},
et donner les poids αAC +αBC −αC −αX, αX −αBC, αAC +αBC −αC −αX
et αX − αAC à respectivement a, a
0
, b et b
0
— Si N est une des étiquettes suivantes : “complément de biparti”, “line” ou
“anticouplage doublé”, alors ajouter un sommet a
0
, rendre a
0
fortement
complet à {a} ∪ N(a) \ {b} et donner les poids αAC − αC, αX − αBC et
αBC − αC à respectivement a, a
0
et b
3. Si L = ((“Complément de 2-joint pair”, αA, αB, αX), N) pour une étiquette
N (donc S est composée de deux arêtes optionnelles ac et cb et c est lourd) :
supprimer le sommet c, et donner les poids αA au sommet a et αB au sommet
b.
4. Si L = ((“2-joint pair”, αAC, αBC, αC, αX), N) pour une étiquette N (donc S
est composée de deux arêtes optionnelles ac et cb, et c est léger) : transformer
ac et cb en arête forte, donner les poids αX − αBC, αX − αAC, et αX + αC −
αAC − αBC à respectivement a, b et c.
69CHAPITRE 5. CALCUL DU STABLE MAXIMUM
L’expansion doit être vue comme “ce qui est obtenu si on utilise les gadgets
comme défini dans la section 5.2 au lieu des blocs de décomposition comme défini
dans le chapitre 2”.
Théorème 5.9. Supposons que T est un trigraphe qui est dans une classe
basique d’étiquette N, S est l’ensemble des composantes optionnelles de T et
L est une fonction de label pour T, tels que pour tout S ∈ S de label L, un des
points suivants est vérifié :
— L = (. . . , N) avec N une des étiquettes suivantes : “biparti”, “complé-
ment de biparti”, “line” ou “complément de line” ; ou
— N = “doublé”, S est une arête de couplage de T et L = (. . . , “couplage
doublé”); ou
— N = “doublé”, S est une antiarête de couplage de T et L = (. . . ,
“anticouplage doublé”).
Alors l’expansion de (T, S,L) est un trigraphe basique.
Démonstration. À partir de nos hypothèses, T est basique. Donc il suffit de dé-
montrer que l’expansion d’une composante optionnelle S préserve le fait d’être
basique, et le résultat suivra par induction sur S. Soit T
0
l’expansion. Dans plusieurs
cas (c’est à dire dans les cas 1, 3 et 4) l’expansion consiste simplement à
transformer des arêtes optionnelles en arêtes fortes et potentiellement supprimer
des sommets. D’après 2.3, ces opérations préservent le fait d’être basique. Nous
avons donc simplement à étudier le cas 2 de la définition des expansions. Nous
pouvons donc supposer que S est une arête optionnelle ab.
Il est facile de voir que l’expansion comme définie dans le cas 2 préserve les trigraphes
bipartis et les compléments de trigraphes bipartis ; donc si N ∈ {“biparti”,
“complément de biparti”} le résultat est prouvé.
Supposons que N =“line”, et donc T est un line trigraphe. Soit G la réalisation
complète de T, et R le graphe biparti, tel que G = L(R). Donc a est une arête
xaya dans R, et b est un arête yaxb. Puisque T est un line trigraphe, toute clique
de taille au moins 3 dans T est une clique forte, et donc a et b n’ont pas de voisin
commun dans T. Donc tous les voisins de a, à l’exception de b, sont des arêtes
incidentes à xa et pas à ya. Soit R0
le graphe obtenu à partir de R en ajoutant
une arête pendante e à xa. Remarquons que L(R0
) est isomorphe à la réalisation
complète de T
0
(l’arête e correspond au nouveau sommet a
0
), et donc T
0
est un
line trigraphe.
Supposons maintenant que N =“complément de line”, donc T est le complé-
ment d’un line trigraphe. Puisque toute clique de taille au moins 3 dans T est une
705.3. CALCULER α
clique forte, V (T) = N(a) ∪ N(b). Supposons qu’il existe u, v ∈ N(a) \ N(b), tels
que u est adjacent à v. Puisque T est un line trigraphe, et que uv est une semiarête,
alors {u, v, b} est une clique de taille 3 dans T. Soit R le graphe biparti, tel que
la réalisation complète de T soit L(R). Alors dans R aucune arête de u, v, a ne
partage d’extrémité, cependant b partage une extrémité avec ces trois arêtes, c’est
une contradiction. Ceci prouve que N(a) \ N(b) (et par symétrie que N(b) \ N(a))
est un stable fort dans T. Comme N(a) ∩ N(b) = ∅, alors T est biparti, et donc
comme précédemment, T
0
est basique.
On peut donc supposer que T est un trigraphe doublé avec (X, Y ) une bonne
partition. Si S = ab est une arête de couplage de T, alors ajouter les sommets a
0
, b0
à X produit une bonne partition de T
0
. Si S = ab est une antiarête de couplage de
T, alors ajouter le sommet a
0 à Y produit une bonne partition de T
0
. Dans tous
les cas T
0
est basique et le résultat est prouvé.
Soit T un trigraphe, S un ensemble de composantes optionnelles de T, L une
fonction de label de (T, S) et T
0
l’expansion de (T, S,L). Soit X ⊆ V (T). On
définit l’expansion de X ⊆ V (T) en X0
comme suit. On part avec X0 = X et on
effectue les opérations suivantes pour tout S ∈ S.
1. Si L = ((“Complément de 2-joint impair”, αA, αB, αX), N) pour une étiquette
N (donc S est une arête optionnelle ab), ne pas modifier X0
.
2. Si L = ((“2-joint impair”, αAC, αBC, αC, αX), N) pour une étiquette N(donc
S est une arête optionnelle ab) :
— Si N est une des étiquettes suivantes : “biparti”, “complément de line”,
ou “couplage doublé”, faire : si a ∈ X alors ajouter a
0 à X0
, et si b ∈ X
alors ajouter b
0 à X0
.
— Si N est une des étiquettes suivantes : “complément de biparti”, “line”
ou “anticouplage doublé”, faire : si a ∈ X alors ajouter a
0 à X0
.
3. Si L = ((“Complément de 2-joint pair”, αA, αB, αX), N) pour une étiquette
N (donc S est composée de deux arêtes optionnelles ac et cb et c est lourd),
faire : si c ∈ X, alors supprimer c de X0
.
4. Si L = ((“2-joint pair”, αAC, αBC, αC, αX), N) pour une étiquette N (donc
S est composée de deux arêtes optionnelles ac et cb et c est léger) ne pas
modifier X0
.
71CHAPITRE 5. CALCUL DU STABLE MAXIMUM
Théorème 5.10. Avec les notations ci-dessus, si (X1, X2) est un 2-
joint propre (resp. le complément d’un 2-joint propre) de T avec
(A1, B1, C1, A2, B2, C2) une affectation de (X1, X2), alors (X0
1
, X0
2
) est un
725.3. CALCULER α
2-joint propre (resp. le complément d’un 2-joint propre) de T
0 avec
(A0
1
, B0
1
, C0
1
, A0
2
, B0
2
, C0
2
) une affectation de (X0
1
, X0
2
), de même parité que
(X1, X2). (Remarquons que la notion de parité fait sens pour T
0
, puisque T
0
est de Berge d’après 5.6, 5.7 et 5.8).
Démonstration. Directe à partir des définitions.
Théorème 5.11. Il existe un algorithme avec les spécifications suivantes :
Entrée : Un triplet (T, S,L), tels que T est un trigraphe de Berge apprivoisé,
S est un ensemble de composantes optionnelles de T et L est une fonction
de pré-label pour (T, S).
Sortie : Une fonction de label L
0 pour (T, S) qui étend L, et un stable fort
pondéré de poids maximum de l’expansion de (T, S,L
0
).
Complexité en temps : O(n
5
)
Démonstration. Nous décrivons un algorithme récursif. La première étape de l’algorithme
utilise 5.1 pour vérifier que T est basique. Remarquons que si T est un
trigraphe doublé, l’algorithme de 5.1 calcule également quelles arêtes optionnelles
sont des arêtes de couplage, et quelles arêtes optionnelles sont des antiarêtes de
couplage.
Commençons par supposer que T est dans une classe basique de nom N (c’est
en particulier le cas lorsque |V (T)| = 1). Nous étendons la fonction de pré-label
L en une fonction de label L
0
comme suit : si N 6=“doublé”, alors on ajoute N
à tous les pré-labels et sinon, pour tout S ∈ S de label L, on ajoute “couplage
doublé” (resp. “anticouplage doublé”) à L si S est une arête de couplage (resp.
antiarête de couplage). La fonction de label obtenue vérifie les hypothèses de 5.9,
donc l’expansion T
0 de (T, S,L
0
) est basique, et en exécutant l’algorithme de 5.1
sur T
0
, nous obtenons un stable fort pondéré de poids maximum de T
0
en temps
O(n
4
). Donc, nous pouvons bien calculer une fonction de label L
0 pour T, S qui
étend L, et un stable fort pondéré de poids maximum de l’expansion de (T, S,L
0
).
Supposons maintenant que T n’est pas basique. Puisque T est un trigraphe
de Berge apprivoisé, d’après 2.10, nous savons que T se décompose par un 2-joint
ou le complément d’un 2-joint. Dans [7], un algorithme fonctionnant en temps
O(n
4
) est donné pour calculer un 2-joint dans un graphe quelconque. En fait les
2-joints comme décrit dans [7] ne sont pas exactement ceux que nous utilisons :
Le dernier point de notre définition n’a pas besoin d’être vérifié (celui qui assure
73CHAPITRE 5. CALCUL DU STABLE MAXIMUM
qu’aucun côté du 2-joint n’est réduit à un chemin de longueur exactement 2). Cependant
la méthode du Théorème 4.1 de [7] montre comment ajouter ce type de
contraintes sans perte de temps. Il est facile d’adapter cette méthode pour la dé-
tection de 2-joint dans un trigraphe (nous présentons d’ailleurs dans le chapitre 6
un algorithme similaire). Nous pouvons donc calculer la décomposition nécessaire
en temps O(n
4
). Nous calculons alors les blocs TX et TY comme défini dans le chapitre
2. Remarquons que tout membre de S est une arête optionnelle de seulement
un des blocs TX ou TY . Nous appelons SX (resp. SY ) l’ensemble des éléments de
S qui sont dans TX (resp. TY ). Soit S la composante optionnelle marquée utilisée
pour créer le bloc TY . Observons que pour tout u ∈ S, il existe un sommet v ∈ X
tel que NT (v)∩Y = NTY
(u)∩Y . De même pour TX. Donc, la fonction de pré-label
L pour (T, S) induit naturellement une fonction de pré-label LX pour (TX, SX)
et une fonction de pré-label LY pour (TY , SY ) (chaque S ∈ SX reçoit le même
pré-label que celui dans L, et de même pour SY . Dans la suite, la décomposition
réfère à la décomposition qui a été utilisée pour construire TX et TY , (c’est une
des étiquettes “complément de 2-joint pair”, “complément de 2-joint impair”, “2-
joint pair” ou “2-joint impair”) et nous utilisons nos notations habituelles pour
l’affectation de cette décomposition.
Sans perte de généralité, on peut supposer que |V (TX)| ≤ |V (TY )|.
D’après 2.11, TX, TY sont des trigraphes de Berge bigames, et d’après 2.12, ils
sont apprivoisés.
Soit S la composante optionnelle marquée qui est utilisée pour créer le bloc
TY . On définit S
0
Y = SY ∪ {S}. On peut maintenant construire une fonction de
pré-label LY pour S
0
Y
comme suit. Toutes les composantes optionnelles dans SY
conservent le pré-label qu’elles ont dans S. La composante marquée S reçoit le
pré-label suivant :
— Si la décomposition est un complément de 2-joint impair, alors calculer
récursivement αA = α(TX|A1), αB = α(TX|B1) et αX = α(TX|X), et définir
le pré-label de S comme (“Complément de 2-joint impair”, αA, αB, αX).
Remarquons que dans ce cas |S| = 2.
— Si la décomposition est un 2-joint impair, alors calculer récursivement
αAC = α(TX|(A1 ∪ C1)), αBC = α(TX|(B1 ∪ C1)), αC = α(TX|C1) et
αX = α(TX|X) et définir le pré-label de S comme (“2-joint impair”,
αAC, αBC, αC, αX). Remarquons que dans ce cas |S| = 2 et aucun sommet
de T
0
Y \ S n’est fortement complet à S.
— Si la décomposition est un complément de 2-joint pair, alors calculer récursivement
αA = α(TX|A1), αB = α(TX|B1) et αX = α(TX|X), et définir le
745.3. CALCULER α
pré-label de S comme (“Complément de 2-joint pair”, αA, αB, αX). Remarquons
que dans ce cas, |S| = 3 et S est léger.
— Si la décomposition est un 2-joint pair, alors calculer récursivement αAC =
α(TX|(A1 ∪ C1)), αBC = α(TX|(B1∪C1)), αC = α(TX|C1) et αX = α(TX|X)
et définir le pré-label de S comme (“2-joint pair”, αAC, αBC, αC, αX). Remarquons
que dans ce cas, |S| = 3 et S est lourd.
Maintenant TY , S
0
Y
a une fonction de pré-label LY . Nous exécutons récursivement
notre algorithme pour (TY , S
0
Y
,LY ).
Nous obtenons une extension L
0
Y de LY et un stable fort pondéré de poids
maximum de l’expansion T
0
Y de (TY , S
0
Y
,L
0
Y
).
Nous utilisons L
0
Y pour terminer la construction de L
0
, en utilisant pour tout
S ∈ SY la même extension que nous avions dans L
0
Y pour étendre LY . Nous avons
donc maintenant, une extension L
0 de L. Soit T
0
l’extension de (T, S,L
0
).
Remarquons maintenant que d’après 5.10, T
0
Y
est exactement le gadget pour
T
0
, comme défini dans la section 5.2. Donc, α(T
0
) peut être calculé à partir de
α(T
0
Y
), comme expliqué dans 5.6, 5.7, ou 5.8.
Donc, l’algorithme fonctionne correctement lorsqu’il renvoie L
0
et le stable fort
pondéré de poids maximum que nous venons de calculer.
Analyse de complexité : Avec notre manière de construire nos blocs de dé-
composition, nous avons |V (TX)| − 3 + |V (TY )| − 3 ≤ n et d’après 2.9(viii) nous
avons 6 ≤ |V (TX)|, |V (TY )| ≤ n − 1. Rappelons que nous avons supposé que
|V (TX)| ≤ |V (TY )|.
Soit T(n) la complexité de notre algorithme. Pour chaque type de décomposition,
nous effectuons au plus quatre appels récursifs sur le petit bloc, c’est à dire
TX, et un appel récursif sur le grand bloc TY . Nous avons donc T(n) ≤ dn4
lorsque
le trigraphe est basique et sinon T(n) ≤ 4T(|V (TX)|) + T(|V (TY )|) + dn4
, avec d
la constante venant de la complexité de trouver un 2-joint ou un complément de
2-joint et de trouver α dans les trigraphes basiques.
Nous pouvons maintenant démontrer qu’il existe une constante c, telle que
T(n) ≤ c.n5
. Notre démonstration est par induction sur n. Nous montrons qu’il
existe une constante N, telle que l’étape d’induction passe pour tout n ≥ N
(cet argument et en particulier N ne dépend pas de c). Le cas de base de notre
induction est alors sur les trigraphes basiques ou sur les trigraphes qui ont au plus
N sommets. Pour ces trigraphes, il est clair que la constante c existe.
Nous faisons la démonstration de l’induction uniquement dans le cas du 2-
joint pair (potentiellement dans le complément). La démonstration pour le 2-joint
impair est similaire. Nous définissons n1 = |V (TX)|. Nous avons T(n) ≤ 4T(n1) +
75CHAPITRE 5. CALCUL DU STABLE MAXIMUM
T(n + 6 − n1) + dn4 pour tout n1 et n vérifiant b
n
2
c + 3 ≥ n1 ≥ 7.
Définissons f(n1) = n
5−4n
5
1−(n+6−n1)
5−dn4
. Nous montrons qu’il existe une
constante N, telle que pour tout n ≥ N et pour tout n1 tel que 7 ≤ n1 ≤ bn
2
c + 3,
f(n1) ≥ 0. Par hypothèse d’induction, ceci prouve notre résultat. Un simple calcul
montre que :
f
0
(n1) = −20n
4
1 + 5(n + 6 − n1)
4
f
00(n1) = −80n
3
1 − 20(n + 6 − n1)
3
Puisque n + 6 − n1 est positif, nous avons f
00 ≤ 0. Donc, f
0
est décroissante,
et il est facile de voir que si n est suffisamment large, f
0
(n1) est positif pour
n1 = 7 et négatif pour n1 = b
n
2
c + 3. Maintenant f est minimum pour n1 = 7
ou n1 = b
n
2
c + 3. Puisque f(7) = n
5 − (n − 1)5 − P(n) avec P un polynôme,
tel que deg(P) ≤ 4, si n est suffisamment large, alors f(7) est positif. De même
f(b
n
2
c + 3) ≤ n
5 − 5(d
n
2
e + 3)5
. Là encore, si n est suffisamment large, f(b
n
2
c + 3)
est positif. Donc, il existe une constante N, telle que pour tout n ≥ N, f(n1) ≥ 0.
Cela montre que notre algorithme s’exécute en temps O(n
5
).
Théorème 5.12. On peut calculer un stable fort pondéré de poids maximum
d’un trigraphe T de Berge apprivoisé en temps O(n
5
).
Démonstration. Exécuter l’algorithme de 5.11 pour (T, ∅, ∅).
Théorème 5.13. On peut calculer un stable pondéré de poids maximum d’un
graphe G de Berge apprivoisé en temps O(n
5
).
Démonstration. D’après 5.12 et le fait que les graphes de Berge peuvent être vu
comme des trigraphes de Berge.
Contrairement aux deux chapitres précédents, les résultats de ce chapitre ne
peuvent s’étendre aux classes closes par k-joint. La raison principale est que les
lemmes 5.3 et 5.4 qui sont nécessaires pour assurer que les poids dans les blocs
sont tous positifs ou nuls ne sont vrais que dans le cas des graphes de Berge.
Plus précisément nous avons besoin que tous les chemins entre les deux ensembles
frontières du 2-joint (avec nos notations : Ai et Bi) soient de mêmes parités (ce
qui est prouvé par le lemme 2.4 pour les graphes de Berge).
765.3. CALCULER α
On peut voir notre preuve comme étant en deux temps. Nous commençons par
construire l’arbre de décomposition. Lors de cette étape, nous devons n’utiliser que
les blocs qui préservent la classe pour pouvoir continuer à décomposer. Puis une
fois le trigraphe complètement décomposé nous modifions les blocs afin de pouvoir
faire remonter l’information des blocs basiques au trigraphe complet. Un point
important lors de la reconstruction est de bien choisir sur quel bloc poser le plus
de questions, en effet si l’on ne fait pas attention l’algorithme devient exponentiel.
Dans les algorithmes présentés nous nous sommes focalisé sur le calcul de la
valeur du stable maximum. Il est facile et classique de convertir un tel algorithme
en un algorithme qui explicite un stable maximum pour un surcout linéaire. Cependant
comme il est possible pour les classes de base d’expliciter à chaque fois
un stable maximum, il est possible en utilisant de bonnes structures de données
de suivre les sommets du stable maximum à chaque étape de l’induction et ainsi
d’expliciter un stable maximum sans surcout.
Enfin il faut noter qu’en utilisant le théorème 1.1 nous obtenons un algorithme
de coloration en temps O(n
7
).
77CHAPITRE 5. CALCUL DU STABLE MAXIMUM
78Chapitre 6
Décompositions extrêmes
Les résultats de ce chapitre ont été obtenus avec Maria Chudnovsky, Nicolas Trotignon
et Kristina Vušković, ils font l’objet d’un article [15] soumis à Journal of
Combinatorial Theory, Series B.
6.1 Décompositions extrêmes
Dans cette section nous allons démontrer que les trigraphes de Berge apprivoisés
qui ne sont pas basiques, admettent des décompositions extrêmes. C’est
à dire des décompositions telles qu’un des blocs de décomposition est basique.
Ce résultat n’est pas trivial, puisque qu’il existe dans [37] un exemple montrant
que les graphes de Berge généraux n’admettent pas toujours de 2-joint extrême.
Les décompositions extrêmes sont parfois très utiles pour faire des preuves par
induction.
En fait nous ne sommes pas capable de démontrer que tous les trigraphes de
Berge apprivoisés admettent un 2-joint ou un complément de 2-joint extrême. Pour
démontrer l’existence de décompositions extrêmes nous devons inclure un nouveau
type de décomposition, la paire homogène à notre ensemble de décomposition. Il
est intéressant de remarquer que cette nouvelle décomposition est déjà utilisée dans
de nombreuses variantes du théorème 2.5. Il est intéressant de voir que nous avons
besoin d’étendre notre ensemble de décompositions afin d’obtenir un théorème de
structure extrême. Il est donc possible que les star-cutsets ou plus généralement
les skew-partitions ne soient pas des décompositions assez générales mais qu’en
79CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES
Figure 6.1 – Un exemple de graphe d’admettant pas de 2-joint extrême
les étendant il soit possible d’obtenir un théorème de décomposition extrême. Par
exemple dans [1], nous avons pu avec Aboulker, Radovanović Trotignon et Vuš-
ković, en étendant la définition du star-cutset avoir une décomposition extrême
d’une classe de graphes particulière. Grâce à cette décomposition extrême nous
avons alors pu démontrer notre hypothèse d’induction.
Une paire homogène propre d’un trigraphe T est une paire de sous-ensembles
disjoints (A, B) de V (T), telle que si A1, A2 sont respectivement les ensembles de
tous les sommets fortement complets à A et fortement anticomplets à A et que
B1, B2 sont définis de manière similaire, alors :
— |A| > 1 et |B| > 1 ;
— A1 ∪ A2 = B1 ∪ B2 = V (T) \ (A ∪ B) (et en particulier tout sommet de A
a un voisin et un antivoisin dans B et vice versa) ; et
— les quatre ensembles A1∩B1, A1∩B2, A2∩B1, A2∩B2 sont tous non-vides.
Dans ces circonstances, on dit que (A, B, A1 ∩ B2, A2 ∩ B1, A1 ∩ B1, A2 ∩ B2)
est une affectation de la paire homogène.
Une manière de démontrer l’existence d’une décomposition extrême est de
considérer un “côté” de la décomposition et de le minimiser, pour obtenir ce que
nous appelons une fin. Cependant pour les paires homogènes, les deux côtés (qui
sont A ∪ B et V (T) \ (A ∪ B) avec nos notations habituelles) ne sont pas symé-
triques comme le sont les deux côtés d’un 2-joint. Nous devons donc décider quel
côté minimiser. Nous choisissons de minimiser le côté A ∪ B. Formellement nous
devons faire la distinction entre un fragment, qui est n’importe quel côté d’une
décomposition et un fragment propre qui est le côté qui va être minimisé et qui
ne peut donc pas être le côté V (T) \ (A ∪ B) d’une paire homogène. Toutes les
définitions sont données formellement ci-dessous.
806.1. DÉCOMPOSITIONS EXTRÊMES
A B
Figure 6.2 – Paire Homogène
Nous commençons par modifier la définition des fragments pour inclure les
paires homogènes. À partir de maintenant, un ensemble X ⊆ V (T) est un fragment
d’un trigraphe T si une des propriétés suivantes est vérifiée :
1. (X, V (T) \ X) est un 2-joint propre de T ;
2. (X, V (T) \ X) est un complément de 2-joint propre de T ;
3. il existe une paire homogène propre (A, B) de T telle que X = A ∪ B ou
X = V (T) \ (A ∪ B).
Un ensemble X ⊆ V (T) est un fragment propre d’un trigraphe T si une des
propriétés suivantes est vérifiée :
1. (X, V (T) \ X) est un 2-joint propre de T ;
2. (X, V (T) \ X) est un complément de 2-joint propre de T ;
3. il existe une paire homogène propre (A, B) de T telle que X = A ∪ B.
Une fin de T est un fragment propre X de T tel qu’aucun sous-trigraphe induit
propre de X est un fragment propre de T.
Remarquons qu’un fragment propre de T est un fragment propre de T, et une
fin de T est une fin de T. De plus un fragment dans T est encore un fragment
dans T. Nous avons déjà défini les blocs de décomposition d’un 2-joint et d’un
complément de 2-joint. Nous définissons maintenant les blocs de décomposition
d’une paire homogène.
Si X = A ∪ B avec (A, B, C, D, E, F) une affectation d’une paire homogène
propre (A, B) de T, alors nous construisons le bloc de décomposition TX en rapport
avec X de la manière suivante. Nous partons de T|(A ∪ B). Nous ajoutons ensuite
81CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES
deux nouveaux sommets marqués c et d tels que c est fortement complet à A, d est
fortement complet à B, cd est une arête optionnelle et il n’y a aucune autre arête
entre {c, d} et A ∪ B. Ici encore, {c, d} est appelé la composante marquée de TX.
Si X = C ∪ D ∪ E ∪ F avec (A, B, C, D, E, F) une affectation d’une paire
homogène propre (A, B) de T, alors nous construisons le bloc de décomposition
TX en rapport avec X de la manière suivante. Nous partons de T|X. Nous ajoutons
alors deux nouveaux sommets marqués a et b tels que a est fortement complet à
C ∪ E, b est fortement complet à D ∪ E, ab est une arête optionnelle et il n’y a
aucune autre arête entre {a, b} et C ∪ D ∪ E ∪ F. Ici encore, {a, b} est appelé la
composante marquée de TX.
Théorème 6.1. Si X est un fragment d’un trigraphe T de Berge bigame, alors
TX est un trigraphe de Berge bigame.
Démonstration. D’après la définition de TX, il est clair que tous ses sommets sont
dans au plus une arête optionnelle ou sont lourds ou sont légers. Il ne nous reste
donc plus qu’à démontrer que TX est de Berge.
Si le fragment vient d’un 2-joint ou d’un complément de 2-joint, alors nous
avons le résultat d’après le lemme 2.11.
Si X = A ∪ B et (A, B) est une paire homogène propre de T, alors soit H
un trou ou un antitrou de TX. En passant si besoin au complémentaire, on peut
supposer que H est un trou. S’il contient les deux sommets marqués c, d, alors
c’est un trou sur quatre sommets ou il doit contenir deux voisins forts de d dans
B, donc H a longueur 6. Par conséquent, on peut supposer que H contient au plus
un sommet parmi c, d et donc un trou de longueur strictement identique peut être
obtenu dans T en remplaçant c ou d par un sommet de C ou de D. Par conséquent,
H a longueur paire.
S’il existe une paire homogène propre (A, B) de T telle que X = V (T)\(A∪B),
alors puisque pour tout sommet de A a un voisin et un antivoisin dans B, nous
pouvons remarquer que toute réalisation de TX est un sous-trigraphe induit d’une
réalisation de T. Il suit que TX reste de Berge.
Théorème 6.2. Si X est un fragment d’un trigraphe T de Berge apprivoisé,
alors le bloc de décomposition TX n’a pas de skew-partition équilibrée.
Démonstration. Pour démontrer ce résultat, supposons que TX ait une skewpartition
équilibrée (A0
, B0
) avec une affectation (A0
1
, A0
2
, B0
1
, B0
2
). À partir de cette
826.1. DÉCOMPOSITIONS EXTRÊMES
skew-partition équilibrée, nous allons trouver une skew-partition dans T. Nous allons
alors utiliser le lemme 2.8 afin de démontrer l’existence d’une skew-partition
équilibrée dans T. Ceci nous fournira une contradiction, et démontrera le résultat.
Si le fragment vient d’un 2-joint ou d’un complément de 2-joint, nous avons le
résultat d’après le lemme 2.12.
Si X = A ∪ B et (A, B) est une paire homogène de T, alors soit
(A, B, C, D, E, F) une affectation de (A, B). Puisque cd est une arête optionnelle,
les sommets marqués c et d n’ont pas de voisin commun et cd domine TX. Sans
perte de généralité il n’y a qu’un cas à traiter : c ∈ A0
1
et d ∈ B0
1
. Puisque B0
2
est
complet à d et A0
2
est anticomplet à c, il suit que A0
2
, B0
2 ⊆ B.
Maintenant (A0
1 \ {c}∪C ∪F, A0
2
, B0
1 \ {d}∪D∪E, B0
2
) est une affectation d’une
skew-partition dans T. La paire (A0
2
, B0
2
) est équilibrée dans T car elle l’est dans
TX. Par conséquent, d’après le lemme 2.8, T admet une skew-partition équilibrée,
c’est une contradiction.
Si X = V (T)\(A∪B) et (A, B) est une paire homogène propre de T, alors soit
(A, B, C, D, E, F) une affectation de (A, B). Puisque ab est une arête optionnelle,
on peut à symétrie et complémentation près supposer que a ∈ A0
1
et b ∈ A0
1 ∪ B0
1
.
Si b ∈ A0
1
alors (A ∪ B ∪ A0
1 \ {a, b}, A0
2
, B0
1
, B0
2
) est une affectation d’une skewpartition
dans T. Dans tous les cas, la paire (A0
2
, B0
2
) est équilibrée dans T car elle
l’est dans TX. Par conséquent, d’après le lemme 2.8, T admet une skew-partition
équilibrée, c’est une contradiction.
Théorème 6.3. Si X est une fin d’un trigraphe T de Berge apprivoisé, alors
le bloc de décomposition TX est basique.
Démonstration. Soit T un trigraphe de Berge apprivoisé et X une fin de T. D’après
le lemme 6.1, TX est un trigraphe bigame de Berge et d’après le lemme 6.2, TX
n’a pas de skew-partition équilibrée. D’après le théorème 2.10, il suffit de montrer
que TX n’a ni 2-joint propre, ni complément de 2-joint propre.
En passant au complémentaire de T si nécessaire, on peut supposer qu’une des
propriétés suivantes est vraie :
— X = A ∪ B et (A, B) est une paire homogène propre de T ;
— (X, V (T) \ X) est un 2-joint pair propre de T ; ou
— (X, V (T) \ X) est un 2-joint impair propre de T.
Cas 1 : X = A ∪ B avec (A, B) une paire homogène propre de T. Soit
(A, B, C, D, E, F) une affectation de (A, B).
83CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES
Supposons que TX admette un 2-joint propre (X1, X2). Soit
(A1, B1, C1, A2, B2, C2) une affectation de (X1, X2). Puisque cd est une arête
optionnelle, nous pouvons supposer que les deux sommets c, d sont tous les deux
dans X2. Comme {c, d} domine fortement TX, on peut supposer que c ∈ A2 et
d ∈ B2, et donc C1 = ∅. Puisque c est fortement complet à A, A1 ⊆ A et de
manière similaire, B1 ⊆ B. D’après le lemme 6.2 et le lemme 2.9, |A1| ≥ 2 et
|B1| ≥ 2 et comme C1 = ∅, tous les sommets de A1 ont un voisin et un antivoisin
dans B1 et vice versa. Maintenant (A1, B1, C ∪ A2 \ {c}, D ∪ B2 \ {d}, E, F ∪ C2)
est une affectation d’une paire homogène propre de T. Comme |X2| ≥ 3, A1 ∪ B1
est strictement inclus dans A ∪ B, c’est une contradiction.
Comme A∪B est aussi une paire homogène de T, en utilisant le même argument
que ci-dessus, TX n’admet pas de complément de 2-joint propre.
Cas 2 : (X, V (T) \ X) est un 2-joint pair propre (X1, X2) de T, avec X = X1.
Soit (A1, B1, C1, A2, B2, C2) une affectation de (X, V (T) \ X).
Supposons que TX admette un 2-joint propre (X0
1
, X0
2
). Soit
(A0
1
, B0
1
, C0
1
, A0
2
, B0
2
, C0
2
) une affectation de (X0
1
, X0
2
). Puisque ac et bc sont
des arêtes optionnelles, on peut supposer que a, b, c ∈ X0
2
. Nous affirmons maintenant
que (X0
1
, V (T) \ X0
1
) est un 2-joint propre de T et que X0
1
est strictement
inclus dans X, ce qui est une contradiction. Remarquons que d’après la définition
d’un 2-joint et le fait que c n’ait pas de voisin fort, X0
2 ne peut pas être réduit à
{a, b, c} et par conséquent, X0
1
est strictement inclus dans X. Puisque c n’a pas
de voisin fort, c ∈ C
0
2
. Puisque a et b n’ont pas de voisin fort commun dans TX1
,
il n’y a à symétrie près que trois cas : ou bien a ∈ A0
2
, b ∈ B0
2
, ou bien a ∈ A0
2
,
b ∈ C
0
2
, ou bien a, b ∈ C
0
2
.
Si a ∈ A0
2
et b ∈ B0
2
, alors (A0
1
, B0
1
, C0
1
, A2 ∪A0
2 \ {a}, B2 ∪B0
2 \ {b}, C2 ∪C
0
2 \ {c})
est une affectation d’un 2-joint de T.
Si a ∈ A0
2
et b ∈ C
0
2
, alors (A0
1
, B0
1
, C0
1
, A2 ∪ A0
2 \ {a}, B0
2
, B2 ∪ C2 ∪ C
0
2 \ {b, c})
est une affectation d’un 2-joint de T.
Si a ∈ C
0
2
et b ∈ C
0
2
, alors (A0
1
, B0
1
, C0
1
, A0
2
, B0
2
, X2 ∪ C
0
2 \ {a, b, c}) est une
affectation d’un 2-joint de T.
D’après le lemme 6.2 et le lemme 2.9 tous ces 2-joints sont propres, et nous
avons donc une contradiction.
Supposons que TX admette un complément de 2-joint propre (X0
1
, X0
2
). Puisque
c n’a pas de voisin fort nous avons une contradiction.
Case 3 : (X, V (T) \ X) est un 2-joint propre (X1, X2) de T, avec X = X1. Soit
(A1, B1, C1, A2, B2, C2) une affectation de (X, V (T) \ X).
Supposons que TX admette un 2-joint propre (X0
1
, X0
2
). Soit
846.2. CALCULER UNE FIN
(A0
1
, B0
1
, C0
1
, A0
2
, B0
2
, C0
2
) une affectation de (X0
1
, X0
2
). Puisque ab est une arête
optionnelle, on peut supposer que a, b ∈ X0
2
. Maintenant nous affirmons que
(X0
1
, V (T) \ X0
1
) est un 2-joint propre de T, ce qui est une contradiction, car X0
2 ne
peut pas être réduit à seulement {a, b} (d’après la définition d’un 2-joint), donc
X0
1
est strictement inclus dans X. Comme a et b n’ont pas de voisin fort commun
dans TX1
, il y a à symétrie près seulement trois cas : ou bien a ∈ A0
2
, b ∈ B0
2
, ou
bien a ∈ A0
2
, b ∈ C
0
2
, ou bien a, b ∈ C
0
2
.
Si a ∈ A0
2
et b ∈ B0
2
, alors (A0
1
, B0
1
, C0
1
, A2 ∪ A0
2 \ {a}, B2 ∪ B0
2 \ {b}, C2 ∪ C
0
2
) est
une affectation d’un 2-joint de T.
Si a ∈ A0
2
et b ∈ C
0
2
, alors (A0
1
, B0
1
, C0
1
, A2 ∪ A0
2 \ {a}, B0
2
, B2 ∪ C2 ∪ C
0
2 \ {b}) est
une affectation d’un 2-joint de T.
Si a ∈ C
0
2
et b ∈ C
0
2
, alors (A0
1
, B0
1
, C0
1
, A0
2
, B0
2
, X2∪C
0
2 \{a, b}) est une affectation
d’un 2-joint de T.
D’après le lemme 6.2 et le lemme 2.9 tous ces 2-joints sont propres, et nous
avons donc une contradiction.
Supposons que TX admette un complément de 2-joint propre (X0
1
, X0
2
). Soit
(A0
1
, B0
1
, C0
1
, A0
2
, B0
2
, C0
2
) une affectation de (X0
1
, X0
2
). Puisque ab est une arête optionnelle,
on peut supposer que a, b ∈ X0
2
. Puisque a et b n’ont pas de voisin fort
commun, on peut supposer que a ∈ A0
2
, b ∈ B0
2
et C
0
1 = ∅. Si C2 et C
0
2
sont nonvides,
alors (A0
1
, B0
1
, B2 ∪ B0
2 \ {b}, A2 ∪ A0
2 \ {a}, C0
2
, C2) est une affectation d’une
paire homogène propre de T et A0
1 ∪ B0
1
est strictement inclus dans X, c’est une
contradiction (remarquons que d’après le lemme 6.2 et le lemme 2.9, |A0
1
| ≥ 2,
|B0
1
| ≥ 2, et tout sommet de A0
1
a un voisin et un antivoisin dans B0
1
et vice versa).
Si C2 est non-vide et que C
0
2
est vide, alors (A0
1
, B0
1
, ∅, B2∪B0
2\{b}, A2∪A0
2\{a}, C2)
est une affectation d’un 2-joint propre de T (il est propre d’après le lemme 6.2 et
le lemme 2.9). Si C2 est vide, alors (A0
1
, B0
1
, ∅, A2 ∪ A0
2 \ {a}, B2 ∪ B0
2 \ {b}, C0
2
) est
une affectation d’un complément de 2-join de T (ici encore il est propre d’après le
lemme 6.2 et le lemme 2.9).
6.2 Calculer une fin
Le but de cette section est de donner un algorithme polynomial qui étant donné
un trigraphe, calcule une fin s’il en existe une. Pour résoudre ce problème nous
pourrions utiliser les algorithmes existants de détection de 2-joint et de paire homogène.
Le plus rapide est dans [7] pour les 2-joints et dans [24] pour les paires
homogènes. Cependant cette approche pose plusieurs problèmes. Premièrement
ces algorithmes fonctionnent pour les graphes et non pour les trigraphes. Il est
85CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES
cependant possible de les adapter pour les faire fonctionner sur les trigraphes.
Cependant il est difficile de démontrer que cette conversion des graphes aux trigraphes
est correcte sans rentrer dans les détails des algorithmes. Le problème plus
grave est que ces algorithmes calculent un fragment et non une fin. En fait pour
les 2-joints l’algorithme de [7] calcule un ensemble X minimal pour l’inclusion tel
que (X, V (G)\X) est un 2-joint, mais il peut toujours y avoir une paire homogène
dans X. Pour régler ces deux problèmes nous donnons ici notre propre algorithme
même si la plupart des idées de cet algorithme existaient déjà dans des travaux
précédents.
Notre algorithme cherche un fragment propre X. À cause de tous les points
techniques des définitions des 2-joints et des paires homogènes, nous introduisons
une nouvelle notion. Un fragment faible d’un trigraphe T est un ensemble
X ⊆ V (T) tel qu’il existe des ensembles disjoints A1, B1, C1, D1, A2, B2, C2, D2
vérifiant :
— X = A1 ∪ B1 ∪ C1 ∪ D1 ;
— V (T) \ X = A2 ∪ B2 ∪ C2 ∪ D2 ;
— A1 est fortement complet à A2 ∪ D2 et fortement anticomplet à B2 ∪ C2 ;
— B1 est fortement complet à B2 ∪ D2 et fortement anticomplet à A2 ∪ C2 ;
— C1 est fortement anticomplet à A2 ∪ B2 ∪ C2 ;
— D1 est fortement anticomplet à A2 ∪ B2 ∪ D2 ;
— |X| ≥ 4 et |V (T) \ X| ≥ 4 ;
— |Ai
| ≥ 1 et |Bi
| ≥ 1, i = 1, 2 ;
— et au moins une des propriétés suivantes est vérifiée :
— C1 = D1 = ∅, C2 6= ∅, et D2 6= ∅, ou
— D1 = D2 = ∅, ou
— C1 = C2 = ∅.
Dans ces circonstances, on dit que (A1, B1, C1, D1, A2, B2, C2, D2) est une affectation
de X. Étant donné un fragment faible, on dit qu’il est de type paire homogène
si C1 = D1 = ∅, C2 6= ∅, et D2 6= ∅, de type 2-joint si D1 = D2 = ∅ et de type complément
de 2-joint si C1 = C2 = ∅. Remarquons qu’un fragment peut être à la fois
de type 2-joint et de type complément de 2-joint (lorsque C1 = D1 = C2 = D2 = ∅).
Théorème 6.4. Si T est un trigraphe de Berge apprivoisé, alors X est un
fragment faible de T si et seulement si X est un fragment propre de T.
Démonstration. Si X est un fragment propre, alors c’est clairement un fragment
faible (les conditions |X| ≥ 4 et |V (T) \ X| ≥ 4 sont satisfaites lorsque X est un
côté d’un 2-joint d’après le lemme 2.9). Prouvons l’autre sens de l’équivalence. Soit
866.2. CALCULER UNE FIN
X un fragment faible et soit (A1, B1, C1, D1, A2, B2, C2, D2) une affectation de X.
Si X est de type 2-joint ou complément de 2-joint, alors il est propre d’après le
lemme 2.9. Par conséquent nous n’avons à traiter que le cas du fragment faible de
type paire homogène et donc C1 = D1 = ∅, C2 6= ∅, et D2 6= ∅. Puisque les quatre
ensembles A1, A2, B1, B2 sont tous non-vides, il suffit de vérifier que les conditions
suivantes sont vérifiées :
(i) Tout sommet de A1(B1) a un voisin et un antivoisin dans B1(A1).
(ii) |A1| > 1 et |B1| > 1.
Supposons que la condition (i) n’est pas vérifiée. En prenant le complémentaire
de T si nécessaire, on peut supposer qu’il existe un sommet v ∈ A1 fortement
complet à B1. Puisque {v} ∪ B1 ∪ A2 ∪ D2 n’est pas un star cutset dans T d’après
le lemme 2.6, on a que A1 = {v}. Maintenant tout sommet de B1 est fortement
complet à A1, et donc par le même argument, |B1| = 1. Ceci contredit l’hypothèse
que |X| ≥ 4. Par conséquent la propriété (i) est vérifiée.
Pour démontrer (ii) supposons que |A1| = 1. Puisque |X| ≥ 4, on a que |B1| ≥
3. D’après (i), tout sommet de B1 est semi-adjacent à un unique sommet de A1,
ce qui est impossible puisque |B1| ≥ 3 et que T est un trigraphe bigame. Par
conséquent la propriété (ii) est vérifiée.
Un quadruplet (a1, b1, a2, b2) de sommets d’un trigraphe T est propre s’il vérifie
les propriétés suivantes :
— a1, b1, a2, b2 sont deux à deux distincts ;
— a1a2, b1b2 ∈ E(T);
— a1b2, b1a2 ∈ E(T).
Un quadruplet propre (a1, b1, a2, b2) est compatible avec un fragment faible X
s’il existe une affectation (A1, B1, C1, D1, A2, B2, C2, D2) de X telle que a1 ∈ A1,
b1 ∈ B1, a2 ∈ A2 et b2 ∈ B2.
Nous utilisons les notations suivantes. Si x est un sommet d’un trigraphe T,
N(x) désigne l’ensemble des voisins de x, N(x) l’ensemble des antivoisins de x,
E(x) l’ensemble des voisins forts de x, et E
∗
(x) l’ensemble des sommets v tels que
xv ∈ E ∗
(T).
87CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES
Théorème 6.5. Soit T un trigraphe et Z = (a1, b1, a2, b2) un quadruplet propre
de T. Il y a un algorithme en temps O(n
2
) qui étant donné un ensemble R0 ⊆
V (T) de taille au moins 4 tel que Z ∩ R0 = {a1, b1}, trouve un fragment faible
X compatible avec Z et tel que R0 ⊆ X, ou renvoie la propriété vraie suivante :
“Il n’existe pas de fragment faible X compatible avec Z et tel que R0 ⊆ X”
De plus le fragment trouvé X est minimal vis à vis de ces propriétés. C’est
886.2. CALCULER UNE FIN
à dire que X ⊂ X0 pour tout fragment faible X0
vérifiant ces propriétés.
Démonstration. Nous utilisons la procédure décrite dans la table 6.1. Elle essaie
de construire un fragment faible R, en commençant avec R = R0 et S = V (T) \
R0, Ensuite plusieurs règles de forçage sont implémentées, disant que certains
ensembles de sommets doivent être déplacés de S vers R.
La variable “State” contient le type du fragment faible en train d’être considéré.
Au début de la procédure le type n’est pas connu et la variable “State” contient
“Unknown”. Il est facile de vérifier que les propriétés suivantes sont des invariants
d’exécution (c’est à dire qu’elles sont vérifiées après chaque appel à Explore) :
— R et S forment une partition de V (T), R0 ⊆ R et a2, b2 ∈ S.
— Pour tout sommet v ∈ R non-marqué et tout sommet u ∈ S, uv n’est pas
une arête optionnelle.
— Tous les sommets non-marqués appartenant à R ∩ (E(a2) \ E(b2)) ont le
même voisinage dans S, c’est à dire A (et A est un voisinage fort).
— Tous les sommets non-marqués appartenant à R ∩ (E(b2) \ E(a2)) ont le
même voisinage dans S, c’est à dire B (et B est un voisinage fort).
— Tous les sommets non-marqués appartenant à R ∩ (E(b2) ∩ E(a2)) ont le
même voisinage dans S, c’est à dire A ∪ B.
— Tous les sommets non-marqués appartenant à R et non-adjacent ni à a2 ni
à b2 sont fortement anticomplet à S.
— Pour tout fragment faible X tel que R0 ⊆ X et a2, b2 ∈ V (T) \ X, on a que
R ⊆ X et V (T) \ X ⊆ S.
D’après le dernier point, tous les déplacements de sommets de S vers R sont
nécessaires. Donc si un sommet de R est fortement adjacent à a2 et à b2, n’importe
quel fragment faible compatible avec Z qui contient R doit être un fragment faible
de type complément de 2-joint. C’est pourquoi la variable “State” est alors assignée
avec la valeur 2-joint et que tous les sommets de S \ (A ∪ B) sont déplacés vers
R. De la même manière, si un sommet de R est fortement antiadjacent à a2 et
à b2, n’importe quel fragment faible compatible avec Z qui contient R doit être
un fragment faible de type 2-joint. C’est pourquoi la variable “State” est alors
assignée à la valeur 2-joint et que tous les sommets de A ∩ B sont déplacés vers R.
Lorsque State = “2-joint” et qu’un sommet de R est à la fois fortement adjacent
à a2 et à b2, il y a une contradiction avec la définition du complément de 2-joint,
donc l’algorithme doit s’arrêter. Lorsque State = 2-joint et qu’un sommet de R est
à la fois fortement adjacent à a2 et à b2, il y a une contradiction avec la définition
du 2-joint donc l’algorithme doit s’arrêter. Lorsque la fonction Move essaie de
déplacer a2 ou b2 dans R (ceci peut arriver si un sommet dans R est semiadjacent
89CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES
Entrée : R0 un ensemble de sommets d’un trigraphe T et un quadruplet propre Z =
(a1, b1, a2, b2) tel que a1, b1 ∈ R0 and a2, b2 ∈/ R0.
Initialisation :
R ← R0 ; S ← V (T) \ R0 ; A ← E(a1) ∩ S ; B ← E(b1) ∩ S ;
State ← Unknown ;
Les sommets a1, b1, a2, b2 sont laissés non-marqués. Pour les autres sommets de
T :
Mark(x) ← αβ pour tout sommet x ∈ E(a2) ∩ E(b2);
Mark(x) ← α pour tout sommet x ∈ E(a2) \ E(b2);
Mark(x) ← β pour tout sommet x ∈ E(b2) \ E(a2);
tous les autres sommets de T sont marqués par ε ;
Move(E
∗
(a1) ∩ S); Move(E
∗
(b1) ∩ S);
Boucle principale :
Tant que il existe un sommet x ∈ R marqué
Faire Explore(x); Unmark(x);
Fonction Explore(x) :
Si Mark(x) = αβ et State = Unknown alors
State ← 2-joint, Move(S \ (A ∪ B));
Si Mark(x) = αβ et State = 2-joint alors Move(N(x) ∩ S);
Si Mark(x) = αβ et State = 2-joint alors
Sortie Pas de fragment faible trouvé, Stop ;
Si Mark(x) = α alors Move(A∆(E(x) ∩ S)), Move(E
∗
(x) ∩ S);
Si Mark(x) = β alors Move(B∆(E(x) ∩ S)), Move(E
∗
(x) ∩ S);
Si Mark(x) = ε et State = Unknown alors
State ← 2-joint, Move(A ∩ B);
Si Mark(x) = ε et State = 2-joint alors Move(N(x) ∩ S);
Si Mark(x) = ε et State = 2-joint alors
Sortie Pas de fragment faible trouvé, Stop ;
Fonction Move(Y) :
Cette fonction déplace simplement un sous-ensemble Y ⊂ S de S vers R.
Si Y ∩ {a2, b2} 6= ∅ alors
Sortie Pas de fragment faible trouvé, Stop ;
R ← R ∪ Y ; A ← A \ Y ; B ← B \ Y ; S ← S \ Y ;
Table 6.1 – La procédure utilisée dans le théorème 6.5
906.2. CALCULER UNE FIN
à a2 et à b2), alors R ne peut pas être contenu dans un fragment compatible avec
Z.
Si le processus ne s’arrête pas pour une des raisons ci-dessus, alors tous les
sommets de R ont été explorés et donc sont non-marqués. Donc, si |S| ≥ 4 à la
fin, R est un fragment faible compatible avec Z. Plus spécifiquement, (R∩(E(a2)\
E(b2)), R ∩(E(b2) \ E(a2)), R \ (E(a2)∪ E(b2)), R ∩(E(a2)∩ E(b2)), A \ B, B \ A, S \
(A ∪ B), A ∩ B) est une affectation du fragment faible R.
Puisque tous les déplacements de S vers R sont nécessaires, le fragment est
minimal comme affirmé. Cela implique également que si |S| ≤ 3, alors il n’existe
pas de fragment faible vérifiant les propriétés, dans ce cas l’algorithme renvoie qu’il
n’existe pas de fragment vérifiant les propriétés requises.
Complexité :
Le voisinage et l’antivoisinage d’un sommet de R n’est considéré qu’au plus
une fois. Donc, globalement l’algorithme utilise un temps O(n
2
).
Théorème 6.6. Il existe un algorithme fonctionnant en temps O(n
5
), qui
prend en entré un trigraphe T de Berge apprivoisé, et qui renvoie une fin X
de T (si une fin existe) et le bloc de décomposition TX.
Démonstration. Rappelons que d’après le lemme 6.4, les fragments faibles de
T sont des fragments propres. Nous commençons par décrire un algorithme de
complexité O(n
8
), nous expliquerons ensuite comment l’accélérer. Nous supposons
que |V (T)| ≥ 8 car sinon il n’existe pas de fragment propre. Pour tout
quadruplet propre Z = (a1, a2, b1, b2) et pour toute paire de sommets u, v de
V (T) \ {a1, a2, b1, b2}, nous appliquons le lemme 6.5 à R0 = {a1, b1, u, v}. Cette
méthode détecte pour tout Z et tout u, v un fragment propre (s’il en existe) compatible
avec Z, contenant u, v et minimal vis à vis de ces propriétés. Parmi tous
ces fragments, nous choisissons celui de cardinalité minimum, c’est une fin. Une
fois que la fin est donnée, il est facile de connaitre le type de décomposition utilisé
et de construire le bloc correspondant (en utilisant en particulier, le lemme 2.4,
on peut simplement tester avec un chemin si le 2-joint est pair ou impair). Voyons
maintenant comment accélérer cet algorithme.
Nous traitons séparément le cas du 2-joint et de la paire homogène. Nous allons
décrire un algorithme en temps O(n
5
) qui renvoie un fragment faible de type
2-joint, un algorithme en temps O(n
5
) qui renvoie un fragment faible de type complément
de 2-joint et un algorithme en temps O(n
5
) qui renvoie un fragment faible
91CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES
de type paire homogène. Chacun de ces fragments sera de cardinalité minimum
parmi tous les fragments faibles du même type. Par conséquent, le fragment de
cardinalité minimum parmi ces trois fragments sera une fin.
Commençons par traiter le cas des 2-joints. Un ensemble Z de quadruplets
propres est universel, si pour tout 2-joint propre d’affectation
(A1, B1, C1, A2, B2, C2), il existe (a1, a2, b1, b2) ∈ Z tel que a1 ∈ A1, a2 ∈ A2,
b1 ∈ B1, b2 ∈ B2. Au lieu de tester tous les quadruplets comme dans la version en
O(n
8
) de notre algorithme, il est clairement suffisant de restreindre notre recherche
à un ensemble universel de quadruplet. Comme prouvé dans [7], il existe un algorithme
qui génère en temps O(n
2
) un ensemble universel de quadruplet de taille
au plus O(n
2
) pour n’importe quel graphe. Il est facile d’obtenir un algorithme
similaire pour les trigraphes.
L’idée suivante pour les 2-joints est d’appliquer la méthode de la Table 6.1 à
R0 = {a1, b1, u} pour tout sommet u au lieu de l’appliquer pour R0 = {a1, b1, u, v}
pour tout couple de sommets u, v. Comme nous allons le voir ceci trouve un 2-
joint compatible avec Z = (a1, a2, b1, b2) s’il en existe un. Supposons que (X1, X2)
soit un tel 2-joint. Si X1 contient un sommet u dont le voisinage (dans T) est
différent de N(a1)∪N(b1), alors d’après le lemme 2.9, u a au moins un voisin dans
X1 \{a1, b1}. Donc quand la boucle considère u, la méthode de la Table 6.1 déplace
de nouveaux sommets dans R. Donc, à la fin, |R| ≥ 4 et le 2-joint est détecté. Par
conséquent, l’algorithme échoue à détecter un 2-joint uniquement dans le cas où u
a degré 2 et a1-v-b1 est un chemin alors qu’il existe un 2-joint compatible avec Z
avec u du même côté que a1 et b1. En fait, puisque tous les sommets sont essayés,
ce n’est un problème que s’il apparait pour tout choix possible de u. C’est à dire si
le 2-joint cherché a un côté fait de a1, b1, et d’un ensemble de sommets u1, . . . , uk
de degré 2 tous adjacents à la fois à a1 et à b1. Mais dans ce cas, ou bien un des
ui est fortement complet à {a1, b1} et c’est le centre d’un star cutset, ou bien tous
les ui sont adjacents à un des sommets a1 ou b1 par une arête optionnelle. Dans
ce cas tous les ui sont déplacés vers R lorsque nous appliquons les règles décrites
par la Table 6.1, et donc le 2-joint est en fait bien détecté.
Les compléments de 2-joints sont traités de la même manière dans le complé-
ment.
Considérons maintenant les paires homogènes. Il est utile de définir une paire
homogène faible exactement comme les paires homogènes propres, à l’exception
que nous demandons que “|A| ≥ 1, |B| ≥ 1 et |A ∪ B| ≥ 3” au lieu de “|A| >
1 et |B| > 1”. Un lemme similaire au lemme 6.5 existe pour lequel l’entrée de
l’algorithme est un graphe G, un triplet (a1, b1, a2) ∈ V (G)
3
et un ensemble R0 ⊆
926.2. CALCULER UNE FIN
V (G) qui contient a1, b1 mais pas a2, et dont la sortie est une paire homogène
faible (A, B) telle que R0 ⊆ A ∪ B, a1 ∈ A, b1 ∈ B et a2 ∈/ A ∪ B, et telle que
a2 est complet à A et anticomplet à B, si une telle paire homogène faible existe.
Comme dans le lemme 6.5, le temps d’exécution est O(n
2
) et la paire homogène
faible est minimale parmi toutes les paires homogènes faibles possibles. Ce résultat
est prouvé dans [17].
Comme pour les 2-joints, nous définissons la notion d’ensemble universel de
triplets (a1, b1, a2). Comme prouvé dans [24], il existe un algorithme qui génère
en temps O(n
2
) un ensemble universel de triplet de taille au plus O(n
2
) pour
n’importe quel graphe. Ici encore il est facile d’adapter cet algorithme pour les
trigraphes. Comme dans le cas du 2-joint, nous appliquons un lemme analogue au
lemme 6.5 à tous les sommets u au lieu de tous les couples de sommets u, v. Le
seul problème est qu’après l’appel au lemme similaire au lemme 6.5, nous avons
une paire homogène faible et pas propre (donc |A ∪ B| = 3). Mais dans ce cas on
peut vérifier qu’alors le trigraphe contient un star cutset ou un star cutset dans
son complément.
Nous avons vu dans ce chapitre comment étendre notre ensemble de décompositions
afin d’assurer l’existence d’une décomposition extrême. Nous avons également
donné un algorithme polynomial permettant d’exhiber une telle décomposition.
Nous n’avons pas eu besoin de ce type de décomposition pour prouver
le reste des résultats de cette thèse, mais savoir qu’elle existe donne une preuve
conceptuellement plus simple des résultats concernant le calcul du stable maximum.
En effet, si l’on sait qu’à chaque étape de décomposition un des côtés est
basique on peut facilement calculer les valeurs qui nous intéressent dans ce coté
sans craindre d’explosion combinatoire, de fait la récursion devient presque immé-
diatement récursive terminale. Malheureusement, la preuve est techniquement plus
compliquée puisqu’il faut également traiter les cas des paires homogènes. Il n’est
pas possible de transformer automatique un théorème de décomposition en son
équivalent extrême (cf la figure 6.1). Il serait intéressant de savoir s’il est toujours
possible d’ajouter des décompositions (et comment les calculer) pour obtenir une
décomposition extrême.
93CHAPITRE 6. DÉCOMPOSITIONS EXTRÊMES
94Chapitre 7
Conclusion
Dans cette thèse, nous avons démontré un certain nombre de résultats sur les
trigraphes de Berge apprivoisés et par conséquent sur les graphes de Berge sans
skew-partition. En fait, le point important dans tous ces résultats est de pouvoir
décomposer le graphe par 2-joint ou complémentaire de 2-joint. L’interdiction des
skew-partitions permet simplement d’assurer que le graphe ou son complémentaire
admet bien un 2-joint et que les blocs vont eux aussi être inductivement décomposables.
La classe la plus générale pour laquelle ces résultats s’appliquent est donc
celle des graphes de Berge décomposables par 2-joint ou complémentaire de 2-joint.
Malheureusement cette classe est une sous-classe stricte des graphes de Berge, le
graphe en figure 2.8 est un graphe de Berge qui (en utilisant les décompositions
mentionnées dans cette thèse) n’est décomposable que par skew-partition.
La reconnaissance des graphes de Berge apprivoisés est possible en temps polynomial,
mais est compliquée. En toute généralité la détection de skew-partition
équilibrée est un problème NP-complet heureusement ce problème devient polynomial
sur les graphes de Berge [35]. On peut donc utiliser l’algorithme de Chudnovsky,
Cornuéjols, Liu, Seymour et Vušković [12] pour s’assurer que le graphe est
bien de Berge puis on peut utiliser les résultats de Trotignon [35] pour s’assurer
que le graphe ne possède pas de skew-partition équilibrée. Avec ces résultats il est
alors possible, étant donné un graphe quelconque de le colorier en temps polynomial
ou d’assurer que ce n’est pas un graphe de Berge sans skew-partition. La
reconnaissance de la classe plus large des graphes de Berge totalement décomposable
par 2-joint et complémentaire de 2-joint est plus difficile. On peut chercher
décomposer jusqu’à arriver sur des blocs basiques, mais en cas d’échec, a priori rien
ne garantit qu’en ayant choisi un autre 2-joint nous n’aurions pas pu le décomposer
totalement.
95CHAPITRE 7. CONCLUSION
Notre classe est auto-complémentaire mais pas héréditaire, ce qui peut paraître
surprenant pour les personnes familières avec les graphes de Berge. Il est
assez difficile de trouver une classe proche qui soit héréditaire. De manière artifi-
cielle, ce serait la classe des graphes de Berge sans sous-graphe induit uniquement
décomposable par skew-partition (en utilisant comme ensemble de décompositions
celles présentées dans cette thèse), en particulier il faut interdire le graphe de la
figure 2.8. Il faudrait alors vérifier que les blocs de décompositions restent dans la
classe. Dans ce cas cette classe serait alors totalement décomposable par 2-joint et
par complémentaire de 2-joint et tous les résultats de cette thèse s’appliqueraient.
Une manière d’étendre ces résultats serait de réussir pour un graphe de Berge
donné à lui ajouter des sommets pour le rendre sans skew-partition. Dans ce cas en
affectant des poids nuls à ces sommets ajoutés il est possible d’utiliser l’algorithme
de stable maximum pondéré présenté ici pour calculer un stable maximum du
graphe de départ. Pour que cet algorithme reste un algorithme en temps polynomial
il faut que le nombre de sommets à ajouter soit polynomial en la taille du graphe
de départ. Le risque d’une telle méthode est bien sûr que les sommets ajoutés
créent de nouvelles skew-partition.
Si ces résultats ne permettent pas de résoudre le problème pour les graphe de
Berge en général, ils peuvent néanmoins fournir des outils utiles. En effet pour ces
problèmes, on peut désormais voir notre classe comme une classe basique. De futurs
algorithmes pourraient donc traiter les graphe de Berge tant qu’ils admettent des
skew-partition puis utiliser nos algorithmes.
Enfin le problème ouvert qui est sans doute le plus intéressant est celui de la reconnaissance
des trigraphes de Berge. Ce problème est résolu pour les graphes [12]
mais est toujours ouvert pour les trigraphes. Étant donné l’intérêt de l’utilisation
des trigraphes pour l’étude des graphes de Berge, il serait très intéressant de savoir
reconnaître les trigraphes de Berge. De manière plus générale, si l’on définit une
classe de trigraphe C
∗ à partir de la classe de graphe C de la manière suivante :
Un trigraphe T est dans la classe C
∗
si et seulement si toutes ses réalisations sont
dans la classe C, quel est le lien entre la reconnaissance de la classe C et celle de
la la classe C
∗
.
96Bibliographie
[1] Pierre Aboulker, Marko Radovanović, Nicolas Trotignon, Théophile
Trunck et Kristina Vušković : Linear balanceable and subcubic balanceable
graphs. Journal of Graph Theory, 75(2):150–166, 2014.
[2] Boris Alexeev, Alexandra Fradkin et Ilhee Kim : Forbidden induced
subgraphs of double-split graphs. SIAM Journal on Discrete Mathematics,
26(1):1–14, 2012.
[3] Noga Alon, János Pach, Rom Pinchasi, Radoš Radoičić et Micha Sharir
: Crossing patterns of semi-algebraic sets. Journal of Combinatorial
Theory, Series A, 111(2):310–326, 2005.
[4] Nicolas Bousquet, Aurélie Lagoutte et Stéphan Thomassé : Clique versus
independent set. arXiv preprint arXiv :1301.2474, 2013.
[5] Nicolas Bousquet, Aurélie Lagoutte et Stéphan Thomassé : The ErdősHajnal
conjecture for paths and antipaths. arXiv preprint arXiv :1303.5205,
2013.
[6] Binh-Minh Bui-Xuan, Jan Arne Telle et Martin Vatshelle : H-join decomposable
graphs and algorithms with runtime single exponential in rankwidth.
Discrete Applied Mathematics, 158(7):809–819, 2010.
[7] Pierre Charbit, Michel Habib, Nicolas Trotignon et Kristina Vušković :
Detecting 2-joins faster. Journal of discrete algorithms, 17:60–66, 2012.
[8] Maria Chudnovsky : Berge trigraphs and their applications. Thèse de doctorat,
Princeton University, 2003.
[9] Maria Chudnovsky : Berge trigraphs. Journal of Graph Theory, 53(1):1–55,
2006.
[10] Maria Chudnovsky : The structure of bull-free graphs II and III—A summary.
Journal of Combinatorial Theory, Series B, 102(1):252–282, 2012.
97BIBLIOGRAPHIE
[11] Maria Chudnovsky : The structure of bull-free graphs I—Three-edge-paths
with centers and anticenters. Journal of Combinatorial Theory, Series B,
102(1):233–251, 2012.
[12] Maria Chudnovsky, Gérard Cornuéjols, Xinming Liu, Paul Seymour et
Kristina Vušković : Recognizing berge graphs. Combinatorica, 25(2):143–
186, 2005.
[13] Maria Chudnovsky, Neil Robertson, Paul Seymour et Robin Thomas :
The strong perfect graph theorem. Annals of Mathematics, pages 51–229,
2006.
[14] Maria Chudnovsky et Paul D Seymour : The structure of claw-free graphs.
Surveys in combinatorics, 327:153–171, 2005.
[15] Maria Chudnovsky, Nicolas Trotignon, Théophile Trunck et Kristina
Vuskovic : Coloring perfect graphs with no balanced skew-partitions. arXiv
preprint arXiv :1308.6444, 2013.
[16] Vasek Chvátal : Star-cutsets and perfect graphs. Journal of Combinatorial
Theory, Series B, 39(3):189–199, 1985.
[17] Hazel Everett, Sulamita Klein et Bruce Reed : An algorithm for finding
homogeneous pairs. Discrete Applied Mathematics, 72(3):209–218, 1997.
[18] Tomás Feder, Pavol Hell, David G Schell et Juraj Stacho : Dichotomy
for tree-structured trigraph list homomorphism problems. Discrete Applied
Mathematics, 159(12):1217–1224, 2011.
[19] Tomás Feder, Pavol Hell et Kim Tucker-Nally : Digraph matrix
partitions and trigraph homomorphisms. Discrete Applied Mathematics,
154(17):2458–2469, 2006.
[20] Samuel Fiorini, Serge Massar, Sebastian Pokutta, Hans Raj Tiwary et
Ronald de Wolf : Linear vs. semidefinite extended formulations : exponential
separation and strong lower bounds. In Proceedings of the 44th symposium
on Theory of Computing, pages 95–106. ACM, 2012.
[21] Jacob Fox : A bipartite analogue of Dilworth’s theorem. Order, 23(2-3):197–
209, 2006.
[22] Jacob Fox et János Pach : Erdős-Hajnal-type results on intersection patterns
of geometric objects. In Horizons of combinatorics, pages 79–103. Springer,
2008.
[23] Martin Grötschel, László Lovász et Alexander Schrijver : Geometric
algorithms and combinatorial optimization. 1988.
98BIBLIOGRAPHIE
[24] Michel Habib, Antoine Mamcarz et Fabien de Montgolfier : Algorithms
for some H-join decompositions. In LATIN 2012 : Theoretical Informatics,
pages 446–457. Springer, 2012.
[25] Peter L Hammer et Bruno Simeone : The splittance of a graph. Combinatorica,
1(3):275–284, 1981.
[26] Aurélie Lagoutte et Théophile Trunck : Clique-stable set separation
in perfect graphs with no balanced skew-partitions. arXiv preprint
arXiv :1312.2730, 2013.
[27] Philippe GH Lehot : An optimal algorithm to detect a line graph and output
its root graph. Journal of the ACM (JACM), 21(4):569–575, 1974.
[28] Lásló Lovász : A characterization of perfect graphs. Journal of Combinatorial
Theory, Series B, 13(2):95–98, 1972.
[29] László Lovász : On the shannon capacity of a graph. Information Theory,
IEEE Transactions on, 25(1):1–7, 1979.
[30] László Lovász : Stable sets and polynomials. Discrete mathematics, 124(1):
137–153, 1994.
[31] Frédéric Maffray : Fast recognition of doubled graphs. Theoretical Computer
Science, 516:96–100, 2014.
[32] Nicholas D Roussopoulos : A max(n, m) algorithm for determining the
graph H from its line graph G. Information Processing Letters, 2(4):108–112,
1973.
[33] Alexander Schrijver : Combinatorial optimization : polyhedra and effi-
ciency, volume 24. Springer, 2003.
[34] Paul Seymour : How the proof of the strong perfect graph conjecture was
found. Gazette des Mathematiciens, 109:69–83, 2006.
[35] Nicolas Trotignon : Decomposing berge graphs and detecting balanced
skew partitions. Journal of Combinatorial Theory, Series B, 98(1):173–225,
2008.
[36] Nicolas Trotignon : Perfect graphs : a survey. arXiv preprint
arXiv :1301.5149, 2013.
[37] Nicolas Trotignon et Kristina Vušković : Combinatorial optimization
with 2-joins. Journal of Combinatorial Theory, Series B, 102(1):153–185,
2012.
99BIBLIOGRAPHIE
[38] Mihalis Yannakakis : Expressing combinatorial optimization problems by
linear programs. In Proceedings of the twentieth annual ACM symposium on
Theory of computing, pages 223–228. ACM, 1988.
100
Reconnaissance de comportements complexes par
traitement en ligne de flux d’ev`enements
Ariane Piel
To cite this version:
Ariane Piel. Reconnaissance de comportements complexes par traitement en ligne de flux
d’ev`enements. Computer Science. Universit´e Paris Nord - Paris 13, 2014. French.
HAL Id: tel-01093015
https://hal.archives-ouvertes.fr/tel-01093015
Submitted on 9 Dec 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Université Paris 13
Thèse
pour obtenir le grade de
Docteur de l’Université Paris 13
Discipline : Informatique
présentée et soutenue publiquement par
Ariane PIEL
le 27 octobre 2014
à l’Office National d’Études et de Recherches Aérospatiales
Reconnaissance de comportements complexes par
traitement en ligne de flux d’évènements
(Online Event Flow Processing for Complex Behaviour Recognition)
Jury
Présidente :
Laure Petrucci Professeur, Université Paris 13
Rapporteurs :
Serge Haddad Professeur, École Normale Supérieure de Cachan
Audine Subias Maître de conférences, HDR, Institut National des Sciences Appliquées de Toulouse
Examinateurs :
Philippe Bidaud Professeur, Université Paris 6 – Pierre et Marie Curie
Christine Choppy Professeur, Université Paris 13
Romain Kervarc Docteur ingénieur, Onera
Invités :
Jean Bourrely Docteur ingénieur, Onera
Patrice Carle Docteur ingénieur, Onera
Directrice de thèse : Christine Choppy
Encadrants Onera : Romain Kervarc, avec Jean Bourrely et Patrice Carle
Laboratoires : Office National d’Études et de Recherches Aérospatiales
Laboratoire d’Informatique de Paris Nord
N◦ d’ordre :Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
2Remerciements
Nombreux sont ceux qui ont contribué à l’aboutissement de cette thèse, et je souhaite à présent
les remercier très sincèrement.
Cette thèse s’est déroulée à l’Onera au sein du Département de Conception et évaluation des
Performances des Systèmes (DCPS). Je tiens à remercier Thérèse Donath, directrice du département,
de m’avoir accueillie et de m’avoir permis de réaliser ces travaux dans un environnement
stimulant au sein de l’Onera. Je souhaite vivement remercier l’Unité de Techniques pour la Conception
et la Simulation de systèmes (TCS) dans laquelle j’ai été chaleureusement intégrée.
Je remercie Christine Choppy, Professeur à l’Université Paris 13, d’avoir dirigé ma thèse durant
ces trois années avec tant d’implication et de disponibilité. Son sens de l’organisation et sa
ténacité nous a permis d’entreprendre de nombreux projets. Je garde un excellent souvenir d’un
workshop organisé à Singapour où nous avons pu allier les plaisirs de la recherche et ceux des
voyages.
Je suis très reconnaissante envers Romain Kervarc, ingénieur-chercheur à l’Onera, d’avoir coencadré
cette thèse et de m’avoir toujours soutenue tant sur les idées que sur la forme où nous nous
retrouvions entre logiciens. Je remercie aussi Romain de m’avoir offert de nombreuses opportunités
pour rencontrer des chercheurs à travers le monde, et de m’avoir accordé sa confiance, laissant ainsi
libre cours à la poursuite de mes idées.
J’exprime toute ma gratitude à Patrice Carle, chef de l’unité TCS, pour m’avoir aidée sur tous
les aspects de ce travail, avec des remarques toujours pertinentes. L’expérience et le recul sur le
sujet qu’a apportés Patrice allaient de pair avec un enthousiasme débordant, ce qui a su avoir
raison de mes doutes et de mon regard parfois trop critique. Sa certitude dans la qualité et l’intérêt
de notre projet a été d’un grand soutien.
Je tiens à remercier tout particulièrement Jean Bourrely, ancien directeur adjoint du DCPS,
pour sa clairvoyance et son sens pratique dans tous les moments de questionnement, et pour son
aide incommensurable dans l’implémentation de CRL. Les nombreuses heures de travail en commun
m’ont donné l’énergie et la stimulation nécessaires à l’aboutissement de cette thèse et comptent dans
les instants qui resteront parmi les meilleurs de ces trois ans.
J’exprime toute ma gratitude à Serge Haddad, Professeur à l’École Normale Supérieure de
Cachan, et à Audine Subias, Maître de Conférences habilité à l’Institut National des Sciences
Appliquées de Toulouse, pour m’avoir honorée d’être les rapporteurs de cette thèse. Leurs remarques
ont été précieuses pour l’amélioration de ce travail et ont ouvert quantité de nouvelles perspectives.
3Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Je souhaite étendre cette gratitude à Laure Petrucci, Professeur à l’Université Paris 13, et à
Philippe Bidaud, Professeur à l’Université Paris 6, pour m’avoir suivie durant ces trois années
puis avoir accepté de participer au jury de cette thèse.
Mes remerciements vont également à Thibault Lang qui m’a généreusement aidée dans le développement
des cas d’application traités dans cette thèse, et à Nicolas Huynh pour sa contribution
à leur mise en place. J’adresse aussi mes profonds remerciements à Stéphanie Prudhomme pour
l’atmosphère chaleureuse qu’elle sait entretenir au sein de l’unité TCS, et pour ses conseils avisés.
Je dois beaucoup à mes collègues et à la bonne ambiance qu’ils font régner au sein du département.
J’ai eu la chance d’être particulièrement bien entourée ce qui est inestimable dans le travail
de longue haleine que représente un doctorat, travail qui peut être emprunt de frustrations et de
solitude. Je remercie tous ceux qui passaient de temps en temps dans mon bureau et j’adresse
une pensée particulière à Mathieu et son Apple-attitude, Pierre avec son tweed et son bronzage
uniques, Rata et sa bonne humeur, Damien et sa décontraction sudiste, Arthur lorsqu’il n’est pas
en vacances, Evrard lorsqu’il est réveillé, Sarah avec sa force surhumaine et ses conseils esthé-
tiques, Pawit et ses bons plats thaïs, Yohan avec son gâteau au chocolat et son fromage blanc à
Saulx-les-Chartreux, Joseph avec le petit compartiment de sa machine à pain et son thé, Dalal et
son rire, et tous les autres (même ceux du DTIM).
Je souhaite remercier plus particulièrement Antoine notamment pour nos tours de ring et nos
échanges autour de bons thés (exempts ou non de grand-mères) qui m’ont permis de surmonter
l’étape douloureuse que peut être la rédaction ; Christelle, pour son amitié et son soutien, avec nos
nombreuses et longues discussions qui m’ont portée au travers des moments les plus difficiles, aussi
bien professionnels que personnels ; et Loïc, qui dès son arrivée en thèse, a su m’offrir une oreille
attentive et des conseils éclairés tout en entretenant ma motivation dès qu’elle était trop fragile.
Je ne pourrais oublier de remercier également mes amis Lucille, Ambre, Mathieu, Lise, Estelle,
Laetitia, Julie, Anaïs, Charlotte, Yelena, Alice et les Glénanais qui m’ont encouragée jusqu’au jour
de ma soutenance.
Enfin, mais non des moindres, je remercie mes frères, David et Thomas, ainsi que ma mère,
Sandra et Coline pour avoir toujours cru en moi et avoir fait preuve d’un encouragement sans
faille.
4Table des matières
Introduction 9
1 Systèmes de traitement formel d’évènements complexes 13
1.1 Principaux enjeux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2 Event Calculus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Le langage ETALIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.4 Le langage des chroniques de Dousson et al. . . . . . . . . . . . . . . . . . . . . . . 23
1.5 Le langage des chroniques Onera . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
1.5.1 Une première implémentation : CRS/Onera . . . . . . . . . . . . . . . . . . . 29
1.5.2 Définition d’une sémantique du langage des chroniques . . . . . . . . . . . . 30
1.5.3 Détail de la sémantique ensembliste du langage des chroniques de CRS/Onera 31
1.6 D’autres modes de représentation et de reconnaissance de comportements . . . . . 34
2 Construction d’un cadre théorique pour la reconnaissance de comportements :
le langage des chroniques 41
2.1 Définitions générales préalables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.1.1 Évènements et leurs attributs . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2.1.2 Opérations sur les attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.2 Définition d’une syntaxe étendue du langage des chroniques : ajout de contraintes
sur des attributs d’évènement et de constructions temporelles . . . . . . . . . . . . 46
2.3 Définition de la sémantique du langage à travers la notion de reconnaissance de
chronique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.3.1 Passage à une représentation arborescente des reconnaissances . . . . . . . 53
2.3.2 Formalisation de la notion de reconnaissance de chronique . . . . . . . . . . 55
2.4 Propriétés du langage des chroniques . . . . . . . . . . . . . . . . . . . . . . . . . . 60
2.4.1 Définition d’une relation d’équivalence sur les chroniques . . . . . . . . . . 60
2.4.2 Relations entre ensembles de reconnaissances . . . . . . . . . . . . . . . . . 60
2.4.3 Associativité, commutativité, distributivité . . . . . . . . . . . . . . . . . . 62
2.5 Gestion du temps continu à l’aide d’une fonction Look-ahead . . . . . . . . . . . . 64
2.6 Tableau récapitulatif informel des propriétés du langage des chroniques . . . . . . . 66
2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
5Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
3 Un modèle de reconnaissance en réseaux de Petri colorés dit « à un seul jeton » 69
3.1 Définition du formalisme des réseaux de Petri colorés . . . . . . . . . . . . . . . . . 70
3.1.1 Types et expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.1.2 Réseaux de Petri colorés . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.1.3 La fusion de places . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.1.4 Arcs inhibiteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.2 Construction formelle des réseaux dits « à un seul jeton » . . . . . . . . . . . . . . 77
3.2.1 Types et expressions utilisés dans le modèle . . . . . . . . . . . . . . . . . . 77
3.2.2 Structure générale des réseaux « à un seul jeton » . . . . . . . . . . . . . . 79
3.2.3 Briques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.2.4 Construction par induction . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.3 Formalisation et description de l’exécution des réseaux . . . . . . . . . . . . . . . . 89
3.3.1 Reconnaissance d’un évènement simple . . . . . . . . . . . . . . . . . . . . . 89
3.3.2 Reconnaissance d’une séquence . . . . . . . . . . . . . . . . . . . . . . . . . 91
3.3.3 Reconnaissance d’une disjonction . . . . . . . . . . . . . . . . . . . . . . . . 94
3.3.4 Reconnaissance d’une conjonction . . . . . . . . . . . . . . . . . . . . . . . 95
3.3.5 Reconnaissance d’une absence . . . . . . . . . . . . . . . . . . . . . . . . . . 99
3.3.6 Définition formelle de la stratégie de tirage . . . . . . . . . . . . . . . . . . 106
3.4 Démonstration de la correction du modèle « à un seul jeton » . . . . . . . . . . . . 107
3.5 Étude de la taille des réseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
4 Un modèle de reconnaissance contrôlé en réseaux de Petri colorés 117
4.1 Construction et fonctionnement des réseaux dits « multi-jetons » . . . . . . . . . . 118
4.1.1 Types et expressions utilisés dans les réseaux multi-jetons . . . . . . . . . . 119
4.1.2 Structure globale des réseaux multi-jetons . . . . . . . . . . . . . . . . . . . 119
4.1.3 Briques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.1.4 Construction par induction . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
4.1.5 Bilan sur le degré de contrôle acquis et stratégie de tirage . . . . . . . . . . 133
4.2 Construction et fonctionnement des réseaux « contrôlés » . . . . . . . . . . . . . . 134
4.2.1 Types et expressions utilisés . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
4.2.2 Structure globale des réseaux . . . . . . . . . . . . . . . . . . . . . . . . . . 137
4.2.3 Briques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
4.2.4 Un séparateur de jetons générique . . . . . . . . . . . . . . . . . . . . . . . 144
4.2.5 Construction par induction des réseaux contrôlés . . . . . . . . . . . . . . . 146
4.2.6 Graphes d’espace d’états des réseaux contrôlés . . . . . . . . . . . . . . . . 159
4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
5 Bibliothèque C++ de reconnaissance de comportements et applications à la
surveillance de la sécurité d’avions sans pilote 165
5.1 Développement d’une bibliothèque C++ implémentant la reconnaissance de chroniques
: Chronicle Recognition Library (CRL) . . . . . . . . . . . . . . . . . . . . . 166
6TABLE DES MATIÈRES
5.2 Surveillance de cohérence au sein d’un UAS en cas de pannes . . . . . . . . . . . . 171
5.2.1 Description de l’architecture du système d’avion sans pilote étudié . . . . . 172
5.2.2 Modélisation du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
5.2.3 Objectifs de la reconnaissance de comportements dans ce cas d’étude . . . . 180
5.2.4 Écriture et formalisation des situations incohérentes à détecter . . . . . . . 181
5.2.5 Utilisation de CRL pour reconnaître les situations incohérentes . . . . . . . 182
5.3 Surveillance du bon respect de procédures de sécurité à suivre par un drone . . . . 185
5.3.1 Cadre du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
5.3.2 Mise en place du système de surveillance : écriture des chroniques critiques
à reconnaître . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
5.3.3 Application à des scénarios de simulation avec CRL . . . . . . . . . . . . . . 189
5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Conclusion et perspectives 193
Bibliographie 197
A Démonstrations de propriétés du langage des chroniques 207
A.0.1 Associativité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 207
A.0.2 Commutativité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
A.0.3 Distributivité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
Table des figures et des tableaux 211
Table des symboles 213
Table des acronymes 215
7Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
8Introduction
Dans de nombreux domaines, notamment l’aérospatial, le médical, la finance ou le nucléaire,
des quantités très importantes de données sont produites par des systèmes pouvant être réels ou
simulés. Pour la manipulation de ces masses énormes de données, des outils d’aide à l’analyse sont
nécessaires. Par exemple, l’industrie aérospatiale a recours de façon systématique à la simulation
afin de pouvoir étudier l’ensemble des caractéristiques de systèmes de grande envergure ; et il est
nécessaire de pouvoir exploiter les données produites.
Par ailleurs, au vu de l’automatisation croissante des tâches, les systèmes mis en cause sont de
plus en plus critiques et de plus en plus complexes. Ils mettent en interaction hommes, machines
et environnements, rendant ainsi les risques humains et matériels de très grande envergure. Ceci
rend nécessaire l’emploi de méthodes formelles pour s’assurer de la correction des outils d’aide à
l’analyse utilisés.
C’est dans ce contexte que s’inscrit la problématique de la reconnaissance formelle de comportements
dans le cadre de problèmes complexes, domaine du Complex Event Processing (CEP).
Il s’agit de développer des outils fiables d’aide à l’analyse de flux d’évènements permettant de
reconnaître des activités pouvant être aussi bien normales qu’anormales dans des flux complexes
d’évènements.
Parmi les formalisations de description et de reconnaissance de comportements, on peut citer
les suivantes :
— L’Event Calculus (EC), dont les travaux récents sont menés principalement par A. Artikis,
est fondé sur la programmation logique. Des séries de prédicats, qui peuvent être dérivés
par apprentissage [ASPP12], définissent les comportements à reconnaître. Initialement, leur
reconnaissance ne pouvait se faire en ligne, mais une solution est proposée dans [ASP12].
De plus, un raisonnement probabiliste peut être introduit dans l’EC [SPVA11].
— Les chroniques de Dousson et al. [DLM07] sont des ensembles de formules décrivant des
associations d’évènements observables et sont représentées par des graphes de contraintes.
— Les chroniques de [Ber09, CCK11] développées à l’Onera sont un langage temporel bien
distinct des chroniques de Dousson et permettant la description formelle de comportements
puis leur reconnaissance en ligne, et ce avec historisation des évènements (c’est-à-dire avec
la possibilité de remonter précisément à la source des reconnaissances). Elles sont définies
par induction à partir d’opérateurs exprimant la séquence, la conjonction, la disjonction
et l’absence. Un modèle de reconnaissance est proposé en réseaux de Petri colorés, où un
9Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
réseau calculant les ensembles de reconnaissances peut être construit pour chaque chronique
que l’on souhaite reconnaître.
Les applications de ces travaux sont très variées et touchent notamment à la médecine (monitoring
cardiaque par exemple), la gestion d’alarmes, la sécurité informatique, l’évaluation de la satisfaction
de passagers dans des transports publics, la surveillance vidéo, etc.
Cette thèse consiste à formaliser et étendre un langage de description de comportements, le langage
des chroniques de [CCK11], tout en développant des modèles d’implémentation du processus
de reconnaissance pour ensuite traiter des applications variées.
La démarche consiste dans un premier temps à formaliser et étendre le langage des chroniques
défini dans [CCK11] afin de répondre à un besoin d’expressivité plus important. On commence
par définir inductivement la syntaxe du langage, puis, afin de lui donner un sens, on explicite la
notion de reconnaissance de chronique par une fonction. Cette dernière est définie par induction
pour chaque chronique : à un flux d’évènements, elle associe l’ensemble des reconnaissances de
la chronique dans ce flux. Dans [CCK11], le formalisme de représentation des reconnaissances de
chroniques est ensembliste (chaque reconnaissance est représentée par un ensemble d’évènements),
mais cela ne permet pas de distinguer certaines reconnaissances car il n’est pas possible de savoir
à partir de ces ensembles à quelle partie de la reconnaissance de la chronique correspond chaque
évènement de l’ensemble de reconnaissance. Pour cela, on modifie ce formalisme en remplaçant la
représentation ensembliste par une représentation arborescente des reconnaissances qui permet de
conserver plus d’informations et de distinguer toutes les reconnaissances possibles.
Après cette formalisation, on peut étendre l’expressivité du langage avec de nouvelles constructions
temporelles et introduire la manipulation d’attributs d’évènements. Davantage de comportements
peuvent ainsi être exprimés et une plus grande variété d’applications peut être traitée.
Les constructions temporelles choisies sont de deux types : d’une part les constructions contraignant
temporellement une chronique par rapport à une autre, et d’autre part celles contraignant
une chronique par rapport à un délai. Ces constructions découlent classiquement des relations
d’Allen [All81, All83] qui décrivent tous les agencements possibles d’intervalles et sont compatibles
avec un modèle de temps continu adapté à des applications réelles. Parallèlement, la notion
d’attribut d’évènement est formalisée de manière à pouvoir manipuler des données liées aux évènements
du flux, puis, plus généralement, des données liées aux chroniques elles-mêmes. Ceci permet
d’introduire plusieurs niveaux de complexité et de considérer des chroniques comme des évènements
intermédiaires. La nécessité de pouvoir manipuler de telles données apparaît dès lors que
l’on essaie de traiter des exemples d’application d’une légère complexité. En effet, il est primordial
de pouvoir alors exprimer des corrélations entre des évènements différents, par exemple, de
pouvoir spécifier qu’ils proviennent d’une même source. Pour cela, des chroniques exprimant des
contraintes sur les attributs sont définies. De plus, afin de pouvoir considérer plusieurs niveaux
d’évènements-chroniques, une fonction permettant de construire des attributs de chroniques est
définie. L’ensemble de ces travaux est présenté dans le Chapitre 2.
On obtient alors un langage des chroniques expressif formalisé. Afin de pouvoir utiliser ce formalisme
pour effectuer la reconnaissance de comportements, il faut définir des modèles de ce processus
qui permettent l’utilisation du langage dans des applications quelconques. On doit pouvoir montrer
que l’exécution de ces modèles respecte la sémantique des chroniques. Pour ce faire, on choisit de
10Introduction
développer deux modèles d’implémentations différentes.
Un premier modèle, dans la continuité de celui présenté dans [CCK11], permet de reconnaître
les chroniques initiales de [CCK11] à l’aide de réseaux de Petri colorés, un langage de spécification
formelle adapté à la reconnaissance de comportements. Pour compléter la construction formelle
du modèle de [CCK11], on définit par induction cinq places centrales formant une structure clé
de chaque réseau, permettant ensuite de composer ensemble les réseaux et donc de définir une
construction formelle par induction des réseaux de reconnaissance. Le marquage des réseaux de
Petri colorés construits pour chaque chronique évolue au fur et à mesure du flux d’évènements.
Pour répondre au problème de la vérification de la correction du système vis-à-vis de la sémantique,
on démontre que ce marquage correspond exactement à la définition formelle de [PBC+]. Cette
formalisation et cette preuve sont présentées dans [CCKP12a] et développés dans le Chapitre 3.
Cependant, l’intégralité des transitions des réseaux de Petri de ce modèle sont toujours tirables.
Le modèle de reconnaissance est ainsi non déterministe dans le sens où il est nécessaire de tirer à
la main les transitions dans un certain ordre, en suivant une stratégie de tirage bien définie, pour
obtenir le résultat souhaité, c’est-à-dire l’ensemble de reconnaissance défini par la sémantique. On
souhaite donc modifier ce modèle pour obtenir un marquage final unique, tout en conservant la
double contrainte d’avoir d’une part une construction modulaire des réseaux calquée sur le langage,
et d’autre part de conserver de la concurrence dans l’exécution des réseaux. On procède en deux
temps. Tout d’abord, contrairement au premier modèle proposé dont les jetons contiennent des
listes d’instances de reconnaissance, on passe à un modèle de réseau multi-jetons : un jeton pour
chaque instance de reconnaissance afin d’initier l’implémentation d’un contrôle du réseau via des
gardes sur les transitions. Dans un second temps, une structure de contrôle du flux d’évènements
est implémentée pour achever la déterminisation du modèle tout en préservant la structure modulaire.
La concurrence présente dans l’exécution des réseaux et l’unicité du marquage final après le
traitement de chaque évènement du flux sont ensuite mis en avant en développant le graphe des
marquages accessibles à l’aide du logiciel CPN Tools. Ces travaux sont exposés dans [CCKP13a]
et développés dans le Chapitre 4.
Ce premier modèle de reconnaissance de chronique est cependant limité aux chroniques initiales
de [CCK11] et ne permet donc pas de reconnaître des constructions temporelles ni de manipuler des
attributs. Un second modèle de reconnaissance sur l’ensemble du langage étendu des chroniques est
donc développé en C++ permettant ainsi une application directe. Ses algorithmes sont fidèlement
calqués sur la sémantique du langage, justifiant ainsi le fonctionnement du modèle, CRL, qui est
déposé sous la licence GNU LGPL.
La bibliothèque CRL est utilisée dans des applications du domaine des drones. On considère
d’abord un système de drone (pilote, drone, Air Traffic Control (ATC)). On souhaite évaluer les
procédures d’urgence liées à des pannes de liaisons entre les différents acteurs du systèmes. Ces
procédures sont en cours de développement et l’on souhaite mettre en avant les éventuelles failles
corrigibles, et proposer un système d’alarmes pour les failles humaines dont il est impossible de
s’affranchir. On modélise le système et ses procédures par un diagramme UML implémenté en
C++ puis on le soumet à des pannes de liaisons éventuellement multiples pour reconnaître les
situations incohérentes pouvant donner lieu à un danger. crl et cette application sont présentées
dans [CCKP12b] et [CCKP13b], et développés dans le Chapitre 5.
11Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
On réalise également une seconde application dans le domaine des drones. On considère un
drone partant de l’aéroport d’Ajaccio pour une mission d’observation d’un feu en dehors de l’espace
aérien contrôlé. Il doit passer successivement dans des zones de l’espace aérien contrôlé puis
en sortir, et à chacune de ces actions sont associées des procédures de sécurité (points de passage,
clearances, . . . ). L’objectif est de proposer un moyen de surveillance du drone assurant le
respect des procédures. Pour ce faire, on écrit plusieurs niveaux de chroniques, où interviennent
des constructions temporelles et des contraintes sur des attributs d’évènements complexes. On
utilise crl pour reconnaître ces chroniques dans des flux d’évènements tests comprenant un fi-
chier de positions du drone produit par le battlelab blade de l’Onera [CBP10] ainsi qu’un fichier
d’évènements élémentaires (clearances, changement de fréquence radio, . . . ).
12Chapitre 1
Systèmes de traitement formel
d’évènements complexes
Sommaire
2.1 Définitions générales préalables . . . . . . . . . . . . . . . . . . . . . . 43
2.1.1 Évènements et leurs attributs . . . . . . . . . . . . . . . . . . . . . . . . 44
2.1.2 Opérations sur les attributs . . . . . . . . . . . . . . . . . . . . . . . . . 45
2.2 Définition d’une syntaxe étendue du langage des chroniques : ajout
de contraintes sur des attributs d’évènement et de constructions
temporelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
2.3 Définition de la sémantique du langage à travers la notion de reconnaissance
de chronique . . . . . . . . . . . . . . . . . . . . . . . . . 53
2.3.1 Passage à une représentation arborescente des reconnaissances . . . . . 53
2.3.2 Formalisation de la notion de reconnaissance de chronique . . . . . . . . 55
2.4 Propriétés du langage des chroniques . . . . . . . . . . . . . . . . . . 60
2.4.1 Définition d’une relation d’équivalence sur les chroniques . . . . . . . . 60
2.4.2 Relations entre ensembles de reconnaissances . . . . . . . . . . . . . . . 60
2.4.3 Associativité, commutativité, distributivité . . . . . . . . . . . . . . . . 62
2.5 Gestion du temps continu à l’aide d’une fonction Look-ahead . . . . 64
2.6 Tableau récapitulatif informel des propriétés du langage des chroniques
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
2.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
On va s’intéresser dans ce chapitre à exposer les principales méthodes de traitement formel
d’évènements complexes – Complex Event Processing (CEP) et plus généralement de l’Information
Flow Processing (IFP)
1
. Ces systèmes se présentent en deux parties principales : il y a
1. La distinction entre CEP et IFP est réalisée dans [CM12], le CEP est présenté comme étant une partie de l’IFP
qui contient également d’autres domaines comme celui des bases de données actives.
13Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
d’une part le moyen employé pour la description formelle des comportements à reconnaître, et
d’autre part le processus de reconnaissance de ces comportements dans un flux d’évènements.
Pour une introduction globale au domaine du traitement d’évènements complexes, nous renvoyons
aux livres [Luc02, EN10]. D’autre part, [LSA+11] présente un glossaire des termes employés dans
le domaine.
Nous allons commencer par dégager dans la Section 1.1 les principales problématiques de l’IFP.
Dans les sections suivantes, nous présentons ensuite successivement quatre méthodes de reconnaissance
d’évènements complexes qui sont représentatives de notre problématique : l’Event Calculus
(EC) dans la Section 1.2, le langage ETALIS dans la Section 1.3, le langage des chroniques de
Dousson et al. dans la Section 1.4, et le langage des chroniques Onera dans la Section 1.5. Dans
une dernière section (1.6), nous présentons succinctement une sélection d’autres méthodes autour
de l’IFP et donnons un aperçu des domaines d’application.
1.1 Principaux enjeux
On s’attache dans cette section à mettre en avant les principaux enjeux permettant de distinguer
les différentes approches formelles de l’IFP.
Expressivité Il est nécessaire que le langage utilisé pour la description des comportements à
reconnaître soit suffisamment expressif pour exprimer toutes les nuances désirées selon l’application
envisagée. Cependant, il est clair qu’une grande expressivité ira inévitablement
de pair avec une plus grande complexité du processus de reconnaissance. Il s’agit donc de
trouver l’équilibre adéquat. La section 3.8 de [CM12] présente les principaux opérateurs et
constructions que l’on rencontre dans la littérature. On retrouve notamment la conjonction,
la disjonction, la séquence, la négation ou l’absence, l’itération, l’expression de contraintes
temporelles, la manipulation de paramètres. . . La notion de négation ou d’absence est particulièrement
épineuse : il est nécessaire de délimiter l’intervalle de temps précis sur lequel
porte une négation ou une absence pour pouvoir déterminer si une telle construction est
reconnue. Par ailleurs, la question d’avoir une syntaxe ouverte ou fermée se pose. Il s’agit
d’autoriser, ou non, la possibilité d’écrire des formules n’ayant pas de sens.
Praticité d’écriture & lisibilité Dans le contexte du dialogue avec des experts pour la réalisation
d’une application, la praticité d’écriture du langage est importante. On s’intéresse à
la concision et à la lisibilité du langage qui faciliteront la discussion avec les spécialistes du
domaine et leur utilisation du système de reconnaissance. Il s’agit là encore de trouver un
équilibre entre lisibilité et expressivité : une lisibilité excessive peut conduire à une simplifi-
cation extrême du langage et donc à une expressivité réduite.
Efficacité L’efficacité du processus de reconnaissance est cruciale. En effet, l’analyse des données
se veut souvent être réalisée en ligne. Ceci implique la nécessité d’un temps de calcul
réduit permettant de traiter les évènements du flux suffisamment rapidement par rapport
à leur fréquence d’arrivée. Naturellement, la rapidité du processus est directement liée à la
promptitude de la réponse au problème étudié qui peut être capitale par exemple s’il s’agit
de produire une alarme lorsqu’une situation critique se produit.
14CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES
Multiplicité On peut s’intéresser à établir toutes les reconnaissances d’un comportement donné,
et non uniquement l’information que le comportement a eu lieu au moins une fois. La multiplicité
des reconnaissances est nécessaire dans la perspective de recherche de comportements
dangereux où il peut être essentiel de savoir qu’un comportement s’est produit plusieurs
fois. Par exemple, dans certains domaines d’application comme la supervision de réseaux
de télécommunications [Dou02], certaines pannes ne sont identifiables qu’à travers la multiplicité
d’un comportement donné qui n’est en revanche pas significatif individuellement. En
revanche, la multiplicité peut aller à l’encontre de l’efficacité du processus qui doit reconnaître
toutes les occurrences et n’a donc pas le droit à l’oubli de reconnaissances intermédiaires.
Pour pouvoir s’adapter à toutes les situations, on peut définir différents degrés d’exhaustivité
des reconnaissances. Par exemple, [CM12] pose les contextes suivants qui établissent
différentes gestions de la multiplicité des reconnaissances :
— dans le contexte « récent », seule l’occurrence la plus récente d’un événement qui débute
une reconnaissance est considéré (ainsi, pour il y a toujours un évènement initiateur
unique) ;
— dans le contexte « chronique », les plus anciennes occurrences sont utilisées en premier,
et sont supprimées dès leur utilisation (ainsi, les évènements initiateur et terminal sont
uniques) ;
— dans le contexte « continu », chaque évènement initiateur est considéré ;
— dans le contexte « cumulatif », les occurrences d’évènements sont accumulées, puis supprimées
à chaque reconnaissance (ainsi, un évènement ne peut pas participer à plusieurs
reconnaissances).
Historisation Il s’agit de pouvoir spécifier, pour chaque reconnaissance d’un comportement, quels
sont les évènements du flux qui ont mené à cette reconnaissance. L’historisation permet alors
de distinguer les différentes reconnaissances et donc d’y réagir plus finement. Il s’agit d’une
forme de traçabilité qui apporte également la possibilité d’un retour d’expérience sur les
causes du comportement détecté.
Traitement des évènements Plusieurs caractéristiques peuvent être requises par le système sur
le flux d’évènements à traiter. Un flux unique totalement et strictement ordonné et dont les
évènements arrivent dans l’ordre sans retard constitue un flux idéal, et l’algorithme de reconnaissance
associé en sera a priori simplifié. Cependant les domaines d’applications peuvent
exiger d’avoir la possibilité de considérer notamment :
— un ordre uniquement partiel entre les évènements à analyser ;
— des sources distribuées d’évènements – il faut alors définir correctement l’ordre entre les
évènements provenant de deux flux différents ;
— un ordre non strict entre les évènements pour prendre en compte l’arrivée simultanée
d’évènements ;
— des évènements arrivant en retard ou étant corrigés a posteriori – il s’agit alors de pouvoir
malgré tout les traiter correctement. La gestion d’événements révisés est utile par exemple
dans les cas d’application où un événement a été envoyé puis reçu, mais ensuite révisé
suite à l’échec d’une transaction.
15Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Centralisation ou distribution Le flux d’évènements à analyser peut provenir d’une source
centralisée ou distribuée. Dans le cas d’un système distribué se pose la question de l’ordonnancement
des évènements provenant des différentes parties du système. Par exemple,
l’hypothèse d’une horloge synchronisée peut être prise.
Modèle de temps Le modèle de temps adopté est en général linéaire. Il peut être discret, avec
une granularité adaptable, ou bien continu. Dans certains systèmes comme les Systèmes de
Gestion de Flux de Données – Data Stream Management Systems (DSMSs), aucun modèle
de temps particulier n’est utilisé et seul l’ordre entre les évènements est considéré mais cela
a alors une incidence sur l’expressivité du langage de description de comportements utilisé.
Actions Il peut être possible de déclencher des actions à différents instants dans le processus
de reconnaissance. Parmi les actions, on peut considérer entre autres la production d’un
évènement associé à la reconnaissance d’un comportement et son intégration au flux. Se
pose alors la question de l’ordre de traitement de ces nouveaux évènements par rapport aux
autres évènements du flux. On peut également imaginer des actions d’une complexité plus
importante : par exemple, ajouter dynamiquement un nouveau comportement à reconnaître.
Méthodes d’écriture L’écriture, dans le langage formel utilisé, des comportements à reconnaître
présente une double difficulté qui dépend de l’expressivité et de la lisibilité du langage.
D’une part, il faut exactement identifier toutes les situations à reconnaître pour répondre
au problème étudié. D’autre part, il faut correctement transcrire ces comportements dans
le langage utilisé. Des méthodes plus ou moins automatisées et principalement fondées sur
des statistiques peuvent être proposées aux experts chargés d’écrire les comportements à
reconnaître.
Gestion d’incertitudes Lors de l’analyse d’activités réelles, de nombreuses indéterminations apparaissent
naturellement : incertitudes sur les comportements à reconnaître, incertitudes sur
la date d’occurrence ou même sur l’occurrence elle-même d’évènements. . . Des mécanismes
de gestion d’incertitudes peuvent donc être établis au niveau du langage de description et/ou
au niveau de l’algorithme de reconnaissance, selon les indéterminations considérées.
1.2 Event Calculus
Le calcul d’évènements, ou EC, est une formalisation permettant la représentation et le raisonnement
sur des évènements et des actions et pouvant s’exécuter sous la forme d’un programme
logique. Il s’intéresse à établir la valeur de propositions logiques dans le temps.
L’EC est introduit par Kowalski et Sergot dans [KS86] et tire son nom du calcul de situation
(Situation Calculus) dont il se distingue par le fait qu’il traite d’évènements locaux plutôt que
d’états globaux. Le but est de s’affranchir du problème du cadre dans un souci d’efficacité. L’EC se
veut constituer une analyse formelle des concepts mis en jeu, à savoir les évènements et les actions.
Il peut être exprimé à partir de clauses de Horn 2 auxquelles est ajoutée la négation par l’échec 3
,
2. On rappelle qu’une clause de Horn est une formule du calcul propositionnel de la forme (p1 ∧ . . . ∧ pn) ⇒ q
où n ∈ N, p1, . . . , pn sont des littéraux positifs et q est un littéral quelconque.
3. La négation par l’échec se fonde sur le principe que la base de connaissances est complète et que donc, si tous
16CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES
se plaçant ainsi dans le cadre de la programmation logique.
Les principes initiaux majeurs de l’EC sont les suivants :
— les évènements peuvent être traités dans un ordre quelconque non nécessairement lié à leur
ordre d’occurrence ce qui fait que le passé et le futur sont considérés symétriquement ;
— en particulier, des évènements peuvent être concurrents et ne sont pas forcément considérés
comme ponctuels ;
— les mises à jour sont toujours additives dans le sens où elles ne peuvent pas retirer d’informations
passées ;
— ce n’est pas tant la date des évènements qui est importante que leur ordre relatif.
Il existe de nombreux dialectes de l’EC fondés sur des axiomatiques proches et permettant de
traiter diverses spécificités telles que la gestion d’actions différées ou de changements continus entre
états. De telles axiomatiques sont recensées dans [MS99] et on peut également citer [PKB07, PB08].
Nous nous intéressons plus particulièrement à l’EC élaboré par Artikis et al. pour la reconnaissance
de comportements. Ce dialecte, implémenté en programmation logique, est dédié à la
reconnaissance de comportements complexes de haut niveau à partir d’évènements de bas niveau.
Les comportements composites à reconnaître sont définis à l’aide de prédicats présentés Tableau 1.1
et permettant l’expression de contraintes temporelles sur un modèle de temps linéaire. Ces prédicats
sont définis par des axiomes dont certains pouvant être indépendants du domaine d’application.
Ce formalisme est expressif. Il permet d’exprimer des contraintes complexes aussi bien temporelles
qu’atemporelles et de décrire des situations dans lesquelles un certain comportement ne doit pas
avoir lieu dans un certain laps de temps [AP09]. Cette dernière caractéristique est liée au mécanisme
de l’absence dans le formalisme des chroniques.
Selon les demandes de l’utilisateur, un comportement de haut niveau à reconnaître peut être
défini comme un évènement ponctuel simple ou complexe à l’aide du prédicat happensAt ou comme
un fluent – i.e. une propriété non ponctuelle pouvant prendre différentes valeurs dans le temps –
à l’aide de initially, initiatedAt, holdsFor. . . Pour les activités non ponctuelles, il s’agit de
calculer les intervalles maximaux durant lesquels un fluent possède une certaine valeur. Pour ce
faire, tous les instants de début d’intervalle puis chaque instant de fin correspondant sont évalués.
En effet, intuitivement, un principe d’inertie (exprimant qu’une valeur n’a pas changé tant qu’elle
n’a pas été modifiée) est respecté dans le sens où l’on considère qu’un fluent vérifie une certaine
valeur si celle-ci a été fixée par un évènement et que, depuis, aucun autre évènement ne l’a modifiée.
La question de l’écriture des comportements à reconnaître est étudiée dans [ASP10b, AEFF12].
En effet, l’écriture par des experts des activités à reconnaître est fastidieuse et fortement susceptible
de donner lieu à des erreurs, donc il est intéressant de développer un procédé automatique pour
engendrer des définitions à partir de données temporelles. Une telle méthode d’apprentissage fondée
sur une combinaison d’abductions et d’inductions est utilisée dans [ASP10b, AEFF12] pour inférer
les comportements à reconnaître.
Une problématique majeure de la reconnaissance de comportements est la possibilité ou non
d’exécuter le processus de reconnaissance en temps réel. L’algorithme de base de ce dialecte d’EC
fonctionne avec une méthode d’interrogation du système : le raisonnement ne se fait pas au fur
les moyens pour montrer une propriété échouent, c’est que sa négation est vérifiée (hypothèse du monde clos).
17Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Tableau 1.1 – Principaux prédicats de l’EC
Prédicat Correspondance intuitive
happensAt(E, T) Occurrence de l’évènement E à
l’instant T.
initially(F = V ) Le fluent F vaut V à l’instant
0.
holdsAt(F = V, T) Le fluent F vaut V à l’instant
T.
holdsFor(F = V, I) I est la liste des intervalles
maximaux où F vaut V .
initiatedAt(F = V, T) À l’instant T, un intervalle de
temps où F vaut V débute.
terminatedAt(F = V, T) À l’instant T, un intervalle de
temps où F vaut V s’achève.
union_all(L, I) I est la liste des intervalles
maximaux correspondant à
l’union des ensembles d’intervalles
de la liste L.
intersect_all(L, I) I est la liste des intervalles
maximaux correspondant à l’intersection
mutuelle des ensembles
d’intervalles de la liste
L.
relative_complement
_all(I
0
, L, I)
I est la liste des intervalles
maximaux correspondant à la
différence ensembliste entre la
liste d’intervalles I
0
et chaque
ensemble d’intervalles de la liste
L.
et à mesure mais à la demande de reconnaissance d’une activité de haut niveau [APPS10]. Pour
réaliser une analyse en ligne, il est nécessaire de constamment interroger le programme ; et sans
système de mémoire-cache, il faut à chaque fois recommencer les calculs à zéro. De plus, l’un des
principes de base de l’EC, à savoir le fait que la reconnaissance de comportements ne doit pas être
affectée par l’ordre dans lequel arrivent les évènements à analyser, ne contribue pas à diminuer la
complexité de calcul. Dans [CM96], Chittaro et al. présentent une version de l’EC dénommée Cached
Event Calculus (CEC) et dont l’implémentation inclut la gestion de mémoire-cache, réduisant ainsi
significativement la complexité du processus. Cependant, comme le CEC n’a pas de système d’oubli
ni de péremption et qu’il accepte des évènements datés plus tôt que d’autres évènements ayant déjà
été traités, les temps de reconnaissance augmentent au fur et à mesure de l’arrivée des évènements
de bas niveau à traiter et, après un certain temps, peuvent finir par ne plus respecter les temps de
18CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES
calcul minimaux nécessaires pour une reconnaissance en ligne correcte.
Pour résoudre ces problèmes, Artikis et al. proposent dans [ASP12] une implémentation efficace
de leur processus de reconnaissance, nommée Event Calculus for Run-Time reasoning (RTEC)
4
et réalisée sous YAProlog 5
. Le programme fonctionne toujours par interrogations successives du
système, et comme pour le CEC, un dispositif de mémoire-cache est mis en place pour stocker
les intervalles maximaux calculés par les prédicats holdsFor pour chaque fluent F. Ceci permet
de n’avoir pas à recalculer ces intervalles à chaque itération. La problématique du calcul vient
ensuite du fait que des évènements peuvent ou bien arriver en retard, ou bien être corrigés a
posteriori. L’algorithme est élaboré de façon à pouvoir traiter correctement ce genre de situation.
Deux paramètres du programme sont à fixer :
— d’une part, le pas Qi+1 − Qi entre deux interrogations Qi et Qi+1 du système ;
— d’autre part, la taille WM (Working Memory) de la fenêtre des évènements à considérer.
À chaque itération Qi
les évènements datés dans l’intervalle ]Qi − WM, Qi
] sont analysés. Ainsi,
dans le choix des paramètres, le signe de la différence WM − (Qi+1 − Qi) est significatif :
— si WM < Qi+1 − Qi
, alors les évènements de la fenêtre ]Qi
, Qi+1 − WM] ne seront jamais
analysés, et si un évènement arrive en retard ou est corrigé, il ne sera pas considéré ;
— si WM = Qi+1 − Qi
, alors exactement tous les évènements arrivés à temps seront analysés ;
— si WM > Qi+1 − Qi
, alors le système peut traiter des évènements arrivant ou bien avec un
certain délai ou bien corrigés dans un certain délai. L’algorithme fonctionne alors comme
suit. Les parties des intervalles maximaux calculés auparavant et s’intersectant avec la fenêtre
]Qi−WM, Qi
] sont tronqués. Ensuite, les évènements de la fenêtre ]Qi−WM, Qi
] sont
analysés pour recalculer des intervalles maximaux sur cette fenêtre, éventuellement certains
identiques à ceux ayant été tronqués. Enfin, les morceaux sont « recollés » afin de recréer
des intervalles maximaux globaux.
L’algorithme plus détaillé de RTEC est présenté dans [ASP12], avec une analyse des performances
du système sur des données réelles et sur des données synthétisées.
Dans [AMPP12, PAMP12], une architecture de système pour la reconnaissance de comportements,
Event Processing for Intelligent Ressource Management (EP-IRM), est proposée. Elle peut
être dotée de nombreux composants pouvant facilement être ajoutés ou supprimés. Certaines applications
sont indépendantes du domaine et peuvent être utilisées quelle que soit l’étude, comme par
exemple l’affichage de cartes MAP. Le système est également composé d’un moteur détectant les
évènements de bas niveau qui sont ensuite envoyés au moteur de reconnaissance de comportements
complexes.
Par ailleurs, plusieurs approches probabilistes de l’EC sont développées. Tout d’abord, Artikis et
al. étendent dans [SPVA11] le formalisme de l’EC au raisonnement probabiliste à l’aide de Réseaux
Logiques de Markov [DL09] qui combinent l’expressivité de la logique du premier ordre avec la
sémantique formelle probabiliste des réseaux de Markov. D’autre part, dans [SAFP14], Artikis
et al. proposent une adaptation de l’EC au cadre de la programmation logique probabiliste en
utilisant ProbLog [KDDR+11]. Ceci permet de répondre au problème de détections incorrectes des
4. RTEC est disponible en open-source sur le web : http://users.iit.demokritos.gr/~a.artikis/
RTEC-3examples.zip.
5. http://www.dcc.fc.up.pt/~vsc/Yap/
19Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
évènements de bas niveau en travaillant sur un flux d’évènements où chaque évènement est doté
d’un indice de confiance. En revanche, la reconnaissance en ligne n’est pas encore réalisable avec
ce formalisme, et il ne permet pas de traiter le cas des définitions imprécises des comportements
à reconnaitre. Une autre approche pour la gestion d’incertitude est présentée dans [AWG+13].
Elle est orthogonale à celle de [SAFP14] dans le sens où elles peuvent être combinées. Le principe
consiste à utiliser la variété des sources d’évènements pour déterminer leur véracité. Un système
d’« auto-adaptation » est implémenté en utilisant le processus de reconnaissance de comportements
lui-même. En effet, des définitions de comportements complexes sont écrites pour identifier les
domaines d’incertitude et y réagir : lorsque l’incertitude est significative, le système peut ignorer
les évènements d’un certain laps de temps ou bien, momentanément, ne pas considérer certaines
sources d’évènements. [AWS+14] répond à la même problématique en ayant en plus recours à du
crowdsourcing pour trancher lorsque les désaccords entre les sources sont significatifs.
1.3 Le langage ETALIS
Le langage de description de comportements Event-driven Transaction Logic Inference System
(ETALIS)
6
[ARFS12, Ani11] est un langage de CEP muni d’une syntaxe et d’une sémantique
formelles permettant simultanément de raisonner sur des connaissances temporelles (concernant
des évènements) et sur des connaissances stables ou en évolution (règles, faits, ontologies, données
encyclopédiques. . . ), et ce à l’aide d’un système réalisant l’analyse de comportements en ligne.
ETALIS est un langage de programmation logique. Sa syntaxe est définie par des règles dont
les principales constructions sont présentées dans le Tableau 1.2. Le modèle de temps adopté est
linéaire et dense mais dénombrable (l’ensemble des rationnels Q) ; les évènements de base du flux à
analyser peuvent être aussi bien des évènements instantanés que des évènements ayant une durée,
ils sont datés par des intervalles de temps [T1, T2] où éventuellement T1 = T2. Le langage présente
une expressivité forte :
— l’ensemble des 13 relations d’Allen peut être décrit,
— des contraintes peuvent être exprimées sur des propriétés d’évènements,
— une notion d’absence est développée, mais limitée au cadre de la séquence,
— une distinction précise est faite entre la conjonction en série et celle en parallèle,
— il est possible de réaliser des définitions récursives de comportements ce qui permet, par
exemple, d’accumuler à l’aide d’une fonction une valeur sur une suite d’évènements.
Une première sémantique déclarative formelle est fournie [AFR+10, ARFS12] ; les interprétations
de motifs (patterns) d’évènements (i.e. des comportements à reconnaître) est définie par
induction à la manière de la théorie des modèles. Il s’agit d’ensembles de reconnaissances où une
reconnaissance est représentée par un couple hq1, q2i, avec q1, q2 ∈ Q, délimitant l’intervalle de
temps nécessaire et suffisant à la reconnaissance. Les informations relatives aux évènements ayant
donné lieu à la reconnaissance ne sont pas conservées, il n’y a donc pas de possibilité d’historisation.
Le système de reconnaissance ETALIS est implémenté en Prolog. Pour ce faire, une seconde
sémantique, opérationnelle, est définie à l’aide de règles de programmation logique. Les compor-
6. ETALIS est disponible en open-source sur le web : http://code.google.com/p/etalis/.
20CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES
Tableau 1.2 – Principales constructions du langage ETALIS [AFR+10]
Constructions Correspondance intuitive
p where t Le comportement p est reconnu et le terme t prend la valeur vraie.
q Pour tout q ∈ Q, correspond à l’instant absolu q.
(p).q Le comportement p est reconnu et dure exactement q, avec q ∈ Q.
p1 seq p2 Le comportement p1 est suivi, strictement (dans le temps), du
comportement p2.
p1 and p2 Les comportement p1 et p2 sont reconnus, sans aucune contrainte
temporelle.
p1 par p2 Les comportement p1 et p2 sont reconnus en parallèle, i.e. ils se
chevauchent dans le temps.
p1 or p2 L’un des deux comportements est reconnu.
p1 equals p2 Les deux comportements sont reconnus sur exactement le même
intervalle de temps.
p1 meets p2 Le dernier instant de reconnaissance de p1 est exactement le premier
instant de reconnaissance de p2.
p1 during p2 Le comportement p1 est reconnu pendant le comportement p2.
p1 starts p2 L’intervalle de reconnaissance de p1 est un segment initial de l’intervalle
de reconnaissance de p2.
p1 finishes p2 L’intervalle de reconnaissance de p1 est un segment final de l’intervalle
de reconnaissance de p2.
not(p1).[p2, p3] Les comportements p2 et p3 sont reconnus dans cet ordre, sans
occurrence de p1 strictement entre les deux dans le temps.
21Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
tements complexes recherchés sont décomposés en des évènements intermédiaires appelés buts
(goals). ETALIS compile les comportements complexes pour fournir un ensemble de règles permettant
l’Event-Driven Backward Chaining (EDBC) – chaînage arrière piloté par les données. C’est le
chaînage arrière piloté par les données qui rend possible un processus de reconnaissance en ligne.
Deux types de règles résultent de la compilation [AFSS09] :
— D’une part, des règles créant les buts à reconnaître pour avancer dans la reconnaissance
du comportement complexe. Les buts créés représentent l’occurrence d’un évènement et
l’attente d’un autre évènement pour reconnaître un évènement (complexe). Elles sont de la
forme goal(b
[−,−]
, a[T1,T2]
, ie[−,−]
1
) qui exprime qu’à la reconnaissance d’un évènement (éventuellement
complexe) a sur l’intervalle [T1, T2], le système est en attente d’un évènement b
pour reconnaître l’évènement ie1.
— D’autre part, des règles créant des évènements intermédiaires ou des patterns d’évènements.
Celles-ci vérifient dans la base de données si un certain but existe déjà, et, s’il existe effectivement,
déclenchent l’évènement qui a été reconnu par le but. Par exemple, si le but
goal(b
[T3,T4]
, a[T1,T2]
, ie[−,−]
1
) figure dans la base de données, alors l’évènement ie[T1,T4]
1
est
déclenché et ensuite propagé s’il s’agit d’un évènement intermédiaire ou utilisé pour déclencher
une action s’il s’agit de l’un des comportements complexes recherchés. Les règles de ce
type permettent également de supprimer de la base de données les buts qui ne sont plus
nécessaires car obsolètes.
En d’autres termes, chaque but correspond à un sous-comportement restreint à deux évènements
(dans les exemples précédents il s’agit de a et b), et les buts sont chaînés pour aboutir à la reconnaissance
du comportement complexe recherché. La structure de la décomposition d’un comportement
complexe en buts correspond donc essentiellement à celle d’un arbre binaire.
Il n’y a pas de démonstration d’équivalence entre les deux sémantiques. Les auteurs s’assurent
en revanche que la sémantique opérationnelle est belle et bien déclarative [ARFS12], et que donc
le comportement du système est à la fois prédictible et reproductible.
En ce qui concerne la multiplicité des reconnaissances, ETALIS permet l’implémentation des
politiques de consommation d’évènements suivantes (introduites dans la Section 1.1) : contexte
récent, contexte chronique et contexte libre (i.e. sans restriction, multiplicité totale). Mais il faut
noter que l’on perd l’aspect déclaratif si l’on utilise une autre politique que celle dite libre, et
l’ordre d’évaluation des règles devient alors significatif.
Une analyse des performances d’ETALIS est présentée dans [AFR+10] sur un cas d’étude analysant
l’efficacité d’un système de livraison de fleurs (Fast Flower Delivery Use Case [EN10]).
Par ailleurs, la nature logique de l’approche rend possible un raisonnement déductif en temps
réel sur une base de connaissances fixe de données structurées de l’environnement. Celle-ci permet
de définir une sémantique de l’information utilisable par un système.
ETALIS permet la gestion d’évènements arrivant en retard dans un flux ordonné par rapport au
temps [FAR11] grâce à l’ajout de deux types de règles :
— Des règles de type goal_out(a
[−,−]
, b[T3,T4]
, ie[−,−]
1
) exprimant que l’évènement b a été reçu
et que a est en attente, mais avant b, pour réaliser la reconnaissance de ie1.
— Des règles de la forme if goal_out(. . . ) and T2 < T3, alors si un évènement a arrive avec
effectivement T2 < T3, l’événement ie[T1,T4]
1
est déclenché.
22CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES
Un tel algorithme a la particularité de ne pas gérer les évènements en retard au détriment de l’ef-
ficacité du processus de reconnaissance pour les évènements arrivant à temps : la reconnaissance
est toujours quasi-immédiate si tous les évènements composant un comportement complexe sont
arrivés à temps. En revanche, le système nécessite la mise en place d’une procédure de libération
de mémoire assurant la suppression des règles de type goal_out après un certain laps de temps.
[FAR11] précise que, pour « des raisons pratiques » (sûrement une question d’efficacité de reconnaissance
par surcharge de règles), cette fonctionnalité n’a pas été implémentée pour la politique de
consommation d’évènements dite libre ; on perd donc la multiplicité des reconnaissances. Pour mener
les cas de retard d’un évènements interdit dans une absence, la gestion d’arrivée d’évènements
en retard doit être couplée avec la gestion d’évènements révisés, présentée brièvement ci-dessous.
En effet, si l’on considère une négation not(c).[a, b] et qu’une reconnaissance est invalidée par
l’arrivée d’un c en retard, il faut alors réviser la reconnaissance erronée.
ETALIS permet également la gestion d’évènements révisés [ARFS11]. Comme évoqué en 1.1,
ceci peut s’avérer utile dans le cas d’un échec d’une procédure amenant ainsi la correction d’un
évènement déjà envoyé. Des sortes de marqueurs sont ajoutés, permettant d’indiquer quels évè-
nements (éventuellement intermédiaires) ont donné lieu à quels buts. Ceci permet d’identifier les
instances d’évènements à réviser et de propager correctement la révision dans tout le système. Des
règles rev sont ajoutées pour supprimer les buts (goal(. . . )) insérés mais révisés.
1.4 Le langage des chroniques de Dousson et al.
Le langage des chroniques a été développé pour décrire formellement une signature évènementielle
et offre un cadre pour le traitement d’évènements complexes – CEP. Le terme de « chronique »
est un terme générique englobant plusieurs systèmes formels voués à la description et à la reconnaissance
de comportements. On décrit, dans cette sous-section, un premier formalisme de la notion
de chronique.
Un langage des chroniques a été introduit notamment dans [Gha96] et développé principalement
par Dousson et al. [DGG93, Dou02, DLM07]. Il permet de décrire formellement des agencements
d’évènements. Une chronique est en quelque sorte un ordre partiel d’évènements observables dans
un certain contexte. Le langage est doté d’un processus de reconnaissance en ligne efficace permettant
d’analyser un flux d’évènements datés mais dont les évènements n’arrivent pas nécessairement
dans leur ordre d’occurrence pour y reconnaître des situations et éventuellement déclencher des
actions ou produire un évènement à une date définie relativement aux dates des évènements ayant
donné lieu à la reconnaissance.
On manipule des prédicats exprimant le fait qu’un attribut fixé ait une certaine valeur sur
un intervalle de temps donné. Un motif d’évènement correspond à un changement de valeur d’un
attribut, et un évènement est alors une instance datée ponctuelle de motif d’évènement [DGG93]. Le
modèle de temps adopté est linéaire et discret, la résolution adoptée étant supposée suffisante pour
le contexte étudié. Une distinction est opérée entre la date d’occurrence et la date de réception des
évènements observés. Une borne sur le délai de réception d’un évènement est fournie par l’utilisateur
pour chaque motif d’évènement. Ceci permet, comme dans l’Event Calculus, de considérer des
23Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
évènements arrivant avec un retard borné. Par ailleurs, de même que pour l’Event Calculus, on
suppose la complétude du flux d’évènement, c’est-à-dire qu’entre deux activations d’une propriété
il y a nécessairement un évènement de désactivation de cette propriété (par rapport aux dates
d’occurrences).
Un modèle de chronique à reconnaître [DGG93] est composé :
— d’un ensemble de motifs d’évènements exprimés par les prédicats du Tableau 1.3,
— de contraintes temporelles sur ces motifs d’évènements reliées par une conjonction implicite
(pour des raisons de complexité, il n’est pas possible d’exprimer de disjonction),
— d’un contexte général permettant d’exprimer des contraintes contextuelles,
— d’éventuelles actions à réaliser à la reconnaissance (notamment la production d’évènements).
Dans [Dou02], le prédicat occurs présenté dans le Tableau 1.3 est ajouté pour répondre à la
question du comptage d’évènements qui est un problème typique du domaine de la gestion d’alarmes
où certaines pannes ne sont identifiables que par comptage. occurs permet de faciliter l’écriture de
ce genre de chroniques et d’optimiser le processus de reconnaissance associé. En effet, sinon, il faut
écrire beaucoup de chroniques pour exprimer la même situation, or la complexité du processus de
reconnaissance dépend du nombre de chroniques à étudier.
Tableau 1.3 – Principaux prédicats et notations des chroniques [Dou96, Dou02]
Prédicat Correspondance intuitive
hold(P : v,(t1, t2)) Le nom d’attribut P a la valeur v sur l’intervalle [t1, t2], sans
implication sur l’instant où il a pris cette valeur.
event(P : (v1, v2), t) L’attribut P passe de la valeur v1 à la valeur v2 à l’instant t.
noevent(P,(t, t0
)) P ne change pas de valeur sur l’intervalle [t, t0
[.
occurs(n1, n2, a,(t1, t2)) L’évènement a a lieu exactement N fois, avec n1 ≤ N ≤ n2, dans
l’intervalle de temps [t1, t2[. (permet l’unification du langage)
Notation
? « ? » permet d’indiquer une valeur quelconque.
Le processus de reconnaissance de chroniques est illustré par la Figure 1.4. Dans un premier
temps, il s’agit de compiler hors ligne les modèles de chroniques fournis par l’utilisateur afin de
transcrire les contraintes temporelles de chaque modèle en un graphe de contraintes minimal (la
relation d’ordre pour laquelle ce graphe est minimal est définie dans [DD99]). Ce pré-traitement
permet notamment de mettre en avant les incohérences éventuelles des modèles de chroniques
(l’algorithme employé pour la compilation étant incrémental, il désigne même un sous-ensemble de
contraintes incohérentes). L’algorithme de reconnaissance est fondé sur ces graphes.
Le système doit ensuite être initialisé avec les états initiaux du monde considéré, datés à −∞,
puis la reconnaissance de chroniques peut être lancée. Des instances partielles, i.e. des reconnaissances
encore non complètes, sont manipulées. Elles sont chacune en attente d’évènements
manquants pour compléter la reconnaissance. Ces évènements manquants doivent arriver dans un
certain intervalle de temps, la fenêtre d’admissibilité, calculée grâce au graphe de contraintes et
24CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES
Figure 1.4 – Le système de reconnaissance de chroniques [Dou94]
ce afin de vérifier les contraintes temporelles spécifiées dans la chronique correspondante. Si un
évènement attendu n’arrive pas avant la fin de sa fenêtre d’admissibilité ou si l’une des conditions
générales de la chronique n’est plus vérifiée, l’instance partielle est alors abandonnée et supprimée.
Au contraire, lorsqu’une instance partielle s’apprête à être complétée par un évènement, elle est
d’abord dupliquée afin de garantir la reconnaissance de toutes les situations : l’instance partielle
complétée peut ainsi être de nouveau complétée par une autre occurrence d’un évènement similaire.
La duplication d’instances est la principale source de complexité du processus de reconnaissance.
Afin d’optimiser la manipulation des instances (partielles) de reconnaissance, celles-ci sont stockées
dans un arbre. Au fur et à mesure de l’arrivée des évènements pertinents les contraintes temporelles
exprimées par les fenêtres d’admissibilité du graphe de contraintes sont mises à jour et les
modifications sont propagées dans le reste du graphe. Ceci permet de traiter directement l’arrivée
de tout évènement. Une propagation des modifications est également effectuée lorsque le temps
avance : le système calcule le prochain instant critique et une mise à jour est effectuée lorsque le
temps courant atteint cet instant [DGG93]. Le processus de reconnaissance est donc exhaustif, et
le plus efficace pour diminuer sa complexité est de limiter la durée de validité d’une instance de
chronique [AD01].
Le système peut également prendre en entrée, en plus des évènements datés, l’assertion AssertNoMore(e,
I) où e est un évènement et I est un intervalle étendu (i.e. une union disjointe d’intervalles)
[DLM07]. Cette assertion indique qu’aucun évènement e n’aura lieu dans I. À la réception
d’un tel message, les fenêtres d’admissibilité sont mises à jour en leur appliquant la différence ensembliste
avec I et les modifications sont propagées dans le graphe. Cette assertion est introduite
dans le but d’être utilisée à des fins d’optimisation, ce qui sera détaillé par la suite.
25Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Pour le prédicat occurs(n1, n2, a,(t1, t2)), un compteur est associé au prédicat et tant que
l’instant t2 n’est pas atteint, il n’est pas possible de déterminer si le prédicat est vérifié. À l’arrivée
d’un évènement a à la date d, les instants t1 et t2 n’ont pas encore nécessairement de valeur mais
sont contraints à des intervalles [I
−
t1
, I+
t1
] et [I
−
t2
, I+
t2
]. On étudie alors tous les cas d’ordonnancement
de d, I
−
t1
, I
+
t1
, I
−
t2
, et I
+
t2
.
Ce système de reconnaissance, appelé Chronicle Recognition System (CRS), est construit autour
du gestionnaire de graphes temporels IxTeT [GL94]. Il permet ainsi de reconnaître en ligne et
efficacement toutes les occurrences des chroniques spécifiées. De plus, ce système est prédictif.
En effet, l’utilisateur peut savoir à tout moment quand une reconnaissance est attendue et quels
évènements sont requis pour compléter chaque instance partielle. Une définition plus formelle de
la notion de chronique et du système de reconnaissance associé est présentée dans [DG94].
Figure 1.5 – Architecture du système de reconnaissance avec focalisation temporelle [DLM07]
Dans [DLM07], Dousson et al. proposent une technique d’optimisation de CRS. Il s’agit tout
d’abord d’appliquer une méthode de focalisation temporelle qui permet d’optimiser les situations
où certains évènements sont beaucoup plus fréquents que d’autres. Afin de limiter le nombre
d’instances partielles créées suite à un évènement fréquent en attente d’un évènement rare, on
définit un niveau pour chaque type d’évènement. Ceci permet d’établir un critère d’intégration au
système de reconnaissance : un évènement de niveau n + 1 n’est pas intégré à une instance donnée
26CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES
tant que tous les évènements des niveaux 1 à n n’ont pas été intégrés. Lorsqu’un évènement
est intégré à une instance, il est envoyé à toutes les autres instances même si la règle n’est pas
vérifiée. Ceci permet de s’assurer que tout évènement est traité exactement une fois. La structure
du système est présentée Figure 1.5. Un composant de gestion des évènements est introduit. Les
évènements qui ne sont pas immédiatement intégrés sont envoyés au collectionneur qui les stocke
dans des flux tampons (il y a un buffer par type d’évènement). Chaque flux tampon manipule
trois fenêtres temporelles : la fenêtre assert no more où plus aucun évènement ne sera reçu, la
fenêtre de filtrage qui contient les occurrences d’évènements ne convenant à aucune instance, et
la fenêtre de focalisation qui contient les dates d’occurrence auxquelles un évènement est attendu
et devrait donc être immédiatement envoyé à CRS. Ce mécanisme fournit exactement les mêmes
reconnaissances qu’avec la version initiale de CRS et a uniquement un effet sur les performances.
Celles-ci ne sont pas améliorées systématiquement ; cela dépend de la fréquence des évènements et
de leur position dans le graphe de contraintes.
La seconde partie de la méthode est d’introduire un principe de chroniques hiérarchiques qui
permet de définir séparément des sous-chroniques et de les intégrer dans une chronique plus complexe.
La méthode de focalisation temporelle peut ensuite être appliquée aux sous-chroniques
elles-mêmes.
Dans le formalisme des chroniques, le processus d’écriture des situations à reconnaître reste une
difficulté centrale. Plusieurs réponses y sont apportées. Un système, Frequency Analyser for Chronicle
Extraction (FACE) [DD99], permettant à un expert d’analyser des fichiers de logs d’alarmes
pour identifier les phénomènes récurrents et ainsi définir des chroniques est développé. A partir
d’une grandeur fqmin fournie par l’utilisateur, on définit une notion de chronique fréquente. On
construit ensuite par induction sur la taille des chroniques les chroniques fréquentes dans le flux
d’évènements étudié, puis les contraintes temporelles associées à l’aide d’un algorithme favorisant
certaines contraintes. Partir d’une base de chroniques déjà posée par des experts permet de diminuer
considérablement le temps de calcul. Il s’agit ensuite de filtrer l’ensemble des chroniques
fréquentes obtenues : pour déterminer s’il est intéressant de chercher à reconnaître à la fois une
chronique et l’une de ses sous-chroniques, une notion de dépendance est définie. [FCD04] propose
une méthode de pré-traitement des fichiers pour en extraire des sous-fichiers appropriés et ainsi
alléger la saturation de mémoire provoquée par FACE.
Une seconde méthode d’aide à l’écriture de chroniques est fondée sur une simulation du système
qui permet de faire apparaître des configurations caractéristiques d’évènements. Ceci permet de ré-
colter les séquences d’évènements datés associés et ainsi de former, pour chaque configuration, une
liste de séquences positives (i.e. liées à la configuration) et une liste de séquences négatives. Une mé-
thode de programmation logique inductive (ILP) [MDR94] peut ensuite être appliquée sur ces deux
listes pour en dériver des chroniques [CD00]. Les techniques d’Inductive Logic Programming (ILP)
peuvent être également utilisées directement sur des flux d’évènements, combinées avec l’Inductive
Constraint Logic (ICL) [DRVL95] qui permet l’expression de contraintes sur le type de chroniques
à apprendre, assurant ainsi une caractérisation précise des situations à reconnaître [QCCW01].
Dans [DG94], Dousson et al. commencent à introduire une notion d’incertitude autour de la
datation des évènements du flux en utilisant des ensemble flous pour exprimer les ensembles de
dates possibles pour un évènement.
27Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Subias et al. partent du formalisme des chroniques de Dousson et al. et l’adaptent aux systèmes
distribués. En effet, il est difficile de développer des mécanismes capables de dater des évènements
dans un système distribué, et, de plus, des délais de transmission sont à prendre en compte. Il est
donc intéressant de subdiviser l’architecture de contrôle en sous-sites de contrôle pouvant se chevaucher
par endroits pour faciliter le diagnostic. Pour ce faire, Subias et al. définissent dans [BSC02]
une notion de sous-chronique comme extension de la notion de chronique. Une sous-chronique est
composée d’un ensemble d’évènements E et d’un ensemble de contraintes sur les évènements de
E mais aussi sur des évènements extérieurs. Une chronique peut alors se décomposer en souschroniques,
avec une sous-chronique correspondant à chaque sous-site de contrôle et telles que
l’ensemble des évènements E de chaque sous-chronique doit être inclus dans l’ensemble des évènements
observables par le sous-site de contrôle concerné. Alors, une chronique est reconnue lorsque
toutes les sous-chroniques sont reconnues. Une sous-chronique possède deux types de contraintes :
les contraintes locales portant uniquement sur les évènements de E, et les contraintes globales
faisant intervenir des évènements extérieurs.
Le cadre des réseaux de Petri p- et t-temporels (réseaux de Petri classiques auxquels deux types
de mécanismes, détaillés ci-dessous, ont été ajoutés [Kha97, BD91]) est choisi pour modéliser le
processus de reconnaissance distribué car, d’après [BSC05] :
— il offre une visualisation claire de l’état courant de la reconnaissance de la chronique/souschronique
;
— il est approprié pour simuler l’évolution d’une chronique à l’aide d’outils, ou pour revenir
en arrière ;
— les occurrences multiples sont facilement représentables ;
— ils pourraient permettre de démontrer la correction du modèle de contraintes temporelles.
Les mécanismes t-temporels (contraintes temporelles de type intervalle sur les transitions) sont
utilisés pour exprimer les contraintes de fenêtres d’admissibilité de la chronique (contraintes de
type 1 ≤ minp(d(e1) − d(ep)) ≤ 3). Les mécanismes p-temporels (contraintes temporelles sur la
durée de séjour admissible d’un jeton dans une place) permettent quant à eux l’expression des
contraintes de type intervalle (i.e. du type 1 ≤ d(e1) − d(e2) ≤ 3). Chaque type de contrainte est
transposé en une brique de réseau de Petri temporel. Un réseau correspondant à une chronique
est réalisé en fusionnant les briques de réseau correspondant à chaque contrainte de la chronique.
Dans le réseau obtenu, il n’y a pas de situation de conflit structurel (i.e. il n’y a pas de place
précédant plusieurs transitions) car les vérifications de contraintes doivent être réalisées de manière
indépendantes. Chaque jeton du réseau obtenu correspond à une instance (partielle ou non) de
la chronique. Les occurrences d’évènements sont représentées par des transitions, et les jetons
(instances partielles) sont dupliqués et complétés au tirage de ces transitions pour obtenir in fine
toutes les reconnaissances complètes [BSC02].
Dans le cas des sous-chroniques, la problématique principale est la vérification des contraintes
globales. Pour vérifier celles-ci, la sous-chronique doit recevoir les informations adaptées de l’extérieur.
Les transitions et places correspondantes sont donc également ajoutées au réseau. La
problématique du délai de transmission entre les sous-sites de contrôle est étudiée dans [BSC04].
Le centre de la question est que ce délai induit une incertitude sur la vérification des contraintes. La
méthode employée est la suivante. Le délai ∆ de transmission est supposé borné. Les contraintes glo-
28CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES
bales du système sont réécrites sous forme d’expressions dépendant de mesures locales (comme les
contraintes locales) et des bornes du délai ∆. La possibilité, entre 0 et 1, de vérifier la contrainte est
ensuite quantifiée : on obtient des ensembles flous de valeurs permettant de vérifier les contraintes.
Dans les cas où la valeur n’est ni 0 ni 1 mais dans ]0,1[, [BSC04] propose un système de coopération
qui peut être lancé pour que la contrainte soit vérifiée par un autre sous-site de contrôle. Pour
mieux manipuler ces délais temporels, [BSC05] passe aux réseaux de Petri p- et t-temporels flous.
1.5 Le langage des chroniques Onera
1.5.1 Une première implémentation : CRS/Onera
Ornato et Carle présentent une première notion de chronique dans [OC94a, OC94b]. Il s’agit
de répondre à la problématique de l’automatisation de la reconnaissance des intentions d’un agent
considéré comme une boîte noire. Contrairement au domaine de la reconnaissance de plans, les
auteurs ne font pas d’hypothèse forte sur le sujet observé : il n’est pas nécessaire d’avoir une
base de connaissance exhaustive décrivant les différents plans pouvant être suivis par le sujet, et,
en particulier, le sujet n’est pas supposé effectuer les plans sans erreur ni n’en suivre qu’un seul
à la fois. De plus, les auteurs souhaitent pouvoir exprimer des notions telles que la suspension
ou l’abandon d’un but. Dans cette optique, un système de reconnaissance de comportements,
Chronicle Recognition System/Onera (CRS/Onera) est implémenté. Il est fondé sur un langage
temporel, le langage des chroniques, qui permet la description de comportements complexes à
l’aide d’évènements typés pouvant être dotés de propriétés et des opérateurs suivants :
— la séquence, le non-ordre (conjonction) et la disjonction,
— la non-occurrence d’une chronique sur un intervalle de temps délimité par une seconde
chronique (notons qu’il n’y a pas de garantie d’ordre de traitement entre les deux chroniques
à l’arrivée d’un évènement et qu’il y a donc des formes indéterminées),
— une notion de délai,
— un opérateur de coupure, le cut, permettant de réduire la combinatoire due à l’exhaustivité
recherchée dans le processus de reconnaissance : le cut désigne uniquement la première
reconnaissance dans le flux,
— opérateur d’indexation d’évènements permettant d’identifier à une unique occurrence plusieurs
évènements de même nom dans une chronique (les opérateurs de non occurrence et
de disjonction sont cependant opaques pour l’indexation).
Le système de reconnaissance CRS/Onera se voit imposer trois contraintes principales :
1. les reconnaissances doivent être exhaustives (i.e. toutes les reconnaissances possibles doivent
être détectées) ;
2. il doit y avoir une historisation des évènements (i.e. il faut être capable de dire quels évènements
sont à l’origine de chaque reconnaissance) ;
3. le processus de reconnaissance doit être suffisamment efficace pour être réalisé en ligne.
Pour répondre à ces contraintes, l’algorithme de CRS/Onera a été conçu sur la base d’automates
dupliqués représentant les instances éventuellement partielles des chroniques à reconnaître. Chaque
29Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
reconnaissance partielle de chronique est dupliquée et mise en attente des évènements attendus pour
la complétion de la reconnaissance. Cette duplication permet à la fois d’assurer l’exhaustivité du
processus et également de gérer les constructions de non-occurrence.
CRS/Onera propose également la gestion d’actions et de tests à la reconnaissance. Il est possible
d’exprimer des conditions à vérifier sur la reconnaissance : si l’expression précisée est fausse, alors
l’instance de chronique est éliminée. D’autre part, un évènement peut être envoyé dans le flux à
la suite d’une reconnaissance. Celui-ci peut ensuite être utilisé dans une autre chronique et ainsi
définir des chroniques de niveau supérieur. Il y a également la possibilité d’exécuter du code C++
avant que le système n’engendre d’évènement, ou après.
CRS/Onera se compose d’un compilateur engendrant du code C++. L’utilisateur décrit des
fichiers de systèmes de chroniques et le compilateur CRS/Onera engendre le code C++ correspondant
avec un facteur d’expansion d’environ 50. Celui-ci est ensuite compilé. Chaque chronique est alors
une classe dont les méthodes gèrent les évolutions et les duplications d’instances.
1.5.2 Définition d’une sémantique du langage des chroniques
Dans la lignée de CRS/Onera s’inscrivent les travaux de Bertrand et al. [Ber09] dont l’objectif
est d’établir une sémantique du langage des chroniques de CRS/Onera.
Une sémantique ensembliste est donnée dans [Ber09] puis aboutie dans [CCK11] pour quatre
opérateurs de base (la séquence, la conjonction, la disjonction et l’absence). Un ensemble de reconnaissances
est défini pour chaque chronique, explicitant formellement ce que cela signifie de
reconnaître dans un flux d’évènements donné le comportement décrit par une chronique. Cette
sémantique est détaillée dans la sous-section suivante (1.5.3).
Une seconde sémantique opérationnelle est également développée. Une comparaison de différentes
modélisations possibles du processus de reconnaissance de chroniques est réalisée dans
[BCC07]. Les auteurs se concentrent sur deux principales difficultés : la multiplicité des reconnaissances
et l’historisation des évènements donnant lieu aux reconnaissances. Les automates standards
à états finis permettent la reconnaissance d’expressions régulières, mais une chronique, de
par la multiplicité de la notion de reconnaissance, n’est pas une expression régulière. Un automate
standard ne peut donc reconnaître qu’une seule fois une chronique ce qui ne répond pas à
la problématique initiale. Si l’on introduit des automates à compteurs, les occurrences multiples
d’une chronique peuvent alors être comptabilisées mais il n’est alors pas possible de distinguer
les différentes reconnaissances comme il n’y a pas d’historisation des évènements. En revanche,
les automates dupliqués, en créant une instance d’automate pour chaque reconnaissance partielle
d’une chronique, permettent de reconnaître toutes les occurrences d’une chronique tout en préservant
l’information de quels évènements ont donné lieu à chaque reconnaissance. Cependant, cette
méthode ne permet pas d’avoir une approche modulaire dans le processus d’écriture de chroniques.
Dans cette optique, les réseaux de Petri colorés qui permettent multiplicité et historisation, sont
choisis car non seulement ils sont dotés de moyens de construction modulaire, mais encore des
outils d’édition, de simulation et d’analyse sont disponibles pour mettre en avant les propriétés des
réseaux.
Une sémantique en réseaux de Petri colorés est donc établie [BCC08, BCC09, Ber09, CCK11].
30CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES
Un réseau est construit pour chaque chronique. Les transition du réseau sont tirées en fonction du
flot d’évènement et les reconnaissances (éventuellement partielles) sont produites et/ou complétées
en conséquence. La construction de ces réseaux se fait par induction sur la structure du langage à
partir de briques de base, mais celle-ci n’est pas formalisée entièrement.
1.5.3 Détail de la sémantique ensembliste du langage des chroniques de
CRS/Onera
Dans cette sous-section, nous détaillons précisément la sémantique du langage des chroniques
telle que présentée dans [CCK11]. Nous présentons le langage des chroniques puis formalisons le
concept d’évènement pour pouvoir ensuite définir la notion de reconnaissance d’une chronique.
Une chronique décrit un certain agencement d’évènements. Le langage est construit à partir
d’évènements simples et des opérateurs suivants, où C1 et C2 sont des chroniques :
— la disjonction C1 | | C2 qui correspond à l’occurrence d’au moins l’une des
deux chroniques C1 et C2.
— la conjonction C1&C2 qui correspond à l’occurrence des deux chroniques C1
et C2, dans un ordre quelconque, éventuellement entrelacées.
C1 C2 — la séquence C1 C2 qui correspond à l’occurrence de la chronique C1 suivie de
l’occurrence de la chronique C2.
C1
C2
— l’absence (C1) − [C2] qui correspond à l’occurrence de la chronique C1 sans
occurrence de la chronique C2 pendant l’occurrence de C1.
Formellement, on définit le langage des chroniques à partir d’un ensemble donné de noms
d’évènement comme suit :
Définition 1 (langage des chroniques). Soit N un ensemble dénombrable dont les éléments
sont des noms d’évènement simple.
On définit l’ensemble des chroniques sur N, noté X(N), par le schéma inductif suivant :
A ∈ N
A ∈ X(N)
(nom)
C1 ∈ X(N) C2 ∈ X(N)
C1 | | C2 ∈ X(N)
(disjonction)
C1 ∈ X(N) C2 ∈ X(N)
C1&C2 ∈ X(N)
(conjonction)
C1 ∈ X(N) C2 ∈ X(N)
C1 C2 ∈ X(N)
(séquence)
C1 ∈ X(N) C2 ∈ X(N)
(C1) − [C2] ∈ X(N)
(absence)
Considérons deux exemples illustrant informellement l’expressivité du langage.
Exemple 1. Soit A, B et D des noms d’évènement simple de N. La chronique (A&B) | | D
correspond à deux évènements de noms respectifs A et B dans un ordre quelconque ou à un
évènement de nom D.
31Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Exemple 2. Soit A, B, D et E des noms d’évènement simple de N. La chronique (A B)−[D | | E]
correspond à un évènement de nom A suivi d’un évènement de nom B, sans occurrence ni d’un
évènement de nom D ni d’un évènement de nom E entre les occurrences de A et B.
Évènements
Nous souhaitons définir la notion de reconnaissance de chronique afin de munir le langage d’une
sémantique. Pour ce faire, il est nécessaire de formaliser au préalable le concept d’évènement et les
notions qui lui sont associées.
Définition 2 (évènements). Soit N un ensemble dénombrable de noms d’évènement. Soit E un
ensemble dénombrable dont les éléments sont des évènements.
Une fonction de nommage est une fonction totale ν : E 7→ N. Elle associe un nom à chaque
évènement.
Le triplet (E, N, ν) est alors appelé espace nommé d’évènements.
Remarque 1. On distingue ainsi les noms des évènements (qui servent à construire les chroniques)
que l’on notera par convention en majuscules (A, B, C, D, . . .) et les évènements (qui constituent
les données observées à analyser) que l’on notera en minuscule (a, b, c, d, . . .). Pour faciliter la
compréhension, on posera en général ν(a) = A, ν(b) = B, . . .
Définition 3 (flux d’évènements). Soit (E, N, ν) un espace nommé d’évènements et soit I ⊆ N.
Un flux d’évènements est une suite ϕ = (ui)i∈I d’éléments de E.
On notera son domaine ◦
ϕ. On a ainsi I =
◦
ϕ. Il s’agit de l’ensemble des indices d’occurrence
des évènements.
Par convention, si rien n’est spécifié, on commencera la numérotation à 1 (car cela correspondra
à celle engendrée par le modèle de reconnaissance en réseaux de Petri colorés qui sera présenté
Chap. 3 et 4).
Si ϕ = (ui)i∈I est un flux d’évènements et si J ⊆ I, on définit la restriction de ϕ à J, notée
ϕ|J , par ϕ|J = (ui)i∈J .
Pour un flux ϕ = (ui)i∈I , on définit les fonctions Eϕ(i) = ui et Nϕ(i) = ν(Eϕ(i)) = ν(ui).
Eϕ(i) correspond au i
e
évènement du flux ϕ.
Nϕ(i) correspond au nom du i
e
évènement du flux ϕ.
Reconnaissance d’une chronique
Il s’agit maintenant de s’appuyer sur les définitions précédentes pour doter le langage d’une
sémantique ensembliste définissant la notion de reconnaissance de comportements. Une reconnaissance
d’une chronique est représentée par l’ensemble exact des indices des évènements ayant donné
lieu à la reconnaissance. Il est donc nécessaire de commencer par définir les notions suivantes liées
aux indices.
Définition 4 (instances). Soit (E, N, ν) un espace nommé d’évènements sur lequel est défini un
flux d’évènements ϕ = (ui)i∈I .
32CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES
Une instance de ϕ est un sous-ensemble fini de I.
Un support de ϕ est un sous-intervalle fini de I. (Ainsi, tout support de ϕ est une instance de
ϕ.)
Le support d’une instance r de ϕ est l’ensemble [r] = {i ∈ I : min r ≤ i ≤ max r}.
On notera ]r] = [r] \ {min r} et [r[= [r] \ {max r}.
On dit que deux instances r et r
0 de ϕ sont compatibles, noté r ./ r0
, si max r < min r
0
(c’est-
à-dire si r « précède » r
0
).
On définit la relation ternaire « r est la réunion compatible de r1 et r2 » par r = r1
./
∪ r2 si, et
seulement si, r1 ./ r2 ∧ r = r1 ∪ r2.
Remarque 2. ./ est une relation d’ordre strict sur les instances de I.
Pour chaque chronique, en fonction du flux ϕ étudié, on définit par induction l’ensemble des
reconnaissances associées.
Définition 5 (ensembles de reconnaissances). Soit (E, N, ν) un espace nommé d’évènements
sur lequel est défini un flux d’évènements ϕ = (ui)i∈I .
Soit C ∈ X(N).
On définit par induction l’ensemble des reconnaissances de C sur le flux ϕ, noté RC (ϕ) :
— si C = A ∈ N, alors RA(ϕ) = {{i} : i ∈
◦
ϕ ∧ Nϕ(i) = A}.
La chronique A est reconnue lorsqu’un évènement de nom A a lieu.
— si C = C1 | | C2, alors RC (ϕ) = RC1
(ϕ) ∪ RC2
(ϕ).
La chronique C1 | | C2 est reconnue si la chronique C1 est reconnue ou si la
chronique C2 est reconnue.
— si C = C1&C2, alors RC (ϕ) = {r1 ∪ r2 : r1 ∈ RC1
(ϕ) ∧ r2 ∈ RC2
(ϕ)}.
La chronique C1&C2 est reconnue si la chronique C1 est reconnue et si la
chronique C2 est également reconnue, sans autre contrainte.
C1 C2 — si C = C1 C2, alors RC (ϕ) = {r1 ∪r2 : r1 ∈ RC1
(ϕ)∧r2 ∈ RC2
(ϕ)∧r1 ./ r2}.
La chronique C1 C2 est reconnue si la chronique C1 est reconnue, si la chronique
C2 est reconnue et si la reconnaissance de C1 précède le début de la
reconnaissance de C2.
C1
C2
— si C = (C1)−[C2], alors RC (ϕ) = {r1 : r1 ∈ RC1
(ϕ)∧(Pf([r1[)∩RC2
(ϕ) = ∅)}
où, pour tout ensemble s, Pf(s) est l’ensemble des parties finies de s.
La chronique C = (C1) − [C2] est reconnue si la chronique C1 est reconnue
et s’il n’y a pas eu de reconnaissance de la chronique C2 pendant la
reconnaissance de la chronique C1.
Ainsi, pour une chronique C et un flux ϕ, chaque reconnaissance de C dans ϕ correspond à
un ensemble d’indices (les indices des évènements donnant lieu à la reconnaissance), et RC (ϕ) est
l’ensemble de tous ces ensembles.
Exemple 3. Soit a, b, d et e des évènements de E tels que ν(a) = A, ν(b) = B, ν(d) = D et
ν(e) = E.
33Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Considérons la chronique C = (A&B) | | D et le flux ϕ = (a, e, b, d, a, b) avec
◦
ϕ = J1, 6K.
On a alors RC (ϕ) = {{4}, {1, 3}, {1, 6}, {3, 5}, {5, 6}}.
aebdab
1 23 456
Exemple 4. Soit a, b, d, e, f et g des évènements de E tels que ν(a) = A, ν(b) = B, ν(d) =
D, ν(e) = E, ν(f) = F et ν(g) = G.
Considérons la chronique C = (A B) − [F] et le flux ϕ = (d, a, e, a, b, g, a, f, b) avec
◦
ϕ = J1, 9K.
On a alors RC (ϕ) = {{2, 5}, {4, 5}}. Notons que {2, 9}, {4, 9} et {7, 9}, bien qu’étant des
reconnaissances de A B, ne sont pas des reconnaissances de C car Nϕ(8) = F.
Exemple 5. Soit a, b, d et e des évènements de E tels que ν(a) = A, ν(b) = B, ν(d) = D et
ν(e) = E.
Considérons la chronique C = (A B) − [D E] et le flux ϕ = (a, d, a, e, b) avec
◦
ϕ = J1, 5K.
On a alors RC (ϕ) = {{3, 5}}. {1, 5} n’est pas une reconnaissance de C car {2, 4} ∈ RD E(ϕ) et
{2, 4} ⊂ J1, 5K.
Exemple 6. Soit a, b, d, e, f et g des évènements de E tels que ν(a) = A, ν(b) = B, ν(d) =
D, ν(e) = E, ν(f) = F et ν(g) = G.
Considérons la chronique C = (A B) − [(D E) − [F G]] et le flux ϕ = (a, d, f, g, e, b) avec
◦
ϕ = J1, 6K.
On a alors RC (ϕ) = {{1, 6}} car R(D E)−[F G](ϕ) = {}.
Remarque 3. On peut montrer par induction directe sur les chroniques que, pour tout C ∈ X(N),
RC ({}) = {}.
1.6 D’autres modes de représentation et de reconnaissance
de comportements
Dans les quatre sections précédentes, nous avons détaillé différentes approches du traitement
d’évènements complexes. Dans cette section, nous présentons plus succinctement une dernière
sélection de systèmes de reconnaissance de comportements moins proches de notre problématique.
Nous renvoyons à [CM12] pour une collection plus complète de systèmes d’IFP. Dans [CM12], les
problématiques et différentes options envisageables pour l’IFP sont détaillées, puis un grand nombre
de systèmes sont présentés, répartis en quatre groupes :
— le domaine des bases de données actives ;
— les systèmes de gestion de flux de données ;
— les systèmes de CEP ;
— les systèmes disponibles dans le commerce.
34CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES
Nous renvoyons également à d’autres surveys pour une vision plus complète [dCRN13, FTR+10,
ASPP12]. [FTR+10] présente le CEP conjointement avec le domaine de l’analyse prédictive à travers
une selection d’articles, d’outils commerciaux puis d’outils académiques ou en libre accès.
[ASPP12] compare les chroniques de Dousson (Section 1.4), l’EC (Section 1.2) et la logique de
Markov qui permet la prise en compte d’incertitudes dans le domaine du CEP [BTF07, dSBAR08,
HN03, TD08, KDRR06]. Les trois approches sont comparées sur trois axes : la description des
comportements à reconnaître, le raisonnement à réaliser pour effectuer la reconnaissance, et les
méthodes d’apprentissage existant pour mettre en œuvre l’écriture des comportements.
MUSE [KM87] Kumar et Mukerjee établissent un système de reconnaissance incrémental appelé
MUSE. Le modèle de temps adopté est linéaire et discret, avec une résolution suffisamment
fine. Un évènement est un couple (ϕ, τ ) où ϕ correspond à un nom d’évènement et τ est un
ensemble d’instants consécutifs, décrivant ainsi un certain intervalle de temps. Des assertions
temporelles peuvent être utilisées : les 13 assertions de Allen ainsi que quatre autres relations
permettant d’exprimer des relations entre des évènements encore « incomplets » (i.e. dont
l’ensemble d’instants consécutifs où l’évènement est vérifié n’est pas encore complet). Ceci
permet d’assurer que, pour chaque couple d’évènements donné, une unique des ces dix-sept
assertions est toujours vérifiée. Le processus de reconnaissance peut ainsi être effectué au fur
et à mesure, à l’aide d’automates à états finis qui résument les différentes règles. Des conjonctions
et disjonctions d’assertions peuvent ensuite être spécifiées. Pour finir, une sémantique
temporelle sur les évènements permet de définir l’ensemble d’instants α d’une reconnaissance
et ainsi de s’adapter à différents cas : on peut avoir tout simplement α = τ , mais on peut
aussi définir α = min(τ ) (sémantique instantanée) ou d’autres sémantiques plus complexes.
SAMOS [GD94b, GD94a] Swiss Active Mechanism based Object-oriented database Systems
(SAMOS) est un système de gestion de base de données actives qui offre notamment un
langage de description de comportements qui permet de spécifier des évènements complexes
à intégrer aux règles de gestion. Les évènements considérés sont ponctuels (pour les évè-
nements complexes, une algèbre d’évènements permet de définir leur instant d’occurrence)
et dotés de paramètres. Des opérateurs – disjonction, conjonction, séquence, n occurrences
dans un intervalle donné, absence d’occurrence dans un intervalle donné, première occurrence
uniquement sur un intervalle donné – permettent de composer les évènements. Le mot clé
same peut être apposé à un évènement complexe pour préciser des contraintes d’égalité sur
les paramètres des évènements mis en jeu. Le système est également doté d’un intervalle
de suivi des évènements indiquant une fenêtre dans laquelle reconnaître un comportement
donné (reconnaître E dans I). Cet intervalle peut aussi bien être délimité explicitement avec
des instants absolus qu’implicitement, et il peut être défini pour réapparaître périodiquement.
Pour certaines constructions comme l’absence d’un comportement, il est obligatoire
de préciser un tel intervalle. [GD94a] propose un modèle de reconnaissance des évènements
complexes ainsi définis à l’aide d’un formalisme proche des réseaux de Petri colorés, car
celui-ci permet de faire circuler dans le réseau les informations relatives aux paramètres des
évènements complexes ou non. La notion de SAMOS Petri nets (S-PN) est introduite. Il s’agit
de réseaux de Petri colorés possédant trois types de places, les places en entrée correspon-
35Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
dant aux évènements composant un évènement complexe, les places en sortie correspondant
aux évènements complexes, et des places auxiliaires. Les opérateurs sont représentés par des
transitions, et le mot clé same par une garde éventuelle sur les transitions. Une contrainte
« d’absence de conflit » est imposée, c’est-à-dire qu’un jeton ne peut pas activer deux places
simultanément. Seules les constructions relatives à la conjonction et à la reconnaissance de n
occurrences sur un intervalle sont présentées. Lorsqu’un évènement complexe fait partie de
la composition d’un autre évènement complexe, les réseaux correspondants sont combinés.
Inversement, lorsqu’un évènement simple participe à plus d’un événement complexe, le jeton
correspondant à l’évènement simple est dupliqué ; ainsi, à l’occurrence d’un évènement, seule
une place doit être marquée. Ce modèle de reconnaissance est implémenté au sein de SAMOS.
GEM [MSS97, MSS96] Le langage Generalised Event Monitoring (GEM) est un langage déclaratif
fondé sur un système de règles et s’attachant à la reconnaissance de comportements
dans le cadre de systèmes distribués. La seule hypothèse réalisée est l’existence d’une horloge
globale bien synchronisée. Les évènements considérés sont dotés d’attributs, dont par défaut,
la classe d’évènement auquel l’évènement appartient, le composant du système dont il est
issu et son instant d’occurrence. Des évènements complexes peuvent être construits à l’aide
d’opérateurs de conjonction, de délai suivant une reconnaissance, d’absence d’un évènement
complexe entre deux autres évènements, de disjonction, et de séquence. Une garde optionnelle
peut exprimer des contraintes sur les attributs et sur les instants de début et de fin des
reconnaissances, ce qui permet notamment de décrire l’ensemble des relations d’Allen, et un
opérateur d’identification permet de se référer à une instance précise d’un évènement dans
une règle. Les règles sont construites en quatre parties :
— un identifiant unique de la règle ;
— une fenêtre de détection déterminant la durée pendant laquelle doit être conservé l’historique
des évènements liés à la règle ;
— la description de l’évènement complexe à reconnaître ;
— les actions à effectuer si l’évènement complexe est détecté (actions de notification explicite
de l’évènement – interne ou externe à la règle –, transfert de certains évènements ayant
donné lieu à la reconnaissance – dans une visée de filtrage par exemple –, activation ou
désactivation de règles.
Des commandes de contrôle globales similaires aux actions ci-dessus sont également disponibles.
Le processus de détection des comportements est fondé sur une structure arborescente
associée à chaque comportement à reconnaître et suivant la structure de l’expression du comportement.
Chaque nœud possède un type identifiant l’opérateur dont il s’agit, la garde
associée, et l’historique des évènements correspondants. À l’arrivée d’un évènement, celui-ci
est inséré à sa place dans l’arbre, sans considération temporelle autre, ce qui permet d’autoriser
un retard dans l’arrivée des évènements, dans la limite de la fenêtre temporelle de
détection définie. La gestion du retard des évènements se fait donc au sein même de l’étape
de détection. Au niveau de chaque nœud, l’historique des évènements concernés est conservé,
dans le cadre de la fenêtre de détection, ce qui permet de diminuer les évènements à ordonner.
Des pointeurs sont également utilisés pour éviter la duplication d’historiques. [MSS96] décrit
l’intégration et l’implémentation de GEM en C++.
36CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES
Rete [For82, Ber02, WBG08, WGB08] Rete [For82] est un algorithme permettant de comparer
une grande quantité de motifs (patterns) à une grande quantité d’objets. Il s’agit de
déterminer l’intégralité des correspondances correctes et l’accent est porté en particulier sur
l’efficacité du système. La version originale de Rete ne permet pas de considérations temporelles,
et il existe de nombreuses extensions de ce système. [Ber02] introduit dans Rete une
sémantique temporelle où tout évènement simple ou complexe est considéré comme ponctuel.
Les règles définissant les comportements à reconnaître sont compilées pour obtenir des
graphes composés de trois types de nœuds : les nœuds de classe qui filtrent les faits selon
les classes, les nœuds de jonction qui combinent les faits, et les nœuds de discrimination qui
filtrent les faits selon leurs attributs. Les faits sont alors stockés au niveau de chaque nœud
et sont propagés en fonction des règles transcrites. Pour la gestion des contraintes temporelles,
une horloge interne discrète est introduite conjointement avec une notion d’évènement
qui s’oppose à la notion de fait. Les évènements sont datés et des contraintes temporelles
peuvent être spécifiées sur les dates d’occurrence (on rappelle que chaque évènement même
complexe est considéré comme ponctuel) avec les prédicats before et after bornant à un intervalle
la différence entre les deux dates d’occurrence des évènements. Les contraintes peuvent
être combinées avec des opérateurs de disjonction, de conjonction et de négation. L’accent
est mis sur l’importance de la notion de changement d’état qui peut être exprimée à l’aide
des évènements introduits. L’introduction de contraintes temporelles permet une gestion de
la mémoire à l’intérieur même du système : les évènements rendus obsolètes sont oubliés.
Une autre extension de Rete est développée dans [WBG08]. Elle s’oppose à [Ber02] dans la
considération des évènements qui ne sont plus ponctuels mais dotés d’un instant de début
et d’un instant de fin, ce qui est fondamental pour éviter des erreurs de reconnaissance dans
le cas de séquences (problématique mise en avant dans [GA02]). Rete est donc étendu avec
une sémantique temporelle d’intervalle qui permet l’expression des treize relations d’Allen
étendues de deux manières :
— possibilité de définir la valeur exacte ou une plage de valeurs sur la durée séparant l’instant
de début et l’instant de fin de deux intervalles de temps dans le cas des opérateurs non
restrictifs (during, finishes, starts, overlaps, before) ;
— définition possible de limites de tolérance au niveau des opérateurs restrictifs (par exemple
pour equals).
Il faut noter que ces extensions suppriment le caractère exclusif des opérateurs d’Allen mais
permettent de s’adapter aux situations réelles que l’on peut souhaiter exprimer. Un système
de calcul de la durée de vie des évènements est implémenté, découlant des contraintes temporelles
spécifiées. [WGB08] présente une extension de Rete complémentaire à [WBG08] pour
la gestion de fenêtres temporelles de validité autour des évènements. Ces fenêtres temporelles
rendent obsolètes les évènements dont l’instant de fin sort de la fenêtre – notons qu’un
évènement peut donc commencer avant la fenêtre dans laquelle il est considéré.
Snoop [CM94, CKAK94], SnoopIB [AC06] Le domaine des bases de données actives se consacre
notamment à surveiller la séquence d’évènements affectant la base de donnée depuis
l’extérieur. Le système reconnaît des comportements et peut y réagir suivant des règles EventCondition-Action
(ECA) spécifiant les comportements à reconnaître et les actions à effectuer
37Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
lors de la détection. Snoop [CM94] est un tel système. Il est construit sur un modèle de temps
linéaire discret et permet l’analyse d’évènements primitifs ne pouvant avoir d’occurrences
simultanées et composés à la fois :
— d’évènements explicites externes fournis au système avec leurs paramètres contenant au
moins le type de l’évènement ainsi que sa date ;
— d’évènements temporels pouvant être absolus (c’est-à-dire datés) ou relatifs (i.e. placés
temporellement par rapport à un autre évènement de Snoop) ;
— d’évènements de la base de donnée correspondant aux opérations de manipulation des
données.
Les évènements composites à reconnaître sont définis à partir de ces évènements primitifs et
des opérateurs de disjonction, de séquence, de conjonction, n occurrences parmi . . . , l’opérateur
apériodique A(E1, E2, E3) (E2 a lieu entre E1 et E3) et l’opérateur périodique P(E1, [t], E3)
(E1 puis E3 dure exactement [t]. Notons qu’il n’y a pas alors d’expression de négation ou
d’absence (la difficulté est évoquée dans la Section 5.4 de [CM94]). Les évènements sont tous
considérés comme ponctuels et la notion de modificateur d’évènement est introduite pour
définir l’instant d’occurrence d’un évènement initialement non ponctuel. Par défaut, il existe
deux modificateurs d’évènements, à savoir begin_of et end_of. Le choix de multiplicité des
reconnaissances dans le processus de reconnaissance de ces comportements complexes varie
selon le contexte adopté parmi le contexte récent, le contexte chronique, le contexte continu
et le contexte cumulatif présentés dans la Section 1.1. Le processus de reconnaissance est
fondé sur des graphes associés à chaque évènement complexe à reconnaître et obtenus après
compilation des expressions de ces évènements. Les arbres suivent la structure des expressions
concernées, et, dans le cas de sous-expressions identiques, les parties associées de l’arbre sont
amalgamées. Dans [CM94], un algorithme est détaillé pour le contexte récent qui permet
l’utilisation d’un buffer de taille fixe au niveau de chaque nœud des arbres (contrairement
aux contextes continu et cumulatif qui demandent beaucoup d’espace mémoire). Une notion
d’équivalence d’expressions est définie et peut permettre de réécrire une description de comportement
sous une autre forme pour optimiser le processus de reconnaissance par exemple
en dévoilant des nouvelles sous-expressions communes. [CKAK94] présente la sémantique
de Snoop à l’aide de formules logiques du premier ordre. Cependant, comme pour Rete, la
considération d’évènements uniquement ponctuels pose problème dans le cas de composition
avec une séquence par exemple car il faut pouvoir également comparer les instants d’initiation
(et pas uniquement ceux de terminaison) des reconnaissances (problématique mise en
avant dans [GA02]). Pour répondre à ce problème, [AC06] propose SnoopIB, une nouvelle
sémantique fondée sur des intervalles et dont la définition formelle est en partie présentée
dans [GA02]. Deux nouveaux opérateurs sont introduits, à savoir l’opérateur de non occurrence
d’un évènement entre l’instant de terminaison d’un évènement et l’instant d’initiation
d’un autre évènement, et l’opérateur plus exprimant l’occurrence d’un évènement suivi d’une
durée.
38CHAPITRE 1. SYSTÈMES DE TRAITEMENT FORMEL D’ÉVÈNEMENTS COMPLEXES
Domaines d’application
Au travers de cette sélection de systèmes d’analyse d’évènements complexes, nous avons un
aperçu général des différentes approches possibles, dans des domaines variés. La multiplicité de ces
systèmes est due au large éventail d’applications possibles de la reconnaissance de comportements.
Nous donnons ici un échantillon des différents domaines dans lesquels l’IFP s’est montrée utile :
— supervision et l’analyse de situations dangereuses à l’aide d’un drone pour aider les services
de police [Hei01, DKH09a, DKH09b, DGK+00], avec des chroniques ;
— de nombreux domaines d’application en médecine comme le monitoring cardiaque où des
méthodes d’apprentissage sont appliquées[CD00, CCQW03, QCC+10, Doj96, Por05, CD97],
avec des chroniques ;
— gestion d’alarmes pour la détection d’intrusions informatique [MD03], avec CRS et les chroniques
de Dousson et al. ;
— diagnostic de web-services [PS09, CGR+07, LGCR+08], avec des chroniques ;
— évaluation de la qualité de transports publics (projet PRONTO) [KVNA11, VL10], avec
l’EC ;
— surveillance vidéo (projet CAVIAR) [SA11, ASP10b, ASP10a, AP09], avec l’EC ;
— analyse des médias sociaux [SA11] ;
— aide à la prise de décision dans le cadre de combats aériens [CV98], avec des chroniques ;
— supervision et gestion de réseaux [SEC+10], avec des chroniques ;
— dans l’industrie, supervision d’une turbine à gaz dans une usine pétrochimique [MNG+94]
et supervision d’une usine de lait [MCCDB10], avec des chroniques ;
— caractérisation d’activité humaine [CMM12], avec des chroniques.
Après cette introduction et ce survol des systèmes existants, nous allons développer le système
de reconnaissance de comportements des Chroniques/Onera afin de se rapprocher d’un système
répondant aux enjeux évoqués dans la Section 1.1.
39Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
40Chapitre 2
Construction d’un cadre théorique
pour la reconnaissance de
comportements : le langage des
chroniques
Sommaire
3.1 Définition du formalisme des réseaux de Petri colorés . . . . . . . . 70
3.1.1 Types et expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.1.2 Réseaux de Petri colorés . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
3.1.3 La fusion de places . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.1.4 Arcs inhibiteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
3.2 Construction formelle des réseaux dits « à un seul jeton » . . . . . 77
3.2.1 Types et expressions utilisés dans le modèle . . . . . . . . . . . . . . . . 77
3.2.2 Structure générale des réseaux « à un seul jeton » . . . . . . . . . . . . 79
3.2.3 Briques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.2.4 Construction par induction . . . . . . . . . . . . . . . . . . . . . . . . . 82
3.3 Formalisation et description de l’exécution des réseaux . . . . . . . 89
3.3.1 Reconnaissance d’un évènement simple . . . . . . . . . . . . . . . . . . . 89
3.3.2 Reconnaissance d’une séquence . . . . . . . . . . . . . . . . . . . . . . . 91
3.3.3 Reconnaissance d’une disjonction . . . . . . . . . . . . . . . . . . . . . . 94
3.3.4 Reconnaissance d’une conjonction . . . . . . . . . . . . . . . . . . . . . 95
3.3.5 Reconnaissance d’une absence . . . . . . . . . . . . . . . . . . . . . . . . 99
3.3.6 Définition formelle de la stratégie de tirage . . . . . . . . . . . . . . . . 106
3.4 Démonstration de la correction du modèle « à un seul jeton » . . . 107
41Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
3.5 Étude de la taille des réseaux . . . . . . . . . . . . . . . . . . . . . . . 115
3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
De nombreuses applications concrètes de la reconnaissance de comportements nécessitent notamment
des moyens à la fois de validation et de traçabilité, comme il sera illustré dans le Chapitre
5. Pour cela, il s’agit de fournir un cadre théorique solide pour la reconnaissance de comportements
en adoptant une approche purement formelle qui assure une possibilité de vérification
et d’analyse du processus de reconnaissance. Dans ce chapitre, nous posons ce cadre théorique
en développant un langage de description de comportements, le langage des chroniques introduit
dans la Section 1.5 1
, et en formalisant le processus de reconnaissance associé à l’aide d’une sémantique
[PBC+] :
— nous développons un formalisme autour de la notion d’évènement et de leurs attributs ;
— nous étendons largement la syntaxe du langage des chroniques de [CCK11] avec des constructions
permettant non seulement l’expression de contraintes temporelles variées mais aussi
la spécification de contraintes complexes sur des attributs d’évènement ;
— nous introduisons une nouvelle représentation de la notion de reconnaissance de chronique,
en passant d’ensembles d’ensembles à des ensembles d’arbres ce qui donne une structure des
reconnaissances plus précise et permet ainsi des opérations plus fines sur les reconnaissances ;
— nous formalisons le processus de reconnaissance à travers une sémantique du langage que
nous avons étendu ;
— nous rendons possible l’implémentation du processus de reconnaissance avec un modèle
de temps continu grâce à une fonction « Look-ahead » qui fournit le prochain instant où
interroger le programme.
Dans une première section (2.1), nous posons les définitions générales formalisant le contexte
de notre travail d’analyse de comportements complexes, à savoir les notions d’évènement et d’attributs
d’évènement. Nous définissons ensuite dans la Section 2.2 la syntaxe étendue du langage
des chroniques, permettant notamment la spécification à la fois de contraintes sur des attributs
d’évènement et de contraintes temporelles exprimant des exigences sur les délais. La Section 2.3
définit ensuite la sémantique du langage des chroniques, spécifiant ainsi la notion de reconnaissance,
et ce après avoir défini une nouvelle représentation arborescente des reconnaissances. Pour
nous familiariser avec le langage des chroniques et pour simplifier les démonstrations à venir, nous
étudions dans la Section 2.4 les principales propriétés du langage. Dans la visée d’une implémentation
du processus de reconnaissance et pour assurer la gestion d’un modèle de temps continu, nous
définissons dans la Section 2.5 une fonction dite de « Look-ahead » qui permet par la suite le pilotage
des appels au processus de reconnaissance. Le chapitre s’achève avec un tableau récapitulatif
informel des propriétés du langage construit dans la Section 2.6.
1. Rappelons que les chroniques étudiées ici se réfèrent à celles introduites par P. Carle dans [CBDO98] qui
diffèrent de celles introduites par C. Dousson dans [DGG93].
42CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA
RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES
2.1 Définitions générales préalables
L’objectif de cette section est de formaliser la notion d’évènement qui sera manipulée tout au
long du chapitre. Nous reprenons le cadre formel posé dans la Section 1.5 [CCK11] en introduisant
la notion d’attribut dans la formalisation du concept d’évènement. En effet, nous souhaitons maintenant
considérer des évènements munis d’informations (par exemple un identifiant, une qualité,
des coordonnées, une vitesse, . . .) sur lesquelles il sera ensuite possible de raisonner en effectuant
des comparaisons ou des calculs, et de poser des contraintes. Cette extension primordiale est motivée
par de nombreuses applications qui nécessitent de pouvoir raisonner sur des données liées
aux évènements du flux que l’on souhaite analyser. Par exemple, supposons que nous surveillons
un avion en vol dans le but de s’assurer que la fréquence radio sur laquelle il est réglé correspond
bien à celle associée à sa zone de vol. Il faut identifier les évènements relatifs à l’avion au milieu de
tous les autres évènements, puis accéder aux données relatives à la fréquence radio et à la position
de l’appareil afin d’effectuer des comparaisons entre elles. Dans une autre situation, on peut également
être amené à effectuer des calculs, pour évaluer la distance entre deux avions et garantir
une distance minimale.
Nous allons donc introduire la notion d’attribut d’évènement. Les évènements observés pourront
être dotés d’une ou plusieurs caractéristiques, que nous appellerons attributs ou propriétés. Nous
cherchons à reconnaître des agencements complexes de tels évènements, agencements décrits par
des formules de chroniques que nous définirons par la suite. Dans ces chroniques, nous souhaitons
exprimer des contraintes sur ces attributs d’évènement. Pour manipuler librement ces propriétés,
nous construisons, à partir des attributs d’évènement, des attributs de reconnaissance de chronique
qui auront un rôle similaire, à savoir représenter des informations liées au comportement plus global
décrit par la chronique. Ainsi, si l’on souhaite écrire des chroniques pour réaliser de l’évitement de
collision à partir de mesures radar, il peut être intéressant d’écrire une première chronique calculant
la distance entre deux aéronefs à partir des données brutes du radar. Cette chronique correspond
alors à la reconnaissance d’une distance avec comme propriétés les identifiants des deux appareils
ainsi que la donnée numérique de la distance calculée. La chronique peut ensuite être utilisée au sein
d’autres chroniques pour engendrer des alertes par exemple. La chronique, munie de ses nouveaux
attributs, peut alors être considérée comme un évènement complexe de plus haut niveau, souvent
non ponctuel, et formant une abstraction des évènements du flux. La chronique obtenue peut alors
être utilisée pour former une autre chronique, au même titre qu’un simple évènement, et l’on peut
disposer de ses attributs.
Pour définir ces notions d’évènement et d’attribut, on considère les trois ensembles suivants :
— N un ensemble dénombrable de noms d’évènement, contenant un élément τ utilisé pour
nommer les instants temporels purs ;
— P un ensemble dénombrable de noms de propriété ou aussi de noms d’attribut contenant
un élément particulier ♦ dénommant les propriétés anonymes qui désignent les propriétés
qui n’ont pas encore été nommées par l’utilisateur ;
— V un ensemble de valeurs de propriété.
43Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
2.1.1 Évènements et leurs attributs
Commençons par définir la notion d’évènement. Contrairement à [CCK11], on souhaite considérer
un modèle de temps continu. Les évènements sont donc datés par des réels et nous les
identifions maintenant par un couple (nom, date) et non plus par leur indice d’occurrence dans le
flux d’évènements étudié.
Définition 6 (évènements). Un évènement est une paire (e, t) ∈ N × R composée d’un nom
d’évènement et d’une date représentée par un réel. Le nom d’évènement τ ∈ N est réservé pour
identifier les évènements temporels purs. Sur l’ensemble des évènements E ⊆ N × R, la projection
sur la date est la fonction de datation, notée θ : E → R.
Les informations spécifiques associées aux évènements sous la forme d’attributs sont regroupées
dans un ensemble d’attributs comme suit :
Définition 7 (attributs, ensembles d’attributs). Un attribut, aussi appelé une propriété, est
une paire a = (p, v) ∈ P × V composée d’un nom de propriété et d’une valeur. Sur l’ensemble des
attributs, la projection sur le nom de propriété est appelée la fonction de référence, notée ρ.
Un ensemble d’attributs d’évènement est un ensemble X ⊆ P×V vérifiant la propriété fonctionnelle
suivante, qui exprime que X est le graphe d’une fonction, c’est-à-dire que chaque propriété
n’a qu’une seule valeur :
∀p∀v((p, v) ∈ X ⇒ ∀w((p, w) ∈ X ⇒ w = v)) (2.1)
Par la suite on considère un ensemble Ae(P, V) d’ensembles d’attributs d’évènement sur
P × V stable par union d’ensembles d’attributs d’évènement ayant des noms disjoints, c’est-à-
dire vérifiant la contrainte suivante :
∀X1 ∈ Ae(P, V) ∀X2 ∈ Ae(P, V)
{p ∈ P : ∃v ∈ V(p, v) ∈ X1} ∩ {p ∈ P : ∃v ∈ V(p, v) ∈ X2} = ∅ ⇒ X1 ∪ X2 ∈ Ae(P, V)
Cette contrainte de stabilité est nécessaire pour la bonne définition des ensembles de reconnaissance
donnée dans la Définition 16 (en effet, Ae(P, V) est le domaine de définition de la fonction
D de la Définition 11).
Ces évènements, dotés éventuellement de leurs attributs, sont regroupés sous la forme de flux
d’évènements que l’on souhaite étudier et analyser avec notre système de reconnaissance de comportements.
Définition 8 (flux d’évènements). Un flux d’évènements est défini comme une suite d’évènements
ϕ = (ui)i∈N ∈ E
N ordonnée par rapport au temps :
∀i∀j(i < j ⇒ θ(ui) < θ(uj ))
et dotée d’une fonction d’extraction d’attributs α : {ϕ(i) : i ∈ N} → Ae(P, V) qui fournit
l’ensemble d’attributs associé à chaque évènement permettant ainsi l’accès aux valeurs des attributs
d’évènement simple dans le flux d’évènements.
44CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA
RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES
2.1.2 Opérations sur les attributs
Lors du processus de reconnaissance qui analyse le flux d’évènements pour reconnaître les
comportements décrits par des chroniques, des évènements sont rassemblés pour former des reconnaissances,
comme ce sera formalisé dans la Section 2.3. Durant ce processus de reconnaissance,
des attributs doivent être manipulés et peuvent être modifiés. Il peut être nécessaire de réaliser des
opérations sur divers attributs de différents évènements. Si ces opérations sont imbriquées dans
un comportement plus complexe à reconnaître, les résultats de ces opérations doivent être stockés
sous forme d’attributs associés cette fois-ci aux reconnaissances et non plus aux évènements,
afin de pouvoir être utilisés a posteriori. Comme évoqué précédemment, les reconnaissances de
comportements sont donc elles aussi dotées d’attributs.
Définition 9 (attribut de reconnaissance). Un ensemble d’attributs de reconnaissance de comportements
est un ensemble X ⊆ P×Ae(P, V) vérifiant la propriété fonctionnelle (2.1). L’ensemble
des ensembles d’attributs de reconnaissance est noté Ar(P, V).
Comme défini au début de cette section, l’ensemble des noms de propriété contient un nom
spécifique, ♦, utilisé comme nom anonyme. Lors de la progression du processus de reconnaissance,
des attributs peuvent être calculés et enregistrés sous ce nom, en tant que nouveaux attributs
temporaires, avant d’être éventuellement nommés pour être utilisés par la suite, comme il sera
détaillé 2.3.2.
Les fonctions suivantes permettent l’expression de telles opérations sur les attributs.
Définition 10 (transformations d’attributs). Une transformation d’attributs est une fonction
définie sur l’ensemble des ensembles d’attributs de reconnaissance Ar(P, V) dans l’ensemble des
ensembles d’attributs d’évènement Ae(P, V) qui permet d’engendrer de nouvelles propriétés qui
seront anonymes jusqu’à ce qu’elles soient oubliées ou nommées.
Une fonction de transformation d’attributs f doit vérifier la contrainte suivante :
∀Xr ∈ Ar(P, V) {p ∈ P : ∃v ∈ V(p, v) ∈ f(Xr)}
∩ {p ∈ P : ∃Xe ∈ Ae(P, V) ∃pr ∈ P((pr, Xe) ∈ Xr ∧ ∃v ∈ V(p, v) ∈ Xe)} = ∅
qui exprime que les nouveaux attributs d’évènement créés par la fonction f ont des noms strictement
différents de ceux déjà employés dans l’ensemble d’attributs de reconnaissance qui est en
argument de f. Cette obligation participe à assurer l’unicité d’utilisation des noms de propriété
dans une chronique.
L’ensemble des fonctions de transformation d’attributs sur (P, V) est noté T(P, V).
Les transformations d’attributs produisent ainsi de nouvelles données attachées aux reconnaissances.
Pour pouvoir les employer par la suite dans des comparaisons ou des calculs, il est nécessaire
de les identifier en les nommant. Les nouvelles propriétés qui sont soit issues d’une transformation
d’attributs soit directement issues du flux d’évènements (i.e. des attributs d’évènement) ont
d’abord un nom anonyme ♦ qui leur est donné par la fonction suivante :
Définition 11 (fonction de dénomination anonyme). Une fonction de dénomination anonyme
est définie sur l’ensemble des ensembles d’attributs d’évènement. Elle crée un ensemble d’attributs
de reconnaissance, réduit à un singleton, en nommant ♦ l’ensemble d’attributs d’évènement
45Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
initial comme défini ci-dessous :
D : Ae(P, V) → Ar(P, V)
X 7→
{(♦, X)} si X 6= ∅
∅ si X = ∅
Les propriétés anonymes ♦ peuvent ensuite être nommées par la fonction suivante :
Définition 12 (fonction de renommage d’attributs). La fonction de renommage d’attributs
est définie sur l’ensemble des ensembles d’attributs de reconnaissance et sur l’ensemble des noms de
propriété. Elle nomme l’attribut anonyme ♦ de l’ensemble d’attributs comme défini ci-dessous 2
:
R : Ar(P, V) × P → Ar(P, V)
(X, p0
) 7→ {(p
0
, v) : (♦, v) ∈ X}
∪ {(p, v) ∈ X : p 6= ♦}
Ces fonctions permettent d’effectuer toutes les opérations nécessaires à la manipulation d’attributs
et sont utilisées dans la Section 2.3.2 pour définir le processus de reconnaissance où l’on
manipule des attributs qui doivent être nommés et parfois modifiés.
2.2 Définition d’une syntaxe étendue du langage des chroniques
: ajout de contraintes sur des attributs d’évènement
et de constructions temporelles
Nous pouvons maintenant définir une syntaxe du langage des chroniques étendant largement
celle de [CCK11]. De même que dans la Section 1.5, le langage des chroniques est construit
par induction à partir d’évènements simples et de divers opérateurs permettant de spécifier des
contraintes, temporelles ou non, sur les évènements étudiés. Commençons par détailler les diffé-
rentes extensions et modifications envisagées.
Expression de contraintes sur des attributs d’évènement Le langage des chroniques peut
maintenant être étendu pour permettre de prendre en compte et de raisonner sur les attributs
définis dans la Section 2.1.1 à l’aide des fonctions définies dans la Section 2.1.2. Toute chronique
est dotée d’un prédicat P qui exprime les contraintes souhaitées sur les propriétés manipulées.
Avant de pouvoir valider une reconnaissance, il faut que le prédicat P, évalué sur les valeurs
des attributs de la reconnaissance, soit vérifié. Pour la manipulation des attributs, une chronique
est également dotée d’une fonction de transformation d’attributs (Définition 10) introduisant de
nouveaux attributs.
2. Il est immédiat de montrer que les images de la fonction R sont bien des éléments de Ar(P, V).
46CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA
RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES
Une construction de nommage Nous ajoutons également une construction de nommage afin
de pouvoir spécifier un nom pour nommer les nouvelles propriétés anonymes ♦, comme introduit
précédemment dans 2.1. Une telle construction est nécessaire. En effet, un nom unique doit être
donné aux nouveaux attributs, ils ne peuvent donc pas être nommés d’après le nom de l’évènement
ou de la sous-chronique auquel ils correspondent car plusieurs évènements de même nom ou même
plusieurs sous-chroniques peuvent prendre part à une description de comportement, mais il est
nécessaire de pouvoir les distinguer. Donc, comme plusieurs évènements d’un même nom peuvent
prendre part à la construction d’une chronique, il est nécessaire de pouvoir se référer précisément
à l’un d’entre eux afin de savoir de quel évènement il faut récupérer dans le flux les valeurs des
attributs pour évaluer le prédicat. Le nom spécifié par la construction de nommage remplit ce rôle
mais pour cela il faut assurer qu’un nom donné n’est employé qu’une unique fois.
Notion de contexte Pour assurer que les noms de propriété ne sont effectivement utilisés qu’une
seule fois dans une chronique, il est nécessaire de faire apparaître des contraintes sur ces noms au
niveau de la construction du langage. Pour ce faire, nous définissons la notion de contexte d’une
chronique : il s’agit de l’ensemble des noms de propriété mis en jeu dans la chronique.
Le contexte d’une chronique donnée, construit par induction en parallèle du langage, est intuitivement
généralement l’union des contextes des sous-chroniques directes formant la chronique
étudiée (c’est-à-dire l’union des noms de propriété des sous-chroniques). Cette gestion du contexte
doit être particularisée pour quelques constructions, et nous détaillons les raisons de ces particularités
après la définition suivante.
Le contexte est également utilisé pour déterminer quels attributs sont disponibles pour l’évaluation
du prédicat P et de la fonction de transformation f associés à la chronique. On devra ainsi
distinguer deux types de contextes : un contexte d’évaluation pour le prédicat P et la fonction
f, et un contexte résultant à transmettre dans l’induction pour la construction des contextes de
chroniques plus complexes. Le contexte évolue donc en deux temps : une première fois avant la
reconnaissance de la chronique et l’évaluation du prédicat, et une seconde fois après. Nous appelons
contexte d’évaluation le contexte correspondant au domaine possible du prédicat et de la fonction,
et contexte résultant, le contexte d’évaluation éventuellement modifié, après l’évaluation du pré-
dicat, et qui sert à définir le prochain contexte d’évaluation dans l’induction. Des contraintes qui
apparaissent dans la construction du langage pour assurer qu’un nom ne peut être utilisé qu’une
seule fois portent sur le contexte d’évaluation. Les raisons précises derrière l’existence de ces deux
notions de contexte seront développées après la Définition 13.
Des opérateurs de contraintes sur les délais Afin de modéliser des contraintes temporelles,
dix constructions sont ajoutées par rapport à [CCK11]. Ces constructions découlent de la logique
d’intervalles d’Allen [All83] évoquée dans le Chapitre 1. Il s’agit de spécifier des contraintes sur
des intervalles de reconnaissance de chroniques, c’est-à-dire, pour une reconnaissance donnée, sur
l’intervalle de temps nécessaire et suffisant pour établir cette reconnaissance. Une première partie
des opérateurs de contraintes temporelles permet d’exprimer toutes les relations temporelles entre
deux intervalles de reconnaissance de deux chroniques (opérateurs equals, starts, finishes, meets,
47Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
overlaps, et during) à l’instar des treize relations d’Allen 3
. D’autres constructions décrivent trois
différentes contraintes sur la durée de reconnaissance d’une chronique (opérateurs lasts δ, at least
δ, at most δ) exprimant que le temps de reconnaissance de la chronique doit être respectivement
exactement, au moins ou au plus une certaine durée δ. Elles correspondent à une transcription des
opérateurs d’Allen equals, during et le symétrique de during. Seules ces trois constructions sont
retenues car ce sont les seules ayant un sens dans notre contexte. En effet, si l’on considère par
exemple la transposition de la relation starts, la contrainte qu’une certaine durée δ « débute »
une reconnaissance n’apporte aucune spécification supplémentaire que celle qui impose que la
reconnaissance dure au moins δ. La relation overlaps, quant à elle, lorsqu’elle est transcrite entre
une reconnaissance et une durée, serait vérifiée dans tous les cas ; de même que la relation before.
Il n’y a donc pas de sens à les introduire. La dernière construction spécifie l’écoulement d’un laps
de temps directement après la reconnaissance d’une chronique (opérateur then δ) et correspond à
une transposition de l’opérateur d’Allen meets.
Les bornes de l’absence La notion d’absence est une notion cruciale dans le domaine de la
reconnaissance de comportements, comme évoqué dans la Section 1.1. Dans la description d’une absence,
il est nécessaire, pour pouvoir statuer d’une reconnaissance, de spécifier l’intervalle de temps
pendant lequel le comportement non désiré ne doit pas se produire. Dans [CCK11], le langage des
chroniques permet la description de l’absence d’un comportement pendant un autre comportement.
C’est ce second comportement qui spécifie l’intervalle de temps à observer et pendant lequel
le comportement interdit ne doit pas avoir lieu. Se pose alors la question de l’inclusion ou non des
bornes dans l’intervalle considéré : le comportement interdit peut-il commencer en même temps
ou se terminer au même instant que le comportement recherché ? Dans [CCK11], un seul cas de
figure est formulable : le comportement interdit peut commencer en même temps mais doit terminer
strictement avant la fin de la reconnaissance recherchée pour l’invalider. Nous introduisons
dans la définition suivante (cf. [absence]) trois nouvelles notations qui permettent l’expression des
trois possibilités. Notons que l’ancienne notation est utilisée parmi les trois, mais, afin de rendre
la lecture du langage plus intuitive, elle ne désigne plus les même bornes que dans [CCK11] (cf.
Définition 16).
Le « cut » Nous ajoutons également plusieurs nouveaux opérateurs. Les deux premiers ajouts
correspondent à des séquences dont nous souhaitons limiter la multiplicité des reconnaissances.
Nous commençons par ajouter un opérateur que l’on appelle « cut », noté « ! ». Il exprime la
reconnaissance consécutive de deux comportements A et B, comme dans le cadre d’un séquence,
mais nous la restreignons à la première occurrence du comportement B après chaque comportement
A. Nous limitons donc le nombre de reconnaissances par rapport à une séquence classique.
3. L’opérateur d’Allen before correspond à une version stricte de la séquence (la séquence est en fait une disjonction
de meets et before) qui fait déjà partie du langage de [CCK11] et n’est donc pas ajouté.
Notons également que l’opérateur de conjonction peut alors être exprimé comme une disjonction de tous les
opérateurs d’Allen.
48CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA
RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES
Le changement d’état ou « double cut » Nous ajoutons une seconde construction, correspondant
à une séquence dont nous limitons la multiplicité des reconnaissances, avec une chronique
exprimant le « changement d’état ». Il s’agit de décrire le passage d’un comportement caractérisant
un état à un autre comportement caractérisant un autre état. Cette construction est représentée
par l’opérateur noté « !! » et correspond, comme nous le verrons plus clairement par la suite, à
un cut « dans les deux sens », donc nous l’appelons également « double cut ». Elle répond à une
problématique fréquente lors du traitement de cas concrets. Considérons par exemple un drone à
terre dont le décollage doit être détecté. Ses coordonnées de position permettent aisément d’identifier
si le drone se trouve à terre (on_ground) ou bien s’il vole (above_ground). Le changement
d’état de l’un à l’autre caractérise le décollage de l’appareil. Identifier ce changement d’état correspond
à détecter « le dernier on_ground avant le premier above_ground », ce qui correspond à
la sémantique de l’opérateur « !! ». Notons que ce changement d’état peut être exprimé à l’aide
des autres opérateurs, mais lorsque l’on traite des applications réelles, il apparaît que l’opérateur
de changement d’état est souvent nécessaire. Cette construction est donc ajoutée au langage afin
de s’affranchir de définitions fastidieuses de chroniques.
Une construction d’évènement de reconnaissance Lors de l’écriture des descriptions des
comportements à reconnaître, il peut être intéressant de décomposer les comportements complexes
pour les décrire en plusieurs étapes. Il y a alors deux possibilités pour imbriquer une chronique
dans une autre. Soit la chronique est considérée comme un évènement ayant un instant de fin et un
instant de début a priori disjoints, soit la chronique est réduite à son instant de reconnaissance. La
construction par induction du langage des chroniques implique l’intégration naturelle du premier
cas dans la syntaxe. En revanche, si l’on souhaite pouvoir exprimer le second cas, il faut rajouter une
construction à apposer à une chronique pour se référer uniquement à son instant de reconnaissance.
Pour ce faire, nous introduisons un opérateur, appelé « at » et noté « @ », qui correspond à
la détection d’un évènement « abstrait d’une chronique », c’est-à-dire réduit à son instant de
reconnaissance et donc nécessairement ponctuel.
Donnons maintenant la syntaxe du langage muni des extensions décrites ci-dessus. Notons que
la sémantique du langage est présentée Définition 16.
Définition 13 (chroniques). Soit N, P, et V les ensembles introduits au début de la Section 2.1,
p. 43. Soit S un ensemble de symboles de prédicats. L’ensemble des chroniques sur (N, P, V, S),
noté X, est un ensemble de triplets (C, P, f), où :
— C est une formule de chronique, comme définie dans la définition inductive de X qui suit ;
— P ∈ S est un symbole de prédicat ;
— f ∈ T(P, V) est une transformation d’attributs.
X est défini inductivement avec deux notions de contextes, qui sont des fonctions de X dans P :
— un contexte d’évaluation, noté Ce(·);
— un contexte résultant, noté Cr(·).
Pour tous C1 ∈ X et C2 ∈ X, on a :
49Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
[évènement simple] Si A ∈ N, alors (A, P, f) ∈ X,
Ce(A, P, f) = {♦}, et Cr(A, P, f) = Ce(A, P, f);
[séquence] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1 C2, P, f) ∈ X,
Ce(C1 C2, P, f) = Cr(C1)∪Cr(C2), et Cr(C1 C2, P, f) = Ce(C1 C2, P, f);
[conjonction] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1&C2, P, f) ∈ X,
Ce(C1&C2, P, f) = Cr(C1) ∪ Cr(C2), Cr(C1&C2, P, f) = Ce(C1&C2, P, f);
[disjonction] (C1 || C2, P, f) ∈ X,
Ce(C1 || C2, P, f) = Cr(C1) ∩ Cr(C2), et Cr(C1 || C2, P, f) = Ce(C1 || C2, P, f);
[absence] Si Ce(C1) ∩ Ce(C2) = {♦}, alors ((C1) − [C2], P, f) ∈ X,
Ce((C1) − [C2], P, f) = Cr(C1)∪Cr(C2), et Cr((C1) − [C2], P, f) = Cr(C1);
De même pour (C1)−]C2], (C1) − [C2[
4
et (C1)−]C2[ ;
[meets] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1 meets C2, P, f) ∈ X,
Ce(C1 meets C2, P, f) = Cr(C1) ∪ Cr(C2), et Cr(C1 meets C2, P, f) = Ce(C1 meets C2, P, f);
[overlaps] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1 overlaps C2, P, f) ∈ X,
Ce(C1 overlaps C2, P, f) = Cr(C1)∪Cr(C2), et Cr(C1 overlaps C2, P, f) = Ce(C1 overlaps C2, P, f);
[starts] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1 starts C2, P, f) ∈ X,
Ce(C1 starts C2, P, f) = Cr(C1) ∪ Cr(C2), et Cr(C1 starts C2, P, f) = Ce(C1 starts C2, P, f);
[during] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1 during C2, P, f) ∈ X,
Ce(C1 during C2, P, f) = Cr(C1)∪Cr(C2), et Cr(C1 during C2, P, f = Ce(C1 during C2, P, f);
[finishes] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1 finishes C2, P, f) ∈ X,
Ce(C1 finishes C2, P, f) = Cr(C1)∪Cr(C2), et Cr(C1 finishes C2, P, f) = Ce(C1 finishes C2, P, f);
[equals] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1 equals C2, P, f) ∈ X,
Ce(C1 equals C2, P, f) = Cr(C1)∪Cr(C2), et Cr(C1 equals C2, P, f) = Ce(C1 equals C2, P, f);
[lasts δ] Si δ ∈ R
+
∗
, alors (C1 lasts δ, P, f) ∈ X,
Ce(C1 lasts δ, P, f) = Cr(C1), et Cr(C1 lasts δ, P, f) = Ce(C1 lasts δ, P, f);
[at least δ] Si δ ∈ R
+
∗
, alors (C1 at least δ, P, f) ∈ X,
Ce(C1 at least δ, P, f) = Cr(C1), et Cr(C1 at least δ, P, f) = Ce(C1 at least δ, P, f);
[at most δ] Si δ ∈ R
+
∗
, alors (C1 at most δ, P, f) ∈ X,
Ce(C1 at most δ, P, f) = Cr(C1), et Cr(C1 at most δ, P, f) = Ce(C1 at most δ, P, f);
[then δ] Si δ ∈ R
+
∗
, alors (C1 then δ, P, f) ∈ X,
Ce(C1 then δ, P, f) = Cr(C1), et Cr(C1 then δ, P, f) = Ce(C1 then δ, P, f);
[nommage de propriété] Si x ∈ P \ {♦}, alors (C1→x, P, f) ∈ X,
Ce(C1→x, P, f) = Cr(C1), Cr(C1→x, P, f) = {x, ♦} ;
[cut] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1!C2, P, f) ∈ X,
Ce(C1!C2, P, f) = Cr(C1) ∪ Cr(C2), et Cr(C1!C2, P, f) = Ce(C1!C2, P, f);
4. C’est cette construction qui correspond à celle de l’absence dans [CCK11] présentée dans la Section 1.5.3 et
notée (C1) − [C2].
50CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA
RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES
[changement d’état] Si Ce(C1) ∩ Ce(C2) = {♦}, alors (C1!!C2, P, f) ∈ X,
Ce(C1!!C2, P, f) = Cr(C1) ∪ Cr(C2), et Cr(C1!!C2, P, f) = Ce(C1!!C2, P, f);
[évènement de reconnaissance] (@C1, P, f) ∈ X,
Ce(@C1, P, f) = Cr(C1), et Cr(@C1, P, f) = Cr(C1).
Remarque 4. La grammaire du langage des chroniques, sans considération de contexte, s’exprime
comme suit sous la forme de Backus-Naur, avec A ∈ N, δ ∈ R
+
∗
et x ∈ P \ {♦} :
C ::= A | C C | C&C | C || C | (C) − [C] | C meets C | C overlaps C | C starts C | C during C
| C finishes C | C equals C | C lasts δ | C at least δ | C at most δ | C then δ | C→x
| C!C | C!!C | @C
Éclaircissements sur la double notion de contexte La contrainte récurrente Ce(C1) ∩
Ce(C2) = {♦} assure que tout nom de propriété ne peut être utilisé qu’une seule fois dans une
chronique, ce qui est nécessaire pour pouvoir identifier correctement les propriétés. En effet, comme
évoqué précédemment, un nom d’attribut se réfère à un évènement ou une chronique spécifique, et
un même nom de propriété ne peut donc pas être donné à plusieurs structures au sein d’une même
chronique.
Quant à la construction des contextes, la définition générique intuitive évoquée précédemment
est celle de la séquence et elle est partagée par la plupart des opérateurs. Le contexte d’évaluation
est simplement l’union des contextes résultant des deux sous-chroniques, regroupant ainsi tous les
noms de propriété mis en jeu dans l’ensemble de la chronique. Le contexte résultant est identique
au contexte d’évaluation.
Cependant, ceci ne peut pas être appliqué à l’ensemble des opérateurs, et c’est là qu’apparaît
la nécessité de définir deux contextes. Présentons les trois exceptions.
Le cas de la disjonction Tout d’abord, notons que la disjonction est la seule chronique
construite à partir de deux sous-chroniques mais à laquelle n’est pas imposée la contrainte générique
d’avoir l’intersection des contextes d’évaluation réduite au singleton {♦}. Au contraire, nous allons
nous intéresser aux noms de propriété qui sont employés dans les deux branches de la disjonction.
Cette particularité provient du fait que, dans une disjonction, seule l’une des deux sous-chroniques
peut être reconnue. Pour qu’un nom d’attribut puisse avoir un sens dans une disjonction, c’est-
à-dire pour qu’il soit toujours possible de lui attribuer une valeur en tout cas de figure, un nom
d’attribut dans une disjonction doit se référer à un évènement dans chacune des deux branches. En
effet, sinon, on ne peut pas assurer que, quelle que soit la branche reconnue, tout nom d’attribut
se réfère effectivement à un évènement du flux ce qui est nécessaire pour évaluer le prédicat et la
fonction de transformation. Considérons par exemple la chronique (A→x B→y) || (D→z A→x)
qui est une disjonction reconnaissant soit la séquence de deux évènements A suivi de B soit la
séquence de D suivi de A. Toute reconnaissance de cette chronique mettra en jeu un évènement
de nom de propriété x, mais selon la branche de la disjonction reconnue, elle mettra en jeu un
évènement de nom de propriété soit y soit z. Au niveau de la disjonction, on peut donc se référer
à x pour lequel des valeurs seront toujours disponibles, mais on ne peut pas se référer à y ou z
51Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
comme cela dépend de la branche reconnue. Pour cette raison, le contexte d’évaluation associé à
une disjonction est l’intersection des contextes de ses sous-chroniques.
Le cas de l’absence Le cas de l’absence est similaire à celui de la disjonction. Nous souhaitons
permettre l’expression de la contrainte suivante, sur les attributs des deux sous-chroniques
d’une absence : « (C1)−[C2] vérifiant le prédicat P » correspond au comportement décrit par « C1
reconnue sans qu’il n’y ait aucune occurrence de C2 vérifiant le prédicat P durant la reconnaissance
de C1, où P peut porter sur les attributs à la fois de C1 et de C2 ». Par exemple, le comportement
suivant peut alors être décrit : « Un avion d’ID n a modifié sa fréquence radio à f 6= 118.075
(qui est en fait la fréquence recherchée) à l’instant t au plus 5 min après le décollage, et, après t
mais avant cette échéance de 5 min, la fréquence radio n’a pas été corrigée par l’avion n ». Pour
reconnaître ce comportement, les attributs des deux sous-chroniques C1 et C2 doivent être comparés
pour identifier le même avion n et pour avoir accès à l’instant t. Notons que cet exemple
sera développé dans l’application présentée dans la Section 5.3. Pour permettre au prédicat d’avoir
accès aux attributs des deux sous-chroniques, le contexte d’évaluation de la chronique doit être
l’union des deux contextes résultants des deux sous-chroniques, comme c’est le cas généralement.
Cependant, la chronique (C1) − [C2] est reconnue s’il n’y a aucune reconnaissance de C2 pendant
la reconnaissance de C1, donc les deux contextes ne doivent pas être passés dans l’induction à une
chronique de plus haut niveau. En effet, comme dans le cas de la disjonction, il n’y a pas nécessairement
de valeurs pour les attributs de C2 car il n’y a pas nécessairement de reconnaissance de C2.
C’est pour cela que l’on introduit la notion de contexte résultant, qui permet de conserver dans
le contexte d’évaluation l’union des deux contextes des sous-chroniques, mais de ne passer dans
l’induction uniquement le contexte de C1 en réduisant le contexte résultant à celui-ci.
Le cas du nommage de propriété La dernière exception à la définition générique des
contextes est le cas du nommage de propriété. Le rôle de cette construction de nommer les attributs
de la chronique. Afin que ce nom puisse être utilisé par la suite, ce nom doit donc être ajouté
au contexte résultant de la chronique. Par ailleurs, il a été décidé que, lorsque les propriétés
d’une chronique sont ainsi nommées, on ne conserve que les propriétés créées par la fonction de
transformation f (qui sont stockées sous le nom anonyme ♦ avant d’être éventuellement nommées)
et les anciennes propriétés sont « oubliées ». Ceci se traduit par le fait que le contexte résultant
est donc réduit à l’ensemble {♦, x} où x est le nom de propriété choisi. Notons que si l’on souhaite
conserver l’ensemble des propriétés présentes à l’intérieur de la chronique nommée, cela est possible
à travers de la fonction f. Le choix d’oublier par défaut ces propriétés a été fait car cela permet
d’abstraire la sous-chronique en une sorte d’évènement de plus haut niveau muni d’attributs plus
complexes tout en se défaisant d’informations superflues.
52CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA
RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES
2.3 Définition de la sémantique du langage à travers la notion
de reconnaissance de chronique
Dans la section précédente, nous avons établi la syntaxe de notre langage des chroniques, en
introduisant de nombreuses nouvelles constructions. Dans cette section, nous allons maintenant
définir la sémantique de ce langage en définissant la notion de reconnaissance d’une chronique.
Dans un premier temps (Section 2.3.1) nous étudierons le modèle de représentation des reconnaissances
dans le formalisme. Dans [CCK11], une reconnaissance est représentée par un ensemble.
Nous montrerons qu’une représentation arborescente est plus appropriée. Nous définirons dans un
second temps (Section 2.3.2) la sémantique du langage des chroniques fondée sur ce formalisme de
reconnaissance arborescente.
2.3.1 Passage à une représentation arborescente des reconnaissances
Il s’agit d’étudier ici le formalisme employé pour représenter une reconnaissance de chronique.
Rappelons que dans [CCK11], une reconnaissance d’une chronique est un ensemble contenant les
indices d’occurrence des évènements ayant donné lieu à la reconnaissance (cf. Définition 1.5.3).
Nous souhaitons mettre en avant un problème de multiplicité des reconnaissances lié à la structure
ensembliste utilisée.
Commençons par étudier l’exemple suivant qui illustre ce problème.
Considérons la chronique C = (A B)&A sur le flux ϕ = ((a, 1),(a, 2),(b, 3)).
Avec le formalisme de [CCK11] dans lequel une reconnaissance est un ensemble d’évènements,
nous obtenons trois reconnaissances de la chronique C sur le flux ϕ :
RC (ϕ) = {{1, 2, 3}, {1, 3}, {2, 3}}
Remarquons que, dans la reconnaissance {1, 2, 3}, on ne peut pas identifier quel évènement a
participe à la reconnaissance de la séquence A B et quel évènement a correspond à l’évènement
simple A. Ceci est dû à l’impossibilité de distinguer les ensembles {1, 3, 2} et {2, 3, 1}, et donc à
distinguer les deux a. Or, comme introduit dans la Section 1.1, l’historisation des évènements, à
savoir l’identification exacte de quel évènement a participé à quel morceau de la reconnaissance,
est une problématique omniprésente. D’autre part, l’introduction d’attributs rend primordial l’appariement
exact des évènements à la chronique pour que les valeurs correctes des propriétés soient
considérées. Nous voudrions donc pouvoir différencier les ensembles {1, 3, 2} et {2, 3, 1}, ce qui
donnerait donc quatre reconnaissances pour la chronique C sur le flux ϕ. Ce problème a donc
également une incidence sur la combinatoire du système.
Pour résoudre cette question, nous proposons de manipuler des reconnaissances sous forme
d’arbres binaires plutôt que sous forme de simples ensembles. Davantage d’informations peuvent
ainsi être conservées : l’arbre d’une reconnaissance est calqué sur la structure arborescente de la
chronique associée et l’on a donc la possibilité de connaître la correspondance exacte entre les noms
d’évènements simples de la chronique et les évènements du flux prenant part à la reconnaissance.
Pour l’exemple précédent, cela permet de différencier les appariements des a du flux et ainsi
53Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
obtenir quatre reconnaissances. Avec la représentation d’arbre binaire définie par la suite (Définition
14), l’ensemble de reconnaissances est alors :
RC (ϕ) = {hh1, 3i, 2i,hh2, 3i, 1i,hh1, 3i, 1i,hh2, 3i, 2i}
Par ailleurs, pour favoriser la lecture, nous adoptons un autre système de représentation des
évènements, en indiquant les évènements et leur date d’occurrence en lieu et place de leur indice
d’occurrence dans le flux, comme annoncé au début de la Section 2.1.1. Nous serons également
amenés à ajouter un paramètre d à l’ensemble de reconnaissance, indiquant l’instant jusqu’auquel
les évènements du flux ont été pris en compte. Ce paramètre est nécessaire pour l’écriture des
ensemble de reconnaissances de certains opérateurs exprimant des contraintes temporelles. Avec
ces nouvelles notations, l’ensemble de reconnaissances de l’exemple précédent sera noté :
RC (ϕ, 3) = {hh(a, 1),(b, 3)i,(a, 2)i,hh(a, 2),(b, 3)i,(a, 1)i,
hh(a, 1),(b, 3)i,(a, 1)i,hh(a, 2),(b, 3)i,(a, 2)i}
Définissons maintenant formellement la représentation arborescente utilisée. Une reconnaissance
r est l’arbre binaire des évènements (e, t) ayant donné lieu à la reconnaissance. La structure de
l’arbre de reconnaissance reflète celle de la chronique associée, les feuilles de celui-ci correspondant
aux évènements donnant lieu à la reconnaissance.
Les informations qui sont pertinentes sont la structure de l’arbre ainsi que les étiquettes des
feuilles 5
. Pour identifier sans ambiguïté les appariements d’évènements avec les sous-chroniques
de la chronique étudiée, il n’est pas nécessaire de nommer d’autres nœuds que les feuilles. Nous
utilisons donc le formalisme suivant.
Définition 14 (arbres de reconnaissance). L’ensemble A(E) des arbres de reconnaissance sur
l’ensemble d’évènements E se définit par induction comme suit, où X est un ensemble d’attributs :
— si (e, t) ∈ E, alors ((e, t), X) ∈ A(E);
— si r1 ∈ A(E) et r2 ∈ A(E), alors (hr1, r2i, X) ∈ A(E);
— si r ∈ A(E), alors (hri, X) ∈ A(E), (hr, ⊥i, X) ∈ A(E) et (h⊥, ri, X) ∈ A(E).
Nous définissons aussi l’ensemble F(r) des feuilles d’un arbre de reconnaissance r par induction :
— si r = ((e, t), X) avec (e, t) ∈ E, alors F(r) = {(e, t)} ;
— si r = (hr1, r2i, X) avec r1 ∈ A(E) et r2 ∈ A(E), alors F(r) = F(r1) ∪ F(r2);
— si r ∈ {(hr1, ⊥i, X),(h⊥, r1i, X),(hr1i, X)} avec r1 ∈ A(E), alors F(r) = F(r1).
Notons que, dans la définition précédente, nous avons introduit une notation pour distinguer
deux types de paires : les feuilles qui sont des paires composées d’un nom d’évènement et d’une
date, notées entre parenthèses (), et les ramifications des arbres, notées entre chevrons hi.
Avant de définir la sémantique de notre langage à travers la notion de reconnaissance, nous
définissons au préalable deux fonctions Tmin et Tmax retournant respectivement, en fonction d’une
reconnaissance r, le premier et le dernier instants auxquels a lieu un évènement participant à r :
5. L’ensemble des feuilles d’un arbre de reconnaissance correspond à la reconnaissance dans le formalisme
de [CCK11].
54CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA
RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES
Définition 15 (temps min et max).
Tmin : A(E) → R, r 7→ min{t : (e, t) ∈ F(r)}
Tmax : A(E) → R, r 7→ max{t : (e, t) ∈ F(r)}
Ainsi, pour toute reconnaissance r, l’intervalle [Tmin(r), Tmax(r)] correspond à l’intervalle de
temps nécessaire et suffisant pour établir la reconnaissance r. Ces deux fonctions permettront de
poser des contraintes temporelles entre les intervalles d’occurrence de chroniques.
2.3.2 Formalisation de la notion de reconnaissance de chronique
Nous pouvons maintenant poser la sémantique de notre langage des chroniques en définissant la
notion de reconnaissance d’une chronique tout en intégrant la nouvelle représentation arborescente
des reconnaissances. La définition de la sémantique est délicate pour deux raisons principales :
— d’une part, le processus de reconnaissance doit permettre d’évaluer des prédicats sur des
attributs d’évènement provenant de différentes parties de la chronique ;
— d’autre part, les chroniques doivent être reconnues en ligne. Avec ces deux contraintes à l’esprit,
nous définissons pour chaque chronique un ensemble de reconnaissances qui correspond
à toutes les reconnaissances de la chronique représentées sous forme d’arbres et munies de
leurs attributs de reconnaissance associés.
Comme l’on souhaite que le processus de reconnaissance puisse être effectué au fur et à mesure
tout en étant exhaustif, la construction des ensembles de reconnaissances est progressive, ce qui
s’exprime par une définition inductive dépendant de l’instant d jusqu’auquel les évènements du flux
sont considérés. La constitution de ces ensembles ne nécessite donc pas de connaître par avance
l’intégralité du flux d’évènements.
Nous définissons donc, par induction pour chaque chronique, l’ensemble de ses reconnaissances
sur un flux d’évènements et jusqu’à une date donnés. Les évènements de cet ensemble sont des
couples (r, X) où r est un arbre de reconnaissance et X est l’ensemble d’attributs de reconnaissance
associé. Chaque définition peut se décomposer en trois parties :
— l’expression des contraintes temporelles liées à l’opérateur;
— la vérification du prédicat;
— la définition de l’ensemble d’attributs de reconnaissance.
Définition 16 (ensembles de reconnaissances). Soit C ∈ X une chronique. Considérons, pour
tout prédicat P, un (P × V)-modèle M dans lequel il existe une interprétation Pˆ de P.
L’ensemble des reconnaissances de C sur le flux d’évènements ϕ jusqu’à la date d est noté
RC (ϕ, d) et est un sous-ensemble de A(E).
L’ensemble d’attributs associé à une reconnaissance r est noté Xr. Nous utilisons les notations
suivantes : X♦
r = {(♦, v) ∈ Xr : v ∈ Ae(P, V)}, qui est un singleton, et X∗
r = Xr \ X♦
r
.
Les ensembles de reconnaissances et les ensembles d’attributs associés aux reconnaissances sont
définis par induction comme suit :
— Un évènement simple A vérifiant le prédicat P est reconnu si un évènement de nom A
a lieu dans le flux avant l’instant d et si ses attributs vérifient le prédicat P. Les attributs
de reconnaissance sont réduits à une unique propriété anonyme contenant les éventuels
attributs créés par la fonction f et les attributs de l’évènement du flux.
55Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Si A∈N, alors :
R(A,P,f)(ϕ, d) = {((e, t), X(e,t)) : e = A ∧ ∃i ϕ(i) = (e, t) ∧ t ≤ d ∧ Pˆ[D◦α((e, t))]
∧ X(e,t)={ (♦, X) : ∃Xe ∈ Ae(P, V) ( X = Xe∪α((e, t)) ∧ f◦D◦α((e, t)) = {(♦, Xe)} ) } }
En d’autres termes, les reconnaissances d’un évènement simple suivent les règles suivantes :
— le nom de l’évènement est correct ;
— la date de l’évènement est inférieure à l’horizon (t ≤ d) ;
— le prédicat, s’il existe, est vérifié sur les attributs de l’évènement (Pˆ[D◦α((e, t))]).
Et en supplément, l’ensemble d’attributs associé à la reconnaissance est constitué de la
manière suivante. Il contient :
— les attributs de l’évènement dans le flux (α((e, t))) ;
— les attributs créés par la fonction f (f◦D◦α((e, t))).
— Une disjonction C1 || C2 vérifiant un prédicat P est reconnue lorsque l’une des deux souschroniques
est reconnue et vérifie P. La structure de l’arbre indique quelle branche de la
chronique a été reconnue. Les attributs de reconnaissance sont réduits aux attributs dont
les noms sont utilisés à la fois dans C1 et C2, comme détaillé dans la Section 2.2 (p.51),
avec les attributs anonymes créés par la fonction f. On rappelle que la fonction ρ permet
d’accéder au nom d’une propriété.
R(C1||C2,P,f)(ϕ, d) = {(hr, ⊥i, Xhr,⊥i) : r ∈ RC1
(ϕ, d) ∧ Pˆ[X∗
r
]
∧ Xhr,⊥i = {x ∈ X∗
r
: ρ(x) ∈ Ce(C1||C2)} ∪ D◦f[X∗
r
]}
∪ {(h⊥, ri, Xh⊥,ri) : r ∈ RC2
(ϕ, d) ∧ Pˆ[X∗
r
]
∧Xh⊥,ri={x ∈ X∗
r
: ρ(x) ∈ Ce(C1 || C2)} ∪ D◦f[X∗
r
]}
— Une séquence C1C2 vérifiant P est reconnue lorsque C2 est reconnue après avoir reconnu
C1 et que les deux reconnaissances vérifient P. Les attributs de reconnaissance sont ceux
des reconnaissances de C1 et de C2 avec les attributs anonymes créés par la fonction f.
C1 C2
R(C1 C2,P,f)(ϕ, d) = {(hr1, r2i, Xhr1,r2i) : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC2
(ϕ, d)
∧Tmax(r1) < Tmin(r2) ∧ Pˆ[X∗
r1
∪ X∗
r2
]
∧ Xhr1,r2i = X∗
r1
∪ X∗
r2
∪ D◦f[X∗
r1
∪ X∗
r2
]}
— Une conjonction C1&C2 vérifiant P est reconnue lorsque à la fois C1 et C2 sont reconnues
et vérifient P. Les attributs de reconnaissance sont construits comme pour la séquence.
R(C1&C2,P,f)(ϕ, d)={(hr1, r2i, Xhr1,r2i) : r1∈RC1
(ϕ, d) ∧ r2 ∈ RC2
(ϕ, d)
∧ Pˆ[X∗
r1
∪ X∗
r2
]
∧ Xhr1,r2i = X∗
r1
∪ X∗
r2
∪ D◦f[X∗
r1
∪ X∗
r2
]}
— Une absence (C1) − [C2] vérifiant un prédicat P est reconnue lorsque C1 est reconnue
sans aucune occurrence de C2 vérifiant P durant la reconnaissance de C1. Attention, dans
le cas d’une absence, la signification du prédicat est donc particulière. Les attributs de
reconnaissance sont alors réduits à ceux de la reconnaissance de C1, comme détaillé dans 2.2,
complétés des éventuels attributs anonymes créés par la fonction f.
56CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA
RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES
C1
C2
R((C1)−[C2],P,f)(ϕ, d) = {(hr1i, Xhr1i) : r1∈RC1
(ϕ, d)
∧∀r2∈RC2
(ϕ, d) ( Tmin(r1)>Tmin(r2)
∨Tmax(r1)Tmin(r2) ∨ Tmax(r1)≤Tmax(r2);
— pour (C1)−]C2], elle devient Tmin(r1)≥Tmin(r2) ∨ Tmax(r1)Tmin(r2)∧Tmax(r1)Tmin(r2)∧Tmax(r1)=Tmax(r2).
— Une chronique C1 equals C2 est reconnue lorsque à la fois C1 et C2 sont reconnues sur
exactement le même intervalle de temps, et P est vérifié.
C1
C2
R(C1 equals C2,P,f)(ϕ, d) est défini comme la séquence mais avec la contrainte temporelle
Tmin(r1)=Tmin(r2)∧Tmax(r1)=Tmax(r2).
6. C’est cette construction qui correspond à celle de l’absence dans [CCK11] présentée dans la Section 1.5.3 et
notée (C1) − [C2].
57Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
— Une chronique C1 lasts δ est reconnue lorsque C1 est reconnue, P est vérifié, et la taille de
l’intervalle de reconnaissance est exactement δ.
C1
δ
R(C1 lasts δ,P,f)(ϕ, d) = {(hri, Xhri) : r ∈ RC1
(ϕ, d)
∧Tmax(r) − Tmin(r) = δ
∧ Pˆ[X∗
r
] ∧ Xhri = X∗
r ∪ D◦f[X∗
r
]}
— Une chronique C1 at most δ est reconnue lorsque C1 est reconnue, P est vérifié, et la taille
de l’intervalle de reconnaissance est au plus δ.
C1
δ
R(C1 at most δ,P,f)(ϕ, d) est défini comme la chronique « lasts » mais avec la
contrainte temporelle Tmax(r) − Tmin(r) < δ.
— Une chronique C1 at least δ est reconnue lorsque C1 est reconnue, P est vérifié, et la taille
de l’intervalle de reconnaissance est au moins δ.
C1
δ
R(C1 at least δ,P,f)(ϕ, d) est défini comme la chronique « lasts » mais avec la
contrainte temporelle Tmax(r) − Tmin(r) > δ.
— Une chronique C1 then δ est reconnue lorsque exactement δ unités de temps s’écoulent
après une reconnaissance de C1. L’arbre de reconnaissance conserve l’évènement d’instant
temporel pur (τ, t) correspondant à l’instant de la reconnaissance. Ceci permet, entre autre,
d’avoir une définition correcte de Tmax.
C1 δ
R(C1 then δ,P,f)(ϕ, d)={(hr,(τ, t)i, Xhr,(τ,t)i) : t ≤ d ∧ r ∈ RC1
(ϕ, t)
∧t = Tmax(r)+δ ∧ Pˆ[X∗
r
]
∧ Xhr,(τ,t)i = X∗
r ∪ D◦f[X∗
r
]}
— Une chronique de nommage de propriété C1→x est reconnue lorsque C1 est reconnue.
Les attributs de reconnaissance sont les attributs anonymes de la reconnaissance de C1 mais
renommés x, avec les nouveaux attributs anonymes créés par la fonction f.
R(C1→x,P,f)(ϕ, d) = {(hri, Xhri) : r∈RC1
(ϕ, d) ∧ Pˆ[X∗
r
] ∧ Xhri = R(X♦
r
, x) ∪ D◦f[X∗
r
]}
— Une chronique de cut C1!C2 est reconnue lorsque C1 et C2 sont reconnues successivement
et lorsque la reconnaissance de C2 est la première après celle de C1 En d’autres termes, il
n’y a pas d’autre reconnaissance de C2 entre les deux reconnaissances sélectionnées.
R(C1!C2,P,f)(ϕ, d)={(hr1, r2i, Xhr1,r2i) : r1∈RC1
(ϕ, d) ∧ r2∈RC2
(ϕ, d) ∧ Tmax(r1)
Tmin(r2) ∨ Tmax(r1) ≤ Tmax(r2) )}.
Soit r1 ∈ RC (ϕ|I
, d). Alors r1 ∈ RC1
(ϕ|I
, d) et ∀r2 ∈ RC2
(ϕ|I
, d) ( Tmin(r1) > Tmin(r2) ∨
Tmax(r1) ≤ Tmax(r2) ).
Par hypothèse d’induction, RC1
(ϕ|I
, d) ⊆ RC1
(ϕ|J , d), et donc r1 ∈ RC1
(ϕ|J , d).
Montrons de plus par l’absurde que ∀r2 ∈ RC2
(ϕ|J , d) ( Tmin(r1) > Tmin(r2) ∨ Tmax(r1) ≤
Tmax(r2) ).
Soit r2 ∈ RC2
(ϕ|J , d) tel que Tmin(r1) ≤ Tmin(r2) ∧ Tmax(r1) > Tmax(r2).
En particulier, Tmax(r2) < Tmax(r1) ≤ max I et r2 ∈ RC2
(ϕ|J , d),
donc, comme I est un segment initial de J, r2 ∈ RC2
(ϕ|I
, d),
donc ∃r2 ∈ RC2
(ϕ|I
, d) ( Tmin(r1) ≤ Tmin(r2) ∧ Tmax(r1) > Tmax(r2) ). Absurde.
Donc r1 ∈ RC (ϕ|J , d), et on a donc bien RC (ϕ|I
, d) ⊆ RC (ϕ|J , d).
— La démonstration pour les autres opérateurs est analogue à celle de la séquence.
Remarque 10. En particulier, pour tout k ∈ N et tout d ∈ R,
RC ((ui)i∈J1,kJ
, d) ⊆ RC ((ui)i∈J1,k+1J
, d)
Remarque 11. En revanche, la propriété « pour tout I inclus dans le domaine de ϕ, RC (ϕ|I
, d) ⊆
RC (ϕ, d) » n’est pas vérifiée pour toute chronique dans laquelle est utilisée l’opérateur d’absence.
Le problème se pose si I n’est pas un segment initial du domaine de ϕ. Par exemple, prenons C =
(A D)−[B[ et posons ϕ = ((a, 1),(b, 2),(d, 3)) avec I = {1, 3}. Alors, RC (ϕ|I
, d) = {h(a, 1),(d, 3)i}
mais RC (ϕ, d) = { }, donc RC (ϕ|I
, d) * RC (ϕ, d).
Il en est de même pour la propriété plus générale « pour tout I ⊆ J, RC (ϕ|I
, d) ⊆ RC (ϕ|J , d) »
s’il n’y a pas de condition supplémentaire sur I et J.
2.4.3 Associativité, commutativité, distributivité
Les démonstrations des propriétés suivantes se trouvent dans l’Annexe A.
Propriété 3 (associativité). La disjonction, la conjonction, la séquence, meets et equals sont
associatifs.
Remarque 12. 1. « overlaps » n’est pas associatif.
En effet, considérons le flux ϕ = ((a, 1),(f, 2),(d, 3),(b, 4),(e, 5),(g, 6)), et les chroniques
C1 = A B, C2 = D E et C3 = F G.
On a alors FC1 overlaps C2
(ϕ, 6) = {{1, 3, 4, 5}} et FC2 overlaps C3
(ϕ, 6) = { },
Donc F(C1 overlaps C2) overlaps C3
(ϕ, 6) = {{1, 2, 3, 4, 5, 6}},
mais FC1 overlaps (C2 overlaps C3)(ϕ, 6) = { }.
2. « starts » n’est pas associatif.
En effet, considérons le flux ϕ = ((a, 1),(b, 2),(d, 3),(e, 4)), et les chroniques C1 = A D,
C2 = A B et C3 = A E.
62CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA
RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES
On a alors FC1 starts C2
(ϕ, 4) = { } donc F(C1 starts C2) starts C3
(ϕ, 4) = { },
Mais FC2 starts C3
(ϕ, 4) = {{1, 2, 4}}, donc FC1 starts (C2 starts C3)(ϕ, 4) = {{1, 2, 3, 4}}.
3. « during » n’est pas associatif.
En effet, considérons le flux ϕ = ((a, 1),(b, 2),(d, 3),(e, 4),(f, 5),(g, 6)), et les chroniques
C1 = B E, C2 = D F et C3 = A G.
On a alors FC1 during C2
(ϕ, 6) = { } donc FC1 during (C2 during C3)(ϕ, 6) = { },
Mais FC2 during C3
(ϕ, 6) = {{1, 3, 5, 6}}, donc FC1 during (C2 during C3)(ϕ, 6) = {{1, 2, 3, 4, 5, 6}}.
4. « finishes » n’est pas associatif.
En effet, considérons le flux ϕ = ((a, 1),(b, 2),(d, 3),(e, 4)), et les chroniques C1 = B E,
C2 = D E et C3 = A E.
On a alors FC1 finishes C2
(ϕ, 4) = { } donc F(C1 finishes C2) finishes C3
(ϕ, 4) = { },
Mais FC2 finishes C3
(ϕ, 4) = {{1, 3, 4}}, donc FC1 finishes (C2 finishes C3)(ϕ, 4) = {{1, 2, 3, 4}}.
5. Le changement d’état n’est pas associatif.
En effet, considérons le flux ϕ = ((a, 1),(b, 2),(b, 3),(d, 4)), et les chroniques C1 = A!!(B!!D)
et C2 = (A!!B)!!D.
On a alors FC1
(ϕ, 4) = {{1, 3, 4}} mais FC2
(ϕ, 4) = {{1, 2, 4}}.
6. Le cut n’est pas associatif, puisque le changement d’état est un cut particulier.
Propriété 4 (commutativité). La disjonction, la conjonction et equals sont commutatifs.
Remarque 13. 1. La séquence n’est pas commutative.
En effet, considérons le flux ϕ = ((a, 1),(b, 2)), et les chroniques A B et B A.
On a alors FA B(ϕ, 2) = {{1, 2}} mais FB A(ϕ, 2) = { }.
2. meets, overlaps, starts, during, finishes, le cut et le changement d’état ne sont pas commutatifs.
En effet, comme pour la séquence, les propriétés temporelles qui caractérisent ces opérateurs
sont exprimées par des inégalités et ne sont donc pas commutatives.
Propriété 5 (distributivité). Tous les opérateurs sont distributifs sur la disjonction.
Remarque 14. La distributivité de tout opérateur sur un opérateur autre que la disjonction n’est
pas vérifiée.
En effet, considérons deux opérateurs ~ et }. Si ~ est distributif sur }, alors, en particulier,
l’égalité suivante est vérifiée, où A, B et D sont des évènements simples : A ~ (B } D) ≡ (A ~
B)}(A~D). Une reconnaissance de la chronique du membre de gauche ne peut correspondre qu’à
un unique évènement a. En revanche, si } n’est pas une disjonction, deux évènements a distincts
peuvent participer à une même reconnaissance de la chronique du membre de droite. L’équivalence
n’est donc pas vérifiée si } n’est pas une disjonction, tout opérateur n’est ainsi pas distributif sur
un opérateur autre que la disjonction.
Considérons par exemple le cas de la distributivité de la séquence sur la conjonction, avec
le flux ϕ = ((a, 1),(b, 2),(a, 3),(d, 4)), et les chroniques A (B&D) et (A B)&(A D). On a alors
{1, 2, 3, 4} ∈ F(A B)&(A D)(ϕ, 4) mais {1, 2, 3, 4} ∈/ FA (B&D)(ϕ, 4).
63Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Pour les opérateurs liés aux durées, et qui n’ont donc pas de sens sur des évènements simples, le
même raisonnement s’applique sur les évènements simples qui constituent chaque sous-chronique.
Par exemple, pour le cas de la distributivité de la séquence sur starts, considérons le flux
ϕ = ((a, 1),(b, 2),(d, 3),(e, 4),(b, 5),(f, 6),(g, 7)), et les chroniques (A B) ((D E) starts (F G)) et
(A B D E) starts (A B F G). Alors :
{1, 2, 3, 4, 5, 6, 7} ∈ F(A B D E) starts (A B F G)(ϕ, 7)
mais :
{1, 2, 3, 4, 5, 6, 7} ∈/ F(A B) ((D E) starts (F G))(ϕ, 7)
2.5 Gestion du temps continu à l’aide d’une fonction Lookahead
Cette section s’attache à la gestion du temps dans la mise en œuvre du processus de reconnaissance.
Des opérations de contraintes temporelles ont été ajoutées au langage et la syntaxe comme
la sémantique ont été adaptées pour considérer un modèle de temps continu. Dans une optique
d’implémentation, la considération d’un temps continu soulève des problèmes et rend nécessaire
la définition d’une fonction « Look-ahead » indiquant un prochain instant TC (ϕ, d) jusqu’auquel
le système n’a pas besoin d’être réexaminé car on a l’assurance qu’aucune reconnaissance ne va
se produire jusqu’à cet instant. En effet, les systèmes considérés sont asynchrones, et cette fonction
fournit le prochain instant où les chroniques peuvent évoluer. En indiquant le moment où
observer le système, cette fonction permet de ne pas avoir à le surveiller constamment pour une
reconnaissance éventuelle, ce qui serait impossible du fait du modèle de temps continu (et ce qui
serait de toute façon trop exigeant même si le modèle de temps pouvait être discrétisé). La fonction
« Look-ahead » est inférée de la sémantique du langage présentée dans la Définition 16 et est
définie comme suit :
Définition 19 (fonction « Look-ahead »). Soit d ∈ R, C ∈ X et ϕ un flux d’évènements. Nous
définissons TC (ϕ, d) par induction sur la chronique C :
— si A ∈ N et C = (A, P, f), alors TC (ϕ, d) = min{t : ∃i ∈ N ∃e ∈ N ϕ(i) = (e, t) ∧ t > d} ;
— pour tout ~ ∈ {||, &, “ ”,( ) − [ ],( ) − [ [,( )−] ],( )−] [, meets, overlaps, starts, during,
finishes, equals, !, !!}, si C = (C1 ~ C2, P, f) avec C1 ∈ X et C2 ∈ X, alors TC (ϕ, d) =
min{TC1
(ϕ, d), TC2
(ϕ, d)} ;
— si C = (C1 lasts δ, P, f), alors TC (ϕ, d) = TC1
(ϕ, d);
— si C = (C1 at most δ, P, f), alors TC (ϕ, d) = TC1
(ϕ, d);
— si C = (C1 at least δ, P, f), alors TC (ϕ, d) = TC1
(ϕ, d);
— si C = (C1 then δ, P, f), alors nous définissons tout d’abord l’instant τC1,δ(ϕ, d) correspondant
au plus petit instant t + δ tel qu’il y a eu une nouvelle reconnaissance de C1 dans le
flux ϕ à l’instant t et tel que t ≤ d < t + δ, comme suit :
τC1,δ(ϕ, d) = min{Tmax(r1) + δ : r1 ∈ RC1
(ϕ, d) ∧ Tmax(r1) + δ > d}
Alors TC (ϕ, d) = min{τC1,δ(ϕ, d), TC1
(ϕ, d)} ;
64CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA
RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES
— si C = (C1→x, P, f), alors TC (ϕ, d) = TC1
(ϕ, d);
— si C = (@C1, P, f), alors TC (ϕ, d) = TC1
(ϕ, d).
Remarque 15. Notons que l’opérateur « then » se distingue des autres opérateurs du fait que la
reconnaissance de la chronique découle du temps qui passe et non de l’occurrence d’un évènement
dans le flux. C’est cette chronique qui rend nécessaire la définition de la fonction Look-ahead.
Nous pouvons alors démontrer la propriété suivante, qui caractérise le comportement recherché
de la fonction.
Propriété 6 (Look-ahead). Après l’instant d, l’ensemble des reconnaissances de la chronique C
n’évoluera pas avant au moins l’instant TC (ϕ, d).
Plus formellement, pour toute chronique C ∈ X et pour tout instant d ∈ R :
∀t1 ∈ [d, TC (ϕ, d)[ RC (ϕ, d) = RC (ϕ, t1)
Démonstration. Soit d ∈ R. Nous montrons cette propriété par induction sur la chronique C.
Pour simplifier les notations, on s’affranchit ici des attributs, du prédicat P et de la fonction
f. La démonstration complète est analogue.
Soit t1 ∈ [d, TC (ϕ, d)[. Par la Propriété 1, il ne reste à montrer que l’inclusion RC (ϕ, d) ⊇
RC (ϕ, t1).
— Si C = A ∈ N.
Par définition, on a RA(ϕ, t1) = {(e, t) : ∃i ϕ(i) = (e, t) ∧ e = a ∧ t ≤ t1},
et RA(ϕ, d) = {(e, t) : ∃i ϕ(i) = (e, t) ∧ e = a ∧ t ≤ d}.
Par l’absurde, soit (e0, t0) ∈ RA(ϕ, t1) \ RA(ϕ, d).
On a donc t0 < t1 < TA(ϕ, d), i.e. t0 < min{t : ∃i ∈ N ∃e ∈ N ϕ(i) = (e, t) ∧ t > d}.
Or t0 > d car (e0, t0) ∈/ RA(ϕ, d),
donc t0 ∈ {t : ∃i ∈ N ∃e ∈ N ϕ(i) = (e, t) ∧ t > d} et, en particulier, t0 < t0. Absurde.
D’où RA(ϕ, t1) \ RA(ϕ, d) = ∅, et donc RA(ϕ, d) ⊇ RA(ϕ, t1).
— Si C = C1 | | C2.
On note que t1 < TC (ϕ, d) = min{TC1
(ϕ, d), TC2
(ϕ, d)} et donc t1 < TC1
(ϕ, d) et t1 <
TC2
(ϕ, d).
RC (ϕ, t1) = {hr, ⊥i : r ∈ RC1
(ϕ, t1)} ∪ {h⊥, ri : r ∈ RC2
(ϕ, t1)}
= {hr, ⊥i : r ∈ RC1
(ϕ, d)} ∪ {h⊥, ri : r ∈ RC2
(ϕ, d)} par hypothèse d’induction
= RC (ϕ, d)
— La démonstration relative aux opérateurs de conjonction, de séquence, d’absence, meets,
overlaps, starts, during, finishes, equals, lasts δ, at most δ, at least δ, cut, et changement
d’état est identique à celle du cas précédent (car la définition de TC (ϕ, d) est identique pour
ces opérateurs).
— Si C = C1 then δ.
On a RC (ϕ, d) = {hr1,(τ, i)i : i ≤ d ∧ r1 ∈ RC1
(ϕ, i) ∧ i = Tmax(r1) + δ},
Et : RC (ϕ, t1) = {hr1,(τ, j)i : j ≤ t1 ∧ r1 ∈ RC1
(ϕ, j) ∧ j = Tmax(r1) + δ}.
= RC (ϕ, d) ∪ {r1 : ∃j d < j ≤ t1 ⇒ (r1 ∈ RC1
(ϕ, j) ∧ j = Tmax(r1) + δ)}
On souhaite montrer que {hr1,(τ, j)i : d < j ≤ t1 ∧ r1 ∈ RC1
(ϕ, j) ∧ j = Tmax(r1) + δ} est
65Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
vide. Par l’absurde supposons hr1,(τ, j)i un élément de cet ensemble.
Alors d < j ≤ t1 et r1 ∈ RC1
(ϕ, j) ∧ j = Tmax(r1) + δ.
Comme t1 < TC (ϕ, d) ≤ TC1
(ϕ, d), j ∈]d, t1] implique que j ∈ [d, TC1
(ϕ, d)[.
On peut donc appliquer l’hypothèse d’induction qui nous donne que RC1
(ϕ, d) = RC1
(ϕ, j).
On a donc que r1 ∈ RC1
(ϕ, d).
De plus, on a bien que j = Tmax(r1) + δ > d,
Donc j = Tmax(r1) + δ ∈ {Tmax(r1) + δ : r1 ∈ RC1
(ϕ, d) ∧ Tmax(r1) + δ > d}.
Or j ≤ t1 < TC1
(ϕ, d) ≤ τC1,δ(ϕ, d) = min{Tmax(r1)+δ : r1 ∈ RC1
(ϕ, d)∧Tmax(r1)+δ > d}.
Absurde.
Donc RC (ϕ, t1) = RC (ϕ, d).
— Si C = C1→x ou si C = @C1, la démonstration est immédiate car TC (ϕ, d) = TC1
(ϕ, d).
2.6 Tableau récapitulatif informel des propriétés du langage
des chroniques
Le Tableau 2.1 présente un récapitulatif informel de l’ensemble des constructions et propriétés
du langage des chroniques qui ont été présentées dans ce chapitre.
66CHAPITRE 2. CONSTRUCTION D’UN CADRE THÉORIQUE POUR LA
RECONNAISSANCE DE COMPORTEMENTS : LE LANGAGE DES CHRONIQUES
Tableau 2.1 – Récapitulatif informel des constructions et propriétés du langage des chroniques
Nom Chronique Pré-requis
Ce(C1)∩Ce(C2)
={♦}
Ce Cr Forme de
l’arbre
Condition temporelle Commut. Assoc. Look-ahead
évènement
simple
A {♦} Ce (e, t) min{t:ϕ(i)=(e, t)
∧t > d}
séquence
C1 C2 • ∪ Ce hr1, r2i Tmax(r1) < Tmin(r2) • min{TC1 , TC2
}
conjonction
C1&
C2 • ∪ Ce hr1, r2i • • min{TC1 , TC2
}
disjonction
C1 || C2 ∩ Ce
hr1, ⊥i,
h⊥, r2i
• • min{TC1 , TC2
}
absence (C1) − [C2[ • ∪ Cr(C1) hr1i
∀r2 ( Tmin(r1)>Tmin(r2)
∨
Tmax(r1) Tmin(r2)
∧
Tmax(r1) Tmin(r2)
∧
Tmax(r1)=
Tmax(r2) min{TC1 , TC2
}
equals
C1 equals
C2 • ∪ Ce hr1, r2i
Tmin(r1) =
Tmin(r2)
∧
Tmax(r1)=
Tmax(r2)
• • min{TC1 , TC2
}
lasts
C lasts δ Cr Ce hri Tmax(r)−
Tmin(r)=δ TC
at least
C at least δ Cr Ce hri Tmax(r)−
Tmin(r)>δ
TC
at most
C at most δ Cr Ce hri Tmax(r)−
Tmin(r)<δ
TC
then
C then δ Cr Ce hr, (τ, i)i i =
Tmax(r)+δ min{τC1,δ(ϕ, d),
TC1
(ϕ, d)}
nommage
C
→x Cr {x, ♦} hri TC
cut
C1!C2 • ∪ Ce hr1, r2i Tmax(r1) < Tmin(r2) . . . min{TC1 , TC2
}
changement
d’état
C1!!C2 • ∪ Ce hr1, r2i Tmax(r1) < Tmin(r2) . . . min{TC1 , TC2
}
évènement
de reco.
@
C Cr Ce (e, t) TC
67Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
2.7 Conclusion
Dans ce chapitre, nous avons largement étendu le langage des chroniques présenté dans [CCK11].
Nous avons ajouté de nombreux opérateurs, augmentant ainsi l’expressivité de notre langage. Notamment,
nous avons ajouté dix constructions exprimant toutes les contraintes temporelles possibles
en transposant dans notre formalisme la logique d’intervalles d’Allen. Nous avons également
formalisé la notion de propriété liée à un évènement du flux à analyser. Ceci nous a ensuite permis
de doter le langage des chroniques de la possibilité d’exprimer des contraintes sur ces attributs
d’évènement.
Pour l’ensemble de ces constructions, nous avons formellement défini la syntaxe et la sémantique
associées. Pour ce faire, nous avons été amenés à raffiner la représentation des reconnaissances en
passant d’un formalisme ensembliste à un formalisme arborescent conservant davantage d’informations
sur la reconnaissance.
Nous avons étudié les principales propriétés du langage étendu des chroniques. Nous avons
également défini une fonction de Look-ahead qui permet de formaliser la gestion du temps continu
dans le cadre d’une implémentation éventuelle du processus de reconnaissance, en indiquant à quels
instants interroger le système.
Nous possédons donc maintenant un cadre théorique formel complet pour effectuer de la reconnaissance
de comportements. Il s’agit donc maintenant d’implémenter un processus de reconnaissance
de chroniques fondé sur cette base théorique. Nous allons construire deux tels modèles :
— dans les Chapitres 3 et 4, nous allons définir un modèle à l’aide de réseaux de Petri colorés
permettant de valider les principes de reconnaissance en faisant notamment ressortir les
problèmes de concurrence ;
— dans le Chapitre 5, nous implémentons un modèle de reconnaissance sous la forme d’une
bibliothèque C++ appelée Chronicle Recognition Library (CRL).
68Chapitre 3
Un modèle de reconnaissance en
réseaux de Petri colorés dit « à un
seul jeton »
Sommaire
4.1 Construction et fonctionnement des réseaux dits « multi-jetons » . 118
4.1.1 Types et expressions utilisés dans les réseaux multi-jetons . . . . . . . . 119
4.1.2 Structure globale des réseaux multi-jetons . . . . . . . . . . . . . . . . . 119
4.1.3 Briques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.1.4 Construction par induction . . . . . . . . . . . . . . . . . . . . . . . . . 126
4.1.5 Bilan sur le degré de contrôle acquis et stratégie de tirage . . . . . . . . 133
4.2 Construction et fonctionnement des réseaux « contrôlés » . . . . . . 134
4.2.1 Types et expressions utilisés . . . . . . . . . . . . . . . . . . . . . . . . . 135
4.2.2 Structure globale des réseaux . . . . . . . . . . . . . . . . . . . . . . . . 137
4.2.3 Briques de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
4.2.4 Un séparateur de jetons générique . . . . . . . . . . . . . . . . . . . . . 144
4.2.5 Construction par induction des réseaux contrôlés . . . . . . . . . . . . . 146
4.2.6 Graphes d’espace d’états des réseaux contrôlés . . . . . . . . . . . . . . 159
4.3 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
Dans le Chapitre 2, nous avons formalisé un langage de description de comportements, le
langage des chroniques, et sa sémantique associée, définissant ainsi la notion de reconnaissance
d’une chronique dans un flux d’évènements. Il s’agit maintenant de proposer une implémentation du
processus de reconnaissance dont il est possible de montrer que l’exécution respecte la sémantique
préalablement définie dans la Section 2.3.2. En effet, dans l’optique de traiter des applications
critiques (par exemple s’assurer qu’un avion sans pilote respecte bien des procédures de sécurité
69Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
données, comme dans la Section 5.3), il faut que le processus de reconnaissance soit fiable et robuste
car il n’y a pas de droit à l’erreur. Nous allons développer deux implémentations du système de
reconnaissance de comportements permettant cette vérification.
Dans ce chapitre et le suivant, nous commençons par définir, à l’aide de réseaux de Petri colorés,
un premier modèle de reconnaissance d’un sous-langage des chroniques restreint aux opérateurs de
séquence, de conjonction, de disjonction et d’absence, et qui ne permet donc pas l’expression de
contraintes temporelles ni de contraintes sur des attributs d’évènement. Pour chaque chronique, un
réseau, construit par induction, calcule l’ensemble des reconnaissances de la chronique sur un flux
d’évènements donné. Une version initiale de ce modèle est présentée dans [CCK11], mais il n’est
pas totalement formalisé car il faut réaliser la démonstration de son adéquation avec la sémantique
des chroniques. Ce modèle, contrairement à ceux présentés dans le Chapitre 4, ne possède qu’un
jeton par place. C’est pourquoi nous nous y référons comme le modèle « à un seul jeton ».
Dans ce chapitre, nous complétons la formalisation des réseaux de Petri colorés présentés
dans [CCK11] et nous nous attaquons à la vérification de son adéquation [CCKP12a] :
— nous posons une nouvelle définition théorique de la notion de fusion de réseaux de Petri
colorés ;
— nous corrigeons les modèles de la conjonction et de l’absence pour qu’ils fonctionnent dans
tous les cas de composition ;
— nous proposons une formalisation de la construction des réseaux en faisant ressortir une
structure commune à tous les réseaux afin de pouvoir les définir par induction ;
— nous formalisons également les règles d’exécution des réseaux pour bien obtenir les ensembles
de reconnaissances des chroniques concernées ;
— nous démontrons la correction des réseaux vis-à-vis de la sémantique ensembliste de la
Section 2.3.2 pour les chroniques incluant, au plus, une absence au plus haut niveau.
Dans une première Section (3.1), nous commençons par rappeler la définition des réseaux de
Petri colorés en introduisant la notion d’arcs inhibiteurs ainsi qu’une nouvelle définition de fusion.
Nous construisons ensuite formellement dans la Section 3.2 les réseaux de Petri colorés modélisant la
reconnaissance de chroniques ; puis, dans la Section 3.3, nous décrivons le comportement des réseaux
lorsqu’ils suivent une certaine règle d’exécution définie en 3.3.6. Le modèle est alors complètement
formalisé. Ceci nous permet de montrer dans la Section 3.4 que, pour des constructions faisant
intervenir au plus une absence au plus haut niveau, les reconnaissances produites par les réseaux
correspondent exactement à celles définies par la sémantique du langage. Nous achevons ce chapitre
en étudiant dans la Section 3.5 la complexité des réseaux construits.
3.1 Définition du formalisme des réseaux de Petri colorés
Commençons par définir le formalisme des réseaux de Petri colorés employé par la suite pour
modéliser le processus de reconnaissance. Dans la Section 3.1.1, nous introduisons les notions de
type et d’expression. Nous donnons ensuite dans la Section 3.1.2 une définition des réseaux de Petri
colorés. Cette définition est complétée dans la Section 3.1.3 par une nouvelle notion de fusion de
réseaux, et dans la Section 3.1.4 par des arcs inhibiteurs.
70CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
3.1.1 Types et expressions
Il s’agit ici de fournir un cadre formel pour la description des types de données et des fonctions
utilisés dans les réseaux (voir la Section 3.2.1 pour la description concrète des types et expressions
de nos réseaux).
À partir d’un ensemble de types de base, nous construisons l’ensemble des types de fonction
possibles :
Définition 20 (signature d’expression typée). Soit un ensemble B dont les éléments seront
des types de base.
On définit inductivement l’ensemble des types fonctionnels de B, noté TB, par :
b ∈ B
b ∈ TB
(type de base)
τ1, . . . , τn, τ ∈ TB
τ1 × · · · × τn → τ ∈ TB
(type fonctionnel)
On définit l’arité d’un type χ ∈ TB, notée ari(χ), par :
— si χ ∈ B, alors ari(χ) = 0
— si χ = τ1 × · · · × τn → τ , alors ari(χ) = n
Si B est un ensemble de types de base, F, un ensemble de fonctions, et σ : F −→ TB une
fonction de typage, on appelle Σ = (B, F, σ) une signature d’expression typée.
À partir de cette signature, on peut définir l’ensemble des expressions qui sont employées dans
les gardes et les étiquettes des arcs :
Définition 21 (ensemble des expressions). Soit Σ = (B, F, σ) une signature d’expression
typée.
Un ensemble de variables B-typées est un couple (V, σ) où V est un ensemble de variables et
σ : V → B est une fonction de typage.
On définit par induction l’ensemble des V -expressions de Σ, noté ExprΣ(V )
, et on prolonge
canoniquement la fonction σ à ExprΣ(V ) par :
x ∈ V
x ∈ ExprΣ(V )
(variable)
c ∈ F ari(σ(c)) = 0
c ∈ ExprΣ(V )
(constante)
f ∈ F e1, . . . , en ∈ ExprΣ(V ) σ(f) = σ(e1) × · · · × σ(en) → τ
f(e1, . . . , en) ∈ ExprΣ(V ) σ(f(e1, . . . , en)) = τ
(fonction)
3.1.2 Réseaux de Petri colorés
Un réseau de Petri coloré est un graphe biparti composé de deux types de nœuds : des places
représentées par des ellipses, et des transitions représentées par des rectangles. Des arcs orientés
lient des places à des transitions. Ils sont étiquetés par des expressions. On les appelle arcs en
entrée et, dans les réseaux que nous utilisons, ils sont étiquetés par des noms de variables. D’autres
arcs orientés lient des transitions à des places. On les appelle arcs en sortie et ils sont étiquetés
par des expressions de fonctions dans lesquelles des variables des arcs d’entrée de la transition,
appelées variables d’entrée, peuvent apparaître.
71Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Les places sont typées et stockent un ou plusieurs éléments de leur type, appelés jetons, qui
constituent le marquage de la place. Dans les réseaux de Petri de ce chapitre, chaque place ne
contiendra qu’un seul jeton. En revanche, dans le Chapitre 4, nous construisons un modèle tirant
parti de la possibilité d’avoir plusieurs jetons par place.
Les transitions peuvent être munies de gardes, c’est-à-dire de conditions booléennes, dans lesquelles
peuvent apparaître les variables d’entrée de la transition. Une transition peut être tirée
lorsque les deux conditions suivantes sont réunies :
(i) si elle possède une garde, celle-ci est vérifiée ;
(ii) toutes les places liées par un arc d’entrée à la transition possèdent un jeton (c’est-à-dire
qu’une valeur peut être attribuée à chaque variable d’entrée de la transition).
Tirer une transition revient à consommer les jetons indiqués sur les arcs d’entrée de la transition
et à appliquer les fonctions étiquetant les arcs de sortie de la transition, c’est-à-dire à ajouter la
valeur de ces fonctions au contenu des places liées par des arcs de sortie à la transition. Ainsi, au
fur et à mesure que les transitions sont tirées, le marquage des places évolue.
Remarque 16 (multiples tirages successifs possibles de transitions). On remarque donc
que, pour un marquage donné d’un réseau, il peut y avoir plusieurs séquences possibles de transitions
tirables. Ce comportement non déterministe – dans le sens où il ne mène pas nécessairement
toujours au même marquage – peut être souhaité pour exprimer différentes possibilités d’évolution
d’un système. Cependant, notre travail sur les réseaux de Petri nécessite d’obtenir systématiquement
le même marquage à l’issue du traitement occasionné par un évènement du flux. En effet,
on doit pouvoir lire dans celui-ci l’ensemble des reconnaissances de la chronique. Notons que cela
n’implique pas qu’il n’existe qu’une seule stratégie de tirage de transitions adaptée, comme on le
verra dans la Section 4.2. Il nous faudra donc soit accompagner chaque réseau d’une stratégie de
tirage, soit montrer que toute séquence possible de transitions donne le même marquage final du
réseau.
Définissons maintenant plus formellement un réseau de Petri coloré, d’après la définition
de [JK09].
Définition 22 (réseau de Petri coloré). Un réseau de Petri coloré N est un 9-uplet
(P, T, A, B, V, C, G, EX, I) où :
1. P est un ensemble fini de places ;
2. T est un ensemble fini de transitions disjoint de P ;
3. A ⊆ P × T ] T × P est un ensemble d’arcs orientés ;
4. B est un ensemble fini de types ;
5. V est un ensemble fini de variables typées par une fonction σ telle que ∀v∈V σ(v)∈B ;
6. C : P → B est une fonction de coloriage qui à chaque place associe un type ;
7. G : T → ExprΣ(V )
est une fonction de garde qui à chaque transition associe une garde de
type booléenne et dont les variables sont des éléments de V ;
72CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
8. EX : A → ExprΣ(V )
est une fonction d’expression d’arcs qui à chaque arc associe une
expression telle que, pour tout arc a ∈ A, EX(a) est du même type que la place à laquelle
est relié l’arc a ;
9. I : P → ExprΣ(V )
est une fonction d’initialisation qui à chaque place associe un marquage
initial tel que, pour toute place p ∈ P, σ(I(p)) = C(p).
Pour modéliser et exécuter les réseaux de Petri colorés, nous utilisons le logiciel
CPN Tools 1
[RWL+03]. La Figure 3.1 présente l’apparence d’un réseau dans l’interface de CPN
Tools. Pour simplifier la lecture et la conception de réseaux, CPN Tools dispose d’un système
d’annotation de fusion (« fusion tags ») : deux places possédant la même annotation de fusion 2
doivent être assimilées à une unique place, et possèdent par conséquent le même marquage. Ce
système sert notamment à la composition de réseaux, ce que nous exploitons pour la construction
inductive de nos réseaux. Il offre également la possibilité d’effectuer des simulations et des analyses
d’espace d’états.
INT
transition
[garde cpt]
cpt+1 0
place
cpt
3 1`3++
2`4
marquage initial
marquage courant:
1 jeton de valeur 3 et
2 jetons de valeur 4
type nombre total de jetons
annotation de fusion annotation de fusion
Figure 3.1 – Un réseau sur CPN Tools
3.1.3 La fusion de places
Nous modélisons le processus de reconnaissance de chroniques en élaborant des réseaux de
Petri colorés associés aux chroniques, et ce de façon modulaire : cette construction se fait par
induction sur la structure de la chronique, à l’aide de fusion de places. Il s’agit maintenant de
définir formellement ce mécanisme de fusion.
Il existe deux types de fusion pour les réseaux de Petri colorés : la fusion de places, et la fusion de
transitions. Cette dernière consiste en l’unification de plusieurs transitions en une unique transition
regroupant les arcs d’entrée et de sortie de ces transitions, et dont la garde est la conjonction de
l’ensemble des gardes des transitions fusionnées. La transition résultante n’est donc tirable que
lorsque l’ensemble des transitions fusionnées le sont. Cette caractéristique n’est pas désirable pour
notre modèle et nous n’utilisons donc pas cette fonctionnalité.
La fusion de places se comprend premièrement intuitivement comme une facilité d’écriture : les
places fusionnées partagent systématiquement le même marquage initial, le même type, et le même
1. http://cpntools.org/
2. Selon le formalisme défini par la suite en 3.1.3, ces deux places appartiennent donc à un même ensemble de
fusion de places.
73Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
marquage courant, et il s’agit donc du dédoublement d’une unique place facilitant la représentation
des arcs d’entrée et de sortie, évitant ainsi l’éventuel « plat de spaghetti ». Cependant, nous verrons
que la fusion de places peut également poser des problèmes de sémantique.
Une définition formelle de la fusion est proposée dans [CP92] (Definition 4.3) où sont définis
des réseaux de Petri modulaires – Modular Coloured Petri Nets (MCPNs). Ce sont des triplets
(S, P F, T F) où :
(i) S est un ensemble fini de modules qui sont des réseaux de Petri disjoints ;
(ii) P F est un ensemble fini d’ensembles de fusion de places vérifiant certaines conditions ;
(iii) T F est un ensemble fini d’ensembles de fusion de transitions.
Nous nous inspirons largement de cette définition, mais nous avons besoin d’y apporter quelques
modifications.
D’une part, dans cette définition, un réseau de Petri modulaire est construit à partir d’un
ensemble de réseaux de Petri non modulaires S dont on souhaite fusionner certaines places et
certaines transitions. Cette définition ne convient pas directement à notre construction. En effet,
elle est définie par induction, et des fusions successives sont donc effectuées. La fusion doit donc se
faire à partir d’un ensemble de réseaux de Petri eux-même modulaires. Dans [CP92] il est ensuite
montré (Théorème 4.9) que, pour tout MCPN, on peut aisément construire un réseau de Petri
coloré non modulaire équivalent, ce qui résout notre problème. Cependant, afin de nous affranchir
de conversions incessantes, nous établissons dans cette section une définition directe de la fusion
de places à partir de MCPN plutôt qu’à partir de réseaux de Petri colorés simples.
D’autre part, un pré-requis sur l’ensemble P F est que toutes les places d’un de ses ensembles
de fusions de places pf (c’est-à-dire toutes les places à fusionner ensemble) doivent avoir le même
type et le même marquage initial. C’est une condition que l’on retrouve également dans un article
de K. Jensen [HJS91]. Cependant, dans le logiciel que nous utilisons, CPN Tools, il est possible
de fusionner deux places ayant des types et marquages initiaux différents : c’est la première place
sélectionnée qui définit les caractéristiques de la seconde. Nous n’autoriserons pas la fusion de
places de types différents car cela pourrait entraîner la construction d’un réseau mal formé, même
si les réseaux de départ son bien formés. En revanche, la fusion de places de marquages initiaux
différents offre des possibilités intéressantes en permettant d’adapter le marquage initial d’une
place selon qu’elle soit fusionnée ou non. Nous aurons besoin d’exploiter cette possibilité, donc
nous l’intégrons dans notre définition de la fusion.
Enfin, comme nous ne mettons pas en œuvre de fusion de transitions, nous ne faisons pas
apparaître l’ensemble T F.
On obtient ainsi les définitions suivantes, en commençant par poser la notion de MCPN puis en
formalisant la fusion.
Définition 23 (réseau de Petri coloré modulaire). Un réseau de Petri coloré modulaire
(MCPN) est un couple (S, P F) vérifiant les propriétés suivantes :
(i) S est un ensemble fini de modules tel que :
— Chaque module s ∈ S est un réseau de Petri coloré (Ps, Ts, As, Bs, Vs, Cs, Gs, EXs, Is).
74CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
— Les ensembles des éléments des réseaux sont deux-à-deux disjoints :
∀s1 ∈ S ∀s2 ∈ S [s1 6= s2 ⇒ (Ps1 ∪Ts1
) ∩ (Ps2 ∪Ts2
) = ∅]
Notons que l’on peut renommer les places et les transitions de manière unique en les
préfixant par un identifiant de réseau. On pourra donc supposer que les réseaux ont des
places et des transitions distinctes sans mettre en œuvre cette préfixation qui conduit à
des notations excessivement lourdes.
(ii) P F ⊆ P × P(P) est un ensemble fini de couples de fusion de places, dont on appellera
place d’initialisation de la fusion le premier membre, ainsi qu’ensemble de fusion de places
le second, où P =
S
s∈S
Ps et P(P) désigne l’ensemble des parties de P, et tel que :
— Toute place d’initialisation appartient à l’ensemble de fusion de places associé.
∀(p0, E) ∈ P F p0 ∈ E
— Toutes les places d’un ensemble de fusion de places ont même type.
∀(p0, E) ∈ P F ∀p1 ∈ E ∀p2 ∈ E C(p1) = C(p2)
— L’ensemble des ensembles de fusion de places forme une partition de P
3
.
[ ∀p ∈ P ∃p0 ∈ P ∃E ∈ P(P) ((p0, E) ∈ P F ∧ p ∈ E) ]
∧ [ ∀p01 ∈ P ∀p02 ∈ P ∀E1 ⊆ P ∀E2 ⊆ P
( (p01
, E1)∈P F ∧(p02
, E2)∈P F ∧E16=E2 ) ⇒ E1∩E2 = ∅ ]
Remarque 17. Notons qu’à tout réseau de Petri coloré N correspond trivialement un MCPN
équivalent : il suffit de poser M = {S, P F} où S = {N} et P F = {(p, {p}) : p ∈ PN }.
On définit maintenant une fonction de fusion entre réseaux de Petri modulaires. C’est celle-ci
que nous appliquons lors de l’induction pour construire nos réseaux de Petri associés aux chroniques.
Définition 24 (fusion de places). Soit M = {(S1, P F1), . . . ,(Sn, P Fn)} un ensemble fini de
MCPN et soit P F0 un ensemble fini de couples de fusion de places tels que :
— Les places d’initialisation de fusion des couples de P F0 sont des places d’initialisation de
couples des P F1, . . . , P Fn :
∀p0∈P ∀E0⊆P [ (p0, E0)∈P F0 ⇒ ( ∃i∈J1, nK ∃Ei⊆P (p0, Ei)∈P Fi ) ]
— Les ensembles de fusion de places des couples de P F0 sont formés de places des MCPN de
M :
∀p0∈P ∀E0⊆P [ (p0, E0)∈P F0 ⇒ ( ∀p∈E0 ∃i∈J1, nK ∃Ei⊆P ((p0, Ei)∈P Fi ∧ p ∈ Ei) ) ]
Alors on peut définir la fusion de ces MCPN relativement à l’ensemble P F0 :
F usion(M, P F0) = (S, P F) où :
— S =
S
1≤i≤n
Si
— P F = {(p0,
S
p∈E
E(p)) : (p0, E) ∈ P F0} où E(p) est l’unique Ei tel que (p, Ei) ∈ P Fi
.
3. Notons que la contrainte que les ensembles de fusion de places soient deux à deux disjoints n’était pas requise
dans [CP92] mais découle de notre construction qui autorise la fusion de places à marquages initiaux différents. En
effet, si une place appartenait à deux ensembles de fusion de places distincts, deux marquages initiaux différents
pourraient lui être associés, ce qui est absurde.
75Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
On peut montrer, à l’aide d’une démonstration analogue à celle exposée dans [CP92], que le
réseau de Petri suivant ainsi que le MCPN à partir duquel il est construit sont équivalents du point
de vue de leur comportement (évolution du marquage, transitions tirables, places atteignables. . . ).
Définition 25 (réseau de Petri coloré équivalent). Pour toute place d’initialisation p0, E(p0)
désigne l’ensemble de fusion de places associé, et pour toute place p et toute transition t, s(p) et
s(t) désignent respectivement le réseau de Petri de S tel que p ∈ Ps(p) et celui tel que t ∈ Ts(t)
.
Soit M = (S, P F) un réseau de Petri coloré modulaire. On définit le réseau de Petri coloré
équivalent par M∗ = (P
∗
, T ∗
, A∗
, B
∗
, V ∗
, C∗
, G∗
, EX∗
, I∗
) où :
(i) P
∗ = {p0 ∈ P : ∃E0 ∈ P(P) (p0, E0) ∈ P F} (on rappelle que P =
S
s∈S
Ps)
(ii) T
∗ =
S
s∈S
Ts
(iii) A∗ = {(p0, t) ∈ P
∗ × T
∗
: ∃p ∈ E(p0) (p, t) ∈ As(p)}
∪ {(t, p0) ∈ T
∗ × P
∗
: ∃p ∈ E(p0) (t, p) ∈ As(p)}
(iv) B
∗ =
S
s∈S
Bs
(v) V
∗ =
S
s∈S
Vs
(vi) C
∗
: P
∗ → B∗
, p0 7→ Cs(p0)(p0)
(vii) G∗
: T
∗ → ExprΣ(V ∗)
, t 7→ Gs(t)(t)
(viii) EX∗
: A∗ → ExprΣ(V ∗)
est défini par :
— pour tous (p0, t) tels que ∃p ∈ E(p0) (p, t) ∈ As(p)
, (p0, t) 7→ EXs(p)((p, t)),
— pour tous (t, p0) tels que ∃p ∈ E(p0) (t, p) ∈ As(p)
, (t, p0) 7→ EXs(p)((t, p)).
(ix) I
∗
: P
∗ → ExprΣ(V ∗)
, p0 7→ Is(p0)(p0)
3.1.4 Arcs inhibiteurs
Dans le Chapitre 4, nous construisons des réseaux de Petri plus complexes où il faut pouvoir
spécifier qu’une transition n’est tirable que si une place donnée est vide. Cette contrainte ne peut
pas s’exprimer par une simple garde sur la transition. On introduit un nouveau type d’arc, l’arc
inhibiteur, qui permet l’implémentation d’algorithmes fondés sur l’absence ou non de jetons dans
une place. Des réseaux équivalents peuvent être construits sans arcs inhibiteurs à l’aide de listes
mais cela conduit à des réseaux trop complexes.
On complète donc la Définition 22 des réseaux de Petri colorés comme suit :
Définition 26 (arcs inhibiteurs). Un réseau de Petri coloré muni d’arcs inhibiteurs est un
10-uplet (P, T, A, B, V, C, G, EX, I, B) où (P, T, A, B, V, C, G, EX, I) est un réseau de Petri coloré
et :
10. B ⊆ P × T est un ensemble d’arcs inhibiteurs orientés.
Un arc inhibiteur n’a d’incidence que sur le tirage des transitions. Notons Inh(t) = {p ∈ P :
(p, t) ∈ B} l’ensemble des places reliées par un arc inhibiteur à une transition t ∈ T. La contrainte
suivante s’ajoute pour qu’une transition t ∈ T soit tirable :
76CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
(iii) aucune place inhibitrice p ∈ Inh(t) ne contient de jeton.
Dans le logiciel CPN Tools, les arcs inhibiteurs sont représentés comme sur la Figure 3.2.
Lorsque la place est vide, la transition est tirable, ce qui est indiqué par le liseré vert.
place
0
INT
transition 1 1`3
arc inhibiteur
place
0
INT
transition
Figure 3.2 – Arcs inhibiteurs sur CPN Tools
3.2 Construction formelle des réseaux dits « à un seul jeton »
À l’aide du formalisme des réseaux de Petri colorés munis du mécanisme de fusion décrit
dans 3.1, nous construisons par induction un modèle du processus de reconnaissance. Pour chaque
chronique C, nous définissons un réseau de Petri coloré associé dont le marquage évolue en fonction
du flux d’évènements. Une place du réseau contient l’ensemble des reconnaissances correspondant
à la chronique étudiée.
Nous commençons par établir dans la Section 3.2.1 les types des données et fonctions utilisés.
Nous donnons ensuite un aperçu de la structure générale des réseaux que nous allons construire
(Section 3.2.2). Nous posons dans la Section 3.2.3 un ensemble élémentaire de réseaux de Petri
colorés, les briques de base, que nous utilisons pour construire nos réseaux lors d’une induction sur
la structure de la chronique dans la Section 3.2.4.
3.2.1 Types et expressions utilisés dans le modèle
Posons maintenant les types et fonctions que nous utilisons dans nos réseaux de Petri en défi-
nissant Σ = (B, F, σ) (Définition 20).
Posons B = {INT, Event, NCList}, et définissons le type NEvent = Event × INT.
Le type INT correspond à un entier, Event, à un évènement, et NCList, à une liste de listes de
couples NEvent. Un jeton de type NCList correspond à un ensemble de reconnaissances. Chaque
élément de la liste NCList est une liste de NEvent, c’est-à-dire une liste d’évènements datés qui
représente une reconnaissance.
Posons F = {+, max, ANR, CPR, rem_obs, mixAnd, last_ini_recog} qui correspond à l’ensemble
des fonctions employées dans nos réseaux.
77Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Le Tableau 3.3 décrit brièvement le fonctionnement général de ces fonctions. Une explication
axée sur notre utilisation de ces fonctions sera donnée lors de la description de l’exécution des
réseaux dans la Section 3.3.
À partir des fonctions de F, nous pouvons alors définir une dernière fonction qui permet de
compléter des reconnaissances dans une liste avec une instance d’un évènement :
complete : ((E(a), cpt), curr, inst) 7→ ANR(inst, CPR([[(E(a), cpt + 1)]], curr)
Tableau 3.3 – Fonctions utilisées dans nos réseaux
Fonction Type (image de la fonction σ) Description
+ INT × INT → INT Addition usuelle.
max INT × INT → INT Entier maximum entre deux entiers.
ANR NCList × NCList → NCList (Add New Recognition) Ajoute le contenu de
la seconde liste à la première liste, s’il n’y est
pas encore.
CPR NEvent × NCList → NCList (Complete Partial Recognition) Renvoie la
liste de listes de couples dont chaque liste de
couples a été complétée par le couple supplé-
mentaire (E(a), cpt + 1).
rem_obs INT × NCList → NCList Renvoie la liste de laquelle on a d’abord supprimé
toutes les listes de couples dont un des
couples (E(a), cpt) a un indice cpt inférieur à
l’entier n qui est en argument.
mergeAndNew NCList × NCList × NCList
× NCList → NCList
Renvoie la dernière liste à laquelle a été ajoutée
une combinaison explicitée par la suite des
trois premières listes.
startsub NCList → NCList Renvoie [ [ ] ] si l’argument est une liste non
vide, [ ] sinon.
chg_win INT × NCList → INT Renvoie le maximum entre l’entier en argument
et le plus grand instant de reconnaissance
des reconnaissances de la liste.
concatabs NCList × NCList × NCList ×
INT → NCList
Effectue les combinaisons séquentielles possibles
entre les deux premières listes, puis les
ajoute à la troisième liste si elles sont nouvelles
(le critère de nouveauté étant déterminé par
une comparaison avec l’entier).
78CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
3.2.2 Structure générale des réseaux « à un seul jeton »
Nous construisons donc inductivement sur la structure du langage un réseau de Petri coloré
pour chaque chronique. Il permet de calculer, en fonction d’un flux d’évènements, l’ensemble de
reconnaissances associé.
Pour pouvoir réaliser cette construction inductive, il faut que les réseaux soient modulaires.
Cette caractéristique se traduit par le fait que tous les réseaux associés aux chroniques ont une
structure générale identique permettant ainsi de les combiner. Cette structure est présentée dans
la Figure 3.4.
Figure 3.4 – Structure des réseaux
Chaque réseau possède un compteur d’évènements (place Present et transition End) ainsi que
quatre places principales :
— la place Present, de type INT, est fusionnée avec le compteur d’évènements et contient un
entier correspondant au nombre d’évènements déjà traités ;
— la place Start est de type NCList, elle contient une liste de reconnaissances qui seront
complétées par le réseau ;
— la place Success est également de type NCList, elle contient les reconnaissances de la place
Start complétées par le réseau ;
— la place Wini, de type INT, contient un entier qui sert de repère dans le cas d’une absence,
permettant de déterminer les reconnaissances qu’il faut alors supprimer de la place Start.
Chaque place contient exactement un seul jeton d’où le nom de modèle « à un seul jeton ». Les
places Start et Success sont marquées d’un jeton contenant une liste des reconnaissances. Les
reconnaissances vont circuler dans les réseaux au fur et à mesure de l’évolution du flux d’évènements.
Pour une chronique complexe, une reconnaissance est d’abord vide [ ] dans la place Start
79Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
du réseau général, puis elle va petit à petit être complétée par les évènements pertinents du flux.
Au fur et à mesure qu’elle est complétée, elle va transiter de la place Start à la place Success
des sous-réseaux, passant de sous-réseau en sous réseau pour arriver, lorsque la reconnaissance est
complète, à la place Success du réseau général. Les réseaux « à un seul jeton » se lisent de gauche
à droite, ce qui correspond au circuit des reconnaissances.
Ce sont ces quatre places principales que l’on fusionne tour à tour entre plusieurs réseaux
et avec les briques élémentaires que nous allons définir dans la Section 3.2.3. Pour la gestion
correcte d’absences dans une séquence (ce qui est détaillé dans la Section 3.3.5), les places Wini
sont en fait divisées en deux catégories : les places WiniIn et les places WiniOut qui permettent
de fusionner correctement les places pour construire nos réseaux. Lors de la construction des
réseaux, nous définissons donc cinq fonctions qui à chaque chronique C associent les cinq types
de place principaux Present(C), Start(C), Success(C), WiniIn(C) et WiniOut(C) du réseau
correspondant à la chronique C.
3.2.3 Briques de base
Définissons maintenant les quelques réseaux élémentaires que nous utilisons comme briques de
base dans la construction inductive de notre modèle de reconnaissance.
cpt+1
cpt
End Present
0
INT
Figure 3.5 – Compteur d’évènements
Compteur Ce réseau élémentaire, noté CPT et présenté dans la Figure 3.5, fait office de compteur
d’évènements. Il est composé d’une place Present dans laquelle est stockée la valeur de ce compteur,
et d’une transition End qui incrémente le compteur à chaque fois qu’elle est tirée.
Opérateur AND Ce réseau élémentaire, noté OPAND et présenté dans la Figure 3.6, calcule l’ensemble
des reconnaissances de la conjonction de deux chroniques C1 et C2. On donne ici une
description très succincte du fonctionnement de cet opérateur. La Section 3.3.4 détaille davantage
le déroulement d’une reconnaissance de conjonction.
Le réseau est composé de six places. Dans deux places, Operand1 et Operand2, sont stockées les
reconnaissances respectives de C1 et de C2. Lorsque la transition AND est tirée, les reconnaissances
de C1 et celles de C2 sont combinées de façon à récupérer dans la place Success les reconnaissances
de C1&C2.
Si la conjonction forme la seconde partie d’une séquence, c’est-à-dire si la chronique étudiée est
de la forme · · ·(C3 C1&C2)· · · , nous ne souhaitons pas que le réseau commence à reconnaitre C1 et
C2 tant que la première partie de la séquence (à savoir C3) n’a pas été reconnue. La transition Sub
80CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
rem_obs init inst2
inst2
mergeAndNew curr inst1 inst2 inst
Forget
AND
[]
NCList
Operand2
[]
NCList
~1
INT
Success
[]
NCList
[]
[]
Wini
inst
Sub
startSub
curr
NCList
curr
rem_obs init curr
inst2
inst1
rem_obs init inst1
Operand1
inst1
Start
NCList
startsub curr curr2
curr
init
Figure 3.6 – Opérateur AND
sert à initialiser les places Start de C1 et de C2 afin de contrôler la mise en route du mécanisme
de reconnaissance de C1 et de C2.
La transition Forget sert dans le cas de l’absence.
La place Success de ce réseau joue un rôle central car elle stocke les reconnaissances de C1&C2.
Nous aurons donc besoin de nous y référer pour effectuer des fusions. Pour cela, nous utiliserons
Success(AND) pour Success, de même que Start(AND) pour Start et Wini(AND) pour Wini.
bck
init
inst
Update
Down
~1
INT
WiniBe ~1
INT
[]
NCList
[]
NCList
[]
[[]]
INT
init
Sub
WiniAf
Abs
Forget Start
rem_obs init curr
StartSub
curr
Oper Present
Success
concatabs inst curr inst2 cpt
inst2
curr2
0
curr cpt
max bck init
init chg_win init inst
[]
inst []
NCList
startsub inst
NCList
NCList
Figure 3.7 – Opérateur ABS
Opérateur ABS Ce réseau élémentaire, noté OPABS et présenté dans la Figure 3.7, sert à composer
deux réseaux de Petri correspondant aux chroniques C1 et C2 pour obtenir les reconnaissances de
(C1) − [C2[. Le rôle de ce réseau est double :
— La partie de gauche du réseau est chargée d’assurer la gestion de l’entier repère stocké dans
les places Wini du reste du réseau. Rappelons que cet entier permet d’établir si certaines
81Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
reconnaissances doivent être supprimées car invalidées par une absence. La place WiniBe
stocke l’indice suivant celui de la dernière reconnaissance de C2 et est mise à jour par le
tirage de la transition Update. Cet indice sert à supprimer les reconnaissances partielles de
C1 qui ne doivent pas être complétées car C2 a été reconnue. La place WiniAf sert dans le
cas où (C1) − [C2[ est elle-même imbriquée dans une autre absence : elle propage grâce à
la transition Down la valeur du Wini de la seconde absence, mais la valeur de Wini de la
première absence (celle dans WiniBe) n’est en revanche pas propagée à l’extérieur de celle-ci.
— La partie de droite doit son origine au caractère modulaire de nos réseaux. Elle est chargée
de recombiner les reconnaissances de l’absence (qui sont stockées dans la place Oper)
avec les reconnaissances pouvant les précéder (qui sont dans la place Start). Ce genre de
combinaison est nécessaire lorsque la chronique étudiée contient une absence mais à un
niveau de profondeur non nul, par exemple lorsqu’une absence est composée avec une sé-
quence (comme D ((A B) − [C[)). Il s’agit d’une combinaison analogue à celle effectuée
par la fonction mergeAndNew pour l’opérateur OPAND mais avec une contrainte temporelle
supplémentaire : la combinaison doit être séquentielle. Il n’est pas possible de faire transiter
les reconnaissances précédant l’absence à travers le réseau d’absence car la portée de l’absence
doit être délimitée. La brique ABS permet donc de marquer les bornes de l’absence et
d’isoler les reconnaissances jusqu’à ce qu’elles soient prêtes à être combinées. Comme dans
l’opérateur AND, la place StartSub sert à activer le réseau de l’absence. En effet, lorsque
l’on cherche à reconnaître D ((A B) − [C[) par exemple, on ne souhaite pas commencer
à reconnaître (A B) − [C[ tant qu’il n’y a pas de reconnaissance de D à compléter. La
transition Sub permet donc à la fois de mettre à jour la liste des reconnaissances globales
de la place Success, et d’activer le réseau de l’absence si nécessaire.
Une description plus élaborée du mécanisme de l’absence et des nombreuses problématiques qui
lui sont associées est donnée dans la Section 3.3.5.
3.2.4 Construction par induction
Avec les types et expressions définis dans la Section 3.2.1 et les réseaux élémentaires de la
Section 3.2.3, nous pouvons maintenant construire notre modèle en réseau de Petri colorés du
processus de reconnaissance. Pour chaque chronique C, nous définissons par induction un réseau
de Petri coloré N(C) qui calcule les reconnaissances de C. Chaque réseau résulte de la fusion
d’un compteur d’évènements et de sous-réseaux. La construction par induction se fait donc en
deux étapes. Pour une chronique C, nous définissons d’abord une réseau N0
(C) qui correspond au
mécanisme global de reconnaissance sans le compteur, puis nous réalisons une fusion de N0
(C) avec
le compteur pour définir N(C). Ce sont les réseaux N0
(C) qui sont utilisés comme sous-réseaux
dans l’induction comme nous le verrons par la suite.
Comme évoqué dans la Section 3.2.2, dans la construction par induction, certaines des places
Present, Start, Success et Wini jouent un rôle dans la composition des réseaux. En effet, quelle
que soit la chronique C, chaque réseau N(C) a la même structure globale que nous avons présentée
dans la Figure 3.4. Formellement, nous définissons en parallèle de N(C) les places Present(C),
Start(C), Success(C), WiniIn(C) et WiniOut(C) qui délimitent cette structure et qui sont donc
82CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
utilisées si l’on compose le réseau avec un autre réseau.
Dans cette section, nous présentons la construction formelle de nos réseaux de reconnaissance
de chroniques en expliquant les fusions effectuées et le mécanisme global de chaque réseau. Dans
les Sections 3.3.1 à 3.3.5, nous donnons ensuite une explication plus détaillée du mécanisme de
chaque réseau.
Si C = A ∈ N
Dans le cas d’un évènement simple, ce réseau élémentaire utilisé pour sa reconnaissance correspond
exactement à N0
(C).
cpt
End
Forget
A
Present
1_Num
0
INT
Wini
~1
Success
[]
NCList
Present
1_Num INT
Start
1_Num
curr
NCList
rem_obs init curr
curr
[[]]
init
INT
complete (E(a),cpt) curr inst
0
1_Num
cpt+1
cpt
inst
Figure 3.8 – Réseau correspondant à la chronique A
La Figure 3.8 représente le réseau N(A) relatif à l’évènement simple A.
Comme évoqué dans la description de la structure générale des réseaux (Section 3.2.2), la place
Start contient les reconnaissances devant être complétées par le réseau. Dans l’exemple présenté
ici, il s’agit uniquement de reconnaître A. Le marquage de la place Start est donc [ [ ] ] : la
reconnaissance à compléter est la reconnaissance vide [ ] qui pourra évoluer en une reconnaissance
de A en transitant dans le réseau.
La place Wini et la transition Forget sont utilisées si le réseau est fusionné pour construire une
chronique plus complexe incluant une absence.
On définit la structure du réseau :
Present(C) = Present
Start(C) = Start
Success(C) = Success
WiniOut(C) = Wini
WiniIn(C) = ∅
4
83Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Puis on pose 5
:
N(C) = Fusion({N
0
(C), CPT}, {(Present(C), {Present(C), Present(CPT)})}) (3.1)
Si C = C1 C2
rem_obs init curr init
End
A
Forget
B
Forget
Present
Fusion 84
Present
Fusion 84 INT
Success
Fusion 85
Start
Wini
Present
Fusion 84
Success
Start
Fusion 85
Wini
Fusion 85
Fusion 84 INT
cpt
cpt+1 0
Fusion 84
0
cpt complete (E(a),cpt) curr inst
inst
NCList[]
curr
curr
NCList [[]]
rem_obs init curr init
INT
Fusion 84 INT
0
complete (E(b),cpt) curr inst
NCList
[]
inst
cpt
curr
curr
[] NCList
INT
~1 ~1
Figure 3.9 – Réseau correspondant à la chronique A B
Afin de modéliser une séquence C1 C2 (comme la séquence A B dont le réseau est représenté
Figure 3.9), nous fusionnons la place Success du réseau N(C1) avec la place Start du réseau
N(C2). Le marquage initial de la place Start(C2) change donc : il prend le marquage initial de la
place Success(C1), c’est-à-dire [ ]. Ainsi, le réseau ne commence pas à reconnaître C2 tant que ce
n’est pas pour compléter une reconnaissance de C1.
Remarque 18 (marquages initiaux des places Start). Dans nos réseaux, il y a deux marquages
initiaux possibles pour une place Start :
— la liste qui contient la liste vide, [ [ ] ], indique que le réseau peut activer son mécanisme et
compléter la reconnaissance partielle vide [ ] – on dit alors que le réseau est activé ;
— la liste vide [ ] indique qu’il n’y a encore aucune reconnaissance partielle à compléter, et
tant que le marquage n’est pas modifié, le mécanisme du réseau ne peut pas opérer et on
dit qu’il n’est pas activé.
Les marquages initiaux des places Start permettent donc de contrôler précisément l’activation
des différentes parties d’un réseau, pour ne pas activer la reconnaissance d’un évènement tant que
4. Ceci signifie qu’il n’y a pas de place WiniIn dans les réseaux d’évènement simple.
5. Par la suite, nous effectuons des fusions de réseaux de Petri colorés et de MCPN. Du fait de la Remarque 17,
nous ne prenons pas la peine de redéfinir un MCPN équivalent pour les quelques réseaux de Petri non modulaires
mis en jeu.
84CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
ce n’est pas nécessaire. Par exemple, dans le cas de la séquence C1 C2, nous avons vu qu’il n’est
pas nécessaire de commencer à reconnaître les évènements relatifs à C2 tant qu’une reconnaissance
complète de C1 n’est pas disponible pour être complétée.
Les différents marquages initiaux sont rendus possibles par la fonctionnalité de fusion évoquée
dans la Section 3.1.3 qui détermine le marquage initial des places fusionnées.
On pose :
N0
(C) = Fusion({N0
(C1), N0
(C2)},
{ (Present(C1), {Present(C1), Present(C2)}),
(Success(C1), {Success(C1), Start(C2)}),
(WiniIn(C1), {WiniIn(C1), WiniIn(C2), WiniOut(C2)}) })
On définit la structure du réseau :
Present(C) = Present(C1)
Start(C) = Start(C1)
Success(C) = Success(C2)
WiniOut(C) = WiniOut(C1)
WiniIn(C) = WiniOut(C2)
Puis nous fusionnons avec le compteur d’évènements comme dans l’équation (3.1).
Sur la Figure 3.9, on remarque que les places Present(A), Present(B), et Present(CPT) ont
la même annotation de fusion, à savoir Fusion_84. De même pour Success(A) et Start(B) qui
appartiennent à un même ensemble de fusion annoté Fusion_85.
Si C = C1 || C2
Afin de modéliser la disjonction (comme A || B dont le réseau est représenté Figure 3.10), les
deux réseaux N0
(C1) et N0
(C2) fonctionnent en parallèle. Nous fusionnons donc les places Start
des deux réseaux et les places Success des deux réseaux.
On pose :
N0
(C) = Fusion({N0
(C1), N0
(C2)},
{ (Start(C1), {Start(C1), Start(C2)}),
(Present(C1), {Present(C1), Present(C2)}),
(Success(C1), {Success(C1), Success(C2)}),
(WiniOut(C1), {WiniOut(C1), WiniOut(C2)}),
(WiniIn(C1), {WiniIn(C1), WiniIn(C2)}) })
85Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
inst
init
cpt
init
A
Forget
B
Forget
End
Success
Fusion 89
Present
Fusion 87
Start
Fusion 88
Wini
Fusion 90
Present
Fusion 87
Success
Fusion 89
Start
Fusion 88
Wini
Fusion 90
Present
Fusion 87
Fusion 89
Fusion 87
Fusion 87
Fusion 89
complete (E(a),cpt) curr inst
INT0
cpt
NCList
curr []
curr
Fusion 88
NCList
[[]]
rem_obs init curr INT Fusion 90
~1 INT
0
Fusion 87
cpt+1
cpt
INT0
complete (E(b),cpt) curr inst
[] NCList
inst
curr
curr
NCList[[]]
Fusion 88
rem_obs init curr
Fusion 90 INT
~1
Figure 3.10 – Réseau correspondant à la chronique A || B
On définit la structure du réseau :
Present(C) = Present(C1)
Start(C) = Start(C1)
Success(C) = Success(C1)
WiniOut(C) = WiniOut(C1)
WiniIn(C) =
WiniIn(C1) si WiniIn(C1) 6= ∅
WiniIn(C2) sinon
Puis nous fusionnons avec le compteur d’évènements comme dans l’équation (3.1).
86CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
rem_obs init curr
init
inst2
curr
startsub curr curr2
cpt
rem_obs init curr init
cpt
cpt+1
cpt
Forget
AND
Sub
Forget
A
Forget
B
End
Operand1
4_SuccessA
NCList
Operand2
4_SuccessB
NCList
Wini
4 Init
INT
Success
[]
NCList
Start
[]
NCList
startSub
4 Start [[]]
Success
4_SuccessA
NCList
Wini
4 Init
Present
4_Num
Start
4 Start
NCList
Wini
~1 4 Init
Start
4 Start
NCList
Success
4_SuccessB
NCList
Present
4_Num 0
Present
4_Num
4_SuccessA 4_SuccessB
INT
4_Num 0
0 4_Num
INT
complete (E(a),cpt) curr inst
4_SuccessA []
inst
curr
curr
init
4 Init
~1
INT
rem_obs init curr
4 Start
[[]]
INT
4_Num
complete (E(b),cpt) curr inst
[] 4_SuccessB
inst
curr
[[]] curr
4 Start
INT
4 Init
inst1
mergeAndNew curr inst1 inst2 inst
inst
curr
NCList
~1 4 Init 4 Start
rem_obs init inst1
rem_obs init inst2 inst2
curr inst1
[] []
Figure 3.11 – Réseau correspondant à la chronique A&B
Si C = C1&C2
Pour modéliser une conjonction C1&C2 (comme A&B dont le réseau est représenté Figure 3.11),
les réseaux N0
(C1) et N0
(C2) fonctionnent aussi en parallèle, donc nous fusionnons les places
Start des deux réseaux. Nous fusionnons les places Success des deux réseaux avec des places de
l’opérateur OPAND afin de construire les reconnaissances de C1&C2.
On pose :
N0
(C) = Fusion({N0
(C1), N0
(C2), OPAND},
{ (Start(C1), {Start(C1), Start(C2)}),
(Present(C1), {Present(C1), Present(C2)}),
(Success(C1), {Success(C1), Operand1}),
(Operand2, {Operand2, Success(C2)}),
(WiniOut(C1), {WiniOut(C1), WiniOut(C2), Wini(AND)},
(WiniIn(C1), {WiniIn(C1), WiniIn(C2)}) })
87Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
On définit la structure du réseau :
Present(C) = Present(C1)
Start(C) = Start(C1)
Success(C) = Success(AND)
WiniOut(C) = WiniOut(C1)
WiniIn(C) =
WiniIn(C1) si WiniIn(C1) 6= ∅
WiniIn(C2) sinon
Puis nous fusionnons avec le compteur d’évènements comme dans l’équation (3.1).
Si C = (C1) − [C2[
rem_obs init curr
init
init chg_win init inst
init curr
inst2
concatabs inst curr inst2 cpt
cpt
rem_obs init curr init
curr
complete (E(c),cpt) curr inst cpt
curr
curr
init
cpt
init
curr
cpt
cpt+1
cpt
Forget
Update
Down
Sub
Forget
C
Forget
B
Forget
A
End
WiniAf
INT
Abs
Fusion 92 []
NCList
WiniBe
Fusion 95 ~1
INT
StartSub
Fusion 94 []
NCList
Oper
Fusion 98 []
NCList
Success
NCList
Start
[[]]
NCList
Present
Fusion 91 0
INT
Wini
~1
INT
Start
Fusion 94
[]
NCList
Success
Fusion 92 []
NCList
Present
Fusion 91 0
INT
Start
Fusion 93
[]
NCList
Success
Fusion 98 []
NCList
Wini
Fusion 95 ~1
INT
Present
Fusion 91 0
INT
Success
Fusion 93 []
NCList
Wini
~1
INT
Start
Fusion 94
[]
NCList
Present
Fusion 91 0
INT Present
0 Fusion 91
INT
Fusion 91
Fusion 94
Fusion 93
Fusion 91
Fusion 95
Fusion 98
Fusion 93
Fusion 91
Fusion 92
Fusion 94
Fusion 95
Fusion 94
complete (E(a),cpt) curr inst
inst
complete (E(b),cpt) curr inst
inst
rem_obs init curr
curr
rem_obs init curr
inst
curr
max bck init
bck
~1
Fusion 98 Fusion 91
startsub inst []
curr2
curr inst
Fusion 92
[]
inst
Figure 3.12 – Réseau correspondant à la chronique (A B) − [C[
Afin de modéliser l’absence (C1) − [C2[ (comme (A B) − [C[ dont le réseau est représenté
Figure 3.12), nous fusionnons les places Wini du réseau N(C1) et Success du réseau N(C2) avec
des places de l’opérateur OPABS afin de rendre la chronique C2 « interdite ».
On pose :
88CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
N0
(C) = Fusion({N0
(C1), N0
(C2), OPABS},
{ (Start(C1), {Start(C1), Start(C2), StartSub}),
(Present(C1), {Present(C1), Present(C2), Present(ABS)}),
(Success(C1), {Success(C1), Oper}),
(Success(C2), {Success(C2), Abs}),
(WiniIn(C1), {WiniIn(C1), WiniBe}) })
On définit la structure du réseau :
Present(C) = Present(C1)
Start(C) = Start(ABS)
Success(C) = Success(ABS)
WiniOut(C) = WiniAf
WiniIn(C) = ∅
Puis nous fusionnons avec le compteur d’évènements comme dans l’équation (3.1), ce qui complète
la formalisation de la construction de nos réseaux.
3.3 Formalisation et description de l’exécution des réseaux
Dans cette section, nous présentons le fonctionnement des réseaux que nous venons de définir
en prenant appui sur des exemples d’exécution. Nous définissons ensuite une stratégie formelle
pour le tirage des transitions car toutes les transitions de nos réseaux sont en permanence tirables
mais toute séquence de transitions tirée ne mène pas au marquage recherché, à savoir celui où l’on
peu correctement lire les ensembles de reconnaissance.
Décrivons maintenant le fonctionnement de ces réseaux. Pour chacune des constructions précé-
dentes, nous présentons l’ensemble de ses places, puis les effets de ses transitions. Nous expliquons
ensuite la stratégie de tirage à adopter pour obtenir les ensembles de reconnaissance corrects. Cette
stratégie de tirage est formalisée dans la Section 3.3.6.
3.3.1 Reconnaissance d’un évènement simple
Étudions le comportement d’un réseau reconnaissant un évènement simple sur l’exemple de la
Figure 3.13 qui correspond à la chronique A ∈ N.
Il est composé de deux sous-réseaux : le réseau de compteur d’évènements de la Figure 3.5, et
le réseau relatif à la transition A. Notons que l’annotation de fusion 1_Num indique que les deux
places Present sont fusionnées.
Places Les places Present des deux sous-réseaux sont fusionnées, et ont donc le même marquage.
Elles sont de type INT et contiennent un entier qui correspond à la valeur du compteur d’évènement.
89Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Figure 3.13 – Réseau correspondant à la chronique A
Les places Start et Success sont de type NCList, c’est-à-dire qu’elles contiennent une liste
d’instances de chroniques. La place Start a un rôle dans la composition des réseaux pour des
chroniques complexes. Ici, son marquage est constant, égal à son marquage initial [ [ ] ]. La place
Success contient la liste des reconnaissances de la chronique A.
La partie du réseau composée de la place Wini et de la transition Forget est utilisée dans le
cas de l’absence. Son fonctionnement est donc explicité dans la section de la reconnaissance de
l’absence (3.3.5).
Transitions Lorsque la transition End est tirée, l’entier de la place Present est incrémenté de
1. La valeur du compteur est apposée aux évènements pour les distinguer entre eux, comme il est
détaillé par la suite. Il faut donc augmenter le compteur à chaque évènement du flux. Au tirage de
la transition End, le marquage du réseau évolue comme suit :
Start
Success
Present
curr
inst
cpt
End −→
curr
inst
cpt + 1
Lorsque la transition A est tirée, le contenu de la place Success est modifié : la liste des
reconnaissances déjà présente dans la place Success est complétée par une nouvelle reconnaissance,
notée (E(a), cpt+ 1) (que l’on notera aussi Ecpt+1
a
) où cpt est la valeur du compteur d’évènements.
Ci-dessous, nous avons simplifié la définition de la fonction complete en intégrant le fait que, ici,
curr = [ [ ] ]. La fonction ANR (Add New Recognition) ajoute la nouvelle reconnaissance [Ecpt+1
a
]
à la liste inst.
90CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
Start
Success
Present
curr
inst
cpt
A −→
curr
ANR(inst, [ [Ecpt+1
a
] ])
cpt
Stratégie de tirage Considérons un flux ϕ. Ce sont les évènements du flux ϕ qui déterminent la
suite de transitions à tirer. Si un évènement de nom différent de A a lieu, seule la transition End est
tirée : seul le compteur d’évènement est incrémenté. Si un évènement de nom A a lieu, la transition
A est tirée, de façon à ajouter l’évènement à la liste des reconnaissances, puis la transition End est
tirée pour incrémenter le compteur.
Exemple 8. Soit ϕ = ((b, 1),(a, 2),(d, 3),(a, 4)) avec a, b, d ∈ N où nous souhaitons reconnaître
la chronique A.
La liste des transitions à tirer correspondant au flux ϕ est [End, A, End, End, A, End].
Le marquage des places du réseau évolue comme suit :
Start
Success
Present
[ [ ] ]
[ ]
0
End −→
[ [ ] ]
[ ]
1
A −→
[ [ ] ]
[ [E2
a
] ]
1
End −→
[ [ ] ]
[ [E2
a
] ]
2
End −→
[ [ ] ]
[ [E2
a
] ]
3
A −→
[ [ ] ]
[ [E2
a
], [E4
a
] ]
3
End −→
[ [ ] ]
[ [E2
a
], [E4
a
] ]
4
On obtient bien deux reconnaissances, [E2
a
] et [E4
a
] dues à (a, 2) et (a, 4).
3.3.2 Reconnaissance d’une séquence
Nous allons étudier le réseau de Petri de la Figure 3.14 qui correspond à la chronique A B où
A, B ∈ N pour examiner le déroulement d’une séquence.
Il est composé de trois sous-réseaux : le réseau de compteur d’évènements, le réseau relatif à la
transition A et le réseau relatif à la transition B.
Places Comme précédemment, les places Present des trois sous-réseaux sont fusionnées, de type
INT, et contiennent un entier correspondant au compteur d’évènements.
La place Start du réseau A a un marquage constant, égal à son marquage initial [ [ ] ].
La place Success du réseau A est fusionnée avec la place Start du réseau B. Les deux sousréseaux
A et B fonctionnent donc en série. La place Start du réseau B n’a donc plus un marquage
constant [ [ ] ]. Son marquage initial est la liste vide [ ] qui est le marquage initial de Success(A).
Comme évoqué dans la Remarque 18, ceci implique que le mécanisme du réseau relatif à B ne peut
pas être effectif tant que le marquage initial n’a pas été modifié car il n’y a pas de reconnaissance
partielle à compléter. Au fur et à mesure de l’exécution du réseau, Start(B) pourra contenir une
liste contenant une liste non vide : il s’agira des reconnaissances partielles de A B, c’est-à-dire des
reconnaissances de A, qu’il faut compléter par des reconnaissances de B.
91Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
rem_obs init curr init
End
A
Forget
B
Forget
Present
Fusion 84
Present
Fusion 84 INT
Success
Fusion 85
Start
Wini
Present
Fusion 84
Success
Start
Fusion 85
Wini
Fusion 85
Fusion 84 INT
cpt
cpt+1 0
Fusion 84
0
cpt complete (E(a),cpt) curr inst
inst
NCList[]
curr
curr
NCList [[]]
rem_obs init curr init
INT
Fusion 84 INT
0
complete (E(b),cpt) curr inst
NCList
[]
inst
cpt
curr
curr
[] NCList
INT
~1 ~1
1
1`0
1
1`0
1
1`[]
1
1`[[]]
1 1`(~1)
1 1`0
1
1`[]
1
1`[]
1 1`(~1)
Figure 3.14 – Réseau correspondant à la chronique A B
La place Success du réseau B contient les reconnaissances de la chronique A B.
Comme précédemment, on ignore pour le moment les parties des réseaux A et B composées de
la place Wini et de la transition Forget et relatives à l’absence.
Transitions Lorsque la transition End est tirée, le compteur d’évènements est incrémenté de 1.
Lorsque la transition A est tirée, une nouvelle reconnaissance de A est ajoutée à la liste contenue
dans la place Success, comme dans le réseau précédent.
Lorsque la transition B est tirée, la reconnaissance de B complète les reconnaissances de A qui
se trouvent dans la place Start(B) (à l’aide de la fonction CPR - Complete Partial Recognition)
pour former des reconnaissances de A B qui sont ajoutées à la liste de la place Success(B). En
effet, la fonction complete prend en argument la variable currB qui correspond au contenu de
la place Start et complète les reconnaissances partielles qui s’y trouvent. C’est pour cela que le
marquage initial de Success(A) et Start(B) est [ [ ] ] et non [ ] : la fonction complete va compléter
la liste vide, il n’y a pas encore de reconnaissance de A.
Start(A)
Start(B)
Success(B)
Present
currA
currB
instB
cpt
B −→
currA
currB
ANR(instB, CPR([ [E
cpt+1
b
] ], currB))
cpt
Stratégie de tirage Si un évènement de nom différent de A et de B a lieu, seule la transition
End est tirée, et donc seul le compteur d’évènements est incrémenté. Si un évènement de nom A a
lieu, la transition A est tirée de façon à ajouter l’évènement à la liste des reconnaissances partielles,
puis la transition End est tirée. De même, si un évènement de nom B a lieu, la transition B est tirée
92CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
de façon à compléter les reconnaissances partielles et obtenir des reconnaissances de A B, puis la
transition End est tirée.
Exemple 9. Soit ϕ = ((b, 1),(a, 2),(d, 3),(a, 4),(b, 5)) avec a, b, d ∈ N où l’on souhaite reconnaître
la chronique A B.
La liste des transitions à tirer correspondant au flux ϕ est [B, End, A, End, End, A, End, B, End].
Le marquage des places du réseau évolue comme suit (on rappelle que les places Success(A) et
Start(B) sont fusionnées et ont donc le même marquage) :
Start(A)
Success(A)
Success(B)
Present
[ [ ] ]
[ ]
[ ]
0
B −→
[ [ ] ]
[ ]
[ ]
0
End −→
[ [ ] ]
[ ]
[ ]
1
A −→
[ [ ] ]
[ [E2
a
] ]
[ ]
1
End −→
[ [ ] ]
[ [E2
a
] ]
[ ]
2
End −→
[ [ ] ]
[ [E2
a
] ]
[ ]
3
A −→
[ [ ] ]
[ [E2
a
], [E4
a
] ]
[ ]
3
End −→
[ [ ] ]
[ [E2
a
], [E4
a
] ]
[ ]
4
B −→
[ [ ] ]
[ [E2
a
], [E4
a
] ]
[ [E2
a
, E5
b
], [E4
a
, E5
b
] ]
4
End −→
[ [ ] ]
[ [E2
a
], [E4
a
] ]
[ [E2
a
, E5
b
], [E4
a
, E5
b
] ]
5
Remarquons que le premier tirage de la transition B ne modifie pas le marquage du réseau. Ceci
est dû au fait que le marquage de la place Start(B) est [ ] et qu’il n’y a donc aucune liste, même
vide, à compléter. Comme il s’agit d’une séquence, on ne commence pas à reconnaître B tant que
l’on n’a pas reconnu A.
Le cas particulier A A Il est important de vérifier que le cas particulier A A ne pose pas de
problème dans la gestion des différentes combinaisons pour les reconnaissances et qu’il faut bien
deux occurrences distinctes de A pour reconnaître la séquence. Ceci est garanti par la fonction
complete qui ne complète que les reconnaissances datant d’un instant inférieur ou égal à l’instant
courant cpt du compteur d’évènements.
Étudions le mécanisme sur le flux ((a, 1),(a, 2)). On dénomme A1 et A2 les deux réseaux
fusionnés pour former N(A A). À la suite du tirage de la transition A1 pour le traitement de
l’évènement (a, 1), le marquage de Success(A1) (qui est aussi celui de Start(A2)) est [[E1
a
]].
Lorsque l’on tire A2, la fonction complete examine l’instant de chacune des reconnaissances à
compléter. Il n’y a pour le moment que [E1
a
] à compléter et son instant de reconnaissance est 1.
La compteur d’évènements est encore à 0 donc la contrainte n’est pas vérifiée (¬ 0 ≥ 1) et [E1
a
]
ne peut être complétée par (a, 1). On tire alors la transition End et le compteur passe à 1. [E1
a
]
peut donc maintenant être complétée. Pour traiter (a, 2), on tire A1 ce qui modifie le marquage de
Success(A1) à [[E1
a
], [E2
a
]] et on tire A2 ce qui ne peut compléter que [E1
a
]. On obtient alors [[E1
a
, E2
a
]]
93Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
comme marquage de Success(A2); on a bien une unique reconnaissance et le cas particulier A A
est correctement traité.
3.3.3 Reconnaissance d’une disjonction
cpt+1
cpt
init remove_obsolete init curr
curr
inst
complete (E(b),cpt) curr inst
inst
complete (E(a),cpt) curr inst
init
remove_obsolete init curr
End
Forget
B
A
Forget
Present
3_Num
0
INT
Wini
3 Init
~1
INT
Success
3_Success []
NCList
Present
3_Num
0
INT
Present
3_Num
0
INT
Success
3_Success []
NCList
Start
3_Start [[]]
NCList
Wini
3 Init
~1
INT
Start
3_Start [[]]
NCList
3_Start
3_Success
3_Num
3_Num
3_Success
3_Num
3 Init
3 Init
cpt
cpt
curr
curr
curr
1 1`0
1 1`(~1)
1
1`[]
1`0 1
1`0 1
1
1`[]
1
1`[[]]
1 1`(~1)
1
1`[[]]
Figure 3.15 – Réseau correspondant à la chronique A || B
Étudions le comportement d’une disjonction à travers le réseau de Petri de la Figure 3.15 qui
correspond à la chronique A || B où A, B ∈ N.
Il est composé de trois sous-réseaux : le réseau de compteur d’évènements, le réseau relatif à la
transition A et le réseau relatif à la transition B.
Places Comme précédemment, les places Present des trois sous-réseaux sont fusionnées, de type
INT, et contiennent un entier correspondant au compteur d’évènements.
94CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
Les places Start des réseaux A et B sont fusionnées et ont ici un marquage constant, égal à
[ [ ] ]. Les deux sous-réseaux fonctionnent donc en parallèle.
Les places Success des réseaux A et B sont aussi fusionnées. Elles contiennent la liste des
reconnaissances de A || B.
Comme précédemment, on ignore pour le moment les parties des réseaux A et B composées de
la place Wini et de la transition Forget.
Transitions Lorsque la transition End est tirée, le compteur d’évènements est incrémenté de 1.
Lorsque la transition A est tirée, une nouvelle reconnaissance de A est ajoutée à la liste contenue
dans la place Success. Une reconnaissance de A est une reconnaissance de A || B.
De même, lorsque la transition B est tirée, une nouvelle reconnaissance de B est ajoutée à la
liste contenue dans la place Success. Ainsi, la place Success contient toutes les reconnaissances
de A et toutes celles de B, ce qui correspond à toutes les reconnaissances de A || B.
Stratégie de tirage Si un évènement de nom différent de A et de B a lieu, seule la transition
End est tirée, et donc seul le compteur d’évènements est incrémenté. Si un évènement de nom A
(respectivement B) a lieu, la transition A (respectivement B) est tirée de façon à ajouter l’évènement
à la liste des reconnaissances de la place Success, puis la transition End est tirée.
Exemple 10. Soit ϕ = ((b, 1),(a, 2),(d, 3),(a, 4)) avec a, b, d ∈ N où nous souhaitons reconnaître
A || B.
La liste des transitions à tirer correspondant au flux ϕ est [B, End, A, End, End, A, End].
Le marquage des places du réseau évolue comme suit :
Start
Success
Present
[ [ ] ]
[ ]
0
B −→
[ [ ] ]
[ [E1
b
] ]
0
End −→
[ [ ] ]
[ [E1
b
] ]
1
A −→
[ [ ] ]
[ [E1
b
], [E2
a
] ]
1
End −→
[ [ ] ]
[ [E1
b
], [E2
a
] ]
2
End −→
[ [ ] ]
[ [E1
b
], [E2
a
] ]
3
A −→
[ [ ] ]
[ [E1
b
], [E2
a
], [E4
a
] ]
3
End −→
[ [ ] ]
[ [E1
b
], [E2
a
], [E4
a
] ]
4
3.3.4 Reconnaissance d’une conjonction
Détaillons le processus de reconnaissance d’une conjonction à travers le réseau de Petri de la
Figure 3.16 qui correspond à la chronique A&B où A, B ∈ N.
Il est composé de quatre sous-réseaux : le réseau de compteur d’évènements, le réseau de
l’opérateur de conjonction OPAND, le réseau relatif à la transition A et celui relatif à la transition B.
Places Comme précédemment, les places Present sont fusionnées, de type INT, et contiennent
un entier correspondant au compteur d’évènements.
Les places Start des réseaux A et B sont fusionnées et ont ici un marquage constant, égal à [ [ ] ].
Nous souhaitons reconnaître A et B dans un ordre quelconque donc les deux réseaux fonctionnent
en parallèle.
95Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
rem_obs init curr
init
inst2
curr
startsub curr curr2
cpt
rem_obs init curr init
cpt
cpt+1
cpt
Forget
AND
Sub
Forget
A
Forget
B
End
Operand1
4_SuccessA
NCList
Operand2
4_SuccessB
NCList
Wini
4 Init
INT
Success
[]
NCList
Start
[]
NCList
startSub
4 Start [[]]
Success
4_SuccessA
NCList
Wini
4 Init
Present
4_Num
Start
4 Start
NCList
Wini
~1 4 Init
Start
4 Start
NCList
Success
4_SuccessB
NCList
Present
4_Num 0
Present
4_Num
4_SuccessA 4_SuccessB
INT
4_Num 0
0 4_Num
INT
complete (E(a),cpt) curr inst
4_SuccessA []
inst
curr
curr
init
4 Init
~1
INT
rem_obs init curr
4 Start
[[]]
INT
4_Num
complete (E(b),cpt) curr inst
[] 4_SuccessB
inst
curr
[[]] curr
4 Start
INT
4 Init
inst1
mergeAndNew curr inst1 inst2 inst
inst
curr
NCList
~1 4 Init 4 Start
rem_obs init inst1
rem_obs init inst2 inst2
curr inst1
[] 1 []
1`[]
1 1`[]
1
1`(~1)
1
1`[]
1 1`[]
1
1`[[]]
1 1`[]
1 1`(~1)
1 1`0
1
1`[[]]
1 1`(~1)
1
1`[[]]
1 1`[]
1 1`0
1 1`0
Figure 3.16 – Réseau correspondant à la chronique A&B
La place Success du réseau A (respectivement B) est fusionnée avec la place Operand1 (respectivement
Operand2) du réseau de conjonction. Elle contient les reconnaissances de A (respectivement
B) qui sont des reconnaissances partielles de A&B. Il reste alors à effectuer les combinaisons
de ces reconnaissances partielles pour former les reconnaissances de A&B. C’est le rôle de l’opérateur
OPAND.
Ces combinaisons, c’est-à-dire les reconnaissances de A&B, sont stockées dans la place
Success(AND).
Le calcul de ces combinaisons n’est pas évident et présente plusieurs difficultés :
— Nous souhaitons respecter la multiplicité des reconnaissances, donc réaliser toutes les combinaisons
possibles sans créer de doublons injustifiés (i.e. sans engendrer deux témoins d’une
unique reconnaissance). C’est un enjeu qui n’apparaît que peu dans le réseau présenté ici
car nous manipulons des listes de reconnaissances donc la complexité de l’algorithme est
dissimulée dans l’implémentation de la fonction mergeAndNew. La difficulté est plus apparente
dans le Chapitre 4 où l’on manipule un jeton par reconnaissance ce qui conduit à un
réseau beaucoup plus conséquent pour l’opérateur AND.
— La détermination des bonnes combinaisons dans une conjonction lors de la composition avec
une séquence – ici nous prenons l’exemple de la chronique Cdeb (A&B) – est complexe et
soulève une double problématique :
96CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
— D’une part, la première idée intuitive dans le cas d’une séquence consiste à fusionner
la place Success(Cdeb) avec les places Start(A) et Start(B), c’est-à-dire définir que
Start(A&B) = Start(A)
6
. C’est d’ailleurs ce qui est réalisé dans [CCK11]. Cependant,
nous obtenons alors, dans les places Success(A) et Success(B), des reconnaissances de
Cdeb A et de Cdeb B qu’il faut ensuite recombiner en reconnaissances de Cdeb (A&B).
Ceci n’est pas réalisable si l’on n’a pas stocké par ailleurs la partie de la reconnaissance
correspondant au préfixe commun Cdeb. Nous introduisons donc la place Start(AND) qui
stocke les reconnaissances de Cdeb. L’opérateur d’absence, au travers de la transition AND
et de la fonction mergeAndNew, combine alors les reconnaissances de Cdeb, A et B, qui
arrivent séparément, pour former les reconnaissances de Cdeb (A&B).
— D’autre part, nous ne souhaitons pas commencer à reconnaître A&B tant que Cdeb n’a
pas été reconnue. Pour ce faire, nous introduisons la place StartSub que nous fusionnons
avec les places Start(A) et Start(B). Lorsque Success(Cdeb) contient une liste vide
(c’est-à-dire lorsque l’on n’a pas encore reconnu Cdeb), StartSub contient également une
liste vide [ ]. A et B ne peuvent alors pas encore être reconnus car il n’y a rien à compléter
dans les places Start correspondantes. Inversement, lorsque Success(Cdeb) contient une
ou plusieurs reconnaissances, StartSub est marquée [ [ ] ]. Les réseaux N0
(A) et N0
(B)
peuvent alors compléter la liste vide [ ] avec des reconnaissances respectivement de A et
de B.
Comme précédemment, on ignore pour le moment les parties des réseaux A et B composées de
la place Wini et de la transition Forget.
Transitions Lorsque la transition End est tirée, le compteur d’évènements est incrémenté de 1.
Lorsque la transition A (respectivement B) est tirée, une nouvelle reconnaissance de A (respectivement
B) est ajoutée à la liste contenue dans la place Operand1 (respectivement Operand2).
Lorsque la transition AND est tirée, les reconnaissances de A dans Operand1, les reconnaissances
de B dans Operand2, et les reconnaissances d’une éventuelle séquence à compléter dans Start(AND)
sont combinées pour former des reconnaissances de A&B intégrées éventuellement dans une reconnaissance
plus complexe. Ces nouvelles reconnaissances sont ajoutées à la liste de la place Success
à l’aide de la fonction mergeAndNew. Cette fonction ajoute uniquement les nouvelles reconnaissances
de A&B. En effet, dans Operand1 et dans Operand2 se trouvent toutes les reconnaissances
de A et de B, et si l’on se contentait de faire tous les couples possibles de reconnaissances de A et de
reconnaissances de B, nous obtiendrions, entre autre, des reconnaissances déjà ajoutées précédemment.
Notons qu’il y existe un critère simple pour déterminer s’il faut ajouter une reconnaissance :
une nouvelle reconnaissance de A&B est une reconnaissance où soit la reconnaissance de A, soit
la reconnaissance de B vient d’apparaître, c’est-à-dire qui est de la forme Ecpt+1
a ou E
cpt+1
b
où cpt
est la valeur actuelle du compteur d’évènements.
La transition Sub actualise le contenu des places Operand1 et Operand2 selon le contenu de la
place Start(AND) afin de ne pas activer les réseaux relatifs à A et B lorsque cela est inutile, comme
évoqué précédemment.
6. Et donc Start(A&B) = Start(B) car Start(A) et Start(B) sont fusionnées.
97Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Stratégie de tirage On commence par tirer la transition Sub pour mettre à jour l’activation des
réseaux A et B. Ensuite, si un évènement de nom différent de A et de B a lieu, seule la transition
End est tirée, et donc seul le compteur d’évènements est incrémenté. Au contraire, si un évènement
de nom A (respectivement B) a lieu, la transition A (respectivement B) est tirée de façon à ajouter
l’évènement à la liste des reconnaissances de la place Operand1 (respectivement Operand2). La
transition AND est ensuite tirée pour créer les nouvelles reconnaissances éventuelles de A&B et les
insérer dans la liste de la place Success, puis la transition End est tirée.
Exemple 11. Soit ϕ = ((b, 1),(a, 2),(d, 3),(b, 4)) avec a, b, d ∈ N où l’on souhaite reconnaître
A&B.
La liste des transitions à tirer correspondant au flot ϕ est [Sub, B, AND, End, Sub, A, AND, End, Sub,
End, Sub, B, AND, End].
Le marquage des places du réseau évolue comme suit :
StartSub
Operand1
Operand2
Success
Present
[ [ ] ]
[ ]
[ ]
[ ]
0
Sub,B
−→
[ [ ] ]
[ ]
[ [E1
b
] ]
[ ]
0
AND −→
[ [ ] ]
[ ]
[ [E1
b
] ]
[ ]
0
End −→
[ [ ] ]
[ ]
[ [E1
b
] ]
[ ]
1
Sub,A
−→
[ [ ] ]
[ [E2
a
] ]
[ [E1
b
] ]
[ ]
1
AND −→
[ [ ] ]
[ [E2
a
] ]
[ [E1
b
] ]
[ [E1
b
, E2
a
] ]
1
End,Sub,End
−→
[ [ ] ]
[ [E2
a
] ]
[ [E1
b
] ]
[ [E1
b
, E2
a
] ]
3
Sub,B
−→
[ [ ] ]
[ [E2
a
] ]
[ [E1
b
], [E4
b
] ]
[ [E1
b
, E2
a
] ]
3
AND,End
−→
[ [ ] ]
[ [E2
a
] ]
[ [E1
b
], [E4
b
] ]
[ [E1
b
, E2
a
], [E2
a
, E4
b
] ]
4
Le cas particulier de A&A De même que pour la séquence, il est intéressant de vérifier que
le cas particulier A&A est correctement traité par ce modèle de la conjonction et que l’on obtient
bien le bon nombre de reconnaissances.
On considère le flux ϕ = ((a, 1),(a, 2)). D’après la sémantique du langage définie dans la Section
2.3.2, le flux ϕ doit donner lieu à quatre reconnaissances de A&A : h(a, 1),(a, 1)i, h(a, 2),(a, 2)i,
h(a, 1),(a, 2)i, et h(a, 2),(a, 1)i.
Si on appelle S(a) la liste des transitions à tirer pour traiter l’occurrence d’un évènement a
dans le flux pour la chronique A&A, le marquage du réseau évolue comme suit :
Start
Success
Operand1
Operand2
S(a)
−→
[ [ ] ]
[ [E1
a
, E1
a
] ]
[ [E1
a
] ]
[ [E1
a
] ]
S(a)
−→
[ [ ] ]
[ [E1
a
, E1
a
], [E1
a
, E2
a
], [E2
a
, E1
a
], [E2
a
, E2
a
] ]
[ [E1
a
], [E2
a
] ]
[ [E1
a
], [E2
a
] ]
98CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
On obtient donc bien les quatre reconnaissances.
3.3.5 Reconnaissance d’une absence
rem_obs init curr
init
init chg_win init inst
init curr
inst2
concatabs inst curr inst2 cpt
cpt
rem_obs init curr init
curr
complete (E(c),cpt) curr inst cpt
curr
curr
init
cpt
init
curr
cpt
cpt+1
cpt
Forget
Update
Down
Sub
Forget
C
Forget
B
Forget
A
End
WiniAf
INT
Abs
Fusion 92 []
NCList
WiniBe
Fusion 95 ~1
INT
StartSub
Fusion 94 []
NCList
Oper
Fusion 98 []
NCList
Success
NCList
Start
[[]]
NCList
Present
Fusion 91 0
INT
Wini
~1
INT
Start
Fusion 94
[]
NCList
Success
Fusion 92 []
NCList
Present
Fusion 91 0
INT
Start
Fusion 93
[]
NCList
Success
Fusion 98 []
NCList
Wini
Fusion 95 ~1
INT
Present
Fusion 91 0
INT
Success
Fusion 93 []
NCList
Wini
~1
INT
Start
Fusion 94
[]
NCList
Present
Fusion 91 0
INT Present
0 Fusion 91
INT
Fusion 91
Fusion 94
Fusion 93
Fusion 91
Fusion 95
Fusion 98
Fusion 93
Fusion 91
Fusion 92
Fusion 94
Fusion 95
Fusion 94
complete (E(a),cpt) curr inst
inst
complete (E(b),cpt) curr inst
inst
rem_obs init curr
curr
rem_obs init curr
inst
curr
max bck init
bck
~1
Fusion 98 Fusion 91
startsub inst []
curr2
curr inst
Fusion 92
[]
inst
1 1`(~1)
1 1`[]
1
1`(~1)
1
1`[]
1 1`[]
1
1`[]
1
1`[[]]
1 1`0
1 1`(~1)
1 1`[]
1 1`[]
1 1`0
1 1`[]
1 1`[]
1 1`(~1)
1 1`0
1 1`[]
1 1`(~1)
1 1`[]
1 1`0 1
1`0
Figure 3.17 – Réseau correspondant à la chronique (A B) − [C[
Étudions maintenant le cas de l’absence à travers le réseau de Petri de la Figure 3.17 qui
correspond à la chronique (A B) − [C[ où A, B, C ∈ N.
Il est composé de quatre sous-réseaux : le réseau de compteur d’évènements, le réseau d’absence
OPABS, le réseau relatif à la chronique A B (composé du réseau A et du réseau B) et le réseau relatif
à la transition C.
Places Comme précédemment, les places Present sont fusionnées, de type INT, et contiennent
un entier correspondant au compteur d’évènements.
La place Start du réseau A B (c’est-à-dire la place Start du réseau A) et celle du réseau C sont
fusionnées et ont ici un marquage constant, égal à [ [ ] ]. Cela permet de synchroniser l’activation
des réseaux A B et C.
La place Success du réseau A B (c’est-à-dire la place Success du réseau B) contient les reconnaissances
de (A B) − [C[ et est fusionnée avec la place Oper de l’opérateur ABS pour que
99Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
les reconnaissances de (A B) − [C[ puissent être recombinées si la chronique est insérée dans une
séquence comme D (A B)−[C[ (nous détaillons ce cas particulier par la suite). S’il n’y a pas de sé-
quence avant l’absence, les reconnaissances de Oper sont simplement transférées dans Success(ABS)
(elles viennent en fait compléter une liste vide).
La place Abs du réseau d’absence et Success(C) sont fusionnées et contiennent les reconnaissances
de C, qui est dans notre exemple la chronique interdite.
Pour la chronique (A B) − [C[, les reconnaissances de C vont invalider toutes les reconnaissances
partielles de (A B) durant lesquelles un C a eu lieu. Pour implémenter ce processus, nous
allons supprimer les reconnaissances de A ayant été suivies d’une occurrence de C afin qu’elles
ne puissent être complétées par un B. Ainsi, nous n’obtenons que des reconnaissances de (A B)
vérifiant la contrainte qu’aucun C n’a eu lieu entre A et B. La place Wini présente dans tous les
réseaux définis jusqu’alors contient un entier qui sert de repère pour les suppressions des reconnaissances
invalidées. Elle contient l’entier correspondant à la valeur, incrémentée de 1, du compteur
d’évènements lors de la dernière reconnaissance de la chronique « interdite » (ici, C). Cette valeur
correspond à l’indice du compteur à partir duquel les reconnaissances de (A B) peuvent à nouveau
être considérées comme valides, c’est-à-dire sans occurrence de C, et peuvent être ajoutées à la
liste des reconnaissances de (A B) − [C[.
Dans l’opérateur ABS, il s’agit de mettre à jour le contenu de ces places Wini. Il faut tenir
compte de deux choses :
1. non seulement de l’absence qui est considérée (ici, −[C[) ;
2. mais aussi de la possibilité que la chronique soit imbriquée dans une autre absence, comme par
exemple dans la chronique ( ((A B)−[C[) E )−[D[ dont le réseau est représenté Figure 3.18.
En d’autres termes, il faut faire attention aux bornes de l’absence. Comme nous le détaillerons
par la suite, dans la chronique ( ((A B) − [C[) E ) − [D[, l’occurrence d’un D doit avoir une
influence sur tout ((A B)−[C[) E mais l’occurrence d’un C ne doit avoir d’influence que sur (A B).
Ainsi, une fois que la séquence (A B) est reconnue, l’occurrence d’un C ne doit pas supprimer les
reconnaissances complètes de (A B) ni celles de E, mais seulement les reconnaissances de A non
encore complétées par un B.
L’opérateur ABS fonctionne donc comme une diode ne permettant à la valeur de Wini de se
propager que dans un seul sens. Il possède deux places Wini :
1. la place WiniBe en charge de l’absence considérée à ce niveau (ici, −[C[) et qui est donc
fusionnée avec Wini(A B) pour supprimer les reconnaissances obsolètes de A ;
2. la place WiniAf qui propage vers WiniBe les absences éventuelles de niveau supérieur mais
qui bloque la propagation en sens inverse :
— lorsqu’il n’y a pas d’autre absence, comme dans le cas de la Figure 3.17 avec (A B)−[C[,
le marquage de WiniAf est constant égal à −1 et n’aura donc aucun effet sur le réseau,
— lorsqu’il y a des absences de niveau supérieur (comme dans le cas de la Figure 3.18 avec
la chronique ( ((A B)−[C[) E )−[D[), la place WiniAf est fusionnée avec les places Wini
des niveaux supérieurs et permet ainsi de faire redescendre l’entier qui y est stocké, sans
que l’entier de WiniBe ne puisse jamais remonter.
Le fonctionnement des places WiniBe et WiniAf est illustré dans l’Exemple 13.
100CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
Transitions Lorsque la transition End est tirée, le compteur d’évènements est incrémenté de 1.
Lorsque la transition A (respectivement B et C) est tirée, une nouvelle reconnaissance de A
(respectivement B et C) est ajoutée à la liste contenue dans la place Success du réseau A (respectivement
B et C).
Lorsque la transition Update est tirée, le contenu de la place WiniBe est mis à jour avec l’indice
du compteur de la dernière reconnaissance de C si celui-ci est plus grand que la valeur actuelle
init stockée dans la place WiniBe.
Lorsque la transition Down est tirée, l’entier de repère, stocké dans WiniAf et provenant d’une
absence de plus haut niveau, est transmis à WiniBe s’il est plus grand que la valeur actuelle qui
y est stockée. L’existence de deux places distinctes WiniBe et WiniAf et de la transition Down
est nécessaire pour contrôler la propagation des entiers repères des Wini, ce qui n’aurait pas été
possible avec une simple fusion de WiniBe et WiniAf.
Lorsque la transition Sub est tirée :
— le réseau d’absence est activé selon le contenu de Start(ABS) ;
— les combinaisons des reconnaissances de Start(ABS) (une liste vide ou des reconnaissances
non vides dans la structure de la chronique globale étudiée) avec des reconnaissances de
(C1) − [C2[ qui sont dans Oper sont effectuées séquentiellement et ajoutées à la liste de
reconnaissances de Success(ABS).
Lorsque la transition Forget du réseau B est tirée, les reconnaissances de A d’indice inférieur
strictement à init sont supprimées de la place Start(B) et donc de Success(A). Ainsi, si une
occurrence de A est suivie d’une occurrence de C, l’occurrence de A sera oubliée, de telle sorte
qu’une reconnaissance de B ne puisse venir la compléter en une reconnaissance de (A B) − [C[.
Stratégie de tirage Si un évènement de nom différent de A, B et C a lieu, seule la transition
End est tirée, et donc seul le compteur d’évènements est incrémenté. Si un évènement de nom C a
lieu, on tire alors la transition C. On tire ensuite Update puis Down pour mettre à jour le contenu
des places Wini du réseau, et Sub pour éventuellement activer le réseau. Les transitions Forget
du réseau sont ensuite tirées pour supprimer les éventuelles reconnaissances rendues obsolètes par
les nouvelles valeurs de Wini. Si un évènement de nom A (respectivement B) a lieu, la transition
A (respectivement B) est tirée. On tire ensuite de nouveau Sub pour effectuer les combinaisons
appropriées puis on tire finalement la transition End pour incrémenter le compteur.
Exemple 12. Soit ϕ = ((a, 1),(b, 2),(c, 3),(b, 4)) avec a, b, c ∈ N où l’on souhaite reconnaître la
chronique (A B) − [C[ représentée dans la Figure 3.17.
La liste des transitions à tirer correspondant au flot ϕ est [Update, Down, Sub, Forget∗
, A, Sub,
End, Update, Down, Sub, Forget∗
, B, Sub, End, C, Update, Down, Sub, Forget∗
, Sub, End, Update, Down,
Sub, Forget∗
, B, Sub, End].
Le marquage des places du réseau évolue comme suit :
101Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Start(A), Start(C)
Start(B)
Success(B)
Wini(A B)
Success(C)
Present
[ [ ] ]
[ ]
[ ]
−1
[ ]
0
Update,Down,Sub,Forget∗
,A
−→
[ [ ] ]
[ [E1
a
] ]
[ ]
−1
[ ]
0
End −→
[ [ ] ]
[ [E1
a
] ]
[ ]
−1
[ ]
1
Update,Down,Sub,Forget∗
,B,Sub
−→
[ [ ] ]
[ [E1
a
] ]
[ [E1
a
, E2
b
] ]
−1
[ ]
1
End −→
[ [ ] ]
[ [E1
a
] ]
[ [E1
a
, E2
b
] ]
−1
[ ]
2
C −→
[ [ ] ]
[ [E1
a
] ]
[ [E1
a
, E2
b
] ]
−1
[ [E3
c
] ]
2
Update
−→
[ [ ] ]
[ [E1
a
] ]
[ [E1
a
, E2
b
] ]
3
[ [E3
c
] ]
2
Down,Sub,Forget∗
,Sub
−→
[ [ ] ]
[ ]
[ [E1
a
, E2
b
] ]
3
[ [E3
c
] ]
2
End −→
[ [ ] ]
[ ]
[ [E1
a
, E2
b
] ]
3
[ [E3
c
] ]
3
Update,Down,Sub,Forget∗
,B,Sub,End
−→
[ [ ] ]
[ ]
[ [E1
a
, E2
b
] ]
3
[ [E3
c
] ]
4
Cas particulier de deux absences imbriquées Comme détaillé précédemment, c’est dans
les chroniques contenant au moins deux absences imbriquées qu’apparaît l’utilité de la transition
Down dans l’opérateur d’absence. Celle-ci assure un fonctionnement en « diode », ne permettant à
la valeur de Wini de se propager que dans un seul sens. Sur l’exemple de la chronique ( ((A B) −
[C[) E ) − [D[ présentée Figure 3.18, en l’absence de la transition Down, dès que la chronique
C est reconnue la valeur de Wini peut se propager en dehors de la chronique (A B) − [C[. Des
reconnaissances valides seraient alors supprimées. L’exemple suivant illustre le fonctionnement en
diode de l’opérateur d’absence.
Exemple 13. Considérons la chronique ( ((A B)−[C[) E )−[D[ et le flux ϕ = ((a, 1),(b, 2),(d, 3),
(e, 4),(a, 5),(b, 6),(c, 7),(e, 8),(d, 9)) où a, b, c, d, e ∈ N.
On ne détaille pas ici toute la suite des transitions à tirer mais on note S(e) les transitions à
tirer pour notre chronique suite à l’évènement e.
Le marquage des places du réseau évolue comme suit. Nous nous intéressons en particulier
aux places WiniBe et WiniAf de la première absence −[C[. Ici, WiniBe est fusionnée avec
Wini(A) et Wini(B), alors que WiniAf est fusionnée avec Wini(E). Rappelons qu’ici Success(B) =
Success((A B) − [C[) et Success(E) = Success(( ((A B) − [C[) E ) − [D[).
102CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
rem_obs init curr
init
[]
init chg_win init inst
init
inst2
concatabs inst curr inst2 cpt
inst
init
init chg_win init inst
init
inst2
concatabs inst curr inst2 cpt
inst
cpt complete (E(d),cpt) curr inst
rem_obs init curr
curr
init
complete (E(e),cpt) curr inst
curr
rem_obs init curr
curr
init
inst
init rem_obs init curr
curr
init rem_obs init curr
complete (E(a),cpt) curr inst cpt
cpt+1
cpt
init
curr
rem_obs init curr
curr
inst
cpt
Forget
Down
Update
Sub
Forget
Down
Update
Sub
D
Forget
E
Forget
Forget
C
Forget
A
End
Forget
B
WiniAf
INT
Abs
Fusion 113 []
NCList
WiniBe
Fusion 112 ~1
INT
NCList
StartSub
Fusion 141
Oper
Fusion 142 []
Success
[]
Start
[[]]
NCList
Present
Fusion 99
INT
0
WiniAf
Fusion 112 ~1
INT
Abs
Fusion 110 []
NCList
WiniBe
Fusion 104
StartSub
Fusion 108
NCList
Oper
Fusion 109
Success
Fusion 140
NCList
Start
Present
Fusion 99
INT
0
Present
Fusion 99 0
INT
Success
Fusion 113 []
NCList
Start
Fusion 141
[]
NCList
Wini
~1
Present
Fusion 99 0
INT
Success
Fusion 142
[]
Start
Fusion 140
[]
NCList
Wini
Fusion 112 ~1
INT
Success
Fusion 110 []
NCList
Wini
~1
INT
Start
Fusion 108
[]
NCList
Present
Fusion 99 0
INT
Wini
~1
INT
Start
Fusion 108
[]
NCList
Present
Fusion 99
INT
0
Success
Fusion 107 []
Present
Fusion 99
0
INT
Wini
Fusion 104
INT
~1
Start
Fusion 107
[]
NCList
Present
Fusion 99
0 INT
Success
Fusion 109
[]
Fusion 99
Fusion 107
Fusion 104
Fusion 99
Fusion 99
Fusion 108
Fusion 99
Fusion 108
Fusion 110
Fusion 112
Fusion 140
Fusion 142
Fusion 99
Fusion 113
Fusion 99
Fusion 112
inst
NCList
Fusion 107
curr
curr
complete (E(b),cpt) curr inst
complete (E(c),cpt) curr inst cpt
curr
NCList
inst
cpt
bck
Fusion 112
max bck init
INT
Fusion 104
~1
rem_obs init curr
curr [[]]
NCList
Fusion 109 [] Fusion 99 cpt
curr
curr2
Fusion 140 []
Fusion 108 startsub inst [] Fusion 110
[]
inst
inst
curr
Fusion 141
INT
max bck init
bck
~1
NCList
Fusion 142
curr
cpt Fusion 99
startsub inst Fusion 141 []
curr2 NCList
curr
Fusion 113 inst
1 1`(~1)
1 1`[]
1
1`(~1)
1
1`[]
1 1`[]
1
1`[]
1 1`[[]]
1 1`0
1 1`(~1)
1 1`[]
1
1`(~1)
1
1`[]
1 1`[]
1 1`[]
1
1`[[]]
1 1`0
1 1`0
1 1`[]
1 1`[]
1 1`(~1)
1 1`0
1 1`[]
1 1`[]
1 1`(~1)
1 1`[]
1 1`(~1)
1 1`[]
1 1`0
1 1`(~1)
1 1`[]
1 1`0
1 1`[]
1 1`0
1 1`(~1)
1 1`[]
1
1`0
1 1`[]
Figure 3.18 – Réseau correspondant à la chronique ( ((A B) − [C[) E ) − [D[
103Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Success(A)
Success(B)
WiniBe
WiniAf
Success(C)
Success(D)
Success(E)
[ ]
[ ]
−1
−1
[ ]
[ ]
[ ]
S(a),S(b)
−→
[ [E1
a
] ]
[ [E1
a
, E2
b
] ]
−1
−1
[ ]
[ ]
[ ]
S(d)
−→
[ ]
[ ]
3
3
[ ]
[ [E3
d
] ]
[ ]
S(e)
−→
[ ]
[ ]
3
3
[ ]
[ [E3
d
] ]
[ ]
S(a),S(b)
−→
[ [E5
a
] ]
[ [E5
a
, E6
b
] ]
3
3
[ ]
[ [E3
d
] ]
[ ]
S(c)
−→
[ ]
[ [E5
a
, E6
b
] ]
7
3
[ [E7
c
] ]
[ [E3
d
] ]
[ ]
S(e)
−→
[ ]
[ [E5
a
, E6
b
] ]
7
3
[ [E7
c
] ]
[ [E3
d
] ]
[ [E5
a
, E6
b
, E8
e
] ]
S(d)
−→
[ ]
[ ]
9
9
[ [E7
c
] ]
[ [E3
d
], [E9
d
] ]
[ [E5
a
, E6
b
, E8
e
] ]
Cas particulier d’une absence imbriquée dans une séquence Comme évoqué précédemment,
la partie droite de l’opérateur d’absence, qui combine séquentiellement les reconnaissances
de Start(ABS) avec les reconnaissances de l’absence qui sont dans Oper, est conçue pour traiter
les cas d’imbrication d’une absence dans une autre chronique, en particulier dans une séquence.
Considérons à titre d’exemple la chronique D ((A B)−[C[). Dans le modèle de [CCK11], les places
Success(D) et Start(A) sont simplement fusionnées, donc, dans le réseau de l’absence, circulent
des reconnaissances partielles de (D A B) en attente de complétion. Ceci pose problème du fait
du mécanisme de l’absence et des transitions Forget. En effet, pour savoir si une reconnaissance
doit être supprimée, l’instant de début de reconnaissance est comparé à la valeur de l’entier repère
Wini, et s’il lui est inférieur, elle doit être supprimée car un comportement interdit s’est produit
pendant la reconnaissance. Dans le cas d’une reconnaissance partielle de (D A B), l’instant de dé-
but correspondant à l’instant de reconnaissance de D, mais effectuer le test sur cet instant ne mène
pas au résultat recherché car D est en dehors de la portée de l’absence (ce ne serait pas le cas si la
chronique étudiée était (D A B) − [C[). Or, dans une reconnaissance partielle, il n’est pas trivial
de déterminer à quelles parties de la chronique étudiée correspondent les différents évènements mis
en jeu, et il n’est donc pas évident de délimiter les bornes de l’absence.
Pour résoudre ce problème, nous avons introduit la partie droite de l’opérateur d’absence qui
permet de conserver séparément les reconnaissances de D et les reconnaissances de (A B) − [C[
jusqu’à ce qu’elles soient complètes et puissent être combinées par la transition Sub. Le réseau
104CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
curr
D
Forget
Forget
C
Forget
B
Forget
A
End
Present
Fusion 123 0
Success
Fusion 150
Start
Wini
~1
Wini
Start
Fusion 128
NCList
Success
Fusion 127
NCList
Present
Fusion 123
Start
Fusion 124
NCList
Success
Fusion 125
NCList
Wini
Fusion 126
INT
Present
Fusion 123
Success
Fusion 124
NCList
Wini INT
Start
Fusion 128
NCList
Present
Fusion 123
Present
Fusion 123
INT
Fusion 123
complete (E(d),cpt) curr inst
NCList
Fusion 150 []
inst
cpt
curr
[[]]
NCList
curr
rem_obs init curr
init
INT
INT
Fusion 123 0 cpt+1
cpt
INT
Fusion 123 0
complete (E(a),cpt) curr inst cpt
Fusion 124
[]
inst
curr
curr
rem_obs init curr
Fusion 128
[]
init
~1
complete (E(b),cpt) curr inst
INT
Fusion 123 0
cpt
Fusion 125
[]
inst
Fusion 124
[]
curr
curr
init rem_obs init curr
Fusion 126 ~1
INT
0
Fusion 123
complete (E(c),cpt) curr inst cpt
Fusion 127 []
inst
curr
Fusion 128 []
rem_obs init curr init
INT
~1
max bck init
~1
bck
init
init chg_win init inst
init
inst2
concatabs inst curr inst2 cpt Forget
Down
Update
Sub
WiniAf
~1
INT
Abs
Fusion 127
NCList
WiniBe
Fusion 126
INT
StartSub
Fusion 128
NCList
[]
Oper
Fusion 125
Success
NCList
Start
NCList
Fusion 150
Present
Fusion 123
INT
0
Fusion 126
Fusion 125 []
NCList
Fusion 123 cpt
curr
curr
rem_obs init curr
inst
Fusion 150 []
curr2
[] Fusion 128 startsub inst Fusion 127 [] inst
[]
1
1`(~1)
1 1`[]
1 1`(~1)
1
1`[]
1 1`[]
1
1`[]
1 1`[]
1 1`0
1
1`0
1 1`[]
1 1`[[]]
1
1`(~1)
1
1`(~1)
1`[]
1
1
1`[]
1 1`0
1
1`[]
1 1`[]
1 1`(~1)
1 1`0
1
1`[]
1 1`(~1)
1 1`[]
1
1`0 1 1`0
Figure 3.19 – Réseau correspondant à la chronique D ((A B) − [C[)
105Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
reconnaissant la chronique D ((A B) − [C[) est présenté Figure 3.19 et l’exemple suivant illustre
l’évolution du marquage du réseau dans ce cas.
Exemple 14. Considérons la chronique D ((A B) − [C[) et le flux ϕ = ((d, 1),(a, 2),(c, 3),(a, 4),
(b, 5)) où a, b, c, d ∈ N.
On ne détaille pas ici toute la suite des transitions à tirer mais on note S(e) les transitions à
tirer pour notre chronique suite à l’évènement e.
Le marquage des places du réseau évolue comme suit.
Success(D), Start(ABS)
Success(B), Oper
Success(A)
Success(C)
Success(ABS)
WiniBe
[ ]
[ ]
[ ]
[ ]
[ ]
−1
S(d)
−→
[ [E1
d
] ]
[ ]
[ ]
[ ]
[ ]
−1
S(a)
−→
[ [E1
d
] ]
[ ]
[ [E2
a
] ]
[ ]
[ ]
−1
S(c)
−→
[ [E1
d
] ]
[ ]
[ ]
[ [E3
c
] ]
[ ]
3
S(a)
−→
[ [E1
d
] ]
[ ]
[ [E4
a
] ]
[ [E3
c
] ]
[ ]
3
S(b)
−→
[ [E1
d
] ]
[ [E4
a
, E5
b
] ]
[ [E4
a
] ]
[ [E3
c
] ]
[ [E1
d
, E4
a
, E5
b
] ]
3
3.3.6 Définition formelle de la stratégie de tirage
Dans les réseaux de Petri modélisant le processus de reconnaissance de chroniques que nous
venons de définir, toutes les transitions sont systématiquement tirables. Comme évoqué dans la
Remarque 16 (Section 3.1.2), nous souhaitons obtenir un marquage précis pour un réseau à l’issue
du traitement d’un évènement du flux. C’est dans ce marquage que l’on peut lire l’ensemble des
reconnaissances de la chronique. Dans nos réseaux, toutes les transitions sont toujours tirables
mais toute séquence de tirages ne mène pas toujours au marquage recherché. Nous allons donc
définir formellement une stratégie de tirage des transitions, associée à chaque réseau, et donnant,
pour chaque évènement du flux, la suite des transitions à tirer pour obtenir le marquage recherché
à l’issue du traitement de chaque évènement. Notons que cette stratégie n’est pas unique et qu’elle
ne permet pas de tirer parti de la concurrence des réseaux de Petri que nous évoquerons dans le
chapitre suivant.
Définissons donc formellement la stratégie de tirage dont un aperçu a été donné dans la description
précédente du fonctionnement des réseaux. Pour ce faire, nous devons tout d’abord définir
une fonction auxiliaire F orgetC qui correspond à la liste des transitions Forget de N(C), convenablement
ordonnée, que l’on tirera lors d’une absence.
Définition 27 (stratégie de tirage des transitions Forget). On définit par induction sur la
chronique C la fonction auxiliaire F orgetC :
— Si C = A ∈ N, alors F orgetC = [Forget]
106CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
— Si C = C1 C2, alors F orgetC = F orgetC2
:: F orgetC1
— Si C = C1 | | C2, alors F orgetC = F orgetC2
:: F orgetC1
— Si C = C1&C2, alors F orgetC = [ForgetAnd] :: F orgetC2
:: F orgetC1
— Si C = (C1) − [C2], alors F orgetC = F orgetC2
:: [Down] :: F orgetC1
À l’aide de cette stratégie de tirage des transitions Forget, on peut maintenant définir la
stratégie de tirage générale pour tous nos réseaux.
Définition 28 (stratégie de tirage). On définit par induction sur la chronique C la stratégie
de tirage SC où, pour tout évènement e ∈ N, SC (e) correspond à la suite des transitions à tirer
dans le réseau N(C) pour traiter l’occurrence d’un évènement e.
Pour ce faire, nous définissons une fonction auxiliaire S
0
C qui donne toutes les transitions à
tirer, exceptée la transition End. Celle-ci doit être tirée à la fin et une seule fois par évènement.
Elle ne peut donc être intégrée à l’induction et il faut l’ajouter a posteriori.
Pour tout e ∈ N :
— Si C = A ∈ N, alors S
0
C (e) =
[A] si e = A
[ ] sinon
— Si C = C1 C2, alors S
0
C (e) = S
0
C1
(e) :: S
0
C2
(e)
— Si C = C1 | | C2, alors S
0
C (e) = S
0
C1
(e) :: S
0
C2
(e)
7
— Si C = C1&C2, alors S
0
C (e) = [Sub] :: S
0
C1
(e) :: S
0
C2
(e) :: [AND]
— Si C = (C1) − [C2], alors S
0
C (e) = S
0
C2
(e) :: [Update, Down, Sub] :: F orgetC1
:: S
0
C1
(e) :: [Sub]
Pour incrémenter finalement le compteur d’évènements, on pose maintenant, pour tout e ∈ N,
SC (e) = S
0
C (e) :: [End].
3.4 Démonstration de la correction du modèle « à un seul
jeton »
Dans le Chapitre 2, nous avons défini, pour chaque chronique C, une fonction qui à un flux
d’évènements ϕ et instant d associe l’ensemble RC (ϕ, d) des reconnaissances de la chronique dans
ce flux (reconnaissance dans le diagramme ci-dessous). Dans les sections précédentes, nous avons
modélisé la reconnaissance de chroniques en construisant formellement, pour chaque chronique C,
un réseau de Petri N(C) lui correspondant (traduction). En fonction du flux d’évènements ϕ, le
marquage (Md) de ce réseau évolue (marquage), et il est alors possible de lire dans celui-ci les
reconnaissances de la chronique C dans le flux ϕ (interprétation). Ce système est représenté par
le diagramme suivant :
C
reconnaissance /
traduction
ϕ 7→ RC (ϕ, d)
N(C) marquage
/ϕ 7→ (Md)
interpretation ´
OO
7. Contrairement au cas de la séquence, l’ordre entre C1 et C2 est ici sans importance.
107Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
L’objectif est de démontrer que ce diagramme commute, c’est-à-dire que les reconnaissances
obtenues par les réseaux de Petri correspondent effectivement exactement aux reconnaissances
théoriques RC (ϕ, d).
On se propose de montrer ce résultat d’adéquation dans le cas restreint de l’ensemble des
chroniques composées d’au plus une absence au plus haut niveau.
Nous allons commencer par rappeler la sémantique ensembliste avec laquelle nous souhaitons
montrer l’adéquation des réseaux. Nous devons adapter la sémantique de la Définition 16 (p.55) car
la sémantique opérationnelle fournie par les réseaux est plus limitée sur les trois aspects suivants :
(i) le processus de reconnaissance modélisé par nos chroniques s’applique à un langage restreint
réduit aux opérateurs de séquence, disjonction, conjonction et absence, sans possibilité d’exprimer
de contrainte sur des attributs d’évènements ;
(ii) dans le modèle en réseaux de Petri colorés, il n’y a pas de notion de temps continu comme
les évènements sont ordonnés par le compteur d’évènement qui est discret ;
(iii) dans les deux formalismes, les reconnaissances ne sont pas modélisées de la même manière :
— dans la sémantique ensembliste arborescente du Chapitre 2, une reconnaissance est repré-
sentée par un arbre,
— dans le modèle en réseaux de Petri colorés, une reconnaissance est une liste d’évènements.
Nous allons donc adapter la sémantique du Chapitre 2 à ses trois points de la manière suivante :
(i) nous restreignons le contenu des ensembles de reconnaissances aux reconnaissances ellesmêmes,
il n’est plus nécessaire de définir l’ensemble d’attributs Xr associé à une reconnaissance
r, et nous nous limitons aux opérateurs modélisés ;
(ii) nous nous plaçons dans le modèle de temps discret des entiers N ;
(iii) nous adoptons une modélisation de reconnaissances sous la forme de multi-ensembles qui sont
directement en correspondance avec les listes des réseaux.
Nous obtenons ainsi la sémantique suivante :
Définition 29 (ensembles de reconnaissances des chroniques modélisés en réseaux de
Petri). Soit C ∈ X une chronique. L’ensemble des reconnaissances de C sur le flux d’évènements
ϕ jusqu’à la date d est noté RC (ϕ, d) et est défini par induction comme suit, où d ∈ N, A ∈ N et
C1, C2 ∈ X :
— RA(ϕ, d) = {{(e, t)} : e = A ∧ ∃i ϕ(i) = (e, t) ∧ t ≤ d}
— RC1||C2
(ϕ, d) = RC1
(ϕ, d) ∪ RC2
(ϕ, d)
— RC1 C2
(ϕ, d) = {r1 ] r2 : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC2
(ϕ, d) ∧ Tmax(r1) < Tmin(r2)}
— RC1&C2
(ϕ, d) = {r1 ] r2 : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC2
(ϕ, d)}
— R(C1)−[C2[(ϕ, d) = {r1 : r1 ∈ RC1
(ϕ, d)
∧ ∀r2 ∈ RC2
(ϕ, d) ( Tmin(r1) > Tmin(r2) ∨ Tmax(r1) ≤ Tmax(r2) )}
Nous allons d’abord montrer un petit lemme reformulant l’expression de l’ensemble des reconnaissances
de la séquence, ce qui permet de simplifier les démonstrations qui suivent.
108CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
Lemme 1. Soit C1 et C2 deux chroniques. Soit i ∈ R et ϕ un flux d’évènements. Alors :
RC1 C2
(ϕ, i) = {r1 ] r2 : 0 < d < j ∧ r1 ∈ RC1
(ϕ, j) ∧ Tmin(r2) = j ∧ r2 ∈ RC2
(ϕ, i)}
Démonstration. Par définition :
RC1 C2
(ϕ, i) = {r1 ] r2 : r1 ∈ RC1
(ϕ, i) ∧ r2 ∈ RC2
(ϕ, i) ∧ Tmax(r1) < Tmin(r2)}.
On pose j = Tmin(r2) + 1.
Le résultat découle de l’équivalence :
(r1 ∈ RC1
(ϕ, i) ∧ Tmax(r1) < Tmin(r2)) ⇔ (0 < j < i ∧ r1 ∈ RC1
(ϕ, j − 1) ∧ Tmin(r2) = j)
Pour démontrer le résultat d’adéquation nous aurons besoin de nous référer à la notion intuitive
de sous-chronique que nous formalisons ci-dessous.
Définition 30 (ensemble des sous-chroniques d’une chronique). L’ensemble des souschroniques
d’une chronique C est le plus petit ensemble E tel que :
— C ∈ E.
— si (C1 C2) ∈ E, alors C1 ∈ E et C2 ∈ E.
— si (C1 | | C2) ∈ E, alors C1 ∈ E et C2 ∈ E.
— si (C1&C2) ∈ E, alors C1 ∈ E et C2 ∈ E.
— si ((C1) − [C2]) ∈ E, alors C1 ∈ E et C2 ∈ E.
Nous introduisons maintenant une notation qui nous permettra de nous référer formellement
au marquage de nos réseaux.
Définition 31 (notation de marquage). Soit C1 une chronique et soit C2 une sous-chronique
de C1. Soit ϕ = (ui)i∈I un flux d’évènements. Pour tout i ∈ I, on définit M
p(C2)
i
(C1) comme le
marquage, dans le réseau N(C1), de la place p(C2) avant le tirage des transitions correspondant
au i
e
évènement.
Lorsque C1 = C2, on notera M
p
i
(C1) pour M
p(C1)
i
(C1).
Remarque 19. M
p(C2)
i
(C1) ne correspond pas forcément à M
p(C2)
i
(C2). En effet, dans M
p(C2)
i
(C1),
on considère une place dénotée p(C2) du sous-réseau associé à C2 dans le réseau N(C1), il peut
donc y avoir des transitions dans N(C1) non relatives à C2 qui modifient le contenu des places de
C2.
C’est typiquement le cas des places Start dans le cadre d’une séquence dès le marquage initial
(c’est-à-dire pour i = 1) : on a M
Start(C2)
1
(C1 C2) = 1‘[ ] alors que M
Start(C2)
1
(C2) = 1‘[ [ ] ].
Commençons par montrer le lemme suivant qui nous permettra ensuite de déduire le théorème
d’adéquation recherché.
Lemme 2. Soit C une chronique sans absence.
Soit k ∈ N. Soit ϕ = (ui)i∈J1,kK un flux d’évènements.
On suppose que les marquages successifs des places Start(C) et Wini(C) sont respectivement
MStart
i
(C) et MWini
i
(C) pour i ∈ J1, k + 1K.
109Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Alors les marquages de la place Success(C) sont, pour tout i ∈ J1, k + 1K :
MSuccess
i
(C) = [
0 MWini
h
(A)).
On a donc bien le résultat, pour tout i ∈ J1, k + 1K.
110CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
Cas 2 : C = C1 | | C2
Soit i ∈ J1, k + 1J.
Par construction des réseaux, on prend MStart
i
(C) = MStart
i
(C1) = MStart
i
(C2),
donc MSuccess
i
(C) = MSuccess
i
(C1) ∪ MSuccess
i
(C2).
De plus, MWini
i
(C) = max{MWini
i
(C1), MWini
i
(C2)}.
On peut alors appliquer l’hypothèse de récurrence à C1 et C2, ce qui nous donne :
MSuccess
i
(C) = S
0 j2 (car j1 et j2 sont consécutifs),
donc ∀l ∈ Jj1, j0
2
J MWini
l
(C1) < j1 ;
— si j1 = Tmax(r
0
1
) et j2 6= Tmin(r
0
2
), comme j1 et j2 sont consécutifs, Tmin(r
0
2
) < j1,
donc ∀l ∈ JTmin(r
0
2
), j2J MWini
l
(C1) < j1 et Jj1, j2J⊆ JTmin(r
0
2
), j2J.
De plus, de même que dans le Cas 1, la fonction rem_obs assure que, dès que la transition
Forget est tirée, ∀r ∈ MStart
h
(A) (r = ∅ ∨ max r > MWini
h
(A)).
On a donc le résultat en posant r
0 = r
0
1 ] r
0
2
.
Nous allons maintenant étendre ce lemme aux chroniques ayant au plus une absence au plus
haut niveau, à l’aide du concept suivant :
Définition 32 (partie positive d’une chronique). On définit par induction sur la chronique
C l’ensemble Pos(C) :
- Si C = A ∈ N ou C = C1 C2 ou C = C1||C2 ou C = C1&C2, alors Pos(C) = C.
- Si C = (C1) − [C2[, alors Pos(C) = C1.
Pour toute chronique sans absence, Pos(C) = C, donc on peut transcrire le Lemme 2 en se
plaçant dans les mêmes conditions comme suit :
MSuccess
i
(C) = S
0 Tmin(r2) ∨ Tmax(r1) ≤ Tmax(r2)) (3.6)
(⇒) Par l’absurde, on suppose que ∃r2∈RC2
(ϕ, i) (Tmin(r1)≤Tmin(r2)∧Tmax(r1)>Tmax(r2)),
alors, comme Tmin(r1) ≤ Tmin(r2) ≤ Tmax(r2) < Tmax(r1),
on peut trouver j1 et j2 consécutifs dans r1 et tels que Tmax(r2) ∈ Jj1, j2J,
donc, si on applique (3.5), MWini
Tmax(r2)+1(C1) < j1,
donc Tmax(r2) < j1, absurde.
(⇐) Par contraposée, on suppose que ∃j1 ∃j2 (Jj1, j2K∩r1 = {j1, j2}∧∃l∈Jj1, j2J MWini
l+1 (C1)≥j1,
or MWini
l+1 (C1) ≥ j1 ⇐⇒ ∃r2 ∈ RC2
(ϕ, l) Tmin(r2) ≥ j1,
donc ∃r2 ∈ RC2
(ϕ, i) (Tmin(r2) ≥ j1 ≥ Tmin(r1) ∧ Tmax(r2) < j2 ≤ Tmax(r1))
On a donc bien montré que (3.5) ⇐⇒ (3.6),
donc MSuccess
i+1 (C) = RC (ϕ, i).
Nous avons donc bien montré l’adéquation entre la sémantique dénotationnelle du Chapitre 2
et la sémantique opérationnelle en réseaux de Petri colorés pour les constructions faisant intervenir
au plus une absence au plus haut niveau.
114CHAPITRE 3. UN MODÈLE DE RECONNAISSANCE EN RÉSEAUX DE PETRI COLORÉS
DIT « À UN SEUL JETON »
3.5 Étude de la taille des réseaux
Nous allons achever ce chapitre par une étude de la taille des réseaux que nous avons construits.
Pour ce faire, il nous faut d’abord introduire la notion de complexité d’une chronique et celle de
la taille d’un réseau comme suit :
Définition 33 (mesure de complexité d’une chronique). La mesure de complexité d’une
chronique est un entier défini par induction :
— C = A ∈ N est de mesure de complexité 1.
— C = C1 C2, C = C1 | | C2, C = C1&C2, et C = (C1) − [C2[ sont de mesure de complexité
n1 + n2 où n1 et n2 sont respectivement les mesures de complexité de C1 et C2.
Définition 34 (taille d’un réseau). On définit la taille d’un réseau de Petri par un triplet (p, t, a)
dont les éléments correspondent respectivement au nombre de places, nombre de transitions, et
nombre d’arcs du réseau.
Soit C une chronique. On notera par le triplet (p(C), t(C), a(C)) la taille du réseau N(C)
associé.
Propriété 7. La taille des réseaux associés aux chroniques s’exprime comme suit par induction :
— Si C = A ∈ N, alors (p(A), t(A), a(A)) = (4, 3, 9).
— Si C = C1 C2, alors
(p(C), t(C), a(C)) = (p(C1) + p(C2) − 3, t(C1) + t(C2) − 1, a(C1) + a(C2) − 2).
— Si C = C1 || C2, alors
(p(C), t(C), a(C)) = (p(C1) + p(C2) − 5, t(C1) + t(C2) − 1, a(C1) + a(C2) − 2).
— Si C = C1&C2, alors
(p(C), t(C), a(C)) = (p(C1) + p(C2) − 4 + 2, t(C1) + t(C2) − 1 + 3, a(C1) + a(C2) − 2 + 15)
= (p(C1) + p(C2) − 2, t(C1) + t(C2) + 2, a(C1) + a(C2) + 13).
— Si C = (C1) − [C2[, alors
(p(C), t(C), a(C)) = (p(C1) + p(C2) − 2 + 3, t(C1) + t(C2) − 1 + 4, a(C1) + a(C2) − 2 + 17)
= (p(C1) + p(C2) + 1, t(C1) + t(C2) + 3, a(C1) + a(C2) + 15).
La taille des réseaux est donc linéaire en fonction de la complexité de la chronique.
Formellement, pour toute C ∈ X, (p(C), t(C), a(C)) = (θ(n), θ(n), θ(n)) où n est la mesure de
complexité de la chronique C.
3.6 Conclusion
Dans ce chapitre, nous avons développé un modèle de reconnaissance de chroniques en réseaux
de Petri colorés, dit « à un seul jeton » car les ensembles de reconnaissances sont représentés par un
unique jeton contenant la liste des reconnaissances. Pour chaque chronique, nous avons construit
un réseau associé par induction en composant les réseaux correspondant aux sous-chroniques. Le
marquage de ce réseau évolue en fonction du flux d’évènements à analyser et, après le traitement de
chaque évènement, on peut lire l’ensemble des reconnaissances de la chronique dans l’une des places
du réseau. Un tel modèle avait déjà été présenté dans [CCK11], mais la construction des réseaux
115Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
n’y était pas complètement formalisée et des problèmes subsistaient pour certaines compositions
des réseaux de conjonction et d’absence.
Nous avons donc complété la formalisation de la construction de ces réseaux, et nous les avons
fait évoluer de façon à ce que toutes les compositions de réseaux produisent les bonnes reconnaissances.
Pour ce faire, nous avons introduit la notion de structure générale du réseau, qui fournit les
places principales que nous fusionnons lors du processus de construction, et nous avons enrichi les
opérateurs de conjonction et d’absence afin de pouvoir traiter tous les cas de composition possibles.
Nous avons également formalisé le fonctionnement de nos réseaux. En effet, dans ce modèle,
l’ensemble des transitions des réseaux sont en permanence tirables mais toute séquence de transitions
ne mène pas au résultat voulu, à savoir l’ensemble correct des reconnaissances de la chronique
étudiée. Nous avons donc défini par induction une stratégie de tirage que nous avons illustrée, et
qui définit les suites de transitions à tirer en fonction de l’évènement du flux à traiter.
Pour finir, nous avons démontré la correction de nos réseaux, lorsque la stratégie de tirage est
suivie, pour les constructions faisant intervenir au plus une absence au plus haut niveau, c’est-à-
dire que nous avons montré que les reconnaissances fournies par nos réseaux correspondent bien à
la sémantique dénotationnelle que nous avons posée dans le Chapitre 2.
Nous disposons donc maintenant d’un modèle de reconnaissance de chroniques en réseaux de
Petri colorés entièrement formalisé mais non autonome dans le sens où il faut manuellement tirer
les transitions pour suivre la stratégie de tirage définie et obtenir les ensembles de reconnaissances
corrects. Dans le Chapitre 4, nous allons faire évoluer ce modèle afin d’y intégrer la stratégie
de tirage et la gestion du flux d’évènements, et obtenir ainsi un modèle qui peut fonctionner en
autonomie et sur lequel nous pouvons utiliser des outils d’analyse de réseaux de Petri afin de mettre
en avant certaines caractéristiques.
116Chapitre 4
Un modèle de reconnaissance
contrôlé en réseaux de Petri colorés
Sommaire
5.1 Développement d’une bibliothèque C++ implémentant la reconnaissance
de chroniques : Chronicle Recognition Library (CRL) . . 166
5.2 Surveillance de cohérence au sein d’un UAS en cas de pannes . . . 171
5.2.1 Description de l’architecture du système d’avion sans pilote étudié . . . 172
5.2.2 Modélisation du problème . . . . . . . . . . . . . . . . . . . . . . . . . . 173
5.2.3 Objectifs de la reconnaissance de comportements dans ce cas d’étude . . 180
5.2.4 Écriture et formalisation des situations incohérentes à détecter . . . . . 181
5.2.5 Utilisation de CRL pour reconnaître les situations incohérentes . . . . . 182
5.3 Surveillance du bon respect de procédures de sécurité à suivre par
un drone . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
5.3.1 Cadre du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185
5.3.2 Mise en place du système de surveillance : écriture des chroniques critiques
à reconnaître . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 187
5.3.3 Application à des scénarios de simulation avec CRL . . . . . . . . . . . . 189
5.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191
Dans le Chapitre 3, nous avons construit formellement des réseaux de Petri colorés modélisant
le processus de reconnaissance de chroniques. Un réseau est associé à chaque chronique et une
stratégie de tirage formelle est définie. Elle indique la suite adaptée des transitions à tirer pour
obtenir le marquage dans lequel l’ensemble des reconnaissances de la chronique peut être lu. Une
telle stratégie de tirage est nécessaire car l’ensemble des transitions de nos réseaux est toujours
tirable mais toute séquence de transitions ne mène pas au résultat voulu. L’objectif de ce chapitre
est de faire évoluer notre modèle de reconnaissance pour intégrer dans nos réseaux un système
de contrôle sur le tirage des transitions et les rendre ainsi autonomes. Celui-ci doit permettre
117Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
de s’affranchir de la stratégie de tirage, et ce en gérant directement le flux d’évènements et en
n’activant que certaines transitions au fur et à mesure.
Pour l’élaboration de ces évolutions, nous nous fixons trois contraintes importantes :
— conserver un système de réseaux modulaire pour pouvoir maintenir une construction inductive
du modèle calquée sur la structure du langage ;
— pour remplir notre objectif, garantir la « confluence » vers un unique marquage à l’issue du
traitement autonome de chaque évènement du flux et donc assurer l’obtention de l’ensemble
de reconnaissance correct à chaque étape ;
— en même temps, préserver un maximum de concurrence dans le tirage des transitions associées
à chaque évènement.
En d’autres termes, nous établissons une méthode pour obtenir un marquage unique qui corresponde
à chaque évènement traité, tout en maintenant un maximum de concurrence quant à la
séquence des transitions à tirer pour arriver à ce marquage.
Pour obtenir un tel modèle « auto-contrôlé », nous nous y prenons en deux temps :
1. Dans le modèle du Chapitre 3, les ensembles de reconnaissances sont représentés par un
unique jeton contenant la liste des reconnaissances. Dans un premier temps, nous éclatons
cette liste pour obtenir un jeton par reconnaissance, ce qui permet d’introduire des premiers
mécanismes de contrôle avec des gardes sur certaines transitions. Nous appelons donc ce
second modèle « modèle multi-jetons »
2. Nous ajoutons ensuite, dans un second temps, une structure de gestion du flux d’évènements
qui permet d’achever l’auto-contrôle des réseaux. Nous appelons donc ce dernier modèle
« modèle contrôlé ».
Dans la Section 4.1, nous commençons donc par construire formellement le modèle dit « multijetons
» puis nous analysons le degré de contrôle acquis pas l’éclatement des jetons de listes de
reconnaissances en plusieurs jetons. Ensuite, dans la Section 4.2, nous construisons formellement
l’évolution suivante de notre modèle, à savoir le modèle « contrôlé » qui représente la réalisation
des objectifs que nous nous sommes fixés (modularité, confluence, concurrence) et nous achevons
ce chapitre en les illustrant avec l’analyse des graphes d’espace d’états.
4.1 Construction et fonctionnement des réseaux dits « multijetons
»
Reprenons donc les réseaux de Petri présentés dans le Chapitre 3. Ceux-ci fonctionnent avec
un unique jeton par place, les multiples reconnaissances étant stockées dans une liste. Dans l’objectif
d’implémenter une première forme de contrôle du tirage des transitions, nous construisons,
à partir de ces anciens réseaux, des réseaux « multi-jetons » où chaque jeton correspond à une
reconnaissance. Cela revient donc à « éclater » le jeton de notre modèle précédent, qui contient
une liste de reconnaissances, en autant de jetons représentant chacun une unique reconnaissance.
Ceci permet de tirer meilleur parti des fonctionnalités des réseaux de Petri colorés en introduisant
ensuite des gardes sur les transitions pour que celles-ci n’aient d’effet que sur certains jetons.
118CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
Dans cette section, nous reprenons la construction des réseaux présentés dans le Chapitre 3
en l’adaptant au changement de représentation des reconnaissances. Nous commençons par poser
les nouveaux types et expressions nécessaires (Section 4.1.1). Nous décrivons la nouvelle structure
globale de nos réseaux (Section 4.1.2), puis nous définissons les nouvelles briques de base (Section
4.1.3) nécessaires pour ensuite construire formellement notre nouveau modèle (Section 4.1.4).
Nous évaluons ensuite le degré de contrôle atteint sur le tirage des transitions et donnons une
stratégie de tirage adaptée (Section 4.1.5).
4.1.1 Types et expressions utilisés dans les réseaux multi-jetons
Posons maintenant les nouveaux types et fonctions que nous utilisons dans nos réseaux de Petri
« multi-jetons ».
Nous reprenons les types de base définis en 3.1.1 mais en remplaçant le type NCList qui correspondait
à une liste de reconnaissances par le type IndChronInst qui désigne une unique reconnaissance.
Nous ajoutons également le type MkdChronInst qui est le type IndChronInst marqué
d’informations supplémentaires nécessaires dans le cas de la conjonction.
On pose B = {INT, Event, IndChronInst, MkdChronInst}, toujours avec NEvent = Event×INT.
IndChronInst est une instance de chronique, il s’agit d’un couple (l, n) où l est une liste
de NEvent et n est un entier que nous appelons indice de la reconnaissance et qui stocke une
information de marquage permettant entre autres de ne faire subir qu’une seule opération à chaque
jeton.
MkdChronInst est une instance de chronique couplée d’une liste de couples de listes d’entiers,
que l’on appellera marquage de l’instance. Un entier permet d’identifier un unique évènement,
donc une liste d’entiers identifie une reconnaissance. Le marquage de l’instance est donc une liste
de couples de reconnaissances. Il permet de conserver en mémoire les couples de reconnaissances
avec lesquels une certaine opération a déjà été effectuée. Ce marquage spécifique d’instances de
chroniques est utilisé pour un besoin particulier de la conjonction où il est nécessaire de conserver
un historique des opérations ayant été effectuées.
Un certain nombre de fonctions sont également utilisées :
F = {+, max, checked, mark, markABS, complete, merge, mergeABS, chg_win, test_older,
test_olderMkd, compatible, compatibleABS, usable, equalt}
Ces fonctions sont décrites dans le Tableau 4.1.
4.1.2 Structure globale des réseaux multi-jetons
Comme évoqué précédemment, nous souhaitons conserver le système de construction modulaire
de nos réseaux. Pour pouvoir être combinés entre eux, ceux-ci ont donc toujours une structure
commune, présentée Figure 4.2, qui reste très proche de celle de notre modèle précédent (Figure
3.4). Lors de l’étape de construction des réseaux, nous définissons donc toujours les fonctions
Present(C), Start(C), Success(C), WiniIn(C), et WiniOut(C).
Dans notre nouvelle structure, le type des places est modifié pour s’adapter à la nouvelle
représentation des reconnaissances. Les places Start et Success sont de type IndChronInst et
119Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Tableau 4.1 – Description des fonctions utilisées dans nos réseaux
Fonction Type (image de la fonction σ : F → B) Description
+ INT × INT → INT Addition usuelle.
max INT × INT → INT Donne l’entier maximum entre deux entiers.
checked IndChronInst × INT → IndChronInst Met à jour l’indice de la reconnaissance
avec l’entier en argument.
mark MkdChronInst × IndChronInst
×IndChronInst → MkdChronInst
Met à jour le marquage de l’instance
marquée en y ajoutant le couple des indices
des deux reconnaissances.
markABS MkdChronInst × IndChronInst
→ MkdChronInst
Met à jour le marquage de l’instance
marquée en y ajoutant les indices de la
reconnaissance.
complete Event × INT × IndChronInst →
IndChronInst
Complète l’instance de reconnaissance
partielle avec l’évènement indicé de
l’entier.
merge MkdChronInst × IndChronInst
×IndChronInst → IndChronInst
Récupère la première instance de reconnaissance
et lui ajoute la seconde instance.
mergeABS MkdChronInst × IndChronInst
→ IndChronInst
Récupère la première instance de reconnaissance
et lui ajoute la combinaison
des deux dernières instances.
chg_win INT × IndChronInst → INT Met à jour l’entier avec l’indice de la
reconnaissance si celui-ci est plus grand.
test_older INT × IndChronInst → Bool Vérifie si l’entier est supérieur ou égal à
l’indice de début de la reconnaissance.
test_olderMkd INT × MkdChronInst → Bool Vérifie si l’entier est supérieur ou égal à
l’indice de début de la reconnaissance.
compatible MkdChronInst × IndChronInst
×IndChronInst → Bool
Vérifie, sur le marquage de la reconnaissance
marquée, si la combinaison avec
les deux autres reconnaissances n’a pas
encore été faite.
compatibleABS MkdChronInst×IndChronInst → Bool Vérifie, sur le marquage de la reconnaissance
marquée, si la combinaison avec
l’autre reconnaissance n’a pas encore
été faite.
usable IndChronInst × INT → Bool Vérifie si l’indice de la reconnaissance
est strictement inférieur à l’entier.
equalt IndChronInst × INT → Bool Vérifie si l’indice de la reconnaissance
est égal à l’entier.
120CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
cpt+1
cpt
curr
Step
Forget
[test_older init curr]
A [usable curr cpt]
Present
1_num
Wini
~1
Success
Present
1_num
Start
complete (E(a)) cpt curr
cpt
0
INT
IndChronInst
curr
checked curr cpt
([],0)
INT
init
0 1_num
INT
IndChronInst
1 1`0
1
1`(~1)
1 1`0
1
1`([],0)
Figure 4.2 – Structure des réseaux multi-jetons
contiennent un jeton par reconnaissance.
Le compteur d’évènements est également légèrement modifié, comme on le verra dans la Section
4.1.3.
Le sens de lecture des réseaux est modifié : ceux-ci doivent maintenant être lus de haut en bas
et non plus de gauche à droite.
Comme dans le modèle du Chapitre 3, les jetons des reconnaissances circulent dans le réseau
pour être complétés au fur et à mesure. En revanche, comme il y a maintenant un jeton par
reconnaissance, il faut tirer les transitions complétant les reconnaissances autant de fois qu’il y a
de jetons à compléter.
Remarque 20 (marquage initial des places Start). Nous évoquions dans la Remarque 18 (p.84)
les différents marquages initiaux des places Start contrôlant l’activation ou non des réseaux. Le
marquage [ [ ] ] activait un réseau en offrant une liste vide [ ] à compléter alors que le marquage
[ ] bloquait provisoirement le réseau.
Les places contiennent maintenant un jeton par reconnaissance donc les marquages initiaux
possibles deviennent les suivants :
— ([ ], n), avec l’indice de reconnaissance n ∈ N, ce qui correspond à une reconnaissance
partielle vide en attente de complétion et qui active donc le réseau qui suit 1
;
— le marquage vide (i.e. aucun jeton dans la place) qui indique qu’il n’y a aucune reconnaissance
à compléter pour le moment et qui bloque donc le réseau qui suit.
4.1.3 Briques de base
Avant de pouvoir effectuer la nouvelle construction par induction, nous reprenons les briques
de base définies dans la Section 3.2.3 pour les adapter à notre nouvelle représentation des recon-
1. Attention, dans le modèle précédent, [ ] désignait une liste vide de reconnaissances donc l’absence de reconnaissances
à compléter. Dans le modèle présenté dans cette section, chaque jeton représente une reconnaissance,
donc [ ] représente l’existence d’une reconnaissance vide dans l’attente d’être complétée.
121Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
naissances.
Compteur Ce sous-réseau noté CPT fait toujours office de compteur d’évènements. Il est composé
d’une place Present dans laquelle est stockée la valeur du compteur, et d’une transition Step qui
incrémente le compteur à chaque fois qu’elle est tirée. Il s’agit de tirer la transition Step avant
de traiter un évènement et non après, contrairement au fonctionnement des anciens réseaux. Ceci
permet de faciliter la manipulation des indices. À tout évènement est associée une valeur du
compteur ce qui permet de distinguer, dans une reconnaissance, deux évènements de même nom
étant survenus à des instants différents.
cpt+1
cpt
Step Present
0
INT
Figure 4.3 – Compteur
Opérateur OR Contrairement à la première modélisation et comme on le détaillera dans la
Section 4.1.4, un opérateur de disjonction est nécessaire : il faut dupliquer à l’aide de la transition
startOR les jetons de la place Start (qui correspondent aux reconnaissances partielles à être
complétées par la disjonction) de façon à ce qu’ils puissent être utilisés pareillement par les réseaux
correspondants à chacune des deux chroniques de la disjonction. On notera cet opérateur OPOR.
Start
StartL startOR
curr
IndChronInst
([],0)
StartR
IndChronInst IndChronInst
curr curr
Figure 4.4 – Opérateur OR
La place Start de cette brique joue un rôle central en déclenchant la possibilité de reconnaître
chacun des membres de la disjonction. Pour pouvoir s’y référer plus clairement par la suite, on la
nomme Start(OR).
Opérateur AND De même que dans notre précédente construction, ce sous-réseau noté OPAND sert
à calculer la reconnaissance de la conjonction de deux chroniques C1 et C2. Il s’agit donc de réaliser
toutes les combinaisons possibles d’une reconnaissance de C1 avec une reconnaissance de C2 et de
les utiliser pour compléter une reconnaissance partielle éventuellement vide selon la nature de la
chronique globale considérée. Réaliser ces combinaisons est un problème complexe, et le passage à
un modèle multi-jeton ne permet plus d’intégrer cette complexité dans les fonctions en ML.
En effet, le problème est le suivant : on dispose de deux places contenant chacune respectivement
les reconnaissances de C1 et celles de C2 (rappelons qu’à chaque reconnaissance correspond un
unique jeton), ainsi que d’une place contenant les reconnaissances partielles à compléter par la
122CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
conjonction (ces reconnaissances partielles peuvent être vides selon la chronique globale considérée).
Pour plusieurs raisons, il n’est pas correct de combiner aveuglément les éléments des deux places
contenant les reconnaissances de C1 et de C2.
Une difficulté réside dans le fait que les combinaisons créées sont ensuite utilisées pour compléter
les reconnaissances partielles (éventuellement vides). Il est donc nécessaire d’intégrer une structure
assurant que toutes les possibilités de complétion sont réalisées (a priori chaque reconnaissance
de C1, par exemple, participe à plusieurs reconnaissances globales de la chronique considérée).
Rappelons que, lorsqu’un jeton est utilisé par une transition, il est ôté de la place, à moins qu’un
arc en sortie de la transition ne l’y remette. Si l’on consomme les jetons de reconnaissance de C1
et de C2 au fur et à mesure que l’on fait des combinaisons, il faut au préalable les avoir dupliqués
un nombre exactement suffisant de fois pour pouvoir effectuer toutes les combinaisons possibles,
et il faut ensuite s’assurer que toutes ces combinaisons sont effectivement réalisées (i.e. que les
jetons dupliqués ne sont pas utilisés pour engendrer plusieurs fois une même combinaison). Ce
problème est complexe entre autres car il n’est pas trivialement possible de savoir à combien de
reconnaissances chaque jeton va participer, et donc combien de fois il faut le dupliquer.
Si, au contraire, on choisit de remettre dans leur place les jetons utilisés, ceci permet de s’affranchir
du problème d’avoir suffisamment de jetons par rapport au nombre de combinaisons possibles
à réaliser. La situation reste cependant complexe :
— il faut s’assurer de ne pas produire plusieurs fois une même reconnaissance avec les mêmes
jetons ;
— il faut également veiller à ce que l’ensemble des combinaisons possibles soient intégralement
parcouru ;
— si la conjonction est le second membre d’une séquence (et donc que les reconnaissances
partielles à compléter ne sont pas vides), il faut combiner chaque couple de reconnaissances
de C1 et de C2 avec les bonnes reconnaissances du premier membre de la séquence (celles
qui les précèdent).
Pour remplir l’ensemble de ces conditions, il est donc nécessaire de conserver deux informations :
quelles reconnaissances ont été complétées (dans le cadre d’une séquence), et quelles combinaisons
de reconnaissances de C1 et de C2 ont été créées.
Notre réseau fonctionne donc comme suit. Les places Operand1 et Operand2 contiennent respectivement
les reconnaissances de C1 et de C2, et la place Start, initialement marquée ([ ], 0) peut
contenir des reconnaissances à compléter dans le cas d’une séquence. Ce sont les jetons de reconnaissance
éventuellement vide de cette place Start qui portent les informations que l’on souhaite
conserver : le contenu de la place Start est d’abord marqué d’une liste vide à l’aide de la transition
Mark0 (on passe donc d’un jeton de type IndChronInst à un jeton de type MarkedChronInst),
cette liste vide est ensuite mise à jour pour contenir des couples de listes d’entiers : chaque liste
d’entiers correspond à une reconnaissance (de C1 ou de C2 selon s’il s’agit du premier ou du second
membre du couple), et donc chaque couple correspond à un couple de deux reconnaissances,
l’une de C1 et l’autre de C2. On conserve ainsi non seulement la liste des combinaisons de C1 et
de C2 ayant déjà été créées, mais aussi quelles reconnaissances partielles de la place Start elles
ont complété. La garde compatible sur la transition Combine permet d’engendrer exactement les
combinaisons recherchées, en vérifiant dans la liste les combinaisons ayant déjà été engendrées.
123Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Ainsi, lorsque toutes les combinaisons possibles ont été réalisées, la transition Combine n’est plus
tirable.
Les places StartSub1, et StartSub2 sont fusionnées avec les places Start des réseaux correspondant
à C1 et C2, et la transition Activate permet d’activer ces places lorsque la place
StartBis contient au moins un jeton. En effet, dans le cas où la conjonction est la seconde partie
d’une séquence, on ne souhaite pas que le réseau commence à reconnaitre la conjonction tant que
le premier membre de la séquence n’a pas été reconnu, et ceci se traduit par l’arrivée d’un jeton
dans la place Start puis dans la place StartBis.
Les places Wini (qui en fait ne sont qu’une place car elles sont fusionnées — ce qui n’est ici
qu’une représentation graphique facilitant la lecture) ainsi que les transitions Forget, Forget1 et
Forget2 servent dans le cas d’une combinaison avec une absence. ([],0)
merge mkinst inst1 inst2
init
curr inst1 inst2
mark mkinst inst1 inst2
mkinst
curr
init
(inst,[])
inst
inst init
mkinst
Forget1
[test_older init curr]
Combine
[compatible mkinst inst1 inst2]
Forget2
[test_older init curr]
Mark0
Activate Forget [test_olderAND init mkinst]
Success
IndChronInst
Wini
Fusion 177
~1
INT
Operand1
IndChronInst
Wini
Fusion 177
~1
INT
Operand2
IndChronInst
Start
([],0)
IndChronInst
AToken
1`([],0)
IndChronInst
Wini
Fusion 177
~1
INT
StartBis
MarkedChronInst
StartSub2
IndChronInst
StartSub1
IndChronInst
Fusion 177 Fusion 177
Fusion 177
mkinst
inst curr2
inst curr1
Figure 4.5 – Opérateur AND
Les places Start et Success de ce réseau jouent un rôle central car la première, comme pour la
brique du OR, déclenche la possibilité de reconnaitre la chronique, et la seconde regroupe les reconnaissances
de C1&C2. D’autre part, la place Wini ne pourra fonctionner que si elle est fusionnée
avec les places correspondantes situées à l’extérieur du réseau et que son contenu est donc mis à
jour. On aura donc besoin de se référer à ces places. Pour plus de clarté, on note Success(AND)
124CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
pour Success, Wini(AND) pour Wini et Start(AND) pour Start.
Opérateur ABS Comme dans notre précédente construction, ce sous-réseau noté OPABS sert à
composer deux réseaux de Petri correspondant aux chroniques C1 et C2 pour obtenir les reconnaissances
de (C1) − [C2[ qui seront conservées dans la place Success(C1).
Cet opérateur fonctionne autour du même principe que l’opérateur ABS du modèle à un seul
jeton, à savoir qu’il faut gérer les bornes de l’absence :
— d’une part, dans le cas de plusieurs absences imbriquées, à travers la distinction entre les
places WiniBe et WiniAf (cf. p.100) ;
— d’autre part, dans le cas de l’imbrication dans une séquence, il faut isoler les reconnaissances
de l’absence pour les recombiner correctement (il s’agit donc de recombiner séquentiellement
les reconnaissances éventuelles de la premiere partie de la séquence sui sont dans la place
Start avec les reconnaissances de l’absence qui sont dans la place Oper).
L’introduction de plusieurs jetons n’influe pas sur le fonctionnement des places WiniBe et
WiniAf mais complique la combinaison des reconnaissances des places Start et Oper. En effet, on
retrouve la même problématique que dans l’opérateur de conjonction. Il faut effectuer toutes les
combinaisons séquentielles possibles et, pour ce faire, nous ajoutons une structure qui marque les
jetons de la place Start afin de garder la trace des combinaisons ayant été réalisées. Cette situation
est analogue aux problèmes rencontrés autour de l’opérateur de conjonction.
curr inst
(inst,[])
mkdinst
inst
bck
inst
Forget
[test_olderMkd init mkdinst]
Combine
[compatibleABS mkdinst inst]
Activate Mark0
ForgetAf Oper
IndChronInst
StartBis
MkdChronInst
Start
IndChronInst
AToken StartSub
1`([],0)
IndChronInst
WiniAf
Down
Update
Abs
WiniBe
max bck init
init
chg_win init inst init
~1
INT
IndChronInst IndChronInst
([],0)
inst
inst
mkdinst
mkdinst markABS mkdinst inst
init
~1
INT
init
[test_older init curr] []
IndChronInst
mergeABS mkdinst inst
Success
Figure 4.6 – Opérateur ABS
125Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
4.1.4 Construction par induction
Nous pouvons maintenant construire notre nouveau modèle. Définissons par induction sur la
chronique C le nouveau réseau de Petri coloré N(C) lui correspondant.
cpt+1
cpt
curr
Step
Forget
[test_older init curr]
A [usable curr cpt]
Present
1_num
Wini
~1
Success
Present
1_num
Start
complete (E(a)) cpt curr
cpt
0
INT
IndChronInst
curr
checked curr cpt
([],0)
INT
init
0 1_num
INT
IndChronInst
Figure 4.7 – Réseau correspondant à la chronique A
Si C = A ∈ N Le fonctionnement global du réseau reconnaissant un évènement simple est
sensiblement le même que celui de l’ancien modèle présenté dans la Section 3.2.4 (p.82). Le passage
à un jeton par reconnaissance permet cependant de simplifier le réseau, qui est présenté Figure 4.7 :
— Une garde est apposée à la transition Forget qui permet de sélectionner les reconnaissances à
supprimer dans le cas d’une absence. Cette suppression se fait alors simplement par le tirage
de la transition qui les consomme. La transition Forget n’est donc tirable que lorsqu’elle
doit supprimer des reconnaissances, ce qui constitue un début de « contrôle » des transitions.
— Une garde sur la transition A permet également d’instaurer un début de contrôle. L’indice
marquant les reconnaissances 2
est utilisé ici pour garder une trace des jetons de reconnaissance
ayant été complétés par l’occurrence de A en cours de traitement. L’indice n d’une
reconnaissance l correspond à la valeur du compteur la dernière fois que l a été complétée
par la transition A. Il suffit donc de comparer l’indice à la valeur courante du compteur : si le
compteur a un indice supérieur, il faut tirer la transition. Un premier niveau de contrôle est
implémenté : lors de l’occurrence d’un évènement A, la transition A est tirable exactement
le bon nombre de fois, ce qui est intéressant car on ne peut donc pas la tirer une infinité de
fois. En revanche, la gestion du flux n’est pas encore implémentée et la transition peut être
tirée à l’occasion de l’occurrence d’un évènement autre que A.
2. On rappelle que les jetons de reconnaissance sont de type IndChronInst, à savoir des couples (l, n) où l est
une reconnaissance et n est un entier.
126CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
Nous définissons :
Present(C) = Present
Start(C) = Start
Success(C) = Success
WiniOut(C) = Wini
WiniIn(C) = ∅
Puis nous fusionnons avec le compteur d’évènements comme dans le modèle précédent dans (3.1) p.84.
cpt+1
curr
complete (E(b)) cpt curr
curr
Step
A [usable curr cpt]
Forget
Forget
B [usable curr cpt]
Present
0 2_Num
INT
Present
2_Num
Start
IndChronInst
Wini
Wini
INT
Success
Start
2_A
IndChronInst
Success
2_A
Present
2_Num
2_A
complete (E(a)) cpt curr
cpt 2_Num
[test_older init curr]
init
INT
~1
[test_older init curr]
curr
curr init
~1
([],0)
checked curr cpt
cpt
2_Num
INT
0
INT
2_Num
0
cpt
checked curr cpt
IndChronInst
IndChronInst
Figure 4.8 – Réseau correspondant à la chronique A B
Si C = C1 C2 Afin de modéliser la séquence C1 C2, nous fusionnons, comme dans le modèle
précédent du Chapitre 3, la place Success du réseau N(C1) avec la place Start du réseau N(C2).
La Figure 4.8 présente un exemple de séquence sur la chronique A B. Cette fusion fait fonctionner
les deux réseaux en série et modifie le marquage initial de Start(C2). Comme évoqué dans la
Remarque 20, pour désactiver le réseau relatif à C2 tant qu’aucune reconnaissance de C1 n’est
formée, Start(C2) est vide.
Nous posons :
N0
(C) = F usion({N(C1), N(C2)},
{(Present(C1), {Present(C1), Present(C2)}),
127Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
(Success(C1), {Success(C1), Start(C2)})
3
,
(WiniIn(C1), {WiniIn(C1), WiniIn(C2), WiniOut(C2)})
})
Nous définissons :
Present(C) = Present(C1)
Start(C) = Start(C1)
Success(C) = Success(C2)
WiniOut(C) = WiniOut(C1)
WiniIn(C) = WiniOut(C2)
Puis nous fusionnons avec le compteur d’évènements comme dans (3.1).
curr init curr init
checked curr cpt curr
startOR
Step
A [usable curr cpt]
Forget
[test_older init curr]
Forget
[test_older init curr]
B [usable curr cpt]
StartL
Fusion 161
Start
Present
3_num
Present
3_num
Start
Fusion 161
IndChronInst
Wini
Fusion 123
Wini
Fusion 123
Success
3_success
IndChronInst
Start
Fusion 162
Success
3_success
Present
3_num
Fusion 162
3_success
Fusion 161
Fusion 161
curr ([],0)
IndChronInst
cpt+1
cpt 3_num 0
INT
IndChronInst
curr curr
IndChronInst
Fusion 123
2
INT
checked curr cpt curr
cpt
3_num
INT
0
IndChronInst
cpt
3_num
0
INT
2 Fusion 123
IndChronInst
complete (E(a)) cpt curr complete (E(b)) cpt curr
INT
StartR
Fusion 162 Fusion 162
Figure 4.9 – Réseau correspondant à la chronique A || B
Si C = C1 | | C2 Afin de modéliser la disjonction, comme dans le modèle précédent, les deux
réseaux N(C1) et N(C2) fonctionnent en parallèle. Contrairement au réseau de disjonction de la
première modélisation, le passage à un modèle multi-jeton nous empêche de simplement fusionner
les places Start des réseaux N(C1) et N(C2). En effet, lorsque l’on tire une transition relative
à un évènement celle-ci modifie le contenu de la place Start associée en changeant l’indice des
reconnaissances y figurant, donc, si l’on tire une transition relative au membre de gauche de la
3. Le marquage initial de Start(C2) devient donc vide.
128CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
disjonction, les jetons de la place Start sont marqués et ne sont plus utilisables tant que l’on
ne tire pas la transition Step du compteur d’évènements (c’est-à-dire tant qu’on ne passe pas à
l’évènement suivant dans le flux). Ceci pose problème par exemple pour la chronique A || (A B)
car l’on souhaite pouvoir tirer les transitions A des membres de gauche et de droite pour chaque
évènement de nom A.
La transition StartOr duplique donc les jetons de reconnaissances de la place Start(C1 || C2)
pour en mettre l’un dans Start(C1), l’autre dans Start(C2). Ces deux jetons identiques peuvent
alors être complétés par chacune des deux parties du réseau.
Notons que, pour la chronique A || A, on obtient donc deux reconnaissances de la chronique
à chaque occurrence d’un évènement de nom A, ce qui correspond effectivement à la sémantique
ensembliste.
Nous posons :
N0
(C) = F usion({N(C1), N(C2), OPOR},
{(Present(C1), {Present(C1), Present(C2)}),
(Success(C1), {Success(C1), Success(C2)}),
(WiniOut(C1), {WiniOut(C1), WiniOut(C2)}),
(WiniIn(C1), {WiniIn(C1), WiniIn(C2)}),
(StartL, {StartL, Start(C1)}),
(StartR, {StartR, Start(C2)})
4
})
Nous définissons :
Present(C) = Present(C1)
Start(C) = Start(OR)
Success(C) = Success(C1)
WiniOut(C) = WiniOut(C1)
WiniIn(C) =
WiniIn(C1) si WiniIn(C1) 6= ∅
WiniIn(C2) sinon
Puis nous fusionnons avec le compteur d’évènements comme dans (3.1).
Si C = C1&C2 Pour modéliser la conjonction C1&C2, les réseaux N(C1) et N(C2) doivent
également fonctionner en parallèle. La brique OPAND, dont le fonctionnement a été détaillé dans
la Section 4.1.3, duplique les jetons de la place Start et active la possibilité de reconnaître les
membres de la chronique, et ce en fusionnant les places Start de N(C1) et N(C2) avec les places
StartSub1 et StartSub2. Les reconnaissances de C1 et C2 sont récupérées par l’opérateur AND
grâce à la fusion des places Success(C1) et Success(C2) avec les places Operand1 et Operand2.
Nous posons : N0
(C) = F usion({N(C1), N(C2), OPAND},
{(Present(C1), {Present(C1), Present(C2)}),
(Startsub1, {Startsub1, Start(C1)}),
4. Les marquages initiaux des places Start(C1) et Start(C2) deviennent donc vides.
129Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
complete (E(b)) cpt curr
([],0)
curr1
curr2
init
curr
merge mkinst inst1 inst2
inst2
inst1
mark mkinst inst1 inst2
mkinst
curr
init
mkinst
mkinst
(inst,[])
init
inst
inst
inst
inst
cpt+1
cpt
cpt
complete (E(a)) cpt curr
checked curr cpt curr
curr init curr init
checked curr cpt curr
cpt
Forget1
[test_older init curr]
Combine
[compatible mkinst inst1 inst2]
Forget2
[test_older init curr]
Forget [test_olderAND init mkinst]
Mark0
Activate
Step
A [usable curr cpt]
Forget
[test_older init curr]
Forget
[test_older init curr]
B [usable curr cpt]
Wini
Fusion 124
~1
INT
Success
IndChronInst
Wini
Fusion 124 ~1
INT
Operand2
Fusion 118
IndChronInst
StartBis
MarkedChronInst
Start([],0)
IndChronInst
Wini
Fusion 124 ~1
INT
AToken
1`([],0)
IndChronInst
StartSub2
Fusion 120
IndChronInst
StartSub1
Fusion 119
IndChronInst
Operand1
Fusion 117
IndChronInst
Present
0 4_num
INT
Present
0 4_num
INT
Start
Fusion 119
IndChronInst
Wini
~1 Fusion 124
INT
Wini
Fusion 124
~1
INT
Success
Fusion 118
IndChronInst
Start
Fusion 120
IndChronInst
Success
Fusion 117
IndChronInst
Present
4_num
0
INT
Fusion 117
Fusion 120
Fusion 118
Fusion 124
Fusion 124
Fusion 119
4_num
4_num
Fusion 117
Fusion 119
Fusion 120
Fusion 124
Fusion 118
Fusion 124 Fusion 124
Figure 4.10 – Réseau correspondant à la chronique A&B
(Startsub2, {Startsub2, Start(C2)}),
(Success(C1), {Success(C1), Operand1}),
(Success(C2), {Success(C2), Operand2}),
(WiniOut(C1), {WiniOut(C1), WiniOut(C2), Wini(AND)}),
(WiniIn(C1), {WiniIn(C1), WiniIn(C2)}) })
130CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
Nous définissons :
Present(C) = Present(C1)
Start(C) = Start(AND)
Success(C) = Success(AND)
WiniOut(C) = WiniOut(C1)
WiniIn(C) =
WiniIn(C1) si WiniIn(C1) 6= ∅
WiniIn(C2) sinon
Puis nous fusionnons avec le compteur d’évènements comme dans (3.1).
Si C = (C1) − [C2[ Afin de modéliser l’absence (C1) − [C2[, il faut détruire les reconnaissances
partielles de C1 qui sont invalidées par une reconnaissance de C2. Pour ce faire, comme dans le
modèle précédent, nous fusionnons la place Success(C2) avec la place Abs de l’opérateur OPABS
pour mettre à jour le contenu de la place WiniBe qui est fusionnée avec Wini(C1). Le marquage de
cette dernière, permet, à l’aide des transitions Forget, de supprimer les reconnaissances invalidées
de C1 en les consommant.
D’autre part, les places Present(C1) et Present(C2) sont toujours fusionnées pour propager la
valeur du compteur. Et l’on fusionne la place Wini(C2) avec la place WiniAf qui va devenir la place
Wini du réseau. Ainsi, si une seconde absence vient s’imbriquer sur le réseau de (C1) − [C2[, les
reconnaissances de la nouvelle chronique interdite viendront également nettoyer le réseau N(C2).
La place Start du réseau est la place Start(ABS) ce qui permet, dans le cas d’une imbrication
de l’absence dans une séquence, d’isoler les reconnaissances de l’absence pour ensuite les combiner
correctement avec les reconnaissances de la place Start.
Nous posons :
N0
(C) = F usion({N(C1), N(C2), OPABS},
{(Present(C1), {Present(C1), Present(C2), Present(ABS)}),
(Start(C1), {Start(C1), Start(C2), StartSub}),
(Success(C1), {Success(C1), Oper}),
(Success(C2), {Success(C2), Abs}),
(WiniIn(C1), {WiniIn(C1), WiniBe}) })
Nous définissons :
Present(C) = Present(C1)
Start(C) = Start(ABS)
Success(C) = Success(ABS)
WiniOut(C) = WiniAf
WiniIn(C) = ∅
Puis nous fusionnons avec le compteur d’évènements comme dans (3.1), ce qui achève la
construction formelle de nos premiers réseaux multi-jetons.
131Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
mkdinst
inst
markABS mkdinst inst
inst
mkdinst
bck
init
inst
init
complete (E(a)) cpt curr
cpt
complete (E(d)) cpt curr
cpt+1
cpt
init
complete (E(b)) cpt curr
cpt
ForgetBe
ForgetAf Combine
[compatibleABS mkdinst inst]
Mark0 Activate
D [usable curr cpt]
Forget
[test_older init curr]
Step
A [usable curr cpt]
Forget
[test_older init curr]
Forget
[test_older init curr]
B [usable curr cpt]
Success
IndChronInst
Oper
Fusion 129
Start
IndChronInst
AToken
1`([],0)
StartBis
MkdChronInst
StartSub
Fusion 130
IndChronInst
~1
Present
5_num
0
INT
Success
Fusion 128
IndChronInst
Wini
Fusion 192
INT
Start
Fusion 130
IndChronInst
Present
5_num
INT
0
Present
5_num
INT
0
Start
Fusion 130
IndChronInst
Wini
INT
Wini
Fusion 126
INT
Success
Fusion 129
IndChronInst
Start
Fusion 127
IndChronInst
Success
Fusion 127
IndChronInst
Present
5_num
INT
0
Fusion 130
Fusion 127
5_num
Fusion 130
Fusion 128
Fusion 130
WiniAf
Fusion 192
Down checked curr cpt curr
curr init
~1
cpt
5_num
curr
curr checked curr cpt
Fusion 127
Fusion 129
5_num
Fusion 126 ~1
WiniBe
Fusion 126
max bck init
Update
Abs
Fusion 128
IndChronInst
Fusion 126
INT
INT
chg_win init inst
init
[test_olderMkd init mkdinst]
Fusion 192
~1
[test_older init curr]
init
Fusion 129
curr
IndChronInst
mkdinst
mergeABS mkdinst inst
(inst,[])
([],0)
inst inst
IndChronInst
curr init
Fusion 192 ~1
curr checked curr cpt
5_num
Figure 4.11 – Réseau correspondant à la chronique (A B) − [D[
132CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
4.1.5 Bilan sur le degré de contrôle acquis et stratégie de tirage
Le passage à un modèle multi-jeton où un jeton est associé à chaque reconnaissance partielle a
permis d’implémenter un début de structure de contrôle sur le tirage des transitions. En effet, mis
à part les transitions Step et Down qui sont en permanence tirables, les transitions ne sont tirables
qu’un nombre limité de fois à la suite. Ainsi, à l’occurrence d’un évènement A, les transitions A sont
tirables exactement le bon nombre fois, puis ne sont plus tirables jusqu’au tirage de la transition
Step pour le traitement d’un nouvel évènement. Il en est de même pour les autres transitions.
En revanche, il n’y a pas encore d’implémentation de la gestion du flux dans les réseaux donc
certaines transitions sont tirables, certes un nombre limité de fois, mais alors qu’elles ne devraient
pas être tirées pour la gestion de l’évènement en cours de traitement. Par exemple, à l’occurrence
d’un évènement B, une transition A peut être tirée mais ne doit pas l’être. Les réseaux que nous
avons construits ne sont donc pas encore indépendants pour atteindre les marquages correspondant
au traitement correct de chaque évènement, marquages où l’on peut lire les ensembles de
reconnaissances correspondants. Il faut donc de nouveau définir une stratégie de tirage.
En d’autres termes, les deux problèmes majeurs rendant la définition d’une stratégie de tirage
nécessaire sont les suivants :
— deux transitions sont en permanence tirables :
— la transition Step, dont le tirage au mauvais moment a un effet critique sur le réseau
puisqu’il agit sur le compteur d’évènements qui est directement lié à la gestion du flux
d’évènements,
— la transition Down, dont le tirage intempestif n’a aucun effet sur le réseau, mais qui
pourrait boucler indéfiniment ;
— les transitions liées aux évènements (A, B, . . . ) sont tirables dès que la place Start qui
leur est associée est activée, et cela sans considération de l’évènement qui est en cours de
traitement, ceci est donc directement lié à la gestion du flux.
Définition formelle d’une stratégie de tirage
Il nous faut donc de nouveau définir formellement une stratégie de tirage qui, associée aux
réseaux précédents, permet de lire dans leur marquage, après le traitement d’un évènement, les
reconnaissances correctes de la chronique concernée.
Pour ce faire, nous devons tout d’abord définir, comme pour le modèle précédent, une fonction
auxiliaire F orgetC qui correspond à la liste des transitions Forget de N(C) convenablement
ordonnée qui sont tirées lors d’une absence.
Nous serons amenés à plusieurs reprises à vouloir tirer une transition jusqu’à ce que celle-ci ne
soit plus tirable. Nous notons donc Trans∗
le tirage de la transition Trans jusqu’à ce qu’elle ne
soit plus tirable.
Définition 35 (stratégie de tirage des transitions Forget pour les réseaux multi-jetons).
On définit par induction sur la chronique C la fonction auxiliaire F orgetC :
— Si C = A ∈ N, alors F orgetC = [Forget∗
]
— Si C = C1 C2, alors F orgetC = F orgetC2
:: F orgetC1
133Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
— Si C = C1 | | C2, alors F orgetC = F orgetC2
:: F orgetC1
— Si C = C1&C2, alors F orgetC = [Forget∗
, Forget1∗
, Forget2∗
] :: F orgetC2
:: F orgetC1
— Si C = (C1) − [C2[, alors F orgetC = F orgetC2
:: [Down] :: F orgetC1
:: [ForgetBe, ForgetAf]
À partir de cette définition, nous pouvons maintenant définir la stratégie de tirage générale :
Définition 36 (stratégie de tirage pour les réseaux multi-jetons). On définit par induction
sur la chronique C la stratégie de tirage SC où, pour tout évènement e ∈ N, SC (e) correspond à
la suite des transitions à tirer dans le réseau N(C) pour le traitement de l’évènement e.
Pour ce faire, nous définissons une fonction auxiliaire S
0
C qui donne toutes les transitions à
tirer, exceptée la transition Step. En effet, comme dans le modèle précédent, celle-ci doit être tirée
une seule fois par évènement, au début, et est donc ajoutée a posteriori.
Pour tout e ∈ N :
— Si C = A ∈ N, alors S
0
C (e) =
[A
∗
] si e = A
[ ] sinon
— Si C = C1 C2, alors S
0
C (e) = S
0
C1
(e) :: S
0
C2
(e)
— Si C = C1 | | C2, alors S
0
C (e) = [Start(OR)
∗
] :: S
0
C1
(e) :: S
0
C2
(e)
— Si C = C1&C2, alors S
0
C (e) = [Mark0∗
, Activate∗
] :: S
0
C1
(e) :: S
0
C2
(e) :: [Combine∗
]
— Si C = (C1)−[C2[, alors S
0
C (e) = [Mark0∗
, Activate∗
] :: S
0
C1
(e) :: S
0
C2
(e) :: [Update, Down] ::
F orget(C1)−[C2[
:: [Combine∗
]
On pose maintenant, pour tout e ∈ N, SC (e) = [Step] :: S
0
C (e).
Ceci achève la construction du modèle dit « multi-jetons » qui intègre un début de structure
de contrôle du tirage des transitions grâce à l’éclatement des jetons de listes de reconnaissances.
4.2 Construction et fonctionnement des réseaux « contrôlés »
Rappelons que l’objectif de ce chapitre est de construire un modèle de reconnaissance qui soit
à la fois :
— modulaire ;
— concurrent ;
— autonome dans le sens où tout tirage de transitions correspondant au traitement d’un évè-
nement du flux doit mener au marquage dans lequel les reconnaissances correctes associées
peuvent être lues.
Dans la Section 4.1, une première étape de contrôle a été implémentée grâce au passage à une
représentation multi-jeton des ensembles de reconnaissances, avec un jeton par reconnaissance. Cependant,
les réseaux obtenus ne sont pas encore autonomes et il reste à implémenter une structure
de gestion du flux d’évènements.
Dans cette section, nous achevons donc d’implémenter l’autonomie de nos réseaux en introduisant
une telle structure [CCKP13a]. Le problème est double, il s’agit de :
1. gérer les transitions relatives aux évènements (A, B. . . ) pour qu’elles ne soient tirables que
lorsque l’évènement du flux en cours de traitement possède le bon nom ;
134CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
2. gérer la transition Step qui est pour le moment en permanence tirable : c’est un problème
non trivial car il faut la tirer une fois que toutes les autres transitions du réseau ont été tirées,
donc une fois qu’aucune autre transition du réseau n’est plus tirable.
Pour répondre à ces deux problèmes, nous procédons de la façon suivante, en implémentant la
structure de gestion du flux :
1. Nous ajoutons aux réseaux une place contenant les événements du flux. La valeur du compteur
permet d’identifier l’évènement qui est en cours de traitement et il est alors possible de mettre
une garde sur les transitions relatives aux évènements pour qu’elles ne soient tirables que
lorsqu’elles sont concernées.
2. Nous introduisons des jetons d’activation de transitions. Ces jetons parcourent les réseaux, en
activant successivement diverses transitions dans un certain ordre, pour ensuite se retrouver
autour de la transition Step. Lorsque tous les jetons de contrôle sont de nouveau parvenus à
la transition Step, c’est que l’ensemble des autres transitions du réseau ont été correctement
tirées et l’on peut donc tirer Step qui réinjecte les jetons de contrôle dans le réseau tout en
incrémentant le compteur.
Dans cette section, nous allons faire évoluer notre modèle multi-jetons pour répondre aux
objectifs que nous nous sommes fixés en début de chapitre, et construire un modèle dit « contrôlé ».
Nous présentons en 4.2.1 les types et expressions utilisés puis en 4.2.2 la structure globale des
réseaux contrôlés. Dans la Section 4.2.3, nous définissons les briques de bases jouant le rôle des
opérateurs pour les réseaux contrôlés et, dans la Section 4.2.4 nous introduisons une structure
en réseaux de Petri colorés que nous appelons « séparateur de jetons » et qui est utilisée pour
la gestion des jetons de contrôle. La Section 4.2.5 est consacrée à la construction par induction
des réseaux contrôlés. L’aspect « contrôlé » des réseaux nous permet ensuite d’utiliser les outils
d’analyse de CPN Tools et de développer dans la Section 4.2.6 les graphes d’espace d’états des
réseaux qui mettent en avant les caractéristiques recherchées des réseaux, à savoir la modularité,
la concurrence, et l’autonomie.
4.2.1 Types et expressions utilisés
Dans nos réseaux « contrôlés » nous utilisons la même représentation des reconnaissances que
dans la Section 4.1, à savoir que chaque reconnaissance partielle est représentée par un jeton. Nous
conservons donc sensiblement les même types que ceux définis dans la Section 4.1.1.
Nous ajoutons :
— le type JETON qui est utilisé pour la structure d’activation des transitions ;
— le type MkdINT qui correspond à un entier marqué d’un autre entier et qui est utilisé pour
le marquage des places Wini ;
— le type IndChronInstList qui permet de stocker des listes de reconnaissances.
On pose B = {JETON, INT, MkdINT, Event, IndChronInst, IndChronInstList}, toujours avec
NEvent = Event × INT,
et F = {+, maxi, addChecked, complete, mergeAll, chgWin, test_old, test_oldAND, remobs,
rightTime, decr2, unfold, Guard, negGuard }. Ces fonctions sont décrites dans le Tableau 4.12.
135Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Tableau 4.12 – Description des fonctions utilisées dans nos réseaux
Fonction Type (image de la fonction σ : F → B) Description
+ INT × INT → INT Addition usuelle.
maxi MkdINT × MkdINT → MkdINT Donne l’entier maximum entre les deux premières
composantes des deux couples.
addChecked IndChronInstList × IndChronInst × INT →
IndChronInstList
Met à jour l’indice de la reconnaissance avec
l’entier et ajoute la reconnaissance à la liste.
complete Event × INT × IndChronInst → IndChronInst Complète l’instance de reconnaissance partielle
avec l’évènement indicé de l’entier.
mergeAll IndChronInstList × IndChronInstList
×IndChronInstList × INT → IndChronInst
Réalise toutes les combinaisons possibles de reconnaissances
des trois listes, telles que la reconnaissances
de la troisième liste s’enchaine
séquentiellement avec les reconnaissances des
deux premières listes. La fonction renvoie autant
de jetons que de reconnaissances créées.
chgWin MkdINT × IndChronInst → INT Met à jour l’entier marqué avec l’indice de la
reconnaissance si celui-ci est plus grand.
test_old MkdINT × IndChronInst → Bool Vérifie si l’entier marqué est supérieur ou égal
à l’indice de début de la reconnaissance.
test_oldAND MkdINT × IndChronInstList → Bool Vérifie si l’entier marqué est supérieur ou égal
à l’indice de début de l’une des reconnaissances.
remobs MkdINT × IndChronInstList
→ IndChronInstList
Supprime de la liste des reconnaissances les reconnaissances
dont l’indice de début est strictement
inférieur à l’entier marqué.
rightTime IndChronInst × INT → Bool Vérifie si l’indice de la reconnaissance est égal
à l’entier en argument.
decr2 MKdINT × INT → MkdINT Modifie le marquage de l’entier marqué en le
marquant de l’entier en argument décrémenté
de 1.
unfold IndChronInstList → IndChronInst Éclate la liste de reconnaissances en autant de
jetons que de reconnaissances.
Guard IndChronInst × INT × Event × NEvent → Bool Vérifie que l’évènement indicé porte le nom recherché
et que son indice est égal à l’entier
en argument, et vérifie également que l’indice
de la reconnaissance est strictement inférieur
à l’entier en argument.
negGuard IndChronInst × INT × Event × NEvent → Bool Vérifie que soit l’évènement indicé porte le
nom recherché et son indice est égal à l’entier
en argument et également l’indice de la
reconnaissance est supérieur ou égal à l’entier
en argument, soit l’évènement ne porte par le
bon nom mais son indice est égal à l’entier en
argument.
136CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
4.2.2 Structure globale des réseaux
Figure 4.13 – Structure globale des réseaux contrôlés
Nous conservons toujours une structure modulaire pour pouvoir définir nos réseaux par induction.
La structure globale des réseaux contrôlés que nous allons construire dans cette section est
présentée dans la Figure 4.13. Elle est fondée sur celle de la Section 4.1.2 à laquelle nous avons
ajouté les places suivantes :
— la place Events est de type IndexedEvent, elle contient le flux d’évènements à traiter, avec
un jeton par évènement ;
— les places Go et End contiennent des jetons de contrôle qui sont de type INT, ils sont en charge
de l’activation et de la désactivation des transitions associées au traitement des évènements ;
— les places GoFor et EndFor, également de type INT, ont le même rôle que Go et End mais
pour la transition Forget.
Notons que, dans nos réseaux, la place Events contient directement l’ensemble des évènements
du flux à traiter, mais qu’il est tout à fait envisageable de relier la place Events à une structure
extérieure fournissant au fur et à mesure les évènements à traiter. Il est ainsi possible de connecter
nos réseaux de reconnaissance de chronique contrôlés à des simulations réalisées également en
réseaux de Petri colorés, par exemple.
Le compteur d’évènements est également modifié pour prendre en compte les jetons de contrôle,
ce qui est détaillé dans la Section 4.2.3.
Comme dans le précédent modèle, des jetons représentant des reconnaissances partielles évoluent
dans le réseau, depuis la place Start jusqu’à la place Success, étant peu à peu complétés par
des évènements du flux. Les transitions sont contrôlées par les jetons de contrôle qui parcourent
le réseau intégralement au traitement de chaque évènement du flux. Le jeton de contrôle parcourt
la partie du réseau liée à la reconnaissance en profondeur (places Go à End), puis remonte en sens
inverse en passant par les zones liées à l’absence (places GoFor à EndFor).
137Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
4.2.3 Briques de base
Notre construction par induction est toujours fondée sur un ensemble de briques de base que
nous allons présenter ici. Ces briques sont celles de la Section 4.1.3 que nous avons modifiées pour
intégrer les jetons de contrôle.
cpt
cpt
Next
INT
Present 1
cpt+1
[cpt<8] INT
End
Go
INT
bck
Figure 4.14 – Compteur
Compteur Notre modèle possède toujours un compteur d’évènements qui est présenté dans
la Figure 4.14 et noté CPT. La transition Step s’est transformée en transition Next. Son tirage
incrémente non seulement la valeur du compteur d’évènements qui est stockée dans la place Present
pour passer à l’évènement suivant du flux, mais il transfère également le jeton de contrôle de la
place End à la place Go.
Ainsi, la transition Next n’est tirable que lorsqu’il y a un jeton de contrôle dans la place End.
Comme évoqué précédemment, ce jeton de contrôle parcourt l’ensemble du réseau, en étant parfois
dupliqué puis ensuite unifié, et en activant ainsi successivement les différentes transitions à tirer
dans le réseau. Lorsque toutes les transitions ont été correctement tirées, le jeton se trouve à
nouveau dans la place End, ce qui permet de tirer Next et de passer au traitement de l’évènement
suivant par le biais de la place Go.
Une garde [cpt< d], avec d ∈ N est apposée à la transition Next. Le réseau doit traiter tous les
évènements du flux d’indice d’occurrence strictement inférieur à d. L’entier d de la garde correspond
donc à l’entier d figurant dans l’ensemble de reconnaissances RC (ϕ, d) de la Définition 16. Du point
de vue de nos réseaux, une fois la valeur de cet entier atteint par le compteur d’évènements, la
transition Next n’est plus tirable et plus aucun autre évènement ne peut donc être traité. La garde
contribue donc à assurer que toute séquence de transitions tirable est finie. Si l’on souhaite faire
évoluer cette valeur dans le temps, on peut imaginer l’ajout d’une place de type INT en entrée de
la transition Next et fournissant la valeur de d.
Opérateur OR La brique correspondant à l’opérateur de disjonction est présentée Figure 4.15
et notée OPOR. Elle se compose maintenant de deux parties. Comme nous souhaitons maintenir un
maximum de concurrence au sein de nos réseaux, et comme les traitements des branches de droite
et de gauche d’une conjonction sont indépendants, le jeton de contrôle est dupliqué par l’opérateur
de disjonction. Chaque jeton peut alors parcourir indépendamment sa branche de la disjonction.
Lorsque les deux jetons ont achevé leurs parcours, cela signifie que l’ensemble des transitions liées
138CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
InitOR StartOR
GoOR
1
StartL StartR
Start
([],0)
IndChronInst
IndChronInst
curr
cpt
[rightTime curr cpt]
PresentOR INT
IndChronInst
init
1
INT
GoR
init
INT INT
GoL
curr curr init
TEndOR
INT
EndL
EndOR
init
INT
init
INT
init
EndR
Figure 4.15 – Opérateur OR
à la disjonction ont été correctement tirées. On peut alors réunir les deux jetons de contrôle en un
seul et procéder au traitement de la suite du réseau, selon la chronique étudiée.
Ce comportement est dirigé par les transitions StartOR et TEndOR. Pour activer le réseau de la
disjonction, il faut que :
— toutes les reconnaissances partielles de la place Start aient été dupliquées pour traitement
dans les places StartL et StartR, ce qui se matérialise par l’arc inhibiteur reliant la place
Start à la transition StartOR ;
— un jeton de contrôle soit parvenu à la place GoOR.
Alors, le tirage de la transition StartOR duplique le jeton de contrôle dans les places GoL et GoR
qui vont activer chacune des deux branches de la disjonction.
Lorsque les transitions d’une des branches ont toutes été correctement tirées, le jeton de contrôle
parvient à la place EndL ou EndR selon la branche qu’il a explorée. Une fois que les deux jetons
sont réunis dans les places EndL ou EndR, cela signifie que toute la disjonction a été correctement
traitée, et la transition TEndOR est activée. Son tirage permet de procéder au traitement de la suite
du réseau.
La transition InitOR fonctionne comme dans le modèle précédent (cf. 4.1.3), à savoir qu’elle duplique
les reconnaissances partielles en attente de complétion dans Start pour qu’elles puissent être
complétées par chacune des deux branches de la disjonction, à partir des places StartL et StartR.
Une garde est ajoutée à la transition InitOR pour assurer que les reconnaissances dupliquées le
soient au bon moment.
Opérateur AND L’opérateur de conjonction OPAND qui est représenté dans la Figure 4.16 fonctionne
sur le même principe que celui du modèle multi-jetons (Figure 4.4, p.122) : les reconnais-
139Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
remobs ini lcurr2 lcurr1
cpt
cpt
init
(inst2::lcurr2)
lcurr2
inst1 inst2
init
init
init
mergeAll lcurr1 lcurr2 lcurr cpt
lcurr
ini
(inst::lcurr)
lcurr
ini
Accu2 Accu1
ActOK
InitOK
Forget1
Combine
Forget2
[test_oldAND ini lcurr2]
Accu
Activate
Forget
Present3
Fusion 122 1
Present1
Fusion 122
Present2
Fusion 122 1
INT
AccuOp2[]
IndChronInstList
AccuOp1
[]
EndAnd
GoAct
Fusion 145
INT
INT
INT
GoComb1
INT
INT
Success
IndChronInst
Wini1
Fusion 142
(~1,~1)
MkdINT
Operand1
IndChronInst Wini2
Fusion 142 (~1,~1)
MkdINT
Operand2
[]
IndChronInst
Start
IndChronInst
AToken 1`([],0) Wini
Fusion 142 (~1,~1)
MkdINT
StartBis
[]
IndChronInstList
Fusion 142
Fusion 142
Fusion 142
Fusion 145
Fusion 122
Fusion 122
IndChronInst
init
GoL
init init
GoR
INT
inst
([],0)
StartSub1
StartSub2
curr1
IndChronInst
IndChronInst
inst
inst curr2 remobs ini lcurr
[test_oldAND ini lcurr]
([],0)
inst
GoInit 1
init
EndInit
Fusion 145
lcurr1
lcurr2
lcurr2
cpt
INT
init
INT
INT init
[]
Fusion 122
INT
1
lcurr
lcurr
IndChronInstList
lcurr1
(inst1::lcurr1)
remobs ini lcurr1
ini
[test_oldAND ini lcurr1]
GoComb2
Figure 4.16 – Opérateur AND
140CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
sances des deux membres de la conjonction (places Operand1 et Operand2) et de l’éventuel premier
membre de la séquence (place Start), dans le cas d’une imbrication dans une séquence, sont réalisées
séparément puis combinées (transition Combine). Comme dans les modèles précédents, on se
référera à Start(AND) et Success(AND) pour les places Start et Success.
Il s’agit ici de contrôler, à l’aide des jetons de contrôle, le tirage des transitions. L’opérateur
doit effectuer quatre tâches principales qui doivent être réalisées successivement dans cet ordre :
(i) pour répondre au problème soulevé dans la section précédente (p.122) pour la construction
du modèle multi-jetons, les reconnaissances de la place Start doivent être accumulées dans
la place StartBis ;
(ii) les places Start des deux membres de la conjonction doivent être activées avec les places
StartSub1 et StartSub2 ;
(iii) les réseaux relatifs aux deux membres de la conjonction doivent être parcourus ;
(iv) les reconnaissances de Start, et des deux membres de la conjonction (places Operand1 et
Operand2) doivent être combinées.
Pour ce faire, le jeton de contrôle parcourt l’opérateur de conjonction comme suit :
(i) Le jeton de contrôle intègre le réseau par la place GoInit. Lorsque toutes les reconnaissances
de la place Start ont été accumulées dans StartBis (et donc lorsque Start est vide), la
transition InitOK peut être tirée (ce qui est assuré par un arc inhibiteur). Ceci indique que
la première tâche est accomplie.
(ii) Le jeton de contrôle est alors transféré à la place GoAct. Alors :
— si la place AToken est vide (i.e. si les places Start des réseaux relatifs aux deux membres
de la conjonction sont déjà activées), la transition ActOK, indiquant que l’activation est
bien effectuée, est tirable ;
— sinon, il faut tirer la transition Activate pour activer les réseaux relatifs aux deux
membres de la conjonction et vider la place AToken, rendant ainsi ActOK tirable.
Ceci assure que l’on ne procède pas à la suite des tâches (i.e. qu’on ne tire pas ActOK) tant
que les réseaux des deux membres de la conjonction n’ont pas été activés.
(iii) Au tirage de ActOK, le jeton de contrôle est dédoublé pour aller parcourir les deux réseaux
relatifs aux membres de la conjonction.
(iv) Il reste alors à combiner les reconnaissances des places Start, Operand1 et Operand2. Comme
dans le modèle précédent, les reconnaissances de Start ont été accumulées dans StartBis
sous la forme d’une liste de reconnaissances marquées, ce qui permet de garder la trace des
combinaisons ayant déjà été effectuées. Cependant, ceci ne suffit pas dans cette situation où
nous avons besoin de savoir quand toutes les combinaisons ont été effectuées, c’est-à-dire
quand la transition Combine n’est plus tirable. Pour répondre à ce problème, on accumule
également sous forme de listes les reconnaissances de Operand1 et Operand2 dans AccuOp1 et
AccuOp2 à l’aide de Accu1 et Accu2. Ainsi, la combinaison des reconnaissances peut se faire
avec un unique tirage de Combine 5
, ce qui permet de transférer en même temps le jeton de
5. Notons que l’on retrouve ici le mécanisme des réseaux à un seul jeton.
141Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
contrôle dans la place EndAnd, indiquant que toutes les tâches ont été effectuées. La transition
Combine n’est tirable que lorsque :
— les places GoComb1 et GoComb2 contiennent chacune un jeton de contrôle, i.e. les deux
réseaux relatifs aux membres de la conjonction ont été parcourus ;
— les places Operand1 et Operand2 sont vides, i.e. l’intégralité de leur contenu a bien été
accumulé dans les places AccuOp1 et AccuOp2.
On obtient ainsi un opérateur fonctionnant sur le même principe que l’opérateur du modèle multijetons
mais dans lequel le contrôle du tirage des transitions est implémenté.
Figure 4.17 – Opérateur ABS de l’absence
142CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
Opérateur ABS De même que pour OPAND, l’opérateur ABS noté OPABS et représenté dans la Figure
4.17 fonctionne sur le même principe que l’opérateur ABS du modèle multi-jetons (Figure 4.6,
p.125) mais implémente en prime le contrôle du tirage des transitions. Comme pour les modèles
précédents, on se référera à Start(ABS) et Success(ABS) pour Start et Success.
La problématique est quadruple, il faut :
(i) mettre à jour le contenu de la place WiniBe qui correspond à la valeur de Wini liée à l’absence
en cours (comme détaillé dans les modèles précédents) ;
(ii) combiner les reconnaissances du premier membre de l’absence avec les reconnaissances du
premier membre d’une séquence dans le cas d’une imbrication dans une séquence ;
(iii) dans le cas d’une imbrication dans une autre absence, mettre à jour le contenu de la places
WiniAf qui correspond à la valeur de Wini liée à un absence à un niveau supérieur ;
(iv) gérer, selon les bornes de l’absence, le tirage des transitions Forget du réseau autant de fois
que nécessaire.
Dans le cas d’une simple absence, le jeton de contrôle effectue le parcours suivant :
— il intègre le réseau dans la place toAbs1, ce qui engendre le tirage de la transition Abs1 et
alors :
— la place CurrAbs1 contient un jeton qui indique que c’est cette absence qui est en cours
de traitement (cette place est utile dans le cas de plusieurs absences imbriquées, cas que
l’on étudiera par la suite),
— le jeton de contrôle est transféré dans la place InAbs11 ;
— le jeton de contrôle parcourt alors successivement les réseaux relatifs aux deux membres de
l’absence ;
— à la suite de ce parcours, le jeton se retrouve dans la place GoUp, et deux cas se présentent
alors :
1. s’il y a eu une nouvelle reconnaissance de la chronique interdite, alors la transition
Update est tirable ce qui permet la mise à jour de la place WiniBe, et, par la place
EndUp, le jeton de contrôle va remonter dans le premier membre de l’absence, par les
places EndFor et GoFor, activant les transitions Forget correspondantes, puis le jeton
atterri dans la place InAbs12,
2. sinon, le jeton de contrôle est directement transféré par NoUp dans la place InAbs12,
Notons que ces deux cas sont exclusifs : la transition Update est tirable si la place Abs
contient une reconnaissance, alors que la transition NoUp n’est tirable que si la place Abs
est vide ;
— la transition EndAbs1 est ensuite tirable, ce qui achève le traitement de l’absence en activant
la zone rouge ABS qui réalise les combinaisons des reconnaissances du premier membre de
l’absence avec les reconnaissances du premier membre d’une séquence dans le cas d’une
imbrication dans une séquence 6
.
6. Le mécanisme de cette zone n’est pas détaillé ici pour rendre le réseau plus aisément compréhensible. Il
répond cependant à la même problématique que celle rencontrée dans le cas des combinaisons à effectuer pour une
conjonction, et a donc la même structure.
143Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Explicitons maintenant le cas de deux absences imbriquées. On considère une absence numé-
rotée 1 imbriquée dans une absence numérotée 2 pour distinguer les places des deux opérateurs
OPUP. Alors la place GoDown1 (i.e. la place GoDown de l’absence « interne ») est fusionnée avec la
place EndFor2 (i.e. la place EndFor de l’absence externe). Le traitement de la première absence
n’est pas influencé par la présence de la seconde absence. Le traitement de l’absence 2 s’effectue
comme suit :
— le jeton de contrôle suit le parcours lié à une absence quelconque indiqué ci-dessus ;
— comme EndFor2 est fusionné avec GoDown1, au lieu d’achever le traitement de l’absence,
le jeton de contrôle, en remontant dans le réseau à travers les places EndFor et GoFor de
l’absence externe, va activer la transition Down1 de l’absence interne, qui met à jour la place
WiniBe avec la valeur de WiniAf ;
— la transition Down transfère en même temps que cette mise à jour le jeton de contrôle dans
la place EndUp, ce qui permet de parcourir les places GoFor et EndFor de l’absence interne,
et ainsi propager le tirage des transitions Forget à l’absence interne ;
— le jeton de contrôle arrive alors dans la place InAbs12 qui est également fusionnée avec la
place InAbs22, mais comme la seconde absence est en cours de traitement il y a un jeton de
marquage dans la place CurrAbs2 mais pas dans la place CurrAbs1, donc seule la transition
EndAbs2 est tirable ce qui achève le traitement de l’absence en activant la zone rouge ABS2.
4.2.4 Un séparateur de jetons générique
Avant de pouvoir finalement construire notre modèle contrôlé de reconnaissance de chroniques,
nous allons définir une dernière structure qui fait partie du réseau chargé de la reconnaissance d’un
évènement simple.
La problématique est centrée autour du contrôle de la transition relative à l’évènement simple à
reconnaître, par exemple A. Il s’agit de trouver un moyen de détecter qu’une transition A n’est plus
tirable pour faire évoluer le jeton de contrôle dans la suite du réseau. Or, la transition A a effet sur
une place Start pouvant contenir plusieurs reconnaissances partielles en attente de complétion.
Certaines de ces reconnaissances doivent être traitées par la transition A et d’autres, non (typiquement
parce qu’elles viennent d’être produites et qu’il faut donc attendre l’exécution suivante). Il
faut élaborer un moyen de savoir quand toutes les instances devant être traitées l’ont bien été, et
ce afin de déclencher la suite du parcours du jeton de contrôle. Lorsque toutes les instances ont
été traitées, la transition A n’est plus tirable. Le comportement recherché ressemble donc à celui
d’un arc inhibiteur. Cependant, la transition n’est plus tirable non pas parce que l’une des places
en entrée est dénuée de tout jeton, mais parce qu’il n’y a plus aucun jeton qui vérifie la garde
apposée à la transition. Il s’agit donc de construire une structure qui remplit cette fonction, avec la
contrainte supplémentaire qu’elle ne doit, à terme, pas avoir modifié le contenu de la place Start
car les reconnaissances partielles en attente de complétion peuvent avoir à être utilisées ultérieurement
lors du traitement d’un autre évènement. Nous appelons cette structure un séparateur de
jetons. Elle est présentée dans la Figure 4.18 et repose notamment sur les arcs inhibiteurs.
En d’autres termes, la situation est la suivante. Nous disposons de deux places de contrôle Go
et End, ainsi que d’une place Start contenant des jetons et reliée à une transition possédant une
144CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
init
cpt
init
1
INT
INT
Go
cpt
evt
lcurr
lcurr
curr
cpt
evt
curr
curr
INT
No
Accu
Events Yes
Present toBeTreated
IndChronInst ([],0)
IndexedEvent
[]
[]
curr
lcurr
PutBack
Start
IndChronInstList cpt
Treatment
addChecked lcurr curr cpt
[Guard curr evt cpt]
unfold lcurr
IndChronInst
[notGuard curr evt cpt]
addChecked lcurr curr cpt
End
Figure 4.18 – Le réseau séparateur de jetons
garde. Nous souhaitons effectuer le contrôle suivant :
1. rien ne doit être effectué tant qu’aucun jeton de contrôle n’est arrivé dans la place Go ;
2. la transition doit être tirée pour chaque jeton de Start vérifiant la garde ;
3. une fois que ces tirages sont effectués, le jeton de contrôle doit être transféré de la place Go
à la place End ;
4. lorsque le jeton de contrôle arrive à la place End, l’ensemble des jetons initialement présents
dans la place Start doit toujours y être (mais ils peuvent avoir été manipulés entre temps).
Pour résoudre ce problème, nous introduisons donc le réseau séparateur de jetons présenté dans
la Figure 4.18 et construit comme suit :
— la transition concernée est divisée en trois transitions : deux d’entre elles (Yes et No) repré-
sentent la garde, et la troisième (Treatment) correspond au traitement administré initialement
par la transition divisée (il peut y avoir d’autres arcs en sortie de Treatment) ;
— la transition Yes conserve la garde initiale, alors qu’une garde complémentaire est apposée
à la transition No – ceci permet de séparer les jetons de la place initiale Start en deux
ensembles ;
— les deux transitions vident donc la place Start, et remplissent deux places : Yes transfère
les jetons de Start vérifiant la garde dans la place toBeTreated pour qu’ils soient traités
ultérieurement, alors que No accumule les jetons vérifiant la garde complémentaire dans une
liste dans la place Accu ;
— un arc inhibiteur reliant la place Start à la transition Treatment empêche tout traitement
tant que l’intégralité des jetons n’a pas été répartie entre les places toBeTreated et Accu ;
145Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
— lorsque cette séparation est terminée, le traitement peut donc être effectué, et les jetons
traités sont ajoutés à la liste présente dans Accu ;
— le rôle de la transition putBack est de transférer le jeton de contrôle de la place Go à la place
End tout en restaurant le contenu de la place Start : comme nous avons accumulé tous les
jetons dans la liste de la place Accu (aussi bien ceux ayant transité par No que ceux qui sont
passés par Yes), il suffit de déployer la liste ;
— deux arcs inhibiteurs reliant la transition putBack respectivement aux places Start et
toBeTreated assurent que putBack est tirée en dernier.
Notons qu’il est important d’accumuler les jetons sous forme d’une unique liste dans la place Accu.
En effet, ceci permet de restaurer le contenu de la place Start avec un seul tirage de la transition
PutBack. Ceci est nécessaire pour savoir à quel moment le processus est terminé et donc quand il
faut transférer le jeton de contrôle vers la place End.
4.2.5 Construction par induction des réseaux contrôlés
Avec les briques de base définies dans la Section 4.2.3 et la structure de séparation de jetons
introduite dans la Section 4.2.4, nous pouvons maintenant procéder à la construction d’un modèle
de reconnaissance de chronique que nous appelons « contrôlé ». Comme pour les modèles
précédents, la construction se fait par induction autour d’une structure commune que nous avons
détaillée dans la Section 4.2.2. Pour chaque chronique C nous construisons un réseau contrôlé
N(C) associé dans lequel circulent des jetons représentant des reconnaissances partielles qui sont
progressivement complétées en transitant dans le réseau, selon le flux d’évènements étudiés.
Reconnaissance d’un évènement simple : C = A avec A ∈ N
Commençons par construire le réseau charnière reconnaissant un évènement simple, comme par
exemple A dont le réseau N(A) est présenté dans la Figure 4.19, et dont la structure globale est
représentée dans la Figure 4.20.
En haut à gauche, on reconnaît le compteur d’évènements défini Section 4.2.3. Comme dans
les modèles précédents, on fusionne la brique reconnaissant A, notée N0
(A), au compteur d’évènements.
Celui-ci est piloté par les places Go et End qui activent ou désactivent la transition Next.
Dans le cas restreint de la reconnaissance d’un évènement simple, le jeton de contrôle de la place
Go doit parcourir le réseau N(A) pour activer diverses transitions appropriées puis achever son
parcours dans la place End ce qui active de nouveau la transition Next.
Le reste du réseau, N0
(A), peut être divisé en deux parties qui sont identifiées dans la Figure
4.20 :
1. On reconnaît la structure de séparation de jetons présentée dans la section précédente dans
la partie inférieure du réseau. En effet, N0
(A) est construit autour cette structure qui est
appliquée une première fois à la transition relative à l’évènement simple recherché, ici A. Elle
permet de contrôler son tirage, comme annoncé dans la Section 4.2.4. La place toBeTreated
du séparateur de jeton est appelée dans N0
(A) toComplete car elle contient les reconnaissances
à compléter par un évènement a. À cette structure, nous ajoutons la place EventsA qui
146CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
init
unfold lcurr init
curr
[] ini
init
init
lcurr
(curr::lcurr)
init
[]
addChecked lcurr curr cpt
init
cpt
unfold lcurr
cpt
cpt
lcurr
lcurr addChecked lcurr curr cpt
curr
cpt
curr
curr
curr
cpt
ini
complete (E(a)) cpt curr
curr
bck
cpt
cpt+1
EndFA
NotForA
[neg(test_old ini curr)]
PutBack
NoA
[negGuard curr cpt (E a) currevt]
YesA
[Guard curr cpt (E a) currevt]
A
ForgetA
[test_old ini curr]
Next [cpt<6]
GoForA
INT
EndForA
INT
AccuForA
[] IndChronInstList
GoA
Fusion 141
1
INT
EndA
Fusion 143
INT
AccuA
[]
IndChronInstList
EventsA
1`(E(a),2)++
1`(E(a),1)++
1`(E(c),3)++
1`(E(c),4)++
1`(E(a),5)
IndexedEvent
PresentA
Fusion 122 1
INT
toComplete
IndChronInst
1 Go
INT
WiniA
Fusion 142 (~1,~1)
MkdINT
SuccessA []
IndChronInst
StartA
([],0)
IndChronInst
End
Fusion 143
INT
Present
Fusion 122
1
INT
Fusion 122
Fusion 141
Fusion 143
Fusion 142
Fusion 141
Fusion 122
Fusion 143
lcurr
cpt
currevt
lcurr
currevt
Figure 4.19 – Réseau reconnaissant la chronique A
Figure 4.20 – Structure globale du réseau reconnaissant la chronique A
147Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
est reliée aux transitions NoA et YesA et qui contient le flux d’évènements à traiter. Dans le cas
restreint de la reconnaissance d’un évènement simple, la place StartA contient la liste vide
[ ] qui va être complétée par des évènements a du flux pour former des nouvelles reconnaissances
de A qui sont regroupées dans la place SuccessA. Lors de l’occurrence d’évènements
de noms différents de a, seule la transition NoA est activée, et le jeton parcourt la structure
de séparation pour revenir dans la place StartA sans avoir été complété, donc sans qu’il se
soit produit aucune modification du marquage du réseau.
2. La partie supérieure restante du réseau N0
(A) est une structure de séparation simplifiée
appliquée à la transition Forget de nos anciens réseaux. Elle est chargée de supprimer certains
jetons dans le cas d’une absence, et son fonctionnement sera détaillé par la suite lors de la
construction du réseau reconnaissant une absence.
Nous définissons inductivement les places principales du réseau définissant sa structure globale :
Present(C) = PresentA
Start(C) = StartA
Success(C) = SuccessA
WiniOut(C) = WiniA
WiniIn(C) = ∅
Events(C) = EventsA
Go(C) = GoA
End(C) = EndA
GoFor(C) = GoForA
EndFor(C) = EndForA
Formellement, le réseau est construit par la fusion du compteur d’évènements avec la brique de
base reconnaissant l’évènement simple comme suit :
N(C) = F usion({N
0
(C), CPT}, {(Present(CPT), {Present(CPT), Present(C)}),
(Go(CPT), {Go(CPT), Go(C)}), (4.1)
(End(CPT), {End(CPT), End(C)})})
Exemple 15. Lorsque le processus de reconnaissance du réseau N(A) est mis en route sur le flux
ϕ = ((a, 1),(a, 2),(c, 3),(c, 4),(a, 5)), c’est-à-dire lorsque le marquage de la place EventsA est :
1‘(E(a), 1) + +1‘(E(a), 2) + +1‘(E(c), 3) + +1‘(E(c), 4) + +1‘(E(a), 5)
alors le marquage final de la place Success(A) est le suivant :
1‘([(E(a), 1)], 1) + +1‘([(E(a), 2)], 2) + +1‘([(E(a), 5)], 5)
148CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
ce qui indique trois reconnaissances de A.
Cela correspond bien à la sémantique ensembliste qui donne l’ensemble de reconnaissances
suivant : RA(ϕ, 5) = {(a, 1),(a, 2),(a, 5)}.
Reconnaissance d’une séquence : C = C1 C2
Figure 4.21 – Structure générale du réseau reconnaissant la chronique A B
La Figure 4.21 présente une exemple de réseau reconnaissant une séquence, sur la chronique
A B.
Comme dans les modèles précédents, pour reconnaître une séquence, les réseaux fonctionnent
en série donc nous fusionnons la place Success(C1) avec Start(C2). Comme précédemment, cette
fusion modifie le marquage initial de la place Start(C2) qui devient vide. Nous ne commençons
donc pas à reconnaître C2 tant que C1 n’est pas reconnue.
Dans le cadre de l’implémentation du processus de contrôle du tirage des transitions, il faut
aussi assurer la transmission du jeton de contrôle. Rappelons que le jeton de contrôle parcourt
149Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
la partie liée à la reconnaissance en profondeur puis remonte par les structures liées à l’absence.
Comme les deux réseaux fonctionnent en série, le jeton de contrôle va parcourir le premier réseau
puis le second : nous fusionnons donc simplement les places End(C1) et Go(C2) pour transmettre
le jeton d’un réseau à l’autre. Il s’agit là du parcours en profondeur réalisant la reconnaissance. Le
retour du jeton se fait en sens inverse par les structures liées à l’absence : il va parcourir d’abord
la structure du réseau N(C2) puis celle de N(C1). Nous fusionnons donc les places EndFor(C2) et
GoFor(C1).
Formellement, nous définissons le réseau comme suit :
N0
(C1 C2) = F usion({N0
(C1), N0
(C2)}, {(End(C1), {End(C1), Go(C2)}),
(EndFor(C2), {EndFor(C2), GoFor(C1)}),
(Present(C1), {Present(C1), Present(C2)}),
(Events(C1), {Events(C1), Events(C2)}),
(Success(C1), {Success(C1), Start(C2)}),
(WiniIn(C1), {WiniIn(C1), WiniIn(C2), WiniOut(C2)})})
Nous définissons également inductivement les places principales du réseau :
Present(C) = Present(C1)
Start(C) = Start(C1)
Success(C) = Success(C2)
WiniOut(C) = WiniOut(C2)
WiniIn(C) = WiniIn(C2)
Events(C) = Events(C1)
Go(C) = Go(C1)
End(C) = End(C2)
GoFor(C) = GoFor(C2)
EndFor(C) = EndFor(C1)
Puis nous fusionnons le réseau N0
(C1 C2) avec le compteur d’évènements pour définir N(C1 C2)
comme dans (4.1).
Reconnaissance d’une disjonction : C = C1 || C2
La Figure 4.22 présente une exemple de réseau reconnaissant une disjonction, sur la chronique
A || (B A).
Comme dans notre modèle précédent, et contrairement à la séquence, les réseaux d’une disjonction
fonctionnent en parallèle à l’aide de l’opérateur de disjonction défini dans la Section 4.2.3.
Ceci se traduit par la duplication, réalisée par l’opérateur de disjonction, des reconnaissances partielles
en attente de complétion et du jeton de contrôle. Nous fusionnons donc StartL et StartR
de l’opérateur avec respectivement Start(C1) et Start(C2) pour dupliquer les reconnaissances
partielles en attente et les insérer dans chacune des branches de la disjonction. Nous fusionnons
150CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
Figure 4.22 – Structure générale du réseau reconnaissant A || (B A).
151Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
également GoL et GoR de l’opérateur avec respectivement Go(C1) et Go(C2), ce qui duplique le jeton
de contrôle et permet d’activer les deux branches de la disjonction en parallèle. Lorsque chacun
des deux jetons de contrôle a parcouru l’ensemble de sa branche, tout le réseau a correctement
été parcouru. Nous fusionnons donc EndL et EndR de l’opérateur avec respectivement End(C1) et
End(C2) pour réunir les deux jetons en un seul avec TEndOR. Les reconnaissances de la disjonction
sont regroupées dans Success(C1) et Success(C2) qui sont fusionnées.
Formellement, nous définissons le réseau comme suit :
N0
(C1 || C2) = F usion({N0
(C1), N0
(C2), OPOR},
{(GoL, {GoL, Go(C1)}),(GoR, {GoR, Go(C2)}),
(EndFor(C2), {EndFor(C2), GoFor(C1)}),
(Present(C1), {Present(C1), Present(C2), Present(OR)}),
(StartL, {StartL, Start(C1)}),(StartR, {StartR, Start(C2)}),
(Events(C1), {Events(C1), Events(C2)}),
(Success(C1), {Success(C1), Success(C2)}),
(WiniOut(C1), {WiniOut(C1), WiniOut(C2)}),
(WiniIn(C1), {WiniIn(C1), WiniIn(C2)}),
(EndL, {EndL, End(C1)}),(EndR, {EndR, End(C2)}) })
Nous définissons également inductivement les places principales du réseau :
Present(C) = Present(C1)
Start(C) = Start(OR)
Success(C) = Success(C1)
WiniOut(C) = WiniOut(C1)
WiniIn(C) =
WiniIn(C1) si WiniIn(C1) 6= ∅
WiniIn(C2) sinon
Events(C) = Events(C1)
Go(C) = Go(OR)
End(C) = End(OR)
GoFor(C) = GoFor(C2)
EndFor(C) = EndFor(C1)
Puis nous fusionnons le réseau N0
(C1 || C2) avec le compteur d’évènements pour définir le
réseau N(C1 || C2) comme dans (4.1).
Exemple 16. Lorsque le processus de reconnaissance du réseau N(A || (B A)) présenté Figure 4.22
est mis en route sur le flux ϕ = ((b, 1),(b, 2),(a, 3)) alors le marquage final de la place Success(A ||
(B A)) est le suivant :
1‘([(E(a), 3)], 3) + +1‘([(E(a), 3),(E(b), 1)], 3) + +1‘([(E(a), 3),(E(b), 2)], 3)
ce qui indique trois reconnaissances de A || (B A), une provenant de la branche de gauche et les
152CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
deux autres, de la branche de droite de la disjonction.
Cela correspond bien à la sémantique ensembliste qui donne l’ensemble de reconnaissances
suivant : RA||(B A)(ϕ, 3) = {h⊥,h(b, 1),(a, 3)ii,h⊥,h(b, 2),(a, 3)ii,h(a, 3), ⊥i}.
Reconnaissance d’une conjonction : C = C1&C2
Le réseau reconnaissant une conjonction C1&C2 est construit à partir de la brique OPAND, des
deux sous-réseaux relatifs à C1 et C2, et d’un compteur d’évènements. À titre d’exemple, la Figure
4.23 présente le réseau reconnaissant la chronique A&B.
La place Start du réseau est la place Start(AND), dont le contenu est combiné par la transition
Combine avec les reconnaissances de C1 et de C2. Pour ce faire, les places Success(C1) et
Success(C2) sont fusionnées avec Operand1 et Operand2, récupérant ainsi les reconnaissances de
C1 et de C2 pour réaliser des reconnaissances de la conjonction.
Les réseaux relatifs à C1 et C2 sont activés par la transition Activate : les places Start(C1)
et Start(C2) sont fusionnées respectivement avec StartSub1 et StartSub2 pour réaliser cette
activation. Ainsi, dans le cas de l’imbrication dans une séquence, le réseau ne commence pas à
reconnaître la conjonction tant qu’il n’y a pas de reconnaissance du premier membre de la séquence,
dans la place Start, à compléter.
Les places Present et Wini sont fusionnées pour propager correctement les entiers stockés.
Le jeton de contrôle commence par activer l’initialisation du réseau qui se fait par la transition
Accu, donc la place Go du réseau est la place GoInit. Il active ensuite l’activation (par la transition
Activate) des places Start des réseaux relatifs à C1 et C2, donc EndInit est fusionnée avec GoAct.
Lorsque l’activation est réalisée, le jeton de contrôle est dédoublé par la transition ActOK pour
parcourir en parallèle les réseaux relatifs à C1 et C2 : pour ce faire, GoL et GoR sont fusionnées
respectivement avec Go(C1) et Go(C2). Une fois que les deux réseaux ont été entièrement parcourus,
les deux jetons de contrôle sont regroupés dans GoComb1 et GoComb2 car ces places sont fusionnées
avec End(C1) et End(C2). Ceci permet de tirer la transition Combine qui achève le traitement de
la conjonction, ce qui se traduit par le fait que le jeton de contrôle arrive dans la place EndAnd
qui constitue la place End du réseau. Les reconnaissances de la chronique se trouvent alors dans la
place Success(AND) qui représente donc la place Success du réseau.
Formellement, nous définissons le réseau comme suit :
N0
(C1&C2) = F usion({N0
(C1), N0
(C2), OPAND},
{(GoL, {GoL, Go(C1)}),(GoR, {GoR, Go(C2)}),
(EndFor(C2), {EndFor(C2), GoFor(C1)}),
(Present(C1), {Present(C1), Present(C2), Present(AND)}),
(StartSub1, {StartSub1, Start(C1)}),
(StartSub2, {StartSub2, Start(C2)}),
(Events(C1), {Events(C1), Events(C2)}),
(WiniIn(C1), {WiniIn(C1), WiniIn(C2)}),
(WiniOut(C1), {WiniOut(C1), WiniOut(C2), Wini(AND)}),
(Success(C1), {Success(C1), Operand1}),
(Success(C2), {Success(C2), Operand2}),
153Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Figure 4.23 – Structure générale du réseau reconnaissant A&B
154CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
(GoComb1, {GoComb1, End(C1)}),(GoComb2, {GoComb2, End(C2)}) })
Nous définissons également inductivement les places principales du réseau :
Present(C) = Present(C1)
Start(C) = Start(AND)
Success(C) = Success(AND)
WiniOut(C) = WiniOut(C1)
WiniIn(C) =
WiniIn(C1) si WiniIn(C1) 6= ∅
WiniIn(C2) sinon
Events(C) = Events(C1)
Go(C) = GoInit
End(C) = EndAnd
GoFor(C) = GoFor(C2)
EndFor(C) = EndFor(C1)
Puis nous fusionnons le réseau N0
(C1&C2) avec le compteur d’évènements pour définir le réseau
N(C1&C2) comme dans (4.1).
Reconnaissance d’une absence : C = (C1) − [C2[
La structure générale du réseau reconnaissant (A B)−[D[ est présentée dans la Figure 4.24. La
problématique de la combinaison des reconnaissances (d’une part les reconnaissances de l’absence et
d’autre part les reconnaissances de la première partie de la séquence dans le cas d’une combinaison
avec une séquence) dans le cas d’une absence est similaire à celle rencontrée dans une conjonction.
La place Start et la place Success du réseau sont donc les places Start(ABS) et Success(ABS).
La place Go du réseau est la place toAbs1 qui débute donc le traitement de l’absence. Le jeton
de contrôle est alors transféré à la place InAbs11 qui est fusionnée avec Start(C1), le jeton va donc
parcourir le réseau relatif à C1. Les places End(C1) et Start(C2) sont fusionnées, donc le jeton
parcourt ensuite le réseau relatif à C2.
Ceci établit les reconnaissances de C1 et de C2, il s’agit maintenant de mettre à jour la valeur
de l’entier de repère Wini et pour cela le jeton rentre dans le mécanisme de l’opérateur OPABS : les
places End(C2) et GoUp sont fusionnées. Il y a alors deux cas de figure :
— soit la valeur de WiniBe doit être mise à jour car il y a eu une nouvelle reconnaissance de
C2, et alors le jeton est transféré dans la place EndUp qui est fusionnée avec GoFor(C1) : le
jeton de contrôle va parcourir le mécanisme de Forget du réseau relatif à C1 pour supprimer
les reconnaissances rendues inadéquates par la nouvelle reconnaissance de C2, puis, comme
EndFor(C1) est fusionnée avec InAbs12, le jeton de contrôle se retrouve dans InAbs12 ;
— soit il n’y a aucune mise à jour à effectuer, et alors le jeton de contrôle est directement
transféré dans la place InAbs12 car celle-ci est fusionnée à Leave.
Alors, il ne reste plus qu’à combiner les reconnaissances de l’absence avec d’éventuelles reconnaissances
d’une première partie d’une séquence imbriquant l’absence, et le jeton parcourt donc la
155Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Figure 4.24 – Structure générale du réseau reconnaissant (A B) − [D[
156CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
structure rouge ABS, comme OutAbs1 est fusionnée avec GoAbs. Á la fin de ce parcours, le jeton de
contrôle se trouve dans la place EndAbs qui est la place End du réseau.
Figure 4.25 – Structure générale du réseau reconnaissant ((A B) − [D[ E) − [F[
Dans le cas d’une double absence, dont un exemple de réseau est présenté dans la Figure 4.25
avec la chronique ((A B) − [D[ E) − [F[, EndFor(E) est fusionnée avec GoDown1. Ceci permet de
transférer le jeton de contrôle, avec la transition Down, dans la place EndUp tout en mettant à jour
la valeur de WiniBe avec celle de WiniAf. Le jeton parcourt alors de nouveau le mécanisme Forget
de l’absence interne (ici (A B) − [D[) puis est transféré dans la structure rouge ABS de l’absence
externe (ici −[F[) pour achever le traitement de la chronique.
Formellement, nous définissons le réseau comme suit :
157Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
N0
((C1) − [C2[) = F usion({N0
(C1), N0
(C2), OPABS},
{(Events(C1), {Events(C1), Events(C2)}),
(Present(C1), {Present(C1), Present(C2), Present(ABS)}),
(Go(C1), {Go(C1), InAbs1}),(EndUp, {EndUp, GoFor(C1)}),
(End(C1), {End(C1), Go(C2)}),(End(C2), {End(C2), GoUp}),
(InAbs2, {InAbs2, Leave, EndFor(C1)}),
(WiniIn(C1), {WiniIn(C1), WiniBe}),
(Success(C1), {Success(C1), Oper}),
(Success(C2), {Success(C2), Abs}),
(Start(C1), {Start(C1), Start(C2), StartSub})})
Nous définissons également inductivement les places principales du réseau :
Present(C) = Present(C1)
Start(C) = Start(ABS)
Success(C) = Success(ABS)
WiniOut(C) = WiniAf
WiniIn(C) = ∅
Events(C) = Events(C1)
Go(C) = toAbs
End(C) = OutAbs
GoFor(C) = EndUp
EndFor(C) = Leave
Puis nous fusionnons le réseau N0
((C1) − [C2[) avec le compteur d’évènements pour définir le
réseau N((C1) − [C2[) comme dans (4.1).
Exemple 17. Lorsque le processus de reconnaissance du réseau N((A B) − [D[) présenté Figure
4.24 est mis en route sur le flux ϕ = ((c, 1),(b, 2),(a, 3),(b, 4),(d, 5),(a, 6),(b, 7)) alors le
marquage final de la place Success((A B) − [D[) indique deux reconnaissances de (A B) − [D[
avec les deux jetons suivants :
1‘([(E(b), 4),(E(a), 3)], 4) + +1‘([(E(b), 7),(E(a), 6)], 7)
Cela correspond bien à la sémantique ensembliste qui donne l’ensemble de reconnaissances suivant :
R(A B)−[D[(ϕ, 7) = {hh(a, 3),(b, 4)ii,hh(a, 6),(b, 7)ii}.
Ceci achève la construction de notre modèle dit « contrôlé ».
158CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
4.2.6 Graphes d’espace d’états des réseaux contrôlés
Nous disposons maintenant d’un modèle de reconnaissance de chroniques « contrôlé » dans le
sens où, pour un marquage initial lié à un flux d’évènements donné, toute séquence suffisamment
longue de transitions tirées mène au marquage dans lequel peut être correctement lu l’ensemble
des reconnaissances recherchées.
Nous nous étions fixés trois contraintes en début de section, à savoir :
1. avoir un modèle modulaire ;
2. maintenir de la concurrence dans les réseaux ;
3. tout en ayant un modèle « convergent » vers un même marquage à la suite du traitement d’un
évènement du flux.
La construction de nos réseaux a bien respecté la première contrainte et, pour illustrer les deux
autres contraintes, nous allons maintenant tirer parti des fonctionnalités du logiciel CPN Tools
que nous utilisons pour modéliser nos réseaux. CPN Tools offre des outils d’analyse et notamment
la génération du graphe d’espace d’états pour un réseau donné avec un marquage initial donné.
Un graphe d’espace d’états présente l’ensemble des marquages atteignables du réseau, ainsi que
les suites de transitions à tirer pour les atteindre. Ceci permet d’illustrer les contraintes que nous
nous étions fixées car :
3. la confluence de nos réseaux se traduit par le fait que, périodiquement (à la suite du traitement
complet de chaque évènement du flux), le graphe d’espace d’états converge vers un unique
marquage qui correspond au marquage dans lequel peut être lu l’ensemble des reconnaissances
courant associé à la chronique ;
2. la concurrence de nos réseaux se traduit par le fait qu’il y a plusieurs chemins possibles pour
relier chaque paire successive de ces points de confluence.
La Figure 4.26 présente le graphe d’espace d’état du réseau reconnaissant la chronique A ||
(B A) sur le flux ((b, 1),(a, 2),(a, 3)). Dans CPN Tools, les différents états du marquage possibles
du réseau sont représentés par des boîtes dans lesquelles apparaissent :
— un numéro identifiant l’état ;
— un couple n : m indiquant le nombre n d’arcs en entrée et la quantité m d’arcs en sortie de
l’état.
Le détail du marquage correspondant à chaque état peut être obtenu en cliquant sur la boîte.
Dans la Figure 4.26, il est clair que, après le traitement complet de chaque évènement, il y
a un unique marquage atteint. En effet, on considère un flux de trois évènements, et les trois
marquages correspondants sont les états 17, 37 et 63, ce qui montre l’aspect « convergent » de
nos réseaux. Par ailleurs, il existe de nombreux chemins différents pour passer de l’un de ces états
convergents au suivant, c’est-à-dire plusieurs suites des transitions, et ce, malgré la simplicité du
flux d’évènements étudié à titre d’exemple. Notons que lorsque des chroniques plus complexes sont
étudiées et lorsque des flux d’évènements plus longs sont considérés, la concurrence des réseaux est
d’autant plus accrue.
À travers le graphe d’espace d’états, nous avons donc pu mettre en avant que les réseaux, quel
que soit l’ordre des transitions tirées, produisent toujours les mêmes reconnaissances à la suite du
159Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
traitement d’un évènement, et que nous avons par ailleurs su conserver de la concurrence dans les
réseaux malgré la structure de contrôle que nous avons implémentée.
160CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
46
1:1
42
1:2
54
1:1
50
1:2
45
1:2
57
2:1
53
2:2
49
2:2
59
2:1
56
2:2
52
2:2
63
1:0
62
1:1
61
1:1
60
2:1
58
2:1
55
2:1
51
2:1
47
2:1
48
2:2
43
2:2
44
2:2
40
2:2
41
1:2
38
1:2
39
1:2
37
1:2
36
1:1
22
1:1
31
1:1
28
1:2
25
1:2
33
2:1
30
2:2
27
2:2
35
1:1
34
2:1
32
2:1
29
2:1
26
2:1
23
2:1
24
2:2
20
2:2
21
1:2
18
1:2
19
1:2
17
1:2
16
1:1
15
1:1
8
1:1
11
1:1
13
2:1
14
2:1
12
2:1
9
2:1
10
2:2
6
2:2
7
1:2
4
1:2
5
1:2
3
1:2
2
1:1
1
0:1
Figure 4.26 – Graphe d’espace d’états du réseau N(A || (B A)) sur le flux ((b, 1),(a, 2),(a, 3))
161Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
4.3 Conclusion
Dans ce chapitre, nous avons fait évoluer en deux étapes principales le modèle de reconnaissance
de chroniques dit « à un seul jeton » que nous avons construit dans le Chapitre 3. L’objectif était
d’obtenir un modèle qui soit à la fois modulaire et convergent – dans le sens où quel que soit
l’ordre des transitions tirées, il fournisse toujours le même ensemble de reconnaissances – tout en
conservant un fort degré de concurrence dans le choix du tirage des transitions.
Tableau 4.27 – Récapitulatif des caractéristiques des trois modèles de reconnaissance construits
Modèle à un seul jeton multi-jeton contrôlé
(Chapitre 3) (Section 4.1) (Section 4.2)
Modularité oui oui oui
Modélisation des
reconnaissances
un jeton contenant
la liste des reconnaissances
un jeton pour chaque
reconnaissance
un jeton pour chaque
reconnaissance
« confluence »
non, nécessité de
suivre une stratégie
de tirage précise
non, nécessité de
suivre une stratégie
de tirage précise
oui
Concurrence non début de concurrence oui
Gestion du flux
d’évènements non non oui
La première étape a consisté à construire un modèle « multi-jetons » en éclatant les jetons
de listes de reconnaissances des réseaux à un seul jeton en plusieurs jetons, un par reconnaissance.
Cette démarche nous a permis d’approcher le contrôle intégré du tirage des transitions. Ceci
constitue donc une première étape vers ce que nous appelons la confluence autonome des réseaux.
Cependant, ces évolutions ne sont pas suffisantes pour que la définition d’une stratégie de tirage
des transitions ne soit plus nécessaire.
Notre seconde étape a donc été de faire évoluer le modèle multi-jetons vers un modèle dit
« contrôlé » en implémentant une structure de gestion des évènements et en introduisant la notion
162CHAPITRE 4. UN MODÈLE DE RECONNAISSANCE CONTRÔLÉ EN RÉSEAUX DE
PETRI COLORÉS
de jeton de contrôle. Ces jetons permettent successivement l’activation de différentes parties du
réseau, le tirage des transitions est alors obligatoirement correct. Nous avons porté attention à
préserver le plus de concurrence possible dans les réseaux, en évitant toute sérialisation inutile
de transitions. Nous avons bien entendu préservé la modularité des réseaux. Avec le visualisateur
d’espace d’états de CPN Tools, nous avons vérifié que des réseaux représentatifs exhibaient bien
de la concurrence, et que la « confluence » était assurée.
Le Tableau 4.27 récapitule les différentes caractéristiques de nos trois modèles.
Nous avons confronté le modèle obtenu en réseaux de Petri colorés avec les besoins d’expression
en termes de chroniques dans le cadre des deux applications aux drones que nous présentons dans
le chapitre suivant. Il est rapidement apparu que, comme évoqué dans le Chapitre 2, la possibilité
d’exprimer des contraintes sur des attributs d’évènements est primordiale. Or notre modèle en
réseaux de Petri colorés a été développé en même temps que diverses extensions syntaxiques et
sémantiques du langage des chroniques étaient en cours, et, de ce fait, possède deux limitations
majeures :
— D’une part, il n’implémente qu’une partie du langage des chroniques (à savoir le langage
restreint aux opérateurs de séquence, de conjonction, de disjonction et d’absence) et il ne
permet donc pas de reconnaître des comportements dont la description nécessite l’expression
de contraintes temporelles ou de contraintes sur des attributs d’évènements. L’élaboration
de ce modèle est très complexe principalement du fait de la contrainte de modularité.
— D’autre part, le modèle construit est très éloigné de la sémantique ensembliste arborescente
du langage définie dans le Chapitre 2. Il faut donc démontrer l’adéquation de cette sémantique
avec la sémantique opérationnelle fournie par les réseaux si l’on souhaite s’appuyer
sur celle-ci, comme nous l’avons fait dans la Section 3.4.
Ces deux extensions du modèle en réseaux de Petri colorés n’ont pu être réalisées dans le temps
imparti. Pour répondre aux besoins des applications, nous devons de plus disposer d’un modèle
intégrable facilement dans des programmes de simulation et homogène aux outils de développement
de ces simulations. Il faut que le modèle soit utilisable aisément par des ingénieurs pouvant être
peu formés aux réseaux de Petri. Dans le Chapitre 5, nous allons donc développer un nouveau
modèle du processus de reconnaissance répondant à ces problématiques.
163Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
164Chapitre 5
Bibliothèque C++ de reconnaissance
de comportements et applications à
la surveillance de la sécurité d’avions
sans pilote
Dans les Chapitres 3 et 4, nous avons construit un modèle en réseaux de Petri colorés implé-
mentant le processus de reconnaissance de chroniques. Ce modèle permet de mettre en avant des
caractéristiques du langage, mais il possède des limitations majeures. Nous souhaitons disposer
d’un programme implémentant le processus complet de reconnaissance de chroniques et qui soit
justifié par la sémantique ensembliste arborescente du Chapitre 2 tout en étant utilisable par des
ingénieurs. Du fait des difficultés apparaissant avec les réseaux de Petri colorés, nous développons
dans ce chapitre une bibliothèque en C++ dont l’algorithmique est directement calquée sur la
sémantique du Chapitre 2. La structure ensembliste inductive de cette sémantique se prête parfaitement
à une telle implémentation, et ceci nous permet de bénéficier de l’expressivité et de
l’efficacité de C++. Notons que, comme évoqué dans la Section 1.5.1, une implémentation du processus
de reconnaissance de chronique, Chronicle Recognition System/Onera (CRS/Onera), existe
déjà, mais celle-ci n’a pas été élaborée à partir de la sémantique du Chapitre 2 : le langage étudié est
différent et l’algorithmique repose sur une structure d’automates dupliqués radicalement différente
de la structure ensembliste de notre sémantique. Le langage Chronicle Recognition System (CRS)
est traduit en classes d’automates dont l’instantiation permet la reconnaissance.
Dans ce chapitre, nous allons donc implémenter dans la Section 5.1 une bibliothèque C++
fondée sur le modèle théorique de la reconnaissance de comportements présenté dans le Chapitre 2.
Nous avons mis à disposition cette bibliothèque sous la licence GNU LGPL 1
. Nous utilisons ensuite
cette bibliothèque pour traiter deux cas d’étude illustrant la portée de notre travail :
1. https://code.google.com/p/crl/
165Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
— dans la Section 5.2, nous utilisons Chronicle Recognition Library (CRL) pour surveiller, en
cas de pannes, la cohérence interne entre les différents agents mis en jeu au sein d’un système
d’avion sans pilote où chaque agent a sa propre vision de l’état du système [CCKP12b,
CCKP13b] ;
— dans la Section 5.3, CRL nous permet d’assurer qu’un avion sans pilote respecte les procé-
dures de sécurité associées à son évolution dans l’espace aérien, qu’il soit contrôlé ou non
contrôlé [PBC+].
5.1 Développement d’une bibliothèque C++ implémentant
la reconnaissance de chroniques : Chronicle Recognition
Library (CRL)
Nous allons donc développer dans ce chapitre une bibliothèque C++, CRL, implémentant le
processus de reconnaissance de comportements et directement calquée sur le modèle théorique du
Chapitre 2. Cette bibliothèque a été déposée auprès de l’Agence de Protection des Programmes 2
et est disponible sous la licence GNU LGPL.
Nous allons maintenant décrire les différentes facettes du fonctionnement et de l’implémentation
de CRL. Pour ce faire, nous allons commencer par présenter de quelle manière sont représentées
les chroniques à reconnaître par le système et comment sont gérés les évènements du flux à analyser.
Nous rentrons ensuite plus profondément dans le processus de reconnaissance puis détaillons
quelques algorithmes pour mettre en avant la similarité avec les définitions ensemblistes du Chapitre
2 (Définition 16). Nous indiquons ensuite comment le problème de la gestion du temps continu
a été traité, puis nous introduisons la notion de fenêtre de validité qui permet d’optimiser les performances
du système mais qui ne fait pas partie du cadre théorique défini dans le Chapitre 2.
Définition des chroniques à reconnaître
La bibliothèque CRL manipule des moteurs de reconnaissance auxquels doivent être fournies la
ou les chroniques à reconnaître.
Comme dans le cadre théorique présenté dans le Chapitre 2, une chronique est représentée par
un arbre binaire dont les nœuds et les feuilles sont respectivement des opérateurs et des évènements
simples. Lorsque l’utilisateur définit les chroniques à reconnaître par le système, il peut doter chaque
niveau d’une chronique (nous entendons par là, chaque nœud de l’arbre représentant la chronique)
des éléments suivants, comme dans la définition théorique du langage :
— un prédicat à vérifier exprimant des contraintes sur des attributs associés aux évènements
du flux ;
— une fonction de transformation d’attributs, qui permet de calculer de nouveaux attributs à
partir des propriétés des évènements du flux.
Ces prédicats et ces fonctions n’ont aucune restriction si ce n’est leur signature. Ce sont des
fonctions C++ fournies par l’utilisateur, permettant ainsi d’exploiter pleinement le langage de
2. Inter Deposit Digital Number : IDDN.FR.001.440022.000.R.P.2013.000.20900
166CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET
APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE
programmation. Ceci offre une forte expressivité et une grande flexibilité tout en restant strictement
dans le cadre théorique posé dans le Chapitre 2.
À chaque opérateur du langage des chroniques est associée une classe C++ dans la bibliothèque.
Ceci permet à l’utilisateur de ne définir qu’une seule fois des sous-classes de chroniques spécifiques
et ainsi de construire facilement plusieurs chroniques similaires. Ces sous-classes peuvent posséder
des prédicats et des fonctions de transformation d’attributs dépendant de variables de la sous-classe.
Cette facilité d’écriture sera largement employée et donc illustrée dans le cadre de l’application
présentée dans la Section 5.3.
Gestion du flux d’évènements
Un moteur de reconnaissance donné est doté d’un flux tampon. Il traite les évènements au fur
et à mesure, et calcule l’ensemble de toutes les reconnaissances de chaque chronique, en indiquant,
pour chaque reconnaissance, quels sont les évènements qui en sont à l’origine.
Dans cette implémentation les évènements sont représentés par des triplets (nom, date, ordre)
et non plus seulement par un couple formé d’un nom et d’une date :
— le nom est associé à un identifiant numérique unique qui a une correspondance dans un
dictionnaire de noms d’évènements – en effet, le processus de reconnaissance est fondé sur
la comparaison de noms d’évènements, donc pour limiter le temps de calcul nous comparons
des identifiants numériques ;
— la date correspond à la date d’occurrence de l’évènement, plusieurs évènements peuvent
être datés au même instant ;
— l’ordre est distinct pour chaque évènement, ce qui fournit un ordre total sur les évènements
et permet de trier le flux tampon à traiter.
Deux évènements peuvent avoir lieu à la même date mais leurs ordres doivent être différents
ce qui assure le déterminisme du système 3
. Un évènement peut également être intégré au flux
tampon sans être muni de date ou d’ordre. Dans ce cas, l’évènement est daté au temps courant
et/ou un ordre lui est donné selon les dates et ordres du reste des évènements du flux tampon.
Processus général de reconnaissance d’une chronique
Le processus de reconnaissance est défini par induction pour chaque classe d’opérateur. Il calcule
deux ensembles pour chaque nœud de l’arbre – et donc pour chaque sous-chronique des chroniques
étudiées – après chaque évènement :
— l’ensemble des reconnaissances général de la sous-chronique ;
— l’ensemble des nouvelles reconnaissances apparues suite à l’évènement traité.
Cet ensemble de nouvelles reconnaissances est donc vidé après le traitement de chaque évènement.
Il permet d’assurer que seules des nouvelles reconnaissances sont ajoutées à l’ensemble de reconnaissance
général – évitant ainsi des doublons éventuels – et, pour des raisons d’optimisation, il
offre un critère pour déterminer s’il y a des nouvelles reconnaissances au niveau des ancêtres du
nœud.
3. Notons que dans le formalisme théorique, l’ordre total est assuré par le fait que deux évènements ne peuvent
se produire à la même date (cf. p. 8).
167Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Ce processus de reconnaissance est illustré sur la chronique peu complexe (E || F)&G avec le
flux d’évènements {(e, de, 1),(h, dh, 2), (g, dg, 3),(f, df , 4)}. Il s’agit ici d’expliciter l’évolution des
ensembles de reconnaissances donc, pour plus de clarté, on ne considère ni prédicat ni fonction
de transformation d’attributs. Le Tableau 5.1 présente les ensembles de reconnaissances généraux
ainsi que les ensembles de nouvelles reconnaissances en vert pour chaque sous-chronique et après
chaque évènement du flux tampon. Ces ensembles sont organisés selon la structure arborescente
de la chronique et l’ensemble des reconnaissances de la chronique recherchée est l’ensemble des
reconnaissances de la racine de l’arbre. Dans notre exemple, après avoir traité les quatre évènements,
il y a deux reconnaissances et l’ensemble final des reconnaissances est {h(e, de, 1),(g, dg, 3)i,
h(g, dg, 3),(f, df , 4)i}. Notons que l’évènement (g, dg, 3) participe aux deux reconnaissances.
Tableau 5.1 – Évolution des ensembles de reconnaissance pour la chronique (E || F)&G sur le flux
d’évènements ϕ = (e, h, g, f).
(e, de, 1) (h, dh, 2) (g, dg, 3) (f, df , 4)
E
{(e, de, 1)}
{(e, de, 1)}
{(e, de, 1)}
{}
{(e, de, 1)}
{}
{(e, de, 1)}
{}
F
{}
{}
{}
{}
{}
{}
{(f, df , 4)}
{(f, df , 4)}
E || F
{(e, de, 1)}
{(e, de, 1)}
{(e, de, 1)}
{}
{(e, de, 1)}
{}
{(e, de, 1),(f, df , 4)}
{(f, df , 4)}
G
{}
{}
{}
{}
{(g, dg, 3)}
{(g, dg, 3)}
{(g, dg, 3)}
{}
(E || F)&G
{}
{}
{}
{}
{h(e, de, 1),(g, dg, 3)i}
{h(e, de, 1),(g, dg, 3)i}
{h(e, de, 1),(g, dg, 3)i,
h(g, dg, 3),(f, df , 4)i}
{h(g, dg, 3),(f, df , 4)i}
Écriture des chroniques avec CRL
L’écriture de chroniques est facilitée par l’utilisation du C++. Ce langage permet en effet de
redéfinir des opérateurs ou de définir ce que l’on appelle des macros (via le préprocesseur). Il est
alors aisé de créer des chroniques et la lisibilité est correcte : par exemple l’opérateur « && » du
C++ a été utilisé pour représenter la chronique conjonction, le « + » pour la séquence, etc.
Sur l’exemple précédent avec la chronique (E || F)&G, on peut définir en quelques lignes
un moteur de reconnaissance, y insérer la chronique recherchée et la tester en envoyant un flux
d’évènements :
R e cog ni tio nE ngi n e e ngi n e ;
e ngi n e . addCh ronicle ( ( $ (E ) | | $ (F ) ) && $ (G) ) ;
e ngi n e << "E" << "H" << "G" << "F" << f l u s h ;
168CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET
APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE
Dans cet exemple, les symboles « && » et « || » sont des opérateurs C++ correspondant aux
chroniques de conjonction et de disjonction, et « $ » est un symbole de macro du préprocesseur
C/C++ qui crée une chronique pour la reconnaissance d’un évènement simple dont le nom est
passé en argument de la macro.
On le voit, l’écriture dans la bibliothèque CRL a été facilitée au maximum, dans l’optique de
permettre à des non-spécialistes du langage C++ de parvenir à l’utiliser. Bien sûr, l’utilisation
des prédicats et des fonctions de création d’attributs nécessite plus d’investissement de la part de
l’utilisateur, mais de nombreux exemples sont à sa disposition en guise d’inspiration.
Algorithmes spécifiques à chaque opérateur et calqués sur la sémantique
Une fonction process, définie pour chaque classe d’opérateur, est chargée du traitement des
évènements : elle met à jour inductivement les ensembles de reconnaissances et renvoie un booléen
(hasNewRecognitions) qui indique si la chronique possède de nouvelles reconnaissances. Elle
correspond directement à l’implémentation des ensembles de reconnaissances de la Définition 16
(p.55). Pour illustrer le lien direct avec la sémantique ensembliste dont découlent les algorithmes
de traitement des évènements, nous donnons dans l’Algorithme 1 celui relatif à la séquence.
Notons que nous disposons dans CRL d’une date et d’un ordre pour chaque évènement, alors que,
dans la définition théorique du langage, un évènement était seulement daté. Dans l’implémentation
des différents opérateurs, nous utilisons, selon les opérateurs, parfois l’ordre et parfois la date pour
spécifier les contraintes temporelles. Ainsi, les opérateurs de disjonction, de séquence (comme on
le voit dans l’Algorithme 1), de conjonction, d’absence, de cut, et de changement d’état reposent
sur l’ordre, alors que les opérateurs meets, overlaps, starts, during, finishes, equals, lasts, at most,
at least, et then sont fondés sur les dates des évènements. Ceci permet une distinction plus fine
des différents opérateurs.
Gestion du temps continu
La gestion d’un modèle de temps continu et la prise en compte de contraintes sur des délais
soulèvent des problèmes d’implémentation : il faut pouvoir déterminer à quels instants le système
de reconnaissance doit être interrogé pour toujours obtenir les reconnaissances dès que possible et
ne pas instaurer de délai de traitement supplémentaire au calcul des reconnaissances.
Il est clair que le système doit être observé à chaque occurrence d’évènement, tout évènement
pouvant faire évoluer un ensemble de reconnaissances. Cependant, ceci n’est pas suffisant pour
les chroniques incluant un délai comme C then δ où il y a une évolution des reconnaissances
indépendamment de l’occurrence d’un évènement.
Le système ne pouvant être surveillé constamment, on implémente une fonction « Look-ahead »
telle que définie dans la Section 2.5 (p.64). Cette fonction renvoie le prochain instant où re-examiner
le système. La Propriété 6 assure qu’il n’y a pas d’évolution du système entre deux instants fournis
par la fonction, ce qui valide l’implémentation.
169Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Algorithme 1 Fonction process pour la séquence C1 C2
Entrée : date courante
Entrée : évènement evnmt à traiter
Sortie : booléen indiquant si la chronique possède des nouvelles reconnaissances
si la chronique a déjà été traitée alors
renvoie objet.hasNewRecognitions
fin si
objet.hasNewRecognitions ← faux
objet.C1.process(date,evnmt)
si objet.C2.process(date,evnmt) alors
pour tout r2 ∈ objet.C2.newRecognitionSet faire
pour tout r1 ∈ objet.C1.recognitionSet faire
si Omax(r1) < Omin(r2)
4 alors
si le prédicat est vérifié sur r1 et r2 alors
r ← hr1, r2i
X∗
r ← X∗
r1
∪ X∗
r2
si il y a une fonction de transformation d’attributs alors
Xr ← Xr ∪ D◦f[X∗
r1
∪ X∗
r2
]
fin si
objet.newRecognitionSet ← objet.newRecognitionSet ∪ r
objet.recognitionSet ← objet.recognitionSet ∪ r
hasNewRecognitions ← vrai
fin si
fin si
fin pour
fin pour
fin si
alreadyProcessed ← vrai
renvoie objet.hasNewRecognitions
Fenêtre de validité
Du fait de notre volonté d’établir la liste exhaustive et détaillée des reconnaissances de chaque
chronique (notions de multiplicité et d’historisation évoquées dans la Section 1.1), les ensembles
de reconnaissances manipulés peuvent vite devenir d’une taille conséquente et le temps de calcul
ne peut aller qu’en s’allongeant. En effet, si l’on prend l’exemple trivial de la conjonction A&B,
lorsqu’un évènement A a eu lieu, il sera apparié avec tout évènement B futur ou passé. Même sur
cet exemple simpliste, la taille des ensembles de reconnaissance peut exploser si les évènements A
et B sont fréquents. Comme nous souhaitons, en plus de l’historisation et de l’exhaustivité, avoir
un processus de reconnaissance utilisable en temps réel, il est important de pouvoir limiter au
maximum le temps de calcul.
Nous avons donc mis en place la notion de fenêtre de validité d’une reconnaissance qui ne fait pas
4. Les fonctions Omax(·) et Omin(·) sont les fonctions analogues à Tmax(·) et Tmin(·) mais relatives à l’ordre et
non à la date.
170CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET
APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE
partie du cadre théorique du Chapitre 2. L’utilisateur peut définir une fenêtre de validité représentée
par une durée de péremption qui s’applique sur les reconnaissances. Celles-ci sont supprimées du
moteur lorsque la différence entre leur date de reconnaissance et le temps courant est supérieure
ou égale à la durée de péremption. Ceci permet d’élaguer les ensembles de reconnaissances en
supprimant les reconnaissances les plus anciennes, et donc de limiter les agencements possibles de
nouvelles reconnaissances.
L’utilisateur peut appliquer le principe de fenêtre de validité aux chroniques de son choix
et à la profondeur qu’il souhaite. Il peut définir une durée de péremption juste à un niveau de
profondeur d’une chronique donnée (c’est-à-dire à une sous-chronique particulière), ou bien sur
l’ensemble des sous-chroniques d’une chronique (ce qui signifie que l’on élague tous les ensembles de
reconnaissances partielles liées à la chronique), ou sur l’intégralité d’un moteur de reconnaissance.
Plusieurs valeurs différentes peuvent être attribuées à la durée de péremption selon la chronique
et le contexte étudié, ce qui permet à l’utilisateur d’adapter le processus notamment selon les
fréquences d’occurrence des évènements observés. En effet, comme évoqué précédemment, un tel
procédé n’a d’intérêt que si les évènements constituant la chronique sont très fréquents. Dans
d’autres cas où les évènements concernés sont rares, il peut être au contraire plus intéressant de
conserver l’intégralité de l’historisation.
Nous avons donc décrit dans cette section (5.1) l’implémentation de la bibliothèque CRL permettant
d’effectuer de la reconnaissance de chroniques. Nous allons maintenant traiter deux cas
d’étude illustrant les capacités de la bibliothèque et du langage des chroniques.
5.2 Surveillance de cohérence au sein d’un UAS en cas de
pannes
Comme évoqué dans la Section 1.6 (p.39), dans le cadre de l’industrie aérospatiale par exemple,
les méthodes formelles, et, plus spécifiquement, les systèmes d’analyse d’évènements complexes
sont des outils significatifs pour l’étude de systèmes critiques. L’insertion d’avions sans pilotes,
Unmanned Aircrafts (UAs), dans l’espace aérien (contrôlé ou non) rendrait possible de nombreuses
applications civiles. Il y a donc une forte volonté générale pour avancer dans cette voie. L’un des
problèmes de sécurité principaux à résoudre est d’arriver à assurer la cohérence globale du système,
ce qui est nécessaire pour piloter en sécurité un UA.
Nous nous attaquons à ce problème dans le cadre de l’analyse de sécurité de missions, en offrant
la possibilité de détecter des états d’incohérence entre les différentes entités composant le système.
Nous formalisons ces situations incohérentes à l’aide de chroniques pour ensuite pouvoir les détecter
automatiquement à l’aide de CRL. Ceci permet d’offrir à la fois les deux opportunités suivantes :
— en situation réelle, surveiller de manière autonome le système en déclenchant automatiquement
une alarme en cas de situation incohérente ;
— dans le cadre d’une simulation, avoir un outil d’assistance pour l’amélioration de la conception
du système.
Notre travail repose sur une partie du projet d’Insertion des Drones dans l’Espace Aérien et Sécurité
(IDEAS) et touche aux problèmes de cohérence dans un système d’avion sans pilote, Unmanned
171Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Aircraft System (UAS), en cas de pannes éventuellement multiples.
5.2.1 Description de l’architecture du système d’avion sans pilote étudié
Cette application s’inscrit donc dans la lignée de certains travaux réalisés pour le projet IDEAS
centré sur la certification des drones pour leur insertion dans l’espace aérien. Commençons par
décrire le système que nous étudions.
Officiellement, un drone, ou Unmanned Aircraft (UA), est défini par la Federal Aviation Administration
(FAA) et l’Organisation de l’Aviation Civile Internationale (OACI) [Hou11] comme « an
aircraft that is operated without the possibility of direct human intervention from within or on the
aircraft ». Le système étudié est l’Unmanned Aircraft System (UAS) défini comme « an unmanned
aircraft and associated elements [...] required for the pilot in command to operate safely and
efficiently in the national airspace system ».
Air Traffic Control (ATC) Pilot
UA
Voice
Voice
Telecommand
& Voice
Telemetry
& Voice
Figure 5.2 – Exemple des modes de communication entre l’ATC, l’UA et la RPS (Pilot)
Il existe plusieurs types d’architecture d’UAS qui correspondent à différents éléments associés à
l’UA et à diverses liaisons de communication entre ces éléments et l’UA. Nous utilisons l’architecture
correspondant à la Figure 5.2. Le système est alors composé de l’UA, d’une station de contrôle
Remote Pilot Station (RPS), où exerce le pilote, et de l’Air Traffic Control (ATC), selon les liaisons
de communication représentées. L’UA est sous la responsabilité et le contrôle du pilote. L’ATC assure
la sécurité de la zone de l’espace aérien dont il est chargé. Il y a quatre types de liaisons entre ces
éléments. Le pilote et l’ATC échangent par communications orales via ondes radio (Voice) relayées
par le drone. Le pilote manœuvre l’UA à distance via la télécommande (Telecommand (TC)). Par
ailleurs, le drone envoie à la station de contrôle un certain nombre de paramètres de vol via la
télémesure (Telemetry (TM)). La fonction d’anti-collision « sense and avoid » (S&A) informe le
pilote de routes de collision. Nous la regroupons avec la télémesure. La caractéristique principale
de cette architecture est que l’UA en vol sert de nœud de communication entre les deux éléments
au sol qui sont le pilote et l’ATC.
172CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET
APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE
Le flux dynamique des données entre les différents agents du système est donc très élaboré, et il
l’est d’autant plus entre les différents systèmes mis en jeu lorsque l’on considère plusieurs UASs. De
plus, chaque agent déduit de ses propres observations l’état des autres agents. Dans le cas d’une
panne, la situation peut donc être très complexe, ce qui est encore intensifié dans le cas de pannes
multiples. Par conséquent, ces systèmes hautement automatisés sont très critiques, ce qui nécessite
de fortes garanties certifiant l’absence de risque. Les méthodes formelles comme notre système de
reconnaissance de comportements s’offrent donc comme une solution de choix pour ce problème.
Nous utilisons notre système de reconnaissance de chroniques pour surveiller la cohérence entre
les différents agents au sein d’un UAS en cas de pannes. Dans le cadre du projet IDEAS, les pannes
pouvant survenir au sein de l’UAS ont été étudiées [Lan09]. Des scénarios, comme celui de la
Figure 5.3 pour le cas d’une panne de TC, ont été établis pour codifier le comportement à suivre
et ainsi assurer la sécurité du système et de son environnement même en cas critique. Considérons
par exemple la situation suivante d’un UA dont la TC a eu des problèmes de fonctionnement
pour être ensuite complètement hors d’usage. La procédure adéquate a été correctement suivie et
l’ATC a activé le mode d’urgence correspondant au déroutement de l’UA. Cependant, la TC est
soudainement récupérée. Le pilote est alors occupé à rediriger son UA sur sa route initiale et il
oublie de prévenir l’ATC pour annuler la procédure d’urgence. Dans cette situation, l’ATC considère
que l’UA est en mode de déroutement vers un aéroport proche alors qu’il est en fait sur une autre
route. Il est important de pouvoir détecter ce genre de situation critique car l’ATC ne possède alors
pas les informations appropriées pour correctement organiser la circulation du trafic aérien et la
séparation entre les différents appareils.
Nous nous sommes donc proposés d’effectuer un procédé de certification permettant de vérifier
la synchronisation des différents agents d’un UAS en cas de pannes éventuellement multiples.
5.2.2 Modélisation du problème
La première étape de notre travail consiste à mettre en place formellement le problème. Nous
étudions les diagrammes de [Lan09]. Celui relatif à la panne de TC est présenté dans la Figure 5.3.
Afin d’exploiter les scénarios de panne proposés dans le projet IDEAS, nous avons normalisé ces
diagrammes. Pour ce faire, nous avons fait appel aux diagrammes de classes et aux diagrammes
états-transitions du langage Unified Modeling Language (UML) [UML11]. Nous commençons par
rappeler brièvement le formalisme des deux types de diagrammes UML que nous employons. Nous
établissons ensuite un modèle UML de l’UAS, puis nous traitons d’abord le cas d’une simple panne
de TC et ajoutons ensuite la gestion d’une double panne avec la panne radio.
Le langage UML : le diagramme de classes et le diagramme états-transitions
Le langage UML (Unified Modeling Language, communément traduit par « langage de modé-
lisation unifié ») est un langage de modélisation graphique orientée objet. Dans ce formalisme, il
existe différents types de diagrammes. Nous en utilisons deux :
— le diagramme de classes : diagramme structurel représentant une vue statique des différentes
classes composant le système ;
173Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Figure 5.3 – Scénario de panne de télécommande [Lan09]
174CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET
APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE
— le diagramme états-transitions : diagramme comportemental offrant une vue dynamique du
système en permettant de décrire sous forme de machine à états son évolution.
Un diagramme de classes est composé de classes reliées par des liens d’association et d’agrégation.
Une classe correspond à un ensemble d’objets vérifiant des attributs. Elle est représentée par
un rectangle dont la partie supérieure (qui est la seule détaillée dans nos diagrammes) contient le
nom de la classe. Dans la Figure 5.4 qui présente le système que nous étudions, il y a douze classes.
Les relations d’association, représentées par un simple trait, sont des connexions sémantiques (liens
logiques) entre au moins deux classes, comme entre les classes RPS, UA, et ATC-UA dans la Figure 5.4
qui sont ainsi associées car elles représentent les différentes entités de notre système. Les relations
d’agrégation sont des relations d’association exprimant une subordination entre deux classes. Elles
sont représentées par un trait sur l’une des extrémités duquel figure un losange. Ceci traduit que
la classe à cette extrémité contient l’autre classe. Par exemple, dans la Figure 5.4, la classe RPS
contient trois sous-classes qui correspondent à la TC, la TM et la connexion avec l’ATC. Aux bouts
des liens peuvent figurer des indices de multiplicité indiquant le nombre exact d’instances de chaque
classe. Un entier n correspond à exactement n instances, et * correspond à un nombre quelconque
d’instances.
Un diagramme états-transitions est, comme son nom l’indique, composé d’états reliés par des
transitions (cf. Figure 5.5). Un état modélise une situation durant laquelle une certaine condition
invariante est maintenue. Il est représenté par un rectangle aux coins arrondis contenant son nom :
par exemple, dans la Figure 5.5, l’état nominal de la TC pour le pilote, RPS_TC_Nominal. Plusieurs
états munis des transitions qui les relient peuvent être regroupés dans un seul et même super-état
qui permet de structurer le diagramme. Ainsi, dans la Figure 5.5, nous avons pu distinguer les états
relatifs à chacune de trois entités, dans UA, RPS, et ATC. Un super-état peut être divisé par des
traits pointillés pour former plusieurs zones concurrentes. Il s’agit alors d’un état composite. Les
diagrammes de chaque zone sont exécutés en parallèle, mais, au sein de chaque secteur, les états ne
sont pas concurrents. Ceci nous permet d’étudier en parallèle, par exemple, du point de vue de l’UA,
les états des la TC, du Code et du Pilot. Chaque région d’un état composite doit nécessairement
contenir un et un seul état initial représenté par un cercle plein et relié à l’état qui sera actif par
défaut dans cette zone. Il y a donc trois états initiaux dans l’état composite UA. Les transitions
permettent de passer d’un état à un autre sous certaines conditions. Elles sont représentées par
des flèches et sont étiquetées éventuellement d’un évènement, d’une garde et d’une action sous le
formalisme : ´ev`enement [garde]/action. Une transition donnée est déclenchée si son évènement a
lieu et si sa garde, à valeur booléenne, est vérifiée. Le diagramme change alors d’état actif et l’action
de la transition est effectuée. Par exemple, dans l’UA, pour passer de l’état Nominal_Code à l’état
Code_7600, il faut que l’évènement Code to 7600 ait lieu, que la garde [in UA TC Nominal] soit
vérifiée (c’est-à-dire que l’UA soit dans l’état UA_TC_Nominal), et, lors du changement d’état, le
message ATC change code to 7600 est envoyé. Les transitions liant un état initial à l’état par
défaut ont un statut particulier et ne peuvent être étiquetées que par une seule action.
175Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
UA(X )
UA(X) TC UA(X) TM UA(X) pilot UA(X ) relay UA(X ) Code
RPS(X )
RPS(X) TC RPS(X) TM RPS(X)-ATC connection
ATC
ATC - UA(X)
1
1
*
1
1
1 1 1
1 1 1 1 1
Figure 5.4 – Diagramme de classes du système
Positionnement du problème : diagramme de classe du système
Afin de positionner le problème et de définir clairement le système, nous modélisons tout d’abord
l’UAS avec un diagramme de classes présenté Figure 5.4. Sur ce diagramme, il apparait qu’à un drone
(UA(X)) est associé un unique pilote (RPS(X)) et une unique partie de l’ATC (ATC − UA(X)). Le drone
est composé de plusieurs éléments : la télécommande (UA(X) TC), la télémesure (UA(X) TM), l’autopilote
(UA(X) Pilot), le relai de radio (UA(X) Relay), et le code qu’il envoie à l’ATC (UA(X) Code).
De même, la RPS est constituée d’une télécommande (RPS(X) TC), d’une télémesure (RPS(X) TM) et
d’une connexion à l’ATC (RPS(X) − ATC connection). Pour une liaison donnée, nous distinguons
donc son fonctionnement aux deux extrémités : par exemple, pour la télécommande, l’émission
d’instructions de la part du pilote, RPS(X) TC, et la réception de ces instructions par le drone,
UA(X) TC, ce qui permet de modéliser plus finement une panne.
Perte de télécommande
La première panne à laquelle nous nous sommes intéressés est la panne de télécommande : le
pilote reçoit des informations du drone via la télémesure mais il ne peut pas émettre d’ordre au
drone. Nous avons commencé par la construction d’un diagramme états-transitions associé à la
procédure à suivre en cas de panne de TC. Dans la section suivante, nous traitons le cas de la
panne radio que nous intégrons dans le diagramme états-transitions initial afin de pouvoir traiter
la situation des deux pannes simultanées. La Figure 5.5 présente le diagramme résultant de ces
deux études. Ses états ainsi que leur signification sont regroupés dans le Tableau 5.6 ; les états
en vert correspondent aux états ajoutés lors de la seconde étude pour traiter le cas de la panne
radio.
176CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET
APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE
UAS in controlled airspace
UAS
ATC
[ATC Service]
[ATC code]
[ATC Voice]
RPS
[RPS Voice]
[RPS-ATC connection]
[RPS TC]
UA
[UA TC]
[UA Code]
[UA Pilot]
UA_TC_Nominal
Nominal_Code
Code_ZZ00
UA_Nominal_Flight
UA_Transitory_Mode
UA_Rerouting_Mode
RPS_TC_Nominal
Need_Contact_ATC_End_Urgency
Need_Contact_ATC_Urgency
ATC_Contacted_Urgency
Checking_TC
ATC_Nominal_For_RPS
RPS Lost V oice
Code_7600
UA TC lost
UA_TC_Quick_Recovery_Procedure
UA_TC_Unrecovered
RPS_Voice_Recovery_Procedure
RPS_V oice_Unrecovered
RPS_Nominal_V oice
RPS TC Lost
RPS_TC_Quick_Recovery_Procedure
RPS_TC_Long_Recovery_Procedure
Urgency Service
Need_Contact_ATC_Invalidation_Urgency
ATC_Rerouting_Mode_Not_Selected
ATC_Rerouting_Mode_Inferred
ATC_Rerouting_Mode_Confirmed
ATC_Nominal_Service
ATC_Urgency_To_Be_Confirmed
ATC_Nominal_Code
ATC_ZZ00_Code ATC_7600_Code
ATC_Nominal_V oice
ATC_Lost_Voice [in RPS Nominal TC & in Code ZZ00]
/Code to 7600
[in TC unrecovered]
/ATC
change
code to
ZZ00
ATC
change
code to
ZZ00
XX minutes
/TM confirms
rerouting
[in UA
Nominal TC]
RPS
decides
end
rerouting
[in UA
Nominal
TC & in
RPS
Nominal
TC]
TC failure
for RPS
[in TC
unrecovered]
ATC to RPS:
confirm ZZ00
code ? [in
RPS Nominal
Voice]
UU minutes
[in RPS TC
lost]
UU
minutes
[in RPS
Nominal
TC]
RPS to ATC:
nominal mode
[in RPS
Nominal Voice]
XX minutes
YY minutes
RPS to ATC:
urgency mode
[in ATC
Nominal Voice]
RPS to
ATC:
nominal
mode [in
ATC
Nominal
Voice]
RPS to ATC:
select rerouting
mode [in ATC
Nominal Voice]
TT minutes
TC failure
for UA
TC back
for UA
TC back for
RPS
RPS to ATC:
select rerout ing
mode [in ATC
Nominal Voice]
ATC
back to
nominal
code
Voice failure
for ATC
Voice back
for ATC
Code to
7600 [i n
UA TC
Nominal]
/ATC
change
code to
7600
Code to
nominal
[in UA
TC
Nominal]
/ATC
back to
nominal
code
NN minutes
Voice failure
for RPS
ATC
back to
nominal
code
[in RPS TC
Nominal]
/Code to 7600
[in UA
Nominal TC
& in RPS
Nominal
Voice]
/ATC back
to nominal
code
Code to 7600 [in UA Nominal TC]
/ATC change code to 7600
ATC change code to 7600
ATC change code to ZZ00
ATC
change
code to
7600
[in RPS
Nominal TC]
[in RPS TC
lost]
ZZ
minutes
[in RPS
Nominal
TC]
[in TC unrecovered]
/ATC change code to ZZ00
[in RPS
long TC
recovery
procedure]
RPS to ATC:
nominal mode
[in RPS
Nominal Voice]
TM confirms rerouting [in RPS
Nominal Voice]
/RPS to ATC: select rerouting
mode
RPS to
ATC:
urgency
mode [in
ATC
Nominal
Voice]
RPS to
ATC:
nominal
mode [in
ATC
Nominal
code & in
ATC
Nominal
Voice]
Voice back for RPS
[in RPS
TC lost ]
RPS to ATC:
urgency mode
[in RPS
Nominal Voice]
[in RPS TC Nominal]
/Code to nominal
[in
ATC
lost
voice]
[in ATC Nominal
Voice]
/ATC to RPS:
confirm ZZ00 code
[in ATC ZZ00
code]
Figure 5.5 – Diagramme états-transitions de la perte de télécommande et de radio
177Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Décrivons maintenant le comportement souhaité du système en cas de panne de télécommande.
En l’absence de panne, le drone est en état nominal (TC nominale, code nominal envoyé à l’ATC,
vol nominal) et il a un plan de vol pré-programmé qui est connu du pilote et de l’ATC. La RPS et
l’ATC sont alors aussi en état nominal (TC nominale ainsi qu’ATC nominal pour la RPS, et service
nominal et code nominal pour l’ATC).
Lorsque le drone perçoit la perte de liaison TC, il commence par suivre une procédure automatique
rapide visant à rétablir le lien perdu. En cas d’échec au bout de Y Y minutes, il abandonne
cette procédure, envoie le code ZZ00 à l’ATC, et bascule alors en mode de vol transitoire. Ce mode
varie selon le drone. Cela consiste en un comportement fixe durant une durée déterminée (comme,
par exemple, maintenir la dernière vitesse et le dernier niveau de vol assignés). Si la télécommande
recommence à fonctionner pendant ce mode, le drone repasse en état nominal, que ce soit au niveau
de la TC, du code envoyé à l’ATC ou du vol. Après XX minutes, si la liaison n’est toujours pas
rétablie, le drone quitte le mode de vol transitoire et passe alors en procédure de déroutement.
Il s’agit d’atterrir dans l’aéroport de déroutement le plus proche défini dans son plan de vol. Si
la liaison TC est restaurée alors que le drone est en procédure de déroutement, c’est au pilote de
décider s’il souhaite que le drone retourne en état nominal ou s’il juge qu’il est plus prudent de
continuer la procédure de déroutement.
Parallèlement, lorsque la RPS perçoit la perte de liaison TC, le pilote commence par suivre une
procédure rapide pour tenter de rétablir le lien. Si cette procédure est toujours infructueuse au
bout de ZZ minutes, le pilote passe alors dans une procédure longue où il va tenter de rétablir
la liaison jusqu’à ce qu’elle soit effectivement restaurée ou bien que le drone atterrisse. Lorsque le
pilote passe dans cet état, il doit contacter l’ATC et l’informer que le mode d’urgence est activé.
De plus, lorsque la télémesure lui indique que l’UA est en déroutement, le pilote doit également en
avertir l’ATC. Si la liaison est rétablie durant cette procédure, la télécommande, du point de vue
du pilote, retourne en état nominal et le pilote doit le signaler à l’ATC.
Lorsque l’ATC réceptionne le message de la RPS indiquant l’activation du mode d’urgence, l’ATC
passe alors en service d’urgence, tout d’abord dans un premier mode où le déroutement n’est pas
encore activé. C’est après que la RPS ait informé l’ATC du déroutement que celui-ci se met en mode
de déroutement confirmé. Si l’ATC est dans le premier mode et qu’il ne reçoit aucun message au
bout de XX minutes, il passe alors en mode de déroutement inféré, pour passer ensuite en mode de
déroutement confirmé dès qu’il reçoit le message correspondant de la RPS. De plus, à la réception
d’un message de la RPS informant d’un retour en mode nominal, l’ATC revient aussi en service
nominal.
Il reste une situation qui n’a pas été décrite : celle où l’ATC, suite à un changement de code à
ZZ00 réalise qu’il y a un problème de télécommande avant le pilote (c’est-à-dire que celui-ci n’a pas
encore envoyé de message à l’ATC l’informant du mode d’urgence). L’ATC envoie alors un message
à la RPS pour lui demander confirmation du code ZZ00. La RPS vérifie alors l’état de la TC. Au
bout de UU minutes, il envoie alors le message adapté à l’ATC : ou bien il active le mode d’urgence,
ou bien il infirme le code ZZ00.
178CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET
APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE
Tableau 5.6 – Récapitulatif des états du diagramme UML de la Figure 5.5
État Signification
UA Nominal TC Pour le drone, la télécommande est en état nominal.
Quick TC recovery procedure Le drone suit une procédure rapide visant à rétablir la liaison TC.
TC unrecovered Le drone arrête d’essayer de rétablir la liaison TC.
Nominal code Le code envoyé à ATC par le drone est nominal.
ZZ00 code Le code envoyé à l’ATC par le drone est le code d’urgence ZZ00.
7600 code Le code envoyé à l’ATC par le drone est le code d’urgence 7600.
UA Nominal flight Le drone est en vol nominal.
UA Transitory mode Le drone est en mode transitoire de vol (mode automatique).
UA Rerouting mode Le drone est en déroutement (atterrissage sur l’aéroport de déroutement le plus
proche).
RPS Nominal TC Pour le pilote, la télécommande est en état nominal.
RPS quick TC recovery procedure Le pilote suit une procédure rapide visant à rétablir la liaison TC.
RPS long TC recovery procedure Le pilote suit une procédure longue visant à rétablir la liaison TC.
ATC nominal for RPS Pour le pilote, l’ATC est en mode nominal.
Need to contact ATC (urgency procedure) Le pilote doit contacter l’ATC pour l’avertir de l’état d’urgence.
ATC contacted (urgency mode) Pour le pilote, l’ATC est en état d’urgence.
Need to contact ATC (end of urgency procedure) Le pilote doit contacter l’ATC pour clore l’état d’urgence.
Checking TC Le pilote vérifie l’état de la TC.
Need to contact ATC (invalidation of urgency) Le pilote doit contacter l’ATC pour invalider le mode d’urgence de ce dernier.
RPS Nominal Voice Pour le pilote, la liaison radio est nominale.
RPS Voice Recovery Procedure Le pilote suit une procédure visant à rétablir la liaison radio.
RPS Voice Unrecovered Pour le pilote, la liaison radio est perdue.
Nominal service L’ATC est en service nominal.
Urgency to be confirmed L’ATC a diagnostiqué un état d’urgence et en attend la confirmation de la part du
pilote.
ATC Rerouting mode not selected L’ATC est en mode d’urgence et pense que le drone n’est pas en déroutement.
ATC Rerouting mode inferred L’ATC est en mode d’urgence et suppose que le drone est en déroutement.
ATC Rerouting mode confirmed L’ATC est en mode d’urgence et sait que le drone est en déroutement.
ATC Nominal Code Le code reçu par l’ATC est le code nominal.
ATC ZZ00 code Le code reçu par l’ATC est le code ZZ00.
ATC 7600 code Le code reçu par l’ATC est le code 7600.
ATC Nominal Voice Pour l’ATC, la liaison radio est nominale.
ATC Lost Voice Pour l’ATC, la liaison radio est perdue.
179Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Perte de liaison radio
Nous allons maintenant considérer la perte de liaison radio. Dans le projet IDEAS, les diagrammes
décrivant les procédures à suivre en cas de pannes sont disjoints. Or, nous souhaitons
pouvoir considérer des pannes multiples simultanées, donc en normalisant ces diagrammes sous
forme UML nous les regroupons en un seul. Ceci nous amène à réfléchir aux priorités à donner à
des procédures concurrentes, ce qui n’était pas nécessaire lorsque les procédures étaient considé-
rées indépendamment. Par exemple, la perte de TC doit être accompagnée de l’affichage du code
transpondeur ZZ00 alors que la perte de communication radio est associée au code 7600. Il n’est
pas possible de transmettre simultanément les deux codes, donc nous choisissons de privilégier
l’affichage annonçant la panne de TC car celle-ci est jugée plus dangereuse que la panne radio.
Nous ajoutons donc un état correspondant au code du transpondeur réglé à 7600, du côté
de l’UA et du côté de l’ATC, en concurrence avec le code ZZ00 mais c’est ce dernier qui prime.
La procédure à suivre en cas de panne radio est sensiblement la même qu’en panne de TC. Les
différentes entités cherchent à rétablir la liaison puis au bout d’un délai imparti renoncent et
considèrent la liaison comme perdue. Comme annoncé avec les différentes priorités des codes de
transpondeur, si une panne de TC se produit alors que la procédure associée à une panne radio
est déjà amorcée, la procédure associée à la panne de TC prend le dessus pour les actions étant en
concurrence les unes avec les autres.
Implémentation en C++ des diagrammes
Avec les diagrammes des Figures 5.4 et 5.5, nous avons donc entièrement modélisé le système
et les procédures qu’il doit suivre en cas de panne radio et/ou de panne de TC. Le cycle de vie du
système se reflète dans les états actifs du diagramme. Afin de pouvoir effectuer des simulations, nous
avons codé ce diagramme états-transitions en C++ à l’aide de la bibliothèque Meta State Machine
(MSM) [Hen11] fournie dans les bibliothèques boost (Version 1.48.0) qui permet l’implémentation
directe de machines à états. Le programme décrit le fonctionnement du diagramme UML. Il prend
en entrée un flux d’évènements qui correspondent aux évènements étiquetant les transitions du
diagramme et indiqués en rouge – les évènements en noir résultent d’actions internes à la simulation
et sont donc engendrés automatiquement selon l’évolution du système. Le flux fait évoluer les états
actifs du diagramme. La succession de ces états actifs pour un flux d’évènements donnés fournit
alors un scénario de simulation que l’on peut examiner.
5.2.3 Objectifs de la reconnaissance de comportements dans ce cas d’étude
Il s’agit donc d’analyser les scénarios découlant des simulations de la section précédente pour
y détecter des comportements normaux ou anormaux spécifiés par des chroniques.
La simulation produite respecte exactement les directives spécifiées et requises par le projet
IDEAS. Cependant, il n’est de nos jours pas encore autorisé de faire voler un UA dans l’espace
aérien, qu’il soit contrôlé ou non. En effet, les réglementations comme comme celles étudiées dans
ce chapitre n’ont pas encore été finalisées. Nous proposons d’étudier si certaines situations incohé-
rentes se produisent dans les simulations, et ce afin de remplir deux objectifs. La reconnaissance
180CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET
APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE
de comportements au cours de la simulation permet de confirmer ou d’infirmer certains choix de
réglementation en faisant ressortir les différentes manières d’atteindre un état incohérent repré-
sentant un danger. Notre premier objectif est donc d’offrir un outil d’assistance durant l’étape de
développement des réglementations. En effet, comme l’on considère des pannes multiples, le système
devient très complexe et il est difficile de se le représenter entièrement correctement, ce qui rend
utile une telle assistance.
À terme, les dernières causes possibles de brèches dans la sécurité du système devraient être
humaines, c’est-à-dire dues au pilote ou au contrôleur du trafic aérien. La possibilité d’atteindre ce
genre de situation incohérente doit rester dans le modèle car elle représente une réalité qui ne peut
être évitée. Cependant, ces situations peuvent être détectées à l’aide d’un outil de reconnaissance
de comportements. Ainsi, notre second objectif est d’offrir une méthode de détection des dernières
situations incohérentes atteignables ne pouvant être empêchées, permettant d’activer des alarmes
et donc de réduire les risques potentiels.
Par ailleurs, il y aurait une troisième utilisation possible de la reconnaissance de comportements,
corollaire de la deuxième : l’analyse d’un incident a posteriori par dépouillement des enregistrements.
Cette application ne nécessite pas de disposer d’un moyen de reconnaissance en ligne. Elle
a été largement étudiée précédemment dans le cas d’analyses de simulations HLA [Ber09].
5.2.4 Écriture et formalisation des situations incohérentes à détecter
Identification des situations dangereuses
La première étape pour mettre en place un tel système est d’identifier avec l’aide d’un expert
les états incohérents qui doivent être évités afin de pouvoir ensuite les spécifier au système et lancer
le processus de reconnaissance. Par exemple, les comportements suivants sont considérés comme
dangereux :
1. Incoherent ATC Voice : le code du transpondeur de l’UA indique le code 7600 à l’ATC, ce qui
signifie qu’il y a une perte de liaison radio, mais le contrôleur aérien ne s’en rend pas compte,
ce qui s’exprime par le fait que, dans le diagramme, l’état ATC Lost Voice ne devient pas
actif ;
2. Incoherent flight mode UA/ATC : après une panne ayant été résolue, l’UA revient en mode de
vol nominal mais l’ATC reste en mode d’urgence ;
3. RPS rushed decision : l’ATC pense que le drone est en déroutement mais ce n’est pas le cas ;
4. ATC late : la TC est perdue, et, depuis, δ minutes se sont écoulées sans que l’ATC passe en
mode d’urgence ;
5. ATC incoherent : l’UA est passé en mode de déroutement, suite à quoi l’ATC a inféré par
lui-même que le drone était en déroutement, mais cela n’a pas été confirmé par le pilote,
même après le délai de latence imparti de δ minutes.
L’objectif est donc de mettre en place un système de reconnaissance de ces comportements.
Lorsque l’un d’entre eux est détecté, il faut alors examiner quelles sont ses origines :
— si l’état incohérent est dû à un trou dans la réglementation, il faut la compléter ;
181Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
— sinon, c’est que la source est une erreur humaine, et il faut alors prévoir d’activer une alarme
pour prévenir le pilote et/ou le contrôleur du trafic aérien de la situation potentiellement
dangereuse.
Écriture des chroniques associées
Pour implémenter ce système, la seconde étape est de transcrire formellement ces comportements
sous forme de chroniques qu’il sera ensuite possible de fournir à la bibliothèque CRL pour
être reconnues. Ces chroniques permettront donc de surveiller le système.
Il s’agit d’abord de spécifier quels évènements de base sont choisis pour construire les chroniques.
Dans notre formalisme, les évènements de base sont ponctuels, et nous choisissons donc les
évènements d’entrée et de sortie des différents états actifs du diagramme de la Figure 5.5, ce qui
permet de décrire intégralement l’evolution du système. L’entrée et la sortie d’un état xxxx sont
dénotés respectivement to_xxxx et from_xxxx.
Les situations incohérentes décrites précédemment s’expriment alors formellement avec les chroniques
suivantes :
1. Incoherent ATC Voice
(to_ATC_Nominal_Code to_ATC_7600_Code then 5) − [to_ATC_Lost_Voice]
2. Incoherent flight mode UA/ATC
(from_UA_Nominal_Flight
((to_UA_Nominal_Flight then 10) − [from_UA_Nominal_Flight]))
−[to_ATC_Nominal_Service]
3. RPS rushed decision
( ((to_UA_Nominal_Flight | | to_UA_Transitory_Mode) then δ)
−[to_UA_Rerouting_Mode] )
& to_ATC_Rerouting_Mode_Confirmed
4. ATC late
(to_UA_TC_Unrecovered then δ)
−[to_Urgency_Service || to_UA_TC_Nominal]
5. ATC incoherent
to_UA_Rerouting_Mode ((to_ATC_Rerouting_Mode_Inferred then δ)
−[to_ATC_Rerouting_Mode_Confirmed || to_UA_Nominal_Flight])
Nous avons donc, d’une part modélisé entièrement le système, et d’autre part écrit des chroniques
pour le superviser. Il s’agit maintenant d’intégrer cela avec la bibliothèque CRL pour compléter
la mise en place du système et remplir les objectifs fixés.
5.2.5 Utilisation de CRL pour reconnaître les situations incohérentes
Nous allons donc utiliser CRL pour reconnaître les chroniques définies dans la section précédente
dans des simulations produites par le programme issu du diagramme états-transitions modélisant
le système. Plus précisément, le mode opératoire est le suivant :
182CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET
APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE
— nous lançons un scénario constitué d’une séquence d’évènements (qui sont des évènements
marqués en rouge et étiquetant des transitions du diagramme) en fournissant au programme
boost modélisant le diagramme un fichier d’entrée contenant cette séquence d’évènements ;
— ce scénario fait évoluer les état actifs du système ;
— ceci produit un fichier de sortie contenant la séquence des évènements d’entrée et de sortie
des états actifs du diagramme, ce qui constitue le flux à analyser car ce sont ces évènements
que nous avons choisis pour construire nos chroniques ;
— nous analysons ce flux d’évènements avec CRL pour chercher à reconnaître les chroniques
définies dans la section précédente.
Un premier scénario : une erreur humaine
Étudions un premier scénario très simple qui est à considérer comme un exemple instructif : une
perte de la liaison radio se produit, et celle-ci n’est reconnue que par le pilote (évènement Voice
failure for RPS). Nous faisons donc tourner la simulation avec ce simple évènement. L’évolution
des états actifs du diagramme modélisant le système est fourni à la bibliothèque CRL sous la forme
de la séquence des entrées et sorties des états concernés, ce qui donne le résultat suivant :
t = 0 Engine created
t = 0 Added chronicle :
([(to_ATC_Nominal_Code to_ATC_7600_Code) + 5] − to_ATC_Lost_Voice)
t = 0 Added Event : to_ATC_Nominal_Code
t = 0 Added Event : Voice_failure_for_RPS
t = 0 Added Event : from_RPS_Nominal_Voice
t = 0 Added Event : to_RPS_Voice_Recovery_Procedure
t = 4 Added Event : from_RPS_Voice_Recovery_Procedure
t = 4 Added Event : to_RPS_Voice_Unrecovered
t = 4 Added Event : from_Nominal_Code
t = 4 Added Event : to_Code_7600
t = 4 Added Event : from_ATC_Nominal_Code
t = 4 Added Event : to_ATC_7600_Code
t = 9 Chronicle recognition :
([(to_ATC_Nominal_Code to_ATC_7600_Code) + 5] − to_ATC_Lost_Voice)
Reco Set = {hh(to_ATC_Nominal_Code, 0),(to_ATC_7600_Code, 4)i,(t, 9)i}
La chronique Incoherent ATC Voice est donc reconnue : to_ATC_Nominal_Code à l’instant
t = 0 a été suivi de to_ATC_7600_Code à l’instant t = 4, puis, jusqu’à l’instant t = 9, l’évènement
pouvant annuler la reconnaissance (à savoir que l’ATC reconnaisse la panne radio) n’a pas eu lieu.
Grâce à l’historisation des évènements, on peut voir dans l’ensemble de reconnaissances indiqué
que la cause de l’incohérence est une inattention de la part du contrôleur du trafic aérien qui n’a
pas réagi à la panne. Nous sommes donc dans le second cas où la source d’erreur est humaine,
et une alarme doit être activée par la chronique pour prévenir l’ATC de la situation et tenter de
rétablir une situation correcte.
183Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Un deuxième scénario : un trou dans la réglementation
Considérons maintenant un deuxième scénario, plus complexe, impliquant plusieurs pannes : la
perte de la liaison radio est reconnue à la fois par le pilote et l’ATC (évènements Voice failure for
RPS et Voice failure for ATC), peu après, une panne de TC, également reconnue à la fois par le
pilote et l’ATC, se produit (évènements TC failure for UA et TC failure for RPS). Cependant, la
TC est rétablie 15 min plus tard (évènements TC back for UA et TC back for RPS). À ce moment
là, le pilote décide que la situation n’est pas trop inquiétante (une simple panne radio peut effectivement
être considérée comme peu alarmante, elle peut être provisoire et due à un simple obstacle)
et il règle l’UA de nouveau sur son mode de vol nominal (évènement RPS decides end rerouting).
Lorsque l’on fait tourner la simulation sur ce scénario, on obtient le résultat suivant sur CRL (où
l’on ne rapporte pas cette fois-ci tous les évènements du flux) :
.
.
.
t = 65 Chronicle recognition :
([from_UA_Nominal_Flight ([to_UA_Nominal_Flight + 10]
− from_UA_Nominal_Flight)] − to_ATC_Nominal_Service)
Reco Set = {h(from_UA_Nominal_Flight, 35),
h(to_UA_Nominal_Flight, 55),(t, 65)ii}
La chronique Incoherent flight mode UA/ATC est donc reconnue. Cette fois-ci, l’état d’incohé-
rence n’est pas dû à une erreur humaine, ce qui signifie que la règlementation, représentée par le
diagramme UML états-transitions, doit être corrigée. Nous avons mis en évidence le fait qu’il manque
une transition dans la modélisation de l’ATC, entre Urgency service et ATC_Nominal_Service.
En effet, l’ATC devrait pouvoir retourner en mode de service nominal même s’il n’y a pas de communication
radio établie avec le pilote. Une transition activée par la sortie de l’état ATC_ZZ00_Code
(qui indique la fin de la panne de TC) doit donc être ajoutée au diagramme. Une fois que cette
amélioration a été effectuée, et que l’on a donc modifié le système et la procédure à suivre, le scé-
nario précédent ne produit plus de reconnaissance de la chronique Incoherent flight mode UA/ATC
ce qui montre que le comportement a été correctement corrigé.
Un dernier exemple
Les autres chroniques que nous avons définies dans la Section 5.2.4 sont utilisées de la même
façon que les deux précédentes. Donnons un dernier scénario dangereux qui provoque cette fois-ci
la reconnaissance de la chronique ATC late. On considère un UA dont la TC est périodiquement hors
service, par exemple à cause d’un environnement perturbateur, et le code d’urgence du transpondeur
associé à la perte de TC ne cesse donc de s’activer et de se désactiver. Suite à cette situation
répétitive, le pilote comme l’ATC sont fatigués et moins réactifs, alors, lorsque la TC est tout d’un
coup définitivement perdue, personne ne réagit. Après un délai prédéfini dans son plan de vol, l’UA
commence à se dérouter vers un aéroport proche. Si ni le pilote, ni l’ATC ne réalisent le changement
de situation, d’autres appareils pourraient ne pas être correctement séparés de l’UA qui, lui,
ne peut plus recevoir d’instructions ce qui constitue donc un danger potentiel. La chronique ATC
late est alors reconnue, ce qui permet de déclencher une alarme et d’éviter une issue possiblement
184CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET
APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE
dangereuse.
Notons que le scénario évoqué comme exemple dans la Section 5.2.1 provoque une reconnaissance
de la chronique RPS rushed decision.
5.3 Surveillance du bon respect de procédures de sécurité à
suivre par un drone
Dans la lignée du cas d’application précédent, nous allons dans cette section utiliser notre
méthode de reconnaissance de comportements autour d’un second cas lié au système critique que
représente un drone, à savoir la surveillance de procédures de sécurité à suivre par un UA lorsqu’il
circule dans l’espace aérien. Nous commençons par décrire brièvement le cadre du problème (5.3.1).
Nous établissons ensuite les chroniques critiques à reconnaître pour mettre en place le système de
surveillance (5.3.3), puis nous appliquons ce système à des scénarios de simulation dans lesquels
nous cherchons à reconnaître les comportements critiques (5.3.2).
5.3.1 Cadre du problème
On considère ici un UA, intégré dans un système analogue à celui présenté dans la Section 5.2.1.
Il circule successivement au travers de l’espace aérien contrôlé et non contrôlé. L’espace aérien est
divisé en plusieurs zones (des boîtes tri-dimensionnelles d’une certaine classe nommée d’une lettre
de A à G) et le type de zone détermine la réglementation à suivre. C’est le rôle de l’ATC de diriger
les avions volant dans les zones contrôlées (classes A à E), et son objectif principal est d’éviter toute
collision tout en organisant le flux de la circulation. À l’entrée et à la sortie d’une zone, un avion
doit suivre des règles spécifiques, à savoir notamment régler sa fréquence radio pour communiquer
avec l’ATC, respecter des points de passage (waypoints), et attendre d’avoir reçu une autorisation
(clearance) avant de pouvoir entrer dans une nouvelle zone. La Figure 5.8 représente la trajectoire
d’un drone traversant plusieurs zones aux alentours de l’aéroport d’Ajaccio, ainsi que les fréquences
radio associées à chacune des zones.
Comme évoqué dans le cas d’étude précédent, l’insertion des UAs dans la circulation aérienne
générale est un problème d’actualité. Les avancées technologiques disponibles permettent maintenant
aux UAs de réaliser de nombreuses missions très intéressantes, mais les règles strictes qui
régissent le trafic aérien rendent difficile la circulation libre d’UAs, principalement pour des raisons
de sûreté et de sécurité. Il est donc intéressant de fournir des mécanismes de surveillance assurant
que toutes les procédures pertinentes sont correctement suivies par tout UA. Nous nous proposons
de fournir un tel outil à l’aide de notre bibliothèque de reconnaissance de comportements CRL.
On considère un UA décollant de l’aéroport d’Ajaccio en Corse (France). Dans cette région, les
feux de maquis sont très fréquents et la mission de l’UA est d’aller surveiller une certaine zone située
en dehors de l’espace aérien contrôlé. Pour ce faire, l’UA doit traverser successivement des zones
contrôlées pour ensuite quitter l’espace aérien contrôlé et atteindre son but. Nous allons exposer
notre système de surveillance sur une simulation de ce drone. La trajectoire de l’UA est calculée par
le battlelab de l’Onera, Battle Lab for Aerospace and Defence Experimentations (BLADE) [CBP10],
185Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Figure 5.7 – Vue d’ensemble aérienne de la trajectoire de l’UAS étudié
fire
Ajaccio
LFKJ
Gnd 121.7
Class D: CTR
118.075
Class D: TMA1
121.050
Class C
Class G
133.875
FL 195
FL 115
Key
frequencies
trajectory
Figure 5.8 – Représentation schématique des différentes zones traversées par l’UAS
186CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET
APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE
qui fournit un fichier détaillant les positions successives de l’avion chaque seconde, ainsi qu’une vue
d’ensemble aérienne de la trajectoire dont on a un aperçu dans la Figure 5.7. Une seconde vision
(simplifiée) de la trajectoire est décrite par la Figure 5.8, mettant en avant les différentes zones de
l’espace aérien à traverser par l’UA.
À partir de cet ensemble de positions, différents scénarios peuvent avoir lieu, pouvant mettre
en scène aussi bien un comportement nominal de l’UA que des infractions à la réglementation. Les
comportements dangereux possibles peuvent être décrits par le langage des chroniques, puis être
ajoutés à un moteur de reconnaissance de CRL pour être reconnus.
5.3.2 Mise en place du système de surveillance : écriture des chroniques
critiques à reconnaître
Nous allons maintenant utiliser la bibliothèque CRL pour traiter le cas d’étude présenté dans
la section précédente. On considère donc un UA décollant d’Ajaccio et traversant successivement
diverses zones de l’espace aérien. Il doit respecter une réglementation particulière et l’objectif est
d’identifier si et quand il s’éloigne de ces procédures.
Une première étape est d’identifier les évènements qui doivent être considérés en entrée pour
composer la base du flux à analyser. Dans la mise en place de cette étude, nous nous attachons
à réduire la quantité de données nécessaires en entrée du processus de reconnaissance. Certains
évènements n’ont pas besoin d’être fournis en entrée car ils peuvent être déduits des autres évènements.
Par exemple, le décollage de l’appareil peut être inféré des coordonnées de position. Ainsi,
nous réduisons la taille des données d’entrée et nous écrivons différents niveaux de chroniques où
les chroniques d’un niveau sont définies à partir des chroniques des niveaux inférieurs. Ceci permet
de réduire la complexité du processus de reconnaissance. Les finales du plus haut niveau sont
celles qui correspondent à la reconnaissance des comportements dangereux recherchés, alors que
les chroniques des niveaux inférieurs complètent et enrichissent le flux d’évènements en entrée.
Le flux d’évènements à analyser est composé des coordonnées de position ainsi que d’événements
basiques liés principalement au réglage de la fréquence radio et à des échanges entre les
différentes entités du système étudié (envoyer l’ordre d’un changement de fréquence, demander ou
donner une clearance pour une action spécifique, informer qu’un waypoint donné est atteint. . . ).
Ces évènements sont enrichis d’attributs qui identifient par exemple l’appareil (ID), la fréquence
(F REQ) ou le waypoint (WP) concernés.
Nous utilisons ensuite ces évènements de bas niveau pour écrire une première strate de chroniques
correspondant à la reconnaissance d’évènements simples avec des contraintes sur leurs attributs,
comme présenté dans le Tableau 5.9 avec les chroniques de Niveau 1. Par exemple, OnGround
correspond à un UA donné (identifié par ID) dont le niveau de vol est inférieur à une altitude donnée
(précisée par H). Un second exemple est FreqDiffFrom qui est reconnue lorsqu’un UA donné
a une fréquence radio réglée différemment de la fréquence attendue, et qui enregistre l’instant t
de la reconnaissance sous un paramètre dans une propriété pour le moment anonyme. Comme
mentionné dans la Section 5.1, la définition de ces chroniques est effectuée grâce à des classes C++
qui permettent d’écrire une définition générique pour tous les UAs et toutes les fréquences, par
exemple.
187Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
Tableau 5.9 – Quelques chroniques écrites pour surveiller les procédures de sécurité
Nom Formule de la chronique et éventuels prédicat
et/ou fonction de transformation d’attributs
ou description
Niv. 1
OnGround(ID, H)
FreqDiffFrom(ID, F REQ)
ClearanceTakeOff(ID)
InsideBox(ID, BOX)
. . .
position ♦.id = ID ∧ ♦.fle < H
set_frequency ♦.id = ID ∧ ♦.freq 6= F REQ
fonction de transformation d’attributs
enregistrant l’instant de
reconnaissance sous le nom time
clear_takeoff ♦.id = ID
position ♦.id = ID
∧insideBOX(♦.lat, ♦.lon, ♦.fle)
. . .
Niv. 2
TakeOff(ID, H)
WaypointReached(ID, W P)
QuitZone(ID, ZONE)
. . .
@(OnGround(ID, H) !! AboveGround(ID, H))
@(OutsideBox(ID, W P)! ! InsideBox(ID, W P))
@(InZone(ID, ZONE)! ! OutZone(ID, ZONE))
. . .
Niv. 3
NoClearanceToTakeOff(ID)
NoFrequencyToTakeOff(ID)
NoRightToTakeOff(ID)
IncoherentFrequency(ID)
IncoherentAutoMode(ID)
. . .
(ClearanceTakeOff(ID)! ! TakeOff(ID, 15))
at least 60
|| ((τ, 0) TakeOff(ID, 15))
-[ClearanceTakeOff(ID)]
(FreqDiffFrom(ID, 118.075)
TakeOff(ID, 15) then 5)
-[FreqDiffFrom(ID, −1)]
|| ( (FreqDiffFrom(ID, 118.075)→x
during (TakeOff(ID,15) then 5) )
-[FreqDiffFrom(ID, −1)→y],
x.time < y.time )
|| ((τ, 0) TakeOff(ID, 15) then 5)
-[FreqDiffFrom(ID, −1)]
Interdiction de décoller sans avoir reçu de clearance
au moins 1 min avant, et sans avoir réglé la fré-
quence radio à celle de la tour (118.075) avant ou
au plus 5 s plus tard.
Interdiction de changer de zone sans avoir réglé la
fréquence radio correctement, au plus 5 s plus tard.
Interdiction d’entrer en mode de vol automatique
sans être dans l’espace non contrôlé (classe G).
. . .
188CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET
APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE
Nous définissons ensuite des chroniques légèrement plus complexes, formant une seconde strate,
et utilisant les chroniques de Niveau 1, comme exposé dans le Tableau 5.9. Nous allons détailler
ici la structure de la chronique WaypointReached. Pour des raisons pratiques, un waypoint n’est
pas représenté par un point unique dans l’espace, mais par une (petite) boîte centrée autour d’un
point, ce qui permet d’avoir une certaine tolérance vis-à-vis de petites imprécisions. Le waypoint
donné est atteint lorsque l’UA identifié change d’état et passe d’une position à l’extérieur de la boîte
à une position dedans. La chronique est ensuite rendue ponctuelle par l’opérateur @. Ceci permet
ensuite d’utiliser la chronique dans des chroniques de niveau supérieur comme s’il s’agissait d’un
évènement du flux analysé, c’est-à-dire une activité datée à un instant ponctuel t correspondant à
la fin de sa reconnaissance.
Contrairement aux chroniques de niveaux 1 et 2 qui pouvaient faire partie du flux d’évènements,
les chroniques de Niveau 3 sont complexes et chargées de détecter des comportements dangereux
anormaux. Ainsi, lors d’un vol nominal, les chroniques de Niveau 3 ne devraient pas être reconnues,
contrairement à certaines chroniques de niveaux inférieurs. Nous allons étudier plus en détail l’une
des chroniques de Niveau 3 présentées dans le Tableau 5.9, à savoir NoFrequencyToTakeOff. Cette
chronique correspond à une situation où un UA décolle sans avoir activé la fréquence radio correcte.
Le comportement dont il s’agit peut être reconnu dans trois situations différentes :
— « Le pilote passe à une fréquence incorrecte, puis décolle après quoi 5 s s’écoulent. Cependant,
durant tout ce temps, la fréquence radio n’a pas été corrigée. » Notons que, dans
l’absence, FreqDiffFrom(ID, −1) désigne l’UA ID qui modifie sa fréquence radio à une
fréquence différente de -1, c’est-à-dire à toute fréquence.
— « Le pilote règle la mauvaise fréquence radio dans les 5 s après le décollage, et elle n’est
pas corrigée d’ici la fin de ces 5 s. » Il est nécessaire de préciser ici grâce à un prédicat que
l’absence s’applique à partir de l’instant t du dernier changement incorrect de fréquence.
Nous utilisons donc ici un prédicat ayant une portée sur les deux chroniques construisant
une absence. Ce type de construction est très fréquent et justifie le cadre théorique mis en
place dans le Chapitre 2.
— « Aucune fréquence n’est réglée avant au moins 5 s après le décollage. » Rappelons que
(τ, 0) désigne un instant de temps pur de date 0 qui correspond à l’origine du temps choisie,
c’est-à-dire ici au début du scénario.
Les définitions formelles des autres chroniques ne sont pas toutes précisées dans le Tableau 5.9
mais leurs structures sont comparables à celle de la chronique NoFrequencyToTakeOff.
Ces trois niveaux de chroniques offrent ainsi une mise en place complète pour la détection de
comportements dangereux liés à des procédures de sécurité négligées.
5.3.3 Application à des scénarios de simulation avec CRL
Nous pouvons maintenant surveiller le système de drone à l’aide des chroniques définies dans la
section précédente. Nous allons appliquer notre mise en place à plusieurs simulations de situations
dangereuses ou non, mais cela illustre que notre cadre de travail peut s’appliquer aussi bien en
temps réel car la quantité et la précision des données utilisées sont adéquates.
Comme annoncé dans la Section 5.3.1, les données simulées sont obtenues en ajoutant divers
189Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
évènements procéduraux à un fichier contenant les positions successives de l’appareil étudié. Ce
fichier est généré par le battlelab BLADE de l’Onera qui fournit une trajectoire réelle au départ de
l’aéroport d’Ajaccio en passant par un ensemble donné de waypoints. Les données produites sont
précises et abondantes : la latitude, la longitude et l’altitude (ou niveau de vol) sont procurées
toutes les secondes à la précision du millionième de degré, accompagnées de la vitesse de l’appareil.
Divers scénarios ont été testés avec la mise en place précisée dans la section précédente, dont
notamment des scénarios nominaux où les chroniques de Niveaux 1 et 2 sont correctement reconnues
mais les chroniques de Niveau 3 ne sont pas détectées, comme attendu. Nous allons maintenant
observer plus en détail l’étude d’un scénario potentiellement dangereux.
Considérons un UA identifié par l’ID 153 qui commence par régler sa fréquence radio à 121.7,
ce qui correspond à la fréquence correcte pour un appareil au sol (cf. Figure 5.8). Le même avion
quitte alors le parking avec pour objectif un décollage proche. Une fois qu’il atteint le waypoint
précédant le décollage, il informe l’ATC, qui, en retour, ordonne le passage à la fréquence radio
118.075, c’est-à-dire la fréquence associée à la zone de l’espace aérien où se déroule le décollage.
Suite aux instructions, l’UA change correctement de fréquence, puis, après l’avoir réclamée, reçoit
une clearance pour un décollage. 5 s plus tard, il commence à rouler et décolle ensuite 23 s après.
Jusqu’à ce moment là, les procédures de sécurité ont été correctement suivies. Cependant, quelques
secondes après, l’UA règle sa fréquence radio à la fréquence 121.050 qui correspond à la fréquence
de la zone aérienne suivante, mais ce changement est effectué trop tôt dans la procédure. L’appareil
se trouve donc dans une situation potentiellement dangereuse, puisqu’il n’est plus en contact avec
le bon représentant de l’ATC.
Dans ce scénario, la fréquence requise pour le décollage est correctement réglée avant le décollage
mais changée à tort peu après. Cette situation est dangereuse puisque l’ATC ne peut plus communiquer
avec l’appareil, ce qui peut porter atteinte à sa mission d’éviter toute collision. Comme
voulu, cette situation est correctement détectée par CRL ce qui est rapporté ci-dessous. Pour des
raisons de clarté, seuls les évènements liés à l’UA 153 sont indiqués mais des évènements entrelacés
concernant d’autres appareils étaient considérés et cela n’affecte pas le résultat du processus de
reconnaissance. De plus, du fait de leur forte périodicité, seul un évènement de position est précisé,
à titre d’exemple.
t = 0 Engine created
t = 0 Added chronicle : NoFrequencyToTakeOff ID=153
t = 0 Added Event : set_frequency ID=153 FREQ=121.7
t = 7 Added Event : quit_parking ID=153
t = 32 Added Event : inform_WP_reached ID=153 WP=GRD
t = 35 Added Event : order_frequency ID=153 FREQ=118.075
t = 37 Added Event : set_frequency ID=153 FREQ=118.075
t = 37 Added Event : ask_clearance_takeoff ID=153
t = 45 Added Event : clearance_takeoff ID=153
t = 50 Added Event : position LAT=41.9288 LON=8.80548 FLE=14.9821
t = 75 Added Event : set_frequency ID=153 FREQ=121.05
t = 78 Chronicle recognition : NoFrequencyToTakeOff ID=153
Reco Set = {hh⊥,h(set_frequency, 75),h(position, 73),(τ, 78)iii, ⊥i}
190CHAPITRE 5. BIBLIOTHÈQUE C++ DE RECONNAISSANCE DE COMPORTEMENTS ET
APPLICATIONS À LA SURVEILLANCE DE LA SÉCURITÉ D’AVIONS SANS PILOTE
Notons que l’ensemble des reconnaissances permet non seulement d’identifier quels sont les
évènements qui ont mené à la situation dangereuse (ici, l’évènement clé est set_frequency à
t = 75) mais il expose également quelle branche de la disjonction a été reconnue.
Un certain nombre de tels scénarios ont été testés avec notre cadre de reconnaissance de chroniques,
de façon à couvrir une grande variété d’arrangements d’évènements possibles ; et les comportements
dangereux des chroniques de Niveau 3 ont été fidèlement reconnus.
5.4 Conclusion
Dans ce chapitre, nous avons décrit le fonctionnement de la bibliothèque CRL que nous avons
conçue. Nous disposons, au travers de CRL, d’une implémentation efficace d’un processus de reconnaissance
de comportements à l’aide de formalisme des chroniques. Cette mise en place est fondée
sur la base théorique solide présentée dans le Chapitre 2 ce qui rend CRL adaptée à être employée
pour les systèmes critiques nécessitant de fortes garanties, comme les UA. En tant que bibliothèque
C++, CRL est dès à présent utilisable dans un contexte industriel au travers d’une API dédiée.
Nous avons déposé la bibliothèque auprès de l’Agence pour la Protection des Programmes, et elle
est disponible sous la licence libre GNU LGPL 5
.
Nous avons utilisé CRL pour traiter deux cas d’étude critiques liés à la sécurité d’un UA. Dans
le premier cas, nous avons surveillé la cohérence entre les différents agents mis en jeu au sein d’un
système de drone (UAS) dans le cadre de la procédure à suivre lors d’une ou plusieurs pannes de
liaisons de communication. Dans ce contexte, le processus de reconnaissance de comportements
permet non seulement d’activer des alarmes dans le cas de situations dangereuses, mais il offre
aussi un outil d’assistance lors de l’élaboration des procédures à suivre en cas de panne.
Dans le second cas, nous avons surveillé un UA circulant dans l’espace aérien et devant suivre
des procédures de sécurité variées et précises, dépendant des zones aériennes qu’il traverse. CRL
nous permet de détecter les situations dangereuses où l’UA ne respecte pas scrupuleusement ces
procédures. Des alarmes peuvent alors être déclenchées ce qui peut permettre d’éviter les dangers
susceptibles de découler de la situation.
Ces deux cas d’études mettent en avant les fonctionnalités de CRL et illustrent notamment
l’utilité des différents opérateurs du langage des chroniques. Notons que, dans ces deux cas, l’analyse
de comportements a uniquement été effectuée sur des simulations mais cela est dû à la difficulté
d’obtenir des données réelles. CRL peut aussi bien être utilisée pour l’analyse de cas réels.
5. https://code.google.com/p/crl/
191Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
192Conclusion et perspectives
Dans le cadre de cette thèse, nous nous sommes concentrés sur la formalisation et l’extension
d’un langage de description de comportements, le langage des chroniques. Nous avons également
développé deux modèles d’implémentation d’un processus de reconnaissance de ces comportements
pour ensuite utiliser l’un de ces deux modèles pour traiter deux cas d’application.
Nous nous sommes donc attelés à la problématique de l’analyse de flux importants d’évènements
afin d’y détecter des situations complexes pouvant être aussi bien dangereuses que souhaitées,
domaine du Complex Event Processing (CEP). Cette technique est applicable en ligne et procède
à une historisation des évènements impliqués, ce qui permet, d’une part, de diagnostiquer dès leur
occurrence les situations recherchées, et, d’autre part, de pouvoir remonter aux évènements étant
à l’origine de ces situations.
Les domaines d’application de cette technique sont très variés, et nous nous sommes restreints
au domaine de l’aéronautique, et plus particulièrement à l’insertion de drones civils dans l’espace
aérien. Dans ce cadre, nous avons traité deux cas d’application. Tout d’abord, nous nous sommes
attachés à l’analyse des réglementations à suivre par un système d’avion sans pilote en cas de
pannes. Des études détaillées ont été menées à l’Onera afin d’établir des réglementations visant
à introduire les avions sans pilotes dans l’espace aérien. Il s’agissait notamment d’imposer et de
codifier un comportement à suivre en cas de pannes. Ces systèmes étant très critiques, il est
impératif d’obtenir des garanties fortes sur ces réglementations, et ce niveau de garantie ne peut
être obtenu que par des méthodes formelles, i.e. une analyse logique du système. Nous avons
donc mis à profit notre processus de reconnaissance de comportements pour faire ressortir les
situations incohérentes pouvant apparaître entre les différentes entités du système qui est composé
du drone, du pilote et du contrôleur de trafic aérien, et où les échanges de données sont très
complexes. Nous avons pu mettre en avant à la fois des situations incohérentes dues à une erreur
humaine (de la part du pilote ou du contrôleur aérien) et des situations incohérentes dues à un
trou dans la réglementation. Cette mise en place a donc permis d’exposer des points précis de
la réglementation à compléter, tout en fournissant un outil pouvant activer des alarmes dans le
cas de situations dangereuses dues à l’homme [CCKP13b, CCKP12b]. Une seconde application
concernant l’insertion de drones civils dans l’espace aérien a également été réalisée dans le cadre
de la surveillance de procédures de sécurité liées à la traversée de différents types de zones de
l’espace aérien. Le processus de reconnaissance de comportements a été affecté à la reconnaissance
de situations dangereuses provenant du non respect de procédures de sécurité [PBC+].
193Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
La mise en place de ces applications repose sur un langage logique, le langage des chroniques,
permettant de décrire formellement des agencements complexes d’évènements à l’aide de différents
opérateurs temporels. Nous avons construit une formalisation mathématique complète autour de ce
langage, définissant entre autres la notion d’événement et surtout celle de la reconnaissance d’une
chronique, notion qui est exprimée par une sémantique ensembliste arborescente construite dans
une induction structurelle. La problématique double de disposer de reconnaissances en ligne (c’est-
à-dire au fur et à mesure du flux d’évènements) et avec historisation est centrale. Tout en continuant
à respecter ces contraintes, nous avons étendu l’expressivité du langage en ajoutant la possibilité
d’exprimer de nouvelles contraintes temporelles plus précises, et en raffinant la notion d’événement,
leur donnant la possibilité d’avoir des attributs de toutes sortes sur lesquels il est ensuite possible
d’exprimer des contraintes à l’aide de prédicats [PBC+]. Ces extensions sont cruciales car de
nombreuses applications industrielles nécessitent de pouvoir exprimer des contraintes de corrélation
entre certains attributs liés aux évènements d’une même reconnaissance.
Afin de pouvoir appliquer ce cadre théorique à la reconnaissance de comportements, nous
avons réalisé deux modèles du processus de reconnaissance de chroniques. Nous avons proposé une
première modélisation conçue à l’aide de réseaux de Petri colorés, un outil d’informatique théorique
offrant un langage de spécification formelle bien adapté ainsi qu’une représentation graphique
simple. Les outils disponibles autour des réseaux de Petri nous ont permis de simuler et de visualiser
les étapes de la reconnaissance de chroniques, et aussi de tester la correction des réseaux. En
outre, nous avons prouvé un résultat d’adéquation des constructions de réseaux de Petri avec la
sémantique ensembliste du langage des chroniques [CCKP12a]. Nous avons également fait évoluer
ce modèle de reconnaissance de chroniques en y incorporant une structure de contrôle permettant de
déterminiser ce modèle initialement non-déterministe et assurant la gestion du flux d’évènements
qui n’était pas encore implémentée. Nous avons réalisé ces extensions tout en conservant bien
entendu à la fois une construction modulaire et de la concurrence [CCKP13a].
Parallèlement, un outil de reconnaissance de chroniques, Chronicle Recognition Library (CRL)
dont les algorithmes sont directement calqués sur la sémantique ensembliste a également été élaboré
en C++. Cet outil est davantage adapté à nos utilisations applicatives pour l’industrie aéronautique
car il est homogène avec les outils utilisés et il permet de tirer parti de l’intégralité du cadre théorique.
C’est donc CRL que nous avons utilisé pour réaliser les applications évoquées ci-dessus. La bibliothèque
CRL est disponible librement sous la licence GNU LGPL 6
[PBC+, CCKP13b, CCKP12b].
De nombreuses perspectives tant théoriques qu’applicatives s’offrent dans la poursuite de ce
travail. Les différents axes principaux sont les suivants :
Réseaux de Petri Une première extension du modèle en réseaux de Petri colorés serait de modifier
le formalisme de représentation des reconnaissances dans les réseaux en passant des
listes d’évènements à des arbres d’évènements. Ceci permettrait d’uniformiser les modes de
représentation avec le cadre théorique formel et fournirait ensuite une voie pour achever la dé-
monstration de la correction du modèle en réseaux de Petri colorés vis à vis de la sémantique
ensembliste arborescente.
6. https://code.google.com/p/crl/
194Conclusion et perspectives
Par ailleurs, il faudrait compléter le modèle en réseaux de Petri colorés pour pouvoir prendre
en compte l’ensemble des constructions du langage disponibles dans le cadre théorique. Ceci
implique également de prolonger en parallèle la preuve d’adéquation.
Ce modèle étendu en réseaux de Petri pourra ensuite être utilisé dans le cadre d’une application
mettant en jeu un système modélisé lui-même en réseaux de Petri colorés. Pour ce faire,
il faudrait mettre en place un mécanisme de collecte des évènements à analyser et provenant
du modèle. Il suffirait ensuite de connecter ce mécanisme à la place Events des réseaux qui
doit contenir le flux des évènements à traiter.
Pour pouvoir utiliser le modèle en réseaux de Petri colorés pour traiter d’autres types d’applications,
il faudra également élaborer un programme qui réponde au problème de la génération
automatique de réseaux, ce qui est envisageable grâce à leur construction modulaire inductive
formelle. Il s’agit alors de construire automatiquement les réseaux associés aux chroniques
recherchées et le programme correspondant à ces réseaux.
Cadre théorique formel Au sein du cadre théorique formel, il serait intéressant de chercher
à étendre l’expressivité du langage en ajoutant par exemple la possibilité d’exprimer des
quantifications sur les attributs d’évènements, ou bien en ajoutant de nouvelles constructions
permettant réaliser plus simplement la reconnaissance de répétitions. Ceci permettrait de
décrire précisément des situations plus complexes et donc de traiter davantage d’applications.
Pour chercher à optimiser les formules de chroniques à reconnaître, il faudrait mettre en
avant des règles de transformation pouvant mener à une formulation plus efficace de la même
chronique. Un système d’analyse de satisfiabilité de chroniques pourrait également être utile
à l’utilisateur.
Il serait aussi intéressant d’étudier les différents formalismes de modélisation d’incertitudes
afin de définir lesquels sont adaptés à l’introduction d’incertitudes à différents niveaux du formalisme,
que ce soit sur les comportements à reconnaître, les dates d’occurrence ou les autres
attributs des évènements, ou même au niveau de l’occurrence elle-même des évènements.
Bibliothèque CRL et applications En parallèle de ces extensions théoriques, il faudrait faire
évoluer la bibliothèque CRL pour pouvoir tirer parti de ces extensions.
L’élargissement du champ d’application de la reconnaissance de chroniques, aussi bien dans
le cadre de simulations qu’en temps réel, permettrait de faire avancer CRL et de mettre en
avant d’éventuelles autres évolutions nécessaires.
Pour améliorer l’efficacité en temps du programme, il serait intéressant de mettre à profit
la concurrence, mise en avant notamment par le modèle en réseaux de Petri colorés, pour
paralléliser le processus.
Pour finir, l’écriture de chroniques, qui représente actuellement l’une des difficultés principales
dans le domaine du CEP, doit pour le moment être réalisée « à la main » par des experts.
Il faudrait étudier différentes méthodes (apprentissage, statistique,. . . ) pour mettre en place
un outil d’aide à l’écriture de chroniques permettant de se rapprocher d’une couverture
exhaustive des comportements à reconnaître dans le cadre d’une application donnée.
195Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
196Bibliographie
[AC06] Raman Adaikkalavan and Sharma Chakravarthy. SnoopIB: Interval-based event
specification and detection for active databases. Data & Knowledge Engineering,
59(1):139–165, 2006. (2 citations pp. 37 et 38)
[AD01] Armen Aghasaryan and Christophe Dousson. Mixing chronicle and Petri net approaches
in evolution monitoring problems. In Proceedings of the Eleventh International
Workshop on Principles of Diagnosis (DX2001), 2001. (cité p. 25)
[AEFF12] Alexander Artikis, Opher Etzion, Zohar Feldman, and Fabiana Fournier. Event processing
under uncertainty. In Proceedings of the 6th ACM International Conference
on Distributed Event-Based Systems, pages 32–43. ACM, 2012. (cité p. 17)
[AFR+10] Darko Anicic, Paul Fodor, Sebastian Rudolph, Roland Stühmer, Nenad Stojanovic,
and Rudi Studer. A rule-based language for complex event processing and reasoning.
In Proceedings of the Fourth International Conference on Web Reasoning and Rule
Systems (RR), pages 42–57. Springer, 2010. (4 citations pp. 20, 21, 22, et 211)
[AFSS09] Darko Anicic, Paul Fodor, Roland Stuhmer, and Nenad Stojanovic. Event-driven
approach for logic-based complex event processing. In International Conference on
Computational Science and Engineering (CSE), volume 1, pages 56–63. IEEE, 2009.
(cité p. 22)
[All81] James F. Allen. An interval-based representation of temporal knowledge. In Proceedings
of the Seventh International Joint Conference on Artificial Intelligence (IJCAI),
pages 221–226, 1981. (cité p. 10)
[All83] James F. Allen. Maintaining knowledge about temporal intervals. Communications
of the ACM, pages 832–843, 1983. (2 citations pp. 10 et 47)
[AMPP12] Alexander Artikis, Robin Marterer, Jens Pottebaum, and Georgios Paliouras. Event
processing for intelligent resource management. In Proceedings of European Conference
on Artificial Intelligence (ECAI). IOS Press, pages 943–948, 2012. (cité p. 19)
[Ani11] Darko Anicic. Event Processing and Stream Reasoning with ETALIS. PhD thesis,
Karlsruhe Institute of Technology, 2011. (cité p. 20)
[AP09] Alexander Artikis and George Paliouras. Behaviour recognition using the event calculus.
In Artificial Intelligence Applications and Innovations III, pages 469–478.
Springer, 2009. (2 citations pp. 17 et 39)
197Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
[APPS10] Alexander Artikis, Georgios Paliouras, François Portet, and Anastasios Skarlatidis.
Logic-based representation, reasoning and machine learning for event recognition. In
Proceedings of the Fourth ACM International Conference on Distributed Event-Based
Systems. ACM, 2010. (cité p. 18)
[ARFS11] Darko Anicic, Sebastian Rudolph, Paul Fodor, and Nenad Stojanovic. Retractable
complex event processing and stream reasoning. In Proceedings of the 5th international
conference on Rule-based reasoning, programming, and applications, pages
122–137. Springer, 2011. (cité p. 23)
[ARFS12] Darko Anicic, Sebastian Rudolph, Paul Fodor, and Nenad Stojanovic. Real-time
complex event recognition and reasoning–a logic programming approach. Applied
Artificial Intelligence, 26(1-2):6–57, 2012. (2 citations pp. 20 et 22)
[ASP10a] Alexander Artikis, Marek Sergot, and Georgios Paliouras. A logic programming approach
to activity recognition. In Proceedings of the 2nd ACM international workshop
on Events in multimedia, pages 3–8. ACM, 2010. (cité p. 39)
[ASP10b] Alexander Artikis, Anastasios Skarlatidis, and Georgios Paliouras. Behaviour recognition
from video content: a logic programming approach. International Journal on
Artificial Intelligence Tools, 19(02):193–209, 2010. (2 citations pp. 17 et 39)
[ASP12] Alexander Artikis, Marek Sergot, and Georgios Paliouras. Run-time composite event
recognition. In Proceedings of the 6th ACM International Conference on Distributed
Event-Based Systems, pages 69–80. ACM, 2012. (2 citations pp. 9 et 19)
[ASPP12] Alexander Artikis, Anastasios Skarlatidis, François Portet, and Georgios Paliouras.
Logic-based event recognition. Knowledge Engineering Review, 27(4):469–506, 2012.
(2 citations pp. 9 et 35)
[AWG+13] Alexander Artikis, Matthias Weidlich, Avigdor Gal, Vana Kalogeraki, and Dimitrios
Gunopulos. Self-adaptive event recognition for intelligent transport management. In
Big Data, 2013 IEEE International Conference on, pages 319–325. IEEE, 2013. (cité
p. 20)
[AWS+14] Alexander Artikis, Matthias Weidlich, Francois Schnitzler, Ioannis Boutsis, Thomas
Liebig, Nico Piatkowski, Christian Bockermann, Katharina Morik, Vana Kalogeraki,
Jakub Marecek, et al. Heterogeneous stream processing and crowdsourcing for urban
traffic management. In Proceedings of the 17th International Conference onExtending
Database Technology (EDBT 2014). Athens, Greece, 2014. (cité p. 20)
[BCC07] Olivier Bertrand, Patrice Carle, and Christine Choppy. Chronicle modelling using
automata and coloured Petri nets. In The 18th International Workshop on Principles
of Diagnosis (DX-07), pages 229–234, 2007. (cité p. 30)
[BCC08] Olivier Bertrand, Patrice Carle, and Christine Choppy. Towards a coloured Petri nets
semantics of a chronicle language for distributed simulation processing. In CHINA
2008 Workshop (Concurrency metHods: Issues aNd Applications), pages 105–119,
June 2008. (cité p. 30)
198BIBLIOGRAPHIE
[BCC09] Olivier Bertrand, Patrice Carle, and Christine Choppy. Coloured Petri nets for chronicle
recognition. In Proceedings of the fourteenth International Conference on Reliable
Software Technologies, Ada-Europe, June 2009. (cité p. 30)
[BD91] Bernard Berthomieu and Michel Diaz. Modeling and verification of time dependent
systems using time Petri nets. IEEE Transactions on Software Engineering,
17(3):259–273, 1991. (cité p. 28)
[Ber02] Bruno Berstel. Extending the Rete algorithm for event management. In Proceedings
of the Ninth International Symposium on Temporal Representation and Reasoning
(TIME), pages 49–51. IEEE, 2002. (cité p. 37)
[Ber09] Olivier Bertrand. Détection d’activités par un système de reconnaissance de chroniques
et application au cas des simulations distribuées HLA. PhD thesis, Université
Paris 13 and ONERA, 2009. (3 citations pp. 9, 30, et 181)
[Bor85] Gary C. Borchardt. Event calculus. In Proceedings of the Ninth International Joint
Conference on Artificial Intelligence (IJCAI), pages 524–527, 1985. (pas de citation)
[BSC02] Amine Boufaied, Aaudine Subias, and Michel Combacau. Chronicle modeling by
Petri nets for distributed detection of process failures. In Proceedings of the Second
IEEE International Conference on Systems, Man and Cybernetics (SMC’02). IEEE
Computer Society Press, 2002. (cité p. 28)
[BSC04] Amine Boufaied, Audine Subias, and Michel Combacau. Distributed fault detection
with delays consideration. In 15th International Workshop on Principles of Diagnosis,
Carcassonne, 2004. (2 citations pp. 28 et 29)
[BSC05] Amine Boufaied, Audine Subias, and Michel Combacau. Distributed time constraints
verification modelled with time Petri nets. In Proceedings of the 17th IMACS World
Congress, Paris, France, 2005. (2 citations pp. 28 et 29)
[BTF07] Rahul Biswas, Sebastian Thrun, and Kikuo Fujimura. Recognizing activities with
multiple cues. In Human Motion — Understanding, Modeling, Capture and Animation,
pages 255–270. Springer, 2007. (cité p. 35)
[CBDO98] Patrice Carle, Philippe Benhamou, François-Xavier Dolbeau, and Manuel Ornato.
La reconnaissance d’intentions comme dynamique des organisations. In 6es Journées
Francophones pour l’Intelligence Artificielle Distribuée et les Systèmes Multi-Agents
(JFIADSMA’98), 1998. (cité p. 42)
[CBP10] Raphael Cuisinier, Michael Brunel, and Stéphanie Prudhomme. Using open source to
build comprehensive battlespace simulations. In Simulation Technology and Training
Conference (SimTecT), 2010. (2 citations pp. 12 et 185)
[CCK11] Patrice Carle, Christine Choppy, and Romain Kervarc. Behaviour recognition using
chronicles. In Proceedings of the 5th IEEE International Symposium on Theoretical
Aspects of Software Engineering, pages 100–107, 2011. (21 citations pp. 9, 10, 11, 30,
31, 42, 43, 44, 46, 47, 48, 50, 53, 54, 57, 60, 68, 70, 97, 104, et 115)
199Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
[CCKP12a] Patrice Carle, Christine Choppy, Romain Kervarc, and Ariane Piel. Behavioural
analysis for distributed simulations. In Proceedings of the Nineteenth Asia-Pacific
Software Engineering Conference (APSEC), 2012. (3 citations pp. 11, 70, et 194)
[CCKP12b] Patrice Carle, Christine Choppy, Romain Kervarc, and Ariane Piel. Handling Breakdowns
in Unmanned Aircraft Systems. In Proceedings of the Eighteenth International
Symposium on Formal Methods (FM) - Doctoral Symposium, 2012. (4 citations pp. 11,
166, 193, et 194)
[CCKP13a] Patrice Carle, Christine Choppy, Romain Kervarc, and Ariane Piel. A formal coloured
Petri net model for hazard detection in large event flows. In Proceedings of the
twentieth Asia-Pacific Software Engineering Conference (APSEC), 2013. (3 citations
pp. 11, 134, et 194)
[CCKP13b] Patrice Carle, Christine Choppy, Romain Kervarc, and Ariane Piel. Safety of unmanned
aircraft systems facing multiple breakdowns. In Proceedings of the First
French-Singaporean Workshop on Formal Methods and Applications (FSFMA), 2013.
(4 citations pp. 11, 166, 193, et 194)
[CCQW03] Guy Carrault, Marie-Odile Cordier, Rene Quiniou, and Feng Wang. Temporal abstraction
and inductive logic programming for arrhythmia recognition from electrocardiograms.
Artificial Intelligence in Medicine, 28(3):231–263, 2003. (cité p. 39)
[CD97] Luca Chittaro and Michel Dojat. Using a general theory of time and change in
patient monitoring: experiment and evaluation. Computers in Biology and Medicine,
27(5):435–452, 1997. (cité p. 39)
[CD00] Marie-Odile Cordier and Christophe Dousson. Alarm driven monitoring based on
chronicles. In 4th SafeProcess, pages 286–291, 2000. (2 citations pp. 27 et 39)
[CGR+07] Marie-Odile Cordier, Xavier Le Guillou, Sophie Robin, Laurence Rozé, and Thierry
Vidal. Distributed Chronicles for On-line Diagnosis of Web Services. In The 18th
International Workshop on Principles of Diagnosis (DX-07), pages 37–44, 2007. (cité
p. 39)
[CKAK94] Sharma Chakravarthy, Vidhya Krishnaprasad, Eman Anwar, and Seung-Kyum Kim.
Composite events for active databases: Semantics, contexts and detection. In 20th
International Conference on Very Large Data Bases (VLDB), volume 94, pages 606–
617, 1994. (2 citations pp. 37 et 38)
[CM94] Sharma Chakravarthy and Deepak Mishra. Snoop: An expressive event specification
language for active databases. Data & Knowledge Engineering, 14(1):1–26, 1994. (2
citations pp. 37 et 38)
[CM96] Luca Chittaro and Angelo Montanari. Efficient temporal reasoning in the cached
event calculus. Computational Intelligence, 12(3):359–382, 1996. (cité p. 18)
[CM10] Gianpaolo Cugola and Alessandro Margara. TESLA: a formally defined event specification
language. In Proceedings of the Fourth ACM International Conference on
Distributed Event-Based Systems, pages 50–61. ACM, 2010. (pas de citation)
200BIBLIOGRAPHIE
[CM12] Gianpaolo Cugola and Alessandro Margara. Processing flows of information: From
data stream to complex event processing. ACM Computing Surveys (CSUR),
44(3):15, 2012. (4 citations pp. 13, 14, 15, et 34)
[CMM12] Damien Cram, Benoît Mathern, and Alain Mille. A complete chronicle discovery
approach: application to activity analysis. Expert Systems, 29(4):321–346, 2012. (cité
p. 39)
[CMZ09] Antonio Cau, Ben Moszkowski, and Hussein Zedan. Interval temporal logic. URL:
http://www.cms.dmu.ac.uk/˜cau/itlhomepage/itlhomepage.html, 2009. (pas de citation)
[CP92] Søren Christensen and Laure Petrucci. Towards a modular analysis of coloured Petri
nets. Application and Theory of Petri Nets 1992, pages 113–133, 1992. (3 citations
pp. 74, 75, et 76)
[CV98] Silvia Coradeschi and Thierry Vidal. Accounting for temporal evolutions in highly
reactive decision-making. In Proceedings of the Fifth IEEE International Workshop
on Temporal Representation and Reasoning, pages 3–10, 1998. (cité p. 39)
[dCRN13] Otávio M. de Carvalho, Eduardo Roloff, and Philippe O. A. Navaux. A survey of the
state-of-the-art in event processing. In Proceedings of the 11th Workshop on Parallel
and Distributed Processing (WSPPD), 2013. (cité p. 35)
[DD99] Christophe Dousson and Thang Vu Du’ong. Discovering chronicles with numerical
time constraints from alarm logs for monitoring dynamic systems. In Proceedings
of the Sixteenth International Joint Conference on Artificial Intelligence (IJCAI),
volume 16, pages 620–626, 1999. (2 citations pp. 24 et 27)
[DG94] Christophe Dousson and Malik Ghallab. Suivi et reconnaissance de chroniques. Revue
d’intelligence artificielle, 8(1):29–61, 1994. (2 citations pp. 26 et 27)
[DGG93] Christophe Dousson, Paul Gaborit, and Malik Ghallab. Situation recognition: Representation
and algorithms. In Proceedings of the Thirteenth International Joint Conference
on Artificial Intelligence (IJCAI), pages 166–172, Chambéry, France, 1993. (4
citations pp. 23, 24, 25, et 42)
[DGK+00] Patrick Doherty, Gösta Granlund, Krzystof Kuchcinski, Erik Sandewall, Klas Nordberg,
Erik Skarman, and Johan Wiklund. The WITAS unmanned aerial vehicle
project. In ECAI, pages 747–755, 2000. (cité p. 39)
[DKH09a] Patrick Doherty, Jonas Kvarnström, and Fredrik Heintz. A temporal logic-based
planning and execution monitoring framework for unmanned aircraft systems. In
6th International Conference on Recent Advances in Intrusion Detection (RAID’03),
2009. (cité p. 39)
[DKH09b] Patrick Doherty, Jonas Kvarnström, and Fredrik Heintz. A temporal logic-based
planning and execution monitoring framework for unmanned aircraft systems. Autonomous
Agents and Multi-Agent Systems, pages 332–377, 2009. (cité p. 39)
201Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
[DL09] Pedro Domingos and Daniel Lowd. Markov logic: An interface layer for artificial intelligence.
Synthesis Lectures on Artificial Intelligence and Machine Learning, 3(1):1–
155, 2009. (cité p. 19)
[DLM07] Christophe Dousson and Pierre Le Maigat. Chronicle recognition improvement using
temporal focusing and hierarchization. In Proceedings of International Joint Conference
on Artificial Intelligence (IJCAI), pages 324–329, 2007. (5 citations pp. 9, 23,
25, 26, et 211)
[Doj96] Michel Dojat. Realistic model for temporal reasoning in real-time patient monitoring.
Applied Artificial Intelligence, 10(2):121–144, 1996. (cité p. 39)
[Dou94] Christophe Dousson. Suivi d’évolution et reconnaissance de chroniques. PhD thesis,
Université Paul Sabatier de Toulouse, 1994. (2 citations pp. 25 et 211)
[Dou96] Christophe Dousson. Alarm driven supervision for telecommunication network: IIOn-line
chronicle recognition. Annales des Télécommunications, 9/10(51):493–500,
septembre/octobre 1996. (2 citations pp. 24 et 211)
[Dou02] Christophe Dousson. Extending and unifying chronicle representation with event
counters. In Proceedings of the Fifteenth Eureopean Conference on Artificial Intelligence
(ECAI), pages 257–261, 2002. (4 citations pp. 15, 23, 24, et 211)
[DRVL95] Luc De Raedt and Wim Van Laer. Inductive constraint logic. In Algorithmic Learning
Theory, pages 80–94. Springer, 1995. (cité p. 27)
[dSBAR08] Rodrigo de Salvo Braz, Eyal Amir, and Dan Roth. A survey of first-order probabilistic
models. In Innovations in Bayesian Networks, pages 289–317. Springer, 2008. (cité
p. 35)
[EN10] Opher Etzion and Peter Niblett. Event processing in action. Manning Publications
Co., 2010. (2 citations pp. 14 et 22)
[FAR11] Paul Fodor, Darko Anicic, and Sebastian Rudolph. Results on out-of-order event
processing. In Proceedings of the Thirteenth international conference on Practical
aspects of declarative languages, pages 220–234. Springer, 2011. (2 citations pp. 22
et 23)
[FCD04] Françoise Fessant, Fabrice Clérot, and Christophe Dousson. Mining of an alarm log
to improve the discovery of frequent patterns. In Advances in Data Mining, pages
144–152. Springer, 2004. (cité p. 27)
[For82] Charles L. Forgy. Rete: A fast algorithm for the many pattern/many object pattern
match problem. Artificial intelligence, 19(1):17–37, 1982. (cité p. 37)
[FTR+10] Lajos Jenő Fülöp, Gabriella Tóth, Róbert Rácz, János Pánczél, Tamás Gergely,
Árpád Beszédes, and Lóránt Farkas. Survey on complex event processing and predictive
analytics. Technical report, Université de Szeged, 2010. (cité p. 35)
[GA02] Antony Galton and Juan Carlos Augusto. Two approaches to event definition. In
Database and Expert Systems Applications, pages 547–556. Springer, 2002. (2 citations
pp. 37 et 38)
202BIBLIOGRAPHIE
[GD94a] Stella Gatziu and Klaus R. Dittrich. Detecting composite events in active database
systems using Petri nets. In Proceedings of the 4th IEEE International Workshop on
Research Issues in Data Engineering, 1994. (cité p. 35)
[GD94b] Stella Gatziu and Klaus R. Dittrich. Events in an active object-oriented database
system. Springer, 1994. (cité p. 35)
[Gha96] Malik Ghallab. On chronicles: Representation, on-line recognition and learning. In
KR, pages 597–606, 1996. (cité p. 23)
[GL94] Malik Ghallab and Hervé Laruelle. Representation and control in IxTeT, a temporal
planner. In AIPS, volume 1994, pages 61–67, 1994. (cité p. 26)
[Hei01] Fredrik Heintz. Chronicle recognition in the WITAS UAV project, a preliminary
report. In Swedish AI Society Workshop (SAIS2001), 2001. (cité p. 39)
[Hen11] Christophe Henry. "MSM library of boost". www.boost.org/doc/libs/1_48_0/
libs/msm/doc/HTML/index.html, 2011. (cité p. 180)
[HJS91] Peter Huber, Kurt Jensen, and Robert Shapiro. Hierarchies in coloured Petri nets.
Advances in Petri Nets 1990, pages 313–341, 1991. (cité p. 74)
[HN03] Somboon Hongeng and Ramakant Nevatia. Large-scale event detection using semihidden
Markov models. In Proceedings of the Ninth IEEE International Conference
on Computer Vision, pages 1455–1462, 2003. (cité p. 35)
[Hou11] House of Representatives, 12th Congress, 1st Session. FAA reauthorization and reform
act of 2011, 11 février 2011. (cité p. 172)
[JK09] Kurt Jensen and Lars M. Kristensen. Coloured Petri Nets: Modelling and Validation
of Concurrent Systems. Springer Verlag Monograph, 2009. (cité p. 72)
[KDDR+11] Angelika Kimmig, Bart Demoen, Luc De Raedt, Vitor Santos Costa, and Ricardo Rocha.
On the implementation of the probabilistic logic programming language problog.
Theory and Practice of Logic Programming, 11(2-3):235–262, 2011. (cité p. 19)
[KDRR06] Kristian Kersting, Luc De Raedt, and Tapani Raiko. Logical hidden Markov models.
Journal of Artificial Intelligence Research, 25(1):425–456, 2006. (cité p. 35)
[Kha97] Wael Khansa. Réseaux de Petri p-temporels: contribution à l’étude des systèmes à
évènements discrets. PhD thesis, Université de Savoie, 1997. (cité p. 28)
[KM87] Krishna Kumar and Amitabha Mukerjee. Temporal event conceptualization. In
Proceedings of the Tenth International Joint Conference on Artificial Intelligence
(IJCAI), 1987. (cité p. 35)
[KS86] Robert Kowalski and Marek Sergot. A logic-based calculus of events. New Generation
Computing, 4(1):67–95, 1986. (cité p. 16)
[KVNA11] Pekka Kaarela, Mika Varjola, Lucas PJJ Noldus, and Alexander Artikis. Pronto:
support for real-time decision making. In Proceedings of the Fifth ACM International
Conference on Distributed Event-Based System, pages 11–14. ACM, 2011. (cité p. 39)
[Lan09] Thibault Lang. IDEAS–T1.1: Architecture de système de drone et scénarios de missions.
Technical report, ONERA, 2009. (3 citations pp. 173, 174, et 212)
203Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
[LGCR+08] Xavier Le Guillou, Marie-Odile Cordier, Sophie Robin, Laurence Rozé, et al. Chronicles
for on-line diagnosis of distributed systems. In Proceedings of European Conference
on Artificial Intelligence (ECAI), pages 194–198, 2008. (cité p. 39)
[LSA+11] David Luckham, Roy Schulte, Jeff Adkins, Pedro Bizarro, H-Arno Jacobsen, Albert
Mavashev, Brenda M Michelson, and Peter Niblett. Event processing glossary-version
2.0. Event Processing Technical Society, 2011. (cité p. 14)
[Luc02] David Luckham. The Power of Events, volume 204. Addison-Wesley Reading, 2002.
(cité p. 14)
[MCCDB10] Anis M’halla, Étienne Craye, Simon Collart Dutilleul, and Mohamed Benrejeb. Monitoring
of a milk manufacturing workshop using chronicle and fault tree approaches.
Studies in Informatics and Control, 19(4):377–390, 2010. (cité p. 39)
[McD82] Drew McDermott. A temporal logic for reasoning about processes and plans. Cognitive
science, 6(2):101–155, 1982. (pas de citation)
[MD03] Benjamin Morin and Hervé Debar. Correlation on intrusion: an application of chronicles.
In 6th International Conference on Recent Advances in Intrusion Detection
(RAID’03), pages 94–112. Springer, 2003. (cité p. 39)
[MDR94] Stephen Muggleton and Luc De Raedt. Inductive logic programming: Theory and
methods. The Journal of Logic Programming, 19:629–679, 1994. (cité p. 27)
[MH68] John McCarthy and Patrick Hayes. Some philosophical problems from the standpoint
of artificial intelligence. Stanford University, 1968. (pas de citation)
[MNG+94] Robert Milne, Charles Jarvis Nicol, Malik Ghallab, Louise Travé-Massuyès, Kouamana
Bousson, Christophe Dousson, Joseba Quevedo, Jose Aguilar, and Antoni
Guasch. TIGER: real-time situation assessment of dynamic systems. Intelligent
Systems Engineering, 3(3):103–124, 1994. (cité p. 39)
[MS99] Rob Miller and Murray Shanahan. The event calculus in classical logic–alternative
axiomatizations. Electronic Transactions on Artificial Intelligence (http://www. etaij.
org), 4, 1999. (cité p. 17)
[MSS96] Masoud Mansouri-Samani and Morris Sloman. A configurable event service for distributed
systems. In Proceedings of the 3rd IEEE International Conference on Confi-
gurable Distributed Systems, pages 210–217, 1996. (cité p. 36)
[MSS97] Masoud Mansouri-Samani and Morris Sloman. Gem: A generalized event monitoring
language for distributed systems. Distributed Systems Engineering, 4(2):96, 1997.
(cité p. 36)
[OC94a] Manuel Ornato and Patrice Carle. Reconnaissance d’intentions sans reconnaissance
de plan. In 2es Journées Francophones d’Intelligence Artificielle Distribuée et Systèmes
Multi-Agents, 1994. (cité p. 29)
[OC94b] Manuel Ornato and Patrice Carle. Une alternative à l’abduction pour la reconnaissance
de plan. In Secondes Rencontres des Jeunes Chercheurs en Intelligence
Artificielle, 1994. (cité p. 29)
204BIBLIOGRAPHIE
[PAMP12] Jens Pottebaum, Alexander Artikis, Robin Marterer, and George Paliouras. Useroriented
evaluation of event-based decision support systems. In IEEE 24th International
Conference on Tools with Artificial Intelligence (ICTAI), volume 1, pages
162–169. IEEE, 2012. (cité p. 19)
[PB08] Adrian Paschke and Martin Bichler. Knowledge representation concepts for automated
sla management. Decision Support Systems, 46(1):187–205, 2008. (cité p. 17)
[PBC+] Ariane Piel, Jean Bourrely, Patrice Carle, Christine Choppy, and Romain Kervarc.
Complex behaviour recognition by online analysis of rich event flows (to be submitted).
(5 citations pp. 11, 42, 166, 193, et 194)
[PKB07] Adrian Paschke, Alexander Kozlenkov, and Harold Boley. A homogeneous reaction
rule language for complex event processing. In Workshop on Event driven Architecture,
Processing and Systems, 2007. (cité p. 17)
[Por05] François Portet. Pilotage d’algorithmes pour la reconnaissance en ligne d’arythmies
cardiaques. PhD thesis, Université Rennes 1, 2005. (cité p. 39)
[PS09] Yannick Pencolé and Audine Subias. A chronicle-based diagnosability approach for
discrete timed-event systems: application to web-services. Journal of Universal Computer
Science, 15(17):3246–3272, 2009. (cité p. 39)
[QCC+10] René Quiniou, Lucie Callens, Guy Carrault, Marie-Odile Cordier, Elisa Fromont,
Philippe Mabo, and François Portet. Intelligent adaptive monitoring for cardiac
surveillance. In Computational Intelligence in Healthcare 4, pages 329–346. Springer,
2010. (cité p. 39)
[QCCW01] René Quiniou, Marie-Odile Cordier, Guy Carrault, and Feng Wang. Application of
ILP to cardiac arrhythmia characterization for chronicle recognition. In Proceedings
of the Eleventh International Conference on Inductive Logic Programming, pages
220–227. Springer, 2001. (cité p. 27)
[RWL+03] Anne Vinter Ratzer, Lisa Wells, Henry Michael Lassen, Mads Laursen, Jacob Frank
Qvortrup, Martin Stig Stissing, Michael Westergaard, Søren Christensen, and Kurt
Jensen. CPN tools for editing, simulating, and analysing coloured Petri nets. In
Applications and Theory of Petri Nets 2003, pages 450–462. Springer, 2003. (cité
p. 73)
[SA11] Nenad Stojanovic and Alexander Artikis. On complex event processing for real-time
situational awareness. In 5th International Conference on Rule-Based Reasoning,
Programming, and Applications, pages 114–121. Springer, 2011. (cité p. 39)
[SAFP14] Anastasios Skarlatidis, Alexander Artikis, Jason Filippou, and Georgios Paliouras. A
probabilistic logic programming event calculus. Journal of Theory and Practice of
Logic Programming (TPLP), 2014. (2 citations pp. 19 et 20)
[SEC+10] Audine Subias, Ernesto Exposito, Christophe Chassot, Louise Travé-Massuyès, and
Khalil Drira. Self-adapting strategies guided by diagnosis and situation assessment in
collaborative communicating systems. In 21st International Workshop on Principles
of Diagnosis (DX 10), pages 329–336, 2010. (cité p. 39)
205Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
[SPVA11] Anastasios Skarlatidis, Georgios Paliouras, George A Vouros, and Alexander Artikis.
Probabilistic event calculus based on Markov logic networks. In 5th International
Conference on Rule-Based Modeling and Computing on the Semantic Web, pages
155–170. Springer, 2011. (2 citations pp. 9 et 19)
[TD08] Son D. Tran and Larry S. Davis. Event modeling and recognition using Markov logic
networks. In Computer Vision–ECCV 2008, pages 610–623. Springer, 2008. (cité
p. 35)
[UML11] OMG Unified Modeling LanguageTM (OMG UML), Superstructure, version 2.4.1,
2011. (cité p. 173)
[VL10] Mika Varjola and Jobst Loffler. Pronto: Event recognition for public transport. In
Proceedings of the Seventeenth ITS World Congress, 2010. (cité p. 39)
[WBG08] Karen Walzer, Tino Breddin, and Matthias Groch. Relative temporal constraints
in the Rete algorithm for complex event detection. In Proceedings of the Second
International Conference on Distributed Event-Based Systems (DEBS), pages 147–
155. ACM, 2008. (cité p. 37)
[WGB08] Karen Walzer, Matthias Groch, and Tino Breddin. Time to the rescue - supporting
temporal reasoning in the Rete algorithm for complex event processing. In Database
and Expert Systems Applications, pages 635–642. Springer, 2008. (cité p. 37)
206Annexe A
Démonstrations de propriétés du
langage des chroniques
A.0.1 Associativité
Propriété 8. La disjonction, la conjonction, la séquence, meets et equals sont associatifs.
Démonstration. Soit C1, C2, C3 ∈ X(N). Soit ϕ un flot d’évènements et d un réel.
FC1| |(C2| |C3)(ϕ, d) = FC1
(ϕ, d) ∪ FC2| |C3
(ϕ, d)
= FC1
(ϕ, d) ∪ (FC2
(ϕ, d) ∪ FC3
(ϕ, d))
= (FC1
(ϕ, d) ∪ FC2
(ϕ, d)) ∪ FC3
(ϕ, d)
= F(C1| |C2)| |C3
(ϕ, d)
L’associativité de la disjonction découle donc de l’associativité de l’union ensembliste.
FC1&(C2&C3)(ϕ, d) = {F(r1) ∪ F(r2) : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC2&C3
(ϕ, d)}
= {F(r1) ∪ (F(r2a) ∪ F(r2b
)) : r1 ∈ RC1
(ϕ, d)
∧ r2a ∈ RC2
(ϕ, d) ∧ r2b ∈ RC3
(ϕ, d)}
= {(F(r1) ∪ F(r2a)) ∪ F(r2b
) : r1 ∈ RC1
(ϕ, d) ∧ r2a ∈ RC2
(ϕ, d)
∧ r2b ∈ RC3
(ϕ, d)}
= {F(r) ∪ F(r2b
) : r ∈ RC1&C2
(ϕ, d) ∧ r2b ∈ RC3
(ϕ, d)}
= F(C1&C2)&C3
(ϕ, d)
L’associativité de la conjonction découle donc aussi de l’associativité de l’union ensembliste.
207Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
FC1 (C2 C3)(ϕ, d) = {F(r1) ∪ F(r2) : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC2 C3
(ϕ, d)
∧ Tmax(r1) < Tmin(r2)}
= {F(r1) ∪ (F(r2a) ∪ F(r2b
)) : r1 ∈ RC1
(ϕ, d) ∧ r2a ∈ RC2
(ϕ, d)
∧ r2b ∈ RC3
(ϕ, d) ∧ Tmax(r1) < Tmin(r2a)
∧ Tmax(r2a) < Tmin(r2b
)}
= {(F(r1) ∪ F(r2a)) ∪ F(r2b
) : r1 ∈ RC1
(ϕ, d) ∧ r2a ∈ RC2
(ϕ, d)
∧ r2b ∈ RC3
(ϕ, d) ∧ Tmax(r1) < Tmin(r2a)
∧ Tmax(r2a) < Tmin(r2b
)}
= {F(r) ∪ F(r2b
) : r ∈ RC1 C2
(ϕ, d) ∧ r2b ∈ RC3
(ϕ, d)
∧ Tmax(r) < Tmin(r2b
)}
= F(C1 C2) C3
(ϕ, d)
L’associativité de la séquence découle donc de l’associativité de l’union ensembliste.
FC1 meets (C2 meets C3)(ϕ, d) = {F(r1) ∪ F(r
0
2
) : r1 ∈ RC1
(ϕ, d) ∧ r
0
2 ∈ RC2 meets C3
(ϕ, d)
∧ Tmax(r1) = Tmin(r
0
2
)}
= {F(r1) ∪ F(r2) ∪ F(r3) : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC2
(ϕ, d)
∧ r3 ∈ RC3
(ϕ, d)
∧ Tmax(r1) = Tmin(r2 ∪ r3)
∧ Tmax(r2) = Tmin(r3)}
= {F(r1) ∪ F(r2) ∪ F(r3) : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC2
(ϕ, d)
∧ r3 ∈ RC3
(ϕ, d)
∧ Tmax(r1) = Tmin(r2) ∧ Tmax(r2) = Tmin(r3)}
= {F(r
0
1
) ∪ F(r3) : r
0
1 ∈ RC1 meets C2
(ϕ, d) ∧ r3 ∈ RC3
(ϕ, d)
∧ Tmax(r
0
1
) = Tmin(r3)}
= F(C1 meets C2) meets C3
(ϕ, d)
« meets » est donc associatif.
FC1 equals (C2 equals C3)(ϕ, d) = {F(r1) ∪ F(r
0
2
) : r1 ∈ RC1
(ϕ, d) ∧ r
0
2 ∈ RC2 equals C3
(ϕ, d)
∧ Tmin(r1) = Tmin(r
0
2
)
∧ Tmax(r1) = Tmax(r
0
2
)}
= {F(r1) ∪ F(r2) ∪ F(r3) : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC2
(ϕ, d)
∧ r3 ∈ RC3
(ϕ, d)
∧ Tmin(r1) = Tmin(r2 ∪ r3)
∧ Tmax(r1) = Tmax(r1 ∪ r3)
∧ Tmin(r2) = Tmin(r3) ∧ Tmax(r2) = Tmax(r3)}
= {F(r1) ∪ F(r2) ∪ F(r3) : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC2
(ϕ, d)
∧ r3 ∈ RC3
(ϕ, d)
∧ Tmin(r1) = Tmin(r2) = Tmin(r3)
∧ Tmax(r1) = Tmax(r2) = Tmax(r3)}
= {F(r
0
1
) ∪ F(r3) : r
0
1 ∈ RC1 equals C2
(ϕ, d) ∧ r3 ∈ RC3
(ϕ, d)
∧ Tmin(r
0
1
) = Tmin(r3) ∧ Tmax(r
0
1
) = Tmax(r3)}
= F(C1 equals C2) equals C3
(ϕ, d)
« equals » est donc associatif.
208ANNEXE A. DÉMONSTRATIONS DE PROPRIÉTÉS DU LANGAGE DES CHRONIQUES
A.0.2 Commutativité
Propriété 9. La disjonction, la conjonction et equals sont commutatifs.
Démonstration. Soit C1, C2 ∈ X(N). Soit ϕ un flot d’évènements et d un réel.
FC1| |C2
(ϕ, d) = FC1
(ϕ, d) ∪ FC2
(ϕ, d)
= FC2
(ϕ, d) ∪ FC1
(ϕ, d)
= FC2| |C1
(ϕ, d)
FC1&C2
(ϕ, d) = {F(r1) ∪ F(r2) : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC2
(ϕ, d)}
= {F(r2) ∪ F(r1) : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC2
(ϕ, d)}
= FC2&C1
(ϕ, d)
La commutativité de la disjonction et de la conjonction découle donc de la commutativité de
l’union ensembliste.
FC1 equals C2
(ϕ, d) = {F(r1) ∪ F(r2) : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC2
(ϕ, d)
∧ Tmin(r1) = Tmin(r2) ∧ Tmax(r1) = Tmax(r2)}
= {F(r2) ∪ F(r1) : r2 ∈ RC2
(ϕ, d) ∧ r1 ∈ RC1
(ϕ, d)
∧ Tmin(r2) = Tmin(r1) ∧ Tmax(r2) = Tmax(r1)}}
= FC2 equals C1
(ϕ, d)
A.0.3 Distributivité
Propriété 10. Tous les opérateurs sont distributifs sur la disjonction.
Démonstration. Soit C0, C1, C2 ∈ X(N). Soit ϕ un flot d’évènements et d un réel.
— La conjonction est distributive sur la disjonction :
FC0&(C1| |C2)(ϕ, d) = {F(r0) ∪ F(r1) : r0 ∈ RC0
(ϕ, d) ∧ r1 ∈ RC1| |C2
(ϕ, d)}
= {F(r0) ∪ F(r1) : r0 ∈ RC0
(ϕ, d) ∧ r1 ∈ RC1
(ϕ, d) ∪ RC2
(ϕ, d)}
= {F(r0) ∪ F(r1) : r0 ∈ RC0
(ϕ, d) ∧ r1 ∈ RC1
(ϕ, d)}
∪{F(r0) ∪ F(r1) : r0 ∈ RC0
(ϕ, d) ∧ r1 ∈ RC2
(ϕ, d)}
= FC0&C1
(ϕ, d) ∪ FC0&C2
(ϕ, d)
= F(C0&C1)| |(C0&C2)(ϕ, d)
— La séquence est distributive sur la disjonction :
FC0 (C1| |C2)(ϕ, d) = {F(r0) ∪ F(r1) : r0 ∈ RC0
(ϕ, d) ∧ r1 ∈ RC1| |C2
(ϕ, d)
∧ Tmax(r0) < Tmin(r1)}
= {F(r0) ∪ F(r1) : r0 ∈ RC0
(ϕ, d) ∧ r1 ∈ RC1
(ϕ, d) ∪ RC2
(ϕ, d)
∧ Tmax(r0) < Tmin(r1)}
= {F(r0) ∪ F(r1) : r0 ∈ RC0
(ϕ, d) ∧ r1 ∈ RC1
(ϕ, d)
∧ Tmax(r0) < Tmin(r1)}
∪{F(r0) ∪ F(r1) : r0 ∈ RC0
(ϕ, d) ∧ r1 ∈ RC2
(ϕ, d)
∧ Tmax(r0) < Tmin(r1)}
= FC0 C1
(ϕ, d) ∪ FC0 C2
(ϕ, d)
= F(C0 C1)| |(C0 C2)(ϕ, d)
209Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
— Notons ~ un opérateur quelconque des opérateurs meets, overlaps, starts, during, finishes
et equals.
Remarquons que l’on a alors :
FC1~C2
(ϕ, d) = {F(r1) ∪ F(r2) : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC2
(ϕ, d) ∧ P~(r1, r2, ϕ, d)}, où P~
est une propriété dépendant de ~ et exprimant des contraintes temporelles.
Alors, si C2 = C3 || C4 :
FC1~(C3||C4)(ϕ, d) = {F(r1) ∪ F(r2) : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC3
(ϕ, d) ∪ RC4
(ϕ, d)
∧ P~(r1, r2, ϕ, d)}
= {F(r1) ∪ F(r2) : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC3
(ϕ, d)
∧ P~(r1, r2, ϕ, d)}
∪{F(r1) ∪ F(r2) : r1 ∈ RC1
(ϕ, d) ∧ r2 ∈ RC4
(ϕ, d)
∧ P~(r1, r2, ϕ, d)}
= FC1~C3
(ϕ, d) ∪ FC1~C4
(ϕ, d)
= F(C1~C3)||(C1~C4)(ϕ, d)
~ est donc distributif sur la disjonction.
210Table des figures et des tableaux
1.1 Principaux prédicats de l’Event Calculus (EC) . . . . . . . . . . . . . . . . . . . . . 18
1.2 Principales constructions du langage Event-driven Transaction Logic Inference System
(ETALIS) [AFR+10] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.3 Principaux prédicats et notations des chroniques [Dou96, Dou02] . . . . . . . . . . 24
1.4 Le système de reconnaissance de chroniques [Dou94] . . . . . . . . . . . . . . . . . 25
1.5 Architecture du système de reconnaissance avec focalisation temporelle [DLM07] . 26
2.1 Récapitulatif informel des constructions et propriétés du langage des chroniques . . 67
3.1 Un réseau sur CPN Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
3.2 Arcs inhibiteurs sur CPN Tools . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
3.3 Fonctions utilisées dans nos réseaux . . . . . . . . . . . . . . . . . . . . . . . . . . 78
3.4 Structure des réseaux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
3.5 Compteur d’évènements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
3.6 Opérateur AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.7 Opérateur ABS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
3.8 Réseau correspondant à la chronique A . . . . . . . . . . . . . . . . . . . . . . . . . 83
3.9 Réseau correspondant à la chronique A B . . . . . . . . . . . . . . . . . . . . . . . 84
3.10 Réseau correspondant à la chronique A || B . . . . . . . . . . . . . . . . . . . . . . 86
3.11 Réseau correspondant à la chronique A&B . . . . . . . . . . . . . . . . . . . . . . 87
3.12 Réseau correspondant à la chronique (A B) − [C[ . . . . . . . . . . . . . . . . . . . 88
3.13 Réseau correspondant à la chronique A . . . . . . . . . . . . . . . . . . . . . . . . . 90
3.14 Réseau correspondant à la chronique A B . . . . . . . . . . . . . . . . . . . . . . . 92
3.15 Réseau correspondant à la chronique A || B . . . . . . . . . . . . . . . . . . . . . . 94
3.16 Réseau correspondant à la chronique A&B . . . . . . . . . . . . . . . . . . . . . . 96
3.17 Réseau correspondant à la chronique (A B) − [C[ . . . . . . . . . . . . . . . . . . . 99
3.18 Réseau correspondant à la chronique ( ((A B) − [C[) E ) − [D[ . . . . . . . . . . . . 103
3.19 Réseau correspondant à la chronique D ((A B) − [C[) . . . . . . . . . . . . . . . . 105
4.1 Description des fonctions utilisées dans nos réseaux . . . . . . . . . . . . . . . . . . 120
4.2 Structure des réseaux multi-jetons . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
4.3 Compteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
211Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
4.4 Opérateur OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
4.5 Opérateur AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
4.6 Opérateur ABS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
4.7 Réseau correspondant à la chronique A . . . . . . . . . . . . . . . . . . . . . . . . . 126
4.8 Réseau correspondant à la chronique A B . . . . . . . . . . . . . . . . . . . . . . . 127
4.9 Réseau correspondant à la chronique A || B . . . . . . . . . . . . . . . . . . . . . . 128
4.10 Réseau correspondant à la chronique A&B . . . . . . . . . . . . . . . . . . . . . . 130
4.11 Réseau correspondant à la chronique (A B) − [D[ . . . . . . . . . . . . . . . . . . . 132
4.12 Description des fonctions utilisées dans nos réseaux . . . . . . . . . . . . . . . . . . 136
4.13 Structure globale des réseaux contrôlés . . . . . . . . . . . . . . . . . . . . . . . . . 137
4.14 Compteur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
4.15 Opérateur OR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
4.16 Opérateur AND . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
4.17 Opérateur ABS de l’absence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
4.18 Le réseau séparateur de jetons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
4.19 Réseau reconnaissant la chronique A . . . . . . . . . . . . . . . . . . . . . . . . . . 147
4.20 Structure globale du réseau reconnaissant la chronique A . . . . . . . . . . . . . . . 147
4.21 Structure générale du réseau reconnaissant la chronique A B . . . . . . . . . . . . 149
4.22 Structure générale du réseau reconnaissant A || (B A). . . . . . . . . . . . . . . . . 151
4.23 Structure générale du réseau reconnaissant A&B . . . . . . . . . . . . . . . . . . . 154
4.24 Structure générale du réseau reconnaissant (A B) − [D[ . . . . . . . . . . . . . . . 156
4.25 Structure générale du réseau reconnaissant ((A B) − [D[ E) − [F[ . . . . . . . . . . 157
4.26 Graphe d’espace d’états du réseau N(A || (B A)) sur le flux ((b, 1),(a, 2),(a, 3)) . . 161
4.27 Récapitulatif des caractéristiques des trois modèles de reconnaissance construits . . 162
5.1 Évolution des ensembles de reconnaissance pour la chronique (E || F)&G sur le flux
d’évènements ϕ = (e, h, g, f). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
5.2 Exemple des modes de communication entre l’ATC, l’UA et la RPS (Pilot) . . . . . 172
5.3 Scénario de panne de télécommande [Lan09] . . . . . . . . . . . . . . . . . . . . . . 174
5.4 Diagramme de classes du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176
5.5 Diagramme états-transitions de la perte de télécommande et de radio . . . . . . . 177
5.6 Récapitulatif des états du diagramme UML de la Figure 5.5 . . . . . . . . . . . . . 179
5.7 Vue d’ensemble aérienne de la trajectoire de l’UAS étudié . . . . . . . . . . . . . . . 186
5.8 Représentation schématique des différentes zones traversées par l’UAS . . . . . . . . 186
5.9 Quelques chroniques écrites pour surveiller les procédures de sécurité . . . . . . . . 188
212Table des symboles
α Fonction d’extraction d’attributs d’un flux d’évènements . . . . . . . . . . . . . . . 42
♦ Nom des propriétés anonymes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
≡ Relation d’équivalence entre les chroniques . . . . . . . . . . . . . . . . . . . . . . . 57
Pˆ Interprétation du prédicat P dans le P × V-modèle M . . . . . . . . . . . . . . . . 53
A(E) Ensemble des arbres de reconnaissance sur l’ensemble d’évènements E . . . . . . . . 52
Ce(·) Contexte d’évaluation (Ce : X → P) . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Cr(·) Contexte résultant (Ce : X → P) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
D Fonction de nommage anonyme (D : Ae(P, V) → Ar(P, V)) . . . . . . . . . . . . . . 43
F(r) Ensemble des feuilles d’un arbre de reconnaissance r . . . . . . . . . . . . . . . . . . 52
R Fonction de renommage d’attributs (R : Ar(P, V) × P → Ar(P, V)) . . . . . . . . . 44
V Ensemble de valeurs de propriétés . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Ae(P, V) Ensemble d’ensembles d’attributs d’évènement sur P × V . . . . . . . . . . . . . . . 42
Ar(P, V) Ensemble des ensembles d’attributs de reconnaissance . . . . . . . . . . . . . . . . . 43
E Ensemble des évènements (datés) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
FC (ϕ, d) Ensemble des ensembles de feuilles de reconnaissance de la chronique C sur le flux ϕ et
jusqu’à l’instante d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
N Ensemble dénombrable de noms d’évènement . . . . . . . . . . . . . . . . . . . . . . 41
P Ensemble dénombrable de noms de propriété . . . . . . . . . . . . . . . . . . . . . . 41
S Ensemble de symboles de prédicats . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
T(P, V) Ensemble des fonctions de transformation d’attributs sur (P, V) . . . . . . . . . . . 43
X Ensemble des chroniques sur (N, P, V, S) . . . . . . . . . . . . . . . . . . . . . . . . 47
ρ Fonction de référence donnant le nom d’une propriété . . . . . . . . . . . . . . . . . 42
τ Nom consacré aux évènements d’instants temporels purs . . . . . . . . . . . . . . . 41
213Reconnaissance de comportements complexes par traitement en
ligne de flux d’évènements
θ Fonction de datation donnant la date d’occurrence d’un évènement de E . . . . . . 42
ϕ Flux d’évènements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
f Transformation d’attributs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
P Symbole de prédicat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
RC (ϕ, d) Ensemble des reconnaissances de C sur le flux d’évènements ϕ et jusqu’à la date d . 53
TC (ϕ, d) Instant après d jusqu’auquel l’ensemble des reconnaissances de la chronique C sur le
flux ϕ n’évoluera pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Tmax(r) Dernier instant auquel se produit un évènement participant à la reconnaissance r . 52
Tmin(r) Premier instant auquel se produit un évènement participant à la reconnaissance r . 52
Xr Ensemble d’attributs associé à la reconnaissance r. . . . . . . . . . . . . . . . . . . . 53
X∗
r Xr \ X♦
r
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
X♦
r {(♦, v) ∈ Xr : v ∈ Ae(P, V)} . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
214Acronymes
ATC Air Traffic Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
BLADE Battle Lab for Aerospace and Defence Experimentations. . . . . . . . . . . . . . . . . . . . . . . .185
CEC Cached Event Calculus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
CEP Complex Event Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 193
CRL Chronicle Recognition Library. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .166
CRS Chronicle Recognition System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165
CRS/Onera Chronicle Recognition System/Onera. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .165
DSMS Système de Gestion de Flux de Données – Data Stream Management System . . . . 16
EC Event Calculus . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
ECA Event-Condition-Action . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
EDBC Event-Driven Backward Chaining . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
EP-IRM Event Processing for Intelligent Ressource Management. . . . . . . . . . . . . . . . . . . . . . . . . .19
ETALIS Event-driven Transaction Logic Inference System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 211
FACE Frequency Analyser for Chronicle Extraction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
GEM Generalised Event Monitoring . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
IDEAS Insertion des Drones dans l’Espace Aérien et Sécurité. . . . . . . . . . . . . . . . . . . . . . . . . . .171
ICL Inductive Constraint Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
IFP Information Flow Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
ILP Inductive Logic Programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
MCPN Modular Coloured Petri Net. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
RPS Remote Pilot Station. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .172
RTEC Event Calculus for Run-Time reasoning . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
SAMOS Swiss Active Mechanism based Object-oriented database Systems. . . . . . . . . . . . . . . . 35
S-PN SAMOS Petri nets. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
TC Telecommand . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
TM Telemetry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
UA Unmanned Aircraft . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
UAS Unmanned Aircraft System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171
UML Unified Modeling Language . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
215Résumé en français L’analyse de flux d’évènements pour reconnaître des comportements complexes
prédéfinis (Complex Event Processing – CEP) permet d’interpréter et de réagir à des quantités importantes
de données ne pouvant être appréhendées telles quelles. Dans cette thèse, nous fournissons le cadre théorique
général d’un CEP en adoptant une approche purement formelle qui assure une possibilité de vérification et
d’analyse du processus de reconnaissance. Nous définissons un langage, le langage des chroniques, permettant
de décrire les comportements complexes à reconnaître. Nous formalisons la notion de reconnaissance de
chronique à l’aide d’une sémantique ensembliste fondée sur une représentation arborescente des reconnaissances.
Dans une visée applicative, nous développons ensuite deux modèles du processus de reconnaissance.
Le premier est réalisé avec le formalisme des réseaux de Petri colorés et permet de valider les principes de
reconnaissance en faisant notamment ressortir les problèmes de concurrence et de modularité. Le second implémente
directement le formalisme mathématique sous la forme d’une bibliothèque C++ appelée Chronicle
Recognition Library (CRL) et disponible en open source. Nous tirons parti de cette implémentation pour
traiter deux cas d’applications liés à l’insertion des drones dans l’espace aérien. La première vise à surveiller
la cohérence d’un système de drones insérés dans le trafic aérien, en cas de pannes de liens de communication.
Notre application permet d’une part de vérifier la cohérence des procédures actuellement mises en place en
cas de pannes ; et d’autre part de compléter ces procédures par des alarmes dans les situations inévitables
causées par des erreurs humaines. La seconde application surveille le bon respect des procédures de sécurité
d’un drone partant en mission et traversant diverses zones, contrôlées ou non, de l’espace aérien.
Titre en anglais Online Event Flow Processing for Complex Behaviour Recognition
Résumé en anglais Recognising complex predefined behaviours by the analysis of event flows (Complex
Event Processing – CEP) allows to interpret and react to large quantities of data which one would not be
able to apprehend alone. In this Ph.D. thesis, we provide a general theoretical framework for CEP through
a purely formal approach ensuring the possibility to check and analyse the recognition process. We define a
language, the chronicle language, allowing the description of the complex behaviours to be recognised. We
formalise the notion of chronicle recognition through a set semantics based on an arborescent representation
of recognitions. In order to use this framework, we then develop two models of the recognition process. The
first relies on coloured Petri nets and allows the validation of recognition principles including concurrency
and modularity issues. The second model directly implements the mathematical formalism in a C++ library,
Chronicle Recognition Library (CRL), which is available in open source. We use this implementation to fulfil
two applications linked to the insertion of unmanned aircrafts in controlled airspace. The first application
oversees the consistency of an unmanned aircraft system inside air traffic in case of communication link
breakdowns. This application allows, on the one hand, to check the consistency of the procedures currently
followed in case of failures ; and, on the other hand, to complete these procedures with alarms in case of
unavoidable situations caused by human errors. The second application oversees that the security procedures
of an unmanned aircraft flying through controlled or uncontrolled airspace are correctly followed.
Discipline Informatique
Mots-clés traitement d’évènements complexes ; reconnaissance de comportements ; logique temporelle ;
modèle modulaire en réseaux de Petri colorés ; bibliothèque de reconnaissance de chroniques ; application
aérospatiale ; drones.
Université de POITIERS
Faculté de Médecine et de Pharmacie
ANNÉE 2014 Thèse n°
THÈSE
POUR LE DIPLOME D’ÉTAT
DE DOCTEUR EN PHARMACIE
(arrêté du 17 juillet 1987)
présentée et soutenue publiquement
le 20 Octobre 2014 à POITIERS
par Monsieur Charles BRISSET
(né le 22 Octobre 1984)
Composition du jury :
Président : Monsieur le Professeur François SEGUIN
Directrice de thèse : Madame Delphine BON, Maître de Conférences
Membres : Monsieur Lydwin HOUNKANLIN, Pharmacien d'officine ;
Monsieur Pierre ORLIAC, Pharmacien d'officine ;
Monsieur François ELIE, agrégé de Philosophie
Les logiciels de gestion d'officine:
fonctionnalités et acteursI) Sommaire
Sommaire
I) Sommaire.................................................................................................................................2
I.A.1. Index des tableaux...................................................................................................4
II) Introduction............................................................................................................................9
III) Les composants des logiciels de gestion d'officine ...........................................................10
III.A \Fonctionnalités obligatoires........................................................................................10
III.A.1. Par convention : SESAM-Vitale, ADELI, NOEMIE, Tiers-payant....................10
III.A.1.a. La Carte Vitale et la Carte de Professionnel de Santé................................10
III.A.1.a.1. Les lecteurs.........................................................................................11
III.A.1.a.2. Les flux...............................................................................................12
III.A.1.a.3. SCOR..................................................................................................13
III.A.2. Le Dossier Pharmaceutique : obligatoire par la loi.............................................13
III.A.3. L'ordonnancier....................................................................................................14
III.A.4. La base de données des médicaments et des produits de santé..........................15
III.B \Fonctionnalités indispensables...................................................................................17
III.B.1. La gestion de stock..............................................................................................17
III.B.1.a. PharmaML..................................................................................................17
III.B.1.b. Les codes barres : CIP 13, ACL, EAN, vignette et Datamatrix.................18
III.B.2. Gestion des fiches des patients et des praticiens.................................................19
III.B.3. Comptabilité........................................................................................................19
III.B.4. Gestion des droits de l'équipe officinale.............................................................19
III.B.5. Questionnement de validité de l'ayant-droit.......................................................20
III.C \Fonctionnalités optionnelles.......................................................................................21
III.C.1. Opinion pharmaceutique.....................................................................................21
III.C.2. Achat par groupement.........................................................................................21
III.C.3. Gestion des collectivités......................................................................................21
III.C.4. Télétravail...........................................................................................................21
III.C.5. SMS.....................................................................................................................22
III.C.6. Gestion du robot/automate de stockage .............................................................22
III.C.7. Fidélisation..........................................................................................................22
III.C.8. Gestion du matériel de location..........................................................................22
III.C.9. Gestion des emplois du temps de l'équipe officinale..........................................22
III.C.10. Gestion de la caisse...........................................................................................23
III.C.11. Préparation des doses à administrer..................................................................23
III.C.12. Comparateur de prix..........................................................................................23
III.C.13. Gestion des sauvegardes sur un serveur distant................................................23
III.C.14. Étiquettes électroniques....................................................................................24
III.C.15. Gestion des terminaux de paiement électronique (TPE)...................................24
III.C.16. Fiche conseil ....................................................................................................25
III.C.17. Suggestion de vente ou suggestion de conseils.................................................25
III.C.18. Pharmacovigilance............................................................................................25
III.C.19. Messagerie sécurisée de santé...........................................................................25
III.C.20. Écran Tactile......................................................................................................26
III.C.21. Entretien pharmaceutique.................................................................................26
III.C.22. Management de l'équipe...................................................................................26
III.C.23. Étiquette de posologie.......................................................................................26
Page 2/112III.C.24. Contrôle de la température du frigo via une sonde...........................................26
III.D \Services complémentaires externes aux LGO............................................................27
III.D.1. Formation in situ ou par e-learning du logiciel...................................................27
III.D.2. Prise en main à distance pour la maintenance et l'assistance téléphonique........27
III.D.3. Site web .............................................................................................................27
III.D.4. Box ADSL, Fax IP..............................................................................................28
III.D.5. Croix LED..........................................................................................................28
III.D.6. Externalisation du tiers payant............................................................................28
III.D.7. Création de campagne de communication (papier ou multimédia)....................28
III.D.8. Vidéo-surveillance..............................................................................................29
III.D.9. Antivol sur les produits.......................................................................................29
III.D.10. Distributeur automatique 24/24........................................................................29
III.D.11. Forum d'assistance et de développement..........................................................29
III.D.12. Applications pour téléphones mobiles..............................................................29
III.D.13. Pilulier électronique..........................................................................................29
IV) Les acteurs de l'informatique officinale..............................................................................31
IV.A \Les sociétés de logiciels..............................................................................................31
IV.A.1. Le groupe CEGEDIM ........................................................................................31
IV.A.2. Le groupe Welcoop.............................................................................................31
IV.A.3. Les autres sociétés...............................................................................................32
IV.B \Les autorités................................................................................................................34
IV.B.1. CNDA, GIE SESAM-Vitale, …..........................................................................34
IV.B.2. Conseil National de d’Ordre des Pharmaciens (CNOP).....................................34
IV.C \Les coopératives..........................................................................................................35
IV.D \Les groupements.........................................................................................................36
IV.E \Des initiatives syndicales............................................................................................36
IV.E.1. Un concentrateur : Résopharma..........................................................................36
IV.E.2. Un collecteur de données économiques : Pharmastat..........................................37
IV.F \L’association AURA....................................................................................................37
IV.G \La Chambre Syndicale de la Répartition Pharmaceutique (CSRP)............................37
V) Taux d'informatisation des officines....................................................................................39
VI) Logiciels libres et open source (FLOSS – Free and libre open source software)..............42
VI.A \Définitions..................................................................................................................43
VI.A.1. Code source et code binaire................................................................................43
VI.A.2. Logiciel libre et Open-Source.............................................................................43
VI.A.3. « Libre de droits »...............................................................................................44
VI.A.4. Freeware alias gratuiciel.....................................................................................44
VI.A.5. Le droit des marques...........................................................................................45
VI.B \Exemples de logiciels.................................................................................................45
VI.B.1. Le noyau Linux...................................................................................................45
VI.B.2. Mozilla Firefox...................................................................................................45
VI.B.3. LibreOffice..........................................................................................................46
VI.B.4. PostgreSQL.........................................................................................................46
VII) Tableaux comparatifs........................................................................................................47
VII.A \Méthodologie............................................................................................................47
VII.B \Système d'exploitations requis et système de gestion des bases de données............48
VII.C \Liste des fonctionnalités obligatoires et indispensables...........................................50
VII.D \Liste des fonctionnalités optionnelles.......................................................................51
VII.E \Liste des services complémentaires proposés par les éditeurs en dehors du LGO...54
Page 3/112VIII) Discussion........................................................................................................................57
VIII.A \Critique de la méthode.............................................................................................57
VIII.B \Les pharmaciens sont des acteurs de l'informatisation de l'officine........................58
VIII.C \Évolution de l'informatique officinale.....................................................................58
VIII.D \Sécurité....................................................................................................................59
VIII.E \Le système SESAM-Vitale......................................................................................62
VIII.F \Les FLOSS...............................................................................................................62
IX) Conclusion..........................................................................................................................65
X) Annexe ................................................................................................................................66
X.A \Annexe 1 : Liste des éditeurs de LGO et de leurs logiciels.........................................66
X.B \Annexe 2 : Liste des fonctionnalités de SESAM-Vitale 1.40 dans les différents
logiciels................................................................................................................................69
X.C \Annexe 3 : Part de marché des différents LGO durant les 12 derniers mois...............84
X.D \Annexe 4 : Licence Creative Common – Attribution – Partage dans les mêmes
conditions (CC -By SA 4.0).................................................................................................85
X.E \Fiche de pharmacovigilance........................................................................................90
XI) Acronymes..........................................................................................................................92
XII) Bibliographie.....................................................................................................................97
XIII) Serment de Galien..........................................................................................................110
I.A.1. Index des tableaux
Index des tableaux
Tableau 1: Descriptif des éditeurs de LGO-----------------------------------------------------------33
Tableau 2: Coopérative et informatique – d'après de la Thèse d'Arnaud ANTOINE-----------35
Tableau 3: Système d'exploitations requis et système de gestion des bases de données--------48
Tableau 4: Liste des fonctionnalités obligatoires et indispensables dans les différents LGO--50
Tableau 5: Liste des fonctionnalités optionnelles dans les différents LGO----------------------51
Tableau 6: Liste des services complémentaires proposés par les éditeurs en dehors du LGO- 54
Tableau 7: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les LGO du groupe
CEGEDIM et de la société Pharmavision-------------------------------------------------------------69
Tableau 8: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les LGO du groupe Welcoop
et Vindilis--------------------------------------------------------------------------------------------------73
Tableau 9: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les autres LGO de C à P---76
Tableau 10: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les LGO de P à X---------80
Tableau 11: Part de marché des éditeurs durant les 12 derniers mois - Août 2014--------------84
Page 4/112Année universitaire 2014-2015
Liste des enseignants
PHARMACIE
Université de Poitiers
Faculté de Médecine et de
Pharmacie
Professeurs
CARATO Pascal, Chimie Thérapeutique
COUET William, Pharmacie Clinique
FAUCONNEAU Bernard, Toxicologie
GUILLARD Jérôme, Pharmaco chimie
IMBERT Christine, Parasitologie
LEVESQUE Joël, Pharmacognosie
MARCHAND Sandrine, Pharmacocinétique
OLIVIER Jean Christophe, Galénique
PAGE Guylène, Biologie Cellulaire
RABOUAN Sylvie, Chimie Physique, Chimie Analytique
SARROUILHE Denis, Physiologie
SEGUIN François, Biophysique, Biomathématiques
Maîtres de Conférences
BARRA Anne, Immunologie-Hématologie
BARRIER Laurence, Biochimie
BODET Charles, Bactériologie
BON Delphine, Biophysique
BRILLAULT Julien, Pharmacologie
CHARVET Caroline, Physiologie
DEBORDE Marie, Sciences Physico-Chimiques
DEJEAN Catherine, Pharmacologie
DELAGE Jacques, Biomathématiques, Biophysique
DUPUIS Antoine, Pharmacie Clinique
FAVOT Laure, Biologie Cellulaire et Moléculaire
GIRARDOT Marion, Pharmacognosie, Botanique,
Biodiversité végétale
GREGOIRE Nicolas, Pharmacologie
HUSSAIN Didja, Pharmacie Galénique
INGRAND Sabrina, Toxicologie
MARIVINGT-MOUNIR Cécile, Pharmaco chimie
PAIN Stéphanie, Toxicologie
RAGOT Stéphanie, Santé Publique
RIOUX BILAN Agnès, Biochimie
TEWES Frédéric, Chimie et Pharmaco chimie
THEVENOT Sarah, Hygiène et Santé publique
THOREAU Vincent, Biologie Cellulaire
WAHL Anne, Chimie Analytique
PAST - Maître de Conférences Associé
DELOFFRE Clément, Pharmacien
HOUNKANLIN Lydwin, Pharmacien
Professeur 2nd degré
DEBAIL Didier
Maître de Langue - Anglais
PERKINS Marguerite, Je souhaiterais dédié cette thèse :
À mes parents pour leur amour et leur patience ;
À mes sœurs pour leur affection qui m'entoure ;
À mon frère, toujours présent dans mon cœur ;
À mon parrain qui aurait souhaité être présent pour ma soutenance ;
À mes amis et à ma famille élargie.
Remerciements
À monsieur le Professeur François SEGUIN d'avoir accepter la présidence de
cette thèse et de m'avoir guidé dans sa réalisation. Je profite de cette opportunité
pour vous remercier encore d'avoir accepter mon stage d'initiation à la recherche au
sein de votre laboratoire.
À madame Delphine BON d'avoir accepter de superviser et guider mon travail,
votre aide me fut bien utile pour les dernières retouches.
À monsieur Lydwin HOUNKANLIN qui me fait l'honneur de juger mon travail,
qu'il trouve ici l'expression de ma sincère reconnaissance.
J'espère que le corps enseignant pourra s'appuyer sur mon travail dans la réalisation
de ses cours.
À monsieur Pierre ORLIAC dont j'ai beaucoup apprécié la thèse. Vous éclairez
l'usage de l'informatique officinal en le plaçant dans une autre dimension : la
dématérialisation. Je suis très honoré que vous jugiez mon travail.
À monsieur François ELIE : votre livre sur l'économie des logiciels libres nous
rappelle que l'informatique ne doit pas rester aux seuls mains des informaticiens et
que le cadre juridique des licences libres est une occasion unique pour ne pas subir
cet outil. Je suis très honoré que vous jugiez mon travail.
Page 6/112Je remercie les nombreuses personnes qui ont bien voulu répondre à mes
questions et m'expliquer leur métier, sans vous cette thèse n'aurait pas vu le jour : J.
WITTEVRONGEL du FSPF, T.HERTZOG du CRSP, C.HAZA du CIP, N.BOND,
S.PORTE et L.DUPUIS d'Alliadis, C.ZARELLA et B.CAUSSEL d'ASP Line,
K.BASSAND et D.SELLIER de Caduciel Informatique, F.LAUGERE de CEPI Soft,
J.SAINT-JALMES de CIAM, C.BARANES de La Source Informatique, I.PATAT et
C.CHANFORT de Pharmagest Interactive, T.MARTENOT de PG Informatique,
P.MICHELOT de Pharmavision, M.MOREAUX d'Everys, M.BOIGUES d'ARX.
Un remerciement particulier pour les heures qu'ils ont passé au téléphone à nous
parler de leur travail : R.MARTINEZ d'Infosoft, D.DERISBOURG d'Isipharm, F.DOC
de RESIP/BCB, V.JOLIVET de Vindilis, S.TEBESSI de Visiopharm.
Je remercie Éric et Nicolas pour leur relecture attentive et leur avis sur les FLOSS.
Merci à ma maman et à Francis d'avoir corrigé mes fautes d'orthographe jusque tard
dans la nuit.
Je remercie le personnel bibliothécaire pour son aide dans la réalisation de cette
thèse.
Je profite de cette thèse pour remercier les pharmaciens et leur équipe auprès de
qui je me suis formé : monsieur et madame DUMORTIER, madame AMAHCORDEAU,
monsieur LEFORT, madame BENAITEAU, madame GOURDEAUGUYONNET,
madame HUGAULT, monsieur et madame LAPLACE-CLAVERIE.
Merci à madame BARRERE pour m'avoir permis de travailler dans l'oxygène
médical.
Page 7/112À Xavier pour ton amitié sans faille À Francis, pour ton amitié et ton soutien. À
Guillaume pour ton accueil toujours chaleureux.
À Louis, Guillaume, Adrien et Ophélie pour ces soirées santé inoubliables.
Aux membres de l'APP3L qui m'ont appris que l'informatique est un vrai métier et
que cela ne résume pas à la touche F1 et au tutoriel trouvé sur la toile. ^^
À Thierry STOEHR, pour son excellente conférence sur les formats ouverts.
À l'association Framasoft pour ses nombreux billets et traductions du Framablog et
pour sa Framakey fier exemple des 4 libertés du Logiciel Libre.
Aux nombreux contributeurs des Logiciels Libres, de Wikipédia, d'OSM et à votre
volonté de rendre la connaissance humaine en accès libre. Un remerciement
particulier sera pour les logiciels qui m'ont permis de réaliser cette thèse :
GNU/Linux, Ubuntu, LibreOffice, Bibus, Firefox, Thunderbird et Evince.
Page 8/112 Déclaration d'intérêts
L'auteur déclare n'avoir aucun lien d'intérêts financiers avec les éditeurs de logiciels de
gestion d'officine ou avec leur maison mère.
L'auteur se doit de signaler au lecteur qu'il est un contributeur régulier aux logiciels libres
suivants :
• Ubuntu (au sein du forum francophone et du gestionnaire de bogues) ;
• Firefox et Thunderbird (au sein du forum francophone et du gestionnaire de bogues) ;
• LibreOffice/Apache OpenOffice (au sein des forums francophones et des gestionnaires
de bogues).
De plus, il est un membre actif de l'Association Poitevine pour la Promotion de GNU/Linux
et du Logiciel Libre (APP3L).
Son avis sur le sujet des logiciels libres et de l’open source peut donc souffrir de partialités.
Licence
Le présent document est placé sous licence Creative Common – Attribution – Partage dans
les mêmes conditions (CC -By SA 4.0), le choix de cette licence étant de diffuser cette thèse
avec le moins d'entraves possibles. En cas de réutilisation, il faudra permettre un accès à la
thèse originale, en citer l'auteur, et préciser que c'est une œuvre dérivée (qui devra être
placée sous une licence similaire et compatible à CC - BY SA). Le texte juridique (en anglais)
est consultable en Annexe 4 : Licence Creative Common – Attribution – Partage dans les
mêmes conditions (CC -By SA 4.0)
La partie annexe et les citations sont toutefois exclues du champ de la licence Creative
Commons, l'auteur y a en effet placé des œuvres qui sont, ou qui pourraient être soumises au
droit d'auteur classique. La licence CC - BY SA s’applique donc de la page 10 à la page 67
non incluse.
Les citations sont signalées par une typographie différente du reste du texte sur un fond gris.
Les noms de sociétés, les logiciels et marques cités sont la propriété de leur ayants droit
respectifs.
Page 9/112
Illustration 1: Logo Creative Common By SA
auteur : Organisation Creative Common ; CC0II) Introduction
L'informatique a été très tôt présente au sein de l'officine : dès 1977, une thèse aborde ce
sujet[1]. C'est l'arrivée du programme SESAM-Vitale en 1998 qui va lancer sa généralisation
au sein de l'officine. Ces logiciels métiers sont appelés logiciels de gestion d'officine (LGO).
D'outils pour la gestion du stock, des commandes et de la vente, les LGO deviennent alors une
aide pour le pharmacien dans sa gestion administrative. Fin 2008, l'arrivée du Dossier
Pharmaceutique ajouta une nouvelle corde à l'arc du pharmacien : celui-ci peut avoir
connaissance de l'historique des médicaments délivrés dans d'autres pharmacies.
Ainsi, l'outil étend petit à petit sa place dans l'univers officinal, devenant progressivement
incontournable et nécessaire. Devant ce fait, il nous a semblé judicieux de mieux connaître
ces logiciels métiers tant concernant les fonctionnalités proposées, que les acteurs qui
façonnent ces logiciels de gestion d'officine. Seuls les logiciels commercialisés par les
éditeurs seront abordés. Nous espérons que cette thèse permettra aux pharmaciens d'officine
d'avoir une meilleur vision de leur outil.
L'objet de cette thèse n'est pas de détailler la technique informatique. Ces détails techniques,
lorsqu'ils nécessiteront des éclaircissements, seront uniquement abordés dans des notes. Ainsi,
nous n'expliquerons pas le fonctionnement propre d'un ordinateur, la notion de système
d’exploitation ou le modèle de couches au sein des réseaux de communication. De même nous
ne développerons pas les mécanismes administratifs de l'assurance maladie comme le ticket
modérateur, cette thèse s'adressant en premier lieu à des officinaux, ils sont donc familiers
avec ces notions. Dans la mesure du possible, nous renverrons le lecteur curieux à notre
bibliographie. Il y trouvera des informations plus précises sur certaines fonctionnalités qui ne
seront décrites que brièvement ou citées au sein de cette thèse.
Dans la première partie, nous détaillerons une liste des fonctionnalités et services que l'on
peut retrouver au sein des différents logiciels présents sur le marché. Dans la seconde partie,
nous ferons état des différents acteurs influençant les fonctionnalités des logiciels d'officine.
Pour la troisième partie nous analyserons les chiffres de télétransmissions des professionnels
de santé fournis par le GIE SESAM-Vitale. La notion de logiciel libre et à code ouvert (Free
and Libre Open Source Software – FLOSS) sera abordée puisque certains composants des
LGO sont placés sous ce régime juridique. Enfin, nous présenterons le résultat de notre
recherche sur les fonctionnalités au sein des logiciels de gestion d'officine et terminerons par
une discussion sur les informations récoltées pour la rédaction de cette thèse.
Page 10/112III) Les composants des
logiciels de gestion
d'officine
III.A \ Fonctionnalités obligatoires
Ce chapitre comprend les fonctionnalités obligatoires d'un logiciel de gestion d'officine. Les
éditeur sont dans l'obligation de les proposer à leurs clients, ces derniers étant contraints de les
utiliser au quotidien. Le Tableau 4 présente les informations en les triant par logiciels.
III.A.1. Par convention : SESAM-Vitale, ADELI, NOEMIE,
Tiers-payant
Ce sont deux décrets de 1998[2][3] qui vont transformer les expérimentations débutées en
1996 et créer la carte d'assurance maladie ou Carte Vitale (CV). L'article L162-16-1[4] du
Code de la Sécurité Sociale (CSS) précise toutefois que c'est par convention entre les caisses
et les représentants de la profession que sont réglés les modalités :
Les rapports entre les organismes d'assurance maladie et l'ensemble des pharmaciens titulaires
d'officine sont définis par une convention nationale conclue pour une durée au plus égale à
cinq ans entre une (ou plusieurs) organisation(s) syndicales(s) représentative(s) des
pharmaciens titulaires d'officine, d'une part, et l'Union nationale des caisses d'assurance
maladie, d'autre part.
La convention détermine notamment : […]
4° Les mesures tendant à favoriser le développement de la dispense d'avance des frais
Tout un ensemble de protocoles et de technologies ont été mis en place pour automatiser
tout le processus administratif entre les caisses et les officines. Cette communication se fait au
sein d'un réseau appelé SESAM pour « Système électronique de Saisie de l'Assurance
Maladie ». L'accès à ce réseau se fait à l'aide de deux cartes : la carte Vitale1
et la Carte de
Professionnel de Santé.
III.A.1.a. La Carte Vitale et la Carte de Professionnel de Santé
La norme ISO 7816 définit le fonctionnement des cartes à puces[5] dont fait partie la carte
Vitale 2[6][7] ainsi que la Carte de Professionnel de Santé[8] (CPS). Notons que la version 3
de la CPS contient un dispositif sans contact[9] (définit dans la norme ISO 14443) et un
1 Appelée juridiquement : carte d'assurance maladie
Page 11/112dispositif IAS-ECC[10] (Identification-Authentification-Signature European-Citizen-Card2
).
La CV 2 apporte par rapport à la CV 1 un coprocesseur cryptographique et la possibilité de
gérer un certificat permettant l'identification du patient[11].
La CV ne contient que les informations nécessaires à l'identification de l'assuré et de ses
ayants droits au près des caisses obligatoires. La remise de la CV à un professionnel de santé
équivaut à un accord tacite[12] autorisant ce dernier à transmettre les facturations par voie
électronique. Enfin, l'utilisation de CV donne la garantie[13] au pharmacien de se faire payer
par l'assurance maladie obligatoire.
Pour limiter les fraudes, les caisses fournissent quotidiennement une liste3
des CV que le
pharmacien devra refuser[14].
La CPS sert, quant à elle, à authentifier le professionnel de santé comme le demande l'article
R161-52 du CSS[15]. En effet, elle devient un sésame pour accéder à des informations
administratives, mais surtout à des informations médicales[16], sensibles par définition. Le
Groupement d’Intérêt Public Agence des Systèmes d'Informations Partagés de santé (ou
GIP ASIP-Santé) est le gestionnaire des droits et autorisations professionnelles. Le
professionnel de santé doit utiliser un code PIN4
pour activer la lecture de sa CPS.
III.A.1.a.1. Les lecteurs
Deux types de lecteurs se trouvent dans les officines :
• ceux en accès libre : ils sont mis à la disposition par les caisses d'assurance maladie
obligatoire. Ils servent à la mise à jour des cartes vitales et à la consultation de
certaines informations présentes. Puisque les officines ont des horaires plus larges que
les caisses et surtout ont un maillage plus étendu. et à. Les frais de fonctionnement
restent à la charge des caisses[17].
• ceux rattachés au comptoir. Ces lecteurs fixes ont la possibilité de lire 2 à 3 cartes à
puces en même temps (CV + CPS + carte DUO5
). Ils ont souvent été fabriqués par les
sociétés Xiring, SAGEM santé, ou Wynid[18][19]. Cette dernière a été rachetée par le
groupe Thales en 2005[20]. De même, la société Xiring appartient au groupe Ingenico
depuis 2011[21]. Ingenico est le seul fournisseur de lecteur en 2014 présent sur le
marché.
Le GIE - SESAM-Vitale travaille à l'homologation d'un type de lecteur : Personal
Computer/Smart Card [22] (PC/SC). PC/SC est une spécification entre les industries de la
carte à puce (ou SIM) et celles des logiciels[24]. Les lecteurs se connectent à un port USB
(d'anciens modèles utilisent encore les ports séries), ce qui permet de déporter une partie des
fonctionnalités et des analyses du lecteur à l'ordinateur auquel il est connecté. Les lecteurs
PC/SC6
sont ainsi utilisés pour authentifier les agents de l'administration française[10]. Ces
nouveaux lecteurs sont bien moins cher que les lecteurs bi ou tri-fentes (en 2014 : souvent
moins de 60 € contre plus de 300 € pour les derniers). De plus, ce type de lecteur permettrait
de faciliter l'authentification du patient, point important dans le cadre du Dossier Médical
2 Qui doit permettre une interopérabilité du système avec les pays européens
3 Cette liste sera utilisée par la suite par tous les professionnels de santé.
4 PIN : Personal Identification Number ou code confidentiel nécessaire pour accéder à la puce.
5 Carte DUO est une carte à puce contenant les informations nécessaires aux remboursement par les caisses
complémentaires (alias mutuelles).
6 Nous n'avons pu savoir si l'utilisation de ces lecteurs requièrent la norme IAS-ECC et donc que la CV 1 ne
pourra être utilisé avec ces lecteurs PC/SC
Page 12/112Personnel7
(DMP). Cette fonctionnalité existe dans la carte Vitale 2 mais n'a jamais été
activée[5].
III.A.1.a.2. Les flux
Une des missions des Caisses Primaires d'Assurance Maladie (CPAM) est de « Garantir et
faciliter la prise en charge des dépenses de santé »[25]. C'est dans cet objectif que les caisses
poursuivent leur démarche de dématérialiser toute la procédure administrative. Le projet
SESAM n'est que l'expression de cette démarche administrative et économique. Il articule
différents flux de données entre les caisses et les professionnels de santé.
L'officine est concernée par les protocoles de flux suivants[11][26] :
• La norme B2 type PH intégrant les Feuilles de Soin Électronique (FSE) pour la caisse
obligatoire et les Demandes de Remboursement Électronique (DRE) pour la caisse
facultative. Il est intéressant de noter que ces informations s'appuient désormais sur le
protocole SMTP8
avec S/MIME9
. Ce sont des flux qui partent de l'officine.
• La norme NOÉMIE avec les accusés de réception logiques (ARL) et les
rejet/signalement/paiement (RSP). Ce sont des flux qui arrivent à l'officine.
7 Dossier Médical Personnel ou Dossier Médical Partagé l’appellation variant au cours du temps (voir Thèse
d'Isabelle ADENOT à ce sujet [23])
8 Pour Simple Mail Transfer Protocol, pour protocole simple de transfert de courriel. Pour en savoir plus :
http://www.iletaitunefoisinternet.fr/lemail-par-benjamin-sonntag/
9 Pour Secure / Multipurpose Internet Mail Extensions
Page 13/112
Illustration 2: Schéma des flux d'information au sein de SESAM-Vitale
[auteur : C.BRISSET - 2014]
Officine
DRE
FSE
SCOR
Norme B2
NOÉMIE
AMC
AMO
ARL
AMC
AMO RSP III.A.1.a.3. SCOR
L'officine continue son chemin vers la dématérialisation : après une mise en place en 2011
qui nécessitait alors l'envoi des ordonnances numérisées par CD-ROM, l'année 2013 est
marquée par l'envoi, via internet, des ordonnances scannées aux caisses. C'est au sein des
conventions régulières entre l'assurance maladie et les représentants des pharmaciens qu'a été
mise en place cette fonctionnalité[27], appelée SCOR pour SCannérisation des ORdonnances.
Cet envoi s'intègre au sein du flux des feuilles de soins électronique (FSE) à travers le
protocole SMTP couplé avec S/MIME. L'image de l'ordonnance scannée est insérée au sein
d'un document PDF, indexé à la norme SEH[11] (système d’échanges harmonisés des
organismes d’assurance maladie obligatoire) . Le PDF est intégré en pièces-jointes à la facture
qu'envoie le pharmacien via le système SESAM-Vitale.
Il permet ainsi des économies substantielles de papier : la sécurité sociale estime à 550
millions[28], le nombre d’ordonnances prescrites chaque année. À Paris, six tonnes
d'ordonnances étaient acheminées, en 2011, chaque semaine à la sécurité sociale ![29]
III.A.2. Le Dossier Pharmaceutique : obligatoire par la loi
Créé par le Conseil National de l'Ordre des Pharmaciens (CNOP), après la promulgation
dans l'article L161-36-4-2[30] en janvier 2007 :
Article L161-36-4-2
Créé par Loi n°2007-127 du 30 janvier 2007 - art. 25 (V) JORF 1er février 2007
Afin de favoriser la coordination, la qualité, la continuité des soins et la sécurité de la
dispensation des médicaments, produits et objets définis à l'article L. 4211-1 du code de la
santé publique, il est créé, pour chaque bénéficiaire de l'assurance maladie, avec son
consentement, un dossier pharmaceutique dont les informations alimentent le dossier médical
personnel mentionné à l'article L. 161-36-1 du présent code, dans des conditions précisées
par le décret prévu à l'article L. 161-36-4.
Sauf opposition du patient quant à l'accès du pharmacien à son dossier pharmaceutique et à
l'alimentation de celui-ci, tout pharmacien d'officine est tenu d'alimenter le dossier
pharmaceutique à l'occasion de la dispensation.
La mise en œuvre du dossier pharmaceutique est assurée par le Conseil national de l'ordre
des pharmaciens mentionné à l'article L. 4231-2 du code de la santé publique .
En premier lieu, le Dossier Pharmaceutique (DP) se veut comme un outil professionnel à
destination des pharmaciens, ne servant qu'indirectement les patients[31]. Ces derniers
doivent donner leur accord avant toute ouverture de leur DP. Initialement, il est prévu pour
coordonner l'historique des médicaments délivrés au patients (avec ou sans ordonnance) dans
l'officine. Le DP ne comporte aucune information sur les prix des médicaments, le lieux de
délivrance, l'éventuel prescripteur. Par la suite, Le dispositif a été étendu :
• à la diffusion des alertes sanitaires et aux retraits de lots de médicaments[32] ou
d'autres produits vendus en officine[33].
• aux pharmacies à usage intérieur (hôpital) par le Décret n° 2012-1131[34].
• aux ruptures de stock (expérimentation en cours depuis mars 2013)[35].
• au suivi sanitaire par l'article 23 de la loi n°2011-2012[36] du 29 décembre 2011.
Page 14/112Le DP possède donc tout un ensemble de règlements au sein du Code de la Santé Publique :
Article R1111-20-1 à R1111-20-11.
Le CNOP réfléchit[33] à l'étendre aux vaccins - les données sur les vaccins seraient
conservés 25 ans - et à utiliser le DP pour lutter contre les médicaments falsifiés.
Le DP utilise une technologie basée sur du code XML (sur HTTP) ou SOAP[37]. Les
échanges entre l'officine et le serveur se font de manière chiffrée (connexion SSL[37]). La
codification des informations suit la norme HL7[11]. L'accès au DP est conditionné à
l'utilisation simultanée de la carte Vitale et de la carte du Professionnel de Santé.
III.A.3. L'ordonnancier
Dans l'article R5132-9 du CSP[38], le législateur demande au pharmacien de tenir un
historique de toutes les délivrances de médicaments :
Les personnes habilitées à exécuter les ordonnances ou les commandes comportant des
médicaments autres que les préparations relevant de la présente section les transcrivent
aussitôt à la suite, à l'encre, sans blanc ni surcharge, sur un registre ou les enregistrent
immédiatement par tout système approprié ne permettant aucune modification des
données qu'il contient après validation de leur enregistrement.
Les systèmes d'enregistrement permettent une édition immédiate à la demande de toute
autorité de contrôle des mentions prévues à l'article R. 5132-10, chaque page éditée devant
comporter le nom et l'adresse de l'officine. Les données qu'ils contiennent doivent figurer sur
un support garantissant leur pérennité et leur intégrité. Elles doivent en outre être dupliquées
sur deux supports distincts, le premier servant à la consultation habituelle, le second étant
gardé en réserve. Les données archivées doivent pouvoir être accessibles, consultées et
exploitées pendant la durée de leur conservation.
Pour les stupéfiants ou assimilés, les articles R5132-35 et R5132-36 du CSP[39] un registre
est tenu sur le stock permettant de suivre ses entrées et ses sorties :
Toute entrée et toute sortie de substances et de médicaments classés comme stupéfiants sont
inscrites par les personnes mentionnées à l'article R. 5132-76 sur un registre ou enregistrées
par un système informatique spécifique […] Le registre, les enregistrements informatiques
et les éditions de ces enregistrements par période maximale d'un mois ainsi que les documents
attestant la destruction sont conservés dix ans à compter de leur dernière mention, pour être
présentés à toute réquisition des autorités de contrôle.
Ainsi, le législateur exige du système informatique de l'officine une pérennité (dix ans) et
une intégrité (pas de modification des registres). Si, pour les ordonnances liées aux
stupéfiants, les officinaux ont toujours préféré conserver le duplicata papier, l'arrivée des
scanners fait rentrer ces doubles dans les archives du LGO[40].
Ce point n'est pas précisé dans le tableau récapitulatif : en effet l'ordonnancier n'est que
l'expression de la base de données que possède tout LGO, le développeur paramétrant celleci
pour qu'elle respecte la loi.
Page 15/112III.A.4. La base de données des médicaments et des
produits de santé
L'article L161-38 du CSS[41] exige que dès le 1er janvier 2015, tous les LGO devront
posséder une base de données de médicaments et de produits de santé possédant un agrément
auprès de l'HAS[42]. Les décrets ne sont toutefois pas encore publiés.
Les industriels du secteur du médicament et des produits de santé fournissent les
informations nécessaire à la base de données lors de la demande d'AMM au sein du fameux
RCP (Résumé des Caractéristiques des Produits). La validation des RCP fait partie des
prérogatives de l'ANSM et confère sa légalité au RCP. C'est ensuite à partir du travail de
l'ANSM que sont construites les bases de données de médicaments. Le groupe d'experts de
l'ANSM ou Groupe de Travail sur les Inter-Actions Médicamenteuses (GTIAM) se réunit tous
les six mois pour actualiser la liste d'interactions médicamenteuses10 appelés « Thésaurus des
interactions médicamenteuses »[43]. Le Thésaurus est juridiquement opposable dans le
domaine des interactions médicamenteuses.
Les informations concernant l'aspect économique des médicaments remboursables sont
quant à elle fournies par le Comité Économique des Produits de Santé (CEPS).
Le travail des éditeurs de base de données de médicaments est de :
• structurer l'information issue de l'ANSM au sein de la base de donnée ;
• classifier les interactions médicamenteuses en accord avec l'ANSM ;
• ajouter le prix des médicaments non remboursables et celui des produits hors AMM ;
• contrôler la commercialisation effective d'un médicament (toute demande d'AMM ne
débouche pas forcément sur une commercialisation) ;
• surveiller les retraits du marché (les annonces de la part de l'ANSM ayant parfois un
certain délai) ;
• ajouter des données posologiques (permettant par exemple le calcul des doses
maximales journalières) ;
• effectuer une veille sur les AMM européennes issues de l'Agence Européenne des
Médicaments (EMA), le médicament arrivant sur le marché français sans que l'ANSM
ne se soit occupé de l'AMM. Dans ce cas, l'ANSM donnera un avis provisoire avant la
prochaine réunion d'experts.
De plus, les éditeurs peuvent agrémenter leur base de données d'informations
complémentaires comme celles du Centre de Référence sur les Agents Tératogènes (CRAT)
ou celles des protocoles de chimiothérapie.
Il existe à ce jour quatre bases de données médicamenteuses agréées par l'HAS :
• la Banque Claude Bernard est la propriété de RESIP/ Cegedim ;
• le VIDAL fait par l'éditeur du même nom ;
• le Thesorimed fait par le GIE - Système d'Information sur les Produits de Santé
(GIE - SIPS). Ce GIE est composé, entre autres, de représentants des 3 caisses
10 qui n'est donc pas issue des RCP
Page 16/112fondatrices (CNAMTS, MSA et RSI) qui fournissent la majeure partie de son
financement, d'un représentant du Ministère de la Santé et d'un autre de l'ANSM[44].
• le Thériaque créé par l'association de 3 syndicats de pharmaciens hospitaliers
(CNHIM)[45]. Initialement membre du GIE - SIPS, le CNHIM s'en est séparé, gardant
la base Thériaque avec lui[46].
L'OCP a demandé un agrément pour sa base de données ClickaDoc, au moment de la
rédaction de cette thèse, cet agrément n'était toujours pas délivré.
Thériaque est la seule base qui ne soit pas utilisée à l'officine (voir le Tableau 4), ClickaDoc
serait utilisé au sein de LGPI.
Nous signalons le site web http://www.meddispar.fr/, créé et financé par l'Ordre National de
Pharmaciens. Son absence d’exhaustivité l'empêche d'être utilisé au sein des LGO. Toutefois,
sa clarté et sa simplicité permet de servir son objectif d'aide aux pharmaciens pour les
médicaments ayant une dispensation particulière liée à la législation.
Depuis le 1er Octobre 2013, le Ministère de la Santé propose au public la consultation des
RCP sur le site www.medicaments.gouv.fr. L'ANSM édite aussi une application pour
smartphones pour donner les prix des médicaments au public.
De même, des projets communautaires comme Drugref11 ou FreeMedForms12 s'emploient à
créer des bases de données sur les médicaments. Là aussi, l'absence d'agrément de l'HAS
interdit leur utilisation au sein des LGO.
11 http://freecode.com/projects/drugref
12 http://freemedforms.com
Page 17/112III.B \ Fonctionnalités indispensables
Ce chapitre concerne les fonctionnalités consacrées par l'usage. Elles s'avèrent
indispensables par l'essence même du logiciel de gestion d'officine : accompagner le
pharmacien dans son travail quotidien et l'épauler lors des tâches répétitives souvent liées aux
contraintes administratives et législatives.
Un LGO est un ensemble de bases données (listes d'informations structurées et pouvant être
extraites selon plusieurs items ou filtres). Il répond à la définition de progiciel de gestion
intégré (ou ERP) car il gère plusieurs domaines de l'officine : fiche clients, stock, … Les
informations sont présentes au sein d'une même interface logicielle. Le Tableau 4 du
quatrième chapitre présente les informations en les triant par logiciels.
III.B.1. La gestion de stock
La gestion de stock désigne la capacité du logiciel à gérer les entrées de tous les produits
présents à l'officine et leur sortie lors de la vente. Par conséquence, les LGO analysent les
stocks :
• lors de la commande avec les grossistes-répartiteurs ou les laboratoires : même si elle
n'est pas encore reçue, le système en possède déjà la connaissance évitant ainsi des
achats inutiles. Au moment de la réception, une saisie à l'aide d'un terminal scannant
les produits reçus permet de détecter des erreurs de livraisons de manière semiautomatique.
• lors de la vente, l'ordinateur retranche de sa base de données les produits vendus.
Ainsi, la gestion de stock assistée par ordinateur permet au pharmacien d'avoir une
représentation virtuelle de ce qu'il possède au sein de son officine. Cette représentation se doit
d'être la plus proche possible de la réalité physique. Les différences peuvent s'expliquer par
des erreurs lors de la manipulation du système informatique, des erreurs dans l'emplacement
du lieu de stockage, des destructions involontaires non répercutées dans le système
informatique ou encore des vols.
III.B.1.a. PharmaML
PharmaML a été créé en 2003-2004 pour remplacer la norme précédente de transmission de
commande entre les officinaux ou les pharmacie d'hôpitaux et les grossistes. Cette ancienne
norme s'appelait « 170-171 »[47] et présentait de nombreuses limitations. La création de
PharmaML a été décidée et financée par les grossistes afin d'améliorer leur service client. Elle
est basée sur un flux de données structurées en XML. Son accès est gratuit aux SSII (Sociétés
de Services en Ingénierie Informatique ) à la condition de signer un contrat de nondivulgation.
Depuis 2006, son usage n'est plus restreint aux échanges avec les grossistes : les
officines et les pharmacies hospitalières peuvent l'utiliser pour émettre des commandes
directement aux laboratoires. PharmaML n'est pas prévu pour réaliser des commandes directes
inter-officine ce qui serait illégal.
Ce protocole permet d'interroger directement le stock des grossistes-répartiteurs et donc de
connaître la disponibilité d'un produit, sa quantité et son prix. Le bénéfice pour le grossisterépartiteur
est de diminuer ses besoins en personnel tenant le standard téléphonique. Pour le
Page 18/112personnel officinal, le bénéfice en est la rapidité d'accès à l'information : au comptoir, il peut
confirmer la disponibilité d'un produit et le commander directement. Enfin, le processus
informatique évite les erreurs de la communication orale. Toutefois, ceci demande une base de
données la plus complète possible pour les grossistes et aussi que le personnel officinal sache
correctement orthographier le produit.
PharmaML permet, depuis sa version 1, aux grossistes de réaliser des bons de livraison
valorisés. Ceux-ci sont la dématérialisation des bons de livraison papier. C'est une possibilité
peu utilisée actuellement.
Depuis sa version 3.0, PharmaML inclut aussi la traçabilité13 avec le numéro de lot et la date
de péremption. Elle propose aussi la géolocalisation de l'article commandé au sein de
l'officine : le pharmacien sait tout de suite qu'une caisse livrée est destinée à son automate.
III.B.1.b. Les codes barres : CIP 13, ACL, EAN, vignette et
Datamatrix
Le système de code-barre consiste en l'affichage d'une information alpha-numérique en
utilisant un fort contraste entre une série de marques et la couleur de l'emballage d'un produit.
Il peut être disposé :
• de manière linéaire, le code étant alors une série de traits plus ou moins épais
parallèle entre eux. C'est l'épaisseur du trait qui donne la valeur du nombre.
• ou simultanément sur la largeur et la longueur soit sur 2 dimensions. Les informations
étant alors un nuage de points qui sont la représentation picturale des bits (noir =1 et
blanc =0).
Le code CIP (Club Inter-Pharmaceutique ) a été créé par une association loi de 1901[48]
composée de fabricants, dépositaires, répartiteurs, pharmaciens hospitaliers, pharmaciens
officinaux et organisations représentatives. Afin de faciliter le travail de chacun, cette
association a proposé une codification des médicaments pour l'humain. Le Ministère de la
Santé utilise ce code comme référence des AMM.
Les produits sans AMM ne sont pas concernés et sont regroupés sous le code ACL[49]
(Association de Codification Logistique).
Chacun de ces codes était encodé dans un code barre EAN 13[50], disposé sur une seule
dimension, selon les normes établies par l'organisme de normalisation Global Standards
(GS1). Mais pour permettre une meilleure traçabilité des médicaments et faciliter la gestion
de leur péremption dans le système informatique, un code barre disposé sur 2 dimensions a
été proposé. Il est appelé le code Datamatrix (ISO/IEC 16022). En plus du code CIP sur 13
chiffres14, il comprend obligatoirement la date de péremption (AAMMJJ) et le numéro de lot
qui peut prendre jusqu'à 20 caractères alphanumériques - les bits encodant des caractères du
code ASCII (ensemble de chiffres et de lettres sans accentuation). Il est possible de rajouter le
numéro de série et la date de fabrication[51].
Dans le but de limiter les erreurs, l'ensemble de chiffres que constitue le EAN15 13 ou le
Datamatrix (dans ses 13 premiers chiffres) sont contrôlés par une clé qui est le résultat d'une
formule mathématique dépendant de ces 13 chiffres. De plus, pour limiter les erreurs de
13 Devenu obligatoire pour les grossistes-répartiteurs et pour les médicaments entrant à l'officine (voir le
chapitre III.B.1.b. )
14 GS1 recommande de l'inscrire sur 14 chiffres soit 13 précédés d'un zéro pour une intégration au sein de ses
autres normes.
15 European Article Numbering
Page 19/112lecture du code Datamatrix, les informations sont redondantes[52] au sein du damier que
forme le code-barre 2D (Error Correction Codewords).
L'article R5124-58[53] du Code de la Santé impose aux laboratoires (mais pas aux officines)
la traçabilité par lots et par date de péremption. Ces informations peuvent être stockées en une
seule fois dans le code Datamatrix à la différence du code EAN 13 qui oblige à écrire ces
informations à coté. Le GS1 recommande que les informations contenues[54] dans le code
Datamatrix soient affichées en clair à proximité, pour éviter les cas où le code serait illisible
(ou le lecteur défaillant).
Pour finir, les informations concernant le remboursement de l'article sont présentées dans un
format non standardisé, appelé code 128[54]. Dans le jargon officinal, ces informations
constituent la « vignette ». La présence de la vignette était encore obligatoire jusqu'au 1er
juillet 2014 car elle était le moyen de fournir le taux de prise en charge et le prix[55] fixé par
les caisses. Le code barre de la vignette contenait le code CIP encadré en préfixe par un
chiffre reflétant le taux de remboursement, et en suffixe par le prix de vente en centimes
d'euros. Ces informations sont maintenant transmises par les bases de données de
médicaments.
III.B.2. Gestion des fiches des patients et des praticiens
L'acte de délivrance exige d'identifier, selon plusieurs critères, le praticien et le patient sur
l'ordonnance[56]. Ces informations seront nécessaires pour la facturation aux organismes
d'assurance maladie[57]. Le LGO doit donc gérer ces informations et permettre de les
transmettre.
III.B.3. Comptabilité
Cette fonctionnalité est arrivée conjointement avec la gestion de SESAM-Vitale. Après
avoir été une aide à la gestion logistique, l'outil informatique est devenu une aide à la
compatibilité ainsi que dans les procédures administratives. Toutefois, les LGO ne constituent
pas de véritables logiciels comptables : ils n'ont le plus souvent que des fonctionnalités
d'export d'informations vers un logiciel comptable.
Ainsi, les LGO permettent de gérer les flux financiers liés à SESAM-Vitale, certains
logiciels vérifiant même auprès de la banque que les virements promis par les caisses ont bien
été effectués.
Lors des commandes, la partie comptable du logiciel associée à sa partie gestion de stock
donne au pharmacien une aide supplémentaire à la décision.
III.B.4. Gestion des droits de l'équipe officinale
Les alertes sanitaires diffusées par la voie du dossier pharmaceutique doivent être validées
par le pharmacien présent à l'officine. Ainsi les LGO doivent différencier les membres de
l'équipe officinale, notamment en fonction de leur profession (pharmacien, préparateurs,
magasiniers). Les magasiniers, par exemple, ne peuvent pas délivrer de médicaments aux
comptoirs[58]. En pratique, les titulaires peuvent choisir de confier la responsabilité de
certains postes à certains membres : par exemple le responsable du stock pourra être le seul
(en plus du titulaire) à pouvoir modifier le stock dans le LGO.
Page 20/112III.B.5. Questionnement de validité de l'ayant-droit
Si la présence de la CV assure le remboursement au pharmacien des frais liés à la partie
obligatoire du ticket modérateur[13], la situation est bien différente pour les organismes
complémentaires. Même si l'assurée présente son attestation de rattachement à une mutuelle,
il arrive que le paiement ne soit pas garanti pour les officinaux.
En effet, le rattachement à une caisse obligatoire est lié au métier du patient et à son
département d'habitation. Pour la majorité des assurés, ces situations évoluent peu au cours de
leur vie professionnelle sauf déménagement. Par contre, le rattachement à une mutuelle,
caisse facultative, relève du choix du patient ou de son employeur. À ce titre, cette donnée est
amenée à varier plus souvent et ainsi à entraîner des problèmes administratifs de suivi de
dossier. Certains éditeurs proposent aux officines de contrôler l'inscription du patient et de ses
ayants droit auprès des mutuelles.
Comme système nous pouvons citer un système de carte à puce Cleyris d'Esculape ;
Visiodroit de Résopharma ; le système Almérys d'Orange ; SPSanté et iSanté de Cegedim ;
Viamedis ou les carte à puce DUO. Cette dernière a été abandonnée.
Page 21/112III.C \ Fonctionnalités optionnelles.
Les fonctionnalités optionnelles apportent des services supplémentaires aux officinaux. Si
elles ne semblent pas essentielles, elles apportent un service à ceux qui les utilisent au
quotidien. Le Tableau 5 du quatrième chapitre reprend l'ensemble des informations par
logiciels.
III.C.1. Opinion pharmaceutique
Promu par le CNOP à partir des années 2000, ce concept vient du Canada où le pharmacien
est rémunéré pour son analyse de la prescription médicale[59]. Le CNOP en a fait une marque
déposée[60]. Lorsqu'il reçoit une ordonnance, le pharmacien se doit d'en faire une analyse
(obligation légale selon l'article R.4235-48 du CSP). Le pharmacien peut ainsi signaler un
problème sur une ordonnance (interactions médicamenteuses, dosages erronés, …).
En demandant aux éditeurs d'intégrer cette fonctionnalité, le CNOP a cherché à tracer cet
acte au sein du LGO. En cas de litige, le pharmacien pourra justifier son action qui a été
inscrite lors de la rédaction de l'opinion pharmaceutique (aval du médecin ou opposition du
pharmacien à la délivrance). Cet outil reste peu usité[61] : une étude des ARS montre que
seules 11,3 % des officines avaient rédigé des fiches d’Opinion Pharmaceutique au cours du
second semestre 2010.
III.C.2. Achat par groupement
L'achat par groupement permet à plusieurs officines d'acheter en commum auprès d'un
laboratoire, sans être dépendant d'un groupement avec centrale d'achat (comme Giphar,
Pharmavie,…). Son but est de rassembler le plus d'officines pour atteindre la masse critique
où le laboratoire fera une meilleure proposition commerciale. Le plus souvent, une officine
centralise la réception et répartit ensuite les produits entre les autres officines.
Les éditeurs essayent de rassurer leur utilisateurs sur l'interopérabilité de leur solutions :
plusieurs officines ne sont pas obligées d'avoir le même logiciel pour réaliser des achats
groupés. Les échanges sont intégrés dans le LGO de l'éditeur. Mais pour le confrère qui ne
possède pas le même logiciel, il devra se contenter d'une interface web et palier ainsi l'absence
d'intégration par une manipulation chronophage de saisie au sein d'un LGO différent.
III.C.3. Gestion des collectivités
Les officines sont amenées à travailler avec des collectivités (foyers logements, maison de
retraites, EHPAD, personnes sous tutelles, … ), chacune ayant des habitudes de facturation
liées à leur organisation propre (facturation mensuelle globale ou par patients, double facture
pour les tutelles, séparation de la part obligatoire et de la part complémentaire, … ).
III.C.4. Télétravail
Le télétravail désigne la possibilité de travailler en dehors des lieux physiques habituels
(dans notre cas, l'officine). Ainsi la présence physique du titulaire n'est pas requise pour
certaines opérations (préparations de commande, compatibilité, …). Les éditeurs proposent
Page 22/112donc un accès à distance au LGO. Cette fonctionnalité exige une sécurisation du flux de
connexion puisqu'elle est une porte sur l'extérieur et une possibilité de fuite d'informations
confidentielles sur l'entreprise ou sur les données des patients.
III.C.5. SMS
Il arrive couramment que les pharmaciens ne puissent fournir tous les produits au comptoir.
Cette fonctionnalité, couplée à une fiche client comprenant le numéro de mobile, permet
d'alerter les personnes de la réception des produits. La gestion des articles promis est alors
plus harmonieuse.
III.C.6. Gestion du robot/automate de stockage
La communication du LGO avec un robot ou un automate se fait par un protocole appelé
CD API[62] (pour Consis Dispenser Application Programming Interface [64][65]) par
certains, ou protocole AURA par d'autres. En effet, ce protocole16 est né sous l'impulsion de
l'Association des Utilisateurs des Robots et des Automates (AURA). Les éditeurs français et
les constructeurs ont repris un protocole créé par les éditeurs allemands de LGO[67]
(plusieurs entreprises d'automates sont allemandes).
Le lecteur curieux pourra en apprendre davantage au sujet des robots et des automates en
consultant la thèse de Guillaume AUBERT[49].
III.C.7. Fidélisation
Si cela est interdit pour les médicaments (Articles R. 4235-21[68] et R. 4235-22[69] du
CSP), pour les autres produits vendus à l'officine, la pharmacie peut proposer des programmes
de fidélité à ses clients.
III.C.8. Gestion du matériel de location
Le patient peut se voir prescrire du matériel médical (lit, potence, béquilles, canne,
nébuliseur, … ), délivrable en pharmacie. Le plus souvent, l'officine ne possède pas ce
matériel et passe par un tiers. Toutefois, c'est elle qui s'occupe de la facturation à la Sécurité
Sociale. Le LGO aide donc le pharmacien à bien remplir cet acte et lui facilite sa comptabilité
avec son loueur de matériel.
III.C.9. Gestion des emplois du temps de l'équipe
officinale
Cette fonctionnalité permet de gérer, de manière centralisée, les rendez-vous pris avec les
représentants commerciaux des laboratoires, les formations ponctuelles proposées par les
laboratoires, les journées obligatoires prévues par la formation continue, les gardes et bien sûr
16 Au niveau matériel, la communication bidirectionnelle est établie par un port série COM (RS-232) au moyen
du protocole de couche basse 3964R,[63] créé par SIEMENS. Une évolution de cette couche vers celle du
réseau IP est en cours[66]. Ce point se concrétisera par le remplacement des ports série COM par des ports
Ethernet RJ45. Au dessus de cette couche, les machines établissent un dialogue normé.
Page 23/112les plannings de chaque employé17. Couplée aux informations sur la fréquentation de
l'officine, elle peut être une aide intéressante dans la gestion de son équipe.
III.C.10. Gestion de la caisse
À la fin de chaque journée, le pharmacien réalise le bilan journalier comptable. Le logiciel
ayant enregistré le moyen de paiement de chaque achat, affiche les montants ayant transités
par le TPE (Terminal de Paiement Électronique), le nombre de chèques encaissés et le
montant des recettes en espèces. Le pharmacien contrôle la réalité de ces informations et peut
procéder à la correction des erreurs éventuelles.
Cette fonctionnalité est fortement liée à celle de la comptabilité présentée au chapitre
III.B.3. .
III.C.11. Préparation des doses à administrer
Dans la loi Hôpital Patient Santé Territoire[70], un pharmacien peut devenir le pharmacien
référent d'un EHPAD (établissement d'hébergement pour personnes âgées dépendantes)
dépourvu de pharmacie à usage intérieur (PUI).
Souvent nécessaire pour l'obtention du marché des EHPAD, la préparation des doses à
administrer (PDA) peut être effectuée manuellement ou à l'aide d'un automate. Le pharmacien
devra rester vigilant sur la traçabilité et le circuit du médicament. En effet, la PDA s'effectue
actuellement malgré un flou juridique qui l'entoure : la loi n'autorise pas le déconditionnement
c'est-à-dire le fait de sortir un médicament du blister18. Dans sa thèse, Marine GRENIER[71]
effectue une analyse législative et réglementaire sur cet aspect et conclue que le
déconditionnement et la PDA manquent d'accord cadre sur le sujet.
III.C.12. Comparateur de prix
La pharmacie est un établissement de santé, mais aussi un établissement à vocation
commerciale. À ce titre, les prix des spécialités accessibles sans ordonnance ou ceux des
produits cosmétiques présentent un certain attrait pour les personnes fréquentant l'officine.
Certaines sociétés collectent auprès des pharmacies leurs prix de vente et fournissent à
chacune la moyenne calculée chez les pharmacies géographiquement proches et également
adhérentes au dispositif.
Les sociétés proposant ce services sont listées au chapitre IV.E.2.
III.C.13. Gestion des sauvegardes sur un serveur distant
La loi exige du pharmacien la possibilité de consulter son ordonnancier, même plusieurs
dizaine d'années après l'acte pharmaceutique (voir chapitre III.A.3. ).
Un système de redondance19 au sein du système informatique est un moyen de se prémunir
des pertes de données dues à un défaut du disque dur. Habituellement, un ordinateur ne
possède qu'un seul disque dur. Toutefois, de part l'importance de sa fonction, les serveurs
17 Dans sa thèse de 2011[49], Guillaume AUBERT regrette l'absence de partage en ligne via CalDAV
(protocole d'édition de calendriers et d'événements en ligne) ce qui le rend inutilisable sur un smartphone.
18 Pour les stupéfiants, le fractionnement de la spécialité en unité est autorisé.
19 via le système RAID - Redundant Array of Independent Disk. Plus d'information dans la Thèse de Nicolas
NEGRO[72]
Page 24/112peuvent avoir deux ou plusieurs disques. C'est la redondance : pour simplifier, chaque disque
est la copie exacte d'un autre. Le défaut d'un disque n'empêchera pas alors l'ordinateur de
fonctionner.
L'obligation légale de présenter l'ordonnancier nécessite, par précaution, un processus de
sauvegardes externes : les disques durs externes sont à préférer aux clefs USB et aux DVD
qui sont plus lents à l'écriture. Encore mieux, le pharmacien peut utiliser un NAS (Network
Attached Storage pour serveur de stockage en réseau) qui est un mini ordinateur stockant
exclusivement des données.
La qualité de support influence sur la durée de vie de la sauvegarde, l'informatique étant
encore loin d'égaler la conservation du papier20 ! Il faut donc un minimum de deux supports
différents pour éviter qu'un défaut matériel sur l'un d'entre eux rende la sauvegarde
inutilisable.
Cependant les sauvegardes locales sont le plus souvent stockées sur le lieu même de
l’officine quand ce n'est pas dans la même pièce que l'ordinateur. Un désastre (dégât des eaux,
incendie, vol, …) sur l'officine risque d'affecter aussi bien les ordinateurs, que la sauvegarde
locale.
Mais avec l'augmentation des débits apportée par l'amélioration des terminaisons ADSL,
voir l'arrivée de la fibre optique, les pharmaciens peuvent désormais effectuer des sauvegardes
sur un serveur distant (alias « cloud ») qui présentera une assurance lors de vols ou de dégâts
majeurs à l'officine. L'hébergeur de ces données devra garantir une sécurité accrue
puisqu'elles contiennent des informations personnelles médicales. De même, le chiffrement
est obligatoire avant le transport des données vers le serveur et sur le support de stockage
distant. La loi a ainsi créé le statut d' « Hébergeur de données de Santé »[73][74], l'ASIPSanté
fournissant une liste[75].
III.C.14. Étiquettes électroniques
La loi impose à tout commerce à ce qu'un client connaisse le prix d'un produit avant l'achat.
C'est pourquoi les prix sont affichés distinctement près du produit. Les étiquettes
électroniques sont des écrans à cristaux liquides qui affichent le prix, voire d'autres
informations. Leur affichage peut être modifié à distance via un signal infra-rouge[72]. Leur
intérêt est la rapidité de déploiement d'un changement de prix.
III.C.15. Gestion des terminaux de paiement électronique
(TPE)
Le terminal de paiement électronique (TPE) est souvent fourni par les banques par un
contrat de location. Toutefois, certains éditeurs fournissent le TPE à leur clients et permettent
une intégration de ce dernier au sein du logiciel, évitant une erreur de saisie entre le LGO et le
terminal bancaire. Le pharmacien devra s'assurer de la qualité de connexion qui constitue un
goulot d'étranglement pour les TPE : une ligne téléphonique de mauvaise qualité provoque
une augmentation du temps de réponse du TPE.
20 On estime la durée de vie d'un CD-Rom à quelques dizaines d'années contre plusieurs centaine pour le
papier.
Page 25/112III.C.16. Fiche conseil
Lors de la vente de médicaments, certains patients préfèrent une documentation papier à des
explications orales. Certains éditeurs ont réalisé un lot de fiches expliquant certains points
essentiels du traitement (manipulation, précaution d'emploi,…).
III.C.17. Suggestion de vente ou suggestion de conseils
Lors de la vente, le LGO offre la possibilité de rappeler à l'opérateur une vente associée ou
un conseil à préciser.
III.C.18. Pharmacovigilance
Tous les professionnels de santé sont tenus[76] de déclarer aux autorités sanitaires les cas
d’effets indésirables dus à un médicament. Le pharmacien a cette mission à cœur, de part son
statut de spécialiste du médicament. Dans les faits, les pharmaciens rapportent beaucoup
moins de cas de pharmacovigilance que les médecins[61] (19% des déclarations[77] serait le
fait des pharmaciens, dans la cosmétovigilance le taux est de 11 %[78]).
III.C.19. Messagerie sécurisée de santé
Il s'agit d'une fonctionnalité encore en développement au sein de l'ASIP-Santé, la
messagerie de santé sécurisée (MSS) devrait offrir aux professionnels de la santé un moyen de
communication électronique sécurisé et chiffré. Actuellement, les professionnels utilisent des
services plus moins gratuit destiné à des particuliers et dont la confidentialité des échanges
n'est pas garanti. L'absence de MSS a été fortement critiquée par la cour des comptes en 2002,
en 2008 (recommandation 34)[79] et en 2013[9].
Ce système s'appuiera sur la carte CPS pour l'authentification[80]. Chaque professionnel de
santé possédera une adresse avec un nom de domaine lié à sa profession[81] (du type
@pharmacien.mssante.fr) ou de son établissement. Un système d'annuaire permettra de
retrouver tout professionnel ayant activé son adresse. Cet annuaire s'appuiera sur le Répertoire
Partagé des Professionnels de Santé (RPPS) qui remplace progressivement les numéros
ADELI (Automatisation DEs LIstes). Les pharmaciens inscrits à l'Ordre possèdent un numéro
RPPS depuis 2010[82].
Le système fonctionnera sur les protocoles classiques du courriel (SMTP21, IMAP22 couplés
à TLS23) et utilisera DKMI24 pour effectuer le filtrage des noms de domaine présents dans une
liste blanche[83]. Une partie de ces technologies sont déjà utilisé au sein du protocole
SESAM-Vitale (voir à ce sujet le chapitre III.A.1.a.2. ).
Pour la phase de tests, le logiciel libre Thunderbird (un logiciel de messagerie électronique)
fut proposé au téléchargement[84], l'ASIP-Santé ayant ajouté une extension proposant un
assistant de configuration de compte et un annuaire.
21 Simple Mail Transfer Protocol chargé de l'envoi du courrier électronique
22 Internet Message Access Protocol chargé de l'accès au courrier électronique
23 Transport Layer Security chargé de chiffré la communication. Pour en savoir plus :
http://www.iletaitunefoisinternet.fr/ssltls-benjamin-sonntag/
24 DomainKeys Mail Identified permettant d'identifier l'origine du courrier électronique
Page 26/112III.C.20. Écran Tactile
Ce type d'interface s'est popularisé avec l'usage des « smartphones », on le retrouve aussi
dans les caisses des grandes surfaces. L'écran tactile est adapté pour les ventes sans
ordonnance où une saisie doit être rapide et simple.
III.C.21. Entretien pharmaceutique
Depuis le 26 juin 2013[85][86], les pharmaciens peuvent proposer deux entretiens
pharmaceutiques par an aux patients sous traitement anti-Vitamine K25. Ces entretiens sont
l’occasion de revenir sur la compréhension, qu'à le patient, de son traitement et des
contraintes que le traitement lui impose.
Les LGO peuvent proposer de gérer la prise de rendez-vous, voir d'assister le pharmacien en
réalisant des animations pour l'entretien.
III.C.22. Management de l'équipe
En tant que patron d'une entreprise, le pharmacien peut proposer des concours (meilleur
ventes réaliser en parapharmacie, …) pour motiver l'équipe officinal.
III.C.23. Étiquette de posologie
Parce que certains patient ont un traitement avec de nombreux médicament ou dont la prise
est compliquée, le pharmacien peut proposer l'impression d'étiquettes de posologie à coller sur
les boites délivrées. En effet, certains emballage sont de mauvais support pour l'encre des
stylos à bille et l'écriture manuscrite n'est pas toujours lisible par le patient.
III.C.24. Contrôle de la température du frigo via une sonde
Certains médicaments comme les insulines ou les vaccins nécessitent d'être conservés entre
2°C et 8°C. Le pharmacien doit assurer un suivi régulier des températures[87]. Certains LGO
proposent de réaliser le suivi au sein même du logiciel si une sonde est présente dans
l'enceinte du réfrigérateur. Ils peuvent ainsi alerter, l'équipe officinale d'un
dysfonctionnement. Toutefois, le plus souvent, les éditeurs ne proposent pas ce service, c'est
le vendeur de la sonde qui offre un programme de suivi avec son matériel. Le programme
n'interagit pas avec le LGO.
25 On estime que chaque année les accidents iatrogéniques liés à la consommation d'AVK sont responsables de
17 300 hospitalisations et de 4 000 décès. Ce sont de loin les premiers médicaments responsables d'accidents
iatrogèniques. Diminuer leur incident est donc un enjeux de santé publique.
Page 27/112III.D \ Services complémentaires
externes aux LGO
Ces services sont proposés par l'éditeur de LGO à ses clients. Ils sont plus ou moins liés à
l'univers de l'officine et à l'informatique. Le plus souvent, ces services ne sont pas obligatoires
pour utiliser le LGO et ne s'imposent donc pas au pharmacien. Cela peut comprendre un
programme installé à côté du LGO, ou un matériel, ou encore un service à proprement dit. Le
Tableau 6 du quatrième chapitre reprend l'ensemble des informations par éditeurs de LGO.
III.D.1. Formation in situ ou par e-learning du logiciel
La maîtrise d'un outil ne se réalisant pas en un jour, tous les éditeurs proposent une
formation sur leurs produits. Celle-ci peut être réalisée avec un formateur au sein de l'officine
ou dans les locaux de l'éditeur, ou bien à distance via « e-learning ». Le service après-vente
fait souvent de la formation en répondant aux demandes ponctuelles sur les fonctionnalités du
LGO. fonctionnalités.
III.D.2. Prise en main à distance pour la maintenance et
l'assistance téléphonique
La maintenance et le service après-vente des LGO rendent ce service obligatoire. Certains
LGO permettent de contacter directement l'éditeur au sein même du logiciel (dans les autres
cas, le pharmacien appelle un numéro dédié).
La prise en main s'effectue le plus souvent avec un logiciel tiers pour les postes tournant
sous Windows. Concrètement, le technicien de l'éditeur demandera de lancer le logiciel et de
lui fournir un code aléatoire qui terminera de sécuriser la connexion. Ensuite, le technicien
prend le contrôle du poste comme si il était physiquement à votre place dans l'officine, évitant
un déplacement.
III.D.3. Site web
Deux types de site web peuvent maintenant être utilisés par les officinaux :
• les sites dit « vitrine » qui se veulent informatifs ;
• les sites de vente (autorisés par le décret n° 2012-1562[88]) où l'officine ne peut
vendre que les médicaments sans ordonnance26
.
Les sites de vente exigent un niveau technique plus étendu que le premier : en plus de
l'affichage, le site web se doit de gérer les commandes passées, de sécuriser l'acte d'achat, de
fournir une interface de gestion plus poussée pour le pharmacien qui doit remplir
« virtuellement » l'acte pharmaceutique de la vente (analyse de la demande, conseils
associés).
Le CNOP reste vigilant sur la légalité des sites web et participe régulièrement à des
condamnations des sites web illégaux.[90][91]
26 Le Conseil d'État s'étant opposé à ce que la liste soit restreinte aux seuls médicaments en libre accès[89]
Page 28/112III.D.4. Box ADSL, Fax IP
Ce service permet ainsi au pharmacien de n'avoir qu'un seul interlocuteur pour les
problèmes d'informatique. Certaines offres ADSL incluent la possibilité de dématérialiser
l'envoi et la réception de fax, évitant les impressions inutiles des fax publicitaires.
Jusqu'en 2004[92] ,la connexion au réseau SESAM nécessitait[93] un accès à un réseau
spécifique : le Réseau Sécurisé de Santé (RSS). Cette condition n'a plus cours aujourd'hui.
III.D.5. Croix LED
Symbole de la profession et marque déposée par le CNOP[94][95], la croix verte est située à
l'extérieur, à la vue du plus grand nombre, marquant la localisation de l'officine. Elle est
aujourd'hui souvent constituée de LED, est souvent utilisée comme vecteur d'informations
pratiques :
• affichage des horaires, date du jour ;
• températures extérieures ;
• affichage des spécialisations de la pharmacie (appareillage médical, naturopathie, ….)
• annonce d’événements au sein de la pharmacie.
Ces informations sont modifiés informatiquement au sein du LGO ou par un logiciel dédié.
III.D.6. Externalisation du tiers payant
Même si SESAM-Vitale a facilité une partie de la charge administrative du tiers payant, elle
ne l'a pas fait disparaître pour autant. Le pharmacien doit contrôler le paiement des
ordonnances ou répondre aux demandes sur la validité des pièces justificatives. Et pour
certains dossiers, cela devient vite chronophage !
Les pharmaciens peuvent alors sous-traiter la gestion des tiers payants à des sociétés
externes. Ce sont le plus souvent des entreprises dédiées, les éditeurs de logiciels servant alors
d’intermédiaires.
III.D.7. Création de campagne de communication (papier
ou multimédia)
Comme tous commerces, la pharmacie possèdent une vitrine où elle peut diffuser des
messages selon certaines règles[96]. Le pharmacien n'ayant pas toujours les compétences d'un
graphiste, les éditeurs lui proposent avec ce service des modèles prêts à être imprimés.
Une variante de ce service utilise des écrans pour afficher les messages promotionnels. Un
logiciel dédié sur un poste dédié permet de diffuser des informations, des messages
promotionnels. Souvent le logiciel dédié possède des campagnes prêtes à l'emploi avec des
thèmes (vétérinaires, saisonnier, … ). Si l'officine travaille avec certains laboratoires, il pourra
être pertinent d'utiliser les campagnes que le laboratoire aura créés.
Dans tous les cas, le pharmacien devra rester vigilant sur le contenu : il ne faut pas
promouvoir des produits absents de ses stocks.
Page 29/112III.D.8. Vidéo-surveillance
Ce service permet de surveiller les différents recoins d'une pharmacie et peut avoir un effet
dissuasif. Toutefois, ce système doit respecter certaines règles[97] et l'enregistrement des
images devra faire l'objet d'une déclaration à la Commission Nationale de l'Informatique et
des Libertés (CNIL). Le pharmacien devra rester vigilant sur la qualité des images et retenir
que même avec ce système, il ne possède aucune autorité pour retenir un suspect au sein de la
pharmacie.
Si le dispositif d'enregistrement propose un accès distant, le pharmacien devra s'assurer de la
sécurisation de ce flux (un journaliste a pu accéder aux vidéos d'une pharmacie via
internet[98]).
III.D.9. Antivol sur les produits
C'est un autre mode de dissuasion contre le vol. Il nécessite un marqueur sur les produits et
un détecteur de ces marqueurs aux sorties de l'officine.
III.D.10. Distributeur automatique 24/24
Il se présente comme un distributeur de canettes et autres friandises, remplacés toutefois pas
des produits de parapharmacie. Son intérêt est son accès à l'extérieur de la pharmacie à toutes
heures. Il doit être fixé directement sur un des murs de la pharmacie[99], comme pour les
distributeurs de préservatifs.
III.D.11. Forum d'assistance et de développement
En complément de l'assistance téléphonique, certains éditeurs proposent une assistance via
un forum27 permettant l'entraide entre les utilisateurs. Cette entraide comporte des avantages
par rapport à l'assistance technique : n'étant pas des techniciens informatiques, les
pharmaciens s'expriment avec leurs mots propres, ce qui rend certaines notions ou résolution
de problèmes plus accessibles à leur pairs.
III.D.12. Applications pour téléphones mobiles
Des applications mobiles pour les usagers de l'officine sont disponibles. Les patients
peuvent envoyer une ordonnance à leur pharmacie, chercher la pharmacie la plus proche,
avoir des rappels d'horaires pour la prise des traitements, communiquer avec le pharmacien.
D'autres éditeurs proposent juste un contrôle à distance via applications mobiles pour le
télétravail.
III.D.13. Pilulier électronique
Ce pilulier signale, de manière électronique, au pharmacien toutes les prises de
médicaments effectués par le patient. Ce produit est indiqué pour les personnes dépendantes
dont le pharmacien se charge du pilulier. Le pharmaciens et la famille du patient ont alors une
meilleur garantie du suivi.
27 Sur Internet, espace de discussion publique permettant une communication asynchrone et un archivage de
cette discussion.
Page 30/112Illustration 3: Schéma des interconnexions interagissant avec l'officine
[auteur : C.BRISSET - 2014]
Concentrateur
Officine A DP
Caisses
de régime obligatoire
d'Assurance maladie
Caisses de régime
complémentaires
Grossistes
Fabricant
Officine B
DMP
MSS
Collecteur de
données économiques
Légende :
Noir = flux sécurisé via CPS
Bleu = données commerciales
Violet = échange de donnéeIV) Les acteurs de
l'informatique officinale
Le lecteur pourra se rapporter à l'Annexe 1 : Liste des éditeurs de LGO et de leurs logiciels
s'il souhaite plus d'informations sur les éditeurs, ainsi qu'à l'Annexe 3 : Part de marché des
différents LGO durant les 12 derniers mois.
IV.A \ Les sociétés de logiciels
En 2001, on comptait 25 sociétés commercialisant 36 LGO[100] agréés SESAM-Vitale. En
2014, il n'en reste plus que 15 sociétés qui commercialisent 14 LGO. Par le jeux des filiales et
des contrats entre éditeurs, 2 groupes représentaient en septembre 2014 plus de 74 % des parts
du marchés[101]. Ces deux groupes (Cegedim, Welcoop) ne limitent pas leurs activités au
seul domaine de l'informatique officinale.
IV.A.1. Le groupe CEGEDIM
Le groupe CEGEDIM possède des activités dans la conception de logiciels pour les
médecins, pour les EHPAD, pour les para-médicaux, pour les mutuelles. Certains de ses
logiciels ont des déclinaisons à l'international[102] (présence sur le marché des USA, anglais,
belge, espagnol, roumain, tunisien, …). Le groupe fournit des services aux laboratoires
pharmaceutiques. Cegedim est une société côtée en bourse.
Le groupe possède la base de données Dexther-Banque Claude Bernard qui a été la première
à recevoir l'agrément de l'HAS. Ce groupe possède un concentrateur (voir le chapitre IV.E.1.
) : Qualitrans-Télépharma et un collecteur de données économique (voir le chapitre IV.E.2. ) :
Santestat.
Le groupe CEGEDIM possède trois filiales : Alliance Software, PG Informatique et ASP
Line. Toutes ces filiales ont acquis un certains nombres de LGO dont la commercialisation a
été suspendue : Alliance FES, Premium FES, Servilog, Alliance Plus, Pharmatic, Data
Premium et Data Conseil.
Le groupe CEGEDIM est donc un acteur de premier plan dans l'informatique médical et
para-médical en France.
IV.A.2. Le groupe Welcoop
Avant 2008, Welcoop était la CERP Lorraine coopérative (voir le chapitre IV.C \). Il propose
des activités de maintien à domicile et une centrale d'achat. Sa filiale Pharmagest Interactive a
acquis plusieurs sociétés informatiques[103] dont la société belge SABCO (qui commercialise
Page 32/112un LGO belge) et la société Malta (qui commercialise un logiciel pour les EHPAD). Cette
filiale possède en outre les logiciels suivants qui ne sont plus commercialisés : CIP Global
Service et Primoris.
IV.A.3. Les autres sociétés
Nous avons questionné les sociétés afin de mieux cerner le métier d'éditeur de LGO et les
conditions d'utilisation de leur produit. Nous voulions savoir si le LGO était proposé avec
toutes ses fonctionnalités ou si certaines étaient en options (par exemple le PDA, ou l'achat
par groupement). De même, nous avons cherché à savoir si le pharmacien pouvait s'équiper
lui-même matériellement.
Page 33/112Société Nombre
d'employés
Durée
d'engagement
Fonctionnalités
optionnelles
Matériel
imposé
Secteur
d'activité
Pharmagest
Interactive
+ 700 3 ans Oui Pour le
serveur
Officine
Alliance
Software
450 4 ans Oui Oui Officine
Everys Inconnu Inconnu Oui Inconnu Inconnu
Isipharm 102 3 ans Oui Oui Officine
ASP Line 80 3 ans Oui Pour le
serveur
Officine
Caduciel
Informatique
45-50 Inconnu Inconnu Oui Officine et
propharmaciens
PG
Informatique
16 + services
techniques de
Cegedim
1 an Oui Non Officine
CIAM 6 1 an Non Non 99 % officine.
Cleyris, propharmacien
C.E.P.I Soft
Office
6 1 an Oui Non 90 % Officine,
10 % conseil
aux PME
Infosoft ≈ 10 1 an Non Non Officine
Laboratoires,
Automates
La Source
Informatique
Inconnu Inconnu Oui Non Inconnu
Vindilis ≈ 10 1-3 ans Non Non Officine,
OSPharm,
Novomundis
pour CPO
Visiosoft 6 1 an Non Non Officine
Tableau 1: Descriptif des éditeurs de LGO
Deux grandes stratégies commerciales semblent se retrouver dans ce marché : celle de
sociétés ayant plus de 2 % de parts de marché (voir Erreur : source de la référence non
trouvée présent en annexe) et celle des sociétés ayant une part de marché inférieure à 2 %. Les
premières proposent le logiciel et le matériel de façon indissociés (au moins pour le serveur),
les fonctionnalité du logiciel sont à la carte et l'officine est leur seul secteur d'activité. Ces
sociétés sont souvent adossées à des groupes, à des coopératives ou à des groupement,
l'exception étant ici Everys. Les sociétés de la seconde stratégie commerciale n'impose jamais
le matériel et ont souvent des durées d'engagement d'un an. Ces sociétés ont des effectifs très
faibles, elles ont rarement l'officine comme seuls secteur d'activités économique et sont
indépendantes.
Page 34/112IV.B \ Les autorités
Nous regroupons sous le terme « autorités », les organismes garants de la mise en œuvre des
fonctionnalités obligatoires détaillées au sein du chapitre III.A \.
IV.B.1. CNDA, GIE SESAM-Vitale, …
Le législateur a décidé de confier la gestion du système informatique du système de santé à
des groupements d’intérêts économique (GIE) ou des groupement d’intérêts public (GIP). Ce
type de structure rassemble plusieurs entités ayant des objectifs économiques communs (GIE)
ou dans un but d’intérêt général en passant une convention avec l'État (GIP).
Ainsi la création du système SESAM-Vitale, qui comprend l’infrastructure informatique
collectant les données (SESAM) et les cartes Vitales, est sous la responsabilité du GIE
SESAM-Vitale. Ce GIE regroupe en son sein les régimes maladies obligatoires et les
mutuelles[104].
Par contre, le contrôle de la conformité (voir à ce sujet les tableaux 7, 8, 9 et 10 de l'annexe
2) d'un logiciel métier avec le système SESAM-Vitale est de la responsabilité du Centre
National de Dépôt et d'Agrément (CNDA) qui est lui sous la responsabilité[6] de la Caisse
Nationale de l'Assurance Maladie des Travailleurs Salariés (CNAMTS). Tout logiciel agréé
par le CNDA doit avoir déposé son code auprès de cette instance et s'être engagé à ne pas le
modifier.
La HAS se charge de l'agrément des bases de données et de la définition des référentiels de
certification des logiciels de soins.
La carte de professionnel de Santé (CPS) était sous la responsabilité GIE CPS qui a été
fondu dans l'Agence des Systèmes d'Informations Partagés-Santé (ASIP-Santé). La fusion a
été effectuée car la carte CPS est un socle technique pour l'annuaire RPPS, la messagerie
sécurisée de santé et le DMP.
IV.B.2. Conseil National de d’Ordre des Pharmaciens
(CNOP)
Le Conseil National de d’Ordre des Pharmaciens a été crée par l'ordonnance du 5 mai 1945.
Tout pharmacien souhaitant exercer en France doit s'y inscrire. C'est l'Article L4231-1[105]
qui en définit ses missions :
L'ordre national des pharmaciens a pour objet :
1°. D'assurer le respect des devoirs professionnels ;
2°. D'assurer la défense de l'honneur et de l'indépendance de la profession ;
3°. De veiller à la compétence des pharmaciens ;
4°. De contribuer à promouvoir la santé publique et la qualité des soins, notamment la
sécurité des actes professionnels.
L'ordre national des pharmaciens groupe les pharmaciens exerçant leur art en France.
C'est lui qui est responsable de la mise en œuvre du Dossier Pharmaceutique (voir chapitre
III.A.2. ). Il en a défini le cahier des charges, et en supervise la gestion par le prestataire.
Page 35/112IV.C \ Les coopératives
Le système coopératif apparaît au cours du dix-neuvième siècle. Citons, la Pharmacie
Centrale de France créée par François DORVAULT28 en 1852. Elle est tout à fait une
coopérative[106] par ses statuts, mais a l'esprit d'un syndicat ou d'un ordre pour ses objectifs
de défense de la profession pharmaceutique29
.
Dans sa thèse, Arnaud ANTOINE[107] décrit le système des Coopérative d'Exploitation et
de Répartition Pharmaceutiques (CERP) qui appartiennent un groupe de partenaires important
de l'officine : les grossistes-répartiteurs. C'est grâce aux obligations légales de ces derniers
(décrit dans l'article R5124-59 du CSP[108]) que les officines peuvent fournir en 24 heures
maximum, un médicament au patient.
Une coopérative est régie par 4 principes :
• La règle d'égalité : un homme, une voix. ;
• La règle de liberté : chacun peut adhérer ou s'en aller. ;
• La règle de justice : la répartition des bénéfices se fait au prorata des activités de
chaque membre ;
• La règle d'équité : la rémunération des apports en argent est limitée .
Les CERP sont apparues en réaction vis à vis des grossistes-répartiteurs dits
« capitalistes30 » dont l'OCP et Alliance Santé sont les successeurs. Les officinaux, craignant
pour leur indépendance, se sont regroupés au sein de coopératives locales[109] qui, au fil du
temps, se sont réunies entre elles pour aboutir aux trois CERP que l'on connaît aujourd'hui.
Contrôlés par des pharmaciens, souhaitant répondre à leurs propres désirs de service, les
CERP se sont diversifiées, entre autre, dans l'informatique officinale, comme le signale dans
sa thèse Arnaud ANTOINE[107] :
Coopérative Filiale informatique Logiciel
CERP Bretagne Nord Sofirep Aucun LGO proposé
CERP Lorraine
coopérative31
Pharmagest Inter@ctive LGPI (ex Pharmagest)
CERP Rhin Rhône
Méditerranée
Caduciel informatique Caduciel v6
CERP Rouen32 Isipharm Léo 2.0
Tableau 2: Coopérative et informatique – d'après de la Thèse d'Arnaud ANTOINE
28 Auteur du célèbre ouvrage « L’Officine ou Répertoire général de la pharmacie pratique ».
29 Les syndicats seront autorisés en 1884 par la loi Waldeck-Rousseau, le CNOP a été créé en 1945.
30 Terme impropre puisque tous les grossistes, comme toutes les entreprises doivent produire du capital
31 Devenue le groupe Weelcoop en 2008 et qui a vendu son activité de répartition.
32 Devenue la coopérative Astera en 2008
Page 36/112La répartition n'est pas la seule à utiliser le statut des coopératives pour ses missions, des
concentrateurs (voir le chapitre IV.E.1. ) le font aussi (Société des Pharmaciens du
Centre[110], OSPHARM ex Coopérative Informatique Pharmacie[111]) ainsi que des
groupements (voir le chapitre IV.D \).
IV.D \ Les groupements
Les groupements sont apparus plus récemment, le plus ancien Giphar, est apparu en
1968[112], mais c'est dans les années 1990 que ce type de structures prennent leur essor, en
réaction à la création de la marge dégressive lissée[113].
Les groupements peuvent être des sociétés anonymes (Alphega Pharmacie33, Giropharm,
Pharmavie, Pharmactiv34), des association type loi de 1901 (Giphar35), des sociétés à
responsabilité limitée (PharmaRéférence), des groupements d’intérêt économique, des
coopératives (IFMO)[113]. Toutefois, le terme de « groupements » ne semble pas recouvrir
une organisation unique, certaines étant proches de la notion d'enseignes (PharmaRéférence,
Univers Pharmacie par exemple). Dans sa thèse Guillaume ANDRE[112] voit quatre périodes
historique de création de groupements. À chaque période les groupements sont créés dans un
but36 : partage de connaissance, pour acheter auprès des fournisseurs, pour utiliser des services
mis en commun et pour appendre à mieux vendre dans l'officine.
Dans l'informatique officinale, le groupement Giphar se distingue avec sa coopérative
Sogiphar qui possède la filiale informatique Pharmavision. En 1998, Giphar a pu négocier
l'accès au code source du logiciel Alliadis après un appel d'offre, pour créer le logiciel
Logiphar[113]. C'est pourquoi nous ne différencions pas les 2 logiciels dans notre thèse :
Logiphar possède des options qui ne sont pas proposées par défaut dans Alliadis et il est pré-
configuré pour les échanges avec les structures du groupement Giphar.
IV.E \ Des initiatives syndicales
Les syndicats ont aussi joué un rôle dans les outils informatiques utilisés par les
pharmaciens. Ce chapitre en liste deux initiatives.
IV.E.1. Un concentrateur : Résopharma
Créé par un syndicat de pharmaciens - la Fédération des Syndicats Pharmaceutiques de
France (FSPF)[114] - Résopharma proposa initialement un service de concentrateur. Grâce à
lui, une officine n'avait pas l'obligation de se connecter individuellement à chaque caisse de
régime obligatoire pour communiquer les FSE. Le concentrateur s'occupe de collecter les FSE
venant des officines et de les envoyer aux différentes caisses. De même, c'est lui qui s'occupe
de délivrer à chaque officine les retours NOÉMIE. Le concentrateur peut aussi servir de relais
aux listes d'opposition incrémentale de CV. Résopharma commercialise le système Visiodroit
qui permet de garantir le paiement de la part complémentaire du ticket modérateur.
33 Filiale du grossiste Alliance Healthcare
34 Filiale du grossiste OCP
35 Giphar est une association, adossé à Sogiphar qui est lui un groupement.
36 que les groupements, précédemment créé, peuvent reprendre à leur tour
Page 37/112Résopharma a donc été créée pour éviter un désagrément du système SESAM-Vitale du à
l'organisation régionale des caisses.
Résopharma est possédé par un groupe de plusieurs syndicats de pharmaciens, FSPF ayant
le plus de parts (50%).
Il existe d'autres concentrateurs sur le marché[115], citons : Concentrateur des
Professionnels de santé de l'Ouest (CPO), Qualitrans-Télépharma de Cegedim ; Tercian
regroupement pour la MACIF et l'AG2R LA MONDIALE ; Euro-Information du Crédit
Mutuel et du CIC ; Santeffi du Crédit Agricole, Société Informatique des Pharmaciens,
Société des Pharmaciens du Centre, Codelis d'Almerys, Caisse d'Avance Pharmaceutique du
Nord, Concentrateur du Soleil, Concentrateur Global Nepenthes37 (CGN), …
IV.E.2. Un collecteur de données économiques :
Pharmastat
Là aussi, c'est une création du syndicat FSPF[116] en coopération avec le groupe Groupe
IMS Health. Pharmastat collecte les données économiques des ventes (de médicaments ou
non) auprès des officines. Celles-ci obtiennent donc un résumé mensuel sur cet aspect avec
une comparaison locale de l'officine par rapport aux autres officines ou au niveau national. Le
syndicat obtient ainsi des chiffres nationaux sur les médicaments remboursables. Ces chiffres
seront utilisés lors des sollicitations auprès de l'État ou lors des négociations avec l'Assurance
Maladie qui possède elle-même ses propres chiffres obtenus par le Groupement d’Études et de
Recherche sur la Santé (GERS).
Il existe d'autres collecteurs de données sur le marché : Celtipharm38, Santestat de Cegedim,
Datastat d'Ospharea, Nepenstat de Nepenthes.
IV.F \ L’association AURA
L’Association des Utilisateurs des Robots et Automates a été créée par Monsieur COMTE.
C'est sous son impulsion que va s'établir et se diffuser la norme CD API (voir chapitre III.C.6)
aussi appelé par le nom de cette association. Nous n'avons pas pu déterminer si cette
association existait toujours, ni rentrer en contact avec Monsieur COMTE.
IV.G \La Chambre Syndicale de la
Répartition Pharmaceutique (CSRP)
Les grossistes-répartiteurs sont des partenaires de premier plan pour l'officine : ils livrent
une à deux fois par jour les pharmacies et permettent à la profession de tenir son obligation
légale de fournir au patient un médicament en 24 heures (article R5124-59 du CSP[108]).
37 Nepenthès est un groupement de pharmaciens voir chapitre IV.D \
38 Cette société s'est occupée pour le compte du CNOP des déclarations auprès de la CNIL des officines reliées
au DP
Page 38/112C'est par l’intermédiaire de la CSRP qu'a été lancée la norme PharmaML (voir chapitre
III.B.1.a. ). Elle regroupe l'ensemble des grossistes[117] présents en métropole ou dans les
DOM-TOM.
Page 39/112V) Taux d'informatisation
des officines
À partir de l'« Historique des Professionnels de santé en télétransmission » consultable sur
le site web de SESAM-Vitale [118], il est possible de suivre l'évolution, depuis 2008, du taux
de pénétration des outils de télé-transmission au sein des professionnels de santé.
Ces chiffres sont intéressants car ils sont souvent utilisés dans les analyses pour décrire le
taux d'équipements informatiques des professionnels de santé. Toutefois, il ne faut pas
confondre d'une part l'utilisation de l'informatique par le professionnel de santé dans le seul
but de répondre aux besoins administratifs des caisses et d'autre part l'ensemble des autres
usages (par exemple : communication aux médecins des résultats de biologie par courriel,
rédaction d'une lettre d’hospitalisation à l'aide d'un traitement de texte, etc …), orientés plus
ou moins, vers le cœur de métier du professionnel. (voir Illustration 4)
Nous constatons ainsi que la progression du nombre de professionnels télé-transmettants est
croissante. Les officines se distinguent par un taux de pénétration très important : toujours
supérieur de 98 % depuis mai 2008.
Mais une série de six creux décroissants attirent notre attention. Ces creux se produisent lors
du mois d'août et touchent en particulier les professionnels en exercice individuel :
• les orthophonistes ;
• les médecins - qu'ils soient spécialistes en médecine générale ou pas ;
• les chirurgiens-dentistes ;
• les infirmiers ;
• les sages-femmes ;
• les pédicures ;
• les masseurs-kinésithérapeutes ;
Les seules exceptions à cette baisse annuelle sont les officines et les laboratoires d'analyses
médicales. Pour ces derniers, la variation apparaît toutefois lors des années 2010, 2011, 2012.
Nous pouvons poser l'hypothèse que ces creux sont en relation avec les vacances estivales
puisqu'ils n'apparaissent qu'au mois d'août, chaque année. Les orthophonistes qui travaillent
souvent avec les enfants, sont d'ailleurs la profession qui présente les creux les plus
importants (presque 50 % de baisse).
Partant de cette hypothèse, nous extrapolons que les chiffres du GIE SESAM-Vitale
s'appuient sur le nombre de télétransmissions journalières rapporté aux nombres de
professionnels multipliés par le nombre de jours dans le mois. Cette méthode de collecte nous
semble expliquer la baisse du mois d'Août : cette baisse ne serait donc pas due à l'arrêt de
Page 40/112l'équipement mais à une pause dans l'exercice professionnel. Présenté autrement, le GIE
SESAM-Vitale mesure la télétransmission, mais une réponse négative peut être due à :
• un professionnel non équipé en dispositif SESAM-Vitale (tout en ayant ou pas une
utilisation professionnelle d'un outil informatique) ;
• un professionnel ne pouvant télé-transmettre pour des difficultés techniques (panne
d'ordinateur, du lecteur, …) ;
• un professionnel absent ;
• un professionnel qui ne télé-transmet pas tous les jours.
Il ne faut pas oublier le statut des « pro-pharmaciens » défini par l'article L4211-3 [119]du
code de la santé publique :
Les médecins établis dans une commune dépourvue d'officine de pharmacie peuvent être
autorisés par le directeur général de l'agence régionale de santé, qui en informe le représentant
de l’État dans le département, à avoir chez eux un dépôt de médicaments, et à délivrer aux
personnes auxquelles ils donnent leurs soins, les médicaments remboursables et non
remboursables, ainsi que les dispositifs médicaux nécessaires à la poursuite du traitement
qu'ils ont prescrit, selon une liste établie par le ministre chargé de la santé, après avis du
Conseil national de l'ordre des médecins, et du Conseil national de l'ordre des pharmaciens.
Cette autorisation ne doit être accordée que lorsque l'intérêt de la santé publique l'exige.
Toutefois, leur faible nombre et le fait que seule la norme SESAM-Vitale 1.40 prend en
compte leur statut[120] (Esculape, par exemple, propose son logiciel pour les
propharmaciens) n'en fait pas une hypothèse valable.
Fort de ce constat et du fait que le taux des officines est relativement constant depuis plus de
six ans, nous déclarons que le taux d'informatisation des officines est de 100 % sur la base de
cette analyse.
Page 41/112Illustration 4: Taux de Télétransmission des Professionnels de Santé 2008-2014VI) Logiciels libres et open
source (FLOSS – Free
and libre open source
software)
Ce chapitre abordera les notions de logiciels libres et open source aussi dénommés FLOSS.
En effet, plusieurs LGO s'appuient sur des programmes appartenant à ce mouvement pour le
système d'exploitation et surtout pour le moteur de base de données (voir Tableau 3). De part
leur importance dans l'architecture logicielle, les FLOSS sont loin d'être des composants
subalternes. Ils sont au contraire des éléments de premier plan, mais souvent méconnus de
l'utilisateur final.
De plus, il faut rajouter qu'Internet regroupe les normes de communication qu'utilisent
SESAM-Vitale39 (SMTP) et le DP (HTTP) pour leurs missions. Internet est composé de
FLOSS (le serveur Apache ; les navigateurs web NCSA Mosaic, Konqueror et Firefox ; le
courriel avec Thunderbird, Postfix, Sendmail, Zimbra, Cyrus Server, Dovecot, SpamAssasin ;
le logiciel de routage BIND). Certains observateurs estiment[121] que le développement
d'Internet ne peut pas se faire sans logiciels libres et que les logiciels libres ne peuvent pas se
faire sans Internet, ce dernier leur donnant leur dimension collaborative.
Enfin, il faut signaler que la France est le pays le plus actif au niveau des logiciels
libres[122][123][124] et que cela a incité le cabinet du Premier Ministre à publier, en 2012, la
circulaire « Ayrault »[125] incitant les administrations à utiliser ce type de logiciels.
Nous ne rentrerons pas en détails dans le système économique des FLOSS, le lecteur
curieux pourra se reporter au livre de François ELIE « Économie du Logiciel Libre »[126], au
livre Blanc[127] de l'APRIL40 ou bien à celui sur « Les modèles économiques » de Systematic
Paris-Région[128].
39 Cela n'a pas toujours été le cas. Lors de sa création (avant 1998) SESAM-Vitale utilisait des nomes de
communication propriétaires : X-MODEM et le réseau Ramage[5]
40 Association nationale cherchant à promouvoir l'utilisation des FLOSS.
Page 43/112VI.A \Définitions
VI.A.1. Code source et code binaire
C'est un pré-requis fondamental pour aborder les notions de FLOSS.
Le code source et le code binaire sont les deux faces d'une même pièce que représente le
programme. Le code source est la suite d'instructions qui seront exécutées par la machine. Il
est écrit dans un langage de programmation en générale lisible par un humain (le
développeur). Ce code sera transformé lors de l'étape de compilation en langage
compréhensible par la machine : le code binaire ou code compilé. Ce code binaire peut être
directement exécuté sur la machine au contraire du code source.
L'analogie la plus courante pour faire comprendre ces notions est celle de la recette et du
gâteau. La recette est le code source, le gâteau est le code binaire. Seuls de très bons goûteurs
pourront retrouver la recette à partir du gâteau et cela ne garantit pas qu'ils puissent reproduire
le savoir-faire du chef cuisinier. Alors que le chef peut à loisir jouer sur les ingrédients ou le
temps de cuisson pour changer l'aspect et le goût du plat, puisqu'il connaît la recette.
VI.A.2. Logiciel libre et Open-Source
C'est historiquement la Free Software Fondation41 (FSF) qui a défini le Logiciel Libre dans
la licence GNU42 Public Licence, alias GPL. Les versions les plus connues sont la version 2 et
la version 3[131][132]43. La FSF résume ce contrat juridique en 4 points qu'elle nomme les 4
libertés :
• liberté d'utiliser le logiciel ;
• liberté de l'étudier en accédant au code source ;
• liberté de modifier ce code source ;
• liberté de distribuer les modifications apportées aux codes sources.
Ainsi, le but de la FSF est de redonner à celui qui acquiert un logiciel libre, les mêmes droits
que celui qui l'a édité. Par la même, la GPL offre une souveraineté de l'utilisateur sur son
logiciel.
Toutefois, ces droits s'accompagnent de devoirs : l'utilisation doit concéder, aux utilisateurs,
les mêmes droits aux modifications qu'il aura apportées au code source (partie 4 de la
GPLv2). Ce dernier point, fondamental, donne son aspect héréditaire à la licence GPL : tous
les logiciels-fils devront posséder une licence similaire au logiciel-père. Cette hérédité est une
des principales différences entre les logiciels libres et les logiciels Open-Source, ces derniers
ne la rendant pas obligatoire.
41 Fondé par Richard Matthieu STALLMAN
42 Le projet GNU est un projet ayant pour but de réaliser tous les logiciels nécessaire à un ordinateur sous GPL.
43 Des traductions francophones non officielles sont aussi disponibles :[129][130]
Page 44/112L'Open Source met plutôt en avant son mode de fonctionnement collaboratif44 ouvert à tous.
Ce n'est pas une obligation[133] pour le logiciel libre, mais le fonctionnement collaboratif y
aussi est le plus couramment rencontré.
Parmi les licences open source et/ou libres, les licences GPL, MIT, BSD et Apache sont les
plus utilisées[134].
Au lieu de s'opposer au droit d'auteurs, les licences libres l'utilisent pour décrire ce que
l'utilisateur peut faire sans demander l'autorisation de l'auteur du logiciel. Alors qu'en général,
les contrats d'utilisation des logiciels expliquent le plus souvent ce que l'utilisateur ne peut pas
faire, les licences libres décrivent d'abord ce qu'il peut faire grâce à la cession irrévocable des
droits (« les quatres libertés »).
Enfin, le contrat juridique ne parle pas de vente, ainsi le raccourci « logiciel libre égale
gratuit » n'a aucun fondement légal (mais l’ambiguïté du terme anglais free joue ici une forte
responsabilité). Il est autorisé de vendre un logiciel libre, mais la GPL explique que l'on ne
peut pas empêcher l'acheteur de le céder gratuitement à un tiers : l'acheteur par son achat
acquiert le statut d'éditeur et peut à ce titre choisir le prix du logiciel, même s'il n'a pas
modifié le code (préambule de la GPL et son chapitre 6). Ainsi la société états-unienne RedHat,
leader sur le marché des logiciels libres et Open Source, a réalisé plus d'un milliard de
dollars de chiffres d'affaires en 2013[135].
VI.A.3. « Libre de droits »
Nous profitons de ce chapitre pour dissiper un abus de langage : souvent en parlant de
logiciel libre ou d'Open Source, certaines personnes parlent de logiciel « libre de droit ». Sans
développer les différences45 juridiques entre le copyright anglo-saxon et le droit d'auteur
français, il nous semble important de rappeler ce point : en France, toute œuvre qui arrive
dans la sphère publique (photographies, livres, logiciel, etc …) se doit de posséder un auteur.
L'œuvre est rattachée ainsi aux droits dits « moraux »
46 de l'auteur qui se doit d'assumer sa
paternité avec l'œuvre. Ainsi, dans le droit français47, une œuvre ne peut pas être « libre de
droit ».
VI.A.4. Freeware alias gratuiciel
C'est un logiciel cédé gratuitement par l'éditeur qui ne publie pas le code source et in fine
conserve son logiciel sur un mode propriétaire (le code est reste sa propriété). Cette session
est souvent promotionnelle, l'éditeur limitant dans le temps l'utilisation du logiciel ou bien la
version payante possédant une grande offre de fonctionnalités.
44 Le lecteur pourra lire à ce sujet le livre « La Cathédrale et le Bazar » de Éric S. Raymond qui parle de
l'organisation de ce travail communautaire : http://www.linux-france.org/article/these/cathedrale-bazar/
45 Nous pouvons proposer au lecteur curieux de lire le contenus de ces liens qui nous semblent couvrir le sujet,
sous toute réserve, puisque nous n'avons pas de formation juridique :
http://lioneldavoust.com/2012/il-faut-cesser-damalgamer-droit-dauteur-et-copyright/
http://blogs.rue89.nouvelobs.com/en-pleine-culture/2009/12/26/du-copyright-anglo-saxon-et-du-droitdauteur-a-la-francaise-130388
https://www.dgdr.cnrs.fr/daj/propriete/droits/Docs/comparatif-auteur-copyright.pdf
46 À la différence des droits dits « patrimoniaux » qui sont cessibles.
47 Par contre dans la logique anglo-saxons du copyright, le domaine public est « libre de droit » puisque le droit
moral n'est pas mis en avant.
Page 45/112VI.A.5. Le droit des marques
Le droit des marques existe aussi pour les logiciels libres. Les logiciels libres Linux[136],
Firefox[137][138], Apache OpenOffice[139], LibreOffice[140] sont des marques déposées.
Les fondations les utilisent[141][136] pour demander à la justice de condamner les acteurs
malveillants qui ne respectent pas les aspects légaux. Ils nuisent à l'image de ces fondations et
à la réputation des logiciels libres.
VI.B \Exemples de logiciels
Ce chapitre va montrer des exemples de logiciels et de leur éditeur.
VI.B.1. Le noyau Linux
Sûrement un des logiciels libres les plus connus, ce noyau (la tour de contrôle d'un système
d'exploitation) est parti du travail universitaire de Linus Torvald qui l'a diffusé sur l'Internet
naissant. C'est, en partie, de l'observation de son organisation du travail entre les développeurs
qu'a été théorisé le mouvement Open Source. Ce noyau, qui est accessible gratuitement sur
l'Internet, est rencontré dans nombre de produits électroniques : des systèmes embarqués de
voitures ou d'avions, des smartphones (avec Android) en passant par les supercalculateurs de
la météo des « box » internet des fournisseurs d'accès à internet. Le seul domaine de
l'informatique qui lui résiste encore - et toujours ! - est celui des ordinateurs pour la
bureautique. On le rencontre au sein des serveurs de quatre LGO (Alliance Premium, LGPI,
Periphar, Vindilis). Linux représente le socle de plus de la moitié des serveurs de la
planète[142][143].
Actuellement, le noyau est supervisé par la Linux Foundation qui emploie Linus Torvald.
Cette fondation regroupe toutes les grandes entreprises de l'informatique ou d'autres domaines
comme Oracle, Samsung, Intel, HP, IBM, Jaguar Land Rover, NEC, Cisco, Google, Suse,
Toyota, Adobe, Amazon, le français Bull48, Dell, Red Hat, DreamWork, Canonical (liste non
exhaustive, cf [145]). Ces sociétés emploient des développeurs dont le travail est
essentiellement centré sur le noyau Linux. Sur une période de 15 mois, 1100 développeurs de
255 sociétés ont collaboré sur Linux[146].
Récemment, Microsoft, l'éditeur de Windows (présenté comme le grand rival des
distributions basées sur Linux), a fourni des développeurs pour travailler sur le noyau
Linux[146][147].
48 Qui a fournit le SE Prologue utilisé en Officine jusqu'au début des années 2000[144]
Page 46/112VI.B.2. Mozilla Firefox
C'est un programme chargé de naviguer parmi les pages HTML du web. À la différence de
ces concurrents, il est le seul navigateur sous licence GPL (Chrome de Google est en partie
sous licence Open Source) et surtout le seul soutenu par une fondation (la Mozilla
Foundation49[148]) qui contrôle une entreprise : la Mozilla Corporation[149]. C'est de celle-ci
que provient la majorité du travail de développement, puisqu'elle emploie plus de mille
employés. Le code est écrit en majorité par l'entreprise, mais des développeurs bénévoles y
participent également (la lecture de SVG et de MathML a été réalisé en partie par des
développeurs tiers).
De Firefox, sont sortis plusieurs logiciels libres fils : Iceweasel50 ; une version de Firefox qui
s'installe et se lance depuis une clé USB51 ; le lecteur multimédia SongBird et le dernier né :
Firefox OS qui sert de système d'exploitation (SE) pour téléphones mobiles.
VI.B.3. LibreOffice
Il est né de la rupture au sein des développeurs de OpenOffice.org. Cette dernière était une
suite bureautique multiplate-forme. Elle a créé le premier format bureautique normalisé par
l'ISO : l'Open Document Format (ODF). LibreOffice est supervisé par une fondation
allemande : The Document Foundation qui regroupe un ensemble d'entreprises qui vivent de
leurs connaissances de ce logiciel. Elles vendent notamment du support étendu aux entreprises
et aux administrations : LibreOffice possède un cycle de vie de six mois environ, ces
entreprises prennent en charge la résolution des problèmes rencontrés pendant et au-delà de
cette période.
VI.B.4. PostgreSQL
PostgreSQL est un moteur de base de données qui est distribué sous licence Open
Source[150]. Il a été initialement développé à l'université Berkeley52 de Californie. Ce moteur
est multiplate-formes et fonctionne aussi bien sur Windows, Mac OS, Linux, *BSD et une
dizaine d'autres SE ainsi que sur autant d'architectures matérielles différentes.
Beaucoup de bases de données d'officine s'appuient sur le langage SQL53, cinq LGO
(Caduciel, Esculape, Periphar, Pharmaland, Vindilis, Visioft, Winpharma) utilisent un moteur
de base de données Open Source ou sous licence Libre. Parmi elles, un LGO (Vindilis) utilise
PostgreSQL (voir le Tableau 3).
49 Mozilla a aussi créé le logiciel de messagerie électronique Thunderbird, utilisé par l'ASIP-Santé pour tester
la messagerie de santé sécurisée[84].
50 version débarrassée de certains de ses composants – notamment la marque Firefox - pour la rendre
compatible avec la distribution distribution Debian
51 Retrouvé au sein de la framée :http://www.framakey.org/
52 Berkeley est le B de la licence BSD
53 Structured Query Language
Page 47/112VII) Tableaux comparatifs
Ce chapitre présente le résultat des fonctionnalités et les services listés dans les chapitres
précédents en les rangeant par logiciel.
VII.A \ Méthodologie
Sachant que le dossier pharmaceutique et les fonctionnalités de SESAM-Vitale sont
obligatoires, nous sommes partis du postulat que tout logiciel qui ne proposerait pas ces
fonctionnalités ne serait absolument pas utilisable pour les officines françaises et ne
constituent donc pas des LGO. Nous avons exclus de nos recherches, les logiciels non
commercialisés, même si ils sont encore utilisés.
L'accès au réseau SESAM-Vitale nécessite un agrément de la part des autorités. Ces
dernières fournissent une liste, actualisée régulièrement, sur les logiciels agréés à la norme
SESAM-Vitale 1.40[151] ou au SCOR[152]. Le CNOP a, lors de la promotion du DP en 2011,
publié une liste de sociétés et de leurs logiciels[153]. Au cours du premier trimestre 2014,
nous avons recherché le site web de chaque logiciel et listé à partir de ces derniers, les
fonctionnalités déclarées par les éditeurs.
Dans ces listes, seuls deux logiciels n'ont pu être trouvés :
• IBSM Sort qui produisait PharmaSoft[154]. Le greffe du tribunal de commerce de
Bordeaux nous a confirmé son dépôt de bilan.
• IP3 (Informatique Pour et Par les Pharmaciens) qui produisait Magic Vente. La
chambre de commerce de la Rochelle nous a expliqué qu'elle était en « sommeil » et
donc n'avait pas d'activité pour l'instant.
Le logiciel Logiphar de la société Pharmavision présente une particularité : c'est une version
personnalisée pour le groupement Giphar54 du logiciel d'Alliadis. Nous ne ferons pas de
distinction dans les tableaux entre ces 2 logiciels.
Pour l'anecdote, le CNDA diffuse aussi la liste des logiciels qui sont en cours d'agrément et
un nouveau LGO y apparaît. Après contact, celui-ci est encore en développement et son nom
n'est pas encore trouvé.
La liste des fonctionnalités affichées sur les sites Internet des sociétés éditrices ont été
vérifiées par téléphone auprès de ces mêmes sociétés. Chacune des fonctionnalités ont été
détaillées dans le chapitre III). L'appellation de ces fonctionnalités a été unifiée pour
permettre une comparaison entre LGO.
Les fonctionnalités répertoriées par LGO n'ont pas été testées. Il n'existe aucun niveau de
preuve de leur complétude autre que la déclaration de la société éditrice. Ceci peut constituer
un biais.
54 Giphar fournit pour quelques pharmacies le logiciel Esculape à la place d'Alliadis.
Page 48/112Le système d'exploitation requis pour faire fonctionner le LGO ainsi que les logiciels
gestionnaires de base de données sont les premiers éléments analysés.
VII.B \ Système d'exploitations requis
et système de gestion des bases de
données
Logiciel Éditeur Linux
[source :
éditeurs]
Mac OS
[source :
CNDA ]
Windows
[source : CNDA ou
éditeurs]
Moteur de Base
de Données
[source : éditeurs]
Alliance
Premium
Alliadis Linux Use-IT Open Criteria &
PostgreSQL
Logiphar55 Pharmavision Linux Use-IT Open Criteria &
PostgreSQL
OPUS PG
Informatique
XP, Seven, 8, et
serveur
ODBC
Hyperfile
Périphar ASP Line Linux Use-IT Open Criteria &
MySQL
Winpharma Everys XP MySQL
LGPI Pharmagest
Interactive
CentOS (Client) Oracle
Pharmaland La Source
Informatique
XP, Seven MySQL et
HyperfileSQL
Léo 2.0 Isipharm XP, Seven, 8 Microsoft SQL
Server 2012
Caduciel 6 Caduciel
Informatique
XP Firebird
PharmaVitale C.E.P.I Soft
Office
XP, Seven Microsoft SQL
Server
Esculape CIAM XP, Seven SQLite
Crystal Infosoft XP, Seven Développement
interne
Vindilis Vindilis Ubuntu
serveur
X XP PostgreSQL
Visiosoft Visiopharm XP, Seven, 8 MySQL
Logiciel X Société X XP Non communiqué
Tableau 3: Système d'exploitations requis et système de gestion des bases de données
Les sociétés marquées d'une couleur appartiennent à un même groupe. Les moteurs de
bases de données soulignés sont des FLOSS.
55 Logiphar est une version personnalisée d'Alliance Premium vendu à Pharmavision.
Page 49/112Les LGO utilisent le système client/serveur : un poste centralise les données, c'est le serveur.
Un ou plusieurs postes la consultent et l'affichent à l'utilisateur : ce sont les clients. Ce
principe est retrouvé sur le web : vous accédez au site www.monexemple.fr dont l'ordinateur,
le serveur, est situé en un point géographique (une salle technique d’un hébergeur) et votre
ordinateur via votre navigateur web (le client) vous affiche la page d'accueil.
Les LGO qui utilisent le système Linux, le font majoritairement sur la partie serveur du
système. Ce dernier est placé dans l'arrière-boutique. Les clients, c'est-à-dire les postes au
comptoir, sont couramment sous Windows. Toutefois, l'éditeur peut proposer une session
déportée appelée aussi « platine56 » : un poste de travail est créé en utilisant simplement un
écran, une souris, un clavier, un lecteur de carte, un lecteur de code barre. Une « platine »
n'utilise pas d'unité centrale, les périphériques sont reliés au serveur qui fait fonctionner en
parallèle un autre poste que celui dévolu au serveur. Ce système de multiposte a souvent été
utilisé au début de l'informatique officinale avec les système UNIX, Prologue et OS/2[155].
D'ailleurs, le fait de faire tourner le LGO directement sous Windows a été un argument
commercial[156][157] : les systèmes d'exploitation UNIX/Linux avait, avant les années 2000,
une interface utilisateur austère, orienté vers l'usage d'un technicien en informatique.
L'interface utilisateur du système d'exploitation Windows étant devenue populaire, elle mettait
en confiance les pharmaciens qui utilisaient des LGO exploitant cet environnement. De plus,
ils pouvaient utiliser leur outil informatique pour d'autres usages (comme de la bureautique)
que celui du LGO. Enfin par effet réseau, les laboratoires proposent des petits programmes
(catalogue d'homéopathie, de phytothérapie, d'huiles essentielles, de génériques, …) qui ne
fonctionnent que sous Windows.
Bien que la prise en charge de Windows XP ne soit plus prise en charge par Microsoft
depuis avril 2014[158], les éditeurs de LGO estiment que les clients qui sont encore sous XP
auront migré vers Windows 7 avant la fin de l'année 2014.
56 Appeler aussi terminal par les informaticiens. À notre connaissance, seul Allaidis propose ce type de
dispositif.
Page 50/112VII.C \ Liste des fonctionnalités obligatoires et indispensables
Tableau 4: Liste des fonctionnalités obligatoires et indispensables dans les différents LGO
Logiciel Alliance
Premium
OPUS Periphar WinPharma
LGPI Pharmaland
Léo
2.0
Caduciel 6 PharmaVitale
Esculape Crystal Visiosoft Vindilis Logiciel
x
Obligatoires
SESAM-Vitale ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆
SCOR V 2.+ GEDscan 140.8 ✆ 8.2 2.00 9.50 2.3 6.04 1.404 ✆ ✆ 3.40 2.3 1.10
DP (2011) ✆ 57
BdD
médicaments
BCBDexther
BCBDexther
BCBDexther
Thesorimed
VIDAL 58 VIDAL VIDAL VIDAL VIDAL VIDAL VIDAL VIDAL VIDAL VIDAL
Indispensables
Gestion de
stock
✆ ✆ ✆
PharmaML * ✆ *
Fiches patients,
praticiens
✆ ✆ ✆ ✆ ✆ ✆ ✆
Comptabilité ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆
Gestion des
droits
✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆
Garantie de
paiement
✆ ✆ VisioDroit VisioDroit
prochainement
✆ Cleyris,
VisioDroit
VisioDroit ✆
OSPharm
Légende : : informations obtenues sur le site web de l'éditeur ; * : informations obtenues via un site web tiers ; ✆ : informations obtenues en
questionnant l'éditeur ; nombre : numéro de version du logiciel.
57 À la demande du CNOP, ils sont passés sur la V2. L'agrément devrait arriver sous peu.
58 LGPI utiliserait aussi ClickaDoc, mais lors de nos questions l'éditeur nous a parlé seulement de VIDAL.VII.D \ Liste des fonctionnalités optionnelles
Tableau 5: Liste des fonctionnalités optionnelles dans les différents LGO
Logiciel Alliance
Premium
Logiphar
OPUS Peri-phar WinPharma
LGPI Pharmaland
Léo
2.0
Caduciel
6
PharmaVitale
Esculape Crystal Visiosoft Vindilis Logiciel x
Opinion
pharmac
eutique
✆ ✆ ✆ ✆ ✆ ✆ ✆
Achats
groupés
OPUS
Plateforme
Officentral
✆ interface
web
VisioGroupe
Gestion
des collectivités
✆ ✆ ✆ ✆ ✆ ✆ ✆ ✆
Télé-
travail
✆ Domisecure
SMS ✆
Robots/
automates
✆ ✆ ✆ ✆
Carte de
fidélité
Couponing
Dynamic
Matériel
de
location
LMN
Emploi
du temps
Pharma
RH
Logiciel Alliance
Premium
Logiphar
OPUS Peri-phar WinPharma
LGPI Pharmaland
Léo
2.0
Caduciel
6
PharmaVitale
Esculape Crystal Visiosoft Vindilis Logiciel x
Gestion
de la
caisse
✆ ✆ ✆ ✆ ✆ ✆ ✆
PDA ✆ ✆ ✆ ✆ ✆ ✆ ✆
Comparateur
de prix
Santestat/
Atout
Prix
IMSHealth/
Pharmastat
Sauvegardes
sur
un
serveur
distant
DataProtect
Agré-
ment
HDS
Étiquettes
électroniques
Sin Etiq Sin Etiq ✆
TPE Offizy
Fiche
conseil
✆
Suggestion
de
vente/
conseil
✆
Pharmaco
vigilance
✆ ✆ ✆
MSSanté ✆ test
Écran
Tactile
✆ Logiciel Alliance
Premium
Logiphar
OPUS Peri-phar WinPharma
LGPI Pharmaland
Léo
2.0
Caduciel
6
PharmaVitale
Esculape Crystal Visiosoft Vindilis Logiciel x
Entretien
pharmaceutique
SuiviPat
ient
MonSui
viPatient
✆
Managem
ent/
challenge
Étiquettes
de
posologie
Pilul
Etiq
✆ Poso'Net
Températures
:
contrôle
et suivi
✆ ✆
Légende : : informations obtenues sur le site web de l'éditeur ; ✆ : informations obtenues en questionnant l'éditeur ; nom : nom commercial de la
fonctionnalité.VII.E \ Liste des services complémentaires proposés par les
éditeurs en dehors du LGO
Tableau 6: Liste des services complémentaires proposés par les éditeurs en dehors du LGO
Logiciel Alliadis PG
Informatique
ASP
Line
Everys Pharmagest
Interactive
La
Source
Informatique
Isipharm Caduciel
Informatique
C.E.P.I
Soft
Office
CIAM Infosoft Visiopharm Vindilis Logiciel x
Formation
du logiciel
✆
Prise en
main à
distance
✆ ✆ Contrat
fidélité
✆ ✆ ✆ ✆ ✆ ✆ ✆
Site web
(vitrine
ou de
vente)
✆
Vente
Interpharma
(Vente)
Vitrine +
gestion
dossier
patient
Pharmattitude
+
Vente
E-
presence
/ Epharma
Box
ADSL,
Fax IP
PharmaDSL
Croix
LED
Signal
LED
Signal
LED
Externalisation
du tiers
payant
Extern@
TP
Extern
@TP
Cleyris
™
Emis
Santé®
Logiciel Alliadis PG
Informatique
ASP
Line
Everys Pharmagest
Interactive
La
Source
Informatique
Isipharm Caduciel
Informatique
C.E.P.I
Soft
Office
CIAM Infosoft Visiopharm Vindilis Logiciel x
Création
de
campagne
de
communic
ation
PharmaCom
/Light
Clip /Clip
Santé
/Clip
Frimousse
Clip
Santé
Offimédia
Vidéosurveillan
ce
Visio
Protect
Visio
Protect
winSécurité
Offiseen
Antivol
sur les
produits
Paraprotect
Paraprotect
Distribut
eur
automati
que
Pharma
24
Pharm
a 24
Forum
d'assistance
et de
développement
Réseaux
sociaux
d'achats
messagerie
intégrée
(Officentral)Logiciel
Alliadis PG
Informatique
ASP
Line
Everys Pharmagest
Interactive
La
Source
Informatique
Isipharm Caduciel
Informatique
C.E.P.I
Soft
Office
CIAM Infosoft Visiopharm Vindilis Logiciel x
Application
smartphone
(télé-
travail)
(télé-
travail)
Ma
Pharmacie
Mobile
(télé-
travail)
✆
Pilulier
électronique
✆ DO-Pill
Secure™
Légende : : informations obtenues sur le site web de l'éditeur ; ✆ : informations obtenues en questionnant l'éditeur ; nombre : numéro de version
du logiciel ; nom : nom commercial de la fonctionnalité.VIII) Discussion
VIII.A \ Critique de la méthode
Notre méthode a constitué en recueil d'informations sur les sites web des éditeurs et des
autorités, associé à une recherche bibliographique au sein des différentes thèses pouvant nous
éclairer sur les sujets traités. Ce recueil a été complété par des questions aux éditeurs pour
compléter les informations obtenues et par une lecture des rapports institutionnels.
Il nous est vite apparu que certaines fonctionnalités étaient nommées différemment selon
notre interlocuteur. Ainsi, il n'a pas toujours été facile de se faire préciser la présence ou non
de certaines fonctionnalités. Par exemple, les fonctionnalités de pharmacovigilance ou
d'opinion pharmaceutique ont dû parfois être explicitées pour éviter une confusion avec la
gestion de l'historique des interactions pour le premier ou avec le dossier pharmaceutique
pour le second.
Notre méthode de collecte est fortement liée à la déclaration des éditeurs puisque nous
n'avons pas contrôlé les déclarations des éditeurs en testant leur logiciel en situation réelle.
Certaines fonctionnalités nécessitent un automate, ce qui rendrait une méthode de test en
situation réelle plus difficile à réaliser. De plus, les interfaces utilisateur étant différentes entre
les LGO, un contrôle en situation réelle aurait sollicité beaucoup de temps pour prendre en
main ces interfaces avant de pouvoir contrôler la présence ou non d'une fonctionnalité.
Afin d'obtenir un tableau clair, il nous a fallu effectuer des choix. Par exemple, certains
éditeurs mettaient en avant sur leur site web la possibilité de gérer les litiges, les avances, les
dettes et les relances. Cette fonctionnalité nous a semblé relever de celle de la comptabilité
couplée avec la gestion des fiches de patients, voire être couverte par la fonctionnalité de
gestion des collectivités. Au final, nous avons choisi de ne pas afficher cette fonctionnalité.
De même, la qualification d'indispensable ou d'optionnelle est un choix partial.
Ces choix sont dépendants de notre expérience officinale : un titulaire aurait, sûrement,
donné une autre sélection de fonctionnalités et les aurait qualifiés différemment.
Les fonctionnalités de pharmacovigilance et de messagerie sécurisée de santé n'étaient pas
présentes sur les sites web des éditeurs. C'est pour satisfaire notre curiosité que nous les avons
rajoutées à la liste. Au début de nos études, l'opinion pharmaceutique nous avait été présenté.
Mais nous ne l'avons jamais utilisé lors des stages en officine. C'est pourquoi, nous avons
voulu déterminer sa présence dans les LGO.
Ainsi, si nous pensons que la liste des LGO est exhaustive, nous ne prétendons pas que
l'énumération des fonctionnalités l'est. De plus, certains éditeurs travaillent « à la demande » :
si un client exprime le besoin d'une fonctionnalité, celle-ci peut être développée et proposée à
l'ensemble des clients sans surcoût. Nos tableaux comparatifs sont donc des photographies
d'un instant donné.
Page 58/112VIII.B \ Les pharmaciens sont des
acteurs de l'informatisation de
l'officine
Le lecteur pourra remarquer dans le chapitre IV que les éditeurs sont souvent affiliés à un
pharmacien : soit parce que ce sont eux qui ont créé la société (exemple des CERP ou du
groupement Giphar), soit parce que l’éditeur s'est rapproché d'un pharmacien pour obtenir des
conseils sur la conception du logiciel et mieux cerner les besoins de ses clients.
Mais cette implication dans le secteur informatique ne se limite pas aux éditeurs. Les
pharmaciens ont su se fédérer pour obtenir des outils influençant l'ensemble de la profession
et plus largement le monde de la santé. Le syndicat FSPF a créé un concentrateur pour
faciliter l'exercice de l'officine vis à vis de l'administration mettant en place SESAM-Vitale.
Mais Resopharma propose maintenant ses services à tous les professionnels de santé. De
même, le CNOP a créé le DP dans un but politique : affirmer l'importance du réseau officinal
alors que les pharmaciens n'étaient jamais cités dans l'utilisation du DMP[23] et rappeler à
tous l'indépendance des pharmaciens. On peut voir la mise en place du DP comme un projet
pilote avant le lancement du DMP. Huit ans après, le projet pilote est déployé dans 98,8 % des
officines -22 272 officines- et il est proposé dans 5,2 % pharmacies hospitalières -140-
(chiffres du 29 septembre 2014). Les médecins hospitaliers des urgences, de gériatrie et
anesthésie vont pouvoir consulter les informations contenues dans le DP : l'outil ne bénéficie
donc pas aux seuls pharmaciens, mais peu à peu à l'ensemble des professionnels de santé et
indirectement aux malades. De plus, ce sont les pharmaciens qui payent aujourd'hui la
maintenance et l'évolution à travers leur cotisation ordinale[33] et non la collectivité. Cela
garantit au CNOP une certaine marge de manœuvre dans l'évolution de l'outil. Le DMP est,
lui, à son troisième plan de relance financé par l'argent public !
À l'heure où le monopole pharmaceutique est remis en cause, nous ne doutons pas que le
CNOP saura faire remarquer aux législateurs la bonne implication de la profession dans les
économies de la sécurité sociale : tous les pharmaciens télé-transmettent leur factures par voie
électronique, ils génèrent des économies substantielles aux caisses avec le SCOR. Ces
avancées sont intimement liées à l'implication des pharmaciens dans l'informatique.
VIII.C \ Évolution de l'informatique
officinale
L'informatique devient peu à peu un élément incontournable de la société, l'officine ne fait
pas exception : de 1 % des officines informatisées en 1982[159], elles atteignent les 100 % en
2008.
Toutefois, le marché de l'informatique officinale est saturé : en 13 ans, dix sociétés ont
déposé le bilan ou bien on été rachetées. De plus, la répartition des parts de marché est
concentrée sur deux acteurs qui représentent plus de 70 % des LGO utilisés en officine. Cela
n'empêche pas l'arrivée de nouveaux acteurs récemment (arrivée de Vindilis en 2011, un autre
en cours d'agrément en 2014).
Page 59/112Les communications et les formats de stockage de l'informatique en général, deviennent de
plus en plus standardisés59, voire normalisés. Ce mouvement facilite l'interopérabilité60 des
systèmes informatique, assainissant le marché en favorisant la concurrence. De même,
l'informatique officinale normalise ses communications (SESAM-Vitale, PharmaML, CD
API, DP) et ses formats de stockage de l'information (utilisation du langage de SQL pour les
bases de données, Datamatrix pour les étiquettes, HL7 dans le DP). Notons que les normes
viennent, le plus souvent, d’organismes « classiques » comme l'ISO (Datamatrix, cartes à
puces) ou d'organismes façonnant Internet (utilisation de SMTP et S/MIME dans SESAMVitale,
XML est utilisé dans le DP et dans PharmaML, IP dans le CDAPI).
Une standardisation prochaine semble être l'arrivée des lecteurs PC/SC qui vont permettre
de s'affranchir du monopole d'Ingenico sur le marché des lecteurs de CV.
Cette standardisation permet à l'officine d'être à la pointe de la dématérialisation de son
activité : en format papier, il ne lui reste plus que les ordonnances61 et les bons de livraisons.
La standardisation permet aussi de fournir une traçabilité, participant au processus qualité. Si
le CNOP et les syndicats ont élaboré une charte qualité[160] sur les LGO en 2008, ce
document n'a pas reçu de mise à jour depuis et n'est plus accessible sur les sites web des
rédacteurs.
Malheureusement, toutes les communications ne sont pas encore standardisées. Les achats
par groupements (voir chapitre III.C.2) ne fonctionnent qu'entre logiciels du même éditeur.
Cette absence de standardisation est un frein à la concurrence : une officine hésitera à changer
de LGO s'il lui faut un LGO particulier pour réaliser ses actes d'achat avec d'autres officines.
La solution de passer par un site web n'est que palliatif. Elle ne remplacera pas le LGO qui
garde en mémoire la commande passée et évite à l'officine de commander auprès du grossistes
un produit qu'elle va recevoir par l'achat groupé. De même, les communications entre les PDA
ou avec les étiquettes électroniques ne sont pas standardisées. Il y a un risque possible que
certaines solutions ne fonctionnent qu'avec certains LGO et pas avec d'autres. Peut-être faudra
t-il des associations comme AURA pour y aboutir ?
L'absence de MSS et le retard pris par le RPPS limite la facilité d'utilisation de l'opinion
pharmaceutique : le pharmacien doit imprimer la feuille, puis la transmettre au prescripteur.
59 par exemple la norme HTML5 normalise la manière de recevoir un flux vidéo ou audio remplaçant la
technologie Flash propriété exclusive d'Adobe et ne fonctionnant pas sur l'iPhone, l'ODF normalise le
stockage bureautique.
60 Le gouvernement a publié, en juin 2009, un Référentiel Général d'Interopérabilité où l'on retrouve des
standards et des normes utilisées par les LGO. http://references.modernisation.gouv.fr/rgi-interoperabilite
61 Ordonnances qu'elle se charge de dématérialiser pour les caisses via SCOR.
Page 60/112VIII.D \ Sécurité
Le 8 avril 2014, Microsoft arrêtait de garantir la sécurité de la version XP de Windows. Les
ordinateurs utilisant ce système d'exploitation se trouvent alors plus exposés aux intrusions et
aux vols de données et cela malgré la présence d'un antivirus ou d'un pare-feu. Cet arrêt avait
été annoncé plusieurs années auparavant par la firme de Redmond[158]. Il nous parait
étonnant que le CNDA valide, en juin et en août 2014, des LGO pour SESAM-Vitale 1.40.9
sans demander de le faire aussi pour son successeur Windows 7 (voir Annexe 2 : Liste des
fonctionnalités de SESAM-Vitale 1.40 dans les différents logiciels). Si la CNDA ne s'occupe
que de la sécurité de la transmission des données au sein de SESAM-Vitale, elle ne peut
occulter le fait que la sécurité n'existe plus si le poste émetteur est compromis.
Au cours de nos entretiens, nous avons essayé de savoir quelle sécurité était appliquée à la
base de donnée des LGO, notamment parce qu'elle manipule les données médicales des
patients et se doit d'être précieusement protégée. Notre approche était la suivante : d'après
notre expérience, rares sont les serveurs qui sont mis dans un local sous clé. Un cambrioleur
peut aisément voler l'unité centrale et avoir ensuite tout le temps de s'attaquer à la sécurité de
la base de données. Il peut obtenir ainsi des informations médicales que le pharmacien se
devait de protéger. Les réponses de nos interlocuteurs ont été le plus souvent confuses, ne
nous permettant pas d'avoir un avis clair sur la question, certains nous assurant que la sécurité
était garantie par un mot de passe, mais peinant à nous en expliquer le mécanisme (utilisation
ou non de salage62 pour éviter les attaques par force brute). D'autres nous ont répondu que
l'organisation de la base de données était tellement complexe qu'il serait difficile d'en extraire
les données. Un autre enfin, a répliqué que lors des migrations vers son LGO, rien ne
l'empêchait d'accéder aux bases de données. Nous avons toutefois oublié de demander à ce
dernier s'il avait connaissance du mot de passe lors de la migration.
Pour mieux cerner l'aspect sécurité, nous avons demandé aux éditeurs si le disque dur du
serveur était chiffré intégralement. En effet, il arrive que les professionnels de santé ne
procèdent pas à un formatage dans les règles du disque dur quand ils se débarrassent de leur
vielle machine. Un chiffrement intégral palliera à cet oubli. Cette solution semble n'être
utilisée chez aucun éditeur, la raison pouvant être une perte de performance du serveur, point
critique qui impactera l'utilisation du LGO.
Ces faits tranchent avec les serveurs des Hébergeurs de données63 de Santé qui sont
contrôlés par l'ASIP-Santé, cette dernière leur donnant un agrément avant toute utilisation. Il
y a donc une différence de traitement par les autorités entre un serveur local qui stocke des
données médicales mais relié plus ou moins directement à Internet, et un serveur stockant lui
aussi des données médicales mais dont le principe même est de fonctionner à travers Internet.
En effet, le GIE SESAM-Vitale ne s'occupe que de la télétransmission, pas du fonctionnement
des LGO au niveau du poste de travail.
Nous pourrions aussi interroger les éditeurs sur la séparation du compte administrateur de
celui du compte utilisateur. Cette méthode est un excellent moyen pour se prémunir des
programmes malveillants : le programme malveillant ne peut s’exécuter s'il ne possède
l'autorisation du compte administrateur. Formulé autrement, un compte utilisateur ne peut pas
installer de logiciels ou toucher aux paramètres avancés de l'ordinateur, il a juste le droit
62 Technique préconisée pour sécuriser les bases de données stockées sur les serveurs web. Elle rend l'attaque
par dictionnaire beaucoup plus longue et donc augmente la probabilité que le malfaiteur abandonne.
63 Docapost est le prestataire agréé[75] du CNOP[161] pour le DP
Page 61/112d'utiliser l'outil informatique. Le compte administrateur est alors réservé aux techniciens
informatiques pour ses interventions.
Les professionnels de santé doivent aussi préserver le secret médical (Article L161-36-1 A
du CSS[162]). Ce secret doit être maintenu lors des échanges électroniques entre le médecin
et les caisses, ce que garantit le système SESAM-Vitale. Mais le secret doit l'être aussi entre
professionnels de santé. Le DP le permet sur les échanges au niveau de l'historique
médicamenteux. Mais cela ne représente qu'une portion des échanges électroniques entre
pharmaciens ou entre professionnels de santé. La majorité des échanges entre professionnels
de santé se réalise sur des web-mails grand publics64 soumis le plus souvent à la juridiction
états-unienne. Les révélations d'Edward SNOWDEN ont clairement démontré que la vie
privée des utilisateurs non issus des États-Unis n'était pas leur préoccupation principale. Nous
espérons que la mise en place du RPPS65 permettra au monde officinal de communiquer plus
facilement avec les professionnels de santé tout en les identifiant de manière sûre lors de la
délivrance. Nous espérons aussi que la messagerie sécurisée de santé aura une adoption large
auprès des professionnels de santé permettant de préserver le secret médical. Le RPPS et la
MSS nous semblent des pré-requis indispensables avant le lancement du DMP.
Gardons à l'esprit que la sécurité de l'outil informatique n'est pas liée à l'utilisation de telle
ou telle technologie. Comme le processus qualité, elle repose sur une vigilance régulière et
une remise en question de ses habitudes : une technologie peut être adaptée à un instant « T »
et se révéler inefficace 5 ans après. Signalons que le CNOP fournit un recueil de
recommandations sur la sécurité[163]. L'ASIP-Santé propose, lui, tout un corpus
documentaire à ce sujet sur la page http://esante.gouv.fr/pgssi-s/espace-publication avec
notamment un mémento66 à destination des professionnels de santé.
Mais le pharmacien doit être aussi garant de la sécurité des médicaments. La fin de la
vignette impose l'usage du Datamatrix et permet un meilleur suivi des périmés. Pour le
patient, c'est la garantie d'un meilleur suivi des alertes sanitaires. Indirectement, le Datamatrix
va faciliter les actions des autorités contre la contrefaçon. De même, le projet de
déconditionner les antibiotiques[164] et la part grandissante de l'utilisation des PDA (entraîné
par le vieillissement de la population) nécessiteront une traçabilité au niveau du comprimé et
non à celui des lots de boites comme c'est le cas actuellement. Comme le rappelle Marie
GRENIER[71] dans sa thèse, un conditionnement unitaire marqué (et donc traçable)
améliorerait la situation (l'hôpital propose déjà un codage à l'unité : l'Unité Commune de
Dispensation ou UCD[165]).
Nous nous réjouissons que le CNOP s'occupe des ruptures de stocks des médicaments et
cherche à fournir le plus d'informations possibles aux autorités pour en trouver les causes. Là
aussi, l'outil informatique (le DP) est au cœur du processus. Les ruptures de stocks sont un
risque pour l'observance du patient, donc pour sa sécurité sanitaire. Nous espérons que dans
un futur proche, le pharmacien pourra renseigner les allergies médicamenteuses dans le DP ou
bien dans le DMP.
Enfin, pour améliorer la sécurité des médicaments, le pharmacien se doit de rapporter les
effets indésirables qui sont portés à sa connaissance[76], c'est la pharmacovigilance. De notre
expérience, nous pouvons dire que c'est une démarche longue et compliquée (voir Fiche de
pharmacovigilance en annexe). De plus, le fait de demander des informations cliniques, voire
64 Rappelons que ce fait a été dénoncé par la cour des comptes en 2002, 2008 et 2013.
65 Les pharmaciens ont été parmi les premiers[82] professionnels à passer sur le RPPS.
66 Ce mémento préconise le chiffrement des disques durs et la séparation des comptes administrateurs et
utilisateurs.
Page 62/112biologiques, peut constituer un frein pour le pharmacien. Une partie de la fiche de
pharmacovigilance comprend des renseignements administratifs que connaît déjà le LGO à
travers la fiche du patient, une autre partie demande les médicaments pris, c'est-à-dire
l'historique médicamenteuse. Là aussi, le LGO connaît déjà cette information grâce au DP.
Donc, le LGO peut être une aide précieuse dans la saisie de cette fiche de pharmacovigilance.
Forts de ce constat, nous nous sommes alors demandés si des LGO proposaient cela. Nous
espérons que cette fonctionnalité sera amenée à se généraliser. De plus, le gain de temps
qu’offrirait une pré-saisie par le LGO permettrait de répondre à une des critiques de
l'IGAS[166] sur le système de pharmacovigilance français.
VIII.E \ Le système SESAM-Vitale
Il est indéniable que ce système a profondément marqué l'informatique médicale française.
Le législateur voyait dans la technologie un moyen de réduire les coûts de fonctionnement de
la sécurité sociale. Seize ans après, les pharmaciens sont à la pointe de la maîtrise des coûts
administratifs de la sécurité sociale, SCOR étant la prochaine étape. Le pharmacien ne fait
que suivre le souhait de son principal client… la sécurité sociale : 80 % du chiffre d'affaires
des officines concerne les médicaments remboursés[79].
Toutefois, le système est encore partiel pour la partie complémentaire[9]. Il n'existe pas de
moyen électronique simple et unique de connaître les droits des caisses maladies
complémentaires : la carte DUO a été abandonnée et il existe une multitude de solutions
concurrentes alors que la carte vitale peut tout à fait accueillir ces informations[167]. Une des
causes de ce retard semble être la méfiance que possèdent les caisses complémentaires vis à
vis de la CNAMTS[6]. Une autre explication est que les mutuelles souhaitent offrir leurs
services au-delà des seuls médicaments remboursés : produits vétérinaires, phytothérapie,
substituts nicotiniques, contraceptifs non remboursées, etc …
La Carte Vitale 2 a été lancée en 2007. En 2011, le GIE SESAM-Vitale annonçait 20
Millions de CV 2 (sur plus de 60 millions de bénéficiaires), depuis elle ne donne plus de
nouvelles évaluations de ce nombre67, se limitant à donner le nombre de renouvellement
(environ 4 millions par an). Le renouvellement englobe aussi bien celui des anciennes CV 1
que les CV 2 perdues ou volées. En 2013, le tiers des CV seraient des CV 2[171]68. À titre de
comparaison, en 2002, soit 6 ans après le lancement de SESAM-Vitale, 44,5 millions de CV 1
avaient été distribués[93]. Une des raisons qui peut expliquer ce retard est le délai que
provoque l'ajout de la photographie. La présence de la photographie a été une demande forte
du législateur. Toutefois, aussi bien les professionnels de santé[172] que le rapporteur[173] se
sont clairement opposés à cette mesure jugée inefficace contre la fraude. Fraude qui était
d'ailleurs marginale à ce moment-là[174][9]. De plus, le processus d'envoyer la photographie
par la poste rend illusoire la garantie d'authenticité. Une autre raison de ce retard est que la
CV 2 apportait entre autres des fonctionnalités requises par les premières versions du
DMP[175][176]. Ces fonctionnalités n'étant plus requises depuis[9], l'intérêt de la CV 2 en est
diminué.
67 Le législateur a interrogé de nombreuses fois le gouvernement à ce sujet[169][170]
68 même chiffre qu'en 2012[168]
Page 63/112VIII.F \ Les FLOSS
Les termes « libre », « open » ou « ouvert » sont différents selon la personne qui l'emploie.
Dans NOÉMIE, il semble signifier une ouverture unidirectionnelle de l'administration aux
autres (les professionnels de santé), ouverture rendue nécessaire si les autres doivent lui
réaliser une partie de son travail administratif. Dans le LGO OPUS, « Open » revendique une
ouverture des données, c'est-à-dire un accès complet de la base de données avec des outils
tiers. Vindilis revendique un « développement Open Source », désignant ainsi l'utilisation de
logiciels Open Source dans leur solution logicielle. Pharmaland se décrit comme un « logiciel
libre »[177] qui signifie pour lui l'indépendance économique de l'éditeur69. D'ailleurs, ni le
logiciel (qui peut être téléchargé pour une période d'évaluation de 30 jours), ni le site web ne
précise le régime juridique du logiciel. Et il n'est pas possible d'accéder au code source de
Pharmaland.
Pourtant, nous avons vu que la définition de logiciel libre et open source est parfaitement
clarifiée, basé sur des cadres juridiques reconnus et éprouvés.
L'arrivée de Linux dans les LGO est une commodité économique : alors que les UNIX
étaient souvent payants, la gratuité et la maturité de Linux ont été des arguments en sa
faveur[178]. Néanmoins, les FLOSS ne se résument pas à leurs gains économiques. Pour
perdurer, ils nécessitent une contribution régulière de leurs utilisateurs. Sinon, ces derniers
scient la branche sur laquelle ils se sont assis. La circulaire AYRAULT, dont nous conseillons
fortement la lecture, recommande d'ailleurs de prévoir un budget pour ré-investir dans les
logiciels libres utilisés[125]. Elle dresse un excellent état des lieux, listant les avantages et les
inconvénients des FLOSS et expliquant l'intérêt qu'ils représentent pour l'administration.
Mais l'importance des FLOSS se situe au-delà : par l'ouverture de leur code à tous, ils
renforcent la confiance dans le système aussi bien des utilisateurs (le personnel officinal) que
des personnes dont sont issues les données (les patients). Les adeptes du logiciel libre
rappellent volontiers que le code fait la loi (« Code is law »[179]) et qu'ainsi les créateurs de
logiciel ont une influence considérable sur les utilisateurs, leurs habitudes, leurs usages. En
donnant la propriété du code aux utilisateurs, les logiciels libres rendent l'informatique
« démocratique » (de dêmos, « peuple » et krátos « pouvoir »), c'est-à-dire qu'ils rendent le
pouvoir de l'informatique au peuple des utilisateurs. Là aussi, nous renvoyons à la lecture de
la thèse de Nicolas FLOQUET[180] qui aborde largement les impacts politique et
philosophique du « Libre » (logiciels, travaux et œuvres) pour le monde de la santé.
Nous avons été frappés par la forte volonté d'indépendance qui anime aussi bien les acteurs
du FLOSS que les officinaux. Alors que l'accès au code source implique pour Richard
STALLMAN70 une garantie sur la manière d’exercer son métier et de disposer de ses
connaissances, de même les créations des CERP ou du DP apportent une garantie pour les
pharmaciens sur l’exercice leur métier de façon indépendante, notamment au niveau
économique.
Aucun LGO commercialisé actuellement n'est sous licence libre. Nous pensons qu'un LGO
placé sous un tel régime juridique pourrait séduire des confrères. En effet, plus que la licence
qui délivre une autorisation d'utiliser un logiciel, le pharmacien recherche un LGO efficace,
69 Alors que l'indépendance des Logiciels Libres est d'abord dans le statut juridique qu'il offre à son utilisateur
70 Lire à son sujet le livre « Richard STALLMAN et la révolution du logiciel libre. Une biographie
autorisée »[181]
Page 64/112répondant à ses besoins dans une gamme de prix adaptés à son budget. Il ne paye pas pour une
utilisation, il paye pour une assisatncet71. Pour cela, il a besoin à ses côtés d'un professionnel
de l'informatique qui connaisse le LGO. Cette connaissance ne peut être que le fruit d'une
participation active à l'élaboration, la conception et la maintenance du LGO. Tous les éditeurs
que nous avons interrogés à ce sujet, nous ont expliqué que le secteur officinal était trop
concurrentiel pour permettre à un LGO sous licence libre de survivre. Notre avis est qu'un tel
LGO ne pourra surgir que s'il est le souhait d'un groupe d'utilisateurs.
Si nous faisions une comparaison entre les logiciels libres et le monde officinal, nous les
comparerions à une CERP : tous les pharmaciens peuvent y adhérer, ils doivent s'investir
(dans les logiciels libres, ils peuvent employer un informaticien pour cela) et la mise en
commun bénéficie à tous les membres. La différence s'arrête à ce que les coopératives sont
dans le monde matériel et que les logiciels sont dans le monde immatériel. Le pharmacien ne
peut quitter une CERP en emportant tous les centres de dépôts avec lui, l'immatériel lui
permet de partir avec une copie du logiciel libre et de son code source sans léser la
communauté qu'il quitte.
En 2002, l'IGAS[93] ne voyait que deux modes de développement des logiciels métiers pour
les professionnels de santé : des logiciels créés par le GIE-SESAM-Vitale ou bien une
sélection périodique des meilleurs logiciels métiers après un appel d'offre. Nous pensons
qu'un développement collaboratif, au moins des couches bases d'un logiciel, pourrait être une
voie à explorer, les éditeurs s'entendant pour créer une brique logicielle commune à tous,
assurant de facto une standardisation des échanges entre les LGO ou vers des systèmes
informatiques partenaires comme SESAM-Vitale. Les autorités comme le CNDA garderait
leur rôle de garant de la conformité de fonctionnement : le logiciel serait ouvert mais sa
version utilisable sera verrouillé par l'agrément obtenu par le CNDA. Les éditeurs pourraient
se différencier sur l'interface et surtout l'assistance apporté à leur client.
Il existe un autre obstacle de taille à l'apparition d'un LGO placé sous un tel cadre juridique :
la publication des sources entraînerait une divulgation de portions de normes secrètes. Le
CNDA nous a répondu que le système SESAM-Vitale n'autorisait pas la divulgation de son
fonctionnement. Les organismes d'Assurances Maladie fournissent gratuitement d'ailleurs des
« modules SESAM-Vitale » aux progiciels bénéficiant de l'agrément par l'Assurance
Maladie[167][26]. Le protocole PharmaML est soumis à un accord de non divulgation. Ainsi
un LGO sous licence libre devra-t-il fonctionner avec des extensions qui comporteront des
protocoles secrets. Ces extensions du LGO seront alors non couvertes par la licence libre.
71 Une utilisation professionnelle d'un logiciel métier sans assistance informatique nous semble une folie.
Page 65/112IX) Conclusion
L'informatique officinale arrive à maturité, elle est désormais présente dans toutes les
officines qui ne peuvent désormais travailler sans elle : les LGO et leur éditeurs proposent aux
pharmaciens un large de spectre de fonctionnalités et de services qui couvrent tous ce qu'il
peut faire dans le cadre de son travail quotidien. Nous avons pu lever légèrement le voile sur
la profession d'éditeur de LGO et présenter les FLOSS : un mouvement juridique et
philosophique d'informaticiens cherchant un moyen de garder l'indépendance de leur outil et
ainsi, de garantir la souveraineté de l'utilisateur.
L'infomatique peut être utilisée comme prisme de lecture d'une profession. C'est ainsi que
nous avons découvert des partenaires de l'officine (comme les CERP ou les groupements)
dont nous ne connaissions que le nom. Apprendre l'histoire de ces partenaires nous révéle
l'évolution de l'officine et de la pharmacie en France. À la fin du dix-neuvième siècle,
l'officine s'interroge sur l'industrialisation naissante qu'elle retrouve en son sein.
Industrialisation pharmaceutique qui s'oppose à l'artisanat du préparatoire. À la fin de la
première guerre mondiale, les grossistes permettent aux officinaux de mieux gérer
l'augmentation des produits de parapharmacie. Cette position sera renforcé à la sortie de la
seconde guerre mondiale qui voit la généralisation des spécialités. Au même moment, l'État
rentre fortement dans le domaine de la santé avec la création de la Sécurité Sociale. La
maitrise des coûts de cette dernière, au début des années 90, forcera les pharmaciens à
chercher à s'améliorer sur la parapharmacie à l'aide des groupements. Les années 2000 sont
assurément celles de l'informatique officinale poussé par le système SESAM-Vitale. Les
syndicats et l'Ordre, loin de négliger ce fait, se sont investis dans cet outil. L'informatique
infiltre graduellement toutes les couches de la société, rendant son apprentissage et sa maitrise
de plus en plus cruciaux.
Ainsi, tout au long de son histoire, le pharmacien a dû justifier sa place dans le monde de la
santé, jongler entre la casquette de commerçant et celle de professionnel médical. Cela a
permis à la profession d'acquérir une connaissance de la vie économique comme le montre la
variété des structures juridiques que la profession a utilisé pour réunir plusieurs de ses
membres: SARL, SEL, coopérative, association, GIE, etc … Les officinaux ont le sentiment
que sans indépendance économique, il n'y a pas d'indépendance professionelle.
Page 66/112X) Annexe
X.A \ Annexe 1 : Liste des éditeurs de
LGO et de leurs logiciels
Tous les noms de sociétés et de logiciels, les logos et marques sont la propriété de leurs ayants droit
respectifs.
Groupe Cegedim
Ni Périphar, ni OPUS ne sont référencés sur le site de la maison mère :
http://www.cegedim.fr/contact/Pages/France.aspx
Ces informations sont tirées des sites web des filiales.
Alliadis
► Alliance Premium
Crystal Palace
369/371 Promenade des anglais
06000 Nice
☎ : 04 93 21 89 89
: http://www.alliadis.com
Application Service Providing Line
Ou A.S.P Line
► Periphar
76 avenue Paul Kruger
69100 Villeurbanne
☎ : 04 72 91 23 99
: http://www.periphar.fr/
Pharmacie Gestion Informatique
Ou PG Informatique
► OPUS alias OPen Useful Software (OPUS)
ZA de Kerangueven
69100 Villeurbanne
☎ : 0 820 201 277
: http://www.opusoftware.fr
Page 67/112Construction Étude Projet Informatique Soft Office
Ou C.E.P.I Soft Office
► PharmaVitale
1 bis, rue Gaspard Monge
37270 Montlouis sur Loire
☎ : 02 47 05 13 58
: http://www.pharmavitale.fr/
CERP Rhin Rhône Méditerranée
Caduciel Informatique
► Caduciel v6
Zone Artisanale
70190 Voray sur l'Ognon
☎ : 03 81 56 86 83
: http://web.caduciel.fr
CERP Rouen alias Astera
Isipharm
► Logiciel Économie Officine ou Léo 2.0 (successeur de WinPresto)
9, rue des augustins
76000 Rouen
☎ : 02 35 12 19 19
: http://www.isipharm.fr/
CIAM
► Esculape
1, rue Francis Meilland
49000 Angers
☎ : 02 41 47 46 46
: http://www.esculapev5.net/Index.htm
Everys
► WinPharma
Espace Atlantica
ZA du Redo
56640 Arzon
☎ : 08 25 07 03 03
: http://www.winpharma.com
Giphar (coopérative)
Pharmavision
► Logiphar qui est un dérivé d'Alliadis
14 rue du Four à chaux
59000 LILLE
☎ : 03 20 18 11 90
: http://www.pharmavision.fr/doc_logiphar/html/index.php
Page 68/112Infosoft
► Crystal
9, Grande Rue de Vaux
51300 Vitry-Le-François
☎ : 03 26 62 11 50
: http://infosoft-online.com/
La Source Informatique
► Pharmaland
56, Boulevard Davout
75020 Paris
☎ : 01 43 56 07 10
: http://www.pharmaland.fr/
Vindilis
► Vindilis
40, rue du Bignon
Immeuble Delta
35510 Cesson-Sévigné
☎ : 02 99 86 05 06
:http://www.vindilis.fr/
Visiopharm
► Visiosoft
15bis, rue Blanchard
33110 Le Bouscat
☎ : 05 56 08 91 91
:http://www.visiopharm.fr/logiciel/
Groupe Welcoop (Ex CERP Lorraine/ Coopérative des Pharmaciens de Nancy)
Pharmagest Interactive
Le groupe possède aussi les logiciels CIP Global Service, Pharmagest, Primoris Evolution
et Primoris, mais tous ont été regroupés sur le même logiciel : LGPI. Les clients des anciens
logiciels y sont progressivement migrés.
► Pharmagest
5, Allée de Saint-Cloud
BP 117
54601 Villers-Les-Nancy Cedex
☎ : 08 20 90 82 00
:http://www.pharmagest.com/
Société X
►Logiciel X
La société a demandé à ne pas être citée et refuse l'utilisation de son nom et de celui de son
logiciel dans cette thèse.
Page 69/112X.B \ Annexe 2 : Liste des fonctionnalités de SESAM-Vitale 1.40
dans les différents logiciels
D'après le site web du CNDA : http://www.cnda-vitale.fr/php/agrement-1.40.php?page=les logiciels agrees consulté le 14 mars 2014.
Tableau 7: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les LGO du groupe CEGEDIM et de la société Pharmavision
NOM DU LOGICIEL Alliance FES PREMIUM FES PREMIUM FES Logiphar FES OPen Useful
Software (OPUS)
Periphar
ÉDITEUR Alliance Software Alliadis Alliadis Alliance Software72 PG Informatique ASP Line
VERSION 2.05 3.02 3.02 puis 3.04A et 3.05 2.05 puis 2.06 140.8 1.90
DATE D'AGRÉMENT 07/10/2013 16/05/2011 07/10/2013 16/10/2013 19/12/2013 13/03/2012
VERSION DU CAHIER DES
CHARGES
1.40.7.4 1.40.7.1CS 1.40.7.2 1.40.7.4 1.40.7.1CS 1.40.7.2
CARACTÉRISTIQUES TECHNIQUES
SYSTÈME (PLATE-FORME DE
TEST)
Linux UNIX SCO Linux Linux Windows XP Linux
UTILISATION DU MODULE
SIS (GIE)
Oui non Oui Oui Oui Oui
VERSION API SSV SSVOSX V5.21 SSVOSX V5.20 LIBSSVLUX V5.20
puis LIBSSVLUX
V5.21
SSVOSX V5.21 SSVOSX V5.20 LIBSSVLUX V5.21
VERSION DES TABLES
EXTERNES SSV
V 5.21 V 5.20 V 5.20 puis 5.21 V 5.21 V 5.20 V 5.21
VERSION LECTEUR EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00
KIT DE CONNEXION INTERNET RSS RSS INTERNET WANADOO-SANTE INTERNET
GESTION MULTI-PS Non Non Non Non Non Non
CONFIGURATION TESTÉE Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS
72 Qui le vend à PharmavisionNOM DU LOGICIEL Alliance FES PREMIUM FES PREMIUM FES Logiphar FES OPen Useful
Software (OPUS)
Periphar
INTÉGRATION MODULE DÉJÀ
AGRÉÉ
Aucun Aucun Aucun Aucun Aucun Aucun
GESTION TLA (TERMINAL
LECTEUR APPLICATIF )
Non Non Non Non Non Non
GESTION OCT (ORGANISME
CONCENTRATEUR TECHNIQUE )
Oui Oui Oui Oui Oui Oui
COMPATIBILITÉ APPLICATIVE
GALSS (GESTIONNAIRE D’ACCÈS
AU LECTEUR SANTÉ/SOCIAL)
Oui (vide) (vide) (vide) (vide) (vide)
GESTION RÉSEAU DISTANT Non Non Non Non Non Non
CARACTÉRISTIQUES FONCTIONNELLES
13 VERSION 2 - CODES LPP ✔ ✔ ✔ ✔ ✔ ✔
17 - RÉFORME
MATERNITÉ ✔ ✔ ✔ ✔ ✔ ✔
19 - FACTURETTES
PHARMACIENS ✔ ✔ ✔ ✔ ✔ ✔
21 VERSION 2 -
MÉDICAMENTS
HOMÉOPATHIQUES
UNITAIRES
✔ ✔ ✔ ✔ ✔ ✔
27 VERSION 2 - CODE PII ✔ ✔ ✔ ✔ ✔ ✔
30 VERSION 2 -
MÉDICAMENTS À
VIGNETTE ORANGE
✔ ✔ ✔ ✔ ✔ ✔
38BIS VERSION 2 - PH4 ET
ALSACE-MOSELLE ✔ ✔ ✔ ✔ ✔ ✔
46BIS - SUBSTITUTS
NICOTINIQUES ✔ ✔ ✔ ✔ ✔ ✔
49 VERSION 3 -
PRÉPARATIONS
MAGISTRALES
✔ ✔ ✔ ✔ ✔ ✔
55 VERSION 2 - PRESTATION
PDM ✔ ✔ ✔ ✔
56 VERSION 3 - PRESTATION
DVO ✔ ✔ ✔ ✔NOM DU LOGICIEL Alliance FES PREMIUM FES PREMIUM FES Logiphar FES OPen Useful
Software (OPUS)
Periphar
64 - FACTURATION DES
ALLERGÈNES ✔ ✔ ✔ ✔ ✔ ✔
72 - INTÉGRATION
COMPLÉMENT AT SUR
LPP ET PROTHÈSES
DENTAIRES
✔ ✔ ✔ ✔ ✔ ✔
74 - INTÉGRATION DU KIT
ANTI-GRIPPE A ✔ ✔ ✔ ✔ ✔ ✔
76 - INTÉGRATION DES
MÉDICAMENTS À
VIGNETTE ORANGE
✔ ✔ ✔ ✔ ✔ ✔
83 VERSION 3 - BAISSE DU
TAUX DE PEC DES
MÉDICAMENTS À
VIGNETTES BLEUES
3.04A ✔
84 VERSION 2 - BAISSE DU
TAUX DE PEC DES
DISPOSITIFS MÉDICAUX
✔
3.04A ✔
FICHE RÉGLEMENTAIRE N° 87
VERSION 2 -
ACTUALISATION DES
TABLES 8.3 ET 21.14
✔
FICHE RÉGLEMENTAIRE N° 97 -
ACTUALISATION DE LA
TABLE11.2 DE L'ANNEXE
ÉVOLUTIONS INCLUSES
PRISE EN COMPTE FI 04
DU GIE (2008)
VACCINATION CONTRE
LA GRIPPE
FI 63 DU GIE REJETS
FACTURES
BÉNÉFICIAIRES DE L’AME
DE BASE
FI 71 DU GIE
FACTURATION SOUS LA
NATURE D'ASSURANCE
MATERNITÉNOM DU LOGICIEL Alliance FES PREMIUM FES PREMIUM FES Logiphar FES OPen Useful
Software (OPUS)
Periphar
FI 128 DU GIE
INTERDICTION DE
RÉALISATION DE
FACTURES POSTDATÉES
✔
EXPÉRIMENTATION DUOFFSA
2.06 ✔ ✔ ✔
SCOR V 2.+ 2.06 3.04A- > v1.12
3.05 ->2.11
2.05 →v2.12
2.06 →v2.11
140.8Tableau 8: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les LGO du groupe Welcoop et Vindilis
NOM DU LOGICIEL CIP Global Service LGPI Primoris VINDILIS VINDILIS VINDILIS
ÉDITEUR Pharmagest Interactive Pharmagest Interactive Pharmagest Interactive VINDILIS VINDILIS VINDILIS
VERSION 2.0 2.01 7.01 puis 7.03 2.1 puis 2.3 2.1 1.0 puis 2.1 et 2.3
DATE D'AGRÉMENT Inconnu 22/01/2013 07/02/2013 20/08/2013 01/08/2012 13/08/2013
VERSION DU CAHIER DES
CHARGES
Inconnu 1.40.7.1CS 1.40.7.1CS 1.40.8.5 1.40.8.5 1.40.8.5
CARACTÉRISTIQUES TECHNIQUES
SYSTÈME (PLATE-FORME DE
TEST)
Linux Linux Linux Linux Mac OS-X Windows XP
UTILISATION DU MODULE
SIS (GIE)
Non Non Non Non Non 2.1 : Oui
2.3 : Non
VERSION API SSV LIBSSVLUX V5.20 LIBSSVLUX V5.20
puis 5.21 pour 2.06
LIBSSVLUX V5.20 LIBSSVLUX V5.34 SSVOSX V5.34 SSVW32 V4.31 puis
SSVW32 V5.34
VERSION DES TABLES
EXTERNES SSV
V 5.20 V 5.20 puis 5.21 pour
2.06
V 5.20 V 5.34 V 5.34 V 4.05 puis V 5.34
VERSION LECTEUR EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00
KIT DE CONNEXION - RSS puis INTERNET INTERNET INTERNET INTERNET INTERNET
GESTION MULTI-PS Non Non Non Non Non Non
CONFIGURATION TESTÉE Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Multi-PS Monoposte / Multi-PS Monoposte / Multi-PS
INTÉGRATION MODULE DÉJÀ
AGRÉÉ
Aucun Aucun Aucun Aucun Aucun Aucun
GESTION TLA (TERMINAL
LECTEUR APPLICATIF )
Non Non Non Non Non Non
GESTION OCT (ORGANISME
CONCENTRATEUR TECHNIQUE )
Oui Oui Oui Oui Oui Oui mais
2.3 : non
COMPATIBILITÉ APPLICATIVE
GALSS (GESTIONNAIRE D’ACCÈS
AU LECTEUR SANTÉ/SOCIAL)
(vide) (vide) (vide) Oui Oui (vide)
puis 2.1:oui
GESTION RÉSEAU DISTANT Non Non Non Non Non NonNOM DU LOGICIEL CIP Global Service LGPI Primoris VINDILIS VINDILIS VINDILIS
CARACTÉRISTIQUES FONCTIONNELLES
13 VERSION 2 - CODES LPP ✔ ✔ ✔ ✔ ✔ ✔
17 - RÉFORME
MATERNITÉ ✔ ✔ ✔ ✔ ✔ ✔
19 - FACTURETTES
PHARMACIENS ✔ ✔ ✔ ✔ ✔ ✔
21 VERSION 2 -
MÉDICAMENTS
HOMÉOPATHIQUES
UNITAIRES
✔ ✔ ✔ ✔ ✔ ✔
27 VERSION 2 - CODE PII ✔ ✔ ✔ ✔ ✔ ✔
30 VERSION 2 -
MÉDICAMENTS À
VIGNETTE ORANGE
✔ ✔ ✔ ✔ ✔ ✔
38BIS VERSION 2 - PH4 ET
ALSACE-MOSELLE ✔ ✔ ✔ ✔ ✔ ✔
46BIS - SUBSTITUTS
NICOTINIQUES ✔ ✔ ✔ ✔ ✔ ✔
49 VERSION 3 -
PRÉPARATIONS
MAGISTRALES
✔ ✔ ✔ ✔ ✔ ✔
55 VERSION 2 - PRESTATION
PDM ✔
2.05 ✔ ✔ ✔ ✔
56 VERSION 3 - PRESTATION
DVO ✔ ✔ ✔ ✔ ✔ ✔
64 - FACTURATION DES
ALLERGÈNES ✔ ✔ ✔ ✔ ✔ ✔
72 - INTÉGRATION
COMPLÉMENT AT SUR
LPP ET PROTHÈSES
DENTAIRES
✔ ✔ ✔ ✔ ✔ ✔
74 - INTÉGRATION DU KIT
ANTI-GRIPPE A ✔ ✔ ✔ ✔
2.1
76 - INTÉGRATION DES
MÉDICAMENTS À
VIGNETTE ORANGE
✔ ✔ ✔ ✔ ✔
2.1NOM DU LOGICIEL CIP Global Service LGPI Primoris VINDILIS VINDILIS VINDILIS
83 VERSION 3 - BAISSE DU
TAUX DE PEC DES
MÉDICAMENTS À
VIGNETTES BLEUES
✔ ✔ ✔
2.1
84 VERSION 2 - BAISSE DU
TAUX DE PEC DES
DISPOSITIFS MÉDICAUX
✔ ✔
2.1
FICHE RÉGLEMENTAIRE N° 87
VERSION 2 -
ACTUALISATION DES
TABLES 8.3 ET 21.14
✔ ✔
2.1
FICHE RÉGLEMENTAIRE N° 97 -
ACTUALISATION DE LA
TABLE11.2 DE L'ANNEXE
ÉVOLUTIONS INCLUSES
PRISE EN COMPTE FI 04
DU GIE (2008)
VACCINATION CONTRE
LA GRIPPE
FI 63 DU GIE REJETS
FACTURES
BÉNÉFICIAIRES DE L’AME
DE BASE
2.3
FI 71 DU GIE
FACTURATION SOUS LA
NATURE D'ASSURANCE
MATERNITÉ
2.3
FI 128 DU GIE
INTERDICTION DE
RÉALISATION DE
FACTURES POSTDATÉES
2.3
EXPÉRIMENTATION DUOFFSA
2.01
SCOR V 2.+ ✔ ✔
2.3 2.3Tableau 9: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les autres LGO de C à P
NOM DU LOGICIEL Caduciel 6 Crystal Esculape Léo Magic Vente Pharmaland
ÉDITEUR Caduciel Informatique Infosoft CIAM Isipharm/ Astera (CERP
Rouen)
IP3 (Informatique pour
et par les Pharmaciens)
La Source Informatique
VERSION 6.04 2.40 6.2 2.3 01.60 8.70
DATE D'AGRÉMENT 16/12/2013 Inconnu 22/10/2013 23/05/2013 19/04/2011 Inconnu
VERSION DU CAHIER DES
CHARGES
1.40.7.1CS Inconnu 1.40.9.1 1.40.7.1CS 1.40.7.1CS Inconnu
CARACTÉRISTIQUES TECHNIQUES
SYSTÈME (PLATE-FORME DE
TEST)
Windows XP Windows Seven Windows Seven Windows XP Windows XP Windows Seven
UTILISATION DU MODULE
SIS (GIE)
Non Non Oui Oui Non Oui
VERSION API SSV SSVW32 V4.04 SSVW32 V5.40 SSVW32 V5.40 SSVW32 V5.20 SSVW32 V5.20 SSVW32 V5.40
VERSION DES TABLES
EXTERNES SSV
V 4.00 V 5.40 V 5.40 V 5.20 V 5.20 V 5.40
VERSION LECTEUR EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00
KIT DE CONNEXION RSS INTERNET WANADOO-SANTE
INTERNET
INTERNET INTERNET INTERNET
GESTION MULTI-PS Non Non Non Non Non Non
CONFIGURATION TESTÉE Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS Monoposte / Mono-PS
INTÉGRATION MODULE DÉJÀ
AGRÉÉ
Aucun Aucun Aucun Aucun Aucun Aucun
GESTION TLA (TERMINAL
LECTEUR APPLICATIF )
Non Non Non Non Non Non
GESTION OCT
(ORGANISME
CONCENTRATEUR
TECHNIQUE )
Oui Oui Oui Oui Oui OuiNOM DU LOGICIEL Caduciel 6 Crystal Esculape Léo Magic Vente Pharmaland COMPATIBILITÉ APPLICATIVE
GALSS (GESTIONNAIRE D’ACCÈS AU LECTEUR SANTÉ/SOCIAL)
(vide) Oui (vide) (vide) (vide) (vide)
GESTION RÉSEAU DISTANT Non Non Non Non Non Non CARACTÉRISTIQUES FONCTIONNELLES
13 VERSION 2 - CODES
LPP
✔
✔
✔
✔
✔
✔
17 - RÉFORME
MATERNITÉ
✔
✔
✔
✔
✔
✔
19 - FACTURETTES
PHARMACIENS
✔
✔
✔
✔
✔
21 VERSION 2 -
MÉDICAMENTS
HOMÉOPATHIQUES
UNITAIRES
✔
✔
✔
✔
✔
✔
27 VERSION 2 - CODE
PII
✔
✔
✔
✔
✔
✔
30 VERSION 2 -
MÉDICAMENTS À
VIGNETTE ORANGE
✔
✔
✔
✔
✔
✔
38BIS VERSION 2 - PH4
ET ALSACEMOSELLE
✔
✔
✔
✔
46BIS - SUBSTITUTS
NICOTINIQUES
✔
✔
✔
✔
49 VERSION 3 -
PRÉPARATIONS
MAGISTRALES
✔
✔
✔
✔
55 VERSION 2 -
PRESTATION PDM
✔
✔
✔
✔
56 VERSION 3 -
PRESTATION DVO
✔
✔
✔
✔NOM DU LOGICIEL Caduciel 6 Crystal Esculape Léo Magic Vente Pharmaland
64 - FACTURATION
DES ALLERGÈNES
✔
✔
72 - INTÉGRATION
COMPLÉMENT AT
SUR LPP ET
PROTHÈSES
DENTAIRES
✔
✔
✔
✔
✔
74 - INTÉGRATION
DU KIT ANTI-GRIPPE
A
✔
✔
✔
✔
✔
✔
76 - INTÉGRATION
DES MÉDICAMENTS
À VIGNETTE
ORANGE
✔
✔
✔
✔
✔
✔
83 VERSION 3 - BAISSE
DU TAUX DE PEC
DES MÉDICAMENTS
À VIGNETTES
BLEUES
✔
✔
✔
✔
84 VERSION 2 - BAISSE
DU TAUX DE PEC
DES DISPOSITIFS
MÉDICAUX
✔
✔
✔
FICHE RÉGLEMENTAIRE
N
°
87 VERSION 2 -
ACTUALISATION
DES TABLES 8.3 ET
21.14
✔
✔
FICHE RÉGLEMENTAIRE
N
°
97 - ACTUALISATION
DE LA TABLE11.2 DE
L'ANNEXE
✔
ÉVOLUTIONS INCLUSESNOM DU LOGICIEL Caduciel 6 Crystal Esculape Léo Magic Vente Pharmaland
PRISE EN COMPTE FI
04 DU GIE (2008)
VACCINATION
CONTRE LA GRIPPE
✔
FI 63 DU GIE REJETS
FACTURES
BÉNÉFICIAIRES DE
L’AME DE BASE
✔
✔
FI 71 DU GIE
FACTURATION SOUS
LA NATURE
D'ASSURANCE
MATERNITÉ
✔
✔
FI 128 DU GIE
INTERDICTION DE
RÉALISATION DE
FACTURES
POSTDATÉES
✔
✔
EXPÉRIMENTATION
DUO-FFSA
✔
SCOR V 2.+
✔
✔Tableau 10: Liste des fonctionnalités de SESAM-Vitale 1.40 pour les LGO de P à X
NOM DU LOGICIEL Pharmavitale Visiosoft WinPharma Logiciel X
ÉDITEUR C.E.P.I Soft Office Visiopharm Everys Société X
VERSION 1.404 puis 1.409 et
1.491
3.0 puis 3.30 et 3.40 8.2 1.05
DATE D'AGRÉMENT 31/01/2014 15/11/2013 07/10/2013 09/07/2013
VERSION DU CAHIER DES
CHARGES
1.40.9.1 1.40.9.1 1.40.8.5CS 1.40.9.1
CARACTÉRISTIQUES TECHNIQUES
SYSTÈME (PLATE-FORME DE
TEST)
Windows XP (puis
Seven)
Windows XP puis
Seven et XP
Windows XP Windows XP
UTILISATION DU MODULE
SIS (GIE)
Oui Non Oui Oui
VERSION API SSV SSVW32 V3.16 (puis
SSVW32 V5.40)
SSVW32 V4.30 puis
SSVW32 V5.40
SSVW32 V5.34 SSVW32 V4.31 puis
V5.40
VERSION DES TABLES
EXTERNES SSV
V 3.15 puis V 5.40 V 4.05 puis V 5.40 V 5.32 V 4.05 puis V5.40
VERSION LECTEUR EI96 V3.00 EI96 V3.00 EI96 V3.00 EI96 V3.00
KIT DE CONNEXION RSS puis INTERNET RSS puis INTERNET WANADOO-SANTE RSS
GESTION MULTI-PS Non Non puis 3.40 Sans Objet Non
CONFIGURATION TESTÉE Monoposte / Mono-PS Monoposte / Mono-PS
puis 3.40 :
Monoposte/Multi-PS
Monoposte / Mono-PS Monoposte / Mono-PS
INTÉGRATION MODULE DÉJÀ
AGRÉÉ
Aucun Aucun Aucun Aucun
GESTION TLA (TERMINAL
LECTEUR APPLICATIF )
Non Non puis 3.40 : sans
objet
Sans Objet Non
GESTION OCT
(ORGANISME
CONCENTRATEUR
TECHNIQUE )
Oui Oui Oui OuiNOM DU LOGICIEL Pharmavitale Visiosoft WinPharma Logiciel X
COMPATIBILITÉ APPLICATIVE
GALSS (GESTIONNAIRE
D’ACCÈS AU LECTEUR
SANTÉ/SOCIAL)
1.409 (vide) (vide) (vide)
GESTION RÉSEAU DISTANT Non Non Non Non
CARACTÉRISTIQUES FONCTIONNELLES
13 VERSION 2 - CODES
LPP ✔ ✔ ✔ ✔
17 - RÉFORME
MATERNITÉ ✔ ✔ ✔ ✔
19 - FACTURETTES
PHARMACIENS ✔ ✔ ✔ ✔
21 VERSION 2 -
MÉDICAMENTS
HOMÉOPATHIQUES
UNITAIRES
✔ ✔ ✔ ✔
27 VERSION 2 - CODE
PII ✔ ✔ ✔ ✔
30 VERSION 2 -
MÉDICAMENTS À
VIGNETTE ORANGE
✔ ✔ ✔ ✔
38BIS VERSION 2 - PH4
ET ALSACEMOSELLE
✔ ✔ ✔ ✔
46BIS - SUBSTITUTS
NICOTINIQUES ✔ ✔ ✔ ✔
49 VERSION 3 -
PRÉPARATIONS
MAGISTRALES
✔ ✔ ✔ ✔
55 VERSION 2 -
PRESTATION PDM ✔ ✔ ✔
56 VERSION 3 -
PRESTATION DVO
1.409 3.30 ✔ ✔NOM DU LOGICIEL Pharmavitale Visiosoft WinPharma Logiciel X
64 - FACTURATION
DES ALLERGÈNES ✔
3.30 ✔ ✔
72 - INTÉGRATION
COMPLÉMENT AT
SUR LPP ET
PROTHÈSES
DENTAIRES
1.409 3.30 ✔ ✔
74 - INTÉGRATION
DU KIT ANTI-GRIPPE
A
1.409 3.30 ✔ ✔
76 - INTÉGRATION
DES MÉDICAMENTS
À VIGNETTE
ORANGE
1.409 3.30 ✔ ✔
83 VERSION 3 - BAISSE
DU TAUX DE PEC
DES MÉDICAMENTS
À VIGNETTES
BLEUES
1.409 3.30 ✔ ✔
84 VERSION 2 - BAISSE
DU TAUX DE PEC
DES DISPOSITIFS
MÉDICAUX
1.409 3.30 ✔ ✔
FICHE RÉGLEMENTAIRE N°
87 VERSION 2 -
ACTUALISATION
DES TABLES 8.3 ET
21.14
1.409 3.30 ✔
FICHE RÉGLEMENTAIRE N°
97 - ACTUALISATION
DE LA TABLE11.2 DE
L'ANNEXE
1.409 3.30
ÉVOLUTIONS INCLUSESNOM DU LOGICIEL Pharmavitale Visiosoft WinPharma Logiciel X
PRISE EN COMPTE FI
04 DU GIE (2008)
VACCINATION
CONTRE LA GRIPPE
✔
FI 63 DU GIE REJETS
FACTURES
BÉNÉFICIAIRES DE
L’AME DE BASE
1.409 3.30 1.09
FI 71 DU GIE
FACTURATION SOUS
LA NATURE
D'ASSURANCE
MATERNITÉ
1.409 3.30 1.09
FI 128 DU GIE
INTERDICTION DE
RÉALISATION DE
FACTURES
POSTDATÉES
1.409 3.30 1.09
EXPÉRIMENTATION
DUO-FFSA
SCOR V 2.+ ✔
3.40 ✔
1.10X.C \ Annexe 3 : Part de marché des
différents LGO durant les 12 derniers
mois
Éditeur Logiciel Nombre Pourcentage
Pharmagest interactive Evolution ; LGPI ; Pharmagest ; Primoris 8 943 39,62%
Alliance software Alliance FES ; Alliance Plus ; Logiphar
FES
6 107 27,06%
Everys Winpharma 3 410 15,11%
CERP Rouen/ Isipharm Léo, Winpresto 1 055 4,67%
ASP line Periphar ; Periphar 2 1 038 4,60%
Caduciel informatique Caduciel 6 571 2,53%
PG informatique OPUS
Pharmacie gestion informatique 2
457 2,02%
Alliadis Pharmatic Premium
Premium-FES
274 1,21%
Autres 0 717 3,18%
Groupe CEGEDIM 7 876 34,89%
Total du GIE SESAM-Vitale 22 572 100,00%
Tableau 11: Part de marché des éditeurs durant les 12 derniers mois - Août 2014
D'après http://www.sesam-vitale.fr/divers/chiffres/histo-pdm.asp données de Août 2014 -
mise à jour le 10/09/2014[101]
Page 85/112X.D \ Annexe 4 : Licence Creative
Common – Attribution – Partage dans
les mêmes conditions (CC -By SA
4.0)
D'après le site officiel, consulté en septembre 2014 :
https://creativecommons.org/licenses/by-sa/4.0/legalcode
Creative Commons Corporation (“Creative Commons”) is not a law firm and does not provide legal
services or legal advice. Distribution of Creative Commons public licenses does not create a lawyer-client
or other relationship. Creative Commons makes its licenses and related information available on an “as-is”
basis. Creative Commons gives no warranties regarding its licenses, any material licensed under their terms
and conditions, or any related information. Creative Commons disclaims all liability for damages resulting
from their use to the fullest extent possible.
Using Creative Commons Public Licenses
Creative Commons public licenses provide a standard set of terms and conditions that creators and other
rights holders may use to share original works of authorship and other material subject to copyright and
certain other rights specified in the public license below. The following considerations are for informational
purposes only, are not exhaustive, and do not form part of our licenses.
Considerations for licensors: Our public licenses are intended for use by those authorized to give the
public permission to use material in ways otherwise restricted by copyright and certain other rights. Our
licenses are irrevocable. Licensors should read and understand the terms and conditions of the license they
choose before applying it. Licensors should also secure all rights necessary before applying our licenses so
that the public can reuse the material as expected. Licensors should clearly mark any material not subject to
the license. This includes other CC-licensed material, or material used under an exception or limitation to
copyright. More considerations for licensors.
Considerations for the public: By using one of our public licenses, a licensor grants the public permission
to use the licensed material under specified terms and conditions. If the licensor’s permission is not
necessary for any reason–for example, because of any applicable exception or limitation to copyright–then
that use is not regulated by the license. Our licenses grant only permissions under copyright and certain
other rights that a licensor has authority to grant. Use of the licensed material may still be restricted for
other reasons, including because others have copyright or other rights in the material. A licensor may make
special requests, such as asking that all changes be marked or described. Although not required by our
licenses, you are encouraged to respect those requests where reasonable. More considerations for the
public.
Creative Commons Attribution-ShareAlike 4.0 International Public License
By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and
conditions of this Creative Commons Attribution-ShareAlike 4.0 International Public License ("Public
License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed
Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such
rights in consideration of benefits the Licensor receives from making the Licensed Material available under
these terms and conditions.
Page 86/112
Illustration 5: Logo Creative Common By SA
auteur : Organisation Creative Common ; CC0Section 1 – Definitions.
a. Adapted Material means material subject to Copyright and Similar Rights that is derived from
or based upon the Licensed Material and in which the Licensed Material is translated, altered,
arranged, transformed, or otherwise modified in a manner requiring permission under the
Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the
Licensed Material is a musical work, performance, or sound recording, Adapted Material is always
produced where the Licensed Material is synched in timed relation with a moving image.
b. Adapter's License means the license You apply to Your Copyright and Similar Rights in Your
contributions to Adapted Material in accordance with the terms and conditions of this Public
License.
c. BY-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses,
approved by Creative Commons as essentially the equivalent of this Public License.
d. Copyright and Similar Rights means copyright and/or similar rights closely related to
copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis
Database Rights, without regard to how the rights are labeled or categorized. For purposes of this
Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
e. Effective Technological Measures means those measures that, in the absence of proper
authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO
Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
f. Exceptions and Limitations means fair use, fair dealing, and/or any other exception or
limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
g. License Elements means the license attributes listed in the name of a Creative Commons Public
License. The License Elements of this Public License are Attribution and ShareAlike.
h. Licensed Material means the artistic or literary work, database, or other material to which the
Licensor applied this Public License.
i. Licensed Rights means the rights granted to You subject to the terms and conditions of this
Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the
Licensed Material and that the Licensor has authority to license.
j. Licensor means the individual(s) or entity(ies) granting rights under this Public License.
k. Share means to provide material to the public by any means or process that requires permission
under the Licensed Rights, such as reproduction, public display, public performance, distribution,
dissemination, communication, or importation, and to make material available to the public
including in ways that members of the public may access the material from a place and at a time
individually chosen by them.
l. Sui Generis Database Rights means rights other than copyright resulting from Directive
96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection
of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere
in the world.
m. You means the individual or entity exercising the Licensed Rights under this Public License.
Your has a corresponding meaning.
Section 2 – Scope.
a. License grant.
1. Subject to the terms and conditions of this Public License, the Licensor hereby grants
You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to
exercise the Licensed Rights in the Licensed Material to:
A. reproduce and Share the Licensed Material, in whole or in part; and
B. produce, reproduce, and Share Adapted Material.
2. Exceptions and Limitations. For the avoidance of doubt, where Exceptions and
Limitations apply to Your use, this Public License does not apply, and You do not need to
comply with its terms and conditions.
3. Term. The term of this Public License is specified in Section 6(a).
Page 87/1124. Media and formats; technical modifications allowed. The Licensor authorizes You to
exercise the Licensed Rights in all media and formats whether now known or hereafter
created, and to make technical modifications necessary to do so. The Licensor waives
and/or agrees not to assert any right or authority to forbid You from making technical
modifications necessary to exercise the Licensed Rights, including technical modifications
necessary to circumvent Effective Technological Measures. For purposes of this Public
License, simply making modifications authorized by this Section 2(a)(4) never produces
Adapted Material.
5. Downstream recipients.
A. Offer from the Licensor – Licensed Material. Every recipient of the Licensed
Material automatically receives an offer from the Licensor to exercise the
Licensed Rights under the terms and conditions of this Public License.
B. Additional offer from the Licensor – Adapted Material. Every recipient of
Adapted Material from You automatically receives an offer from the Licensor to
exercise the Licensed Rights in the Adapted Material under the conditions of the
Adapter’s License You apply.
C. No downstream restrictions. You may not offer or impose any additional or
different terms or conditions on, or apply any Effective Technological Measures
to, the Licensed Material if doing so restricts exercise of the Licensed Rights by
any recipient of the Licensed Material.
6. No endorsement. Nothing in this Public License constitutes or may be construed as
permission to assert or imply that You are, or that Your use of the Licensed Material is,
connected with, or sponsored, endorsed, or granted official status by, the Licensor or
others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
b. Other rights.
1. Moral rights, such as the right of integrity, are not licensed under this Public License, nor
are publicity, privacy, and/or other similar personality rights; however, to the extent
possible, the Licensor waives and/or agrees not to assert any such rights held by the
Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but
not otherwise.
2. Patent and trademark rights are not licensed under this Public License.
3. To the extent possible, the Licensor waives any right to collect royalties from You for the
exercise of the Licensed Rights, whether directly or through a collecting society under any
voluntary or waivable statutory or compulsory licensing scheme. In all other cases the
Licensor expressly reserves any right to collect such royalties.
Section 3 – License Conditions.
Your exercise of the Licensed Rights is expressly made subject to the following conditions.
a. Attribution.
1. If You Share the Licensed Material (including in modified form), You must:
A. retain the following if it is supplied by the Licensor with the Licensed Material:
i. identification of the creator(s) of the Licensed Material and any others
designated to receive attribution, in any reasonable manner requested by
the Licensor (including by pseudonym if designated);
ii. a copyright notice;
iii. a notice that refers to this Public License;
iv. a notice that refers to the disclaimer of warranties;
v. a URI or hyperlink to the Licensed Material to the extent reasonably
practicable;
B. indicate if You modified the Licensed Material and retain an indication of any
previous modifications; and
C. indicate the Licensed Material is licensed under this Public License, and include
the text of, or the URI or hyperlink to, this Public License.
Page 88/1122. You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the
medium, means, and context in which You Share the Licensed Material. For example, it
may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource
that includes the required information.
3. If requested by the Licensor, You must remove any of the information required by
Section 3(a)(1)(A) to the extent reasonably practicable.
b. ShareAlike.
In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the
following conditions also apply.
1. The Adapter’s License You apply must be a Creative Commons license with the same
License Elements, this version or later, or a BY-SA Compatible License.
2. You must include the text of, or the URI or hyperlink to, the Adapter's License You
apply. You may satisfy this condition in any reasonable manner based on the medium,
means, and context in which You Share Adapted Material.
3. You may not offer or impose any additional or different terms or conditions on, or apply
any Effective Technological Measures to, Adapted Material that restrict exercise of the
rights granted under the Adapter's License You apply.
Section 4 – Sui Generis Database Rights.
Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed
Material:
a. for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and
Share all or a substantial portion of the contents of the database;
b. if You include all or a substantial portion of the database contents in a database in which You
have Sui Generis Database Rights, then the database in which You have Sui Generis Database
Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b);
and
c. You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of
the contents of the database.
For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this
Public License where the Licensed Rights include other Copyright and Similar Rights.
Section 5 – Disclaimer of Warranties and Limitation of Liability.
a. Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor
offers the Licensed Material as-is and as-available, and makes no representations or
warranties of any kind concerning the Licensed Material, whether express, implied,
statutory, or other. This includes, without limitation, warranties of title, merchantability,
fitness for a particular purpose, non-infringement, absence of latent or other defects,
accuracy, or the presence or absence of errors, whether or not known or discoverable. Where
disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to
You.
b. To the extent possible, in no event will the Licensor be liable to You on any legal theory
(including, without limitation, negligence) or otherwise for any direct, special, indirect,
incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages
arising out of this Public License or use of the Licensed Material, even if the Licensor has
been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation
of liability is not allowed in full or in part, this limitation may not apply to You.
c. The disclaimer of warranties and limitation of liability provided above shall be interpreted in a
manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of
all liability.
Section 6 – Term and Termination.
Page 89/112a. This Public License applies for the term of the Copyright and Similar Rights licensed here.
However, if You fail to comply with this Public License, then Your rights under this Public License
terminate automatically.
b. Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
1. automatically as of the date the violation is cured, provided it is cured within 30 days of
Your discovery of the violation; or
2. upon express reinstatement by the Licensor.
For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to
seek remedies for Your violations of this Public License.
c. For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate
terms or conditions or stop distributing the Licensed Material at any time; however, doing so will
not terminate this Public License.
d. Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
Section 7 – Other Terms and Conditions.
a. The Licensor shall not be bound by any additional or different terms or conditions communicated
by You unless expressly agreed.
b. Any arrangements, understandings, or agreements regarding the Licensed Material not stated
herein are separate from and independent of the terms and conditions of this Public License.
Section 8 – Interpretation.
a. For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce,
limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be
made without permission under this Public License.
b. To the extent possible, if any provision of this Public License is deemed unenforceable, it shall
be automatically reformed to the minimum extent necessary to make it enforceable. If the
provision cannot be reformed, it shall be severed from this Public License without affecting the
enforceability of the remaining terms and conditions.
c. No term or condition of this Public License will be waived and no failure to comply consented to
unless expressly agreed to by the Licensor.
d. Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver
of, any privileges and immunities that apply to the Licensor or You, including from the legal
processes of any jurisdiction or authority.
Creative Commons is not a party to its public licenses. Notwithstanding, Creative Commons may elect to
apply one of its public licenses to material it publishes and in those instances will be considered the
“Licensor.” Except for the limited purpose of indicating that material is shared under a Creative Commons
public license or as otherwise permitted by the Creative Commons policies published at
creativecommons.org/policies, Creative Commons does not authorize the use of the trademark “Creative
Commons” or any other trademark or logo of Creative Commons without its prior written consent
including, without limitation, in connection with any unauthorized modifications to any of its public
licenses or any other arrangements, understandings, or agreements concerning use of licensed material. For
the avoidance of doubt, this paragraph does not form part of the public licenses.
Creative Commons may be contacted at creativecommons.org.
Page 90/112X.E \ Fiche de pharmacovigilanceTéléchargée en septembre 2014 sur le site web de l'ANSM :
http://ansm.sante.fr/Declarer-un-effet-indesirable/Votre-declaration-concerne-unmedicament/Votre-declaration-concerne-un-medicament/Votre-declaration-concerne-unmedicament-Vous-etes-un-professionnel-de-sante#effet
Page 92/112XI) Acronymes
Nous nous sommes souvent appuyés sur les sites web des structures concernées pour connaître la
signification des acronymes. Pour la signification des termes, le site web Wikipédia fut utilisé.
ACL : Association de Codification Logistique
ADELI : Automatisation DEs LIstes (répertoire de tous les professionnels de santé)
ADSL : Asymmetric Digital Subscriber pour liaison numérique asymétrique
AMM : Autorisation de Mise sur le Marché
ANSM : Agence Nationale de Sécurité du Médicament et des produits de Santé
API : Application Programming Interface pour interface programmatique
ARL : Accusés de Réception Logiques
ARS : Agence Régional de Santé
ASCII : American Standard Code for Information Interchange (ISO-646-02 ou
ISO-646-06)
ASIP : Agence des Systèmes d'Informations Partagés
AURA : Association des Utilisateurs de Robots et Automates, nom synonyme du
protocole CDAPI
BSD : Berkeley Software Distribution pour Distribution logicielle de Berkeley
CD API : Consis Dispenser Application Programming Interface pour interface
programmatique de dispensation concise.
CEPS : Comité Économique des Produits de Santé
CERP Coopérative d'Exploitation et de Répartition Pharmaceutiques
CIP : Code du Club Inter-Pharmaceutique
CNAMTS : Caisse Nationale de l'Assurance Maladie des Travailleurs Salariés
CNDA : Centre National de Dépôt et d'Agrément
CNHIM : Centre National Hospitalier d'Information sur le Médicament
Page 93/112 CNOP : Conseil National de l'Ordre des Pharmaciens (en France)
CNIL : Commission Nationale de l'Informatique et des Libertés
CPAM : Caisse Primaire d'Assurance Maladie
CPS : Carte de Professionnel de Santé
CRAT : Centre de Référence sur les Agents Tératogènes
CSP : Code de la Santé Publique
CSRP : Chambre Syndicale de la Répartition Pharmaceutique
CSS : Code de Sécurité-Sociale
CUPS : Common UNIX Printing System pour système commun d'impression
UNIX
CV : Carte Vitale
DKMI : DomainKeys Mail Identified pour Identification des noms de domaines
pour courriel
DMP : Dossier Médical Personnel ou Dossier Médical Partagé
DP : Dossier Pharmaceutique
DRE: Demande de Remboursement Électronique
DREES : Direction de la recherche, des études, de l’évaluation et des statistiques
DVD : Digital Versatile Disc pour disque numérique polyvalent
EAN : European Article Numbering pour numération européenne d'article
EMA : European Medicines Agency pour agence européenne des médicaments
appelé précédemment EMEA (European Agency for the Evaluation of
Medicinal Products)
EHPAD : Établissement Hébergement pour Personnes Âgées Dépendantes
ERP : Enterprise Resource Planning ou Progiciel de Gestion Intégré (PGI)
ECC : Error Correction Codewords pour correction d'erreurs d'éléments
FLOSS : Free/Libre and Open-Source Softwares
FSE : Feuille de Soin Électronique
FSPF : Fédération Syndicale des Pharmaciens de France
Page 94/112 FSF : Free Software Foundation pour fondation pour le logiciel libre
GERS : Groupement d’Études et de Recherche sur la Santé
GIE : Groupement d’Intérêts Économique
GIP : Groupement d’Intérêts Public
GPL : GNU Public Licence pour Licence Publique GNU
HAS : Haute Autorité de Santé
HTML : HyperText Markup Language soit langage de balisage hypertexte
HTTP : HyperText Transfer Protocol pour protocole de transfert hypertexte
HPST : loi Hôpital Patient Santé Territoire
IAS-ECC : Identification-Authentification-Signature European-Citizen-Card pour
Identification- Authentification-Signature Carte-Européenne-Citoyenne
IETF : Internet Engineering Task Force pour détachement d'ingénierie d'Internet
IGAS : Inspection Générale des Affaires Sociales
IMAP : Internet Message Access Protocol pour protocole internet d'accès à la
messagerie
ISO : International Organization for Standardization pour organisation
internationale de normalisation
LED Light-Emitting Diode pour diode électroluminescente
LOI Liste d'Opposition Incrémentale
LGO : Logiciel de Gestion d'Officine
MIT : Massachusetts Institute of Technology pour Institut de technologie du
Massachusetts
MSA : Mutualité Sociale Agricole
MSS : Messagerie Sécurisée de Santé
NAS : Network Attached Storage pour serveur de stockage en réseau
NOÉMIE : Norme Ouverte d'Échanges entre l'Assurance Maladie et les Intervenants
Extérieurs
ODF : Open Document Format pour format ouvert de document
OS : Operating System pour Système d'Exploitation (SE)
Page 95/112 OSI : Open Source Initiative pour Initiative Open Source
OSI : Open Systems Interconnection Système ouvert d'interconnexion
PDA : Préparation des Doses à Administrer
PC/SC : Personnal Computer/Smart Card : Ordinateur personnel/Carte à puce
PDF : Portable Document Format pour format de document portable
PS : Professionnel de Santé
PIN : Personal Identification Number ou code confidentiel
PUI : Pharmacie à Usage Intérieur
RAID : Redundant Array of Independent (or inexpensive) Disk soit regroupement
redondant de disques indépendants
RCP : Résumé des Caractéristiques des Produits
RJ 45 : Registered Jack 45 ou prise jack enregistrée n° 45
RPPS : Répertoire Partagé des Professionnels de Santé
RSI : Régime Social des Indépendants
RSP : Rejet/Signalement/Paiement
RSS : Réseau Santé Sociale
S/MIME : Secure / Multipurpose Internet Mail Extensions pour Sécurité/ Extensions
multifonctions du courrier Internet
SCOR : SCannérisation des ORdonnances
SE : Système d'Exploitation (voir OS)
SEH Système d’Échanges Harmonisés des organismes d’assurance maladie
obligatoire
SESAM : Système électronique de Saisie de l'Assurance Maladie
SIM : Subscriber Identity Module pour module d'identité d'abonné
SIPS : Système d'Information sur les Produits de Santé
SMTP : Simple Mail Transfer Protocol pour protocole simple de transfert de
courriel
SOAP : Simple Object Access Protocol
SQL : Structured Query Language pour langage de requête structurée
Page 96/112 SSII ou SS2I : Sociétés de Services en Ingénierie Informatique
SVG : Scalable Vector Graphics pour graphique vectoriel adaptable (à la taille de
l'écran)
SSL : Secure Sockets Layer pour couche encapsulé sécurisée
TLS : Transport Layer Security pour sécurité de la couche de transport, sucesseur
du SSL
TPE : Terminal de Paiement Électronique
USB : Universal Serial Bus pour bus universel en série
UCD : Unité Commune de Dispensation
VPN : Vitual Private Network pour réseau privé virtualisé
XML : eXtensible Markup Language ou langage balisé extensible
Page 97/112XII) Bibliographie
[1] BOUTOT M. Une approche de l'informatique appliquée à l'officine
pharmaceutique -Thèse d'exercice Pharmacie Limoge- 1977.
http://www.sudoc.fr/092200826 Format papier
[2] DÉCRET N°98-275 DU 9 AVRIL 1998 RELATIF À LA CARTE D'ASSURANCE MALADIE ET MODIFIANT LE
CODE DE LA SÉCURITÉ SOCIALE (DEUXIÈME PARTIE : DÉCRETS EN CONSEIL D'ÉTAT). Journal Officiel de la
République Française (Avril-1998) 88- p. 5799 ; NOR: MESS9821137D
[3] DÉCRET N°98-271 DU 9 AVRIL 1998 RELATIF À LA CARTE DE PROFESSIONNEL DE SANTÉ ET MODIFIANT
LE CODE DE LA SÉCURITÉ SOCIALE ET LE CODE DE LA SANTÉ PUBLIQUE (DEUXIÈME PARTIE : DÉCRETS EN
CONSEIL D'ÉTAT). Journal Officiel de la République Française (Avril-1998) 84- p. 5714 ; NOR:
MESS9820674D
[4] ARTICLE L162-16-1. Code de la sécurité sociale (Décembre-2011) - ;
[5] BRIOUDE J. La difficile informatisation du système de santé français -Thèse
d’exercice Pharmacie Bordeaux 2- 1999. (p38) (p34-35, p55-56, p70, p 73)
http://www.sudoc.fr/048353272
[6] GRATIEUX L & OLLIVIER R. Audit de l'organisation et du pilotage des
organismes œuvrant à l'informatisation du système de santé. Inspection générale des
affaires sociales (2007) (p32-33) (p118)
http://www.ladocumentationfrancaise.fr/rapports-publics/074000669/index.shtml
[7] GIE SESAM-Vitale. Historique des versions du cahier des charges sesam - vitale.
GIE SESAM-Vitale (2012) (p20) https://www.sesamvitale.fr/offre/industriel/sesam-vitale/docs/historique-versions-cdc-sv.pdf
[8] FIGLAREK C. L'utilisation de la cryptographie dans les échanges de données
médico-sociales -Mémoire de l'École Nationale de la Santé Publique- 2000. (p41)
http://figlarek.online.fr/Cryptographie.pdf
[9] Cour des Comptes. Rapport public annuel 2013 : les téléservices publics de santé :
un pilotage toujours insuffisant. Cour des Comptes (2013) (p 405) (p384) (p385) (p393) (p
365) (p366) http://www.ccomptes.fr/Publications/Publications/Rapport-publicannuel-2013
[10] GIP ASIP Santé. Guide de présentation générale de la carte cps3. . 2011 (p 6) (p13)
(p29) http://integrateurs-cps.asipsante.fr/pages/La-carte-CPS3
[11] ORLIAC P. La pharmacie d'officine à l'ère de la dématérialisation -Thèse
d'exercice Pharmacie Toulouse 3- 2013. (p123-124) (p 90-91) (139) (p167)
http://www.sudoc.fr/175891494 Version numérique
[12] ARTICLE L162-4-3. Code de la Santé Publique (Juillet-2005) - ;
Page 98/112[13] R161-33-8. Code de la Sécurité Sociale (15 Avril-1998) - ;
[14] Pharmaciens -vous êtes équipés - AMELI -
http://www.ameli.fr/professionnels-de-sante/pharmaciens/gerer-votreactivite/equipement-sesam-vitale/vous-etes-equipe/liste-d-8217-opposition-des-cartesvitale_doubs.php
{Consulté le 22 septembre 2014}
[15] ARTICLE R161-52. Code de la sécurité sociale (Janvier-2005) - ;
[16] DÉCRET N° 2007-960 DU 15 MAI 2007 RELATIF À LA CONFIDENTIALITÉ DES INFORMATIONS
MÉDICALES CONSERVÉES SUR SUPPORT INFORMATIQUE OU TRANSMISES PAR VOIE ÉLECTRONIQUE ET MODIFIANT
LE CODE DE LA SANTÉ PUBLIQUE (DISPOSITIONS RÉGLEMENTAIRES). Journal Officiel de la République
Française (16 mai-2007) 113- p. 9362 ; NOR: SANP0721653D
[17] ARRÊTÉ DU 11 JUILLET 2006 PORTANT APPROBATION DE LA CONVENTION NATIONALE ORGANISANT LES
RAPPORTS ENTRE LES PHARMACIENS TITULAIRES D'OFFICINE ET L'ASSURANCE MALADIE. Journal Officiel de
la République Française (25 Juillet-2006) 170- p. 11085 ; NOR: SANS0622889A
[18] GIE SESAM-Vitale. Migration en v3.x des lecteurs sesam-vitale. (2012) : .
http://www.sesam-vitale.fr/divers/lecteurs-migration.asp
[19] Liste des lecteurs de cartes homologués disponibles à la vente - GIE SESAM-Vitale
- http://www.sesam-vitale.fr/__asp/homologations/produits/lecteur_liste.asp?c=vert&p=0
{Consulté le 27 mai 2014}
[20] Communiqué de presse: thales annonce l'acquisition de la société wynid
technologies - Service de Presse de la société Thales -
https://www.thalesgroup.com/fr/content/thales-annonce-lacquisition-de-la-societewynid-technologies
{consulté le 27 mai 2014}
[21] Communiqué de presse: succès de l’offre d’achat d’ingenico sur xiring - Service de
Presse d'Ingenico - http://healthcare-eid.ingenico.com/Communique-de-Presse.aspx?
card=2565 {consulté le 27 mai 2014}
[22] La présérie pc/sc a débuté le 17 mars dernier ! - GIE-SESAM-Vitale - http://sesamvitale.fr/pratique/actualites/actu-2014-04-25.asp
{Consulté le 27 mai 2014}
[23] ADENOT I. Le dossier médical personnel (dmp) et le dossier pharmaceutique (dp)
des pharmaciens d'officine -Thèse d'exercice Pharmacie Dijon- 2005. (p29-41) (p43-47)
http://www.sudoc.fr/094288135 Format papier
[24] What is the pc/sc technology - Gemalto - http://www.gemalto.com/techno/pcsc/
{consulté le 27 mai 2014}
[25] Les missions de la cpam - AMELI - http://www.ameli.fr/professionnels-desante/medecins/votre-caisse-cotes-d-armor/nous-connaitre/les-missions-de-lacpam/garantir_cotes-d-armor.php
{Consulté le 27 mai 2014}
[26] FAURICHON DE LA BARDONNIE H. Gestion des moyens techniques des officines
-Thèse d'exercice Pharmacie Tours- 2010. (p120 -122) (p122)
http://www.sudoc.fr/146316630 Format papier
[27] ARRÊTÉ DU 4 MAI 2012 PORTANT APPROBATION DE LA CONVENTION NATIONALE ORGANISANT LES
RAPPORTS ENTRE LES PHARMACIENS TITULAIRES D'OFFICINE ET L'ASSURANCE MALADIE. Journal Officiel de
la République Française (6 mai-2012) n°0107- p. 8112 ; NOR: ETSS1220861A
[28] Cnamts. Rapport d’activité 2011. (2012) p. 36-37 /76
Page 99/112www.ameli.fr/rapport-activite-2011/data/catalogue.pdf
[29] Caisse Nationale de l'Assurance Maladie. Modernisation et efficience du système de
soins : la dématérialisation des ordonnances par les pharmaciens est engagée. (2011) p.
2/7 http://www.urps-oi.net/Pharmaciens/20111201-Dematerialisation-ordonnances.pdf
[30] ARTICLE L161-36-4-2. Code de la Sécurité Sociale (Janvier-2007) - ;
[31] FUCHS A. Le dossier pharmaceutique -Thèse d'exercice Pharmacie Strasbourg 1-
2008.(p48) http://www.sudoc.fr/128505397 Format papier
[32] CNOP. Le nouveau système d'alerte est opérationnel. Le Journal de l'ordre national
des Pharmaciens (2011) : .
http://www.ordre.pharmacien.fr/content/download/5243/67603/version/4/file/Lejournal-ordre-des-pharmaciens-8.pdf
[33] Direction des technologie en Santé. Rapport d'activité dp 2013. Conseil National de
l'Ordre des pharmaciens (2014) (p20) (p21) (p29) (p27-28)
http://www.ordre.pharmacien.fr/Communications/Rapports-d-activite/Le-DossierPharmaceutique-Rapport-d-activite-2013
[34] DÉCRET N° 2012-1131 DU 5 OCTOBRE 2012 RELATIF À LA CONSULTATION ET À L'ALIMENTATION DU
DOSSIER PHARMACEUTIQUE PAR LES PHARMACIENS EXERÇANT DANS LES PHARMACIES À USAGE INTÉRIEUR.
(Octobre-2012) - ; NOR: AFSH1223067D
[35] Jean-Pierre P. Circulation de l’information sur les ruptures d’approvisionnement
en médicaments. (2010) : . http://www.ordre.pharmacien.fr/content/view/full/120487
[36] ARTICLE 23 DE LA LOI N°2011-2012 DU 29 DÉCEMBRE 2011. Journal Officiel de la
République Française (Décembre-2011) 0302- p. 22667 ; NOR: ETSX1119227L
[37] BERTRAND M. Le dossier pharmaceutique au service du pharmacien : un outil
informatique construit pour une utilisation professionnelle optimale -Thèse de Pharmacie
de Lorraine -Nancy 1- 2012. (p86-87) (p100) http://docnum.univlorraine.fr/public/BUPHA_T_2012_BERTRAND_MATHIEU.pdf
Format numérique
[38] ARTICLE R5132-9. Code de la Santé Publique (février-2007) - ; PARAGRAPHE 3 :
DÉLIVRANCE
[39] ARTICLE R5132-35. Code de la Santé Publique (Février-2007) - ;
[40] Stupéfiants ou assimilés : conservation dématérialisée des copies d'ordonnances -
Conseil National de l'Ordre des Pharmaciens -
http://www.meddispar.fr/Actualites/2014/Stupefiants-ou-assimiles-conservationdematerialisee-des-copies-d-ordonnances
{consulté le 01 mai 2014}
[41] ARTICLE L161-38. Code de la Sécurité Sociale (29 Décembre-2011) - ;
[42] Agrément des bases de données sur les médicaments - HAS - http://www.hassante.fr/portail/jcms/c_672761/fr/agrement-des-bases-de-donnees-sur-les-medicaments
{Consulté le 28 mai 2014}
[43] Interactions médicamenteuses -thesaurus - ANSM -
http://ansm.sante.fr/Dossiers/Interactions-medicamenteuses/Interactionsmedicamenteuses/%28offset%29/0#paragraph_1798
{Consulté le 07 Octobre 2014}
[44] Gie-sips et thesorimed®: qui nous sommes - GIE-SIPS - http://theso.prodPage
100/112deux.thesorimed.org/Vues/Presentation.html {Consulté le 27/05, mise à jour du site 27-05-
2014 }
[45] Theriaque : qui nous sommes ? - Site web Theriaque.org -
http://www.theriaque.org/apps/journal/index.php?
menu=qui_sommes_nous_menu&type=qui_sommes_nous {Consulté le 28 mai 2014}
[46] HUSSON M. Thériaque® : base de données indépendante sur le médicament, outil
de bon usage pour les professionnels de santé. Annales Pharmaceutiques Françaises (2008)
66: pp. 268-277. http://www.sciencedirect.com/science/article/pii/S0003450908000977
[47] Nouveau protocole d'échanges officine/répartition successeur du 170-171 -
Chambre Syndicale de la Répartition Pharmaceutique -
http://www.csrp.fr/opencms/sites/fr/kiosque/pharmaml.html {Consulté le 22 septembre
2014}
[48] Objectifs du club inter-pharmaceutique - CIP -
http://www.ucdcip.org/assoc/objectifs.php {Consulté le 06 juin 2014}
[49] AUBERT G. Pharmacie d'officine assistée par ordinateur -Thèse d'exercice
Pharmacie Aix Marseille 2- 2011. (p 46-75) http://www.sudoc.fr/155621270 Format
papier
[50] GS1 France. Le code à barres, mes premiers pas. . 2014 Consulté le 06 juin 2014
http://www.publications.gs1.fr/ressources/telecharger/4819/
[51] GS1 France. Vous êtes pharmacien ? découvrez les avantages du code datamatrix.
(2012) : . http://www.publications.gs1.fr/Publications/Pharmacien-decouvrez-lesavantages-du-code-DataMatrix
[52] HAOND J. La lutte contre la contrefaçon : protection industrielle et sécurisation
par le data matrix -Thèse d'exercice de Pharmacie de Nancy 1 -- Disponible en ligne dès
mars 2015 (format numérique fournis gracieusement par le service bibliothécaire)--- 2012.
(p80) http://docnum.univ-lorraine.fr/prive/BUPHA_T_2012_HAOND_JUSTINE.pdf
Format numérique
[53] ARTICLE R5124-58. Code de la Santé Publique (Décembre-2012) - ;
[54] GS1 France. Guide des bonnes pratiques de lecture du code à barres 2d, gs1
datamatrix. (2012) : . http://www.publications.gs1.fr/Publications/Guide-des-bonnespratiques-de-lecture-du-code-a-barres-2D-GS1-Datamatrix
[55] ARTICLE L625. Code de la Santé Publique (Juillet-1999) - ;
[56] ARTICLE R5132-3. Code de la Santé Publique (décembre-2013) - ;
[57] ARTICLE R5123-1. Code de la Santé Publique (Juillet-2005) - ;
[58] ARTICLE L4241-1. Code de la Santé Publique (Juin-2000) - ;
[59] Ministère de la Santé Québécoise. Entente relative à l'assurance maladie entre
l'association québécoise des pharmaciens propriétaires et le ministre de la santé et des
services sociaux. (2013)
http://www.ramq.gouv.qc.ca/SiteCollectionDocuments/professionnels/manuels/260-
pharmaciens/008_entente_pharm.pdf
[60] Dépôt de la marque opinion pharmaceutique - INPI - http://basesPage
101/112marques.inpi.fr/Typo3_INPI_Marques/getPdf?idObjet=3305268_201430_fmark {Consulté le
13 septembre 2014}
[61] BRAS P, KIOUR A, MAQUART B & MORIN A. Pharmacies d’officine :
rémunération, missions, réseau. Inspection Générale des Affaires Sociales (2011)
http://www.ladocumentationfrancaise.fr/rapports-publics/114000355/index.shtml
[62] VALENDRET G. Informatique-automate: pour l'optimisation des stocks.
L'Entreprise Officinale (2012) 2: pp. 34-35.
http://www.pharmagest.com/biblio/rep_1000/fic_991.pdf
[63] Protocole 3964r - IPCOMM GmbH -
http://www.ipcomm.de/protocol/3964R/en/sheet.html {Consulté le 24 Juin 2014}
[64] Anonyme. Robots et automates : ça marche à la baguette !. Le Pharmacien de
France (2006) 1138: p. 74. http://www.caduciel.com/v2/actualites/docs/2006/NT_Robot.pdf
[65] REY M. L’informatisation des officines et des pratiques officinales -Thèse
d'exercice Pharmacie Bordeaux 2- 2009. (p30) http://www.sudoc.fr/137752121 Format
papier
[66] Document technique du protocole cd api version 2.2.0. 2009. Document fournit
par la société ARX
[67] Schnittstelle zwischen kommissioniersystemen und apotheken edv-systemen -
ADAS - http://www.adas.de/images/pdf/Schnittstelle_11401_210504.pdf {Consulté le
24 Juin 2014}
[68] ARTICLE R4235-21. Code de la Santé Publique (Août-2004) - ;
[69] ARTICLE R4235-22. Code de la Santé Publique (Août-2004) - ;
[70] ARTICLE L5125-1-1 A. Code de la Santé Publique (Juillet-2009) - ;
[71] GRENIER M. Rôle du pharmacien d'officine lors de la dispensation des
médicaments en ehpad -Thèse d'exercice Pharmacie Grenoble 1- 2012. (p60-64-67) (p88)
http://www.sudoc.fr/163531935 Format numérique
[72] NEGRO N. Informatique et nouvelles technologies au service de l'officine -Thèse
d’exercice Pharmacie Paris-Sud- 2012. (p53) (p108 à 110) (p105)
http://www.sudoc.fr/166903752 Format papier
[73] ARTICLE R1111-12. Code de la Santé Publique (Janvier-2006) - ;
[74] DÉCRET N°2006-6 DU 4 JANVIER 2006 RELATIF À L'HÉBERGEMENT DE DONNÉES DE SANTÉ À
CARACTÈRE PERSONNEL ET MODIFIANT LE CODE DE LA SANTÉ PUBLIQUE. (5 Janvier-2006) - ; NOR:
SANX0500308D
[75] Hébergeurs agréés - ASIP-Santé -
http://esante.gouv.fr/services/referentiels/securite/hebergeurs-agrees {Consulté le 21
Août 2014}
[76] ARTICLE R5121-161. Code de la Santé Publique (Juillet-2014) - ;
[77] ANSM. Qui déclare des événements indésirables médicamenteux au réseau
national de pharmacovigilance ?. Vigilances: bulletin de l’agence nationale de sécurité du
médicament et des produits de santé (2013) 57: p. 18.
Page 102/112http://ansm.sante.fr/var/ansm_site/storage/
original/application/d2598f49629869786dbf52d974b00c33.pdf
[78] ANSM. Rapport d'activité 2012 afssaps-ansm. Agence National de sécurité du
médicaments et des produits de santé (2012)
http://ansm.sante.fr/Mediatheque/Publications/Bilans-Rapports-d-activite-ANSMpublications-institutionnelles
[79] Cour des Comptes. Rapport annuel sur la sécurité sociale 2008: les pharmacies
d’officine et leurs titulaires libéraux. Cour des Comptes (2008) (p201)
http://www.ccomptes.fr/Publications/Publications/Securite-sociale-2008
[80] ASIP. Mieux comprendre mssanté. (2014) : .
http://asipsante.fr/sites/default/files/FAQ_MSSante_BD.PDF
[81] VILTER V. Mssanté : point d’avancement du projet. 3 Octobre, 2013.
http://asipsante.fr/actus/regions/retour-sur-les-rencontres-inter-regionales-de-l-asipsante-du-3-octobre
[82] SIMON L. Le rpps par a+b. Le Pharmacien de France (2010) 1217: .
http://www.lepharmacien.fr/fevrier-2010/reforme-le-rpps-par-a-b.html
[83] ASIPSanté. Interfaces d'accès au système de messageries sécurisées de santé -
dossier des spécifications techniques - v1.0.0. ASIPSanté (Ed.). , 2014
http://asipsante.fr/actus/services/mssante-conditions-de-mise-en-oeuvre-de-linteroperabilite-et-point-de-vue-de-la-feim
[84] Télécharger dès à présent thunderbird, le premier logiciel de messagerie
compatible mssanté - ASIP-Santé -
https://www.mssante.fr/telechargements/Thunderbird {Consulté le 03 septembre 2014}
[85] Avenant n°1 à la convention nationale - Assurance Maladie -
http://www.ameli.fr/professionnels-de-sante/pharmaciens/votre-convention/conventionnationale-titulaires-d-officine/avenant-n-1-a-la-convention-nationale_haute-loire.php
{Consulté le 08 Octobre 2014}
[86] Traitement des patients sous a.v.k. - Assurance Maladie -
http://www.ameli.fr/professionnels-de-sante/pharmaciens/votre-caisse-haute-loire/vousinformer/traitement-des-patients-sous-a.v.k._haute-loire.php
{Consulté le 08 Octobre 2014}
[87] CNOP. Recommandations de gestion des produits de santé soumis à la chaîne du
froid entre +2°c et +8°c à l’officine. CNOP (Ed.). , 2009
http://www.eqo.fr/content/download/81524/889958/version/1/file/Recommandationsgestion-produits-de-sante-soumis-chaine-du-froid-officine-2009.pdf
[88] État Français. Décret n° 2012-1562 du 31 décembre 2012 relatif au renforcement de
la sécurité de la chaîne d'approvisionnement des médicaments et à l'encadrement de la
vente de médicaments sur internet. (2012) : .
http://www.legifrance.gouv.fr/affichTexte.do?cidTexte=JORFTEXT000026871417
[89] DÉCISION DU CONSEIL D'ÉTAT DU 17 JUILLET 2013 N°S 365317, 366195, 366272, 366468: VENTE
EN LIGNE DE MÉDICAMENTS. (17 Juillet-2013) - ;
[90] Le Parisien. Une plainte vise onze sites. Le Parisien (2013) : .
http://www.leparisien.fr/societe/une-plainte-vise-onze-sites-07-08-2013-3036145.php
Page 103/112[91] Ordre National des Pharmaciens. 10600 sites internet fermés. Le Journal de l'Ordre
National des Pharmaciens (2014) 38: .
http://www.ordre.pharmacien.fr/index.php/content/download/160791/
784215/version/13/file/le-journal-ordre-pharmaciens-38.pdf
[92] Fin de vie pour le réseau santé social - FRASLIN J -
http://www.amula.asso.fr/site/article.php?id_article=4 {Consulté le 03 Octobre 2014}
[93] CECCHI TENERINI R, , LAFON, Philippe & LAROQUE M. Évaluation du système
d'information des professionnels de santé. Inspection Générale des Affaires Sociales (2002)
(p13 et p32) (p31) (p 62) (p6) http://www.ladocumentationfrancaise.fr/rapportspublics/044000449/index.shtml
[94] Conseil National de l'Ordre des pharmaciens. La protection de la croix verte et du
caducée. (2014) : . http://www.ordre.pharmacien.fr/Nos-missions/Assurer-la-defense-de-lhonneur-et-de-l-independance/La-protection-de-la-croix-verte-et-du-caducee
[95] Publication des demandes d’enregistrement auprès de l'inpi - INPI - http://basesmarques.inpi.fr/Typo3_INPI_Marques/getPdf?idObjet=3507793_201236_fmark
{Consulté le
13 septembre 2014}
[96] ARTICLE R4235-59. Code de la Santé Publique (Août-2004) - ;
[97] Un employeur a-t-il le droit d’installer un système de vidéosurveillance dans son
entreprise ? - CNIL - http://www.cnil.fr/documentation/questionsreponses/?
tx_irfaq_pi1[showUid]=198&tx_irfaq_pi1[back]=amF2YXNjcmlwdDpoaXN0b3J5LmdvKC
0xKQ%3D%3D {Consulté le 13 juin 2014}
[98] KRISTANADJAJA G. J’ai pris le contrôle de votre caméra et je vous ai retrouvés.
Rue 89/Nouvel Observateur (2014) : . http://rue89.nouvelobs.com/2014/06/09/jai-prisles-commandes-camera-ai-retrouves-252793
[99] Ordre national des Pharmaciens. Puis-je installer un distributeur en façade de mon
officine ?. Journal de l'ordre national des Pharmaciens (2014) 35: .
http://www.ordre.pharmacien.fr/content/download/146783/735678/version/9/file/lejournal-ordre-pharmaciens-35.pdf
[100] Liste des logiciels agréés sesam-vitale 1.30 - GIE SESAM-Vitale -
http://www.cnda-vitale.fr/php/agrement-1.30.php?page=les%20logiciels%20agr
%E9%E9s {consulté le 18 Août 2014}
[101] Parts de télétransmission - pour la catégorie : pharmaciens - GIE SESAM-Vitale -
http://www.sesam-vitale.fr/divers/chiffres/histo-pdm.asp {Consulté le 16 Août 2014}
[102] Activités - Cegedim - http://www.cegedim.fr/groupe/Pages/Activites.aspx {Consulté le
18 Aout 2014}
[103] Un groupe, plusieurs savoir-faire - Groupe Pharmagest -
http://www.pharmagest.com/nous-connaitre/le-groupe-pharmagest-r1.html {Consulté le
18 Aoùt 2014}
[104] Nos membres - GIE SESAM-Vitale - http://www.sesam-vitale.fr/nousconnaitre/gouvernance-membres.asp#
{Consulté le 18 Août 2014}
[105] ARTICLE L4231-1. Code de la Santé Publique (décembre-2005) - ;
[106] SUEUR N. La pharmacie centrale de france une coopérative au service d'un
Page 104/112groupe professionnel 1852-1879 -Thèse de doctorat Histoire Lyon 3- 2012. (p 9 à 30)
http://www.theses.fr/2012LYO30068/document Format numérique
[107] ANTOINE A. Système coopératif et répartition pharmaceutique -Thèse d'exercice
de Pharmacie de Nancy 1- 2006. (p74-79) http://docnum.univlorraine.fr/public/SCDPHA_T_2006_ANTOINE_ARNAUD.pdf
Format numérique
[108] ARTICLE R5124-59. Code de la Santé Publique (Octobre-2012) - ;
[109] PETIT J. Histoire d'un grossiste-répartiteur : la cerp-rouen. Revue d'histoire de la
pharmacie (2000) : pp. 209-214.
http://www.persee.fr/web/revues/home/prescript/article/pharm_0035-
2349_2000_num_88_326_5084
[110] Spc: la coopérative - SPC - http://www.spcorleans.fr/la-cooperative {Consulté le 13
septembre 2014}
[111] Ospharm: la coopérative - OSPHARM -
http://www.ospharea.com/la_cooperative.html {consulté le 13 septembre 2014}
[112] ANDRE G. Quels groupements de pharmacies comme alternative française aux
chaines? la « french touch » -Thèse d'exercice Pharmacie Nantes- 2000.(p 68) (p67)
http://www.sudoc.fr/053737342 Format papier
[113] GISSAT-SAURET B. Apports des groupements dans la profession de pharmacien
étude et prospective du groupe giphar -Thèse d'exercice Pharmacie Tours- 2002. (p29)
(p51-53) (p56) (p97) http://www.sudoc.fr/068945469 Format numérique
[114] Réalisation de la fspf - FSPF - http://www.fspf.fr/index.php/qui-sommesnous-/nos-realisations.html
{Consulté le 18 Août 2014}
[115] Liste des organismes concentrateurs techniques - GIE S - http://www.sesamvitale.fr/offre/prestataire-de-soins/infos-pratiques/oct-liste.asp
{Consulté le 11 juin 2014}
[116] Pharmastat, un réseau - IMS-Pharmastat - http://www.ims-pharmastat.fr/quisommesnous/Decouvrir-Pharmastat/Pharmastat-un-reseau.html
{Consulté le 18 Août 2014}
[117] Adhérents de la csrp - CSRP -
http://www.csrp.fr/opencms/sites/fr/presentationcsrp/adherents.html {Consulté le 13
septembre 2014}
[118] GIE SESAM-Vitale. Historique des professionnels de santé en télétransmission.
GIE SESAM-Vitale (2014) http://www.sesam-vitale.fr/divers/chiffres/histo-teleps.asp
[119] ARTICLE L4211-3: PRO-PHARMACIEN. Code de la Santé Publique (févirer-2010) - ;
[120] PIRAS B. Question écrite n° 00703. Sénat (2007) M. Bernard Piras attire l'attention
de Mme la ministre de la santé, de la jeunesse et des sports sur la situation des médecins
autorisés à dispenser des médicaments dans un secteur géographique dépourvu d'officine.
Ces médecins, désignés par le terme propharmacien, ne possèdent pas la carte
professionnelle de pharmacien, ce qui leur crée des nuisances pour le tiers payant et la
télétransmission, notamment lorsqu'ils soignent des patients n'habitant pas dans le même
département. Ce dysfonctionnement est préjudiciable aux patients mais également aux
médecins concernés, astreints de ce fait à une lourde paperasserie. Il lui demande de lui
indiquer les mesures qu'elle entend rapidement adopter pour résoudre ce problème.
Page 105/112http://www.senat.fr/questions/base/2007/qSEQ070700703.html
[121] BAYART B. Internet libre, ou minitel 2.0 ?. RMLL Juillet, 2007.
http://www.fdn.fr/IMG/pdf/transcription_minitel_2.0.pdf
[122] Red hat: france is the most 'active' open source country, moldova the least -
Jacqueline E - http://betanews.com/2009/04/24/red-hat-france-is-the-most-activeopen-source-country-moldova-the-least/
{Consulté le 25 septembre 2014}
[123] Open source index ranks - Red Hat - http://www.redhat.com/f/pdf/ossi-indexranks.pdf
{Consulté le 25 septembre 2014}
[124] France leads europe in open source adoption - Pierre Audouin Consultants -
https://www.pac-online.com/france-leads-europe-open-source-adoption {Consulté le 25
septembre 2014}
[125] AYRAULT J. Usage du logiciel libre dans l’administration. Premier Ministre -
DISIC (2012) https://www.april.org/circulaire-ayrault-une-avancee-pourlusage-du-logiciel-libre-dans-les-administrations-en-attendant-le-volet-legislatif
[126] ELIE F. Économie du logiciel libre. Eyrolles (Ed.). , 2009
[127] APRIL. Le livre blanc du logiciel libre. APRIL (Ed.). , 2007
http://www.april.org/articles/livres-blancs/modeles-economiques-logiciel-libre
[128] Groupe thématique Logiciel Libre de Systematic Paris-Region. Les livrets bleus du
logiciel libres: modèles économiques. . 2014 http://www.systematic-parisregion.org/fr/node/22803
[129] . Licence publique générale gnu version 2 - traduction francophone non officielle.
(1998) : . http://www.linux-france.org/article/these/gpl.html
[130] . Licence publique générale gnu version 3. (2011) : . http://dachary.org/loic/gplfrench.pdf
[131] Free Software Foundation. Gnu general public license version 2. (1991) : .
https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
[132] Free Software Foundation. Gnu general public license version 3. (2007) : .
https://www.gnu.org/licenses/gpl.txt
[133] L'écho des gnous #0011 - STALLMAN RM - http://www.chtinux.org/podcast/?
p=episode&name=2011-03-06_echo_des_gnous_11.ogg {40 minutes 30 jusqu'à 47 minutes15
- Consulté le 20 mai 2014 - CC-by-sa}
[134] Top 20 open source licenses - BlackDuck -
http://www.blackducksoftware.com/resources/data/top-20-open-source-licenses
{Consulté le 14 septembre 2014}
[135] Red Hat. Red hat reports fourth quarter and fiscal year 2013 results. Red Hat
(2013) http://investors.redhat.com/releasedetail.cfm?ReleaseID=751668
[136] Trademarks – the good, the bad and the ugly - ANDERSON H -
http://lockshot.wordpress.com/2009/04/20/trademarks-%E2%80%93-the-good-the-badand-the-ugly/
{Consulté le 16 Juillet 2014}
[137] Mozilla trademark policy - Mozilla Foundation - https://www.mozilla.org/enPage
106/112US/foundation/trademarks/policy/ {Consulté le 16 Juillet}
[138] Mozilla desktop distribution - Mozilla - https://www.mozilla.org/enUS/about/partnerships/distribution/
{Consulté le 17 Juillet 2014}
[139] Oracle cède la marque openoffice.org à apache - BEAUSSIER C -
http://oooforum.free.fr/index.php/2011/09/11/oracle-cede-la-marque-openoffice-org-aapache/
{Consulté le 16 Juillet 2014}
[140] The document foundation mark policy - The Document Foundation -
https://wiki.documentfoundation.org/TradeMark_Policy {Consulté le 16 Juillet 2014}
[141] Première victoire contre les para-sites de openoffice.org - BEAUSSIER C -
http://oooforum.free.fr/index.php/2010/02/18/premiere-victoire-contre-les-para-sites-deopenoffice-org/
{Consulté le 16 Juillet}
[142] Netcraft. June 2014 web server survey. Netcraft (2014)
http://news.netcraft.com/archives/2014/06/06/june-2014-web-server-survey.html
[143] NICCOLAI J. Ballmer still searching for an answer to google. PCWorld (2008) : .
http://www.pcworld.com/article/151568/article.html
[144] CARNUS C. Le pharmacien et l'informatique officinale à travers une enquête
menée dans le lot en 2001 -Thèse d'exercice Pharmacie Toulouse 3- 2002. (p28)
http://www.sudoc.fr/068672039 Format papier
[145] Membres de la fondation linux - Linux Foundation -
http://www.linuxfoundation.org/about/members {Consulté le 5 septembre 2014}
[146] Linux Foundation. The linux foundation releases annual linux development report
2012. Linux Foundation (2012) http://www.linuxfoundation.org/newsmedia/announcements/2012/04/linux-foundation-releases-annual-linux-development-report
[147] Microsoft contributes linux drivers to linux community - Microsoft -
http://www.microsoft.com/en-us/news/features/2009/jul09/07-20linuxqa.aspx {Consulté
le 03 Octobre 2014}
[148] The mozilla foundation - Mozilla - https://www.mozilla.org/en-US/foundation/
{Consulté le 17 Juillet 2014}
[149] About the mozilla corporation - Mozilla - https://www.mozilla.org/enUS/foundation/moco/
{Consulté le 17 Juillet 2014}
[150] PostgreSQL. The postgresql licence. (1994) : .
http://www.postgresql.org/about/licence/
[151] Liste des logiciels agréés sesam-vitale 1.40 - GIE SESAM-Vitale™ -
http://www.cnda-vitale.fr/php/agrement-1.40.php?page=les%20logiciels%20agrees
{consulté le 28 mars 2014}
[152] Liste des logiciels agréés à la technologie scor - GIE SESAM-Vitale™ -
http://www.sesam-vitale.fr/__asp/progiciels/agrements/liste-scor.asp?c=orange
{consulté le 01 mai 2014}
[153] Ordre national des pharmaciens (France). Le dossier pharmaceutique chiffres, mode
d'emploi, perspectives et acteurs majeur l'essentiel pour mieux comprendre cet outil
professionnel incontournable. . Ordre national des pharmaciens, Paris, 2011
Page 107/112http://www.ordre.pharmacien.fr/index.php/Communications/Rapports-Publicationsordinales/Le-Dossier-Pharmaceutique
[154] Présentation de la société ibsm soft - Societe.com -
http://www.societe.com/societe/ibsm-soft-409969904.html {Consulté le 16 Juin 2014}
[155] CHATEAU C. État actuel des principaux matériels informatiques disponibles sur
le marché pour informatiser une officine -Thèse d'exerice de Pharmacie Paris 11- 1989.
(p17-21) http://www.sudoc.fr/043197043 Format papier
[156] Winstory -1993 - WinPharma - http://www.winpharma.com/histoire.php
{Consulté le 22 septembre 2014}
[157] Opus: nous connaître - PG Informatique - http://www.opusoftware.fr/nousconnaitre.html
{Consulté le 22 septembre 2014}
[158] Windows xp and office 2003 countdown to end of support, and the april 2012
bulletins - MSRC Team - http://blogs.technet.com/b/msrc/archive/2012/04/10/windowsxp-and-office-2003-countdown-to-end-of-support-and-the-april-2012-bulletins.aspx
{Consulté le 05 Octobre 2014}
[159] GELBRAS CHARLES-NICOLAS P. L'informatique en officine étude comparative
des systèmes proposés par les fabricants -Thèse d'exercice Pharmacie Paris 11 - 1982.(p2)
http://www.sudoc.fr/041705475 Format papier
[160] Ordre national des pharmaciens, FSPF, UNPF, USPO. Charte qualité pour les
logiciels à l'usage de l'exercice officinal. . 2008 Plus accessible sur le site du CNOP en 2014
[161] CNOP. Changement d’hébergeur du dp : 26 millions de dossiers transférés avec
succès !. La Lettre de l'ordre national des pharmaciens (2013) 26: .
http://lalettre.ordre.pharmacien.fr/accueil-lettre-26/Changement-d-hebergeur-du-DP-26-
millions-de-dossiers-transferes-avec-succes
[162] ARTICLE L161-36-1 A. Code de la Sécurité Sociale (Août-2004) - ;
[163] CNOP. Recommandations - respect de la confidentialité des données de patients
dans l'usage de l'informatique. Conseil Nationale de l'Ordre des Pharmaciens (2013)
http://www.ordre.pharmacien.fr/Communications/Publications-ordinales/Respect-de-laconfidentialite-des-donnees-de-patients
[164] La vente d'antibiotiques à l'unité autorisée à l'essai - OUAFIA K -
http://www.franceinfo.fr/societe/actu/article/la-vente-d-antibiotiques-l-unite-autorisee-lessai-293477
{Consulté le 21 Août 2013}
[165] WORONOFF LEMSI M, GRALL J, MONIER B & BASTIANELLI Jean-Paul. Le
médicament à l'hôpital. Inspection Général Affaires Sociales (2003)
http://www.ladocumentationfrancaise.fr/rapportspublics/034000374/index.shtml#book_synthese
[166] BENSADON A, MARIE E & MORELLE A. Rapport sur la pharmacovigilance et
gouvernance de la chaîne du médicament. Inspection générale des affaires sociales (2011)
(p30) (p156) http://www.ladocumentationfrancaise.fr/rapportspublics/114000331/index.shtml
[167] Cahier des charges sesam-vitale éditeur 1.40. 2012. {consulté en 15 avril 2014}
https://www.sesam-vitale.fr/offre/industriel/sesam-vitale/docs/cdc-1.40-integralPage
108/112addendum6.pdf
[168] GIE SESAM-Vitale. Rapport d'activité du gie sesam-vitale 2012. (2013) : .
http://www.sesam-vitale.fr/pratique/catalogue/index.html
[169] GOASGUEN C. Question n° 122878 au ministère du travail. Assemblé Nationale
(2011) M. Claude Goasguen attire l'attention de M. le ministre du travail, de l'emploi
et de la santé sur la mise en place des cartes Vitale de deuxième génération. La lutte contre la
fraude sociale étant un objectif fort du Gouvernement, l'amélioration du dispositif de gestion
de l'assurance maladie est une nécessité absolue. Le déficit record du budget de l'assurance
maladie pour l'année 2011 est un indicateur négatif pour les places financières et les agences
de notation. Les actions menées par le Gouvernement vont dans le bon sens, et doivent être
encore renforcées. On parle de millions de cartes Vitale falsifiées ou détournées. Or la mise
en place d'une photographie sur ces cartes est un moyen simple et efficace de diminuer les
fraudes. Elle est en cours de réalisation, mais il paraît opportun d'accélérer la mise en
circulation de cette deuxième génération de cartes. C'est pourquoi il souhaiterait connaître le
nombre de cartes Vitale de deuxième génération mis en circulation et les projections faites
pour couvrir l'ensemble des assurés sociaux. http://questions.assembleenationale.fr/q13/13-122878QE.htm
[170] PERRUT B. Question n° 128451 au ministère du travail. Assemblée Nationale
(2012) M. Bernard Perrut appelle l'attention de M. le ministre du travail, de l'emploi
et de la santé sur la décision de mettre en place des cartes vitales nouvelles destinées à
remplacer celles de la première génération qui sont à l'origine de nombreuses fraudes.
L'innovation importante comporte notamment la présence d'une photographie du titulaire
permettant sa reconnaissance immédiate. Il lui demande à quel rythme s'effectue le
changement et dans quel délai la nouvelle carte couvrira l'ensemble du territoire
http://questions.assemblee-nationale.fr/q13/13-128451QE.htm
[171] GIE SESAM-Vitale. Rapport d'activité du gie sesam-vitale 2013. GIE SESAM-Vitale
(2014) (p 59) http://www.sesamvitale.fr/pratique/catalogue/2013/catalogue/index.html
[172] MORANGE P. Commission des affaires sociales - auditions sur la lutte contre la
fraude sociale 20 janvier. Assemblée Nationale (2011) (p9-10)
http://www.assemblee-nationale.fr/13/cr-mecss/10-11/c1011006.asp#P19_895
[173] GOUTEYRON A. Avis n° 60 pour le projet de loi de financement de la sécurité
sociale de financement de la sécurité sociale pour 2004. Sénat (2003) (p 103)
http://www.senat.fr/rap/a03-060/a03-060_mono.html#toc501
[174] CIOTTI É. Question n° 11023 au ministère de la justice. Assemblée Nationale (2007)
M. Éric Ciotti attire l'attention de Mme la garde des sceaux, ministre de la justice, sur
les condamnations prononcées en matière de fraude à la carte Vitale. Il lui demande combien
de personnes ont été condamnées durant l'année 2006 pour utilisation frauduleuse des cartes
Vitale. http://questions.assemblee-nationale.fr/q13/13-11023QE.htm
[175] Cour des Comptes. Rapport annuel sur la sécurité sociale 2008. Cour des Comptes
(2008) (p 242 p244) (p246-247) (p241)
http://www.ccomptes.fr/Publications/Publications/Securite-sociale-2008
[176] BOARETTO Yann, DUMAS Philippe, CHOLLEY François, GAGNEUX Michel,
ROMENTEAU Pascale. Le dossier médical personnel (dmp). Inspection Générale des
Affaires Sociales (2007) (p21-22) (p48) (p40) (p2)
Page 109/112http://www.ladocumentationfrancaise.fr/rapports-publics/074000713/index.shtml
[177] La gratuité : logiciel de gestion de pharmacie - BARANÈS C -
http://www.pharmaland.fr/Edtion-Reglementaire/La-gratuite-depharmaland/accueil.html
{Consulté le 19 septembre 2014}
[178] CONSTANT F. Linux système d'exploitation alternatif prêt pour l'officine ? -Thèse
d'exercice Pharmacie Montpellier 1 - 2001. (p54) http://www.sudoc.fr/055507123 Format
papier
[179] LESSIG L & Traducteurs du Framablog. Code is law - traduction française du
célèbre article de lawrence lessig. Harvard Magazine (2000) : .
http://www.framablog.org/index.php/post/2010/05/22/code-is-law-lessig
[180] FLOQUET N. Libre et santé. comprendre le logiciel libre et ses enjeux pour les
professions de santé. -Thèse d’exercice de Pharmacie Lille 2- 2014.
http://www.sudoc.fr/18121816X Format numérique
[181] STALLMAN RM, WILLIAMS S & MASUTTI C. Richard stallman et la révolution
du logiciel libre. une biographie autorisée. Eyrolles (Ed.). Eyrolles, 2010
http://framabook.org/richard-stallman-et-la-revolution-du-logiciel-libre/
Page 110/112XIII) Serment de Galien
e jure, en présence des maîtres de la Faculté, des conseillers de l’ordre des Jpharmaciens et de mes condisciples :
’ honorer ceux qui m’ont instruit dans les préceptes de mon art et de
leur témoigner ma reconnaissance en restant fidèle à leur
enseignement.
Ð
’exercer, dans l’intérêt de la santé publique, ma profession avec
conscience et de respecter non seulement la législation en vigueur,
mais aussi les règles de l’honneur, de la probité et du désintéressement.
Ð
e ne jamais oublier ma responsabilité et mes devoirs envers le malade
et sa dignité humaine ; en aucun cas, je ne consentirai à utiliser mes
connaissances et mon état pour corrompre les mœurs et favoriser des actes
criminels.
Ð
Que les hommes m’accordent leur estime si je suis fidèle à mes promesses.
Que je sois couvert d’opprobre et méprisé de mes confrères si j’y manque. Charles BRISSET
Thèse soutenue le : 20 Octobre 2014
Directeur de Thèse : Delphine BON
Résumé de la thèse :
Compagnon de l'Officine depuis la mise en place du système SESAM-Vitale en 1998, les logiciels
de gestion d'officine (LGO) sont devenus au fil des années, un élément clé de l'outil informatique
du pharmacien officinal. Cet ouvrage propose une liste exhaustive des logiciels de gestion
d'officine (LGO) présents sur le marché français en 2014, un catalogue des fonctionnalités et
services proposées par les éditeurs en les classant par ordre de nécessité: les fonctionnalités
obligatoires d'un LGO, celles jugées indispensables, les fonctionnalités optionnelles et les services
que proposent les éditeurs de LGO.
Il poursuit avec un développement sur les différents acteurs et institutions qui interagissent avec
ces logiciels, notamment en décrivant les structures où les pharmaciens ont eu une participation
active. Un tableau succin comparant les éditeurs est proposé.
Une explication généraliste sur les logiciels libres est abordée, car ils sont utilisés au sein de
certains de ces logiciels métiers. Une analyse des chiffres de la télétransmission est entrepris par la
suite, avant une succession de tableaux classant les différents LGO du marché en fonction des
fonctionnalités qu'ils proposent, les systèmes d'exploitations sur lesquels ils tournent, les moteurs
de bases de données qu'ils utilisent.
Enfin une discussion conclue ce travail.
Mots clés:
Pharmacie, Informatique, Officine, logiciel métier, dossier pharmaceutique, carte vitale, logiciel de
gestion d'officine, OpenSource, Linux, Logiciels Libres, Pharmacovigilance, Système Informatique
de santé, base de données, coopérative, groupement
Les logiciels de gestion d'officine:
fonctionnalités et acteurs
Interrogation de grandes bases de connaissances
M´elanie K¨onig
To cite this version:
M´elanie K¨onig. Interrogation de grandes bases de connaissances. Artificial Intelligence. Universit´e
Montpellier 2, 2014. French.
HAL Id: tel-01089510
http://hal-lirmm.ccsd.cnrs.fr/tel-01089510
Submitted on 1 Dec 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Délivré par l’Université Montpellier II
Préparée au sein de l’école doctorale I2S
Et de l’unité de recherche UMR 5506
Spécialité: Informatique
Présentée par Mélanie König
Interrogation de grandes
bases de connaissances
algorithmes de réécriture de requêtes
conjonctives en présence de règles
existentielles
Soutenue le 24 octobre 2014 devant le jury composé de :
Encadrants
Mme. Marie-Laure Mugnier Professeur Univ. Montpellier II
M. Michel Leclère Maître de conférence Univ. Montpellier II
Rapporteurs
M. Bernardo Cuenca Grau Tenure Associate Professor Univ. Oxford
M. Igor Stephan Maître de conférence HDR Univ. Angers
Examinateurs
Mme. Marianne Huchard Professeur Univ. Montpellier II
M. Lhouari Nourine Professeur Univ. Blaise Pascal
Invités
Mme. Meghyn Bienvenu Chargé de recherche CNRS Univ. Paris Sud
M. Remi Coletta Maître de conférence Univ. Montpellier IISommaire
Sommaire 1
1 Introduction 3
2 Notions de base 9
2.1 Bases de la logique du premier ordre . . . . . . . . . . . . . . . . . . 9
2.2 Les faits et la requête . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 L’ontologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.1 Logiques de description . . . . . . . . . . . . . . . . . . . . . . 17
2.3.2 Les règles existentielles . . . . . . . . . . . . . . . . . . . . . . 20
2.3.3 Traduction d’une base de logique de description en une base
avec règles existentielles . . . . . . . . . . . . . . . . . . . . . 23
2.4 Les différentes approches . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4.1 Marche avant . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.4.2 Marche arrière . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3 Un cadre théorique pour la réécriture en UCQ 35
3.1 Propriétés d’un ensemble de réécritures . . . . . . . . . . . . . . . . . 35
3.2 Algorithme de réécriture . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.2.1 Terminaison et correction de l’algorithme . . . . . . . . . . . . 38
3.2.2 Adéquation et complétude . . . . . . . . . . . . . . . . . . . . 43
4 Une famille d’opérateurs de réécriture en union de requêtes conjonctives
45
4.1 Unification en présence de variables existentielles . . . . . . . . . . . 45
4.2 Substitution et partition . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3 Unificateur par pièce . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
4.4 Unificateur mono-pièce . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.5 Unificateur mono-pièce agrégé . . . . . . . . . . . . . . . . . . . . . . 59
4.6 Perspective d’amélioration . . . . . . . . . . . . . . . . . . . . . . . . 64
4.7 Comparaison aux algorithmes existants . . . . . . . . . . . . . . . . . 68
3SOMMAIRE 1
5 Compilation de règles 75
5.1 Prise en compte de règles hiérarchiques . . . . . . . . . . . . . . . . . 75
5.2 Extension aux règles compilables . . . . . . . . . . . . . . . . . . . . 76
5.3 Prise en compte d’un pré-ordre sur les atomes pour l’homomorphisme 81
5.4 Prise en compte d’un pré-ordre sur les atomes pour l’unification . . . 82
5.5 Introduction de l’opérateur de réécriture rew4 . . . . . . . . . . . . . 83
5.6 Évaluation d’une UCQ-pivot . . . . . . . . . . . . . . . . . . . . . . . 89
6 Implémentation 93
6.1 Calcul des unificateurs par pièce . . . . . . . . . . . . . . . . . . . . . 94
6.2 Mise en place de la compilation . . . . . . . . . . . . . . . . . . . . . 99
6.2.1 Saturation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
6.2.2 Codage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
6.2.3 Intégration du pré-ordre sur les atomes . . . . . . . . . . . . . 101
6.2.4 Déploiement d’une requête . . . . . . . . . . . . . . . . . . . . 103
6.3 Structures de données et optimisations pratiques . . . . . . . . . . . . 104
7 Évaluation 107
7.1 Présentation du benchmark . . . . . . . . . . . . . . . . . . . . . . . 107
7.2 Expérimentation des différentes versions de l’algorithme de réécriture 109
7.2.1 Comparaison en termes de nombre de requêtes . . . . . . . . . 110
7.2.2 Comparaison en termes de temps . . . . . . . . . . . . . . . . 112
7.3 Comparaison à l’existant . . . . . . . . . . . . . . . . . . . . . . . . . 114
7.3.1 Systèmes comparés . . . . . . . . . . . . . . . . . . . . . . . . 114
7.3.2 Comparaison expérimentale . . . . . . . . . . . . . . . . . . . 115
7.4 Impact de la décomposition en règles à conclusion atomique . . . . . 118
8 Conclusion 121
Index 128
Bibliographie 1322 SOMMAIREChapitre 1
Introduction
Dans ce manuscrit, nous abordons une problématique qui suscite beaucoup d’intérêt
actuellement dans les domaines de la représentation de connaissances, des bases
de données, et du web sémantique, celle de l’interrogation de données en présence
d’une ontologie (que nous noterons OBQA pour "ontology-based query answering").
Cette problématique est aussi appelée interrogation de bases de connaissances, une
base de connaissances étant alors composée de données, ou faits, et d’une ontologie,
qui exprime typiquement des connaissances générales sur le domaine d’application.
L’objectif est d’exploiter les connaissances exprimées par l’ontologie lors de l’interrogation
des données, de façon à obtenir des réponses plus riches. De façon générale,
l’ontologie permet d’inférer de nouveaux faits qui ne sont pas explicitement stockés
dans la base de données. Considérer une "couche" ontologique au-dessus des données
permet également d’enrichir le vocabulaire utilisé dans les requêtes, et ainsi de faire
abstraction de la façon dont les données sont effectivement stockées. Lorsque plusieurs
sources de données utilisent des vocabulaires différents, ceci permet également
de fournir une interface unifiée d’accès aux données.
L’exploitation de connaissances ontologiques de manière automatique est un défi
qui intéresse autant le monde industriel que le monde académique. Elle nécessite de
pouvoir représenter les connaissances de manière formelle. La famille de formalismes
la plus utilisée pour représenter des ontologies et effectuer les raisonnements associés
est celle des logiques de description [Baader et al., 2003]. Les logiques de description
(DLs), qui ont fait leur apparition dans les années 80, peuvent être vues comme des
fragments décidables de la logique du premier ordre. Dans ces langages, la représentation
des connaissances du domaine s’appuie sur des concepts, qui correspondent
à des prédicats unaires en logique du premier ordre, et des rôles, qui correspondent
à des prédicats binaires. Des constructeurs, qui diffèrent selon la logique de description
considérée, permettent de construire des concepts ou des rôles plus complexes à
partir d’autres. Les relations entre concepts et rôles sont exprimées par des axiomes
d’ inclusion de concepts ou de rôles. Historiquement, les problèmes considérés dans
le cadre des logiques de description correspondaient à des raisonnements sur les ontologies,
tels que la vérification de subsomption entre concepts, la détermination de
34 CHAPITRE 1. INTRODUCTION
l’appartenance d’une instance à un concept, ou encore la vérification de la satisfiabilité
d’une base de connaissances. Les logiques de description couramment utilisées
avaient une expressivité élevée, et le problème OBQA s’est avéré très complexe dans
ces logiques.
Dans le domaine des logiques de description, et plus généralement en représentation
de connaissances, de nombreux travaux visent à trouver un compromis satisfaisant
entre l’expressivité du formalisme considéré et la complexité des problèmes
de raisonnement associés. L’intérêt pour le problème OBQA a ainsi motivé l’étude
de logiques de description dites légères, comme la famille DL-Lite qui a été proposée
spécifiquement dans le cadre OBQA [Calvanese et al., 2005], ou la famille EL qui, si
elle a été introduite pour raisonner sur de grosses ontologies [Baader, 2003] , s’avère
bien adaptée à OBQA. Dans le cadre du web sémantique, l’exploitation automatique
d’ontologies a été rendue possible grâce à l’élaboration de standards du W3C
(World Wide Web Consortium) tels que RDFS, OWL et OWL2. Le langage OWL2
comporte en particulier des profils dits “traitables”, qui s’appuient sur les familles
de logiques de description légères EL et DL-Lite (ainsi que sur le langage de règles
Datalog pour l’un des profils citeabiteboul95).
Dans ce manuscrit, nous représentons les ontologies dans le formalisme des règles
existentielles [Baget et al., 2011a, Krötzsch and Rudolph, 2011], aussi connu sous
le nom de Datalog± [Calì et al., 2008, Calì et al., 2009]. Les règles existentielles
ont la même forme que les “tuple-generating dependencies”, des dépendances très
expressives étudiées de longue date en bases de données [Abiteboul et al., 1995].
Elles correspondent aussi à la traduction logique des règles de graphes conceptuels
[Salvat and Mugnier, 1996, Chein and Mugnier, 2009]. Les règles existentielles sont
de la forme H → C, où H, appelé hypothèse ou prémisse de la règle, et C, appelée
conclusion de la règle, sont des conjonctions d’atomes (sans fonction en dehors des
constantes). Leur spécificité réside dans le fait que les variables qui apparaissent
uniquement dans C sont quantifiées existentiellement, ce qui permet de représenter
des entités non identifiées, potentiellement non présentes dans la base initiale. Cette
capacité est reconnue comme cruciale pour la représentation de connaissances dans
le cadre d’un monde ouvert (“open world”) où l’on ne peut considérer que les données
sont complètes. Les règles existentielles généralisent les logiques de description
légères, en permettant la description de structures cycliques, et pas seulement arborescentes,
ainsi qu’en autorisant une arité quelconque des prédicats. Le fait de ne
pas borner l’arité des prédicats permet notamment une association naturelle entre
les prédicats du vocabulaire et un schéma de base de données relationnelle.
Exemple 1 (Règles existentielles) Considérons un vocabulaire permettant de dé-
crire le monde du cinéma, avec notamment les concepts (prédicats unaires) film et
acteur, et le rôle (prédicat binaire) joue ; intuitivement, joue(x, y) signifie que “x
joue dans y”). L’ontologie bâtie sur ce vocabulaire comporte la connaissance que “tout
acteur joue dans un film”, ce que l’on exprime par la règle existentielle suivante :
R = ∀x(acteur(x) → ∃y(joue(x, y) ∧ f ilm(y)))5
La variable y qui n’apparaît pas dans l’hypothèse de R est quantifiée existentiellement.
La règle R permet de dire qu’il existe un film dans lequel x joue, sans que
l’on sache quel est ce film.
Comme l’ontologie, les données peuvent être représentées dans différents modèles
de représentation, tels que les bases de données relationnelles, les bases de
graphes, de triplets RDFS, etc. Pour faire abstraction de ces représentations particulières,
nous considérons les données, ou faits, comme des formules (existentielles,
positives et conjonctives) de la logique du premier ordre. Enfin, en ce qui concerne
les requêtes, nous étudions les requêtes conjonctives, qui sont considérées comme
les requêtes fondamentales par la communauté des bases de données, car elles sont
à la fois évaluables efficacement et fréquemment utilisées. Dans ce document, pour
simplifier les notions de base, nous restreignons les requêtes aux requêtes conjonctives
booléennes, que l’on peut voir comme des formules positives et conjonctives
existentiellement closes. Toutefois, comme nous l’expliquerons, tous les résultats
peuvent être facilement étendus aux requêtes conjonctives non booléennes, ainsi
qu’aux unions de requêtes conjonctives.
Le problème que nous abordons peut donc être reformulé de la manière suivante
: étant donné une base de connaissances K, composée de faits et de règles
existentielles, et une requête booléenne conjonctive Q, est-ce que la réponse à Q
dans K est positive, c’est-à-dire Q est-elle logiquement impliquée par K ? La pré-
sence de variables existentielles en conclusion de règle, associée à des ensembles
d’atomes quelconques dans l’hypothèse de la règle, rend ce problème indécidable
avec des règles existentielles quelconques (voir notamment [Beeri and Vardi, 1981,
Chandra et al., 1981] sur les tuple-generating dependencies). Pour cette raison, de
nombreux travaux de recherche se sont attachés à trouver des sous-ensembles de
règles qui rendent le problème décidable, avec un bon compromis entre expressivité
et complexité du problème.
Exemple 2 (Problème OBQA) Reprenons l’exemple du monde du cinéma. Considérons
la requête booléenne conjonctive Q = ∃y joue(b, y), où b est une constante. Q
demande si b joue quelque part. Supposons que la base de connaissances K contienne
le fait F = acteur(b), ainsi que la règle R. Q est impliquée logiquement par K. La
réponse à Q est donc “oui” sur cette base de connaissances.
Il existe deux approches principales pour aborder le problème OBQA, qui sont
liées aux deux paradigmes de traitement des règles, en marche avant ou en marche arrière.
Ces deux approches peuvent être vues comme une façon de réduire le problème
OBQA à un problème d’interrogation classique de bases de données, en éliminant les
règles. La marche avant consiste à appliquer les règles sur les faits pour les enrichir
dans le but d’ajouter toutes les informations qui sont logiquement impliquées par
la base de connaissances initiale. La requête est ensuite évaluée sur la base de faits
enrichie. La marche arrière procède de manière “inverse” : elle utilise les règles pour
réécrire la requête “de toutes les façons possibles”. La requête réécrite est ensuite6 CHAPITRE 1. INTRODUCTION
Figure 1.1 – Marche avant - Marche arrière
évaluée sur la base de faits initiale. Ces deux approches sont illustrées dans la figure
1.1. Le traitement des règles en marche arrière présente un avantage évident lorsque
la taille des faits est trop importante pour que la matérialisation de toutes les informations
inférables de la base de connaissances soit raisonnable. De plus, elle ne
nécessite aucun accès en écriture aux données, cet accès pouvant être interdit, ou dif-
ficile si la base de données est distribuée. Comme elle ne modifie pas les données, ne
se pose pas non plus le problème de mettre à jour les inférences calculées lorsque les
données évoluent. Néanmoins, la taille de la réécriture peut être importante, parfois
exponentielle en la taille de la requête initiale, et donc peu efficacement évaluable
sur les faits, au moins avec les techniques actuelles de bases de données. Enfin, des
techniques qui combinent les deux approches ont été développées, en particulier la
technique appelée “approche combinée”[Lutz et al., 2009, Kontchakov et al., 2011].
Exemple 3 (Deux approches pour résoudre OBQA) Reprenons notre exemple.
Si Q est posée sur la base de faits réduite à F, la réponse à Q est non. En effet, il
est nécessaire de prendre en compte la règle R pour répondre positivement à Q. En
marche avant, R est appliquée à F : la connaissance ∃y0(joue(B, y0)∧f ilm(y0)) est
ajoutée à la base de faits, où y0 est une nouvelle variable. La base de faits enrichie
permet de répondre positivement à Q. La règle R peut aussi être utilisée en marche
arrière pour réécrire Q (intuitivement : “puisque tout acteur joue dans un film, si on
trouve que B est un acteur, on répond à Q”). La requête initiale Q est ainsi réécrite
en Q ∨ Q0
, où Q0 = acteur(B). Q0 ayant une réponse positive sur la base de faits
initiale, la réponse à la requête initiale est positive.
Organisation du mémoire
Dans ce document, nous nous concentrons sur les techniques de réécritures et
plus spécifiquement sur les techniques de réécritures d’une requête conjonctive initiale
Q en une union de requêtes conjonctives (UCQ) ? Une UCQ peut aussi être vue7
comme un ensemble de requêtes conjonctives, que nous appellerons réécritures de
Q. Notre but est de calculer un ensemble de réécritures qui soit à la fois adéquat (si
l’une des réécritures s’envoie sur les faits alors Q est impliqué par la base de connaissances)
et complet (si Q est impliqué par la base de connaissances alors l’une des
réécritures s’envoie sur les faits). Une autre propriété souhaitable de l’ensemble de ré-
écritures est sa minimalité : plus l’ensemble est petit, plus son évaluation sera rapide.
Étant donné que le problème n’est pas décidable avec un ensemble de règles existentielles
quelconques, il n’existe pas forcément d’ensemble de réécritures fini ayant les
propriétés d’adéquation et de complétude. Un ensemble de règles existentielles qui
assure l’existence d’un tel ensemble de réécritures pour n’importe quelle requête est
appelé ensemble à unification finie (finite unification set, fus) [Baget et al., 2011a].
Après l’introduction dans le chapitre 2, des notions de base nécessaires à la compréhension
de notre travail nous proposons dans le chapitre 3 un cadre théorique
permettant l’étude des techniques de réécritures. Nous définissons d’abord les propriétés
souhaitables d’un ensemble de réécritures (adéquation, complétude, minimalité).
Puis nous étudions un algorithme générique qui, étant donné une requête et un
ensemble de règles, calcule un ensemble de réécritures. Cet algorithme est paramétré
par un opérateur de réécriture, c’est-à-dire une fonction qui, étant donné une requête
et un ensemble de règles existentielles, retourne les réécritures “directes” de cette requête
par cet ensemble de règles. L’algorithme effectue une exploration en largeur de
l’espace des réécritures. A chaque étape, l’algorithme calcule l’ensemble des réécritures
directes des requêtes obtenues à l’étape précédente et conservées (toutes les
requêtes n’étant pas nécessairement conservées, pour des raisons que nous détaillerons
au chapitre 3). Nous définissons des propriétés d’un opérateur de réécriture qui
assurent que l’ensemble de réécritures calculé par l’algorithme est adéquat, complet,
et minimal si l’ensemble de règles existentielles est fus.
Dans le chapitre 4, nous présentons ensuite une famille d’opérateurs de réécritures.
Ces opérateurs de réécritures s’inspirent de travaux précédents sur les graphes
conceptuels [Salvat and Mugnier, 1996] et s’appuient sur la notion d’unificateur par
pièce. Comme pour la marche arrière classique, nos techniques s’appuient sur une
opération d’unification entre la requête et la conclusion de la règle. Nous nous arrê-
tons d’abord sur le problème que posent les variables existentielles dans les conclusions
de règles lors de cette phase d’unification, ce qui justifie la notion d’unificateur
par pièce qui remplace l’unification usuelle. Puis, nous étudions plusieurs opérateurs
de réécriture basés sur l’unification par pièce à la lumière des propriétés définies
dans le chapitre 3.
Dans le chapitre 5, nous proposons deux optimisations qui nous permettent de
traiter d’une manière plus efficace des règles simples mais très présentes dans les
ontologies réelles. Ces optimisations ouvrent sur d’autres formes de réécritures que
les UCQs, ce qui pose la question de la façon de les évaluer sur des données.
Nous détaillons l’implémentation de nos algorithmes dans le chapitre 6, en commençant
par la présentation de l’API sur laquelle s’appuie notre implémentation, et
de la hiérarchie de classes mise en place. Nous zoomons ensuite sur les algorithmes de8 CHAPITRE 1. INTRODUCTION
calcul des unificateurs par pièce et finissons par les structures de données utilisées
dans le cadre de nos deux optimisations. Nous avons réalisé une évaluation pratique
de nos algorithmes sur des benchmarks existants, présentée dans le chapitre 7.
Notre expérimentation comporte une comparaison interne de nos différents opérateurs,
puis une comparaison externe avec d’autres systèmes existants. Finalement,
nous concluons sur nos travaux et esquissons des perspectives dans le chapitre 8.
Publications associées
Les travaux présentés dans ce mémoire ont fait l’objet des publications suivantes :
Mélanie König, Michel Leclère, Marie-Laure Mugnier, Michaël Thomazo :
Sound, Complete, and Minimal UCQ-Rewriting for Existential Rules. Semantic
Web Journal (à paraître, http://www.semantic-web-journal.net/content/
sound-complete-and-minimal-ucq-rewriting-existential-rules-0)
Mélanie König, Michel Leclère, Marie-Laure Mugnier, Michaël Thomazo :
Sound, Complete, and Minimal Query Rewriting for Existential Rules. IJCAI 2013
Mélanie König, Michel Leclère, Marie-Laure Mugnier, Michaël Thomazo :
On the Exploration of the Query Rewriting Space with Existential Rules. 7th
International Conference on Web Reasoning and Rule Systems (RR 2013) : 123-137
Mélanie König, Michel Leclère, Marie-Laure Mugnier, Michaël Thomazo : A
Sound and Complete Backward Chaining Algorithm for Existential Rules. 6th
International Conference on Web Reasoning and Rule Systems (RR 2012) : 122-138
- Best paper award
Les résultats relatifs aux optimisations introduites dans le chapitre 5 n’ont pas
encore été publiés.Chapitre 2
Notions de base
Tout au long de ce manuscrit, nous nous intéressons au problème de l’interrogation
d’une base de connaissances (OBQA). Une base de connaissances K = (F,
O) est composée d’un ensemble de faits F et d’une ontologie O. La problématique
générale est de prendre en compte des connaissances générales sur le domaine, exprimées
dans l’ontologie, lors de l’interrogation des faits. Comme nous l’avons expliqué
dans l’introduction, nous utiliserons la logique du premier ordre pour exprimer les
différents composants du problème. Les notations logiques utilisées seront présentées
dans la première section. Dans les deux suivantes, nous formaliserons les trois composants
du problème : requête, faits puis ontologie avec laquelle nous présenterons
plusieurs langages ontologiques. Nous commencerons par présenter deux familles de
logiques de description EL et DL-Lite, puis nous continuerons avec les règles existentielles
et la traduction de EL et DL-Lite en règles existentielles. Pour finir ce
chapitre, nous parlerons de l’indécidabilité du problème étudié et de ses sous-cas
connus décidables.
2.1 Bases de la logique du premier ordre
Nous avons choisi d’utiliser le formalisme de la logique du premier ordre pour
exprimer les composants de notre problème, notamment les faits et la requête. Ce
choix est motivé d’une part par l’utilisation des règles existentielles qui utilisent aussi
ce formalisme et d’autre part pour faire abstraction de la technologie de stockage
des faits et du langage de requêtes associé. La lecture de ce manuscrit nécessite des
connaissances classiques sur la logique du premier ordre, que nous rappelons dans
cette section.
Définition 2.1 (Langage du premier ordre) Un langage du premier ordre L =
(P, C) est composé de deux ensembles disjoints : P est fini et contient des prédicats,
C peut être infini et contient des constantes. Chaque prédicat de P est associé à un
entier positif ou nul qui fixe son arité.
910 CHAPITRE 2. NOTIONS DE BASE
Du point de vue des langages formels, les formules sont des mots construits sur
l’alphabet formé :
• d’un langage du premier ordre L = (P, C),
• des connecteurs ¬, ∧, ∨, →,↔,
• des parenthèses (,),
• des quantificateurs universels ∀ et existentiel ∃,
• d’un ensemble infini de symboles de variables noté V (disjoint de P et C).
Le langage du premier ordre L fait donc parti de l’alphabet toutefois l’expression
“langage” du premier ordre est traditionnel en logique.
Par convention, nous notons les constantes avec les lettres du début de l’alphabet
a, b, c, . . . et les variables avec les lettres de fin de l’alphabet x, y, z, . . . .
Il faut aussi noter que nous ne considérons pas les symboles fonctionnels en
dehors des constantes qui peuvent être vues comme des symboles fonctionnel d’arité
nulle. Un terme de L est donc, soit un élément de C c’est-à-dire une constante, soit
une variable.
Définition 2.2 (atome) Soit L un langage du premier ordre. Un atome de L est
de la forme p(t1, . . . , tk) où p est un prédicat de P d’arité k et t1, . . . , tk sont des
termes de L. L’ensemble des termes d’un atome A est noté term(A), l’ensemble de
ses variables var(A), l’ensemble de ses constantes const(A) et son prédicat pred(A).
L’arité d’un prédicat p est notée arité(p).
Définition 2.3 (Formule bien formée) Soit L = (P, C) un langage logique, V
un ensemble infini de variables, Q = {∀, ∃} l’ensemble des quantificateurs, N =
{¬, ∧, ∨, →, ↔} l’ensemble des connecteurs et D = {(,)} un jeu de parenthèse. On
définit par induction F BF(L) l’ensemble des formules bien formées (fbf ), construites
sur L :
• base :
– F BF(L) contient l’ensemble des atomes construits sur L.
– F BF(L) contient ⊥ et > dans la mesure où ces symboles sont admis.
• induction : soit ϕ, ψ ∈ F BF(L) et x ∈ V :
– ¬ϕ ∈ F BF(L).
– (ϕ ∧ ψ),(ϕ ∨ ψ),(ϕ → ψ),(ϕ ↔ ψ) ∈ F BF(L).
– ∀x ϕ, ∃x ϕ ∈ F BF(L).2.1. BASES DE LA LOGIQUE DU PREMIER ORDRE 11
Dans la fbf ∀x ϕ, respectivement ∃x ϕ, x est la variable quantifiée et ϕ est la
portée de la quantification ∀x, respectivement ∃x. Une occurrence d’une variable
x est liée si elle est dans la portée d’une quantification portant sur x, sinon cette
occurrence est libre.
Définition 2.4 (formule fermée) Une fbf est dite fermée lorsqu’elle n’a aucune
variable libre.
Nous rappelons maintenant la définition de l’interprétation d’un langage logique :
Définition 2.5 (Interprétation d’un langage logique) L’interprétation (D, I)
d’un langage logique L = (P, C) est constituée d’un ensemble non vide D appelé
domaine d’interprétation et de I une fonction d’interprétation des symboles de L
telle que :
• pour tout c ∈ C, I(c) ∈ D
• pour tout p ∈ P d’arité k, I(p) ⊆ Dk
Une interprétation de L est un modèle d’une formule sur L si elle rend vrai cette
formule, en considérant l’interprétation classique des connecteurs et quantificateurs
logiques.
Définition 2.6 (Satisfiabilité) Une formule est satisfiable si elle admet au moins
un modèle.
Une formule est insatisfiable si elle n’admet aucun modèle.
Lorsque deux formules ont les mêmes modèles ont dira qu’elles sont équivalentes.
Définition 2.7 (Équivalence logique) Soit F1 et F2 deux fbf fermées d’un même
langage du premier ordre L. On dit qu’elles sont logiquement équivalentes si pour
toute interprétation elles ont la même valeur de vérité. On note F1 ≡ F2.
Lorsque l’ensemble des modèles d’une formule est inclus dans celui d’un ensemble
de formules, on dira que cette formule est conséquence logique de l’ensemble de
formules.
Définition 2.8 (Conséquence logique) Soit H1, . . . , Hn et C des fbf fermées
d’un même langage du premier ordre L. On dit que C est une conséquence logique
de (ou est impliquée par) H1, . . . , Hn lorsque toute interprétation I de L qui est un
modèle de H1 ∧ · · · ∧ Hn est un modèle de C. On note H1, . . . , Hn |= C.
On a immédiatement que pour toutes fbf fermées F1 et F2, F1 ≡ F2 si et seulement
si F1 |= F2 et F2 |= F1.12 CHAPITRE 2. NOTIONS DE BASE
Définition 2.9 (Littéral, clause, clause vide, clause de Horn, forme clausale)
Un littéral est un atome ou la négation d’un atome.
Une clause est une disjonction de littéraux quantifiée universellement. La clause
vide est la disjonction de zéro littéraux, elle s’évalue toujours à faux.
Une clause de Horn est une clause dans laquelle il y a au plus un littéral positif.
Une forme clausale est une conjonction de clauses.
On voit souvent les clauses comme des ensembles d’atomes et les formes clausales
comme des ensembles d’ensembles d’atomes.
Définition 2.10 (Substitution) Soit X un ensemble de variables et T un ensemble
de termes. Une substitution σ de X dans T est une application de X dans
T.
Appliquer une substitution σ à une formule (ou à tout objet contenant des termes)
consiste à remplacer toute variable x ∈ X par son image σ(x) ∈ T.
Une substitution σ de X dans T sera représentée par un ensemble de couples
{(x1, σ(x1)), . . . ,(xk, σ(xk))} où les xi sont les éléments de X.
Deux listes de termes sont unifiables s’il existe une substitution qui les rend
identiques.
Définition 2.11 (Unificateur logique) Soit L1, . . . , Ln des listes de termes, un
unificateur (logique) de L1, . . . , Ln est une substitution de var(L1) ∪ · · · ∪ var(Ln)
dans term(L1) ∪ · · · ∪ term(Ln) telle que u(L1) = · · · = u(Ln).
On étend cette définition à des atomes : des atomes sont unifiables s’ils ont même
prédicat et si leur liste de termes sont unifiables. En général, il existe plusieurs
unificateurs d’un ensemble E d’atomes ou de termes mais on s’intéressera à ceux
qui “transforment” le moins possible les éléments de E.
Définition 2.12 (Unificateur le plus général) Un unificateur u d’un ensemble
E est un unificateur le plus général (upg) si tout autre unificateur u
0
s’obtient par
une substitution supplémentaire s : u
0 = s ◦ u.
Un ensemble peut avoir plusieurs upg mais dans ce cas, on peut passer de l’un à
l’autre par un simple renommage de variables.
Exemple 4 Soit E = {p(x, y, z), p(u, a, z)p(b, y, v)} où a et b sont des constantes
et u, v, x, y, z sont des variables. {(x, b),(u, b),(y, a),(z, v)} est un upg
de E mais {(x, b),(u, b),(y, a),(v, z)} est aussi un upg, on peut passer de
l’un à l’autre en renommant v en z et vice-versa. En revanche, l’unificateur
{(x, b),(u, b),(y, a),(z, b),(v, b)} n’est pas un upg car il s’obtient du premier (par
exemple) par la substitution supplémentaire {(v, b)}.2.1. BASES DE LA LOGIQUE DU PREMIER ORDRE 13
La méthode de résolution due à J.A. Robinson 1965 permet en s’appuyant sur
l’unification de tester si un ensemble de clauses est satisfiable, c’est-à-dire s’il admet
au moins un modèle. Ainsi, elle permet de tester si une formule C est une
conséquence logique d’un ensemble de formules {H1, . . . , Hn} en vérifiant si la forme
clausale associée à H1 ∧ · · · ∧ Hn ∧ ¬C est insatisfiable. Toute formule F peut-être
mise sous forme clausale, qui ne lui est pas forcément équivalente, mais qui préserve
la satisfiabilité : F est insatisfiable si et seulement si sa forme clausale est insatis-
fiable. Cette mise sous forme clausale utilise la skolémisation pour supprimer les
quantificateurs existentiels : après avoir mis la formule sous forme prénexe (c’est-
à-dire avec tous les quantificateurs en tête de formule), chaque variable quantifiée
existentiellement est remplacée par une nouvelle fonction dite de Skolem portant sur
les variables quantifiées universellement qui précèdent.
Exemple 5 Soit F = ∀x (q(x) ∨ ∃y (p(x, y) ∧ q(y, x))).
Une forme prénexe de F est : ∀x∃y(q(x) ∨ (p(x, y) ∧ q(y, x))).
Pour obtenir la forme clausale associée, il reste à skolémiser : ∀x (q(x)∨(p(x, f(x))∧
q(f(x), x))), la variable y étant remplacée par une fonction de Skolem portant sur x
car son quantificateur est dans la portée de celui de x.
Pour finir on distribue les ∧ et ∨ pour obtenir une conjonction de clauses :
∀x ((q(x) ∨ p(x, f(x))) ∧ (q(x) ∨ q(f(x), x))).
La méthode de résolution s’appuie sur une règle dites de résolution qui unifie
les parties complémentaires de deux clauses grâce à un upg pour produire une nouvelle
clause. Si un littéral est positif, son complémentaire est obtenu en ajoutant
une négation devant, sinon il est obtenu en supprimant sa négation. Le complémentaire
d’un ensemble de littéraux est obtenu en remplaçant chaque littéral par son
complémentaire.
Définition 2.13 (Règle de résolution) Soit C1 et C2 deux clauses sans variable
en commun et soit L1 ⊆ C1 et L2 ⊆ C2 tel que L1 et le complémentaire de L2 sont
unifiables par un upg u. La résolvante de C1 et C2 selon L1, L2 et u est la clause
(u(C1) \ u(L1)) ∪ (u(C2) \ u(L2))
La méthode de résolution est adéquate et complète : il existe une suite finie de ré-
solutions menant à la clause vide si et seulement si la forme clausale est insatisfiable.
On peut lui associer un algorithme de recherche en largeur 1
: partant de l’ensemble
de clauses initiales, à chaque étape on calcule toutes les résolvantes d’un ensemble
de clauses, les ajoute à l’ensemble de clauses et on recommence jusqu’à obtenir la
clause vide ou qu’il n’existe plus de nouvelles résolvantes. Cet algorithme assure que
l’on produira la clause vide s’il existe une suite finie de résolution y menant.
1. “breath-first” en anglais14 CHAPITRE 2. NOTIONS DE BASE
2.2 Les faits et la requête
Les faits sont des données spécifiques sur les individus de la base. Il existe de
nombreuses technologies permettant de stocker des faits, les plus connues sont bien
sûr les bases de données relationnelles mais d’autres comme les bases de graphes
ou les “triple-stores” peuvent aussi être pertinentes en fonction du contexte d’utilisation.
Nous utilisons la logique du premier ordre pour faire abstraction de ces
technologies. Habituellement en logique, les faits sont des ensemble d’atomes qui
contiennent seulement des constantes, ici nous généralisons cette notion pour que
les faits puissent contenir aussi des variables existentiellement quantifiées. La première
raison est que les règles existentielles produisent des variables existentielles,
mais cela permet aussi d’inclure naturellement les “blank nodes” de RDF et les
valeurs manquantes de bases de données relationnelles.
Définition 2.14 (Fait) Soit L un langage logique, un fait sur L est une conjonction
d’atomes de L existentiellement fermée.
Nous étendons les notations de l’ensemble des termes et de l’ensemble des variables
à un fait. Dans un souci de simplicité, nous omettons les quantificateurs des
faits dans les chapitres suivants, car les formules qui représentent les faits sont toujours
existentiellement fermées. De plus, nous considérons souvent les faits comme
des ensembles d’atomes afin de pouvoir utiliser les notions classiques de théorie des
ensembles, comme l’inclusion ou l’union, directement sur les faits. Cette vision supprime
les duplications d’atomes, en effet, une formule avec un atome dupliqué telle
que ∃x(p(x) ∧ p(x)) sera vu par le même ensemble {p(x)} que la formule ∃x p(x)
mais ce n’est pas gênant car ces deux formules sont trivialement équivalentes. Il faut
aussi noter que l’on ne fera pas de distinction entre un seul fait et un ensemble de
faits, en effet, un ensemble de faits est une conjonction de faits et donc assimilable
à un fait. De la même manière, on utilisera indifféremment les termes de fait et de
base de faits. Voici un exemple illustrant les notions vues précédemment :
Exemple 6 Soit F la formule logique du premier ordre suivante :
∃x∃y∃z(r(x, y) ∧ p(x, x, a) ∧ r(a, z))
F est existentiellement fermée donc est un fait et var(F) = {x, y, z}, term(F) =
{x, y, z, a}.
F peut aussi être vu comme l’ensemble {r(x, y), p(x, x, a), r(a, z)}
Il faut noter qu’il faut prendre quelques précautions avec les variables de même
nom lorsque l’on considère des variables existentielles dans les faits.
Exemple 7 Soit F1 = ∃x∃y(p(x, y) ∧ q(y, a)), où a est une constante, et F2 =
∃x p(x, x). F1 et F2 sont des faits. La formule F1 ∧ F2 peut être vue comme un
seul fait et obtenu en considérant une forme prénexe, ce qui implique de renommer
la variable x dans F1 ou F2 . On obtient par exemple ∃x∃y∃z(p(x, y) ∧ q(y, a) ∧
p(z, z)),qui peut aussi être vu comme l’ensemble d’atomes {p(x, y), q(y, a), p(z, z)}.2.2. LES FAITS ET LA REQUÊTE 15
Nous considérons classiquement des requêtes conjonctives, c’est-à-dire une
conjonction d’atomes dont certaines variables sont existentiellement quantifiées. Les
variables libres de la requête sont nommées variables réponses, une réponse à la
requête est une instanciation de ces variables par des termes de la base de connaissances.
Définition 2.15 (Réponse à une requête) Soit F un ensemble de faits, vu
comme une seule formule et Q une requête avec comme ensemble ordonné de variables
réponses (x1, . . . , xk). Le tuple (a1, ..., ak) où chaque ai est une constante est
une réponse à Q si F |= Qa, où Qa est obtenue de Q en remplaçant chaque xi par
ai
Les requêtes conjonctives sont les requêtes de base de tous les langages de requêtes,
de plus ce sont les plus fréquemment utilisées en base de données relationnelle.
Voici un exemple de traduction d’une requête conjonctive dans différents langages
de requêtes.
Exemple 8 Requête : "trouver les x qui jouent dans un film".
• Logique du premier ordre : ∃y(f ilm(y) ∧ joue(x, y))
• Datalog : answer(x) :- f ilm(y), joue(x, y).
• SQL :
SELECT joue.acteur FROM joue,films
WHERE joue.œuvre = films.titre
• SPARQL :
SELECT ?x WHERE {
?y rdf :type .
?y ?x }
Lorsque la formule est fermée, on l’appelle requête conjonctive booléenne. Par la
suite, nous considérerons seulement des requêtes conjonctives booléennes sans perte
de généralité (voir section 4.3), nous les appellerons requête ou CQ. La réponse à
une requête booléenne est vrai si la requête se déduit de la base de connaissances.
On peut remarquer qu’il n’y a pas de différence entre la représentation des requêtes
booléennes et des faits, la seule différence est conceptuelle.
De la même manière que pour les faits, nous omettons ensuite les quantificateurs
puisque les formules pour les requêtes seront toujours existentiellement fermées. Les
requêtes seront aussi vues comme des ensembles d’atomes. Il est aussi important
de noter que tout le travail qui suit peut être facilement étendu aux unions de
requêtes conjonctives. Une union de requête conjonctive est une disjonctions de requête
conjonctives, si les requêtes sont booléennes, sa réponse est positive seulement
si la réponse à l’un des requêtes qui la composent est positive. Si les requêtes ne
sont pas booléennes, les réponses à une union de requêtes conjonctives est l’union
des réponses des requêtes qui la composent.16 CHAPITRE 2. NOTIONS DE BASE
Exemple 9 Soit Q = ∃x∃y(r(x, y) ∧ q(y)) une requête booléenne. Q peut aussi être
vue comme l’ensemble {r(x, y), q(y)}
Avant de pouvoir prendre en compte une ontologie, il est nécessaire de se pencher
sur le problème de la conséquence logique. On sait que la conséquence logique est
équivalente à l’existence d’un homomorphisme de G dans F (voir par exemple le
théorème d’homomorphisme dans [Abiteboul et al., 1995]). Un homomorphisme de
G dans F est une application des variables de G dans les termes de F qui préserve
les atomes.
Définition 2.16 (Homomorphisme, isomorphisme) Un homomorphisme d’un
ensemble d’atomes source G vers un ensemble d’atomes cible F est une substitution
π de var(G) dans term(F) telle que π(G) ⊆ F. On dit que G s’envoie sur F par π
ou que G subsume F.
Un isomorphisme d’un ensemble d’atomes G vers un ensemble d’atomes F est
une substitution bijective σ de var(G) dans var(F) telle que σ(G) = F ; on appellera
σ un renommage bijectif de variables.
Lorsqu’il existe un homomorphisme d’un ensemble d’atomes G dans un ensemble
d’atomes F, on dira que G est plus général que F ou F est plus spécifique que G, on
note G ≥ F. Les ensemble d’atomes les plus généraux d’un ensemble sont ceux qui
ne sont plus spécifiques à aucun autre de l’ensemble. Dans la suite du manuscrit, on
utilisera fréquemment le pré-ordre ≥ induit par l’homomorphisme pour comparer
les faits ou requêtes entre eux.
Théorème 1 Soit F et G deux faits, avec F possiblement infini. F |= G si et
seulement s’il existe un homomorphisme de G dans F.
Exemple 10 Soit deux faits G = q(x)∧p(x, y)∧p(z, y) et F = q(a)∧p(a, t)∧q(a, t).
Soit la substitution π = {(x, a),(y, t),(z, a)}, π(G) = q(a) ∧ p(a, t) ∧ p(a, t) donc π
est un homomorphisme de G dans F et F |= G.
Certains atomes d’un fait peuvent être redondants et ne pas apporter d’informations
supplémentaires. Lorsque l’on voudra faire référence seulement à la partie
"essentielle" d’un fait, on parlera de noyau 2 qui est une notion classique pour les
graphes mais est aisément transférable aux faits (voir [Hell and Nesetril, 1992] qui
situe son introduction à la fin des années 60).
Définition 2.17 (Noyau) Le noyau d’un fait F, noté noyau(F), est un sousensemble
minimal (selon l’inclusion) de F équivalent à F.
2. par traduction de “core” en anglais2.3. L’ONTOLOGIE 17
Comme nous le montre l’exemple suivant, un fait peut avoir deux noyaux diffé-
rents mais ils sont toujours isomorphes donc identiques à un renommage de variables
près, c’est la raison pour laquelle nous nous permettons de considérer que le noyau
est unique. De plus, il est bien connu que deux faits équivalents ont des noyaux
isomorphes.
Exemple 11 Soit F = t(y) ∧ p(x, y) ∧ p(z, y) F a deux noyaux, t(y) ∧ p(x, y) et
t(y) ∧ p(z, y) qui sont isomorphes.
2.3 L’ontologie
L’ontologie contient des connaissances générales sur le domaine, telles qu’une
hiérarchie de types par exemple. L’un des formalismes privilégiés pour la représentation
d’ontologies est celui des logiques de description (DLs). Il s’agit d’une famille
de langages dans laquelle les différentes DLs proposées se différencient par leur
compromis expressivité/complexité. Historiquement, les DLs ont été conçues pour
mettre en œuvre des raisonnements par classification sur une ontologie (c’est-à-dire
pour comparer deux classes ou un individu et une classe par subsomption). Elles
sont malheureusement peu adaptées au problème de l’interrogation d’une base de
connaissances pour lequel elles ont une complexité trop importante. Pour répondre
à ce problème, de nouvelles DLs, moins expressives, mais ayant une complexité
moindre, ont été proposées et baptisées DLs légères. Dans la section qui suit, nous
présenterons les DLs légères les plus connues DL-Lite et EL. Une autre manière de
formaliser les connaissances d’une ontologie est d’utiliser les règles existentielles ;
c’est ce formalisme qui est principalement considéré dans ce manuscrit et qui est
présenté dans la seconde section.
2.3.1 Logiques de description
Les DLs sont composées d’une ABox représentant la base de faits et d’une TBox
décrivant l’ontologie. La TBox est un ensemble d’axiomes ontologiques qui s’appuient
sur des concepts, qui sont les catégories auxquelles peuvent appartenir les
individus de la base, et des rôles qui permettent d’exprimer une relation entre deux
individus de la base. L’axiome le plus couramment utilisé est l’axiome d’inclusion
entre deux concepts C1 et C2, qui signifie que tous les individus du concept C1 appartiennent
aussi au concept C2. Les concepts et les rôles peuvent être atomiques ou
construits au moyen d’autres concepts et rôles, et de constructeurs. L’expressivité
d’une DL est plus ou moins grande selon les constructeurs autorisés. Voici un aperçu
des principaux constructeurs de concepts et de rôles :
intersection de concepts notée C1 u C2, est composé des individus qui appartiennent
à la fois au concept C1 et au concept C2.18 CHAPITRE 2. NOTIONS DE BASE
union de concepts notée C1 t C2, est le concept regroupant les individus des
concepts C1 et C2.
restriction universelle notée ∀r.C, est composé des individus qui ne sont en relation
par le rôle r qu’avec des individus du concept C.
restriction existentielle notée ∃r.C, est composé des individus qui sont en relation
par le rôle r à un individu du concept C.
restriction existentielle non qualifiée notée ∃r, il s’agit du concept composé
des individus qui sont en relation par le rôle r à un individu quelconque.
négation d’un concept notée ¬C, est le complémentaire du concept C dans la
base, c’est-à-dire l’ensemble des individus qui n’appartiennent pas au concept
C.
inverse d’un rôle noté r
−, si un individu a est en relation avec un individu b par
le rôle r alors b est en relation avec a par le rôle r
−
Les logiques de description utilisent aussi le concept universel > auquel appartiennent
tous les individus et le concept ⊥ auquel n’appartient aucun individu. La
ABox des logiques de description considérées ici contient uniquement des assertions
de la forme :
A(a) r(a, b)
où A est un concept atomique, r un rôle atomique et a et b des individus.
La logique de description EL
Pour des raisons historiques, les premières logiques de description étudiées favorisaient
l’utilisation de la restriction universelle à la restriction existentielle. Pourtant
la restriction universelle est un facteur important de complexité pour les problèmes
de raisonnements même basiques. Ceci a motivé l’étude de EL [Baader, 2003], dont
l’objectif était de gérer de grandes ontologies en permettant le raisonnement "intra
TBox" (satisfiabilité, subsomption de concepts...) en temps polynomial. De plus, son
expressivité s’avère suffisante pour un certain nombre de cas pratiques importants
tels que l’ontologie biomédicale SNOMED.
La TBox quant à elle peut contenir des inclusions de concepts de la forme :
C1 v C2
où C1 et C2 sont des concepts construits selon la règle suivante :
C ::= >|A|C1 u C2|∃r.C1
où A est un concept atomique, C1 et C2 des concepts construits et r un nom de
rôle. Il existe un nombre important d’extensions de EL dont la plus fréquemment2.3. L’ONTOLOGIE 19
rencontrée pour l’interrogation d’une base de connaissances est ELHI. ELHI étend
EL en autorisant l’utilisation des rôles inverses et l’inclusion de rôles dans la T Box
r v s pour l’inclusion du rôle r dans le rôle s, qui signifie que deux individus en
relation par le rôle r le sont aussi par le rôle s.
La logique de description DL-Lite
DL-Lite est une famille de logiques de description qui a été introduite dans
[Calvanese et al., 2005]. Elle a été conçue pour exprimer des ontologies simples tout
en conservant une complexité basse pour l’interrogation, c’est-à-dire polynomiale en
fonction de la taille de l’ontologie en complexité de données. Le but étant, non plus
de vérifier simplement la subsomption de concepts ou la satisfiabilité de la base de
connaissances comme c’était le cas pour les DLs antérieures, mais de répondre à des
requêtes complexes et notamment aux requêtes conjonctives sur une base stockée en
mémoire secondaire. L’idée principale est d’utiliser la TBox pour reformuler la requête
en un ensemble de requêtes qui sont directement évaluées sur la ABox stockée
en mémoire secondaire et gérée par un système de gestion des bases de données relationnelle.
Cette méthode a l’avantage de permettre de séparer la ABox de la TBox
et de profiter des optimisations pour le requêtage implémentées dans les systèmes de
gestion de base de données. Nous présenterons ici les deux membres les plus simples
de la famille DL-Lite core et DL-LiteR qui constituent la base du langage du web
sémantique OWL 2 QL.
Le premier membre de la famille DL-Lite core constitue la base de tous les autres
membres de la famille. Il permet d’exprimer une négation très restreinte puisqu’elle
ne peut porter que sur un rôle ou un concept basique et ne peut apparaître qu’en
partie droite d’une inclusion. De plus, seule la restriction existentielle non qualifiée
de rôles basiques est autorisée. Les rôles de DL-Lite core sont de deux types :
• rôles basiques : q = p|p
−
• rôles généraux : r = q|¬q
où p est un rôle atomique et p
− est l’inverse d’un rôle atomique. De la même manière
il y a deux types de concepts :
• concepts basiques : B = A|∃q
• concepts généraux : C = B|¬B
où A est un concept atomique et q un rôle basique.
De plus, la TBox ne contient que des inclusions de concepts de la forme suivante :
B v C
où B est un concept basique et C est un concept général.20 CHAPITRE 2. NOTIONS DE BASE
Dans une TBox DL-LiteR, on autorise aussi certaines inclusions de rôles :
q v r
où q est un rôle basique et r est un rôle général.
2.3.2 Les règles existentielles
Nous arrivons maintenant au formalisme adopté dans ce manuscrit, les
règles existentielles. Les règles ont dès le début été associées à l’intelligence
artificielle, notamment dans les systèmes experts, puis dans la programmation
logique. Les règles existentielles [Baget et al., 2011a] apparaissent
sous différentes formes équivalentes dans la littérature : tuple-generating dependencies
(TGD) [Abiteboul et al., 1995], règles Datalog∃
[Calì et al., 2008]
renommées Datalog± dans [Calì et al., 2009], règles de graphes conceptuels
[Salvat and Mugnier, 1996],∀∃-rules [Baget et al., 2009], . . .
Définition 2.18 (Règles existentielles) Les règles existentielles sur un langage
logique L sont des formules fermées de la forme :
R = ∀X~ ∀Y~ (H[X, ~ Y~ ] → ∃Z~(C(Y , ~ Z~)))
où H et C sont des conjonctions finies d’atomes sur L appelées respectivement hypothèse,
prémisse ou corps en programmation logique et conclusion ou tête de la
règle et notées hyp(R) respectivement concl(R). L’ensemble de variables Y~ , partagé
par l’hypothèse et la conclusion, est appelé frontière de la règle et noté fr(R).
Par souci de concision, dans les chapitres suivants, les règles existentielles seront
appelées simplement règles et les quantificateurs et le parenthésage seront omis dans
les règles puisqu’il n’y a pas d’ambiguïté.
Exemple 12 Voici une règle existentielle :
R = ∀x∀y((p(x, y) ∧ q(y)) → ∃z(r(y, z) ∧ q(z)))
ou plus simplement :
R = p(x, y) ∧ q(y) → r(y, z) ∧ q(z)
et ses principaux composants : hyp(R) = p(x, y)∧q(y) , concl(R) = r(y, z)∧q(z) et
fr(R) = {y}.
Une règle existentielle n’est pas une clause (a fortiori une clause de Horn) à cause
de la présence des variables existentielles, les deux sont cependant fortement liées
car par skolémisation, on obtient des clauses de Horn (avec symbole fonctionnel).
Dans le cas des règles existentielles, cette skolémisation revient à remplacer chaque
variable existentielle de la conclusion par une fonction de skolem portant sur les
variables de la frontière.2.3. L’ONTOLOGIE 21
Exemple 13 Soit R = ∀x∀y(p(x, y) → ∃z∃t(s(x, z) ∧ s(z, t) ∧ s(t, x))).
La formule logique associée, non skolémisée, obtenue en faisant remonter les quantificateurs
existentiels le plus en avant possible est la suivante :
∀x∃z∃t∀y(¬p(x, y) ∨ (s(x, z) ∧ s(z, t) ∧ s(t, x)))
En la skolémisant on obtient :
∀x∀y(¬p(x, y) ∨ (s(x, f(x)) ∧ s(f(x), g(x)) ∧ s(g(x), x)))
à partir de laquelle on obtient trois clauses de Horn :
¬p(x, y) ∨ s(x, f(x)) ¬p(x, y) ∨ s(f(x), g(x)) ¬p(x, y) ∨ s(g(x), x)
Ces clauses auraient été obtenues directement en remplaçant les variables existentielles
par des fonctions de skolem portant sur la frontière et en découpant la règle
en trois règles à conclusion atomique :
• ∀x∀y(p(x, y) → s(x, f(x)))
• ∀x∀y(p(x, y) → s(f(x), g(x)))
• ∀x∀y(p(x, y) → s(g(x), x))
Les règles existentielles permettent de produire de nouveaux faits à partir des
faits existants.
Définition 2.19 (Application d’une règle) Soit F un fait, et R = H → C une
règle existentielle. R est applicable à F s’il existe un homomorphisme π de H dans
F. Dans ce cas, l’application de R sur F produit un fait α(F, R, π) = F ∪ π
safe(C),
avec π
safe(C) = π(δ(C)) où δ est une substitution qui renomme chaque variable de
C qui n’appartient pas au domaine de π, par une variable fraîche, c’est-à-dire une
nouvelle variable n’apparaissant nulle part ailleurs.
Voici un exemple d’application de la règle précédente :
Exemple 14 Soit R = p(x, y) ∧ q(y) → r(y, z) ∧ q(z) et F = p(a, b) ∧ q(b) ∧ r(a, b).
R est applicable à F par π = {(x, a),(y, b)} et produit le fait :
p(a, b) ∧ q(b) ∧ r(a, b) ∧ r(b, z1) ∧ q(z1)
où z1 est une nouvelle variable quantifiée existentiellement.
Il existe aussi deux types de règles particulières, les règles avec égalité et les
contraintes négatives. Les règles avec égalité généralisent la dépendance fonctionnelle.22
CHAPITRE 2. NOTIONS DE BASE
Définition 2.20 (Règle avec égalité) Les règles avec égalité sur un langage logique
L sont des formules fermées de la forme :
R = ∀X~ (H[X~ ] → xi = xj ))
où H est une conjonction finie d’atomes sur L et xi et xj sont des variables distinctes
de X~ .
Les contraintes négatives expriment qu’un certain fait ne doit pas être déductible
de la base. Elles sont souvent utilisées pour exprimer la disjonction de concepts ou
l’incompatibilité de relation.
Définition 2.21 (Contrainte négative) Les contraintes négatives sur un langage
logique L sont des formules fermées de la forme :
R = ∀X~ (H[X~ ] → ⊥))
où H est une conjonction finie d’atomes sur L.
Comme pour les règles existentielles classiques, les règles avec égalité et les
contraintes négatives sont applicables à un fait lorsqu’il existe un homomorphisme π
de leur hypothèse dans le fait. Pour l’application, par un homomorphisme π, d’une
règle avec égalité dont la conclusion est xi = xj
, il faut remplacer dans le fait toutes
les occurrences de π(xi) par π(xj ) (ou indifféremment toutes les occurrences de π(xj )
par π(xi)). Lorsqu’une contrainte négative est applicable sur un fait, celui-ci devient
inconsistant et tout est déductible de lui.
Le principal avantage des règles existentielles est leur capacité à attester de l’existence
d’entités non identifiées. Cette propriété, appelée invention de valeur en base
de données, est essentielle pour la représentation de connaissances ontologiques en
domaine ouvert. De plus, les règles existentielles généralisent la plupart des langages
ontologiques utilisés pour l’interrogation. Notamment, les logiques de description
vues précédemment sont toutes traduisibles en règles existentielles. C’est aussi le cas
des principaux fragments du langage du web sémantique OWL qui sont dits “traitable”
tels que OWL 2 QL, OWL 2 RL, OWL 2 EL (http ://www.w3.org/TR/owl2-
profiles/). DL-LiteR forme le cœur de OWL 2 QL tandis que OWL 2 EL est formé
par EL et plus exactement EL ++ qui autorise en plus des constructeurs de EL, le
concept ⊥ qui permet d’exprimer la disjonction de concepts, la composition de rôles
dans des axiomes d’inclusion de rôles qui permet notamment d’exprimer la transitivité
sur les rôles, les concepts nominaux (concept composé d’un seul individu)
et une version restreinte des domaines concrets [Baader et al., 2005]. EL ++ étant
indécidable pour l’interrogation, on se ramènera plus communément à ELHI pour
l’interrogation. Le troisième fragment OWL 2 RL est lui étroitement lié au langage
de règles Datalog. Toutes les logiques de descriptions légères sont exprimables au
moyen des règles existentielles.2.3. L’ONTOLOGIE 23
2.3.3 Traduction d’une base de logique de description en une
base avec règles existentielles
La traduction d’une base de DL en une base avec règles existentielles se fait
naturellement. Pour chaque individu présent dans la base on associe une constante
du même nom dans le langage logique, pour chaque concept atomique un prédicat
unaire du même nom et pour chaque rôle un prédicat binaire du même nom. Ainsi, si
on appelle Φ la fonction de traduction, si A est un concept atomique ΦA(x) = A(x)
et si r est un rôle atomique, Φr(x, y) = r(x, y).
La ABox est traduite à partir de cette fonction en un ensemble de faits. Par
exemple, l’assertion A(a) sera traduite en A(a) où A est un prédicat unaire et a une
constante, r(a, b) sera traduite en r(a, b) où r est un prédicat binaire et a et b des
constantes.
La T Box sera traduite en un ensemble de règles. Pour chaque assertion de la
forme B vC, on crée une règle ∀x (ΦB(x) → ΦC(x)) où ΦB est la traduction du
concept B et ΦC celle du concept C. Pour un axiome d’inclusion de rôles r v s dans
une TBox, on utilisera la traduction suivante ∀x, y (Φr(x, y) → Φs(x, y)) où Φr est
la traduction du rôle r et Φs celle du rôle s.
Les concepts et rôles construits se traduisent de la manière suivante :
• Φ∃r(x) = ∃y (Φr(x, y))
• Φr− (x, y) = Φr(y, x)
• ΦCuD(x) = ΦC(x) ∧ ΦD(x)
• Φ∃ r.C(x) = ∃y (Φr(x, y) ∧ ΦC(y))
La traduction des concepts composés d’une restriction existentielle de rôles (∃r)
font apparaître des quantificateurs existentiels au milieu des formules. Il faut remonter
ces quantificateurs en tête de formule et remplacer ceux portant sur l’hypothèse
par des quantificateurs universels. En effet, une règle de la forme :
∀x, y( ∃x
0
(P(x, x0
, y)) → ∃z C(y, z))
est équivalente à la règle :
∀x, y, x0
( P(x, x0
, y) → ∃z C(y, z))
Traduction de > en EL
Une base EL est traduite de la manière décrite précédemment, la seule différence
vient du concept universel >. Pour le traduire, il faut d’abord créer un prédicat
unaire > puis ajouter à l’ensemble de règles les règles suivantes :
• pour chaque prédicat unaire A : ∀x (A(x) → >(x))24 CHAPITRE 2. NOTIONS DE BASE
• pour chaque prédicat binaire r : ∀x, y (r(x, y) → >(x)) et ∀x, y (r(x, y) →
>(y))
Dans l’exemple suivant, on propose une traduction d’une base de connaissances
ELHI en une base de connaissances avec règles existentielles.
Exemple 15
• T Box = {A v∃r.C,B u C vA,∃r
−.A vC,s v r
−}
• ABox = {A(a), B(b), r(a, b)}
La traduction est décrite sur le langage logique L = (P, C) où :
• P = {r, s, A, B, C, >} où A, B, C, > sont unaires et r et s sont binaires.
• C = {a, b}
Base de faits = {A(a), B(b), r(a, b)}
Base de règles :
• ∀x (A(x) → ∃y (r(x, y) ∧ C(y)))
• ∀x (B(x) ∧ C(x) → A(x))
• ∀x, y (r(y, x) ∧ A(y) → C(x))
• ∀x, y (s(x, y) → r(y, x))
Il reste ensuite à rajouter les règles liées au concept universel > :
• ∀x (A(x) → >(x))
• ∀x (B(x) → >(x))
• ∀x (C(x) → >(x))
• ∀x, y (r(x, y) → >(x))
• ∀x, y (r(x, y) → >(y))
• ∀x, y (s(x, y) → >(x))
• ∀x, y (s(x, y) → >(y))2.4. LES DIFFÉRENTES APPROCHES 25
Traduction de la négation en DL-Lite
La traduction d’une base DL-Lite est la même que celle présentée précédemment.
La seule différence est au niveau des axiomes de la TBox qui contiennent des
négations et sont traduits par des contraintes négatives. En effet, une règle de la
forme :
∀x(P(x) → ¬C(x))
est équivalente à la règle :
∀x(P(x) ∧ C(x) → ⊥)
Ainsi, les inclusions de concepts de la forme B v ¬C sont traduits par une règle
∀x (ΦB(x) ∧ ΦC(x) → ⊥) où ΦB est la traduction du concept B et ΦC celle du
concept C. Dans une TBox en DL-LiteR, on trouve aussi des inclusions de rôles de
la forme p v ¬q qui sont traduits par une règle ∀x, y (Φp(x, y) ∧ Φq(x, y) → ⊥), où
Φp est la traduction du rôle p et Φq celle du rôle q. Puis, de la même manière que
pour les inclusions classiques, les quantificateurs existentielles de l’hypothèse de la
règle sont transformés en quantificateurs universels.
Voici un exemple de traduction d’une TBox DL-LiteR en un ensemble de règles.
Exemple 16 Soit une TBox {A v ∃q, p v q
−, ∃q v ¬∃p}. Sa traduction est décrite
sur le langage logique L = (P, C) où :
• P = {A, p, q} où A est un prédicat unaire et p et q sont des prédicats binaires.
Traduction en règle :
• ∀x (A(x) → ∃y q(x, y))
• ∀x, y (p(x, y) → q(y, x))
• ∀x, y, z (q(x, y) ∧ p(x, z) → ⊥)
2.4 Les différentes approches
Le problème d’interrogation d’une base de connaissances étudié dans cette thèse
peut donc être reformulé de la manière suivante : Étant donné une base de faits F,
une base de règles R et une requête conjonctive booléenne Q, est-ce qu’il existe une
réponse à Q dans F selon R ? C’est-à-dire est-ce que Q est une conséquence logique
de F et R ? Ce que l’on note (F, R) |= Q.
Il existe deux paradigmes classiques de traitement des règles, le premier, appelé
marche avant, consiste à faire grossir la base de faits en appliquant toutes les règles
possibles. S’il existe une réponse à la requête, on la trouvera dans la base de faits enrichie.
Le second, appelé marche arrière, consiste à réécrire la requête en fonction des26 CHAPITRE 2. NOTIONS DE BASE
règles. S’il existe une réponse à la requête, une des réécritures de la requête aura une
réponse dans la base de faits initiale. Dans le contexte de l’interrogation d’une base
de connaissances, on parle aussi de méthode avec matérialisation, respectivement
sans matérialisation, de l’inférence des règles.
Il est connu depuis longtemps que le problème de l’interrogation d’une base de
connaissances est indécidable [Beeri and Vardi, 1984], même avec une seule règle,
ou en se restreignant à des prédicats unaires et binaires [Baget et al., 2011a]. Dans
le cas général, la base de faits peut donc grossir indéfiniment en marche avant et
le nombre de réécritures de la requête en marche arrière être infini. En revanche,
les recherches ont mis en évidence des restrictions sur les ensembles de règles avec
lesquelles le problème redevient décidable. La plupart de ces restrictions peuvent
être classées en trois catégories reposant sur des propriétés abstraites apparentées
pour deux d’entre elles à la marche avant et pour la dernière à la marche arrière.
2.4.1 Marche avant
La marche avant enrichit la base de faits en appliquant toutes les règles possibles
puis interroge la base enrichie avec la requête initiale. L’étape d’application
des règles, appelée saturation, se fait avec une stratégie en largeur pour garantir la
complétude. On part d’un fait initial F0. Chaque étape i consiste à produire un fait
appelé Fi à partir du fait courant, noté Fi−1, en calculant tous les homomorphismes
des hypothèses de chaque règle avec Fi−1 puis en effectuant toutes les applications
de règles correspondantes. Le fait Fk obtenu à l’étape k est appelé la k-saturation
de F0 avec l’ensemble de règles. La marche avant peut-être aussi retrouvée sous le
nom de chase dans la littérature de base de données, néanmoins il faut noter qu’il
existe différentes variantes du chase qui se différencientpar leur manière de traiter
la redondance (oblivious [Calì et al., 2008], skolem [Marnette, 2009], restricted
[Fagin et al., 2005], core chase [Deutsch et al., 2008])
Définition 2.22 (k-saturation) Soit F un fait, R un ensemble de règles et
Π(R, F) = {(R, π)|R ∈ R et π est un homomorphisme de hyp(R) dans F} l’ensemble
des homomorphismes de l’hypothèse d’une règle de R avec F. La saturation
directe de F avec R est définie par :
α(F, R) = F ∪
[
(R,π)∈Π(R,F)
avec R=H→C
π
safe(C)
La k-saturation de F avec R, notée αk(F, R) est définie par induction de la façon
suivante :
• α0(F, R) = F ;
• pour i > 0, αi(F, R) = α(αi−1(F, R), R).
La définition suivante donne la terminologie utilisée avec la saturation.2.4. LES DIFFÉRENTES APPROCHES 27
Définition 2.23 (Dérivation) Soit F un fait et R un ensemble de règles. On appelle
R-dérivation de F un fait F
0
tel qu’il existe une séquence finie, appelée séquence
de dérivation, F = F0, F1, ..., Fk = F
0
, où ∀1 ≤ i ≤ k il existe une règle R = H → C
de R et un homomorphisme π de H dans Fi−1 avec Fi = α(Fi−1, R, π).
Le fait obtenu en saturant le fait initial F avec toutes les applications possibles
d’une règle de l’ensemble de règles R, est appelé la saturation de F par R.
Définition 2.24 (Saturation) Soit F un fait et R un ensemble de règles. La saturation
de F par R, noté α∞(F, R) est définie par :
α∞(F, R) = [
k∈N
αk(F, R)
Ce fait a la particularité d’avoir comme modèle isomorphe le modèle canonique
aussi connu sous le nom de modèle universel dans la littérature base de données. Le
modèle canonique s’envoie sur n’importe quel modèle de F et R, donc pour savoir
si une requête q est induite par F et R il suffit de vérifier si le modèle canonique de
F et R est un modèle de q.
Définition 2.25 (Modèle isomorphe) Soit F un fait construit sur le langage logique
L = (P, C). Le modèle isomorphe à F, (D, I), est tel que :
• D est en bijection avec term(F)∪ C (pour simplifier les notations on considère
que cette bijection est l’identité) ;
• pour tout c ∈ C, I(c) = c ;
• pour tout p ∈ P, I(p) = {(t1, . . . , tk) | p(t1, . . . , tk) ∈ F} si p apparaît dans F
sinon I(p) = ∅.
A partir de ces notions nous pouvons présenter le théorème suivant qui est fondamental
pour résoudre le problème interrogation d’une base de connaissances.
Théorème 2 ([Baget et al., 2011a]) Soit F un fait, q une requête et R un ensemble
de règles. Les propriétés suivantes sont équivalentes :
• (F, R) |= q ;
• il existe un homomorphisme de q dans α∞(F, R);
• il existe un entier k tel qu’il y a un homomorphisme de q dans αk(F, R).
Après l’application d’une règle R par un homomorphisme π sur un fait F, R
reste applicable par π sur α(F, R, π) mais cette application n’apporte aucune nouvelle
information. Donc en pratique, lors de la saturation, nous ne considérons que
les nouvelles applications de règles, c’est-à-dire les applications utilisant un nouvel
homomorphisme. L’exemple suivant illustre une saturation finie.28 CHAPITRE 2. NOTIONS DE BASE
Exemple 17 Soit F = r(a, b) ∧ q(b), R = {R1, R2}, R1 = r(x, y) → s(x, y) et
R2 = q(x) → r(x, y). R1 est applicable à F par π1 = {(x, a),(y, b)} et R2 est
applicable à F par π2 = {(x, b)}, on obtient donc le fait suivant en réalisant les
applications correspondantes :
F1 = F ∧ s(a, b) ∧ r(b, y1)
Ensuite, seule R2 est applicable avec un nouvel homomorphisme sur F1 par π3 =
{(x, b),(y, y1)} pour obtenir :
F2 = F1 ∧ s(b, y1)
Plus aucune nouvelle application de règle ne peut être faite, donc la saturation s’arrête
et α∞(F, R) = F2.
Mais comme le montre l’exemple suivant, la saturation peut aussi produire des
séquences de dérivation de longueur infinie, la saturation est alors infinie.
Exemple 18 Soit F = q(a) et R = {q(x) → r(x, y) ∧ q(y)}.
α1(F, R) = F ∧ r(a, y1) ∧ q(y1)
α2(F, R) = F1 ∧ r(y1, y2) ∧ q(y2)
α3(F, R) = F2 ∧ r(y2, y3) ∧ q(y3)
α4(F, R) = . . .
La saturation de F par R est infinie.
Une manière de rendre le problème de l’interrogation d’une base de connaissances
décidable est d’avoir une saturation équivalente à un fait fini. Ce sera la première
propriété abstraite intéressante d’un ensemble de règles. Un ensemble de règles R
est à expansion finie si pour tout fait F, la saturation de F par R est équivalente à
un fait fini.
Définition 2.26 (Ensemble à expansion finie) Un ensemble de règles R est appelé
ensemble à expansion finie (fes pour "finite expansion set") si et seulement si,
pour tout fait F, il existe un entier k tel que αk(F, R) ≡ α∞(F, R).
Dans l’exemple suivant, on peut voir une saturation infinie équivalente à un fait
fini.
Exemple 19 Soit F = q(a) et R = {q(x) → r(x, y) ∧ r(y, y) ∧ q(y)}.
α1(F, R) = F ∧ r(a, y1) ∧ r(y1, y1) ∧ q(y1)
α2(F, R) = F1 ∧ r(y1, y2) ∧ r(y2, y2) ∧ q(y2)
α3(F, R) = F2 ∧ r(y2, y3) ∧ r(y3, y3) ∧ q(y3)
α4(F, R) = . . .
α∞(F, R) est infini mais est équivalent à α1(F, R), en effet, α1(F, R) ⊆ α∞(F, R)
et chaque r(yi
, yi+1)∧r(yi+1, yi+1)∧q(yi+1) de α∞(F, R) s’envoie sur r(y1, y1)∧q(y1)
par {(yi
, y1),(yi+1, y1)}.2.4. LES DIFFÉRENTES APPROCHES 29
Le problème de savoir si un ensemble de règles est fes est indécidable
[Baget et al., 2011a], les ensembles de règles fes ne sont donc pas reconnaissables.
La seconde propriété abstraite d’un ensemble de règles liée à la marche avant
n’est pas reconnaissable non plus, elle définit les ensembles à largeur arborescente
bornée, c’est-à-dire que la saturation peut-être infinie mais sa structure est proche
de celle d’un arbre.
Définition 2.27 (Ensemble à largeur arborescente bornée) Un ensemble de
règles R est appelé ensemble à largeur arborescente bornée (bts pour "bounded treewidth
set") si et seulement si, pour tout fait F, il existe un entier b (dépendant de F
et R) tel que pour toute R-dérivation F
0 de F, la largeur arborescente 3 de noyau(F)
est inférieure ou égale à b.
La borne b dépend de F ce qui implique que tout fes est aussi bts, il suffit de
choisir b égal au nombre de termes du fait équivalent à la saturation de F et R.
En s’appuyant sur un résultat de [Courcelle, 1990], il a été prouvé que le problème
d’interrogation d’une base de connaissances est décidable si l’ensemble de règles est
bts [Calì et al., 2008, Baget et al., 2011a]. La preuve n’est pas constructive, elle ne
fournit donc pas d’algorithme pour l’interrogation d’une base de connaissances avec
des ensembles de règles bts. En revanche [Baget et al., 2011b, Thomazo et al., 2012,
Thomazo, 2013b] propose un algorithme pour une sous-classe expressive de bts appelée
gbts. Cette classe couvre la plupart des classes de règles concrètes connues
qui sont bts et non fes. Il est à noter que cet algorithme est optimal en complexité
combinée et en complexité de données dans le pire des cas.
2.4.2 Marche arrière
Historiquement, la marche arrière a d’abord été utilisée en programmation logique,
notamment avec Prolog. Un programme logique positif est un ensemble de
clauses de Horn représentant des faits (atomes sans variable) et des règles, pouvant
comporter des symboles fonctionnels. On prouve qu’une requête conjonctive Q est
conséquence logique d’un programme logique P en montrant que P ∧¬Q est insatis-
fiable, à l’aide de la méthode de résolution (à noter que Prolog par exemple suit une
stratégie en profondeur pour des raisons d’efficacité, et que cette stratégie n’est pas
complète). Lorsque la clause vide est produite, on dit que l’on a “effacé” Q. A chaque
étape, on unifie un atome de Q, appelé le but, avec un atome positif d’une clause
(donc un fait ou une conclusion de règle) et on produit la réécriture correspondante.
On peut découper le processus de production de la clause vide en deux parties. La
première partie crée de nouvelles clauses à partir des buts et des règles (pour que
ce découpage soit applicable, cela nécessite bien sûr que ce processus soit fini). La
seconde partie produit la clause vide à partir d’une clause créée par la première
3. Voir définition 8.1 en annexe30 CHAPITRE 2. NOTIONS DE BASE
phase et des faits. On remarque que si l’on efface Q avec des faits cela revient à
trouver un homomorphisme de Q dans ces faits.
Nous en venons à une autre vision de la marche arrière introduite par l’article
fondateur en OBQA [Calvanese et al., 2005] pour la logique de description DL-Lite.
La marche arrière y est décomposée en deux étapes :
1. on calcule un ensemble de réécritures de la requête initiale, qui est un ensemble
de requêtes conjonctives vu comme une union de requêtes conjonctives.
2. on interroge la base de faits avec cette union de requêtes conjonctives ce qui
est équivalent d’un point de vue logique à chercher des homomorphismes (bien
que le mécanisme soit implémenté en SQL).
Cette séparation des faits et de l’ontologie présente d’indéniables avantages, par
exemple dans le cas où les données sont réparties dans plusieurs bases ou que l’on
ne dispose pas des droits d’écritures sur les faits. Outre les problèmes d’accès aux
données, la marche arrière évite les problèmes liés au grossissement d’une base de
faits causé par la marche avant.
Nous avons montré dans la section 2.3.3 qu’une TBox DL-Lite se traduit en
règles existentielles, et donc pas directement en clauses. L’unification doit donc être
adaptée pour tenir compte des variables existentielles, ou bien les règles obtenues
doivent être skolémisées. Ces deux approches ont été utilisées par la suite.
Les techniques de réécriture de la littérature peuvent être classées en deux caté-
gories en fonction du type de la réécriture. La première technique consiste à réécrire
la requête sous forme d’une union de requêtes conjonctives [Gottlob et al., 2011,
Chortaras et al., 2011, Rodriguez-Muro et al., 2013], la seconde réécrit la requête en
un programme Datalog [Pérez-Urbina et al., 2010, Gottlob and Schwentick, 2012,
Eiter et al., 2012, Trivela et al., 2013].
L’existence d’une réécriture sous forme d’une union de requêtes conjonctives est
assurée lorsqu’un ensemble de règles est reformulable en requête du premier ordre
("first-order rewritable"). Cette notion très commune dans la littérature concerne
l’existence d’une réécriture, adéquate et complète, en requête du premier ordre ("first
order query"). En pratique, ces requêtes sont équivalentes à des requêtes SQL.
Définition 2.28 (Reformulable en requête du premier ordre) Soit R un
ensemble de règles. R est reformulable en requête du premier ordre (FOreformulable)
si pour toute requête q, il existe q
0 une réécriture de q, en requête
du premier ordre, telle que pour tout fait F, on a (F, R) |= q si et seulement si
F |= q
0
. On dit que q
0
est adéquate et complète en fonction de R.
Une autre propriété d’un ensemble de règles, assurant l’existence d’une réécriture
sous forme d’une union de requêtes conjonctives, peut être trouvée dans la
littérature [Baget et al., 2011a]. Elle assure directement l’existence d’une réécriture
sous la forme d’une disjonction de conjonctions d’atomes, c’est-à-dire d’une union
de requêtes conjonctives (UCQ pour "union of conjonctive queries").2.4. LES DIFFÉRENTES APPROCHES 31
Définition 2.29 (Ensemble à unification finie) Soit R un ensemble de règles.
R est appelé ensemble à unification finie (fus pour "finite unification set") si pour
toute requête q, il existe Q, une union de requêtes conjonctives, telle que pour tout
fait F on a (F, R) |= q si et seulement s’il existe q
0 ∈ Q telle que F |= q
0
. On dit
que la réécriture Q est adéquate et complète en fonction de R.
Même si la présence d’une union de requêtes conjonctives semble plus restrictive
que celle d’une requête du premier ordre, nous sommes enclin à croire que les notions
fus et FO-reformulable sont équivalentes. Cependant, aucune preuve de cela n’a été
publiée à notre connaissance.
Comme pour les ensembles à expansion finie ou à largeur arborescente bornée,
les ensembles de règles à unification finie ne sont pas reconnaissables
[Baget et al., 2011a], ces classes sont donc dites abstraites. En revanche, il existe
de nombreuses classes de règles, dites concrètes, qui sont reconnaissables et dont on
connaît l’appartenance ou non aux trois classes abstraites. Ces classes de règles et
leur classification sont répertoriées dans [Baget et al., 2011a].
Nous rappelons ici la définition des principales classes de règles fus.
Définition 2.30 (Règle à hypothèse atomique[Baget et al., 2011a]) Une
règle R est à hypothèse atomique, noté ah, si hyp(R) contient un seul atome.
La notion d’ensemble de règles ah est équivalente à la notion d’ensemble de règles
"linear Datalog±". Ces règles Datalog contiennent un seul atome en hypothèse et
en conclusion mais tout ensemble de règles peut être décomposé en un ensemble
équivalent de règles à conclusion atomique (voir 7.4).
Exemple 20 R = p(x, x, z) → r(x, y, z) ∧ A(z) est une règle ah, en effet, son
hypothèse ne contient qu’un seul atome p(x, x, z).
Définition 2.31 (Règle à domaine restreint [Baget et al., 2011a]) Une
règle R est à domaine restreint, noté dr, si chaque atome de sa conclusion contient
toutes ou aucune des variables de son hypothèse.
Exemple 21 R = p(x, y) ∧ B(y) → r(x, y, z) ∧ A(z) est une règle dr, en effet,
r(x, y, z) contient toutes les variables de l’hypothèse et A(z) aucune.
Définition 2.32 (Ensemble de règles “sticky” [Calì et al., 2010b]) Soit R
un ensemble de règles. On marque toutes les variables qui apparaissent dans
l’hypothèse des règles de la manière suivante. D’abord, pour chaque règle R ∈ R et
chaque variable v de hyp(R), s’il existe un atome a de concl(R) tel que v n’apparaît
pas dans a alors on marque chaque occurrence de v dans hyp(R). Ensuite on
applique jusqu’à l’obtention d’un point fixe la procédure suivante : pour chaque règle
R ∈ R si une variable marquée apparaît dans hyp(R) à la position π alors pour
chaque règle R0 ∈ R (y compris R = R0
) on marque chaque occurrence des variables
de hyp(R0
) qui apparaissent dans concl(R0
) à la même position π. On dit que R
est “sticky” s’il n’existe aucune règle R ∈ R telle qu’une variable marquée apparaît
dans hyp(R) plus d’une fois.32 CHAPITRE 2. NOTIONS DE BASE
Exemple 22 Soit R = A(x) ∧ r(x, y) → r(y, z), {R} n’est pas “sticky” car x est
marqué et apparaît deux fois dans l’hypothèse de la règle.
Soit R1 = r(x1, y1)∧s(y1, z1) → t(y1, u1) et R2 = t(x2, y2) → r(y2, x2) à l’initialisation,
x1 et z1 sont marquées, puis le marquage de x1 se propage à y2 car y2 apparaît
dans R2 à la première position de r comme x1 dans R1. Finalement, les variables
marquées sont x1,z1 et y2 donc {R1, R2} est “sticky” puisqu’aucune n’apparaît deux
fois dans l’hypothèse d’une règle.
On peut noter que les ensembles de ah, dr et “sticky” sont incomparables. La
règle de l’exemple 20 est ah mais ni dr car A(z) contient une seule des variables
l’hypothèse, ni “sticky” car x est marquée et apparaît deux fois dans l’hypothèse.
Celle de l’exemple 21 est dr mais n’est pas ah elle contient deux atomes en hypothèse
ou “sticky” car y est marquée et apparaît deux fois dans l’hypothèse. Enfin, celle de
l’exemple 22 est “sticky” mais ni ah, elle a deux atomes en hypothèse, ni dr, t(y1, u1)
ne contient pas z1.
Enfin, les règles “sticky-join” généralisent les règles “sticky” et à hypothèse atomique
[Calì et al., 2010a], la définition s’appuie aussi sur un marquage de variables
mais qui est plus sophistiqué que celui pour les règles “sticky”.
Il existe encore d’autres ensembles de règles fus, comme les a-GRD (pour “acyclic
graph of rule dependencies” [Baget et al., 2009]) qui ont une condition d’acyclicité
sur un graphe de dépendance entre règles, elles sont aussi fes et bts.
L’ensemble de règles qui traduit une ontologie DL-Lite est fus, de nombreux systèmes
mettent à profit cette propriété et font de la réécriture de requêtes conjonctives
en UCQ par une ontologie DL-Lite (voir section 7.3). En revanche, cette méthode
n’est pas applicable pour une ontologie EL dont l’ensemble de règles correspondant
n’est pas fus. Par contre, l’ensemble de règles qui traduit une ontologie EL admet
une réécriture d’une requête conjonctive sous la forme d’un programme Datalog.
Il existe d’autres ensembles de règles, tels que ceux qui traduisent les ontologies
ELHI, qui admettent une réécriture sous forme d’un programme Datalog mais pas
sous forme d’une UCQ. De plus, les réécritures Datalog ont aussi un intérêt lorsque
les règles sont fus, car elles permettent une réécriture plus compacte.
Définition 2.33 (Règle Datalog) Une règle Datalog est une expression de la
forme α :- β1, . . . , βn où α, β1, . . ., βn sont des atomes et chaque variable de α
doit apparaître au moins une fois dans β1, . . . , βn. α est appelé la tête de la règle et
β1, . . . , βn est appelé le corps.
Une règle Datalog est donc une règle existentielle qui a un seul atome en conclusion
et aucune variable existentielle. Une réécriture Datalog ou programme Datalog
est simplement un ensemble de règles Datalog avec un prédicat particulier "réponse",
qui ne fait pas partie des prédicats présents dans la base et qui ne peut apparaître
qu’en conclusion d’une règle. Le prédicat réponse a évidemment la même arité partout
dans le programme.2.4. LES DIFFÉRENTES APPROCHES 33
Le principal inconvénient des réécritures Datalog est qu’elles nécessitent un système
de gestion des bases de données implémentant Datalog, ces systèmes étant peu
développés et leurs performances restant à prouver. En revanche, ce problème peut
être évité si le programme Datalog est non récursif, il peut alors être traduit simplement
en une UCQ et être exécuté sur un système de gestion de bases de données
classique.
Définition 2.34 (Programme Datalog non-récursif) Un programme Datalog
est non-récursif s’il existe un ordre total r1, . . . , rn sur ses règles tel que le prédicat
de la tête d’une règle ri n’apparaît pas dans le corps d’une règle rj telle que
i ≤ j.34 CHAPITRE 2. NOTIONS DE BASEChapitre 3
Un cadre théorique pour la
réécriture en UCQ
Dans ce chapitre, nous définissons les propriétés souhaitées des ensembles de
réécritures que nous allons calculer. Puis nous proposons un algorithme générique
de réécritures ainsi que la preuve de sa correction lorsque l’ensemble de règles donné
est fus.
3.1 Propriétés d’un ensemble de réécritures
Les techniques de réécritures en UCQ produisent, à partir d’une requête et d’un
ensemble de règles, un ensemble de requêtes, que l’on appellera souvent ensemble
de réécritures. Puisque le but est d’interroger la base de faits avec ces réécritures
pour obtenir les réponses de la requête initiale dans la base de connaissances, il
faut que cet ensemble de réécritures soit adéquat et complet pour que les réponses
soient bien celles souhaitées. De plus, pour que l’interrogation soit rapide, il faut
que cet ensemble soit aussi minimal. En résumé, nous désirons que notre ensemble
de réécritures ait trois propriétés : adéquation, complétude et minimalité.
Définition 3.1 (Ensemble adéquat et complet) Soit R un ensemble de règles,
Q une requête et Q un ensemble de requêtes. Q est adéquat (en fonction de R et
Q) si pour tout fait F et toute requête Q0 ∈ Q, F |= Q0
implique (F, R) |= Q. Q est
complet (en fonction de R et Q) si pour tout fait F, si (F, R) |= Q alors il existe
Q0 ∈ Q telle que F |= Q0
.
Pour obtenir la propriété de minimalité tout en conservant la complétude, il faut
ne garder que les éléments les plus généraux de l’ensemble. En effet, soit deux requêtes
Q1 et Q2 telles que Q1 ≥ Q2 (autrement dit, Q1 subsume Q2, voir définition
2.16), pour tout fait F, l’ensemble des réponses de Q2 est inclus dans l’ensemble des
réponses de Q1. Cette propriété est due au fait que l’homomorphisme est transitif,
s’il existe un homomorphisme de Q1 dans Q2 et de Q2 dans F alors il y en a un de
3536 CHAPITRE 3. UN CADRE THÉORIQUE
Figure 3.1 – Couverture (exemple 23)
Q1 dans F. Ainsi, enlever les éléments plus spécifiques ne va pas compromettre la
complétude. L’ensemble de réécritures désiré est donc un ensemble de requêtes adé-
quates et incomparables deux à deux qui “couvre” l’ensemble de toutes les réécritures
adéquates de la requête initiale.
Définition 3.2 (Relation de couverture) Soit Q1 et Q2 deux ensembles de ré-
écritures. On dit que Q1 couvre Q2, noté Q1 ≥ Q2, si pour chaque requête Q2 ∈ Q2
il existe Q1 ∈ Q1 telle que Q1 ≥ Q2.
Un ensemble de réécritures est minimal au sens de l’inclusion selon cette relation
de couverture.
Définition 3.3 (Minimalité d’un ensemble de requêtes) Soit Q un ensemble
de réécritures, Q est minimal s’il n’existe pas de requêtes Q ∈ Q telle que Q \ {Q} ≥
Q.
Un sous-ensemble minimal de réécritures qui couvre l’ensemble des réécritures
est appelée couverture.
Définition 3.4 (Couverture d’un ensemble de requêtes) Soit Q un ensemble
de réécritures, une couverture de Q est un ensemble minimal de requêtes Qc ⊆ Q
tel que Qc ≥ Q.
Voici un exemple de couverture d’un ensemble de requêtes illustré par la fi-
gure 3.1.
Exemple 23 Soit Q = {Q1, . . . , Q6} sur lequel on a les relations suivantes : Q1 ≥
Q2, Q4, Q5, Q6 ; Q2 ≥ Q1, Q4, Q5, Q6 ; Q3 ≥ Q4 ; Q5 ≥ Q6. Q1 et Q2 sont donc
équivalentes, et il y a deux couvertures de Q, {Q1, Q3} et {Q2, Q3}.3.1. PROPRIÉTÉS D’UN ENSEMBLE DE RÉÉCRITURES 37
Étant donné qu’une couverture est un ensemble minimal, tous ses éléments sont
deux à deux incomparables. On peut aussi prouver que deux couvertures d’un même
ensemble ont la même cardinalité. Si de plus, on considère que chaque élément des
couvertures est de taille minimale, c’est-à-dire qu’il s’agit de noyaux, les deux couvertures
sont identiques à un isomorphisme près. Ainsi, quelle que soit la technique
utilisée pour le calculer, il existe un ensemble unique (à un isomorphisme près) de
réécritures adéquat, complet et minimal dont les éléments sont de taille minimale.
Théorème 3 ([König et al., 2012]) soit R un ensemble de règles fus et Q une
requête. Il existe un unique ensemble fini de réécritures de Q selon R adéquat, complet
et minimal dont les éléments sont de taille minimale.
Preuve : Soit Q1 et Q2 deux ensembles de réécritures de Q avec R adéquats et
complets, par définition de fus, on sait que de tels ensembles existent. Soit Qc
1
, Qc
2
une de leurs couvertures respectives. Qc
1
et Qc
2
sont aussi adéquats et complets et
par définition minimales au sens de l’inclusion. Nous montrons qu’ils ont la même
cardinalité. Soit Q1 ∈ Qc
1
, il existe Q2 ∈ Qc
2
telle que Q1 ≤ Q2 car Qc
2
est complet.
De la même manière, il existe Q0
1 ∈ Qc
1
telle que Q2 ≤ Q0
1
. Ainsi, Q1 ≤ Q0
1
ce qui
signifie que Q0
1 = Q1 puisque Qc
1
est une couverture. Donc pour tout Q1 ∈ Qc
1
, il
existe Q2 ∈ Qc
2
telle que Q1 ≤ Q2 et Q2 ≤ Q1. Une telle Q2 est unique puisque
les éléments de Qc
2
sont incomparables deux à deux. La fonction associant Q1 à Q2
est donc une bijection de Qc
1 dans Qc
2
, ce qui montre que les deux ensembles ont la
même cardinalité. Si nous imposons de plus, que les éléments de Qc
1
et Qc
2
soient de
taille minimale, Q1 et Q2 seront isomorphes à leur noyau et donc isomorphes.
Il est aussi important de noter que même si l’ensemble des réécritures adéquates
d’une requête est infinie, sa couverture peut être finie.
Exemple 24 Soit Q = t(u), et R1 = t(x) ∧ p(x, y) → r(y), R2 = r(x) ∧ p(x, y) →
t(y). R1 et R2 ont une conclusion réduite à un seul atome et aucune variable
existentielle donc on peut utiliser des unificateurs les plus généraux classiques, qui
unifient le premier atome de la requête avec l’atome de la conclusion de la règle.
L’ensemble des réécritures de Q avec {R1, R2} est infini : Les premières requêtes
générées sont les suivantes (noter que les variables des règles sont renommées quand
c’est nécessaire) :
Q0 = t(u)
Q1 = r(x) ∧ p(x, y) // à partir de Q0 et R2 avec {(u, y)}
Q2 = t(x0) ∧ p(x0, y0) ∧ p(y0, y) // à partir de Q1 et R1 avec {(x, y0)}
Q3 = r(x1) ∧ p(x1, y1) ∧ p(y1, y0) ∧ p(y0, y) // à partir de Q2 et R2 avec {(x0, y1)}
Q4 = t(x2) ∧ p(x2, y2) ∧ p(y2, y1) ∧ p(y1, y0) ∧ p(y0, y) // à partir de Q3 et R1
et ainsi de suite . . .
En revanche, l’ensemble des réécritures les plus générales est {Q0, Q1} puisque
toutes les autres que l’on peut obtenir sont plus spécifiques.
Prise en compte de la complexit´e g´eom´etrique des
mod`eles structuraux dans des m´ethodes de maillage
fond´ees sur le diagramme de Vorono¨ı
Jeanne Pellerin
To cite this version:
Jeanne Pellerin. Prise en compte de la complexit´e g´eom´etrique des mod`eles structuraux dans
des m´ethodes de maillage fond´ees sur le diagramme de Vorono¨ı. Applied geology. Universit´e
de Lorraine, 2014. French.
HAL Id: tel-01005722
https://tel.archives-ouvertes.fr/tel-01005722
Submitted on 13 Jun 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Prise en compte de la complexite
´
geom
´
etrique des mod
´
eles
`
structuraux dans des methodes
´
de maillage fondees sur le
´
diagramme de Vorono¨ı
These `
pour obtenir le grade de
Docteur de l’Universit´e de Lorraine
Ecole doctorale RP2E ´
Sp´ecialit´e G´eosciences
par
Jeanne PELLERIN
Th`ese soutenue le 20 mars 2014 devant le jury :
M. Pascal Frey Professeur, Universit´e Paris 06 Rapporteur
M. Hamdi Tchelepi Professeur, Stanford University Rapporteur
M. Stephan Matth¨ai Professeur, University of Leoben Examinateur
M. Jean-Fran¸cois Remacle Professeur, Universit´e de Louvain Examinateur
M. Jean Virieux Professeur, Universit´e Grenoble 01 Examinateur
M. Bruno L´evy Directeur de recherche, INRIA Directeur de th`ese
M. Guillaume Caumon Professeur, Universit´e de Lorraine Directeur de th`ese
M. David Ledez Total Invit´e
UMR 7359 - GeoRessources
ENSG - Universit´e de Lorraine
TSA 70605, 54518 Vandœuvre-l`es-Nancy Cedex - FRANCEA mes parents, `Remerciements
Je suis en premier lieu tr`es reconnaissante `a mon directeur de th`ese Guillaume
Caumon de m’avoir permis de d´ecouvrir que, contrairement `a ce que j’avais pu croire,
la recherche me plaisait, et de m’avoir convaincue de faire une th`ese. Je remercie vivement
mon second directeur de th`ese Bruno L´evy pour ses consultations de soutien
`a th´esarde en d´etresse et son enthousiasme communicatif. Je tiens ´egalement `a remercier
Pascal Frey, David Ledez, Stephan Matth¨ai, Jean-Fran¸cois Remacle, Hamdi
Tchelepi et Jean Virieux d’avoir accept´e de faire partie de mon jury de th`ese.
Merci `a tous les coll`egues de l’´equipe de recherche Alice du Loria dont les remarques
et questions ont influenc´e ce travail. Merci `a tous les membres de l’´equipe
de recherche Gocad (ceux qui l’ont ´et´e et ceux qui le sont toujours) pour tous les bons
moments pass´es au labo et en dehors du labo, pour leur aide et leur soutien : Pauline
CD, Nicolas C., Florent L., Gautier L., Romain M., Fran¸cois B., Th´eophile G.,
Pablo M., Charline J., J´er´emy R., Arnaud B., Guillaume R., Paul C. Merci `a Pierre,
Christophe, et Fatima pour le n´ecessaire soutien technique et administratif. Un grand
merci `a Guillaume, Bruno, Arnaud, J´er´emy, Pauline, Charline, Pablo, Jonathan E.,
Jonathan M., ainsi qu’`a mon papa d’avoir relu tout ou partie de ce travail.
Je tiens `a remercier plus particuli`erement Arnaud et J´er´emy, coll`egues de bureau
de cette derni`ere ann´ee et demi, de m’avoir aid´ee `a passer le cap de la fin de th`ese,
Gautier et Romain pour leur aide en d´ebut de th`ese, Fran¸cois pour son organisation
qui envoie du steak et sa g´en´erosit´e, et enfin Pauline, coll`egue de recherche, de couture,
de litt´erature anglaise, de step, de papote, de cin´e, tout cela me manquera.
Je finirai en remerciant tous ceux qui m’ont aid´e dans les moments difficiles avant
et pendant la th`ese, tout particuli`erement mes parents.R´esum´e
Selon la m´ethode utilis´ee pour construire un mod`ele structural en trois dimensions
et selon l’application `a laquelle il est destin´e, son maillage, en d’autres termes sa
repr´esentation informatique, doit ˆetre adapt´e afin de respecter des crit`eres de type,
de nombre et de qualit´e de ses ´el´ements. Les m´ethodes de maillage d´evelopp´ees dans
d’autres domaines que la g´eomod´elisation ne permettent pas de modifier le mod`ele
d’entr´ee. Ceci est souhaitable en g´eomod´elisation afin de mieux contrˆoler le nombre
d’´el´ements du maillage et leur qualit´e.
L’objectif de cette th`ese est de d´evelopper des m´ethodes de maillage permettant
de remplir ces objectifs afin de g´erer la complexit´e g´eom´etrique des mod`eles structuraux
d´efinis par fronti`eres. Premi`erement, une analyse des sources de complexit´e
g´eom´etrique dans ces mod`eles est propos´ee. Les mesures d´evelopp´ees constituent une
premi`ere ´etape dans la d´efinition d’outils permettant la comparaison objective de
diff´erents mod`eles et aident `a caract´eriser pr´ecis´ement les zones plus compliqu´ees `a
mailler dans un mod`ele. Ensuite, des m´ethodes originales de remaillage surfacique
et de maillage volumique fond´ees sur l’utilisation des diagrammes de Vorono¨ı sont
propos´ees. Les fondements de ces deux m´ethodes sont identiques : (1) une optimisation
de type Vorono¨ı barycentrique est utilis´ee pour globalement obtenir un nombre
contrˆol´e d’´el´ements de bonne qualit´e et (2) des consid´erations combinatoires pour
localement construire le maillage final, ´eventuellement en modifiant le mod`ele initial.
La m´ethode de remaillage surfacique est automatique et permet de simplifier un
mod`ele `a une r´esolution donn´ee. L’originalit´e de la m´ethode de maillage volumique
est que les ´el´ements g´en´er´es sont de types diff´erents. Des prismes et pyramides sont
utilis´es pour remplir les zones tr`es fines du mod`ele, tandis que le reste du mod`ele est
rempli avec des t´etra`edres.Table des mati`eres
Remerciements iii
R´esum´e v
Introduction 1
1 Objets g´eom´etriques fondamentaux 9
1.1 Diagramme de Vorono¨ı et triangulation de Delaunay . . . . . . . . . . 9
1.1.1 Diagramme de Vorono¨ı . . . . . . . . . . . . . . . . . . . . . . 9
1.1.2 Triangulation de Delaunay . . . . . . . . . . . . . . . . . . . . 10
1.1.3 Calcul du diagramme de Vorono¨ı . . . . . . . . . . . . . . . . . 12
1.2 Diagramme de Vorono¨ı et triangulation de Delaunay restreints . . . . 12
1.2.1 Diagramme de Vorono¨ı restreint . . . . . . . . . . . . . . . . . 12
D´efinitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Cas d´eg´en´er´es . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.2.2 Calcul du diagramme de Vorono¨ı restreint . . . . . . . . . . . . 13
1.2.3 Triangulation de Delaunay restreinte . . . . . . . . . . . . . . . 15
1.2.4 Topologie de la triangulation de Delaunay restreinte . . . . . . 15
D´efinitions pr´eliminaires . . . . . . . . . . . . . . . . . . . . . . 16
Propri´et´e de la boule topologique . . . . . . . . . . . . . . . . . 16
Epsilon ´echantillonage . . . . . . . . . . . . . . . . . . . . . . . 17
1.3 Optimisation des diagrammes de Vorono¨ı . . . . . . . . . . . . . . . . 17
1.3.1 Diagramme de Vorono¨ı barycentrique . . . . . . . . . . . . . . 18
1.3.2 Diagramme de Vorono¨ı barycentrique restreint . . . . . . . . . 18
1.3.3 Calculs du diagramme de Vorono¨ı barycentrique et du diagramme
de Vorono¨ı barycentrique restreint . . . . . . . . . . . 19
2 Etat de l’art : objectifs et g´en´eration des maillages ´ 21
2.1 Maillages et g´eomod´elisation . . . . . . . . . . . . . . . . . . . . . . . 21
2.1.1 Qu’est ce qu’un maillage ? . . . . . . . . . . . . . . . . . . . . . 21
D´efinition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Types de maillages . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.2 Objectifs des maillages en g´eomod´elisation . . . . . . . . . . . 23
Des maillages pour repr´esenter les mod`eles . . . . . . . . . . . 23
Des maillages pour r´ealiser des simulations num´eriques . . . . . 24
2.1.3 Maillages volumiques utilis´es en g´eomod´elisation . . . . . . . . 25
Maillages pour la simulation d’´ecoulement . . . . . . . . . . . . 25viii TABLE DES MATIERES `
Maillages pour d’autres applications . . . . . . . . . . . . . . . 26
2.2 Qualit´e d’un maillage et d´efis de g´en´eration . . . . . . . . . . . . . . . 27
2.2.1 Qualit´e d’un maillage . . . . . . . . . . . . . . . . . . . . . . . 27
Qualit´e d’approximation du mod`ele . . . . . . . . . . . . . . . 27
Qualit´e du maillage pour les simulations num´eriques . . . . . . 29
2.2.2 Effet n´egatifs de la g´eom´etrie du mod`ele . . . . . . . . . . . . . 30
2.2.3 Gestion des caract´eristiques probl´ematiques du mod`ele . . . . . 30
Pr´e-identification . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Simplification du mod`ele . . . . . . . . . . . . . . . . . . . . . . 31
Prise en compte dans la g´en´eration du maillage . . . . . . . . . 32
Post-traitement . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.3 Maillage volumique `a base de t´etra`edres . . . . . . . . . . . . . . . . . 32
2.3.1 Maillages t´etra´edriques . . . . . . . . . . . . . . . . . . . . . . 33
Subdivision de l’espace . . . . . . . . . . . . . . . . . . . . . . . 33
Avanc´ee de front . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Delaunay . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Optimisation Vorono¨ı-Delaunay . . . . . . . . . . . . . . . . . . 36
2.3.2 Maillage de mod`eles multi-mat´eriaux . . . . . . . . . . . . . . . 37
2.3.3 Maillage hybride t´etra`edres-prismes . . . . . . . . . . . . . . . 38
2.4 Maillage surfacique `a base de triangles . . . . . . . . . . . . . . . . . . 40
2.4.1 Subdivision de l’espace . . . . . . . . . . . . . . . . . . . . . . . 40
M´ethodes octree . . . . . . . . . . . . . . . . . . . . . . . . . . 40
Diagramme de Vorono¨ı restreint barycentrique . . . . . . . . . 40
2.4.2 Maillage de surfaces avec garanties . . . . . . . . . . . . . . . . 41
2.5 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3 Contribution : El´ements d’´evaluation de la complexit´e g´eom´etrique
des mod`eles structuraux 43
3.1 Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.2 Sources de complexit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.2.1 Nombre d’objets g´eologiques . . . . . . . . . . . . . . . . . . . 44
3.2.2 Interactions entre les objets . . . . . . . . . . . . . . . . . . . . 46
Couches stratigraphiques conformes . . . . . . . . . . . . . . . 46
Non-conformit´es stratigraphiques . . . . . . . . . . . . . . . . . 46
Failles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3 Mesures g´en´eralistes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.3.1 Mesures globales de complexit´e . . . . . . . . . . . . . . . . . . 47
3.3.2 Mesures dans un voisinage . . . . . . . . . . . . . . . . . . . . . 48
3.4 Mod`eles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.5 R´esultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.5.1 Mesures globales . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.5.2 Mesures locales . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
M´ethode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Mesures locales de connectivit´e . . . . . . . . . . . . . . . . . . 52
R´esultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.6.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53TABLE DES MATIERES ` ix
3.6.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4 Contribution : Remaillage des surfaces de mod`eles structuraux `a
une r´esolution donn´ee 57
4.1 Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
4.2 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.3 Optimisation de l’´echantillonnage du mod`ele . . . . . . . . . . . . . . 59
4.3.1 Optimisation CVT . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.3.2 Optimisation de la position des sites le long des bords . . . . . 60
4.3.3 Impl´ementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4.4 Construction du maillage . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.4.1 Remaillage des composantes connexes surfaciques . . . . . . . . 61
4.4.2 Remaillage des lignes de bord . . . . . . . . . . . . . . . . . . . 62
4.4.3 Remaillage des coins . . . . . . . . . . . . . . . . . . . . . . . . 63
4.4.4 Impl´ementation . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.4.5 Am´eliorations du maillage . . . . . . . . . . . . . . . . . . . . . 64
4.5 R´esultats pour 12 mod`eles structuraux . . . . . . . . . . . . . . . . . . 66
4.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.6.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.6.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5 Contribution : Vers un mailleur volumique hybride `a partir d’un
diagramme de Vorono¨ı 77
5.1 Motivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.2 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
5.3 Construction des cellules hybrides . . . . . . . . . . . . . . . . . . . . . 79
5.3.1 D´etermination des cellules `a construire . . . . . . . . . . . . . . 81
5.3.2 Cellules duales des segments . . . . . . . . . . . . . . . . . . . 81
5.3.3 Cellules duales des points . . . . . . . . . . . . . . . . . . . . . 81
Ajout des sommets . . . . . . . . . . . . . . . . . . . . . . . . . 82
Ajout des arˆetes . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Ajout des facettes . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.4 Traitement des cellules invalides . . . . . . . . . . . . . . . . . . . . . . 83
5.5 R´esultats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.6.1 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.6.2 Perspectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Conclusion 91Introduction
Mod`eles g´eologiques : des cartes aux mod`eles num´eriques en 3D
Comprendre l’organisation en trois dimensions des roches dans le sous-sol est
indispensable dans des domaines comme la prospection, l’exploitation, la protection
des ressources naturelles min´erales ou ´energ´etiques. Except´e sur les affleurements, le
sous-sol est invisible et nous disposons de peu d’information pour comprendre son
organisation. C’est dans cet objectif qu’est d´etermin´ee une carte g´eologique, elle indique,
en tout point d’une r´egion, quelle est la nature des roches `a la surface de la
Terre (figure 1a). Cette carte est ´etablie par les g´eologues en interpolant les observations
de terrain. L’organisation des roches en profondeur est caract´eris´ee par des
coupes verticales dans le sous-sol. Nous voyons que, dans la zone repr´esent´ee sur la
figure 1b, le sous-sol est stratifi´e. Les diff´erentes couches sont s´epar´ees par des lignes
appel´ees horizons et sont d´ecoup´ees par deux failles. Les couches 2, 3 et 4 ont ´et´e
en partie ´erod´ees. Cet ´etat actuel est le r´esultat d’une ´evolution que les g´eologues
essaient de reconstituer lors de la d´etermination de ces cartes et coupes (figure 2).
Les cartes et les coupes g´eologiques sont des mod`eles de la r´ealit´e ; elles en sont
des repr´esentations sch´ematiques en deux dimensions. Cependant cette r´ealit´e est
tridimensionnelle et ce sont les mod`eles structuraux qui donnent en chaque point du
sous-sol le type de roche pr´esent (figure 3). Leur construction et leur repr´esentation
sont informatiques. Il est possible, comme pour une photo num´erique, dans laquelle
chaque pixel est associ´e `a une couleur, de d´ecouper un mod`ele structural en voxels
(cubes ´el´ementaires) auxquels est associ´e un type de roche (figure 3a). Une alternative
est de repr´esenter seulement les surfaces (horizons, failles, ´erosions, etc) d´elimitant
les diff´erents volumes rocheux. Cette repr´esentation, dite par fronti`eres 1
, permet de
mod´eliser une tr`es grande partie des configurations complexes rencontr´ees dans la
nature.
Des maillages pour visualiser et ´etudier le comportement des mod`eles
Quelle que soit la repr´esentation choisie du mod`ele structural, un maillage est
utilis´e pour l’enregistrer et le visualiser en trois dimensions sur un ordinateur. Un
maillage d’un objet est d´efini comme un ensemble d’´el´ements g´eom´etriques simples
(carr´es, triangles, cubes, t´etra`edres, etc) qui ne s’intersectent pas et dont l’union
est une approximation de l’objet. Il est d´efini par les sommets de ces ´el´ements et
par les r`egles permettant de relier ces sommets. Par exemple, le d´ecoupage en pav´es
1. Boundary Representation ou B-Rep.2 Introduction
Figure 1 – Modeles g ` eologiques en deux dimensions : une carte et une coupe. ´
La carte donne, en vue de dessus, le type des roches qui affleurent `a la surface terrestre, la
coupe en donne une vue en profondeur. Les lignes (surfaces en 3D figure 3) s´eparant deux
couches diff´erentes sont appel´ees les horizons. Ces horizons sont pliss´es et d´ecoup´es par deux
failles. La ligne d’´erosion dessine la topographie de la zone.
Figure 2 – Vue en coupe de l’evolution des couches de la coupe de la figure ´ 1
depuis leur dep´ ot. ˆIntroduction 3
Figure 3 – Deux representations d’un mod ´ ele structural en trois dimensions. `
Ce mod`ele synth´etique correspond `a la carte et `a la coupe de la figure 1. (a) Repr´esentation
volumique : le mod`ele est d´ecoup´e en pav´es, chacun a la couleur de la couche associ´ee. (b) Repr´esentation
par limites : seules les surfaces d´elimitant les volumes rocheux sont repr´esent´ees.
Les surfaces qui d´elimitent la zone d’int´erˆet (dite aussi boˆıte) ne sont pas affich´ees.4 Introduction
Figure 4 – Deux defis pour la g ´ en´ eration de maillage des mod ´ eles structuraux. `
(a) La couche bleue est localement tr`es fine et ne peut pas dans cette zone ˆetre maill´ee avec
des triangles de plus de 5m de cˆot´e. (b) La couche rouge fait un angle de 16 degr´es, pour
respecter ses limites au moins un triangle du maillage doit avoir un angle de 16 degr´es.
du mod`ele structural vu figure 3a est un maillage. Si la taille de ces pav´es est trop
importante, l’image des structures g´eologiques est, de la mˆeme mani`ere qu’une photo
num´erique `a basse r´esolution, impr´ecise.
En plus de repr´esenter les mod`eles, les maillages sont n´ecessaires pour r´epondre
`a des probl`emes d’ing´enierie, par exemple l’estimation de l’impact du creusement
d’un tunnel sur la stabilit´e des roches l’entourant. En utilisant les th´eories physiques
ad´equates, ce probl`eme peut ˆetre transform´e en probl`eme math´ematique. Ce dernier
ne peut g´en´eralement pas ˆetre r´esolu de mani`ere exact et eu maillage est utilis´e pour
en d´eterminer une version approch´ee qui sera r´esolue num´eriquement. Ceci est le
second objectif des maillages : permettre de r´ealiser les simulations num´eriques pour
calculer l’approximation d’un comportement naturel.
D´efis de la g´en´eration de maillage - Probl´ematique
Lorsque les hypoth`eses sur lesquelles reposent les ´etapes permettant de passer du
probl`eme d’ing´enierie au r´esultat ne sont pas v´erifi´ees, l’´ecart entre le r´esultat de la
simulation num´erique et le comportement r´eel peut ˆetre important. Afin d’obtenir des
r´esultats fiables dans le temps imparti, le maillage doit repr´esenter le mod`ele assez
pr´ecis´ement et respecter un ensemble de crit`eres de qualit´e sur le nombre, l’aspect
et la taille de ses ´el´ements. Ces deux conditions sont contradictoires et il n’est pas
toujours possible de mailler les composantes du mod`ele qui ont un impact sur la
solution tout en respectant ces crit`eres de qualit´e. Par exemple, un mod`ele dans
lequel une couche a localement une ´epaisseur de 5m et pour lequel il faut g´en´erer
un maillage ayant des ´el´ements dont la taille minimale requise des arˆetes est 10m
est impossible (figure 4a). De mˆeme, il ne sera pas possible de g´en´erer des ´el´ements
ayant tous des angles sup´erieur `a 30 degr´es si le mod`ele contient un angle de 16 degr´es
(figure 4b).
Dans ces cas, un choix est n´ecessaire pour obtenir le meilleur compromis entreIntroduction 5
d’une part la pr´ecision, la fiabilit´e, la robustesse des r´esultats obtenus, et d’autre
part les besoins en m´emoire et le temps n´ecessaires au calcul. A priori, la relaxation
des contraintes sur le maillage (plus grand nombre d’´el´ements, ´el´ements plus petits)
accroˆıt les temps de calcul et les besoins en m´emoire, mais augmente la pr´ecision du
r´esultat. La modification de la g´eom´etrie du mod`ele (diminution de son niveau de d´etail)
permet de le mailler avec moins d’´el´ements, tout en simplifiant des composantes
qui peuvent ˆetre n´efastes pour la r´esolution num´erique, mais risque de diminuer la
pr´ecision des r´esultats. Id´ealement, pour faire le meilleur choix, il faudrait comparer
les r´esultats obtenus pour diff´erents maillages `a diff´erents niveaux de d´etail du mod`ele.
Ceci implique de disposer d’outils automatiques pour (1) modifier et mailler un
mod`ele `a une r´esolution donn´ee avec des ´el´ements de la qualit´e souhait´ee et (2) ´evaluer
les ´ecarts entre le r´esultat et le comportement r´eel. Dans cette th`ese, nous nous
int´eressons au premier point et apportons des ´el´ements de r´eponses aux questions
suivantes :
– Comment caract´eriser le niveau de d´etail d’un mod`ele g´eologique en trois dimensions
et comment identifier ses petites caract´eristiques g´eom´etriques ?
– Comment modifier automatiquement le niveau de d´etail d’un mod`ele et simplifier
ses petites caract´eristiques ?
– Comment mailler un mod`ele (surfaces et volumes) lorsque la taille requise pour
les ´el´ements est sup´erieure `a la r´esolution du mod`ele ?
D´emarche
Nous utilisons une subdivision du mod`ele structural par un diagramme de Vorono¨ı
pour analyser la g´eom´etrie et la connectivit´e du mod`ele et g´en´erer un maillage de ses
surfaces et de ses r´egions volumiques (figure 5). Un diagramme de Vorono¨ı est d´efini
pour un ensemble de points, il associe `a chaque point la partie du mod`ele plus proche
de ce point que des autres points (la cellule de Vorono¨ı). A partir du diagramme de `
Voronoi et de ses intersections avec les fronti`eres du mod`ele, un maillage des surfaces
et des r´egions volumiques du mod`ele peut ˆetre d´etermin´e (figure 5).
Nous proposons des strat´egies pour construire un maillage quelles que soient les
configurations des intersections entre le mod`ele et le diagramme de Vorono¨ı. En effet,
selon la taille des cellules de Vorono¨ı, les intersections avec les surfaces d´efinissant le
mod`ele sont plus ou moins compliqu´ees (figure 5). Cette approche nous permet de
privil´egier le contrˆole du nombre d’´el´ements dans le maillage final et d’autoriser des
modifications du mod`ele (figure 5). L’´ecart entre la r´esolution du mod`ele et celle du
maillage est ainsi r´eduit.
Apr`es avoir d´efini les objets g´eom´etriques d´eriv´es du diagramme de Vorono¨ı, fondements
de ces travaux (chapitre 1), nous pr´ecisons les objectifs des maillages et
passons en revue les m´ethodes de g´en´eration de maillage triangulaire et t´etra´edrique
(chapitre 2). Nous proposons dans le chapitre 3 des mesures de la complexit´e g´eom´etrique
des mod`eles structuraux dont le but est de caract´eriser pr´ecis´ement les zones
compliqu´ees `a mailler dans un mod`ele. Puis, nous proposons une m´ethode de remaillage
des surfaces d’un mod`ele structural (chapitre 4) qui permet de contrˆoler le
nombre d’´el´ements dans le maillage, de simplifier le mod`ele et de g´en´erer des triangles
aussi ´equilat´eraux que possible. Cette m´ethode est ´etendue dans le chapitre 5 pour6 Introduction
Figure 5 – Utilisation d’une subdivision par un diagramme de Vorono¨ı pour
analyser, modifier et mailler un modele par fronti ` ere. ` Cette th`ese se concentre
sur la construction d’un maillage dans le cas o`u la subdivision du mod`ele par le diagramme
de Vorono¨ı est grossi`ere et o`u les intersections avec les bords sont potentiellement complexes.
Notre travail vise `a g´en´erer soit un maillage du mod`ele simplifi´e (1) soit un maillage du
mod`ele complet (2) en limitant le nombre d’´el´ements.Introduction 7
g´en´erer un maillage volumique constitu´e d’´el´ements de diff´erents types du mod`ele
structural. Des prismes et pyramides sont utilis´es pour remplir les zones tr`es fines du
mod`ele, tandis que le reste du mod`ele est rempli avec des t´etra`edres.
R´esum´e des contributions
Dans cette th`ese nous pr´esentons les contributions suivantes :
– des mesures aidant `a identifier les petites caract´eristiques g´eom´etriques des
mod`eles g´eologiques. Elles sont d´ecrites dans le chapitre 3. Ces travaux ne
sont, pour l’instant, pas publi´es ;
– une m´ethode de construction d’un remaillage des surfaces d’un mod`ele d´efini
par fronti`eres `a partir de l’intersection d’un diagramme de Vorono¨ı avec ces
fronti`eres. Ces travaux sont pr´esent´es dans le chapitre 4, et publi´es dans Pellerin
et al. [2014], une version pr´eliminaire ayant ´et´e pr´esent´ee dans Pellerin et al.
[2011] ;
– une strat´egie de construction d’un maillage hybride (prismes, pyramides et
t´etra`edres) des r´egions d’un mod`ele d´efini par fronti`ere `a partir d’un diagramme
de Vorono¨ı et de son intersection avec les fronti`eres du mod`ele qui est d´ecrite
dans le chapitre 5. Une version courte de ces travaux a ´et´e pr´esent´ee dans
Pellerin et al. [2012].
Publications associ´ees `a cette th`ese
J. Pellerin, B. L´evy et G. Caumon : Topological control for isotropic remeshing of
nonmanifold surfaces with varying resolution : application to 3D structural models.
In Proc. IAMG. cogeo@oeaw-giscience, sept. 2011.
J. Pellerin, B. L´evy et G. Caumon : A Voronoi-based hybrid meshing method. In
International Meshing Roundtable, Research Notes, oct. 2012.
J. Pellerin, B. L´evy, G. Caumon et A. Botella : Automatic surface remeshing of
3D structural models at specified resolution : A method based on Voronoi diagrams.
Computers & Geosciences, 62(0):103 – 116, 2014.Chapitre 1
Objets g´eom´etriques
fondamentaux
Dans ce chapitre nous d´efinissons les objets g´eom´etriques utilis´es par de nombreuses
m´ethodes de g´en´eration de maillage et sur lesquels ces travaux de th`ese sont
fond´es. Ils sont li´es au diagramme de Vorono¨ı, une structure fondamentale en g´eom´etrie,
voir notamment Aurenhammer [1991] et Okabe et al. [2009].
1.1 Diagramme de Vorono¨ı et triangulation de Delaunay
1.1.1 Diagramme de Vorono¨ı
Un diagramme de Vorono¨ı [Vorono¨ı, 1908] est un d´ecoupage de l’espace en plusieurs
r´egions `a partir d’un ensemble de points, appel´es sites et not´es S. Chaque site,
p ∈ S, correspond `a une r´egion, appel´ee cellule de Vorono¨ı, qui contient les points
de l’espace plus proches de ce site p que de n’importe quel autre site (figure 1.1).
Formellement, dans le cas o`u l’espace consid´er´e est R
2
et o`u la proximit´e entre un
point x et un site p est mesur´ee par la distance euclidienne entre ces deux points
||x − p||, la cellule de Vorono¨ı de p est d´efinie par :
Vp = {x ∈ R
2
, ||x − p|| ≤ ||x − q||, q ∈ S} (1.1)
L’ensemble des cellules de Vorono¨ı forme le diagramme de Vorono¨ı de S (fi-
gure 1.1a). Ces cellules sont des polygones ferm´es convexes born´es ou non qui recouvrent
l’espace sans se chevaucher. Leurs arˆetes, appel´ees arˆetes de Vorono¨ı, sont
les points `a ´egale distance entre deux sites voisins. Les sommets des cellules, ou sommets
de Vorono¨ı, sont les points `a ´egale distance de trois sites voisins (figure 1.2). Ces
d´efinitions s’´etendent en dimension sup´erieure. Nous nous arrˆetons dans cette th`ese
`a la dimension trois o`u les r´egions associ´ees aux sites sont des poly`edres (figure 1.3).
Leurs faces, les facettes de Vorono¨ı, sont les points `a ´egale distance de deux sites
voisins ; elles sont contenues par le plan m´ediateur de ces deux sites. Les arˆetes sont
partag´ees par trois cellules de Vorono¨ı et les sommets par quatre cellules (figure 1.4a).
Il est important de noter que ce que nous venons de d´ecrire est correct dans le10 Chapitre 1. Objets geom ´ etriques fondamentaux ´
Figure 1.1 – Diagramme de Vorono¨ı et triangulation de Delaunay correspondante
dans le plan. (a) Le diagramme de Vorono¨ı des 21 sites (points noirs) est un ensemble
de 21 polygones convexes qui recouvrent le plan. Les cinq cellules intersectant le bord
du carr´e sont infinies. (b) La triangulation de Delaunay correspondante triangule l’enveloppe
convexe des sites.
Figure 1.2 – Relation duale Vorono¨ı-Delaunay en 2D. Le sommet de Vorono¨ı V est
partag´e par trois cellules de Vorono¨ı : A, B, et C. Il correspond `a un triangle de Delaunay
ABC, dont les sommets sont les sites et dont chacun des trois cˆot´es correspondent `a une arˆete
de Vorono¨ı (num´eros 1 `a 3).
cas o`u les sites S sont en position g´en´erale, c’est-`a-dire qu’il n’y a pas quatre sites ou
plus cocycliques dans le mˆeme plan, et cinq points ou plus cosph´eriques dans l’espace.
Ces cas d´eg´en´er´es disparaissent avec une perturbation infime de la position des sites,
qui est ´eventuellement r´ealis´ee de mani`ere symbolique [Edelsbrunner et Mucke ¨ , 1990].
Dans ce qui suit, nous supposerons que les sites sont en position g´en´erale.
Remarque : Il existe de tr`es nombreuses g´en´eralisations du diagramme de Vorono¨ı
obtenues en changeant la fonction de distance entre un site et un point de l’espace,
la nature des sites etc, voir les revues de [Okabe et al., 2009] et Aurenhammer [1991].
Il est ´egalement possible de travailler dans des espaces non-euclidiens, par exemple
celui d´efini par une surface plong´ee dans un espace 3D.
1.1.2 Triangulation de Delaunay
Un second objet, particuli`erement int´eressant dans un contexte de g´en´eration de
maillage, peut ˆetre construit depuis un diagramme de Vorono¨ı : la triangulation de
Delaunay. Nous avons vu que dans le plan, en position g´en´erale, chaque sommet de
Vorono¨ı est `a ´egale distance de trois sites. Le triangle qui relie ces sites est dit de
Delaunay et la triangulation de Delaunay est l’ensemble des triangles correspondantsDiagramme de Vorono¨ı et triangulation de Delaunay 11
Figure 1.3 – Diagramme de Vorono¨ı en 3D. (a) 200 sites sont distribu´es dans un pav´e.
(b) Coupe solide dans le diagramme de Vorono¨ı des sites recoup´e par les bords du pav´e.
(c) Une cellule de Vorono¨ı.
A
B
C
D
V
A
B
C
D
V
1
2
3
4
(a) (b) (c)
6
1
2
4
3
5
A
B
C
D
V
Figure 1.4 – Relation duale Vorono¨ı-Delaunay en 3D. (a) Le sommet de Vorono¨ı
V est `a ´egale distance des sites des cellules A, B, C et D. (b) A chaque facette de Vorono¨ı
contenant V (num´eros 1 `a 6) correspond un segment reliant les sites des 2 cellules partageant
la facette. (c) A chaque arˆete de Vorono¨ı contenant V (num´eros 1 `a 4) correspond un triangle
reliant les sites des 3 cellules partageant cette arˆete.12 Chapitre 1. Objets geom ´ etriques fondamentaux ´
aux sommets de Vorono¨ı (figure 1.1b). La triangulation de Delaunay des sites S est
dite duale du diagramme de Vorono¨ı de S car, `a chaque cellule de Vorono¨ı correspond
un sommet de la triangulation, `a chaque arˆete de Vorono¨ı correspond une arˆete de
la triangulation et `a chaque sommet de Vorono¨ı correspond un triangle de Delaunay
(figure 1.2). Comme le diagramme de Vorono¨ı, le concept de triangulation de Delaunay
se g´en´eralise en dimension sup´erieure. En trois dimensions, la t´etra´edrisation de
Delaunay contient une arˆete pour chaque facette de Vorono¨ı, un triangle pour chaque
arˆete de Vorono¨ı et un t´etra`edre pour chaque sommet de Vorono¨ı (figure 1.4).
La triangulation de Delaunay d’un ensemble de points S peut ˆetre d´efinie ind´ependamment
du diagramme de Vorono¨ı `a partir du crit`ere de la boule vide ou crit`ere
de Delaunay [Delaunay, 1934] qui stipule que, dans R
2
, un triangle est de Delaunay
si son cercle circonscrit ne contient aucun autre point de S que ses sommets. Les
propri´et´es math´ematiques de la triangulation de Delaunay en ont fait un objet de
choix en g´en´eration de maillage (partie 2.3).
1. Les boules ouvertes circonscrites aux simplexes 1 de la triangulation de Delaunay
ne contiennent aucun sommet de S. Ce crit`ere de la boule vide ou de
Delaunay est associ´e `a un lemme qui donne que, pour une triangulation quelconque
des points S, si le crit`ere de la boule vide est vrai pour toute paire
d’´el´ements adjacents, alors il l’est pour tous les ´el´ements [Delaunay, 1934].
2. Pour tout ensemble de points S en position g´en´erale, la triangulation de Delaunay
existe et est unique.
3. La triangulation de Delaunay maximise l’angle minimal de la triangulation de S.
1.1.3 Calcul du diagramme de Vorono¨ı
Le calcul du diagramme de Vorono¨ı d’un ensemble de points peut se faire soit
directement, soit en calculant la triangulation de Delaunay duale. De nombreuses
m´ethodes ont ´et´e d´evelopp´ees, voir les synth`eses de Fortune [1992], Okabe et al.
[2009], Boissonnat et Yvinec [1995] et les impl´ementations de TetGen 2 ou CGAL 3
.
1.2 Diagramme de Vorono¨ı et triangulation de Delaunay
restreints
1.2.1 Diagramme de Vorono¨ı restreint
D´efinitions
Un diagramme de Vorono¨ı d´ecoupe en r´egions convexes l’espace sur lequel il est
d´efini. Nous nous int´eressons ici au d´ecoupage d’un objet inclus dans cet espace par
ce diagramme de Vorono¨ı : le diagramme de Vorono¨ı restreint 4
. Pour un ensemble
1. Les triangles dans R
2
et les t´etra`edres dans R
3
.
2. http://wias-berlin.de/software/tetgen/
3. http://www.cgal.org/
4. RVD pour Restricted Voronoi Diagram en anglaisDiagramme de Vorono¨ı et triangulation de Delaunay restreints 13
de sites S et un objet Ω le diagramme de Vorono¨ı restreint est d´efini comme l’intersection
du diagramme de Vorono¨ı de S avec Ω 5
. Deux exemples sont donn´es sur
les figures 1.5b et 1.5e. L’intersection d’une cellule de Vorono¨ı, Vp, avec l’objet Ω
est appel´ee cellule de Vorono¨ı restreinte de p `a Ω et est d´efinie par Vp∩Ω = Vp ∩ Ω.
La dimension de la cellule restreinte d´epend de la dimension de l’objet. Les cellules
restreintes `a l’´etoile sont surfaciques (figure 1.5b), tandis que celles restreintes `a son
contour sont lin´eaires (figure 1.5e).
L’intersection d’une arˆete de Vorono¨ı avec l’objet est une arˆete de Vorono¨ı restreinte,
l’intersection d’une facette de Vorono¨ı avec l’objet est une facette de Vorono¨ı
restreinte et l’intersection entre un sommet de Vorono¨ı et l’objet est un sommet de
Vorono¨ı restreint. Contrairement aux ´el´ements d’un diagramme de Vorono¨ı, ceux d’un
diagramme de Vorono¨ı restreint peuvent avoir plus d’une composante connexe, c’est-
`a-dire qu’il existe au moins deux points dans un ´el´ement qui ne peuvent pas ˆetre reli´es
par un chemin contenu dans cet ´el´ement. Par exemple, dans le cas du diagramme de
Vorono¨ı restreint au contour de l’´etoile, figure 1.5e, les cellules restreintes au milieu
des branches ont deux composantes connexes - deux segments.
Cas d´eg´en´er´es
Nous avons vu sur l’exemple de l’´etoile, figure 1.5, que la dimension des cellules
de Vorono¨ı restreintes est la mˆeme que celle de l’´etoile, `a savoir deux. Ceci est vrai
seulement si les intersections d´eg´en´er´ees entre la cellule de Vorono¨ı et l’objet (´egales
`a un sommet ou `a une arˆete de Vorono¨ı) sont exclues (figure 1.6). Cette remarque
se g´en´eralise pour les intersections de chaque ´el´ement du diagramme de Vorono¨ı
(cellule, facette, arˆete et sommet) avec l’objet. Dans un espace de dimension d, un
´el´ement du diagramme de Vorono¨ı (dimension l) intersecte g´en´eriquement un objet
de dimension m si l’intersection a la dimension attendue : m + l − d [Edelsbrunner
et Shah, 1997]. Dans R
3
, les intersections des cellules, facettes, arˆetes et sommets
de Vorono¨ı avec une surface doivent respectivement ˆetre de dimension deux (des
morceaux de surface), un (des morceaux de lignes), z´ero (des points) et vide. Les
intersections entre un sommet de Vorono¨ı et une quelconque ligne ou surface sont
donc exclues. D’apr`es Edelsbrunner et Shah [1997], ces hypoth`eses sont raisonnables
et nous supposerons qu’elles sont v´erifi´ees dans ce qui suit. Toutefois, nous verrons
`a la fin du chapitre 4 que la plupart des probl`emes rencontr´es lors du calcul d’un
maillage `a partir d’un diagramme de Vorono¨ı restreint sont li´es `a des configurations
proches de ces configurations d´eg´en´er´ees.
1.2.2 Calcul du diagramme de Vorono¨ı restreint
La notion de diagramme de Vorono¨ı restreint telle que nous l’avons pr´esent´ee
recouvre un grand nombre de cas en termes de dimension de l’objet. Lorsque qu’un
objet est d´efini par ces fronti`eres et que sa dimension est celle de l’espace de travail,
le calcul de l’intersection entre l’objet et le diagramme de Vorono¨ı d’un ensemble de
points est assez d´elicat. L´evy et Liu [2010] proposent une m´ethode en trois dimensions,
5. Dans d’autres travaux, dans le cas o`u l’objet consid´er´e et l’espace le contenant sont de mˆeme
dimension (figure 1.5c) le diagramme de Vorono¨ı restreint est aussi appel´e diagramme de Vorono¨ı
coup´e (clipped Voronoi diagram en anglais).14 Chapitre 1. Objets geom ´ etriques fondamentaux ´
Figure 1.5 – Diagramme de Vorono¨ı restreint et triangulation de Delaunay
restreinte. (b) Diagramme de Vorono¨ı restreint `a une ´etoile (a). (c) La triangulation de
Delaunay restreinte correspondante maille l’´etoile. (e) Diagramme de Vorono¨ı restreint au
contour de l’´etoile (d). (f) La triangulation de Delaunay restreinte correspondante est un
sous-ensemble de celle `a l’´etoile (c). Elle ne contient pas le site au centre de l’´etoile, car la
cellule de Vorono¨ı de ce site ne recoupe pas le contour.
Figure 1.6 – Cas deg´ en´ er´ es d’intersection entre une cellule de Vorono ´ ¨ı et un
rectangle. La cellule A intersecte le rectangle en un unique point. La cellule B intersecte
le rectangle le long d’une de ses arˆetes.Diagramme de Vorono¨ı et triangulation de Delaunay restreints 15
mais elle est cependant peu robuste aux configurations d´eg´en´er´ees [Merland, 2013].
Quand l’objet a une dimension inf´erieure `a celle du diagramme de Voronoi, le calcul
est plus ais´e.
Dans cette th`ese, nous nous int´eressons au diagramme de Vorono¨ı restreint `a une
surface triangul´ee en trois dimensions. Pour le calculer, nous utilisons la m´ethode
initialement d´evelopp´ee par Yan et al. [2009] et am´elior´ee par Nivoliers [2012]. L’op´eration
de base est le calcul de l’intersection entre un triangle de la surface et une
cellule de Vorono¨ı. Comme une cellule de Vorono¨ı peut ˆetre d´efinie par l’intersection
des demi-plans m´ediateurs entre son site et ses voisins les plus proches, il suffit de
d´ecouper successivement le triangle par ces plans. Pour calculer l’intersection entre
un triangle et une cellule de Vorono¨ı une seule fois, et acc´el´erer le calcul, plusieurs
strat´egies de propagation sont possibles, elles sont d´ecrites en d´etail par Nivoliers
[2012].
1.2.3 Triangulation de Delaunay restreinte
De la mˆeme mani`ere que la triangulation de Delaunay est duale du diagramme
de Vorono¨ı, la triangulation de Delaunay restreinte est d´efinie comme le dual du
diagramme de Vorono¨ı restreint Edelsbrunner et Shah [1997]. Dans R
2
, elle contient
un sommet pour chaque cellule restreinte, un segment pour chaque arˆete restreinte
et un triangle pour chaque sommet de Vorono¨ı restreint (figures 1.5c et f).
La triangulation de Delaunay restreinte est donc constitu´ee des ´el´ements de la
triangulation de Delaunay qui sont duaux d’´el´ements du diagramme de Vorono¨ı intersectant
l’objet consid´er´e. Ses triangles, arˆetes et sommets (figure 1.5c) sont un
sous-ensemble de la triangulation de Delaunay (figure 1.1). En effet, par construction,
le diagramme de Vorono¨ı restreint est un sous-ensemble du diagramme de Vorono¨ı.
Consid´erons `a pr´esent les diagrammes de Vorono¨ı restreints `a deux objets A et
B tels que A inclus dans B. Le diagramme de Vorono¨ı restreint `a A est un sousensemble
du diagramme de Vorono¨ı restreint `a B et il en est de mˆeme pour les
triangulations de Delaunay restreintes. Les mˆemes sites peuvent donc ˆetre utilis´es
pour trianguler de mani`ere conforme, c’est-`a-dire de telle sorte que les int´erieurs des
deux triangulations ne s’intersectent pas, deux objets de dimensions potentiellement
diff´erentes. Par exemple, les segments de la triangulation de Delaunay restreinte au
contour de l’´etoile (figure 1.5f) sont inclus dans la triangulation de Delaunay restreinte
`a l’´etoile (figure 1.5c).
Lorsque certains ´el´ements de la triangulation de Delaunay restreinte ne sont pas
contenus dans le bord d’un ´el´ement de dimension sup´erieure, par exemple les segments
dans les branches de l’´etoile figure 1.5c, la triangulation de Delaunay restreinte est
un objet multi-dimensionnel. Elle peut alors ˆetre vue comme une version simplifi´ee
de l’objet initial.
1.2.4 Topologie de la triangulation de Delaunay restreinte
La propri´et´e de la boule topologique, introduite par Edelsbrunner et Shah [1997],
d´ecrit un crit`ere qui garantit que la triangulation de Delaunay restreinte a la mˆeme
topologie que l’objet initial (est hom´eomorphe) et n’en est pas une version simplifi´ee.16 Chapitre 1. Objets geom ´ etriques fondamentaux ´
Figure 1.7 – Boules topologiques et espaces variet´ es dans le plan. ´
D´efinitions pr´eliminaires
Les espaces topologiques X et Y sont hom´eomorphes, s’il existe une application
bijective de X dans Y continue et dont l’inverse est continue. Une k-boule ouverte est
un espace hom´eomorphe `a R
k
(figure 1.7). Une k-demi boule ouverte est un espace
hom´eomorphe au demi-espace Hk = {x = (ξi) ∈ R
k
| ξi ≥ 0}. Une k-boule ferm´ee
est un espace hom´eomorphe `a B
k = {x ∈ R
k
| ||x − O|| ≤ 1}. Le voisinage d’un sous
ensemble Y inclus dans X est un sous-ensemble de X qui contient Y. L’espace X inclus
dans R
d
est un k-vari´et´e sans bord si tous ses points ont un voisinage de k-boule
ouverte, c’est un k-vari´et´e avec bord si tous ses points ont un voisinage de k-boule
ouverte ou de k-demi boule ouverte (figure 1.7). L’ensemble des points qui n’ont pas
une k-boule ouverte comme voisinage forme le bord de X, et l’ensemble des points
qui ont un voisinage de k-boule ouverte forme l’int´erieur.
Propri´et´e de la boule topologique
Un ensemble de points de R
d fini non d´eg´en´er´e, S, a la propri´et´e de la boule
topologique [Edelsbrunner et Shah, 1997] pour X ⊆ R
d
, un m-vari´et´e ferm´e et born´e,
si pour chaque l ≤ m et chaque sous-ensemble de m + 1 − l points T ⊆ S :
– l’intersection entre X et l’ensemble des points communs aux cellules de Vorono¨ı
des sites T est soit vide soit une l-boule ferm´ee ;
– l’intersection entre le bord de X et l’ensemble des points communs aux cellules
de Vorono¨ı des sites est soit vide soit une (l − 1)-boule ferm´ee.
Ceci signifie qu’un ensemble S non-d´eg´en´er´e de points a la propri´et´e de la boule
topologique pour une surface vari´et´e Ω plong´ee dans R
3
si : toutes cellules de Vorono¨ı
restreintes (respectivement les facettes et arˆetes) de S `a Ω sont des 2-boules ferm´ees,
(respectivement des 1-boules et points) et si toutes les cellules de Vorono¨ı restreintes
(respectivement les facettes et arˆetes) de S aux bords de Ω sont des 1-boules ferm´ees
(respectivement des points et l’ensemble vide) (figure 1.8).Optimisation des diagrammes de Vorono¨ı 17
Figure 1.8 – Cellules de Vorono¨ı verifiant et ne v ´ erifiant pas la propri ´ et´ e de ´
la boule topologique. Les cellules A, B, C, G ont deux composantes connexes. Les cellules
D et F sont bien des disques, mais leurs intersections avec le bord du mod`ele (ligne grise) ont
deux composantes connexes.
Le th´eor`eme prouv´e par Edelsbrunner et Shah [1997] donne que : pour X ⊆ R
d
un compact vari´et´e, avec ou sans bord, et pour S ⊆ R
d un ensemble fini de points
non d´eg´en´er´es dont le diagramme de Vorono¨ı intersecte g´en´eriquement X, si S a la
propri´et´e de la boule topologique pour X alors la triangulation de Delaunay restreinte
de S `a X est hom´eomorphe `a X. Une extension aux espaces non vari´et´e est ´egalement
propos´ee, elle est cependant beaucoup moins utilis´ee et nous ne la d´etaillerons pas
ici.
Epsilon ´echantillonage
Introduite par Amenta et Bern [1999], la th´eorie de l’ǫ-´echantillonage donne un
moyen g´eom´etrique de garantir qu’une surface v´erifie la propri´et´e de la boule topologique.
Sa d´efinition est fond´ee sur la notion d’axe m´edian. L’axe m´edian d’un objet
est l’ensemble des points de l’espace qui ont plus d’un point le plus proche sur le bord
de l’objet. La notion de lfs, pour local feature size, qui peut ˆetre traduit par taille des
particularit´es locales, est d´efinie par Amenta et Bern [1999] comme la distance (euclidienne)
minimale `a l’axe (ou surface) m´edian de l’objet 6
. Un ensemble de points S
est un ǫ-´echantillonage d’une surface vari´et´e Ω si pour chaque point x de Ω, il existe
un point de S `a une distance inf´erieure `a ε × lfs(x). Quand ε < 0.1, Amenta et Bern
[1999] montrent que, dans ce cas, les points S ont la propri´et´e de la boule topologique
pour la surface Ω.
Le calcul exact de l’axe m´edian, et par cons´equence celui du lfs, est un probl`eme
particuli`erement compliqu´e (voir par exemple Attali et al. [2009]) et reste un sujet de
recherche. Cependant, il est possible de le d´eterminer de fa¸con approch´ee en utilisant
les sommets du diagramme de Vorono¨ı d’un ensemble de points ´echantillonnant l’objet
consid´er´e.
1.3 Optimisation des diagrammes de Vorono¨ı
Le d´ecoupage de l’espace en cellule de Vorono¨ı obtenu `a partir d’un ensemble
de sites distribu´es de mani`ere al´eatoire est ´egalement al´eatoire et la question de son
6. Une premi`ere version de lfs a ´et´e propos´ee par Ruppert [1995].18 Chapitre 1. Objets geom ´ etriques fondamentaux ´
optimisation apparaˆıt dans de nombreux probl`emes de statistiques, de traitement
d’image ou de g´en´eration de maillage. Il s’agit alors d’optimiser le placement des
sites afin de remplir un objectif particulier, par exemple, minimiser les distances
entre chacun des sites et les points de sa cellule de Vorono¨ı. Cette optimisation tend
vers un diagramme de Vorono¨ı particulier : le diagramme de Vorono¨ı barycentrique.
1.3.1 Diagramme de Vorono¨ı barycentrique
Le diagramme de Vorono¨ı d’un ensemble de sites est barycentrique si chaque site
se trouve au barycentre p∗ de sa cellule de Vorono¨ı Vp :
p∗ =
R
Vp
ydy
R
Vp
dy
(1.2)
Si une fonction de densit´e ρ est d´efinie, le barycentre devient :
p∗ =
R
Vp
yρ(y)dy
R
Vp
ρ(y)dy
(1.3)
Consid´erons `a pr´esent le probl`eme de la recherche d’une partition d’un domaine
Ω en k r´egions Ωi et des positions de k points si qui minimisent la fonction :
F((si
, Ωi)i=1...k) = X
k
i=1
Z
y∈Ωi
ρ(y)||y − si
||2
dy (1.4)
Cette fonction ´evalue la somme des carr´es des distances entre l’un des points si et
les points de la r´egion Ωi qui a le mˆeme indice. Du et al. [1999] d´emontrent que,
pour minimiser cette fonction, il est n´ecessaire que les r´egions Ωi soient les cellules de
Vorono¨ı des points si et que chaque point soit au barycentre de sa cellule de Vorono¨ı.
Ils d´emontrent ´egalement que cette fonction a les mˆemes minimums que la fonction :
FCV T ((si)i=1...k) = X
k
i=1
Z
y∈Vi
ρ(y)||y − si
||2
dy (1.5)
o`u Vi est la cellule de Vorono¨ı associ´ee au point si
. Les param`etres de la fonction
FCV T sont uniquement les positions des points, l’int´egration ´etant faite sur les cellules
de Vorono¨ı Vi
. Pour obtenir un diagramme de Vorono¨ı barycentrique il suffit
donc de minimiser cette fonction des positions des points. En pratique, l’obtention
d’un minimum global est tr`es difficile, et l’obtention d’un minimum local est souvent
consid´er´ee satisfaisante.
Remarque : Dans un mˆeme espace et pour un nombre de sites donn´e, il y a plusieurs
diagrammes de Vorono¨ı barycentriques et tous ne minimisent pas la fonction FCV T .
1.3.2 Diagramme de Vorono¨ı barycentrique restreint
Le diagramme de Vorono¨ı restreint d’un ensemble de points S `a un domaine Ω est
barycentrique si chaque site p est au barycentre de sa cellule de Vorono¨ı restreinte.Optimisation des diagrammes de Vorono¨ı 19
Sites al´eatoires Diag. de Vorono¨ı RVD RDT
Sites optimis´es Diag. de Vorono¨ı RVD RDT
Figure 1.9 – Optimisation de 100 sites sur une sphere. ` Apr`es optimisation le diagramme
de Vorono¨ı restreint est constitu´e de cellules dont la forme est proche de celle d’un
hexagone r´egulier et la triangulation de Delaunay restreinte contient des triangles qui sont
quasiment ´equilat´eraux.
Une propri´et´e similaire `a celle du diagramme de Vorono¨ı barycentrique classique est
´etablie en int´egrant uniquement sur les cellules de Vorono¨ı restreintes et la fonction
FCV T devient :
FΩ =
X
k
i=1
Z
y∈Vi∩Ω
ρ(y)||y − si
||2
dy (1.6)
Lorsque les points si appartiennent au domaine Ω, le diagramme de Vorono¨ı barycentrique
restreint est contraint [Du et al., 2003]. Parce que nous utilisons les sites
pour partitionner les r´egions volumiques et les surfaces d’un mod`ele, nous utilisons
un diagramme de Vorono¨ı barycentrique restreint non-contraint. Un exemple d’optimisation
de sites par rapport `a une sph`ere est donn´e figure 1.9. Apr`es optimisation
les triangles de la triangulation de Delaunay restreinte sont quasiment ´equilat´eraux.
1.3.3 Calculs du diagramme de Vorono¨ı barycentrique et du diagramme
de Vorono¨ı barycentrique restreint
Pour optimiser les positions des sites et obtenir un diagramme de Vorono¨ı barycentrique
ou un diagramme de Vorono¨ı barycentrique restreint le principe est celui
de nombreuses optimisations :
1. distribuer de mani`ere al´eatoire un ensemble de sites S ;
2. construire le diagramme de Vorono¨ı (restreint) de S `a l’objet ;
3. d´eterminer des nouvelles positions pour les sites S
′
;
4. si un crit`ere de convergence est atteint, terminer l’optimisation, sinon remplacer
S par les nouveaux sites S
′
et retourner `a l’´etape 2.
La question est alors de calculer les nouvelles positions des sites S
′
. L’objectif est
en effet d’atteindre un minimum pour la fonction FCV T (ou FΩ dans le cas restreint).
Une premi`ere strat´egie est de prendre pour les nouveaux points les barycentres des20 Chapitre 1. Objets geom ´ etriques fondamentaux ´
cellules de Vorono¨ı. L’algorithme r´esultant, appel´e algorithme de Llyod [Lloyd, 1982],
converge relativement lentement, c’est-`a-dire qu’il faut beaucoup d’it´erations avant
d’atteindre les minimums, le d´eplacement des sites vers leurs positions optimales
n’´etant pas assez rapide.
Liu et al. [2009] proposent de calculer un diagramme de Vorono¨ı barycentrique en
utilisant un algorithme de type Newton pour minimiser FCV T et sa version restreinte,
son gradient ´etant donn´e par Iri et al. [1984] ´egal `a :
dFCV T
dsi
= 2mi (si − pi∗) (1.7)
o`u mi est le volume de la i`eme cellule de Vorono¨ı. Toutefois ce type d’optimisation
requiert que la fonction FCV T soit de classe C
2
ce qui est presque toujours le cas, `a
l’exception des configurations o`u deux points entrent en collision [Zhang et al., 2012]
ou bien quand un plan m´ediateur co¨ıncide avec une facette du bord [Liu et al., 2009].
Les r´esultats pratiques montrent qu’une m´ethode de type Newton peut ˆetre utilis´ee
pour calculer un diagramme de Vorono¨ı barycentrique ou un diagramme de Vorono¨ı
barycentrique restreint [Liu et al., 2009, Yan et al., 2009, L´evy et Liu, 2010, Merland,
2013].Chapitre 2
Etat de l’art : objectifs et
´
g´en´eration des maillages
2.1 Maillages et g´eomod´elisation
Comprendre l’organisation en trois dimensions des roches dans le sous-sol est
indispensable dans des domaines comme la prospection, l’exploitation, et la protection
des ressources naturelles min´erales ou ´energ´etiques. La mod´elisation g´eologique, ou
g´eomod´elisation, participe `a cet objectif en fournissant des outils pour construire et
analyser des mod`eles du sous-sol. Les maillages sont le fondement de la plupart de
ces outils.
2.1.1 Qu’est ce qu’un maillage ?
D´efinition
Un maillage est une mani`ere de repr´esenter un objet de mani`ere informatique
en l’approchant par un ensemble d’´el´ements simples. Prenons l’exemple d’une ´etoile
dessin´ee dans le plan d´efinie par une infinit´e de points (figure 2.1a). En pla¸cant dix
points sur son bord et en reliant ces points de mani`ere ad´equate, nous obtenons un
maillage du contour de l’´etoile (figure 2.1b) ou de son int´erieur (figure 2.1c).
Figure 2.1 – Maillage d’une etoile. ´ (a) Etoile d´efinie par une infinit´e de points. (b) ´
Maillage du bord de l’´etoile avec 10 sommets et 10 segments. (c) Maillage de l’int´erieur de
l’´etoile avec 8 triangles.22 Chapitre 2. Etat de l’art ´
Figure 2.2 – Maillages invalide et non-conforme. (a) Maillage invalide car deux
segments s’intersectent. (b) Maillage triangul´e valide mais non-conforme.
Dans un cas plus g´en´eral, le maillage d’un objet est d´efini par un ensemble de
sommets associ´e `a un ensemble d’´el´ements reliant ces sommets. Pour que le maillage
soit valide ces ´el´ements doivent respecter trois conditions : leur union est une approximation
de l’objet, leurs int´erieurs sont non vides et l’intersection des int´erieurs
de deux ´el´ements est vide [Frey et George, 1999]. Les maillages des figures 2.1b, 2.1c
et 2.2b sont valides alors que le maillage figure 2.2a est invalide. Les segments reliant
deux sommets sont les ´el´ements de dimension 1. Les ´el´ements de dimension 2, les facettes,
sont des polygones, les plus simples ´etant les triangles et les quadrilat`eres. Les
´el´ements de dimension 3 sont des poly`edres, par exemple les hexa`edres ou t´etra`edres,
ils sont appel´es cellules du maillage.
Le maillage est conforme si l’intersection de deux ´el´ements est, soit vide, soit
un ´el´ement commun aux bords de ces deux ´el´ements (figure 2.2c). Le maillage est
contraint si des ´el´ements sont impos´es au moment de sa construction, tr`es souvent ce
sont des ´el´ements maillant la fronti`ere du domaine. Nous dirons que deux maillages
sont conformes si le maillage r´esultant de l’union de leurs ´el´ements est conforme. Par
exemple, le maillage de l’int´erieur de l’´etoile (figure 2.1c) est conforme au maillage
de son contour (figure 2.1b).
Types de maillages
Le type d’un maillage est d´efini par le type de ses ´el´ements et par leur connectivit´e
1
. Cette derni`ere d´etermine deux classes de maillages, les maillages structur´es,
qui ont une connectivit´e r´eguli`ere, c’est-`a-dire que tous leurs sommets ont le
mˆeme nombre de voisins, et les maillages non-structur´es, qui n’ont pas une connectivit´e
r´eguli`ere. Les maillages non-structur´es sont tr`es divers, ce sont principalement
leurs ´el´ements constitutifs qui les diff´erencient ; soit ces ´el´ements sont des poly`edres
quelconques, soit ils sont de types connus. Lorsque les ´el´ements sont tous du mˆeme
type, le type du maillage est d´eriv´e du nom des ´el´ements : maillage quadrangulaire,
maillage triangul´e, maillage h´exa´edrique, maillage t´etra´edrique, maillage prismatique,
etc. Lorsque le maillage contient des ´el´ements de diff´erents types, il est dit hybride 2
.
Un maillage est simplicial s’il est uniquement constitu´e de simplexes. Nous rap-
1. La connectivit´e d’un ´el´ement est d´efinie par les connexions de ses sommets.
2. Certains auteurs disent mixte.Maillages et geomod ´ elisation ´ 23
Figure 2.3 – Simplexes dans R
3
.
pelons qu’un d-simplexe est un ´el´ement correspondant `a l’enveloppe convexe d’un
ensemble de d + 1 sommets de R
n
(d ≤ n) ind´ependants de mani`ere affine 3
. L’enveloppe
convexe est d´efinie comme le plus petit ensemble convexe qui contient ces
sommets, c’est-`a-dire un ensemble qui contient les segments reliant chacune des paires
de points de l’ensemble. Dans R
3
, les 0-simplexes sont les points, les 1-simplexes sont
des segments, les 2-simplexes sont des triangles et les 3-simplexes sont des t´etra-
`edres (figure 2.3). L’avantage d’un maillage simplicial est que tous ses ´el´ements sont
convexes et que toutes ses facettes sont planes.
2.1.2 Objectifs des maillages en g´eomod´elisation
Des maillages pour repr´esenter les mod`eles
Comme nous l’avons vu dans la partie pr´ec´edente, les maillages sont tout d’abord
un moyen de repr´esenter un objet par une union finie d’´el´ements g´eom´etriques simples
et born´es. Les objets auxquels nous nous int´eressons dans ces travaux sont les mod`eles
structuraux du sous-sol. Il y a deux grands types de repr´esentations pour ces mod`eles
qui d´elimitent les diff´erents volumes rocheux.
Maillage volumique
Dans une repr´esentation volumique, les r´egions du mod`ele structural sont maill´ees,
et chaque cellule du maillage est associ´ee `a un type de roche. Le maillage le plus simple
est sans doute un d´ecoupage r´egulier du mod`ele en pav´es, similaire `a une image num´erique
en trois dimensions (figure 3a). Comme nous le verrons dans la partie 2.1.3,
les maillages constitu´es d’hexa`edres ou de t´etra`edres sont les plus utilis´es.
Repr´esentation par fronti`eres
Dans une repr´esentation d’un mod`ele par fronti`eres 4
, le mod`ele est d´ecrit par les
surfaces d´elimitant ses r´egions volumiques (figures 2.4 et 3b). Cette repr´esentation
est plus l´eg`ere en m´emoire, plus flexible, et permet de repr´esenter une grande partie
des configurations naturelles. Elle est ´egalement particuli`erement adapt´ee au cas des
mod`eles structuraux qui sont construits `a partir des surfaces g´eologiques d´elimitant
les couches de roches (horizons, failles, discordances, etc). La question est alors de
mailler ces surfaces, elles sont g´en´eralement triangul´ees 5
[Caumon et al., 2009]. Dans
3. Ceci exclut les cas o`u trois sommets sont align´es et ceux o`u quatre sommets sont coplanaires.
4. Aussi appel´e B-Rep, pour Boundary Representation.
5. Les surfaces, ensemble de points de coordonn´ees (x, y, z), peuvent ´egalement ˆetre repr´esent´ees
de mani`ere implicite f(x, y, z) = 0, param´etrique (x, y, z) = σ(u, v) ou explicite z = f(x, y).24 Chapitre 2. Etat de l’art ´
Figure 2.4 – Regions volumiques dans un mod ´ ele d ` efini par fronti ´ eres. ` Chaque
r´egion est d´efinie par ses surfaces limites. Certaines r´egions de ce mod`ele ne sont pas affich´ees
(voir aussi figure 3).
Figure 2.5 – Surfaces triangulees d’un mod ´ ele structural d ` efini par fronti ´ eres. `
Les surfaces d´efinissant la zone d’int´erˆet ne sont pas affich´ees. Les maillages des surfaces en
contact, sont conformes.
ces travaux, nous consid´erons uniquement des mod`eles dans lesquels les maillages des
surfaces sont conformes (figure 2.5). Les connexions entre surfaces peuvent alors ˆetre
d´etermin´ees `a partir de leur g´eom´etrie.
Des maillages pour r´ealiser des simulations num´eriques
En g´eomod´elisation comme en conception, un mod`ele est construit pour r´epondre
`a un ensemble de questions d´ependantes du domaine d’application, par exemple :
Comment les couches de roches ont-elle ´et´e d´eform´ees depuis leur formation ? Quelle
est la quantit´e de p´etrole r´ecup´erable ? Quel est l’impact du creusement d’un tunnel
sur la stabilit´e d’un massif ? Les processus mod´elisant la d´eformation m´ecanique
des roches, les ´ecoulements de fluides, la propagation de chaleur et la propagation
d’ondes sont mod´elis´es par des ´equations aux d´eriv´ees partielles, qui ne peuvent pas,
dans le cas g´en´eral, ˆetre r´esolues de fa¸con exacte (analytiquement), et sont r´esolues
de mani`ere approch´ee (num´eriquement). Depuis les d´ebuts des m´ethodes de r´esolutions
num´eriques, les maillages leurs sont associ´es comme moyen de discr´etiser l’espace
[Baker, 2005]. Ils sont un pr´e-requis `a toute simulation num´erique. Comme en
g´eomod´elisation les propri´et´es (composition, porosit´e, perm´eabilit´e, etc) des roches
varient au sein d’une r´egion du mod`ele, les maillages sont ´egalement le support de
stockage de ces propri´et´es.Maillages et geomod ´ elisation ´ 25
Figure 2.6 – Grille curvilineaire. ´ Les hexa`edres du maillage sont d´eform´es pour ˆetre
align´es sur les horizons et les failles. Les cellules adjacentes `a la surface d’´erosion (voir figure 3)
sont d´eg´en´er´ees et des cellules inactives sont cr´e´ees pour que la grille soit r´eguli`ere.
Nous ne d´etaillons pas ici les ´equations intervenant en g´eosciences. Les ´equations
d’´ecoulement en milieux poreux sont d´ecrites dans Farmer [2005], les ´equations en
g´eom´ecanique et transfert de chaleur dans Turcotte [2002], les ´equations de propagation
des ondes dans Aki et Richards [2009] et les ´equations mod´elisant les processus
de bassin dans Mello et al. [2009]. Nous ne donnons pas non plus de d´etails sur les
diff´erents sch´emas de r´esolution num´erique des ´equations aux d´eriv´ees partielles, le
lecteur est r´ef´er´e `a Allaire [2005] et Saad [2003] pour une description des principaux
sch´emas num´eriques : diff´erences finies, ´el´ements finis et volumes finis.
2.1.3 Maillages volumiques utilis´es en g´eomod´elisation
Si les surfaces des mod`eles g´eologiques structuraux sont souvent maill´ees par des
triangles, la diversit´e des maillages volumiques est plus grande.
Maillages pour la simulation d’´ecoulement
La plupart des maillages d´evelopp´es en g´eomod´elisation le sont pour la simulation
des ´ecoulements dans les r´eservoirs p´etroliers dont l’objectif principal est d’estimer
l’´evolution de la production d’hydrocarbures. Les maillages volumiques les plus
simples sont probablement les grilles cart´esiennes qui divisent r´eguli`erement les mod`eles
en pav´es (figure 3). Sur ces maillages structur´es, des sch´emas num´eriques de
type diff´erences finies, qui sont plus simples `a programmer et tr`es efficaces en temps
d’ex´ecution peuvent ˆetre utilis´es. En revanche, comme tous leurs ´el´ements ont la
mˆeme g´eom´etrie et la mˆeme connectivit´e, l’approximation des objets mod´elis´es est
souvent inacceptable du point de vue de la fiabilit´e de la simulation obtenue.
Grilles curvilin´eaires
Les grilles curvilin´eaires ou stratigraphiques 6
sont des maillages r´eguliers, constitu´es
d’hexa`edres qui sont d´eform´es afin d’ˆetre align´es sur les limites de couches g´eologiques
et les failles (figure 2.6). Cependant, dans les zones o`u ces limites s’intersectent,
6. Elles sont ´egalement appel´ees corner-point grids en anglais.26 Chapitre 2. Etat de l’art ´
les cellules ne peuvent pas, en g´en´eral, ˆetre align´ees avec toutes ces couches. Des cellules
d´eg´en´er´ees ou inactives sont alors cr´e´ees et certaines limites g´eologiques sont
supprim´ees ou approxim´ees en marches d’escalier, notamment les failles. Ces grilles
sont g´en´eralement g´en´er´ees par extrusion du maillage quadrangulaire d’un des horizons,
cr´eant ainsi le nombre souhait´e de couches d’hexa`edres. Elles sont massivement
utilis´ees dans un contexte d’exploration-production p´etroli`ere pour le remplissage g´eostatistique
des propri´et´es des roches et la simulation d’´ecoulements (voir par exemple
[Farmer, 2005]).
Maillages non-structur´es
Les maillages non-structur´es, dans lesquels les connectivit´e, taille, aspect et orientation
des ´el´ements sont variables, permettent de mieux capturer la g´eom´etrie des
mod`eles. Ils sont relativement peu utilis´es pour la simulation d’´ecoulement, puisque
les matrices r´esultant de la discr´etisation n’ont g´en´eralement pas un motif r´egulier
et sont plus coˆuteuses `a stocker et `a inverser. Toutefois, les simulateurs r´ecemment
d´evelopp´es, comme GPRS [Cao, 2002] et IX [DeBaun et al., 2005], et les travaux sur
de nouveaux sch´emas de discr´etisation (voir par exemple Eymard et al. [2012]) vont
peut ˆetre changer la donne.
La diversit´e des maillages non-structur´es est tr`es grande, nous en donnons ici
quelques uns utilis´es pour la simulation r´eservoir. Les grilles tronqu´ees sont obtenues
en d´ecoupant des grilles structur´ees, et ce, g´en´eralement par les failles sur lesquelles
la grille n’est pas align´ee [Lasseter et Jackson, 2004]. Ces grilles peuvent ˆetre raffin´ees
autour des zones d’int´erˆet [Sword et al., 2013] ce qui leur donne une grande flexibilit´e.
Les maillages semi-structur´es, c’est-`a-dire structur´es dans au moins une direction de
l’espace, sont similaires aux grilles stratigraphiques. La diff´erence est que les cellules
sont construites, en extrudant, non pas des quadrangles, mais des cellules de Vorono¨ı,
des triangles, ou bien un m´elange de diff´erents ´el´ements (voir par exemple Lepage
[2003]). Les maillages modulaires, directement li´es `a la d´ecomposition du mod`ele en
diff´erents blocs, les modules, sont constitu´es des maillages de ces diff´erentes parties.
Ceci permet d’utiliser des grilles r´eguli`eres dans les zones de faibles int´erˆet et d’adapter
les ´el´ements dans les zones plus importantes du point de vue de la simulation, voir
par exemple Flandrin et al. [2006] et Lepage [2003]. La difficult´e est alors de g´en´erer
le maillage reliant les diff´erents modules. Le dernier grand type de maillage nonstructur´e
est les grilles de poly`edres convexes quelconques, voir par exemple Merland
[2013].
Maillages pour d’autres applications
La diversit´e des maillages pour les applications autres que la simulation r´eservoir
est beaucoup plus r´eduite. Une grande partie des probl`emes m´ecaniques, thermiques
ou de propagation d’ondes sont r´esolus avec des m´ethodes num´eriques de type ´el´ement
fini. Les maillages utilis´es sont souvent des maillages simpliciaux car ils peuvent ˆetre
adapt´es `a toutes les g´eom´etries. Les maillages t´etra´edriques sont utilis´es en restauration
g´eom´ecanique, pour v´erifier la coh´erence des mod`eles ou comprendre l’´evolution
temporelle de certaines structures (voir par exemple Durand-Riard et al. [2011] et
Vidal-Royo et al. [2012]), pour calculer la propagation des ondes sismiques [LelievreQualite d’un maillage et d ´ efis de g ´ en´ eration ´ 27
Figure 2.7 – Utilisation d’un maillage tetra ´ edrique pour la restauration d’un ´
pli (tire de ´ Durand-Riard [2010]). L’horizon sup´erieur pliss´e est restaur´e dans son ´etat
de d´epˆot, c’est-`a-dire `a l’horizontale.
et al., 2012], la diffusion de la chaleur [Liu et al., 2012], ou les ´ecoulements en milieux
fractur´es [Mustapha et Mustapha, 2007]. Ils sont aussi utilis´es pour mod´eliser de
mani`ere implicite les horizons stratigraphiques dans un espace d´epˆot [Mallet, 2004].
Moretti [2008] et [Moretti et al., 2006] utilisent une grille curvilin´eaire align´ee sur les
horizons et les failles (sans cellule d´eg´en´er´ee ou d´esactiv´ee) pour des calculs de restauration.
L’utilisation de maillages hexa´edriques non-structur´es reste limit´ee puisque
l’automatisation de leur g´en´eration est difficile [Owen et Shelton, 2014].
2.2 Qualit´e d’un maillage et d´efis de g´en´eration
Nous avons vu dans la partie pr´ec´edente que les maillages ont deux objectifs
principaux en g´eomod´elisation : repr´esenter un mod`ele du sous-sol de mani`ere approch´ee
et r´ealiser des simulations num´eriques dans ce mod`ele. Pour avoir des r´esultats
fiables, rapides et robustes, le maillage doit respecter des crit`eres sur le nombre, la
taille et la forme de ses ´el´ements. Nous voyons dans cette partie comment ces crit`eres
de qualit´e sont parfois contradictoires, comment identifier les zones o`u ils le sont, et
comment prendre en compte de mani`ere ad´equate ces zones lors de la g´en´eration du
maillage.
2.2.1 Qualit´e d’un maillage
La qualit´e d’un maillage est un ensemble de crit`eres qui ´evalue son influence sur
la pr´ecision et l’efficacit´e des applications dans lesquels il est utilis´e. Par exemple
le maillage figure 2.8b donne une estimation moins pr´ecise du p´erim`etre de l’´etoile
que les maillages des figures 2.8a et c. Le maillage optimal est celui, qui pour une
application donn´ee, permet d’atteindre la pr´ecision souhait´ee tout en comptant le
moins d’´el´ements possible.
Qualit´e d’approximation du mod`ele
La qualit´e d’approximation des mod`eles par fronti`eres se r´eduit `a la qualit´e d’approximation
de ces fronti`eres. Les premiers crit`eres de mesure de la fid´elit´e de la repr´esentation
d’un objet (mod`ele) par un maillage sont g´eom´etriques. Il s’agit d’´evaluer28 Chapitre 2. Etat de l’art ´
Figure 2.8 – Qualite de l’approximation par maillages d’une ´ etoile. ´ Les trois
maillages de la mˆeme ´etoile sont trois approximations diff´erentes. Les distances de Hausdorff
entre le mod`ele initial et le maillage (d0 < d1 < d2) indiquent que la meilleure approximation
g´eom´etrique est le maillage (c) dont la caract´eristique d’Euler est incorrecte car un segment
manque. La topologie des maillages (a) et (b) est correcte mais l’approximation de l’´etoile
est vraiment mauvaise pour le maillage en (b).
Figure 2.9 – Distance de Hausdorff entre deux lignes X et Y. sup(F) d´esigne la
borne sup´erieure de F et inf(F) sa borne inf´erieure.Qualite d’un maillage et d ´ efis de g ´ en´ eration ´ 29
les diff´erences de propri´et´es des surfaces du mod`ele et du maillage, calcul de distance,
calcul de diff´erences de normale, de courbure, etc. [Frey et George, 1999]. Ces
diff´erences peuvent ˆetre ´evalu´ees localement pour chaque sommet, arˆete ou triangle,
ou bien globalement. Parmi les mesures possibles, la distance de Hausdorff ´evalue
la proximit´e entre deux mod`eles. Pour deux objets X and Y elle est d´efinie comme
(figure 2.9) :
dH(X, Y ) = max {supx∈X infy∈Y d(x, y)|supy∈Y infx∈X d(y, x)}.
Les crit`eres topologiques ´evaluent la fid´elit´e du maillage au mod`ele initial ind´ependamment
de sa g´eom´etrie. Dans un mod`ele par fronti`eres, il s’agit notamment
de v´erifier que les connexions entre les surfaces restent les mˆemes et que la topologie
de chacune des surfaces reste la mˆeme. Dire que deux domaines ont la mˆeme
topologie signifie, en g´en´eral, en informatique graphique, que l’objet initial et son
maillage sont hom´eomorphes (partie 1.2.4). S’il est possible de prouver que le r´esultat
d’un algorithme de maillage est hom´eomorphe `a la surface d’entr´ee (partie 1.2.4)
il n’est pas, `a notre connaissance, possible de calculer en pratique s’il l’est. Dans le
cas o`u le mod`ele initial est maill´e, des propri´et´es plus faibles, comme la caract´eristique
d’Euler-Poincar´e : X= S − A + F, avec S le nombre de sommets, A le nombre
d’arˆetes, et F le nombre de facettes, ou l’homologie [Boltcheva et al., 2011] peuvent
ˆetre compar´ees. Par exemple, l’´etoile remaill´ee sur la figure 2.8c n’est pas correcte,
car sa caract´eristique d’Euler vaut 1, alors que celle du contour de l’´etoile, une ligne
ferm´ee, vaut 0.
Qualit´e du maillage pour les simulations num´eriques
L’influence d’un maillage sur la pr´ecision et l’efficacit´e des simulations num´eriques
qui visent `a r´esoudre des ´equations aux d´eriv´ees partielles peut ˆetre grande.
Cette influence d´epend de nombreux facteurs parmi lesquels le processus physique
simul´e, la m´ethode de discr´etisation, les propri´et´es g´eom´etriques du maillage (distances,
courbure, angles, etc.), voir Knupp [2007], Berzins [1999] et les r´ef´erences
cit´ees. La qualit´e d’un maillage est d´efinie par Knupp [2007] comme l’ensemble des
caract´eristiques du maillage qui permettent que les calculs li´es `a une simulation num´erique
particuli`ere soient efficaces, fid`eles `a la physique, et obtenus avec la pr´ecision
demand´ee. Un maillage est de meilleure qualit´e si les erreurs qui lui sont imputables
plus faibles que pour un autre. Ces erreurs peuvent ˆetre ´evalu´ees a priori, en contrˆolant
certaines propri´et´es du maillage, ou a posteriori, en contrˆolant le r´esultat de la
simulation.
En pratique des crit`eres visant `a ´eliminer les ´el´ements cr´eant (a priori) des dif-
ficult´es pour la simulation num´erique d’un processus (suppos´e isotrope) sont utilis´es
en g´en´eration de maillage, voir par exemple la synth`ese de Field [2000]. Ces ´el´ements
sont notamment ceux ayant des petits ou grands angles (figure 2.10) ou bien ceux
dont la taille des arˆetes n’est pas dans l’intervalle souhait´e (longueurs minimale et
maximale des arˆetes).
Pour r´esumer, d´efinir la qualit´e d’un maillage ind´ependamment d’une application
n’a pas de sens. Cette application implique le plus souvent une ´equation aux d´eriv´ees
partielles et un sch´ema num´erique, et suivant ceux-ci, certaines caract´eristiques d’un
maillage deviennent d´esirables ou n´efastes. Par exemple, certains codes de calcul30 Chapitre 2. Etat de l’art ´
Figure 2.10 – Tetra ´ edres a priori de mauvaise qualit ` e, tir ´ e de ´ Shewchuk [2012].
requi`erent des ´el´ements quasiment ´equilat´eraux, tandis que d’autres se comporteront
mieux avec des ´el´ements anisotropes, d´eform´es selon les directions pr´ef´erentielles de
telle ou telle propri´et´e physique.
2.2.2 Effet n´egatifs de la g´eom´etrie du mod`ele
Les r´egions fines, celles fortement courb´ees, ou bien celles pr´esentant des surfaces
s’intersectant `a angle faible sont g´en´eralement incompatibles avec ces crit`eres de
qualit´e. Un mod`ele o`u un angle entre deux surfaces vaut 16 degr´es implique qu’au
moins un des ´el´ements du maillage aura un angle `a 16 degr´es (figure 4b).
Dey et al. [1997] d´efinissent les petites caract´eristiques du mod`ele comme les
composantes, ou morceaux des composantes, du mod`ele dont la taille est inf´erieure
`a celle qui permettrait de construire un maillage dont les ´el´ements satisfont des crit`eres
donn´es. Comme ces crit`eres d´ependent de l’application et ne sont pas toujours
clairement d´efinis, l’identification de ces petites caract´eristiques peut ˆetre compliqu´ee
et est souvent faite par les modeleurs et/ou ing´enieurs en charge de la construction
du mod`ele et des simulations [Quadros et Owen, 2012]. Cependant leur identification
automatique et leur prise en compte, avant, pendant, ou apr`es la g´en´eration du
maillage facilitent l’obtention d’un maillage de qualit´e.
2.2.3 Gestion des caract´eristiques probl´ematiques du mod`ele
Dans cette partie, nous nous int´eressons aux m´ethodes permettant d’identifier et
de g´erer les zones complexes pour la g´en´eration du maillage d’un mod`ele d´efini par
fronti`eres, ind´ependamment de la repr´esentation des surfaces du mod`ele, de l’objectif
dans lequel il est construit, ou de la m´ethode de maillage utilis´ee. Les ´el´ements
probl´ematiques dans les mod`eles structuraux seront d´ecrits dans le chapitre 3.
Pr´e-identification
L’identification des petites caract´eristiques dans un mod`ele par fronti`eres peut
ˆetre faite `a l’aide d’un ensemble de mesures ´evaluant la proximit´e entre deux surfaces
(distance `a la surface m´ediane), la proximit´e entre les bords des surfaces (distance `aQualite d’un maillage et d ´ efis de g ´ en´ eration ´ 31
l’axe m´edian), la courbure des surfaces, la longueur des bords des surfaces, leur courbure
[Quadros et Owen, 2012]. Les arˆetes et points anguleux 7 d’un mod`ele peuvent
´egalement ˆetre un d´efi, ils sont g´en´eralement pr´e-identifi´es. Si ce n’est pas le cas, ils
peuvent ˆetre recalcul´es, voir Botsch et al. [2010].
La complexit´e du mod`ele peut ´egalement ˆetre ´evalu´ee localement dans une subdivision
du mod`ele. Andrle [1996] utilise des cercles de rayons variables pour calculer
une mesure d’angle `a une r´esolution et ´evaluer la complexit´e de lignes g´eomorphiques.
Lindsay et al. [2013] proposent de compter pour chaque cellule d’une grille structur´ee
le nombre de mat´eriaux ´echantillonn´es par cette cellule et ses voisins. C’est ´egalement
sur ce principe de subdivision que fonctionnent les m´ethodes de calcul de dimension
fractale par comptage par boˆıte 8
, voir par exemple Kruhl [2013].
Simplification du mod`ele
La solution de gestion la plus radicale des zones complexes est sans doute de les
supprimer ou, tout du moins, de les modifier pour les rendre moins complexes avant
d’en g´en´erer un maillage. En mod´elisation g´eologique, la simplification de la g´eom´etrie
des mod`eles est souvent n´ecessaire, mais la litt´erature se concentre sur le probl`eme de
la mise `a l’´echelle des propri´et´es des roches, voir la revue de Durlofsky [2005], et est
rare `a ce sujet, `a l’exception de travaux sur les r´eseaux de fractures [Bourbiaux et al.,
2002, Mustapha et al., 2011]. En conception assist´ee par ordinateur les m´ethodes sont
nombreuses pour simplifier les mod`eles et supprimer les caract´eristiques qui affectent
la robustesse d’une simulation. Thakur et al. [2009] en font une tr`es bonne synth`ese.
Les trois strat´egies qui nous paraissent pertinentes pour la simplification de mod`eles
structuraux sont les m´ethodes qui op`erent sur les composantes surfaciques du mod`ele,
les m´ethodes qui op`erent dans le volume, et les m´ethodes de r´eduction de dimension.
Les premi`eres simplifient le mod`ele ou son maillage par modifications locales
[Shephard et al., 1998, Sheffer, 2001, Quadros et Owen, 2012]. La g´en´eralisation de
l’op´eration de contraction d’arˆetes propos´ee par Garland et Heckbert [1997] permet
de regrouper des sommets proches pour modifier la topologie des mod`eles. Cette
strat´egie a notamment ´et´e utilis´ee par Mustapha et al. [2011] pour modifier le maillage
de r´eseaux de fractures discrets.
La m´ethode volumique propos´ee par Andujar et al. [2002] op`ere sur une subdivision
r´ecursive du mod`ele `a l’aide d’un octree. Les cellules `a l’ext´erieur et `a l’int´erieur
du mod`ele sont identifi´ees et le mod`ele est reconstruit `a partir des cellules
restantes. Diff´erents niveaux de simplification sont obtenus pour diff´erentes profondeurs
d’arbres. Le fait de consid´erer le mod`ele dans sa globalit´e permet d’analyser
localement les relations entre ses diff´erentes composantes.
La r´eduction de dimension d’un mod`ele est une technique de simplification utilis´ee
en conception assist´ee par ordinateur. Par exemple, une barre cylindrique (3D)
peut ˆetre remplac´ee par une ligne (1D) sans impact significatif sur la pr´ecision de
certaines simulations [Thakur et al., 2009]. Les mod`eles r´esultants peuvent contenir
des composantes dont la dimension intrins`eque varie. Les maillages `a g´en´erer sont
7. sharp features
8. box-counting32 Chapitre 2. Etat de l’art ´
mixtes, ils contiennent des ´el´ements de dimensions diff´erentes (figure 1.5c), e.g. [Robinson
et al., 2011]. Il faut ´egalement transf´erer correctement les propri´et´es associ´ees
aux composantes du mod`ele. En g´eomod´elisation, les failles, qui sont en r´ealit´e des
volumes d’endommagement des roches, sont mod´elis´ees par des surfaces auxquelles
sont associ´ees des propri´et´es sp´ecifiques comme les multiplicateurs de transmissibilit´e
[Manzocchi et al., 1999].
Prise en compte dans la g´en´eration du maillage
Pour tenir compte des zones compliqu´ees `a mailler, la plupart des m´ethodes
de maillage d´ependent d’une fonction de taille des ´el´ements pour obtenir des ´el´ements
d’aspect satisfaisant. Cette fonction d´epend g´en´eralement des mesures faites
lors d’une pr´e-identification des zones potentiellement probl´ematiques sur le mod`ele
d’entr´ee, mesures de courbure, de d´eviation des normales, de distance `a l’axe m´edian,
voir par exemple Frey et George [1999] et Quadros et al. [2004]. Outre l’augmentation
du nombre d’´el´ements du maillage, il est ´egalement possible de modifier leur forme et
leur type pour mieux capturer la g´eom´etrie d’un mod`ele et/ou diminuer les erreurs
de simulations num´eriques. A nombre d’´el´ements constant, l’utilisation d’´el´ements
anisotropes peut permettre de mieux respecter la g´eom´etrie d’un domaine et de minimiser
l’erreur d’approximation d’une fonction donn´ee. Une seconde possibilit´e est
d’utiliser des ´el´ements de types diff´erents selon la zone du mod`ele, la troisi`eme est
d’utiliser des ´el´ements de degr´e sup´erieur (courbes). Leur g´en´eration est cependant
plus d´elicate, voir par exemple Luo et al. [2004].
Post-traitement
Quand les zones compliqu´ees ne sont ni pr´e-trait´ees, ni prises en compte lors
de la g´en´eration du maillage, elles peuvent ˆetre identifi´ees apr`es sa g´en´eration en
´evaluant l’ad´equation entre les ´el´ements g´en´er´es et les crit`eres requis [Dey et al.,
1997]. L’avantage est que tous les types de complications possibles sont identifi´es,
l’inconv´enient est qu’il faut g´en´erer un premier maillage volumique. Ce maillage est
ensuite modifi´e localement et it´erativement jusqu’`a ce qu’il se conforme `a ces crit`eres.
Ce raisonnement tr`es g´en´eral est celui des m´ethodes d’optimisation et d’adaptation
de maillage qui modifient it´erativement le maillage jusqu’`a diminuer l’erreur de calcul
sous un seuil admissible [Frey et George, 1999, Loseille, 2008].
2.3 Maillage volumique `a base de t´etra`edres
Dans les deux derni`eres parties de ce chapitre, nous passons en revue les m´ethodes
de g´en´eration de maillages simpliciaux volumiques et surfaciques. Nous commen¸cons
par d´ecrire les grandes m´ethodes de g´en´eration de maillage `a base de t´etra`edres, qui
sont plus simples `a appr´ehender, car la dimension de l’objet `a mailler est la mˆeme
que celle de l’espace dans lequel il est plong´e, `a savoir trois.
Apr`es les grandes m´ethodes de maillage t´etra´edrique, nous d´etaillons des m´ethodes
de maillage plus particuli`erement reli´ees aux travaux men´es durant cette
th`ese : le maillage de mod`eles multi-mat´eriaux et la g´en´eration de maillages hybrides
majoritairement compos´es de t´etra`edres. Pour la g´en´eration d’autres types deMaillage volumique a base de t ` etra ´ edres ` 33
Figure 2.11 – Subdivisions recursives de la bo ´ ˆıte contenant l’etoile. ´
Figure 2.12 – Patrons pour la construction d’un maillage depuis une subdivision.
Le maillage final est construit `a partir des sommets des cellules (points noirs) et des points
d’intersection entre l’´etoile et les cellules (points blancs). A chaque cellule est associ´e un des
dix patrons de d´ecoupage en triangles. Pour ´eviter de cr´eer des triangles de mauvaise qualit´e
les sommets proches sont regroup´es (cercles verts).
maillages, le lecteur est invit´e `a se r´ef´erer aux synth`eses de Thompson et al. [1999],
Frey et George [1999], Baker [2005] et Farmer [2005].
2.3.1 Maillages t´etra´edriques
Les m´ethodes de g´en´eration de maillages t´etra´edriques sont tr`es nombreuses.
Elles peuvent ˆetre reli´ees `a l’une des trois grandes approches suivantes : les m´ethodes
fond´ees sur une subdivision de l’espace (octree), celles par avancement de front et
celles dites Delaunay.
Subdivision de l’espace
Le principe des m´ethodes fond´ees sur une subdivision de l’espace est de d´ecouper
une boˆıte englobante du mod`ele en cellules de tailles variables, puis de construire
les t´etra`edres du maillage en subdivisant ces cellules (voir par exemple [Shephard
et Georges, 1991]). Ce d´ecoupage utilise une structure hi´erarchique d’arbres, d’o`u le
nom de ces m´ethodes en anglais, octree (3D) et quadtree (2D). Une boˆıte englobante34 Chapitre 2. Etat de l’art ´
Figure 2.13 – Principe de maillage par avancee de front. ´ (a) Le front initial est un
maillage de la fronti`ere du domaine. Un segment est choisi et le point optimal pour former
un triangle avec ce segment est d´etermin´e. (b) Une fois le triangle construit le front est mis
`a jour. (c) Front apr`es construction de trois autres triangles.
du mod`ele est d´ecoup´ee en huit (quatre en 2D) cellules, puis chaque cellule est r´ecursivement
d´ecoup´ee en huit (quatre) jusqu’`a un crit`ere d’arrˆet donn´e (figure 2.11).
Ce crit`ere d’arrˆet prend en compte la taille d’´el´ement souhait´ee et un nombre maximal
d’intersections entre les bords du mod`ele et les cellules. Souvent, l’intersection de
chaque feuille avec le bord du mod`ele est tenue d’avoir une seule composante connexe.
Pour contrˆoler les variations des tailles des cellules, les diff´erences de niveaux entre
cellules adjacentes sont limit´ees `a un facteur deux, voir les subdivisions en ligne
pointill´ee ajout´ees sur la figure 2.12. Les sommets des t´etra`edres du maillage final
sont donn´es par l’ensemble des sommets des cellules de l’arbre auxquels sont ajout´es
les intersections entre les cellules et la fronti`ere du domaine et, ´eventuellement, les
sommets de la discr´etisation initiale de la fronti`ere (figure 2.12). Les t´etra`edres (ou
triangles) du maillage final sont construits en subdivisant les cellules de l’arbre selon
des patrons pr´ed´efinis. En deux dimensions, il y a dix patrons (figure 2.12) ; en
trois dimensions, le nombre de configurations est tr`es grand, et des strat´egies plus
g´en´erales de d´ecoupe des octants sont mises en place.
Ces m´ethodes sont relativement robustes et fiables [Frey et George, 1999]. Elles
n´ecessitent de mettre en place des strat´egies pour am´eliorer la qualit´e des ´el´ements
proche des fronti`eres, par exemple regrouper les sommets trop proches l’un de l’autre.
Elles ne requi`erent pas que les fronti`eres du domaine soient discr´etis´ees, leur maillage
´etant un sous-produit du maillage du mod`ele. Si elles le sont, le maillage g´en´er´e n’est
pas conforme `a leur discr´etisation. Notons que, r´ecemment, des m´ethodes de type
octree proposant des garanties sur les angles di`edres des t´etra`edres construits ont ´et´e
propos´ees [Labelle et Shewchuk, 2007, Wang et Yu, 2012].
Avanc´ee de front
La strat´egie des m´ethodes par avanc´ee de front (ou frontales) est de construire le
maillage ´el´ement par ´el´ement en avan¸cant progressivement dans le domaine `a mailler
depuis sa fronti`ere (figure 2.13) [L¨ohner et Parikh, 1988]. Tant que le front de maillage
n’est pas vide, un ´el´ement est construit `a partir d’un de ses segments (2D) ou triangles
(3D). Ces m´ethodes d´eterminent de mani`ere heuristique les points `a cr´eer et les
´el´ements `a construire, ce qui permet d’obtenir des ´el´ements qui ont la taille et la
forme souhait´ee. Par construction, le maillage respecte la fronti`ere du domaine, et
la qualit´e des ´el´ements le long de cette fronti`ere est tr`es bonne, au contraire des
m´ethodes par subdivision ou de type Delaunay. La construction d’un ´el´ement impliqueMaillage volumique a base de t ` etra ´ edres ` 35
Figure 2.14 – Maillages de type Delaunay, contraint et par raffinement, tire´
de Shewchuk [2012]. (a) La triangulation de Delaunay des sommets du bord de l’objet ne
contient pas un des segments de ce bord. (b) La triangulation de Delaunay obtenue en ins´erant
des points de Steiner. (c) La triangulation de Delaunay contrainte contient ce segment.
Figure 2.15 – Insertion d’un point dans une triangulation de Delaunay, algorithme
de Bowyer-Watson, modifie d’apr ´ es` Shewchuk [2012].
de (1) s´electionner un ´el´ement du front selon un crit`ere sp´ecifique, (2) d´eterminer un
point optimal pour construire un ´el´ement du maillage final bas´e sur celui du front, (3)
chercher si un point existant du maillage peut remplacer ce point optimal, (4) former
l’´el´ement, (5) tester si cet ´el´ement est valide et changer le point optimal si ce n’est pas
le cas, et enfin, (6) mettre `a jour le front. La convergence des m´ethodes par avanc´ee
de front n’est pas garantie en trois dimensions, mais des strat´egies efficaces peuvent
ˆetre mises en place pour l’obtenir. Par exemple, le logiciel NetGen 9
impl´emente une
m´ethode de ce type [Sch¨oberl, 1997].
Delaunay
Le troisi`eme grand type de m´ethodes de g´en´eration de maillages t´etra´edriques
est celui des m´ethodes fond´ees sur la triangulation de Delaunay (partie 1.1.2). Leur
principe est de construire la triangulation de Delaunay d’un ensemble de points et de
modifier cet ensemble de points et/ou cette triangulation pour atteindre les crit`eres
de qualit´e souhait´es, voir ´egalement George et Borouchaki [1997], Cheng [2013] et le
cours de Shewchuk [2012]. Elles sont fond´ees sur la proc´edure qui permet d’ins´erer un
9. http://www.hpfem.jku.at/netgen/36 Chapitre 2. Etat de l’art ´
Figure 2.16 – Principe du maillage par optimisation Vorono¨ı-Delaunay.
point dans une triangulation de Delaunay en gardant une triangulation de Delaunay
(figure 2.15).
Les m´ethodes de type Delaunay contraint visent avant tout `a reconstituer la discr´etisation
des fronti`eres du domaine d’entr´ee dans le maillage g´en´er´e (figure 2.14a).
Les sommets de la fronti`ere du mod`ele sont ins´er´es dans le maillage d’une boˆıte englobante
du mod`ele. Il faut ensuite recouvrer, point tr`es d´elicat en trois dimensions, les
´el´ements de la fronti`ere qui ne sont pas dans la triangulation de Delaunay 10. Des sommets
suppl´ementaires sont ensuite ins´er´es dans le mod`ele jusqu’`a ce que des crit`eres
de taille et d’aspect des ´el´ements soient remplis [George et al., 1991, Borouchaki et al.,
1997, Shewchuk, 2002a, Si et G¨artner, 2011, Si, 2010]. Des logiciels comme Tetgen 11
et MG-Tetra 12 permettent d’obtenir des t´etra´edrisations contraintes de mod`eles d´e-
finis par des surfaces triangul´ees conformes.
Le principe des m´ethodes de type raffinement de Delaunay, est d’ins´erer it´erativement
des sommets au centre des sph`eres circonscrites aux t´etra`edres qui ne satisfont
pas un crit`ere donn´e [Chew, 1997, Shewchuk, 1998, Cheng et al., 2005, Shewchuk,
2002b, Cohen-Steiner et al., 2004, Rineau et Yvinec, 2007, Si, 2008]. Souvent ce crit`ere
est fonction du ratio entre le rayon de la sph`ere circonscrite au t´etra`edre et la
longueur de sa plus courte arˆete, car il est alors prouv´e que, sous certaines conditions,
l’algorithme se termine. Ces m´ethodes fournissent des garanties sur les angles di`edres
minimaux dans le maillage final. Les diff´erences entre algorithmes sont sur la gestion
du bord de l’objet dont la discr´etisation est en g´en´eral modifi´ee. Gmsh 13, TetGen,
NetGen et la librairie CGAL 14 impl´ementent ce type de m´ethode. La qualit´e des
maillages obtenus est a priori relativement bonne, en revanche le contrˆole du nombre
de sommets ajout´e est difficile et les fronti`eres du domaine sont remaill´ees.
Optimisation Vorono¨ı-Delaunay
Une seconde strat´egie pour g´en´erer des maillages de type Delaunay consiste `a
d´eterminer les positions de tous les sommets du maillage final avant d’en construire
la triangulation de Delaunay [Du et Wang, 2003, Alliez et al., 2005a, Tournois et al.,
10. Ce maillage n’est plus alors dans la plupart des cas strictement Delaunay.
11. http://wias-berlin.de/software/tetgen/
12. http://www.meshgems.com/volume-meshing-meshgems-tetra.html
13. http://geuz.org/gmsh/
14. http://www.cgal.org/Maillage volumique a base de t ` etra ´ edres ` 37
2009, Tournois, 2009, Dardenne et al., 2009, L´evy et Liu, 2010]. Dans un premier
temps un nombre donn´e de points est distribu´e pour ´echantillonner la surface ou le
volume `a mailler, puis les coordonn´ees de ces points sont optimis´ees afin de minimiser
une fonction objectif, enfin la triangulation de Delaunay des points est construite
et donne le nouveau maillage (figure 2.16). Cette fonction objectif est d´eriv´ee de
celle du diagramme de Vorono¨ı barycentrique (section 1.3.1) et/ou de la notion de
triangulation de Delaunay optimale [Chen et Xu, 2004].
Les deux caract´eristiques qui distinguent cette approche des m´ethodes plus classiques
de maillage sont que (1) le nombre de sommets est fix´e et que (2) la qualit´e et la
forme des t´etra`edres sont globalement contrˆol´ees par la fonction objectif. Cependant
leur coˆut de calcul est grand devant celui des m´ethodes d´ecrites pr´ec´edemment. Remarquez
que le fait de consid´erer le diagramme de Vorono¨ı rapproche ces m´ethodes
de Delaunay des m´ethodes de type octree. En effet, le diagramme de Vorono¨ı est
une subdivision de l’espace, et le patron pour construire le maillage t´etra´edrique est
donn´e par la relation duale Vorono¨ı-Delaunay (partie 1.1.2). De plus, comme pour les
m´ethodes octree, le maillage des surfaces fronti`eres du domaine peut ˆetre obtenu en
mˆeme temps que le maillage volumique avec la triangulation de Delaunay restreinte
(partie 1.2.3).
2.3.2 Maillage de mod`eles multi-mat´eriaux
Il y a, dans un mod`ele g´eologique, plusieurs unit´es de roches et donc plusieurs
r´egions. L’objectif est de mailler, de mani`ere conforme, ces r´egions, les surfaces qui les
d´elimitent et les lignes d’intersection entre ces surfaces, c’est-`a-dire que les t´etra`edres
de part et d’autre d’une surface doivent partager la mˆeme facette triangulaire et les
triangles de part et d’autre d’une ligne de contact doivent partager le mˆeme segment.
Avec une m´ethode de g´en´eration de maillage contraint, c’est-`a-dire qui g´en`ere
un maillage strictement conforme `a une discr´etisation des fronti`eres donn´ee, les r´egions
du mod`ele peuvent ˆetre maill´ees ind´ependamment (figure 2.17). Les m´ethodes
ne g´en´erant pas un maillage contraint sont beaucoup moins robustes. Lepage [2003],
Pr´evost et al. [2005] proposent d’utiliser une version modifi´ee d’une m´ethode de raffi-
nement de Delaunay pour mailler les surfaces des mod`eles structuraux. Les maillages
obtenus sont caract´eristiques de ce type de m´ethode, ils sont tr`es raffin´es dans les
coins des mod`eles.
Les m´ethodes d´evelopp´ees en informatique graphique ne s’int´eressent g´en´eralement
pas au probl`eme de surfaces non-vari´et´es ou aux mod`eles multi-mat´eriaux.
Celles qui le font explicitement sont d´evelopp´ees pour des applications m´edicales.
L’objectif est de g´en´erer des maillages volumiques `a partir d’images num´eriques 3D
(scanner, IRM) afin de r´ealiser des simulations de propagation d’ondes, de chaleur,
etc. La donn´ee d’entr´ee n’est alors pas un mod`ele par fronti`ere. La m´ethode propos´ee
par Sullivan et al. [1997] est bas´ee sur une subdivision par une grille, il en est de
mˆeme pour les travaux plus r´ecents de Zhang et al. [2010], Mohamed et Davatzikos
[2004]. Des m´ethodes de type raffinement de Delaunay [Boltcheva et al., 2009, Dey
et Levine, 2009], ou d’optimisation Vorono¨ı [Dardenne et al., 2009, Dardenne, 2009]
ont ´egalement ´et´e propos´ees.38 Chapitre 2. Etat de l’art ´
Figure 2.17 – Tranche solide dans un maillage tetra ´ edrique d’un mod ´ ele de `
diapir. Le maillage de chaque r´egion est contraint au maillage des surfaces triangul´ees d´efi-
nissant le mod`ele. Les cinq r´egions ont ´et´e maill´ees ind´ependamment les unes des autres avec
TetGen 15
.
2.3.3 Maillage hybride t´etra`edres-prismes
En simulation d’´ecoulements fluides, les zones d’int´erˆets, comme celle entourant
la surface d’un avion, sont maill´ees avec des couches de prismes ou de t´etra`edres. La
plupart des m´ethodes qui construisent ces maillages en couche limite 16 utilisent une
strat´egie de surface (ou de facette) qui avance dans le domaine `a mailler et proposent
des solutions pour obtenir un maillage valide quand la surface d’entr´ee est localement
concave ou anguleuse (voir e.g. [Garimella et Shephard, 2000, Sahni et al., 2008, Dyedov
et al., 2009, Ito et al., 2011]). La zone `a remplir avec des prismes est d´etermin´ee
depuis la surface et une hauteur de prisme est g´en´eralement pr´ed´etermin´ee. Une exception
notable est le travail pr´esent´e par Dyedov et al. [2009], o`u une m´ethode de
face offsetting [Jiao, 2007] est adapt´ee aux g´eom´etries rencontr´ees en biologie. Cette
m´ethode produit des maillages hybrides de tr`es bonne qualit´e dans lesquels l’´epaisseur
des prismes est adapt´ee `a une mesure locale de la taille des objets. Marchandise
et al. [2013] tirent parti de la g´eom´etrie tubulaire des vaisseaux sanguins. Loseille et
L¨ohner [2013] proposent d’utiliser des strat´egies de modifications locales du maillage
pour g´en´erer des couches de prismes.
Pour mailler l’int´erieur de mod`eles, des approches compl´ementaires ont ´et´e d´evelopp´ees.
Garimella et Shephard [1999] raffinent un maillage isotrope t´etra´edrique
quand le nombre de t´etra`edres s´eparant les facettes triangulaires sur deux cˆot´es oppos´es
du mod`ele est inf´erieur `a une valeur donn´ee. Luo et al. [2010] estiment l’axe m´edian
de la surface bordant le mod`ele pour identifier les sections fines. Pour construire les
prismes, ils dupliquent les triangles d’un des cˆot´es du mod`ele.Maillage surfacique a base de triangles ` 39
Figure 2.18 – Operations locales de remaillage de surface. ´
Figure 2.19 – Maillage de surface dans un espace parametrique, modifi ´ e d’apr ´ es`
Geuzaine et Remacle [2009]. Le maillage est g´en´er´e dans le plan sur une projection de
la surface.40 Chapitre 2. Etat de l’art ´
2.4 Maillage surfacique `a base de triangles
Les diff´erentes repr´esentations possibles des surfaces (implicite, param´etrique,
discr´etis´ee) et la diversit´e des applications les utilisant pour repr´esenter des objets
expliquent le grand nombre de m´ethodes pour les mailler. Mailler une surface signifie
en g´en´erer maillage valide ; remailler une surface sous-entend que cette surface est
d´ej`a maill´ee et d´ecrite sous forme discr`ete. Dans ce cas, le maillage initial peut ˆetre
modifi´e afin d’obtenir un second maillage ayant les propri´et´es souhait´ees. Ces modifi-
cations it´eratives, d´eplacement des sommets ou op´erations sur les arˆetes du maillage
(figure 2.18), sont r´ealis´ees tant que des crit`eres de qualit´e donn´es ne sont pas atteints
(´ecart entre les ´el´ements du maillage et la surface d’entr´ee, m´etrique `a respecter, etc.,
voir par exemple [Frey, 2000, Geuzaine et Remacle, 2009, Botsch et al., 2010]).
Le maillage des surfaces dans un espace tridimensionnel a la particularit´e de
consid´erer des objets de dimension inf´erieure `a celle de l’espace. Les m´ethodes param´etriques
op`erent sur une projection de la surface dans le plan alors que les m´ethodes
directes op`erent directement dans l’espace 3D. Lorsqu’une param´etrisation ad´equate
de la surface est disponible, la robustesse des m´ethodes param´etriques est sans doute
la meilleure car, en deux dimensions, les m´ethodes de maillage Delaunay et par avancement
de front sont garanties de terminer. La d´etermination d’une projection peut
elle-mˆeme ˆetre un probl`eme compliqu´e si la surface initiale est discr´etis´ee ou si elle
n’est pas un ouvert. Il est alors possible d’adapter aux surfaces des m´ethodes 2D
comme l’avancement de front [L¨ohner, 1996, Sifri et al., 2003, Peyr´e et Cohen, 2006,
Aubry et al., 2011] et raffinement de Delaunay (2.4.2), ou bien d’utiliser des m´ethodes
d´edi´ees.
2.4.1 Subdivision de l’espace
M´ethodes octree
Nous avons vu dans la partie 2.3.1 que les m´ethodes de maillage t´etra´edrique
fond´ees sur une subdivision de l’espace 3D de type octree ou diagramme de Vorono¨ı
g´en`erent une discr´etisation des fronti`eres du mod`ele, qui est, en quelque sorte, un
produit du maillage volumique. Le bord de l’´etoile (figure 2.12) et celui de la sph`ere
(figure 2.16) sont maill´es lors du maillage leur int´erieur. Que ce soit pour mailler des
surfaces ou un volume, la subdivision octree est la mˆeme. Les points d’intersections
entre les coins, arˆetes, faces des cellules avec la surface (plus des points particuliers)
sont ensuite reli´es pour cr´eer des arˆetes et des boucles (contour de l’intersection d’une
cellule avec la surface) et construire le maillage final [Shephard et Georges, 1991].
Diagramme de Vorono¨ı restreint barycentrique
Pour les m´ethodes de maillage surfacique utilisant une subdivision de type diagramme
de Voronoi barycentrique, c’est l’intersection entre les cellules et le diagramme
de Vorono¨ı qui doit ˆetre barycentrique (partie 1.3.2). L’optimisation de la
subdivision du volume du mod`ele n’est pas n´ecessaire. Les sommets du maillage final
sont les sites optimis´es pour obtenir un diagramme de Vorono¨ı barycentrique restreint
(´equation 1.6).
16. Boundary layerDiscussion 41
Ces m´ethodes permettent de g´en´erer des maillages d’a priori bonne qualit´e. Du
et al. [2003] d´efinissent la notion de diagramme de Vorono¨ı barycentrique contraint
o`u les sites sont contraints `a ˆetre sur la surface, et donnent des r´esultats de maillage
isotrope adaptatif pour des surfaces d´efinies par une fonction f(x, y, z). Alliez et al.
[2005b] remaillent des surfaces triangul´ees en param´etrisant globalement les surfaces,
Surazhsky et al. [2003] en les param´etrisant localement. Yan et al. [2009], Liu et al.
[2009] calculent l’intersection du diagramme de Vorono¨ı avec les surfaces en 3D et
optimisent la fonction objectif donn´ee par l’´equation 1.6. Cette approche est ´etendue
dans L´evy et Liu [2010], pour g´erer les caract´eristiques anguleuses des mod`eles sans
identification pr´ealable et contrˆoler l’´ecartement entre les sites et les surfaces d’entr´ee,
et dans L´evy et Bonneel [2013] pour g´en´erer des maillages anisotropes. Valette et
Chassery [2004], Valette et al. [2008] utilisent une version discr`ete des diagrammes
de Vorono¨ı pour diminuer la r´esolution d’un maillage.
La difficult´e principale pour les m´ethodes de maillage par subdivision de l’espace,
est, qu’a priori, toutes les configurations sont possibles pour les intersections entre
une cellule et le mod`ele. C’est pour ´eviter des configurations trop compliqu´ees que
les cellules sont raffin´ees jusqu’`a avoir des intersections en une composante connexe
et, pour les m´ethodes de type Vorono¨ı, v´erifier par la mˆeme occasion la propri´et´e de
la boule topologique (partie 1.2.4).
2.4.2 Maillage de surfaces avec garanties
Les m´ethodes de raffinement de Delaunay ont ´et´e d`es leurs d´ebuts utilis´ees pour
mailler directement des surfaces en trois dimensions [Chew, 1993]. Comme pour le
maillage t´etra´edrique, des travaux th´eoriques fournissent des garanties sur la topologie
du maillage et/ou sur la qualit´e des ´el´ements. Une partie de ces m´ethodes consid`erent
s´epar´ement l’´echantillonnage de la surface et la construction des triangles, ceci relie la
g´en´eration de maillage de surfaces en 3D `a un probl`eme de reconstruction de surface
[Hoppe et al., 1992, Boissonnat et Cazals, 2000]. C’est dans ce cadre qu’a ´et´e introduite
la notion d’ǫ-´echantillonage (partie 1.2.4) par Amenta et Bern [1999] qui donne
que, lorsque l’´echantillonnage par les sommets est assez dense vis `a vis de la distance `a
l’axe m´edian, ces sommets ont la propri´et´e de la boule topologique (partie 1.2.4) pour
la surface initiale. De la propri´et´e de la boule topologique sont d´eriv´es des travaux
visant `a relˆacher les contraintes pour obtenir un bon ´echantillonage et `a consid´erer
des surfaces plus g´en´erales. A partir de ces travaux sont d´evelopp´es des algorithmes `
de remaillage Delaunay `a garanties, voir par exemple [Boissonnat et Oudot, 2005,
Cheng et al., 2007]. Des travaux plus r´ecents s’int´eressent tout particuli`erement au
maillage de surfaces implicites [Cheng et al., 2009, Dey et Levine, 2009, Gelas et al.,
2009, Dey et al., 2010]
2.5 Discussion
Nous venons de voir que les maillages ont principalement deux objectifs en g´eomod´elisation
: repr´esenter les objets g´eologiques et r´ealiser des simulations num´eriques ;
le tout dans le but de comprendre l’organisation et le comportement du sous-sol. Les
maillages ne sont pas l’apanage de la g´eomod´elisation. Si leurs domaines d’utilisation
sont extrˆemement vari´es, la question de leur g´en´eration int´eresse des communaut´es42 Chapitre 2. Etat de l’art ´
Figure 2.20 – Modele David maill ` e par ´ Valette et al. [2008] et modele synth ` e- ´
tique d’un diapir de sel.
plus restreintes, ce sujet faisant intervenir des comp´etences en informatique, g´eom´etrie,
g´eom´etrie algorithmique, et simulation num´erique.
Les m´ethodes d´evelopp´ees par la communaut´e d’informatique graphique ou de
g´eom´etrie informatique le sont g´en´eralement dans un objectif de mod´elisation de surfaces.
Les objectifs des m´ethodes de maillage d´evelopp´ees pour des les simulations
physiques sont d’obtenir des r´esultats de simulation fiables, assez pr´ecis, et ce, rapidement.
Les objectifs des maillages en g´eomod´elisation sont partag´es entre ces deux
aspects, d’une part mod´eliser les interfaces entre les volumes rocheux, d’autre part
simuler le comportement du sous-sol. Les surfaces ´etudi´ees en informatique graphique
sont plus simples d’un point de vue topologique que les mod`eles structuraux g´eologiques,
g´en´eralement elles sont vari´et´es et n’ont pas de bord, et plus compliqu´ees d’un
point de vue g´eom´etrique, elles peuvent ˆetre tr`es courb´ees et, en comparaison des cheveux
boucl´es du mod`ele David (figure 2.20), les surfaces g´eologiques sont plates et
lisses. Les similarit´es sont plus grandes avec les mod`eles ´etudi´es en conception assist´ee
par ordinateur 17
.
17. L’acronyme anglais CAD, pour Computer Aided Design, est dans le nom du logiciel de g´eomod´elisation
GOCAD.Chapitre 3
Contribution : El´ements
d’´evaluation de la complexit´e
g´eom´etrique des mod`eles
structuraux
Un article correspondant aux travaux pr´esent´es dans ce chapitre est en pr´eparation
pour le journal Mathematical Geosciences. Ce travail a ´et´e r´ealis´e en collaboration
avec Guillaume Caumon, Charline Julio, Pablo Mejia et Arnaud Botella.
R´esum´e
Dans ce chapitre, nous proposons d’analyser les sources de complexit´e g´eom´etrique
dans les mod`eles structuraux `a une r´esolution donn´ee. Nous ne fournissons
pas de crit`ere d´efinitif de complexit´e, mais d´ecrivons de mani`ere syst´ematique les
´el´ements qui contribuent `a la complexit´e d’un mod`ele structural `a l’aide de mesures
des connexions entre les ´el´ements du mod`ele (r´egions, surfaces, lignes et coins) et
de la g´eom´etrie de ces composantes. Les m´etriques propos´ees sont calcul´ees sur un
ensemble de 9 mod`eles synth´etiques.
3.1 Motivations
Le terme complexe est souvent invoqu´e pour qualifier les mod`eles construits ou
analys´es avec telle ou telle m´ethode. Cependant, la notion de complexit´e, dans le sens
de quelque chose qui est difficile `a comprendre, difficile `a r´ealiser, ou bien inhabituel,
est extrˆemement subjective. Elle d´epend de la personne qui porte ce jugement, de sa
formation et de son exp´erience, des moyens mis `a sa disposition, et avant tout, du
probl`eme qu’elle a `a r´esoudre. Un g´eologue structuraliste pourra consid´erer complexe
la r´eactivation de failles normales en failles inverses [Sassi et al., 1993], alors que
cela aura moins d’importance pour l’ing´enieur r´eservoir qui consid´erera complexes
les r´eservoirs o`u les r´eseaux de failles et de fractures ont un contrˆole pr´epond´erant
sur le pi´egeage et la production d’hydrocarbures [Jolley et al., 2007].44 Chapitre 3. Complexite g ´ eom ´ etrique ´
Cette subjectivit´e de la complexit´e rend difficile la comparaison des mod`eles
structuraux, ce qui, plus ou moins directement, rend difficile la comparaison des m´ethodes
d´evelopp´ees en g´eomod´elisation, comparaisons qui sont pourtant essentielles
pour la recherche. Nous nous restreignons ici `a la complexit´e des mod`eles structuraux
du point de vue de la g´en´eration de maillage, ´etape commune `a une grande
partie des applications en g´eomod´elisation et tentons d’apporter des ´el´ements pour
´evaluer la complexit´e relative de deux mod`eles, estimer la r´esolution minimale d’un
maillage d’un mod`ele et identifier les zones probl´ematiques d’un mod`ele `a une r´esolution
donn´ee. La complexit´e est alors li´ee `a la g´eom´etrie et au niveau de d´etail du
mod`ele, dont d´epend la faisabilit´e d’un maillage `a une r´esolution donn´ee localement
ou globalement.
Nous avons vu dans la partie 2.2.3, diff´erentes mesures utilis´ees pour caract´eriser
les zones complexes des mod`eles pour diverses applications, certains auteurs proposant
mˆeme des calculs de complexit´e g´eom´etrique [Quadros et al., 2004] ou de la
complexit´e de la g´en´eration d’un maillage hexa´edrique [White et al., 2005]. Apr`es
avoir analys´e les sources de complexit´e g´eom´etrique dans les mod`eles g´eologiques
(partie 3.2), nous proposons des mesures globales et locales de cette complexit´e (partie
3.3) et les ´evaluons sur des mod`eles synth´etiques (parties 3.4 et 3.5)
3.2 Sources de complexit´e
Avant de donner les sources de complexit´e dans un mod`ele, nous pr´ecisons le
vocabulaire employ´e dans ces travaux. Que ce soit pour les r´egions, les surfaces ou les
lignes du mod`ele par fronti`ere, nous consid´erons ind´ependamment les composantes
connexes des entit´es g´eologiques constitutives du mod`ele. Chaque r´egion volumique
est compl`etement d´efinie par l’ensemble des surfaces qui constituent son bord (fi-
gure 3.1). Ces surfaces sont elles-mˆemes d´efinies par leurs bords, des lignes, qui sont,
soit `a l’intersection de plusieurs surfaces, soit sur le bord d’une seule de ces surfaces.
Les lignes ouvertes sont d´elimit´ees par deux points que nous appellerons coins.
Chaque r´egion, surface, ligne ou coin, correspond `a une seule entit´e g´eologique, une
entit´e g´eologique pouvant ˆetre divis´ee en plusieurs r´egions, surfaces, lignes, et coins
(figure 3.1). Pour qu’un mod`ele soit valide, ses ´el´ements 1 doivent s’intersecter uniquement
au niveau de leurs fronti`eres et les ´el´ements de mˆeme dimension doivent
partager la mˆeme g´eom´etrie le long de ces fronti`eres, leurs maillages doivent ˆetre
conformes.
3.2.1 Nombre d’objets g´eologiques
La complexit´e d’un mod`ele d´epend principalement du nombre de couches qu’il
contient ainsi que du nombre de discontinuit´es les affectant. Lors de la construction
d’un mod`ele, la coh´erence de chacun de ces objets doit ˆetre v´erifi´ee, ce qui influence
directement le temps n´ecessaire `a la construction d’un mod`ele. Le nombre de r´egions
volumiques d´etermine ´egalement le nombre de r´egions stationnaires `a utiliser pour les
mod`eles p´etrophysiques, et donc le travail n´ecessaire lors de la mod´elisation g´eostatistique.
De plus, chaque surface du mod`ele est susceptible de d´efinir des compartiments
1. Nous employons aussi le terme de composante.Sources de complexite´ 45
Figure 3.1 – El´ ements d’un mod ´ ele structural. ` Le mod`ele est constitu´e de quatre
couches (A, B, C, D) s´epar´ees par trois horizons (h0, h1, h2) et d´ecoup´ees par une faille F. (a)
La couche B est d´ecoup´ee en deux r´egions B.1 et B.2. (b) L’horizon h1 a deux composantes
connexes surfaciques, que nous appelons surfaces. (c) La faille a quatre surfaces num´erot´ees
de 1 `a 4. Chacune de ces surfaces est d´elimit´ee par quatre lignes, elles-mˆemes d´elimit´ees par
des coins. La ligne rouge est sur le bord d’une seule surface F4.
(a) Couche fine (b) Pli couché (c) Discontinuité stratigraphique
(d) Failles avec faible rejet (f) Failles en Y (e) Diagramme de juxtaposition
Figure 3.2 – Quelques sources de complexite dans les mod ´ eles structuraux. ` Le
diagramme de juxtaposition (f) est une vue sur la surface de faille des traces des horizons
recoup´es par cette faille.46 Chapitre 3. Complexite g ´ eom ´ etrique ´
dans le domaine, ayant ainsi souvent un impact de premier ordre sur les ´ecoulements
fluides et les processus g´eophysiques.
3.2.2 Interactions entre les objets
La distribution dans le mod`ele des objets g´eologiques, c’est `a dire leur densit´e, a
des cons´equences directes sur les ´etapes de mod´elisation, de maillage et de simulation.
Cette densit´e est li´ee `a la g´eom´etrie des objets g´eologiques, mais ´egalement aux
intersections entre les couches du mod`ele avec les failles et les autres non-conformit´es.
Les ´el´ements simples interagissent faiblement avec les autres et sont plus faciles `a
modifier ou `a supprimer du mod`ele, au contraire de ceux, qui, tels les discontinuit´es
sont plus difficiles `a supprimer.
Couches stratigraphiques conformes
Des couches conformes 2
, mais localement tr`es fines peuvent ˆetre probl´ematiques.
En effet, la validit´e de la couche (pas d’intersection entre les horizons sup´erieur et
inf´erieur) est plus difficile `a v´erifier dans le cas g´en´eral (figure 3.2a). De plus, les
d´eformations affectant les couches peuvent modifier les ´epaisseurs et courbures des
horizons. Certaines structures comme les plis couch´es (figure 3.2b) sont plus complexes
que les plis simples `a mod´eliser, puisqu’ils ne peuvent pas ˆetre repr´esent´es
avec une seule fonction de la position horizontale, ce qui pose probl`eme pour certaines
applications.
Non-conformit´es stratigraphiques
Les relations verticales entre les couches sont contrˆol´ees par les non-conformit´es
(´erosions, onlaps) qui sont tr`es courantes dans les r´eservoirs stratigraphiques. Leur
g´eom´etrie implique souvent des objets tr`es fins et des faibles angles de contact entre
les horizons qui sont difficiles `a caract´eriser avec les donn´ees et requi`erent des op´erations
de mod´elisation plus compliqu´ees que dans le cas des s´equences continues
(figure 3.2c). Comme nous l’avons vu au chapitre 2, ces angles faibles sont particuli`erement
probl´ematiques lors de la g´en´eration d’un maillage. De plus, leur position
dans le mod`ele peut ˆetre mal connue [Caumon, 2003, Lallier, 2012].
Failles
Les failles sont des discontinuit´es qui correspondent `a un d´eplacement localis´e des
couches le long d’une surface (figure 3.2d). Elles sont souvent difficiles `a caract´eriser
`a partir des donn´ees du sous-sol et introduisent une complexit´e significative `a cause
de leur connectivit´e, leur forme et leurs propri´et´es sp´ecifiques [Jolley et al., 2007].
Le contrˆole qualit´e est crucial pour valider les d´eplacements sur les failles car les
donn´ees sismiques sont bruit´ees autour d’elles. Ce contrˆole peut ˆetre par exemple fait
en analysant les lignes de contact faille-horizon avec un diagramme de juxtaposition
(figure 3.2e) [Groshong, 2008, Caumon et al., 2009]. La juxtaposition de volumes rocheux
ayant des propri´et´es diff´erentes est aussi tr`es importante pour les ´ecoulements
2. Couches r´esultant du d´epˆot continu de s´edimentsMesures gen´ eralistes ´ 47
Figure 3.3 – Calcul de mesures geom ´ etriques en 2D. ´ Mesures d’´epaisseur Ce et
d’angle Ca pour une r´egion R et mesure de forme Cf pour un de ses bords B2.
fluides, car elle entraˆıne de fortes non-lin´earit´es de la r´eponse en ´ecoulement lorsque
la g´eom´etrie est l´eg`erement perturb´ee [Jolley et al., 2007, Tavassoli et al., 2005]. Les
intersections `a angles faibles entre failles et horizons peuvent rendre plus difficile la
cartographie de la juxtaposition des couches et peuvent influencer la transmissibilit´e
de la faille. Les failles qui se terminent dans un mod`ele posent des probl`emes similaires,
car `a leurs extr´emit´es, le d´eplacement des horizons atteint z´ero (figure 3.2e)
et elles ne d´elimitent pas deux r´egions volumiques distinctes, ce qui rend nombre
d’algorithmes inutilisables tels quels.
La complexit´e d’un r´eseau de failles n’est pas seulement une combinaison des
complexit´es de chacune des failles, les diff´erences d’orientation et de pendage des
failles, ainsi que leurs connexions doivent ˆetre consid´er´ees. Le nombre d’intersections
entre failles d´etermine la compartimentation du mod`ele et les angles au niveau de ces
intersections ont des cons´equences majeures sur les approximations n´ecessaires lors
de la g´en´eration d’une grille volumique. Les intersections de failles en Y (figure 3.2f)
ou les variations d’orientation et de pendage des failles peuvent empˆecher une repr´esentation
du mod`ele par extrusion d’une coupe et la construction d’une grille
stratigraphique (partie 2.1.3) [Farmer, 2005].
3.3 Mesures g´en´eralistes
Deux types de mesures peuvent ˆetre utilis´es pour ´evaluer la complexit´e des composantes
d’un mod`ele structural en trois dimensions : les mesures de connectivit´e 3
et les mesures g´eom´etriques. Les premi`eres caract´erisent les relations entre les composantes
du mod`ele et sont ind´ependantes de la g´eom´etrie, les secondes caract´erisent
les tailles et formes de chaque ´el´ement.
3.3.1 Mesures globales de complexit´e
Nous proposons trois mesures pour calculer globalement la complexit´e d’un mod`ele.
La premi`ere d´enombre les ´el´ements du mod`ele (r´egions, surfaces, lignes et coins)
en excluant ceux qui d´efinissent le volume d’int´erˆet. Cette mesure donne `a chaque
´el´ement la mˆeme importance.
3. Ensemble des connexions entre les composantes du mod`ele, aussi appel´ee topologie.48 Chapitre 3. Complexite g ´ eom ´ etrique ´
Pour pond´erer l’importance des ´el´ements en fonction des probl`emes potentiels
qu’ils impliquent, la seconde mesure prend en compte la g´eom´etrie des ´el´ements. Deux
´el´ements, qu’ils soient dans le mˆeme mod`ele ou non peuvent ainsi ˆetre compar´es. Les
coins ne sont pas directement pris en compte dans ce calcul, ils ont cependant une
influence directe sur les mesures faites pour les surfaces et les lignes. Nous calculons
la complexit´e de chaque ´el´ement comme la somme de quatre mesures ´el´ementaires
qui caract´erisent (1) sa taille Ct
; (2) sa forme Cf ; (3) son ´epaisseur Ce ; et (4) ses
angles Ca. Ces mesures sont choisies de mani`ere `a prendre des valeurs entre 0 et 1.
Les mesures de taille et d’´epaisseur d’une composante e de dimension d sont d´efinies
par rapport `a une taille caract´eristique donn´ee h :
Ct(e) =
0 si taille(e) > hd
1 sinon
Ce(e) = (
0 pour les lignes
Ah
taille(Be)
pour les r´egions et les surfaces
o`u Be est l’ensemble des ´el´ements du bord de la composante et Ah la taille de la zone
o`u l’´epaisseur de la composante est inf´erieure `a la taille caract´eristique (figure 3.3).
La mesure de forme Cf ´evalue globalement la d´eformation pour les surfaces et lignes.
Elle est prise ´egale `a 1 moins la taille de la composante projet´ee sur son plan ou
segment moyen divis´e par la taille de la composante (figure 3.3). Elle vaut z´ero pour
les r´egions volumiques. La mesure angulaire Ca est d´efinie par rapport `a un angle
donn´e α pour les r´egions (respectivement les surfaces) et ´evalue le pourcentage de
la longueur des lignes (respectivement le nombre de coins) o`u l’angle entre deux
surfaces (respectivement deux lignes) du bord de la composante s’intersectent `a un
angle inf´erieur `a α (figure 3.3).
Avec la troisi`eme mesure globale, nous proposons d’´evaluer la complexit´e des
´el´ements d’un type donn´e comme une statistique de la taille des ´el´ements de ce type.
Nous avons choisi le coefficient de variation 4 qui caract´erise les distributions relatives
des tailles des ´el´ements et ´evalue les changements d’´echelle pour un type d’´el´ement.
3.3.2 Mesures dans un voisinage
Le calcul des mesures g´eom´etriques ou de connectivit´e dans le voisinage d’un
point permet de capturer localement les relations entre les ´el´ements d’un mod`ele
et d’identifier plus pr´ecis´ement les zones plus complexes. Nous avons vu dans la
partie 2.2.3 des strat´egies permettant d’analyser la complexit´e d’un mod`ele en prenant
des mesures dans le voisinage de points ´echantillonnant le mod`ele. La mise en place
d’une telle m´ethode requiert de calculer l’intersection des voisinages avec le mod`ele
rapidement et de mani`ere robuste.
Pour capturer les relations spatiales entre les ´el´ements d´efinissant un mod`ele,
nous proposons de calculer localement le nombre de coins, composantes connexes de
lignes, composantes connexes de surface et r´egions dans le voisinage de points ´echantillonnant
le mod`ele. Des statistiques basiques : moyenne, coefficient de variation,
4. La moyenne divis´e par l’´ecart-type.Modeles ` 49
maximum et le 90eme `
centile de ces valeurs ´evaluent la complexit´e. Les mesures obtenues
d´ependront de la r´esolution de l’´echantillonnage mais aussi du placement de
de la forme des voisinages utilis´es.
3.4 Mod`eles
Nous proposons un ensemble de mod`eles synth´etiques construits depuis le mod`ele
d’un pli anticlinal cylindrique constitu´e de trois horizons et nomm´e A1 (figure 3.4).
Dans le mod`ele A2, deux failles normales r´egionales affectent les horizons (fi-
gure 3.4). Ces failles planes sont parall`eles, recoupent la totalit´e de la zone d’int´erˆet
et ont un pendage de 60 degr´es vers l’Est. Leur rejet 5
est constant, d’o`u des lignes
de contact faille-horizon parall`eles.
Dans le mod`ele A3, les deux failles sont locales et ne compartimentent pas le
mod`ele (figure 3.4). Les rejets des failles sont maximaux `a proximit´e de leur centre
et deviennent nuls sur leur contour.
Dans le mod`ele A4, une faille est r´egionale tandis que la faille la plus `a l’Ouest
se termine vers le Sud (figure 3.4). Les d´eplacements induits par les failles augmentent
vers le Nord ; une cons´equence est que les lignes de contact horizon-faille s’intersectent
`a angles faibles.
Les failles du mod`ele A5 s’intersectent le long d’une ligne de branchement, elles
ont une configuration en “Y” (figure 3.4). Les rejets des failles sont constants et le
mod`ele peut ˆetre restaur´e en A1 par mouvement de blocs rigides. Cependant, comme
la hauteur du rejet sur une des failles est proche de l’´epaisseur de la couche sup´erieure,
des sections fines apparaissent dans son diagramme de juxtaposition.
Le mod`ele A6 est obtenu en coupant le mod`ele A4 par une surface topographique
(´erosion). Plusieurs petites parties de surfaces isol´ees dont la taille est tr`es
petite compar´ee `a celle du mod`ele apparaissent. De plus, de tr`es faibles angles apparaissent
entre la surface d’´erosion et les couches ´erod´ees (figure 3.4).
Les trois autres mod`eles que nous proposons illustrent des d´efis diff´erents. Le
mod`ele B est un mod`ele de pli li´e `a la propagation d’une faille en compression
(figure 3.5). Dans la partie inf´erieure, la faille a un pendage faible et se branche sur
un niveau de d´ecollement horizontal. Le pendage de la faille varie vers un angle moyen
avant l’arrˆet de la faille dans la couche sup´erieure o`u la d´eformation est accommod´ee
par une d´eformation interne des couches. Dans le mod`ele C, des couches horizontales
sont d´epos´ees en discordance sur un horizon pliss´e (figure 3.5). Le diapir du mod`ele D
est intrusif et recoupe trois couches stratigraphiques. Les horizons sont peu d´eform´es
except´e dans la zone d’influence du diapir (figure 3.5).
3.5 R´esultats
Nous avons calcul´e les mesures propos´ees dans la partie 3.3 pour les neuf mod`eles
pr´esent´es ci-dessus. Les composantes d´efinissant le volume d’int´erˆet des mod`eles
5. D´eplacement induit par la faille.50 Chapitre 3. Complexite g ´ eom ´ etrique ´
Mod`ele A1 : Couches l´eg`erement pliss´ees Mod`ele A2 : Failles parall`eles
Mod`ele A3 : Failles locales
Mod`ele A4 : D´eplacements complexes sur les
failles
Mod`ele A5 : Failles normales obliques Mod`ele A6 : Erosion
Figure 3.4 – Suite de modeles cr ` e´es´ a partir du mod ` ele A1. ` Dimensions : 1600m ×
930m × 500m.Resultats ´ 51
Mod`ele B : Faille thrust (1590m×915m×578m)
Mod`ele C : Stratigraphie onlap (1600m×930m×
500m)
Mod`ele D : Diapir de sel (140m×140m×100m)
Figure 3.5 – Modeles conduisant ` a des configurations potentiellement probl ` e- ´
matiques.
(boˆıte) ne sont pas prises en compte dans ces calculs, ce qui permet de caract´eriser
la complexit´e intrins`eque des mod`eles.
3.5.1 Mesures globales
La premi`ere mesure qui compte le nombre total d’´el´ements dans le mod`ele donne
une premi`ere classification des mod`eles, en ordre croissant : A1, C, D, B, A2, A3,
A4, A5, A6 (table 3.1). La complexit´e obtenue d´epend du nombre de discontinuit´es
affectant le mod`ele et des intersections entre ces discontinuit´es. Trois groupes de
mod`eles apparaissent : ceux qui ont au plus une discontinuit´e (A1, B, C, et D), ceux
qui en ont deux (A2, A3, et A4) et ceux qui en ont deux connect´ees (A6 et A5).
Comme les ´el´ements d´efinissant le domaine d’int´erˆet ne sont pas pris en compte,
cette mesure tr`es simple diff´erencie les failles r´egionales des failles ne recoupant pas
la totalit´e du mod`ele.
Pour ´evaluer la seconde mesure nous avons choisi une r´esolution de 10m et un
angle α de 20 degr´es (table 3.2). La classification r´esultante : A1, C, B, A2, D, A4,
A3, A5, A6 est l´eg`erement diff´erente de la premi`ere. A1 reste le mod`ele le plus simple
tandis que A6 et A5 restent ceux qui sont les plus complexes. La complexit´e accrue de
D est due au fait que l’´echelle de ce mod`ele est significativement plus petite que celle
des autres mod`eles et que la couche inf´erieure a une ´epaisseur en moyenne inf´erieure
`a 10m. Le mod`ele A3 est class´e troisi`eme `a cause de la forte complexit´e g´eom´etrique
induite par les failles qui se terminent `a l’int´erieur de la zone d’int´erˆet. En effet, les
lignes de contact faille-horizon s’y intersectent `a des angles inf´erieurs `a 10 degr´es.52 Chapitre 3. Complexite g ´ eom ´ etrique ´
A1 A2 A3 A4 A5 A6 B C D
R´egions 4 12 4 8 12 14 5 4 5
Surfaces 3 23 16 23 31 42 8 4 6
Lignes 0 13 24 22 30 44 4 1 2
Coins 0 0 12 6 10 15 0 0 0
Total 7 48 56 59 83 115 17 9 13
Table 3.1 – Nombre d’el´ ements dans les mod ´ eles. `
A1 A2 A3 A4 A5 A6 B C D
R´egions 0.13 0.59 0.22 0.34 1.19 6.58 0.35 0.55 2.97
Surfaces 0.03 3.21 12.01 7.41 9.30 12.58 0.25 0.00 1.20
Lignes 0.00 0.01 0.56 0.10 4.01 2.92 0.00 0.00 1.62
Total 0.16 3.81 12.79 7.85 14.50 22.07 0.60 0.55 5.79
Table 3.2 – Somme des complexites g ´ eom ´ etriques ( ´ Ct + Cf + Ce + Cα) pour les
el´ ements. ´
Les coefficients de variation (table 3.3) donnent une classification (A1, D, B,
C, A2, A4, A3, A5, A6) similaire aux pr´ec´edentes. Sa signification est cependant
diff´erente car elle identifie la complexit´e due aux changements d’´echelle des ´el´ements
dans les mod`eles.
3.5.2 Mesures locales
M´ethode
Pour calculer les voisinages dans lesquels les mesures vont ˆetre calcul´ees nous
utilisons les cellules d’un diagramme de Vorono¨ı barycentrique d’un nombre de points
donn´e (parties 1.1.1 et 1.3.1). Les cellules de Vorono¨ı barycentriques donnent une
subdivision du mod`ele relativement isotrope moins sensible `a une orientation donn´ee
que le serait une grille cart´esienne.
Mesures locales de connectivit´e
Nous avons fait ces mesures pour trois nombres de cellules 100 ; 1 000 ; 10 000
cellules et donc `a trois r´esolutions, la r´esolution ´etant estim´ee `a partir de la racine
cubique du volume du mod`ele divis´ee par le nombre de cellules. Pour les mod`eles A,
B et C ces r´esolutions sont respectivement de 198m, 92m, et 43m ; le mod`ele D est
plus petit et les r´esolutions sont 26m, 12m, et 5.7m.
A1 A2 A3 A4 A5 A6 B C D
R´egions 0.74 0.76 0.74 0.84 1.08 1.67 0.57 0.94 0.54
Surfaces 0.00 0.93 1.97 1.41 1.74 1.62 0.79 0.71 0.56
Lignes 0.01 0.63 0.67 0.82 1.06 0.00 0.13
Total 0.74 1.71 3.35 2.92 3.64 4.35 1.37 1.65 1.23
Table 3.3 – Coefficients de variation des tailles des el´ ements dans chaque ´
modele type par type. `Discussion 53
R´esultats
Les statistiques sur le nombre d’´el´ements comptabilis´es dans une cellule sont
donn´ees dans la table 3.4. Les moyennes, maximums, coefficients de variation et les
90eme `
centiles sont trac´es dans un graphe radar (figure 3.6). Selon la statistique
choisie, la classification relative des ´el´ements varie l´eg`erement, particuli`erement pour
les mod`eles les plus simples. Cependant la s´eparation des mod`eles en deux groupes
distincts est claire pour quasiment toutes les mesures et `a toutes les r´esolutions : les
mod`eles les plus simples (A1, B, C et D) qui ont au plus une discontinuit´e et ceux
qui ont au moins deux discontinuit´es (A2, A3, A4, A5, et A6).
Une observation attendue est que, lorsque la r´esolution augmente, la complexit´e
locale et les diff´erences entre les mod`eles diminuent 6
. La moyenne est fortement
influenc´ee par cette diminution. Par exemple, dans le mod`ele A5, elle diminue de 5.51
(100 cellules) `a 1.84 (10 000 cellules) soit une perte de 66.6%, le maximum diminuant
simplement de 30 `a 19 (36.6%). Le maximum caract´erise la zone la plus complexe du
mod`ele, c’est `a dire l’´el´ement contenu dans le plus grand nombre d’´el´ements. Selon
ce crit`ere, la classification obtenue est : B, D, A1, C, A3, A2, A4, A6, A5. A la plus
grande r´esolution, le 90eme `
centile est le mˆeme pour tous les mod`eles (la valeur 3
correspond `a une cellule qui contient un morceau de surface et deux r´egions), mais il
pourrait permettre de classer les mod`eles `a de plus faibles r´esolutions. Le coefficient
de variation ´evalue la dispersion des mesures et peut aussi ˆetre pris comme une mesure
de complexit´e.
Le principal avantage des mesures locales est la possibilit´e de comprendre l’organisation
spatiale de la complexit´e et d’estimer l’extension des zones o`u une m´ethode
donn´ee pourrait ´echouer `a partir des cellules dans lesquelles le nombre total d’´el´ements
est sup´erieur `a un chiffre donn´e. Comme nous pouvons le voir sur la figure 3.7,
ces cellules sont celles qui recoupent les sections fines du mod`ele, couches fines (mod`ele
A6), faible rejet sur une faille (mod`ele A2), angle faible entre des lignes de contact
sur une faille (mod`ele A5) (figure 3.7).
3.6 Discussion
3.6.1 Contributions
Dans ce chapitre, nous avons propos´e d’utiliser des mesures g´en´erales pour ´evaluer
la complexit´e d’un mod`ele structural afin de pouvoir comparer de mani`ere plus
objective plusieurs mod`eles. Les m´etriques d´eriv´ees de ces mesures et les mod`eles de
r´ef´erence qui sont propos´es sont des outils importants pour quantifier notre perception
de la complexit´e d’un mod`ele, c’est-`a-dire les configurations que nous avons du
mal `a comprendre et qui posent probl`eme aux logiciels que nous utilisons, d´eveloppons,
etc. Ces mesures sont simples, certaines sont faites `a une r´esolution donn´ee.
Elles aident `a comprendre la complexit´e induite par chaque ´el´ement ind´ependamment
de son type et `a comparer les mod`eles d’une mˆeme zone `a des r´esolutions diff´erentes.
6. Cet effet est similaire `a celui de support en g´eostatistique [Journel, 2003].54 Chapitre 3. Complexite g ´ eom ´ etrique ´
A1 A2 A3 A4 A5 A6 B C D
100
Q10 1 1 1 1 1 2 3 1 3
Q50 5 5 5 5 5 7 5 5 5
Q90 7 11 10 11 11 12 7 8 6
Max 7 15 15 16 30 22 8 8 9
Moy. 4.300 5.950 5.210 5.630 5.510 6.710 4.290 4.040 4.060
Coeff.Var. 0.547 0.630 0.658 0.665 0.775 0.696 0.390 0.593 0.390
1000
Q10 1 1 1 1 1 1 1 1 1
Q50 1 3 1 3 3 3 3 1 3
Q90 5 7 5 7 6 7 5 5 5
Max 7 15 13 14 22 19 6 8 6
Moy. 2.500 3.137 2.710 2.960 2.950 3.170 2.630 2.360 2.569
Coeff.Var. 0.751 0.814 0.808 0.804 0.858 0.871 0.523 0.813 0.581
10000
Q10 1 1 1 1 1 1 1 1 1
Q50 1 1 1 1 1 1 1 1 1
Q90 3 3 3 3 3 3 3 3 3
Max 5 11 11 12 19 15 6 6 6
Moy. 1.688 1.910 1.746 1.850 1.840 1.920 1.770 1.570 1.760
Coeff.Var. 0.728 0.788 0.755 0.778 0.795 0.827 0.609 0.721 0.676
Table 3.4 – Statistiques sur le nombre d’el´ ements par cellule. ´
A1
A2
A3
A4
A5
A6
B
C
D
Maximum
Q90
Moy.
Coeff.Variation
Maximum
Q90
Moy.
Coeff. Variation
Maximum
Q90
Moy.
Coeff.Variation
100 cellules 1 000 cellules
10 000 cellules
30
12
6.71
0.76
22
7
3.17
0.87
19
3
1.92
0.83
Figure 3.6 – Statistiques normalisees sur les nombres d’ ´ el´ ements compt ´ es dans ´
100, 1 000, ou 10 000 cellules de Vorono¨ı.Discussion 55
A2
A3
A5
A4
Nombre d´éléments par cellule
N
A6
6
7
8
9
10
11
>12
Figure 3.7 – Zones complexes des modeles. ` Les cellules, parmi 10 000, contenant plus
de 6 composantes sont situ´ees autour des discontinuit´es. Il n’y en a aucune dans le mod`ele
A1, 188 dans A2, 54 dans A3, 158 dans A4, 161 dans A5 et 535 dans A6.56 Chapitre 3. Complexite g ´ eom ´ etrique ´
3.6.2 Perspectives
Les perspectives de ce travail sont tr`es nombreuses. Les mesures pourraient ˆetre
utilis´ees pour d´eterminer la r´esolution n´ecessaire pour mailler une zone donn´ee d’un
mod`ele [Quadros et al., 2004] ou pourraient ˆetre combin´ees pour ´evaluer la complexit´e
d’une tˆache de mod´elisation donn´ee. Ceci requiert de connaˆıtre parfaitement
les m´ethodes et algorithmes utilis´es, de consid´erer la complexit´e de la repr´esentation
du mod`ele (taille du maillage) et de r´ealiser de nombreuses analyses de sensibilit´e.
Ces trois points rendent difficile d’envisager `a court terme la d´etermination de telles
mesures ´evaluant par exemple, pour un mod`ele, si une m´ethode de maillage donn´ee
permettra d’atteindre la qualit´e, la r´esolution et le nombre d’´el´ements souhait´es.
L’examen de r´esultats obtenus pour des mod`eles r´eels et pour des mod`eles synth´etiques
de r´ef´erence cr´e´es dans le but d’´evaluer les impacts d’un changement d’´echelle
ou bien l’ajout d’une entit´e g´eologique, permettrait d’affiner les mesures que nous
avons propos´ees et de confirmer l’effet de telle ou telle configuration sur l’une d’elle.
Des calculs sp´ecifiques de la complexit´e des entit´es g´eologiques par type apporteraient
des informations compl´ementaires. Par exemple, pour les surfaces de failles, le
nombre de couches affect´ees, la distribution des rejets, les angles faits avec les horizons,
les contacts induits entre des couches diff´erentes sont des informations cruciales
en mod´elisation. Pour le r´eseau de failles, ce sont les contacts entre failles, les angles
`a ces intersections et leurs variations d’orientation qui importent, tandis que pour
les formations s´edimentaires les nombres de blocs, l’intensit´e des d´eformations, les
variations d’´epaisseur pourraient ˆetre consid´er´ees.
Enfin un calcul des mesures g´eom´etriques dans les cellules de Vorono¨ı permettrait
de caract´eriser localement la g´eom´etrie du mod`ele ind´ependamment de la qualit´e de
son maillage, au contraire des mesures de g´eom´etrie que nous faisons. Nous pourrions
aussi envisager d’utiliser d’autres types de cellules, voxels, sph`eres, etc.Chapitre 4
Contribution : Remaillage des
surfaces de mod`eles structuraux
`a une r´esolution donn´ee
Les travaux pr´esent´es dans ce chapitre ont fait l’objet d’une publication Pellerin
et al. [2014], une version pr´eliminaire ayant ´et´e pr´esent´ee `a la conf´erence annuelle de
l’IAMG [Pellerin et al., 2011].
R´esum´e
Dans ce chapitre, nous proposons une m´ethode de remaillage des surfaces des
mod`eles structuraux d´efinis par fronti`ere avec des triangles les plus ´equilat´eraux possibles.
Nous utilisons une m´ethode de type optimisation de diagramme de Vorono¨ı
barycentrique pour placer les sommets des surfaces remaill´ees. Nous introduisons
une ´energie pour am´eliorer le placement des sites le long des bords des surfaces. Le
maillage est construit en analysant les intersections entre le mod`ele et les cellules de
Vorono¨ı. Quand les cellules de Vorono¨ı restreintes aux surfaces, lignes et coins ont
une unique composante connexe, nous construisons la triangulation de Delaunay restreinte
des sites au mod`ele. Dans le cas contraire, nous construisons un maillage dual
de ces composantes connexes. Lorsque la r´esolution finale est suffisante, les lignes et
les coins initiaux sont ´egalement des lignes et des coins du mod`ele final. Cependant,
pour des mod`eles o`u les contacts sont complexes, la r´esolution peut ˆetre localement
insuffisante, et au lieu d’ajouter des points pour raffiner le maillage, nous proposons
de simplifier des ´el´ements du mod`ele. La m´ethode est appliqu´ee `a 12 mod`eles
structuraux.
4.1 Motivations
Les diff´erentes strat´egies pour g´en´erer les mod`eles structuraux conduisent `a des
surfaces qui sont, la plupart du temps, d´efinies par des triangles [Caumon et al., 2009].
La qualit´e et la r´esolution du maillage peuvent ˆetre tr`es diff´erentes selon les choix du
modeleur et les algorithmes utilis´es pour construire le mod`ele. Les triangles peuvent58 Chapitre 4. Maillage surfacique
ˆetre de tr`es mauvaise qualit´e 1
, notamment quand les horizons sont obtenus par une
m´ethode de type marching tetrahedra depuis une surface implicite. Le maillage doit
donc ˆetre adapt´e pour visualiser efficacement le mod`ele, modifier sa g´eom´etrie, faire
des calculs de restauration d’horizons [e.g., Dunbar et Cook, 2003] et surtout g´en´erer
un maillage volumique ad´equat.
Comme nous l’avons vu dans la partie 3.2, il y a de nombreuses configurations
dans lesquelles il est difficile de respecter la g´eom´etrie du mod`ele g´eologique tout en
conservant un nombre et une qualit´e d’´el´ements acceptables. Dans ce chapitre, nous
choisissons d’autoriser les simplifications du mod`ele pour adapter sa r´esolution, et
de privil´egier le nombre et la qualit´e des triangles remaillant les surfaces. L’objectif
est double : remailler les surfaces d´efinissant le mod`ele et adapter la r´esolution du
mod`ele.
La plupart des tr`es nombreuses m´ethodes de (re)maillage de surface ne permettent
pas de modifier le mod`ele d’entr´ee (partie 2.4). Les m´ethodes de type Delaunay
contraint ou frontale remaillent les surfaces une par une sans consid´erer le
mod`ele dans son ensemble. Les m´ethodes qui fournissent des garanties th´eoriques sur
la topologie et la qualit´e du r´esultat ne donnent pas du tout de contrˆole sur la r´esolution
et le nombre d’´el´ements dans le maillage final (partie 2.4.2). Lorsque la qualit´e
des triangles des surfaces initiales est tr`es mauvaise, le calcul d’une param´etrisation
pour les projeter dans un espace 2D peut poser probl`eme. Les m´ethodes de maillage
de surface de type octree exploitent une subdivision du mod`ele en voxels. Cette subdivision
est ´egalement utilis´ee par les m´ethodes de simplification qui op`erent sur les
composantes volumiques d’un mod`ele, elles analysent localement les relations entre les
composantes du mod`ele et les cellules pour reconstruire un maillage `a la r´esolution
de la subdivision consid´er´ee (partie 2.2.3). Nous proposons une approche similaire
combin´ee `a une m´ethode de remaillage de type optimisation de diagramme de Vorono¨ı
et nous exploitons le fait que, lorsque les sites ne v´erifient pas la propri´et´e de la
boule topologique, la triangulation de Delaunay restreinte est une version simplifi´ee
de l’objet initial (partie 1.2.3 et figure 1.5).
4.2 Objectifs
Donn´ees d’entr´ee
La m´ethode de remaillage que nous proposons prend en entr´ee un ensemble de
surfaces triangul´ees qui d´efinissent un mod`ele structural par fronti`ere valide. Leurs
maillages doivent ˆetre conformes.
R´esultat
Un remaillage global des surfaces du mod`ele pour lequel les triangles sont les
plus ´equilat´eraux possible. Les lignes de contact entre les surfaces sont ´egalement remaill´ees,
et les surfaces restent conformes le long de ces lignes. Des modifications sont
r´ealis´ees lorsque des lignes de contacts ou des coins sont trop proches (figure 4.1).
1. Notre objectif est d’obtenir des triangles ´equilat´eraux.Optimisation de l’echantillonnage du mod ´ ele ` 59
Modèle initial fracturé Modèle fracturé remaillé
Horizon supérieur initial Horizon supérieur remaillé
1
2
3
1
2
3
Figure 4.1 – Remaillage d’un modele affect ` e par 200 fractures. ´ La qualit´e du
maillage des surfaces est am´elior´e. Trois types de configuration sont potentiellement probl´ematiques
: (1) les fractures s’intersectant `a peine (2) celles qui s’intersectent presque (3)
celles qui s’intersectent `a angle faible, sont remaill´ees et modifi´ees en fonction de la r´esolution
souhait´ee.
Cette capacit´e `a simplifier le mod`ele d’entr´ee permet d’adapter la r´esolution du mod`ele
automatiquement. La m´ethode a ´et´e appliqu´ee `a 12 mod`eles structuraux (partie
4.5).
Principe
Nous utilisons un diagramme de Vorono¨ı restreint barycentrique pour placer les
sommets du maillage final de mani`ere ad´equate pr`es des surfaces et des lignes de
contact du mod`ele initial (partie 4.3). Ensuite, un contrˆole topologique permet de
d´eterminer les sommets des triangles du maillage final `a partir des intersections entre
le diagramme de Vorono¨ı des sites et les ´el´ements du mod`ele (partie 4.4).
4.3 Optimisation de l’´echantillonnage du mod`ele
4.3.1 Optimisation CVT
Dans un premier temps, un nombre pr´ed´etermin´e de sites est plac´e dans l’espace
de telle sorte qu’ils soient un bon ´echantillonage du mod`ele structural. Chaque site
´echantillonne le mod`ele car il repr´esente la partie du mod`ele plus proche de ce site
que des autres sites : sa cellule de Vorono¨ı restreinte (partie 1.2.1). Le nombre initial
de sites d´etermine la r´esolution `a laquelle le mod`ele va ˆetre remaill´e, il peut ˆetre,60 Chapitre 4. Maillage surfacique
par exemple, estim´e en prenant la racine carr´ee de l’aire des surfaces du mod`ele
divis´ee par la longueur d’arˆete cible. Nous avons vu dans la partie 1.3.2 que, quand le
diagramme de Vorono¨ı restreint est barycentrique, les cellules de Vorono¨ı restreintes
sont compactes et que la triangulation de Delaunay restreinte remaille les surfaces
du mod`ele avec des triangles quasiment ´equilat´eraux.
4.3.2 Optimisation de la position des sites le long des bords
Lors du calcul du diagramme de Vorono¨ı restreint `a une surface avec bord, les
sites, apr`es optimisation, ne sont pas sur ce bord car le barycentre d’une cellule
intersectant une ligne du bord n’est pas sur cette ligne. Pour modifier cette position
de stabilit´e, un terme d’´energie sp´ecifique aux bords peut ˆetre ajout´e `a la fonction
objectif pour les sites dont la cellule de Vorono¨ı (Vp) intersecte la ligne du bord (B) :
FB(S) = X
p∈S
"Z
Vp∩B
||y − p||dy#2
(4.1)
Pour ´evaluer cette fonction et son gradient, la restriction de chaque cellule de Vorono¨ı
au bord (Vp ∩ B) est d´ecompos´ee en plusieurs segments (figure 4.2). Pour chaque
segment, E = C1C2, la fonction vaut F
E
B = 1/2||−−→C2 p.
−−−→ C2 C1||2
, c’est `a dire l’aire du
triangle p C1 C2 au carr´e (figure 4.2). Le gradient est :
dFB
dS (p, C1, C2) = dF E
B
dp +
dFB
dC1
dC1
dS +
dFB
dC2
dC2
dS (4.2)
o`u dFB/dp =
−→N ×
−−−→ C1 C2, les termes dFB/dC1 et dFB/dC2 sont ´evalu´es de mani`ere
similaire. Le terme dC/dS d´epend de la configuration du point C. Soit C est un
sommet du maillage des surfaces initiales et sa d´eriv´ee par rapport aux sites est
nulle, soit C est `a l’intersection du bisecteur s´eparant les sites p0 et p1 et est calcul´e
comme :
dC
dS =
[p1 − p0]
t
[N1]
t
[N2]
t
[C − p0]
t
[p1 − C]
t
[C − p0]
t 0
0 0
(4.3)
o`u N1 et N2 sont les normales `a deux plans construits de sorte que leur ligne d’intersection
contienne le segment C1C2. La preuve est donn´ee par L´evy et Liu [2010].
Pour am´eliorer le placement des sites pr`es des bords et des lignes de contacts nous
minimisons donc la fonction objectif F = (1 − α)FCV T + αFB avec α le ratio entre
les normes des gradients de l’´energie de bord et de l’´energie CVT.
4.3.3 Impl´ementation
L’algorithme 4.1 r´esume les diff´erentes ´etapes de l’optimisation d’un nombre
donn´e de sites sur un mod`ele Ω. (1) Le placement initial des sites est fait en utilisant
la m´ethode d´evelopp´ee par L´evy et Bonneel [2013]. (2) Le diagramme de Vorono¨ı
restreint est calcul´e avec une m´ethode ´egalement d´ecrite par L´evy et Bonneel
[2013]. (3) Les contributions de chaque cellule du diagramme de Vorono¨ı restreint `a
la fonction objectif et `a son gradient sont calcul´es suivant la m´ethode de Yan et al.Construction du maillage 61
p
C1
C2
Figure 4.2 – Segments d’integration pour le calcul de l’ ´ energie de bord. ´
[2009]. La minimisation de la fonction objectif F est faite par un algorithme L-BFGS
[Nocedal, 1980]. En pratique, l’optimisation est arrˆet´ee apr`es un nombre d’it´erations
pr´ed´etermin´e, typiquement une centaine.
4.4 Construction du maillage
Une fois que les sites sont distribu´es de mani`ere optimale, leur diagramme de
Vorono¨ı restreint au mod`ele structural est calcul´e afin de d´eterminer les sommets et
les triangles du maillage r´esultant.
4.4.1 Remaillage des composantes connexes surfaciques
Prenons par exemple un mod`ele, non g´eologique, dans lequel les surfaces n’ont
pas d’intersection et n’ont pas de bord : deux sph`eres imbriqu´ees l’une dans l’autre
(figure 4.3). Les deux surfaces sont ´echantillonn´ees avec 100 sites qui, apr`es optimisation,
sont positionn´es entre les deux sph`eres (figure 4.4a). Pour avoir deux sph`eres
dans le maillage final, deux sommets sont associ´es `a chaque site : un pour chaque
composante connexe de la cellule de Vorono¨ı restreinte du site (figure 4.4b). Il y a
ensuite un triangle `a construire pour chaque point partag´e par trois cellules de Vorono¨ı
restreintes (figures 4.3c et 4.4c). Le maillage obtenu est dual des composantes
connexes du diagramme de Vorono¨ı barycentrique restreint. Il est plus fid`ele au mod`ele
initial que la triangulation de Delaunay restreinte (une seule sph`ere dans ce cas
o`u la propri´et´e de la boule topologique n’est pas v´erifi´ee - partie 1.2.4). Si toutes les
Algorithme 4.1 - Optimisation des sites.
Donn´ees : le mod`ele Ω, le nombre de sites n
R´esultat : un ´echantillonage isotrope S de Ω
(1) S ← ´echantillonage al´eatoire de Ω [L´evy et Bonneel, 2013] ;
tant que le minimum n’est pas atteint faire
(2) Calculer le diagramme de Vorono¨ı restreint de S `a Ω [L´evy et Bonneel, 2013] ;
(3) Calculer F(S) et dF/dS [Liu et al., 2009] ;
(4) D´eterminer la direction de recherche ∆S [Liu et al., 2009] ;
(5) S ← S + ∆S ;
fin62 Chapitre 4. Maillage surfacique
(a) (b) (c)
Figure 4.3 – Remaillage de deux spheres imbriqu ` ees. ´ (a) 100 sites optimis´es sont entre
les deux sph`eres. (b) Chaque cellule de Vorono¨ı restreinte a 2 composantes connexes. (c) Dual
des composantes connexes du diagramme de Vorono¨ı restreint (voir aussi la figure 4.4).
Figure 4.4 – Remaillage de deux surfaces proches. (a) 3 sites (A, B et C) sont
positionn´es entre deux surfaces, leurs cellules de Vorono¨ı restreintes ont deux composantes
connexes. La triangulation de Delaunay restreinte a un seul triangle ABC. (b) Deux sommets
sont ajout´es pour chaque cellule. (c) Deux triangles A1B1C1 et A2B2C2 sont construits comme
duals des points v1 et v2 qui sont partag´es par trois cellules de Vorono¨ı.
composantes connexes des cellules de Vorono¨ı restreintes sont contractiles, le th´eor`eme
du multi-nerf [Colin de Verdi`ere et al., 2012] donne que le mod`ele construit de
cette fa¸con est ´equivalent par homotopie au maillage d’entr´ee.
4.4.2 Remaillage des lignes de bord
Consid´erons `a pr´esent une surface qui a un bord. De la mˆeme mani`ere que pour
les surfaces, ce bord peut ne pas ˆetre correctement remaill´e quand le nombre de
sites est trop petit, c’est-`a-dire quand la propri´et´e de la boule topologique n’est pas
respect´ee. Pour le remailler de mani`ere ad´equate, autant de points que la restriction
de sa cellule de Vorono¨ı restreinte au bord a de composantes connexes sont associ´es
`a chaque site (figure 4.5). Ces points additionnels doivent ˆetre pris en compte pour
construire les triangles. Puisqu’une cellule de Vorono¨ı restreinte peut correspondre `a
plusieurs points (figure 4.5b), le dual des points de Vorono¨ı n’est plus toujours un
triangle. Des polygones, duals des arˆetes de Vorono¨ı qui intersectent deux fois le bord,
sont `a construire (figures 4.5c & d).
Plus il y a d’intersections entre une cellule de Vorono¨ı restreinte et les lignes de
bord du mod`ele, plus il y a de sommets dans le maillage final qui correspondent `a
cette cellule. Cela peut conduire `a des configurations o`u les polygones `a construireConstruction du maillage 63
(a)
(c)
(b)
(d)
Figure 4.5 – Remaillage d’une surface avec bord. (a) 21 sites ´echantillonnent l’´etoile ;
les cellules de Vorono¨ı des sites blancs intersectent deux fois le bord, celles les sites noirs
l’intersectent au plus une fois. (b) Chacun des sites blancs correspond `a deux points. (d) Les
polygones du maillage final sont duals des points de Vorono¨ı restreints voisins d’au moins
une cellule de Vorono¨ı restreinte associ´ee `a deux points (gris), et des segments de Vorono¨ı
restreints qui intersectent deux fois le bord (c).
s’intersectent. Nous proposons donc de r´eunir les points associ´es `a une composante
connexe d’une cellule s’ils sont plus de deux. Cette augmentation de la robustesse
de la m´ethode se fait au prix de modifications des connexions entre les surfaces du
mod`ele, modifications qui ne sont pas toujours valides d’un point de vue g´eologique.
De plus, ces modifications d´ependent du positionnement des sites dans le mod`ele et
une petite modification de ces positions peut entraˆıner la suppression ou l’apparition
d’une ou plusieurs modifications. Ce sont cependant ces modifications qui permettent
de contrˆoler la r´esolution du mod`ele.
4.4.3 Remaillage des coins
Les derniers ´el´ements du mod`ele `a prendre en compte dans le remaillage sont
les coins : les points qui d´elimitent les composantes connexes des lignes de bord.
Pour tous les repr´esenter dans le maillage final, il n’y a pas d’autre solution que
d’associer chacun d’eux `a un sommet du maillage final. Pour reconstruire le mod`ele
d’entr´ee, il y a, dans chaque cellule de Vorono¨ı restreinte, un point par coin, un point
par composante connexe de ligne, et un point par composante connexe de surface
(algorithme 4.2).
La pr´esence de plusieurs coins dans une composante connexe d’une cellule de
Vorono¨ı restreinte au bord signifie que la r´esolution n’est pas suffisante, et nous choisissons
de ne pas remettre tous ces coins dans le maillage final mais de les regrouper64 Chapitre 4. Maillage surfacique
Figure 4.6 – Configurations dans lesquelles le modele est modifi ` e. ´ (a) La cellule
de Vorono¨ı restreinte au centre correspond `a 3 points (A, B, C) (b) Les polygones `a construire
`a partir de ces points ABGF et ADEC se recoupent. Les trois points sont regroup´es en P. (c)
Des lignes de contacts (noires) coupent cette cellule en 6 composantes connexes. (d) Les 4
coins (A, B C, et D) sont regroup´es en P car ils sont reli´es par des segments du bord.
(figure 4.6). Une fois ce regroupement effectu´e, le regroupement pr´ec´edemment d´ecrit
est ´egalement r´ealis´e. Ainsi, chaque composante connexe de chaque cellule de Vorono¨ı
restreinte est associ´ee `a un ou deux points et les quadrangles ou triangles `a construire
`a partir de ces points ne s’intersectent pas.
La derni`ere modification que nous proposons est de regrouper les sommets associ´es
`a une mˆeme cellule de Vorono¨ı qui correspond `a des composantes s´epar´es par
une distance inf´erieure `a une r´esolution (distance) donn´ee en entr´ee. Ceci permet de
simplifier les composantes du mod`ele dont la r´esolution est inf´erieure `a cette distance
(figure 4.7). Par exemple sur la figure 4.6c, les petits rejets le long des failles ont ´et´e
annul´es.
4.4.4 Impl´ementation
L’algorithme 4.3 r´esume les ´etapes de la construction du maillage final `a partir
d’une surface polygonale repr´esentant le diagramme de Vorono¨ı restreint dans lequel
chaque facette est associ´ee au triangle et au site dont elle est issue. Premi`erement
les cellules de Vorono¨ı restreintes et leurs composantes connexes sont construites,
puis les sommets `a associer `a chacune d’elle sont calcul´es (algorithme 4.2). Enfin les
polygones reliant ces sommets sont construits (figure 4.5).
4.4.5 Am´eliorations du maillage
La qualit´e des triangles du maillage produit d´epend compl`etement de la forme
des composantes connexes des cellules de Vorono¨ı restreintes. Quand cette forme est
proche d’un hexagone r´egulier, les triangles duals sont proches de l’´equilat´eralit´e. En
revanche, les petites cellules triangulaires peuvent poser probl`eme. Elles apparaissent
quand une arˆete ou un point de Vorono¨ı est situ´e `a proximit´e d’une surface ou ligneConstruction du maillage 65
Figure 4.7 – Controle de la r ˆ esolution du mod ´ ele. ` Si les surfaces ´echantillonn´ees
par une cellule sont s´epar´ees par une distance inf´erieure `a une valeur donn´ee dresolution ´ , les
points correspondants sont regroup´es. (a) Le rejet minimal sur la faille dmin est inf´erieur `a
dresolution ´ et les points A et B sont regroup´es. Le rejet est annul´e dans le mod`ele final. (b)
La distance minimale entre les deux surfaces est inf´erieure `a dresolution ´ et dans le mod`ele
remaill´e elle sont jointes.
Algorithme 4.2 - Calcul des sommets du maillage final.
Donn´ees : cellule de Vorono¨ı restreinte du site i, distance dresolution ´
R´esultat : points remaillant la cellule
(1) pour chaque composante connexe CC faire
si CC intersecte les lignes de bord alors
pour chaque composante connexe du bord BC faire
si BC contient des coins alors
Associer un point `a chaque coin ;
sinon
Associer un point `a BC ;
fin
fin
sinon
Associer un point au barycentre de CC ;
fin
fin
(2) Regrouper les points correspondants `a des coins et reli´es par des segments du bord
(figure 4.6b) ;
(3) pour chaque composante connexe CC faire
si nombre de points > 2 (figure 4.6a) alors
Regrouper les points ;
fin
fin
(4) Regrouper les points correspondant `a des objets proches du mod`ele
(dmin
HAL Id: tel-01093355
https://hal.inria.fr/tel-01093355
Submitted on 10 Dec 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.1
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 É
No X X X
THÈSE présentée par
Ivan Enderlin
pour obtenir le
Grade de Docteur de
l’Université de Franche-Comté
K 8 k
Génération automatique de tests unitaires avec
Praspel, un langage de spécification pour PHP
The Art of Contract-based Testing
in PHP with Praspel
Spécialité Informatique
Instituts Femto-ST (département DISC) et INRIA (laboratoire LORIA)
Rapporteurs Lydie du Bousquet Professeur à l’Université Joseph Fourier
Arnaud Gotlieb Chargé de recherche habilité à l’IRISA
Examinateur Michel Rueher Professeur à l’Université de Nice Sophia Antipolis
Directeurs Fabrice Bouquet Professeur à l’Université de Franche-Comté
Frédéric Dadeau Maître de conférences à l’Université de Franche-Comté
Alain Giorgetti Maître de conférences à l’Université de Franche-Comté
Soutenue publiquement le 16 juillet 2014 devant le Jury composé de :Remerciements Je tiens à profiter de l’occasion qui m’est offerte pour remercier
toutes les personnes qui ont été soutenantes. Je tiens à remercier avant tout mon
Dieu, the Everlasting, pour cette épreuve, ses promesses et son soutien en tout temps.
Merci.
Je souhaite remercier ma petite femme, Hend, lady caramel, pour son éternel amour,
sa patience, son écoute et son infini tendresse. Je t’aime.
.½J
.k@ . ú
×XB
@ A
î
EA
Jk C
« ð A
î
EA
@
ð A
ëQ
. C
« Y
Jë
èñÊmÌ'@ ð
è
QK
QªË@ ú
æ
k.ð
P Qº @
à@ YK
P@
Je souhaite particulièrement remercier mes parents et beaux-parents, Nadine et
Christophe, Q
ÖÞ
ð
èA
J
k, mes sœurs et belles-sœurs, Naomi et Joanna, ø
Q
å
ð
PðQ
¯,
ainsi que toute ma famille, pour leur présence et leur soutien.
Merci à tous les amis de France, de Suisse, de Tunisie, du Maroc, d’Italie, de Grèce,
du Brésil, du Kenya, de Belgique, du Mexique, de Macédoine et de partout, qui
m’ont aidé dans ma thèse et qui m’aident dans Hoa. Par ordre alphabétique, un
immense et sincère merci à Abdallah Ben O., Alexandre V., Alexis von G., Baptiste
et Anne-Laure F., Елизабета F.-С., Emmanuel T., Frédéric H., Guislain D.,
Gérard E., Isabelle et Yves D., ÈC
g. YÒm×, Jean-Marie G., Julien B., Julien C., Julien L.,
Kalou C. C., Laura et Raphaël E., Lucie et á
Ó
@ M., María Aydeé S. S. et Cédric J.,
Marta P., Mikaël R., Naomy W., Nawo M., Ophélie et Matthieu C., Raphaëlle M.,
Σοφία και Κώστας Τ., Stéphane P., Sylvie et Kiko F., Sébastien H., Willy M., Wilma
et Fabio S. (et toute la troupe !), Yohann D., toute la communauté de Hoa, d’atoum
et de PHP, et tout ceux que j’aurais oublié. . .
Et bien sûr, merci à mes encadrants : Fabrice B., Frédéric D. et Alain G. pour leur
savoir, leur patience et être restés à mes côtés durant cette aventure !
x
y
−15 −10 −5 0 5 10 15
−15
−10
−5
5
10
x = 16 sin(t)
3
y = 13 cos(t) − 5 cos(2t) − 2 cos(3t) − cos(4t)
The Emergence of Multimodal Concepts: From
Perceptual Motion Primitives to Grounded Acoustic
Words
Olivier Mangin
To cite this version:
Olivier Mangin. The Emergence of Multimodal Concepts: From Perceptual Motion Primitives
to Grounded Acoustic Words. Robotics. Universit´e de Bordeaux, 2014. English.
HAL Id: tel-01061809
https://tel.archives-ouvertes.fr/tel-01061809
Submitted on 8 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.Universite de Bordeaux ´
Ecole doctorale de math´ematiques et informatique ´
Th`ese pour obtenir le titre de
Docteur en sciences
Sp´ecialit´e informatique
Emergence de concepts
´
multimodaux
De la perception de mouvements primitifs
a l’ancrage de mots acoustiques `
Pr´esent´ee par
Olivier Mangin
Effectu´ee sous la direction de
Pierre-Yves Oudeyer
Soutenue le 19 mars 2014 devant le jury form´e par
Pr. Angelo Cangelosi — University of Plymouth Rapporteur
Dr. Jean-Luc Schwartz — CNRS Rapporteur
Dr. Jacques Droulez — Coll`ege de France President ´
Dr. Emmanuel Dupoux — Ecole des hautes ´etudes en sciences sociales ´ Examinateur
Dr. Manuel Lopes — INRIA Examinateur
Dr. David Filliat — ENSTA-ParisTech ´ ExaminateurA mes parents, `
A mes grand-parents, `
iiiivR´esum´e
Cette th`ese consid`ere l’apprentissage de motifs r´ecurrents dans la perception multimodale.
Elle s’attache `a d´evelopper des mod`eles robotiques de ces facult´es telles
qu’observ´ees chez l’enfant, et elle s’inscrit en cela dans le domaine de la robotique
d´eveloppementale.
Elle s’articule plus pr´ecis´ement autour de deux th`emes principaux qui sont d’une
part la capacit´e d’enfants ou de robots `a imiter et `a comprendre le comportement
d’humains, et d’autre part l’acquisition du langage. A leur intersection, nous exami- `
nons la question de la d´ecouverte par un agent en d´eveloppement d’un r´epertoire de
motifs primitifs dans son flux perceptuel. Nous sp´ecifions ce probl`eme et ´etablissons
son lien avec ceux de l’ind´etermination de la traduction d´ecrit par Quine et de la
s´eparation aveugle de source tels qu’´etudi´es en acoustique.
Nous en ´etudions successivement quatre sous-probl`emes et formulons une d´efinition
exp´erimentale de chacun. Des mod`eles d’agents r´esolvant ces probl`emes sont ´egalement
d´ecrits et test´es. Ils s’appuient particuli`erement sur des techniques dites de sacs
de mots, de factorisation de matrices et d’apprentissage par renforcement inverse.
Nous approfondissons s´epar´ement les trois probl`emes de l’apprentissage de sons
´el´ementaires tels les phon`emes ou les mots, de mouvements basiques de danse et
d’objectifs primaires composant des tˆaches motrices complexes. Pour finir nous
´etudions le probl`eme de l’apprentissage d’´el´ements primitifs multimodaux, ce qui
revient `a r´esoudre simultan´ement plusieurs des probl`emes pr´ec´edents. Nous expliquons
notamment en quoi cela fournit un mod`ele de l’ancrage de mots acoustiques.
Cette th`ese a ´et´e effectu´ee au sein de l’´equipe Flowers de l’INRIA Bordeaux
Sud-Ouest et financ´ee par une allocation moniteur polytechnicien (AMX).
Mots-cl´es apprentissage multimodal ; acquisition du langage ; ancrage de symboles ;
apprentissage de concepts ; compr´ehension de comportement humains ; d´ecomposition
du mouvement ; primitive motrice ; d´ecomposition de taches ; factorisation de matrice
positive ; apprentissage par renforcement inverse factoris´e
vviR´esum´e substantiel
Les sciences cognitives constituent aujourd’hui le sujet de recherches tr`es actives
mais surtout sont `a l’intersection d’un grand nombre de domaines scientifiques. En
effet l’apparition de plusieurs disciplines nouvelles telles les neurosciences, l’imagerie
c´er´ebrale, mais aussi de la psychologie ou encore la ph´enom´enologie comme branche
de la philosophie ont fait suite `a des d´ecouvertes scientifiques et avanc´ees technologiques
majeures du si`ecle dernier. A ces sciences de la cognition, ayant pour objets `
principaux les intelligences humaines et animales, est venue s’ajouter l’informatique,
dont l’av`enement comme science puis comme technologie a marqu´e la mˆeme p´eriode.
Outre son apport, consid´erable pour les autres sciences, de la simulation num´erique,
c’est en tant que nouveau langage que l’informatique a constitu´e le substrat n´ecessaire
au d´eveloppement de l’intelligence artificielle.
La robotique d´eveloppementale, dont l’´elaboration remonte aux derni`eres d´ec´enies
s’inscrit dans un double h´eritage. D’une part, `a l’instar de l’intelligence artificielle, elle
constitue non seulement un domaine applicatif des sciences cognitives, mais ´egalement
un nouveau paradigme, autant exp´erimental que conceptuel, pour penser l’intelligence
du vivant. D’autre part, `a la suite de la psychologie d´eveloppementale, elle se tourne
r´esolument, non pas vers l’´etude de l’intelligence adulte, mais vers celle des m´ecanismes
qui permettent sa maturation. En r´ealit´e l’id´ee d’un ordinateur programm´e, non
pas pour faire mais pour apprendre (Turing, 1950), pr´ec`ede le d´eveloppement de
l’intelligence artificielle comme domaine actif de recherche. En outre, on ne saurait
r´esoudre `a la simple compr´ehension d’un programme le d´eveloppement de l’intelligence.
Jean Piaget en propose ainsi une approche syst´emique : ≪ L’intelligence ne d´ebute
ainsi ni par la connaissance du moi ni par celle des choses comme telles, mais par celle
de leur interaction, et c’est en s’orientant simultan´ement vers les deux pˆoles de cette
interaction qu’elle organise le monde en s’organisant elle-mˆeme. ≫ (Piaget, 1937) La
robotique apporte ici un ´eclairage particulier : en effet mod´eliser l’intelligence en
int´eraction avec le monde c’est mod´eliser le corps, mais aussi la perception sensorielle
et l’expression motrice.
Le travail pr´esent´e dans cette th`ese embrasse cette approche de la robotique d´eveloppementale
: il s’attache `a ´etudier les m´ecanismes de l’apprentissage chez le nourrisson
ou l’enfant, entre autre par le d´eveloppement de techniques permettant `a des syst`emes
cognitifs artificiels d’atteindre des comportements d’apprentissage similaires. Il s’articule
plus pr´ecis´ement autour de deux th`emes principaux qui sont, d’une part la
capacit´e d’enfants ou de robots `a imiter correctement des humains et `a comprendre
leur comportement, et d’autre part l’acquisition du langage.
La notion d’imitation a ´et´e ´etudi´ee sous de nombreux aspects. En effet ce terme
viiviii
regroupe en premier lieu un ensemble de m´ecanismes qui jouent un rˆole essentiel
dans la transmission culturelle, autant chez l’animal que l’humain (Whiten and
Ham, 1992, Nadel, 1986, Tomasello, 2008). D’autre part, il a ´et´e mis en ´evidence
la capacit´e d’une classe de neurones, appel´es neurones miroirs, `a s’activer aussi
bien lors de l’ex´ecution d’une action par un primate, que lors de son observation,
ex´ecut´ee par un autre agent (Cattaneo and Rizzolatti, 2009). Enfin, l’application de
l’imitation `a la transmission de comp´etence d’un humain `a un robot est ´egalement
sujette `a de nombreux travaux de recherche. D’autre part, sans n´ecessairement
en viser la reproduction, la compr´ehension des comportement humains par des
syst`emes de surveillance ou des robots pr´esente ´egalement de nombreuses perspectives
d’application. Notre travail aborde ces probl´ematiques plus sp´ecifiquement sous l’angle
des questions ≪ Qu’imiter ? ≫ et ≪ Quand imiter ? ≫. En effet les comportement
humains sont souvent composites et il n’est, par exemple, pas attendu d’un robot ou
d’un ´el`eve qu’il r´ep`ete les instructions du professeur en plus de reproduire un geste
de danse enseign´e. Nous ´etudions la question de la d´ecomposition d’un mouvement
ou comportement complexe en parties pertinentes et expliquons en quoi elle n’est en
fait qu’une facette du probl`eme de la structuration du mouvement.
La question de l’aquisition du langage est un second th`eme dominant de ce travail.
Nous nous int´eressons plus pr´ecis´ement `a la d´ecouverte et l’apprentissage dans le flux
acoustique d’unit´es lexicales ou sous-lexicales ainsi qu’`a celle de leur valeur s´emantique.
Plus sp´ecifiquement c’est le lien entre l’acquisition du langage et l’apprentissage
de gestes ou de motifs perceptuels qui nous int´eresse. Nous ´etudions d’une part ce
lien `a travers un ensemble d’analogies. Analogie de l’origine perceptuelle commune
de ces apprentissage, analogie de la langue parl´ee et du langage des signes. Mais
surtout analogie de certaines structures du langage et de l’action : un mouvement
complexe se d´ecompose en plusieurs gestes, sa description linguistique en plusieurs
mots. Enfin, analogie des ambiguit´es introduite par cette structure : la difficult´e
de d´ecomposer une phrase en mots (Brent, 1999) fait ´echo `a celle du d´ecoupage
d’une action complexe en gestes ´el´ementaires mais ´egalement au probl`eme de la
s´eparation aveugle de sources, bien connu des acousticiens. Nous nous effor¸cons dans
ce travail de d´evelopper une dimension algorithmique de ces analogies; c’est `a dire que
nous proposons de r´esoudre par les mˆemes m´ethodes et dans un cadre exp´erimental
similaire, des probl`emes provenant de chacun de ces domaines. D’autre part le lien
entre l’acquisition du langage et celle de gestes ´el´ementaires ou de motifs visuels,
apparait fortement dans la question de l’apprentissage de la s´emantique. Le probl`eme
de l’ancrage de symboles (Harnad, 1990, Glenberg and Kaschak, 2002) questionne
ainsi l’origine du lien entre les mots du langage et leur sens, par exemple des gestes
qu’ils d´ecrivent. Dans ce travail nous ´etudions de front, non seulement l’origine de ce
lien, mais ´egalement l’origine de la perception des mots eux mˆemes et celle des unit´es
s´emantiques. Encore une fois, cette question n’est pas sans ambig¨uit´e, `a commencer
par l’ambiguit´e de la traduction d´ecrite par Quine (1960).
Le travail pr´esent´e unifie ces diff´erentes probl´ematiques dans le cadre g´en´eral de
l’apprentissage de motifs et structures dans un flux perceptuel multimodal. Nous
nous concentrons plus pr´ecis´ement sur le cas o`u cette structure prend la forme
d’un r´epertoire d’´el´ements ou de motifs primitifs r´ecurrents dans la perception. La
notion d’´el´ements primitifs ainsi que leurs propri´et´es combinatoires sont donc au
centre de ce travail. Cette notion couvre des domaines vari´es et nous la d´eclinons
simultan´ement `a travers les exemples de mouvements basiques de danse, d’objectifs
simples qui composent des tˆaches motrices complexes, puis de sons ´el´ementaires,ix
tels les phon`emes ou les mots. Finalement, nous expliquons comment de tels motifs
redondants peuvent ˆetre appris, qui recouvrent plusieurs modalit´es, comme par
exemple la vue et l’ou¨ıe. Nous d´emontrons que l’apprentissage de ces motifs constitue
un mod`ele d’un aspect essentiel de l’acquisition du langage : l’ancrage des mots dans
des concepts s´emantiques.
La d´ecomposition de mouvement en gestes simultan´es Une premi`ere contribution
importante de ce travail est d’´etudier la question nouvelle de la d´ecomposition
de mouvements complexes, c’est `a dire qui combinent simultan´ement plusieurs gestes
simples. En effet la d´ecomposition de mouvements dans le cadre de l’imitation, en
robotique mais aussi dans le domaine de la compr´ehension automatique d’activit´es
humaines, a principalement ´et´e ´etudi´ee dans le cas o`u les gestes complexes sont
obtenus par juxtaposition successive de plusieurs gestes ´el´ementaires. Nous proposons
dans ce travail d’´etudier une structure orthogonale, la composition simultan´ee, que
nous illustrons par des mouvements de danse. En r´ealit´e les chor´egraphies font clairement
apparaitre deux dimensions pour la composition de mouvements : en s´equence
et en parall`ele.
La question que nous posons est la suivante. Est-il possible pour un syst`eme cognitif
artificiel qui observe un danseur ex´ecuter des chor´egraphies, d’apprendre, `a partir
de son observation seule, le lexique de gestes que le danseur combine dans son
mouvement ? En d’autres termes, est-il possible pour notre syst`eme d’apprendre la
structure sous-jacente aux d´emonstrations observ´ees ? Il apparait rapidement `a l’´etude
de cette question que sa r´eponse n’est pas unique : rien ne garantit qu’un tel syst`eme
construise le mˆeme lexique de gestes qu’un humain dans la mˆeme situation. En
r´ealit´e, rien ne garantit non plus que deux humains aux origines culturelles diff´erentes
percevraient les mˆemes gestes dans ces mouvements observ´es. Cette ambig¨uit´e est
encore une fois l’analogue directe de celle rencontr´ee dans le probl`eme de la s´eparation
aveugle de source ou bien dans les ph´enom`enes de multistabilit´e des perceptions
visuelles (Blake, 1989).
Cette difficult´e en cache ´egalement une autre : celle de l’´evaluation d’un tel syst`eme.
En effet, comment ´evaluer la valeur intrins`eque des repr´esentations mentales que se
construit un tel syst`eme perceptuel ? Comment d´efinir ce que c’est que de comprendre
la structure des mouvements observ´es ? En r´eponse `a cette difficult´e, nous consid´erons
le cas o`u le flux perceptuel du syst`eme cognitif inclue des symboles inconnus, qui
forment une description linguistique des mouvements observ´es. Chaque geste du
r´epertoire du danseur est associ´e `a un symbole et chaque chor´egraphie est d´ecrite par
l’ensemble form´e des symboles associ´es `a chacun des gestes qui la composent. A la `
suite d’un phase d’entrainement, au cours de laquelle le syst`eme observe un ensemble
de d´emonstrations de chor´egraphies ainsi que leurs descriptions, il est ´evalu´e de la
mani`ere suivante : une nouvelle chor´egraphie lui est pr´esent´ee et il doit en reconstituer
une description linguistique en utilisant les symboles. Cette description peut ˆetre
alors compar´ee `a l’ensemble de gestes que le danseur a effectivement compos´es. Ce
proc´ed´e est pr´esent´e dans la figure 1.
A ce probl`eme nouveau nous proposons de r´epondre `a l’aide d’un algorith ` me classique
: la factorisation de matrices positives. Soit un ensemble de stimuli perceptuels,
repr´esent´es chacun par un vecteur de grande dimension, et regroup´es dans une matrice
de donn´ee V . Les algorithmes de factorisation de matrices permettent de calculerx
L5
?
linguistic
descriptions
choreography
demonstrations The system observes a choreography and is asked
to reconstruct the associated linguistic description.
Task
L2 L4 L
L6
3
Demonstration 1 Demonstration 2
Training
Figure 1 – Proc´ed´e d’entrainement et d’avaluation du syst`eme. L’entrainement
se fait par l’observation des d´emonstrations de chor´egraphies et de leur descriptions
linguistiques (`a gauche). Le syst`eme est alors ´evalu´e sur sa capacit´e `a d´ecrire
correctement une nouvelle d´emonstration de chor´egraphie (`a droite).
deux matrices W et H de telle sorte que :
V ≃ W · H.
Dans cette ´equation la matrice W est appel´ee dictionaire et forme une base de
dimension inf´erieure `a celle de l’espace des donn´ees dans laquelle les observations
sont approxim´ees. Chacun des vecteurs qui la composent, et que nous appellerons
atomes, est ainsi de mˆeme nature que les observations. La matrice H contient les
coefficients de cette d´ecomposition ; nous l’interpr´eterons comme la repr´esentation
compress´ee ou interne des observations par notre syst`eme.
Les algorithmes de factorisation de matrices positives s’int´eressent particuli`erement
au cas o`u ces matrices sont `a coefficients positifs. Une cons´equence importante de cette
contrainte est que chaque atome contribue ou non positivement `a l’approximation
des observations, en particulier une partie de mouvement est pr´esente ou non mais
n’est en aucun cas combin´ee en n´egatif. Cette interpr´etation, bien qu’intuitive, de la
contrainte correspond en r´ealit´e `a des propri´et´es int´eressantes de cette m´ethode. La
notion de similarit´e, laiss´ee volontairement floue dans l’´equation pr´ec´edente, constitue
un param`etre essentiel de cette famille d’algorithmes ; nous utiliserons dans la suite
les deux cas particuliers de la distance Euclidienne, d´eriv´ee de la norme de Frobenius
sur les matrices, et de la I-divergence, apparent´ee `a la divergence de Kullback-Leibler.
Plus pr´ecis´ement nous utilisons les algorithmes par mise `a jour multiplicative, qui
optimisent simultan´ement cette approximation par rapport au dictionnaire et aux
coefficients Lee and Seung (1999).
Dans l’exp´erience consid´er´ee, chaque observation est en r´ealit´e constitu´ee de deux
modalit´es : d’une part le mouvement du danseur, et d’autre part sa description
symbolique. La contrainte majeure de la m´ethode consid´er´ee est que les observations
doivent ˆetre repr´esent´ees par des vecteurs de dimension fixe et `a coefficients positifs.
Nous choisissons de repr´esenter de cette mani`ere les observations dans chaque modalit´e,
avant de fusionner le mouvement et sa description symbolique en concat´enant leurs
repr´esentations vectorielles. De plus, la motivation de cette exp´erience est d’apprendre
au syst`eme la structure combinatoire des mouvements observ´es. La m´ethode choisie
est capable de repr´esenter les vecteurs d’observations comme combinaison lin´eaire
des atomes du dictionnaire. Afin de tirer parti de cette propri´et´e, nous avons donc
d´evelopp´e une nouvelle repr´esentation des mouvements de longueur arbitraire par un
vecteur de taille constante, qui rend compte approximativement de la combinaison
d’´el´ements de ce mouvement par la combinaison lin´eaire des repr´esentations de cesxi
Gesture 1 Gesture 2 Gesture 3 Gesture 4 Gesture 5 Gesture 6
Figure 2 – Sont repr´esent´es sch´ematiquement sur cette figure quelques uns des
mouvements combin´es par le danseur dans les chor´egraphies.
´el´ements. Pour cela nous utilisons une repr´esentation `a base d’histogrammes de ces
mouvements (pour plus de d´etails se r´ef´erer `a la suite de ce document ou Mangin and
Oudeyer, 2012a). D’autre part, l’ensemble de symboles qui d´ecrit chaque mouvement
est repr´esent´e sous la forme d’un vecteur binaire de dimensionalit´e le nombre total
de symboles, repr´esentant par 1 la pr´esence du symbole dans la description et par 0
son absence.
Du fait de cette repr´esentation, on peut d´ecomposer autant la matrice de donn´ee V
que le dictionnaire W en deux parties correspondant aux deux modalit´es, comme
repr´esent´e dans les ´equations suivantes.
V =
Vmouvement
Vlangage
W =
Wmouvement
Wlangage
Durant la phase d’entrainement, l’algorithme est utilis´e pour apprendre les matrices W
et Hentrainement `a partir de l’ensemble des observations repr´esent´ees par V
entrainement
.
Dans la phase d’´evaluation, l’algorithme est utilis´ee d’une mani`ere diff´erente. Cette
fois-ci seuls les mouvement sont observ´es et repr´esent´es sous la forme d’un matrice
V
´evaluation
mouvement `a partir de laquelle le mˆeme algorithme, fonctionnant cette fois `a dictionnaire
Wmouvement fixe, fournit une repr´esentation interne H´evaluation de ces mouvements.
Finalement les descriptions symboliques correspondant `a ces coefficients sont
simplement calcul´ees comme le produit matriciel : V
reconstruit
langage = Wlangage ·H´evaluation
.
Les descriptions linguistiques ainsi obtenues sont constitu´ees de coefficients positifs
mais non binaires. Un m´ecanisme de seuillage est alors utilis´e pour obtenir un vecteur
binaire que l’on peut comparer `a la vraie description. En comptant comme succ`es une
reconstruction exacte, c’est `a dire o`u tout les bons symboles mais uniquement ceux-ci
sont fournis, on peut calculer un score moyen du syst`eme comme ceux repr´esent´es ci
dessous.
Afin d’obtenir les r´esultats suivants, nous avons enregistr´e principalement deux bases
de donn´ees de mouvements composites. Celles-ci contiennent respectivement 137
chor´egraphies obtenues par combinaison de 16 getses et 277 chor´egraphies obtenues
par combinaison de 47 gestes. La figure 2 fournit quelques exemples de gestes utilis´es
dans ces bases de donn´ees1
.
Les r´esultats suivants pr´esentent les scores de reconstruction des descriptions de
chor´egraphies par le syst`eme. Ces scores doivent ˆetre rapport´es au nombre de combinaisons
possible des 47 gestes constituant le lexique (de l’ordre de 2000), mais
1Par ailleurs ces bases de donn´ees sont publiquement accessibles `a l’adresse suivante. http:
//flowers.inria.fr/choreography_database.htmlxii
lfull lgiven number
16 labels (SVM, linear) 0.818 —
16 labels (NMF, Frobenius) 0.854 0.971
16 labels (NMF, DKL) 0.789 0.905
47 labels (SVM, linear) 0.422 —
47 labels (NMF, Frobenius) 0.625 0.755
47 labels (NMF, DKL) 0.574 0.679
Table 1 – Resultats g´en´eraux sur les bases de donn´ees. A titre de comparaison on `
calcule ´egalement les scores (given number ) pour un probl`eme simplifi´e o`u le syst`eme
connait le nombre de symboles ou gestes pr´esents dans l’observation. Une autre
approche algorithmique utilisant des support vector machines (SVM) est ´egalement
compar´ee.
lfull lgiven number
16 labels (NMF, Frobenius) 0.568 0.800
16 labels (SVM, linear) 0.667 —
47 labels (NMF, Frobenius) 0.406 0.653
47 labels (SVM, linear) 0.206 —
Table 2 – Resultats pour des combinaisons de gestes qui n’ont jamais ´et´e rencontr´ees
au cours de l’entrainement. Ce r´esultat met l’accent sur la capacit´e du syst`eme
`a reconnaˆıtre effectivement la structure des chor´egraphies en en construisant des
descriptions in´edites.
´egalement au nombre plus consid´erable de descriptions symboliques possibles sans
autre a priori sur la structure des gestes (247).
Bien que ce premier ensemble de r´esultats d´emontre la capacit´e du syst`eme cognitif
`a reconnaˆıtre les chor´egraphies dans leur ensemble, il ne garantit pas que ceci passe
par une repr´esentation effective de la structure des mouvements. Afin d’´eclaircir
ce point nous avons raffin´e l’´evaluation en testant le syst`eme uniquement sur des
chor´egraphies in´edites, c’est `a dire des combinaisons de gestes qui n’ont jamais ´et´e
observ´es ensemble par le syst`eme durant son entraˆınement. La table 2 pr´esente ces
r´esultats qui d´emontrent que c’est bien la structure du mouvement qui est repr´esent´ee.
En conclusion cette exp´erience d´emontre la possibilit´e d’explorer la d´ecomposition de
mouvements naturels en composantes actives simultan´ement. Nous avons pour cela
introduit une nouvelle repr´esentation des mouvements qui ne d´epend pas de la dur´ee de
celui-ci et vise la transformation approximative de la combinaison des mouvements en
combinaison lin´eaires de leurs repr´esentations. D’autre part, `a travers ce travail, nous
´etablissons un lien entre les algorithmes d’apprentissage de dictionnaire, appartenant
au domaine du feature learning, avec la question de la d´ecomposition de mouvement.
Au del`a de la simple transposition algorithmique, cela ´etablit une importante analogie
entre ces domaines. De mani`ere int´eressante le cadre exp´erimental et l’approche
algorithmique que nous instancions dans ce travail sont une transposition directe des
travaux effectu´ees par ten Bosch et al. (2008), Driesen et al. (2009) dans le domaine
de l’apprentissage du langage. Nous poursuivons cette analogie dans la derni`ere
partie de ce travail o`u nous d´emontrons que la mˆeme m´ethode permet d’apprendrexiii
simultan´ement `a partir du langage et du mouvement.
La d´ecomposition du comportement en objectifs Une limitation importante
des r´esultats que nous venons de pr´esenter vient directement de la repr´esentation
des mouvements utilis´ee dans ceux-ci. En effet il s’agit en fait plus d’une signature
de celui-ci que d’une repr´esentation de l’int´egralit´e de ses caract´eristiques. Une
cons´equence majeure de cette limitation est qu’il est impossible de renverser cette
exp´erience, c’est `a dire concr`etement, de faire danser par un robot ou un agent virtuel
la chor´egraphie correspondant `a une description symbolique donn´ee. Cette limitation
venant en premier lieu de la repr´esentation du mouvement, et non de l’algorithme
de d´ecomposition, nous explorons dans un second travail pr´esent´e ici une approche
similaire, cette fois fond´ee sur une autre conception du mouvement.
Le premier travail pr´esent´e approchait le mouvement comme trajectoire du corps.
Plus pr´ecis´ement nous nous concentrions sur la trace de cette trajectoire. Nous
proposons ici d’envisager le mouvement comme moyen d’atteindre un objectif : de
tels objectifs peuvent ˆetre de maintenir son centre de gravit´e `a une certaine altitude,
comme r´ealis´e dans la station debout et la marche, ou bien d’influencer l’´etat de son
environnement et en particulier des objets qu’il contient, comme lorsqu’on remplit un
verre d’eau, ou des ˆetres qu’ils contient, comme lorsqu’on sourit `a un interlocuteur
pour accroˆıtre sa sympathie. Cependant, `a objectif ou tˆache donn´ee, on observe une
grande variabilit´e dans les trajectoires y aboutissant. En effet, suivant le contexte, de
nombreux mouvements diff´erents peuvent r´ealiser le verre plein, selon que de l’eau
est accessible dans une broc ou par un robinet et selon les obstacles qui s´eparent de
l’un ou l’autre.
Nous partons du constat suivant : deux mouvements tr`es diff´erents, au sens de leurs
trajectoires, peuvent ˆetre per¸cus et sont g´en´eralement d´ecrits comme tr`es similaires
lorsque, par exemple, ils conduisent `a un mˆeme effet d´esir´e. Se pose alors la question
des m´ecanismes qui expliquent une telle similarit´e de la perception de haut niveau
alors que les stimuli, g´en´eralement visuels, sont d´eriv´es de trajectoires ´eventuellement
tr`es dissemblables. En particulier nous cherchons `a construire une repr´esentation du
mouvement qui rende compte de telles similarit´es.
Parce que pouvoir construire une telle repr´esentation a des applications importantes
pour la compr´ehension automatique des comportements humains et pour leur imitation,
plusieurs approches techniques ont ´et´e d´evelopp´ees dans ce but. Nous nous
concentrons ici sur une formulation de cet objectif sous la forme de l’apprentissage
par renforcement inverse (Russell, 1998). L’apprentissage par renforcement
suppose que l’action est motiv´ee par la maximisation d’une r´ecompense. Etant donn´e ´
cette r´ecompense il s’int´eresse aux algorithmes d’optimisation des actions, et plus
pr´ecis´ement d’une politique d’action. Le probl`eme inverse consiste `a ne pas partir
de la r´ecompense mais de l’observation de trajectoires. On se place typiquement
du point de vue d’un apprenti qui observe les mouvements d’un tuteur en train de
d´emontrer la r´esolution d’une tˆache. L’objectif de l’apprenti est d’inf´erer une fonction
de r´ecompense qui explique les actions du tuteur. L’hypoth`ese ici est celle du mod`ele
du comportement du tuteur comme motiv´e par la maximisation de la r´ecompense.
Malheureusement, mˆeme pour un tuteur parfait et une infinit´e de d´emonstrations,
il n’y a pas unicit´e de la fonction de r´ecompense sous-jacente. Il est donc illusoire
d’´evaluer l’apprenti au regard de la seule inf´erence de la fonction de r´ecompense. En
pratique on s’attachera plutˆot `a une ´evaluation de sa performance du point du vuexiv
du tuteur dans la r´esolution de la mˆeme tˆache. En d’autres termes, l’apprenti sera
´evalu´e dans l’espace des trajectoires qu’il produit `a partir d’une repr´esentation de
la tˆache dans l’espace des r´ecompenses. L’int´erˆet d’une telle approche par rapport
`a une imitation directe des trajectoires est qu’elle peut conduire `a une meilleur
g´en´eralisation. En effet imiter le remplissage du verre d’eau par la copie exacte d’une
ancienne trajectoire dans un nouveau contexte o`u les obstacles sont d´eplac´es est
probablement vou´e `a l’´echec.
Nous nous pla¸cons ici dans le cas de l’apprentissage par renforcement inverse dont
nous ´etendons le cadre classique. En effet, la majorit´e des travaux sur cette question
consid`ere que le tuteur fournit un grand nombre de d´emonstrations d’une seule
tˆache. En pratique, on veut souvent pouvoir apprendre `a partir de l’observation
d’un agent dont les mouvements vont naturellement correspondre `a plusieurs tˆaches
inconnues a priori. De plus il semble que dans de nombreuses situations chacune
de ces tˆaches n’est pas monolithique mais consiste plutˆot en la combinaison d’un
ensemble d’objectifs ou de pr´ef´erences distinctes. En effet l’objectif du verre plein
est combin´e avec ceux d’´eviter chacun des obstacles. Ainsi nous ´etudions ici, non
pas directement l’apprentissage d’une tˆache `a partir de nombreuses d´emonstrations
de cette tˆache, mais l’apprentissage d’un ensemble de tˆaches ou objectifs primitifs
qui permettent d’expliquer des comportements correspondant `a des tˆaches distinctes
mais partageant une structure commune.
Nous formalisons ce probl`eme et en proposons une solution algorithmique dans le
cadre d’un probl`eme synth´etique tr`es simle : le tuteur comme l’apprenti ´evoluent dans
un monde constitu´e d’une grille d’´etats et les actions, correspondant aux d´eplacements
cardinaux bruit´es, sont disponibles. Le tuteur utilise un petit nombre d’objectifs
´el´ementaires pour g´en´erer des tˆaches complexes par combinaisons lin´eaires al´eatoires
de celles-ci. Il en fournit des d´emonstrations solvant approximativement chaque tˆache
pour diff´erents contextes, c’est `a dire ici diff´erentes positions initiales. A partir de `
ces d´emonstrations un apprenti construit son propre lexique de tˆaches ´el´ementaires
et recherche des repr´esentations des tˆaches d´emontr´ees comme combinaisons des
tˆaches ´el´ementaires apprises. L’apprenti est ´evalu´e selon deux protocoles : dans
un premier temps sur sa performance moyenne sur chaque tˆaches inf´er´ee `a partir
des d´emonstrations du tuteur, et dans un second temps sur de nouvelles tˆaches
complexes dont une d´emonstration br`eve est fournie. Ainsi nous ´evaluons la capacit´e
de l’apprenti `a tirer parti de la structure commune des tˆaches d´emontr´ees pour
mieux les apprendre, mais ´egalement son aptitude `a utiliser cette connaissance pour
apprendre plus vite de nouvelles tˆaches partageant la mˆeme structure.
Nous utilisons pour atteindre cet objectif une extension de l’algorithme par descente
de gradient propos´e par Neu and Szepesv´ari (2007) `a un cadre de factorisation de
matrice. Les r´esultats sur l’ensemble d’entrainement, c’est `a dire les d´emonstrations
initiales utilis´ees pour apprendre le lexique de tˆaches ´el´ementaires, et sur l’ensemble
de test sont pr´esent´ees en figure 3.
Apprentissage multimodal et apprentissage du langage La contribution
principale de ce travail est une autre extension de la premi`ere exp´erience pr´esent´ee :
la situation d’apprentissage de celle-ci pr´esentait simultan´ement une d´emonstration
de mouvement et sa description par un ensemble de symboles. Nous rempla¸cons
`a pr´esent cet ensemble de symbole par l’enregistrement acoustique d’une phrase
parl´ee. En d’autres termes nous consid´erons le probl`eme de l’apprentissage `a partirxv
0 50 100 150 200
Number of training tasks
0.0
0.5
1.0
1.5
2.0
2.5
3.0
Avg. dev. from opt. score on training tasks
Flat
Fact. (rand. init)
Fact. (PCA init)
Flat (PCA features)
Flat (ground truth features)
0 50 100 150 200
Number of training tasks
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
Avg. dev. from opt. score on testing tasks
Flat
Fact. (rand. init)
Fact. (PCA init)
Flat (PCA features)
Flat (features from ex.)
Flat (ground truth features)
Figure 3 – Pour un nombre de tˆaches suffisant, l’algorithme pr´esent´e d’apprentissage
factoriel de tˆaches (fact), d´epasse la m´ethode classique (flat). Cette derni`ere ne
pouvant apprendre la structure commune des diff´erentes tˆaches, consid`ere chaque
tˆache comme ind´ependante. Les r´eultats pr´esent´es correspondent `a l’´ecart de la
r´ecompense obtenue en moyenne par rapport `a la solution optimale (les points les
plus bas sont donc les plus performants). Les courbes du haut repr´esentent les scores
sur les tˆaches servant `a apprendre le lexique de tˆaches ´el´ementaires, celles du bas,
les scores sur de nouvelles tˆaches. A titre de comparaison les figures repr´esentent `
´egalement (flat (ground truth features)) la performance d’un apprenti qui connaitrait
d´ej`a le dictionaire de tˆaches ´el´ementaires et devrait uniquement estimer comment
celles-ci ont ´et´e combin´ees pour obtenir chaque d´emonstration. Finalement deux
approches na¨ıves, mais inefficaces, au mˆeme probl`eme sont pr´esent´ees (flat (PCA
features) et flat (features from ex.))
de donn´ees r´eelles, en ce qu’elles sont enregistr´ees `a partir de variables physiques
continues qui r´esultent d’une production humaine, incluant plusieurs modalit´es. En
pratique nous ´etudions, en plus des modalit´es de la parole et du mouvement, des
images d’objets.
Dans la premi`ere exp´erience, des gestes ´etaient associ´ees `a des symboles et un syst`eme
cognitif devait apprendre `a reconnaˆıtre ces gestes en produisant les symboles ad´equats.
Une fois ces symboles remplac´es par du son ou des images, c’est `a dire par des
grandeurs continues et de grande dimension, une telle ´evaluation par la comparaison
de symboles produits avec une valeur de r´ef´erence n’est plus possible, du moins
pas de mani`ere imm´ediate. Nous choisissons donc une nouvelle forme d’´evaluation
que nous voulons l’analogue comportemental du probl`eme de classification. Nousxvi
Apprentissage Le syst`eme observe un
ensemble d’exemples de gestes, chacun ´etant
associ´e `a une description parl´ee.
I make circles with my arm.
I am clapping!
Evaluation ´ Le syst`eme entend une nouvelle
phrase et doit choisir un geste parmi
plusieurs d´emonstrations qui correspond le
mieux `a cette description.
Look at the circles I do.
?
L’apprenti choisit le
geste qui correspond
au mieux `a la phrase.
Figure 4 – Illustration de la tˆache de classifiction cross-modale. La transcription
des phrases parl´ees repr´esent´ee est illustrative de la pr´esence de mots cl´es dans les
phrases parl´ees mais n’est en aucun cas observ´ee par l’apprenti.
revenons pour cela au cas plus simple o`u un seul concept est pr´esent dans chaque
exemple ; c’est `a dire dans le cas du mouvement qu’un seul geste est d´emontr´e
`a la fois. Plus pr´ecis´ement nous disposons d’une base de donn´ee de gestes, d’une
base de donn´ees de phrases, chacune caract´eris´ee par un mot cl´e, et d’une base
de donn´ee d’images, chacune repr´esentant un objet parmi un ensemble fix´e. Un
ensemble d’associations arbitraires est choisi entre un geste, un mot cl´e et un objet ;
nous appelons association cross-modale un tel ensemble et concept chaque triplet.
Le syst`eme cognitif est entrain´e par l’observation d’un grand nombre d’exemples
constitu´es de la manifestation dans plusieurs modalit´es du mˆeme concept ; c’est `a
dire par exemple que le geste est observ´e en mˆeme temps qu’une phrase qui contient
le mot cl´e associ´e `a ce geste. Le syst`eme est ensuite ´evalu´e de la fa¸con suivante : un
nouveau stimulus est observ´e, dans une seule modalit´e cette fois, par exemple une
phrase ; le syst`eme doit alors, parmi plusieurs stimuli provenant d’une autre modalit´e,
choisir celui qui correspond au premier. Par exemple, le syst`eme observe un ensemble
de gestes et doit choisir celui qui correspond le mieux `a la phrase, c’est `a dire celui
qui correspond au mˆeme concept que le mot cl´e contenu dans la phrase. Ce protocole
est illustr´e dans la figure 4.
Le syst`eme ´evalu´e dans nos exp´erimentations est le mˆeme que celui pr´esent´e pour la
premi`ere exp´erience, fond´e sur la factorisation de matrices positives. Plus pr´ecis´ement
l’apprentissage est effectu´e `a partir d’une matrice de donn´ee o`u chaque exemple
est repr´esent´e par la concat´enation des repr´esentations vectorielles des stimuli dansxvii
chaque modalit´e. Par exemple,
V =
Vmod1
Vmod2
Vmod3
.
Une fois l’apprentissage effectu´e, et donc le dictionnaire multimodal appris, il est
possible au syst`eme de convertir la perception d’un stimulus dans une modalit´e
en repr´esentation interne ou en perception attendue dans une autre modalit´e. Ces
m´ecanismes sont synth´etis´es en figure 5. Afin de comparer, par exemple, une phrase `a
plusieurs d´emonstrations de gestes, on peut convertir les perceptions de la phrase et
des gestes en leurs repr´esentations internes puis comparer ces repr´esentations internes.
Il est ´egalement possible de convertir la phrase en une perception de geste attendue
puis de comparer celle-ci aux perceptions r´eelles de gestes ou r´eciproquement. Enfin
plusieurs mesures de similarit´e peuvent ˆetre utilis´ees pour cela ; nous consid´erons la
distance Euclidienne, la I-divergence ainsi que la similarit´e cosinus.
h
vmod1 vmod2
arg min
h
DI (vmod1 , Wmod1 · h) Wmod2 · h
Perception r´eelle Perception attendue
Repr´esentation interne
Figure 5 – Une fois que le syst`eme a appris le dictionnaire (Wmod1 et Wmod2 ), ´etant
donn´e une observation dans une modalit´e vmod1 , il peut construire la repr´esentation
interne correspondant h, ainsi que la perception attendue dans une autre modalit´e
vmod2 .
Les r´esultats de cette exp´erience pour la comparaison dans l’espace des repr´esentations
internes avec la similarit´e cosinus sont pr´esent´es en figure 6.
Ces r´esultats importants d´emontrent la capacit´e du syst`eme `a apprendre correctement
les associations cross-modales `a partir des observations. De mani`ere int´eressante,
d’autres exp´eriences d´emontrent que ces scores ne sont pas am´elior´es lorsque le
syst`eme observe ´egalement des labels symboliques. Plus g´en´eralement il ne semble
pas au vu de ces r´esultats que la pr´esence d’une modalit´e additionnelle change
significativement les r´esultats.
Nous effectuons ´egalement d’autres exp´eriences afin d’´etudier la localisation temporelle
de la s´emantique des associations au sein de la phrase. Celles-ci indiquent que le
sens des phrases serait, de mani`ere non surprenante, souvent localis´e autour du mot
qui est associ´e `a ce sens. D’autre part une autre exp´erience indique que certains
coefficients de la repr´esentation interne se sp´ecialisent dans la reconnaissance de
certains des concepts. Il y a donc d’une certaine mani`ere ´emergence de ceux-ci.xviii
0.0
0.2
0.4
0.6
0.8
1.0
Cross-modal association score
image, motion motion, sound image, sound motion, sound, image
motion → sound
motion → image
sound → motion
sound → image
image → motion
image → sound
Figure 6 – Scores pour la tˆache de classification, pour diff´erentes exp´eriences dans
lesquelles deux o`u trois modalit´es sont pr´esent´ees `a l’entraˆınement. Chaque groupe
correspond `a un choix de modalit´e pour l’entrainement : trois groupes d’exp´eriences o`u
deux modalit´es sont pr´esentes et un avec les trois modalit´es. Chaque boˆıte repr´esente
la distribution des scores pour plusieurs r´ep´etition de l’exp´erience et un choix d’une
tˆache de classification, c’est `a dire d’une modalit´e dont un exemple est fourni et doit
ˆetre compar´e `a plusieurs exemples de r´ef´erence observ´es dans une autre modalit´e.
Discussion La premi`ere contribution de ce travail r´eside dans les nouvelles questions
qu’il aborde. Ainsi nous proposons une formulation des probl`emes de la
d´ecomposition de mouvement en composantes actives simultan´ement ou en tˆaches
´el´ementaires, ainsi qu’une r´eponse algorithmique `a ces nouveaux probl`emes.
De mani`ere g´en´erale, nous explorons l’apprentissage de concepts `a partir d’une
perception multimodale et non symbolique. Dans ce cadre l`a nous proposons un
approche originale, puisque s’appuyant sur des outils classiques d’apprentissage de
feature, au probl`eme de l’ancrage de mots acoustiques. En effet ce probl`eme a souvent
´et´e explor´e au travers d’approches consid´erant la parole et les autres modalit´es de
mani`ere tr`es dissym´etrique, et ayant souvent recours `a des processus de segmentation
ou de transcription statiques de la parole. Une originalit´e importante de ce travail
consiste en la relative sym´etrie de traitement des diff´erentes modalit´es.
L’absence de segmentation a priori de la parole r´ev`ele un autre aspect int´eressant de
ce travail. En effet, on peut opposer deux approches `a l’apprentissage de donn´ees
structur´ees : d’une part celle supposant que l’apprentissage des composantes de cette
structure pr´ec`ede la compr´ehension des donn´ees complexes, et d’autre part cellexix
pour laquelle la compr´ehension du tout pr´ec`ede celle des parties (voir Wrede et al.,
2012, pour de plus amples explications). Bien entendu de nombreuses approches se
positionnent ´egalement entre ces deux pˆoles. De ce point de vue notre travail apporte
un mod`ele d’apprentissage original o`u, en particulier, la compr´ehension des phrases
dans leur ensemble pr´ec`ede le concept de mot : il n’est pas besoin de segmenter
la phrase parl´ee en mots et de comprendre chacun de ceux-ci pour comprendre le
sujet g´en´eral de la phrase. Au contraire, c’est la compr´ehension du sens g´en´eral de la
phrase qui peut ˆetre localis´ee et ainsi d´elimiter des sons que l’on peut qualifier de
mots et qui peuvent correspondre aux mots r´eels.
Le travail que nous pr´esentons ici constitue ainsi une contribution originale `a plusieurs
questions ; il n’en pr´esente pas moins un certain nombre de limitations qui ouvrent
des perspectives diverses. Tout d’abord, une premi`ere famille de limitations concerne
la port´ee des exp´eriences pr´esent´ees : nombre d’entre elles consid`erent des probl`emes
qui restent tr`es simples et contraints, en comparaison de ce `a quoi est confront´e, par
exemple, un nourrisson. Une premi`ere voie d’am´elioration de ces travaux est donc
celle de l’am´elioration des techniques utilis´ees pour lever les contraintes et atteindre
des probl`emes plus r´ealistes.
De plus, nous nous concentrons ici sur la combinaison simultan´ee de parties de
mouvements mais laissons de cˆot´e de nombreuses autres formes de combinaisons.
En particulier il serait int´eressant d’´etudier simultan´ement la d´ecomposition de
mouvements combin´es en s´equence et en parall`ele. Une autre forme de structure
essentielle dans le cas du langage mais aussi du mouvement est la grammaire. Le
parall`ele important que constitue notre travail entre les structures du langage et du
mouvement pourrait ainsi ˆetre ´etendu `a l’´etude des structures grammaticales.
Dans la derni`ere exp´erience pr´esent´ee, nous partons de donn´ees qui associent de
mani`ere artificielle des exemples dans plusieurs modalit´es appartenant `a une mˆeme
classe s´emantique artificielle. Le syst`eme pr´esent´e utilise fortement l’hypoth`ese que
les exemples d’une mˆeme classe sont observ´es simultan´ement ; cette hypoth`ese sur les
donn´ee est appel´ee cross-situational learning par les psychologues. Le syst`eme pr´esent´e
est ainsi limit´e `a cette hypoth`ese. En revanche cette limitation ouvre une perspective
importante ; en effet appliquer ce mˆeme algorithme sur des donn´ees acquises au cours
d’interactions r´eelles entre un enfant et son environnement permettrait d’en apprendre
plus sur la structure de ces donn´ees et en particulier la viabilit´e du cross-situational
learning comme mod`ele d’apprentissage humain. Un autre perspective importante est
le d´eveloppement d’algorithmes tirant parti d’autre mod`eles d’apprentissages (voir
par exemple ceux pr´esent´es par Markman, 1990, Landau et al., 1998).
Finalement le sc´enario d’apprentissage que nous pr´esentons ne peut pas ˆetre compl`etement
qualifi´e de d´eveloppemental, et ce pour de nombreuses raisons. Parmi celles-ci
on compte la nature purement perceptuelle du syst`eme pr´esent´e. Une extension
importante en est l’´etude du couplage entre la structuration de cette perception et la
structuration qu’elle pourrait induire sur une boucle d’action et ainsi sur les donn´ees
per¸cues par le syst`eme cognitif.xxUniversite de Bordeaux ´
School of mathematics et computer science
Submitted in fulfillment of requirements for the degree of
Doctor of Philosophy
Specialized in Computer Science
The Emergence of
Multimodal Concepts
From Perceptual Motion Primitives
to Grounded Acoustic Words
Presented by
Olivier Mangin
Completed under the supervision of
Pierre-Yves Oudeyer
Defended on March, the 19th 2014 in front the committee composed of
Pr. Angelo Cangelosi — University of Plymouth Reviewer
Dr. Jean-Luc Schwartz — CNRS Reviewer
Dr. Jacques Droulez — Coll`ege de France President
Dr. Emmanuel Dupoux — Ecole des hautes ´etudes en sciences ´
sociales
Examiner
Dr. Manuel Lopes — INRIA Examiner
Dr. David Filliat — ENSTA-ParisTech ´ ExamineriiAbstract
This thesis focuses on learning recurring patterns in multimodal perception. For
that purpose it develops cognitive systems that model the mechanisms providing
such capabilities to infants; a methodology that fits into the field of developmental
robotics.
More precisely, this thesis revolves around two main topics that are, on the one hand
the ability of infants or robots to imitate and understand human behaviors, and on
the other the acquisition of language. At the crossing of these topics, we study the
question of the how a developmental cognitive agent can discover a dictionary of
primitive patterns from its multimodal perceptual flow. We specify this problem
and formulate its links with Quine’s indetermination of translation and blind source
separation, as studied in acoustics.
We sequentially study four sub-problems and provide an experimental formulation
of each of them. We then describe and test computational models of agents solving
these problems. They are particularly based on bag-of-words techniques, matrix
factorization algorithms, and inverse reinforcement learning approaches. We first
go in depth into the three separate problems of learning primitive sounds, such
as phonemes or words, learning primitive dance motions, and learning primitive
objective that compose complex tasks. Finally we study the problem of learning
multimodal primitive patterns, which corresponds to solve simultaneously several of
the aforementioned problems. We also detail how the last problems models acoustic
words grounding.
This thesis was conducted in the Flowers team from INRIA institute and funded
by an AMX allocation.
Keywords multimodal learning; language acquisition; symbol grounding; concept
learning; human behavior understanding; motion decomposition; motion primitive;
task decomposition; nonnegative matrix factorization; factorial inverse reinforcement
learning; developmental robotics
iiiivAcknowledgement
First of all I would like to thank Pierre-Yves for his enthusiastic, open minded, and
supportive supervision. He has been and continue to be a very enlightening mentor
and advisor.
I would also like to thank all the members of my jury and in particular my reviewers
for their rich and insightful comments on this work. I was sincerely honoured by
their interest they had for it and their presence at my defense.
Many thoughts and thanks goes to the Flowers team and collaborators. I would
like to thank in particular Louis ten Bosch for his friendly advices during his stay
in Bordeaux as well as the numerous and detailed explanation he gave me on his
previous work and. I also would like to thank Haylee for her patient participation
while recording motion datasets, Natalia for her helpful image data, and Caio for his
collaboration on conducting many experiments under sometime loose supervision.
I would like to thank all the members of the team for sharing many stimulating
discussions, common projects, and other great moments; in (approximate) order
of appearance: Pierre, Adrien, Jerome, B´erenger, Franck, J´er´emy, Thomas, Mai,
Olivier, Matthieu, Fabien and Fabien, Paul, Jonathan, Timoth´ee, Damian, Hong Li,
the other Thomas, Jonathan, Cl´ement, Aur´elien, the other Cl´ement, Didier, as well
as the Parisian members of the team and our team assistants, Marie, Nathalie, and
Nicolas.
I would like to thank the French state for its confidence and support in form of the
principal funding of this thesis and the INRIA institute for providing the environment
in which this work was developed.
I would also like to thank all those of my teachers and others who made me discover
the joys of science and fostered my curiosity.
To conclude, I would like most importantly to thank my family and friends for making
me who I am and consistently supporting what they have made ever since.
vviContents
A developmental robotics perspective 1
1 Complex and simple, whole and parts 7
1.1 Understanding and imitation of human behaviors . . . . . . . . . . . 8
1.2 Structured representations for complex motions . . . . . . . . . . . . 10
1.3 Language acquisition and multimodal learning . . . . . . . . . . . . 13
1.4 Important questions . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2 Technical background 19
2.1 Nonnegative matrix factorization . . . . . . . . . . . . . . . . . . . . 19
2.1.1 Problem description . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.2 Basic algorithms . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.1.3 Variants and improvements . . . . . . . . . . . . . . . . . . . 25
2.2 Inverse reinforcement learning . . . . . . . . . . . . . . . . . . . . . . 26
2.2.1 Background: reinforcement learning . . . . . . . . . . . . . . 26
2.2.2 What is inverse reinforcement learning? . . . . . . . . . . . . 29
2.2.3 Algorithms for inverse reinforcement learning . . . . . . . . . 33
3 Learning a dictionary of primitive motions 37
3.1 Combination and discovery of motion primitives . . . . . . . . . . . 38
3.1.1 What does combination mean? . . . . . . . . . . . . . . . . . 38
3.1.2 Motion representations . . . . . . . . . . . . . . . . . . . . . . 39
3.1.3 Algorithms to decompose observed motions . . . . . . . . . . 42
3.2 Histograms of motion velocity . . . . . . . . . . . . . . . . . . . . . . 43
3.3 Discover simultaneous primitives by NMF . . . . . . . . . . . . . . . 45
3.3.1 The choreography data . . . . . . . . . . . . . . . . . . . . . 46
3.3.2 Algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.3 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3.4 Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.4 Concluding perspectives . . . . . . . . . . . . . . . . . . . . . . . . . 53
4 Learning a dictionary of primitive tasks 55
4.1 Previous work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.1.1 Inverse feedback and reinforcement learning . . . . . . . . . . 57
4.2 Factorial inverse control . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.2.1 Problem definition and algorithm . . . . . . . . . . . . . . . . 58
4.2.2 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.2.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
viiviii CONTENTS
4.3 Factorial inverse reinforcement learning . . . . . . . . . . . . . . . . 66
4.3.1 Multi-task inverse reinforcement feature learning . . . . . . . 66
4.3.2 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3.3 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5 Learning a dictionary of primitive sounds 75
5.1 Models of language acquisition . . . . . . . . . . . . . . . . . . . . . 75
5.2 Hierarchical clustering of basic sounds . . . . . . . . . . . . . . . . . 77
5.2.1 Background and principle . . . . . . . . . . . . . . . . . . . . 78
5.2.2 Presentation of the framework . . . . . . . . . . . . . . . . . 78
5.2.3 Implementation . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.4 Experimental scenario . . . . . . . . . . . . . . . . . . . . . . 84
5.3 HAC representation . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.3.1 Codebooks . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
5.3.2 Histograms of co-occurrences . . . . . . . . . . . . . . . . . . 88
5.4 Learning words with NMF . . . . . . . . . . . . . . . . . . . . . . . . 89
5.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
6 Multimodal learning 91
6.1 Multimodality in perception and learning . . . . . . . . . . . . . . . 91
6.2 Related work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
6.3 Experimental setup . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
6.4 NMF for multimodal learning . . . . . . . . . . . . . . . . . . . . . . 98
6.4.1 Learning a dictionary of multimodal components . . . . . . . 98
6.4.2 NMF to learn mappings between modalities . . . . . . . . . . 99
6.5 Data and representation . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.5.1 Motions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.5.2 Sounds . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6.5.3 Images and videos . . . . . . . . . . . . . . . . . . . . . . . . 102
6.6 Experiments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
6.6.1 Learning semantic associations . . . . . . . . . . . . . . . . . 103
6.6.2 Learning words in sentences . . . . . . . . . . . . . . . . . . . 111
6.6.3 Emergence of concepts . . . . . . . . . . . . . . . . . . . . . . 114
6.7 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
7 Discussion and perspectives 119
A Non-negative matrices and factorization 125
A.1 Non-negative matrix theory . . . . . . . . . . . . . . . . . . . . . . . 125
A.1.1 Base definitions and notations . . . . . . . . . . . . . . . . . 125
A.1.2 Taxonomy of non-negative matrices . . . . . . . . . . . . . . 126
A.1.3 Perron-Frobenius theorem . . . . . . . . . . . . . . . . . . . . 127
A.2 Ambiguity in the problem definition . . . . . . . . . . . . . . . . . . 128
A.2.1 Generative model . . . . . . . . . . . . . . . . . . . . . . . . . 128
A.2.2 Representation of simplicial cones . . . . . . . . . . . . . . . 129
A.2.3 First case: linearly independent generators . . . . . . . . . . 129
A.2.4 Second case: rk(W) < K . . . . . . . . . . . . . . . . . . . . 130
B Datasets 131
B.1 The Acorns Caregiver dataset . . . . . . . . . . . . . . . . . . . . . . 131
B.2 The first choreography dataset . . . . . . . . . . . . . . . . . . . . . 131CONTENTS ix
B.2.1 Description of the data . . . . . . . . . . . . . . . . . . . . . 132
B.3 The second choreography dataset . . . . . . . . . . . . . . . . . . . . 132
B.3.1 Description of the data . . . . . . . . . . . . . . . . . . . . . 134
C Code 135x CONTENTSA developmental robotics
perspective
Late nineteenth and twentieth centuries have witnessed major scientific discoveries
in several fields: neurosciences, brain imaging, but also the study of phenomenology
by philosophers, the development of psychology, the invention of the theory of
computation, and further development of the computer science. It was followed by
the technical revolutions that lead to modern computers and robots, and mathematical
developments driven by new applications such as machine learning. All these elements
played an essential role in the advent of the understanding of cognition and intelligence,
in such a way that cognitive sciences, the name given to that knowledge and fields of
study, is a vastly multidisciplinary domain, that includes computational and robotics
models of cognition.
Among these discoveries, develpmental psychology has brought attention on the
processes that give rise to intelligence: instead of trying to understand directly the
structure of an adult mind, it examines the mechanisms that shape and organize
intelligence, starting from early childhood. Later, after a large part of research in
both cognitive sciences and artificial intelligence had been mainly focused on the
problem of understanding or imitating the adult mind, a similar shift in methodology
also appeared in artificial intelligence and robotics. However the idea that the human
mind should be studied through the processes of its development and maturation
was already clear in Turing’s mind sixty years ago.
“ Instead of trying to produce a programme to simulate the adult mind, why
not rather try to produce one which simulates the child’s? If this were then
subjected to an appropriate course of education one would obtain the adult brain.
Presumably the child brain is something like a notebook as one buys it from the
stationer’s. Rather little mechanism, and lots of blank sheets. (Mechanism and
writing are from our point of view almost synonymous.) Our hope is that there
is so little mechanism in the child brain that something like it can be easily
programmed. The amount of work in the education we can assume, as a first
approximation, to be much the same as for the human child. ”
Alan Turing, Computing machinery and intelligence (1950)
Although Turing was right about the importance of modeling child learning, he
was wrong saying the child starts with a blank sheet. Developmental and social
robotics therefore studies developmental mechanisms that can guide and constrain
the learning of robots, animals, and infants. The focus thus moves from building
12 A DEVELOPMENTAL ROBOTICS PERSPECTIVE
intelligent robots to a closer study of the behavior and learning mechanisms that make
the interaction between these robots and their environment evolve towards structured
interactions with persistent patterns. In other words this paradigm pertains to a
systemic approach of cognitive development that is directly grounded in Piaget’s
thoughts.
≪ L’intelligence ne d´ebute ainsi ni par la connaissance du moi ni par celle des
choses comme telles, mais par celle de leur interaction, et c’est en s’orientant
simultan´ement vers les deux pˆoles de cette interaction qu’elle organise le monde
en s’organisant elle-mˆeme.2 ≫
Jean Piaget, La construction du r´eel chez l’enfant (1937)
Developmental robotics is also often denoted as epigenetic robotics: a name that
emphasises the role of the robot history and environment in determining its final
state, in opposition to behaviors fully determined by its initial programming. The
motivations behind developmental and social robotics come from two goals, namely
building better robots and understanding human development, that are very different
in nature, but pointing toward the same area of research.
Firstly developmental robotics is motivated by building better robots. Indeed, science
fiction has been exploring for some time now all the possible impacts of robots on
our every day life and spreading the idea that robots could, as tools or companions,
be a great improvement to our quality of life, provided that security and ethical
issues are well dealt with. Actual robots are however still mainly confined to factories
or have to be remotely controlled by human operators. The truth is that robots
currently are only capable of very poor adaptivity to unpredictable environments
they have not been specifically programmed for. Real human environment are such
environments and thus this limitation constitutes a strong obstacle to deployment
of robots in every day life applications such as domestic assistance or human-robot
collaborative work. One reason of these limitations is that the programmer cannot
take explicitly into account all possible environments and situations the robot might
face. A promising approach to make such programming possible is to implement
basic mechanisms that make the robot capable of adapting its behavior throughout
its discovery of its environment.
The second motivation is that robots could help us understand the human brain.
Robots actually constitute a unique tool to model some biological, psychological
or cognitive processes and systems. This motivation lead to some early robotics
realizations that had a great impact on biological scientific communities. As one
early example, In 1912, Hammond and Miessner developed a robot called electric
dog (Miessner, 1919), that happened to be a good model of Jacques Loeb’s theory
to explain phototropism in insects. The robot had a major impact on the scientific
acceptance and diffusion of Loeb’s ideas (see Oudeyer, 2010). Building robots as
models of the child development is an analogous methodology that can help exploring
the mainly unresolved question of how children intelligence develops before reaching
the adult state. For that purpose developmental robotics research complements the
work done in other disciplinary fields that also focus on understanding the functioning
of the adult human brain.
2“Therefore intelligence does not start from self-awareness neither from the awareness of its
objects in their own, but from the interactions between both. Instead, intelligence organizes the
world by organizing itself simultaneously between both sides of that interaction.”3
Figure 7: Illustration of the electric dog from Miessner (1919).
Reviews on advances in developmental robotics can be found in work from Lungarella
et al. (2003), Asada et al. (2009). Among the many questions that are studied
by developmental robotics two are of greater importance for this work. First,
understanding the mechanisms enabling language acquisition by children is still
subject to many open scientific questions (see Kuhl, 2010). Furthermore, building
robots with language acquisition capabilities is a promising way of improving human
robot or human computer interaction. Although there exist speech acquisition systems
and natural language interfaces, these do not feature the adaptability required by the
great variety in user preferences and languages. Most of these systems are built for a
few target languages and user cases, that have nothing to do with the variety of words
and skills people even enjoy teaching to their dog. Furthermore many systems do not
focus on the transmission of concepts through natural interaction and the grounding
of natural interaction on these concepts, although they are fundamental mechanisms
of the emergence of communication between humans or humans and pets. The range
of skills that a user would expect from a robot is also very wide and made even wider
by the addition of user preferences. Similarly, natural teaching of robots seems a much
more plausible solution than specific engineering for each use case; one way to achieve
such teaching is known as imitation learning or robot programming by demonstration.
Indeed, to have humans directly demonstrate tasks to a robot, or shaping the robot4 A DEVELOPMENTAL ROBOTICS PERSPECTIVE
behavior to fit their preferences, is much more accessible than actually programming
the robot. Furthermore user preferences are not always easy to formulate, either
using robots currently very poor language capabilities, or programming languages.
While many techniques have been developed toward imitation learning for robots,
most of them still target the single task setup. Such limitation is problematic, not
only because robots are not necessarily expected to achieve only one task, but also
because what seems to be a single task often is, after closer inspection, a combination
of several tasks. Also, typical teaching to children does not go directly to complex
tasks but through the learning of skills of increasing complexity: such a progressive
trajectory might also be beneficial to teaching robots. Furthermore, common skills
might be seen as prerequisites to learning complex ones; being able to re-use such
skills, as already learnt by a robot, is also a promising way to ease the skill acquisition
process.
In this thesis, we embrace the developmental robotics approach and consider the
learning and developments that occurs directly on top of the sensori-motor perception.
We particularly explore the questions related to the decomposition of motions as well
as multimodal perceptual signals and therefore target several aspects of perception
and language acquisition. Decomposing the complex into simple parts and composing
simple building blocks into complex things are actually processes of great interest
for the aforementioned questions. The acquisition of language is a very intuitive
example of that decomposition that the structure of language itself implements:
spoken language is made of sentences that are composed of words, which, themselves,
are produced by sequencing phonemes. On the other side, the study of language
acquisition by children shows that they first learn to recognize and produce phonemes,
before going to words, and then sentences of increasing complexity (Kuhl, 2004).
Similar observations on the production of actions suggests that children first learn
to grasp before combining this skill with placement, and before they start building
piles of toys. The motivation for roboticists is then to build mechanisms that make a
robot capable of similar combinations of simple skills it already masters into more
complex ones. Indeed, while it is now possible to teach various tasks to a robot,
the evolution over time of the number of tasks a robot masters is typically linear:
the time required to learn each new task does not really decrease as experience is
accumulated by the robot, even if the task has a lot in common with a task already
learnt. Achieving better re-use of knowledge is thus a promising way of improving
the amount of tasks a robot can learn and achieving life-long learning (as claimed
by Thrun and Mitchell, 1995): exploiting the combinatorial structure of skills and
knowledge makes it possible to learn new skills by efficiently combining mastered
competences (see Taylor and Stone, 2009, Cangelosi et al., 2010).
From a wider perspective, the question of how learning can happen in an open-ended
perspective is well identified as a major challenge for developmental robotics (see
Lungarella et al., 2003, Weng et al., 2001). Despite that objective being clearly
identified, most experiments in that fields, for example those involving between tens
and thousands of repetitions of single grasping tasks, rarely last more than a few
hours or days: much less than the scales of animal lives. Precisely, the mechanisms
that could drive the shift from simple to complex in such learning, as observed on
children, are still not well understood. Often, the tasks on which domestic robots
are expected to be used, are too complex to be teachable, even to a state of the art
robot; an important part of that complexity actually comes from the highly variable
and complex nature of the environment in which they take place.5
Computational approaches often implement a notion of primitive elements that
models the simple to complex approach. This follows the intuition of cumulative
learning: a learning system gradually acquires a lexicon of elements. At first it
acquires elements of very low complexity; then this complexity gradually increases as
learnt elements can be combined into more complex ones, that become themselves
parts of the lexicon (see Cangelosi et al., 2010, sec. 3 and 4). This model is clearly
inspired by the structure of language where the lexicon is initially populated by words
before including word groups, propositions, and sentences of increasing complexity.
The same idea have been used to model motion and is often behind the notion
of motor primitives, as used by roboticists (see the discussion by Konczak, 2005).
A similar idea have been studied extensively in the field of machine learning and
often applied to vision (Aharon et al., 2005, Lee et al., 2006); it is named dictionary
learning. Therefore one motivation behind the work in this thesis was to explore the
application of these ideas and the large literature of associated techniques to the
aforementioned questions of developmental robotics.
Despite being quite intuitive, the idea that learning systems first learn basic and
local elements, such as words or short and precise motions, and then combine them
into complex knowledge, is neither necessarily how it happens for children nor the
only way to build artificial learning systems. Indeed such an approach, denoted as
compositional puts the ability to segment complex motions or sequences into small
parts as a prerequisite to learn these parts. As explained further these capabilities
often corresponds to solving quite difficult or ambiguous problems. On the other
hand the teleological approach (Wrede et al., 2012) achieves first a global or holistic
representation, that enables basic interactions with the world, before understanding
the details and parts that compose for example the motion or sentence. As explained
further, this thesis provides models of the learning of perceptual components that
follows the holistic to decomposed pattern.
Chapter 1 introduces more precisely the central questions studied in this thesis.
It explains how concrete issues from the fields of imitation learning, programming
by demonstration, human behavior understanding, the learning of representation,
structure learning, language acquisition, and multimodality connects with this work.
That chapter identifies more precisely three central issues studied in this thesis: “How
can the intuition about simple and complex be made explicit and implemented on a
robot or an artificial cognitive system?”, “How can primitive elements emerge or be
discovered through interaction of the agent with its physical and social environment?”,
and “What mechanisms can overcome the intrinsic ambiguity and indeterminacy
that is characteristic of many approaches regarding the learning and emergence of
these primitive elements?”
In chapter 2, background on the techniques and algorithms used in this work is
provided. It first introduces in details the family of nonnegative matrix factorization
algorithms as well as related mathematical theories, but also other affiliated
algorithms. Then an introduction to the domain of inverse reinforcement learning
and inverse feedback learning is provided, on which new algorithms are grounded in
chapter 4.
Chapter 3 introduces contributions of this thesis to the field of motion primitives in
more detail (Mangin and Oudeyer, 2012a). It explains why it is important to take
into account the simultaneous combination of motion primitives, and provides an
algorithm and a dataset to illustrate these ideas. Finally it discusses the evaluation6 A DEVELOPMENTAL ROBOTICS PERSPECTIVE
of that algorithm with respect to a linguistic weak supervision.
Chapter 4 explores similar questions in the space of intentions that often underly
actions: following inverse optimal control and inverse reinforcement learning, demonstrations
of actions can be modelled by a demonstrator’s intention, that takes the form
of an objective function, also called task. Chapter 4 derives new algorithms (one of
which was presented in Mangin and Oudeyer, 2012b) to decompose a demonstrator’s
behavior in the task space instead of in the action space.
Chapter 5 reviews methods used to discover primitive acoustic elements that can
form basis for word representations. Two approaches are presented, one from Mangin
et al. (2010) based on a hierarchical clustering algorithm, and an other one from ten
Bosch et al. (2008), re-used in the following.
Finally chapter 6 brings together the work from chapters 3 and 5 to provide a
multimodal learning algorithm (first presented in Mangin and Oudeyer, 2013) that
models language grounding and the acquisition of abstract semantic concepts. We
explain how that algorithm can model the simultaneous learning of components in
several modalities (two or three in the experiments), and of their semantic relations.
Furthermore, in the case where one modality contains spoken sentences, we demonstrate
that the system focuses more precisely on parts of sentences that bear the
semantics, thus illustrating a form of word acquisition, where that segmentation of
words is more a consequence than a prerequisite of acquiring semantic knowledge.
A discussion of the contributions and perspectives introduced by this thesis is provided
in chapter 7.Chapter 1
Complex and simple, whole
and parts
The main focus of this work is on the learning by a cognitive agent of dictionaries of
basic or primitive elements from various potentially multimodal perceptual signals
such as motion, images, or sound, which includes language, but also action. By
primitive elements we mean, for example, phoneme-like primitive sounds, primitive
dance gestures such as raising an arm, primitive objectives in complex tasks such as
reaching a body configuration, or patterns in multimodal perception that ground
semantic concepts. In the following these elements are denoted as primitive elements.
This notion does not imply that such element are atomic or indivisible, but rather
that they may be combined together to form more complex elements. As an example,
if the elements are vectors and combination means linear combination, these elements
may form a basis in the sense of linear algebra. However, as discussed further, linear
combination is far from the only possible combination.
We claim that the study of primitive elements, together with their combinatorial
properties and the algorithms to learn them, is of great interest for developmental
robotics in two main aspects. First, composite representations of perception and
actions for robots are promising ideas toward overcoming the limitation of many
current robotic platforms to a single task in a single context. Indeed some of these
platforms have an approach equivalent to learning by heart a whole sentence from
many examples, whereas focusing on learning a dictionary of words together with a
grammar would enable generalization to new sentences. We believe that, not only
robots could benefit from this approach by gaining better versatility in their ability
to re-use skills, but composite representations might be more understandable by
humans and ease the process of programming or interacting with robots. A simple
example of this idea is given by Calinon and Billard (2008) who demonstrate how
one can separately teach a robot to pour watter and to hold a glass, before having
the robot merge the two tasks to fill a glass of water1
. Also, building algorithms
that are able to learn such composite elements is an attempt to model aspects of
human perception that features such properties, and eventually also its limitation.
1A video of this experiment can be found on Sylvain Calinon’s home page (http://calinon.ch/
showVideo.php?video=11).
78 CHAPTER 1. COMPLEX AND SIMPLE, WHOLE AND PARTS
For instance Kuhl et al. (1992), Kuhl (2004) explain that during early language
acquisition infants learn classes of sounds that are functionally equivalent, but also
that this process makes them unable to differentiate between sounds from the same
class: not only the brain learns some primitive sounds but these elements later play
a fundamental role in the acoustic perception. In that particular example, the learnt
primitive elements not only feature combinatorial properties in the way they are
later combined into words, but also become, to a certain extent, atomic elements of
perception.
In the remaining of this chapter the relation of this topic with various subjects of
developmental robotic, but also psychology and machine learning, is explained in
more details.
1.1 Understanding and imitation of human behaviors
Imitation has long been identified as a central mechanism for cultural transmission
of skills in animals, primates, and humans, but also for the development of
communication (see Whiten and Ham, 1992, Nadel, 1986, Tomasello, 2008). It is
indeed not only an example of learning from social signal, but also a central aspect of
learning to be social. Back to a robotic perspective, programming by demonstration
refers to the transposition of the mechanism of learning by imitation as observed
in humans to robots. The word programming actually suggests that teaching a
skill to a robot by providing demonstrations to that robot may remove the need
to actually program the robot, which currently requires advanced technical skills.
Another important motivation of such an approach is that tasks are sometimes too
complex to be reasonably described, even using natural language, or correspond
to preferences of a user that are not fully conceptualized. In addition to learning
the whole task from imitation, it is possible to use demonstrations together with a
feedback signal and self-refinement of skills (see for example Kober and Peters, 2009)
as well as self-exploration. Finally, designing systems capable of human behavior
understanding, even without reproducing such behaviors, is a research field that faces
issues very similar to the one presented in this section.
Although children seem to be capable of learning by imitation very easily, the task
turns out to be more complicated on a closer examination. As is often the case, the
difficulties are easily observed once one try to program a robot imitator. The first
important issue faced by the imitator is known as the correspondence problem: how
can the imitator relate the motions on the demonstrator’s body to its own body? The
problem is even made more complicated by the fact that the demonstrator’s body
is not identical to the imitator’s one and might actually be very different. Nehaniv
and Dautenhahn (2000) formalize this issue as the one of “finding a relational
homomorphism between the two bodies”.
The correspondence problem might be overcome by using hard coded mappings
between the demonstrator’s and the imitator’s bodies or even by directly demonstrating
the skill on the imitator body, a techniques called kinesthetic demonstration.
However the question of how this capability emerges in children is a very interesting
one; some models of early imitation have been developed on that question by Nagai1.1. UNDERSTANDING AND IMITATION OF HUMAN BEHAVIORS 9
(2007). Andry et al. (2001) have explained how a homeostastatic mechanism, that
is to say that tries to reduce the error between prediction and observation, can be
sufficient to generate imitation behaviors. Following that idea Boucenna et al. (2010)
showed through a robotic experiment how imitation of facial expressions by a robot
can emerge from a predictor that was learnt while the human was first imitating the
robot. Kaplan and Oudeyer (2007) also provide a model of imitation as emerging
from intrinsic motivations: a progress based model of curiosity can drive a robot
toward imitation as an efficient learning strategy.
The ability of the brain to relate actions of others to its own has been shown to
have a neural manifestation in the existence of mirror neurons. Rizzolati and his
collaborators have indeed discovered neurons in the premotor cortex of monkeys
that fire both when the monkey performs a specific action or observes someone else
performing the same action (Cattaneo and Rizzolatti, 2009). Strong evidence from
neuro-imaging suggests the existence of areas with similar functions in the human
brain. Their discoveries suggest that the ability to recognize an action done by
someone else is related, from a neurone point of view, to the one of producing the
same action.
The correspondence problem is not the only difficulty brought by imitation learning.
Should the exact motions of the demonstrator be reproduced? Or should the imitator
rather try to solve the same task? But what is that task? Should the imitator
try to fit some kind of preference of the demonstrator while achieving the task? Is
every action of the demonstrator relevant to the imitator? Such questions are often
summarized as “What, Who, When, and How to imitate?” Although they seem
naturally answered by children, it is not clear how to make these choices. See also in
fig. 1.1 the strategy triangle from Lopes et al. (2009a) that illustrates some of these
modelling choices.
Follow intrinsic preferences
Imitation Adhere to inferred
“intention”, replicate observed
action and effect.
Emulation Replicate observed
effects.
Non-social behavior
Social behavior
Figure 1.1: The strategy triangle from Lopes et al. (2009a) illustrates the potential
combination of several simple behaviors into an imitation mechanism.
The work we present is mainly related to the question of “What to imitate?”, which,
following Cederborg and Oudeyer (2013), includes the motor ‘gavagai’ problem
that extends Quine’s translation indeterminacy (see section 1.3). A way to clarify
this point is to discriminate different levels of imitation. Byrne and Russon (1998)
introduced the distinction between action-level imitation, which consists in mimicking
every action of the demonstrator (for example following the same arm trajectory),
and program-level imitation, which focuses on reproducing the overall structure of10 CHAPTER 1. COMPLEX AND SIMPLE, WHOLE AND PARTS
the movement (for example following a different trajectory but featuring the same
steps of reaching, grasping, lifting, etc.) Although quite intuitive, the notion of
program-level imitation leaves open the question of the nature of the structure that
the imitator should preserve, a question very similar to the ones introduced in the
following section. Demiris and Hayes (1997) further introduce functional imitation,
also called effect-level imitation by Nehaniv and Dautenhahn (2000), which consists
in producing the same effect than the demonstrator, and abstract imitation, which
denotes imitation of the demonstrator’s internal state (for example the demonstrator
laughing could be imitated by smiling). Lopes et al. (2009a) provide a model of
some of these imitation mechanism, formulated in a Bayesian framework in which
effect-level imitation is named emulation.
It follows from that discussion that the question “What to imitate?” closely relates
to the question of how to decompose an observation into parts, including the choice
of the level of granularity of the decomposition, together with the question of the
nature of that decomposition. Furthermore the relevance of a level of decomposition,
or a certain part in that decomposition, closely relates to focus, saliency, attention,
and mutual attention that are central properties of imitation in humans and animals.
While these two sets of questions might seem related but distinct at first sight, they
actually are entangled: on one side having a good representation of motion is crucial
to distinguish what is relevant within and across motions; on the other side mutual
attention and other social signals are essential to achieving that decomposition and
solving the indeterminacy that comes with it, as detailed in the followings sections.
The work presented in this manuscript provides examples of what can be achieved
by addressing both issues at the same time.
1.2 Structured representations for complex motions
The question of the complexity of movements and skills comes from the observation
of human learners. It also seems to be both an empirical evidence in pedagogy and a
natural way to proceed that learning occurs in a cumulative manner, starting simple
and then growing in complexity. It seems quite easy to have an intuition about what
a simple or a complex movement is: driving a plane looks obviously more complex
than grasping simple toys. However, if one looks at what robots can actually do,
it seems that currently robots are better at driving planes (or helicopters2
) than
at grasping objects. Actually this example is not really fair, but it points out that
actually defining what a complex movement or skill is probably looks easier than it
really is. Indeed, the complexity of a motion or an action is highly subjective to the
agent’s body, experience, culture, etc. Taking another example, why is a newborn
gnu capable of walking within a few minutes3 when human infants need months
to achieve a similar behavior? Is this a proof that the gnu brain is more advanced
regarding the learning of walking, or the expression of an evolutionary trade-off
between the ability to quickly learn one task and the ability to learn a wider variety
of tasks? From an epistemological point of view, research in artificial intelligence
have long focused on solving the problems that looked difficult from a human point
of view, such as playing chess, and considered as more anecdotal problems such as
the ability to acquire mental representations of the world and grasp a chess tower or
2More information and videos can be found at: http://heli.stanford.edu
3As demonstrated by the online video: http://youtube.com/watch?v=zGaD2DH4evs1.2. STRUCTURED REPRESENTATIONS FOR COMPLEX MOTIONS 11
knife (see Brooks, 1991). It seems now that the latter are much more difficult than
the former. In particular we ground our study on the cognitive development starting
from the sensori-motor level of perception: we thus take more interest in the shaping
of that perception than in solving high level problems in a symbolic world.
A fundamental question behind these realities, both for biologists and roboticists, is
to understand how life long learning is possible in a way that enables the efficient
re-use of previously acquired knowledge and skills: answering this question provides
at least one definition of complexity or simplicity of skills from a biological point
of view. One approach, often labelled as cumulative learning, consists in gradually
acquiring a lexicon of elements of increasing complexity, such that new elements can
be obtained as the combination of simpler ones (see Cangelosi et al., 2010, sec. 3–4).
The concepts of motor synergies and motion primitives have been introduced as
a potential implementation of this approach, by both motor control theorists and
roboticists (see Konczak, 2005). Motor primitives represent simple building blocks
that can be composed to form complex motions. For example Mussa-Ivaldi and Bizzi
(2000) interpret a group of experiments on the control system of frogs and rats as
giving strong evidence that the brain features a set of primitive force fields that are
combined linearly into more motor commands. Tresch and Jarc (2009) provide a
more detailed review of that subject.
1 cm 0.5 N
&
A B
+
Figure 1.2: Illustration from Mussa-Ivaldi and Bizzi (2000): A and B are two force
fields measured on a frog while stimulating two distinct spinal sites. & is measured
by separately stimulating both sites and + is obtained by summing A and B: the
result illustrates the combination in the frog’s spine of two primitive force fields.
Although it seems natural to try to decompose complex motions into simpler elements,
one could ask: “What is a complex movement or skill?” There are actually multiple
answers to this question, each of which is of great interest regarding this work.
First, an easy answer to the question is: “A complex motion is a motion composed of
simpler parts.” This actually leaves us with new questions. The first one is naturally:
“What is a simple motion or skill?” Actually, for roboticists, this question is deeply12 CHAPTER 1. COMPLEX AND SIMPLE, WHOLE AND PARTS
related to the way motions and actions are represented. Indeed simplicity, for a
computer, often means efficiency of representation (or compression) whereas, for a
human, a motion is often called natural or simple when it seems simple to produce.
Unfortunately it seems that these definitions sometime refer to very different or
even opposite notions of simplicity. The same difference arises with computers: it is
easy for a computer to perform operations on very big numbers that a human could
not perform. On the other hand a human is for example able to intuitively detect
intersections between a large number of segments, an operation for which a computer
requires complex algorithms. Actually in that last example, the problem described
is not really the same for the human and the computer: while for the human the
segments are represented visually, for the computer they are represented as a list of
pairs of points. Therefore the human representation is much closer to both the nature
of the geometrical property under consideration and to the processing capabilities of
the human visual cortex. From using this analogy for robotics skills or behaviors, it
follows that the first question on defining simplicity of motions can be studied through
the research of motion representation that lead to efficient representation of human
natural motions. Li et al. (2010) have shown that learning such representation from
a set of observations of human motions also leads to good compression capabilities
of natural human motion. Therefore, learning an appropriate representation have
brought together both a computational notion of complexity, related to compression
capabilities, to a more human centric one.
Looking back to the aforementioned easy answer, namely “A complex motion is a
motion composed of simpler parts.”, raises an other question, that is given by looking
at the dual problem: instead of trying to define what a simple and a complex motion
are, we could try to define what relates the simple to the complex motion, that
is to say how primitive motions can be composed or combined into more complex
ones. The study of the different ways of decomposing motions is central to this work
and studied in more details in chapter 3. In many cases there is not uniqueness of
decomposition; we refer to this issue as the indeterminacy of the decomposition. The
indeterminacy of decomposition is analogous to phenomenon such as multistability
in perception (see Blake, 1989, Leopold and Logothetis, 1999, Schwartz et al., 2012b,
and fig. 1.3). Another central question is, knowing what notion of composition is
involved, find means of removing the indeterminacy, that is to say find a relevant
decomposition into simpler elements.
Although the ambiguity of decomposition is faced by learning systems throughout their
development it is not necessarily a prerequisite of that development. Furthermore,
we have seen that complex components of perception and action could be defined as
composed of simpler parts, but this notion of complexity may not fit the order in
which infants acquire knowledge. In order to clarify this point in the following, we
chose a different terminology: we refer to components that are combined into complex
perceptions or actions as primitive or local components. Wrede et al. (2012) contrast
compositional understanding, that describes an agent that is aware of the local
components and their combination into a global perception or action, and teleological
understanding, that accounts for an agent that only features global perception. More
precisely the term teleological refers to a pragmatic emphasis on using the global
knowledge even without refined understanding of its structure.
According to Wrede et al. (2012) the developmental path of infants goes first through
teleological understanding before reaching compositional understanding. This devel-1.3. LANGUAGE ACQUISITION AND MULTIMODAL LEARNING 13
Figure 1.3: Necker’s cube is a classical example of multistability in vision.
opmental path is to contrast to the one stating that compositional understanding
occurs first before any usage of the knowledge. Actually if simple and complex are
defined with respect to the developmental path, each vision leads to an opposite
definition of these notions: according to Wrede et al. (2012) the global stimulus
is simpler, since used before by infants, than the local or primitive stimuli, whose
awareness comes later. Conversely stating that compositional understanding comes
first means that the primitive stimuli are simple and their composition complex.
Because of that antagonism it is important to notice that ‘primitive’ may not mean
simple and to differentiate ‘complex’, meaning ‘composed’, and ‘complex’, meaning
harder to learn.
This thesis studies directly relations between local parts and global perceptions.
With respect to these questions, we embrace the point of view of Wrede et al. (2012),
positing that teleological understanding may comes first. Therefore we generally
do not assume the understanding of the compositional structure of perception to
achieve global understanding. Furthermore we demonstrate that the perception of
components can result from an auto-organisation of global perception: we provide
models of the emergence of local components of perceptions (primitive motions, words)
from the global perception, in contrast to achieving decomposition of perception as a
pre-requisite to learning.
1.3 Language acquisition and multimodal learning
We already mentioned the question of the emergence of phonemes and words as
examples of primitive elements occurring in the speech signal. Chapter 5 presents in
more details technical approaches to the question.
A difficult aspect of the discovery of phonemes and words is the issue of segmentation.
In the fields of speech recognition and acquisition, segmentation refers to the task of
finding word boundaries from an acoustic stream containing spoken language. This14 CHAPTER 1. COMPLEX AND SIMPLE, WHOLE AND PARTS
is a difficult problem: unlike written language, spoken signal does not feature easy
to detect word boundary cues similar to space characters or silences at the end of
sentences (Brent, 1999). An illustrative example of the difficulty and ambiguity of
segmenting written language without spaces is given by Kuhl (2004): the sentence
“theredonateakettleoftenchips” could be segmented into “the red on a tea kettle often
chips” or “there, don ate a kettle of ten chips”. Importantly the previous example
highlights the ambiguous nature of the segmentation problem.
It has indeed been largely discussed whether the segmentation capability is a prerequisite
or a consequence of word recognition, and whether it should play a central
role in the word recognition process. Actually experiments on infants performed
by Saffran et al. (1996), Saffran and Wilson (2003) have shown that young infant
were capable of discovering words from an unknown language after a very short
period of exposition (three minutes in their experiment) to acoustic signal only. More
precisely their experiment demonstrates that children react differently when hearing
sentences containing words they have been exposed to; interestingly this behavior
emerges only from statistics on the acoustic signal. Following this experiment a
large number of computational models of word discovery have been developed that
implement a word segmentation process. A review of early work in that direction
is given by Brent (1999). An interesting experiment from Park and Glass (2008)
proposes a computational approach for an unsupervised setup very close to the
one of Saffran et al. (1996). On the other hand ten Bosch et al. (2008) have also
demonstrated that word recognition can be achieved by an artificial learner without
an explicit implementation of a segmentation process, but instead some form of
symbolic supervision. The work presented in chapter 6 is inspired from the approach
of Bosch and colleagues; however, we relax the symbolic supervision and instead
study the use of multimodality to address the ambiguity issue.
Similar studies have also been conducted about the important question of grammar
acquisition. Gomez and Gerken (1999) and later Saffran and Wilson (2003) have
shown in experiments very similar to the previous one of Saffran et al. (1996), that
children around twelve months that are exposed for a short time to continuous speech
generated from a grammar involving unknown words, react differently at the end of
the initial exposure to utterances that are grammatically correct or not.
The notion of multimodal learning, which is a major topic of this thesis, refers to the
ability of learning from a stream of mixed data coming from various sensory inputs,
with different nature (for example sound, vision, taste). The close relation between
language learning and multimodal learning is a central question of the work presented
in this thesis. One immediate reason of that relation is that language acquisition is a
multimodal problem because the language signal is multimodal. An evidence of that
aspect was given by McGurk and MacDonald (1976) and is referred to as the McGurk
effect: when someone observes lips pronouncing ‘ga’ while he hears ‘ba’, he most of
the time reports to have perceived the sound ‘da’ (see also Schwartz, 2010). Another
major reason for claiming language and multimodal learning are closely related is
the following: considering learning is taking place on top of multimodal perception,
that not only include language signal but also other contextual information, provides
a plausible solution to the ambiguity issues that occurs from language learning. One
important source of ambiguity in language acquisition is related to the process of
associating words to meanings, a process that is also known as symbol grounding
and was introduced by Harnad (1990) (see also Glenberg and Kaschak, 2002). Many1.3. LANGUAGE ACQUISITION AND MULTIMODAL LEARNING 15
unsupervised approaches introduced above only model the discovery of acoustic
words, without relating these words to any kind of meaning, and relying exclusively
on acoustic properties of the signal for their discovery. On the other hand the work
presented by ten Bosch et al. (2008) focuses on the discovery of relations between
the acoustic signal and a symbolic contextual information. The discovery of word is
then shown to be a side effect of the learning of these correlations. In chapter 6 this
idea is taken further and shown to extend to a multimodal signal that do not contain
any predefined symbol. Similar ideas, but with some kind of symbolic information,
where also featured in several previous works (Roy and Pentland, 2002, Yu and
Ballard, 2004, Massera et al., 2010, Driesen et al., 2010, Saenko and Darrell, 2007,
BenAbdallah et al., 2010, Ngiam et al., 2011).
Symbol grounding is however not an easy problem but rather an ambiguous one. An
important aspect of such ambiguity is the indeterminacy of reference introduced by
Quine (1960), which is often illustrated by the ‘gavagai’ thought experiment. Quine
presents the situation of a linguist who studies an unknown language and observes a
speaker pointing toward a rabbit while saying ‘gavagai’. In that situation the linguist
cannot discriminate between several possible meanings of the word ‘gavagai’: it could
actually mean ‘rabbit’ as well as ‘undetached rabbit parts’, ‘animal’, ‘food’, or even
‘an object out of my reach’. Interestingly very similar issues occur in other modalities;
one of them is referred as motor ‘gavagai’ problem in the case of imitation learning
(see section 1.1 as well as Cederborg and Oudeyer, 2013).
Finally, language is strongly related to action. The actual production of spoken
language through the articulatory system is an immediate example of this relation.
Indeed a spoken utterance may be seen either on the side of the produced acoustic
stream, or on the side of the muscle commands that yielded that acoustic stream.
The role of each one of these aspects of sound in its perception is still an actively
discussed subject (for more details please refer to Schwartz et al., 2012a). Either way
this duality constitutes another important aspect of language multimodality.
Another important facet of the relations between language and action comes with
the notion of grammar of action. While similarities between linguistic grammatical
constructs and the structure of many common actions is quite straightforward (in
the sense that it is perceived without effort), it is less clear to know if this similarity
is coincidental or whether we perceive action this way because of our exposure to
language, or if language has evolved on top of our perception of action grammar.
The latter opinion is actually the subject of a whole theory about language origin
called the syntactic motor system introduced by Roy and Arbib (2005).
The talking heads experiment (Steels, 1999, Steels and Kaplan, 2002) has been
introduced by Steels and colleagues to study the emergence of language inside a
community of robots as a model of the emergence of language in human communities.
Each robot possess its own set of visual concepts and its own lexicon of associations
between these concepts and initially arbitrary words. The experiment is based on
an interaction frame between two robots called guessing game. During the game
the pair of robots is looking at a visual scene that consists in geometric shapes on
a magnetic board. The game follows several stages: to start, the first robot, called
‘speaker’, chooses a part of the visual scene that is shared with the second robot; then
the speaker choses a topic among the objects in that region4 and vocalizes a verbal
description of that object; after perceiving the object description, the hearer robot
4
In practice, in many experiments, the topic is actually chosen randomly.16 CHAPTER 1. COMPLEX AND SIMPLE, WHOLE AND PARTS
guesses the described object (communicating its guess with a mechanism equivalent
to pointing) and the speaker provides positive or negative feedback on the interaction,
depending on whether it was successful or not. The experiment demonstrates that
the simple interactions, combined with rotations in the role the robots play in the
game, as well as in the pairs of interacting robots, lead to the emergence of a shared
language at the scale of the robot community. Steels and colleagues define the
semiotic square (see fig. 1.4) that illustrates the indirect nature of the communication:
both agents in the guessing game have to go through the lexicon and ontological
levels to bind the vocalization to its meaning (the referent object). This aspect is
closely related to the grounding problem mentioned previously; it emphasizes the
distinction between the sign used to communicate, its meaning for one agent, and the
grounding of that meaning into perception. Importantly neither the signs, nor the
meaning, nor the perception is exactly shared between the two agents: each of them
has its own instances of signs, meanings, and perception. Throughout the interaction,
the coherence between the signs, meanings, and perceptions of the agents increases.
image topic
meaning utterance
perceive
conceptualize
verbalize
referent image
utterance meaning
act
apply
interpret
Speaker Hearer
Figure 1.4: Illustration of the semiotic square as presented by Steels (1999). The left
part illustrates the generation by the speaker of an utterance describing the topic,
and the left part to the interpretation of the utterance, as perceived by the hearer,
into an hypothesis about the referent.
In this thesis we provide implementations of language learning experiments that
do not assume direct access of the learner concepts as symbols, that is to say that
do not shortcut the semiotic square (see chapter 6). The experimental frame we
study for the language experiments is very close to the one of the talking heads.
Therefore, although the questions studied in this thesis are mainly agent-centric, the
implementations we described can be thought as replacement of the agent model in
the talking heads experiment. However, a limitation has to be added to that claim,
which is that we do not address the question of language production.
1.4 Important questions
In this chapter many subjects amongst those targeted by developmental robotics were
introduced in which primitive elements play an important role for action, perception,
and their acquisition and development. Such primitive elements might be phonemes,
words, elementary motions, primitive objectives in tasks, objects or parts of objects
in visual scenes, or multimodal elements combining several of these. In this thesis we
explore this notion of primitive elements and various aspects of it. This study and
its presentation is organized along specific axes that are listed below.1.4. IMPORTANT QUESTIONS 17
How can the intuition about simple and complex be made explicit and
implemented on a robot or artificial system? We have seen that the notions
of simple and complex, although being very intuitive, are not so easily formalized and
that some perspectives can lead to definitions that are even opposite to their intuitive
counterpart. We have discussed that one approach is to define the complex as the
combination of several simpler parts. This shifts the question of defining simple
and complex to the nature of the algebraic properties of the simple or primitive
elements. We introduced several ways of combining primitive elements into complex
ones. Given one of these, the question of the implementation remains: how can the
low-level representation of motion or sound include sufficient algebraic properties
so that real complex sounds are well represented as combinations of simpler ones,
under these properties? In other words, the question is to find representations of the
perception and associated algorithms that are good substrates to the emergence of
behaviors, regarding the simple to complex paradigm, that match the observation of
children behaviors.
How can primitive elements emerge or be discovered through interaction
of the agent with its physical and social environment? The importance of
this question for both the understanding of children development and the conception
of robots with similar capabilities is quite straightforward. However the diversity
in nature in physical and social interactions that are essential to this emergence
suggests a large number of candidate principles that could explain it. We study this
question with a focus on the approach stating that the compositional understanding
occurs after global representation of stimuli and actions.
What mechanisms can overcome the intrinsic ambiguity and indeterminacy
that is characteristic of many approaches regarding the learning and
emergence of these primitive elements? Many of the questions regarding the
decomposition of perception into meaningful parts are actually very ambiguous. We
have introduced several examples of such ambiguity as for example the decomposition
of sentences into words or the relation between a word and its meaning. Communication
with humans requires that these ambiguities are resolved; furthermore the
mechanisms used by humans to resolve similar ambiguous issues seems to be central
in their development. Therefore gaining insights on these mechanisms is expected to
provide a better understanding of the associated cognitive processes.18 CHAPTER 1. COMPLEX AND SIMPLE, WHOLE AND PARTSChapter 2
Technical background
As a preliminary to the presentation of experiments in direct relation to the subject
of this thesis, we present separately in this chapter a set of technical details, in
order not to burden the main presentation. Although the theories and algorithms
presented in this chapter are important for a deep understanding and reproduction
of the experiments, they are not essential for a high level understanding of these
experiments.
2.1 Nonnegative matrix factorization
Experiments presented in chapters 3, 5 and 6 are based on the nonnegative matrix
factorization algorithm. Although slightly different versions of this algorithm are
used in various experiments, we give here a unified presentation of these algorithms.
2.1.1 Problem description
Non-negative Matrix Factorization (NMF, Paatero and Tapper, 1994, Lee and Seung,
1999) is a well-known machine learning algorithm. Given a data matrix V ∈ R
F ×N
which columns are examples, with non-negative coefficients, it approximates it as the
product:
V ≃ W · H.
W ∈ R
F ×K and H ∈ R
K×N also are non-negative. When the inner dimension K of
the product is smaller than original dimension M and number of examples N, this
achieves data compression by capturing structure in the matrix W.
Furthermore, with previous notations, the reconstructed matrix, W · H, is of rank at
most K, which makes this process a low rank approximation.
This is a form of dictionary learning in the case of non-negative data, where the
columns of W are called atoms. The non-negativity constraint fits well in the case of
frequency-like coefficients in the data matrix, which happens when histograms are
used as data representation.
1920 CHAPTER 2. TECHNICAL BACKGROUND
Singh and Gordon (2008) presents a broad range of matrix factorization and clustering
algorithms in a unified frame that consists in solving a optimization problem.
arg min
(W,H)∈C
D(V, f(W · H)) + R(W, H) (2.1)
The following modeling components are identified in Singh and Gordon (2008):
• constraints on W and H represented as set C,
• measure of loss D, often a generalized Bregman divergence,
• transformation f,
• regularization R.
The basic NMF algorithms frame in eq. (2.1) with R = 0, f equals to identity
and only constraining W and H to have non-negative coefficients, that is to say
C = R
M×K
+ × R
K×N
+ .
Problem ambiguity
It is important to notice at that point that the problem addressed by non-negative
matrix factorization does not have an unique solution. For example, for any invertible
matrix M ∈ SLk, W′ = W · M and H′ = M · H yield the same product as W and
H: W · H = W′
· H′
.
Some ambiguity in the solution of NMF problem exists for any factorization and is
treated in this section. However even other sources of ambiguity can arise, depending
on the generative model of the data. A geometrical model and an analysis of these
questions are provided in Appendix A.2.
As pointed out in previous paragraph, any non-singular matrix M can transform the
terms of the factorization without changing the result: W · H = (W · M)(M−1
· H).
In addition if both M and M−1 are non-negative, then the new factors are still
non-negative.
It is easy to show that the converse is true: if a matrix M is such that, for any W
and H, W′ = W · M and H′ = M · H are non-negative and yield the same product
as W and H: W · H = W′
· H′
, then M must be non-singular and both M and M−1
must be non-negative.
Furthermore, the set of invertible non-negative matrices with non-negative inverse is
exactly the set of monomial matrices, that is to say matrices that are the product of
a diagonal matrix with positive coefficients and a permutation matrix (Plemmons
and Cline, 1972).
Thus the only transformations that leave unchanged any non-negative factorization
are the compositions of a scaling of columns and a permutation of columns.
In order to compare two non-negative factorizations of the same non-negative matrix,
it is useful to be able to normalize or compare such factorizations in a robust way
regarding these transformations.2.1. NONNEGATIVE MATRIX FACTORIZATION 21
Dealing with scaling The easiest way to remove ambiguity due to scaling indeterminacy
is to normalize the columns of W or H, for some norm or metric.
Dealing with permutations At least two approaches can be used to get rid of
the permutation invariance of the factorization.
• A first approach is to use a total order on the columns to W or H to sort them
increasingly. This yields a canonical form for the factorization. Any total order
can be used. However this method might not be robust to noise (for example,
using lexical order on coefficients of columns, a small perturbation on the first
coefficient would change the ordering regardless the other coefficients).
• For the purpose of comparison between factorizations, it might be useful to
define a distance between two such factorizations. For example from a measure
of distance d between columns of W one could define the distance:
D(A, B) = arg min
σ∈Sn
i
d(Ai
, Bσ(i))
Computing such a distance would be done in O(K!) by a naive approach,
however this problem is equivalent to finding a coupling of minimum weight
in a bipartite graph, which can be solved by Kuhn-Munkres algorithm1
(a.k.a.
Hungarian method) in O(K3
).
Loss
The factorization of V as W · H is obtained through an optimization process, in
which distance between data matrix V and reconstructed matrix W · H is minimized.
We call cost function the function L(V, W · H) that we want to minimize.
The first descriptions of NMF algorithms have been using both Frobenius norm and
generalized Kullback-Leibler divergence on matrices.
Most common algorithms however extend well to the broader class of generalized β-
divergence, which are separable (i.e. expressed as a sum over functions on coefficients)
defined as follows:
Dβ(V |Y ) =
F
f=1
N
n=1
dβ(Vfn|Yfn) (2.2)
where dβ(x, y) =
x
y − log x
y − 1 : β = 0
x log x
y − x + y : β = 1
1
β(β−1)
x
β + (β − 1)y
β − βxyβ−1
: β ∈ R\{0, 1}
(2.3)
Cases where β equals 2, 1 and 0 corresponds to Frobenius norm, I divergence and
Itakura-Saito divergence.
1http://en.wikipedia.org/wiki/Hungarian_algorithm22 CHAPTER 2. TECHNICAL BACKGROUND
The Frobenius norm is one of the most common norms on matrices. The
Frobenius norm of a matrix A, denoted by ∥A∥F is defined as the square root of the
sum of the square norms of columns of A.
∥A∥F =
m
i=1
n
j=1
ai,j
2
(2.4)
= Tr(A
T A) (2.5)
The Kullback-Leibler divergence is an information theoretic measure of the
similarity between two probability distributions. It is denoted by DKL (p∥q) and
defined, for to probability distributions p and q as:
DKL (p∥q) =
x∈X
p(x) ln
p(x)
q(x)
(2.6)
= H(p, q) − H(p) (2.7)
where H(p) and H(p, q) are the Shannon entropy of p and the cross entropy of p and
q.
For nonnegative matrices A and B a variant called generalized Kullback-Leibler
divergence or I-divergence is often considered. It is defined as follows:
DI (A∥B) =
i,j
Ai,j ln
Ai,j
Bi,j
− Ai,j + Bi,j
. (2.8)
2.1.2 Basic algorithms
Many algorithms have been designed to solve the NMF problem. While gradient
descent can be used to find a local minimum of the joint problem, it is often more
efficient (Lin, 2007) to use an EM-like approach based on alternating steps solving
the problem in W and H. For the latter approach, the most common approached
are: alternate gradient descents and multiplicative algorithms.
Both families share a common optimization approach: alternate optimization on
matrices W and H. The following method was initially developed to take advantage
of the convex nature of L(V, W · H) both in W and H in cases such as Frobenius
norm or generalized Kullback-Leibler divergence (for β-divergences this happens for
β ∈ [1, 2]) to perform alternate optimization on W and H. However, since even these
cost function are not jointly convex in W and H, these methods can only converge
towards local minimums.
Alternate projected gradient descent for β-divergence
The alternate projected gradient descent algorithms are based on alternating updates
of the form presented in eqs. (2.9) and (2.10), where η is an update parameter. P is
the projection on the first orthant, which means it replaces all negative entries in the
matrices by 0.2.1. NONNEGATIVE MATRIX FACTORIZATION 23
H ←− P
H − η
∂Dβ(V |W H)
∂H
(2.9)
W ←− P
W − η
∂Dβ(V |W H)
∂W
(2.10)
These gradients are easily shown to be given by the following formula where the
same notation is used for the real function ∂dβ(x,y)
∂y and its point-wise extension to
matrices.
∂Dβ(V |W H)
∂H = WT
·
∂dβ
∂y (V, W H) (2.11)
∂Dβ(V |W H)
∂W =
∂dβ
∂y (V, W H) · HT
(2.12)
Actually these formulas are not restrictive to the case of β-divergences but to all
separable cost function. In the particular case of the family of β-divergence, the
element-wise derivatives to use are given in eq. (2.13).
∂dβ
∂y (x, y) =
1
y −
x
y2 : β = 0
1 −
x
y
: β = 1
y
β−1 − xyβ−2
: β ∈ R\{0, 1}
(2.13)
In order to get an efficient gradient descent algorithm it is necessary to use a step
size adaptation method.
Multiplicative updates
This section is mainly based on presentation by F´evotte and Idier (2011), please refer
to this article for a more in-depth description of those algorithms.
Auxiliary function In this section we consider the case of separable cost functions
in the particular example of β-divergences, for which the optimization with respect
to H can be made separately on each columns of H. The same result is true for
columns of W. Furthermore since D(X|Y ) = D(XT
|Y
T
) each result on H for the
optimization problem can be literally transposed to W by replacing V by V
T and
thus H by WT and W by HT
.
Targeting alternate optimization process we consider the problem, arg min
h∈RK, h≥0
C(h)
with C(h) = Dβ(x|W h). To solve it we introduce auxiliary functions as follows.
Definition (Auxiliary function). G : R
K
+ × R
K
+ −→ R+ is said to be an auxiliary
function of cost C if and only if
(i) ∀h ∈ R
K
+ , C(h) = G(h, h)24 CHAPTER 2. TECHNICAL BACKGROUND
(ii) ∀(h, h˜) ∈ (R
k
+)
2
, C(h) ≤ G(h, h˜)
The idea behind auxiliary functions is that if a sequence of values (ht) is such that
G(ht+1, ht) ≤ G(ht, ht) then
C(ht+1) ≤ G(ht+1, ht) ≤ G(ht, ht) = C(ht)
and thus the sequence (C(ht)) is non-increasing.
To construct such an auxiliary function we use a convex-concave-constant decomposition
of dβ, that is to say functions ˘d,
“d and ¯d which are respectively convex, concave
and constant with respect to their second variable, all differentiable with respect to
the second variable and such that
dβ(x, y) = ˘d(x, y) + “d(x, y) + ¯d(x).
In the following we also assume that these functions are differentiable with respect
to y. Such a decomposition is given in Table 2.1
Theorem 1. Let h, h ˜ ∈ R
K
+ , and v˜ = W h, the function defined by eq. (2.14) is an
auxiliary function for the β-divergence loss,
G(h|h˜) =
f
k
wfkh˜
k
v˜f
˘d
vf |v˜f
hk
h˜
k
+ “d
′
(vf |v˜f )
k
wfk(hk − h˜
k) + “d(vf |v˜f ) + ¯d(vf )
(2.14)
d˘(x|y) d˘′
(x|y) d“(x|y) d“′
(x|y) d¯(x|y)
β < 1, β ̸= 0 −1
β−1
xyβ−1 −xyβ−2 1
β
y
β
y
β−1 1
β(β−1)x
β
β = 0 xy−1 −xy−2
log(y) y
−1 x(log(x) − 1)
1 ≤ β ≤ 2 dβ(x|y) d
′
β(x|y) 0 0 0
β ≥ 2
1
β
y
β
y
β−1 −1
β−1
xyβ−1 −xyβ−2 1
β(β−1)x
β
Table 2.1: Auxiliary function for the β-divergence
Maximization-Minimization In this paragraph an update rule for h will be
chosen such that the next value hMM solves:
h
MM = arg min
h
G(h, h˜).
This is obtained from current value h˜ by equation (2.15). The values γ(β) are given
in Table 2.2.
h
MM
k = h˜
k
f
wfkvf v˜
β−2
f
f
wfkv˜
β−1
f
γ(β)
(2.15)2.1. NONNEGATIVE MATRIX FACTORIZATION 25
β < 1 1 ≤ β ≤ 2 β > 2
γ(β)
1
2−β
1
1
β−1
Table 2.2: Values γ(β)
The update rule can actually be re-written in terms of matrix operations, in which it
takes a relatively simple form. We denotes the Hadamard (i.e. entry-wise) product by
⊗ and the entry-wise division with fractions. In this section matrix power is meant
entry wise.
H ← H ⊗
WT
V ⊗ (W H)
β−2
WT (W H)
β−1 W ← W ⊗
V ⊗ (W H)
β−2
HT
(W H)
β−1HT
(2.16)
Heuristics algorithm Another kind of update, that guarantees G(ht+1, ht) ≤
G(ht, ht) at least for β in [0, 1] is given by equation (2.17).
h
MM
k = h˜
k
f
wfkvf v˜
β−2
f
f
wfkv˜
β−1
f
(2.17)
Frobenius norm and I-divergence In Frobenius and generalized KullbackLeibler
cases, γ(β) = 1 thus there is no difference between the two variants of
the algorithm. More precisely the associated multiplicative updates were introduced
by Lee and Seung (2001). 1 denotes a matrix which coefficients are all ones.
H ← H ⊗
WT V
WT W H
W ← W ⊗
V HT
W HHT
Frobenius update (2.18)
H ← H ⊗
WT
V
W H
WT · 1
W ← W ⊗
V
W H
HT
1 · HT
I-divergence update (2.19)
2.1.3 Variants and improvements
Sparse NMF
Sparseness of the components or the coefficients can be enforced for NMF. However
several approaches may be used to achieve this goal.
Projected gradient Hoyer (2004) proposes a measure of sparseness of a nonnegative
vector as follows:
sparseness(x) =
√
n∥x∥2 − ∥x∥1
∥x∥2(
√
n − 1) (2.20)26 CHAPTER 2. TECHNICAL BACKGROUND
It is defined for any x which is nonzero and takes values in [0, 1].
Hoyer then proposes to solve the NMF problem with the additional constraint that
any column of W and row of H has a fixed sparseness. Hoyer also provides an
algorithm to project to the set satisfying the constraint.
Regularization F´evotte and Idier (2011) present propose algorithms to solve the
NMF problem extended with a sparsity inducing regularization of the dictionary or
coefficients based on the l1 norm.
Semi-NMF and convex-NMF
See the paper of Ding et al. (2010) for semi and convex algorithms and clustering
interpretation; see work from F´evotte and Idier (2011) for adaptation of β-NMF
algorithm.
2.2 Inverse reinforcement learning
This section provides a general presentation of the fields of reinforcement learning
and inverse reinforcement learning whose concepts are supporting the experiments
from chapter 4. Further details are also provided on specific inverse reinforcement
learning algorithms on which the algorithm presented in section 4.3 is based.
2.2.1 Background: reinforcement learning
This paragraph provides a quick introduction of the concepts grounding reinforcement
learning. A more extensive introduction to reinforcement learning is given by Sutton
and Barto (1998).
“ Reinforcement learning is a computational approach to understanding and
automating goal-directed learning and decision-making. It is distinguished from
other computational approaches by its emphasis on learning by the individual
from direct interaction with its environment, without relying on exemplary
supervision or complete models of the environment. ”
Richard Sutton and Andrew Barto, Reinforcement learning (1998)
One important motivation behind reinforcement learning is to provide a model for
trial and error learning, as originally described by Thorndike (1911). The technical
background for such models was developed on top of previous work on dynamic
programming (Bellman, 1957a) and Markov decision process (Bellman, 1957b, Howard,
1960).
The agent and the world
The reinforcement learning model introduces an important, and sometime counterintuitive,
separation between an agent and its environment. It also assumes that2.2. INVERSE REINFORCEMENT LEARNING 27
the agent is involved in a discrete sequence of interactions with the environment.
More precisely, at discrete time steps t, the agent measures the state xt ∈ X of the
environment and performs an action at ∈ A. The action triggers a change in the
state of the environment and the emission of a reward rt from the environment to
the agent (see fig. 2.1). The distinction between the agent and the environment
can be misleading for it does not in general correspond to the physical separation
between the body of the agent and its living environment. Instead anything that is
not in direct control of the agent’s decisions, such as the reward, is considered part
of the environment. This differs from a more intuitive model of an animal in which
the reward may be a hormonal response to having eaten, thus being emitted by the
animal’s body and depending on a state of its body. Similarly, an agent may be
modifying its mental state which would thus be modelled as part of the environment.
Agent Environment
action
reward
observed state
Figure 2.1: The agent and the environment (reproduced from Sutton and Barto,
1998, p. 52).
The Markov property
Classical reinforcement learning assumes that the transitions between states of the
environment are Markovian. That is to say the probability distribution over next
state xt+1, given all previous states and actions, is such that, for all t ≥ 0:
P(xt+1|x0, . . . , xt, a0, . . . , at) = P(xt+1|xt, at).
That probability distribution is often denoted as the transition probability. Similarly,
the reward received by the agent at time t is assumed to only depend of at and xt.
The policy
The policy is the model of the agent behavior; it may be understood as an equivalent
of the stimulus-response rule. The policy is a distribution over possible actions taken
by the agent at time t, given the history of the environment state. The policy is
called deterministic when the distribution degenerates to a function, that is to say
when only one action has nonzero probability.
A policy is said to be stationary when it only depends on current state of the
environment. Under the Markovian hypothesis, since the reward only depends on the
current state and the action taken, stationary policies can achieve the same expected
rewards as general policies. Therefore, we can safely restrict to the class of stationary
policies.28 CHAPTER 2. TECHNICAL BACKGROUND
Markovian decision process
A Markovian decision process (MDP) is defined as a state space X , an action space
A, a transition probability P, a reward function r, and a return. The return defines
a notion of accumulated reward. For example one could consider the average return
over a period T, defined as:
Raverage =
1
T
T
−1
t=0
rt,
or the discounted return over an infinite horizon, with discount factor γ < 1, defined
as:
Rdiscounted =
t≥0
γ
t
rt.
A MDP is the problem of determining policies that maximize the expected return.
Both definition of return lead to similar results; in the following we focus on the
discounted return. The MDP is then denoted by a quintuple (X , A, γ, P, r). P is a
mapping from state actions pairs to probability distributions over next states. We
denote by P(x
′
|x, a) the probability to transition to state x
′
from state x, knowing
that action a was taken. Finally, r : X × A → R is the reward function.
Dynamic programming
For a given MDP and a given stationary policy π, that is a mapping from states
to probability densities over actions, one can define the value function V
π and the
action value function Qπ2
:
V
π
(x) = E
∞
t=0
γ
t
r(Xt, At)
X0 = x
(2.21)
Q
π
(x, a) = E
∞
t=0
γ
t
r(Xt, At)
X0 = x, A0 = a
. (2.22)
The expectations are taken over all possible trajectories (Xt, At)
t≥0
. Functions
verifying the following equations are called optimal value function and optimal action
value function:
V
∗
(x) = sup
π
V
π
(x), ∀x ∈ X (2.23)
Q
∗
(x, a) = sup
π
Q
π
(x, a), ∀(x, a) ∈ X × A. (2.24)
A policy that is optimal (w.r.t. to eq. (2.23) or eq. (2.24)) over all states is
said to be optimal. Greedy policies over Q∗
, that is to say policies such that
π(arg maxa Q∗
(x, a)|x) = 1, are known to be optimal. They are in particular deterministic
policies, which state that the existence of that maximum implies the
existence of optimal deterministic policies.
2For infinite state or action space some additional hypothesis is required for these functions to
be finite, such as the boundedness of the reward function.2.2. INVERSE REINFORCEMENT LEARNING 29
Equations (2.21) and (2.22) are equivalent to the following fixed point equations,
also denoted as Bellman equations.
V
π
(x) =
a∈A
π(x, a)
r(x, a) + γ
y∈X
P(y|x, a)V
π
(y)
(2.25)
Q
π
(x, a) = r(x, a) + γ
y∈X
P(y|x, a)
b∈A
π(y, b)Q
π
(x, b) (2.26)
Similarly, eqs. (2.23) and (2.24) are equivalent to the following fixed point equations,
denoted as Bellman optimality equations.
V
∗
(x) = max
a∈A
r(x, a) + γ
y∈X
P(y|x, a)V
∗
(y)
(2.27)
Q
∗
(x, a) = r(x, a) + γ
y∈X
P(y|x, a) max
b∈A
Q
∗
(x, b) (2.28)
The right members of these equations defines the Bellman operators and Bellman
optimality operators. The contracting property of these operators is sufficient to
prove the existence and uniqueness of solution of these equations from the Banach
fixed point theorem3
, in the case of discrete state and action spaces. Interestingly
this property provides a Picard iteration algorithm to compute value and optimal
value functions, named value iteration, which grounds dynamic programming.
2.2.2 What is inverse reinforcement learning?
In the formulation of reinforcement learning, the reward function is assumed to
be fixed and unknown but observed by the agent. Therefore, in order to build an
artificial agent, one must first fully specify that reward function, which turns out
to be both a very sensitive and difficult task. That difficulty yields limitations to
the accuracy of reinforcement learning models of living agents. Because the manual
specification of the reward function results in this limitation, the agent model could
instead be more accurately fitted to reality by learning the reward function, from
observation of the behavior it produces. That statement lead Russell (1998) to
formulate the problem of inverse reinforcement learning as follows.
“ It seems clear, however, that in examining animal and human behaviour we
must consider the reward function as an unknown to be ascertained. [ . . . ]
Therefore, to model natural learning using reinforcement learning ideas, we must
first solve the following computational task, which we call inverse reinforcement
learning:
Given 1. measurements of an agent’s behaviour over time, in a variety of
circumstances, 2. measurements of the sensory inputs to that agent; 3. a model
of the physical environment (including the agent’s body). Determine the reward
function that the agent is optimizing. ”
Russell (1998)
3http://en.wikipedia.org/wiki/Banach_fixed_point_theorem30 CHAPTER 2. TECHNICAL BACKGROUND
Another application of inverse reinforcement learning is the field of robot programming
by demonstration. Instead of having a robot that copies the actions of a demonstrator,
the robot could infer the intention of the demonstrator and then attempt to solve
the same task. Indeed, copying the same action in a different context is often not
effective, whereas understanding the intention enables better generalization. In that
perspective, a reward function models the intention of the agent and is supposed
to shape its behaviors through reinforcement learning. In the following we adopt a
formulation of the problem in terms of a demonstrator or expert, whom an apprentice
learns to imitate.
Inverse reinforcement learning assumes the observation of actions from an agent. This
agent is modelled as optimizing an unknown reward function and an apprentice tries
to guess the reward function that the agent is optimizing. We make the simplifying
assumption that the demonstrator and the apprentice share a common representation
of the world, as a set X of states, a set A of actions, and transition probabilities
P. We represent the demonstrator’s intention in the form of a reward function r,
which defines a Markov decision process (MDP), that is a quintuple (X , A, γ, P, r)
(see section 2.2.1). Finally, the objective of inverse reinforcement learning is to infer
the reward function r, given a set of observations that are couples (xt, at) of states
xt ∈ X and action at ∈ A from the demonstrator. The demonstrator or expert is for
that assumed to act optimally or nearly optimally. Strictly speaking, the optimality
of the demonstrator means:
at ∈ arg max
a∈A
Q
∗
r
(xt, a).
It is important to notice here, that, in opposition to section 2.2.1, we have written
the dependency of the MDP, and in particular the value functions, in the reward.
Limitations of the reward estimation problem
Unfortunately, the problem we have just formulated is ill-posed. First of all the null
reward is always a solution since it leads to constant null functions and therefore
arg max
a∈A
Q
∗
r
(x, a) = A
for all x ∈ X . Similarly any constant reward function yield constant value functions,
which makes any policy optimal.
Also, as explained by Ng et al. (1999), for given state and action spaces, any potentialbased
function (see the definition below) can be added to a reward function without
changing the set of optimal policies. Their result also comes with a weaker converse:
no other function can be added to any MDP without modifying the set of optimal
policies. Finally, the sufficient condition also guarantees stability of the set of
near-optimal policies.
Definition. Let F be a real-valued function on X ×A×X . It is said to be potentialbaised
if there exists a real-valued function φ : X → R such that for all x ∈ X ,
a ∈ A,
F(x, a, x′
) = γφ(x
′
) − φ(x)
Theorem 2. (Ng et al., 1999)2.2. INVERSE REINFORCEMENT LEARNING 31
• Sufficiency. If F is a potential-based function than any optimal policy of
M = (X , A, P, γ, R) is an optimal policy of M′ = (X , A, P, γ, R + F) (and
vice-versa).
• Necessity. If F is not a potential based function, then their exist (proper)
transition functions P and a reward function R : X × A −→ R such that no
optimal policy in M′ = (X , A, P, γ, R + F) is optimal in M = (X , A, P, γ, R).
4
The theorem from Ng et al. (1999) considers a definition of reward functions slightly
extended with respect to the one we use here: the reward is a function of next state in
addition to current state and current action. The notion of potential-based function
as defined above does not make sense without that formulation. However, the same
sufficiency result holds if we define in average potential-based functions, in terms of
expected next state, given an action. That is to say a function F such that their
exists a potential φ for which:
F(x, a) = γ E
x′∼P (·|x,a)
φ(x
′
)
− φ(x).
Such function is not always potential based in the sense of Ng et al. (1999) but the
necessity condition holds.56 Following this comment, in the case of non-deterministic
transition functions (for which some functions are not potential based but potential
based in average), the class of rewards that share the same set of optimal policies
can be expanded.
Finally other context dependant functions may, for a given family of transition
functions, be added to the reward function without changing the set of optimal
policies. Also the previous discussion only covers additions to the reward function but
not others transformations. For example we mentioned that the scalar multiplication
of the reward leaves invariant the set of optimal policies.
Formulations of the reward estimation problem
From the high level formulation of the inverse reinforcement learning problem by
Russell (1998), several more precise formulations have been made in order to bring
the problem to the range of algorithmic formulations.
First of all, Ng and Russell (2000) introduce a characterization of rewards that
make an action optimal. The following formulation uses a matrix representation of
the transition function: for each action a, Pa contains the transition probabilities
between states. Also r is assumed to only depend on the state and be bounded by
rmax; it is represented as a vector of one value for each state. Finally, for simplicity,
the actions are supposed to be re-ordered for each state in such a way that one action
a
∗
is optimal for all states. The symbol ⪰ denotes that each coefficient is greater.
4The theorem as formulated above is not true since a constant value can be added to the reward
function without changing the optimality of policies. Ng et al. (1999) actually mention this fact
in the demonstration of the necessity condition because they need to shift to zero the F function.
However, for this transformation to be made without loss of generality the necessity condition needs
to be slightly relaxed.
5Actually the proof does not change.
6Although this may seem in contradiction with the necessity condition from the theorem, it is
not. Indeed, the in average potential based functions depend on the transition function. Therefore
they do not leave invariant the set of optimal policies for any MDP.32 CHAPTER 2. TECHNICAL BACKGROUND
Theorem 3. (Ng and Russell, 2000) Let a finite state space X , a finite set of actions
A, transition probability matrices
Pa
a∈A, and a discount factor γ ∈ ]0, 1[ be given.
Then the policy π given by π(x) = a
∗
is optimal if and only if, for all a ̸= a
∗
, the
reward r satisfies:
Pa∗ − Pa
I − γPa∗
−1
r ⪰ 0
Ng and Russell (2000) use the previous theorem to derive an optimization problem.
For that they use the heuristic that the solution reward function should, in additional
to make the observed policy optimal, maximize the loss in return induced by diverging
from that policy. This is obtained by maximizing the quantity:
s
min
a̸=a∗
Pa∗ (s) − Pa(s)
I − γPa∗
−1
r
Finally, they also penalize the norm ∥r∥1 of the solution reward and bound its
coefficients. The inverse reinforcement learning problem then takes the form of a
linear programming problem.
maximize
s
min
a̸=a∗
Pa∗ (s) − Pa(s)
I − γPa∗
−1
r − λ∥r∥1
such that
Pa∗ − Pa
I − γPa∗
−1
r ⪰ 0, ∀a ̸= a
∗
∥r∥∞ ≤ rmax
Matching expected features Another interesting formulation of the inverse
reinforcement learning problem is expressed in terms of expected feature vector. In the
case where the reward function is assumed to be linearly parametrized on a feature
vector φ, that is r(x) = θ
T φ(x) for any state s, we define the feature expectation
under policy π as
f(π) = E
(xt)∼π
∞
t=0
γ
tφ(xt)
.
It follows immediately that the expected return for policy π is given as the scalar
product R(π) = θ
T f(π). The feature expectation under expert policy, f(πE) can be
empirically estimated from the demonstrations as ˆfE. Abbeel and Ng (2004) state
that finding a policy π˜ that matches the expert’s feature expectation to a certain
error is sufficient to achieve a return that is close, at most to the same error, to the
expert’s empirical return under the real reward.
Proposition 1. (Abbeel and Ng, 2004) Let π˜ be a policy and ε > 0.
If ∥f(˜π) − ˆfE∥2 ≤ ε then for any parameter ∥θ∥2 ≤ 1 and reward θ
T φ:
∥R(˜π) − R(ˆπE)∥2 ≤ ε
The proposition is actually a trivial consequence from the Cauchy-Schwartz inequality,
which is used as a starting point by Abbeel and Ng (2004) to express the problem
of matching the expert’s expected features. This leads to a new formulation of the
inverse reinforcement learning problem back into an apprenticeship learning problem:
the goal is not any more to recover the real reward function but to find a policy that
behaves as well as the expert’s under the real reward.2.2. INVERSE REINFORCEMENT LEARNING 33
Matching the policy Finally, another approach is to directly target the imitation
of the expert’s policy, but parametrized in the reward. That is to say find a reward
function r such as the optimal or nearly optimal policy πr associated to that reward
function is as close as possible to the expert’s, that is to say solve the following
problem for a given norm ∥ · ∥.
arg min
r
∥πr − πE∥
This approach is followed by Neu and Szepesv´ari (2007) and their algorithm to solve
it is detailed in section 2.2.3.
2.2.3 Algorithms for inverse reinforcement learning
Various algorithms have been developed to solve the various formulations of the
inverse reinforcement learning problem, as introduced in previous section.
Some approaches such as those of Ng and Russell (2000) and Ramachandran and
Amir (2007) directly attack the ill-posed problem of inferring the real reward function.
For that they need to introduce additional constraints on the problem. Ng and Russell
(2000) then use linear programming while Ramachandran and Amir (2007) introduce
a Markov chain Monte-Carlo algorithm.
Other approaches focus on finding policies that achieve as well as the expert’s on
the real, unknown, task. For example, Abbeel and Ng (2004) introduce a quadratic
programming and a projection algorithm to solve that task.
Finally, several algorithms have been developed to match the expert’s policy with
a learnt policy that is parametrized in the reward function. Examples include the
approach from Neu and Szepesv´ari (2007) described below, as well as the one from
Ratliff et al. (2006).
Gradient inverse reinforcement learning
In this section we present the algorithm and results introduced by Neu and Szepesv´ari
(2007). For more details and proofs the reader is invited to refer to the original paper.
Inverse reinforcement learning for apprenticeship learning is based in the assumption
that the expert’s intention is to solve a task, modeled by a reward function. Mimicking
the expert behavior therefore consists in using a policy that is optimal for the same
reward. The hybrid approach from Neu and Szepesv´ari (2007) focuses on learning a
reward such that an associated optimal policy matches the expert’s actions.
In the following we assume that the model of the world, that is composed of states,
actions, and transitions, is fixed and that the discount factor γ is known. However
we represent the intention of a demonstrator (called expert) as acting optimally with
respect to a task that is modelled as a reward function. Since the model of the world
is fixed no distinction is made between a reward function r and the associated MDP,
MDP(r).
We assume that we observe demonstrations ξ from an expert, that are sequences
(xt, at) of states xt ∈ X and action at ∈ A, such that ξ = (xt, at)
t∈[|1,T|]
.34 CHAPTER 2. TECHNICAL BACKGROUND
In this single task setup, the expert provides one or several demonstrations of solving
the same task. The expert actions are modeled by a stationary policy πE. The
objective of apprenticeship learning becomes to find a policy π that minimizes the
cost function from eq. (2.29), in which µ denotes the average state occupation, that
is to say µE(x) = lim
T→∞
Eπ
1
T
T
t=1
δXt=x .
J(π) =
x∈X ,a∈A
µE(x)
π(x|a) − πE(x|a)
2
(2.29)
For an expert demonstration represented by ξ = (xt, at)
t∈[|1,T|]
one estimates J by
eq. (2.30), in which ˆµE,ξ and ˆπE,ξ are empirical estimates of µE and πE from ξ.
Jξ(π) =
x∈X ,a∈A
µˆE,ξ(x)
π(x|a) − πˆE,ξ(x|a)
2
(2.30)
In the following the reward rθ is parametrized by θ ∈ Θ where Θ ∈ R
d and we
denote by Q∗
θ
the optimal action value function of the MDP associated to rθ. In
practice linear features are used for r. Let G be a smooth mapping from action value
functions to policies that returns a close to greedy policy to its argument. Instead
of minimizing Jξ over any subset of policies, Neu and Szepesv´ari (2007) suggest to
constrain π to be of the form πθ = G(Q∗
θ
).
Solving the apprenticeship learning problem is then equivalent to finding θ that
reaches:
min
θ∈Θ
Jξ(πθ) s.t. πθ = G(Q
∗
θ
). (2.31)
In practice, Neu and Szepesv´ari (2007) use Boltzmann policies as choice for the
G function, as given by eq. (2.32) where the parameter β is a nonnegative real
number. This choice ensures that G is infinitely differentiable. Assuming that Q∗
θ
is
differentiable w.r.t. θ its first derivate is given by eq. (2.33).
G(Q)(a|x) = exp
βQ(x, a)
a′∈A
exp
βQ(x, a′)
(2.32)
∂G(Q∗
θ
)(a|x)
∂θk
= G(Q
∗
θ
)(a|x)
∂Q∗
θ
(x, a)
∂θk
−
a′∈A
πθ(a
′
|x)
∂Q∗
θ
(x, a′
)
∂θk
(2.33)
The following proposition from Neu and Szepesv´ari (2007) provides both guarantees
that ∂Q∗
θ
(x, a)
∂θk
is meaningful and a practical way to compute it.
Proposition (Neu and Szepesvari). Assuming that rθ is differentiable w.r.t. θ and
sup(θ,x,a)∈Θ×X×A < ∞, the following statements hold:
1. Q∗
θ
is uniformly Lipschitz-continuous as a function of θ in the sense that there
exist L
′ > 0 such that for any (θ, θ′
) ∈ Θ2
, |Q∗
θ
(x, a) − Q∗
θ
′ (x, a)| ≤ L
′∥θ − θ
′∥2.2. INVERSE REINFORCEMENT LEARNING 35
2. The gradient ∇θQ∗
θ
is defined almost everywhere7 and is a solution of the
following fixed point equation, in which π is a greedy policy on Q∗
θ
:
ϕθ(x, a) = ∇θr(x, a) + γ
y∈X
P(y|x, a)
b∈A
π(b|y)ϕθ(y, b) (2.34)
The previous result thus provides an algorithm, similar to dynamic programming
that yields the derivative of Q∗
θ with respect to θ. It it then easy to combine it
with the differentiates of Jξ with respect to π and G to obtain a gradient descent
algorithm that finds a local minima of the objective.
Neu and Szepesv´ari (2007) furthermore provide a variant of this algorithm following
a natural gradient approach.
7
that is except on a set of measure zero36 CHAPTER 2. TECHNICAL BACKGROUNDChapter 3
Learning a dictionary of
primitive motions
The idea of motion primitive, already introduced above in section 1.2, is both rooted
in biology (see Konczak, 2005, Mussa-Ivaldi and Bizzi, 2000, Tresch and Jarc, 2009)
and perceived as an appealing and efficient paradigm for robot programming (see
Cangelosi et al., 2010, Kruger et al., 2007): being able to encapsulate basic motion
representation and motor skills in a way that enables their combination is expected
to bring combinatorial growth of robot skills in place of the usually observed linear
growth. Indeed if a robot is capable of combine a new skill with all the other skills
it already knows, it actually has not learnt one skill but as many as the potential
combinations it can achieve. That way it scaffolds its knowledge in a way that models
the simple to complex learning trajectories observed in humans. The same principle
applies to the recognition of human motions (Nori and Frezza, 2004a).
However, we have seen in section 1.2 that the concept of motion primitive from
previous paragraph is vague and needs to be further defined. For instance, the
definition of motion primitive could be closely related to the nature of their potential
combinations into more complex motion or skills. In the next section, a closer look
is given to that concept of combination of primitive motions, with an emphasis on
two questions: “What does it mean to combine motion parts?” and “Where do the
primitives come from?”
The question of the nature of the composition is itself connected with issues of
motion or skill representation that make them compatible with such combinations,
but also with the algorithms that might be necessary to achieve the composition.
As for the second question, the origin of motion primitives can vary greatly in the
literature: some techniques involve pre-coded skills or motions, others, learning on
subproblems provided by a caregiver, learning from self-exploration, learning to
decompose a demonstrated motion or skill, etc. Finally the hierarchical nature of
a lexicon of primitives in which high order primitives are defined in terms not of
low levels primitives but intermediate ones, that in turn are defined on lower level
primitives, brings its own set of challenges. However we do not focussed on that
aspect in that work.
An approach to the learning of motion parts is to implement an algorithm that tries
3738 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS
to closely match a decomposition of motions to the high level representation we,
as grown-up humans, have of that motion. However that high level representation
is highly dependant of our perceptual and motor apparatuses, our development
history, our culture, which makes that task highly ambiguous. Therefore in the
work presented in this section and more generally throughout this thesis we do not
build an artificial learner that explicitly constructs a lexicon of motion primitives
each of which represents one abstract gesture and then decompose the global motion
as the combination of these gestures. Rather we build a learner which internal
representation has combinatorial properties that makes it capable of capturing the
compositional aspect of the observed motion. Then, instead of analysing the quality
of that representation by an open-skull approach, we evaluate the learner on a social
task which requires the ability to perceive the combinatorial nature of motions. In this
example the task is to reconstruct a symbolic linguistic representation of the motion,
where the combinations of symbols matches the high level human perception of
motions. That way the agent is not designed to have a purely compositional approach
to learning but rather the compositional representation is expected to emerge in
order to solve the task: which means that the compositional understanding is a
consequence of the teleological understanding (using the terminology of Wrede et al.,
2012, as introduced in section 1.2). Finally that leads to the important distinction
between two aspects of decomposition: the intrinsic compositional properties of the
representation and the high level decomposition that is encoded in the structure of
the social task. The former is expected to act as a substrate for the latter.
Our contribution, presented in this chapter covers three important topics. First we
discuss the nature of combinations of motion primitives that are active simultaneously,
in contrast to the study of sequential motion primitives. Then, the experiment
performed in the following demonstrated how an agent can leverage the compositional
structure of motions to learn primitives that were demonstrated only in an ambiguous
manner, which means the learnt primitives where not demonstrated alone but always
mixed together. Finally this chapter provides an example of language grounding in
the case of a simple symbolic language with a combinatorial structure.
3.1 Combination and discovery of motion primitives
This chapter targets the discovery of motion primitives that can be combined together
into complex motions. In this section we review and discuss the various meanings
of ‘combination’, properties of several approaches to motion representation, and
algorithms that can be used to decompose motions.
3.1.1 What does combination mean?
Sequencing is probably the most common way to combine motion primitives for
robotics. A simple example of sequential combination of motor primitives is: moving
to a door, turning the door knob, pushing the door and moving forward.
Despite looking quite coherent with our high level perception, the previous decomposition
is hiding a lot of complexity. Indeed, the actual motion executed to open the3.1. COMBINATION AND DISCOVERY OF MOTION PRIMITIVES 39
door might vary greatly depending on the kind and shape of the door knob: opening
a door with a round or a bar shaped knob is very different but perceived as the
same high level action. In that case both primitive are combined as two contextual
alternative into the high level action: if the knob is round, action 1 is executed, else
action 2 is used. Similarly two motion primitive can be combined through probabilistic
mixing: motion 1 is used with probability p and motion 2 with probability 1 − p. In
other words the motion primitive is seen as a probability distribution over motions
and the combination of the primitives results from the mixture of the associated
probability distribution. The case of contextual alternatives can easily be fitted into
that formalism by considering probability distributions over motions, conditioned
by the context. Such a formalism is quite general and actually covers most of the
approaches encountered in the literature and described further.
Even with contextual alternative and probabilistic mixing, we still miss some structure
in our motivating example. While moving to the door one generally also looks at the
knob, prepare its hand to open the door, avoid obstacles, and eventually say “good
bye”, in a completely simultaneous way. It thus appears from a closer look that many
primitive motion happen in a concurrent manner, which may include several degrees
of independence or interaction between the motion primitives. For example one can
consider two motions happening independently, one on each arm (for example while
dancing), or superposed such as a perturbation being added to a reaching motion to
avoid an obstacle seen at the last moment. However independence is often too strong
an approximation and one must consider the interaction between motion primitives
in more details. For robotic applications, it is common that motion corresponds to
solving tasks that are prioritized such as grasp an object while keeping the user safe.
In such cases primitive motions corresponding to one task can be subordinated to a
more important task or hard constraints imposed by security. When soft constraints
are considered instead of subordination motion primitives can be competing with one
another. For example while walking and holding a cup of coffee, motions targeted
to maintaining the balance of the body are competing with those to maintain the
balance of the cup. If the coffee is moving too much the walker might modify his
gate to keep the coffee in the cup. If by accident the walker slip on a wet floor he
might not be able to keep the cup balance while correcting his own. Finally more
complex and general interactions between motion primitive might be considered.
High level motions like moving a finger in a straight line, actually involve complex
muscle synergies but also stabilization mechanisms that might use other parts of
the body. Therefore one could represent that by a motion primitive producing the
straight line and plugged into a control mechanisms for a muscle synergy, which can
be seen as a functional approach of motor primitives.
Each of these combinations can account for a subset of complex motions but are
not incompatible. However, it is still a difficult problem to find representations that
are general enough to cover a large range of possible combinations and still enable
efficient algorithms for combining and learning such primitive.
3.1.2 Motion representations
Artificial capture systems perceive motion as a signal, that is to say as a time indexed
sequence of values, and can be represented as such: it leads to what can be called a
signal processing approach to motion representation. Sequences of positions can then40 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS
Figure 3.1: Sequential and parallel combinations of motions are well known from
choreographers and dancers. This example of dance annotation using Rudolph
Laban’s system illustrates such structure. Left and right parts correspond to two
interacting dancers. Each symbol encodes a gesture, vertical axis corresponds to
sequencing of gestures; gestures on the same horizontal line are concurrent. See
http://en.wikipedia.org/wiki/Labanotation for more information.
be cut in subsequences or concatenated. At each time step, body positions can be
the result of the addition of reference body positions encoded as a motion primitives,
and small perturbations (for example avoiding an obstacle) coded as other motion
primitives. Such decompositions are found in work from Li et al. (2010), Hellbach
et al. (2009), Taylor and Hinton (2009a).
The usual way to reproduce on a robot a motion recorded and represented that way
is to use control in position. Such approach actually hides that forces that need to be
applied to body joints to achieve the desired position: they actually transform each
position into a low level mechanisms, for examples, a PID1
, that is used to make sure
the robot follows the targeted trajectory. Similarly one can use the velocity or the
acceleration trajectories to control the robot: for a sufficient sample rate or adequate
smoothing, these quantities can be directly derived from the trajectory.
In other words the previous approach is to represent motion primitives as being
mappings from time to control commands (for example positions, velocities). Let
denote by T an interval of integers or real numbers and by A the control space or
space of actions; following that view, a motion primitive is a mapping m : T −→ A.
Actually this is a naive representation of motion that only account for the way it
is perceived by simple sensors. That a PID or a similar mechanism is needed to
1A proportional integral derivative (PID) controller is control loop designed to minimize the error
between the measured outcome variable and a desired value. It is named after the three terms used
in the feedback function that are proportional to the measured error, its integral, and derivative
(See http://en.wikipedia.org/wiki/PID_controller).3.1. COMBINATION AND DISCOVERY OF MOTION PRIMITIVES 41
actually produce the motions indeed demonstrates that the nature of motion is more
a closed loop interaction between a body and an environment than an open loop
trajectory. Low-level control to following a predefined trajectory is however not the
only aspect of motion that imply closed loop interaction with the environment and
the trajectory approach to motion representation is often too restrictive: it does not
account for the perceived similarity between two grasping motion that may take the
form of completely different body trajectories.
Therefore it is often necessary and useful to represent motion primitives in a way
that takes into account the loop between stimulus, reaction of the agent, and its
effects on the environment. A common model is to represent the mapping between
the state of the world and the agent’s action. The notion of world generally includes
both the agent and the environment, or at least what can be perceived by the agent.
While defining what the world is is made easy by considering it to be ‘everything’, it
is generally more difficult to define precisely and represent in a computational way its
current state. The inclusion of the agent in the world is a way to account for internal
states of the agent (for example short or long term memory) without considering
the whole perceptual history of the agent; in other words, the state representation is
assumed to be rich enough for the agent to have a Markovian behavior.
Mappings from time and current state of the system to actions are often referred to
as deterministic policies. Denoting the state space by S, a deterministic policy is a
mapping π : T × S −→ A. Motion representation are often desired to include some
stochasticity; thus the more general notion of stochastic policy (or simply policy)
arises, that corresponds to a mapping π : T ×S −→ P(A), where P(A) stands for the
set of probability distributions over A, assuming it is defined in a meaningful manner.
A policy is called stationary when it is constant over time; that is a stationary policy
is a mapping π : S −→ P(A).
An important motivation behind stationary policies comes from decision theory and
reinforcement learning (see section 2.2). Reinforcement learning (see Sutton and
Barto, 1998, and section 2.2.1) studies agents interacting with a world, abstracted as
a state in a state space S, through actions in an action space A, and which ultimate
objective is to maximize a reward they get from the world. In the common case
where the world and the reward function are assumed to be Markovian, it is known
that there exist an optimal deterministic stationary policy. Therefore stationary
policies are a relevant representation for the motions of such an agent.
A large set of techniques exist to represent probability distributions and can be
applied to policies. The option framework developed by Sutton et al. (1999), explains
how to build hierarchical policies by extending the space of actions with primitive
policies called actions: such approach both represent sequencing and probabilistic
mixing of primitives. Similarly, hidden Markov models (HMM, Baum et al., 1970,
Rabiner, 1989) are used to encode, as a policy, transitions between the agent’s internal
states and the action they produce; they are also used at a higher level to encode
transitions between polices, that is to say their sequential combination (see Kulic
and Nakamura, 2010, Kruger et al., 2010). In the specific setting where actions are
reduced to velocities (assuming an adequate low level controller), Calinon et al. (2007)
chose to instead of directly representing the policy, represent the joint probability
over time, positions and velocities: given a position (or a distribution over positions),
the policy is obtained as the conditional distribution knowing that position. They
use Gaussian mixture models (GMM, Ghahramani and Jordan, 1994, Bishop, 2006,42 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS
chapter 9) to represent the distribution; the mixture approach is in itself a way
to encode probabilistic mixing of very simple primitives, each corresponding to a
Gaussian. This approach have been extended to also represent sequencing of primitive
by using HMMs to encode transitions between motion primitives (Calinon et al., 2010,
Butterfield et al., 2010), sometimes called experts (Grollman and Jenkins, 2010).
An interesting aspect of the representation of motion primitives as probability
distributions over the position-velocity space is that it is a stochastic version of
the representation of the phase diagram of the dynamics of the agent. Indeed the
agent can be seen as a dynamical system which state s is ruled by a differential
equation of the form s˙ = f(s, t). The two representations are very close but focus
on different aspects of the motion. We have discussed how Mussa-Ivaldi and Bizzi
(2000) put in evidence the decomposition of control in a frog limb into control
primitive. Nori and Frezza (2004b,a) have extended this idea by building a basis
of primitive controller that can be used to provide reaching and tracking abilities
to a robot through simple linear combinations of the primitive controllers. The
coefficients of the linear combination are then obtained through a simple projection.
Williamson (1996) had previously developed a similar architecture with hand-crafted
primitives. Khansari-Zadeh and Billard (2011) and colleagues have studied how the
representation as dynamical systems of motions learnt from demonstration can be
enforced to satisfy some properties such as the stability of the underlying dynamical
system. In Mangin and Oudeyer (2012a), a very simple representation of such a phase
diagram for each body joint is shown to be sufficient to recognize dance gestures, as
further detailed in section 3.2.
The dynamical system approach to motion representation is also illustrated by
Ijspeert et al. (2003), Schaal (2006) who encode motion primitives as a phase2
indexed perturbation over a predefined dynamical system which encode an elastic
attractor dynamics. This representation is called dynamic motion primitives (DMP).
Stulp and Schaal have further demonstrated how to combine in sequence motion
primitive encoded that way (Stulp and Schaal, 2011). Daniel et al. (2012) provide an
algorithm to simultaneously learn several alternative policies, represented as DMPs,
and use them to solve an episodic reinforcement learning problem.
Finally, since motion primitives often are skills to achieve a certain task, a dual point
of view on the problem consist in representing the task itself, eventually together with
the associated skill. Such an approach is exemplified in work such as (Brillinger, 2007,
Hart et al., 2008, Hart and Grupen, 2011, Jetchev and Toussaint, 2011, Mangin and
Oudeyer, 2012b). Hart and colleagues further develop the subordinated composition
of motion represented in such a way. In our work (Mangin and Oudeyer, 2012b)
and further wok developed in chapter 4 we focus on the concurrent and competing
composition of such tasks.
3.1.3 Algorithms to decompose observed motions
Dictionary learning techniques have been applied to the discovery of motion primitives
from sequences. For example, Li et al. (2010) have used orthogonal matching pursuit
to decompose complex motions into simple motion patterns activated briefly along the
2That notion of phase is a flexible abstraction of time that can evolve non-linearly and easily
represent cyclical motions.3.2. HISTOGRAMS OF MOTION VELOCITY 43
time dimension. The decomposition can then be used to perform both compression
and classification. This approach is actually an instance of the sparse coding approach
to signal processing, which has been extensively studied in other fields (Paatero and
Tapper, 1994, Lee et al., 2006, Hoyer, 2002, Aharon et al., 2005). Hellbach et al.
(2009) have also used non-negative matrix factorization to perform a decomposition
of globally unstructured motions in low level components and use it in a prediction
problem. The use of similar algorithms, but to learn simultaneous motion primitives is
detailed in section 3.3. Taylor and Hinton (2009a) showed that conditional restricted
Boltzmann machines can be used to learn a latent representation space for encoding
motion primitives.
Many approaches to representing motion primitives as probability distributions make
use of the expectation maximization (EM, Dempster et al., 1977, Ghahramani and
Jordan, 1994, Bishop, 2006, chapter 9) algorithm and its application to HMMs.
For example, Kulic and Nakamura have proposed in Kulic and Nakamura (2010)
a method that first performs an unsupervised segmentation of the motion signal
into small blocks through a first HMM, and then performs clustering over a HMM
representation of the found blocks, thus learning motion primitive as clusters. Kruger
et al. (2010), have proposed to first discover primitives by clustering action effects on
manipulated objects and then use the found clusters and associated segmentation to
train parametrized hidden Markov models that allow recognition and reproduction of
motions. Finally Calinon et al. (2010) and Butterfield et al. (2010) use EM for GMMs
and HMMs to discover and represent the transitions and sequential combinations
of primitives, while Grollman and Jenkins (2010) use a combination of EM and a
custom clustering algorithm.
3.2 Histograms of motion velocity
In our contribution Mangin and Oudeyer (2012a) we introduced a simple histogram
based representation of motion that can be seen as a rough approximation of the
phase diagram of the dynamics of one body joint, as discussed in previous section.
This representation is applied to choreographies and is shown to enable the discovery
and recognition of primitive gestures.
An important property of such histogram based representation, that makes it usable
with techniques like NMF, is that it represents data with vectors of non-negative
coefficients which can be combined through non-negative weighted sums.
In this section it is assumed that the motions of a human demonstrator are captured
as trajectories in angle and angle velocity spaces of several articulations of the human
body. Each trajectory on a specific body articulation (or degree of freedom) is
considered separately and the entire sequence of angles and velocities is transformed
into a histogram, represented by a fixed length non-negative vector. Vectors obtained
for each degree of freedom are then concatenated into a larger vector.
The velocity trajectories are obtained from an angle trajectory that is actually
captured: a delayed velocity is used to achieve better robustness to noise in the angle
sequences. More precisely x˙ t = xt − xt−d is used to compute the velocities, instead
of being restrained to the case where d = 1. It is not necessary to divide by the fixed
time step since the histogram representation described in the following is invariant44 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS
to scaling all the data by the same amount.
In Mangin and Oudeyer (2012a), we explore different approaches for the transformation
of angles and velocities sequences into histograms. They differ on two modelling
choices:
1. Which data is used to build histograms?
2. Which method is used to build histograms?
Answers to the first question are related to the use of angles and velocities values.
While velocities can bring precious information, there are several ways of integrating
this information in the histogram representation:
1. consider only angles.
2. consider only velocities.
3. treat angles and velocities as separate degrees of freedom.
4. or use the two-dimensional angle-velocity vectors that is to say build histograms
on the joint angle-velocity space (see fig. 3.2).
We study two methods for building histograms. First, smoothed histograms can be
built on regularly distributed bins. More precisely we split the angle, velocity or
joint angle velocity space into a regular grid of bins. Histograms are built by counting
the number of samples from the trajectory falling into each bin and dividing by the
length of the trajectory. A Gaussian smoothing kernel is used to make point by point
comparison of histograms more robust to perturbations (Rubner et al., 2000). These
methods are referred to as Kernel Density Estimation (KDE) in the following.
item An alternative approach is to build histograms over a vector quantization,
which is a more adaptive binning process. Vector quantization (VQ) is performed
through a k-means algorithm. Then a histogram is built by counting the proportion of
samples falling into each cluster. We explore the use of both hard (each histogram is
only counted in one cluster) and softmax (each sample is counted in each cluster with
a weight depending on its distance to the cluster’s centroid) centroid associations.
Representing motion data by separate histograms on each degree of freedom leads to
two approximations:
1. for a given measurement in the trajectory, information about dependency
between different degrees of freedom is dropped.
2. the sequential information between measures for a given degree of freedom is
dropped.
Similar simplification have however been successfully used in two other fields. Ten
Bosch et al. (2008) have demonstrated that, even if sequential information may
appear necessary in language, and especially in speech utterances, very good word
discovery can be achieved without considering this sequential information. Both in
text classification and in computer vision bag-of-words techniques also achieve good
performances by dropping positional information of extracted local features (Joachims,
1997, Sivic and Zisserman, 2008).
Furthermore using histograms built on joint angle positions and velocities is similar
to representing transitions in angle space. By representing the sequence through3.3. DISCOVER SIMULTANEOUS PRIMITIVES BY NMF 45
velocity
angle
DOF 1 DOF 2 DOF 3
}
}
}
frequency
angle
DOF 1 DOF 2 DOF 3
}
}
}
Figure 3.2: Illustrations of concatenated histograms on positions (top) and joint
position and velocities (bottom). For the first one, x axis is associated to different
possible values for each angles and y axis to frequencies. On the second one frequencies
are represented through colors, x and y axis correspond respectively to values of
angles and velocities. (Best seen in color)
its transition we approximate it by a Markovian process. Such an approximation is
quite common in the gesture recognition and motion planning literature (Calinon
and Billard, 2009, Kulic et al., 2009).
The various methods for building the histogram based representation of motions
are compared in the experiment described in next section; relevant results for this
comparison are found in section 3.3.4.
3.3 Discover simultaneous primitives by nonnegative
matrix factorization
In this section we present results published as Mangin and Oudeyer (2012a). We
demonstrate how NMF techniques presented in section 2.1 can enable a system to
discover and learn to recognize gestures that are combined simultaneously to form
complex choreographies.
More precisely we consider a set of demonstrations each of which is a complex
choreography, complex meaning that it is composed of two or three primitive gestures.
Each demonstration is associated with a set of symbols that describe the gestures
composing the demonstration. Such symbols can be interpreted as an equivalent of
the symbols from fig. 3.1 provided to someone unfamiliar with Laban’s notation.
A learning system observes the gestures together with the unknown symbols and
build an internal (or latent) representation of the data. The symbols are said to
be ambiguous since several symbols that describe several gestures demonstrated
together, are always given at the same time. Therefore the system has not only to
learn a good enough representation of gestures to be able to recognize it, but also
has to discover which part of the complex motion is relevant for each symbol.
In a test phase the system is asked, given a new demonstration of a complex dance,
to yield symbols corresponding to that dance. The experiment demonstrates that the
system is capable of providing correct symbolic descriptions of new demonstrations46 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS
L5
?
linguistic
descriptions
choreography
demonstrations The system observes a choreography and is asked
to reconstruct the associated linguistic description.
Task
L2 L4 L
L6
3
Demonstration 1 Demonstration 2
Training
Figure 3.3: In the training phase, the learner observes demonstrations of choreographies
composed of several elementary gestures, and the associated set of linguistic
labels (left). After that the learner has to reconstruct the set of labels associated to
a demonstrated choreography (right). (Best seen in color)
Gesture 1 Gesture 2 Gesture 3 Gesture 4 Gesture 5 Gesture 6
Figure 3.4: A set of the primitive dance movements that are mixed into demonstrated
choreographies is illustrated in this figure.
of choreographies even if the particular combination of gestures was never observed
during training: it therefore demonstrates that the system is capable to capture the
combinatorial aspect of the observed dance motions. The process is illustrated in
fig. 3.3
3.3.1 The choreography data
The data used in these experiments is described in more details in section appendix B.2
and available publicly3
. It has been acquired from a single human dancer through
a KinectTM device and the OpenNITM software4
that enables direct capture of the
subject skeleton. The device and its associated software provides an approximate
3D position of a set of skeleton points. These points are then converted into 16
angle values representing the dancer position at a specific time. This conversion is
achieved through a simple geometrical model of human limbs. It is then converted
to position-velocity histograms with the techniques described in section 3.2.
The primitive dance motions used in our gesture datasets and illustrated in fig. 3.4
and table 3.1 are either associated to legs, as for example squat and walk movements,
to both arms, as clap hands and paddle, or to left or right arm, as punch, wave hand.
Yet this structure is not known by the system initially. They correspond to both
discrete and rhythmic movements. The motions were recorded from a single human
demonstrator in several sessions. Each motion was selected randomly and the names
of the basic gestures that composed it were given to the demonstrator. Recording of
the motions occurred through several sessions.
3Dataset and examples available at http://flowers.inria.fr/choreography_database.html
4http://www.openni.org3.3. DISCOVER SIMULTANEOUS PRIMITIVES BY NMF 47
Id Limb(s) Description
1 right arm hold horizontal
5 raise from horizontal to vertical
6 lower from horizontal to vertical
10 hold horizontal and bring from side to front
19 both arms clap hands (at varying positions)
20 mimic paddling on the left
21 mimic paddling on the right
22 mimic pushing on ski sticks
23 legs un-squat
24 mimic walking
25 stay still
28 right leg raise and bend leg to form a flag (or “P”) shape
30 left arm hold horizontal
38 mimic punching
40 lower forearm from horizontal position
43 swing forearm downside with horizontal upper arm
Table 3.1: Primitive dance motions from the small mixed dataset
Three motion datasets are considered for these experiments. A first dataset is used
to separately study the efficiency of the various representations. In this dataset each
demonstration only includes one primitive dance motion. There are 47 different
dance primitive and the set contains 326 demonstrations. This dataset is referenced
as single primitive dataset.
Two other datasets are composed of demonstrations of complex choreographies,
composed of two or three randomly chosen compatible (that is spanned over separate
degrees of freedom) primitive motions. The first one contains 137 examples of
combinations of 16 distinct primitive dance motions. The second one, contains 277
examples with 47 primitive dance motions (the same as in single primitive dataset).
These datasets are referenced as small and full mixed dataset.
Since the datasets only contain a relatively small number of examples we used leaveone-out
cross validation to build test and train sets. Presented results are averaged
over all possible test sets. With the full mixed dataset examples presented for testing
contain a combination of primitive movements that in 60% of the cases have not
been observed during training (see fig. 3.8).
The language description has the following structure: keywords or labels from a
set L are associated to gestures, and combined into sentences from a set S ⊂ P(L).
In this article we only consider symbolic labels. More precisely when the sentence
s = {l1, l2, l3} ∈ S is used to describe a choreography, the system observes a vector
y
i ∈ R
L (L is the total number of labels, L = |L|) such that for 1 ≤ j ≤ L, y
i
j
takes
value 1 if lj ∈ s, and 0 elsewhere. For example if 5 labels are considered, the sentence
containing labels 1 and 3 would be represented by vector: (1, 0, 1, 0, 0)T
.48 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS
3.3.2 Algorithm
In this section, the NMF algorithm introduced in section 2.1 is applied to the learning
problem that we just introduced. This use of NMF in a multi-modal framework
was introduced by ten Bosch et al. (2008), Driesen et al. (2009), and is extended in
chapter 6.
In the experiments from this section, we used the plain NMF algorithm based on
multiplicative updates, for both errors based on Frobenius norm and Kullback-Leibler
divergence (see section 2.1.1).
We assume that we are given a set of examples represented by vectors v
i ∈ R
m
(1 ≤ i ≤ n), each of which is composed of a part representing a demonstrated
choreography and a part representing a symbolic representation of that choreography
and use NMF to learn a dictionary of atoms W ∈ R
m×k and coefficients H ∈ R
k×n
such as:
V ≃ W · H.
Therefore the data matrix V and the dictionary W are composed of a motion and a
language part:
V =
Vmotion
Vlanguage
W =
Wmotion
Wlanguage
The NMF algorithm only learns, in an unsupervised manner, a transformation of the
original data V into an internal representation H. In these experiments it is used
in two different ways to first learn the transformation from multi-modal examples
to an internal representation, and then use this transformation to reconstruct one
modality from another.
In the learning part NMF is applied to a V
train data matrix and both Wtrain and
Htrain matrices are learned. The Wtrain matrix is the matrix of most interest since
it encodes the structure that has been learned on the data, when Htrain only encodes
the representation of training examples.
The Reconstruction of the linguistic parts associated to demonstrations of motions,
that is classifying motions, corresponds to finding the missing V
test
language given a
V
test
motion. This operation is performed through two steps:
1. reconstructing internal states of the system from demonstrations, which means
finding the best matrix Htest for the approximation: V
test
motion ≃ Wtrain
motion · Htest
.
This step can be performed through NMF algorithms by constraining the W
matrix to be constant.
2. once Htest has been found, the associated linguistic part can be computed
through matrix product: V
test
language ≃ Wtrain
language · Htest
It should be noted here that the reconstructed matrix V
test
language is not constrained to
take only binary values like the provided linguistic matrix. This issue is addressed by
using a thresholding mechanism (where the threshold is learned by cross-validation
on training data), as detailed in section 3.3.3.
The value of k is a parameter of the system that is fixed to 150 for the experiments
presented in this paper. The number of atoms used by the system to represent3.3. DISCOVER SIMULTANEOUS PRIMITIVES BY NMF 49
observed data is quite important to achieve the desired objective. If k is too big, the
algorithm does not have to compress data and can use motion only and language
only atoms. On the other hand, if k is too small, the system cannot represent the
complexity of the data and may focus on representing components that have bigger
effects but less multimodal meaning. In order to demonstrate these capabilities we
perform two kinds of experiment.
1. First the system is tested on simple human motions, each containing only
one primitive dance gesture. These experiments demonstrate that the motion
representation we use is sufficient to perform motion classification, which
corresponds to a simple case of multi-modal learning. We also compare different
aspects of the representation.
2. Then the system is tested on complex full body human motions to demonstrate
its ability to capture the combinatorial structure of the choreographies by
exploiting ambiguous linguistic labels.
3.3.3 Evaluation
In each experiment the method based on NMF described in previous section yields
a vector of keyword activations, which forms the linguistic reconstruction. The
quality of this reconstruction is evaluated by comparison between the reconstructed
yˆ (with continuous values) and y from ground truth (with binary values) through
the following score functions:
Score function for the single gesture experiment
In that case the good linguistic representation only contains a 1 at the position of
the label associated to the demonstrated gesture and 0 elsewhere. The score function
is defined as:
lsingle(ˆy, y) =
1 if arg max iyˆi = arg max iyi
0 else
Score function for mixed gesture: the number of gestures is given
In that case several elementary gestures are present in each example. The reconstructed
vector is tested on the fact that gestures that are actually present in the
experiment have the best activations.
It can be described by the following equation, where #(y) denotes the number of
gestures present in the demonstration and best(n, yˆ) is defined as the set containing
the n labels having the best activation in ˆy.
lgiven number(ˆy, y) =
1 if best(#(y), y) = best(#(y), yˆ)
0 else
In other words the system is given the number of elementary gestures present in the
example and asked which are those gestures.50 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS
Score function for mixed gestures: exact reconstruction
This score function evaluates the exact reconstruction of the linguistic description. It
requires the reconstructed vector to be converted to a discrete one before comparison.
For that purpose an additional thresholding mechanism is added to the system:
after reconstruction of label activations, all values from yˆ above a threshold are
put to 1, and others are put to 0. The function threshold such that for 1 ≤ j ≤ L,
threshold(y, η)
j = δyj≥η encodes that mechanism. The threshold η is evaluated
through cross-validation on the training data.
The score function is then simply defined as:
lfull(ˆy, y) =
1 if y = threshold(ˆy, η)
0 else
In each case the score function defined above for one example is averaged over all
examples from the test set to yield a final score in [0, 1].
3.3.4 Results
Demonstrations with a single primitive
We performed a first set of experiments on the single primitive dataset in order to
evaluate our learning system on a simple multi-modal learning task. In this section
primitive dance movements are presented to the learning system with unambiguous
labels and the recognition performances are evaluated with the lsingle score function.
We focus on comparisons of the various parameters of the motion representation.
The first experiment compares the use of regular binning with Gaussian smoothing
(KDE) and adaptive binning (VQ) with both hard and softmax associations to build
the histograms. The comparisons are performed over a range of total number of bins,
for joint angle-velocity 2D histograms. Results from this experiment in fig. 3.5
outline the advantage of using vector quantization over regular binning (KDE) for
small numbers of bins, which corresponds to a low resolution of the input. This
difference is however less sensitive for larger numbers of bins. A typical issue of
regular binning, that can explain the better results with adaptive binning, is that for
the same grid step (the resolution), the number of required bins grows exponentially
with dimension. Even with two dimensional histograms, a maximum number of ten
bins would lead to a three-by-three (thus low resolution) regular binning. In the
same situation adaptive binning can identify ten relevant clusters.
A second experiment is performed to compare the efficiency of histograms built
either only on angles, only on velocities, on angles and velocities as separate
degrees of freedom, or on the joint angle-velocity space. We compare these
representations of the motion over a range of values for the delay used in velocity
computation, and using KDE histograms with a fixed total number of 15 bins by
degree of freedom. The results of the second experiment, presented in fig. 3.6,
demonstrate that histograms on joint angle and velocities values capture the most
information from the original motions.3.3. DISCOVER SIMULTANEOUS PRIMITIVES BY NMF 51
0 5 10 15 20 25 30
N umber of bins
0.4
0.5
0.6
0.7
0.8
Scor e on test set
H istogr am modes compar ison
KDE
H ar d VQ
Soft VQ
Figure 3.5: When the number of bins is small vector quantization (VQ) offers a clear
advantage over kernel density estimator (KDE) for representing the angle-velocity
distributions (see section 3.2). This advantage however disappear for larger numbers
of bins. (Best seen in color)
Demonstrations with complex choreographies
In this paragraph we evaluate the performance of the learning system on the full
choreographies with ambiguous labels.
Figure 3.7 illustrates the role of the threshold used to transform vectors of scores
produced by the system into vectors with 0, 1 values representing a set of recognized
labels. In the following the threshold (used in lfull) is determined through cross
validation on the training data.
Table 3.2 presents results obtained on the two mixed datasets for both KullbackLeibler
(DKL) and Frobenius versions of NMF algorithm. The reconstructed label
vectors are evaluated by lgiven number and lfull score functions which enables to
understand which part of the error is due to the thresholding mechanism.
For comparison purposes we also tested a method based on support vector machines
(SVM ) on our dataset. More precisely we trained one linear SVM5
for the recognition
of each label. The SVM method directly yields a set of recognized labels, with no
need for thresholding. However this method relies entirely on the symbolic form
of the labels and won’t generalize to other multi-modal settings with continuous
linguistic modalities. There is no such theoretical limitation on our NMF setting (see
discussion in section 3.4).
The results in table 3.2 demonstrates that after being exposed to demonstrations
of mixed primitive dance motions associated with ambiguous labels, the presented
system is able to successfully produce linguistic representations of newly demonstrated
choreographies. The second dataset can be considered difficult since each one of the
47 primitive dance motions only appears in an average of 14 demonstrations, which
labels are ambiguous.
5We used the Scikit-learn implementation of SVMs (see scikit-learn.org/stable/modules/
svm.html).52 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS
0 10 20 30 40 50
Velocity delay
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
Scor e on test set
Velocity modes, single pr imitive exper iment
N o velocities
Velocities as extr a dims
Joint position, velocities
Only velocities
Figure 3.6: For small values of the velocity delay, the representation using jointly the
position and the velocity leads to better performances than using only the positions.
For high values of the delay, the velocity is mostly noise, therefore using only positions
performs better although the noise does not degrade the performance of the joint
representation too much. Using only velocities or considering position and velocity
histograms as separate dimensions leads to worse performances on the classification
task. KDE histograms are used for these results. (Best seen in color)
lfull lgiven number
16 labels (SVM, linear) 0.818 —
16 labels (NMF, Frobenius) 0.854 0.971
16 labels (NMF, DKL) 0.789 0.905
47 labels (SVM, linear) 0.422 —
47 labels (NMF, Frobenius) 0.625 0.755
47 labels (NMF, DKL) 0.574 0.679
Table 3.2: Results on the mixed datasets
Handling unknown combinations of primitives
The combinatorial nature of the demonstrated choreographic motions implies that,
although the primitive gestures are observed many times, each specific combination
of gestures into a choreography is not observed that often. This phenomenon is
illustrated in fig. 3.8. An important consequence is that the performance of the
system cannot be solely explained by the system recognizing full choreographies;
rather the system has captured the combinatorial structure of the data. This ability
is illustrated by its behaviour on unknown combinations of motion primitives. For
instance in the full mixed dataset more than 60% of the examples demonstrates a
combination that is not observed in other examples.
In order to get more precise results for this behaviour we set up a slightly different
experiment where test sets are only composed of combinations of motion primitives3.4. CONCLUDING PERSPECTIVES 53
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Threshold
0.5
0.6
0.7
0.8
0.9
Score on test set
Threshold on linguistic reconstruction
Figure 3.7: The impact of the threshold value on the selection of active labels is
limited in a central range of values. Extreme values lead to worse performances.These
results are obtained on the small mixed dataset. This experiment is the only one in
which the threshold is not automatically adjusted.
1 2 3 4 5 6 7
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7 Occurences of combinations
47 labels dataset
16 labels dataset
number of occurences
proportion of examples
Figure 3.8: In the big dataset 60% of the choreographies (specific combination
of primitive gestures) are only observed once. This illustrates the necessity for
the system to capture the combinatorial structure of the choreographies instead of
representing them in a holistic manner.
that were not observed during training. The results of this experiment are reported
in table 3.3.
3.4 Concluding perspectives
In a first experiment from previous section, we demonstrated the efficiency of the
position-velocity histogram representation of motion and the NMF algorithm on a
dance motion recognition task. Hellbach et al. (2009) had used NMF to perform
prediction on learnt motions; in contrast, our contribution extends the scope of NMF
usage to a form of structure classification of motions. The motion representation
presented in this section enables the application of the architecture developed by
ten Bosch et al. (2008), Driesen et al. (2009) for speech learning to motion learning.
This constitutes a useful step toward comparison of structural similarities between54 CHAPTER 3. LEARNING A DICTIONARY OF PRIMITIVE MOTIONS
lfull lgiven number
16 labels (NMF, Frobenius) 0.568 0.800
16 labels (SVM, linear) 0.667 —
47 labels (NMF, Frobenius) 0.406 0.653
47 labels (SVM, linear) 0.206 —
Table 3.3: Results for combination of primitive gestures that were not encountered
during training.
language and motion learning. That study is further extended in chapter 6 and
Mangin and Oudeyer (2013).
The motion-velocity histogram representation does not make it possible to produce
the actual motion from the motion representation. Hellbach et al. (2009) have given
an example of motion representation that allows such reproduction. This work may
thus be extended, by changing the motion representation, to an imitation learning
setting, in which the system could be evaluated on producing gestures on a real robot,
corresponding to a given linguistic description. Chapter 4 introduces ideas toward
such motion representations, although they are not illustrated on a real robotic
setting.
In the second experiment we showed that the architecture presented in this paper is
capable of learning to recognize complex gestures, composed of simultaneous motion
primitives, while only observing ambiguous symbolic labels. It is demonstrated in
the third experiment that the system has captured the combinatorial structure of
the observed gestures and is capable of generalization by recognizing combinations
that were never observed in training.
We presented a learning system that is capable, after learning from demonstrations of
complex gestures and linguistic descriptions, to re-construct the linguistic modality
from an example involving only the motion modality. The experiments that we
performed only uses a symbolic representation of speech labels. Interestingly this
corresponds to a degenerated version a talking heads (see section 1.3 Steels, 1999,
Steels and Kaplan, 2002). For this analogy we consider that a first human is
performing the gesture. During training, the agent presented here corresponds to
a hearer from the talking heads, the speaker being another human, who names
the choreographies. In this experiment the communication channel is discrete and
finite and corresponds exactly to the human speaker ontology. The setup we present
describes how the learner builds its own ontology and produces utterances when it,
in the test phase, plays the speaker. It is however possible to replace this symbolic
representation by real acoustic data (for example represented in the same way than
in Driesen et al. (2009)) without changing the learning and reproduction algorithms.
Such experiments are performed in our other contribution Mangin and Oudeyer
(2013) and detailed in chapter 6.
While in this contribution we focused on primitive motions active at the same time,
it is possible to use the same setting to recognize choreographies where motions are
composed in sequence and eventually overlaps. A direct application of our method,
would however only enable reconstructing the set of active motions and not their
order.Chapter 4
Learning a dictionary of
primitive tasks
Despite having potentially many distinct definitions, the notion of task or targeted
effect is very important to apprehend human behaviors or program robots. Actually
the common representation of motions as a sequence of positions or basic actions,
either captured from an acting agent or implemented on a robot, might be very
limiting. For example, in order to grasp an object, an adult would perform some
motion of its arm and hand toward the object while a dog would use its head, a
child would get on tiptoe and use a tool to reach the object if it is too high for him.
Even the same person would use very different motions depending on the position or
accessibility of the object. Although the trajectory of body parts are very different in
each of these examples, the intention of the agent is generally perceived very clearly as
identical in each case by an observer. More generally, the perceived similarity between
two motions is often not explained by the similarity of the underlying motions.
Therefore it is of great interest for objectives like human behaviour understanding
or programming robots capable of complex tasks to be able to take into account
activities at the task or effect level. Learning or perceiving actions at the effect level
was already discussed in section 1.1 as functional level imitation as introduced by
Demiris and Hayes (1997). The motivation behind such representation is to achieve
better generalization to unknown situations while preserving the essence of the task
or to be able to learn and improve from imperfect demonstrations.
The notion of affordances, that is to say the potential actions related to encountered
objects, was introduced by the psychologist Gibson (1979). Its importance in
the perception of objects emphasizes the close relation between the knowledge
of achievable effects on the environment and the perception of that environment.
Similarly, an interesting analogy can be drawn with the field of pragmatics amongst
linguistics: pragmatics emphasizes the importance of the speaker’s intention over pure
semantics for communication (Grice, 1989). That approach suggests that sentences
or language are not produced as a container for meaning but rather as a way to
induce an effect on the person to whom it is directed.
In this chapter several studies related to learning and using the effect space or task
space are presented. Some of them address related issues such as the question of
5556 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS
learning the effect of actions or learning relevant aspects of the effects of an action,
denoted task space retrieval. In the context of complex or composite actions that are
studied in this work, we believe that sometime the structure of the behavior is easier
to study at the task level than at the motion or trajectory level; contributions about
learning task components are therefore presented in section 4.3.
The work presented in the following is similar to the one from previous chapter but
study behaviors in the task space instead of the action or motion space. In contrast
to previous chapter, the behavior representation studied below is not as destructive
and enables reproduction of the learnt behaviors with planning algorithms. Finally
the behavior composition introduced in the following can be qualified as ‘concurrent’,
rather than just ‘simultaneous’.
4.1 Previous work
Plan recognition and intention recognition focus on the study of the structure of tasks
abstracted from sequences of symbolic actions (for a review, see Kruger et al., 2007).
These ideas have been applied to teach robots by demonstration in various ways.
Kuniyoshi et al. (1994) use a set of static mechanisms to abstract visual sensory input
into objects and recognize the effect of predefined actions on the environment, as well
as the dependencies between the actions in a given task. From these mechanisms their
robotic system is capable of reproducing a demonstrated task by following a sequence
of sub-tasks that fit the learnt dependency. Ekvall and Kragic (2006), Pardowitz
et al. (2007), and Nicolescu and Matari´c (2002, 2003) have developed similar setups,
but including more advanced dependencies between sub-tasks and hierarchies. Ekvall
and Kragic (2006) present an approach in which a robot is capable, from predefined
primitive behaviors, to learn the precedence relations and dependencies between these
behaviors combined into a solution for a task. The relations are learned following a
specific to generic process: each time a new demonstration is observed, the model of
the task is expanded to account for the new demonstration. Similarly, Nicolescu and
Matari´c (2002, 2003) use a longest common path heuristic to infer a directed acyclic
graph representing the relations between predefined behaviors combined to solve
task. They also explain how teacher feedback can be efficiently used to correct errors
occurring in the learning phase or coming from wrong demonstrations. They also
detail the analogy between their task model and regular expressions or equivalently
finite automata. Pardowitz et al. (2007) also present a similar system that, after
learning a set of basic behaviors in a supervised way, can learn a directed acyclic
graph, called task precedence graph that forms an abstract representation the task
structure. The graph is learnt by successive generalization, similarly to the work of
Ekvall and Kragic (2006).
While the studies presented in previous section mainly focus on methods to learn the
structure of a task, knowing the underlying primitive behaviors, other works focus
on learning the primitive actions that compose complex tasks; for example Kruger
et al. (2010) use clustering on the effects of various actions on the environment to
identify such primitive actions.4.1. PREVIOUS WORK 57
4.1.1 Inverse feedback and reinforcement learning
Inverse reinforcement learning and inverse feedback learning, that are presented in
section 2.2, both study models of an agent behavior and intention as a process to
maximize a reward or feedback function. Both have been developed in order to
yield better models of intention of agents performing tasks. For example, Abbeel
et al. (2010) demonstrate how applying inverse reinforcement learning to expert
demonstrations of aerobatic manoeuvres on a remote controlled helicopter enables a
learning system to succeed in accomplishing manoeuvres on which the experts only
provided failed demonstrations. Similar ideas have also successively been applied to
represent driving styles on a simulator (Neu and Szepesv´ari, 2007) and trajectories
from taxi drivers (Ziebart et al., 2008), pedestrians (Almingol et al., 2013), and wild
animals (Brillinger, 2007).
However, basic inverse reinforcement learning or inverse feedback learning focus on
one simple reward or objective function that explains all the data it observes passively
data. Such setting does not fit many practical situations.
Lopes et al. (2009b) consider the situation in which the robot or learning system
can request demonstrations at specific states in order to make the learning process
require less demonstrations: having human provide demonstrations for robots is
indeed often considered an expensive operation. Lopes and Cakmak also presented
an optimal teaching strategy for inverse reinforcement learning (Cakmak and Lopes,
2012): they provide an algorithm to chose optimal demonstration that are to be
given to an inverse reinforcement learner.
Jetchev and Toussaint (2011) present an approach inspired from inverse optimal
control that learns a feedback function representing demonstrations of a task that is
sparse on some features. They demonstrate how the algorithm is capable to learn a
grasping task and explain why the sparseness of the learnt feedback function provides
a solution to the task space retrieval problem.
An other common issue of inverse reinforcement learning approaches is that it is often
required that adequate features are used to represent the state of the learning agent.
Levine et al. (2010) introduce an algorithm to overcome this issue that both learn
an estimate of the reward optimized by the demonstrator and features to efficiently
represent it. They also demonstrate how the learned features can be transfered to
a new environment. The work presented in the following of this chapter also goes
toward that direction in the more general setup of multi-task demonstrations.
While in the works presented above the expert only demonstrates a single task,
Babes-Vroman et al. (2011) present an EM-based algorithm which, from unlabeled
demonstrations of several tasks, infers a clustering of these demonstrations together
with a set of models. Choi and Kim (2012) have extended this idea into a reward
model based on Dirichlet processes and a Metropolis-Hasting algorithm that represent
the demonstrations as being generated from mixture of reward functions without
requiring the number of reward functions to be fixed. Almingol et al. (2013) also
recently developed similar ideas in the context of inverse feedback learning.
Michini and How (2012) suggest that demonstrated behaviors, even in the single task
setting, might be better modelled by considering non-stationary rewards functions:
they developed an algorithm that learns a set of reward functions such that each
sample action is explained by one of these functions.58 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS
Rothkopf and Ballard (2013) have extended the ideas of modular reinforcement
learning for inverse reinforcement learning. This approach targets the issue of the
exponential growth of state space often observed when real world applications are
modelled.
The next sections present two algorithms that extend both inverse reinforcement
learning and some inverse feedback learning techniques to build a dictionary of
primitive tasks. The primitive tasks are modelled as rewards or feedback functions
that can be combined together to model the intention of an expert in demonstrations
of complex tasks. They focus on the question of how to represent demonstrated
behaviors as the combination of simpler primitive behaviors that can be re-used in
other contexts. This approach is similar to feature learning but focus explicitly on
the multi-task setup. We present two algorithms that, by observing demonstrations
of an expert solving multiple tasks, learns a dictionary of primitive behaviors and
combine them to account for the observations. We explain how such an approach can
be beneficial for life long learning capabilities in simple toy experiments. Next section
uses inverse feedback learning to discover task primitives from demonstrations of an
agent in a continuous world. The experiments illustrate the ambiguous nature of the
task and how supervision can be used to accurately recovers the original dictionary.
The following section presents a similar algorithm in the case of inverse reinforcement
learning, in a discrete world. The experiments demonstrate that without supervision
the learner can build a dictionary to represent the demonstrated task. The evaluation
of the experiments focus on the ability of the learner to solve a task after a few
observation of an expert solving that task. The results demonstrate that learning the
common structure of composite tasks can make the agent more efficient in solving
new tasks that share the same structure.
4.2 Factorial inverse control
Brillinger (2007) has developed an algorithm based on least square regression to
learn potential functions modelling the motion of wild animals in natural parks. In
this section, and in the publication Mangin and Oudeyer (2012b), we present an
algorithm that extends Brillinger’s technique to address a new problem: instead of
learning a flat representation of a single task, the learner must infer several primitives
cost functions that can be composed so that their mixture is a good approximation
to the demonstrated task. A very similar behaviour representation is used, but it
introduces dictionary learning for solving the new problem. We discuss the use of
supervision, such as linguistic supervision, to improve and disambiguate the learning
of the dictionary.
4.2.1 Problem definition and algorithm
This section describes a simple synthetic imitation learning experiment in which
an imitator learns to reproduce behaviors observed from a demonstrator: the task
underlying each behavior is modelled as a cost function on states of the agent (either
the demonstrator or the imitator), which can be seen as representing the preferences
of the demonstrator. For example the task of filling a glass of water is represented by
a cost function giving increasing values to increasing levels of water in the glass. In4.2. FACTORIAL INVERSE CONTROL 59
the case where the “filling the glass” behavior is mixed with the “smiling to someone”
behavior, the mixed behavior is be represented by a mixed cost function valuing both
full glass and smiling position of the lips.
Each demonstration consists in a trajectory in the demonstrator state space, from a
specific initial position. The objective of the imitator is to produce a trajectory that
fits the demonstrator preferences, that is minimise the cost function. The imitator
may start from the same initial position than the demonstration or another. The
latter generally defeats strategies that simply mimic the demonstrator gestures; this
issue, that oppose program level imitation to action level imitation, is discussed in
section 1.1.
This setup introduces two important difficulties for the imitator. On the one hand each
demonstration only presents aspects of the cost function locally, around the trajectory.
Each demonstration is thus not sufficient to fully understand the underlying task.
On the other hand, each demonstration presents a mixture of several tasks. Thus,
while the primitive tasks are observed many time, they are never observed alone
and each particular mixture is generally only observed once. It is thus necessary to
leverage the compositional structure of the behaviors to be able to understand them,
and reproduce them with new initial positions.
Agent and demonstrator models
Both the demonstrator and imitator are assumed to have identical bodies and perceptions
of the world. This corresponds for example to the case where demonstrations
are performed on the imitator body (kinesthetic demonstrations). Following Jetchev
and Toussaint (2011), the current configuration of the robotic agent q belongs to a
state space Q ∈ R
S. Each trajectory is denoted by a sequence (qt)
t∈[|1,T|]
.
The model assumes that there exists a cost function f : Q −→ R such that each task
is modeled as the demonstrating agent trying to minimize the cost f(q) to which is
added a penalization on the square norm of ∂q
∂t . The penalization term can be seen
as a penalization of the energy consumed while moving toward an optimum of f(q).
The following focuses on very simple agents whose actions are motions in the state
space and are governed by the local optimization of f(q) + α
∂q
∂t
2
which means
that each action, at each time step, is chosen such that:
qt+1 = arg min
q
f(q) + α
q − qt
δt
2
,
with δt the time elapsed between samples t and t + 1.
The solution of this equation, without additional constraints, and assuming that the
cost function f is differentiable, is well known to be proportional to the gradient of
f, as −
1
α∇f(q).
It can be noticed that since the agent previously defined only follows policies driven
by local optimization it will only achieve local optimization of the cost function.
While this is a simplification of the agent, it also features an important property of
real demonstrators: real demonstrators are in general imperfect and do not always60 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS
succeed in reaching the optimal solution of the task. It is thus important for an
imitator to be able to also learn from imperfect demonstrations of behaviors.
Complex tasks are more specifically studied here: each demonstration corresponds
to the minimization of a separate cost function f which is only observed through
one demonstration. However f is composed of parts that also occur in other demonstrations
and are thus observed several time mixed in various way and in various
contexts. We consider N demonstrations, observed as trajectories (q
i
t
)
t
, i ∈ [|1, N|]
in the agent state space. This work assumes that each demonstration corresponds
to a given f
i
. To model complex demonstrations it also assume that there exists a
dictionary of primitive tasks, composed of K cost functions (g
k
)k∈[|1,K|]
, such that,
for all demonstration i, there exist coefficients (a
i
k
)
k∈[|1,K|]
such that, for all state q,
f
i
(q) =
K
k=1
a
i
k
g
k
(q).
In the following, we first present the inverse feedback learning approach from Brillinger
(2007); then we extend it into a learning algorithm which observes one demonstration
associated with each function f
i and learns a dictionary of primitive cost functions
g
k
, and the coefficients of their combinations into demonstrated tasks f
i
.
Inferring a task from a demonstration
The problem of inferring a single task from a demonstration is studied in Brillinger’s
article (Brillinger, 2007). The cost function is represented by a linear parameter
β ∈ R
F on a space of potentially non-linear features ϕ : Q −→ R
F . Its minimization
is modeled by an agent policy such that:
∂q
∂t = −λJ(q)
T
β (4.1)
where J is the Jacobian of ϕ (lines of J are gradients of coordinates of ϕ).
When discrete trajectories are considered, eq. (4.1) may be approximated as: qt+1−qt
δt
=
−λJ(qt)
T
β for all t ∈ [|1, T − 1|]. By denoting yt+1 =
qt+1−qt
δt
, Y ∈ RS×(T −1) the
vector obtained by vertically stacking all yt for t ∈ [|2, T|], and Φ the S × (T − 1) by
F matrix obtained by vertically stacking all −λJ(qt)
T
, we get:
Y = Φβ (4.2)
Equation (4.2) transforms the problem of inferring one task from one demonstration
into a linear regression problem, which constitutes an essential contribution of
Brillinger’s article.
In the case where the Euclidean distance between the vector Y , computed from
observations, and its reconstruction through the task model Φβ is considered, we
get the classical least square regression problem. It is solved, assuming ΦT Φ is
non-singular, by:
β = (ΦT Φ)
−1
ΦT Y (4.3)4.2. FACTORIAL INVERSE CONTROL 61
More details on the associated derivations can be found in Brillinger (2007). The
algorithm presented above is capable, from one demonstration, to infer the cost
function modelling a behavior of the demonstrator. Once the cost function is inferred,
the imitator can in turn produce trajectories that minimize it. Such an agent that
directly infers all the parameters of the cost function is denoted flat imitator in
the following.
Learning a dictionary of primitive tasks from mixed demonstrations
The algorithm presented in previous paragraph only applies to a single demonstration
generated from a single task model. Here we introduce a matrix factorization
algorithm that extends the previous method to a setting where a dictionary of
primitive tasks is learnt form several demonstrations.
Each demonstration corresponds to a mixing of primitive tasks which is modeled by
a β
i
in the feature space. A dictionary that is represented by a F by K matrix D,
such that each column of D is the parameter representing the primitive tasks g
k
in
the feature space, models the concurrent mixing of primitive tasks. The concurrency
between the primitive tasks in a mixing is represented through a weighting coefficient.
Coefficients of the i
th demonstrated task are given by a vector a
i ∈ R
K, β
i = Da
i
.
For each demonstration the vector Y
i and the matrix Φi are associated with the
observed trajectory, by following the method described above. It follows that for
each demonstration:
Y
i = ΦiDa
i
(4.4)
Learning a factored model of the demonstrated tasks that has the minimum Euclidean
distance to the demonstrations is equivalent to solving eq. (4.5).
arg min
D,A
L(D, A) with L(D, a) =
N
i=1
∥Y
i − ΦiDa
i
2
2
(4.5)
We propose an algorithm based on alternate minimisation with respect to D and A
to solve this problem.
Minimisation with respect to A This sub-problem assumes that the dictionary
is known and thus consist in inferring the task decomposition on the dictionary,
from the observation of a demonstration. It is similar to the algorithm presented in
previous section but the K decomposition coefficients (the vectors a
i
) are inferred
instead of all the F coefficients of the cost function.
This problem is separable in one sub-problem for each demonstration i, each of which
is equivalent to the regression problem from Brillinger (2007) presented previously: the
matrix Φ is now replaced by the product ΦiD. Thus the solution of the optimisation
with respect to A is given, for Euclidean distance, by eq. (4.6). Other norms or
penalization could as well be used to solve the regression (for example methods62 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS
enforcing non-negativity or sparseness of coefficients).
a
i = (DT ΦiT
ΦiD)
−1
DT ΦiT
Y
i
(4.6)
Minimisation with respect to D The second sub-problem assumes that the
decomposition coefficients of the demonstrated task are known but not the dictionary
D. We use a gradient descent approach to learn D. The differential of the loss with
respect to each of the coefficients of D is given by eq. (4.7).
∇DL(D, A) = −2
N
i=1
ΦiT
Y
i − ΦiDa
i
a
iT
(4.7)
Global algorithm The global algorithm simultaneously learns the dictionary D
and the coefficients A by alternation of the two procedures from previous paragraphs.
Matrices D and A are initiated randomly or according to any heuristic. Then D
is learnt, assuming A contains the correct decomposition coefficients, after which
A is inferred assuming D is the correct dictionary, and so on. This approach to
matrix factorization problems has often proved to be efficient (Lee and Seung, 1999,
Jenatton et al., 2010).
4.2.2 Experiments
To illustrate the algorithm introduced in section 4.2.1 we consider a simple toy
experiment. We define an agent which state q belongs to Q = [0, 1]2
. Cost functions
are parametrized on a 5 by 5 grid of Gaussian radial basis functions, which means
φ(q)
T = (. . . ,
1
2πσ
exp(−
∥x−µf ∥
2
2σ2 ), . . .) where µf are points from a regular 5 by 5
grid on Q and σ is fixed such that the task parameter space is of dimension F = 25.
There is no difference between the demonstrator agent and the learner, except that
the demonstrator fully knows the task to perform.
We use in this experiment a dictionary of 6 primitive tasks that is represented in
fig. 4.1 (first row). Combinations of 2 or 3 concurrent primitive tasks are generated
randomly for training and testing. For a given mixed tasks, a starting point is
randomly chosen inside Q and trajectories are generated by the demonstrator or
imitator from the initial position, according to eq. (4.1). In the remaining of this
section we will describe two separate experiments where a dictionary is learnt by a
agent observing mixed combinations of tasks.
Recovering the dictionary from given coefficients
In this section we consider an experiment in which during training the learner both
observes demonstrations of mixed tasks and the associated mixing coefficients. This
hypothesis models the situation where some labels that describe the task that are
mixed together in the demonstration are given to the learner (for example inferred
from spoken language). This experiment enables the evaluation of the second part of
the algorithm we introduced.4.2. FACTORIAL INVERSE CONTROL 63
Since the mixing coefficients are known by the learner during training, only the
second part of the algorithm presented in section 4.2.1 is used to learn the dictionary
Dˆ . We train such a learner on 200 trajectories generated from a dictionary D. Both
the original dictionary of primitive tasks D and its reconstruction Dˆ are represented
in fig. 4.1.
Figure 4.1: The supervised learner achieves accurate reconstruction of the original
dictionary of primitive tasks while the unsupervised learner acquire its own representation.
Each row present a dictionary of primitive tasks. The tasks are represented
as cost functions over Q = [0, 1]2
. Dark areas corresponds to high positive costs and
light areas to negative costs. First row corresponds to original primitive tasks (as
used by the demonstrator), second row to the one reconstructed by the supervised
learner described in and third row to the unsupervised learner. (Best seen in colors)
Once the imitator has built a dictionary of tasks from observations, it is evaluated
in the following way: for a set of coefficients, corresponding to mixed tasks, and
a random starting position, the imitator and demonstrator yield trajectories. The
demonstrator and imitator trajectories are then compared. Examples of trajectories
from both the learner and the imitator are given in fig. 4.2.
The relative L2 error between the trajectories generated by the demonstrator and
the imitator is used to evaluate the quality of the reconstruction. An average error of
0.001127 is obtained on the train set (tasks observed while learning the dictionary)
and 0.002675 is obtained on the test set (unobserved tasks obtained from the same
dictionary).
Learning both primitive tasks and mixing coefficients from concurrent
demonstrations
We illustrate the full unsupervised algorithm presented in section 4.2.1 on an experiment
where the learner only observes demonstrated trajectories without knowing the
coefficients. The bottom row of fig. 4.1 presents an example of dictionary built by
such a learner.
Once the dictionary has been learnt, we use the following imitation protocol to test64 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS
Figure 4.2: The trajectories from the demonstrator are well reproduced by the
supervised learner. First row represents four demonstrated tasks (dark color represent
areas of high cost) and the demonstrated trajectory (the star represent the initial
position and dots further positions). Second row represents the model of the task as
inferred by the imitator and the trajectory followed by the imitator solving its model
of the task, from the same initial position as the demonstrator. (Best seen in colors)
the imitator. A new unobserved combination of primitive tasks is chosen together
with an initial position. Then the demonstrator provides a trajectory corresponding
to that task. From the observation of the demonstrated trajectory and the its learnt
dictionary of primitive tasks, the learner infers the decomposition of the task on
the learnt dictionary. For that it uses the first part of the algorithm presented in
section 4.2.1. Finally the imitator is asked to produce trajectories that solve to the
same task, both from the demonstrator’s initial position and new random initial
positions. Changing the initial position is a way to evaluate how well the imitator’s
model of the task generalizes from the context of the demonstration to new ones.
In order to evaluate the impact of learning the dictionary, that is to say the combinatorial
structure of the demonstrated data, we compare reproductions of the task
by an agent that has learnt the dictionary denoted as full dictionary learner, to
ones by an agent, denoted as flat imitator, that directly infers the parameters of
the tasks without using a dictionary. We also compare the agent described in the
previous section, that has learnt the dictionary from both demonstrated trajectories
and mixed coefficients, denoted dictionary from coefficients learner. Examples of
demonstrated and imitated trajectories are provided in fig. 4.3.
4.2.3 Discussion
The first, supervised, agent is able, by observing motions solving composed tasks
and the mixing coefficients, to learn the dictionary of primitive tasks. The acquired
dictionary is evaluated in different ways: visually from the plots of the associated
cost functions, from trajectories solving a mixed task whose mixing coefficients are
given, and from imitation, in random contexts, of a mixed task that is inferred from a4.2. FACTORIAL INVERSE CONTROL 65
Figure 4.3: Examples of imitated trajectories. First row presents the demonstrated
trajectory (first column) and its imitation by the flat learner, the dictionary learner
from first experiment (coefficients observed while learning the dictionary) and the full
dictionary learner. Second row correspond to imitations of the same task from initial
positions that were not observed (the demonstrator trajectories for those positions
are given for comparison purpose). (Best seen in colors)
single demonstration (this last result is presented together with second experiment).
The second, unsupervised, agent learns a dictionary that enables the factorial representation
of demonstrated tasks, without directly observing neither the dictionary
nor the mixing coefficients. The factorial representation enables imitation of tasks
that are observed through a single demonstration. However the performance evaluation
does not validate quantitatively this capability. In particular the least square
regression from Brillinger (2007) (described in section 4.2.1) is not performing well on
the particular form of mixing of cost functions we have chosen for the illustrative toy
example. However our algorithm is compatible with any regression method. Thus,
interesting further work could use the comparison of performances between various
regression methods, on real human data, to get better insight on the combinatorial
properties of human activities. The next section present similar ideas applied using
the inverse reinforcement framework; more reliable results are obtained on an other
toy experiment.
The dictionary learnt by the agent, illustrated in fig. 4.1, is very different from the
one of the demonstrator: actually chapter 1 already discussed the ambiguity of the
problem of representing a set of demonstrated mixed tasks as linear combinations
of primitive tasks. For example one can scale the primitive cost function by some
factor and associated coefficients by its inverse or change the order of the primitive
and coefficients without changing the linear combination. Mathematically these
difficulties could be solved by adding constraints to the form of the learnt dictionary
(for example normalize primitive costs) or by adapting the way to compare dictionaries
(for example to make it invariant to re-ordering).
To overcome this difficulty, a particular form of factorisation could also be shaped66 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS
by information coming from another modality or social interaction. This aspect
is demonstrated both in the study from our previous work (Mangin and Oudeyer,
2012a) that is described in chapter 3 and in the first experiment, see section 4.2.2,
where observing the mixing coefficients, that can be seen as linguistic labels, enables
the learner to adapt its internal model (that is the dictionary) to a communication
channel. Aspects of social learning have already been shown to improve motor
learning by Massera et al. (2010). Solving the ambiguity in the decomposition of
human activities thus constitutes a new application for social learning. Further
illustrations on learning from several modalities are given in chapter 6.
Extending the algorithm presented above to include constraints or evaluating it on
an online learning experiment would help investigating these questions and thus
constitute very interesting future work.
In conclusion, this section studies aspects of the combinatorial structure of behaviors
and of their representation as tasks or objectives. We introduced an algorithm to
learn a dictionary of primitive tasks from demonstrations of concurrently mixed
behaviors. We demonstrated on an illustrative experiment how the dictionary can
be used to represent and generalize new demonstrations. Finally we discussed how
dealing with ambiguities in factorial representation of behaviors might involve social
interactions, multimodality of the sensory experience or intrinsic saliency mechanisms.
However the illustrative experiment from this section did not enable to quantitatively
demonstrate the advantage of the unsupervised factorial approach. Next section
develops similar ideas with inverse reinforcement learning techniques.
4.3 Factorial inverse reinforcement learning
This section present ideas similar to the one introduced above but grounded on
different techniques and models. The algorithm presented in this section extends
the gradient approach from Neu and Szepesv´ari (2007) to learn a dictionary of
primitive reward functions that can be combined together to model the intention
of the expert in each demonstration. It includes both previous ideas on multi-task
inverse reinforcement learning (Babes-Vroman et al., 2011, Choi and Kim, 2012,
Almingol et al., 2013), but also of feature learning and transfer between tasks (Levine
et al., 2010). In its unsupervised study of the multi-task setup, this work is related
to those of Babes-Vroman et al. (2011), Choi and Kim (2012), and Almingol et al.
(2013) but differs for the fact that it not only learns several primitive rewards from
demonstrations of several tasks but also enables transfer of the knowledge from one
task to an other, similarly to what is presented by Levine et al. (2010).
4.3.1 Multi-task inverse reinforcement feature learning
This section presents an extension of the algorithm from Neu and Szepesv´ari (2007),
described in section 2.2.3, to a dictionary learning problem. We assume that the
learner observes demonstrations ξ from an expert, that are sequences (xt, at) of
states xt ∈ X and action at ∈ A, such that ξ = (xt, at)
t∈[|1,T|]
. We call Markov
decision process (MDP) a quintuple (X , A, γ, P, r) where γ is the discount factor.
P, the transition probability, is a mapping from state actions pairs to probability4.3. FACTORIAL INVERSE REINFORCEMENT LEARNING 67
distributions over next states. We denote by P(x
′
|x, a) the probability to transition
to state x
′
from state x, knowing that action a was taken. Finally, r : X × A → R is
the reward function.
In this single task setup presented in section 2.2.3, the objective is to optimize
a parameter θ of the reward function such that the near-optimal policy for the
MDP associated to rθ is as close as possible to the demonstrated policy. This
optimization problem is formalized into For an expert demonstration represented
by ξ = (xt, at)
t∈[|1,T|]
one estimates J by eqs. (2.30) and (2.31). The main result
provided by Neu and Szepesv´ari (2007) and presented as section 2.2.3 is an equation
to compute ∇θJξ, from which the gradient descent algorithm is derived.
In this section we extend there approach to the case where the expert provides several
demonstration of different but related tasks. The demonstrations are denoted ξi with
index i ∈ [|1, n|]. Each demonstration is modeled by a separate parameter θ
(i)
that
represents the tasks solved by the expert. The algorithm presented here focuses on a
generative model of mixtures of behaviors or tasks such that the combination of tasks
can be represented as a reward function that is a linear combination of the reward
functions of the mixed tasks. More precisely, we call dictionary a matrix D ∈ R
d×k
that represents the dictionary and coefficients H ∈ R
k×n a matrix containing mixing
coefficients. The columns of H are denoted h
(i)
such that the parameters of the ith
task are θ
(i) = Dh
(i)
.
The following presents an algorithm to learn the matrix factorization, that is to say,
the dictionary matrix D and associated coefficients H such that θ
(i)
s are represented
as combinations of k elements from a dictionary. The algorithms minimizes the
cumulated cost over all demonstrations denoted by JΞ, where Ξ = (ξi)
i∈[|1,n|]
, and
defined in eq. (4.8). This cost generalizes the average distance from the demonstrator’s
policy to a nearly optimal policy associated to the inferred representation of the task.
JΞ(D, H) = n
i=1
Jξi
(Dh
(i)
) (4.8)
In order to solve the problem arg minD,H JΞ(D, H) the algorithm alternates steps
that minimize the cost with respect to D, H being fixed, and with respect to H, D
being fixed. The second steps actually decomposes in n separate problems similar to
the one from previous section. Both steps uses a gradient descent approach where
the gradients are given by eqs. (4.9) and (4.10).
∇DJΞ(D, H) =
∇θJξi
Dh
(1)
. . .
∇θJξi
Dh
(n)
· HT
(4.9)
∇HJΞ(D, H) = DT
·
∇θJξi
Dh
(1)
. . .
∇θJξi
Dh
(n)
(4.10)
In practice the learner performs a fixed amount of gradient descent on each subproblem
(optimization of H and D), with Armijo step size adaptation before switching
to the other sub-problem. The algorithm stops when reaching convergence. It appears
that this gradient descent algorithm is quite sensitive to initial conditions. A good
empirical initialization of the dictionary is to first learn θ
(i)
s with the flat approach,68 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS
perform a PCA on the learnt parameters and use it as an initial guess for the
dictionary.1
4.3.2 Experiments
In these experiments a task refers to a MDP associated to a reward function. We
consider composite tasks which means tasks that correspond to reward functions
obtained by mixing several primitive reward functions.
The algorithm described above is experimented on a simple toy example similar to
the one from Neu and Szepesv´ari (2007): a grid world (typically of size 10 by 10) is
considered in which actions corresponds to moves in four directions. Actions have
the expected result, that is a displacement of one step in the expected direction,
in 70% of the cases and results in a random move in the other cases; except when
the requested move is not possible from current state (for example going up on top
border) in which case the resulting move is drawn uniformly from feasible moves.
The following uses a fixed discount factor γ = 0.9.
Validation
In a first experiment we compare our factorial algorithm to direct learning of the
parameter representing a task with Neu and Szepesvari’s gradient (GradIRL), that
we call flat learner to differentiate from the factorial approach.
More precisely a random dictionary of features is chosen, that is unknown from the
apprentices, together with mixing coefficients that determine n distinct composite
tasks. n experts are then used to generate demonstrations for each tasks (during
training the expert may provide several demonstrations of each task). The demonstrations
obtained are fed to both flat and factorial apprentices. While the flat
learners independently learn a model of each task, the factorial learner reconstructs a
dictionary, shared amongst tasks, together with mixing coefficients. fig. 4.4 illustrates
the dictionary used by the demonstrator to generate tasks as well as the dictionary
reconstructed by the learner.
We evaluate the apprentices on each learnt task by measuring their average performance
on the MDP corresponding to the demonstrated task, referred as MDP(rreal).
More precisely the apprentice can provide an optimal policy π
∗
rlearnt with respect to its
model of the task, that is to say a policy optimal with respect to the learnt reward
rlearnt.
2 This policy is then evaluated on the MDP corresponding to the real task
(MDP(rreal)). To evaluate the average reward that the apprentice would get on the
MDP with random starting positions (not necessarily matching those of the expert)
we compute the average value function:
scorerreal(rlearnt) = 1
|S|
s∈S
V
π
∗
rlearnt
rreal (s) (4.11)
1Experiments presented further shows that the PCA strategy alone does not provide a good
dictionary for our problem, but is an efficient initialization.
2This policy is obtained as a greedy policy on the optimal action value function (with respect to
the model of the task, rlearnt ), computed by value iteration.4.3. FACTORIAL INVERSE REINFORCEMENT LEARNING 69
Figure 4.4: The demonstrators generates new tasks by mixing together the five basic
reward functions which associated optimal Q-values are represented above. The
factorial learner builds its own dictionary by observing the demonstrations; it is
represented on the second row. There is no exact match between the two dictionaries
however they describe similar reward space as illustrated further in the results. (Best
seen in colors)
In the results presented here, the demonstrated tasks were generated from a dictionary
of 5 primitive reward functions. No feature is used to parametrize rewards: they
are represented as deterministic functions from state-action pairs to a real number,
which corresponds to a 400 parameters. The expert provides 10 demonstrations for
each task, each lasting 10 time steps and 100 tasks are demonstrated.
Results presented in fig. 4.5 show that the factorial apprentice is capable of using
information about the common structure of the various tasks to achieve better
performance on each task. The performance of the learner therefore increases with
the number of demonstrated tasks. When only few demonstrations are given for each
task, the demonstrator’s behavior is only observed on a subset of the possible stateaction
pairs. In such cases, the flat learner often fails to achieve good generalization
over all the state space. On the other hand, the factorial learner can benefit from
other tasks to complete this information.
We also compare the results with flat learners trained with specific features: the
ground truth dictionary (flat, ground truth) and a dictionary learnt by performing
PCA on the parameters learnt by the flat learners (flat, PCA features).
Re-use of the dictionary
In order to demonstrate the ability of the factorial algorithm to transfer knowledge
to new tasks we performed a second experiment. Apprentices are trained similarly to
the previous experiment. In the following we call train tasks these tasks. For testing,
a new task is generated randomly from the same dictionary of rewards (denoted as
test task) and apprentices observe a single demonstration of the new task. To get
meaningful results, this step is reproduced on a number of independent test tasks70 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS
5 10 15 20 25 30
Number of demonstrations for training tasks
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
Avg. dev. from opt. score on training tasks
Flat
Fact. (rand. init)
Fact. (PCA init)
Flat (PCA features)
Flat (ground truth features)
0 50 100 150 200
Number of training tasks
0.0
0.5
1.0
1.5
2.0
2.5
3.0
Avg. dev. from opt. score on training tasks
Flat
Fact. (rand. init)
Fact. (PCA init)
Flat (PCA features)
Flat (ground truth features)
Figure 4.5: Performance on train tasks The factorial learner overcomes the
flat learner by leveraging the features common to all tasks for high number of
demonstrated tasks and moderate number of demonstrations for each task. The
curves represent the average deviation (lower is better) from the best possible score
(the one obtained with perfect knowledge of the task), that is the average of the
optimal value function, for different values of the number of demonstrations per
training task (top) for a fixed number of training tasks of 100 and for the number of
training tasks (bottom), the number of demonstrations for each tasks being fixed
to 10. The algorithm presented in this section is denoted as Fact. learner ; two
alternative initialization heuristics are presented. (Best seen in colors)4.3. FACTORIAL INVERSE REINFORCEMENT LEARNING 71
(typically 100 in the experiment).
Since the task is different from the previous demonstrations, it is not really meaningful
for the flat learners to re-use the previous samples or the previously learnt parameters,
so the task must be learnt from scratch. On the other hand, the factorial learner
re-uses its dictionary as features to learn mixing coefficients for the new task. We
also experimented two alternative, simpler, strategies to build a dictionary in order to
re-use information from the training tasks. The first one consists in using a random
selection of rewards learnt during training as features for the new tasks (flat, features
from ex.). We use the learnt parameters of 15 training tasks as features. The other
one performs a PCA on the rewards learnt during training and uses the five first
components as features (flat, PCA features). Similarly to previous experiment the
apprentices are evaluated on their score (according to ground truth reward function)
on solving the new task.
Results, presented in fig. 4.6 are compared for various number of training tasks and
demonstration per task. They demonstrate that the factorial learner can re-use its
knowledge about the combinatorial structure of the task to learn the new task more
quickly. The factorial learner also outperforms the other simple feature construction
strategies.
The better ability of the factorial apprentice to generalize over the state space is
increased in this setting since only a single demonstration is observed from the expert.
Often this demonstration only covers a small part of the state-action space. This
phenomenon is illustrated in fig. 4.7 that represents the true optimal value function
together with the expert’s demonstrations, and the learnt value functions by both the
flat learner and the factorial one. A typical situation that can be observed in some
examples, is that the flat learner’s value function is local to expert’s demonstration,
while the factorial learner, that estimates the task in the space of learnt features,
can have a good estimate of the value function in parts of the space where no
demonstration was provided.
4.3.3 Discussion
In this section we presented a gradient descent algorithm to learn a dictionary of
features to represent multiple tasks observed through an expert’s demonstrations
with an inverse reinforcement learning approach. The experiments demonstrate that
the approach enables the learning of the common structure of the tasks by using
transversal information from all the demonstrated tasks. Furthermore it demonstrates
and illustrates the fact that this approach enables more accurate representation of new
tasks from only one short demonstration, where the classical inverse reinforcement
learning approach fails to generalize to unobserved parts of the space due to the lack
of adequate features.
The algorithm is compared with naive approaches trying to learn a dictionary from
task parameters that were inferred through flat inverse reinforcement learning and
showed that these approaches fail to learn the relevant structure of the demonstrated
tasks. A possible interpretation of this difference is that the PCA approach performs
the matrix factorization with respect to the metric of the parameter space, whereas
our algorithm uses the more relevant objective cost function. Due to the particular
structure of the inverse reinforcement learning problem, namely invariance of the72 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS
0 5 10 15 20 25 30 35
Number of demonstrations for training tasks
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
4.5
Avg. dev. from opt. score on testing tasks
Flat
Fact. (rand. init)
Fact. (PCA init)
Flat (PCA features)
Flat (features from ex.)
Flat (ground truth features)
0 50 100 150 200
Number of training tasks
0.0
0.5
1.0
1.5
2.0
2.5
3.0
3.5
4.0
Avg. dev. from opt. score on testing tasks
Flat
Fact. (rand. init)
Fact. (PCA init)
Flat (PCA features)
Flat (features from ex.)
Flat (ground truth features)
Figure 4.6: Performance on test tasks For new task observed through a single
demonstration, the factorial learner outperforms the flat learner by re-using previous
knowledge on task features. The curves represent the average deviation (lower is
better) from the best possible score, for different values of the number of demonstrations
per training task (left) for a fixed number of training tasks of 100, and for the
number of training tasks (right), the number of demonstrations for each tasks being
fixed to 10. (Best seen in colors)4.3. FACTORIAL INVERSE REINFORCEMENT LEARNING 73
Figure 4.7: The factorial learner achieves a better recognition of new tasks from a
single demonstration by using the learnt features. In contrast the flat learner often
build a task representation that is local to the demonstration. First row represents
the optimal value function (blue is high) for the real task, together with the single
demonstration provided by the expert. Second and third row represents the optimal
value function for the model of the task as learnt by respectively the flat learner and
the factorial learner. Each column corresponds to one of the four first test tasks
(from a total of 100). (Best seen in colors)74 CHAPTER 4. LEARNING A DICTIONARY OF PRIMITIVE TASKS
problem with respect to reward scaling, and other transformations (Ng et al., 1999,
Neu and Szepesv´ari, 2007), the metric of the parameter space is not relevant for the
objective of apprenticeship learning.
An important limitation of inverse reinforcement learning is that it assumes the
knowledge of a model of the dynamics of the environment. Therefore it can either
be applied to situations where that model is actually known, meaning it is very
simple, or where it can be learnt. However the latter brings the new question of
the robustness of inverse reinforcement algorithms to errors or gaps in the learnt
model. Furthermore, while regular inverse reinforcement learning outputs both a
model of the task and a policy that solves it, the factorial approach presented in
this section only provides policies for the observed tasks. This means that although
a large variety of tasks may be represented by combining primitive tasks from the
learnt dictionary, it is generally not meaningful to combine the policies in the same
way: the agent has to train a policy for these new tasks.
This algorithm can be considered as a first example of feature learning in the multitask
setup for inverse reinforcement learning. However other approaches should be
explored by further work in order to derive more efficient algorithms, by for example
extending the natural gradient approach from Neu and Szepesv´ari (2007) to the
dictionary learning setup, or adopting a Bayesian approach extending Ramachandran
and Amir (2007).
Finally constraints can be applied to the learnt dictionary to favor some kinds
of solutions. Two examples of such constraints for which many machine learning
algorithms have been developed are non-negativity and sparsity. Non-negativity
of the coefficients would for example focus on representations that allow primitive
behaviors to be added to, but not subtracted from an activity in which they do not
appear. Such constraints have been successful in many fields to yield decompositions
with good properties, in terms of interpretability but also sparsity (see for example
Paatero and Tapper, 1994, Lee and Seung, 1999, ten Bosch et al., 2008, Lef`evre
et al., 2011, Hellbach et al., 2009, Mangin and Oudeyer, 2013, but also chapters 3,
5 and 6). Sparse coding also focuses on a constraint on decompositions to improve
the properties of the learnt elements (Hoyer, 2002, Aharon et al., 2005, Lee et al.,
2006). For example. Jetchev and Toussaint (2011) have shown how enforcing sparsity
of a task representation can make this task focus only on a few salient features,
thus performing task space inference. Other examples are given by Li et al. (2010)
and Hellbach et al. (2009). Exploring the use of these constraints together with
the techniques presented in this chapter constitutes important direction for further
work.Chapter 5
Learning a dictionary of
primitive sounds
This chapter studies the question of the acquisition of language mainly from the
acoustic point of view. More precisely we review and develop techniques that can
model the acquisition by a learning system of basic acoustic components of language,
like phonemes or words. In this chapter we present approaches that use multimodality
or supervision to acquire such components as well as techniques that rely only on
the patterns within the acoustic signals. Many of the techniques from the first
category use a labels or weak supervision to model multimodality and can therefore
be described as symmetric to the experiment presented in chapter 3: instead of
having a real scene and symbolic labels representing language, the language is real
but the scene is represented by symbols. The NMF techniques presented at the end
of this chapter and developed by ten Bosch et al. (2008), Driesen et al. (2009) are
the one that inspired work from chapter 3. Finally this chapter as well as chapter 3
present the two experiments that are joint in next chapter.
5.1 Models of language acquisition
Learning dictionary of primitive sounds is an attempt to model language acquisition
by featuring what Brent (1999) calls cognitive plausibility and therefore differs from
the static approach that take many automatic speech recognition systems. Brent’s
cognitive plausibility requires speech recognition methods to be incremental, selforganized
and start with no prior knowledge on the environment it has to explore:
properties that are observed on infants who learn the language(s) they are exposed
to.
Cognitive plausibility comes with the design of learning processes: a central point
in this design is the definition of the interaction between the system and an outside
word. We already have discussed the central problem of language grounding and
the importance of multimodality for language learning, but also the evidence from
work of Saffran et al. (1996), Saffran and Wilson (2003) that children can discover
patterns in speech signal without relating it to other modalities.
7576 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS
Models of language learning both from multimodal perception and solely from acoustic
perception both exist in the literature. Considering the learning of linguistic elements
without using any social or multimodal cue highlights the importance of internal
regulation systems to develop an internal speech model from extraction of patterns
from observed language. Park and Glass (2008) have performed an experiment in
that direction; it shows that it is possible to extract words or phrases from a set of
recorded lectures by studying occurrences of speech patterns. However such learning
systems develop representations that are not included in a social interaction and
exclude any convention: therefore the models of language that emerges from these
experiment cannot be used to communicate since they lack the essential grounding
property.
Gorin et al. (1994) already underlined the importance of treating the input channel
as a communication channel when dealing with user requests and refers to it as the
“How may I help you” problem: the learning system will develop skills relevant to
the client request classification. Gorin thus made a choice between an information
theoretic approach or a more action oriented one. Other approaches use both
pattern extraction from acoustic perception and multimodal or social information.
As an example Iwahashi (2003) studies language acquisition from speech, visual
and behavioral information. He presents a learning system that includes a first
step where sub-lexical patterns in the speech channel and object recognition in
the visual channel are separately acquired. In other words, that system is used to
bootstrap some preliminary representation before any social interaction. The idea of
bootstrapping internal representations have also been studied by Brandl et al. (2008).
In other works, multimodality is simplified as labels, coding for keywords or more
generally for topics, as in Gorin et al. (1999), ten Bosch et al. (2008).
In order to build larger and more realistic systems, it often is necessary to work with
a model of memory; indeed incremental learning systems often bring growth in data
size, leading to memory usage and computation. The Acorns1
(Aimetti, 2009, ten
Bosch et al., 2008, Altosaar et al., 2008) project have explored some of this issues
by introducing memory levels. The principle is to separate data storage in different
levels, where depth in memory increases with the level of organization of the data.
This may, to a certain extent, be seen as a compression mechanism as data is highly
structured in the long term memory, but it also introduces an attention mechanism,
associated to a model of short term memory.
Pirmitive acoustic elements may be considered at the sub-lexical or lexical level. Ma
and Li (2005) use hidden Markov models (HMM) to achieve sub-lexical classification:
a universal sound recognizer is learnt at the sub-lexical level, in a supervised manner
before being used to recognize spoken language. Aimetti (2009) uses symbolic labels
to build a lexicon of sound segments: similarity measures between sound segments
are used to select prototypical examples of such segments that are stored in a model
of memory, together with their label. The classification of a new lexical entity is
then achieved through a nearest neighbour approach. The experiment from Park
and Glass (2008) uses a similar approach together with a graph clustering method to
group similar sound segments as sub-lexical entities. In the experiment presented
in next section, we use a hierarchical clustering method to achieve unsupervised
sub-lexical classification on the basis of acoustic similarity; in a second step a bag of
word representation is built on top of the sub-lexical units that have been discovered
1Acquisition of Communication and Recognition Skills, http://www.acorns-project.org5.2. HIERARCHICAL CLUSTERING OF BASIC SOUNDS 77
and used to recognize lexical elements learnt in a supervised way.
The exact role of word segmentation is a quite controversial issue in speech recognition:
whereas sentence segmentation is relatively easy through silence recognition, word
segmentation is indeed a difficult task even for standard written text (see Brent, 1999,
Kuhl, 2004). We may distinguish between two approaches: the first one consists on
building language acquisition on the ability to segment words, whereas the second one
does not rely on word segmentation but might lead to the ability to segment word-like
elements as a consequence of word recognition. An example to the first approach is
the segmental dynamic time warping method which uses dynamic programming to
find similar sound segments between speech examples, and defines sub-lexical units
as those segments. Such methods are used in Aimetti (2009), Park and Glass (2008),
Gajjar et al. (2008).
The second approach which ignores segmentation while recognizing speech may
appear less intuitive but also shows great results. Non-negative matrix factorization
methods have been used in such experiments. Ten Bosch et al. (2008, 2009), Driesen
et al. (2009) present a method that builds an internal word representation from whole
utterances with weak supervision. Similarly Stouten et al. (2008) explain how NMF
can be used to learn models of digit names from sentences that are sequences of such
digits. As a consequence, those representations may afterward be used to localize
candidate words in examples, and thus, achieve segmentation as a consequence. The
bag of words approach presented below uses local descriptors based on a completely
arbitrary segmentation. These local descriptors enable a statistical analysis of a
whole utterance which leads to keyword recognition without any lexical segmentation.
Many methods have been tried to match a lexical representation of spoken utterances
to a more structural representation, a process that may be seen as a grammar
extraction. Such methods often use a predefined structure, more or less flexible, to
which the utterance is mapped, and statistical inferences in a goal oriented manner.
For example Farrell et al. (1993), Gorin et al. (1994) use multilayer neural networks
to map the recognition of some words to an action; in their experiment the semantics
of the environment is based on action choices. In Iwahashi’s experiment (Iwahashi,
2003), this semantics consists of (object, action, position) associations and is analyzed
using a graph structure adapted to this semantics. The difficulty for a system of
self extracting such semantics representations, without predefined implementation, is
to find an origin for those representations. Other input channels such as the vision
channel or motor channels, in the case of action oriented goals, are generally part of
this process.
5.2 Hierarchical clustering of basic sounds
In our contribution (Mangin et al., 2010) we use a clustering algorithm to discover
a dictionary of primitive sounds. More precisely, we use a bag-of-words method in
a developmental approach of the learning and bootstrapping of speech recognition
skills.
We built a two levels language acquisition system: first an unsupervised clustering level
discovers multi-scale acoustic representations of speech invariants from unsegmented
speech streams with no prior phonetic knowledge. Then, at a higher level, these78 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS
low-level representations are re-used to learn to predict a semantic tag associated to
whole utterances. The system presented in this section has three main features: there
is no explicit segmentation into words or phonemes, sub-lexical units are discovered
instead of coming from a static phoneme recognizer, and no supervision is used for
the discovery of sub-lexical units.
5.2.1 Background and principle
Our approach is based on the bag-of-words idea, that originated in text classification
applications (Joachims, 1997) and have been used with great success in image
categorization applications as in the work of Sivic and Zisserman (2008). The general
idea of bag-of-words approaches is to represent the text or the image as an unordered
collection of local elements chosen in a dictionary (the words in a text and local visual
features in an image), thus ignoring the global structure. Using this representation,
a classification algorithm can then be used to predict the associated category. In
computer vision applications, this can lead to very compact representations thanks
to the quantization of local features, while preserving the stable local information
and ignoring more unstable global geometry. In most applications, the dictionary is
static and requires an initial training phase. However Filliat (2008) has developed an
incremental approach that is closer to what developmental systems require. We will
therefore transpose this method to the speech recognition problem. Yet, for the sake
of clarity, we will use the terminology “bag-of-features” instead of “bag-of-words”,
since the “words” in the bag-of-words approach are not at all related to “linguistic
words” in the speech stream and which constitute important speech invariants to be
discovered and learnt in our framework.
5.2.2 Presentation of the framework
The language acquisition system uses three distinct layers to transform the sound
representation, as described below.
Continuous Acoustic Feature Vectors (CAF) extraction This layer transforms
the input audio signal into a set of vectors, each associated with some position
information. The goal of this process is to transform the signal into a set of local
descriptors. An important requirement on the used representation is that it must
come with a measure of similarity on the verctors. This first layer typically uses time
windows static sound processing methods (for example MFCC or RASTA-PLP, as
detailed in section 5.2.3).
Unsupervised clustering The role of this layer is to transform each CAF vector
from the set obtained above, into a discrete acoustic event, that is to say a single
number. This transformation is accomplished through a clustering process. More
precisely the clustering builds incrementally a representation of this acoustic event,
using the similarity measure inherent to the CAF space. This representation both
allows retrieval of the acoustic event corresponding to a given CAF vector and the
learning of new acoustic events when a CAF vector does not match any known
feature.5.2. HIERARCHICAL CLUSTERING OF BASIC SOUNDS 79
Higher level semantic analysis The two previous layers may be seen as a preprocessing,
which goal is to transform the input audio signal into a bag of discretized
acoustic features, more precisely we get a set of couples, each composed of an
acoustic event and its position in the stream. This semantic layer introduces a
new representation of the audio signal that allows to efficiently set up higher level
statistical treatment, such as keyword recognition (see following experiments) or
more complex analysis.
Time signal
Seq. of windows
Set of CAF
vectors
Set of acoustic
events
Semantic classes
Train labels
Windowing
MFCC or
RastaPLP
Unsupervised clustering
(codebook)
TF-IDF vote
Figure 5.1: Sequence of transformations from raw (time sequence) acoustic signal to
the classification into semantic classes.
This process may be described mathematically as follows: given an input audio
sequence a ∈ A, a continuous feature vector space F, a set of localization data, such
as time position in the utterance, P, a discrete acoustic feature dictionary D:
• extract CAFs: a ∈ A −→ (vi
, pi) ∈ (F × P)
⋆
• find corresponding acoustic events: (vi
, pi) −→ (fi
, pi) ∈ (D × P)
⋆
Where, i is a free variable, and for any set E, we call E
⋆ =
k∈N
E
k
the set of finite
sequences over E. In the case of tag inference, the statistical process is then, given a
set T of tags, a mapping: (D × P)
⋆ → T .
5.2.3 Implementation
Continuous feature vectors extraction
We use mel-Frequency Cepstral Coefficients (MFCC) and Relative Spectral TransformPerceptual
Linear Prediction (RASTA-PLP) features over a short time window, from
Ellis (2005) implementation. The former feature vectors, which are actually time
sequences of successive feature vectors, are compared with respect to a Dynamic Time
Warping (DTW) distance (Sakoe and Chiba, 1978). Such approaches are known to
yield efficient acoustic similarity measures for word recognition (see Furui, 1986).
Mel-frequency cepstral coefficients These coefficients are computed by first
taking the power spectrum of the signal, that is to say the square of the modulus of
the Fourier transform of the signal, then averaging it over generally 25 filters, taking
the log of the resulting coefficients, and finally applying a cosine transform. The80 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS
power spectrum of a signal s(t) is given by the following formula.
p(ω) = |sˆ(ω)|
2
(where ˆs denotes the Fourier transform of x)
=
1
2π
t
s(t)e
−iωtdt
2
For a set of filters ψi over the frequency domain, the mel frequency spectral coefficients
(MFSC) are computed as follows.
MFSC(s)
i =
ω
|sˆ(ω)|
2
|ψi(ω)|
2
dω
The filters are chosen according to empirical studies of the human perception of
sounds similarities, which is approximated as a transformation of the frequency
scale, denoted mel scale (Stevens and Volkmann, 1940); the mel scale is such that
frequencies that are perceptually similar are evenly spaced in the mel domain. One
then generally use equally spaced triangular filters in the mel domain. Using a finite
set of filters accounts for the fact that close frequency cannot be distinguished by
humans. An approximation function to the empirical curves from psychology is
generally used to convert from the frequency domain to the mel domain. As an
example:
mel(f) = 2595 log10
1 +
f
700
.
The coefficients obtained from this process are meant to model the perception of
sound as processed by the human cochlea. The mel frequency cepstral coefficients
(MFCC) are computed by applying a discrete cosine transform (DCT, Ahmed et al.,
1974) to the logarithm of the MFSC.
MFCC(s) = DCT [log (MFCC(S))]
Dynamic time warping This distance, which inspired from the Levenshtein
distance (Levenshtein, 1966) distance, takes into account possible insertions and
deletions in the feature sequence. It is adapted for sound comparison but does not
correspond to an inner product in CAF space, since it is not an Euclidean distance.
This prevents the use of the classical k-means algorithm.
A practical benefit of using the DTW distance is that it enables to compare sound
feature vectors of different length. However, in our experiments we used fixed length
feature vectors: for each acoustic utterance we first compute the MFCC sequence
corresponding to this audio stream. After extracting this MFCC sequence, we cut it
into fixed length features, using a 80 ms or 150 ms sliding window. The sliding length
used in most of the following experiments is one third of the length of the window.
However, it is also completely possible to mix several lengths in the same vocabulary
or to extract features of random lengths. This would result in more multiscale
approach. The window length is here around the scale of a phoneme length and
gives a good trade-off between sufficiently long sequences of MFCC vectors and the
quadratic complexity in the length of the vectors for DTW computation. Furthermore
limiting the window length is necessary in order to obtain local descriptors.5.2. HIERARCHICAL CLUSTERING OF BASIC SOUNDS 81
Incremental unsupervised clustering
We use a dictionary structure that groups similar CAF vectors according to their DTW
distance into discrete acoustic events. The dictionary implements two operations
that are related to its construction and the retrieval of the acoustic event matching
a specific CAF. Our approach is adapted from the one used for image processing
in Filliat (2008).
The dictionary construction is an incremental hierarchical clustering algorithm that
is to say new CAF vectors are added incrementally to the dictionary, either in an
existing cluster (acoustic event) or by creating a new cluster if the new vector is
too far from existing data. The retrieval of the acoustic event that best matches
a specific CAF is equivalent to find the closest group in the dictionary for a given
vector. Since it is not computationally possible to compare the input vector to each
of the clusters we use a tree structure and an associated efficient search algorithm.
More precisely, the acoustic events are defined as hyperspheres in the continuous
feature space, and their centers are organised in a tree structure inspired by the one of
Nister and Stewenius (2006), where leaves are primitive clusters and nodes represent
hierarchical clusters. The tree structure is organised according to the following rules:
1. each leaf or node is a cluster C represented by its centroid: a vector vC ,
2. each leaf (primitive cluster) is actually a hypersphere of radius rmax around its
centroid. A CAF vector v is therefore part of a primitive cluster C if and only
if d(v, vC ) ≤ rmax
3. each node of the tree has a limited number of children Nmax . The cluster
associated to the node is the union of the clusters associated to the children,
and the centroids nC associated to the cluster is the mean of the vectors it
contains.
A CAF vector is matched to a cluster by recursively following the child of the node
which centroid is the nearest from the searched vector. The dictionary is built by
adding these vectors to the tree: we find the nearest leaf (primitive cluster); if the
vector matches the radius condition regarding to this cluster, it is added inside this
one; if not, a new cluster is created initially containing only this vector. In the case
where a new cluster was created, it is added as a child of the same node as the
previously found nearest cluster. Then we check if the number of children is below
Nmax ; if not, the node is split in k nodes, by a k-means process (see algorithm 2
and Hastie et al., 2001, 14.3.6) on the centroids of the leaves. The leaves are then
distributed to those child nodes. An example of this mechanism, also described by
the following pseudo-code of algorithm 1, is shown in fig. 5.2.
This structure and algorithm implement an approximate nearest neighbour search,
and thus the processes of learning a CAF or retrieving the corresponding acoustic event
are approximative. Since the CAF vectors are themselves noisy, this approximation
is naturally handled by the statistical treatment in layer 3. In order to reduce
the impact of orientation errors while exploring the tree, which may result in an
important final error, for example, if it occurs near the root of the tree, we added
the following improvement to the search algorithm.
The idea is to launch more than one search for each request and then select the best
results. This is close to a branch-and-bound techniques and may be implemented in82 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS
Step 1
Step 2
Step 3
Figure 5.2: Insertion of a new vector in the hierarchical lexicon structure. The nearest
leaf is found, but the vector is too far from the center (first step) so a new leaf is
created (second step). The new leaf father has now too many children (Nmax = 3)
so the node is split in two parts(third step).(k = 2)
many ways. We tried two implementations of this method. In the first one, for each
node reached during the search process, the search is launched again on its b children
closest to the target, instead of just the closest child. By best children we mean
the b children with the lowest distance between their centroid and the requested
vector. b is called the backtracking parameter. This method leads to a complexity
of O
n
logk(b)k
, where n is the number of nodes, k the k-means parameter used
to create the tree and b the backtracking parameter. In practice this backtracking
approach make the search very long compared to the O
k log(n)
original complexity.
The second method uses the same idea, but instead of deciding locally which node
deserves to be explored, it runs full searches, at the end of which it launches again
a search from some node on the tree, where a good candidate path may have been
missed. More precisely, during the search, each time a child node is chosen for the
proximity of its centroid to the requested vector, its siblings are memorized with
some value representing how far they were from the chosen child. When a candidate
leaf is finally found, the system is able to reconsider the choices it has made during
the search and explore the ignored node which are the closest to the target.
By repeating this process b times, and finally choosing the best candidate nearest
neighbor from those found, we are able to minimize the impact of the approximate
nature of our structure. The actual complexity of this method is roughly O(bk log(n)).
The second method gave a better trade-off between the number of explored nodes,
which corresponds to computation complexity, and the quality of the retrieved
approximate nearest neighbor.5.2. HIERARCHICAL CLUSTERING OF BASIC SOUNDS 83
Algorithm 1 Adding a vector to the cluster tree node
: current node is the node where the vector is to be added,
: vector is the vector to add,
: k is the k-means parameter,
: rmax is the threshold distance that is used to decide if two vectors are considered
identical,
: Nmax is the maximum number of vectors that a leaf may contain.
procedure add vector to node(current node, vector , k, rmax , Nmax )
if current node is a leaf then
let v be the nearest vector in current node
if distance (vector , v) ≤ rmax then
add vector to current node
else
let father be the father of current node
create a new leaf from vector and add it to father
let children be the children of f ather and n their number
if n ≥ Nmax then
new nodes ← k means(k, children)
set new nodes as the children of father
end if
end if
else
let child be the nearest child from vector in current node
add vector to node(child, vector , k, rmax , Nmax )
end if
end procedure
Semantic tag inference
While previous steps are able to build an internal representation for the system,
based on topological information, this process had no relation to the final goal of
keyword classification. Actually, all the semantics related to the classification task is
created in the step. We implemented a voting mechanism to score acoustic events
and examples regarding semantic tags.
The idea of the voting mechanism is to associate a weight wi to each acoustic event
i. Let f
t
i be the frequency of acoustic event i regarding tag t, f
t
i =
ni,t
nt
where ni,t is
the number of co-appearances of acoustic event i and tag t and nt the number of
appearances of t. For a query utterance q, where acoustic acoustic event i appears qi
times, i votes as Vi = qi
· f
t
i
· wi
, where wi are weights. A common way of setting
weights wi
is to use a Time Frequency — Inverse Document Frequency (TF-IDF)
approach by setting
wi = log
Ntags
N
(i)
tags
, (5.1)
where Ntags is the total number of tags and N
(i)
tags the one of tags whose examples
contain acoustic event i at least once.
Additional conditions may be considered such as setting all node weights to zero
except from leaves, which rely entirely on the size of clusters, that is to say the rmax
parameter, in our case, which is chosen a priori. One may also choose to allow only
nodes near the leaves to have a nonzero weight or to rely entirely on TF-IDF weights.84 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS
Algorithm 2 The k-means clustering algorithm
: k the number of clusters
: (xi)1≤i≤N the Nvectors to add,
: c is the vector of assignments (in [|1, k|]
N )
procedure k means(k, (xi))
initialize the cluster assignments c
while assignments change do
for each cluster, let mj be its mean
let c be the assignment of each observation to the closest mean:
ci = arg min
1≤j≤k
∥xi − mj∥
2
end while
end procedure
This kind of modifications may bring more scalability and robustness to the system.
It also defines which clusters are acoustic events: either only leaves or all nodes, and
thus the use or not of hierarchical and multi-scale acoustic events.
In order to be able to compute this score we store the number of appearances of
each acoustic event in an utterance associated to a particular semantic tag: this
corresponds to previously introduced ni,t. The following process is used: while
training, for a given utterance with tag t, transformed in a bag of acoustic events,
for each acoustic event i, ni,t is increased by one.
During the test phase, we extract the bag of acoustic events corresponding to the
utterance. Then, for each tag we compute its score on the utterance, by summing the
votes of each acoustic event from the utterance representation. Votes are computed
as explained previously, using only the count of co-occurrences, by simple operations
over the (ni,t)
i,t matrix.
5.2.4 Experimental scenario
As explained above, we adopt a framework where the goal is to allow a robot to
progressively learn to predict semantic tag(s) associated to a given speech utterance.
For example the robot is incrementally provided with examples of associations
between speech utterances and semantic tags, and should accordingly incrementally
update its internal representations in order to predict better these semantic tags in
new utterances. Semantic tags are technically encoded as keywords referring either
to general topic(s) of the utterance, sometimes corresponding to the presence of a
particular word in the utterance or to the speaker style or language.
Databases and protocols
We restricted our work on labeled classification problems, that is to say, sets of
utterances associated with a semantic label. These labels may be words contained in
the utterance as well as levels of speech or speaker identities. The system is trained
with such a learning dataset and then evaluated on its label prediction performance.5.2. HIERARCHICAL CLUSTERING OF BASIC SOUNDS 85
We take a bath
To put it in the bath isn’t funny either
The shoe is a symbol
Now mummy is losing her patience
Daddy comes closer
Angus takes off her shoe
Daddy never calls
She sits on a nappy
Now everybody is in the car
Where is the nappy
Table 5.1: Transcriptions from ten random examples from the Acorns Caregiver
dataset from Altosaar et al. (2008). Keywords are identified in bold font.
During our experiments we worked with two datasets. The first one was a home
made dataset in which utterances were single words. This dataset, which contains
twenty three examples of ten different words, was used to evaluate the performances
of the nearest neighbor retrieval with word-long continuous features. The second one
is the Caregiver dataset (Altosaar et al., 2008) provided by the ACORNS project,
composed of 1000 utterances containing 13 keywords, each spoken by 4 speakers in
English adult directed speech; this makes a total of 4000 utterances. An example of
sentences used in the dataset is Angus is lazy today. where the semantic tag/keyword
is Angus. Examples of transcriptions from utterances from the dataset are given in
table 5.1. More details on the dataset can be found in appendix B.1.
Results
In order to demonstrate the cognitive efficiency of our system we set up the following
experiment: for each speaker we randomly split the database in two sets: a train set
consisting of 900 examples and a separate test set of 100 examples. The system is
trained incrementally with each utterance of the training set; after each 100 train
examples, the system is tested on the whole test set. This protocol, which allows
us to monitor its progress, is represented in fig. 5.3. In order to characterize the
efficiency of the learning process as its improvement through training, that is to say
the convergence speed of the algorithm, we regularly test the process during the
training and visualize its performance at each step.
The same experiment can be made with the 4000 examples coming from all four
speakers, to demonstrate that the method is, in some way, robust to multi-speakers
learning. In this experiment, the training sessions are 200 examples long and after
each training session the process is tested with a constant set of 400 examples: 100
from each speaker. The training set is a succession of 900 examples from each speaker,
presented by order of speakers. Such results are presented in fig. 5.4.
These experiments demonstrate the good accuracy of our system on the keyword
recognition problem. We may compare these results with those from ten Bosch et al.
(2008), whose database we used. Actually our results are quite similar to the ones
they obtained using non-negative matrix factorization, which method is also not
centered on segmentation and proved to reach maximal performances among a variety86 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS
0 100 200 300 400 500 600 700 800 900
0.55
0.6
0.65
0.7
0.75
0.8
0.85
0.9
0.95
1
Speaker 1
Speaker 2
Speaker 3
Speaker 4
Time
Performance
Figure 5.3: Success rate on the utterance classification task with data from a single
speaker: each utterance has to be classified as containing one of the ten keywords.
Results are plotted at various stages during learning (number of training examples for
incremental learning). A separate learner is trained on each speaker; 1000 examples
for each speaker are split into 900 for training and 100 for testing. (80 ms MFCC
features)
of various competing technical approaches. However matrix factorization has other
interesting properties, as discussed in chapters 3, 4 and 6.
Those results demonstrate, first of all, the ability of our system to build an internal
representation of speech units, in an unsupervised manner (information about keywords
is not used in the building of the dictionary), and then to use this internal
representation to achieve a keyword recognition task, performed by a kind of semantic
engine, which in our experiments is the score system.
5.3 HAC representation
This section describes the representation of sound used in the works of ten Bosch et al.
(2008), Van Hamme (2008), Driesen et al. (2012) and that is also used in chapter 6.
Histograms of acoustic co-occurrences (HAC) were introduced as a representation of
sound that is based on acoustic events. It is similar to the bag-of-words approach
from previous section since it discards most of the sequential information of the
acoustic events; it however consider co-occurrences of pairs of acoustic events and
uses a static (instead of incremental) approach to codebook construction. Two
important properties that make HAC representations particularly adapted for the
NMF algorithm are that they involve nonnegative values and approximate the
sequencing of acoustic patterns in an additive manner.
The outline of the transformation from raw sound to HAC representation is given in5.3. HAC REPRESENTATION 87
0 500 1000 1500 2000 2500 3000 3500
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Time
Performance
Global
Speaker 1
Speaker 2
Speaker 3
Speaker 4
Figure 5.4: Behavior of the learner when facing data from several speakers. The plot
displays the success rate on the utterance classification task: each utterance has to
be classified as containing one of the ten keywords. Results are plotted at various
stages during learning (number of training examples for incremental learning). The
same learner is trained on a mixed dataset of 4000 examples from four speakers; 3800
examples are used for training and 200 for testing. The training data is ordered such
that the learner encounters first all data from the first speaker, then from the second
one, etc. One curve represents global accuracy; the other ones represent the accuracy
of the learner on the subset of the test data coming from each speaker. (80 ms MFCC
features)
fig. 5.5. The steps are explained in more details in the remaining of this section. We
start from the representation as sequences of MFCC vectors, which computation is
detailed in section 5.2.3. Additionally we consider dynamic information on top of
the sequence of MFCC vectors (MFCC)t
: time differences are computed with the
time difference ∆ operator defined following Driesen (2012) as
∆ xt = 2xt+2 + xt+1 − xt−1 − 2xt−2
with the convention xi = x1 for i ≤ 0 and xi = xT for i > T. This transformation is
analogous to the delayed velocities used in chapter 3 to represent motions. Similarly
the MFCC vectors are extended with additional dimensions from the ∆ MFCC and
∆ ∆ MFCC. Following Driesen et al. (2012) we keep 22 dimensions from the MFCC
vectors which yields final vectors of 66 dimensions.
5.3.1 Codebooks
There are actually three codebooks, for basic MFCC vectors and there ∆ and ∆∆
transformations. The codebooks are obtained with the k-means algorithm, described
in section 5.2.3. In the following we use the implementation of ten Bosch et al. (2008)
that builds codebooks of size k = 150 for MFCC vectors and ∆ and of size k = 10088 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS
Time signal
Seq. of windows
Seq. of MFCC
vectors
Seq. of acoustic
events
HAC
Windowing
MFCC
Clustering
(codebook)
Co-occurrence
count
Figure 5.5: Sequence of transformations from raw (time sequence) acoustic signal to
histograms of acoustic co-occurrence (HAC) representation.
for the ∆∆ vectors. The codebooks are used to convert the three sequences of MFCC
vectors and their ∆ and ∆∆ transformations into a sequence of acoustic events: each
cluster, that is to say each elements of a codebook defines an acoustic event; each
time window is thus transformed into three discrete events corresponding to the
clusters in which fall the three vectors associated to that time window.
5.3.2 Histograms of co-occurrences
The last step consists in removing most of the temporal information by building
histograms of event occurrences and co-occurrences. This process is used on top of
the three sequences of acoustic events obtained from vector quantization of MFCC
vectors and their derivatives. It is however not at all restricted to these kind of
events: any time indexed sequence of events can be transformed into such histograms.
Van Hamme (2008) gives a presentation of this construction in the more general case
of events not necessarily time indexed but represented in a lattice structure that
accounts for the ordering of the events. Finally the process is straightforward to
extend to continuous event occurrence probabilities.
For a given stream of event (et)
1≤t≤T
the stream of co-occurences with delay δ is
defined as the stream (ct)
1≤t≤T −δ
of pairs ct = (et, et+δ). Co-occurence histograms
are simply histograms of co-occurrences. What is denoted as HAC representation
in the following is actually the concatenation of co-occurence histograms for each
one of the events categories, that is to say MFCC, ∆ MFCC, and ∆∆ MFCC events.
Two such vectors are then concatenated for two values of δ: 2 and 5.
An important consequence if that representation is a property denoted as the additive
property. The additive property directly comes from the use of histograms in the
representation and states that if two words which HAC representation are w1 and
w2 are concatenated into an utterance, which HAC representation is denoted as s,
s ≃ λw1 + (1 − λ)w2
where 0 < λ < 1. The approximation ignores the events coming from the border
between the words. This important property transforms the sequencing operation
into a convex combination. It therefore transforms a sentence into a mixture of its
words, and similarly a word into a mixture of phonemes.5.4. LEARNING WORDS WITH NMF 89
5.4 Learning words with NMF
In this section we introduce the use of nonnegative matrix factorization to learn
words. Ten Bosch et al. (2008), Stouten et al. (2008) have performed experiments
demonstrating the effectiveness of NMF techniques for word learning in both an
unsupervised and a weakly supervised setup.
In their experiment, Stouten et al. (2008) demonstrate that an unsupervised use
of NMF can lead to the learning of words. They use a variation of the HAC
representation, described above, on top of a static phoneme recognizer. More precisely
they consider 43 distinct phonemes and count the co-occurrences of pairs of phonemes.
In their experiment they consider a data matrix V composed of co-occurence vectors
built from phoneme recognition on spoken utterances. The utterances are formed
as the concatenation of names of digits, such as “014”. Each column of the matrix
corresponds to the representation of one such utterance. Stouten et al. (2008)
apply the NMF algorithm to learn matrices W and H such that V ≃ W · H. The
algorithm is actually parametrized to learn 11 atoms, that are the columns of W.
In their article they demonstrate how these atoms are good representation for the
phonemes transitions that are characteristic of the name of each digit. This is done
by interpreting the atoms as probabilities on the phoneme transitions and noticing
that the phoneme transitions that actually occurs for example in the word “one”,
that is to say “AH N”, “W AH”, “ W”, and “N ” have the highest probabilities in
one of the atoms.
The experiments from ten Bosch et al. (2008) have directly inspired the setup
presented in chapter 3 and are therefore very similar. These experiments use NMF in
a weakly supervised setup: a data matrix Vsound is built using the HAC representation
from previous section from spoken utterances. The utterances are simple sentences
in containing one or several keywords. Each sentence is associated to a set of
labels corresponding to the keywords. These labels can be interpreted as a symbolic
representation of objects in a visual scene or basic gestures in a complex motion. A
matrix Vlabels contains binary vectors indicating the presence of each label, as detailed
in section 3.3.1. Similarly to chapter 3 sound and label data are concatenated for
the training into a matrix
V =
Vsound
Vlabels
.
The system is then evaluated on its ability to reconstruct either one or several labels
from new utterances.
5.5 Conclusion
In this chapter we introduce several techniques to represent sound and learn sublexical
or lexical patterns such as phonemes and words. The first technique from
Mangin et al. (2010) accounts for the incremental learning of a phoneme codebook.
A bag of acoustic events representation of sound is built from the codebook; the
efficiency of that representation is illustrated in a supervised classification task using
a simple voting algorithm.
The HAC representation from Van Hamme (2008) shares a lot of similarities with90 CHAPTER 5. LEARNING A DICTIONARY OF PRIMITIVE SOUNDS
the previous techniques: it is based on a static codebook learnt through vector
quantization of an audio stream; in addition to the representation as a bag of acoustic
events, HAC histograms use co-occurences of events, which capture more temporal
information. The bags of paired events are then represented as histograms which
provides a representation well fitted to use nonnegative matrix factorization.
The experiments presented illustrate the efficiency of these representations in unsupervised,
weakly supervised and supervised problems. In next chapter we extend
these use case to multimodal learning as a specific form of unsupervised learning.
The originality of the techniques presented in this chapter is that they discard most
of the temporal information of sound. Interestingly they demonstrate that local
information is sufficient to achieve simple recognition tasks, a result closely related
with similar phenomenon in the field of vision. Therefore these techniques provide
an interesting alternative to other techniques based on the process of high level
segmentation of the sound signal. Also, it is important to notice that sliding windows
can be used for example to locate the recognized words, using only the aforementioned
techniques. However temporal information is crucial for some applications and an
important limitation of the techniques presented above is that they do not represent
it. It is therefore an important direction for future research to extend such techniques
in order to account for the important temporal nature of speech signal.Chapter 6
Multimodal learning
In this chapter we bring together the work on the discovery of motion primitives
presented in chapter 3 and the one on the discovery of sound patterns from acoustic
language introduced in chapter 5: we present a multimodal experiment in which
learning occurs simultaneously from acoustic language and motions, without any
symbolic supervision. That experiment explores aspects of multimodal learning, but
also of the issue of language grounding. Although we have identified important issues
related to the ambiguity of decomposition in both the problems from chapter 3 and
from chapter 5, this chapter demonstrate that the ambiguity that makes each of the
problem difficult when taken separately might be much easier to solve when both
problems are considered simultaneously.
6.1 Multimodality in perception and learning
Most artificial perceptual systems, as well as humans or other animals, include sensors
from various modalities and can therefore take advantage of these multiple modalities
to gather more information on their environment. In some situations, the multimodal
nature of the signal is of great importance and is not limited to the juxtaposition of
information from each modality.
As already mentioned in section 1.3, an important example of multimodality is given
by communication: human communication is not in general reduced to speaking or
writing; instead full featured communication makes extensive use of facial expressions,
physical contact, and eye gaze. A famous evidence of the multimodal nature of
communication was given by McGurk and MacDonald (1976) and is referred as
the McGurk effect: observing lips pronouncing ‘ga’ while hearing ‘ba’ is most often
reported as perceiving the sound ‘da’ (see also Schwartz, 2010). Because human
communication is so naturally multimodal, robots or intelligence systems pursuing
human assistance or collaboration with humans might greatly benefit from taking
into account several modalities. For example, while degraded communication is
always possible, as when using a telephone, that only transmit the acoustic modality,
it is not as efficient and natural as direct communication. Only taking one modality
of communication into account might also make it more difficult to learn.
9192 CHAPTER 6. MULTIMODAL LEARNING
The question of symbol grounding, as introduced by Harnad (1990) and discussed by
Glenberg and Kaschak (2002), points out that learning language is not only about
learning the signs of communication such as words, but also requires to relate them
to their semantic content. Since that semantic content often lies in other modalities,
this problem can be seen as another important instance of multimodal learning.
However multimodal learning is not restricted to language learning. The emergence
of the concept of ‘dog’ is not only related to the ability to recognize pictures of dogs
but also to the sound of a dog barking and the touch of a dog’s fur. Indeed, many
concepts cannot be completely characterized without grounding them on several
modalities: the concept ‘metallic’ cannot be characterized without taking into account
its perceptual expression on several modalities (for example visual aspect, sound,
touch, or taste), together with the recognition of the spoken or written word.
Unlike supervised learning, unsupervised learning, or reinforcement learning, multimodal
learning is not a specific class of algorithm. Indeed, multimodal data can
be treated as unimodal data on which an unsupervised learning is applied (some
examples provided in this chapter fall under this category). It can also bee considered
a supervised regression problem that consist in predicting the signal in one modality,
knowing the others. Thus, we prefer a presentation of multimodal learning as a focus
on several questions or problems. This chapter focuses more precisely on the study
of the mechanisms underlying the self-organization of multimodal perception that
can explain the emergence of concepts. The notion of concept does not necessarily
refers to an explicit representation of that concept but rather on the emergence of
behaviors that are interpreted as mastering of that concept. For example a child is
said to master the concept ‘dog’ not by looking into his brain for a neuron spiking
each time a dog is seen but rather by its ability to relate the sight of a dog with the
sound of a barking dog.
The acquisition of semantic concepts from self-organization of multimodal perception
however raises the question of the drives and cues that enable that organization.
In the case of language learning, experiments on children performed by Akhtar
and Montague (1999), and Smith and Yu (2008) demonstrate that cross-situational
learning, which focuses on elements that are persistent in the environment across
different uses of a word, might be used by children to learn the meaning of words.
Most of the approaches presented in this chapter rely on cross-situational learning to
explain or model the acquisition of lexicons. However mechanism such as the whole
object assumption, mutual exclusivity (see Markman, 1990), and conceptual reasoning
(Landau et al., 1998) are also known to play a role in the process of associating
linguistic labels to concepts.
Another important aspect of multimodal learning is related to ambiguities and their
resolution. As pointed out by Belpaeme and Morse (2012): “The challenge which
cross-situational learning needs to solve is not only one of mapping a word to a
meaning, but of distinguishing that meaning from possible distractors.” Indeed,
Quine’s indeterminacy of reference (Quine, 1960) states that relating words to
meanings when learning a foreign language is intrinsically ambiguous. On the other
hand, many models of learning semantic components from one modality also encounter
similar ambiguity issues. An example is given by the experiments described both
in chapter 3 and section 4.2; another one is encountered with the choice between
thematic and taxonomic association of concepts as explained in Markman (1990)
1
.
1Thematic association refers to the association of concepts that are related because they interact6.2. RELATED WORK 93
Other analogies can be drawn between this phenomenon and the ambiguity of word
segmentation (see Brent, 1999), but also with multistability phenomenon as described
by Blake (1989), Leopold and Logothetis (1999), Schwartz et al. (2012b), and the
cocktail party effect (see Cherry, 1953).
It comes that ambiguity and the means to overcome it are central aspects of multimodal
learning. In a somehow paradoxical manner, many multimodal problems
feature ambiguity in one or several modalities, but, as pointed out in chapter 3 and
section 4.2, integrating information from several modalities can be efficiently used to
overcome such ambiguity. In other words, considering the problem of concept learning
separately in each modality suffers from the presence of ambiguity, but looking at
the same problem in several modalities at the same time might help resolving that
ambiguity instead of increasing it. For example the role of multimodal perceptions
relatively to multistability is discussed by Schwartz et al. (2012b). Similarly Schwartz
et al. (2004) explores the role of vision of the lips for improving intelligibility of
spoken sound. Finally Sodoyer et al. (2004) present an algorithm for source separation
taking advantage of audio-visual information. In the frame of learning language this
emphasises the mutual interaction between the learning of the language itself and
the concepts it describes. On the one hand perceptual knowledge is used to identify
linguistic signs and structures that are by themselves ambiguous. On the other hand
language also plays an essential role in shaping the concepts it describes.
6.2 Related work
Before introducing some works related to the one described later in that chapter, it
is important to notice that the boundaries of what may be considered a multimodal
learning problem are difficult to draw. As an example, any classification or regression
algorithm can be seen as solving a multimodal learning problem, where one modality
plays a special role, either by being constrained to a specific strong structure (labels
in classification), or by having to be reconstructed. That perspective is taken in
chapter 3 and section 4.2 with respect to multi-label classification. Assuming such
structure in the data is however often not compatible with th problem of concept
emergence from sensori-motor perception; our contribution presented in this chapter
thus focuses on the use of unsupervised algorithms.
In their seminal work, Roy (1999), Roy and Pentland (2002) introduce a learning
architecture called Cross-channel early lexical learning (CELL), together with an
example implementation, that demonstrates how the problems of learning linguistic
units, semantic categories, and their relations (in the form of lexical units) can be
achieved at the same time. In CELL, both linguistic information and contextual
information, each of which may come from several sensory channels, are segmented
according to saliency cues such as utterance boundaries or changes in motions. In
a second stage, implemented by a model of short term memory, pairs of recurrent
co-occurring linguistic and contextual events are filtered. Finally models of linguistic
units and semantic categories are built; they combine clustering of similar language
stimuli as well as contextual stimuli and optimize the mutual information between
together, as milk and cow. Taxonomic association refers to concepts that belongs to the same class,
such as cow and pig94 CHAPTER 6. MULTIMODAL LEARNING
language and context. The pairs of linguistic units and semantic categories with the
highest mutual information are kept as lexical units.
Yu and Ballard (2004) have presented work addressing a similar problem but focusing
more precisely on user-centric and multimodal information. They present a learning
architecture that is capable of forming semantic models of both actions and observed
objects by using unsupervised learning techniques. First, models of actions are
formed by fitting a mixture of hidden Markov models on the observations and models
of objects result from an agglomerative clustering algorithm. The models of objects
and actions define concepts and together form the contextual information. Then, this
contextual information is used to extract word-like units related to these concepts
from phoneme transcriptions of the recorded utterances. More precisely longest
phonetic sequences are extracted from all utterances related to the same object
or action. Then an alignment techniques, that comes from the field of automatic
translation, is used to form the lexical units composed of words and concepts.
In Iwahashi (2003) the studied language is related to an (object, action, position)
semantics which appears to be closely related to the language grammar. More
precisely a lexicon is built from data: the lexicon actually represents a mixture of
word and meaning pairs, where meanings can either be objects or actions. Specific
probability models are implemented to represent the acoustic modality as well as the
modality of visual objects and the one of visual actions. The number of elements
in the lexicon is automatically chosen in order to maximize the mutual information
between the speech and contextual modalities. In their model a representation of
the grammar of the language is learnt by identifying in which order the linguistic
elements corresponding to the eventual object, action, and landmark appear. In
another experiment Iwahashi (2004) details how a similar architecture can benefit
from the possibility of asking a user for binary feedback when unsure of the novelty
of an encountered lexicon pair.
Sugita and Tani (2005) introduce a recurrent neural network architecture that learns
to relate a basic language to corresponding behaviors of a robot. The system is
capable of both understanding the words composing the language, that in their
experiment are represented by symbols, and their composition, that is to say the
syntactic structure of the language. Another aspect of learning action related to
language is explored by Tuci et al. (2011) who provide a model of multimodal
learning for symbolic language and real actions. Their experiment demonstrates that
learning a compositional structure shared between action and language can allow
robotic agents to achieve better generalization of the acquired motor knowledge.
More precisely the linguistic input received by the system shapes a model of the
structure of actions and makes the system capable of achieving behaviours that were
not encountered in training. Furthermore Massera et al. (2010) have demonstrated
that providing linguistic instructions can facilitate the acquisition of a behavioral
skill, in comparison to pure motor learning. Although these experiments are limited
to symbolic language, they are good illustrations of the implication of learning
multimodal actions and grammars.
Our experiment (Mangin and Oudeyer, 2012a), presented in section 3.3, can be seen as
a multimodal learning experiment where the language modality is actually symbolic.
Ten Bosch et al. (2008), Driesen et al. (2009) have presented a similar experiment
where the contextual modality is the one that is symbolic and the linguistic one is
continuous. Similarly Lienhart et al. (2009), Akata et al. (2011), BenAbdallah et al.6.2. RELATED WORK 95
(2010) use the NMF or probabilistic latent semantic association (PLSA) algorithm
to learn from a continuous and a symbolic modality. Driesen et al. (2010) have
also used the NMF algorithm to learn from two continuous modalities. However
their evaluation is based on the reconstruction of a third, symbolic, modality. An
interesting aspect of all these approaches is that they use common feature learning
algorithms, that are some kind of unsupervised algorithms, instead of relying on
explicit models of the lexical units and their relations to language and context.
Another example of the use of feature learning techniques is given by Ngiam et al.
(2011) who also present an experiment based on a similar multimodal setup. They
introduce an architecture based on sparse restricted Boltzmann machines that learns
from two continuous modalities: one is acoustic and the other corresponds to the
observation of the speaker’s lips. They demonstrate how in certain conditions the
algorithm reproduces the McGurk effect. Their algorithm actually learns a new
representation of the input in an unsupervised setup and is then evaluated combined
with a standard supervised classifier trained on top of this representation. Their
work can also be described as a sensor-level multimodal fusion: several modalities
are used to build a common representation that is later used to solve a classification
problem. Actually multimodal fusion has already been used to improve supervised
classification: Potamianos et al. (2003) discuss the use of both sensor-level fusion and
decision-level fusion for speech recognition. Saenko and Darrell (2007) also implement
decision-level fusion and demonstrate that it improves the recognition of objects.
In the following we present and extend a multimodal learning experiment (Mangin
and Oudeyer, 2013) based on the use of the NMF algorithm. The setting and the
algorithm are closely related to the one of Driesen et al. (2010); the experimental
setup also shares many similarities with the one from Ngiam et al. (2011). However in
these experiments we do not evaluate the learning through a standard classification
task: instead of testing the reconstruction of symbolic labels, the system is tested on
a behavior based classification task, as encountered by children. We show that fitting
an explicit representation of a lexicon is not necessary to produce behaviors that
are considered on children as evidence of the mastering of lexicons understanding.
That aspect is an important novelty of our work in comparison of the aforementioned
previous work. More precisely we do not build a system with mechanisms for
explicit decomposition into concepts and words, which would make the decomposition
capability a pre-requisite to the learning of words, concepts, and their relation. The
latter approach is described by Wrede et al. (2012) as targeting compositional
understanding first, which they oppose to teleological understanding2
. Indeed the
system presented below self-organizes until it is capable of solving a simple behavioral
classification task; it therefore achieves teleological understanding of sentences without
word segmentation and recognition being implemented as a pre-requisites. We however
illustrate the fact that the compositional understanding also emerges at the same
time. These aspects constitute an important difference between the work presented
in this chapter and the ones from Roy (1999), Roy and Pentland (2002) and Yu and
Ballard (2004).
Similarly to all the aforementioned approaches, ours use the cross-situational heuristic
to discover the semantic concepts: a form of compression is performed on the sensory
2As explained in section 1.2, compositional understanding consists in understanding a complex
concept as the combination of the simple parts that compose it. On the other hand teleological
understanding is the understanding of the concept as a whole, generally with respect to a specific
interaction task.96 CHAPTER 6. MULTIMODAL LEARNING
input that favor the representation of events that occur simultaneously.
6.3 Experimental setup
This chapter presents a system that learns to link elements from one modality of
perception to related elements in other modalities. We perform several experiments
in order to explore the learner’s ability to represent semantic relations between the
modalities. These semantic relations may correspond to either an essential relation
as the one relating the barking to the image of the dog, or conventional relation as
the one relating the name ‘dog’ to images of dogs.
The origin of the essential relation comes from the reality of an object that has
manifestations in several modalities. Their exists such a thing as a dog that has
manifestations in the visual modality as images of the dog, in the touch modality as
the touch of the dog’s fur or its claws, or in the acoustic modality as the sound of
the dog barking. Although not all of these manifestations occur each time the dog is
encountered, they are often perceived simultaneously since they corresponds to the
actual presence of the dog.
On the other side, the conventional relation is characteristic of language: it corresponds
to the fact that the word ‘dog’ is often pronounced when a dog is present
and is the object of attention. It is extensively used by parents to teach new words
to children.
An important element is that both relations are characterized by that cross-situational
property, therefore a mechanism leveraging such information would be able to learn
both. In the following we denote by semantic concept the set of manifestation of
such an object, either related essentially or by convention. Additionally a semantic
concept may have several manifestations in a single modality. For instance a dog is
associated to both the touch of its fur and claws, or to the sound of the dog barking
and the word ‘dog’. When the essential relation is the same as the convention, the
word actually takes the form of an onomatopoeia. Importantly this is an example
of a mechanism for symbol grounding; more generally the semantic relations we
consider actually include Peirce’s icon, index, and symbol (see Steels, 2008, 3.1). In
the following, the semantic relations are only characterized in the stimuli by the
relatively simultaneous occurrence of the related elements in the various modalities,
that is, the cross-situational relation.
In this setup we consider the situation in which objects or motions are perceived by
an intelligent system while sentences describing the scene are pronounced. Such a
setup is illustrated in fig. 6.1.
The modalities presented can vary from one experiment to the other, but a semantic
relation exists between some elements of the different modalities. These elements
might be of several natures: gestures in motions, object in visual scenes, or words
in spoken utterances. We consider semantic relations as mappings between these
elements: for example a word is related to a gesture, or a gesture to an object in
a scene. An example of such a mapping is given in table 6.1. During training the
learning agent observes examples of scenes as observations in several modalities. The
scenes are such that in each of them one multimodal concept is present and observed
in several manner in the modalities. For example a sentence is heard containing the6.3. EXPERIMENTAL SETUP 97
Training The learner observes a set of
examples of gestures each of which is paired
with a spoken descriptions of the gesture.
I make circles with my arm.
I am clapping!
Testing The learner hears a new spoken
utterance and is asked to chose a gesture
from a small set of demonstrated gesture
that best fit to the description.
Look at the circles I do.
?
The learner choses the
gesture best matching
the sentence.
Figure 6.1: Illustration of the cross-modal classification task on which one learner
presented in this chapter is tested. The transcriptions of the spoken utterances are
represented on the figure to illustrate the keyword semantics. However, the learner
does not observe these transcriptions.
word ‘dog’ and a picture of a dog is seen. However not all perceived elements are
meaningful, that is to say related to elements in other modalities. For instance many
words appear in each utterances that are not semantically related to anything in
other modalities. Similarly other objects may appear in the visual scene that are not
related to the subject of the sentence. Therefore the association between elements
of the several modalities is ambiguous in each example and the system has to use
several observations to solve that ambiguity. The learning system is then tested
by observing only one modality and having to chose between several examples in
another modality the best match. For example the system hears a sentence talking
about a dog and has to chose between several pictures the one containing a dog.
Interestingly this experiment is very similar to the one performed by developmental
psychologists to study the role of various heuristics used by children for the acquisition
of words, including cross-situational information, as in the works from Markman
(1990), Yurovsky et al. (2012). Unlike many approaches presented in previous works
on multimodal learning, we do not evaluate the performance of the learner on a
regular classification task. Instead the learner is evaluated on its ability to relate
elements from distinct modalities, in a way similar to the one that would be used
on a children. We also evaluate the emergence of words recognition as well as the
emergence of a representation of the semantic concepts.
The interactions mechanism between the learning agent and the caregiver that
provides the demonstration actually shares many similarities with the one from the
talking heads experiment as described by Steels (1999), Steels and Kaplan (2002)
(see also section 1.3). More precisely the agent we present in this chapter plays the98 CHAPTER 6. MULTIMODAL LEARNING
role of the ‘hearer’ from the talking heads, while the caregiver takes the role of the
‘speaker’. There are however important differences between our setup and the one
from Steels (1999). First, there is no turn in the role taken in our experiment: the
learner only plays the hearer and the caregiver only plays the speakers. Importantly
this means that the language is taught to the learner by the caregiver, instead of
evolving and emerging from their interaction. Also, in our experiments, the naming
game, that consists for the hearer in guessing which object the hearer is talking
about, is only played during the evaluation stage. During the training the learner
passively observes the caregiver teaching and does not receive any other feedback.
Finally, the similarity with the talking head agent is mainly behavioral; our agent
uses a different architecture and mechanisms as the ones implemented in the talking
head, as explained and discussed in more details in next sections.
6.4 NMF for multimodal learning
This section presents the algorithmic tools that are used in the following multimodal
experiments. They are based on the nonnegative matrix factorization algorithm (see
section 2.1), that is used in a very similar way than in the experiments presented in
sections 3.3 and 5.4.
The first part of this section presents the learning of a multimodal dictionary; it is
then explained how the learned dictionary provides a representation of data that
is not bound to any modality; in the following this representation is referred to as
the learner’s internal representation of data. Finally we explain how the learner can
transform data from one or several modalities to an internal representation or to an
expected representation in unobserved modalities.
The following assumes that each input from the modalities is available as a set
of samples, each of which is represented by a nonnegative vector. We consider a
setting in which the learner observes samples in several modalities. For example, the
system visually observes objects while hearing a spoken description of the scene. We
represent the perception of the samples in each modality by a vector va, where a
denotes the modality (for example the system observes the objects as vimage and the
sound description as vsound ). Details about such representations for the modalities
used in the experiments are given in section 6.5.
6.4.1 Learning a dictionary of multimodal components
We call components primitive elements that are mixed together into observations, in
the same way that phonemes can be seen as mixed together into a word or a sentence.
Compared to the common context of clustering, this notion of component is more
general: observations are mixtures of several components at the same time, instead
of being just a noisy observation of one centroid.
The learner presented here builds a dictionary of multimodal components according
to the following model: it searches k components, each represented by a vector wj (j6.4. NMF FOR MULTIMODAL LEARNING 99
from 1 to k), such that each observed example v
i verifies:
v
i ≃
k
j=1
h
j
iw
j
(6.1)
where h
j
i
are coefficients and ≃ denotes a notion of similarity between matrices that
is defined below. This is equivalent to clustering when the wj are the centroids and
for each i only one h
j
i
is nonzero and equals 1. We consider a more general case
where wj and h
j
i
are only constrained to be nonnegative.
In the following, the set of n examples is represented by a matrix V of shape d × n
(each example is a column of V ), the set of components by a matrix W of shape
d × k, called ‘dictionary’, and the coefficients by a matrix H of shape k × n. The
previous equation, that models the objective of our learner, can thus be re-written
as:
V ≃ W · H (6.2)
In the following, the generalized Kullback-Leibler divergence (also known as Idivergence)
is used to characterize the reconstruction error between V and W · H.
The I-divergence is denoted as DI (A∥B), is defined by eq. (2.8). In order to minimize
DI (V ||W · H), the algorithm, based on multiplicative updates of W and H, that was
originally presented in Lee and Seung (1999), is used. A description of the algorithm
is given in section 2.1.2.
6.4.2 NMF to learn mappings between modalities
Previous section explains how, for a given set of observations from several modalities
that is represented by a matrix V , the NMF algorithm can learn a dictionary W and
a coefficient H matrices such that training examples are well approximated by the
product W · H.
We actually consider the case of data coming from several modalities (three in the
example). More precisely we assume the data matrix V is composed of column
vectors v such that:
v =
vmod1
vmod2
vmod3
and thus V =
Vmod1
Vmod2
Vmod3
.
The minimization of the I divergence induces a trade-off between error in one modality
relatively to others. In order for the error in each modality to be treated on a fair
level by the algorithm it is important that the average values in the representations
are of similar magnitude. It can be easily obtained by normalizing data in each
modality. In the following experiment data in from each modality is normalized
according to its average L1 norm.
Since the observations, that is to say the columns of V are composed of several
modalities, the dictionary W can also be split into several parts each corresponding
to one modality. That is to say each components can be seen as the concatenation of
several parts: one for each modality. For example if the data is composed of three100 CHAPTER 6. MULTIMODAL LEARNING
modalities: mod1, mod2, and mod3, there exist matrices Wmod1 , Wmod2 , and Wmod3
such that:
W =
Wmod1
Wmod2
Wmod3
.
In the following we interpret the columns of the matrix H, as an internal representation
of the data by the learner. For example, an internal representation h is induced by
an observation in modality one such that vmod1 = Wmod1 h or one in both modality
one and modality three by:
vmod1
vmod3
=
Wmod1
Wmod3
h.
Also, for a given internal representation h we say that the learner expects the
observations given by the previous formulae.
Interestingly, it is possible to use the learned dictionary to compute an internal
representation of an example, even if the example is only observed in a subset of the
modalities. Given an example observed only in one modality, vmod1 , one can search
for an h such that vmod1 is well approximated as Wmod1 h. More precisely this is
equivalent to finding an h solution of:
arg min
h
DI (vmod1 , Wmod1 h) (6.3)
h
vmod1 vmod2
arg min
h
DI (vmod1 , Wmod1 · h) Wmod2 · h
Actual perception Expected perception
Internal representation
Figure 6.2: Once the system has learnt the dictionary (Wmod1 and Wmod2 ), given
an observation vmod1 in one modality it can reconstruct the corresponding internal
representation as well as the expected perception in another modality.
The NMF algorithm used in these experiments actually alternates steps minimizing
DI (V ||W · H) with respect to W and H. Solving eq. (6.3) is equivalent to the
NMF problem with respect to H only; therefore, it can be obtained with the same
algorithm, but only using the steps that update H. In theory this approach scales to
any number of modalities although the experiments presented here only test it on
numbers from two to four.
Finally it is also possible to reconstruct a representation of the data that the system
would expect in a modality, given observations in other modalities. For that, from6.5. DATA AND REPRESENTATION 101
an observation featuring a subset of the modalities, the system fits an internal
representation h using the method described previously. Then it can reconstruct the
expected representation in an unobserved modality (for example the third modality,
mod3 ) by computing the product Wmod3 h. This forms a framework, illustrated in
fig. 6.2, that uses a learned multimodal dictionary to transform data from modalities
to internal representations or expected data in other modalities. It enables a large
set of experiments as illustrated in section 6.6.
6.5 Data and representation
In the following experiments three raw modalities are used: motion, sound, and
image. For comparison purposes, a symbolic modality is sometime also used. It is
represented in the same way than explained in section 3.3.1. The multimodal data
is obtained by taking examples from three datasets of motions, sounds, and images
as explained in next sections. In some of the experiments time windows are built
from images, that are actually frames from videos, and the recorded utterances. The
process used to obtain these examples is explained in section 6.6.2.
In each experiment an arbitrary random mapping between elements from one modality
to the others is chosen; these elements are objects in images, keywords in sentences,
and gestures in motions. More precisely the semantic concepts occurring in one
modality are associated to the one of the others. For example the keyword ‘shoe’ from
the sound dataset is associated with the gesture ‘squat’ from motion dataset. The
associations are both random and arbitrary, which means they are purely conventional
and do not correspond to intrinsic similarities of the corresponding data.
6.5.1 Motions
The motion dataset was recorded from a single human dancer with a KinectTM device
and the OpenNITM software3
that enables direct capture of the subject skeleton. The
device, accessed using the ROS framework4
, provides an approximate 3D position of
a set of skeleton points together with angle values representing the dancer’s pose at
a given time.
We recorded a motion dataset composed of a thousand examples of ten dance gestures,
similar to the one used in the dataset presented in section 3.3.1. The gestures are
listed in table 6.1. The gestures are either associated to legs as for example squat
and walk movements, to both arms as clap hands and paddle, or to left or right arm
as punch or wave hand. Yet this structure is not known by the learner initially. They
correspond to both discrete and rhythmic movements. This datased named Choreo2
is publicly available at http://flowers.inria.fr/choreo2.
6.5.2 Sounds
The following experiments use the Acorns Caregiver dataset (Altosaar et al., 2008),
that is described in appendix B.1. The acoustic data is represented according to the
3http://www.openni.org
4Robotic Operating System (http://ros.org)102 CHAPTER 6. MULTIMODAL LEARNING
HAC representation presented in section 5.3.
In the following experiments, we use recordings from the first speaker from the
Caregiver dataset; it includes 1000 utterances containing 10 keywords; in English
adult directed speech. An example of sentences used in the dataset is Angus is lazy
today. where the semantic tag/keyword is Angus.
6.5.3 Images and videos
Pictures used in the experiments were acquired as frames from an interaction with
an iCub robot, through an RGBD sensor (red, green, and blue camera coupled with
a depth sensor). Both the acquisition of the frames and their processing is described
in more details by Lyubova and Filliat (2012). The processing of the image stream
goes through the following steps.
1. Proto-objects are segmented using information from motion, depth sensors, and
an agglomerative clustering of local descriptors. From there each proto-object
is processed independently.
2. Two types of local features are extracted: SURF descriptors (Bay et al., 2006)
and HSV (hue, saturation, value) of superpixels (obtained by grouping of
similar adjacent pixels). Once extracted features of each type are quantized by
incrementally learning growing dictionaries of features. This process is very
similar to the one presented for sound in section 5.2.
3. Closest SURF points and superpixels are grouped into pairs or triplets of feature
vectors denoted as mid-features. These mid-features are quantized similarly to
the features.
4. At this point, and following the bag-of-word principle (Joachims, 1997, Filliat,
2008, Sivic and Zisserman, 2008), each view is represented as an histogram
of quantized features or mid-features. A dictionary of object views and their
models are learned incrementally using the TF-IDF score, expressed in eq. (5.1),
to track the probability of a feature to appear in a given view.
5. Finally a dictionary of objects is built from recognition of views and tracking
information.
In the following experiments, one or a combination of several of the representations
computed in the aforementioned process are used. More precisely the representation
used include (always in the quantized form): SURF features (SURF), SURF couples
(SURF mid-couples), HSV superpixels (color), HSV superpixels couples (color midcouples),
and triplets (color mid-triplets).
6.6 Experiments
This section describes several experiments that explore the capacity of the algorithm
from section 6.4 to learn semantic concepts and their grounding in several modalities
in the setting that was introduced by section 6.3.6.6. EXPERIMENTS 103
Name Limb(s) Motion
shoe both legs squat
nappy walk
book right leg make a flag/P on right leg
daddy both arms clap
mummy mimic paddling left
Angus right arm mimic punching with right arm
bath right arm horizontal goes from side to front
bottle left arm horizontal left arm, forearm goes down to form a
square angle
telephone make waves on left arm
car say hello with left arm
Table 6.1: List of associations between keywords from the acoustic dataset (names)
and gestures from the motion dataset. The limbs on which the motions occur are
also mentioned.
6.6.1 Learning semantic associations
In order to investigate the learning of semantic associations between elements of
the acoustic, visual, and motion modalities, we use an artificial mapping between
acoustic words, visual objects, and gestures. An example of such a mapping is given
in table 6.1. Each triplet of word, gesture, object forms a semantic concept. The
data used to train the system is composed of sentences, motions, and images; each
sentence contains one of the keywords, each motion features one gesture, each image
an object. Finally the gesture, the word, and the object from an example belong to
the same semantic concept, which implements the cross-situational manifestation of
the semantics.
The system is trained on various combinations of either two or three modalities. The
modalities might be denoted as Motion or M, Sound or S, and Image or I. After being
exposed to a set of training multimodal examples, the system is tested as follows: it
observes a new example, called test example in a subset of its modalities and has to
chose the best match among several examples observed in other modalities, which
are denoted as reference examples. An illustration of that process is given by fig. 6.1.
For example, the system is trained on sound and image and tested by hearing a
sentence (the test example) and having to chose among a set of images (the reference
examples) the one that is best described by the heard sentence. Another possibility is
to train the system on motions, sounds, and images, and test it on its ability to chose
from several sentences the one that best describes a pair of a motion and an image
that it observes. We denote such settings by the notation: M1 → M2, where M1
represent the modality or modalities in which the test example is observed, called
test modalities, and M2 the modality or modalities, denoted as reference modalities,
in which a best matching example must be chosen among a set of reference examples.
For example hearing a sentence and choosing the best matching object from images
is denoted by Sound → Image or S → I. Viewing an object and a gesture and finding
the best matching sentence amongst examples is denoted by M,I → S. The testing
process is illustrated in fig. 6.3. As mentioned above, the testing process is analogous
to an instance of the language game from the talking head experiment form Steels104 CHAPTER 6. MULTIMODAL LEARNING
(1999).
vM1 v
(2)
M2
v
(1)
M2
v
(3)
M2
M1 M2
Test modality Reference modality
Test example Reference examples
Same semantic class as
test example.
Different semantic class.
Different semantic class.
chose best match
Figure 6.3: The learner is tested on its ability to relate an observation of a test
example in one modality to the right reference example in another modality.
Section 6.4.2 explains how to use NMF on multimodal data, to learn a dictionary and
the associated internal representation and finally how to transform data either from
one modality to another, or from a modality to the internal representation (see also
fig. 6.2). We use that mechanism as a basis to implement a classification behavior for
the learner. For a given example the system uses the learned multimodal dictionary
to produce an internal representation of the example (coefficients h) and eventually
also an expected transcription of this example in another modality. It then compares
an example from the test modalities to those in the reference modalities. To perform
the comparison the system can either:
• compute an internal representation of the test example, compute internal
representations of the reference examples, and then compare these internal
representations.
h
h
(1)
h
(2)
vtest
v
(1)
ref v
(2)
ref
Internal coefficients
Test modality
Reference modality
compare
compare
• compute an internal representation of the test example, use it to generate
an expected representation in the reference modality, and compare it to the
reference examples.
h
vtest
vref
v
(1)
ref
v
(2)
ref
Internal coefficients
Test modality
Reference modality compare
compare6.6. EXPERIMENTS 105
• compute internal representations of reference examples, for each of them compute
an expected representation in the test modality, and compare them to the
test example.
vtest
v
(1)
test
v
(2)
test
h
(1) h
(2)
v
(1)
ref v
(2)
ref
Internal coefficients
Test modality
Reference modality
compare
compare
The choice of one of these methods is referred as the modality of comparison. In
the following we mainly use the comparison on internal representation. The main
interest of proceeding that way is that the comparison is the same, regardless of what
the test and reference modalities are.
Choosing the modality of comparison is not sufficient to fully define the system: in
order to be able to chose a best matching reference example, the system needs a
metric to perform the comparison. Several alternative metric could be chosen to
perform the comparison. More importantly, the choice of the metric and its efficiency
is highly dependant on the modality of comparison, as shown by the following results.
We considered the following common metrics.
• Euclidean distance
• Kullback-Leibler or I-divergence The Kullback-Leibler and I-divergences
are introduced by eq. (2.8). In the following we denote its usage as KullbackLeibler
(KL), although when the data is not normalized we use the I-devergence.
By default the divergence from the test example to a reference example is
computed; however since it is not symmetrical, we also experimented with the
reversed divergence (that is to say the divergence from a reference example to
the test example) and a symmetrized divergence obtained as: Dsym(x∥y) =
1
2
D(x∥y) + D(y∥x)
. None of the three approaches was systematically better
in our experimentation.
• Cosine similarity5 The cosine similarity is no a metric but can be used to
compare vectors; it ranges between −1 and 1 and the biggest the value is, the
most similar the vectors are. It is defined for two vectors x and y ∈ R
d
, as:
cosine similarity(x, y) = x · y
∥x∥∥y∥
Other choices are possible. In our experiments, many modalities are represented by
histograms, or concatenation of histograms, that are of high dimension. In these
modalities the Euclidean norm is not necessary meaningful, this is why we use other
measures of similarity such as the I-divergence and the cosine similarity.
In the following, the system is evaluated on its recognition success rate. It is defined
as the proportion of correct recognition of the system; a recognition is correct when
the system choses a reference example matching semantic concept from the test
5http://en.wikipedia.org/wiki/Cosine_similarity106 CHAPTER 6. MULTIMODAL LEARNING
Modality Success rate
Test Reference Comparison KL Euclidean Cosine
Sound Motion Internal 0.608 0.612 0.646
Motion 0.552 0.379 0.444
Sound 0.238 0.126 0.208
Motion Sound Internal 0.610 0.704 0.830
Sound 0.106 0.090 0.186
Motion 0.676 0.642 0.749
Table 6.2: Success rates of recognition of the right reference example from a test
example. The values are given for many choices of the reference test and comparison
modalities and various measures of similarity. The results are obtained by averaging
on a ten fold cross-validation, baseline random is in that case 0.11.
example. In the following the system is always presented with one reference example
per class.
In the following experiments we consider 10 semantic classes; when not specified
otherwise, we use a default value of k = 50 as the number of atoms for the NMF
algorithm with 50 iterations, although a number of 10 is generally already close to
convergence.
Motion and spoken utterances
Table 6.2 compares the influence of the modality of comparison and metric on the
classification success. These result show for example that the sound modality, mainly
because of its very high dimension, is not a good choice for the comparison, specially
when the comparison is performed with the Euclidean metric. Indeed the choice of
the metric to use is highly dependant on the nature of the data in the modality;
therefore, using the internal representation is a way to only chose one metric.
The results from table 6.2 demonstrate that the system is capable of learning aspects
of the semantic associations. If the system is trained on a dataset where no semantic
semantic association exists between the two modalities (such a dataset can be obtained
by choosing a random motion and a random utterance for each demonstration), it
generally scores around 0.116
.
Table 6.3 presents very similar results in the case were symbolic labels are included
in the training data. This is done similarly to the experiments from section 3.3 and
Mangin and Oudeyer (2012a): the label of each example is transformed to a vector of
10 binary values with zeros everywhere except for a one at the index corresponding to
the label. The binary vector is concatenated to the vector representing the example.
This setup is equivalent to adding a third modality, which contains unambiguous
symbols, in order to improve the learning. The symbols are said to be unambiguous
in comparison to utterances that contains several sounds where only some sequences
of specific sounds form words, and generally only one word per sentence is relevant.
The results from table 6.3 illustrate the fact that the system does not clearly takes
6This is not 0.1 because the distribution of sound examples from the Caregiver dataset is not
exactly uniform.6.6. EXPERIMENTS 107
Modality Success rate
Test Reference Comparison KL Euclidean Cosine
Sound Motion Internal 0.387 0.699 0.721
Motion 0.543 0.261 0.424
Sound 0.136 0.089 0.131
Motion Sound Internal 0.573 0.620 0.702
Sound 0.114 0.090 0.122
Motion 0.519 0.469 0.552
Table 6.3: There is no significant improvement of the recognition rate when unambiguous
symbols are added to the training data. The table represents the same
success rates as previously (see table 6.2) but with a learner that observed symbolic
labels representing the semantic classes during training. The results are obtained by
averaging on a ten fold cross-validation, baseline random is in that case 0.11.
advantage of this additional information. An interpretation of these results is that
the system is already capable of dealing with the ambiguity and is not helped by
such additional symbolic information. However the relevance of such comments is
limited to the current algorithm and its implementation.
Images and sound: comparison of the image representations
In this section we perform similar experiments with the image and sound modalities.
In order to get more meaningful results, the experiments are run several times for
various combinations of train, test examples, and reference examples. The latter
being always taken outside the two previous sets.
Figure 6.4 presents results each using a different subset of image descriptors. For
each of them, results are given both for the I → S and S → I settings. The results
indicate that on the dataset, the color and color-pairs representations work best. It
also demonstrates that the system is rather robust to adding information: in the
results, the concatenation of several representations generally behaves nearly as well
as the best of the representations, taken alone.
Other modalities
In this section we present similar results using various combinations of the motion,
sound, and image modalities. Results are presented together with box plots corresponding
to 20 repetitions of the experiment with random label associations, test set,
train set, and reference examples. For the image modality, the color descriptors (see
section 6.5.3) are used, that give the best results, as illustrated in previous section
and fig. 6.4.
More precisely several setup are presented, including learning from motion and sound,
as well as from image and sound, as previously, but also learning from motion and
image, and finally learning from the three modalities at the same time. For each
of these choices of learning modalities, several setup are possible for the test phase,
specially when the three modalities are present during training: these include testing108 CHAPTER 6. MULTIMODAL LEARNING
0.0
0.2
0.4
0.6
0.8
1.0
Cross-modal association score
SURF color SURF-pairs color-pairs color-triplets SURF, color
SURF-pairs,
color-pairs
SURF-pairs,
color-triplets
SURF, color,
SURF-pairs,
color-pairs,
color-triplets
image → sound sound → image
Figure 6.4: Box plot of classification success rates for various image features in the
experiments I → S and S → I. Each plot corresponds to the use of a subset of image
features, each plot contains two boxes representing the average success as well as
quantiles and extreme values through cross-validation. The features used for each
experiment are presented on top of the figure. The random success rate are around
0.1.
on the recognition of one modality from another (for example I → S) but also from
two modalities to another (for example I, M → S), or conversely one modality to two
(as in M, S → I).
Figure 6.6 compares various one modality to one modality setups for the case where
only the two modalities that are used for testing are present in the training and
the case where an additional modality was also present during testing. The results
demonstrate that the system is capable of learning the semantic concepts event when
more than two modalities are present. There is no significant difference between the
cases of two and three modalities: the system neither benefit noticeably from the third
modality nor does it suffer from the increased dimensionality of the data. However,
since the number of atoms k is fixed, the results could come from the fact that when
the system is trained on three modalities, the dimension of the dictionary becomes
insufficient to encode non-meaningful aspects of the three modalities. Therefore
fig. 6.6 present the same experiment for various values of k in order to interpret
more precisely the previous result. The comparison confirms the fact that the system
mainly behaves similarly with two or three modalities.6.6. EXPERIMENTS 109
0.0
0.2
0.4
0.6
0.8
1.0
Cross-modal association score
image, motion motion, sound image, sound motion, sound, image
motion → sound
motion → image
sound → motion
sound → image
image → motion
image → sound
Figure 6.5: Box plot of classification success rates for various experiments where two
or three modalities are used for training. Each plot corresponds to the use of a subset
of modalities during training: the first three plots use two modalities and the last
one use three modalities. Each plot contains boxes representing the average success
as well as quantiles and extreme values through cross-validation for various testing
setups, using only two modalities. There are only two testing setups when only two
modalities are used for training, and six when three modalities are used for training.
Figure 6.7 present the results on many possible test setups int the case where all
modalities are present during training. The results demonstrate that the system
is capable of using information contained in more than one modality in the test
or reference example. Although the results are slightly better when using more
modalities as input (as in M,I → S in comparison to M → S or I → S), the
improvement in performance is not really significant in the experiment.
Regular classification with the symbolic modality
This section leaves the non-symbolic setup considered previously, in order to compare
properties of the system described above with results obtained in previous works,
such as the one of Ngiam et al. (2011).
Ngiam et al. (2011) present a learner that is trained on multimodal examples of
phonemes, either perceived through their acoustic manifestation or through the
motions of the lips that pronounce them. In their experiment they show that the
learner can benefit the observation of several modalities and improve its recognition110 CHAPTER 6. MULTIMODAL LEARNING
0 50 100 150 200
k
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
Cross-modal association score
Cosine
image → sound
motion → image
motion → sound
image → motion
sound → motion
sound → image
Trained on two modalities.
Trained on all three modalities.
Figure 6.6: With both two (full lines) and three (dashed) modalities during training,
the classification success rates are similar and good for high enough value of the
number of atoms k. The plots demonstrate that the success rate is quite stable above
a minimum value of k.
success in comparison to the case where only one modality is observed.
We consider a regular classification setup, similar to the one presented in section 3.3
but also in Mangin and Oudeyer (2012a), Driesen et al. (2012). More precisely we
introduce a symbolic modality represented by a binary vector as already explained
in previous section and in section 3.3. The system is trained by observing examples
both in the symbolic modality and in one or several other modalities. Then results
are compared between various testing setups to explore the ability of the learner to
improve its classification performance in the case where several modalities are observed.
Such an experiment can be described as a classification task with multimodal input
unified through sensor fusion.
Table 6.4 present the results for such an experiment for the sound and motion
modalities. The symbolic modality is denoted as L. Interestingly training with the
two modalities (sound and motion) does not significantly change the performance of
the learner, and that when tested on sound, motion or both. In that case the benefit
of having two non-symbolic modalities is not an increase in performance, but rather
that the same learner can use either acoustic perception or motion perception to
classify an example.6.6. EXPERIMENTS 111
0.0
0.2
0.4
0.6
0.8
1.0
Cross-modal association score
motion, sound, image
motion → sound
motion → image
sound → motion
sound → image
image → motion
image → sound
sound, image → motion
motion, image → sound
motion, sound → image
Figure 6.7: The system is capable of relating information from many modalities to
one. There is however no substantial improvement in performance from the use of two
modalities as input for the recognition. The figure presents box plots of classification
success rates for various experiments where three modalities are used for training.
There are boxes representing the average success as well as quantiles and extreme
values through cross-validation for various testing setups.
6.6.2 Learning words in sentences
The previous experiments demonstrate that the artificial learner studied in this
chapter is capable of learning the semantic connection between utterances and the
objects or motions they describe. The meaning of the sentences is modelled in our
experiment by the presence of a keyword; more precisely the association between
sentences and images of objects or motions are based on the presence of keywords in
the utterances. However the learner is not aware of the fact that all the meaning
of the sentence is actually localized in one word; instead it only exploits crosssituational
learning to discover relations between modalities. The task solved by the
learner actually only involve holistic understanding and classification of the sentences.
Therefore it is not completely clear what information the learner actually exploits
in the sentence and whether the learner discovers word-like units from the acoustic
stream. Indeed the previous experiments only demonstrate that the learner achieves
teleological understanding of the sentences; however the question remains to know
if it starts to understand compositionally the sentences. We further explore this
question in the experiment presented in this section.
Actually the grammar used to generate the utterances, as described quickly by
Altosaar et al. (2008) and in more details by Driesen (2012, chap. 2), introduces112 CHAPTER 6. MULTIMODAL LEARNING
Training Testing Success rates
S + L S → L 0.916 ± 0.034
M + L M → L 0.906 ± 0.052
S + M + L S → L 0.896 ± 0.043
S + M + L M → L 0.910 ± 0.054
S + M + L S + M → L 0.917 ± 0.055
Table 6.4: Success rate for the label recognition experiment. In this experiment an
additional modality containing labels, L, is considered. The results are computed on
average for a cross-validation of the train and test sets; standard deviations are also
given.
additional structure. For example the utterance: ‘Now mummy is losing her patience.’,
which meaning is related to the word ‘mummy’ also contains the pronoun ‘her’ which
makes it more likely that the sentence is about a feminine keyword (considering that
the sentences are quite short). Furthermore it appears that the expression ‘losing her
patience’ is always used in the dataset in the aforementioned sentence. Therefore the
expression is also a relevant cue of the presence of the keyword ‘mummy’, although
the keyword is also used in many other sentences. That example shows that it is
not completely clear what cues the learner is using to recognize the meaning of
sentences, and whether this cues are localized, as words, or unlocalized elements. In
order to explore this question, another experiment was designed that uses sliding
windows taken from a video-like stream composed as explained in next section. In
that experiment we take a closer look to the recognition along time in the utterance
of each of the semantic concept. It is somehow an extension to the multimodal setup
of the experiment presented by Stouten et al. (2008, 4.C).
Sliding windows
We consider simulated video streams, generated in the following way: acoustic records
of utterances are concatenated and images are sequenced at a fixed frame rate such
that the semantic concept associated to the image is the same as the one of the
utterance at the starting time of the image. This construction simulates the setting
where a caregiver shows objects to a learner and at the same time pronounces a
sentence that describes the object.
In order to build the videos, utterances from the Caregiver dataset are concatenated
in a random order. Then pictures are chosen from the dataset presented in previous
section, in order to form a sequence of frames that verifies two conditions. First the
sequence has a fixed frame rate close to the one used for the capture of the pictures.
Also the pictures are chosen such that they represent the object corresponding to the
subject of the current sentence. Actually the frames having a fixed duration they may
start during one utterance and end during another. This property actually introduces
additional ambiguity in the data, since a sentence may start while a different object
than the one described in the sentence is observed.
The learning algorithm does not directly operate on the sound and frame streams
that compose the video. Instead sliding windows of given length are extracted from
the video. The sliding windows extraction process actually takes two parameters:6.6. EXPERIMENTS 113
0 t
Sentence 1 Sentence 2
Window 1
Window 2
Window 3
Figure 6.8: Illustration of the process used to generate video data and split into
sliding windows.
the width of the windows and the shift between two windows. The latter is often
expressed as a fraction of the former. Once a sliding window has been extracted, it is
represented using similar features than regular sound and pictures. For the acoustic
part, the subsequence of sound corresponding to the time window is extracted and
converted to the HAC representation using exactly the same process as previously.
Regarding the visual part, an histogram representation is first extracted for each
frame intersecting with the time window. Then the representations of these frames
are mixed using a weighted averaged with weights proportional to the duration of
the intersection between the frame and the time window of interest. The length of
the sliding windows is typically between 0.05 s and 1 s, therefore between the length
of a phoneme and a short sentence. One important aspect of this experimental
setting is that for windows of small length, with a sliding amount of the same
magnitude than the window length, one word or less is contained in the acoustic
stream from the window: thus many windows contain only a part of the keyword
or even do not intersect at all with the keyword. Finally many sliding windows are
actually across the utterance boundaries and thus are associated with a mixture of
the representation of several objects. These elements make the learning in such a
context more ambiguous and more noisy since a lot of the sliding window do not
contain meaningful associations.
Results
The behavior of the recognition of the system on sliding windows taken inside
utterances is very interesting on a qualitative point of view. In the following, acoustic
sliding windows are computed on utterances outside the training set and the system
is evaluated on the value of similarity it returns between each acoustic sliding window
and an image. The results of this experience, as presented in fig. 6.9 provide a
better insight of which parts of the utterances are more strongly associated with
the underlying semantic concepts. Actually the results show that the recognition of114 CHAPTER 6. MULTIMODAL LEARNING
the object are often localized in the sentence around the temporal occurrence of the
keyword.
Figure 6.9: Examples of similarity to images around a time window sliding through
the utterance. The similarity is represented at the time index of the beginning of
each window. Interestingly this example demonstrates an association between the
pronoun ‘her’ and the concept ‘mummy’, since ‘her’ is only used as a synonymous of
‘mummy’ in the set of utterances.
The results also illustrate the fact that in some sentences, as the example ‘Now
mummy is losing her patience’, the keyword is not the only part of the sentence
that is meaningful regarding the semantic concept, but other elements such as the
expression ‘is losing her patience’ or the pronoun ‘her’ are also associated to the
semantic concept. Figure 6.9 illustrate this effect.
6.6.3 Emergence of concepts
In previous sections we evaluated the learner on concrete tasks that emphasis its
ability to relate information from one modality to another. A natural question that
follows is whether the learner develops an internal representation of the semantic
concepts from the data, although it does not observe the symbolic information. The
question is actually non-trivial since it is not immediate to interpret the internal
representation that the system builds, that is to say, the role of the various components
of the dictionary matrix. However some insight can be gained that suggests that at
least some components are more specialized into some of the semantic classes.
In order to investigate that aspect we quantified the mutual information between
the semantic concepts and the coefficients of the internal representations of samples6.6. EXPERIMENTS 115
featuring the concepts. For each semantic concept l and sample i we consider the
random variables Xl such that Xi
l = 1 if and only if the concept l appears in
sample i. For each dimension j of the internal representation and each sample i we
define the random variable Yj = h
i
j
. We then assume that (Xi
l
)i are independent
and identically distributed, as well as the (Y
i
j
)i
. In the following we quantify the
dependency between these two variables by looking at the mutual information between
them. In information theory, the mutual information I is an information theoretic
measure defined for two random variables X and Y as “the relative entropy [or
Kullback-Leibler divergence] between the joint distribution [p(x, y)] and the product
distribution p(x)p(y)” by Cover and Thomas (1991).
I(X; Y ) = DKL (p(x, y)∥p(x)p(y))
The Xl variables takes binary values but the Yj are continuous. Therefore we use a
discrete approximation of the values of the coefficients h with 10 bins in order to be
able to compute the mutual information by estimating the probability distributions
p(Xl), p(Yj ), and p(Xl
, Yj ) by using the samples for 1 ≤ i ≤ N. From this process
we obtain a value I(Xl
; Yj ) for each pair (l, j) that quantifies how much information
the coefficient j captures from the concept l.
Figure 6.10: Illustration of the specialisation of some components with respect to some
semantic labels. The figure represents the mutual information between (vertically)
semantic classes (that are not observed by the learner) and (horizontally) each
internal coefficient used by the learner to represent pairs of motion demonstration
and acoustic descriptions from the training set. A value of k = 15 was used in this
experiment.
Figure 6.10 represents, for each semantic class and each coefficient of the internal
representation, the mutual information between the belonging of examples to that116 CHAPTER 6. MULTIMODAL LEARNING
class and the value of a given coefficient of the internal representations of these
examples. To emphasis the specialisation of some internal coefficients we re-ordered
internal coefficients so that classes and coefficients that have high mutual information
are aligned. More precisely, the best alignment was computed by a Kuhn-Munkres
algorithm and we plotted first the coefficients that are highly associated to one class
and then the one that are less meaningful. The figure does not display a perfect
one to one relationship between labels and coefficients; however some coefficients
are highly specialized, the information about other labels is spread over several
coefficients, and some information is not clearly localized.
6.7 Conclusion
This chapter presents a truly multimodal learning experience in the sense that a learner
is trained from several subsymbolic modalities and demonstrates a classification
behavior similar to the one that would be expected to a young child. More precisely it
is shown that the result can be obtained from the auto-organization of the multimodal
perception driven by the compression mechanism on which nonnegative matrix
factorization is based. These experiments demonstrate the effective exploitation by
the learner of the cross-situational information from the data.
The behavior of the learner is explored on several setups such as learning from
three modalities or with a symbolic modality. It is also explored whether, when
it is used as a regular classifier, additional modalities during training and testing
improve the results (as in Ngiam et al., 2011). It is also shown that the system
can be implemented, using sliding time windows, in a more realistic setting where
utterances do not need to be segmented beforehand. This setting demonstrates
the robustness of the system to demonstrations that are not meaningful, that is
that do not feature the cross-situational semantic association between modalities.
Furthermore the setting is also used to gain better insight on the temporal localization
of the learnt concept among sentence. It is illustrated that the meaning of sentences,
regarding the semantic objects, is localized mainly around keywords but also around
other meaningful grammatical elements that where in the training set associated
with the concepts. Finally the experiment show that the system not only learns
semantic associations between words, visual objects, and gestures, but also that a
representation of the semantic classes, although never observed directly, emerges in
the system’s representation.
The learner presented in this chapter specifically targets and is tested on the crosssituational
learning setup. Although cross-situational information is not the only one
that might be involved in the learning of multimodal concepts. Indeed children have
been shown to rely on other important elements in the process of word acquisition.
For example, Samuelson et al. (2011) have shown that children might rely on spatial
localization of objects and words to relate words to their meanings. Belpaeme and
Morse (2012) provided a computational model to compare cross-situational learning
to social learning and shown that the latter outperforms the former. The interaction
of the learner with the caregiver or other agents is indeed an important aspect of word
learning. Actually the word learning process used in the Talking heads experiment
(Steels, 1999) mainly rely on the interaction between the agents. Finally Markman
(1990), Landau et al. (1998) details various aspect of conceptual thinking that seems6.7. CONCLUSION 117
to play an important role learning words by using additional heuristics such as the
whole object assumption, taxonomic assumption, or mutual exclusivity.
With regard to the question of the precedence of teleological or holistic understanding
over compositional understanding as discussed by Wrede et al. (2012), the experiments
presented in this chapter do not assume that the sentences and more generally the
semantic concepts has to be understood first in compositional manner. Indeed it
instead focuses more on global understanding: the learner we present does not include
mechanism to segment the perception in parts and then try to relate these parts from
one modality to the other, as in previous works from Roy (1999), Roy and Pentland
(2002), Yu and Ballard (2004, 2007). Instead the system learns a representation of
whole sentences and the main task demonstrates that the representation is efficient.
We further refine the learning process to demonstrate that representation learnt by
the system actually focuses on recognizing the keywords that concentrate the crossmodal
information. Therefore aspects of compositional understanding also emerge
from the learning process. The compositional aspect of the semantics presented in
our experiment is actually quite limited; in order to investigate more these aspects, as
well as the question of grammar learning, experiments including a more complex and
structure semantics are required. One such experiment results from the combination
of several concepts in each samples: this corresponds to the semantics used in the
experiment from chapter 3 but presented with real sentences instead of symbolic
labels. Finally such an experiment would also explore aspects of the similarities
between the grammar of language the grammar of motions as described by Roy and
Arbib (2005).
As already mentioned, the learner presented in this chapter can be seen as an agent
from the Talking heads experiment from Steels (1999), Steels and Kaplan (2002).
The main difference between our implementation and the original one is that our
agent uses cross-situational information instead of feedback from the other agent.
As studied by Belpaeme and Morse (2012) these two approaches are both valid to
explain the learning of words and might be used complementary. For example using
cross-situational information to exploit language exposure when no interaction is
available. The system we present in this chapter features other important differences
with the original talking head: one is that the algorithm does not rely on a preliminary
process of word segmentation and concept segmentation ; this opens new perspectives
on the study of the interaction between the formation of concepts and the formation
of words as acoustic units instead of symbolic entities.
From a technical point of view, the algorithm and setup presented above could however
be improved in many ways. One direction for further work is the development of
algorithm more adapted to the setup. Indeed the NMF algorithm is built to take
independent samples as input and therefore information must be sliced into such
samples in order to be learned by the system. On way to slice the data is to detect
utterance boundaries or manually annotate them. Another is to use sliding windows
of fixed or varying lengths. However, other algorithms could be used that directly
model the temporal dynamics of the signal. Such algorithms could be derived from
existing models, as hidden Markov models, or more recent work by F´evotte et al.
(2013) that extends NMF.
The NMF algorithm used in these experiment implements the optimization of one
specific criterion, namely reconstruction error under the constraint of the factorization.
Many other properties of the learnt representation could be used to improve the118 CHAPTER 6. MULTIMODAL LEARNING
results. For example, sparsity of the representation have been shown to provide more
meaningful results in many application fields (as Hoyer, 2002, Aharon et al., 2005,
Lee et al., 2006, Li et al., 2010). Interestingly other metrics have been explicitly
developed in the past that target multimodal learning. Such examples are given by
extensions of independent component analysis to multimodal settings by Akaho et al.
(1999), Karhunen and Ukkonen (2007). Actually these technical aspects introduce
the deeper question of the mechanism that drive the learning of multimodal concepts:
the experiment we present demonstrate that an algorithm based on a compression
mechanism can capture semantic information by exploiting the cross-situational
information from the data. Many other heuristics could eventually be used to capture
that information. Would they behave similarly? Would they enable the extraction of
other information than the cross-situational one? Several important questions are
actually raised by these possibilities, that might help to model more precisely what
it means to achieve multimodal learning.Chapter 7
Discussion and perspectives
In this thesis we explore the problem of learning lexicons of primitive elements
from perception and their association across modalities. This study involves the
question of the definition of ‘simple’, in particular with respect to what complex
is, more specifically through mechanisms that enable the discovery or emergence of
such simple elements from perception, and how these mechanisms can handle the
ambiguity often inherent to the definition of simple elements.
It is explained in chapter 1 that the notion of ‘motion primitive’ is far from being
straight-forward and unique. Then, the example of dance motions is given in
which choreographies are composed of parts combined simultaneously. We have
thus explored the question of learning simple elements from observation of complex
motions, where the simple elements are active at the same time. Learning this kind
of combination of motion primitives is actually an instance of the source separation
problem, in the fields of imitation learning and human behavior understanding. The
approach developed in chapter 3 therefore uses nonnegative matrix factorization, a
technique commonly used on source separation problems (for example for sound in
Lef`evre et al., 2011). A lot of work related to learning motion primitives actually
focus on learning sequences of motion primitives. However the experiments presented
in this thesis demonstrates that it is also possible to decompose motions in simpler
parts that are active simultaneously. This question is actually orthogonal to the
sequence decomposition but less addressed in the literature. In this work we explained
the ambiguity issues deriving from this problem and demonstrate that NMF can
handle such ambiguity, as appearing in the motion dataset, when it is coupled with
weak supervision in the form of linguistic data.
Chapter 4 explores the use of similar ideas to decompose observations of humans
solving complex tasks into a dictionary of simple tasks. In that chapter, the novel idea
is to consider the combinatorial properties of human actions not in the policy space,
that is the space of actions, but in the task space, that is the space of objectives the
actions are pursuing. Chapter 4 demonstrates on synthetic problems that it is possible
to exploit the combinatorial structure of tasks modelled by objective functions from
the observation of artificial agents solving these tasks. Interestingly the new matrix
factorization algorithm derived in these experiments are based on mechanism very
similar to the ones behind nonnegative matrix factorization algorithm.
119120 CHAPTER 7. DISCUSSION AND PERSPECTIVES
Chapter 5 reviews mechanisms that can be used to learn primitive elements from
sound. More precisely we introduce an unsupervised algorithm based on clustering
and bag-of-words representation, that can be used to learn primitive elements. On
top of these primitive elements, interpreted as phonemes, words can be learnt in a
supervised manner, using a voting technique based on TF-IDF score. We also detail
how nonnegative matrix factorization have been used on top of similar basic primitive
elements in an unsupervised setup by Stouten et al. (2008) and in a supervised
manner by ten Bosch et al. (2008), Driesen et al. (2012) to also achieve word learning.
Finally, in chapter 6 we explain how the mechanisms used for learning words from
acoustic observation of utterances or gestures from observation of motions can be
extended to a multimodal learning setting. More precisely we demonstrate that
a NMF based algorithm is capable of learning simultaneously primitive elements
in a multimodal setting without any symbolic input nor explicit models of words
and meanings. Actually a learner is shown to yield the same classification behavior
that would be expected from a child after being exposed only to subsymbolic data.
The learner presented in chapter 6 exploits cross-situational learning to relate words
to gestures and/or visual objects. The presented learner is further analysed in
order to show that the semantic relations it learns between modalities make it
able to localize the information contained by keywords among utterances. The
representation of multimodal data learnt with NMF is also shown to yield, to some
extent, a specialisation of some of the dimensions to the recognition of semantic
concepts from the training data. In these experiments the semantic concepts that
the system learns are the result of a convention, that maps keywords in utterances
to objects in visual scenes and gestures demonstrated through a motion acquisition
system. The experiment therefore demonstrates to what extent the mechanisms of
nonnegative matrix factorization can recover the correlations that characterize these
semantic concepts, when embodied in a cross-situational learning setup. These results
comfort those of Roy and Pentland (2002), Smith and Yu (2008); we however use a
setup in which a single algorithm treats all modalities in a unified way. Furthermore
the setup we present starts from a representation that does not involve explicit
segmentation and static phoneme recognition. Finally chapter 6 discuss how other
cues might be included in similar synthetic learners, such as spatial localization of
objects (see Samuelson et al., 2011), interaction with the caregiver or other agents
(see Belpaeme and Morse, 2012), or conceptual thinking (see Markman, 1990, Landau
et al., 1998).
The contribution of this thesis can be summarized as using matrix factorization
techniques to model the emergence and acquisition of primitive elements in the
perception of motions, complex behaviors, objects vision, and spoken language. First
this thesis illustrates the similarity of the problem in various fields of perception by
using the same family of algorithm in all of them. It then shifts to the specific study
of the language grounding problem and more generally the question of multimodal
learning. More particularly multimodal learning is not only a way of solving the same
problem in several modalities at the same time, but to make less ambiguous, in the
multimodal setting, several problems that, taken alone, are ambiguous. Regarding
the three questions that were asked in the introduction of this thesis, this works
provides the following answers and new questions.121
How can the intuition about simple and complex be made explicit and
implemented on a robot or artificial system? For developmental roboticists
an appealing aspect of the concept of motion primitives is that they can implement
the gradual growing of complexity observed for example in tasks executed by children.
This corresponds to intuitions such as: mastering grasping and placing of objects
is a prerequisite to being able to assemble cubes into towers. However an explicit
representation of motion primitives is not required to explain such increase of
complexity; also, as explained previously, it is very difficult to formulate a definition
of these motion primitives: the intuition of motion decomposition may lead to many
different approaches, each of which is not necessarily useful or even well defined. An
alternative is proposed that identifies and represent the combinatorial properties of
motion skills without explicit definition of what the basic motions are. The work
presented in chapter 3 is actually introducing three important ideas on that subject,
that are then followed in different directions. First, many work have been done to
represent motion primitives and their combination in sequence. Thus we introduced
similar work for the simultaneous combination, using the NMF algorithm. Then,
although the NMF algorithm is based on the linear combination of elements from a
dictionary into observed examples, it is not claimed that these atoms corresponds as
motion primitives as perceived by humans. Actually our preliminary experiments
following that idea show that it is often not the case, one reason for that being the
intrinsic ambiguity or indeterminacy of the decomposition problem. In other words,
the system learns and represents motions in a form that implements simultaneous
combination, but do not presuppose the ability to segment or separate basic motions,
as perceived by humans amongst the data. Indeed, building motion representations
that are compatible with some notion of combination is a distinct approach from
trying to first represent parts of motions and then implement their combination.
Both enable the representation of composite motions but the former does not involve
the pre-requisite of motion segmentation. As discussed in next paragraph the former
approach is more compatible with the idea that holistic understanding may emerge
before compositional understanding (see Wrede et al., 2012). Finally, in order to
evaluate the system, we chose to test its ability to represent similar combinations
than a human does, at the behavioral level. For that, we use a tasks based on a
communication channel modelled by the symbols. In other words the ambiguity is
only addressed by the addition of a linguistic channel that models social interaction
and provides an input for social conventions. The other experiments explore similar
ideas. For example, the experiment on tasks decomposition gives a visual example of
the multiplicity of the solution and the non-explicit representation of tasks that where
used to generate the examples. However the learning of the structure is demonstrated
at the behavior level by the score on imitating the demonstrator task.
This thesis however does not treat other combinatorial properties that are central
both for motion or language. Examples of such combinations have already been
discussed in section 3.1.1 and includes time sequences and hierarchies of primitives.
As these have often been explored individually in previous works, the main challenge
is to be able to combine several forms of combinations, which requires the development
of representations and algorithms that implement them as well as new experimental
setup. For example on possibility is relax the hypothesis of sample independence in
NMF to represent the temporal dynamics of the data, following work from F´evotte
et al. (2013).122 CHAPTER 7. DISCUSSION AND PERSPECTIVES
How can primitive elements emerge or be discovered through interaction
of the agent with its physical and social environment? The experiments
developed in this thesis are based on matrix factorization or clustering algorithms.
These algorithms can all be interpreted as the minimization of a form of reconstruction
error of the perceived signal, under the constraint of compression. That mechanism
is the one that yields the emergence of primitive elements, at the behavioral level.
While this mechanism is the only one studied through the experiments from this
thesis, many other candidates exist. First structural constraints can be added to the
compression performed in the algorithms. For example, sparsity inducing constraints
were already combined with matrix factorization approaches (Hoyer, 2002, 2004,
Mairal et al., 2009, Lee et al., 2006). Interestingly Jenatton et al. (2010) also achieve
both sparsity and hierarchy of dictionary elements. The work on deep belief nets
achieve experiments that are conceptually similar to the one presented here, both in
the field of motion composition (see Taylor et al., 2006, Taylor and Hinton, 2009b,a),
and multimodal learning (Ngiam et al., 2011). However the mechanisms behind
the learning of such representations are not exactly the same as the one underlined
matrix factorization. Other metrics that have been explicitly developed to target
multimodal learning were already given as examples in previous chapter, such as
extensions of independent component analysis to multimodal settings by Akaho et al.
(1999), Karhunen and Ukkonen (2007). The comparison of these technical approaches
with the one taken in this work on a unique multimodal setup actually constitutes an
interesting direction for future research. We explain in chapter 6 that an important
novelty of our approach in comparison to previous work on similar questions is that
it does not presuppose the decomposition of perception in concepts and words to the
learning of their relation. More precisely we present a system that learns to relate
words to concepts without explicit segmentation of acoustic input into phonemes or
words, nor images into relevant objects. It thus demonstrate that a task of language
grounding can be solved in holistic way, thus featuring teleological understanding
without requiring compositional understanding. Indeed in previous work from Yu
and Ballard (2004, 2007), Roy (1999), Roy and Pentland (2002) but also in the
Talking head experiment from Steels (1999), Steels and Kaplan (2002) the algorithm
include explicit mechanism to segment the sensor input into either phonemes and
then words or concepts. Even if the segmentation is in some cases learnt by the
system, these architecture encode compositional understanding as a prerequisite to
language grounding and more generally multimodal learning. In our work we provide
an alternative which open new perspectives on the kind of questions introduced by
Wrede et al. (2012). It is important to notice that an important shortcoming of
our approach with respect to the study of emergence is that it is not incremental.
However there exist online versions of the NMF algorithms on which we base our
experiments that can be used to study the framework presented in this thesis in a
more incremental manner.
What mechanisms can overcome the intrinsic ambiguity and indeterminacy
that is characteristic of many approaches regarding the learning and
emergence of these primitive elements? In chapter 3 the mechanisms used to
learn motion representation do not alone solve the indeterminacy of decomposition.
However we show that adding weak supervision to the perception through a linguistic
channel, symbolic in that experiment, resolve the ambiguity at the behavioral level.
Chapter 6 actually demonstrates the same idea from real multimodal perception;123
the learner can then exploit cross-situational and cross-modal information to achieve
word grounding or the learning of other kinds of multimodal concepts. Many other
mechanisms can be implemented at the data collection level and the way to represent
it. The multimodal experiment represents data in such a way that makes learning
possible from cross-situational information; however, as mentioned previously, other
sources of information are available such as localization of objects or interactions
with the caregiver. Furthermore, in the experiments in this thesis we use data coming
from three distinct dataset to simulate multimodal perception. This constitute an
important limitation of this work which hides important questions. For example
whether the object is shown by the caregiver or the learning system is an important
aspect that may greatly change the structure of the collected visual data. Other
questions include the differences between infant and adult directed speech as discussed
by Yurovsky et al. (2012), or the process of autonomous acquisition of data (see
Gottlieb et al., 2013).
This thesis presents the simultaneous combination of motion primitives as an
important aspect of imitation learning and human behavior understanding. Following
that idea, an experiment demonstrating such learning is performed, where symbolic
linguistic input is used to relate the motion representations learned by the system
to a human based representation. In chapter 6 the symbolic linguistic modality is
replaced by a continuous acoustic input. However theses last experiments only study
the learning of gestures demonstrated alone. An important extension of the work
presented here is therefore to bring together multimodality from only continuous
perception and fully ambiguous demonstrations: which means relating gestures that
are observed combined in complex motions to words that are observed combined in
complex sentences. Such an experiment actually is a very interesting first approach
to the question of similarities between the combinatorial structure of words and
motions, that is to say the grammar of language and the grammar of motions and
actions. It would be even more interesting to relate that experience to the analysis
and hypothesis from Roy and Arbib (2005).
The experiments presented in this thesis are performed either on simple toys problems
or on fixed datasets. It is therefore important, in order to consolidate the results,
to experiment similar ideas both on more diverse and advanced datasets, and in
more interactive setups. Indeed, while the issues addressed by this work are clearly
grounded in developmental robotics, no real robotic experiment was performed in this
thesis. This aspect actually corresponds to the fact that this work focusses specifically
on a perception based point of view. We actually believe that many of these questions
are also very relevant to action but the link is still to be made. Although chapter 4
introduces the ideas of task decomposition in a way that enables the generation of
motions to solve new tasks, it is limited to simple toy problems and suffers from the
weaknesses of the inverse reinforcement learning approach it is based on: the relative
novelty of the field and the algorithmic cost that still makes it a challenge to reach the
complexity of real robotic environment. Also, the algorithm we propose focuses on the
problems of learning by imitation and human behavior understanding: a demonstrator
is required to be able learn tasks; this leaves apart the important mechanisms for
autonomous discovery of new motor skills and new goals. Other interesting questions
emerge from the duality between goals or tasks and the skills that solve them.
For example, is one of them explicitly represented and the other inferred or both
represented simultaneously? Is the autonomous discovery of skills motor based or124 CHAPTER 7. DISCUSSION AND PERSPECTIVES
task based? This question is for example related to the study of motor babbling and
goal babbling by Baranes and Oudeyer (2013). Can the learning of primitive tasks
model the emergence of affordances in perception? Regarding language learning, the
work we present also focusses mainly on perception and word recognition. Extending
this work to language production is also an interesting direction for future research,
specially through the studies of the interactions between the learning of language
perception and language production. Aspects of this interaction have already been
studied by Serkhane et al. (2005), Moulin-Frier (2011).Appendix A
Non-negative matrices and
factorization
A.1 Non-negative matrix theory
This section summarizes some result from the Perron-Frobenius theory that are useful
to study theoretical aspects of the non-negative matrices and factorization.
Its purpose is to present main properties of these matrices, centered on PerronFrobenius
theorem, that enables basic theoretical discussions. These elements are
adapted from presentation given by Boyle, Meyer (2000). These references might be
looked into for proofs and more detailed presentations of this theory.
A.1.1 Base definitions and notations
We only consider square matrices in this part.
We call positive (resp. non-negative) a matrix whose coefficients are all positive (resp.
non-negative), we use notations A > 0 for positivity and A ≥ 0 for non-negativity.
We denote by σ(A) the set of all A’s eigenvalues. We call spectral radius, denoted
ρ(A), the quantity defined as follows:
ρ(A) = max
λ∈σ(A)
|λ| (A.1)
We also denote by χA(X) the characteristic polynomial of A.
Multiplicities The algebraic multiplicity of an eigenvalue refers to its multiplicity
as root of the charateristic polynomial whereas geometric multiplicity refers
to the dimension of the associated eigenspace. In general the algebraic multiplicity is
greater or equal to the geometric multiplicity. When these two quantities are equal
the eigenvalue is said to be semi-simple. When both are equal to 1, the eignevalue
is said to be simple.
125126 APPENDIX A. NON-NEGATIVE MATRICES AND FACTORIZATION
Two matrices A and B are said equivalent if and only if there exists an invertible
matrix P such that B = P
−1AP.
A.1.2 Taxonomy of non-negative matrices
Amongst all non-negative matrices, a few categories are of great importance regarding
the Perron-Frobenius theory. These are positive, primitive and irreducible
matrices.
Definition (Primitivity). A square non-negative matrix is said to be primitive if
and only if some power of it is positive
i.e. ∃k ∈ N, Ak > 0 (A.2)
i.e. ∃k ∈ N, ∀(i, j) ∈ [|1, n|]
2
, (A
k
)i,j > 0 (A.3)
Definition (Irreducibility). A square non-negative matrix is said to be irreducible if
and only if
∀(i, j) ∈ [|1, n|]
2
, ∃k ∈ N, (A
k
)i,j > 0 (A.4)
Given a square non-negative matrix A let G(A) be the directed graph with n vertices
and such that an array exists between vertex i and vertex j if and only if Ai,j > 0.
Then for some k ∈ N, (Ak
)i,j > 0 is equivalent to the existence of a path of length k
between i and j in G(A).
Definition (Period of a square non-negative matrix). The period of a square nonnegative
matrix A, is the greatest common divisor of all length of loops in G(A).
For an irreducible matrix A of period p, we define the relation:
i ∼A j if and only if ∃k ∈ N, (A
kp)i,j > 0 (A.5)
Following this definition, i ∼A j if and only if p divides all path lengths between i
and j in G(A). That this relation is an equivalence easily follows the irreducibility of
A. Using the partition of [|1, n|] into equivalence classes for i ∼A j, we can re-order
the columns of A, which makes it equivalent to B where:
B =
0 A1 0 · · ·
0 0 A2 · · ·
.
.
.
.
.
.
.
.
.
.
.
.
Ap 0 0 · · ·
(A.6)
This form is referred as cyclic block form or Frobenius form. This formulations
makes it easy to get the following results.
Proposition 2. A is primitive if and only if A is irreducible of period 1.
Proposition 3. Let A be an irreducible matrix of period p. Then Ap
is equivalent
to a block diagonal matrix which blocks are all primitive. Moreover all blocks have
the same non-zero spectrum.A.1. NON-NEGATIVE MATRIX THEORY 127
Proposition 4. Let A be an irreducible matrix of period p and ξ a primitive p
th
root of unity. Then
• A and ξA are similar,
• if r is a root of the characteristic polynomial of A, with multiplicity α, then rξ
is a also a root of A of multiplicity α.
Theorem 4. Let A be an irreducible matrix of period p and D a diagonal block from
Bp where B is a cyclic block form of A. Then, χA(X) = χD(Xp
). More precisely if
ξ is a primitive p
th root of unity and
χD(X) =
k
j=1
X − λ
p
j
,
χA(X) = p
i=1
k
j=1
X − ξ
iλj
.
Those results enable to relate the spectrum of any irreducible matrix of period p to
the spectrum of primitive matrices. This relation makes it possible to generalize some
of the results for primitive matrices to irreducible matrices, as stated in Section A.1.3.
A.1.3 Perron-Frobenius theorem
Case of positive matrices
Theorem 5 (Perron theorem). Let A be a positive matrix, then,
(i) ρ(A) is a simple eigenvalue of A,
(ii) there exists a unique unit norm positive eigenvector u,
(iii) it is associated with ρ(A) and called the Perron vector of A,
(iv) ρ(A) is the unique eigenvalue of A of norm ρ(A).
Case of irreducible matrices
When generalized to irreducible matrices the previous result takes the following form.
Theorem 6 (Perron-Frobenius theorem). Let A be an irreducible matrix of period
p, then,
(i) ρ(A) is a simple eigenvalue of A,
(ii) there exists a unique unit norm positive eigenvector u,
(iii) it is associated with ρ(A) and called the Perron vector of A,
(iv) A has exactly p eigenvalues of norm ρ(A), furthermore A is similar to e
2iπ
p A
and thus σ(A) is invariant by rotation of angle 2π
p128 APPENDIX A. NON-NEGATIVE MATRICES AND FACTORIZATION
Perron projection
Previous results does not change when a matrix A is replaced by AT
since all the
considered properties are invariant by transposition. However the Perron vectors of
A and AT are in general not the same. It is thus useful to distinguish between left
(v > 0) and right (u > 0) Perron vectors of matrix A such that:
Au = ρ(A)u and v
T A = ρ(A)v
T
(A.7)
Proposition 5. Let A be a primitive matrix with left and right Peron vectors v and
u.
A
ρ(A)
n
−→n→∞
uvT
u
T v
This quantity is a projection onto the eigenspace associated to ρ(A), which is called
Perron projection.
Collatz-Willandt formula
Proposition 6. Let A be an irreducible matrix and f(x) = min
i∈[|1,n|], xi̸=0
[Ax]i
xi
, then
ρ(A) = max
x≤0, x̸=0
f(x).
A.2 Ambiguity in the problem definition
A.2.1 Generative model
A geometric interpretation of the non-negative matrix factorization has been presented
by Donoho and Stoden Donoho and Stodden (2003), it is based on the notion of
simplicial cones and the following link to non-negative factorization.
Definition (Simplicial cone). The simplicial cone generated by the vectors (wk)k∈[|1,K|]
is defined as:
ΓW =
K
k=1
hk · wk : hk ≥ 0
(A.8)
For a given factorization W ·H that generates exactly the data, W yields K generators
such that all data vectors (xi)i∈[|1,N|]
lie in the simplicial cone ΓW .
The factorization of a non-negative matrix is thus equivalent to providing such a
simplicial cone as a generative model of the data. It is however not true in general
that, even if the data is generated filling a simplicial cone, there is uniqueness of such
a model. In such a situation one would like to chose the simplest or the smallest
fitting model. In some cases even defining such a simplicity is ambiguous.
In the following we analyse separately various sources of ambiguity in the problem of
finding a factorization:
• ambiguity in the representation of simplicial cones,A.2. AMBIGUITY IN THE PROBLEM DEFINITION 129
• ambiguity in notions of simplest solution.
• ambiguity from lack of data.
Since the data is non-negative it lies in the positive orthant P which is the convex
simplicial cone generated by the canonical basis vectors, the problem thus always
admit P as a solution.
Furthermore it also lies in Span
(wi)i∈[|1,K|]
, and P ∩ Span(W) is also a solution.
A.2.2 Representation of simplicial cones
Definition (Extreme rays). An extreme ray of a convex cone Γ is a line Rx =
{ax : a ≥ 0} such that x ∈ Γ\{0} and there is no x1 and x2, linearly independent
such that x = x1 + x2.
When the generators are linearly independent, the set of generators corresponds to
the set of extreme ray, thus a convex simplicial cone is uniquely defined by its set of
extreme rays.
This shows that solving non-negative matrix factorization is equivalent to finding a
set of extreme rays generating a simplicial cone containing the data. The set of rays
is represented by a list of generators. Scaling of the generators and re-numbering of
the rays does not change the found simplicial cone, which is another formulation of
the invariance introduced in section 2.1.1.
Definition (Primal simplicial cone). Given a set of points X and an integer r,
a primal simplicial cone associated with r, X is a simplicial cone Γ such that
X ⊂ Γ ⊂ P.
The invariance by scaling and permutation is thus a representation invariance of the
simplicial cone underlying the factorization.
Dual formulation This formulation of the NMF problem can equivalently be
made in the dual space (in terms of complex duality, see Boyd and Vandenberghe
(2004)).
Definition (Dual simplicial cone). Given a set of points Y and an integer r, a dual
simplicial cone associated with r, Y is a simplicial cone Γ such that P ⊂ Γ ⊂ Y.
Proposition 7. Every primal simplicial cone is the dual of a dual simplicial cone
and reciprocally.
A.2.3 First case: linearly independent generators
We first consider the somehow simpler case in which the generators of X are linearly
independent, which is a sufficient condition for these generators to be extreme rays
of X .130 APPENDIX A. NON-NEGATIVE MATRICES AND FACTORIZATION
However, if ΓX ∈ P ∩Span(X) where X = (xi)i∈[|1,r|]
is such that ΓX ̸= P ∩Span(X),
there are an infinity of simplicial cones Γ′ with r generators such that ΓX ⊂ Γ
′ ⊂ P
(P ∩ Span(X) is one of them).
The following lemma from Donoho and Stodden (2003), however limits the solution
of such simplicial cones inclusion.
Proposition 8. If Γ and G are convex cones such that Γ ⊂ G ⊂ Rn where Γ is a
simplicial cone with r generators and Γ ∩ G contains exactly r extreme rays of G,
Rxi
i∈[|1,r|]
, then:
• the
Rxi
i∈[|1,r|]
are extreme rays of Γ,
• there is no simplicial cone Γ
′ with r generators such that Γ
′ = Γ ̸ and Γ ⊂ Γ
′ ⊂ G.
So in general such a cone might be widened towards P and is thus not unique.
However under some conditions the cone is already maximal, such a case happens
under sufficient conditions given in Donoho and Stodden (2003). In that case the
primal simplicial cone is unique and so is the solution to the NMF problem (still
with invariance by dilatation and permutations).
A.2.4 Second case: rk(W) < K
This case arises even when all generators are extreme rays, for example in three
dimensional space when the simplicial cone section (for example section by a plan
orthogonal to first diagonal) is a convex polygon with more than three vertices.
In that case two extreme points of view can be taken:
• searching a simplicial cone minimal regarding inclusion, which in the 3D case
means which section has minimal area, i.e. finding the convex hull of the section
of the projection (in the conic sense) of the data on some plane,
• searching a simplicial cone with the minimum number of generators, which
leads to chose the rank of W as the number of generators, thus in our example
choosing a cone too big since the whole first octant is chosen.Appendix B
Datasets
B.1 The Acorns Caregiver dataset
The Caregiver dataset (Altosaar et al., 2008) provided by the ACORNS project, is
composed of 1000 utterances containing 13 keywords, each spoken by 4 speakers in
English adult directed speech; this makes a total of 4000 utterances. An example of
sentences used in the dataset is Angus is lazy today. where the semantic tag/keyword
is Angus. Examples of transcriptions from utterances from the dataset are given in
table B.1.
We take a bath
To put it in the bath isn’t funny either
The shoe is a symbol
Now mummy is losing her patience
Daddy comes closer
Angus takes off her shoe
Daddy never calls
She sits on a nappy
Now everybody is in the car
Where is the nappy
Table B.1: Transcriptions from ten random examples from the Acorns Caregiver
dataset from Altosaar et al. (2008). Keywords are identified in bold font.
B.2 The first choreography dataset
The first choreography dataset contains choreography motions recorded through
a kinect device. These motions have a combinatorial structure: from a given
set of primitive dance motions, choreographies are constructed as simultaneous
execution of some of these primitive motions. The data is publicly available at
http://flowers.inria.fr/choreography_database.html.
131132 APPENDIX B. DATASETS
Primitive dance motions are chosen from a total set of 48 motions and are spanned
over one or two limbs, either the legs (for example walk, squat), left or right arm (for
example wave hand, punch) or both arms (for example clap in hands, paddle).
Complex choreographies are produced as the simultaneous demonstration of two or
three of these primitive motion: either one for legs and one for both arm, or one
for legs and one for each arm. Each example (or record) contained in the dataset
consists in two elements: the motion data and labels identifying which primitive
motions are combined to produce the choreography.
The dataset actually contains three separate sets of examples:
1. primitive: in each example, only one primitive motion is demonstrated, the
set of labels associated to each example is thus a singleton (326 examples).
2. mixed small: demonstrations of complex choreographies composed of primitive
motions taken in a subset of 16 possible motions (137 examples).
3. mixed full: demonstrations of complex choreographies composed of primitive
motions taken in all the possible motions (277 examples).
B.2.1 Description of the data
The data has been acquired through a kinect camera and the OpenNI drivers1
, which
yields a stream of values of markers on the body. Each example from the dataset
is associated to a sequence of 3D positions of each of the 24 markers. Thus for a
sequence of length T, the example would corresponds to T ∗ 24 ∗ 3 values.
The kinect device recognizes and provides positions of the following list of markers:
head, neck, waist, left hip, left shoulder, left elbow, left hand, left knee, left foot,
left collar, left wrist, left fingertip, left ankle, right hip, right shoulder, right elbow,
right hand, right knee, right foot, right collar, right wrist, right hand, right fingertip,
right ankle.
These markers are however not tracked with the same accuracy and it might be better
to filter to keep only a subset of these markers. In the experiments from chapter 3
we use: head, neck, left hip, left shoulder, left elbow, left hand, left knee, left foot,
right hip, right shoulder, right elbow, right hand, right knee, right hand, right foot.
B.3 The second choreography dataset
The second choreography dataset contains choreography motions recorded through a
kinect device. It contains a total of 1100 examples of 10 different gestures that are
spanned over one or two limbs. The data is publicly available at http://flowers.
inria.fr/choreo2.
1http://openni.orgB.3. THE SECOND CHOREOGRAPHY DATASET 133
Id Limb(s) Description
1 right arm hold horizontal
2 right arm hold vertical (down)
3 right arm hold vertical (up)
4 right arm from horizontal on side, bend over the head
5 right arm raise from horizontal to vertical
6 right arm lower from horizontal to vertical
7 right arm from horizontal side, bend in front of the torso
8 right arm from horizontal side, bent elbow to get vertical forearm toward up
9 right arm mimic punching
10 right arm hold horizontal and bring from side to front
11 right arm from horizontal side, bend elbow to get vertical forearm toward down
12 right arm from horizontal side, bring hand to shoulder (elbow moving vertically)
13 right arm hold horizontal and bring from right side to left side
14 right arm swing forearm downside with horizontal upper arm
15 right arm draw circles with arm extended on the right
16 right arm wave motion of the arm held, horizontal on the side
17 right arm wave hand (shoulder level)
18 right arm wave hand (over the head)
19 both arms clap hands (at varying positions)
20 both arms mimic paddling on the left
21 both arms mimic paddling on the right
22 both arms mimic pushing on ski sticks
23 legs un-squat
24 legs mimic walking
25 legs stay still
26 legs step on the right
27 legs step on the left
28 right leg raise and bend leg to form a flag (or ‘P’) shape
29 left leg raise and bend leg to form a flag (or ‘P’) shape
30 left arm hold horizontal
31 left arm hold vertical (down)
32 left arm hold vertical (up)
33 left arm from horizontal on side, bend over the head
34 left arm raise from horizontal to vertical
35 left arm lower from horizontal to vertical
36 left arm from horizontal side, bend in front of the torso
37 left arm from horizontal side, bent elbow to get vertical forearm toward up
38 left arm mimic punching
39 left arm hold horizontal and bring from side to front
40 left arm from horizontal side, bend elbow to get vertical forearm toward down
41 left arm from horizontal side, bring hand to shoulder (elbow moving vertically)
42 left arm hold horizontal and bring from left side to right side
43 left arm swing forearm downside with horizontal upper arm
44 left arm draw circles with arm extended on the left
45 left arm wave motion of the arm held, horizontal on the side
46 left arm wave hand (shoulder level)
47 left arm wave hand (over the head)
Table B.2: List of gestures composing the motions of the first choreography
dataset. The small dataset only uses the following subset of labels:
1, 5, 6, 10, 19, 20, 21, 22, 23, 24, 25, 28, 30, 38, 40, 43.134 APPENDIX B. DATASETS
Id Limb(s) Description
1 both legs squat
2 both legs walk
3 right leg make a flag/P on right leg
4 both arms clap
5 both arms mimic paddling left
6 right arm mimic punching with right arm
7 right arm right arm horizontal goes from side to front
8 left arm horizontal left arm, forearm goes down to form a square angle
9 left arm make waves on left arm
10 left arm say hello with left arm
Table B.3: List of gestures composing the motions of the second choreography dataset.
B.3.1 Description of the data
The data has been acquired through a kinect camera and the OpenNI drivers through
its ROS2
interface, which yields a stream of values of markers on the body. Each
example from the dataset is associated to a sequence of 3D positions of each of the
15 markers. Thus for a sequence of length T, the example would corresponds to
T ∗ 15 ∗ 7 values. The 7 successive values for each marker are there 3D coordinates
together with a representation of the rotation of the frame between previous and
next segment. The rotation is encoded in quaternion representation as described on
the ROS time frame page3
.
The position of the following list of markers was recorded: head, neck, left hip,
left hip, left shoulder, left elbow, left hand, left knee, left foot, right hip, right shoulder,
right elbow, right hand, right knee, right foot, right hand.
2Robotic operating system, http://ros.org
3http://www.ros.org/wiki/tfAppendix C
Code
The code used in the experiments from Mangin and Oudeyer (2013) is available
publicly on http://github.com/omangin/multimodal. It consists in a set of tools
and experimental scripts used to achieve multimodal learning with nonnegative
matrix factorization (NMF). This code is distributed under the new BSD license.
135136 APPENDIX C. CODEBibliography
P. Abbeel, A. Coates, and A. Y. Ng. Autonomous helicopter aerobatics through
apprenticeship learning. The International Journal of Robotics Research, 29(13):
1608–1639, June 2010. ISSN 0278-3649. doi: 10.1177/0278364910371999.
Pieter Abbeel and Andrew Y Ng. Apprenticeship learning via inverse reinforcement
learning. In International conference on Machine learning, 2004.
Michal Aharon, Michael Elad, and Alfred Bruckstein. K-svd: Design of dictionaries
for sparse representation. In Proceedings of SPARS, number 5, pages 9–12, 2005.
Nasir Ahmed, T Natarajan, and Kamisetty R Rao. Discrete cosine transform.
Computers, IEEE Transactions on, 100(1):90–93, 1974.
Guillaume Aimetti. Modelling early language acquisition skills: Towards a general
statistical learning mechanism. In EACL (Student Research Workshop), pages 1–9,
2009.
S. Akaho, Y. Kiuchi, and S. Umeyama. Mica: multimodal independent component
analysis. In International Joint Conference on Neural Networks, (IJCNN 99),
volume 2, pages 927–932, 1999. doi: 10.1109/IJCNN.1999.831077.
Zeynep Akata, Christian Thurau, and Christian Bauckhage. Non-negative matrix
factorization in multimodality data for segmentation and label prediction. In
Computer Vision Winter Workshop, number 16, Mitterberg, Autriche, 2011.
Nameera Akhtar and Lisa Montague. Early lexical acquisition: The role of crosssituational
learning. First Language, 19(57):347–358, 1999.
Javier Almingol, Luis Montesano, and Manuel Lopes. Learning multiple behaviors
from unlabeled demonstrations in a latent controller space. In International
conference on Machine learning (ICML), 2013.
Toomas Altosaar, Louis ten Bosch, Guillaume Aimetti, Christos Koniaris, Kris
Demuynck, Henk van den Heuvel, Signal Proc, P O Box, and Fi Tkk. A speech
corpus for modeling language acquisition: Caregiver. In Language Resources and
Evaluation - LREC, pages 1062–1068, 2008.
Pierre Andry, Philippe Gaussier, Sorin Moga, Jean-Paul Banquet, and Jacqueline
Nadel. Learning and communication via imitation: An autonomous robot perspective.
Systems, Man and Cybernetics, Part A: Systems and Humans, IEEE
Transactions on, 31(5):431–442, 2001.
137138 BIBLIOGRAPHY
Minoru Asada, Koh Hosoda, Yasuo Kuniyoshi, Hiroshi Ishiguro, Toshio Inui, Yuichiro
Yoshikawa, Masaki Ogino, and Chisato Yoshida. Cognitive developmental robotics:
A survey. Autonomous Mental Development, IEEE Transactions on, 1(1):12–34,
2009.
Monica Babes-Vroman, Vukosi Marivate, Kaushik Subramanian, and Michael Littman.
Apprenticeship learning about multiple intentions. In International conference on
Machine learning (ICML), number 28, 2011.
Adrien Baranes and Pierre-Yves Oudeyer. Active learning of inverse models with
intrinsically motivated goal exploration in robots. Robotics and Autonomous
Systems, 61(1):49–73, January 2013. doi: 10.1016/j.robot.2012.05.008.
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.
Herbert Bay, Tinne Tuytelaars, and Luc Van Gool. Surf: Speeded up robust features.
In Computer Vision–ECCV 2006, pages 404–417. Springer, 2006.
Richard Bellman. Dynamic Programming. Princeton University Press, Princeton,
NJ, USA, 1 edition, 1957a.
Richard Bellman. A markovian decision process. Indiana University Mathematics
Journal, 6:679–684, 1957b. ISSN 0022-2518.
Tony Belpaeme and Anthony Morse. Word and category learning in a continuous
semantic domain: Comparing cross-situational and interactive learning. Advances
in Complex Systems, 15(03n04), 2012. doi: 10.1142/S021952591200312.
Jaafar BenAbdallah, Juan C. Caicedo, Fabio A. Gonzalez, and Olfa Nasraoui. Multimodal
image annotation using non-negative matrix factorization. In International
Conference on Web Intelligence and Intelligent Agent Technology, pages
128–135. IEEE / WIC / ACM, August 2010. ISBN 978-1-4244-8482-9. doi:
10.1109/WI-IAT.2010.293.
Christopher M. Bishop. Pattern Recognition and Machine Learning (Information
Science and Statistics). Springer-Verlag New York, Inc., 2006.
Randolph Blake. A neural theory of binocular rivalry. Psychological review, 96(1):
145–167, 1989.
Sofiane Boucenna, Philippe Gaussier, Pierre Andry, and Laurence Hafemeister. Imitation
as a communication tool for online facial expression learning and recognition. In
Intelligent Robots and Systems (IROS), 2010 IEEE/RSJ International Conference
on, pages 5323–5328. IEEE, 2010.
Stephen Boyd and Lieven Vandenberghe. Convex optimization. Cambridge University
Press, 2004. ISBN 978-0521833783.
M. Boyle. Notes on the perron-frobenius theory of nonnegative matrices. Technical
report.
Holger Brandl, Frank Joublin, and Christian Goerick. Towards unsupervised online
word clustering. In IEEE International Conference on Acoustics, Speech, and
Signal Processing, pages 5073–5076, Las Vegas, NV, 2008.BIBLIOGRAPHY 139
Michael R. Brent. Speech segmentation and word discovery: A computational
perspective, 1999.
David R. Brillinger. Learning a potential function from a trajectory. IEEE Signal
Processing Letters, 14(11):867–870, November 2007. ISSN 1070-9908. doi: 10.1109/
LSP.2007.900032.
Rodney Brooks. Intelligence without representation. Artificial Intelligence, 47:
139–159, 1991.
Jesse Butterfield, Sarah Osentoski, Graylin Jay, and Odest Chadwicke Jenkins.
Learning from demonstration using a multi-valued function regressor for timeseries
data. In International Conference on Humanoid Robots, number 10, Nashville,
2010. IEEE Comput. Soc. Press.
Richard W. Byrne and Anne E. Russon. Learning by imitation: a hierarchical
approach. Behavioral and brain sciences, 21(5):667–721, 1998.
Maya Cakmak and Manuel Lopes. Algorithmic and human teaching of sequential
decision tasks. In AAAI Conference on Artificial Intelligence (AAAI-12), 2012.
S. Calinon and A. Billard. A probabilistic programming by demonstration framework
handling skill constraints in joint space and task space. In Proc. IEEE/RSJ Intl
Conf. on Intelligent Robots and Systems (IROS), September 2008.
Sylvain Calinon and Aude G Billard. Statistical learning by imitation of competing
constraints in joint space and task space. Advanced Robotics, 23:2059–2076, 2009.
Sylvain Calinon, Florent Guenter, and Aude Billard. On learning, representing,
and generalizing a task in a humanoid robot. IEEE transactions on systems,
man, and cybernetics. Part B, Cybernetics : a publication of the IEEE Systems,
Man, and Cybernetics Society, 37(2):286–98, April 2007. ISSN 1083-4419. doi:
10.1109/TSMCB.2006.886952.
Sylvain Calinon, Florent D’Halluin, Eric L Sauser, Darwin G Caldwell, and Aude G
Billard. Learning and reproduction of gestures by imitation: An approach based
on hidden markov model and gaussian mixture regression. IEEE Robotics and
Automation Magazine, 17(2):44–54, 2010.
Angelo Cangelosi, Giorgio Metta, Gerhard Sagerer, Stefano Nolfi, Chrystopher
Nehaniv, Kerstin Fischer, Jun Tani, Tony Belpaeme, Giulio Sandini, Francesco Nori,
Luciano Fadiga, Britta Wrede, Katharina Rohlfing, Elio Tuci, Kerstin Dautenhahn,
Joe Saunders, and Arne Zeschel. Integration of action and language knowledge: A
roadmap for developmental robotics. IEEE Transactions on Autonomous Mental
Development, 2(3):167–195, September 2010. ISSN 1943-0604. doi: 10.1109/TAMD.
2010.2053034.
Luigi Cattaneo and Giacomo Rizzolatti. The mirror neuron system. Archives of
Neurology, 66(5):557, 2009.
Thomas Cederborg and Pierre-Yves Oudeyer. From language to motor gavagai:
Unified imitation learning of multiple linguistic and non-linguistic sensorimotor
skills. Transactions on Autonomous Mental Development (TAMD), 5, 2013.140 BIBLIOGRAPHY
E. Colin Cherry. Some experiments on the recognition of speech, with one and with
two ears. The Journal of the acoustical society of America, 25:975, 1953. doi:
10.1121/1.1907229.
Jaedeug Choi and Kee-Eung Kim. Nonparametric bayesian inverse reinforcement
learning for multiple reward functions. In Advances in Neural Information Processing
Systems 25, pages 314–322, 2012.
Thomas M Cover and Joy A. Thomas. Elements of information theory. John Wiley
& Sons, 1991.
Christian Daniel, Gerhard Neumann, and Jan Peters. Learning concurrent motor
skills in versatile solution spaces. In Proceedings of the International Conference
on Robot Systems (IROS), 2012.
John Demiris and Gillian Hayes. Do robots ape. In AAAI Fall Symposium, pages
28–30. American Association for Artificial Intelligence, November 1997.
Arthur P Dempster, Nan M Laird, and Donald B Rubin. Maximum likelihood from
incomplete data via the em algorithm. Journal of the Royal Statistical Society.
Series B (Methodological), pages 1–38, 1977.
Chris Ding, Tao Li, and Michael I Jordan. Convex and semi-nonnegative matrix
factorizations. IEEE Transactions on Pattern Analysis and Machine Intelligence,
32(1):45–55, January 2010. ISSN 1939-3539. doi: 10.1109/TPAMI.2008.277.
David Donoho and Victoria Stodden. When does non-negative matrix factorization
give a correct decomposition into parts ? Advances in neural information processing
systems, 16, 2003.
Joris Driesen. Discovering words in speech using matrix factorization. PhD thesis,
KU Leuven, ESAT, 2012.
Joris Driesen, Louis ten Bosch, and Hugo Van Hamme. Adaptive non-negative matrix
factorization in a computational model of language acquisition. In Interspeech,
pages 1–4, 2009.
Joris Driesen, Hugo Van Hamme, and Bastiaan W. Kleijn. Learning from images and
speech with non-negative matrix factorization enhanced by input space scaling.
In IEEE Spoken Language Technology Workshop (SLT), pages 1–6, Berkeley,
California, USA, 2010. IEEE. doi: http://dx.doi.org/10.1109/SLT.2010.5700813.
Joris Driesen, Jort F. Gemmeke, and Hugo Van Hamme. Data-driven speech representations
for nmf-based word learning. In SAPA-SCALE, Portland, USA,
2012.
Staffan Ekvall and Danica Kragic. Learning task models from multiple human
demonstrations. ROMAN 2006 - The 15th IEEE International Symposium on
Robot and Human Interactive Communication, pages 358–363, September 2006.
doi: 10.1109/ROMAN.2006.314460.
Daniel P. W. Ellis. Plp and rasta (and mfcc, and inversion) in matlab, 2005.
K. Farrell, R.J. Mammone, and A.L. Gorin. Adaptive language acquisition using
incremental learning. In International Conference on Acoustics, Speech, and Signal
Processing (ICASSP 1993), volume 1, pages 501–504. IEEE, 1993.BIBLIOGRAPHY 141
David Filliat. Interactive learning of visual topological navigation. In International
Conference on Intelligent Robots and Systems (IROS 2008), pages 248–254. IEEE,
2008.
Sadaoki Furui. Speaker-independent isolated word recognition using dynamic features
of speech spectrum. Acoustics, Speech and Signal Processing, IEEE Transactions
on, 34(1):52–59, 1986.
C´edric F´evotte and J´erˆome Idier. Algorithms for nonnegative matrix factorization
with the β-divergence. Neural Computation, 29(9):2421–2456, 2011. doi: http:
//dx.doi.org/10.1162/NECO a 00168.
C´edric F´evotte, Jonathan Le Roux, and John R. Hershey. Non-negative dynamical
system with application to speech and audio. In IEEE International Conference
on Acoustics, Speech and Signal Processing (ICASSP), May 2013.
Mrugesh R. Gajjar, R. Govindarajan, and T. V. Sreenivas. Online unsupervised
pattern discovery in speech using parallelization. In InterSpeech, pages 2458–2461.
ISCA, 2008.
Zoubin Ghahramani and Michael I. Jordan. Supervised learning from incomplete
data via an em approach. In Advances in Neural Information Processing Systems
6, pages 120–127. Morgan Kaufmann, 1994.
James Jerome Gibson. The Ecological Approach To Visual Perception. Taylor &
Francis, 1979. ISBN 9781135059729.
Arthur M Glenberg and Michael P Kaschak. Grounding language in action. Psychonomic
bulletin & review, 9(3):558–65, September 2002. ISSN 1069-9384.
Rebecca L. Gomez and Lou-Ann Gerken. Artificial grammar learning by 1-year-olds
leads to specific and abstract knowledge. Cognition, 70(2):109–135, 1999.
A L Gorin, D Petrovska-Delacretaz, J Wright, and G Riccardi. Learning spoken
language without transcription, 1999.
Allen L. Gorin, Stephen E. Levinson, and Ananth Sankar. An experiment in spoken
language acquisition. Speech and Audio Processing, IEEE Transactions on, 2(1):
224–240, January 1994. ISSN 1063-6676. doi: 10.1109/89.260365.
Jacqueline Gottlieb, Pierre-Yves Oudeyer, Manuel Lopes, and Adrien Baranes.
Information-seeking, curiosity, and attention: computational and neural mechanisms.
Trends in cognitive sciences, 17(11):585–593, 2013.
Herbert Paul Grice. Studies in the Way of Words. Harvard University Press, 1989.
Daniel H Grollman and Odest Chadwicke Jenkins. Incremental learning of subtasks
from unsegmented demonstration. In IROS, Taipei, Taiwan, 2010.
Stevan Harnad. The symbol grounding problem. Physica D: Nonlinear Phenomena,
42(1):335–346, 1990.
Stephen Hart and Roderic Grupen. Learning generalizable control programs. Autonomous
Mental Development, IEEE Transactions on, 3(3):216–231, 2011.142 BIBLIOGRAPHY
Stephen Hart, Shijaj Sen, and Roderic A. Grupen. Intrinsically motivated hierarchical
manipulation. In International Conference on Robotics and Automation (ICRA),
pages 3814–3819, Pasadena, California, USA, 2008.
Trevor J. Hastie, R. Tibshirani, and J. Friedman. The elements of statistical learning.
Springer, second edi edition, 2001.
Sven Hellbach, Julian P Eggert, Edgar K¨orner, and Horst-michael Gross. Basis
decomposition of motion trajectories using spatio-temporal nmf. In Int. Conf.
on Artificial Neural Networks (ICANN), pages 597–606, Limassol, Cyprus, 2009.
Springer.
Ronald A. Howard. Dynamic Programming and Markov Processes. Published jointly
by the Technology Press of the Massachusetts Institute of Technology and Wiley
and Sons, 1960.
Patrik O Hoyer. Non-negative sparse coding. Technical report, February 2002.
Patrik O Hoyer. Non-negative matrix factorization with sparseness constraints.
Journal of Machine Learning Research, 5:1457–1469, 2004.
Auke Jan Ijspeert, Jun Nakanishi, and Stefan Schaal. Learning attractor landscapes
for learning motor primitives. In Advances in neural information processing systems,
pages 1547–1554, Cambridge, 2003. MIT Press.
Naoto Iwahashi. Language acquisition through a human–robot interface by combining
speech, visual, and behavioral information. Information Sciences, 156(1):109–121,
2003.
Naoto Iwahashi. Active and unsupervised learning for spoken word acquisition
through a multimodal inteface. In IEE International Workshop on Robot and
Human Interactive Communication, 2004.
Rodolphe Jenatton, Julien Mairal, Guillaume Obozinski, and Francis Bach. Proximal
methods for sparse hierarchical dictionary learning. In Proceedings of the
International Conference on Machine Learning (ICML), 2010.
Nikolay Jetchev and Marc Toussaint. Task space retrieval using inverse feedback
control. In Lise Getoor and Tobias Scheffer, editors, International Conference on
Machine Learning, number 28 in ICML ’11, pages 449–456, New York, NY, USA,
June 2011. ACM. ISBN 978-1-4503-0619-5.
Thorsten Joachims. Text categorization with support vector machines: Learning
with many relevant features. Technical Report 23, UniversUniversit¨at Dortmund,
LS VIII-Reportit¨at Do, 1997.
Fr´ed´eric Kaplan and Pierre-Yves Oudeyer. The progress-drive hypothesis: an interpretation
of early imitation. Models and mechanims of imitation and social
learning: Behavioural, social and communication dimensions, pages 361–377, 2007.
Juha Karhunen and Tomas Ukkonen. Extending ica for finding jointly dependent
components from two related data sets. Neurocomputing, 70:2969–2979, 2007. ISSN
0925-2312. doi: 10.1016/j.neucom.2006.10.144.BIBLIOGRAPHY 143
S Mohammad Khansari-Zadeh and Aude Billard. Learning stable non-linear dynamical
systems with gaussian mixture models. IEEE Transactions on Robotics2, 27
(5):943–957, 2011.
Jens Kober and Jan Peters. Policy search for motor primitives in robotics. In
Advances in Neural Information Processing Systems, pages 849–856, Red Hook,
NY, USA, 2009. Curran.
J¨urgen Konczak. On the notion of motor primitives in humans and robots. In
International Workshop on Epigenetic Robotics: Modeling Cognitive Development
in Robotic Systems, volume 123, pages 47–53. Lund University Cognitive Studies,
2005. ISBN 91-974741-4-2.
V Kruger, Danica Kragic, Aleˇs Ude, and Christopher Geib. The meaning of action:
a review on action recognition and mapping. Advanced Robotics, 21(13):1473–1501,
2007.
Volker Kruger, Dennis Herzog, Sanmohan Baby, Ales Ude, and Danica Kragic.
Learning actions from observations. Robotics and Automation Magazine, 17(2):
30–43, 2010.
Patricia K Kuhl. Early language acquisition: cracking the speech code. Nature
reviews. Neuroscience, 5(11):831–43, November 2004. ISSN 1471-003X. doi:
10.1038/nrn1533.
Patricia K. Kuhl. Brain mechanisms in early language acquisition. Neuron, 67(5):
713–727, 2010.
Patricia K. Kuhl, Karen A. Williams, Francisco Lacerda, Kenneth N. Stevens, and
Bj¨orn Lindblom. Linguistic experience alters phonetic perception in infants by 6
months of age. Science, 255(5044):606–608, 1992.
D Kulic, Hirotaka Imagawa, and Yoshihiko Nakamura. Online acquisition and
visualization of motion primitives for humanoid robots. Symposium on Robot and
Human, pages 1210–1215, 2009.
Dana Kulic and Yoshihiko Nakamura. Incremental learning of human behaviors
using hierarchical hidden markov models. In IEEE International Conference on
Intelligent Robots and Systems, pages 4649–4655. IEEE Comput. Soc. Press, 2010.
Yasuo Kuniyoshi, Masayuki Inaba, and Hirochika Inoue. Learning by watching:
Extracting reusable task knowledge from visual observation of human performance.
Robotics and Automation, IEEE Transactions on, 10(6):799–822, 1994.
Barbara Landau, Linda Smith, and Susan Jones. Object perception and object
naming in early development. Trends in cognitive sciences, 2(1):19–24, 1998.
Daniel D. Lee and H Sebastian Seung. Learning the parts of objects by non-negative
matrix factorization. Nature, 401(6755):788–91, October 1999. ISSN 0028-0836.
doi: 10.1038/44565.
Daniel D. Lee and H. Sebastian Seung. Algorithms for non-negative matrix factorization.
In Advances in Neural Information Processing Systems, pages 556–562. MIT
Press, 2001.144 BIBLIOGRAPHY
Honglak Lee, Alexis Battle, Rajat Raina, and Andrew Y. Ng. Efficient sparse
coding algorithms. In Advances in Neural Information Processing Systems (NIPS),
number 19, 2006.
Augustin Lef`evre, Francis R. Bach, and C´edric F´evotte. Itakura-saito nonnegative
matrix factorization with group sparsity. In Acoustics, Speech and Signal Processing
(ICASSP), 2011 IEEE International Conference on, number 1, pages 21–24. IEEE,
2011.
David A. Leopold and Nikos K. Logothetis. Multistable phenomena: changing views
in perception. Trends in cognitive sciences, 3(7):254–264, 1999. doi: 10.1016/
S1364-6613(99)01332-7.
Vladimir I Levenshtein. Binary codes capable of correcting deletions, insertions and
reversals. In Soviet physics doklady, volume 10, page 707, 1966.
Sergey Levine, Zoran Popovic, and Vladlen Koltun. Feature construction for inverse
reinforcement learning. Advances in Neural Information Processing Systems, (24):
1–9, 2010.
Yi Li, Cornelia Fermuller, Yiannis Aloimonos, and Hui Ji. Learning shift-invariant
sparse representation of actions. In 2010 IEEE Computer Society Conference on
Computer Vision and Pattern Recognition, pages 2630–2637, San-Francisco, June
2010. IEEE. ISBN 978-1-4244-6984-0. doi: 10.1109/CVPR.2010.5539977.
Rainer Lienhart, Stefan Romberg, and Eva H¨orster. Multilayer plsa for multimodal
image retrieval. In International Conference on Image and Video Retrieval -CIVR,
number April, page 1, New York, New York, USA, 2009. ACM Press. ISBN
9781605584805. doi: 10.1145/1646396.1646408.
Chih-Jen Lin. Projected gradient methods for nonnegative matrix factorization.
Neural computation, 19(10):2756–79, October 2007. ISSN 0899-7667. doi: 10.1162/
neco.2007.19.10.2756.
Manuel Lopes, Francisco S. Melo, Ben Kenward, and Jos´e Santos-Victor. A computational
model of social-learning mechanisms. Adaptive Behavior, 17(6):467–483,
2009a.
Manuel Lopes, Francisco S. Melo, and Luis Montesano. Active learning for reward
estimation in inverse reinforcement learning. In European Conference on Machine
Learning (ECML), 2009b.
Max Lungarella, Giorgio Metta, Rolf Pfeifer, and Giulio Sandini. Developmental
robotics: a survey. Connection Science, 15(4):151–190, 2003.
Natalia Lyubova and David Filliat. Developmental approach for interactive object
discovery. In Proceedings of the 2012 IJCNN International Joint Conference on
Neural Networks, 2012.
Bin Ma and Haizhou Li. Spoken language identification using bag-of-sounds. In
International Conference on Computational Cybernetics. IEEE, 2005.
Julien Mairal, Francis Bach, Jean Pnce, and Guillermo Sapiro. Online dictionary
learning for sparse coding. In International Conference on Machine Learning
(ICML), number 26, pages 689–696, 2009.BIBLIOGRAPHY 145
Olivier Mangin and Pierre-Yves Oudeyer. Learning to recognize parallel combinations
of human motion primitives with linguistic descriptions using non-negative matrix
factorization. In International Conference on Intelligent Robots and Systems (IROS
2012), Vilamoura, Algarve (Portugal), 2012a. IEEE/RSJ.
Olivier Mangin and Pierre-Yves Oudeyer. Learning the combinatorial structure of
demonstrated behaviors with inverse feedback control. In International Workshop
on Human Behavior Understanding, number 3, Vilamoura, Algarve (Portugal),
2012b.
Olivier Mangin and Pierre-Yves Oudeyer. Learning semantic components from
subsymbolic multimodal perception. In the Joint IEEE International Conference
on Development and Learning an on Epigenetic Robotics (ICDL-EpiRob), number 3,
August 2013.
Olivier Mangin, David Filliat, and Pierre-Yves Oudeyer. A bag-of-features framework
for incremental learning of speech invariants in unsegmented audio streams. In
Birger Johansson, Erol Sahin, and Christian Balkenius, editors, Tenth International
Conference on Epigenetic Robotics, pages 73–80, Ooren¨aas Slott, Sweden, 2010. ¨
Ellen M. Markman. Constraints children place on word meanings. Cognitive Science,
14:57–77, 1990.
Gianluca Massera, Elio Tuci, Tomassino Ferrauto, and Stefano Nolfi. The facilitatory
role of linguistic instructions on developing manipulation skills. IEEE
Computational Intelligence Magazine, 5(3):33–42, 2010.
Harry McGurk and John MacDonald. Hearing lips and seeing voices. Nature, 264
(5588):746–748, December 1976. ISSN 0028-0836. doi: 10.1038/264746a0.
C.D. Meyer. Matrix analysis and applied linear algebra: solutions manual. Society
for Industrial and Applied Mathematics, 2000. ISBN 0-89871-454-0.
Bernard Michini and Jonathan P How. Bayesian nonparametric inverse reinforcement
learning. In Machine Learning and Knowledge Discovery in Databases, pages
148–163. Springer, 2012.
Benjamin Franklin Miessner. The electric dog. Scientific American Supplement,
(2267):376–377, June 14th 1919.
Cl´ement Moulin-Frier. Rˆole des relations perception-action dans la communication
parl´ee et l’´emergence des syst`emes phonologiques : ´etude, mod´elisation computationnelle
et simulations. PhD thesis, Universit´e Pierre Mendes-France, Grenoble,
2011.
Ferdinando A. Mussa-Ivaldi and Emilio Bizzi. Motor learning through the combination
of primitives. Philosophical transactions of the Royal Society of London. Series
B, Biological sciences, 355(1404):1755–69, December 2000. ISSN 0962-8436. doi:
10.1098/rstb.2000.0733.
Jacqueline Nadel. Imitation et communication entre jeunes enfants, volume 13.
Presses Universitaires de France - PUF, 1986.
Yukie Nagai. Joint attention learning based on early detection of self-other motion
equivalence with population codes. Journal of the Robotics Society of Japan, 25
(5):77, 2007.146 BIBLIOGRAPHY
C Nehaniv and K Dautenhahn. Of hummingbirds and helicopters: An algebraic
framework for interdisciplinary studies of imitation and its applications. World
Scientific Series in Robotics and, pages 1–26, 2000.
Gergely Neu and Csaba Szepesv´ari. Apprenticeship learning using inverse reinforcement
learning and gradient methods. In Conference on Uncertainty in Artificial
Intelligence (UAI), number 23, pages 295–302, Vancouver, Canada, 2007. AUAI
Press, Corvallis, Oregon. ISBN 0-9749039-3-00-9749039-3-0.
Andrew Y. Ng and Stuart Russell. Algorithms for inverse reinforcement learning.
International Conference on Machine Learning, 2000.
Andrew Y. Ng, Daishi Harada, and Stuart Russell. Policy invariance under reward
transformations: Theory and application to reward shaping. In International
Conference on Machine Learning (ICML), number 16, pages 278–287, 1999.
Jiquan Ngiam, Aditya Khosla, Mingyu Kim, Juhan Nam, and Andrew Y. Ng.
Multimodal deep learning. In International Conference on Machine Learning,
number 28, Bellevue, Washington, USA, 2011.
Monica N. Nicolescu and Maja J. Matari´c. A hierarchical architecture for behaviorbased
robots. Proceedings of the first international joint conference on Autonomous
agents and multiagent systems part 1 - AAMAS ’02, page 227, 2002. doi: 10.1145/
544741.544798.
Monica N. Nicolescu and Maja J. Matari´c. Natural methods for learning and
generalization in human-robot domains. In Second International Joint Conference
on Autonomous Agents and Multi-Agent Systems, Melbourne, Australia, 2003.
David Nister and Henrik Stewenius. Scalable recognition with a vocabulary tree.
In CVPR ’06: Proceedings of the 2006 IEEE Computer Society Conference on
Computer Vision and Pattern Recognition, pages 2161–2168, Washington, DC,
USA, 2006. IEEE Computer Society. ISBN 0-7695-2597-0. doi: http://dx.doi.org/
10.1109/CVPR.2006.264.
Francesco Nori and Ruggero Frezza. Biologically inspired control of a kinematic chain
using the superposition of motion primitives. In Decision and Control (CDC),
volume 1, pages 1075–1080. IEEE Comput. Soc. Press, 2004a.
Franceso Nori and Ruggero Frezza. Nonlinear control by a finite set of motion
primitives. In Nolcos, 2004b.
Pierre-Yves Oudeyer. On the impact of robotics in behavioral and cognitive sciences:
From insect navigation to human cognitive development. IEEE Transactions on
Autonomous Mental Development, 2(1):2–16, March 2010. ISSN 1943-0604. doi:
10.1109/TAMD.2009.2039057.
P Paatero and U Tapper. Positive matrix factorization: A non-negative factor model
with optimal utilization of error estimates of data values. Environmetrics, 5(2):
111–126, 1994.
Michael Pardowitz, Steffen Knoop, Ruediger Dillmann, and Raoul D Z¨ollner. Incremental
learning of tasks from user demonstrations, past experiences, and vocal
comments. IEEE transactions on systems, man, and cybernetics. Part B, Cybernetics
: a publication of the IEEE Systems, Man, and Cybernetics Society, 37(2):
322–32, April 2007. ISSN 1083-4419.BIBLIOGRAPHY 147
Alex S. Park and James R. Glass. Unsupervised pattern discovery in speech. IEEE
Transactions on Audio, Speech and Language Processing, 16(1):186–197, 2008.
Jean Piaget. La construction du r´eel chez l’enfant. Delachaux & Niestl´e, 1937.
RJ Plemmons and RE Cline. The generalized inverse of a nonnegative matrix. Proc.
Amer. Math. Soc, 31(1):46–50, 1972.
Gerasimos Potamianos, Chalapathy Neti, Guillaume Gravier, Ashutosh Garg, and
Andrew W Senior. Recent advances in the automatic recognition of audiovisual
speech. Proceedings of the IEEE, 91(9):1306–1326, 2003.
Willard Van Orman Quine. Word and object. MIT press, 1960.
Lawrence R. Rabiner. A tutorial on hidden markov models and selected applications
in speech recognition. Proceedings of the IEEE, 77(2):257–286, 1989.
Deepak Ramachandran and Eyal Amir. Bayesian inverse reinforcement learning. In
International Joint Conference on Artificial Intelligence (IJCAI’07), number 20,
pages 2586–2591, 2007.
Nathan D. Ratliff, J. Andrew Bagnell, and Martin A. Zinkevich. Maximum margin
planning. In International conference on Machine learning - ICML ’06, number 23,
pages 729–736, New York, New York, USA, 2006. ACM Press. ISBN 1595933832.
doi: 10.1145/1143844.1143936.
Constantin A. Rothkopf and Dana H. Ballard. Modular inverse reinforcement learning
for visuomotor behavior. Biological cybernetics, pages 1–14, 2013.
Alice C. Roy and Michael A. Arbib. The syntactic motor system. Gesture, 5(1):7–37,
January 2005. ISSN 15681475. doi: 10.1075/gest.5.1.03roy.
Deb Roy. Learning from Sights and Sounds: A Computational Model. PhD thesis,
Massachussetts Institute of Technology, September 1999.
Deb K. Roy and Alex P. Pentland. Learning words from sights and sounds: A
computational model. Cognitive science, 26(1):113–146, January 2002. ISSN
03640213. doi: 10.1207/s15516709cog2601 4.
Yossi Rubner, Carlo Tomasi, and Leonidas J Guibas. ”the earth mover’s distance as
a metric for image retrieval”: None. International Journal of Computer Vision, 40
(2):99–121, 2000.
Stuart Russell. Learning agents for uncertain environments. In Proceedings of the
eleventh annual conference on Computational learning theory, pages 101–103. ACM,
1998.
Kate Saenko and Trevor Darrell. Object category recognition using probabilistic fusion
of speech and image classifiers. In Joint Workshop on Multimodal Interaction and
Related Machine Learning Algorithms - MLMI, number 4, Brno, Czech Republic,
2007.
Jenny R. Saffran and Diana P. Wilson. From syllables to syntax: Multilevel statistical
learning by 12-month-old infants. Infancy, 4(2):273–284, April 2003. ISSN 15250008.
doi: 10.1207/S15327078IN0402 07.148 BIBLIOGRAPHY
Jenny R. Saffran, Richard N. Aslin, and Elissa L. Newport. Statistical learning by
8-month-old infants. Science, 274(5294):1926–1928, 1996.
H. Sakoe and S. Chiba. Dynamic programming algorithm optimization for spoken
word recognition. IEEE Transactions on Acoustics, Speech, and Signal Processing,
26(1):43–49, February 1978. ISSN 0096-3518. doi: 10.1109/TASSP.1978.1163055.
Larissa K. Samuelson, Linda B. Smith, Lynn K. Perry, and John P. Spencer. Grounding
word learning in space. PloS one, 6(12):e28095, 2011.
Stefan Schaal. Dynamic movement primitives-a framework for motor control in
humans and humanoid robotics. In Adaptive Motion of Animals and Machines,
pages 261–280, Los Angeles, 2006. Springer.
Jean-Luc Schwartz. A reanalysis of mcgurk data suggests that audiovisual fusion in
speech perception is subject-dependent. The Journal of the Acoustical Society of
America, 127:1584–1594, 2010. doi: 10.1121/1.3293001.
Jean-Luc Schwartz, Fr´ed´eric Berthommier, and Christophe Savariaux. Seeing to
hear better: evidence for early audio-visual interactions in speech identification.
Cognition, 93(2):B69–B78, 2004.
Jean-Luc Schwartz, Anahita Basirat, Lucie M´enard, and Marc Sato. The perceptionfor-action-control
theory (pact): A perceptuo-motor theory of speech perception.
Journal of Neurolinguistics, 25(5):336–354, 2012a. ISSN 0911-6044. doi: 10.1016/j.
jneuroling.2009.12.004.
Jean-Luc Schwartz, Nicolas Grimault, Jean-Michel Hup´e, Brian C.J. Moore, and
Daniel Pressnitzer. Multistability in perception: binding sensory modalities, an
overview. Philosophical Transactions of the Royal Society B: Biological Sciences,
367(1591):896–905, 2012b.
Jihene Serkhane, Jean-Luc Schwartz, and Pierre Bessiere. Building a talking baby
robot: A contribution to the study of speech acquisition and evolution. Interaction
studies, 6(2):253–286, 2005.
Ajit P. Singh and Geoffrey J. Gordon. A unified view of matrix factorization models.
In ECML PKDD, pages 358–373, 2008.
Josef Sivic and Andrew Zisserman. Efficient visual search for objects in videos.
Proceedings of the IEEE, 96(4):548–566, 2008.
Linda Smith and Chen Yu. Infants rapidly learn word-referent mappings via crosssituational
statistics. Cognition, 106(3):1558–1568, 2008.
David Sodoyer, Laurent Girin, Christian Jutten, and Jean-Luc Schwartz. Developing
an audio-visual speech source separation algorithm. Speech Communication, 44(1):
113–125, 2004.
Luc Steels. The Talking Heads Experiment, volume 1. Laboratorium, 1999.
Luc Steels. The symbol grounding problem has been solved. so what’s next? In
Manuel de Vega, Arthur M. Glenberg, and Arthur C. Graesser, editors, Symbols and
Embodiment: Debates on Meaning and Cognition, chapter 12. Oxford University
Press, Oxford, 2008.BIBLIOGRAPHY 149
Luc Steels and Frederic Kaplan. Bootstrapping grounded word semantics. In Ted
Briscoe, editor, Linguistic Evolution through Language Acquisition: Formal and
Computational Models, chapter 3. Cambridge University Press, 2002.
Stanley S. Stevens and John Volkmann. The relation of pitch to frequency: A revised
scale. The American Journal of Psychology, 53(3):329–353, 1940.
Veronique Stouten, Kris Demuynck, et al. Discovering phone patterns in spoken
utterances by non-negative matrix factorization. Signal Processing Letters, IEEE,
15:131–134, 2008.
Freek Stulp and Stefan Schaal. Hierarchical reinforcement learning with movement
primitives. 2011 11th IEEE-RAS International Conference on Humanoid Robots,
pages 231–238, October 2011. doi: 10.1109/Humanoids.2011.6100841.
Y. Sugita and J. Tani. Learning semantic combinatoriality from the interaction
between linguistic and behavioral processes. Adaptive Behavior, 13(1):33, 2005.
Richard S Sutton and Andrew G Barto. Reinforcement Learning: An Introduction.
MIT Press, 1998. ISBN 978-0-262-19398-6.
Richard S Sutton, Doina Precup, and Satinder Singh. Between mdps and semimdps:
A framework for temporal abstraction in reinforcement learning. Artificial
intelligence, 112(1):181–211, 1999.
Graham W. Taylor and Geoffrey E. Hinton. Factored conditional restricted boltzmann
machines for modeling motion style. In International Conference on Machine
Learning (ICML 2009), number 26, pages 1–8, New York, New York, USA, 2009a.
ACM Press. ISBN 9781605585161. doi: 10.1145/1553374.1553505.
Graham W. Taylor and Geoffrey E. Hinton. Products of hidden markov models :
It takes n ¿ 1 to tango. In Twenty-fifth Conference on Uncertainty in Artificial
Intelligence, pages 522–529. AUAI Press, 2009b.
Graham W. Taylor, Geoffrey E. Hinton, and Sam Roweis. Modeling human motion
using binary latent variables. Advances in neural information processing systems
(NIPS), 19:1345–1352, 2006. ISSN 1049-5258.
Matthew E Taylor and Peter Stone. Transfer learning for reinforcement learning
domains : A survey. Journal of Machine Learning Research, 10:1633–1685, 2009.
Louis ten Bosch, Lou Boves, Hugo Van Hamme, and Roger K. Moore. A computational
model of language acquisition: the emergence of words. Fundamenta Informaticae,
90(3):229–249, 2009.
Louis F.M. ten Bosch, Hugo Van Hamme, and Lou W.J. Boves. Unsupervised
detection of words questioning the relevance of segmentation. In Speech Analysis
and Processing for Knowledge Discovery, ITRW ISCA. Bonn, Germany : ISCA,
2008.
Edward L. Thorndike. Animal intelligence; experimental studies. New York, The
Macmillan company, 1911.
Sebastian Thrun and Tom M. Mitchell. Lifelong robot learning. Robotics and
autonomous systems, 15(1):25–46, 1995.150 BIBLIOGRAPHY
Michael Tomasello. Origins of human communication. MIT press Cambridge, 2008.
Matthew C Tresch and Anthony Jarc. The case for and against muscle synergies.
Current opinion in neurobiology, 19(6):601–7, December 2009. ISSN 1873-6882.
doi: 10.1016/j.conb.2009.09.002.
Elio Tuci, Tomassino Ferrauto, Arne Zeschel, Gianluca Massera, and Stefano Nolfi.
An experiment on behaviour generalisation and the emergence of linguistic compositionality
in evolving robots. IEEE Transactions on Autonomous Mental
Development, 3(2):1–14, 2011.
Alan Mathison Turing. Computing machinery and intelligence. Mind, 59(236):
433–460, 1950.
Hugo Van Hamme. Hac-models: a novel approach to continuous speech recognition.
In Interspeech ISCA, pages 2554–2557, 2008.
Juyang Weng, James McClelland, Alex Pentland, Olaf Sporns, Ida Stockman, Mriganka
Sur, and Esther Thelen. Autonomous mental development by robots and
animals. Science, 291(5504):599–600, 2001.
Andrew Whiten and R. Ham. On the nature and evolution of imitation in the animal
kingdom: reappraisal of a century of research. Advances in the Study of Behavior,
21:239–283, 1992.
Matthew M. Williamson. Postural primitives: Interactive behavior for a humanoid
robot arm. In International Conference on Simulation of Adaptive Behavior,
number 4, pages 124–131, 1996.
Britta Wrede, Katharina Rohlfing, Jochen Steil, Sebastian Wrede, Pierre-Yves
Oudeyer, and Jun Tani. Towards robots with teleological action and language
understanding. In Emre Ugur, Yukie Nagai, Erhan Oztop, and Minoru Asada,
editors, Humanoids 2012 Workshop on Developmental Robotics: Can developmental
robotics yield human-like cognitive abilities?, Osaka, Japon, November 2012.
Chen Yu and Dana H Ballard. A multimodal learning interface for grounding spoken
language in sensory perceptions. Transactions on Applied Perception, (1):57–80,
2004.
Chen Yu and Dana H. Ballard. A unified model of early word learning: Integrating
statistical and social cues. Neurocomputing, 70(13-15):2149–2165, August 2007.
ISSN 09252312. doi: 10.1016/j.neucom.2006.01.034.
Daniel Yurovsky, Chen Yu, and Linda B. Smith. Statistical speech segmentation
and word learning in parallel: scaffolding from child-directed speech. Frontiers in
psychology, 3, 2012.
Brian D Ziebart, Andrew Maas, J Andrew Bagnell, and Anind K Dey. Maximum
entropy inverse reinforcement learning. In AAI Conference on Artificial Intelligence,
number 23, pages 1433–1438, 2008.
Quality Assessment of Fingerprints with Minutiae
Delaunay Triangulation
Z Yao, Jean Marie Le Bars, C Charrier, C Rosenberger
To cite this version:
Z Yao, Jean Marie Le Bars, C Charrier, C Rosenberger. Quality Assessment of Fingerprints with
Minutiae Delaunay Triangulation. International Conference on Information Systems Security
and Privacy , Feb 2015, Angers, France.
HAL Id: hal-01096174
https://hal.archives-ouvertes.fr/hal-01096174
Submitted on 16 Dec 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Quality Assessment of Fingerprints
with Minutiae Delaunay Triangulation
Z. Yao, J. Le bars, C. Charrier and C. Rosenberger
Universite de Caen Basse Normandie; ENSICAEN; UMR 6072 GREYC, Caen, France.
{jean-marie.lebars; christophe.charrier}@unicaen.fr {zhigang.yao; christophe.rosenberger}@ensicaen.fr
Keywords: Fingerprint, minutiae template, quality assessment, evaluation.
Abstract: This article proposes a new quality assessment method of fingerprint, represented by only a set of minutiae
points. The proposed quality metric is modeled with the convex-hull and Delaunay triangulation of the minutiae
points. The validity of this quality metric is verified on several Fingerprint Verification Competition (FVC)
databases by referring to an image-based metric from the state of the art (considered as the reference). The
experiments of the utility-based evaluation approach demonstrate that the proposed quality metric is able to
generate a desired result. We reveal the possibility of assessing fingerprint quality when only the minutiae
template is available.
1 INTRODUCTION
The purpose of fingerprint quality assessment is to
improve or guarantee the performance of a biometric
system (Grother and Tabassi, 2007) by forbidding
bad quality fingerprint samples, especially during
the enrollment session. Existing studies of this issue
mostly define the quality in terms of the clarity of
ridge-valley pattern, contrast between foreground
and background, smoothness of orientation and etc
(Ratha and Bolle, 1999; Bolle et al., 1999; Chen et al.,
2004). No matter how many aspects are considered
by a fingerprint quality assessment approach, it is all
about features employed for generating the quality
metric. Prior studies in estimating fingerprint quality
had proposed several features (Alonso-Fernandez
et al., 2007), among which some are carried out by
using an unique feature, while some others combine
multiple features together. For instance, Chen et al.
proposed the Fourier spectrum-based quality metric
with the Butterworth function, Zhao el al. (Zhao
et al., 2010) concluded that the orientation certainty
level (OCL) (Lim et al., 2002) also performs well
for high resolution fingerprint image and Tabassi
et al. (Tabassi et al., 2004) proposed NFIQ with
multiple features including minutiae quality. To
standardize the quality metric of biometric sample,
the quality has been defined as a utility property
(Staff, 2009), i.e. sample quality reflects its impact
on the performance of the system. However, system
performance fully relies on the matching approach
such as minutiae-based system which is employed
most in actual deployments. In this case, it is
reasonable to consider qualifying fingerprint with
only minutiae information, particularly when using
for embedded applications.
There are very few quality assessment approaches
that take into account minutiae information, such
as NFIQ. Moreover, none of the state-of-the-art approaches
qualifies a fingerprint from the minutiae
template alone. The main contribution of the proposed
study is a black box algorithm that computes
quality score from a minutiae template associated to
the fingerprint. In another word, it could be viewed as
a quality metric for assessing the quality of a minutiae
template. The benefit of having this type of metric
is related to embedded biometric systems in smart
cards or smart objects where only the minutiae template
is available due to computational and storage
constraints.
This paper is organized as follows. Section 2
presents the proposed quality metric. Details of the
experimental results are given in section 3. Section 4
concludes the paper and discusses the perspectives.
2 METRIC DEFINITION
Fingerprint matching approaches, according to the literature
(Maltoni et al., 2009), are broadly classifiedas minutiae-based, correlation-based or image-based,
among which minutiae-based is the most widely studied
solution. A minutiae template generally provides
three kinds of information: 1) minutia location, 2)
the orientation and 3) the type of minutia point (ridge
ending and bifurcation), see figure 1.
Figure 1: A fingerprint and its minutiae template.
These features are sufficient to reconstruct a synthetic
fingerprint from a given template (Feng and
Jain, 2011) as the orientation field can be estimated.
Another kind of information is the amount of detected
minutiae points, which has been used as one factor
(Tabassi et al., 2004) for quality assessment of fingerprint
samples. However, this information is far from
being enough for generating an effective quality metric.
In order to do so, the minutiae template is related
with the foreground of fingerprint because the area of
minutiae indicates an available and useful region for
the so-called ’extractability’ of features. In this case,
this paper proposed to estimate fingerprint quality by
modeling the associated minutiae template with the
convex-hull and Delaunay triangulation (Cf. figure
2).
Figure 2: A convex hull (left) and Delaunay Triangulation.
The 2D convex hull (Andrew, 1979)
Ci = {(xj
, y j)| j = 1,··· ,Ni} (where Ni
is the
minutiae number of the i
th fingerprint) is defined as
the smallest convex set that contains all the points of
a given set of minutiae Fi
in this case (Cf. figure 2).
The Delaunay Triangulation of a set of points P in 2D
plane is defined as a triangulation DT(P) (Delaunay,
1934) that none of the points of the given set are
inside the circumcircle of any triangle of DT(P), as
illustrated in figure 2.
With the respective properties of these two geometric
structures, an area of the smallest informative
region of the fingerprint and a set of areas and
perimeters of triangles composed by each 3 minutiae
points are obtained. By doing so, one unavoidable
problem is observed that almost all the templates
of bad quality fingerprints contain both correctly
detected minutiae point and spurious points. Based
on this observation, we proposed a quality metric as
described below.
Let a minutiae template Fi of a fingerprint containing
a set of detected minutiae points represented
by mj = (xj
, yj
,θj), where (xj
, yj) is the location
and θj
is the orientation of the j
th minutia point;
A convex hull denoted by Ci and a set of triangles
(Tk) formed by Delaunay triangulation, formulated
as DT(Fi) = {Tk|k = 1,2,··· ,Li} where Li (< 2Ni)
is the number of triangles can be constructed from
Fi
. Correspondingly, the convex hull encloses all the
minutiae of Fi with the smallest area represented by
Ai
, and a set of areas Sk and perimeters Pk of DT(Fi)
are respectively obtained.
In the experiments, we observed that bad quality
samples generate tiny and extremely narrow triangles
(considered as unreasonable) due to spurious minutiae
points. The quantitative values of their area and
perimeter are (visually) not proportional to each other,
as observed in Figure 3.
Figure 3: Example of minutiae Delaunay triangulations of 3
different FVC images. NFIQ values are 2, 2 and 1, respectively.
In figure 3, triangles drew by the pink color indicates
the unreasonable minutiae structures. Based on
these observations, the quality metric (abbreviated asMQF afterwards) is calculated with several steps, as
described by algorithm 1. In the computation of the
proposed quality metric, three thresholds are set for
triangle perimeter, triangle area and the ratio between
the perimeter and area of the triangle, which are represented
by Yp, Ya and Yr
, respectively. The details
for choosing the most appropriate parameters are discussed
in section 3. The quality value q is dependent
on the size of the minutiae region so that it is normalized
into the range of [0, 100] on each database.
Algorithm 1 Computation of the quality score.
Input:
Minutiae Template Fi
.
Output:
Quality index, q;
1: Calculate the area of the convex hull Ci
, denoted
as Ai
;
2: Calculate perimeter and area for each triangle Tk,
denoted as Pk and Sk;
3: AYp = area(Search(Pk < Yp));
4: AYa = area(Search(Sk < Ya));
5: AYpa = area(Search(Pk < Yp & Sk < Ya));
6: AYr = area(Search(PkSk) > Yr);
7: Sarea =
Ai −AYp −AYa −AYr −AYpa
;
8: return q = Sarea;
Obviously, this algorithm relates the minutiae
template with the area of a region for matching operations
as it has just been mentioned before. However,
this factor is not sufficient so that we consider to remove
a part of potentially useless area from the informative
region due to the lack of image information.
Delaunay triangulation gives a relatively ideal solution
to this problem thanks to the spurious minutiae of
bad quality images. For example, as it is depicted in
figure 3, some unreasonable triangles formed by spurious
minutiae on the border enable us to remove the
corresponding area. Another case is the tiny triangle
which is mostly happened to the area where the quality
of ridge-valley pattern is relatively bad. The study
also noted that some fingerprint images have several
genuine minutiae clustering in a very small area. This
case is not specially considered in the proposed algorithm
just because of the limitation of the template.
The area of each triangle is obtained by using Heron’s
formula (Aufmann et al., 2007).
3 EXPERIMENTAL RESULTS
In order to validate the MQF, we adopt several
approaches to estimate the performance of the quality
metric: 1) the Pearson correlation coefficients between
the MQF and several others (from the state-ofthe-art)
are calculated and 2) the MQF is evaluated
by using an utility-based evaluation approach (Yao
et al., 2014). The experiment is performed with a
laptop driving by an Intel Celeron dual-core CPU of
1.73GHz. The experimental protocol is presented at
first.
3.1 Protocol et Database
In this study, several FVC databases with different
resolutions (Maio et al., 2004) have
been used for experiments: FVC2000DB2A,
FVC2002DB2A, FVC2004DB1A, FVC2004DB2A
and FVC2004DB3A. The first database is established
by a low capacitive sensor and the last one relies on a
thermal sweeping sensor, while others are established
by several optical sensors, see table 1 for details.
Table 1: Details of databases.
DB Sensor Type Resolution Image Dim
00DB2A Capacitive 500dpi 256×364
02DB2A Optical 569dpi 296×560
04DB1A Optical 500dpi 480×640
04DB2A Optical 500dpi 328×364
04DB3A Thermal 512dpi 300×480
Each of these databases involves 100 fingerprints,
and 8 samples for each fingerprint. In this case,
the matching scores involved in the experiment have
been calculated by using the NBIS tool (Watson
et al., 2007), Bozorth3. The intra-class scores contain
7×100 = 700 genuine scores, and the interclass
scores consist of 7×99×100 = 69300 impostor
scores for the whole database. Minutiae templates
used in the experiment were also extracted by using
the NBIS tool, MINDTCT. This software generates
a quadruple representation of minutia point,
mi = {x, y,o,q}, where (x, y) is the location of minutia
point, o indicates orientation and q is a quality score
of minutia point. In the experiment, the location has
been used only for calculating the proposed quality
metric.
3.2 Parameter Settings
Fernandez et al. (Alonso-Fernandez et al., 2007)
and Olsen (Olsen et al., 2012) respectively calculated
Pearson and Spearman correlation coefficients
between different quality metrics to observe their
behavior. Similarly, we investigate the behavior of
the proposed quality metric through the Pearson
correlation coefficients, by which the parameters areappropriately selected as well.
The three thresholds (Yp, Ya and Yr) are all empirical
values observed in the experiments and they are
all dependent on the resolution of the image which is
supposed to be over 500 dpi in this study. With the
experiment, we noted that the smallest area of the triangles
of each template is generally less than 70 (considering
a histogram of 100 bins). This value is only
a scalar without considering the unit of the measurement.
In this case, we firstly preferred to choose a
value of the area over 70. In addition, it is easy to
observe that a threshold larger than 80 may loose the
significance of this parameter. The variation of the
correlation values (larger than 0.3) demonstrates this
problem, see figure 4.
Figure 4: The variation of correlation between the proposed
metric and OCL as the parameter changes.
Likewise, the smallest perimeter value of the triangles
of each template is mostly within the interval
[10, 80], and generally lies around 35 (according to
the histogram). In this case, we further consider the
relation between the area and the perimeter of those
triangles that seemed abnormal. Without considering
the unit of the two measurements (one is 1-D and
another is 2-D), we observed that the value of the
perimeter is generally smaller than the area. In this
case, inspiring by the Heron’s formula, we choose
a threshold to represent the ratio between these two
measurements. We observed that the triangle is
extremely narrow if the ratio between a perimeter
and an area is close to 1. Besides, similarly, it is
also not necessary to consider larger values for the
perimeter. We first choose a reference quality metric
among all the others. The correlation of OCL doesn’t
vary so much on variant databases. Therefore, we
simply choose the OCL in the experiment. Figure 4
provides only the graphical result of the variation of
correlation value between OCL and the quality metric
obtained with a series values of two parameters. In
the experiments, the thresholds of the area and
perimeter vary in the range of [40, 100] and [30, 80]
with an interval of 1, respectively.
According to figure 4, we also observed that the
variation of Yp leads to more impacts on the correlation
coefficient than Ya when other parameters had
been set approximately. In order to achieve a generality
of the proposed quality metric, the values of Yp, Ya
and Yr
in this study are 75, 70 and 0.8, respectively.
At last, the behavior of these parameters were estimated
by using performance validation approach, and
the variation of the performance measurement (EER)
obtained in a small interval of each of them tends to be
stagnant. With this empirical analysis, the parameters
are set as what had just been mentioned.
3.3 Feature Analysis
To validate the MQF, we calculate the correlation coefficients
between several quality metrics we have
studied including the MQF. In addition to the two
orientation-based indexes, OCL and the orientation
flow (OF) (Lim et al., 2002), we also employ a
wavelet domain feature carried out via the Pet Hat’s
continuous wavelet (PHCWT) (Nanni and Lumini,
2007). In the literature, it is said that the Pet Hat
wavelet is sensitive to the sharp variations of features
such as fingerprint ridges. Nevertheless, we also use a
pixel-based quality metric which is the standard deviation
(STD) of fingerprint local block indicating pixel
information of the image (Lee et al., 2005). The NFIQ
is also involved in this section. Table 2 presents the
correlation results of the trial quality metrics.
Table 2: Inter-class Pearson correlation coefficients.
FVC2002DB2A
OCL OF PHCWT STD MQF NFIQ
1 0.013 0.932 0.892 0.781 -0.503
0.013 1 0.092 0.122 0.070 0.061
0.932 0.092 1 0.954 0.788 -0.474
0.892 0.122 0.954 1 0.678 -0.374
0.781 0.070 0.788 0.678 1 -0.422
-0.503 0.061 -0.474 -0.374 -0.422 1
Table 2 provides only an inter-class correlation result
of the employed quality metrics obtained from
FVC2002DB2A. According to the coefficient values
indicated with the highlighted cells, one can observe
that MQF demonstrates the correlated behavior with
the others except the OF. The correlation coefficientsbetween the proposed metric and others calculated
from the remaining databases are given in table 3
Table 3: Pearson correlation coefficients between MQF and
others.
MQF of OCL OF PHCWT STD NFIQ
00DB2 0.409 -0.131 0.291 0.301 -0.081
04DB1 0.899 0.253 0.905 0.817 -0.201
04DB2 -0.050 -0.489 0.722 0.650 -0.378
04DB3 0.863 0.021 0.818 0.811 -0.363
According to the results, in addition to
FVC2000DB2A, one can note that MQF shows
a relatively stable correlation with other metrics, i.e.
it exhibits an usability to variant databases. The correlation
value between the proposed metric and OCL
for FVC2004DB2A shows an odd value because
a lot of over-inked samples are contained in this
database. This problem results in some difficulties
for calculating the OCL and leads to a lot of singular
values. Note that the proposed metric uses only the
set of minutiae location, and the fingerprint image is
considered as unavailable.
3.4 Evaluation
According to the literature (Grother and Tabassi,
2007), the quality measure of a biometric sample
is generally employed within 3 different cases: 1)
including enrollment phase, 2) verification task
and 3) identification. Enrollment is known as a
supervised task for getting relatively good quality
samples. The purpose for doing so is to guarantee the
performance or reduce the recognition error as much
as possible, i.e. the typical quality control operation.
However, if the purpose is to validate a quality metric
without considering the testing type (i.e. algorithm
testing, scenario testing and so on.), the variation
of the quality of enrollment sample would generate
distinctive impacts on matching performance and the
result is repeatable in the experiments. In this case,
to estimate the validity of the MQF, an enrollment
phase evaluation approach is applied to the quality
metric (Yao et al., 2014).
We computed the EER values of all the trial
databases by choosing the best quality samples as the
enrollments (in terms of quality value generated by
MQF and NFIQ). A valid quality metric for choosing
the enrollment samples should reduce error rates.
Two graphs with the logarithmic curves and the EER
values of two different cases are given in figure 5 to
illustrate the enrollment selection strategy.
(a) FVC2002DB2A
(b) FVC2004DB2A
Figure 5: The DET curves and global level EER values
obtained by using the evaluation approach. 5a is
FVC2002DB2A; 5b is FVC2004DB2A.
In figure 5, the EER values of the two datasets
based on NFIQ are 13.2% (02DB2A) and 12.4%
(04DB2A), while the values corresponding to MQF
are: 10.5% (02DB2A), and 13.6% (04DB2A), respectively.
Table 4: The average EER values based-on enrollment selection.
QM
DB 00DB2A 04DB1A 04DB3A
MQF 5.05% 15.03% 6.96%
NFIQ 4.98% 15.33% 7.48%
According to this result, the performance of MQF
is validated with the property that a good quality index
reduces the matching error. However, a further
validation needs to be acquired for making a conclusion
that the global EER value is a statistically objective
measurement of the performance. To do so,
we calculate a confidence interval (CI) (Giot et al.,2013) at 95% level for the global EER values based
on different quality metrics. In biometrics, the CI of
two different measurements are able to indicate the
statistical difference between them if their confidence
intervals do not overlap each other. The CI values of
the EER for each quality metric is calculated via a set
of randomly selected intra-class and inter-class score
samples after enrollment selection. The size of each
kind of randomly selected matching scores is 500, and
hence the 95% CI is obtained with 1000 samples of
the EER values, i.e. this random selection has been
performed for 1000 iterations to calculate EER samples.
Table 4 provides the average EER values of the
other 3 databases.
Table 5: The 95% confidence interval of the EERs.
DB
QM MQF NFIQ
00DB2A (CI) [0.0498 0.0510] [0.0492 0.0502]
02DB2A (CI) [0.1101 0.1118] [0.1323 0.1337]
04DB1A (CI) [0.1493 0.1509] [0.1531 0.1548]
04DB2A (CI) [0.1509 0.1535] [0.1318 0.1340]
04DB3A (CI) [0.0683 0.0694] [0.0742 0.0754]
In table 5, the CI of the EER values based on the
two quality metrics statistically illustrates the validity
of the proposed quality metric. The overlap happened
to FVC2000DB2A, for the EER values obtained from
this database is nearly the same. Moreover, we simply
choose several images to illustrate the differences
between the two quality metrics and their drawbacks.
For instance, the MQF values of the samples given in
figure 6 are (2.94, 38.61, 38.46, 64.11, 61.2), and
their NFIQ values are all level 2. According to sample
(a), one can find that it contains only a partial of
the fingerprint image which is not suitable for matching.
In addition, the samples with MQF values under
40 are not as good as a level 2 sample in this example.
The samples (b) and (c) would result in spurious
minutiae. On the other hand, an obvious shortage of
MQF is the area measurement which would generate
outliers in many cases, such as the samples illustrated
by figure 6 (d) and (e).
Figure 6: Illustration of the different between MQF and
NFIQ.
The experiments are implemented via Matlab
7.12. The computation takes approximately 0.423
seconds per sample according to a calculation of 1600
samples when the input is image, and 0.122 seconds
for template inputs.
4 CONCLUSION
This study mainly focuses on estimating fingerprint
quality simply with a minutiae template.
By investigating the relation between image-based
quality criteria and the structure of minutiae template,
we calculate the area of minutiae region via a convex
hull and the Delaunay triangulation. The uniqueness
of Delaunay triangulation provides a possibility
that some unreasonable minutiae could be further
eliminated from template, and the particular rules
for calculating convex hull enables estimating a
relatively minimum area of the detected minutiae.
Accordingly, we define a simple yet efficient quality
metric for fingerprint and minutiae template. In
another aspect, the quality metric could be affected
by some bad samples with large minutiae region. The
lack of image information makes this problem inevitable.
Correspondingly, we analyzed the proposed
quality metric via Pearson correlation coefficients
and evaluated its performance with an enrollment
phase approach. Therefore, it is reasonable to conclude
that the proposed quality metric is an effective
measurement for assessing the quality of a various of
fingerprint samples when their associated templates
are available only.
As fingerprint quality metric is generally defined
with multiple features, this quality metric therefore
could be a candidate for those composite metrics. The
future work of this study tends to concentrate on combining
this quality metric with some others extracted
from minutiae template to obtain better performance.REFERENCES
Alonso-Fernandez, F., Fierrez, J., Ortega-Garcia, J.,
Gonzalez-Rodriguez, J., Fronthaler, H., Kollreider,
K., and Bigun, J. (2007). A comparative study of
fingerprint image-quality estimation methods. Information
Forensics and Security, IEEE Transactions on,
2(4):734–743.
Andrew, A. M. (1979). Another efficient algorithm for convex
hulls in two dimensions. Information Processing
Letters, 9(5):216–219.
Aufmann, R., Barker, V., and Nation, R. (2007). College
Trigonometry. Cengage Learning.
Bolle, R. M., Pankanti, S. U., and Yao, Y.-S. (1999). System
and method for determining the quality of fingerprint
images. US Patent 5,963,656.
Chen, T., Jiang, X., and Yau, W. (2004). Fingerprint image
quality analysis. In Image Processing, 2004. ICIP ’04.
2004 International Conference on, volume 2, pages
1253–1256 Vol.2.
Delaunay, B. (1934). Sur la sphere vide. Izv. Akad.
Nauk SSSR, Otdelenie Matematicheskii i Estestvennyka
Nauk, 7(793-800):1–2.
Feng, J. and Jain, A. K. (2011). Fingerprint reconstruction:
from minutiae to phase. Pattern Analysis and Machine
Intelligence, IEEE Transactions on, 33(2):209–223.
Giot, R., El-Abed, M., and Rosenberger, C. (2013). Fast
computation of the performance evaluation of biometric
systems: Application to multibiometrics. Future
Gener. Comput. Syst., 29(3):788–799.
Grother, P. and Tabassi, E. (2007). Performance of biometric
quality measures. Pattern Analysis and Machine
Intelligence, IEEE Transactions on, 29(4):531–543.
Lee, B., Moon, J., and Kim, H. (2005). A novel measure
of fingerprint image quality using the Fourier spectrum.
In Jain, A. K. and Ratha, N. K., editors, Society
of Photo-Optical Instrumentation Engineers (SPIE)
Conference Series, volume 5779 of Society of PhotoOptical
Instrumentation Engineers (SPIE) Conference
Series, pages 105–112.
Lim, E., Jiang, X., and Yau, W. (2002). Fingerprint quality
and validity analysis. In Image Processing. 2002.
Proceedings. 2002 International Conference on, volume
1, pages I–469–I–472 vol.1.
Maio, D., Maltoni, D., Cappelli, R., Wayman, J. L., and J.,
A. K. (2004). Fvc2004: Third fingerprint verification
competition. In Biometric Authentication, pages 1–7.
Springer.
Maltoni, D., Maio, D., Jain, A. K., and Prabhakar, S. (2009).
Handbook of fingerprint recognition. Springer.
Nanni, L. and Lumini, A. (2007). A hybrid waveletbased
fingerprint matcher. Pattern Recognition,
40(11):3146–3151.
Olsen, M., Xu, H., and Busch, C. (2012). Gabor filters as
candidate quality measure for NFIQ 2.0. In Biometrics
(ICB), 2012 5th IAPR International Conference
on, pages 158–163.
Ratha, N. K. and Bolle, R. (1999). Fingerprint image quality
estimation. IBM TJ Watson Research Center.
Staff, B. S. I. (2009). Information Technology. Biometric
Sample Quality. Framework. B S I Standards.
Tabassi, E., Wilson, C., and Watson, C. (2004). NIST fingerprint
image quality. NIST Res. Rep. NISTIR7151.
Watson, C. I., Garris, M. D., Tabassi, E., Wilson, C. L.,
Mccabe, R. M., Janet, S., and Ko, K. (2007). User’s
guide to nist biometric image software (nbis).
Yao, Z., Charrier, C., and Rosenberger, C. (2014). Utility
validation of a new fingerprint quality metric.
In International Biometric Performance Conference
2014. National Insititute of Standard and Technology
(NIST).
Zhao, Q., Liu, F., and Zhang, D. (2010). A comparative
study on quality assessment of high resolution fingerprint
images. In Image Processing (ICIP), 2010 17th
IEEE International Conference on, pages 3089–3092.
IEEE.
Fingerprint Quality Assessment Combining Blind Image
Quality, Texture and Minutiae Features
Z Yao, Jean Marie Le Bars, C Charrier, C Rosenberger
To cite this version:
Z Yao, Jean Marie Le Bars, C Charrier, C Rosenberger. Fingerprint Quality Assessment
Combining Blind Image Quality, Texture and Minutiae Features. International Conference on
Information Systems Security and Privacy , Feb 2015, Angers, France.
HAL Id: hal-01096170
https://hal.archives-ouvertes.fr/hal-01096170
Submitted on 16 Dec 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Fingerprint Quality Assessment Combining Blind
Image Quality, Texture and Minutiae Features
Z. Yao, J. Le bars, C. Charrier and C. Rosenberger
Universite de Caen Basse Normandie; ENSICAEN; UMR 6072 GREYC, Caen, France.
{jean-marie.lebars; christophe.charrier}@unicaen.fr {zhigang.yao; christophe.rosenberger}@ensicaen.fr
Keywords: Fingerprint, minutiae template, quality assessment, evaluation.
Abstract: Biometric sample quality assessment approaches are generally designed in terms of utility property due to the
potential difference between human perception of quality and the biometric quality requirements for a recognition
system. This study proposes a utility based quality assessment method of fingerprints by considering
several complementary aspects: 1) Image quality assessment without any reference which is consistent with
human conception of inspecting quality, 2) Textural features related to the fingerprint image and 3) minutiae
features which correspond to the most used information for matching. The proposed quality metric is obtained
by a linear combination of these features and is validated with a reference metric using different approaches.
Experiments performed on several trial databases show the benefit of the proposed fingerprint quality metric.
1 INTRODUCTION
Fingerprint systems, among biometric modalities,
are the most deployed solution due to the invariability,
usability and user acceptance of fingerprints (Jain
et al., 2004). So far, the application of fingerprint
is no longer limited to traditional public security
area (official applications), but spread into the daily
life, smart phone authentication and e-payment, for
instance. Because of the continuous developments,
fingerprint quality assessment has become a crucial
task in the deployment of systems in real applications.
There is no doubt that a good quality sample
during the enrollment process can reduce recognition
errors. The good quality of a fingerprint sample is
also beneficial to matching operations (Grother and
Tabassi, 2007) in addition to the clarity of human
intuition and feature extractability of the image
(Chen et al., 2005). In this case, most previously
proposed fingerprint quality approaches have been
implemented in terms of utility of biometric sample’s
quality rather than fidelity (Alonso-Fernandez
et al., 2007), i.e. biometric sample’s quality should
be related to system performance. Tabassi et al.
(Tabassi et al., 2004) defined their quality metric
as a predictor of system performance by considering
the separation of genuine matching scores
(GMS) and impostor matching scores (IMS). Chen
et al. (Chen et al., 2005) later proposed one quality
metric by considering authentication performance.
As we can see in the literature, features are very
important to make a reliable judgment of the quality
of a fingerprint. Moreover, a fingerprint can be
considered as an image or a set of minutiae we could
extract many features. This study proposes a quality
metric of fingerprint image based on the utility
property by considering two aspects in general: 1)
the fingerprint image itself and 2) the corresponding
minutiae template which is rarely taken into account
for this issue. The validation of the proposed quality
metric is carried out by using two approaches based
on the prediction of authentication performance.
The main contribution of the paper is to propose a
continuous quality index of a fingerprint integrating
different points of view (brought by the used features)
and providing a better assessment.
This paper is organized as follows: Section 2 details
the features for computing the proposed quality
metric. Section 3 presents the computation approach
of the proposed quality metric. Experimental results
are given in 4. Conclusion is given in section 5.
2 QUALITY FEATURES
The general purpose of this work is to qualify
original fingerprint samples and to analyze the proposed
quality metric through different validation ap-proaches. The proposed quality metric is based on a
former method in (El Abed et al., 2013). That work
evaluated altered fingerprint image quality with two
kinds of quality features, one is universal (no reference
image quality assessment) and another is related
to the fingerprint modality. We employ this framework
for the original fingerprint samples.
2.1 NR-IQA and Prior Features
In (El Abed et al., 2013), 11 features have been used
to obtain the quality metric, including one derived
from a NR-IQA algorithm (Saad et al., 2012) and the
others are image-based features. Details of the feature
are not presented again in this paper. A general
description is given in table 1.
Table 1: List of quality features in (El Abed et al., 2013)
Feature Description NO.
NR-IQA BLIINDS (Saad et al., 2012) 1-N1
SIFT point
number
Number of SIFT keypoints 2-S1
SIFT DC coef-
ficient
DC coefficient of SIFT features 3-S2
SIFT Mean Mean measure related to SIFT keypoints 4-S3
SIFT STD
Standard deviation related to SIFT keypoints
5-S4
Block number Number of blocks (17×17) 6-P1
Patch RMS
Mean
Mean of blocks RMS1 values. 7-P2
Patch RMS
STD
Standard deviation of RMSs 8-P3
Patch RMS
Median
Median of blocks RMSs. 9-P4
Patch RMS
skewness
Skewness of blocks RMSs. 10-P5
Median LBP 256-level MBP histogram 11-P6
1. ’RMS’ is the abbreviation of Root Mean Square.
Salient features are extracted by using Scale Invariant
Feature Transform (SIFT) operator. For
patched features, it firstly divide images into blocks of
17×17, and then the root mean square (RMS) value of
each block is computed to obtain the quality features.
2.2 Texture-based Quality Features
Texture features are widely used for image classifi-
cation and retrieval applications. There is not study
observed that whether some of them are able to contribute
distinctive results for quality assessment of fingerprint
image. In this study, 11 texture features have
been selected as the components for generating the
proposed quality metric, cf. 2. These features have
been classified into four classes:
1) The first class of textural features embeds local binary
pattern (LBP) features and its extensions or
transforms. LBP features have been proposed by
Ojala et al (Ojala et al., 2002) for image classifi-
cation. This feature is simple yet efficient so that
it is widely used for texture analysis. The idea of
LBP operator was that the two-dimensional surface
textures can be described by two complementary
measures: local spatial pattern and gray scale
contrast (Pietikainen, 2011). Basic LBP operator ¨
generates a binary string by thresholding each 3-
by-3 neighborhood of every pixel of the image.
Table 2: List of texture features.
Feature Format NO.
LBP 256-level LBP histogram vector 1-C1
Four-patch
LBP
Descriptor code vector 2-C1
Completed
LBP
512-bit 3D joint histogram vector 3-C1
GLCM measures
8-bit GLCM vector 4-C2
LBP H-FT LBP histogram FT1 vector 5-C1
2S 16O1 Gabor 64-bit Gabor response vector 6-C3
4S 16O Gabor 128-bit Gabor response vector 7-C3
8S 16O Gabor 256-bit Gabor response vector 8-C3
16S 16O Gabor
512-bit Gabor response vector 9-C3
LRS 81-bit LRS motif histogram vector 10-C4
Median LBP 256-level MBP histogram 11-C1
1. ’S’, ’O’ and ’FT’: abbr. of scale, orientation and Fourier Transform.
The transforms of LBP involved in this study
include four-patch LBP (FLBP), completed
LBP (CLBP), LBP histogram Fourier transform
(LBPHFT) (Nanni et al., 2012) and median LBP
(MLBP) (Hafiane et al., 2007).
2) Second class is Haralick feature or gray level
co-occurrence matrix (GLCM) (Haralick et al.,
1973). In this study, 4 statistic measures generated
from the GLCM matrix in 4 directions combination
of neighbor pixels are computed, including
energy, entropy, moment and correlation.
3) The 2D Gabor decomposition is a sinusoidal function
modulated by a Gaussian window. In this
case, the basis of a Gabor function is complete
but not orthogonal. In the last few decades, it has
been widely applied to fingerprint image and other
biometric data to perform classification and segmentation
tasks. Shen et al. (Shen et al., 2001)
proposed using Gabor response to evaluate fingerprint
image quality, in which it is said that one
or several Gabor features of 8-direction Gabor response
are larger than that of the others. Olsen etal. (Olsen et al., 2012) proposed a quality index
based on 4-direction Gabor response and it is said
that 4-direction is sufficient to qualify fingerprint.
However, in this study, it is observed that 2-scale
4-direction Gabor filters do not bring out distinctive
regularity for fingerprint images of a specified
database.
4) The last one concerns local relational string (LRS)
(Hafiane and Zavidovique, 2006) which is an illumination
invariant operator and it reflects variation
of local gray level of the image. The operator
is based on the local pixels relation in a specified
scale, and it uses 3 relations to generate local relation
motif histogram for measuring local spatial
variations of the image.
2.3 Minutiae-based Quality Features
Feng et al. (Feng and Jain, 2011) proposed to
reconstruct a fingerprint image from the triplet
representation of minutia point. Such a result demonstrates
the significance of minutiae template. In this
study, we relate the minutiae template to the quality
assessment of fingerprint by defining several quality
features based on minutiae number and DFT of the
three components of minutiae point, as shown in
table 3.
Table 3: Minutiae number-based measures related to fingerprint
quality.
Measure Description NO.
Minutiae number
(MN)
Minuitiae number of fingerprint. 1-M1
Mean of minutiae
DFT
Defined as equation (1b) 2-M1
STD of minutiae
DFT
Equation (1c) 3-M1
MN in ROI1 MN in a rectangle region. 4-M1
MN in ROI 2 MN in a circle region. 5-M1
Region-based
RMS
Root mean square (RMS) value of
MN based on two blocks of the template.
6-M1
Region-based median
Median value of MN obtained by dividing
the template into 4 blocks.
7-M1
Block-based measure
A block-based score for the template.
14-M1
1. region of interest.
Minutiae-based measures given in table 3 are
calculated based on a the template of detected
minutiae extracted by using NBIS tool (Watson
et al., 2007). This template contains a quadruple
representation of minutia point which consists of
1) the position (x, y) of detected minutiae, 2) the
orientation θ of detected minutiae, and 3) a quality
score of detected minutiae. In the experiment,
only the minutiae positions and orientations are
used for calculating these measures. In the following,
the details of some of the measures are presented.
In the experiment, both measure 2 and 3 are
derived from the magnitude of the Fourier transform
of the linear combination of 3 minutia components
after eliminating DC component, as described in
equation 1.
F (x, y,θ) =
N−1
∑
n=0
xn·µ
kn +yn·ν
kn +θ·ω
kn
. (1a)
where µ, ν, and ω are frequency samples. Measures
M2 and M3 are finally computed as follows:
M2 = |F (x, y,θ)|, (1b)
M3 =
s
1
N
N
∑
i=1
(Fi −M2). (1c)
DC component was eliminated when computing these
two measures because there is no valuable information
in this element.
For measure 4, the size of rectangle region is determined
by the maximum value of both x and y coordinates
of minutiae, for which there is no useful information
outside the foreground of the fingerprint in
this case. This choice also ensures that the region of
interest will not go over the effective area of minutiae.
An example of rectangle region is shown in figure 1
(a).
Figure 1: Example of circle region (a), rectangle region (b),
and template block partition in the size of fingerprint (c).
The radius of the circle region for measure 5
is also determined by the maximum and minimum
location value of minutiae along the horizontal direction
of fingerprint, for minutiae lie around fingerprint
center are said to be those who contribute most to
fingerprint matching, i.e. they are considered as the
most informative. As the quadruple representation
does not provide information of fingerprint corepoint, an estimated point was used as the center’s
location of the fingerprint. A comparison has been
made between the estimated center point and a core
point detected by another approach, and it is found
that the result does not vary too much. The estimated
center position was determined by considering the
maximum and minimum minutiae location as well.
An example of the circular region is shown in figure
1 (b).
For measures 6 and 7, the whole fingerprint
region is divided into 2 and 4 blocks, and minutiae
number in each block is considered to generate a
measure. Another block-based measure is calculated
by dividing the whole fingerprint region into several
blocks in the size of 64×64. The blocks are classified
into 3 classes, reasonable block, vague block, and
unreasonable block. At last, a quality index is
assigned to each block in terms of the minutiae
number in the block, for which a threshold is used
for determining the index of each block. An example
of block partition is shown by figure 1 (c). In
addition, features proposed in (Ross et al., 2005) are
calculated in terms of minutiae distribution and orientations,
and they are rotation and translation invariant.
We analyse in section 4.2 the behavior of these
quality features. Based on all these quality features,
we generate a quality metric using the method described
in the next section.
3 QUALITY METRIC
DEFINITION
The quality metric of fingerprint (QMF) image in
this study is computed by an approach using a Genetic
Algorithm (GA) proposed in (El Abed et al., 2013).
It uses a weighted linear combination of the quality
features, formulated as
Q =
N
∑
i=1
αiFi
, (2)
where N is the number of quality features Fi (i =
1,··· ,N), αi are the weighted coefficients. The
weighted coefficients are computed via optimizing
a fitness function of GA which is composed by the
Pearson correlation between combined quality results
defined by equation 2 and corresponding GMS of fingerprints
samples. This approach realizes a learning
of quality assessment and optimizes the weighted
coefficients to generate a continuous quality metric
combining different features.
4 EXPERIMENTAL RESULTS
In order to validate the behavior of the quality
metric (denoted as QMF) of this study, an analysis
of the proposed features is realized. The validation
of QMF is implemented by observing the evaluation
results of both QMF and NFIQ (Tabassi et al., 2004).
4.1 Protocol and Databases
In this study, three FVC databases (Maio et al., 2004)
have been used for experiments: FVC2002DB2A,
FVC2004DB1A, and FVC2004DB3A. The first two
databases are established by optical sensor and the
last one is thermal sweeping sensor. The resolutions
and image dimensions of all 3 databases are
500dpi, 500dpi, 512dpi, and 296×560, 480×640, and
300×480, respectively. Each database involves 100
fingertips, and 8 samples for each fingertip. The intraclass
and inter-class matching scores involved in the
experiment have been calculated by using NBIS tool
(Watson et al., 2007) namely Bozorth3 and a commercial
SDK (IDt, ). Minutiae template used in the experiment
were also extracted by using the corresponding
MINDTCT and the SDK. The minutiae-based features
involve in only the location (x, y) and the orientation
o of minutia so that we don’t consider the quality
value of the points (generated by MINDTCT) and
the type of them (given by SDK).
4.2 Feature Analysis
Fernandez et al. (Alonso-Fernandez et al., 2007)
and Olsen (Olsen et al., 2012) respectively calculated
Pearson and Spearman correlation coefficients
between different quality metrics to observe the
behaviour of them. We use the same approach in this
study by computing the Pearson correlation between
several quality metrics and the QMF. Quality metrics
used for this analysis include OCL (Lim et al., 2002),
orientation flow (OF) (Chen et al., 2004), standard
deviation (STD) (Lee et al., 2005), Pet Hat’s wavelet
(PHCWT) (Nanni and Lumini, 2007) and NFIQ.
Figure 5, 7, 6 presents the correlation results obtained
from the trial databases for all quality features.
In table 5, highlighted columns (with yellow)
demonstrated a relatively stable correlation for all
the three databases, and some others marked with
green illustrated their feasibility for certain data sets.
According to this observation, we could make an
attempt to reduce some redundant features in next
study. Table 7 presents only 11 of the minutiae-based
features, for the correlation of them is not very dis-tinctive. Some of them demonstrate good correlated
behavior with the quality metrics, but greatly vary
among the data sets and even not correlated with
any of the quality metrics. Likewise, the correlation
results of the image-based features are given in table
6. We use all these features to calculate the quality
metric which enables qualifying fingerprint samples
with complemental information. Note that the last
columns denote relatively good correlation between
the NR-IQA and the quality metrics.
4.3 Metric validation
The validation involves in two sections, one is the impact
of enrollment selection (YAO et al., 2014) and
another is a utility evaluation (Chen et al., 2005).
4.3.1 Impact on the enrollment process
Authors in (Grother and Tabassi, 2007) discussed on
quality values used for three different cases, including
enrollment phase, verification task and identification.
Enrollment is generally a supervised task for getting
relatively good quality samples, and one main
difference between verification and identification
tasks is the existence of enrollment which directly
impacts on how FNMR and FMR acts. However, if
the purpose is to validate a quality metric without
considering the testing type (i.e. algorithm testing,
scenario testing and etc.), the variation of enrollment
samples quality would generate distinctive impacts
on matching performance and the result is repeatable
in the experiments.
We computed the EER values of 3 databases by
choosing the best quality samples as the reference
(by using NFIQ and QMF). A good quality metric for
the choice of the references should reduce matching
error rate. The ROC curves and EER values of
FVC2004DB1A based on this strategy are presented
as an illustration, see figure 2.
The EER values by using NFIQ (for the enrollment
process) is 14.8%, and 14.1% with the QMF
metric. For FVC2002DB2A and FVC2004DB3A, the
EER values are 13.2% (NFIQ), 10.6% (QMF), 8.3%
(NFIQ) and 6.7% (QMF). These results show the benefit
of QMF face to NFIQ as it permits to optimize the
enrollment process.
Figure 2: Enrollment selection result of FVC2004DB1A.
In addition, such EER values are calculated via
the commercial SDK, results obtained via NFIQ
are 3.99% (02DB2A), 9.39% (04DB1A) and 4.76%
(04DB3A), while the values obtained by using QMF
are 3.39% (02DB2A), 5.35% (04DB1A) and 4.64%
(04DB3A), respectively. This result demonstrates
whether the QMF is possible for dealing with interoperability.
However, in practical, this property relies
on both the performance of matching algorithm and
the quality metric. We employ this result simply for
validating the QMF.
4.3.2 Quality and performance evaluation
The second approach is based on the isometric bins of
samples sorted in an ascending order the quality values
and is more strict for the distribution of the quality
values. In order to validate the QMF by referring to
NFIQ, instead of dividing quality values of NFIQ into
5 isometrics bins, we divided them into 5 bins which
correspond to its 5 quality labels. The reason for doing
so is that NFIQ fails to satisfy the isometric-bin
evaluation criteria, as given in figure 3.
Figure 3: Example of 5-bin evaluation for NFIQ on
FVC2002DB2A.Then, the EER values of the divided bins are calculated.
For NFIQ-based quality values, it is easier to
calculate the EER values of the 5 label bins, as it is
depicted in figure 4.
Figure 4: Monotonic increasing matching performance validation
of FVC2002DB2A for NFIQ, calculated by dividing
quality values into 5 isometric bins (no sample of quality 5
for this database).
Figure 5: Monotonic increasing matching performance validation
of FVC2002DB2A for QMF, calculated by dividing
quality values into 5 isometric bins.
We are able to observe that the matching performances
on FVC2002DB2A and FVC2004DB3A are
monotonically increased by pruning bad quality samples
gradually. NFIQ generated quality levels from 1
to 4 for FVC2002DB2A, and no samples of level 5
were figured out for this database. This might be due
to the minutiae points detected on the images of this
database, because NFIQ algorithm involves in minutia
quality of the fingerprint image. This situation was
observed when calculated the correlation between
14 minutiae quality features and genuine matching
scores in the experiment of this study. It shows
a relatively higher correlation on FVC2002DB2A,
while the values of two other databases are relatively
lower. For FVC2004DB1, both the proposed quality
metric and the reference algorithm showed certain
difficulties. Here, only the graphical results on
FVC2002DB2A are presented, while the 5 bins’ EER
values based on proposed approach and NFIQ of
FVC2004DB1A and FVC2004DB3A are given in table
4. The quality values of QMF are normalized into
[0, 100] on each database where small value denotes
bad quality (bin 1). The NFIQ has 5 quality levels
where level 1 represents the best quality and level 5 is
the worst one.
Table 4: 5 bins EER values based on QMF and NFIQ of
FVC2004DB1A and FVC2004DB3A.
Bin No. B1 B2 B3 B4 B5
Q
1
. (04DB1) 22.2% 16.6% 17.2% 17.8% 13.3%
N
1
. (04DB1) 15.8% 18.1% 17.7% 23.2% 26.5%
Q. (04DB3) 14.2% 8.9% 7.4% 5.8% 4.2%
N. (04DB3) 7.5% 8.1% 13.4% 12.9% 29.8%
1. ’Q’ and ’N’ are abbreviation of ’QMF’ and ’NFIQ’, respectively.
5 CONCLUSION
This study first propose a fingerprint quality
metric by considering image-based quality features
and those derived from minutiae template. Second,
the quality metric has been validated by using
different validation approaches. In the study, the
proposed quality metric was evaluated on 3 different
FVC databases, FVC2002 DB2 A, FVC2004 DB1 A,
and FVC2004 DB3 A. Among the validation result,
it can be observed that the performance of quality
metric shows a great variation between different
databases, where both the reference quality algorithm
and proposed quality metric obtain relatively good
result on FVC 2004 DB3 A. This is due to several
factors impacted on image quality and matching
performance. In addition to external factors such as
sensor type (Ross and Jain, 2004) and environment, it
might be involved in image factors, such as contrast,
image size, pixel density, foreground and background
area; and correspondingly the factors caused by
minutiae template, such as minutiae location, minutiae
reliability, and other minutiae properties if they
are considered.
In this study, a lot of quality features were adopted
for generating quality metric. In this case, it is necessary
to analyze the redundancy of quality feature
in the future work. Besides, in order to improve the
current quality metric, future works of this study will
also focus on feature processing for the quality metric.REFERENCES
User friendly toolkit for easy integration of state of the art
fingerprint recognition technology.
Alonso-Fernandez, F., Fierrez, J., Ortega-Garcia, J.,
Gonzalez-Rodriguez, J., Fronthaler, H., Kollreider,
K., and Bigun, J. (2007). A comparative study of
fingerprint image-quality estimation methods. Information
Forensics and Security, IEEE Transactions on,
2(4):734–743.
Chen, T., Jiang, X., and Yau, W. (2004). Fingerprint image
quality analysis. In Image Processing, 2004. ICIP ’04.
2004 International Conference on, volume 2, pages
1253–1256 Vol.2.
Chen, Y., Dass, S. C., and Jain, A. K. (2005). Fingerprint
quality indices for predicting authentication performance.
In Audio-and Video-Based Biometric Person
Authentication, pages 160–170. Springer.
El Abed, M., Ninassi, A., Charrier, C., and Rosenberger,
C. (2013). Fingerprint quality assessment using a noreference
image quality metric. In European Signal
Processing Conference (EUSIPCO), page 6.
Feng, J. and Jain, A. K. (2011). Fingerprint reconstruction:
from minutiae to phase. Pattern Analysis and Machine
Intelligence, IEEE Transactions on, 33(2):209–223.
Grother, P. and Tabassi, E. (2007). Performance of biometric
quality measures. Pattern Analysis and Machine
Intelligence, IEEE Transactions on, 29(4):531–543.
Hafiane, A., Seetharaman, G., and Zavidovique, B. (2007).
Median binary pattern for textures classification. In
Image Analysis and Recognition, pages 387–398.
Springer.
Hafiane, A. and Zavidovique, B. (2006). Local relational
string for textures classification. In Image Processing,
2006 IEEE International Conference on, pages 2157–
2160.
Haralick, R. M., Shanmugam, K., and Dinstein, I. H.
(1973). Textural features for image classification. Systems,
Man and Cybernetics, IEEE Transactions on,
(6):610–621.
Jain, A. K., Ross, A., and Prabhakar, S. (2004). An introduction
to biometric recognition. Circuits and Systems
for Video Technology, IEEE Transactions on, 14(1):4–
20.
Lee, B., Moon, J., and Kim, H. (2005). A novel measure
of fingerprint image quality using the Fourier spectrum.
In Jain, A. K. and Ratha, N. K., editors, Society
of Photo-Optical Instrumentation Engineers (SPIE)
Conference Series, volume 5779 of Society of PhotoOptical
Instrumentation Engineers (SPIE) Conference
Series, pages 105–112.
Lim, E., Jiang, X., and Yau, W. (2002). Fingerprint quality
and validity analysis. In Image Processing. 2002.
Proceedings. 2002 International Conference on, volume
1, pages I–469–I–472 vol.1.
Maio, D., Maltoni, D., Cappelli, R., Wayman, J. L., and
Jain, A. K. (2004). Fvc2004: Third fingerprint verification
competition. In Biometric Authentication,
pages 1–7. Springer.
Nanni, L. and Lumini, A. (2007). A hybrid waveletbased
fingerprint matcher. Pattern Recognition,
40(11):3146–3151.
Nanni, L., Lumini, A., and Brahnam, S. (2012). Survey on
lbp based texture descriptors for image classification.
Expert Systems with Applications, 39(3):3634 – 3641.
Ojala, T., Pietikainen, M., and Maenpaa, T. (2002). Multiresolution
gray-scale and rotation invariant texture
classification with local binary patterns. Pattern Analysis
and Machine Intelligence, IEEE Transactions on,
24(7):971–987.
Olsen, M. A., Xu, H., and Busch, C. (2012). Gabor filters
as candidate quality measure for nfiq 2.0. In Biometrics
(ICB), 2012 5th IAPR International Conference
on, pages 158–163. IEEE.
Pietikainen, M. (2011). ¨ Computer vision using local binary
patterns, volume 40. Springer.
Ross, A. and Jain, A. (2004). Biometric sensor interoperability:
A case study in fingerprints. In Biometric
Authentication, pages 134–145. Springer.
Ross, A., Shah, J., and Jain, A. K. (2005). Toward reconstructing
fingerprints from minutiae points. In Defense
and Security, pages 68–80. International Society for
Optics and Photonics.
Saad, M., Bovik, A. C., and Charrier, C. (2012). Blind image
quality assessment: A natural scene statistics approach
in the DCT domain. IEEE Transactions on
Image Processing, 21(8):3339–3352.
Shen, L., Kot, A., and Koo, W. (2001). Quality measures of
fingerprint images. In IN: PROC. AVBPA, SPRINGER
LNCS-2091, pages 266–271.
Tabassi, E., Wilson, C., and Watson, C. (2004). Nist fingerprint
image quality. NIST Res. Rep. NISTIR7151.
Watson, C. I., Garris, M. D., Tabassi, E., Wilson, C. L.,
Mccabe, R. M., Janet, S., and Ko, K. (2007). User’s
guide to nist biometric image software (nbis).
YAO, Z., Charrier, C., and Rosenberger, C. (2014). Utility
validation of a new fingerprint quality metric.
In International Biometric Performance Conference
2014. National Insititure of Standard and Technology
(NIST).Table 5: Inter-class Pearson correlation for textural features. 02DB2A (top), 04DB1A (middle) and 04DB3A (bottom).
OCL -0.6826 0.3002 -0.7037 -0.7895 -0.4462 -0.3294 0.3806 0.5864 0.6832 0.8699 -0.7593
OF -0.1938 0.1783 0.0098 -0.0396 -0.0452 -0.0700 0.1685 0.2016 0.1590 -0.0012 0.0593
PHC -0.6926 0.2864 -0.6665 -0.8805 -0.3391 -0.1957 0.3552 0.6329 0.7507 0.8476 -0.7807
STD -0.6230 0.3958 -0.5590 -0.8796 -0.3016 -0.3037 0.5620 0.8066 0.8940 0.7668 -0.7438
NFIQ 0.3919 0.1240 0.3483 0.4675 0.1617 -0.0057 0.0401 -0.0676 -0.1307 -0.4569 0.2731
OCL -0.6899 -0.7979 -0.7798 0.2582 0.7151 0.0456 0.4071 0.6708 0.7223 -0.7416 0.7125
OF -0.2642 -0.3263 -0.3057 0.1580 0.2073 0.1087 0.3968 0.4206 0.4539 -0.2281 0.2057
PHC -0.7060 -0.8206 -0.8416 0.2832 0.7535 0.0373 0.4722 0.7548 0.7964 -0.7701 0.7426
STD -0.5920 -0.7066 -0.7286 0.2249 0.6471 0.0554 0.4669 0.6930 0.7264 -0.6646 0.6297
NFIQ 0.1634 0.1607 0.1775 -0.0683 -0.2101 -0.0412 0.0897 -0.0254 -0.0157 0.2295 -0.2143
OCL -0.5001 -0.6394 -0.7460 0.0406 0.5144 0.0842 0.5301 0.6505 0.6948 -0.3814 0.5536
OF -0.2510 -0.1842 -0.1539 0.1097 0.0814 -0.2304 -0.1348 -0.1148 -0.0539 -0.1537 0.1566
PHC -0.1648 -0.2758 -0.4495 0.1015 0.1439 0.1660 0.6947 0.7992 0.7450 -0.1928 0.1726
STD -0.2401 -0.3447 -0.5029 0.0839 0.2221 0.1201 0.6398 0.7359 0.7037 -0.2161 0.2550
NFIQ -0.0532 -0.0886 0.0316 0.0183 0.0518 -0.2360 -0.3640 -0.4005 -0.2608 -0.0805 0.0907
Table 6: Inter-class Pearson correlation for image-based features. 02DB2A (top), 04DB1A (middle) and 04DB3A (bottom).
OCL 0.4816 0.2370 0.2931 0.1775 0.3659 -0.9137 0.6643 -0.8818 0.4179 -0.5538 -0.8443
OF 0.0386 -0.0438 0.1038 0.0733 0.2487 0.0391 0.0875 -0.0197 0.0840 -0.1092 0.0452
PHCWT 0.4720 0.3650 0.3149 0.1234 0.4921 -0.7480 0.5860 -0.7129 0.4031 -0.5316 -0.8469
STD 0.3169 0.2133 0.4788 0.2037 0.5805 -0.7170 0.6608 -0.6660 0.4149 -0.5252 -0.8023
NFIQ 0.4434 0.4445 0.1735 0.0971 0.1164 0.4017 0.2510 0.4088 0.1409 0.2598 0.3907
OCL 0.4689 0.0418 0.3839 0.4307 0.5980 -0.9129 0.8823 N 0.2666 -0.3423 0.8753
OF 0.1908 0.0065 0.1216 0.0284 0.1347 -0.1971 0.1586 NaN -0.1877 0.2351 0.3396
PHC 0.5126 0.2468 0.4225 0.3492 0.7118 -0.7046 0.6858 N 0.2085 -0.2800 0.8687
STD 0.4070 0.2177 0.4946 0.3752 0.8112 -0.6632 0.6887 N 0.1722 -0.2416 0.7591
NFIQ -0.1890 -0.3808 0.1444 0.0117 -0.3420 0.0132 -0.0121 N 0.0175 0.0069 -0.0719
OCL 0.3414 0.2499 0.2271 -0.0788 0.6927 -0.2067 0.6544 -0.5836 0.0446 -0.0068 0.7988
OF -0.0558 -0.0645 -0.1039 -0.0052 0.0883 -0.0079 -0.1368 0.0741 -0.0361 -0.0017 0.0122
PHC 0.3580 0.4141 0.5300 -0.1290 0.5679 0.2351 0.8933 -0.2086 0.0303 0.0515 0.6215
STD 0.4175 0.4266 0.4661 -0.1211 0.6575 0.1858 0.9157 -0.2545 0.0262 0.0575 0.6319
NFIQ -0.2256 -0.3925 -0.1761 0.2087 -0.2670 -0.2824 -0.4156 -0.0671 0.0335 0.0112 -0.1193
Table 7: Inter-class Pearson correlation for minutiae-based features. 02DB2A (top), 04DB1A (middle) and 04DB3A (bottom).
OCL 0.4077 0.3768 0.4040 0.2780 0.0826 0.3166 0.4214 -0.3196 -0.2799 -0.1930 -0.2568
OF 0.0327 0.0391 0.0442 -0.0096 0.0019 -0.0035 0.0491 -0.0040 -0.0987 0.0874 -0.0521
PHC 0.3717 0.3445 0.3735 0.2306 0.0298 0.2787 0.3829 -0.3230 -0.2704 -0.1934 -0.2791
STD 0.2391 0.2267 0.2376 0.1247 -0.0615 0.1630 0.2490 -0.2389 -0.2027 -0.1304 -0.1832
NFIQ -0.6052 -0.5393 -0.5949 -0.4783 -0.4639 -0.5807 -0.5554 0.4461 0.3544 0.2975 0.3198
OCL 0.5576 0.5290 0.5570 0.4649 0.5088 0.4505 0.5536 -0.3599 -0.3677 -0.3178 -0.3986
OF 0.0835 0.0946 0.0859 0.1661 0.0721 0.1334 0.0128 0.0159 0.1975 -0.1621 -0.0372
PHC 0.4036 0.4153 0.4150 0.3462 0.3731 0.3124 0.4184 -0.2908 -0.3245 -0.2718 -0.3121
STD 0.3876 0.4017 0.4003 0.3275 0.3446 0.3149 0.3865 -0.2992 -0.3093 -0.2611 -0.3095
NFIQ -0.1532 -0.1840 -0.1796 -0.1175 -0.1457 -0.1058 -0.1603 0.1778 0.1040 0.1771 0.1825
OCL 0.2447 0.2362 0.2521 0.1304 -0.0361 0.2280 0.2630 -0.2231 -0.1557 -0.1659 -0.2140
OF 0.2929 0.2577 0.2724 0.2786 0.3218 0.3043 0.2854 -0.0661 0.1458 -0.0830 -0.1077
PHC -0.1438 -0.1170 -0.1215 -0.1919 -0.3633 -0.1563 -0.1144 -0.1132 0.0373 0.0158 0.0406
STD -0.0421 -0.0243 -0.0220 -0.1007 -0.2618 -0.0561 -0.0130 -0.1491 -0.0271 -0.0423 -0.0281
NFIQ 0.3195 0.2497 0.2741 0.3971 0.4406 0.3391 0.2953 -0.0524 -0.0716 -0.0840 -0.0885
The Power of Polynomials
Paul Feautrier
To cite this version:
Paul Feautrier. The Power of Polynomials . 5th International Workshop on Polyhedral Comilation
Techniques, Jan 2015, Amsterdam, Netherlands.
HAL Id: hal-01094787
https://hal.inria.fr/hal-01094787
Submitted on 13 Dec 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.The Power of Polynomials
Work in Progress
Paul Feautrier
ENS de Lyon, LIP, INRIA, CNRS, UCBL
Paul.Feautrier@ens-lyon.fr
ABSTRACT
Every component in the program development chain uses a
model to represent and reason about its source. The model
must be as expressive as possible without compromising its
efficiency and tractability. This paper proposes a slight extension
to the polyhedral model by allowing polynomial constraints
and relations. Recent mathematical results by Handelman
and Schweighofer on the Positivstellensatz allow one
to devise algorithms similar to familiar emptiness tests or the
Farkas algorithm. This paper presents applications of these
ideas to three use-cases: dependence tests, scheduling and
transitive closure approximation. It then points to unsolved
problems and future work.
1. MOTIVATION
Every compiler first starts by building an intermediate
representation (IR) for the given source program. Most IRs
are syntactical: the Abstract Syntax Tree, for instance, is a
data structure which closely represents the input program,
while abstracting away details like text layout or syntactical
variations. In contrast, the polyhedral model represents
the program as it will run, and considers the operations to
be executed and their execution order. Since with present
day processors the number of operations is to be counted in
billions, the set of operations has to be represented in intention,
and all operations on this set have to be executed
symbolically. Hence the search for representations in which
expressive power has to be traded against effectiveness.
The polyhedral model is such a representation: every set –
operations, execution order, dependences, memory accesses,
memory footprints footprints, schedules – are represented as
Z-polyhedra (sets of integer solutions to a system of affine
inequalities). This model has met with a fair measure of
success; however its expressive power is limited. The time
has come to search for more powerful representations.
In this search, one is guided by the following observation:
many algorithms of the polyhedral model have been implicitly
or explicitly devised in order to avoid using polynomials.
IMPACT 2015
Fifth International Workshop on Polyhedral Compilation Techniques
Jan 19, 2015, Amsterdam, The Netherlands
In conjunction with HiPEAC 2015.
http://impact.gforge.inria.fr/impact2015
This work has been partially supported by the ManycoreLabs project PIA-
6394 led by Kalrays.
A case in point is the recourse to multidimensional schedules
when a one dimensional schedule cannot fit. In [8] I proved
(see Theorem 1), that a multidimensional schedule can be
converted to a unidimensional one by counting clock ticks.
This count can be computed using the theory of Ehrhart
polynomials [4], and the result is a polynomial or quasipolynomial
schedule. The same remark applies to array and
channels: in CRP, I have introduced multidimensional channels
in order to avoid linearization functions, which, despite
their name, are polynomials [9].
This paper is organized as follows: I will first review recent
mathematical results for the PositivStellenSatz, which
play the same role for polynomials as Farkas lemma does
for affine inequalities. I will then present a very preliminary
implementation of the corresponding algorithm. I will apply
it to several common use-cases: dependence calculations,
scheduling and transitive closure. I will then review related
work, and point to extensions and improvements.
2. MATHEMATICAL BACKGROUND
Let p1, . . . , pn be polynomials in d variables. The set:
S = {x ∈ IRd
| p1(x) ≥ 0, p2(x) ≥ 0, . . . pn(x) ≥ 0} (1)
is a semi-algebraic set. Polyhedra are special cases of semialgebraic
sets where all pis are of first degree. Such sets arise
in program analysis and optimization. Important questions
are: is S empty, and, given a polynomial (or polynomial
template) p, is p positive in S? A succession of recent results,
starting with a paper by Krivine [14], has provided answers
to some of these questions.
Theorem 1 (Handelman [12]). Let S be a compact
polyhedron as defined by (1), where all pi are of first degree.
A polynomial p is strictly positive in S if and only if
it can be represented as
p(x) = λ0 +
X
~e∈INn
λ~ep
e1
1
(x). . . p
en
n (x), (2)
where the λ~e are non-negative and not all of them are zero.
One should notice that Farkas lemma is the special case
of this result when p is affine.
Theorem 2 (Schweighofer [16]). Assume now that
some of the pi in (1) are polynomial of higher degree. A
polynomial p is strictly positive in S if it has a representation
(2), provided that the pi of degree one define a compact
polyhedron.
1In the words of Schweighofer, the representation (2) is
valid “if there are enough polynomials of degree one” in S.
Their formal similarity notwithstanding, these results have
a different status than Farkas lemma. In the later case, one
knows exactly to which terms the sum in (2) extends, and
if no solution exists, one may assert that p is not positive in
S. If no solution is found when applying Theorem 1 or 2, it
may be that p is not positive, or that the sum (2) has not
been extended far enough. From a pragmatic point of view,
if a representation (2) has been found, it can be checked by
elementary algebra, and acquires the same status as the elementary
identities we all learned in high-school, whether the
hypotheses of either theorem are satisfied or not. If no solution
is found, one can either conclude conservatively that
p may not be positive in S, or try to increase the number of
terms in (2), or reformulate the problem, e.g. by trying to
prove that −p or p + a, a a constant, is positive.
3. IMPLEMENTATION
It is easy to see that, when p and the set of products in (2)
are given, the solution can be found by Linear Programming:
solving a system of linear equations in positive unknowns,
the λs. The usefulness of the method can be augmented by
the following trick: instead of a polynomial p, use a polynomial
template, i.e. a polynomial which depends on additional
parameters. To fit into the above method, parameters must
occur linearly in p. The parameters can then be considered
as additional unknowns in the LP problem, and solved for
at the same time. The corresponding algorithm is not only
able to prove that a polynomial is positive in a given set, but
also to find a polynomial of a given shape that is positive.
Algorithm H
1. Given
• A set of polynomials P = {p1(x), . . . , pn(x)} on
d variables x = (x1, . . . , xd), including the trivial
polynomial 1.
• a template p(µ, x) depending linearly on a set of
parameters µ.
• an “order” M
2. Generate all products of M polynomials from P.
3. Compute the “master equation”:
E = p(µ, x) −
X
~e∈INn,
Pn
i=1 ei=M
λep
e1
1
(x). . . p
en
n (x) = 0
4. In the fully distributed form of E, each monomial x
f1
1
. . . x
fd
d
may occur several times with coefficients linear in the
λ and µ. Sum these coefficients and equate the result
to zero.
5. Solve the resulting system for the λ and µ by any convenient
LP software.
In step 2, since multiplication is commutative, one should
be careful to avoid duplicate products. Notice also that
since polynomials can be multiplied whatever their degree,
this algorithm covers both the Handelman and Schweighofer
cases.
A proof-of-concept implementation of this algorithm has
been realized, using a home-made algebraic library which is
part of the Syntol1 project and the LP tool PIP2
.
The examples in the following section have been solved by
writing, for each use case, a front end which sets up the list
of the pi and the unknown polynomial p, call algorithm H,
and edit the result in proper form.
4. USE CASES
4.1 Dependences
Dependence testing requires to decide whether two array
accesses touch the same memory cell or not. This is
usually formulated as deciding if a set of constraints built
from the iteration domains of two (not necessarily distinct)
statements, an execution order predicate, and the equality
of two subscript vectors is empty or not. If subscripts are
affine in the surrounding loop counters, the answer can be
obtained by linear programming. However, in some cases,
subscripts are polynomials. For instance, a many dimensional
array may have been linearized, either by an overeager
compiler, or by the programmer because there is no
way in C to dynamically allocate a multidimensional array.
In other cases, several mathematical objects with disjoint
supports may have been compacted in only one array. Consider
for instance the following code:
for(i=0; i
HAL Id: hal-01092040
https://hal.archives-ouvertes.fr/hal-01092040
Submitted on 8 Dec 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Minkowski sum of polytopes defined by their vertices
Vincent Delos∗ and Denis Teissandier∗∗
University of Bordeaux
CNRS, National Center for French Research
I2M, UMR 5295
Talence, F-33400, France
∗E-mail: v.delos@i2m.u-bordeaux1.fr
∗∗E-mail: d.teissandier@i2m.u-bordeaux1.fr
Abstract
Minkowski sums are of theoretical interest and have applications in fields related to industrial backgrounds.
In this paper we focus on the specific case of summing polytopes as we want to solve the
tolerance analysis problem described in [1]. Our approach is based on the use of linear programming and
is solvable in polynomial time. The algorithm we developped can be implemented and parallelized in a
very easy way.
keywords: Computational Geometry, Polytope, Minkowski Sum, Linear Programming, Convex Hull.
1 Introduction
Tolerance analysis is the branch of mechanical design dedicated to studying the impact of the manufacturing
tolerances on the functional constraints of any mechanical system. Minkowski sums of polytopes are useful
to model the cumulative stack-up of the pieces and thus, to check whether the final assembly respects such
constraints or not, see [2] and [3]. We are aware of the algorithms presented in [4], [5], [6] and [7] but we
believe that neither the list of all edges nor facets are mandatory to perform the operation. So we only
rely on the set of vertices to describe both polytope operands. In a first part we deal with a “natural way”
to solve this problem based on the use of the convex hulls. Then we introduce an algorithm able to take
advantage of the properties of the sums of polytopes to speed-up the process. We finally conclude with
optimization hints and a geometric interpretation.
2 Basic properties
2.1 Minkowski sums
Given two sets A and B, let C be the Minkowski sum of A and B
C = A + B = {c ∈ R
n, ∃a ∈ A, ∃b ∈ B/c = a + b}
2.2 Polytopes
A polytope is defined as the convex hull of a finite set of points, called the V-representation, or as the bounded
intersection of a finite set of half-spaces, called the H-representation. The Minkowski-Weyl theorem states
that both definitions are equivalent.
13 Sum of V-polytopes
In this paper we deal with V-polytopes i.e. defined as the convex hull of a finite number of points. We note
VA, VB and VC the list of vertices of the polytopes A, B and C = A + B. We call VC the list of Minkowski
vertices. We note k = Card(VA) and l = Card(VB).
3.1 Uniqueness of the Minkowski vertices decomposition
Let A and B be two R
n-polytopes and VA, VB their respective lists of vertices. Let C = A+B and c = a+b
where a ∈ VA and b ∈ VB.
c ∈ VC ⇔ the decomposition of c as a sum of elements of A and B is unique (1)
We recall that in [4], we see that the vertex c of C, as a face, can be written as the Minkowski sum of a
face from A and a face from B. For obvious reasons of dimension, c is necessarily the sum of a vertex of A
and a vertex of B. Moreover, in the same article, Fukuda shows that its decomposition is unique.
Reciprocally let a ∈ VA and b ∈ VB be vertices from polytopes A and B such that c = a + b is unique.
Let c1 ∈ C and c2 ∈ C such as c =
1
2
(c1 + c2) = 1
2
(a1 + b1 + a2 + b2) = 1
2
(a1 + a2) + 1
2
(b1 + b2) = a + b
with a =
1
2
(a1 + a2) and b =
1
2
(b1 + b2) because the decomposition of c in elements from A and B is unique.
Given that a and b are two vertices, we have a1 = a2 and b1 = b2 which implies c1 = c2. As a consequence c
is a vertex of C.
3.2 Summing two lists of vertices
Let A and B be two R
n-polytopes and VA, VB their lists of vertices, let C = A + B.
C = Conv({a + b, a ∈ VA, b ∈ VB}) (2)
We know that VC ⊂ VA + VB because a Minkowski vertex has to be the sum of vertices from A and B
so C = Conv(VC ) ⊂ Conv({a + b, a ∈ VA, b ∈ VB}).
The reciprocal is obvious as Conv({a + b, a ∈ VA, b ∈ VB}) ⊂ Conv({a + b, a ∈ A, b ∈ B}) = C as
C = A + B is a convex set.
At this step an algorithm removing all points which are not vertices of C from VA + VB could be applied
to compute VC . The basic idea is the following: if we can build a hyperplane separating (au + bv) from the
other points of VA + VB then we have a Minkowski vertex, otherwise (au + bv) is not an extreme point of
the polytope C. The process trying to split the cloud of points is illustrated in Figure 1.
To perform such a task, a popular technique given in [8] solves the following linear programming system.
In the case of summing polytopes, testing whether the point (au + bv) is a Minkowski vertex or not, means
finding (γ, γuv) ∈ R
n × R from a system of k × l inequalities:
< γ, ai + bj > −γuv ≤ 0 ; ∀(i, j) ∈ {1, .., k} × {1, .., l} ; (i, j) 6= (u, v)
< γ, au + bv > −γuv ≤ 1
f
∗ = max(< γ, au + bv > −γuv)
So if we define the matrix Γ =
a1,1 + b1,1 · · · a1,n + b1,n −1
.
.
.
.
.
.
.
.
.
.
.
.
ak,1 + bl,1 · · · ak,n + bl,n −1
au,1 + bv,1 · · · au,n + bv,n −1
then Γ
γ
γuv
≤
0
.
.
.
0
1
2Figure 1: Computing the vertices of the sum of two V-polytopes through a convex hull algorithm
The corresponding method is detailed in Algorithm 1. Now we would like to find a way to reduce the
size of the main matrix Γ as it is function of the product k × l.
Algorithm 1 Compute C = A + B with A and B two R
n-polytopes
Require: A V-representation: list of vertices VA
Require: B V-representation: list of vertices VB
for all au ∈ VA and bv ∈ VB do
Compute f
∗ = max(< γ, au + bv > −γuv) with Γ
γ
γuv
≤
0
...
0
1
, Γ ∈ R
k×l × R
n+1
if f
∗ > 0 then
(au + bv) ∈ VC
else
(au + bv) ∈ V / C
end if
end for
3.3 Constructing the new algorithm
In this section we want to use the basic property 1 characterizing a Minkowski vertex. Then the algorithm
computes, as done before, all sums of pairs (au, bv) ∈ VA × VB and checks whether there exists a pair
(a
0
, b0
) 6= (au, bv) with a
0 ∈ A, b
0 ∈ B such as (a
0 + b
0
) = (au + bv). If it is the case then (au + bv) ∈ V / C ,
otherwise (au + bv) ∈ VC .
a
0 =
X
k
i=1
αiai with ∀i, αi ≥ 0 and X
k
i=1
αi = 1
3b
0 =
X
l
j=1
βj bj with ∀j, βj ≥ 0 and X
l
j=1
βj = 1.
We get the following system:
X
k
i=1
αiai +
X
l
j=1
βj bj = au + bv
X
k
i=1
αi = 1
X
l
j=1
βj = 1
∀i, αi ≥ 0
∀j, βj ≥ 0
That is to say with matrices and under the hypothesis of positivity for both vectors α and β:
a1,1 a2,1 · · · ak,1 b1,1 b2,1 · · · bl,1
a1,2 a2,2 · · · ak,2 b1,2 b2,2 · · · bl,2
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a1,n a2,n · · · ak,n b1,n b2,n · · · bl,n
1 1 · · · 1 0 0 · · · 0
0 0 · · · 0 1 1 · · · 1
α1
.
.
.
αk
β1
.
.
.
βl
=
au,1 + bv,1
au,2 + bv,2
.
.
.
au,n + bv,n
1
1
We are not in the case of the linear feasibility problem as there is at least one obvious solution:
pu,v = (α1, · · · , αk, β1, · · · , βl) = (0, · · · , 0, αu = 1, 0, · · · , 0, 0, · · · , 0, βv = 1, 0, · · · , 0)
The question is to know whether it is unique or not. This first solution is a vertex pu,v of a polyhedron
in R
k+l
that verifies (n + 2) equality constraints with positive coefficients. The algorithm tries to build
another solution making use of linear programming techniques. We can note that the polyhedron is in fact
a polytope because it is bounded. The reason is that, by hypothesis, the set in R
k of convex combinations
of the vertices ai
is bounded as it defines the polytope A. Same thing for B in R
l
. So in R
k+l
the set of
points verifying both constraints simultaneously is bounded too.
So we can write it in a more general form:
P
α
β
=
au + bv
1
1
, P ∈ R
n+2 × R
k+l
, α ∈ R
k
+, β ∈ R
l
+, au ∈ R
n, bv ∈ R
n
where only the second member is function of u and v.
It gives the linear programming system:
P
α
β
=
au + bv
1
1
α
β
≥ 0
f
∗ = max(2 − αu − βv)
(3)
Thanks to this system we have now the basic property the algorithm relies on:
au ∈ VA, bv ∈ VB,(au + bv) ∈ VC ⇔ f
∗ = 0 (4)
f
∗ = 0 ⇔ there exists only one pair (αu, βv) = (1, 1) to reach the maximum f
∗ as Pk
i=1 αi = 1 and
Pl
j=1 βj = 1 ⇔ the decomposition of c = (au + bv) is unique ⇔ c ∈ VC
It is also interesting to note that when the maximum f
∗ has been reached:
αu = 1 ⇔ βv = 1 ⇔ f
∗ = 0
4Algorithm 2 Compute C = A + B with A and B two R
n-polytopes
Require: A V-representation: list of vertices VA
Require: B V-representation: list of vertices VB
for all ai ∈ VA and bj ∈ VB do
Compute f
∗ = max(2 − αi − βj ) with P
α
β
=
ai + bj
1
1
P ∈ R
n+2 × R
k+l and
α
β
≥ 0
if f
∗ = 0 then
(ai + bj ) ∈ VC
else
(ai + bj ) ∈ V / C
end if
end for
3.4 Optimizing the new algorithm and geometric interpretation
The current state of the art runs k×l linear programming algorithms and thus is solvable in polynomial time.
We presented the data such that the matrix P is invariant and the parametrization is stored in both the
second member and the objective function, so one can take advantage of this structure to save computation
time. A straight idea could be using the classical sensitivity analysis techniques to test whether (au + bv) is
a Minkowski vertex or not from the previous steps, instead of restarting the computations from scratch at
each iteration.
Let’s switch now to the geometric interpretation, given a ∈ VA, let’s consider the cone generated by all
the edges attached to a and pointing towards its neighbour vertices. After translating its apex to the origin
O, we call this cone CO(a) and we call CO(b) the cone created by the same technique with the vertex b in
the polytope B.
The method tries to build a pair, if it exists, (a
0
, b0
) with a
0 ∈ A, b
0 ∈ B such that (a + b) = (a
0 + b
0
).
Let’s introduce the variable δ = a
0 − a = b − b
0
, and the straight line ∆ = {x ∈ R
n : x = tδ, t ∈ R}.
So the question about (a + b) being or not a Minkowski vertex can be presented this way:
a ∈ VA, b ∈ VB,(a + b) ∈ V / C ⇔ ∃∆ = {x ∈ R
n
: x = tδ, t ∈ R} ⊂ CO(a) ∪ CO(b) (5)
The existence of a straight line inside the reunion of the cones is equivalent to the existence of a pair
(a
0
, b0
) such that (a + b) = (a
0 + b
0
) which is equivalent to the fact that (a
0 + b
0
) is not a Minkowski vertex.
This is illustrated in Figure 2. The property becomes obvious when we understand that if (a
0
, b0
) exists in
A × B then (a
0 − a) and (b
0 − b) are symmetric with respect to the origin. Once a straight line has been
found inside the reunion of two cones, we can test this inclusion with the same straight line for another pair
of cones, here is the geometric interpretation of an improved version of the algorithm making use of what
has been computed in the previous steps.
We can resume the property writing it as an intersection introducing the cone −CO(b) being the symmetric
of CO(b) with respect to the origin.
a ∈ VA, b ∈ VB,(a + b) ∈ VC ⇔ CO(a) ∩ −CO(b) = {O} (6)
4 Conclusion
In this paper, our algorithm goes beyond the scope of simply finding the vertices of a cloud of points.
That’s why we have characterized the Minkowski vertices. However, among all the properties, some of them
5Figure 2: (a2 + b4) is not a vertex of C=A+B as ∆ ⊂ CO(a2) ∪ CO(b4)
are not easily exploitable in an algorithm. In all the cases we have worked directly in the polytopes A
and B, i.e. in the primal spaces and only with the polytopes V-descriptions. Other approaches use dual
objects such as normal fans and dual cones. References can be found in [6], [7] and [9] but they need more
than the V-description for the polytopes they handle. This can be problematic as obtaining the double
description can turn out to be impossible in high dimensions, see [4] where Fukuda uses both vertices and
edges. Reference [6] works in R
3
in a dual space where it intersects dual cones attached to the vertices, and
it can be considered as the dual version of property 6 where the intersection is computed with primal cones.
It actually implements Weibel’s approach described in [9]. Such a method has been recently extended to any
dimension for HV-polytopes in [7].
5 Special thanks
We would like to thank Pr Pierre Calka from the LMRS in Rouen University for his precious help in writing
this article.
References
[1] Denis Teissandier and Vincent Delos and Yves Couetard, “Operations on Polytopes: Application to
Tolerance Analysis”, 6th CIRP Seminar on CAT, 425-433, Enschede (Netherlands), 1999
[2] Lazhar Homri, Denis Teissandier, and Alex Ballu, “Tolerancing Analysis by Operations on Polytopes”,
Design and Modeling of Mechanical Systems, Djerba (Tunisia), 597:604, 2013
[3] Vijay Srinivasan, “Role of Sweeps in Tolerancing Semantics”, in ASME Proc. of the International Forum
on Dimensional Tolerancing and Metrology, TS172.I5711, CRTD, 27:69-78, 1993
[4] Komei Fukuda, “From the Zonotope Construction to the Minkowski Addition of Convex Polytopes”,
Journal of Symbolic Computation, 38:4:1261-1272, 2004
6[5] Komei Fukuda and Christophe Weibel, “Computing all Faces of the Minkowski Sum of V-Polytopes”,
Proceedings of the 17th Canadian Conference on Computational Geometry, 253-256, 2005
[6] Denis Teissandier and Vincent Delos, “Algorithm to Calculate the Minkowski Sums of 3-Polytopes
Based on Normal Fans”, Computer-Aided Design, 43:12:1567-1576, 2011
[7] Vincent Delos and Denis Teissandier, “Minkowski Sum of HV-Polytopes in R
n”, Proceedings of the
4th Annual International Conference on Computational Mathematics, Computational Geometry and
Statistics, Singapore, 2015
[8] Komei Fukuda, “Frequently Asked Questions in Polyhedral Computation”, Swiss Federal Institute of
Technology Lausanne and Zurich, Switzerland, 2004
[9] Christophe Weibel, “Minkowski Sums of Polytopes”, PhD Thesis, EPFL, 2007
7
Effective Reproducible Research with Org-Mode and Git
Luka Stanisic, Arnaud Legrand
To cite this version:
Luka Stanisic, Arnaud Legrand. Effective Reproducible Research with Org-Mode and Git. 1st
International Workshop on Reproducibility in Parallel Computing, Aug 2015, Porto, Portugal.
.
HAL Id: hal-01083205
https://hal.inria.fr/hal-01083205
Submitted on 16 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´esLuka Stanisic and Arnaud Legrand
firstname.lastname(à)imag.fr
In the last decades, both hardware and software of modern computers became
so complex that even experts have troubles fully understanding their behavior.
Therefore, it could be argued that these machines are no longer deterministic,
especially when measuring execution times of programs running on a large
distributed computer systems or hybrid platforms. Controlling every relevant
sophisticated component during such measurements is almost impossible, making
the full reproduction of the experiments extremely difficult. Consequently,
studying computers has become very similar to studying a natural phenomena
and it should thus use the same principles as other scientific fields that had them
defined centuries ago. Although many conclusions are based on experimental results
in this domain of computer science, surprisingly articles generally poorly
detail the experimental protocol. Left with insufficient information, readers have
generally trouble to reproduce the study and possibly build upon it. Yet, as reminded
by Drummond [1], reproducibility of experimental results is the hallmark
of science and there is no reason why this should not be applied to computer
science as well.
Hence, a new movement promoting the development of reproducible research
tools and practices has emerged, especially for computational sciences. Such tools
generally focus on replicability of data analysis [5]. Although high performance
computing or distributed computing experiments involve running complex codes,
they do not focus on execution results but rather on the time taken to run a
program and on how the machine resources were used. These requirements call
for different workflows and tools, since such experiments are not replicable by
essence. Nevertheless in such cases, researchers should still at least aim at full
reproducibility of their work.There are many existing solutions partially addressing these issues, but none
of them was completely satisfying our needs and therefore we developed an
alternative approach that is based on two well-known and widely-used tools:
Org-mode and Git. We present our contributions in Section 3, where we first describe
a specific use of Org-mode for doing the provenance tracking of the entire
projects. Then, we propose a unique way to use Git for keeping synchronized experiment
results and code that generated them. Finally, it will be demonstrated
in Section 4 how the proposed methodology helped us conducting two very different
studies in the High Performance Computing (HPC) domain. We will also
state limits of our approach, together with some open questions.
✷ ❘❡❧❛t❡❞ ❲♦r❦
In the past few years, the field of reproducibility research tools has been very
active, various alternatives emerging to address diverse problematic. However,
in the HPC domain most of them are concentrated on platform accessibility,
setting up environments and running the experiments on large clusters. Even
though such tools are very useful in general, we could not benefit from them
due to the specific nature of our research projects. The machines we needed
to study are recent prototypes, with ever-changing libraries, set up by expert
administrators and we do not have neither the permission nor the interest to do
any modifications to the environment.
However, when conducting experiments and analysis, there are more aspects
that need to be considered. We detail the ones related to software, methodology
and provenance tracking, which are often neglected by researchers in our
community.
Accessibility It is widely accepted that tools like Git or svn are indispensable in
everyday work on software development. Additionally, they help at sharing
the code and letting other people contribute. Making data accessible, file
hosting services, such as Dropbox, Google Drive and many others, became
very popular among all scientists that want to collaborate. There is another
group of services that is more oriented on making data publicly available
and easily understandable to everyone, e.g., figshare✶
.
Provenance tracking Knowing how data was obtained is a complex problem.
The first part involves collecting meta-data, such as system information, experimental
conditions, etc., and it is often managed by experimental engines.
The second, frequently forgotten in our domain, part is to track any applied
transformation to the data, i.e., moving the objects from one state to another.
Moreover, there is a question of storing both data and meta-data. Classical
approach to solve these issues involves using a database. However, this solution
has its limits, as managing source codes or comments in a database is
not convenient and is handled in much better way by using version control
systems and literate programming.
✶ ❤tt♣✿✴✴✜❣s❤❛r❡✳❝♦♠Documenting While provenance tracking is focused on how data was obtained,
it is not concerned with why the experiments were run and what the observations
on the results are. These things have to be thoroughly documented,
since even the experimenters tend to quickly forget all the details. One way
is to encourage users to keep notes when running experiment (e.g., in Sumatra
[5, chap. 3]), while the other one consists in writing a laboratory notebook
(e.g., with IPython✷
).
Extendability It is hard to define good formats for all project components in
the starting phase of the research. Some of the initial decisions are likely to
change during the study, so system has to be flexible. In such a volatile context,
integrated tools with databases, such as Sumatra, are too cumbersome
for everyday extentions and modifications.
Replicable analysis Researchers should only trust figures and tables that can
be regenerated from raw data. Therefore, ensuring replicable analysis is essential
to any study. Popular solution nowadays for this problem is to rely
on open-source statistical software like R and knitr that simplify figure generation
and embedding in final documents [5, chap. 1].
To address the previous problems, we propose to rely on a minimalist set
of simple, lightweight, and well-known tools. We use Org-mode [2], initially an
Emacs mode for editing and organizing notes, that is based on highly hierarchical
plain text files which are easy to explore and exploit. Org-mode has also been
extended to allow combining plain text with small chunks of executable code
(Org-babel snippets). Such features follow the literate programming principles
introduced by Donald Knuth three decades ago, and for which there is a renewed
interest in the last years. In addition, for version control system we decided to
rely on Git, a distributed revision control tool that has an incredibly powerful
branch management system.
✸ ❚✐♣s ❛♥❞ ❚r✐❝❦s ❢♦r ❘❡♣r♦❞✉❝✐❜❧❡ ❘❡s❡❛r❝❤
In this section, we provide guidelines on best practices and hints on pragmatic
ways to implement them. First, we illustrate how to handle provenance tracking
issues with literate programming, in particular with Org-mode. The approach
we propose is lightweight, to make sure the experiments are performed in a
clean, coherent and hopefully reproducible manner without being slowed down
by a rigid framework. However, it is tempting to sometimes break one of these
rules, which hinders reproducibility in the end. This is why we harden these
guidelines with a particular usage of Git that forces the user to keep data and
code synchronized.
3.1 Provenance Tracking Through Literate Programming
As described in Section 2, there are many tools that can help to automatically
capture environment parameters, to keep track of experimentation process, to
✷ ❤tt♣✿✴✴✐♣②t❤♦♥✳♦r❣organize code and data, etc. However, it is not easy to understand how they work
exactly, and additionally each of them creates new dependencies on specific libraries
and technologies. Instead, we propose a solution based on plain text files,
written in the spirit of literate programming, that are self-explanatory, comprehensive
and portable. We do not rely on a huge cumbersome framework, but
rather on a set of simple, flexible scripts, that address the following challenges.
Environment Capture Environment capture consists in getting all the details
about the code, used libraries and system configuration. It is necessary to gather
as much useful meta-data as possible, to allow to compare experiment results
with the previous ones and inspect if there were any changes to the experimental
environment. This process should not be burdensome, but automatic and transparent
to the researcher. Additionally, it should be easy to extend or modify,
since it is generally difficult to anticipate relevant parameters before performing
numerous initial experiments.
Once meta-data is captured, it can be stored either individually or accompanying
results data. Some prefer keeping these two separated, making their
primary results unpolluted and easier to exploit, but they soon run into diffi-
culties when they need to retrieve information from meta-data. Therefore, we
strongly believe that the experiment results should stay together with the information
about the system they were obtained on. Moreover, keeping them in
the same file makes the access straightforward and simplifies the project organization,
as there are less objects to handle. Consequently, even if data sustains
numerous movements and reorganizations, one would never doubt which environment
setup corresponds to which results.
In order to permit users to easily examine any of their information, these
files have to be well structured. The Org-mode format is a perfect match for
such requirements as its hierarchical organization is simple and can be easily
explored. A good alternative might be to use the yaml format, which is typed
and easy to parse but we decided to stay with Org-mode (which served all our
needs) to keep our framework minimalist.
A potential issue of this approach is raised by large files, typically containing
several hundreds of MB and more. Opening such files can temporary freeze a text
editor and finding a particular information can then be tedious. We haven’t yet
met with such kind of scenario, but obviously it would require some adaptations
to the approach.
Note that all the data and meta-data are gathered automatically using
scripts, finally producing a read-only Org-mode document. Why the experiments
were performed and what are the observations on its results is stored elsewhere,
more precisely in a laboratory notebook of the project.
Laboratory Notebook A paramount asset of our methodology is the laboratory
notebook (labbook), similar to the ones biologist, chemists and scientist
from other fields use on a daily basis to document the progress of their work. For
us, this notebook is a single file inside the project repository, shared between allcollaborators. The main motivation for keeping a labbook is that anyone, from
original researchers to external reviewers, can later use it to understand all the
steps of the study and potentially reproduce and improve it. This self-contained
unique file has multiple purposes. Indeed, the labbook should not only serve as
journal but also play the following software development roles to ensure that it
can be exploited by others:
1. README: The labbook should explain ideas behind the whole project purpose
and methodology, i.e., what the workflow for doing experiments is and
how the code and data are organized in folders. It should state the conventions
on how the labbook should be used. This part serves as a starting point
for newcomers and is also a good reminder for experienced users.
2. Documentation: The labbook should detail what are the different programs
and scripts, and what is their purpose. This documentation concerns source
code for the experimentation as well as tools for manipulating data and
analysis code for producing plots and reports. Additionally, there should be
explanations on the revision control usage and conventions.
3. Examples: The labbook should contain example usages of how to run scripts,
displaying the most common arguments and format. Although such information
might seem redundant with the previous documentation part, in practice
such examples are indispensable even for everyday users, since some scripts
require lots of environment variables, arguments and options.
4. Log: It is important to keep track of big changes to the source code and
the project in general inside a log section. Since all modifications are already
captured and commented in Git commits, the log section should offer a much
more coarse grain view of the code development history. There should also be
a list with descriptions of every Git tag in the repository as it helps finding
the latest stable, or any other specific, version of the code.
5. Experiment results: Every set of experiment should be carefully noted here,
together with the key input parameters, the motivation for running such
experiment and finally observations on the results. Inside the descriptive
conclusions, Org-mode allows to use both links and git-links connecting the
text to the actual files in the Git repository. These hyperlinks point to the
crucial data and the analysis reports that illustrate a newly discovered phenomena.
Managing efficiently all these different information in a single file requires a
solid hierarchical structure, which once again motivated our use of Org-mode. We
also took advantage of the Org-mode tagging mechanism, which allows to easily
extract information, improving labbook’s structure even further. Org tags can
be used to distinguish which collaborator conducted a given set of experiments
or to list expertise requests. Although many of these information may already
be present in the experiment files, having it at the journal level revealed very
convenient. Experiments can also be tagged to indicate on which machine they
were performed and whether the results were important or not. Again, although
such tagging is not required it is very handy in practice and make the labbook
much easier to understand and exploit.Several alternatives exist for taking care of experiment results and progress on
a daily basis. We think that a major advantage of Org-mode compared to many
other tools is that it is just a plain text file that can thus be read and modified
on any remote machine without requiring to install any particular library. Using
a plain text file is also the most portable format across different architectures
and operating systems.
Data File Organization Having a clear, coherent and hierarchical organization
of all the files is a good practice for a proper scientific work, especially when
external collaborators are involved. Once again, the approach we propose is
lightweight and flexible but is motivated by the three following important points:
1. There should never be any critical information in file organization. Important
information should be in the files themselves. Indeed, we could as well
have blobs rather than files but managing data and extracting important
information would probably not be very convenient. Thus, we do not recommend
to impose much on file organization so that users can organize their
data in a way that is natural to them. We think this lack of rules is not an
issue as long as this organization is explained in the labbook.
2. The file organization should be flexible enough to be changed and adapted
as the experimental data set grows. Such reorganization could seemingly
break the labbook hyperlinks. However, as we briefly mentioned, we recommend
to use git-links in the labbook, which are Org-mode hyperlinks that
store links to specific revisions of files (typically when they were created).
So reorganizing the data files will not break the labbook information.
3. The naming convention should not impede the activity of the researcher, so
here we used almost no convention at all. According to our experience, all experiment
results could simply be saved in folders, each of them representing
one set of measurements and having a unique characteristic name, e.g., the
name of the machine on which it was performed. Inside a folder, file names
could be prefixed by additional key characteristics of the experiment set, followed
by an ordinal number indicating in which order experiments were run.
This idea seemed the most natural one to adopt, but we are reconsidering
alternatives for the future projects.
Conclusion The approach we described implicates a partial redundancy of
some data and meta-data, typically saved in both experiment result files and
in the laboratory notebook. However, such information are never entered twice
manually. Most data should always be automatically tracked, although when
some data convey key information, they should be manually added to other
places as well, since it provides a better overview of the whole project.
We think that following the proposed guidelines is sufficient to conduct a
clean, comprehensible and reproducible research while having a very fluid work-
flow. However, not all scientists are rigorous enough to always follow such conventions
and even those who are, occasionally have the need to bend the rulesin order to quickly get some results in a dirty way. This sometimes pollutes the
whole project organization, often breaking the chains of the workflow processes
and making some parts incoherent.
In order to force researchers to be more disciplined and help them doing their
work in a reproducible manner, we propose to combine the previous approach
with a particular usage of Git.
3.2 Using Git for Improving Reproducible Research
Even when the project is well organized, meta-data tracked, all the collaborators
follow the conventions and take notes in the laboratory notebook, several
practical issues may still arise:
1. Although a svn revision or a Git sha1 of the source code is captured, this
does not guarantee that the experiment was run correctly and that the results
can easily be reproduced. There could exist some uncommitted differences
between the tracked and the current version of the code or the compilation
could be out-of-date, i.e., code was compiled with an old revision.
A solution proposed for example by Davison [5, chap. 3] and which we applied
as well, is to force recompilation and systematically verify that everything is
fully committed before running any experiment. The only exception to this
rule are the tests performed to validate the workflow.
2. Even with the complete and correct meta-data and code revisions, it is not
always easy to reconstruct the experimental setup, especially if it consists
of the code from numerous external repositories. Multiplying repositories
hinders provenance tracking, coherency and experimental reproduction. The
solution we propose is to increase the reproducibility confidence level by using
only revision control and a collection of simple scripts that automatically
track information. Additionally, we suggest to store both code and experimental
data in the same Git repository, so that they are always perfectly
synchronized, which eases the obtainment of the code that produced a particular
data set. Nevertheless, this introduced the following new challenges.
3. Unlike source code, data files can be large, thus keeping them together in
the same repository can rapidly increase its size. Moreover, doing code modifications,
analysis and experiments in the same Git branch complicates its
history and makes experimental setup reproduction slightly ambiguous.
4. Another difficulty comes from managing several external beta source codes
that should now coexist in the same repository. Since these codes are also
under development, they are regularly upgraded by their developers and
these changes need to be propagated to local project as well. Additionally,
these codes typically have their own revision control, which rises many issues
with potential local code modifications and commits that concern now both
local and external projects.
Proposal To solve aforementioned problems we propose an approach that uses
Git with two parallel interconnected branches, displayed in Figure 1. The firstsrc data
exp1
✭❛✮ ❉❡✈❡❧♦♣♠❡♥t
src data
exp1
Adding data
Analysis
✭❜✮ ❊①♣❡r✐♠❡♥t❛t✐♦♥
src data
exp2
exp1
✭❝✮ ▼❡r❣✐♥❣ r❡s✉❧ts
❋✐❣✳ ✶✳ ❉✐✛❡r❡♥t ♣❤❛s❡s ✐♥ ❣✐t ✇♦r❦✢♦✇
branch, named src, includes only the source code, i.e., code and scripts for running
the experiments and the analysis. The second, data, branch consists of all
the source code as well as all the data and analysis reports (statistical analysis
results, figures, etc.). These two branches live in parallel and are interconnected
through a third type of branches, the exp# branches, where the experimentation
is performed. All these together form a "ladder like" Git repository, depicted in
Figure 1(c).
We now explain the typical workflow usage of such branching scheme:
1. Development phase: Researchers work on a code development inside the
src branch, committing the changes, as shown on Figure 1(a). These modifications
can impact local or external code, analysis or even the scripts for
running the experiments. Later, such modifications should be tested and the
correctness of the whole workflow should be validated. Only then can one
start doing real useful experiments.
2. Experimentation phase: Researcher creates a new branch from the src
branch containing and a new folder to store the results. We used the convention
that these two (branch and directory) should always have equal names,
which eases the usage of both Git and labbook. In the example of Figure
1(a), this new branch for doing the measurements is called exp1. Next,
new experiments are executed running the scripts and generate results. The
resulting data, together with the captured environment meta-data, are then
committed to the Git. After that, one might want to do some basic analysis
of the data, investigating the results, which may later trigger another round
of experimentation and so on, as it is showed on the Figure 1(b). Finally,
only when all desired measurements are finished, exp1 will be merged with
the data branch.
3. Merging and reports phase: All experimental exp# branches are in the
end merged with data, as it can be seen on Figure 1(c). In addition, result
observations for each exp# branch are written to the labbook. Afterwards,
comparison of different experiments can be performed by generating figures,
tables and clear explanations, to describe the newly discovered phenomena.
Since the changes to the source code from src branch are also propagated
through exp#, the head of the data branch will always contain the latest code
together with all the data. Nevertheless, the older version of code responsiblefor producing a particular data or analysis can always be found in the Git
history.
A peculiar situation occurs when there are source modifications inside the
experimental branches. They have to be committed (as measurements are never
done with an uncommitted code), even though in most cases they represent an ad
hoc change, specific to an individual machine and its installation. These minor,
local hacks would pollute the data branch and thus it has to be ensured that they
are not propagated. It is done by using a special script for merging the branches
instead of classical Git merge command. At the end of the exp# branch, all source
code changes (not the data) have to be invalidated by using git revert, i.e., the
"anti-commit" of all the previously committed modifications inside that branch.
This way modifications remain local for that exp# branch and the experimental
setup can still be reproduced by pulling the revision before the revert operation,
i.e., the one used to generate the data.
If the researcher eventually realizes that some of the source code modifications
done inside exp# branch could be useful for the whole project, there are two
ways to inserted them in the src branch. The first one involves rewriting Git
history and it is not advised as it leads to incoherences between Git repositories.
The second option is to cherry-pick the desired commits. Although this approach
produces some redundancy, it is very easy and safe and keeps the Git history
clear and coherent.
External software One more challenge arises when there are external software
repositories imported inside a local project. For example, one could have external
source code B that is a part of a bigger local project A. Since B is also under
development, one occasionally needs to pull the updates from its server, which
can cause conflicts with local modifications to the code. Resolving these conflicts
manually can sometimes be very tedious.
Even bigger problem occurs if one wants to push such local changes, as they
can be committed to either our project A, or external project B, or even to both
of them together. We decided to propagate, by default, these modifications only
to the project A, keeping the Git sha1 of A always valid and up-to-date. Later if
necessary, they can be pushed to B as well, but this has to be done by explicitly
calling the necessary commands.
Dealing with described challenges is error-prone, thus we started using
git-subrepo tool for cleaner and semi-automated management of external Git
projects inside our local one. However, we still have to do everything manually
when working with codes that are using other version control systems, notably
svn.
Analysis We now analyze the proposed solution and investigate how it addresses
the stated problematic.
First, a complete synchronisation of code, data and analysis is ensured. The
convention to use the same name for Git experiment branches and folders containing
experiment results, additionally carefully noting it in the labbook, makesexploration of project history very smooth. This way one can easily find when
a particular data or a figure was created, pull the revision used to generate it,
inspect the code, reconstruct the environment and finally reproduce the object.
Using experimental branches also allows some local source modifications, that
are specific for the remote machine or some other part of the experimentation
setup. These changes stay local for that exp# branch avoiding to pollute main
src and data branches, elegantly making the project easier to read while still
keeping it coherent. Additionally, Git permits to put tags on certain commits,
which can be used to annotate an important revision, such as the ones with the
stable source code or the ones with some specific adjustments. With the evolution
of the study, Git history becomes large and harder to explore, thus these
tags can help to quickly find a desired state of the project.
By using Git as proposed, it is extremely easy to set up an experimental
platform on a remote machine by pulling only the head of the src branch. This
solves the problem of long and memory consuming retrieving of the entire data
and Git history, as the src branch is typically very small.
On the other hand, one might want to gather all the experimental data at
once, which can be easily done by pulling only the data branch. This is the case
for the researchers that are not interested in the experimentation process, but
only at the analysis of the whole set of results. For them, src and exp# branches
are completely transparent, as they will retrieve only the latest version of the
source code (including needed analysis scripts) and the entire data.
Another use case is when someone wants to write an article or a report based
on the experiment results. A completely new branch can be created from data,
selecting from the repository only the data and analysis code needed for the
publication and deleting the rest. This way complete history of the study behind
the article is preserved for the reviewers.
Holding external projects inside a local one allows to do git pull or svn
checkout in sub-directories, keeping them up-to-date. Small problems arise when
some modifications to the external code are done. These changes de facto influence
both external and local repository but our solution ensures that they are
committed only to the local revision control. Therefore in the meta-data part
of the experiment files, tracked revision of the external code corresponds to the
version pulled before any of the local changes, which is not strictly legitimate.
Nevertheless, this small issue is not critical, since the revision in local project is
stored in meta-data as well, and this value is always perfectly correct. Pulling
this version will bring the right code, keeping the research reproducible.
✹ ❊✈❛❧✉❛t✐♦♥
We used the described methodology in two very different use cases. The first
one is a part of the study of CPU cache performance on various Intel and ARM
micro-architectures [4]. The developed source code was very simple, containing
only a few files, but there were numerous input parameters to be taken into
account. Probably the critical part of this study is about the environment setup,
which proved to be unstable, and thus, responsible for many unexpected phenomena.
Therefore, it was essential to capture, understand and easily compareas much meta-data as possible. Although it did not lead to a reproducible article
as we were only discovering such tools, we used this workflow and can still
track the whole history of these experiments. The second use case [3] aims at
providing accurate performance predictions for dense linear algebra kernels, using
the StarPU runtime on top of the SimGrid simulator. By contrast, input
parameters and environment here are fixed, but the source code is very complex
and in constant evolution. Moreover, we had to manage code from two external
repositories as well many of our own scripts.
The proposed solution proved generally successful in both use cases. We have
determined several good and bad sides, while for some aspects still remain rather
uncertain.
Pros Our approach is fast and efficient for a daily usage. It provides reasonable
boundaries without taking away too much flexibility from the users. It offers
good code modification isolation, which is important for ad hoc changes. Perfect
provenance tracking, which was painless to extend and explore, was crucial for
the cache measurement study. Although these two use cases are very different,
most of the captured environment meta-data is the same for both projects:
date and time, hostname, Linux and gcc version, users logged on the machine,
environment variables, used external libraries, code revisions, memory hierarchy
of the machine, CPU governor and frequency, compilation outputs, etc. Since
all the source code and data is in Git repository, reconstructing experimentation
setup is straightforward. One could argue that not all elements are completely
captured, since operating system and external libraries can only be reviewed
but not reconstructed. To handle this, researchers would have to use virtual
machines to run the experiments, which would introduce many new performance
issues. Finally, after applying such a methodology throughout the whole research
process, it was extremely easy to write an article [3] in Org-mode that was
completely reproducible as well. Along with the text, this Org-mode document
contains all the analysis scripts and the raw data is provided as the article
companion [6] and can be inspected by reviewers.
Cons The biggest disadvantage of our approach is that it has many not so
common conventions along with a steep learning curve workflow, hence it is
difficult for new users. Moreover, it requires an expertise in Org-mode, preferably
using Emacs text editor, together with a good understanding of Git. However,
we believe that these tools provide benefits that are worth investing time.
Additionally, we find current way of managing external source repositories
slightly cumbersome, and we are searching for a better solution. One path could
be to use recipes or experiment engines, that would do the checkout of external
sources for us and would only apply the right modifications before compiling.
The problem of storing large data files in repositories is well-known to the
community. It has been already solved for the Mercurial revision control tool,
but even after an thorough research we could not find a satisfactory solution for
Git. Git repositories can quickly reach a few Gigabytes, which does not hinderdaily committing but significantly slows down rebase operations to move back
to previous experimental conditions of a specific dataset.
Open questions It is still unclear how this approach would scale for multiple
users working simultaneously, doing code modifications and experiments in parallel.
In theory it should work if everyone has sufficient experience of the tools
and workflow, but we have never tried it with more than two persons.
Another interesting feature that we haven’t yet experienced is collaboration
with external users. These researchers could clone our project, work on it on
their own, try to reproduce the results and build upon our work, potentially
improving the code and contribute data sets back. Even though such utilization
should work smoothly, there could be some pitfalls that we haven’t anticipated.
These are only few of the unknown, and as there are certainly many more,
we are hoping for the audience suggestions and remarks.
✺ ❈♦♥❝❧✉s✐♦♥
In this paper, we did not intend to propose new tools for reproducible research,
but rather investigate whether a minimal combination of existing ones can prove
useful. The approach we described is a good example of using well-known,
lightweight, open-source technologies to properly perform a very complex process
like computer science experimentation. Although our methodology is undoubtedly
improvable and similar results could be obtained with other frameworks,
we nonetheless find it very smooth for a daily usage and extremely beneficial
to our work. We can only encourage people to build on such simple workflows
to conduct their own studies, as it is clearly a very effective way to produce a
reproducible research.
Continuity Editing for 3D Animation
Quentin Galvane, R´emi Ronfard, Christophe Lino, Marc Christie
To cite this version:
Quentin Galvane, R´emi Ronfard, Christophe Lino, Marc Christie. Continuity Editing for 3D
Animation. AAAI Conference on Artificial Intelligence, Jan 2015, Austin, Texas, United States.
AAAI Press.
HAL Id: hal-01088561
https://hal.inria.fr/hal-01088561
Submitted on 3 Dec 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Continuity Editing for 3D Animation
Quentin Galvane
INRIA
Univ. Grenoble Alpes & LJK
Remi Ronfard ´
INRIA
Univ. Grenoble Alpes & LJK
Christophe Lino
INRIA
Univ. Grenoble Alpes & LJK
Marc Christie
IRISA
University of Rennes I
Abstract
We describe an optimization-based approach for automatically
creating well-edited movies from a 3D animation.
While previous work has mostly focused on
the problem of placing cameras to produce nice-looking
views of the action, the problem of cutting and pasting
shots from all available cameras has never been addressed
extensively. In this paper, we review the main
causes of editing errors in literature and propose an editing
model relying on a minimization of such errors. We
make a plausible semi-Markov assumption, resulting in
a dynamic programming solution which is computationally
efficient. We also show that our method can generate
movies with different editing rhythms and validate
the results through a user study. Combined with
state-of-the-art cinematography, our approach therefore
promises to significantly extend the expressiveness and
naturalness of virtual movie-making.
Introduction
The wide availability of high-resolution 3D models and the
facility to create new geometrical and animated contents, using
low-cost input devices, opens to many the possibility of
becoming digital 3D storytellers. A convincing illustration
is the rise of the machinima1
community, consisting in creating
movies by relying on contents and rendering engines
borrowed from computer games through ad-hoc techniques
or dedicated modeling tools2
.
To date there is however a clear lack of accessible tools
to easily create the cinematography (positioning the cameras
to create shots) and perform the editing of such stories
(selecting appropriate cuts between the shots created by
the cameras). Creating a movie requires the knowledge of
a significant amount of empirical rules and established conventions.
In particular continuity editing – the creation of
a sequence of shots ensuring visual continuity – is a complex
endeavor. Most 3D animation packages lack continuity
editing tools, calling the need for automatic approaches that
would, at least partially, support users in their creative process
(Davis et al. 2013).
1
contraction of machine and cinema
2
see iClone http://www.reallusion.com/iclone/
or Moviestorm http://www.moviestorm.co.uk/ tools
Previous contributions in automatic film editing have focused
on generative methods mixing artificial intelligence
and computer graphics techniques. However, evaluating the
quality of film editing (whether generated by machines or by
artists) is a notoriously difficult problem (Lino et al. 2014).
Some contributions mention heuristics for choosing between
multiple editing solutions without further details (Christianson
et al. 1996) while other minimize a cost function which
is insufficiently described to be reproduced (Elson and Riedl
2007). Furthermore, the precise timing of cuts has not been
addressed, nor the problem of controling the rhythm of cutting
(number of shots per minute) and its role in establishing
film tempo (Adams, Dorai, and Venkatesh 2002). Most
approaches yield a reactive style of editing known by professional
editors as the dragnet style (Murch 1986), which
mechanically cuts to new speakers or actions.
In this paper, we propose a continuity editing model for
3D animations that provides a general solution to the automated
creation of cinematographic sequences. Our model
encodes the continuity editing process as a search for the optimal
path through an editing graph. In this editing graph, a
node represents a time-step (a temporal fragment of a shot),
and an arc represents a transition between two cameras, going
from a camera to either the same camera (no cut) or another
camera (cut).
Our optimization uses dynamic programming to minimize,
under a semi-Markovian hypothesis, the errors made
along three criteria (see Figure 1): the quality of the shots
(with respect to the unfolding actions), the respect of continuity
editing rules and the respect of a well-founded model
of rhythm (cutting pace). Semi-Markov models (Murphy
2002; Yu 2010) have been used before in the context of
information extraction (Sarawagi and Cohen 2004), speech
generation (Zen et al. 2007) and computer vision (Shi et al.
2008). To the best of our knowledge, this is the first time they
are suggested as a computational model for film editing.
Our contributions are: (i) a detailed formalization of continuity
editing for 3D animation, encompassing a thorough
number of visual properties and continuity rules (ii) an optimal
algorithm for automatic editing in which parameters
such as pacing can be controlled, thereby significantly increasing
the expressiveness of editing tools, and (iii) a validation
of our model through a user evaluation comparing the
original edit of an existing movie with our optimal edit andJump Cuts
Continuity errors
Non-motivated shots and cuts
Our solution
Jump Cut Jump Cut
left-to-right screen gaze direction
Figure 1: Editing errors in a short sequence of a movie. From top
to bottom: jump cut errors; breaking the continuity errors; nonmotivated
shots and cuts. The last edit is the output of our system.
with degraded approaches.
Related work
The problem of generating movies from 3-D animation can
be decomposed into the problems of (i) choosing shots and
placing cameras (the cinematography problem), and (ii) deciding
when to assemble those shots into a movie (the film
editing problem). In this section, we review previous work
on the film editing problem chronologically.
(Christianson et al. 1996) introduce the declarative camera
control language (DCCL) as a general framework for
generating idiom-based solutions to cinematography and
film editing problems. Film idioms (He, Cohen, and Salesin
1996) are recipes for obtaining good cinematography and
editing in any given situation, similar to cases in case-based
reasoning. As a result, DCCL uses a conversation idiom for
filming conversations, a fighting idiom for filming fights, etc.
DCCL then builds a film tree, as a result of filming each
scene in all available idioms, and includes a heuristic evaluator
for checking the visual quality of sequences, choosing
the one with the highest quality. The evaluation criteria are
only briefly mentioned, and in comparison, we offer a full
description of a scoring function that can be used to find optimal
editing solutions using all available cameras in a principled
and reproducible fashion.
(Tomlinson, Blumberg, and Nain 2000) propose a fully
automatic method for generating expressive cinematography.
Their system uses autonomous cameras with emotional
states and goals, that choose between a number of visual
targets – such as a specific character, or two characters interacting
with each other, or one character interacting with
its environment. Though their system interestingly motivates
the shots both emotionally and visually, the rules of montage
(editing) are not enforced, and the pacing of the shots is resolved
by ad hoc rules. (Kennedy and Mercer 2002) directly
address the problem of planning a complete sequence of
shots for a given sequence of actions which must be known
in advance. Users can choose between fast or slow editing
in two different styles. Authors use a depth-first forward
chained planner which can only evaluate a small number of
possible plans and enforce a single continuity editing rule
(”not crossing the line of action”).
Unlike previous work, Darshak (Jhala and Young 2011)
takes as input an explicit declarative representation of the
story goals, including all actions, causal links between actions,
and ordering constraints. Story goals are defined in
terms of a small number of dramatic situations, and a hierarchical
partial-order causal link planner computes a camera
plan, consisting of a sequence of shots that achieves
the desired story goals. Darshak goes a long way into motivating
the shots, but the actual cinematography and editing
are not evaluated. Cambot (Elson and Riedl 2007) is a
movie-making system where the choice of shots is found as
a solution to an optimization problem using dynamic programming.
The scene is expressed as a sequence of nonoverlapping
dramatic beats and their approach evaluates
different placement of characters (blockings) and camera
choices for each beat. Though we also make use of dynamic
programming, our method is very different from (Elson and
Riedl 2007). Firstly, we search a much larger set of possible
solutions, by evaluating a higher number of shot transitions
at a finer level of granularity (every frame, rather than every
beat). As a result, our method makes it possible to choose
the precise cutting point between shots, and to maintain control
over the rate of shot changes (cutting pace). Secondly,
we describe in detail a cost function which implements an
extensive set of film editing rules. Our cost function has a
semi-Markov property which allows to efficiently optimize
over this larger solution space. Thirdly, our method does not
require the scene to be decomposed into a linear sequence of
beats, and works equally well with overlapping actions and
dialogues.
(Assa, Wolf, and Cohen-Or 2010) propose a fully automated
editing process that performs cuts in real-time between
multiple cameras viewing human motions. The ranking
between shots is computed by measuring for each camera
the correlation between human motions in the 3D scene,
and the on-screen 2D projection of these motions (the larger
the correlation, the better the shot). A measure of erosion of
the current view is employed to motivate the cuts between
the viewpoints, while enforcing continuity rules (jump-cut
and crossing the line of action). In a similar context of realtime
cinematography, (Lino et al. 2010) propose a system
that automatically computes for each frame a collection of
distinct viewpoints through spatial partitions. The editing
process is then performed by encoding continuity rules as
filtering operators that remove inconsistent viewpoints.
(Markowitz et al. 2011) extend the film idiom approach
by replacing finite state machines with behavior trees. They
enforce the 180 degree rule and the 30 degree rule, assuming
a single line of interest at any given time in the scene. Similar
to film idioms, their approach remains reactive, resulting
in an editing style that immediately follows the action andcannot easily control the pacing or style of the editing.
System overview
In this paper, we cast the problem of film editing as an optimization
problem over a space of semi-Markov chains. Our
system takes as input a 3D animation scene, comprising a
flow of world events, and a set of rushes taken from different
cameras and covering the whole scene. We then rank
possible edits on three key aspects: (i) how much shots convey
unfolding actions, (ii) how much continuity editing rules
are enforced and (iii) how much an input cutting rhythm is
respected.
Given a 3D animated scene with arbitrarily complex actions
a and a choice of rushes (i.e. unedited footage) from
M cameras, a semi-Markov chain is a sequence of states
(shots) sj with durations dj , chosen according to a probability
model over sj , dj and a. The probability of the next
shot sj+1 of duration dj+1 and starting at time tj+1 depends
only on the previous shot sj and the actions a in the segment
[tj+1, tj+1 + dj+1].
We here introduce the notion of editing graph, the graph
of all possible shots and transitions. In this graph, a node
represents a time-step (one frame) of a rush and an arc represents
a transition from frame i of a rush (camera) to frame
i + 1 of a rush (same or different). The output of our system
is then a full edit list of the scene, computed as the continuous
path through our editing graph minimizing the errors on
these three key aspects.
The first input of our system is an ordered list of durative
world events (that we refer to as actions), expressed in
the form (subject, verb, object). In the following, we consider
that the subject and object of all actions are characters,
and we refer to the set of all characters as C. We
use four main categories of actions: speaking actions performed
by the character’s mouth, reacting actions performed
by the character’s eyes, manipulating actions performed by
the character’s hands, and moving actions performed by the
character’s feet. As a result, a character can be the subject
of at most four different actions at any given time and the
object of an unlimited number of actions.
The second input of our system is a list of M rushes from
different cameras filming the scene for a total duration of
N video frames. We are agnostic about how the rushes are
obtained. Though in this paper a number of cameras were
placed manually by a human expert, they could equally be
computed by an automatic camera planner such as (Drucker
and Zeltzer 1995; He, Cohen, and Salesin 1996; Markowitz
et al. 2011; Elson and Riedl 2007) or any other method.
The output of our system is a movie, described as an edit
decision list (EDL) defined as a sequence of shots sj in
the form of triplets (rj , tj , dj ). Note that in this paper, we
only consider chronological EDLs where time is preserved
(tj+1 = tj + dj ). In this limited context, the EDL can be
reconstituted using the rush selection function r(t) which
gives the rush index as a function of time.
We here propose to cast the editing process into a mathematical
model accounting for three criteria: (i) how much
shots convey unfolding actions, (ii) the continuity editing
principles and (iii) the cutting rhythm of the movie. To do so,
we use a log-linear model where the probability of choosing
a particular sequence of shots sj is taken to be the exponential
of a linear cost function C(s, a). The cost function
C(s, a) is further decomposed into three terms which separately
measure (i) errors in conveying unfolding actions in
each shot, (ii) violations of continuity editing rules in each
cut and (iii) errors in choosing shot durations.
C(s, a) =X
j
X
tj≤t≤tj+dj
C
A(rj , t)
+
X
1≤j
C
T
(rj−1, rj , tj ) +X
j
C
R(dj )
In this equation, the first term is a sum over all frames
of all shots of a cost function C
A related to actions in
the scene. The second term is a sum over all cuts of
a cost function C
T
related to transitions between shots.
Those two term are further decomposed into weighted
sums of features, i.e. C
A(rj , t) = P
k w
A
k C
A
k
(rj , t) and
C
T
(ri
, rj , t) = P
k w
T
k C
T
k
(ri
, rj , t). The third term is a
sum over all shots of a cost function C
R related to editing
rhythm. In the following sections, we explain each of those
terms, and refer to the Appendix for mathematical details.
Symbolic projection
During the shooting of a virtual scene, all cameras capture
images which are perspective projections of the world scene
into their own frame of reference. In parallel to the computation
performed by the graphics pipeline, we perform a
symbolic projection of the actions which keeps a record of
how much of the action is visible in each rush at every single
frame.
This is performed as follows. First, each action is decomposed
into its constituents – verb, subject and object. Based
on the verb category (speaking, reacting, moving or manipulating),
we then compute the bounding boxes of involved
body parts (e.g. mouth, eyes, hands and feet) of the subject
and object characters. We then compute the screen size of
their projection in each frame of a rush. 0 Second, to evaluate
how much of these actions are visible, we compute the
visible and occluded areas of characters. To do so, for each
face f of each body part b of a character, we compute its projected
size (or area) S(f, r, t) at time t in rush r. This projected
size is measured relatively to the screen size, and comprises
both the on-screen and off-screen projections of f. We
then define the visible and occluded sizes of f as follows.
Its occluded size O(f, r, t) corresponds to the cumulative
size of its areas that are either occluded or appear off-screen,
while its visible size V (f, r, t) is the complementary value
computed such that S(f, r, t) = V (f, r, t) + O(f, r, t). We
finally define the projected size and the visible size of each
character c as the sum of corresponding values on each face
of its body parts: V (c, r, t) = P
b∈c
P
f∈b
V (f, r, t)
This method is further easily extended to the case of
non-character objects (we use their bounding boxes) and
multiple-characters.Marty
George
Goldie
Lou
0% 20% 40% 60% 80% 100%
(a) Narrative importance per character per frame
Marty
George
Goldie
Lou
(b) On-screen character sizes in Zemeckis movie
Marty
George
Goldie
Lou
(c) On-screen character sizes in our solution
Figure 2: The relative narrative importance of a character is computed
from all actions where it plays a role. It correlates with the
screen size of the characters in both the Zemekis movie (linear correlation
coefficient of 0.56) and our solution (0.73).
Narrative importance
To each action a holding at time t, a narrative importance
I(a) is attributed depending on whether a is a foreground
or a background action. We then firstly distribute the importance
according to the different roles in the action (subject
and object). Note that this defines the narrative importance
of each character I(c, t) at time t. We secondly distribute
the importance given to each role proportionally into the individual
body parts of the character filling the role. For instance,
in a speak action the subject’s and object’s visual
targets are their heads; in a manipulate action the subject’s
visual target is its head and chest; in a move action, the subject’s
visual target is its full body. We finally non-uniformly
distribute the importance of a body part on its front, back
and side faces to obtain the narrative importance of each face
I(f, t) of a character at time t.
Shot selection
Based on the symbolic and geometric data related to unfolding
actions of a given frame, we rank every frame of every
shot on three aspects: the action visibility, the action proximity
and the action ordering (also known as the Hitchcock
principle).
The action visibility term evaluates how much of unfolding
actions is visible. To fully satisfy this criteria, each important
body part of a character taking part in an unfolding
action should be on-screen and fully visible. The cost associated
to action visibility is computed as the sum, on each face
f of each body part b of each character c, of the occluded
proportion of the face weighted by its narrative importance:
C
A
V
(r, t) = X
c∈C
X
b∈c
X
f∈b
I(f, t) ·
O(f, r, t)
S(f, r, t)
The action proximity term evaluates how immersed the
camera is in the unfolding actions, i.e. how much the screen
is filled by actions. The cost (or penalty) associated to poor
action proximity is then given by the proportion of the screen
filled by the characters:
C
A
P (r, t) = 1 −
X
c
V (c, r, t)
The action ordering term evaluates how much the onscreen
importance of a character matches its narrative importance.
This is also known as the Hitchcock principle,
which states that the size of a character should be proportional
to its narrative importance in the story (Truffaut and
Scott 1967; Hawkins 2005; DeLoura 2009). Our implementation
considers all characters present in the scene, not just
the characters present in each shot, or the characters participating
in the main action. This has the benefit to easily
rule out prominent shots of unimportant characters and favor
prominent shots of important characters, focusing on its
important body parts (mouth while speaking, eyes while reacting,
hands while manipulating, feet while moving). The
cost associated to the Hitchcock principle is computed as the
sum of all deviations of the on-screen visibility of a character
compared to its narrative importance:
C
A
H(r, t) = X
c∈C
I(c, t)
P
c
0
I(c
0
, t)
−
V (c, r, t)
P
c
0
V (c
0
, r, t)
Continuity editing
We rank all possible transitions between rushes based on
a computational model of continuity-editing. Continuityediting
is the most commonly used editing style in filmmaking.
It relies on a set of well established rules: avoiding jump
cuts, enforcing the screen, motion and gaze continuity and
maintaining the left-to-right ordering of on-screen characters
(Dmytryk 1984; Thompson and Bowen 2009).
Jump cuts When the same character appears in two consecutive
shots (i.e. before and after a cut), there must be suf-
ficient change in either its apparent size or its profile angle
in the two shots, so that the audience perceives the cut as
a change in viewpoint, rather than a sudden change in the
character’s pose, also known as a jump cut. To prevent such
cuts, we penalize such errors through a cost function over
all characters appearing in successive shots, whose formula
is detailed in Section Jump cuts of the appendix.
Screen, motion and gaze continuity The main goal of
continuity editing is to enforce continuity on screen positions,
motion directions and gaze directions of all characters
across the cut. To prevent discontinuities, we penalize
them through a non-linear combination of the differences in
screen position, gaze direction and motion direction of all
characters appearing in successive shots. The formulas of
these cost functions are detailed in Sections Screen continuity,
Motion continuity and Gaze continuity of the appendix.Left-to-right ordering The left-to-right ordering of characters
is another important factor to enforce visual continuity.
Characters whose relative screen positions are reversed
after a cut appear to be jumping around, which attracts attention
to the cut (Smith 2005) – this criteria is also known
as the 180 degree rule. For every pair of character (c, c0
)
appearing on-screen before and after the cut, we then penalize
the reversion (cost=1) iff their oriented difference of onscreen
position ∆Px(c, c0
) (taken on the x axis) is of opposite
sign. The overall cost on left-to-right continuity is then
computed as the sum of this penalty on all pairs of character
appearing on-screen before and after the cut. The formula of
this cost function is detailed in Section Left-to-right ordering
of the appendix.
Cutting rhythm
Cutting rhythm is an important element of film editing style
(Bordwell 1998). Cutting between cameras produces visual
rhythm. Fast cutting as in an action scene can change
cameras as often as every half second. The cutting rhythm
has been studied extensively by film scholars (Salt 2009;
Cutting, DeLong, and Nothelfer 2010) who have shown that
it is well approximated with a time-varying log-normal distribution
of shot durations (Limpert, Stahel, and Abbt 2001).
Parameters of the log-normal distribution are the mean µ
and standard deviation σ of the log-transformed durations
log dj , which result in a skewed distribution of durations
with average shot length ASL = exp
µ +
σ
2
and variance
V ar = exp
2µ + σ
2
(exp σ
2 −1) . Rather than making
automatic decisions, our system is designed to let the
user/director choose the average shot length (ASL) which
dictates the rhythm of editing, and hence the editing style.
To enforce those values, we compute a cost measuring, for
each shot sj of duration dj , the deviation of its duration from
the log-normal distribution
C
R(dj ) = (log dj − µ)
2
2σ
2
+ log dj
Optimization-based film editing
We evaluate the cost of an arbitrary edit decision list of
shots sj with a weighted sum of simple feature functions.
To do so, we use a dynamic programming approach to
find the minimum cost solution by storing partial solutions
(Mitchell, Harper, and Jamieson 1995; Murphy 2002).
We define B(r, t) to be the cost of the best sequence of
shots ending at time t with a shot using rush r. One important
result that follows from our choice of cost functions is
the following recurrence relation
B(r, t) = min
t0 < t
r0 6= r
➉
B(r0, t0) + C
T
(r0, r, t0 + 1)
+
Xt
t
0=t0+1
C
S
(r, t0
) + C
R(t − t0)
➌
In plain words, the best sequence ending on rush r at time
(frame) t can be computed by comparing all combinations
Rush 1
Rush 2
Rush 3
Rush 4
Rush M ...
t0 t2t1 t3 t
B(3,t)
Figure 3: Illustration of our dynamic programming algorithm, using
semi-Markov decisions. The best edit in which a shot ends in
Rush 3 at time t is computed as the best combination (drawn in
red) of an edit in which a shot ends in Rush r0 6= 3 at a prior time
ti < t then a shot using Rush 3 between ti and t.
of a shot ending on rush r0 at time t0 < t, followed by a cut
from rush r0 to rush r between frames t0 and t0+1, followed
by a shot of duration t − t0 using rush r (see Figure 3).
Using the above recurrence, we build the table of B(r, t)
in time M2N2
and space MN, where M is the number
of rushes and N is the number of video frames. We additionally
store a back-pointer to retrieve the actual path
yielding the minimum-cost solution. Note that the method
can also be used to retrieve sub-optimal solutions ending
in other cameras. This can be useful in cases where the
final shot is chosen by the director. To improve our system
efficiency, we further restrain the search in our algorithm
to a constant horizon H (longest allowable shot duration)
of 30 seconds. This leads to compute a solution
in time M2NH (Mitchell, Harper, and Jamieson 1995;
Murphy 2002), which is sufficient for our purpose. For
longer sequences with more rushes, an algorithm by (Datta,
Hu, and Ray 2008) can be used to compute an exact and
unbounded solution in time MN(M + N).
Experimental results
To validate our approach, we have recreated the animation
of a well-known scene from Robert Zemeckis’ movie “Back
to the future”. The average shot length (ASL) in the original
version is 6.6 seconds. The distribution of shot lengths in
the original version is well approximated with a log-normal
law of mode m = 2.28 and standard deviation σ = 0.82.
This short (80 seconds) scene is a moderately complex interior
scene, with four main characters, all engaging in a
variety of actions, including two-way and three-way dialogues,
physical contacts, and everyday activities such as
sweeping the floor and serving food. All animations were
manually annotated to provide (subject, verb, object) descriptions
at the right time-codes. Twenty-five cameras were
manually placed for the whole duration of the sequence (sixteen
of them closely approximating the actual cameras from
the original movie, and nine providing alternative angles).
The evaluation of editing is a general and challenging
problem (Lino et al. 2014) since no ground truth is availableFigure 4: The scores obtained by the five stimuli, each represented
with a whisker plot. The central point represents the
median score, the box represent the scores between the first
and third quartiles, and the bottom and top lines represent
the minimum and maximum scores.
for objective comparisons. As a consequence, the quality of
an edit can only be measured subjectively through indirect
user evaluations. Therefore, to demonstrate the soundness
of our model, we have experimentally compared our method
(O) to the original edit of the scene (Z) reproduced from Zemeckis’
movie (which serves as a reference for comparison
with expert cinematographers) and to three degraded versions:
a degraded version (Ds) where the content of shots
is not considered (i.e. the shot cost is removed), a degraded
version (Dp) where the enforcement of the specified cutting
rhythm is not considered (i.e. the rhythm cost is removed), a
degraded version (Dc) where visual discontinuities are enforced
(i.e. the cut cost is reversed).
We performed a subjective evaluation of our method by
designing a perceptual user-study. Twenty-one participants
volunteered for this experiment. They were 27.5 (± 5.7)
years old (range: 20 to 42). They were naive with respect to
the purpose of the experiment. All had normal or correctedto-normal
vision. They gave written and informed consent
and the study conformed to the declaration of Helsinki. We
prepared 5 stimuli (a fully edited version of 80 seconds per
method). Participants were asked to observe the video stimuli
while seated in front of a desk. After each stimulus viewing,
participants were asked to rank the global film-making
quality3 on a discrete scale ranging from 0 (very bad) to 10
(very good). In total, they repeated this task 20 times (5×4
repetitions). Stimuli were presented in a randomized order.
The total duration of the experiment was about 30 minutes.
We tested three hypotheses. H1: editing has an impact on
the perceived quality of the observed video stimulus; H2:
each of the three terms in our cost function (shot content,
continuity rules and cutting rhythm) has a positive impact on
perceived quality; H3: the perceived quality of the version
done by an expert cinematographer is significantly higher
than our method. The dependent variable in this study was
the participants’ score given to each version. Figure 4 illus-
3We additionally proposed a number of criteria that participants
could consider to score each version: the enhancement of characters
performance, the synchronization of cuts with the scene content,
the aesthetic of shots.
trates the scores obtained for each version.
Hypothesis H1 was confirmed using a non-parametric
Friedman test (p < 0.05). Post-hoc comparisons summarized
in Figure 4 confirm hypothesis H2 that the consideration
of each of the three key aspects has a positive impact
on subjective quality, but discard hypothesis H3 that the version
done by an expert cinematographer is significantly better
scored than the one generated by our system (though Zemeckis’
version globally obtained better scores).
To further illustrate and validate our method, we have
also generated two new versions of the scene with ASLs
of resp. 2 seconds (fast cutting style) and 10 seconds (slow
cutting style). The choice of shots is very different in those
different styles. In fast cutting style, there is a preference for
close-ups and medium shots. In slow cutting style, there is
a preference for medium long shots and full shots. For evaluation
purposes, we are making our experimental data (including
rushes and their annotations) and our experimental
results publicly available 4
.
Limitations and future work
Our model is currently limited to the case of linear editing,
where the chronology of events is maintained. In future
work, we would like to remove this limitation by allowing
temporal ellipses and re-ordering of events. Another limitation
is that we are restricted to a limited choice of cameras.
Future work is needed to optimize over camera positions and
framings. In addition, the proposed model only enables to
control the pacing. Other style parameters such as shot composition
(flat vs. deep staging), camera movements (static
shots, dolly shots, crane shots), transitions (reverse shots)
and lighting preferences would favor user creativity. Our
model of shot selection is based on bounding boxes of the
character’s body parts and a primitive classification of their
actions. Objects and places in the scene, as well as character’s
moods and intentions, should also play a part. Finally,
we should note that the semi-Markov assumption has limitations
of its own. Important film editing patterns such as
book-ending, separation or parallel action (Sharff 1982) cannot
be taken into account by such a memory-less model. The
investigation of higher-order Markov models or context-free
grammars will be pursued to overcome such limitations.
Conclusion
In this paper, we have presented a continuity-editing approach
to the automated creation of cinematographic sequences
for 3D animations. We have introduced the notion
of editing graph and showed how dynamic programming can
be used to compute an optimal edit under a semi-Markov hypothesis.
We have provided a thorough description of means
to rank shots and edits, and to measure the distance to a
specified cutting rhythm. Our solution is supported by subjective
evaluations obtained in a perceptual user study. The
proposed approach performs a clear shift from existing techniques
such as idiom-based representations, with a level of
expressiveness not addressed by previous contributions. Finally,
this work provides the foundations to address novel
4
https://team.inria.fr/imagine/continuity-editing/challenges in automated cinematography, such as learning
and reproducing cinematic styles from real-movies.
Acknowledgments
The research presented in this paper benefited from the assistance
of many people. Laura Paiardini and Estelle Charleroy
created the assets and the animation for the example sequence.
Adela Barbulescu helped create the facial animation.
Anne-Hel´ ene Olivier and Michael Gelicher gave pre- `
cious help on experimental design and evaluation of the user
study. We also thank the volunteers who participated in the
user study.
A preliminary version of this work was developed by the
second author as part of the patented Text-to-Movie application
by Xtranormal Technologies 5
.
This work has been funded by the French Agency for Research
(ANR) through projects CHROME and CINECITTA
and the European Research Council (ERC) through the
project EXPRESSIVE.
Appendix
We here provide the formulas of our cost functions related to
continuity-editing rules. We first introduce v(c), a weighting
factor defined as the minimum visible area of character c in
two consecutive frames. In details, it is computed as follows
v(c) = min(V (c, i, t − 1), V (c, j, t))
This factor is used to weight costs on each single character.
We then give no importance to off-screen characters, little
importance to background characters, and more importance
to foreground characters (since they are the focus of attention).
Jump cuts
An illustration of the avoidance of jump cuts is given in Figure
5. We penalize a jump cut by summing, on each single
character, the degree of similarity between the two frames
before and after the cut. Practically, this penalty is computed
as follows
C
T
J
(i, j, t) = X
c
v(c) · φJ (∆S(c), ∆θ(c))
where ∆S(c) and ∆θ(c) are the differences in resp. apparent
size and view angle of character c between the two frames.
φJ is a non-linear function taking these two parameters as
input. It considers a minimum acceptable change in apparent
size ∆Smin, as well as a minimum acceptable change
in view angle θmin (often set to 30 degree). φJ then returns
the maximum penalty when no change occurs neither in apparent
size nor view angle of character c, and the penalty
decreases as the change in either apparent size or view angle
increases.
Screen continuity
An illustration of the screen continuity rule is given in Figure
6. We penalize such a discontinuity by summing, on each
5Remi Ronfard, automated cinematographic editing tool, Xtra- ´
normal Technologies, May 2009.
(a) Change in apparent size
(b) Change in view angle
(c) Insufficient change in both size and view angle
Figure 5: Examples of cuts with sufficient change in size
(top), sufficient change in view angle (middle), and an example
of jump cut (bottom).
(a) Screen continuity
(b) Screen discontinuity
Figure 6: Examples of cuts respecting (top) or violating (bottom)
the screen continuity.
single character, its screen position change. Practically, this
penalty is computed as follows
C
T
S
(i, j, t) = X
c
v(c) · φS (P(c, j) − P(c, i))
where P(c, i) and P(c, j) represent the 2D screen position
of character c resp. before and after the cut. φS is a nonlinear
function which takes as input the distance between
both positions. It then returns the minimum penalty (0) for
two identical positions, and the penalty increases with their
distance.Motion continuity
An illustration of the motion continuity rule is given in Figure
7. We penalize such a discontinuity by summing, on
each single character, its change of apparent motion direction.
Practically, this penalty is computed as follows
C
T
M(i, j, t) = X
c
v(c) · φM (M(c, i), M(c, j))
where M(c, i) and M(c, j) are 2D vectors representing the
on-screen motion direction of character c resp. before and
after the cut. φM is a non-linear function which takes as input
these two consecutive motion directions. It then returns
the minimum penalty (0) when the two vectors are close
enough (e.g. a character moving in a given direction keeps
moving in a similar direction after the cut), and the penalty
increases as these vectors differ from each other.
Gaze continuity
An illustration of the gaze continuity rule is given in Figure
8. In a similar way to the motion continuity, we penalize
such a discontinuity by summing, on each single character,
its change of apparent gaze direction. Practically, this
penalty is computed as follows
C
T
G(i, j, t) = X
c
v(c) · φG (G(c, i), G(c, j))
where G(c, i) and G(c, j) are 2D vectors representing the
on-screen gaze direction of character c resp. before and after
the cut. φG is a non-linear function which takes as input
these two consecutive gaze directions. It then returns the
minimum penalty (0) when the two vectors are close enough
(e.g. a character looking in a given direction keeps looking
in a similar direction after the cut), and the penalty increases
as these vectors differ from each other.
Left-to-right ordering
An illustration of the left-to-right continuity rule is given in
Figure 9. We penalize such a discontinuity by summing, on
each pair of characters (c, c0
), their change in relative onscreen
position (from left to right, this is also known as the
180 degree rule). To do so, we define a new weighting factor
v(c, c0
) computed as the product v(c) · v(c
0
) of the weights
of both characters. We then give no importance to a pair of
characters where at least one is off-screen either before or
after the cut, little importance to a pair of background characters,
and much importance to a pair of foreground characters.
Practically, this penalty is computed as follows
C
T
L (i, j, t) = X
c,c0
v(c, c0
) · φL (L(c, c0
, i), L(c, c0
, j))
where L(c, c0
, i) and L(c, c0
, j) are two real values representing
the relative position of characters c and c
0
resp. before
and after the cut (practically, this relative position is
computed as the signed difference of their on-screen horizontal
coordinates). φL is a non-linear function taking as
input these two reals. It then returns the minimum penalty
(0) when both values are of same sign (i.e. the relative position
of characters is enforced) and the maximum penalty
(1) when the two values are of opposite sign (i.e. the relative
position of characters is reversed).
(a) Motion continuity
(b) Motion discontinuity
Figure 7: Examples of cuts respecting (top) or violating (bottom)
the motion continuity.
(a) Gaze continuity
(b) Gaze discontinuity
Figure 8: Examples of cuts respecting (top) or violating (bottom)
the gaze continuity.
(a) Left-to-right ordering continuity
(b) Left-to-right ordering discontinuity
Figure 9: Examples of cuts respecting (top) or violating (bottom)
the left-to-right ordering continuity (also known as 180
degree rule).References
Adams, B.; Dorai, C.; and Venkatesh, S. 2002. Toward automatic
extraction of expressive elements from motion pictures:
tempo. IEEE Transactions on Multimedia 4(4):472–
481.
Assa, J.; Wolf, L.; and Cohen-Or, D. 2010. The virtual director:
a correlation-based online viewing of human motion.
Computer Graphics Forum 29(2):595–604.
Bordwell, D. 1998. On the History of Film Style. Harvard
University Press.
Christianson, D. B.; Anderson, S. E.; He, L.-W.; Weld, D. S.;
Cohen, M. F.; and Salesin, D. H. 1996. Declarative camera
control for automatic cinematography. In AAAI, 148–155.
Cutting, J. E.; DeLong, J. E.; and Nothelfer, C. E. 2010. Attention
and the Evolution of Hollywood Film. Psychological
Science 21(3):432–439.
Datta, R.; Hu, J.; and Ray, B. 2008. On efficient viterbi
decoding for hidden semi-markov models. In 19th International
Conference on Pattern Recognition., 1–4.
Davis, N.; Zook, A.; O’Neill, B.; Headrick, B.; Riedl, M.;
Grosz, A.; and Nitsche, M. 2013. Creativity support for
novice digital filmmaking. In SIGCHI Conference on Human
Factors in Computing Systems, 651–660. ACM.
DeLoura, M. 2009. Real Time Cameras, A Guide for Game
Designers and Developers. Morgan Kaufman.
Dmytryk, E. 1984. On Film Editing: An Introduction to the
Art of Film Construction. Focal Press.
Drucker, S. M., and Zeltzer, D. 1995. Camdroid: A system
for implementing intelligent camera control. In Symposium
on Interactive 3D Graphics, I3D ’95, 139–144. ACM.
Elson, D. K., and Riedl, M. O. 2007. A lightweight intelligent
virtual cinematography system for machinima generation.
In Artificial Intelligence and Interactive Digital Entertainment
(AIIDE ’07).
Hawkins, B. 2005. Real-Time Cinematography for Games.
Charles River Media.
He, L.-w.; Cohen, M. F.; and Salesin, D. H. 1996. The virtual
cinematographer: a paradigm for automatic real-time camera
control and directing. In SIGGRAPH, 217–224. ACM.
Jhala, A., and Young, R. M. 2011. Intelligent machinima
generation for visual storytelling. In Artificial Intelligence
for Computer Games. Springer New York. 151–170.
Kennedy, K., and Mercer, R. E. 2002. Planning animation
cinematography and shot structure to communicate theme
and mood. In Smart Graphics, 1–8. ACM.
Limpert, E.; Stahel, W. A.; and Abbt, M. 2001. Log-normal
distributions across the sciences: Keys and clues. BioScience
51(5):341–352.
Lino, C.; Christie, M.; Lamarche, F.; Schofield, G.; and
Olivier, P. 2010. A real-time cinematography system for
interactive 3d environments. In Symposium on Computer
Animation, 139–148. ACM.
Lino, C.; Ronfard, R.; Galvane, Q.; and Gleicher, M. 2014.
How Do We Evaluate the Quality of Computational Editing
Systems? In AAAI Workshop on Intelligent Cinematography
And Editing.
Markowitz, D.; Jr., J. T. K.; Shoulson, A.; and Badler, N. I.
2011. Intelligent camera control using behavior trees. In
Motion in Games (MIG), 156–167.
Mitchell, C.; Harper, M.; and Jamieson, L. 1995. On the
complexity of explicit duration hmm’s. IEEE Transactions
on Speech and Audio Processing 3(3):213–217.
Murch, W. 1986. In the blink of an eye. Silman-James Press.
Murphy, K. P. 2002. Hidden semi-markov models. Technical
report, MIT AI Lab.
Salt, B. 2009. Film Style and Technology: History and Analysis
(3 ed.). Starword.
Sarawagi, S., and Cohen, W. W. 2004. Semi-markov conditional
random fields for information extraction. In Advances
in Neural Information Processing Systems.
Sharff, S. 1982. The elements of cinema. Towards a theory
of cinesthetic impact. Columbia University Press.
Shi, Q.; Wang, L.; Cheng, L.; and Smola, A. 2008. Discriminative
human action segmentation and recognition using.
semi-markov model. In IEEE Conference on Computer
Vision and Pattern Recognition (CVPR).
Smith, T. J. 2005. An Attentional Theory of Continuity Editing.
Ph.D. Dissertation, University of Edinburgh.
Thompson, R., and Bowen, C. 2009. Grammar of the Edit.
Focal Press.
Tomlinson, B.; Blumberg, B.; and Nain, D. 2000. Expressive
autonomous cinematography for interactive virtual environments.
In International Conference on Autonomous Agents,
AGENTS ’00, 317–324. ACM.
Truffaut, F., and Scott, H. G. 1967. Truffaut/Hitchcock. Simon
& Schuster.
Yu, S.-Z. 2010. Hidden semi-markov models. Artificial
Intelligence 174(2):215 – 243.
Zen, H.; Tokuda, K.; Masuko, T.; Kobayasih, T.; and Kitamura,
T. 2007. A hidden semi-markov model-based speech
synthesis system. IEICE - Trans. Inf. Syst. E90-D(5):825–
834.
Rester statique pour devenir plus rapide, plus pr´ecis et
plus mince
Arvid Jakobsson, Nikolai Kosmatov, Julien Signoles
To cite this version:
Arvid Jakobsson, Nikolai Kosmatov, Julien Signoles. Rester statique pour devenir plus rapide,
plus pr´ecis et plus mince. David Baelde; Jade Alglave. Vingt-sixi`emes journ´ees francophones
des langages applicatifs, Jan 2015, Le Val d’Ajol, France. Actes des vingt-sixi`emes journ´ees
francophones des langages applicatifs, .
HAL Id: hal-01096352
https://hal.inria.fr/hal-01096352
Submitted on 17 Dec 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
✶✺
Double WP : Vers une preuve automatique d’un
compilateur
Martin Clochard, L´eon Gondelman
To cite this version:
Martin Clochard, L´eon Gondelman. Double WP : Vers une preuve automatique d’un compilateur.
Journ´ees Francophones des Langages Applicatifs, Jan 2015, Val d’Ajol, France.
.
HAL Id: hal-01094488
https://hal.inria.fr/hal-01094488
Submitted on 12 Dec 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es
Fondements de l’Informatique: Logique, Mod`eles,
Calculs
Olivier Bournez
To cite this version:
Olivier Bournez. Fondements de l’Informatique: Logique, Mod`eles, Calculs. Ecole Polytechnique,
2011.
HAL Id: hal-00760775
https://hal-polytechnique.archives-ouvertes.fr/hal-00760775
Submitted on 4 Dec 2012
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.Fondements de l’informatique
Logique, mod`eles, et calculs
Cours INF423
de l’Ecole Polytechnique
Olivier Bournez2Table des mati`eres
1 Introduction 9
1.1 Concepts math´ematiques . . . . . . . . . . . . . . . . . . . . . . 11
1.1.1 Ensembles, Fonctions . . . . . . . . . . . . . . . . . . . . 11
1.1.2 Alphabets, Mots, Langages . . . . . . . . . . . . . . . . . 12
1.1.3 Changement d’alphabet . . . . . . . . . . . . . . . . . . . 13
1.1.4 Graphes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.1.5 Arbres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.2 La m´ethode de diagonalisation . . . . . . . . . . . . . . . . . . . 16
1.3 Notes bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . 18
2 R´ecursivit´e et induction 19
2.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Raisonnement par r´ecurrence sur l’ensemble N . . . . . . . . . . 20
2.3 D´efinitions inductives . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.1 Principe g´en´eral d’une d´efinition inductive . . . . . . . . . 21
2.3.2 Formalisation : Premier th´eor`eme du point fixe . . . . . . 21
2.3.3 Diff´erentes notations d’une d´efinition inductive . . . . . . 22
2.4 Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.4.1 Quelques exemples . . . . . . . . . . . . . . . . . . . . . . 23
2.4.2 Arbres binaires ´etiquet´es . . . . . . . . . . . . . . . . . . . 23
2.4.3 Termes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.5 Preuves par induction . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6 D´erivations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.6.1 Ecriture explicite des ´el´ements : Second th´eor`eme du point ´
fixe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.6.2 Arbres de d´erivation . . . . . . . . . . . . . . . . . . . . . 27
2.7 Fonctions d´efinies inductivement . . . . . . . . . . . . . . . . . . 28
2.8 Notes bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . 29
3 Calcul propositionnel 31
3.1 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 S´emantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.3 Tautologies, formules ´equivalentes . . . . . . . . . . . . . . . . . . 33
3.4 Quelques faits ´el´ementaires . . . . . . . . . . . . . . . . . . . . . 34
34 TABLE DES MATIERES `
3.5 Remplacements d’une formule par une autre ´equivalente . . . . . 35
3.5.1 Une remarque simple . . . . . . . . . . . . . . . . . . . . . 35
3.5.2 Substitutions . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5.3 Compositionnalit´e de l’´equivalence . . . . . . . . . . . . . 36
3.6 Syst`eme complet de connecteurs . . . . . . . . . . . . . . . . . . 36
3.7 Compl´etude fonctionnelle . . . . . . . . . . . . . . . . . . . . . . 37
3.8 Formes normales . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.9 Th´eor`eme de compacit´e . . . . . . . . . . . . . . . . . . . . . . . 39
3.9.1 Satisfaction d’un ensemble de formules . . . . . . . . . . . 39
3.10 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.11 Notes bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . 41
4 D´emonstrations 43
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
4.2 D´emonstrations `a la Frege et Hilbert . . . . . . . . . . . . . . . . 44
4.3 D´emonstrations par r´esolution . . . . . . . . . . . . . . . . . . . . 46
4.4 D´emonstrations par la m´ethode des tableaux . . . . . . . . . . . 47
4.4.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.4.2 Description de la m´ethode . . . . . . . . . . . . . . . . . . 50
4.4.3 Terminaison de la m´ethode . . . . . . . . . . . . . . . . . 51
4.4.4 Validit´e et compl´etude . . . . . . . . . . . . . . . . . . . . 52
4.4.5 Compl´etude . . . . . . . . . . . . . . . . . . . . . . . . . . 53
4.4.6 Une cons´equence du th´eor`eme de compacit´e . . . . . . . . 54
4.5 Notes bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . 54
5 Calcul des pr´edicats 55
5.1 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
5.1.1 Termes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.1.2 Formules atomiques . . . . . . . . . . . . . . . . . . . . . 57
5.1.3 Formules . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2 Premi`eres propri´et´es et d´efinitions . . . . . . . . . . . . . . . . . 58
5.2.1 D´ecomposition / Lecture unique . . . . . . . . . . . . . . 58
5.2.2 Variables libres, variables li´ees . . . . . . . . . . . . . . . 59
5.3 S´emantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
5.3.1 Interpr´etation des termes . . . . . . . . . . . . . . . . . . 61
5.3.2 Interpr´etations des formules atomiques . . . . . . . . . . . 61
5.3.3 Interpr´etation des formules . . . . . . . . . . . . . . . . . 62
5.4 Equivalence. Formes normales . . . . . . . . . . . . . . . . . . . . 63 ´
5.4.1 Formules ´equivalentes . . . . . . . . . . . . . . . . . . . . 63
5.4.2 Forme normale pr´enexe . . . . . . . . . . . . . . . . . . . 64
5.5 Notes bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . 65TABLE DES MATIERES ` 5
6 Mod`eles. Compl´etude. 67
6.1 Exemples de th´eories . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.1.1 Graphe . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
6.1.2 Egalit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 ´
6.1.3 Petite parenth`ese . . . . . . . . . . . . . . . . . . . . . . . 68
6.1.4 Groupes . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
6.1.5 Corps . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
6.1.6 Arithm´etique de Robinson . . . . . . . . . . . . . . . . . . 71
6.1.7 Arithm´etique de Peano . . . . . . . . . . . . . . . . . . . 71
6.2 Compl´etude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.2.1 Cons´equence . . . . . . . . . . . . . . . . . . . . . . . . . 72
6.2.2 D´emonstration . . . . . . . . . . . . . . . . . . . . . . . . 72
6.2.3 Enonc´e du th´eor`eme de compl´etude . . . . . . . . . . . . 72 ´
6.2.4 Signification de ce th´eor`eme . . . . . . . . . . . . . . . . . 73
6.2.5 Autre formulation du th´eor`eme . . . . . . . . . . . . . . . 73
6.3 Preuve du th´eor`eme de compl´etude . . . . . . . . . . . . . . . . . 73
6.3.1 Un syst`eme de d´eduction . . . . . . . . . . . . . . . . . . 73
6.3.2 Th´eor`eme de finitude . . . . . . . . . . . . . . . . . . . . 74
6.3.3 Deux r´esultats techniques . . . . . . . . . . . . . . . . . . 75
6.3.4 Validit´e du syst`eme de d´eduction . . . . . . . . . . . . . . 76
6.3.5 Compl´etude du syst`eme de d´eduction . . . . . . . . . . . 76
6.4 Compacit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
6.5 Notes bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . 79
7 Mod`eles de calculs 81
7.1 Machines de Turing . . . . . . . . . . . . . . . . . . . . . . . . . 82
7.1.1 Ingr´edients . . . . . . . . . . . . . . . . . . . . . . . . . . 82
7.1.2 Description . . . . . . . . . . . . . . . . . . . . . . . . . . 83
7.1.3 Programmer avec des machines de Turing . . . . . . . . . 87
7.1.4 Techniques de programmation . . . . . . . . . . . . . . . . 90
7.1.5 Applications . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.1.6 Variantes de la notion de machine de Turing . . . . . . . 93
7.1.7 Localit´e de la notion de calcul . . . . . . . . . . . . . . . . 97
7.2 Machines RAM . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
7.2.1 Mod`ele des machines RAM . . . . . . . . . . . . . . . . . 99
7.2.2 Simulation d’une machine RISC par une machine de Turing100
7.2.3 Simulation d’une machine RAM par une machine de Turing102
7.3 Mod`eles rudimentaires . . . . . . . . . . . . . . . . . . . . . . . . 102
7.3.1 Machines `a k ≥ 2 piles . . . . . . . . . . . . . . . . . . . . 102
7.3.2 Machines `a compteurs . . . . . . . . . . . . . . . . . . . . 103
7.4 Th`ese de Church-Turing . . . . . . . . . . . . . . . . . . . . . . . 105
7.4.1 Equivalence de tous les mod`eles consid´er´es . . . . . . . . 105 ´
7.4.2 Th`ese de Church-Turing . . . . . . . . . . . . . . . . . . . 105
7.5 Notes bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . 1056 TABLE DES MATIERES `
8 Calculabilit´e 107
8.1 Machines universelles . . . . . . . . . . . . . . . . . . . . . . . . . 107
8.1.1 Interpr´eteurs . . . . . . . . . . . . . . . . . . . . . . . . . 107
8.1.2 Codage d’une machine de Turing . . . . . . . . . . . . . . 108
8.1.3 Existence d’une machine de Turing universelle . . . . . . 109
8.1.4 Premi`eres cons´equences . . . . . . . . . . . . . . . . . . . 110
8.2 Langages et probl`emes d´ecidables . . . . . . . . . . . . . . . . . . 111
8.2.1 Probl`emes de d´ecision . . . . . . . . . . . . . . . . . . . . 111
8.2.2 Probl`emes versus Langages . . . . . . . . . . . . . . . . . 112
8.2.3 Langages d´ecidables . . . . . . . . . . . . . . . . . . . . . 112
8.3 Ind´ecidabilit´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.3.1 Premi`eres consid´erations . . . . . . . . . . . . . . . . . . . 113
8.3.2 Est-ce grave ? . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.3.3 Un premier probl`eme ind´ecidable . . . . . . . . . . . . . . 114
8.3.4 Probl`emes semi-d´ecidables . . . . . . . . . . . . . . . . . . 115
8.3.5 Un probl`eme qui n’est pas semi-d´ecidable . . . . . . . . . 115
8.3.6 Sur la terminologie utilis´ee . . . . . . . . . . . . . . . . . 117
8.3.7 Propri´et´es de clˆoture . . . . . . . . . . . . . . . . . . . . . 118
8.4 Autres probl`emes ind´ecidables . . . . . . . . . . . . . . . . . . . . 118
8.4.1 R´eductions . . . . . . . . . . . . . . . . . . . . . . . . . . 119
8.4.2 Quelques autres probl`emes ind´ecidables . . . . . . . . . . 120
8.4.3 Th´eor`eme de Rice . . . . . . . . . . . . . . . . . . . . . . 121
8.4.4 Le drame de la v´erification . . . . . . . . . . . . . . . . . 123
8.4.5 Notion de compl´etude . . . . . . . . . . . . . . . . . . . . 123
8.5 Probl`emes ind´ecidables naturels . . . . . . . . . . . . . . . . . . . 124
8.5.1 Le dixi`eme probl`eme de Hilbert . . . . . . . . . . . . . . . 124
8.5.2 Le probl`eme de la correspondance de Post . . . . . . . . . 124
8.6 Th´eor`emes du point fixe . . . . . . . . . . . . . . . . . . . . . . . 124
8.7 Notes bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . 126
9 Incompl´etude de l’arithm´etique 129
9.1 Th´eorie de l’arithm´etique . . . . . . . . . . . . . . . . . . . . . . 129
9.1.1 Axiomes de Peano . . . . . . . . . . . . . . . . . . . . . . 129
9.1.2 Quelques concepts de l’arithm´etique . . . . . . . . . . . . 130
9.1.3 La possibilit´e de parler des bits d’un entier . . . . . . . . 130
9.1.4 Principe de la preuve de G¨odel . . . . . . . . . . . . . . . 131
9.2 Th´eor`eme d’incompl´etude . . . . . . . . . . . . . . . . . . . . . . 131
9.2.1 Principe de la preuve de Turing . . . . . . . . . . . . . . . 131
9.2.2 Le point facile . . . . . . . . . . . . . . . . . . . . . . . . 132
9.2.3 Lemme crucial . . . . . . . . . . . . . . . . . . . . . . . . 132
9.2.4 Construction de la formule . . . . . . . . . . . . . . . . . 133
9.3 La preuve de G¨odel . . . . . . . . . . . . . . . . . . . . . . . . . . 135
9.3.1 Lemme de point fixe . . . . . . . . . . . . . . . . . . . . . 135
9.3.2 Arguments de G¨odel . . . . . . . . . . . . . . . . . . . . . 136
9.3.3 Second th´eor`eme d’incompl´etude de G¨odel . . . . . . . . . 137
9.4 Notes bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . 137TABLE DES MATIERES ` 7
10 Bases de l’analyse de complexit´e d’algorithmes 139
10.1 Complexit´e d’un algorithme . . . . . . . . . . . . . . . . . . . . . 140
10.1.1 Premi`eres consid´erations . . . . . . . . . . . . . . . . . . . 140
10.1.2 Complexit´e d’un algorithme au pire cas . . . . . . . . . . 140
10.1.3 Complexit´e moyenne d’un algorithme . . . . . . . . . . . 141
10.2 Complexit´e d’un probl`eme . . . . . . . . . . . . . . . . . . . . . . 142
10.3 Exemple : Calcul du maximum . . . . . . . . . . . . . . . . . . . 142
10.3.1 Complexit´e d’un premier algorithme . . . . . . . . . . . . 142
10.3.2 Complexit´e d’un second algorithme . . . . . . . . . . . . . 143
10.3.3 Complexit´e du probl`eme . . . . . . . . . . . . . . . . . . . 143
10.3.4 Complexit´e de l’algorithme en moyenne . . . . . . . . . . 144
10.4 Asymptotiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
10.4.1 Complexit´es asymptotiques . . . . . . . . . . . . . . . . . 145
10.4.2 Notations de Landau . . . . . . . . . . . . . . . . . . . . . 145
10.5 Notes bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . 146
11 Complexit´e en temps 147
11.1 La notion de temps raisonnable . . . . . . . . . . . . . . . . . . . 148
11.1.1 Convention . . . . . . . . . . . . . . . . . . . . . . . . . . 148
11.1.2 Premi`ere raison : s’affranchir du codage . . . . . . . . . . 148
11.1.3 Deuxi`eme raison : s’affranchir du mod`ele de calcul . . . . 149
11.1.4 Classe P . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
11.2 Comparer les probl`emes . . . . . . . . . . . . . . . . . . . . . . . 151
11.2.1 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . 151
11.2.2 Remarques . . . . . . . . . . . . . . . . . . . . . . . . . . 151
11.2.3 Notion de r´eduction . . . . . . . . . . . . . . . . . . . . . 152
11.2.4 Application `a la comparaison de difficult´e . . . . . . . . . 153
11.2.5 Probl`emes les plus durs . . . . . . . . . . . . . . . . . . . 154
11.3 La classe NP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
11.3.1 La notion de v´erificateur . . . . . . . . . . . . . . . . . . . 154
11.3.2 La question P = NP ? . . . . . . . . . . . . . . . . . . . . 156
11.3.3 Temps non d´eterministe polynomial . . . . . . . . . . . . 156
11.3.4 NP-compl´etude . . . . . . . . . . . . . . . . . . . . . . . . 157
11.3.5 M´ethode pour prouver la NP-compl´etude . . . . . . . . . 158
11.3.6 Preuve du th´eor`eme de Cook-Levin . . . . . . . . . . . . . 158
11.4 Quelques autres r´esultats de la th´eorie de la complexit´e . . . . . 162
11.4.1 D´ecision vs Construction . . . . . . . . . . . . . . . . . . 162
11.4.2 Th´eor`emes de hi´erarchie . . . . . . . . . . . . . . . . . . . 163
11.4.3 EXPTIME and NEXPTIME . . . . . . . . . . . . . . . . 164
11.5 Que signifie la question P = NP ? . . . . . . . . . . . . . . . . . 165
11.6 Notes bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . 1668 TABLE DES MATIERES `
12 Quelques probl`emes NP-complets 167
12.1 Quelques probl`emes NP-complets . . . . . . . . . . . . . . . . . . 167
12.1.1 Autour de SAT . . . . . . . . . . . . . . . . . . . . . . . . 167
12.1.2 Autour de STABLE . . . . . . . . . . . . . . . . . . . . . 169
12.1.3 Autour de CIRCUIT HAMILTONIEN . . . . . . . . . . . 171
12.1.4 Autour de 3-COLORABILITE . . . . . . . . . . . . . . . 174
12.1.5 Autour de SOMME DE SOUS-ENSEMBLE . . . . . . . . 175
12.2 Notes bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . 177
13 Complexit´e en espace m´emoire 179
13.1 Espace polynomial . . . . . . . . . . . . . . . . . . . . . . . . . . 179
13.1.1 Classe PSPACE . . . . . . . . . . . . . . . . . . . . . . . 179
13.1.2 Probl`emes PSPACE-complets . . . . . . . . . . . . . . . 180
13.2 Espace logarithmique . . . . . . . . . . . . . . . . . . . . . . . . . 180
13.3 Quelques r´esultats et d´emonstrations . . . . . . . . . . . . . . . . 181
13.3.1 Pr´eliminaires . . . . . . . . . . . . . . . . . . . . . . . . . 182
13.3.2 Relations triviales . . . . . . . . . . . . . . . . . . . . . . 182
13.3.3 Temps non d´eterministe vs d´eterministe . . . . . . . . . . 183
13.3.4 Temps non d´eterministe vs espace . . . . . . . . . . . . . 183
13.3.5 Espace non d´eterministe vs temps . . . . . . . . . . . . . 184
13.3.6 Espace non d´eterministe vs espace d´eterministe . . . . . . 184
13.3.7 Espace logarithmique non d´eterministe . . . . . . . . . . . 185
13.4 R´esultats de s´eparation . . . . . . . . . . . . . . . . . . . . . . . 186
13.4.1 Th´eor`emes de hi´erarchie . . . . . . . . . . . . . . . . . . . 186
13.4.2 Applications . . . . . . . . . . . . . . . . . . . . . . . . . 187
13.5 Notes bibliographiques . . . . . . . . . . . . . . . . . . . . . . . . 188Chapitre 1
Introduction
Ce cours est un cours sur les fondements de l’informatique : il se focalise sur
trois domaines centraux en informatique : la logique, les mod`eles de calculs et
la complexit´e.
Tous ces domaines sont reli´es par la question suivante : quelles sont les
capacit´es et les limites des ordinateurs ?
Mˆeme un t´el´ephone est maintenant capable de r´esoudre tr`es rapidement
certains probl`emes, comme trier un r´epertoire de plus d’un million d’entr´ees. Par
contre, certains probl`emes s’av`erent beaucoup plus lents et difficiles `a r´esoudre :
par exemple, r´esoudre un probl`eme d’emploi du temps, ou affecter les choix
d’affectations des ´el`eves de l’´ecole polytechnique en fonction de leurs pr´ef´erences
ordonn´ees.
Au cœur de ce cours est la compr´ehension de ce qui fait qu’un probl`eme,
comme le tri, est simple `a r´esoudre informatiquement, alors qu’un probl`eme
comme un probl`eme d’emploi du temps peut prendre des si`ecles `a r´esoudre avec
seulement un millier de donn´ees en entr´ees.
Autrement dit, au cœur de nos interrogations est aussi la question suivante :
qu’est-ce qui rend certains probl`emes difficiles, et d’autres faciles ?
C’est la question centrale de la complexit´e, et de la calculabilit´e.
Pourquoi s’int´eresser `a comprendre les probl`emes difficiles, plutˆot que d’essayer
de r´esoudre des probl`emes tr`es concrets ? Premi`erement, parce que des
probl`emes tr`es simples et concrets, et aux enjeux ´economiques consid´erables,
s’av`erent faire partie des probl`emes difficiles.
Deuxi`emement, parce que comprendre qu’un probl`eme ne peut pas ˆetre r´esolu
facilement est utile parce que cela signifie que le probl`eme doit ˆetre simplifi´e
ou modifi´e pour pouvoir ˆetre r´esolu. Ce cours permet r´eellement de comprendre
les pistes pour ´eviter les probl`emes difficiles `a r´esoudre informatiquement.
Enfin et surtout parce que les probl`emes difficiles ont r´eellement des implications
dans la conception de nombreux syst`emes actuels.
Par exemple, pour la v´erification, l’analyse, et la conception de syst`emes :
lorsqu’on con¸coit un syst`eme, on souhaite en g´en´eral qu’il se comporte au minimum
selon la sp´ecification avec laquelle on l’a con¸cu. On aimerait que le pro-
910 CHAPITRE 1. INTRODUCTION
cessus de v´erification puisse s’automatiser, c’est-`a-dire que l’on puisse garantir
informatiquement qu’un syst`eme donn´e v´erifie une/sa sp´ecification. Surtout,
lorsque le syst`eme en question est d’une complexit´e ´enorme, comme les processeurs
actuels, et qu’un unique ˆetre humain n’est plus capable d’en comprendre
seul tous les composants.
Les r´esultats de ce cours montrent pr´ecis´ement que le processus de v´erification
ne peut pas s’automatiser facilement. Tout l’art de la v´erification de syst`emes,
et donc de la conception de syst`emes, est de tenter d’´eviter ces difficult´es
pour la rendre praticable, ce qui n´ecessite d’avoir compris ces difficult´es.
D’autres domaines sont fortement impact´es par la complexit´e. Un des premiers
qui l’a ´et´e historiquement est la cryptographie : dans la plupart des domaines,
on cherche plutˆot `a privil´egier les probl`emes faciles `a r´esoudre aux probl`emes
difficiles. La cryptographie est originale de ce point de vue, car elle
cherche plutˆot `a comprendre des probl`emes difficiles `a r´esoudre plutˆot que
simples, car un code secret doit ˆetre dur `a casser sans la cl´e secr`ete.
On peut aussi se demander : pourquoi autant de logique dans un cours sur
les fondements de l’informatique ?
Une premi`ere raison est parce que les programmes informatiques et les langages
informatiques sont essentiellement bas´es sur la logique. Les processeurs
sont d’ailleurs essentiellement compos´es de portes logiques. Les programmes sont
essentiellement faits d’instructions logiques, et de tests logiques. Comprendre
cette logique permet de bien comprendre ce que font les programmes informatiques.
Plus fondamentalement, les programmes et les syst`emes informatiques obligent
bien souvent `a d´ecrire tr`es pr´ecis´ement les objets sur lesquels ils travaillent : pour
r´esoudre un probl`eme d’emploi du temps, le syst`eme va obliger `a d´ecrire toutes
les contraintes. Pour faire une requˆete sur une base de donn´ees, le syst`eme va
obliger `a formuler tr`es pr´ecis´ement cette requˆete. Il s’av`ere que la logique math´ematique
est un outil tr`es naturel pour d´ecrire le monde qui nous entoure,
et `a vrai dire, le mod`ele le plus naturel que nous connaissons pour le faire.
Comprendre les concepts de la logique, permet de bien comprendre nombre
de concepts informatiques. Par exemple, pour d´ecrire le syst`eme d’information
d’une entreprise, ou tout syst`eme complexe, le meilleur outil reste bien souvent
la logique math´ematique.
Une troisi`eme raison est historique, et au cœur en fait de la naissance de
l’informatique. Durant la premi`ere moiti´e du si`ecle dernier, des math´ematiciens
comme Kurt G¨odel, Alonzo Church ou Alan Turing ont d´ecouvert que certains
probl`emes ne pouvaient pas se r´esoudre par des dispositifs informatiques ou
automatiques comme les ordinateurs. Par exemple, le probl`eme de d´eterminer
si un ´enonc´e math´ematique est vrai ou non. Cette tˆache, qui est le quotidien du
math´ematicien, ne peut pas ˆetre r´esolue par aucun ordinateur, quelle que soit
sa puissance.
Les cons´equences de ces r´esultats profonds ont permis la naissance d’id´ees
sur des mod`eles d’ordinateurs qui ont men´e `a la conception des ordinateurs
actuels.
Au cœur de ces d´ecouvertes sont des liens tr`es forts qui unissent algorithmes1.1. CONCEPTS MATHEMATIQUES ´ 11
et d´emonstrations : une d´emonstration logique correspond `a un algorithme. A
partir d’hypoth`eses, on d´eduit des nouvelles assertions `a l’aide de r`egles logiques.
R´eciproquement, un programme correspond `a une d´emonstration dans
un certain sens.
C’est ces liens forts entre algorithmes et d´emonstrations qui ont fait naˆıtre
l’informatique et ses concepts et ce bien avant l’existence mˆeme de machines
aussi puissantes que celles que nous connaissons actuellement. Historiquement,
la premi`ere question ´etait : “qu’est-ce qu’une d´emonstration”? Elle est maintenant
devenue : “qu’est-ce qu’un ordinateur”?
Ils ont par ailleurs r´evolutionn´e notre conception des math´ematiques, de
l’informatique, et plus g´en´eralement du monde qui nous entoure.
En math´ematiques, ils ont men´e `a une crise des fondements, avec le retour
sur des questions aussi fondamentales que celle-ci : qu’est-ce qu’un ensemble,
qu’est-ce qu’une d´emonstration ? Que peut-on prouver ?
L’ambition de ce document est plutˆot de se focaliser sur l’informatique. Nous
estimerons que ce document aura atteint son but si `a sa lecture notre lecteur
change au final la r´eponse qu’il aurait pu faire `a priori sur des questions aussi
simples que celle-ci :
– qu’est-ce qu’un ordinateur ?
– qu’est-ce qu’une preuve ?
– qu’est-ce qu’un algorithme ?
– qu’est-ce qu’un bon algorithme ?
Si tel est le cas, sa fa¸con de programmer, ou d’appr´ehender un probl`eme
informatique ne devrait plus ˆetre la mˆeme.
Remerciements L’auteur de ce document souhaite remercier vivement Johanne
Cohen, Bruno Salvy et David Monniaux pour leurs retours sur des versions
pr´eliminaires de ce document.
Tous les commentaires (mˆemes typographiques, orthographiques, etc.) sur
ce document sont les bienvenus et `a adresser `a bournez@lix.polytechnique.fr.
1.1 Concepts math´ematiques
1.1.1 Ensembles, Fonctions
Soit E un ensemble, et e un ´el´ement. On note e ∈ E pour signifier que e est
un ´el´ement de l’ensemble E. Si A et B sont deux ensembles, on note A ⊂ B
pour signifier que tout ´el´ement de A est un ´el´ement de B. On dit dans ce cas que
A est une partie de B. Lorsque E est un ensemble, les parties de E constituent
un ensemble que l’on note P(E). On notera A ∪ B, A ∩ B pour respectivement
l’union et l’intersection des ensembles A et B. Lorsque A est une partie de E,
on notera Ac pour le compl´ementaire de A dans E.
On appelle produit cart´esien de deux ensembles E et F l’ensemble des couples
form´es d’un ´el´ement de E et d’un ´el´ement de F :
E × F = {(x,y)|x ∈ E et y ∈ F}.12 CHAPITRE 1. INTRODUCTION
Pour n ≥ 1 un entier, on note En = E × · · · × E le produit cart´esien de E
par lui mˆeme n fois. En peut aussi se d´efinir1
r´ecursivement par E1 = E, et
En+1 = E × En.
Intuitivement, une application f d’un ensemble E vers un ensemble F est un
objet qui associe `a chaque ´el´ement e d’un ensemble E un unique ´el´ement f(e)
de F. Formellement, une fonction f d’un ensemble E vers un ensemble F est
une partie Γ de E × F. Son domaine est l’ensemble des x ∈ E tel que (x,y) ∈ Γ
pour un certain y ∈ E. Son image est l’ensemble des y ∈ F tel que (x,y) ∈ Γ
pour un certain x ∈ E. Une application f d’un ensemble E vers un ensemble F
est une fonction dont le domaine est E.
Une famille (xi)i∈I d’´el´ements d’un ensemble X est une application d’un
ensemble I dans X. I est appel´e l’ensemble des indices, et l’image par cette
application de l’´el´ement i ∈ I est not´ee xi
.
Le produit cart´esien se g´en´eralise `a une famille d’ensembles :
E1 × · · · × En = {(x1,. .. ,xn)|x1 ∈ E1, · · · ,xn ∈ En}.
L’union et l’intersection se g´en´eralisent `a une famille quelconque de parties
d’un ensemble E. Soit (Ai)i∈I une famille de parties de E.
[
i∈I
Ai = {e ∈ E|∃i ∈ I e ∈ Ai};
\
i∈I
Ai = {e ∈ E|∀i ∈ I e ∈ Ai}.
On notera N l’ensemble des entiers naturels, R l’ensemble des r´eels, et C
l’ensemble des complexes. Z est un anneau. R et C sont des corps. On notera
R
≥0
l’ensemble des r´eels positifs ou nuls.
1.1.2 Alphabets, Mots, Langages
Nous rappelons maintenant quelques d´efinitions ´el´ementaires sur les mots
et les langages. La terminologie, emprunt´ee `a la linguistique, rappelle que les
premiers travaux sont issus de la mod´elisation de la langue naturelle.
On fixe un ensemble Σ que l’on appelle alphabet. Les ´el´ements de Σ sont
appel´es des lettres ou des symboles. Un mot w sur l’alphabet Σ est une suite
finie w1w2 · · · wn de lettres de Σ. L’entier n est appel´e la longueur du mot w. Il
est not´e |w|.
Le mot vide ǫ est le seul mot de longueur 0. Un langage sur Σ est un ensemble
de mots sur Σ. L’ensemble de tous les mots sur l’alphabet Σ est not´e Σ∗
.
Exemple 1.1 {0, 1}
∗ d´esigne l’ensemble des mots sur l’alphabet Σ = {0, 1}.
Par exemple, 00001101 ∈ {0, 1}
∗
.
1
Il y a une bijection entre les objets d´efinis par les deux d´efinitions.1.1. CONCEPTS MATHEMATIQUES ´ 13
On d´efinit une op´eration de concat´enation sur les mots : la concat´enation
du mot u = u1u2 · · · un et du mot v = v1v2 · · · vm est le mot not´e u.v d´efini
par u1u2 · · · unv1v2 · · · vm, c’est-`a-dire le mot dont les lettres sont obtenues en
juxtaposant les lettres de v `a la fin de celles de u. L’op´eration de concat´enation
not´ee . est associative, mais non-commutative. Le mot vide est un ´el´ement neutre
`a droite et `a gauche de cette op´eration. On appelle aussi Σ∗
le mono¨ıde (libre)
sur l’alphabet Σ (car l’op´eration de concat´enation lui donne une structure de
mono¨ıde).
On note aussi uv pour la concat´enation u.v. En fait, tout mot w1w2 · · · wn
peut se voir comme w1.w2 · · · .wn, o`u wi repr´esente le mot de longueur 1 r´eduit
`a la lettre wi
. Cette confusion entre les lettres et les mots de longueur 1 est
souvent tr`es pratique.
Exemple 1.2 Par exemple, si Σ est l’ensemble Σ = {a,b}, aaab est le mot de
longueur 4 dont les trois premi`eres lettres sont a, et la derni`ere est b.
Lorsque i est un entier, on ´ecrit w
i pour le mot obtenu en concat´enant i fois
le mot w : w
0
est le mot vide ǫ, w
1
est le mot w, et w
i+1 est w.w. · · · ,w o`u il y
a i fois le mot w. Autrement dit, w
i+1 = w
iw = wwi pour tout entier i.
Exemple 1.3 En utilisant la confusion pr´ec´edente entre lettres et mots de longueur
1, aaabbc peut aussi s’´ecrire a
3
b
2
c.
Un mot u est un pr´efixe d’un mot w, s’il existe un mot z tel que w = u.z.
C’est un pr´efixe propre si u 6= w. Un mot u est un suffixe d’un mot w s’il existe
un mot z tel que w = z.u.
1.1.3 Changement d’alphabet
Il est souvent utile de pouvoir r´e´ecrire un mot sur un alphabet en un mot sur
un autre alphabet. Par exemple, on a souvent besoin en informatique de coder
en binaire, c’est-`a-dire avec l’alphabet Σ = {0, 1}.
Une fa¸con de faire pour changer d’alphabet est de proc`eder par r´e´ecriture
lettre par lettre.
Exemple 1.4 Par exemple, si Σ est l’alphabet Σ = {a,b, c}, et Γ = {0, 1}, on
peut coder les mots de Σ
∗
sur Γ
∗ par la fonction h telle que h(a) = 01, h(b) = 10,
h(c) = 11. Le mot abab se code alors par h(abab) = 01100110, c’est-`a-dire par
le mot obtenu en codant lettre par lettre.
Tr`es formellement, ´etant donn´es deux alphabets Σ et Γ, un homomorphisme
est une application de Σ∗ dans Γ∗
telle que
– h(ǫ) = ǫ
– h(u.v) = h(u).h(v) pour tous mots u et v.
En fait, tout homomorphisme est parfaitement d´etermin´e par son image sur
les lettres de Σ. Il s’´etend alors aux mots de Σ∗ par
h(w1w2 · · · wn) = h(w1).h(w2).. .. .h(wn)14 CHAPITRE 1. INTRODUCTION
pour tout mot w = w1w2 · · · wn : c’est en fait une cons´equence du th´eor`eme 2.5
du chapitre 2.
1.1.4 Graphes
Un graphe G = (V,E) est donn´e par un ensemble V , dont les ´el´ements sont
appel´es sommets, ou nœuds, et d’une partie de E ⊂ V × V , dont les ´el´ements
sont appel´es des arcs. Un chemin de s `a t est une suite (s = s0,. .. ,sn = t) de
nœuds tels que, pour 1 ≤ i ≤ n, (si−1,si) soit un arc. Un chemin simple est
un chemin qui ne passe pas deux fois par le mˆeme sommet. Un circuit est un
chemin de longueur non nulle dont l’origine co¨ıncide avec l’extr´emit´e.
Si les arcs ne sont pas orient´es, c’est-`a-dire, si l’on consid`ere qu’`a chaque fois
qu’il y a l’arc (u, v) il y a aussi l’arc (v,u) (et r´eciproquement), on dit que le
graphe G est non orient´e, et les ´el´ements de E sont appel´es des arˆetes. Lorsqu’il
y a une arˆete entre u et v, c’est-`a-dire lorsque (u, v) ∈ E, on dit que u et v sont
voisins. Le degr´e d’un sommet u est le nombre de ses voisins.
Exemple 1.5 Le graphe (non-orient´e) G = (V,E) avec
– V = {0, 1,. .. , 6}
– E = {(0, 1),(3, 4),(5, 1),(6, 3),(6, 4)}.
est repr´esent´e ci-dessous.
0
1
2
3
4
5
6
Un graphe est dit connexe si deux quelconques de ses nœuds sont reli´es par
un chemin.
Exemple 1.6 Le graphe de l’exemple 1.5 n’est pas connexe.
1.1.5 Arbres
Les arbres sont omnipr´esents en informatique. En fait, plusieurs notions distinctes
se cachent sous cette terminologie : arbres libres, arbres enracin´es, arbres
ordonn´es, etc.
Il y a par ailleurs plusieurs fa¸cons de pr´esenter les arbres, et ces diff´erentes
notions. Essentiellement, on peut le faire en partant de la th´eorie des graphes,
c’est-`a-dire de la notion de graphe, ou alors en partant de d´efinitions inductives
(r´ecursives).
Puisque nous reviendrons sur les d´efinitions inductives de plusieurs de ces
classes d’arbres dans le chapitre 2, pr´esentons ici les arbres en partant de la
notion de graphe.1.1. CONCEPTS MATHEMATIQUES ´ 15
On va pr´esenter dans ce qui suit des familles d’arbres de plus en plus contraints :
dans l’ordre, on va pr´esenter les arbres libres, puis les arbres enracin´es, les arbres
ordonn´es.
Arbres libres
Un arbre libre est un graphe non-orient´e connexe et sans circuit. On appelle
feuille un nœud de l’arbre qui ne poss`ede qu’un seul voisin. Un sommet qui n’est
pas une feuille est appel´e un sommet interne.
Exemple 1.7 (Un arbre libre) Repr´esentation graphique d’un arbre libre, dont
les feuilles sont les nœuds 5, 0 et 6.
0
1
2
3
4
5
6
Presque tous nos arbres seront ´etiquet´es : soit A un ensemble dont les ´el´ements
sont appel´es des ´etiquettes. Un arbre ´etiquet´e par A est la donn´ee d’un
arbre G = (V,E) et d’une application qui associe `a chaque sommet de V un
´el´ement de A.
Arbre enracin´e
Un arbre enracin´e ou arbre est un arbre libre muni d’un sommet distingu´e,
appel´e sa racine. Soit T un arbre de racine r.
Exemple 1.8 (Un arbre) Repr´esentation graphique d’un arbre, dont les feuilles
sont les nœuds 5, 0, 4 et 2. On repr´esente la racine 3 en haut.
3
1
5 0
4 6
2
Pour tout sommet x, il existe un chemin simple unique de r `a x. Tout sommet
y sur ce chemin est un ancˆetre de x, et x est un descendant de y. Le sous-arbre de
racine x est l’arbre contenant tous les descendants de x. L’avant-dernier sommet
y sur l’unique chemin reliant r `a x est le parent (ou le p`ere ou la m`ere) de x, et
x est un enfant (ou un fils ou une fille) de y.16 CHAPITRE 1. INTRODUCTION
L’arit´e d’un sommet est le nombre de ses enfants. Un sommet sans enfant est
une feuille, un sommet d’arit´e strictement positive est appel´e sommet interne.
La hauteur d’un arbre T est la longueur maximale d’un chemin reliant sa racine
`a une feuille. Un arbre r´eduit `a un seul nœud est de hauteur 0.
Arbres ordonn´es
Un arbre ordonn´e (on dit aussi arbre plan) est un arbre dans lequel l’ensemble
des enfants de chaque nœud est totalement ordonn´e. Autrement dit, pour chaque
sommet interne d’arit´e k, on la notion de 1ier fils, 2i`eme fils, . . ., k`eme fils.
Par exemple, un livre structur´e en chapitres, sections, etc se pr´esente comme
un arbre ordonn´e.
Exemple 1.9 (Arbre ordonn´e de la table des mati`eres d’un livre)
1
1.1 1.2
2 3
3.1
3.1.1 3.1.2
3.2
Autres notions d’arbre
Le concept d’arbre binaire est assez diff´erent des d´efinitions d’arbre libre,
arbre enracin´e et arbre ordonn´e. Il est pr´esent´e dans la section 2.4.2 du chapitre
2.
Les termes sont des arbres ordonn´es ´etiquet´es particuliers. Ils sont pr´esent´es
dans la section 2.4.3 du chapitre 2.
1.2 La m´ethode de diagonalisation
Rappelons que N
2 = N × N est d´enombrable : il est possible de mettre en
correspondance N avec N
2
. Nous allons illustrer graphiquement une fa¸con de
parcourir les couples d’entiers.1.2. LA METHODE DE DIAGONALISATION ´ 17
(0, 0)
(0, 1)
(0, 2)
(0, 3)
(1, 0)
(1, 1)
(1, 2)
(1, 3)
(2, 0)
(2, 1)
(2, 2)
(2, 3)
(3, 0)
(3, 1)
(3, 2)
(3, 3)
(4, 0) (5, 0)
(0, 4)
(0, 5)
(1, 4)
(4, 1)
. . .
. . .
. . .
. . .
. . .
. . .
Par contre, les parties de N ne sont pas d´enombrables : cela peut se voir par
la m´ethode de diagonalisation dˆue `a Cantor.
Illustrons-le graphiquement. Supposons que l’on puisse ´enum´erer les parties
de N, et notons les T1, T2, . . .Tn . . .Chaque partie Ti de N peut se voir comme
la ligne i du tableau M = (Mi,j )i,j `a entr´ees dans {0, 1} dont l’´el´ement Mi,j est
1 si et seulement si l’´el´ement j est dans la i`eme partie de N.
0 1 . . . . . . j . . .
T0
T1
.
.
.
Ti
.
.
.
Mi,j
On consid`ere alors la partie T
∗ obtenue en “inversant la diagonale de M” :
formellement, on consid`ere T
∗ = {j|Mj,j = 0}. Cette partie de N n’est pas dans
l’´enum´eration, car sinon elle devrait avoir un num´ero j0 : si j0 ∈ T
∗
, alors on
devrait avoir Mj0,j0 = 1 par d´efinition de M, et Mj0,j0 = 0 par d´efinition de
T
∗
: impossible. Si j0 6∈ T
∗
, alors on devrait avoir Mj0,j0 = 0 par d´efinition de
M, et Mj0,j0 = 1 par d´efinition de T
∗
: impossible.18 CHAPITRE 1. INTRODUCTION
Cet argument est `a la base de certains raisonnements en calculabilit´e, comme
nous le verrons.
1.3 Notes bibliographiques
Lectures conseill´ees Pour aller plus loin sur les notions ´evoqu´ees dans ce
chapitre, nous sugg´erons la lecture de [Arnold and Guessarian, 2005] ou du polycopi´e
du cours INF421, ou des polycopi´es des cours de l’´ecole polytechnique
de premi`ere ann´ee et des cours de classes pr´eparatoires.
Bibliographie La partie sur les arbres est essentiellement reprise du polycopi´e
de INF421. Le reste du chapitre est inspir´e de diff´erentes sources dont le
polycopi´e de INF561, [Hopcroft et al., 2001] et [Arnold and Guessarian, 2005].
L’introduction est essentiellement reprise de [Sipser, 1997].Chapitre 2
R´ecursivit´e et induction
2.1 Motivation
Les d´efinitions r´ecursives sont omnipr´esentes en informatique. Elles sont pr´esentes
`a la fois dans les langages de programmation, mais aussi pr´esentes dans
de nombreux concepts que l’on manipule.
Exemple 2.1 (Listes en JAVA) Par exemple, en JAVA, lorsqu’on d´efinit
class L i s t e {
in t c on ten u ;
L i s t e s u i v a n t ;
}}
L i s t e l s t ;
on d´efinit la classe Liste de fa¸con r´ecursive (inductive) : en utilisant dans la
d´efinition de la classe, le champ “suivant” du type de la classe Liste elle mˆeme.
Exemple 2.2 (Arbres ordonn´es) Nous avons d´efini les arbres ordonn´es dans
le chapitre pr´ec´edent en passant par la notion de graphe. Une alternative naturelle
serait de pr´esenter les arbres ordonn´es par une d´efinition r´ecursive : un
arbre ordonn´e est soit vide, soit r´eduit `a un sommet (une racine), soit constitu´e
d’un sommet (une racine) et une liste (ordonn´ee) d’arbres ordonn´es (ses fils).
Dans ce chapitre, nous nous attardons sur les d´efinitions inductives d’ensembles
et de fonctions, qui permettent de donner un sens `a des d´efinitions
r´ecursives.
Nous discutons, par ailleurs comment il est possible de faire des preuves sur
des structures d´efinies inductivement, en introduisant les preuves par induction
structurelle.
1920 CHAPITRE 2. RECURSIVIT ´ E ET INDUCTION ´
2.2 Raisonnement par r´ecurrence sur l’ensemble
N
L’induction structurelle est une g´en´eralisation de la preuve par r´ecurrence :
revenons sur cette derni`ere pour avoir les id´ees au clair.
Lorsque l’on raisonne sur les entiers, le premier principe d’induction aussi
appel´e principe de r´ecurrence math´ematique est un mode de raisonnement particuli`erement
utile.
Th´eor`eme 2.1 Soit P(n) un pr´edicat (une propri´et´e) d´ependant de l’entier n.
Si les deux conditions suivantes sont v´erifi´ees :
(B) P(0) est vrai ;
(I) P(n) implique P(n + 1) pour tout n ;
alors pour tout entier n, P(n) est vrai.
D´emonstration: Le raisonnement se fait par l’absurde. Consid´erons X =
{k ∈ N|P(k) est faux}. Si X est non vide, il admet un plus petit ´el´ement n.
D’apr`es la condition (B), n 6= 0, et donc n−1 est un entier, et P(n−1) est vrai
par d´efinition de X. On obtient une contradiction avec la propri´et´e (I) appliqu´ee
pour l’entier n − 1.
Pour faire une preuve par r´ecurrence, on ´etablit donc une propri´et´e en 0
(cas de base), et on ´etablit que la propri´et´e est h´er´editaire, ou inductive : P(n)
implique P(n + 1) pour tout n.
Le concept de preuve inductive g´en´eralise cette id´ee `a d’autres ensembles
que les entiers, `a savoir aux ensembles qui se d´efinissent inductivement.
2.3 D´efinitions inductives
Les d´efinitions inductives visent `a d´efinir des parties d’un ensemble E.
Remarque 2.1 Cette remarque, pour les puristes, peut ˆetre ´evit´ee dans une
premi`ere lecture.
Nous nous restreignons dans ce document au cadre o`u l’on souhaite d´efinir
par induction des objets qui correspondent `a des parties d’un ensemble d´ej`a
connu E. Nous faisons cela pour ´eviter les subtilit´es et paradoxes de la th´eorie
des ensembles.
Le lecteur tr`es attentif pourra observer que l’on consid´erera dans la suite
tr`es souvent l’´ecriture syntaxique des objets plutˆot que les objets eux-mˆemes.
En effet, en faisant ainsi, on garantit que l’on se place sur l’ensemble E = Σ∗
pour un certain alphabet Σ, et on ´evite de se poser la question de l’existence de
l’ensemble E sous-jacent dans les raisonnements qui suivent.
Par exemple, pour formaliser compl`etement l’exemple 2.1 plus haut, on chercherait
plutˆot `a d´efinir une repr´esentation syntaxique des listes plutˆot que les
listes.
@Ξ
Département Informatique de l’IUT de l’Université Bordeaux 1
Cours d’Analyse et Conception des Systèmes d’Information
(d’Outils et Modèles pour le Génie Logiciel)
7 novembre 2007 Olivier GuibertAlgorithmique Programmation
Architecture Systèmes Réseaux
ACSI Bases de Données
Mathématiques
Économie et Gestion des Organisations
Langues (Anglais) Expression-Communication
… et Projet Personnel et Professionnel, Projets Tutorés, Stage
Programme Pédagogique National
OMGLPlan
• Bibliographie
• Définitions
• Intervenants
• Cycles de vie du logiciel
• Taxinomie des méthodes d’informatisation
• Démarche
• Modèles
• Méthodes et langages de modélisation
+ Gestion de Projet, Qualité, Interface HommeMachine,
etc.BibliographieBibliographie : génie logiciel
• ACSIOME, Modélisation dans la conception des systèmes
d'information, Masson, 1989
• GALACSI, Les systèmes d'information : analyse et conception,
Dunod, 1984
• GALACSI, Comprendre les systèmes d'information : exercices
corrigés d'analyse et de conception, Dunod, 1985
• I. SOMMERVILLE, Le génie logiciel et ses applications, InterÉditions, 1985
• C. TESSIER, La pratique des méthodes en informatique de gestion,
Les Editions d'Organisation, 1995
• P. ANDRÉ et A. VAILLY, Conception des systèmes d’information –
Panorama des méthodes et des techniques, Ellipses, collection
TECHNOSUP / Génie Logiciel, 2001
• P. ANDRÉ et A. VAILLY, Spécification des logiciels – Deux
exemples de pratiques récentes : Z et UML, Ellipses, collection
TECHNOSUP / Génie Logiciel, 2001
ACSIOME = Analyse et Conception des Systèmes d’Information : Outils, Modèles, Études
= M.C. HEYDEMANN, V. PRINCE, C. REYNAUD, F. SCHLIENGER et D. SCHLIENGER
GALACSI = Groupe d’Animation et de Liaison pour l’Analyse et Conception des Systèmes d’Information
= H. BRIAND, J.-B. CRAMPES, C. DUCATEAU, Y. HEBRAIL, D. HERIN-AIME, J. KOULOUMDJIAN
et R. SABATIERBibliographie : systémique
• J-L. LE MOIGNE, Les systèmes d'information dans les
organisations, Presses Universitaires de France, 1973
• J-L. LE MOIGNE, Les systèmes de décision dans les organisations,
Presses Universitaires de France, 1974
• J-L. LE MOIGNE, La théorie du système général - Théorie de la
modélisation, Presses Universitaires de France, 1977
• J. MÉLÈSE, Analyse modulaire des systèmes, Éditions Hommes et
Techniques, 1977
• J. MÉLÈSE, Approche systémique des organisations, Éditions
Hommes et Techniques, 1979Bibliographie : bases de données
• M. ADIBA et C. DELOBEL, Bases de données et systèmes
relationnels, Dunod, 1983
• G. GARDARIN, Bases de données : les systèmes et leurs langages,
Eyrolles, 1983Bibliographie : MERISE
• CGI (Compagnie Générale d'Informatique), MERISE ou
l'informatique avec méthode, Nathan, 1986
• H. TARDIEU, A. ROCHFELD et R. COLLETTI, La méthode
MERISE, tome 1 : principes et outils, Les Éditions d'Organisation,
1983
• H. TARDIEU, A. ROCHFELD, R. COLLETTI, G. PANET et G.
VAHEE, La méthode MERISE, tome 2 : démarches et pratiques, Les Éditions d'Organisation, 1985
• A. ROCHFELD et J. MOREJON, La méthode MERISE, tome 3 :
gamme opératoire, Les Éditions d'Organisation, 1989
• G. PANET et R. LETOUCHE, MERISE/2, modèles et techniques
MERISE avancés, Les Éditions d'Organisation, 1994
• D. NANCI et B. ESPINASSE, Ingénierie des Systèmes
d’Informations : MERISE Deuxième génération, Vuibert, 2001Bibliographie : SADT
• D. T. ROSS, Structured Analysis : A language for Communicating
Ideas, IEEE Transactions, Software engineering, vol. SE-3, n°1
• D. T. ROSS et K. E. SCHOMAN, Structured Analysis for
Requirements Definition, IEEE Transactions, Software engineering ,
vol. SE-3, n°1
• IGL Technology, SADT, un langage pour communiquer, Eyrolles,
1989, 1993 (3ème édition)
• M. LISSANDRE, Maîtriser SADT, Colin, 1990
• P. JAULENT, Génie logiciel : les méthodes, Armand Colin, 1990Bibliographie : méthodes objet
• S. SHLAER et S.J. MELLOR, Object-Oriented Systems Analysis:
Modeling the World in Data, Englewood Cliffs, New Jersey: Yourdon
Press, 1988
• S. BAILIN, Remarks on Object-Oriented Requirements Specification,
Laurel, MD: Computer Technology Associates, 1988
• M. BOUZEGHOUB, G. GARDARIN et P. VALDURIEZ, Les Objets :
concepts, langages, bases de données, méthodes, interfaces,
Eyrolles, 1997
• J.-L. CAVARERO et R. LECAT, La conception orientée objet,
évidence ou fatalité, Ellipses, collection TECHNOSUP / Génie
Logiciel, 2000Bibliographie : méthodes objet
(« de MERISE à l’objet »)
• A. ROCHFELD et M. BOUZEGHOUB, From Merise to OOM, Revue
Ingénierie des Systèmes d’Information, vol. 1, n°2, 1993
• J. MOREJON, Merise : vers une modélisation objet, Les Éditions
d'Organisation, 1994
• M. BOUZEGHOUB, G. GARDARIN et P. VALDURIEZ, Du C++ à
Merise objet : Objets, Eyrolles, 1994
• B. ESPINASSE, M. LAI et D. NANCI, Merise+ : Une extension de la
méthode Merise à l’approche objet par un apport de la méthode
HOOD, Revue Ingénierie des Systèmes d’Information, Hermès Éditeur, vol. 3, n°2-3, 1995
• B. ESPINASSE et D. NANCI, Merise et l’approche orientée objet : du
couplage avec OMT à une troisième génération, Revue Ingénierie des Systèmes d’Information, Hermès Éditeur, vol. 5, n°4, 1997
• N. KETTANI, D. MIGNET, P. PARÉ et C. ROSENTHAL-SABROUX,
De Merise à UML, Eyrolles, 1998
• J. GABAY, Merise. Vers OMT et UML, InterÉditions, 1998Bibliographie : méthodes objet
(OOA, Fusion, MCO, MACAO)
• P. COAD et E. YOURDON, Object-oriented analysis, Prentice Hall, 1990
• D. COLEMAN, P. ARNOLD, S. BODOFF, C. DOLLIN, H. GILCHRIST, J.
HAYES et P. JEREMAES, Fusion : la méthode orientée objet de 2ème
génération, Masson, 1992
• X. CASTELLANI, MCO : Méthodologie d’analyse et de conception des
systèmes à objets, Masson, 1993
• J.-B. CRAMPES, Méthode orientée-objet intégrale MACAO - Démarche
participative pour l’analyse, la conception et la réalisation de logiciels,
Ellipses, collection TECHNOSUP / Génie Logiciel, 2003Bibliographie : méthodes objet
(HOOD, OMT, OOSE)
• G. BOOCH, Object Oriented Design with Application, The
Benjamin/Cummings Publishing Company Inc., 1991
• G. BOOCH, Analyse et Conception orientées objets, Addison
Wesley, 1994
• M. LAI, Conception orientée objet, pratique de la méthode HOOD,
Dunod, 1991
• J. RUMBAUGH, M. BLAHA, W. PREMERLANI, F. EDDY et W.
LORENSEN, Object oriented modeling and design, Prentice Hall,
1991
• I. JACOBSON, M. CHRISTERSON, P. JONSON et G. ÖVERGAARD, Object-Oriented Software Engineering: A Use Case
Driven Approach, Addison Wesley, 1992
• I. JACOBSON, Le génie logiciel orienté objet, Addison WesleyBibliographie : UML
• P.-A. MULLER, Modélisation objet avec UML, Eyrolles, 1998
• C. MORLEY, B. LEBLANC et J. HUGUES, UML pour l'analyse d'un
système d'information – Le cahier des charges du maître d'ouvrage,
Dunod, 2000
• C. SOUTOU, Objet-Relationnel sous Oracle8, Modélisation avec
UML, Eyrolles, 1999
• P. ROQUES et F. VALLÉE, UML en action – De l’analyse des
besoins à la conception en Java, Eyrolles, 2000
• M. LAI, Penser objet avec UML et Java, InterÉditions, 1998
• M. LAI, UML : La notation unifiée de modélisation objet – De Java
aux EJB, Dunod, 2000
• G. BOOCH, J. RUMBAUGH et I. JACOBSON, The Unified Modeling
Language User Guide, Addison-Wesley, 1999
• I. JACOBSON, G. BOOCH et J. RUMBAUGH, The Unified Software
Development Process, Addison-Wesley, 1999
• J. RUMBAUGH, I. JACOBSON et G. BOOCH, The Unified Modeling
Language Reference Manual, Addison-Wesley, 1999Bibliographie : B
• M. SPIVEY, La notation Z, Masson - Prentice Hall, 1992
• D. LIGHTFOOT, Spécification formelle avec Z, TEKNEA, 1994
• J.-R. ABRIAL, The B-book: Assigning Programs to Meanings,
Cambridge University Press, 1996
• J.-R. ABRIAL, Introduction à la méthode B, 6 vidéo-cassettes, IUT
de Nantes
• J.-R. ABRIAL, La méthode B - études de cas, 6 vidéo-cassettes, IUT
de Nantes
• H. HABRIAS, Introduction à la spécification, Masson, 1993
• H. HABRIAS, Spécification formelle avec B, Éditions Hermès –
Lavoisier, 2001Bibliographie : interface hommemachine
• J.-B. CRAMPES, Interfaces graphiques ergonomiques - Conception
et Modélisation, Ellipses, collection TECHNOSUP / Génie Logiciel,
1997DéfinitionsDéfinitions : OMGL
• OMGL = Outils et Modèles pour le Génie Logiciel
• Outil : logiciel supportant une méthode
• Modèle : représentation schématique de la réalité
• Logiciel selon l'arrêté du 22 décembre 1981 : ensemble
des programmes, procédés et règles, et éventuellement
de la documentation, relatifs au fonctionnement d'un
ensemble de traitements de l'information
• Génie Logiciel (ou l'ingénierie des systèmes
d'information) selon l'arrêté du 30 décembre 1983 :
ensemble des activités de conception et de mise en
œuvre des produits et des procédures tendant à
rationaliser la production du logiciel et de son suiviDéfinitions : ACSI
• ACSI = Analyse et Conception des Systèmes
d'Information
• Analyse : processus d'examen de l'existant
• Conception : processus de définition de la
future application informatique
• Systèmes d'Information : ensemble des
moyens (humains et matériels) et des méthodes
se rapportant au traitement de l'information
d'une organisationDéfinitions : BD
• BD = Bases de Données
• Bases de Données [définition des
informaticiens] : ensemble des données (de
l'organisation) structurées et liées entre elles :
– stocké sur support à accès direct (disque
magnétique)
– géré par un SGBD (Système de Gestion de Bases de
Données)
– accessible par un ensemble d'applicationsDéfinitions (compléments)
• Informatique : science du traitement
automatique et rationnel de l'information
[académie française, 1966]
• Informatique de Gestion : informatisation des
systèmes d'information
• AGL = Atelier de Génie Logiciel (CASE =
Computer Aided Software Engineering) :
ingénierie du logiciel assisté par ordinateurL’information, indispensable dans
le processus de décision d'une
organisation
• Diminution de l'incertitude
• Liberté de choix
• Cohésion de l'organisation
• Évolutivité par rapport à l'environnementQualités requises pour une
information
• Pertinence (mesure la qualité d’une information) :
relation directe entre l’action à accomplir ou la décision à
prendre
– précision : ni trop importante, ni trop faible
– sécurité (pour reconstituer l’information en cas d’accident)
– intégrité (contraintes statiques ou dynamiques
)
– confidentialité (protection contre tentatives d’accès)
– non redondance (un seul exemplaire de chaque information)
– Convivialité (qualité de représentation sur support externe et
facilité d’accès par les utilisateurs)
– âge (temps entre enregistrement et sortie des résultats
)
– fréquence (nombre de transmissions par unité de temps)
• Cohérence (d’unité, de temps, etc.)
• Rentabilité : coût d’obtention
≤ gain, meilleur serviceTypes d'information
• Niveau d'agrégation
– brutes
– élaborées
• Flux
– logistique
– monétaire
– de personnel
– de l'actif
• Utilisation
– planification stratégique
– gestion administrative
– régulation opérationnelle
• Nature du support
– oral
– documentaire
– informatiqueDéfinitions : systémique
• Analyse systémique : analyse qui envisage les éléments
d'une conformation complexe, les faits (notamment les
faits économiques), non pas isolément mais
globalement, en tant que parties intégrante d'un
ensemble dont les différents composants sont dans une
relation de dépendance réciproque [P.L.I. 2003]
• Neuf niveaux imbriqués de complexité selon cette
théorie : l'objet passif, l'objet actif, l'objet actif régulé,
l'objet s'informe, l'objet décide son activité, l'objet actif a
une mémoire, l'objet actif se coordonne, l'objet actif
imagine (et donc s'auto-organise), l'objet actif
s'auto-finalise
L'organisation correspond au dernier niveauDéfinitions : système
• Système : ensemble d'éléments en interaction
dynamique, dont les éléments sont organisés et
coordonnés en vue d'atteindre un objectif, qui évolue
dans un environnementUn système vu comme une « boîte
noire »Système : de la « boîte noire » à la
« boîte blanche »
Le système se décompose en sous-systèmes dont on
définit les entrées (issues de l'extérieur ou sorties
d'autres sous-systèmes) et les sorties (à destination de
l'extérieur ou devenant les entrées d'autres
sous-systèmes) Système : de la « boîte noire » à la
« boîte blanche »Système : de la « boîte noire » à la
« boîte blanche »
Chaque sous-système est lui-même un système :
affinages successifs jusqu'à l'obtention d'une « boîte
blanche »Principales difficultés de l’approche
d’un système par décomposition
récursive
• identification du système
• identification des limites du système
• identification des sous-systèmes
• risque de perte engendrée par la
décomposition
• etc.Définitions : système organisationnelDéfinitions : système organisationnel
• Système de Décision (ou pilotage, management, etc.)
– Guide l'organisation vers ses objectifs (activités de planification
et de contrôle) : coordonne, imagine, finalise, élabore objectifs
– Gérer
• Système d'Information
– Intermédiaire entre les systèmes de décision et opérationnel, par
qui transite toute information :
• mémorise l’information (conservation de l'information pour des
besoins ultérieurs),
• traite l’information (rapprochements, calculs, comparaisons),
• fait circuler l’information (accès à la mémoire, échange entre
acteurs)
• Système Opérant (ou logistique, technologique,
physique, de production, etc.)
– Effectue la transformation : reçoit, traite, envoi
e
– Acheter ; Produire ; Stocker ; Vendre
Remarque : un même employé peut être un acteur de
chacun des trois sous-systèmesRôles du système d’information
• Produire les informations légales réclamées par
l'environnement
• Déclencher les décisions programmées
• Fournir des informations aux décideurs pour aider à la
prise de décisions non programmées
• Coordonner les tâches en assurant les communications
au sein du système organisationnel Connaissances nécessaires en
Informatique de Gestion
• Science de gestion : mise en place du réseau
d'information et de communication (conception du
système d'information)
• Technique informatique : conception et réalisation du
système informatique pour gérer le système
d'information (conception du logiciel) Définitions : système d’information
vs système informatique
• Le système informatique est la partie informatisée du
système d’information automatisable
système informatique
système d’information automatisable
système d’informationDéfinitions : système informatique
• Communication
– Système informatique communique directement avec
son environnement (utilisateurs, fichiers d’autres
systèmes via un réseau ou non, etc.)
– Communication entre composants d’une application
(ex. : fichier de mouvement)
• Traitement
– Demandes de traitements issues de l’échange entre
le système informatique et son environnement
– Pilotage des traitements proposés par le système
informatique en gérant les appels aux processus
permettant de les réaliser
• Mémorisation
– Gestion des données par différents modes d’accès
(et stockage aux niveaux logique et physique)Enjeux de l’informatisation pour
l'organisation
• Augmenter la productivité en améliorant l’efficacité des
utilisateurs
• Améliorer les conditions de travail : enrichissement des
tâches
• Rendre un meilleur service (de qualité, rapide, etc.) aux
partenaires de l'organisation Facteurs de la complexité de
l'informatisation
• Difficultés techniques de l'informatique : complexité de la
mise en œuvre des matériels, complexité de la
construction logicielle, réflexion abstraite, contraintes
techniques
• Constantes novations (matérielle et logicielle)
• Symbiose requise entre l'application informatique et
toute l'organisation (et ses partenaires)
• Multiplicité des décisions et nombreux domaines
(humain, financier, technique, etc.) de l'organisation
concernésCritères d'un bon système
informatique
• Productivité (en rationalisant le processus
d'informatisation)
– Établissement d'une ligne directrice des informatisations
– Planification et suivi des performances
– Efficacité des études informatiques
– Utilisation judicieuse des technologies
• Qualité
– Conformité de la réalisation par rapport aux besoins
– Documentation correcte
– Adaptabilité
– Fiabilité
– Facilité d'utilisation
• Rentabilité (i.e. gain pour l'organisation relativement au
coût de l'informatisation)L'informatique remplit maintenant
un rôle stratégique dans
l'organisation
On est passé de l’automatisation des tâches
administratives aux systèmes d'information d'aide à
la décision (SIAD)
• Système opérant
• Début années 1960
• Faible complexité des
traitements
• Mise à jour transactionnelles,
chaînes séquentielles
• Information précise
• L3G
• Système décisionnel
• Plus récent
• Forte complexité des
traitements
• Consultation en temps partagé
• Information significative,
rapidement disponible
• SQL
Informatique de production
Informatique de managementIntervenantsIntervenants : les départements du service
informatique (01 Informatique 27/10/1995)
• Direction informatique
Responsable du service informatique ; Chef d’un département
du service informatique
• Expertise
Administrateur ou expert en système (d’exploitation), réseau,
base de données, méthodes, qualité, sécurité, technologies
diverses
• Études - Développement
Chef de projet ; Analyste ; Concepteur ; Développeur (ou
programmeur)
• Production - Exploitation
Opérateur - Pupitreur ; Analyste d’exploitation ; Contrôleur
réseau ; Technicien (micro-informatique, réseau, messagerie,
téléphonie)
• Support et assistance
Assistant technique clientèle
Autre métier : Consultant en systèmes d'informationIntervenants : anciens diplômés du
département informatique de l’IUT
de l’université Bordeaux 1
(statistiques élaborées à partir des 530 réponses
reçues sur 2156 diplômés au 18/12/1996)
• Direction informatique ………………………………. • Expertise ………………………………………………
• Études – Développement ……………………………
• Production - Exploitation ; Support et assistance ...
• Non informaticien ………………………………….....
16 %
10 %
54 %
12 %
8 %Intervenants : MOA vs MOE
• La maîtrise d'ouvrage (MOA) : les utilisateurs
– Direction générale
– Responsable du service des utilisateurs
– Personnel
– Autres services
– Clients
• La maîtrise d'œuvre (MOE) : les informaticiens,
prestataires de services
– Responsable du service informatique
– Chef de projet
– Analyste
– Développeur
– Personnel de l’exploitation
– Sous-traitants de l'applicationNomenclature 2005 des
emplois-métiers
Les emplois-métiers du système d’information
dans les grandes entreprises
CIGREF (club informatique des grandes
entreprises françaises)
février 2005
http://www.cigref.fr/cigref/livelink
.exe/Nomenclature_RH_2005.pdfNomenclature 2005 : 6 familles
• Conseil en système d'information et maîtrise
d'ouvrage (6 métiers)
• Support et assistance aux utilisateurs (3 métiers)
• Production et exploitation (7 métiers)
• Études, développement et intégration (4
métiers)
• Support et assistance technique interne (6
métiers)
• Administration et gestion de la direction du
système d'information (5 métiers)Nomenclature 2005 : 31 métiers
• Conseil en système d'information et maîtrise
d'ouvrage
– Consultant en systèmes d’information
– Urbaniste des systèmes d’information
– Chef de projet maîtrise d’ouvrage
– Responsable du système d’information « métier »
– Gestionnaire d’applications
– Responsable de projet « métier »
• Support et assistance aux utilisateurs
– Assistant fonctionnel
– Technicien support SVP
– Chargé d’affaires internesNomenclature 2005 : 31 métiers
• Production et exploitation
– Technicien d’exploitation
– Technicien poste de travail
– Technicien réseaux ou télécoms
– Administrateur d’outils / systèmes / réseaux et
télécoms
– Administrateur de bases de données
– Intégrateur d’exploitation
– Pilote d’exploitation
• Études, développement et intégration
– Chef de projet maîtrise d’œuvre
– Développeur
– Intégrateur d’applications
– Paramétreur de progiciels de gestion intégré (PGI i.e.
ERP, enterprise resource planning
)Nomenclature 2005 : 31 métiers
• Support et assistance technique interne
– Expert système d’exploitation
– Expert réseaux / télécoms
– Expert méthode et outils / qualité / sécurité
– Expert en technologie internet / intranet et multimédia
– Responsable sécurité des systèmes d’information
– Architecte technique
• Administration et gestion de la DSI
– Responsable du management de la DSI
– Responsable d’exploitation informatique
– Responsable d’une entité informatique
– Responsable de(s) service(s) administratif(s) et
financier(s) de la DSI
– Responsable TélécomsNomenclature 2005 : développeur
• Synonymes
– Analyste-programmeur
– Réalisateur en informatique
– Analyste fonctionnel
– Analyste réalisateurNomenclature 2005 : développeur
• Mission
À la demande de la maîtrise d’œuvre, et sur la base
des spécifications fonctionnelles émises par celle-ci,
le développeur analyse, paramètre et code les
composants logiciels applicatifs dans le respect des
normes et procédures, ainsi que les évolutions
souhaitéesNomenclature 2005 : développeur
• Activités et tâches
– Analyse
Définition de spécifications ; Analyse organique ; Adaptation
et paramétrage de progiciels applicatifs ; Prototypage
– Développement
Réalisation de modules (objets et composants logiciels) ;
Assemblage de ces éléments ; Rédaction de documentations
; Industrialisation de composants et d’applications
– Qualification
Élaboration de jeux d’essais (tests unitaires d’intégration) ;
Tests ; Identification et traitement des dysfonctionnements
– Maintenance
Maintenance corrective ; Maintenance évolutive ;
Administration des composants logiciels réutilisables et
gestion de la nomenclature de ces composantsNomenclature 2005 : développeur
• Parcours professionnel
– Profil : Bac + 2 ou 3
– Expérience : DébutantNomenclature 2005 : développeur
• Tendances et facteurs d’évolution
– Usage croissant des progiciels, d’où importance
croissante du paramétrage, de l’objet, du fonctionnel
aux dépens du développement spécifique, de
l’algorithmique
– Renouvellement rapide des langages : java, langages
objet…
– Importance croissante de l’ergonomie
– Durée de vie des applications raccourcie
– Souci de réutilisation des développementsNomenclature 2005 : développeur
• Savoir-faire système d’information
– Expertise
• Langages de programmation [Développement]
• Méthodes, normes et outils de développement
[Développement]
– Maîtrise
• Conception, modélisation et architecture d’applications
[Conception]
• Algorithmique [Développement]
• Techniques de développement (maquettage et prototypage,
client-serveur, objet, RAD) [Développement]
• Charte d’utilisation et de sécurité des SI [Sécurité
informatique]
– …/…Nomenclature 2005 : développeur
– Application
• Parc applicatif et de services [Architecture applicative /
fonctionnelle]
• Paramétrage d’applications [Développement]
• Intégration de logiciels [Intégration]
• Intégration de matériels [Intégration]
• Gestion de production [Production - Exploitation]
• Normes et procédures de sécurité I&T (Informatique et
Télécoms) [Sécurité informatique]
– Notions
• Architecture de systèmes d’exploitation [Architecture
technique]
• Administration de bases de données [Gestion de données -
Bases de données]
• Intégration de systèmes d’exploitation [Intégration]
• Environnements d’exploitation [Production - Exploitation]
• Logiciels et matériels réseaux [Télécom - Réseaux]Nomenclature 2005 : développeur
• Savoir-faire généraux
– Expertise
– Maîtrise
• Ergonomie et interfaces homme-machine [Savoirs de base]
– Application
• Compréhension des clients de la DSI (utilisateurs
fonctionnels) et de leurs besoins [Connaissances des métiers
de l’entreprise]
• Techniques de l’assurance qualité [Qualité]
• Capacité rédactionnelle [Savoirs de base]
– Notions
• Culture générale I&T [Connaissances des métiers de
l’entreprise]
• Pratique de l’anglais technique lu, écrit et parlé [Langue]Nomenclature 2005 : développeur
• Aptitudes comportementales
– Essentiel
• Méthode [Compétences de résolution de problèmes]
• Analyse [Compétences de résolution de problèmes]
• Rigueur [Compétences d’efficacité personnelle]
– Utile
• Logique [Compétences de résolution de problèmes]
• Adaptabilité [Compétences d’efficacité personnelle]
• Gestion de situation [Compétences d’efficacité personnelle]
• Pragmatisme [Compétences d’efficacité personnelle]
• Écoute et communication [Compétences relationnelles]
• Travail en équipe [Compétences relationnelles]Cycles de vie du logicielCycle de développement et cycle
de vie du logiciel : les phases
• Analyse
• Conception
• Réalisation
• Tests
• Exploitation
• Maintenance
Cycle
de
vie
Cycle
de
développementCycles de vie du logiciel
• Analyse de l'existant et définition des
besoins, du système d'information et du
logiciel
• Conception du système d'information et du
logiciel
• Réalisation (ou codage, programmation) :
traduction des algorithmes dans un
langage compréhensible par un ordinateurCycles de vie du logiciel
• Tests :
– vérification du logiciel (i.e. système
informatique)
– validation du logiciel
– vérification du système d'information
– validation du système d'information
Vérification : le produit en cours d’élaboration répond-il à la
définition des besoins ? (est-ce bien le produit ?)
Validation : le produit en cours d’élaboration remplit-il les
fonctionnalités désirées par l'utilisateur ? (est-ce le bon
produit ?)Cycles de vie du logiciel
• Exploitation : utilisation du logiciel une fois
installé (et dont on fait la recette)
• Maintenance
– Correction des erreurs
– Amélioration des fonctions existantes
– Ajout de nouvelles fonctionnalitésCycles de vie en cascade (ou en
chute d’eau)
Critiques :
– Recouvrement de phases
– Avancées et retours d’une seule phase du cycle de
développement à la fois
– Impact de la maintenance sur toutes les phases du
développement
– Contacts avec l’utilisateur restreints à la phase
d’analyseCycles de développement en V
• Système signifie ici système d'information (manuel et informatisé)
• Modèle de l'AFCIQ (Association Française pour le Contrôle Industriel de
Qualité) avec le vocabulaire suivant : Spécification fonctionnelle \
Conception préliminaire \ Conception détaillée \ Codage / Tests unitaires /
Tests d'intégration / RecetteCycles de développement en M
3 activités interviennent durant toute la durée du développement en V
– Gestion de projet : pilotage du projet
– Gestion des configurations : gestion des différentes versions du produit
– Assurance qualité : contrôle systématiquement que le produit en cours est
cohérent et complet, en le confrontant à des normes préétablies si elles
existentCycles de développement en W
• Maquette : défilement d'écrans donnant une idée de ce que sera la
future application (sans accès aux données)
• Les maquettes sont élaborées par les informaticiens et validées par
les utilisateurs
• Avantages du maquettage
– Gain de temps sur les phases en aval (2nd V)
– Limitation des erreurs lors de la recetteCycles de développement en
spirale
• Prototype : application en
réduction (avec accès aux
données)
• Expérimentation : tests de
la part des utilisateurs du
produit dans sa version
actuelle (éventuellement
définitive)
• Bilan : critique de
l’expérimentation
• Généralisation de
l’approche par itération
• Ex. : conception d’outils de
pilotage (car une forte
réactivité aux besoins non
stables des utilisateurs est
nécessaire)Cycles de développement
composite : un exemple
Démonstration : présentation du produit aux utilisateursCycles de vie de l’ISOCycles de vie d’EuroMethodeChiffres : coût moyen relatif de
chaque phase (du cycle de
développement du logiciel) pour
une application de gestion
• Analyse et Conception : 44 %
• Réalisation : 28 %
• Tests : 28 % Chiffres : coût relatif de correction
d'une erreur selon la phase (du
cycle de vie du logiciel) au cours de
laquelle elle a été détectée
Analyse : 1
Conception : 2
Réalisation : 5
Tests : 10
Exploitation et Maintenance : plus de 100
• Remarque : plus de 80 % des erreurs sont introduites durant les
phases d'analyse et de conception
• Les coûts de la maintenance corrective (ni adaptative, ni évolutive)
peuvent aller jusqu'à deux fois ceux du développement
Exemple pathologique (système avionique) : coût de développement de 30$ par instruction mais coût de maintenance de 4000$ par instructionChiffres divers
• Productivité moyenne d'un programmeur d'une
application de gestion simple : moins de 600 lignes de
code par mois
• Application moyenne (en 1985) : 100 000 lignes de code
pour 600 000 €
Ex. : suivi de production pour 3000 personnes, entreprise
commerciale de 2 milliards de chiffre d'affaires
• Taille d’un projet
– Entre 100 et quelques milliers de jours
– Jusqu’à 50 personnesTaxinomie des méthodes
d’informatisationMéthode d'informatisation :
définition
Une méthode d'informatisation en
informatique de gestion
– définit un processus d'informatisation du
système d'information (totalement ou
partiellement i.e. pour tout ou partie du cycle
de vie du logiciel
)
– possède une portée (champ d'étude i.e.
domaine étudié
)
– décrit une démarche i.e. un ensemble de
travaux en les ordonnant (succession
d’étapes)Méthode d'informatisation : règles
• S'appuyer sur des concepts théoriques :
définition des concepts
• Proposer une démarche : cadre général pour
définir le travail à accomplir par les intervenants
• Permettre sa mise en œuvre par des outils :
pour faciliter la manipulation des concepts
• Atteindre un but : l’informatisation éventuelle (
⇒
argumentation et faisabilité)
N. B. : une méthode ne remplace ni l’expérience,
ni la connaissance, ni le talentMéthode d'informatisation :
composants
• Modèles : ensemble de concepts et de règles
destiné à expliquer et construire la
représentation de phénomènes organisationnels
• Langages : destinés à l’élaboration des
spécifications, à faciliter la communication
• Démarche
• Outils et techniques : aides à la mise en œuvre
des modèles, langages, démarche Méthode d'informatisation :
objectifs
• Réduire la complexité des informatisations (ex. : en
identifiant et donc en maîtrisant les facteurs de cette complexité)
• Rendre cohérents tous les projets (ex. : même approche,
même « style » des dossiers, meilleure intégration entre projets)
• Capitaliser les expériences (ex. : réutilisation des solutions
ayant résolu les mêmes problèmes, acquisition de savoir-faire)
• Augmenter la qualité des travaux d'informatisation (ex. :
mêmes standards)
• Augmenter la productivité des travaux d'informatisation
(ex. : standardisation augmente l’efficacité)
• Améliorer les communications entre intervenants
(utilisateurs et informaticiens)Méthode d'informatisation
N. B. : les SSII ont été les premières à créer des
méthodes
Les solutions empiriques
– Avantage : répondent à l'urgence
– Inconvénient : génèrent des applications provisoires
(car complexes, non fiables, coûteuses, etc.) Taxinomie des méthodes :
fondements théoriques
• Cartésienne (démarche dite analytique ; résolution des
problèmes un à un)
– Approche fonctionnelle (analyse et conception des systèmes
d'information par rapport à la définition des besoins) et
descendante (du général au particulier)
– Ex. : SADT, CORIG
• Systémique (démarche dite globalisante ; résolution
globale des problèmes)
– Approche conceptuelle (processus de modélisation par niveaux
d'abstraction successifs)
– Repose sur l'identification de projets qui structurent
l'organisation (sans qu'il y ait obligatoirement un besoin)
– Ex. : MERISE, AXIAL, IA-NIAMTaxinomie des méthodes :
fondements théoriques
• À objet (application du paradigme objet à tout le
processus)
– Les objets (de l'application, de services distribués) et les
utilitaires communs échangent des informations (demandes et
réponses de services) à l'aide de messages
– Ex. : OOA, OMT, MCO, HOOD, OOSE, MERISE Objet
• Formelle (utilisation des mathématiques)
– Spécification et conception formelles exprimées à l’aide du
langage mathématique qu’il faut ensuite prouver
– Ex. : BTaxinomie des méthodes :
générations
• Première génération
– Des années 60 au début des années 70
– Automatisation des procédures administratives
– Problèmes de programmation (ex. : WARNIER, JACKSON,
etc. sur l’art de bien écrire du code i.e. programmation
structurée)
– Approche analytique (par les données) ou synthétique (par les
fonctions)
– Ex. : MINOS (analytique), CORIG (synthétique)Taxinomie des méthodes :
générations
• Deuxième génération
– Années 70
– Généralisation des champs d'étude au système d'information et
à l'organisation en entier
– Préconisations (en analyse, conception, programmation) et
démarche d'informatisation (schéma directeur, plan
d'informatisation, conduite de projet)
– Prise en compte de nouvelles techniques (temps réel, bases de
données, ergonomie), nouvelles formalisations
(entités-associations), évolution des sciences de gestion
– Ex. : IA-NIAM, SADTTaxinomie des méthodes :
générations
• Troisième génération
– Depuis la fin des années 70 (dont les méthodes à objets des
années 80)
– Informatisation globale (cohérence, complétude)
– Innovations technologiques (matérielles et logicielles)
– Démarche de synthèse, davantage de modélisation, introduction
d'outils logiciels associés
– Ex. : MERISE, AXIAL, SSADM, OOA, OMT, OOSE, HOOD, B
• Quatrième génération ?
– Intégration des technologies orientées objets, client/serveurTaxinomie des méthodes :
domaines d'application
• Particulier
– Application à un travail précis et indépendant de toute démarche
– Ex. : RACINES pour l'élaboration d'un schéma directeur
• Partiel
– Description et ordonnancement de travaux relativement à une
démarche d'informatisation partielle
– Ex. : CORIG pour la conception et la réalisation du système
informatique, SADT et IA-NIAM pour la conception du système
d'information et du système informatique
• Global
– Processus d'informatisation complet (de l'introduction de
l'informatique dans une organisation à la maintenance des
applications) : description et ordonnancement de tous les
travaux
– Ex. : MERISE, AXIAL, SSADM, OOA, HOOD, OMT, OOSE, BTaxinomie des méthodes :
démarche
• Linéaire
– Succession linéaire des travaux (démarche découpée en étapes
découpées en phases découpées en tâches découpées en
opérations)
– Analyse descendante (des problèmes généraux aux problèmes
particuliers) par décomposition hiérarchique des travaux
– Itération et condition possibles
– Ex. : MERISE, AXIAL, etc.
• Non linéaire
– Analyse ascendante par intégration progressive des résultats Taxinomie des méthodes :
approche
• Ascendante
– Recensement et analyse des sorties (papier ou écran) puis
établissement des entrées nécessaires et suffisantes
– La liste des informations obtenue est ainsi l'ensemble minimal
nécessaire pour obtenir les résultats, ce qui permet difficilement
de prendre en compte l'évolution des besoins de l'organisation
– Ex. : MINOS
• Descendante
– Recensement des informations du système d'information
existant (sans oubli ni répétition) et des nouvelles fonctionnalités
des utilisateurs
– Ex. : CORIG, MERISE, etc. (la plupart des méthodes actuelles)Quelques méthodes :
≤1982
• CORIG
– Compagnie Générale d'Informatique, France, 1966
– Conception et réalisation du système informatique
• SADT (Structured Analysis and Design Techniques)
– D.T. ROSS pour SofTech, USA, 1976 (et IGL Technology, France,
1977)
– Conception du système d'information et du système informatique
• MCP (Méthode de Conduite de Projets informatiques)
– RATP et AFCET, France, 1978
– Conduite de projets
• [H]OOD ([Hierarchical] Object Oriented Design)
– R. ABBOTT en 1980, G. BOOCH en 1983 (CISI & MATRA & CRI pour
l'Agence Spatiale Européenne en 1987)
– Conception et réalisation du système informatique
• IA-NIAM (Nijssen's Information Analysis Method)
– M. NIJSSEN pour Control Data, Belgique, 1982
– Conception du système d'information et du système informatique Quelques méthodes : 1983..1986
• MCX et MCO (Méthode générale d'analyse des applications
informatiques)
– X. CASTELLANI, France, 1983
– Informatisation complète
• MERISE et MERISE/2 (Méthode d'étude et de réalisation
informatique pour les systèmes d’entreprise)
– H. TARDIEU pour Séma-Matra et Gamma International, France, 1983
– Informatisation complète
• JSD (Jackson System Development)
– M. JACKSON, Systems Ltd, Royaume-Uni, 1983
– Conception du système d'information et du système informatique
• SSADM (Structured Systems Analysis and Design Method)
– LBMS pour CCTA, Grande-Bretagne, 1986
– Informatisation complète
• AXIAL (Analyse et Conception de Systèmes d’Information Assistés
par Logiciels)
– IBM, France, 1986
– Informatisation complète Quelques méthodes :
≥1988
• REMORA
– C. ROLLAND de l'Université Paris 1 (Sorbonne), France, 1988
– Conception du système d'information et du système informatique
• OOA (Object-Oriented Analysis)
– P. COAD et E. YOURDON, 1991
• OMT (Object Modeling Technique)
– J. RUMBAUGH, 1991
– Conception du système d'information et du système informatique
• OOSE (Object-Oriented Software Engineering)
– I. JACOBSON, 1992
• Z
– D. LIGHTFOOT, 1992
– Conception du système d'information et du système informatique
– N. B. : c’est un langage de notation et non pas une méthode
• B
– H. HABRIAS, 1993
• UML (Unified Modeling Language)
– G. BOOCH, I. JACOBSON et J. RUMBAUGH, 1999
– N. B. : c’est un langage de modélisation et non pas une méthodeDémarcheDémarche d’une méthode
d'informatisation traditionnelle
• Étude préalable
• Analyse fonctionnelle
• Analyse organique
• Programmation
• Mise en serviceDémarche : 3 premières étapes
• Étude préalable
– Étude de l’existant
→ dossier de l’existant validé
– Étude d'opportunité
→ rapport d'opportunité
→ cahier des charges (et plan directeur de réalisation
)
• Analyse fonctionnelle
– Conception (modèles de communication, des
traitements et des données)
– Validation
→ schéma conceptuel
• Analyse organique
– Progiciel ou Développement spécifique
→ solution informatiqueDémarche : étude préalable
(objectif)
• Analyse du fonctionnement de l'organisation et
diagnostic général de l’existant
• Recensement des critiques (positives ou
négatives, d’organisation et informatiques) et
des besoins des utilisateurs
• Opportunité (financement, moyens humains,
etc.) et faisabilité (technique) des
automatisations
• Rédaction d'un cahier des chargesDémarche : étude de l’existant
(importance)
Toute l'application en dépend
⇒
– exhaustivité
– exactitude
Gravité croissante d'une étude préalable
se révélant incomplète ou inexacte lors
de l'analyse fonctionnelle et/ou
organique (peu grave), de la
programmation (dommage), de
l’exploitation (catastrophique)Démarche : étude de l’existant
(objectif)
Description de l'existant (par différentes
représentations littéraires/schématiques et
modèles de
communication/traitement/données) en
collectant toutes les informations
(informatisées ou non) utiles et
nécessaires Démarche : étude de l’existant
(phases)
• Collecte
– Aller sur le terrain
– Observer
– Questionner
– Prendre des notes
– etc.
• Représentation
– Rédiger
– Formaliser les renseignements collectés
– Modéliser
– etc.
• Validation Démarche : collecte
• Objectif : recueillir et sélectionner les
informations intéressantes (i.e.
pertinentes) parmi toutes les informations
vues (i.e. observées) ou entendues (via
entretiens)
• Informations à recueillir
– Nature, volume, fréquence, précision
observée ou requise, durée de vie,
ancienneté, etc.
– Exemplaires vierges et renseignés Démarche : collecte (critères
)
• Informations sur le système actuel et futur
• Informations sur le système ou du système
– Ne recueillir que les informations directement utiles liées à l'étude
• Informations de type
– Dynamique : circulation des documents dans l’espace (ex. : diagramme
de circulation des documents ou de l’information, diagramme de flots de
données) et dans le temps (calendrier, temps des traitements, délai de
circulation, etc.)
– De transformation : procédure de traitement, règle de gestion,
enchaînement des tâches, formule de calcul, condition de
déclenchement des traitements
– Statique : données élémentaires (ex. : dictionnaire des données) et
documents (fiches de rubriques/fichiers/documents), services et postes
de travail (ex. : organigramme, fiche de fonction)
• Degré de conscience ou d’expression de l'information
– Collecter les informations exprimées (par écrit ou oralement)
– Détecter les informations conscientes non exprimées
– Deviner les informations inconscientes
– N. B. : selon le cas, faire exprimer/reconnaître les informations non
exprimées ou les laisser dans l'ombreDémarche : collecte (moyens)
• À partir de documents (écrits et collectés)
– Documents existants : d’exécution (ex. : facture, bulletin de paye,
bordeaux, fichiers produits, etc.), de gestion (ex. : organigrammes,
statistiques, etc.) ou à établir entièrement
– Documents à compléter (questionnaire)
• Entretien (ou enquête orale)
– Accompagnant des documents écrits (pour les
expliquer/compléter/contrôler/mettre à jour) ou sans document écrit
préalable (avec ou sans la participation de l’interlocuteur)
– Contraignant ou peu directif (selon expérience/aisance de l’analyste)
– Quelques conseils : fixer un rendez-vous, préparer l’entretien, être
ponctuel, préciser l'objectif, questionner, écouter, noter, demander tous
les documents nécessaires, conclure, faire un compte-rendu
• Observation (ou enquête visuelle)
– Après un entretien par exemple
– Qualitative (sur le déroulement d’une procédure d’un poste de travail,
sur la circulation empruntée par un document marqué, etc.) ou
quantitative (ex. : mesurer le nombre de tâches pour une période
donnée, la durée d’exécution d’un travail, etc.)Démarche : collecte
(ordonnancement des tâches)
Tâches d'introduction (définition de l’étude)
Tâches d'analyse du présent (recueil de l’existant)
Tâches montrant les contraintes et désirs de l'organisation future (critique)
Tâches de conclusion
1 2 3
4
5 6
7
8
9
10
● 11 12 14 13
Remarques
– Il existe des tâches séparées dont la collecte est commune, et
inversement une tâche peut nécessiter des collectes séparées
– Avancées ou retour en arrière possibles
– Il ne s'agit que d'un ordonnancement possibleDémarche : collecte
(ordonnancement des tâches
d'introduction)
1. Prise de connaissance du contexte i.e. de la structure
hiérarchique de l'organisation et de son environnement
social, technique et économique
2. Reformulation des limites de l'étude et du découpage
en projets à partir de ce qui a été décrit ou demandéDémarche : collecte
(ordonnancement des tâches
d'analyse du présent)
3. Au niveau du projet retenu, étude de la structure
hiérarchique et liste des postes de travail et des centres
de décision
4. Étude détaillée des postes de travail
5. Établissement d'une liste des fichiers et des documents
6. Représentation de la circulation des documents
mentionnant les traitements
7. Recensement et description des règles de gestion (:=
condition facultative, affectation et règle de calcul), i.e.
les procédures et règles de traitement
8. Confection d'un dictionnaire des rubriquesDémarche : collecte
(ordonnancement des tâches
montrant les contraintes et
désirs de l'organisation future)
9. Récapitulation des moyens et ressources utilisés et
des contraintes (durée, délai, fréquence, volume, coût,
réglementation, ergonomie)
10. Récapitulation des demandes d'information et des
critiques formulées par le personnel consulté
11. Contrôle du travail effectué i.e. des éléments du
système d'information existant répertoriés au cours de
l'analyse Démarche : collecte
(ordonnancement des tâches de
conclusion)
12. Constitution du dossier de l’existant i.e. première
version du cahier des charges détaillé
13. Validation de l'étude auprès des personnes
compétentes et concernées par l'étude
14. Premier examen critique des personnes ayant réalisé
cette analyse mentionnant leurs avis sur l’existantDémarche : étude d’opportunité
(objectif)
Faciliter la prise de décision par la
direction générale en commission
informatique sur la suite à donner à l'étude
(par un rapport synthétique présentant les
principales critiques formulées et les
diverses solutions envisageables) i.e. la
mise en œuvre d'un certain nombre de
projets d'automatisation parmi ceux
proposés Démarche : étude d’opportunité
(critique du système d'information
existant)
• Niveaux : général, des domaines d'étude, des services
et postes de travail
• Causes possibles de dysfonctionnement
– Insuffisance des moyens de traitement de l'information (ex. : en
personnel, matériel, locaux)
– Mauvaise organisation (ex. : centralisation excessive ou
insuffisante, personnel inadapté ou incompétent, mauvaise
structure hiérarchique)
– Circuits informationnels mal étudiés (ex. : trop longs, non
compris)
– Méthodes de traitements mal formalisées ou archaïques (ex. :
inexistence d’algorithme)
– Documents inexistants ou inutiles ou incomplets
– Fichiers inexistants, mal structurés, incomplets, redondants, etc.
• Exposé des besoins nouveaux exprimés par les
utilisateurs Démarche : étude d’opportunité
(propositions de solutions)
• Pallier les dysfonctionnements et améliorer le
système
– Solutions non informatisées
• Personnel (ex. : embauche, promotion, déplacement,
formation)
• Matériels (ex. : achat, remplacement, entretien,
déplacement)
• Documents (ex. : création, modification, suppression,
amélioration du circuit)
• Méthodes (ex. : réorganisation des tâches, définition des
algorithmes)
• Fichiers (ex. : création, restructuration)
– Solutions informatisées
• Définition des tâches devant être automatisées
• Découpage en projets d'automatisation homogènes et
relativement indépendants, en faisant apparaître les priorités
de réalisationDémarche : étude d’opportunité
(synthèse des propositions de
solutions)
• Évaluation financière (coût estimé et gain
escompté) de chaque proposition
• Présentation de l'ordre des priorités entre les
différentes solutions
• Mesure de la faisabilité et établissement de la
mise en œuvre (en prenant en compte des
mesures d’accompagnement : personnel,
matériel, logiciel, etc.) de chaque propositionPlan directeur de réalisation
Présentation de toutes les modalités de
réalisation (des programmes d'application
spécifiques) :
– responsabilités
– personnel d’exécution
– calendrier de réalisation de chaque projet
– liaisons entre les différents projets (ou
logiciels acquis)
– interventions éventuelles d'informaticiens
extérieurs à l'organisationCahier des charges
• Destinataires
Service informatique, constructeur ou société
de services en informatique
• Objectif
Définir les besoins en matériel et en logiciel
du futur système informatique (pour permettre
de choisir l'une des solutions) afin d'établir un
contrat entre utilisateurs et informaticiensCahier des charges
(renseignements informatiques)
• Description détaillée des fonctionnalités
attendues
• Évaluation chiffrée des volumes à mettre en
œuvre
– Données à stocker, sauvegarder, saisir, imprimer
– Modes de travaux envisagés : immédiat ou en temps
différé, unitaire ou par lot
Ex. : saisie d’un questionnaire, édition des
commandes du jour, sauvegarde incrémentale,
édition préprogrammée des bulletins de paye
– Nombre maximum d'utilisateurs connectés
simultanémentCahier des charges
(renseignements informatiques)
• Définition des besoins en matériel
– Types de postes de travail (bureau, ordinateur, taille
écran, type d’imprimante, etc.)
– Réseau de communication utilisé (privé ou public, en
étoile ou en bus ou en anneau ou …, local ou global,
etc.)
– Périphériques particuliers (ex. : lecteur de code à
barres)
• Définition des besoins en logiciel
– Progiciels systèmes (système d’exploitation,
compilateurs et interpréteurs des langages de
programmation, utilitaires, gestionnaire des données,
gestionnaire réseau, etc.)
– Progiciels d'application Cahier des charges (renseignements
technico-commerciaux, avant la livraison)
• Conditions financières des matériels et logiciels : achat,
location, maintenance, etc.
• Conditions d’extension de la configuration matérielle
(mémoire principale, mémoire auxiliaire, périphériques,
etc.) et des logiciels (amélioration des performances,
volumes de données, nouvelles fonctionnalités, etc.
), en
assurant portabilité et compatibilité
• Conditions d'implantation des matériels (plan, onduleur,
climatisation, puissance électrique, etc.) et logiciels (ex. :
système d’exploitation, mémoire minimale, etc.)
• Conditions d’essais (des performances, sur du matériel
équivalent, etc.)
• Conditions de livraison (délai, pénalités de retard,
responsable du transport du matériel, installation et
adaptation, support logiciel, livraison partielle, etc.)Cahier des charges (renseignements
technico-commerciaux, après la livraison)
• Conditions de maintenance (durée, jour et délai
d’intervention, coût des nouvelles versions, etc.)
• Durée d'utilisation en cas de location
• Formation du personnel (nature, durée, date, coût, lieu,
etc. des stages et cours)
• Aide à la mise en œuvre (durée et périodicité, nombre
de techniciens à disposition, etc.)
• Documentation (nature, coût, nombre d’exemplaires,
nouvelles versions, etc.)
• Conditions de reconversion des applications existantesDémarche : analyse fonctionnelle
• Objectif
Obtenir un schéma général de structuration des traitements et
des données, à un niveau conceptuel (c'est-à-dire indépendant
de tout matériel ou logiciel de base)
Quoi faire ?
• Critères d'un schéma conceptuel
– Communicable (avec utilisateurs et autres informaticiens)
– Conforme
– Valide : complet et cohérent
– Réalisable (automatisable en partie)
• Principe d'indépendance des traitements et des données
Pour cela, un logiciel (le SGBD) doit être capable, au moment de
l’exécution des programmes, de retrouver les données
nécessaires aux traitements à effectuer
Indépendance logique (respectivement physique) lorsque le
schéma conceptuel (respectivement logique) des données peut être
modifié sans changer les programmes Démarche : conception
• Représentation de la communication au sein de
l'organisation
• Représentation de l'ensemble des traitements
– Modélisation des traitements avec leurs conditions d'activation,
leurs règles d'utilisation et de transformation, leur enchaînement,
etc.
• Statique : description d'un traitement
• Dynamique : spécification des conditions d’exécution (événement
déclencheur) et d’enchaînement (en séquence, en parallèle,
convergent, etc.) de traitements pour caractériser le comportement
du système
• Représentation de l’ensemble des données
– Modélisation de toutes les informations (et de leurs structures)
devant être manipulées (et donc stockées)
– Contraintes d'intégrité : conditions à satisfaire pour les données
mémorisées par le système d'information
• Statique : vérifiées à tout moment
• Dynamique : caractérise la validité des changements d'états du
système d'information
Remarque : certaines contraintes sont déjà inclues dans les modèlesDémarche : validation
• Validation formelle des traitements et des
données
– Complétude des traitements
• L’ensemble des traitements décrits correspondent à la
définition
– Cohérence des traitements
• Statique : pas de contradiction
• Dynamique : pas d'inter-blocage, terminaison
– Complétude des données
• Pas d'oubli (respect de la norme décrivant le modèle)
– Cohérence des données
• Conformité à la norme : pas d'ambiguïté, pas de
contradiction, pas de redondance,
désagrégation/décomposition Démarche : validation
• Synthèse des différents schémas
(de communication, des
traitements, des données)
garantissant la cohérence du
schéma conceptuel
1. Toute communication s'appuie (si
besoin) sur un traitement
2. Tous les traitements assurent les
communications de l'organisation
avec son environnement et en son
sein
3. Aucun traitement ne fait référence à
une donnée n’existant pas
4. Toutes les données sont manipulées
par au moins un traitement
Communication
1
2
Traitements
3
4
DonnéesDémarche : validation
• Confrontation avec les utilisateursDémarche : analyse organique
(objectif)
Adapter la solution fonctionnelle à un choix
technique particulier
– Définition des structures de données et de leur
enregistrement
– Détermination des unités de traitement
– Choix des matériels
– Établissement du calendrier et des budgets de
réalisation Démarche : progiciel vs
développement spécifique
• Achat d'un progiciel standard (i.e. un PGI)
– Plus économique (à long terme)
– Présent sur de nombreux segments de marché
– Produit déjà testé
– S'assurer de la réelle adaptation aux besoins
– Complexité du paramétrage
– Peut nécessiter de recourir à un spécialiste
– Existe-t-il un service après-vente, de plus viable à long terme ?
• Développement spécifique
– Solution parfaitement adaptée aux besoins
– Deux approches : traditionnelle ou génie logiciel
– Deux étapes
• Étape logique : choix d'organisation (Qui fera quoi ? Où ? Quand ?)
• Étape physique : choix techniques (Comment : avec quels moyens
matériels et logiciels ?)Démarche : approche traditionnelle
• Représentation des traitements
– Étape logique : prise en compte des contraintes des
utilisateurs faisant intervenir le temps (date de début
au plus tôt, date de fin au plus tard, durée, date de
début effective, etc.) et le lieu (communication entre
les acteurs, poste de travail effectuant le traitement,
traitement manuel ou interactif ou différé) des
traitements
Cas particulier : procédures de fonctionnement en
mode dégradé (données détruites, lieu ou ressource
indisponible)
– Étape physique : fait intervenir les contraintes de
ressources nécessaires et utilisées (regroupement de
traitements successifs, éclatement d'un traitement) et
affecter les responsabilités des traitements Démarche : approche traditionnelle
• Représentation des données
– Étape logique : prise en compte des besoins
d'utilisation des informations (ex. : définition des
modes d'accès aux données)
– Étape physique : prise en compte des contraintes
physiques liées en particulier aux matériels et
logiciels utilisés (ex. : description des données par
rapport à leur implantation, calculs d'activité afin de
déterminer les
schémas/vues/index/clusters/redondances/etc. les
plus efficaces, etc.) Démarche : approche traditionnelle
• Structure d'accueil : mémoire, processeur,
réseau, langage, progiciel, etc.
• Interface homme-machine : ergonomie, langage
de communication
• Méthode de conception : analyse descendante
• Programmation : programmation objet
(encapsulation, héritage, polymorphisme, etc.)
• Calendrier
• Budget de programmationDémarche : approche génie logiciel
(objectif)
Passer à l'ère industrielle de la production
du logiciel, en développant des méthodes
et des techniques permettant de réaliser à
moindre coût des logiciels performants et
fiables Démarche : approche génie logiciel
• Concevoir (le produit)
– Résultat d'une analyse ou d'une étude de marché
– Fournir un ensemble de spécifications détaillées
– Choisir une interface utilisateur : graphique (on
évitera dorénavant une interface en mode texte)Démarche : approche génie logiciel
• Fabriquer
– Principe : décomposer en composants plus simples,
et mettre au point un processus d'assemblage
– Pour chaque composant identifié, trois choix
possibles :
• Utiliser un composant standard : SGF ou SGBD, bibliothèque
mathématique, bibliothèque de classes, applets JAVA,
contrôles VBX ou ActiveX, etc.
• Le fabriquer soi-même
• En sous-traiter la fabrication, lorsque les coûts sont trop
importants, par une entreprise spécialisée
– Implémenter les traitements : décomposition
modulaire
– Implémenter les données : données transitoires et
permanentes
– Méthode : programmation descendante, objet Démarche : approche génie logiciel
– Langage de programmation
• Choix d'un paradigme (ex. : procédural, déclaratif,
fonctionnel, L4G, objet, etc.)
• Identification des besoins : objets, systèmes répartis, bases
de données, systèmes concurrents, etc.
• Identification des moyens : disponibilité du produit sur les
plateformes cibles, personnel formé
– Choix des outils
• Outils de développement rapide : pour du prototypage car les
performances sont souvent insuffisantes
• Générateurs de code : description de haut niveau des
traitements à réaliser, code généré en L3G
• Outils spécialisés : SGBD, gestionnaire réseau, architecture
client/serveur, etc.Démarche : approche génie logiciel
• Tester
– Jeux d'essais : jeux de données couvrant tous les cas
possibles, générateurs de tests
– Simulation du fonctionnement : injection de données,
brenchmark de systèmes
– Tests en grandeur nature (par les utilisateurs finals)Démarche : approche génie logiciel
• Prouver/Valider
– Méthodes mathématiques de preuve de programmes
(cf. FLOYD, HOARE, etc.)
– Preuve des spécifications formelles du logiciel
– Utilisation d'outils de validation
– Vérifier l'adéquation aux besoins Démarche : approche génie logiciel
• Évaluer les performances
– Calculs des complexités a priori (et s'assurer que les
charges des machines suffiront)
– Tests en grandeur nature (dans l’environnement final,
dans les conditions réelles d’exploitation) Démarche : approche génie logiciel
• Assurer la fiabilité
– Plus aucune erreur majeure
– Risque d’erreurs (mineures) résiduelles (ex. :
conditions limites non testées)
– Révisions successives du logiciel (versions alpha,
béta, release, mises à jour mineures et majeures) Démarche : approche génie logiciel
• Fournir une documentation
– Technique
• Durant tout le développement (dossier de programmation) :
communication entre sous-équipes, rédigé quotidiennement
par les développeurs
• Pour la maintenance (guide de maintenance) : recherche
ultérieure des causes d’erreurs
• Pour l’installation (guide d’installation
)
– Utilisateur
• Mode d’emploi pour un produit sur mesure (manuel
utilisateur) : précis, technique, sans fioritures
• Communication pour un produit grand public : rédigé par des
professionnels
N. B. : précise, claire, fiable, à jour, etc.Démarche : approche génie logiciel
• Proposer un service après-vente
– Maintenance sur site, ligne directe, service payant
– FormationModèlesModèles : modélisation
• Problème de la réalité : flou, difficile à appréhender, etc.
• Deux types d’erreurs : réalité omise et schéma prenant
en compte davantage que la réalité
• Rarement un seul modèle (union de modèles)Modèles : objectifs de la
modélisation
• Rendre compte de la réalité
– Conforme
– Complet
– Réalisable
– Plausible
• Simplifier la réalité
• Ne présenter qu’un aspect du problème
• Permettre de mieux comprendre un problème
complexe
• Permettre de communiquer les connaissances
– Standard
– Précis
– Simple
– CohérentModèles : outils et types
• Outils
– Langage naturel
– Représentation graphique
– Mathématiques
• Types de modèles
– De communication, des traitements ou de
données
– Statique ou dynamiqueModèles : l’exemple « jouet »
• Les traitements
– Le jour de la rentrée, le secrétariat de
l’établissement avise les étudiants qu'ils ont
jusqu’à la fin de la semaine pour amener les
originaux des diplômes qu'ils ont obtenus,
ceci permettant de compléter les fiches des
étudiants
– Un mois après la rentrée, le secrétariat
transmet une photocopie des fiches au
directeur de l’établissement
• Un fichier (… de cinq étudiants)Modèles : l’exemple « jouet »Modèles : l’exemple « jouet »Modèles : l’exemple « jouet »
• Problème des zones variables (zéro, une ou
plusieurs valeurs) engendrant des difficultés de
stockage efficace
– Ex. : les voitures des étudiants
• Problème de redondance
– Ex. : intitulé complet des diplômesQuelques modèles
• Actigramme
• Algèbre relationnelle
• Arbre de décomposition fonctionnel
• Calcul relationnel
• Cycle de vie d'un objet
• Datagramme
• Diagramme d’activités
• Diagramme d’états-transitions
• Diagramme d’objets
• Diagramme de cas d’utilisation
• Diagramme de circulation de l'information
• Diagramme de circulation des documents
• Diagramme de classes
• Diagramme de collaboration
• Diagramme de communication
• Diagramme de composants
• Diagramme de déploiement
• Diagramme de flots de donnéesQuelques modèles
• Diagramme de flots d'événements entre classes
• Diagramme de flots d'événements entre objets
• Diagramme de séquence
• Diagramme de structure
• Diagramme de structures composites
• Diagramme de suivi d'événements
• Diagramme de temps
• Diagramme des paquetages
• Diagramme d'états (structuré)
• Diagramme global d'interaction
• Fiche de description de fonction
• Fiches de description de document
• Fiches de description de fichier
• Fiches de description de rubrique
• Graphe acteurs-flux
• Grille d'analyse des rubriques
• Logique des propositions et des prédicats
• Machine abstraiteQuelques modèles
• Modèle conceptuel des traitements
• Modèle conceptuel des traitements analytique
• Modèle de flux (modèle de contexte, modèle de flux conceptuel,
modèle de flux organisationnel)
• Modèle dynamique
• Modèle entités-associations (ou modèle conceptuel des données)
• Modèle fonctionnel
• Modèle logique des données
• Modèle logique des données réparties
• Modèle logique des traitements (guidage fonctionnel, interface
utilisateur (présentation, dialogue), noyau applicatif non interactif)
• Modèle logique des traitements répartis
• Modèle navigationnel
• Modèle objet
• Modèle organisationnel des données
• Modèle organisationnel des traitements
• Modèle organisationnel des traitements analytique
• Modèle relationnelQuelques modèles
• Organigramme
• Réseaux de Pétri
• Schéma d'architecture logique des moyens informatiques
• SQL
• Substitution généralisée
• Table de décision
• Théorie des ensembles et relationsMéthodes et langages de
modélisation
MERISE/2
SADT
OMT
UML
B
http://sites.univ-provence.fr/veronis/cours/INFZ18/veronis-INFZ18.pdf
Introduction `a l’information quantique
Bellac Le
To cite this version:
Bellac Le. Introduction `a l’information quantique. 2006.
HAL Id: cel-00092955
https://cel.archives-ouvertes.fr/cel-00092955
Submitted on 12 Sep 2006
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.1
Pr´etirage INLN 2003/08
INTRODUCTION A L’INFORMATION QUANTIQUE
Michel Le Bellac
Cours donn´e a` l’Ecole Sup´erieure de Sciences Informatiques (ESSI)
Octobre 2003
R´esum´e. Ce cours a pour objectif d’exposer a` un public de non physiciens les notions de physique quantique
n´ecessaires pour comprendre l’information quantique et d’illustrer le calcul quantique en prenant
comme exemple de l’algorithme de factorisation de Shor.
INSTITUT NON LINEAIRE DE NICE UMR 6638
1361 routes des Lucioles 06560 Valbonne
e-mail : michel.le−bellac@inln.cnrs.fr2Table des mati`
eres
1 Qu’est-ce qu’un qu-bit ? 5
1.1 Polarisation de la lumi`ere . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Polarisation d’un photon . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.3 Formulation math´ematique : le qu-bit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Principes de la m´ecanique quantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.5 G´en´erateur quantique de nombres al´eatoires . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.6 Cryptographie quantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2 Manipulations d’un qu-bit 19
2.1 Sph`ere de Bloch, spin 1/2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Ev´ olution dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3 Manipulations de qu-bits : oscillations de Rabi . . . . . . . . . . . . . . . . . . . . . . . . 23
3 Corr´elations quantiques 27
3.1 Etats ´ a` deux qu-bits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Op´erateur densit´e et entropies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3 Th´eor`eme de non clonage quantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.4 In´egalit´es de Bell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.5 T´el´eportation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
4 Introduction au calcul quantique 39
4.1 Calcul r´eversible . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2 Portes logiques quantiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3 Transformation de Fourier quantique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
4.4 P´eriode d’une fonction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.5 R´ealisations physiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Contents
34 TABLE DES MATIERES `Chapitre 1
Qu’est-ce qu’un qu-bit ?
L’information quantique est la th´eorie de l’utilisation des sp´ecificit´es de la physique quantique pour
le traitement et la transmission de l’information. Toutefois il convient de bien s’entendre sur cet ´enonc´e,
car tout objet physique, si on l’analyse suffisamment en d´etail, est un objet quantique, ce que Rolf
Landauer a exprim´e dans une formule provocatrice : “Un tournevis est un objet quantique”. De fait, les
propri´et´es conductrices de la lame m´etallique du tournevis font fondamentalement appel aux propri´et´es
quantiques de la propagation des ´electrons dans un milieu cristallin, tandis que le manche est un isolant
´electrique car les ´electrons sont pi´eg´es dans un milieu d´esordonn´e. C’est encore la m´ecanique quantique
qui permet d’expliquer que la lame, conducteur ´electrique, est aussi un conducteur thermique, tandis que
le manche, isolant ´electrique, est aussi un isolant thermique. Pour prendre un exemple plus directement
li´e a` l’informatique, le comportement des transistors qui sont grav´es sur la puce de votre PC n’a pu
ˆetre imagin´e en 1947 par Bardeen, Brattain et Shockley qu’`a partir de leurs connaissances en physique
quantique. Bien qu’il ne soit pas un ordinateur quantique, votre PC fonctionne suivant les principes de
la m´ecanique quantique !
Cela dit, ce comportement quantique est aussi un comportement collectif. En effet si la valeur 0 d’un bit
est repr´esent´ee physiquement dans un ordinateur par un condensateur non charg´e tandis que la valeur 1
est repr´esent´ee par le mˆeme condensateur charg´e, la diff´erence entre ´etats charg´e et non charg´e se traduit
par le d´eplacement de plusieurs millions d’´electrons. Un autre exemple pour illustrer cette notion : dans
une exp´erience de TP classique, on excite de la vapeur de sodium par un arc ´electrique, et on observe une
lumi`ere jaune, la fameuse “raie jaune du sodium”. Mais on n’observe pas le comportement d’un atome
individuel, la cellule contient typiquement 1020 atomes.
La grande nouveaut´e, depuis le d´ebut des ann´ee 1980, est la possibilit´e pour les physiciens de manipuler
et d’observer des objets quantiques ´el´ementaires individuels : photons, atomes, ions etc., et pas seulement
d’agir sur le comportement quantique collectif d’un grand nombre de tels objets. C’est cette possibilit´e
de manipuler et d’observer des objets quantiques ´el´ementaires qui est a` l’origine de l’information quantique,
ou` ces objets quantiques ´el´ementaires permettront de construire physiquement les qu-bits. Cela
dit, aucun concept fondamentalement nouveau n’a ´et´e introduit depuis les ann´ees 1930, et les p`eres fondateurs
de la m´ecanique quantique (Heisenberg, Schr¨odinger, Dirac . . .), s’ils ressuscitaient aujourd’hui,
ne seraient pas surpris par l’informatique quantique, mˆeme s’ils seraient suremen ˆ t ´eblouis les prouesses
des exp´erimentateurs, qui r´ealisent aujourd’hui des exp´eriences qualifi´ees a` l’´epoque de “gedanken experiment”.
Il vaut aussi la peine de signaler que la miniaturisation croissante de l’´electronique va trouver ses limites
en raison des effets quantiques, qui vont devenir incontournables en dessous du nanom`etre. Ainsi on
estime que le loi de Moore pourrait ne plus ˆetre valable d’ici dix a` quinze ans.
Quelques r´ef´erences
• Le livre de base est celui de Michael Nielsen et Isaac Chuang Quantum Computation and Quantum
Information, Cambridge University Press, Cambridge (2000).
• Egalemen ´ t int´eressant est le cours de John Preskill que l’on trouve (avec des exercices) sur le site
http ://www.theory.caltech.edu/˜ preskill/
56 CHAPITRE 1. QU’EST-CE QU’UN QU-BIT ?
Ce cours se place a` un niveau plus avanc´e que celui de Nielsen et Chuang.
• Voir aussi le cours de David Mermin
http ://www.ccmr.cornell.edu/˜ mermin/qccomp/CS483.html
• Comme introduction sans ´equations a` la physique quantique, je recommande le livre de Valerio
Scarani, Introduction a` la physique quantique, Vuibert (2003).
• Pour un texte plus complet, voir par exemple mon livre Physique quantique, EDPSciences/Editions ´
du CNRS, (2003).
1.1 Polarisation de la lumi`ere
Notre premier exemple de qu-bit sera fourni par la polarisation d’un photon, mais il faut d’abord
rappeler bri`evement ce qu’est la polarisation de la lumi`ere. La polarisation de la lumi`ere a ´et´e mise en
´evidence pour la premi`ere fois par le chevalier Malus en 1809. Malus observait la lumi`ere du soleil couchant
r´efl´echie par la vitre d’une fenˆetre du Palais du Luxembourg a` travers un cristal de spath d’Islande. En
faisant tourner ledit cristal, il constata que l’une des deux images du soleil disparaissait. Comme nous
le verrons ci-dessous, le spath d’Islande est un cristal bir´efringent, qui d´ecompose un rayon lumineux en
deux rayons polaris´es perpendiculairement, tandis que le rayon r´efl´echi par la vitre est (partiellement)
polaris´e. Pour une orientation convenable du cristal, on observera donc une extinction (ou une forte
att´enuation) d’un des deux rayons. Le ph´enom`ene de polarisation met en ´evidence le caract`ere vectoriel
des vibrations lumineuses, propri´et´e ´egalement partag´ee par les vibrations sonores de cisaillement : dans
un cristal isotrope, une vibration sonore peut correspondre, soit a` une vibration transverse a` la direction
de propagation, ou onde de cisaillement, soit a` une vibration longitudinale, ou onde de compression. Dans
le cas de la lumi`ere, la vibration est uniquement transverse : le champ ´electrique de l’onde lumineuse est
orthogonal a` la direction de propagation.
Rappelons la description math´ematique d’une onde scalaire progressive se propageant suivant l’axe Oz :
l’amplitude de vibration u(z,t) est de la forme
u(z,t) = u0 cos(ωt − kz)
ou` ω est la fr´equence de la vibration, ω = ck, c ´etant la vitesse de propagation. Dans le plan z = 0
u(z = 0,t) = u(t) = u0 cos ωt
Dans le cas d’une onde ´electromagn´etique filtr´ee par un polaro¨ıd, la vibration est un vecteur du plan
xOy, transverse a` la direction de propagation
Ex = E0 cos θ cos ωt
Ey = E0 sin θ cos ωt
(1.1)
ou` θ d´epend de l’orientation du polaro¨ıd. L’intensit´e (ou l’´energie) lumineuse, mesur´ee par exemple a`
l’aide d’une cellule photo´electrique, est proportionnelle au carr´e du champ ´electrique, I ∝ E2
0
(en g´en´eral
l’´energie d’une vibration est proportionnelle au carr´e de l’amplitude de vibration). Le vecteur unitaire pˆ
du plan xOy
pˆ = (cos θ,sin θ) E~ = E0pˆ cos ωt (1.2)
caract´erise la polarisation (lin´eaire) de l’onde ´electromagn´etique. Si θ = 0 la lumi`ere est polaris´ee suivant
Ox, si θ = π/2, elle est polaris´ee suivant Oy. La lumi`ere naturelle est non polaris´ee, elle se compose
d’une superposition incoh´erente (ce terme important sera d´efini ult´erieurement de fa¸con pr´ecise) de 50%
de lumi`ere polaris´ee suivant Ox et de 50% de lumi`ere polaris´ee suivant Oy.
Pour ´etudier de fa¸con quantitative la polarisation, nous allons nous servir d’un ensemble polariseur/
analyseur. Nous faisons d’abord passer la lumi`ere dans un polariseur dont l’axe fait un angle θ avec l’axe
Ox, puis dans un second polariseur, appel´e analyseur, dont l’axe fait un angle α avec l’axe Ox (figure 1.1),
avec
nˆ = (cos α,sin α) (1.3)1.1. POLARISATION DE LA LUMIERE ` 7
z
x
Ex
θ
Ey
y
polariseur
analyseur
x
α
y
Fig. 1.1 – Ensemble polariseur-analyseur.
A` la sortie de l’analyseur, le champ ´electrique E~ 0
s’obtient en projetant le champ (1.1) sur nˆ
E~ 0 = (E~ · nˆ)nˆ = E0 cos ωt(pˆ · nˆ)nˆ
= E0 cos ωt(cos θ cosα + sin θ sinα) nˆ
= E0 cos ωt cos(θ − α)nˆ (1.4)
On en d´eduit la loi de Malus pour l’intensit´e
I
0 = I cos2
(θ − α) (1.5)
La polarisation lin´eaire n’est pas la plus g´en´erale possible. Une polarisation circulaire s’obtient en choisissant
θ = π/4 et en d´ephasant la composante Oy de ±π/2, par exemple
Ex =
E0
√
2
cos ωt
Ey =
E0
√
2
cos
ωt −
π
2
=
E0
√
2
sin ωt
(1.6)
Le vecteur champ ´electrique d´ecrit un cercle de rayon |E0| dans le plan xOy. Le cas le plus g´en´eral est
celui de la polarisation elliptique, ou` l’extr´emit´e du champ ´electrique d´ecrit une ellipse
Ex = E0 cos θ cos(ωt − δx) = E0 Re h
cos θ e
−i(ωt−δx)
i
Ex = E0 sin θ cos(ωt − δx) = E0 Re h
sin θ e
−i(ωt−δy )
i (1.7)
Il sera important de remarquer pour la suite que seule la diff´erence δ = (δy − δx) est physiquement
pertinente. En effet, un simple changement de l’origine des temps permet de choisir par exemple δx = 0.
En r´esum´e, la polarisation la plus g´en´erale est d´ecrite par un vecteur complexe normalis´e a` l’unit´e (ou
vecteur unitaire) dans un espace a` deux dimensions, de composantes
λ = cos θ e
iδx µ = sin θ e
iδy
avec |λ|
2 + |µ|
2 = 1. En fait, en raison de l’arbitraire de phase, le vecteur de composantes (λ
0
, µ
0
)
λ
0 = λ e
iϕ µ
0 = µ e
iϕ
repr´esente la mˆeme polarisation que (λ, µ). Il est plus correct de dire que la polarisation est repr´esent´ee
math´ematiquement par un rayon, c’est-`a-dire un vecteur a` une phase pr`es.
Remarques8 CHAPITRE 1. QU’EST-CE QU’UN QU-BIT ?
• Une lame bir´efringente (figure 1.2) permet de s´eparer deux ´etats de polarisation orthogonaux, tandis
qu’un polaro¨ıd absorbe une des deux polarisations en laissant passer la polarisation orthogonale.
• Consid´erons un ensemble analyseur/polariseur crois´es, par exemple le polariseur suivant Ox et l’analyseur
suivant Oy. Aucune lumi`ere n’est transmise. Mais si on introduit un polariseur interm´ediaire
dont l’axe fait un angle θ avec Ox, alors une partie de la lumi`ere est r´etablie : une premi`ere projection
donne un facteur cos θ et une seconde un facteur sin θ, d’ou` l’intensit´e a` la sortie de l’analyseur
I
0 = I cos2
θ sin2
θ
qui s’annule uniquement pour θ = 0 ou θ = π/2
axe optique
lame
bir´efringente
Dx
Dy
z
x
θ
y
E
O
O
Fig. 1.2 – D´ecomposition de la polarisation par une lame bir´efringente. Le rayon ordinaire O est polaris´e
horizontalement, le rayon extraordinaire E est polaris´e verticalement.
1.2 Polarisation d’un photon
Depuis Einstein (1905), on sait que la lumi`ere est compos´ee de photons, ou particules de lumi`ere. Si
l’on r´eduit suffisamment l’intensit´e lumineuse, on devrait pouvoir ´etudier la polarisation des photons individuels,
que l’on sait parfaitement d´etecter a` l’aide de photomultiplicateurs. Supposons que l’exp´erience
d´etecte N photons. Lorsque N → ∞, on doit retrouver les r´esultats de l’optique ondulatoire que nous
venons d’´enoncer. Effectuons par exemple l’exp´erience suivante (figure 1.2) : une lame bir´efringente s´epare
un faisceau lumineux dont la polarisation fait un angle θ avec Ox en un faisceau polaris´e suivant Ox et un
faisceau polaris´e suivant Oy, les intensit´es ´etant respectivement I cos2
θ et I sin2
θ. R´eduisons l’intensit´e
de telle sorte que les photons arrivent un a` un, et pla¸cons deux photod´etecteurs Dx et Dy derri`ere la
lame. L’exp´erience montre Dx et Dy ne cliquent jamais simultan´ement
1
: un photon arrive entier soit sur
Dx, soit sur Dy, un photon ne se divise pas. D’autre part l’exp´erience montre que la probabilit´e px
(py
)
de d´etection d’un photon par Dx (Dy) est de cos2
θ (sin2
θ). Si l’exp´erience d´etecte N photons, on aura
donc Nx (Ny) photons d´etect´es par Dx (Dy)
Nx ' N cos2
θ Ny ' N sin2
θ
ou` le ' tient compte des fluctuations statistiques de l’ordre de √
N. Comme l’intensit´e lumineuse est
proportionnelle au nombre de photons, on retrouve la loi de Malus a` la limite N → ∞. Cependant on
note deux probl`emes.
• Premier probl`eme. Peut-on pr´evoir, pour un photon donn´e, s’il va d´eclencher Dx ou Dy ? La
r´eponse de la th´eorie quantique est NON, ´enonc´e qui a profond´ement choqu´e Einstein (Dieu ne
1Sauf cas de “dark count”, ou` un compteur se d´eclenche spontan´ement.1.2. POLARISATION D’UN PHOTON 9
joue pas aux d´es!). Certains physiciens (dont Einstein) ont ´et´e tent´es de supposer que la th´eorie
quantique ´etait incompl`ete, et qu’il y avait des “variables cach´ees” dont la connaissance permettrait
de pr´evoir le sort individuel de chaque photon. Moyennant des hypoth`eses tr`es raisonnables sur
lesquelles je reviendrai au chapitre 3, on sait aujourd’hui que de telles variables cach´ees sont exclues.
Les probabilit´es de la th´eorie quantique sont intrins`eques, elles ne sont pas li´ees a` une connaissance
imparfaite de la situation physique, comme c’est le cas par exemple dans le jeu de pile ou face.
• Deuxi`eme probl`eme. Recombinons2
les deux faisceaux de la premi`ere lame bir´efringente, en
utilisant une seconde lame sym´etrique de la premi`ere (figure 1.3). Cherchons la probabilit´e qu’un
photon traverse l’analyseur. Un photon peut choisir le trajet x avec une probabilit´e cos2
θ ; il a
ensuite une probabilit´e cos2 α de traverser l’analyseur, soit une probabilit´e totale cos2
θ cos2 α. S’il
choisit le trajet y, il aura une probabilit´e sin2
θ sin2 α de traverser l’analyseur. La probabilit´e totale
s’obtient en additionnant les probabilit´es des deux trajets possibles
p
0
tot = cos2
θ cos2 α + sin2
θ sin2 α (1.8)
Ce r´esultat est FAUX ! En effet l’optique classique nous apprend que l’intensit´e est I cos2
(θ − α),
et le r´esultat correct, confirm´e par l’exp´erience, est
ptot = cos2
(θ − α) (1.9)
ce qui n’est pas du tout la mˆeme chose !
θ
x
y
axes
optiques
polariseur analyseur
x
y
α
E
O
z
Fig. 1.3 – D´ecomposition et recombinaison de polarisations a` l’aide de lames bir´efringentes.
En fait, pour retrouver les r´esultats de l’optique ondulatoire, il faut introduire en physique quantique la
notion fondamentale d’amplitude de probabilit´e, dont le module carr´e donne la probabilit´e
a(θ → x) = cos θ a(x → α) = cosα
a(θ → y) = sin θ a(y → α) = sin α
et on doit additionner les amplitudes pour des trajets indiscernables
atot = cos θ cosα + sin θ sin α = cos(θ − α)
ce qui redonne bien (1.9)
ptot = |atot|
2 = cos2
(θ − α)
Supposons que l’on ait un moyen de savoir si le photon emprunte le trajet x ou le trajet y (impossible
dans notre cas, mais des exp´eriences analogues r´epondant a` la question “Quel trajet ?” ont ´et´e r´ealis´ees
avec des atomes). On pourrait alors diviser les photons en deux classes, ceux qui ont choisi le trajet x et
ceux qui ont choisi le trajet y. Pour les photons ayant choisi le trajet x, on pourrait bloquer le trajet y
par un cache sans rien changer, et inversement pour les photons ayant choisi le trajet y on pourrait
bloquer le trajet x. Bien ´evidemment, le r´esultat ne peut ˆetre alors que (1.8). Si on arrive a` discriminer
entre les trajets, le r´esultat n’est plus le mˆeme, les trajets ne sont plus indiscernables. Dans les conditions
exp´erimentales ou` il est impossible en principe de distinguer entre les trajets, on peut dire, au choix :
2Toutefois il faut prendre quelques pr´ecautions : voir Physique quantique, exercice 3.1.10 CHAPITRE 1. QU’EST-CE QU’UN QU-BIT ?
• soit que le photon emprunte les deux trajets a` la fois;
• soit (ce qui a ma pr´ef´erence) que cela n’a pas de sens de poser la question “Quel trajet ?”, puisque les
conditions exp´erimentales ne permettent pas d’y r´epondre, et, suivant Asher Peres “Unperformed
experiments have no results!”.
Il faut noter que si l’exp´erience permet de d´ecider entre les deux trajets, le r´esultat est (1.8), mˆeme si
l’on d´ecide de ne pas les observer. Il suffit que les conditions exp´erimentales permettent, en principe, de
distinguer entre les deux trajets.
Nous avons examin´e un cas particulier de ph´enom`ene quantique, la polarisation d’un photon, mais les
r´esultats que nous venons de d´ecrire nous ont conduits au coeur de la physique quantique.
1.3 Formulation math´ematique : le qu-bit
On peut utiliser la polarisation des photons pour transmettre de l’information, par exemple par une
fibre optique. On d´ecide, tout a` fait arbitrairement, d’attribuer la valeur un du bit a` un photon polaris´e
suivant Ox et la valeur z´ero a` un photon polaris´e suivant Oy. En information quantique, les personnes
qui ´echangent de l’information sont appel´ees conventionnellement Alice (A) et Bob (B). Alice envoie par
exemple a` Bob une suite de photons polaris´es suivant
yyxyxyyyx · · ·
Bob analyse la polarisation de ces photons a` l’aide d’une lame bir´efringente comme dans la figure 1.2 et
en d´eduit le message d’Alice
001010001 · · ·
Ce n’est ´evidemment pas une fa¸con tr`es efficace d’´echanger des messages, mais c’est a` la base de la
cryptographie quantique. Cependant la question int´eressante est maintenant : quelle est la valeur du
bit que l’on peut attribuer par exemple a` un photon polaris´e a` 45o
? Suivant les r´esultats de la section
pr´ec´edente, un photon polaris´e a` 45o
est une superposition lin´eaire d’un photon polaris´e suivant Ox et
d’un photon polaris´e suivant Oy. Un qu-bit est donc une entit´e beaucoup plus riche qu’un bit ordinaire,
qui ne peut prendre que les valeurs 0 et 1. En un certain sens, un qu-bit peut prendre toutes les valeurs
interm´ediaires entre 0 et 1 et contiendrait donc une quantit´e infinie d’information ! Cependant cet ´enonc´e
optimiste est imm´ediatement d´ementi lorsque l’on se rend compte que la mesure du qu-bit ne peut donner
que le r´esultat 0 ou 1, quelle que soit la base choisie. Malgr´e tout on peut se poser la question de cette
“information cach´ee” dans la superposition lin´eaire, et nous verrons au chapitre 4 qu’on peut l’exploiter
sous certaines conditions.
Afin de rendre compte de la possibilit´e des superpositions lin´eaires, il est naturel d’introduire pour la
description math´ematique de la polarisation un espace vectoriel a` deux dimensions H. A` tout ´etat de
polarisation on va faire correspondre un vecteur de cet espace vectoriel. On peut par exemple choisir pour
vecteurs de base de H les vecteurs |xi et |yi correspondant aux polarisations lin´eaires suivant Ox et Oy.
Tout ´etat de polarisation pourra se d´ecomposer suivant cette base3
|Φi = λ|xi + µ|yi (1.10)
Une polarisation lin´eaire sera d´ecrite par des coefficients λ et µ r´eels, mais la description d’une polarisation
circulaire (1.6) ou elliptique (1.7) exige de faire appel a` des coefficients λ et µ complexes : l’espace H est
donc un espace vectoriel complexe.
Les amplitudes de probabilit´e vont correspondre a` un produit scalaire sur cet espace. Soit deux vecteurs
|Φi (1.10) et |Ψi
|Ψi = ν|xi + σ|yi
Le produit scalaire de deux vecteurs sera not´e hΨ|Φi et par d´efinition
hΨ|Φi = ν
∗λ + σ
∗µ = hΦ|Ψi
∗
(1.11)
3J’utilise des lettres grecques majuscules pour les vecteurs g´en´eriques de H afin d’´eviter toute confusion avec des vecteurs
repr´esentant des polarisations lin´eaires comme |θi, |αi etc.1.3. FORMULATION MATHEMA ´ TIQUE : LE QU-BIT 11
ou` c
∗
est le complexe conjugu´e de c. Ce produit scalaire est donc lin´eaire par rapport a` |Φi et antilin´eaire
par rapport a` |Ψi. Il d´efinit une norme ||Φ|| du vecteur |Φi
||Φ||2 = hΦ|Φi = |λ|
2 + |µ|
2
(1.12)
Notez que les vecteurs |xi et |yi sont orthogonaux par rapport au produit scalaire (1.11) et qu’ils sont de
norme unit´e
hx|xi = hy|yi = 1 hx|yi = 0
La base {|xi, |yi} est donc une base orthonorm´ee de H. Nous allons ajouter a` la d´efinition d’un ´etat
physique la condition (commode, mais non essentielle) de normalisation
||Φ||2 = |λ|
2 + |µ|
2 = 1 (1.13)
Les ´etats de polarisation seront donc repr´esent´es math´ematiquement par des vecteurs unitaires (de norme
unit´e) de l’espace H. Un espace vectoriel muni d’un produit scalaire d´efini positif est appel´e un espace
de Hilbert, et H est l’espace de Hilbert des ´etats de polarisation.
Revenons maintenant aux amplitudes de probabilit´e. Un ´etat de polarisation lin´eaire suivant θ sera not´e
|θi et
|θi = cos θ |xi + sin θ |yi (1.14)
L’amplitude de probabilit´e pour qu’un photon polaris´e suivant θ traverse un analyseur orient´e suivant α
est, comme nous l’avons vu,
a(θ → α) = cos(θ − α) = hα|θi (1.15)
Elle est donc donn´ee par le produit scalaire des vecteurs |αi et |θi, et la probabilit´e de traverser l’analyseur
est donn´ee par le module carr´e de cette amplitude (voir (1.9))
p(θ → α) = cos2
(θ − α) = |hα|θi|2
(1.16)
De fa¸con g´en´erale on d´efinira des amplitudes de probabilit´e (“l’amplitude de probabilit´e de trouver |Φi
dans |Ψi”), ou` |Φi et |Ψi repr´esentent des ´etats de polarisation g´en´eraux, par
a(Φ → Ψ) = hΨ|Φi (1.17)
et la probabilit´e correspondante sera
p(Φ → Ψ) = |a(Φ → Ψ)|
2 = |hΨ|Φi|2
(1.18)
N.B. En fait un vecteur d’´etat n’est d´efini qu’`a une phase multiplicative pr`es
(λ, µ) ≡ e
iδ
(λ, µ)
car remplacer |Φi par
|Φ
0
i = e
iδ
|Φi
ne change pas les probabilit´es |hΨ|Φi|2
, qui sont les seules quantit´es mesurables. Une phase multiplicative
globale n’est donc pas physiquement pertinente : la correspondance n’est pas entre ´etat physique et
vecteur, mais plutˆot entre ´etat physique et rayon, c’est-`a dire un vecteur a` une phase pr`es.
Nous sommes maintenant prˆets a` aborder la question cruciale de la mesure en physique quantique.
La notion de mesure repose sur celle de pr´eparation d’un ´etat quantique et celle de test. Reprenons
l’ensemble polariseur/analyseur, en supposant que l’analyseur est orient´e suivant Ox. Si le polariseur est
aussi orient´e suivant Ox, un photon sortant du polariseur traverse l’analyseur avec une probabilit´e de
100% ; si le polariseur est orient´e suivant Oy, la probabilit´e est nulle. L’analyseur effectue un test (de la
polarisation), et le r´esultat du test est 1 ou 0. Le test permet donc de connaˆıtre l’´etat de polarisation du
photon. Mais ceci n’est pas le cas g´en´eral. Supposons que le polariseur soit orient´e suivant la direction θ
ou la direction orthogonale θ⊥
|θi = cos θ |xi + sin θ |yi
|θ⊥i = − sin θ |xi + cos θ |yi
(1.19)
Si le polariseur pr´epare par exemple le photon dans l’´etat |θi et que l’analyseur est orient´e suivant Ox,
la probabilit´e de r´eussite du test est cos2
θ. Deux remarques sont essentielles12 CHAPITRE 1. QU’EST-CE QU’UN QU-BIT ?
• Apr`es le passage dans l’analyseur, l’´etat de polarisation du photon n’est plus |θi, mais |xi. La
mesure modifie l’´etat de polarisation.
• Si le photon est polaris´e elliptiquement, et non lin´eairement
λ = cos θ µ = sin θ e
iδ
δ 6= 0
la probabilit´e de r´eussite du test est encore cos2
θ : le test ne permet pas de d´eterminer la polarisation
de fa¸con non ambigu¨e. C’est seulement si la probabilit´e de r´eussite du test est 0 ou 1 que la mesure
permet de d´eterminer l’´etat de polarisation initial. Il n’existe donc pas de test permettant de
d´eterminer a` coup sur ˆ l’´etat de polarisation (inconnu) d’un photon.
On constate donc une diff´erence de principe entre la mesure en physique classique et la mesure en
physique quantique. En physique classique, la quantit´e physique a` mesurer pr´eexiste a` la mesure : si
un radar mesure la vitesse de votre voiture a` 180 km/h sur l’autoroute, cette vitesse pr´eexistait a` sa
mesure par le gendarme (ce qui lui donne la l´egitimit´e pour verbaliser). Au contraire, dans la mesure
de la polarisation d’un photon |θi par un analyseur orient´e suivant Ox, le fait que le test donne une
polarisation suivant Ox ne permet pas de conclure que le photon test´e avait au pr´ealable sa polarisation
suivant Ox. Si l’on reprend l’analogie de la voiture, on pourrait imaginer que comme dans (1.19) la voiture
soit dans un ´etat de superposition lin´eaire de deux vitesses4
, par exemple
|vi =
r
1
3
|120km/hi +
r
2
3
|180 km/hi
Le gendarme mesurera une vitesse de 120 km/h avec une probabilit´e de 1/3 et une vitesse de 180 km/h
avec une probabilit´e de 2/3, mais il serait erron´e de penser que l’un des deux r´esultats existait avant la
mesure.
1.4 Principes de la m´ecanique quantique
Les principes de la m´ecanique quantique g´en´eralisent ce que nous avons vu dans le cas de la polarisation
d’un photon.
• Principe 1. L’´etat physique d’un syst`eme quantique est repr´esent´e par un vecteur |Φi appartenant
a` un espace de Hilbert (en g´en´eral de dimension infinie) H. Sauf mention explicite du contraire, |Φi
sera choisi unitaire : ||Φ||2 = 1.
• Principe 2. Si |Φi et |Ψi sont deux ´etats physiques, l’amplitude de probabilit´e a(Φ → Ψ) de
trouver Φ dans Ψ est donn´ee par le produit scalaire hΨ|Φi
a(Φ → Ψ) = hΨ|Φi
et la probabilit´e pour Φ de r´eussir le test Ψ est
p(Φ → Ψ) = |a(Φ → Ψ)|
2 = |hΨ|Φi|2
Pour r´ealiser le test, on doit disposer d’un premier dispositif pr´eparant le syst`eme quantique dans
l’´etat |Φi (polariseur) et d’un second dispositif capable de le pr´eparer dans l’´etat |Ψi, que l’on
utilisera comme analyseur.
Apr`es le test, le syst`eme quantique est dans l’´etat |Ψi, ce qui veut dire du point de vue math´ematique
que l’on r´ealise une projection orthogonale sur |Ψi. Soit PΨ ce projecteur. Comme5
|PΨΦi ≡ PΨ|Φi = |ΨihΨ|Φi = (|ΨihΨ|)|Φi
on peut ´ecrire ce projecteur sous la forme tr`es commode
PΨ = |ΨihΨ| (1.20)
4Bien sur ˆ on ne sait pas r´ealiser un tel ´etat avec une voiture, mais on sait tr`es bien fabriquer une particule ´el´ementaire
ou un atome dans un ´etat de superposition lin´eaire de deux vitesses.
5L’action d’un op´erateur M sur un vecteur |Φi sera ´ecrite indiff´eremment M|Φi ou |MΦi.1.4. PRINCIPES DE LA MECANIQUE ´ QUANTIQUE 13
La projection du vecteur d’´etat est appel´ee dans l’interpr´etation de Copenhague de la m´ecanique quantique
“r´eduction du vecteur d’´etat”, ou, pour des raisons historiques, “r´eduction du paquet d’ondes”.
Cette r´eduction du vecteur d’´etat est une fiction commode de l’interpr´etation de Copenhague, qui ´evite
d’avoir a` se poser des questions sur le processus de mesure, et elle est souvent ajout´ee comme principe
de base suppl´ementaire. Cependant on peut parfaitement se passer de ce principe si on prend en compte
le processus de mesure. Un exemple en sera donn´e dans la section 4.4.
Illustrons ces notions en revenant a` la polarisation. Dans la base {|xi, |yi}, les projecteurs Px et Py sur
ces ´etats de base sont
Px = |xihx| =
1 0
0 0
Py = |yihy| =
0 0
0 1
On remarque que l’op´erateur identit´e peut ˆetre ´ecrit comme la somme des deux projecteurs Px et Py
Px + Py = |xihx| + |yihy| = I
relation dite relation de fermeture, qui se g´en´eralise a` une base orthonorm´ee d’un espace de Hilbert H de
dimension N
X
N
i=1
|iihi| = I hi|ji = δij
Les projecteurs Px et Py commutent
[Px,Py] ≡ PxPy − PyPx = 0
Les tests |xi et |yi sont dits compatibles. En revanche les projecteurs sur |θi et |θ⊥i
Pθ = |θihθ| =
cos2
θ sin θ cos θ
sin θ cos θ sin2
θ
Pθ⊥ = |θ⊥ihθ⊥| =
sin2
θ − sin θ cos θ
− sin θ cos θ cos2
θ
ne commutent pas avec Px et Py, comme on le v´erifie imm´ediatement par un calcul explicite
[Px,Pθ] =
0 sin θ cos θ
− sin θ cos θ 0
Les tests |xi et |θi sont dits incompatibles.
Pour des d´eveloppements ult´erieurs, il sera utile de remarquer que la connaissance des probabilit´es de
r´eussite d’un test T permet de d´efinir une valeur moyenne hT i
hT i = 1 × p(T = 1) + 0 × p(T = 0) (= p(T = 1))
Par exemple si le test est T est repr´esent´e par la proc´edure |Ψi et qu’on l’applique a` un ´etat |Φi
p(Ψ) = |hΨ|Φi|2 = hΦ|ΨihΨ|Φi = hΦ(|ΨihΨ|Φi) = hΦ|PΨΦi (1.21)
Il est d’usage en physique quantique d’appeler valeur moyenne d’un op´erateur M dans l’´etat |Φi la
quantit´e
hΦ|MΦi ≡ hMiΦ
Au test T = |Ψi on peut donc associer le projecteur PΨ dont la valeur moyenne dans l’´etat |Φi donne
suivant (1.21) la probabilit´e de r´eussite du test.
La g´en´eralisation de cette observation permet de construire des propri´et´es physiques d’un syst`eme quantique.
Donnons un exemple en revenant au cas de la polarisation. Supposons que nous construisions (de
fa¸con tout a` fait arbitraire) une propri´et´e M d’un photon de la fa¸con suivante : M vaut +1 si le photon
est polaris´e suivant Ox et M vaut −1 si le photon est polaris´e suivant Oy. On peut associer a` la propri´et´e
physique M l’op´erateur hermitique M
M = Px − Py14 CHAPITRE 1. QU’EST-CE QU’UN QU-BIT ?
qui v´erifie bien
M|xi = +|xi M|yi = −|yi
La valeur moyenne de M est par d´efinition
hMi = 1 × p(M = 1) + (−1) × p(M = −1)
Supposons le photon dans l’´etat θ, alors la valeur moyenne hMiθ dans l’´etat |θi est
hMiθ = hθ|Pxθi − hθ|Pyθi = cos2
θ − sin2
θ = cos(2θ)
L’op´erateur M construit ci-dessus est un op´erateur hermitique (M = M†
, ou Mij = M∗
ji
), et de fa¸con
g´en´erale, les propri´et´es physiques en m´ecanique quantique sont repr´esent´ees math´ematiquement par des
op´erateurs hermitiques, souvent appel´es observables. Nous avons construit M a` partir de projecteurs,
mais r´eciproquement on peut construire les projecteurs a` partir d’un op´erateur hermitique M grˆace au
th´eor`eme de d´ecomposition spectrale.
Th´eor`eme. Soit M un op´erateur hermitique. Alors on peut ´ecrire M en fonction d’un ensemble de
projecteurs Pn qui v´erifient
M =
X
n
anPn (1.22)
PnPm = Pnδmn X
n
Pn = I (1.23)
ou` les coefficients r´eels an sont les valeurs propres de M. Les projecteurs Pn sont orthogonaux entre eux
(mais en g´en´eral ils projettent sur un sous-espace de H et non sur un seul vecteur de H) et leur somme
est l’op´erateur identit´e.
1.5 G´en´erateur quantique de nombres al´eatoires
L’utilisation des propri´et´es quantiques permet de r´ealiser exp´erimentalement des g´en´erateurs de
nombres al´eatoires, et non pseudo-al´eatoires, ce qui est essentiel pour la cryptographie quantique, comme
on le verra dans la section suivante. Un des dispositifs les plus simples utilise une lame semi-transparente,
ou s´eparateur de faisceau. Si un rayon lumineux tombe sur une lame semi-transparente, une partie de la
lumi`ere est transmise et une partie est r´efl´echie. On peut s’arranger que ceci se fasse dans des proportions
de 50%/50%. Si maintenant on diminue l’intensit´e de sorte que les photons arrivent un a` un sur la lame,
on constate que ces photons peuvent ˆetre, soit r´efl´echis et d´etect´es par D1, soit transmis et d´etect´es par
D2 (figure 1.4). Il n’y a aucune corrr´elation entre les d´etections, et on a un v´eritable jeu de pile ou face
non biais´e.
D2
D1
Fig. 1.4 – Lame semi-transparente et d´etection de photons.1.6. CRYPTOGRAPHIE QUANTIQUE 15
Un prototype a ´et´e r´ealis´e suivant ce principe par le groupe d’optique quantique de Gen`eve. Il fournit
des nombres al´eatoires au taux de 105 nombres par seconde et l’absence de biais (ou de corr´elations entre
nombres suppos´es al´eatoires) a ´et´e test´ee par des programmes standard.
1.6 Cryptographie quantique
La cryptographie quantique est une invention r´ecente fond´ee sur l’incompatibilit´e de deux bases
diff´erentes d’´etats de polarisation lin´eaire. La cryptographie usuelle repose sur une cl´e de chiffrage connue
seulement de l’exp´editeur et du destinataire. Ce syst`eme est appel´e a` cl´e secr`ete. Il est en principe tr`es
sur ˆ
6
, mais il faut que l’exp´editeur et le destinataire aient le moyen de se transmettre la cl´e sans que
celle-ci soit intercept´ee par un espion. Or la cl´e doit ˆetre chang´ee fr´equemment, car une suite de messages
cod´es avec la mˆeme cl´e est susceptible de r´ev´eler des r´egularit´es permettant le d´echiffrage du message
par une tierce personne. Le processus de transmission d’une cl´e secr`ete est un processus a` risque, et c’est
pour cette raison que l’on pr´ef`ere maintenant les syst`emes fond´es sur un principe diff´erent, dits syst`emes
a` cl´e publique, ou` la cl´e est diffus´ee publiquement, par exemple sur Internet. Un syst`eme a` cl´e publique
courant
7
est fond´e sur la difficult´e de d´ecomposer un nombre tr`es grand N en facteurs premiers, alors que
l’op´eration inverse est imm´ediate : sans calculette on obtiendra en quelques secondes 137 × 53 = 7261,
mais ´etant donn´e 7261, cela prendra un certain temps a` le d´ecomposer en facteurs premiers. Avec les
meilleurs algorithmes actuels, le temps de calcul sur ordinateur n´ecessaire pour d´ecomposer un nombre N
en facteurs premiers croˆıt avec N comme exp[(ln N)
1/3
(ln ln N)
2/3
]. Il faut aujourd’hui quelques mois a`
une grappe de PC pour factoriser un nombre de 150 chiffres. Dans le syst`eme de chiffrage a` cl´e publique,
le destinataire, appel´e conventionnellement Bob, diffuse publiquement a` l’exp´editeur, appel´e conventionnellement
Alice, un nombre tr`es grand N = pq produit de deux nombres premiers p et q, ainsi qu’un
autre nombre c (voir l’annexe 1.6.1). Ces deux nombres N et c suffisent a` Alice pour chiffrer le message,
mais il faut disposer des nombres p et q pour le d´echiffrer. Bien sur ˆ un espion (appel´e par convention
Ev` e) disposant d’un ordinateur suffisamment puissant finira par casser le code, mais on peut en g´en´eral se
contenter de conserver secret le contenu du message pendant un temps limit´e. Cependant, on ne peut pas
exclure que l’on dispose un jour d’algorithmes tr`es performants pour d´ecomposer un nombre en facteurs
premiers, et de plus, si des ordinateurs quantiques voient le jour, aucun nombre ne pourra leur r´esister.
Heureusement la m´ecanique quantique vient a` point nomm´e pour contrecarrer les efforts des espions!
“Cryptographie quantique” est une expression m´ediatique, mais quelque peu trompeuse : en effet, il ne
s’agit pas de chiffrer un message a` l’aide de la physique quantique, mais d’utiliser celle-ci pour s’assurer
que la transmission de la cl´e n’a pas ´et´e espionn´ee. Comme nous l’avons d´ej`a expliqu´e, la transmission d’un
message, chiffr´e ou non, peut se faire en utilisant les deux ´etats de polarisation lin´eaire orthogonaux d’un
photon, par exemple |xi et |yi. On peut d´ecider d’attribuer par convention la valeur 1 a` la polarisation |xi
et la valeur 0 a` la polarisation |yi : chaque photon transporte donc un bit d’information. Tout message,
chiffr´e ou non, peut ˆetre ´ecrit en langage binaire, comme une suite de 0 et de 1, et le message 1001110
sera cod´e par Alice grˆace a` la s´equence de photons xyyxxxy, qu’elle exp´ediera a` Bob par exemple par
une fibre optique. A` l’aide d’une lame bir´efringente, Bob s´epare les photons de polarisation verticale et
horizontale comme dans la figure 1.2, et deux d´etecteurs plac´es derri`ere la lame lui permettent de d´ecider
si le photon ´etait polaris´e horizontalement ou verticalement : il peut donc reconstituer le message. S’il
s’agissait d’un message ordinaire, il y aurait bien sur ˆ des fa¸cons bien plus simples et efficaces de le
transmettre ! Remarquons simplement que si Ev` e s’installe sur la fibre, d´etecte les photons et renvoie a`
Bob des photons de polarisation identique a` ceux exp´edi´es par Alice, Bob ne peut pas savoir que la ligne a
´et´e espionn´ee. Il en serait de mˆeme pour tout dispositif fonctionnant de fa¸con classique (c’est-`a-dire sans
utiliser le principe de superposition) : si l’espion prend suffisamment de pr´ecautions, il est ind´etectable.
C’est ici que la m´ecanique quantique et le principe de superposition viennent au secours d’Alice et
de Bob, en leur permettant de s’assurer que leur message n’a pas ´et´e intercept´e. Ce message n’a pas
besoin d’ˆetre long (le syst`eme de transmission par la polarisation est tr`es peu performant). Il s’agira en
g´en´eral de transmettre une cl´e permettant de chiffrer un message ult´erieur, cl´e qui pourra ˆetre remplac´ee
6Un chiffrage absolument sur ˆ a ´et´e d´ecouvert par Vernam en 1935. Cependant la s´ecurit´e absolue suppose que la cl´e soit
aussi longue que le message et ne soit utilis´ee qu’une seule fois !
7Appel´e chiffrage RSA, d´ecouvert par Rivest, Shamir et Adleman en 1977.16 CHAPITRE 1. QU’EST-CE QU’UN QU-BIT ?
a` la demande. Alice envoie vers Bob quatre types de photons : polaris´es suivant Ox : ↑ et Oy : →
comme pr´ec´edemment, et polaris´es suivant des axes inclin´es a` ±45o Ox
0
: - et Oy
0
: %, correspondant
respectivement aux valeurs 1 et 0 des bits. De mˆeme Bob analyse les photons envoy´es par Alice a` l’aide
d’analyseurs pouvant prendre quatre directions, verticale/horizontale, et ±45o
. Une possibilit´e serait
d’utiliser un cristal bir´efringent orient´e al´eatoirement soit verticalement, soit a` 45o de la verticale et
de d´etecter les photons sortant de ce cristal comme dans la figure 1.3. Cependant, au lieu de faire
tourner l’ensemble cristal+d´etecteurs, on utilise plutˆot une cellule de Pockels, qui permet de transformer
une polarisation donn´ee en une polarisation orient´ee de fa¸con arbitraire et de maintenir fixe l’ensemble
cristal+d´etecteur. La figure 1.5 donne un exemple : Bob enregistre 1 si le photon est polaris´e ↑ ou -, 0 s’il
est polaris´e → ou %. Apr`es enregistrement d’un nombre suffisant de photons, Bob annonce publiquement
la suite des analyseurs qu’il a utilis´es, mais non ses r´esultats. Alice compare sa s´equence de polariseurs a`
celle de Bob et lui donne toujours publiquement la liste des polariseurs compatibles avec ses analyseurs.
Les bits qui correspondent a` des analyseurs et des polariseurs incompatibles sont rejet´es (−), et, pour les
bits restants, Alice et Bob sont certains que leurs valeurs sont les mˆemes : ce sont les bits qui serviront
a` composer la cl´e, et ils sont connus seulement de Bob et Alice, car l’ext´erieur ne connaˆıt que la liste des
orientations, pas les r´esultats! Le protocole d´ecrit ci-dessus est appel´e BB84, du nom de ses inventeurs
Bennett et Brassard.
1
polariseurs d’Alice
analyseurs de Bob
mesures de Bob
bits retenus
1 1 0 1 0 0 1 1 1
s´equences de bits 1 0 0 1 0 0 1 1 1
1 − − 1 0 0 − 1
Fig. 1.5 – Cryptographie quantique : transmission de photons polaris´es entre Bob et Alice.
Il reste a` s’assurer que le message n’a pas ´et´e intercept´e et que la cl´e qu’il contenait peut ˆetre utilis´ee sans
risque. Alice et Bob choisissent au hasard un sous-ensemble de leur cl´e et le comparent publiquement. La
cons´equence de l’interception de photons par Ev` e serait une r´eduction de la corr´elation entre les valeurs
de leurs bits : supposons par exemple qu’Alice envoie un photon polaris´e suivant Ox. Si Ev` e l’intercepte
avec un polariseur orient´e suivant Ox
0
, et que le photon est transmis par son analyseur, elle ne sait pas
que ce photon ´etait initialement polaris´e suivant Ox ; elle renvoie donc a` Bob un photon polaris´e dans la
direction Ox
0
, et dans 50% des cas Bob ne va pas trouver le bon r´esultat. Comme Ev` e a une chance sur
deux d’orienter son analyseur dans la bonne direction, Alice et Bob vont enregistrer une diff´erence dans
25% des cas et en conclure que le message a ´et´e intercept´e. Cette discussion est bien sur ˆ simplifi´ee : elle ne
tient pas compte des possibilit´es d’erreurs qu’il faut corriger, et d’autre part il faut r´ealiser des impulsions
a` un seul photon et non des paquets d’´etats coh´erents qui ne seraient pas inviolables.8
. N´eanmoins la
m´ethode est correcte dans son principe et un prototype a ´et´e r´ealis´e r´ecemment pour des transmissions
dans l’air sur plusieurs kilom`etres. Il est difficile avec une fibre optique de contrˆoler la direction de la
polarisation sur de longues distances, et c’est pourqui on utilise un support physique diff´erent pour mettre
en oeuvre le protocole BB84 avec des fibres. Dans ces conditions la transmission a pu ˆetre effectu´ee sur
une centaine de kilom`etres.
Annexe 1.6.1 : le codage RSA. Bob choisit deux nombres premiers p et q, N = pq, et un nombre c
n’ayant pas de diviseur commun avec le produit (p − 1)(q − 1). Il calcule d qui est l’inverse de c pour la
8Dans le cas de transmission de photons isol´es, le th´eor`eme de non clonage quantique (§ 6.3.2) garantit qu’il est impossible
a` Ev` e de tromper Bob, mˆeme s’il lui est possible de faire moins de 50% d’erreurs en utilisant une technique d’interception
plus sophistiqu´ee.1.6. CRYPTOGRAPHIE QUANTIQUE 17
multiplication modulo (p − 1)(q − 1)
cd ≡ 1 mod (p − 1)(q − 1)
Il envoie a` Alice par une voie non s´ecuris´ee les nombres N et c (mais pas p et q s´epar´ement!). Alice veut
envoyer a` Bob un message cod´e, qui doit ˆetre repr´esent´e par un nombre a < N (si le message est trop
long, Alice le segmente en plusieurs sous messages). Elle calcule ensuite
b ≡ a
c mod N
et envoie b a` Bob. Quand Bob re¸coit le message il calcule
b
d mod N = a (!)
Le fait que le r´esultat soit pr´ecis´ement a, c’est-`a dire le message original d’Alice, est un r´esultat de th´eorie
des nombres. En r´esum´e, sont envoy´es sur voie publique, non s´ecuris´ee, les nombres N, c et b.
Exemple.
p = 3 q = 7 N = 21 (p − 1)(q − 1) = 12
c = 5 n’a aucun facteur commun avec 12, et son inverse par rapport a` la multiplication modulo 12 est
d = 5 car 5 × 5 = 24 + 1. Alice choisit pour message a = 4. Elle calcule
4
5 = 1024 = 21 × 48 + 16 4
5 = 16 mod 21
Alice envoie donc a` Bob le message 16. Bob calcule
b
5 = 165 = 49.932 × 21 + 4 165 = 4 mod 21
et Bob r´ecup`ere donc le message original a = 4.18 CHAPITRE 1. QU’EST-CE QU’UN QU-BIT ?Chapitre 2
Manipulations d’un qu-bit
Dans le chapitre pr´ec´edent, j’ai examin´e un qu-bit a` un instant d´etermin´e. Dans un espace de Hilbert
H, ce qu-bit est d´ecrit par un vecteur unitaire |ϕi
|ϕi = λ|0i + µ|1i |λ|
2 + |µ|
2 = 1 (2.1)
J’ai choisi une base orthonorm´ee {|0i, |1i} de H et d´ecompos´e le vecteur |ϕi suivant cette base. Je me
propose maintenant d’examiner l’´evolution temporelle de ce qu-bit, ce qui expliquera comment nous
pourrons le manipuler.
2.1 Sph`ere de Bloch, spin 1/2
Avant de passer a` cette ´evolution temporelle, je voudrais donner une description un peu plus g´en´erale
du qu-bit et de ses r´ealisations physiques. J’ai choisi en ´ecrivant (2.1) une base orthonorm´ee {|0i, |1i} de
H, et les coefficients λ et µ peuvent ˆetre param´etr´es, compte tenu de l’arbitraire de phase, par
λ = e
−iφ/2
cos
θ
2
µ = e
iφ/2
sin
θ
2
(2.2)
Les deux angles θ et φ peuvent ˆetre consid´er´es comme des angles polaires et azimutal, et (θ, φ) param`etrent
la position d’un point sur la surface d’une sph`ere de rayon unit´e, appel´ee sph`ere de Bloch (ou sph`ere de
Poincar´e pour le photon) (figure 2.1).
Si l’on revient a` la polarisation d’un photon en identifiant |0i → |xi et |1i → |yi, les ´etats |xi et |yi
correspondent aux pˆoles nord et sud de la sph`ere
|xi : θ = 0, φ ind´etermin´e |yi : θ = π, φ ind´etermin´e
tandis que les polarisations circulaires correspondent a` des points sur l’´equateur
|Di : θ =
π
2
, φ =
π
2
|Gi : θ =
π
2
, φ = −
π
2
Une autre r´ealisation physique importante du qu-bit est le spin 1/2. La RMN (R´esonance Magn´etique
Nucl´eaire) et l’IRM (Imagerie par R´esonance Magn´etique...nucl´eaire1
) reposent sur le fait que le proton
poss`ede un spin 1/2, ce que l’on met en ´evidence de la fa¸con suivante : on fait passer un faisceau de
particules2 de spin 1/2 dans un champ magn´etique orient´e suivant une direction nˆ perpendiculaire a` la
direction du faisceau. On constate que le faisceau se scinde en deux sous-faisceaux, l’un est d´evi´e dans
la direction nˆ, l’autre dans la direction oppos´ee −nˆ. C’est l’exp´erience de Stern-Gerlach (figure 2.2, avec
nˆ k Oz), qui est tr`es analogue dans son principe a` la s´eparation d’un rayon de lumi`ere naturelle en deux
1L’adjectif “nucl´eaire”, politiquement incorrect, a ´et´e supprim´e pour ne pas effrayer le grand public...
2Toutefois on doit utiliser des atomes neutres et non des protons, sinon les effets seraient masqu´es par des forces dues
aux charges, et de plus le magn´etisme nucl´eaire est trop faible pour ˆetre mis en ´evidence dans une telle exp´erience.
1920 CHAPITRE 2. MANIPULATIONS D’UN QU-BIT
|π/4i
x
y
O
θ
φ
z |xi
|Di
|Gi
|yi
| − π/4i
P
Fig. 2.1 – Sph`ere de Bloch.
rayons par un cristal bir´efringent. On peut imaginer l’analogue d’une exp´erience analyseur/polariseur avec
un spin 1/2 (figure 2.3). Toutefois on remarque que la situation polariseur/analyseur crois´es correspond
a` θ = π et non a` θ = π/2 comme dans le cas des photons3
. On construit une base de H en prenant pour
vecteur de base les vecteurs |+i et |−i, qui correspondent aux ´etats pr´epar´es par un champ magn´etique
parall`ele a` Oz. Suivant (2.1) et (2.2), l’´etat de spin 1/2 le plus g´en´eral est
|ϕi = e
−iφ/2
cos
θ
2
|+i + e
iφ/2
sin
θ
2
|−i (2.3)
et on montre4 que cet ´etat est celui s´electionn´e par un champ mag´etique parall`ele a` nˆ, avec
nˆ = (sin θ cos φ,sin θ sin φ, cos θ) (2.4)
La sph`ere de Bloch poss`ede dans ce cas une interpr´etation g´eom´etrique ´evidente : le spin 1/2 d´ecrit par
le vecteur (2.3) est orient´e suivant la direction nˆ.
Nous avons vu que les propri´et´es physiques des qu-bits ´etaient repr´esent´es par des op´erateurs hermitiques.
Une base commode pour ces op´erateurs est celle des matrices de Pauli
σ1 (ou σx) =
0 1
1 0
σ2 (ou σy) =
0 −i
i 0
σ3 (ou σz) =
1 0
0 −1
(2.5)
Ces matrices sont hermitiques (et aussi unitaires) et toute matrice 2 × 2 hermitique M peut s’´ecrire
comme
M = λ0I +
X
3
i=1
λiσi (2.6)
avec des coefficients r´eels. Les matrices de Pauli v´erifient les importantes propri´et´es suivantes
σ
2
i = I σ1σ2 = iσ3 + perm. circ. (2.7)
3Le photon a un spin 1, et non 1/2 !
4Ceci est une cons´equence de l’invariance par rotation : voir Physique quantique, chapitre 3.2.2. EV´ OLUTION DYNAMIQUE 21
aimant
four
fentes collimatrices
N
S ∇~ Bz
z
y x
Fig. 2.2 – Exp´erience de Stern-Gerlach.
(a)
(b)
E
E
|+i
|+i
|+i
Fig. 2.3 – Polariseurs crois´es pour le spin 1/2.
Les ´etats |+i et |−i sont vecteurs propres de σz avec les valeurs propres ±1
|+i =
1
0
|−i =
0
1
σz|±i = ±|±i (2.8)
et on v´erifie imm´ediatement que le vecteur |ϕi (2.3) est vecteur propre de
~σ · nˆ = σxnx + σyny + σznz
avec la valeur propre +1
~σ · nˆ =
cos θ e
−iφ
sin θ
e
iφ
sin θ − cos θ
(2.9)
Nous venons de voir la r´ealisation physique d’un qu-bit par un spin 1/2, mais il en existe bien d’autres,
comme par exemple un atome a` deux niveaux. Dans tous les cas on aura un espace de Hilbert de
dimension 2, et l’´etat d’un qu-bit pourra toujours ˆetre repr´esent´e par un point sur la sph`ere de Bloch.
Revenant a` la notation {|0i, |1i}, on pourra (par exemple) faire l’identification |+i → |0i et |−i → |1i.
2.2 Ev´ olution dynamique
Nous introduisons explicitement le temps, en supposant que (2.1) est valable a` t = 0
|ϕ(t = 0)i = λ(t = 0)|0i + µ(t = 0)|1i (2.10)
Nous allons supposer (Principe n
o 3) que la transformation
|ϕ(0)i → |ϕ(t)i22 CHAPITRE 2. MANIPULATIONS D’UN QU-BIT
est lin´eaire et que la norme de |ϕi reste ´egale a` l’unit´e
5
|ϕ(t)i = λ(t)|0i + µ(t)|1i (2.11)
|λ(t)|
2 + |µ(t)|
2 = 1 (2.12)
La transformation |ϕ(0)i → |ϕ(t)i est donc une transformation unitaire U(t, 0)
|ϕ(t)i = U(t, 0)|ϕ(t = 0)i
En g´en´eral
|ϕ(t2)i = U(t2,t1)|ϕ(t1)i U
†
(t2,t1) = U
−1
(t2,t1) (2.13)
De plus U doit ob´eir a` la propri´et´e de groupe
U(t2,t1) = U(t2,t
0
)U(t
0
,t1) (2.14)
et enfin U(t,t) = I. Utilisons la propri´et´e de groupe et un d´eveloppement de Taylor avec dt infinit´esimal
pour ´ecrire
U(t + dt,t0) = U(t + dt,t)U(t,t0)
U(t + dt,t0) ' U(t,t0) + dt
d
dt
U(t,t0)
U(t + dt,t)U(t,t0) '
I − i dtHˆ (t)
U(t,t0)
ou` nous avons d´efini l’op´erateur Hˆ (t), le hamiltonien, par
Hˆ (t) = i
dU(t
0
,t)
dt
0
t
0=t
(2.15)
La pr´esence du facteur i assure que Hˆ (t) est un op´erateur hermitique. En effet
I = U
†
(t + dt,t)U(t + dt,t) ' [I + i dtHˆ †
(t)][I − i dtHˆ (t)] ' I + i dt(Hˆ † − Hˆ )
ce qui implique Hˆ = Hˆ †
. On d´eduit de ce qui pr´ec`ede l’´equation d’´evolution (aussi appel´ee ´equation de
Schr¨odinger)
i
dU(t,t0)
dt
= Hˆ (t)U(t,t0) (2.16)
Comme Hˆ est un op´erateur hermitique, c’est une propri´et´e physique, et de fait Hˆ n’est autre que
l’op´erateur ´energie du syt`eme. Dans le cas fr´equent ou` la physique est invariante par translation de
temps, l’op´erateur U(t2,t1) ne d´epend que de la diff´erence (t2 − t1) et H est ind´ependant du temps.
Illustrons ceci par la RMN (ou l’IRM). Dans une premi`ere ´etape les spins 1/2 sont plong´es dans un champ
magn´etique intense (∼ 1 Tesla, 1 Tesla= 104 gauss, environ 104
fois le champ magn´etique terrestre, c’est
pourquoi il vaut mieux ne pas garder sa montre pour passer une IRM !) ind´ependant du temps. Le
hamiltonien est alors ind´ependant du temps, et comme il est hermitique, il est diagonalisable dans une
certaine base
Hˆ =
ωA 0
0 ωB
(2.17)
ωA et ωB sont les niveaux d’´energie du spin 1/2. Si le champ magn´etique est parall`ele a` Oz, les vecteurs
propres de Hˆ ne sont autres que les vecteurs de base |+i ≡ |0i et |−i ≡ |1i. Comme Hˆ est ind´ependant
du temps, l’´equation d’´evolution (2.16)
i
dU
dt
= HˆU
5Cette seconde condition semble aller de soi, mais elle suppose en fait que tous les degr´es de libert´e quantiques soient
pris en compte dans H : l’´evolution n’est pas en g´en´eral unitaire lorsque le qu-bit est seulement une partie d’un syst`eme
quantique plus vaste et que l’espace de Hilbert des ´etats est plus grand que H. Le fait que la transformation soit lin´eaire
peut ˆetre d´eduit d’un duˆ a` th´eor`eme de Wigner : voir Physique quantique, chapitre 8.
Cours ”la Culture informatique”. Composant r´egional
de l’enseignement scolaire en Russie
Efim Kogan, Yuri Pervin
To cite this version:
Efim Kogan, Yuri Pervin. Cours ”la Culture informatique”. Composant r´egional de
l’enseignement scolaire en Russie. Revue de l’EPI (Enseignement Public et Informatique), 1996,
pp.161-176. .
HAL Id: edutice-00001152
https://edutice.archives-ouvertes.fr/edutice-00001152
Submitted on 15 Nov 2005
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.161
LA REVUE DE L'EPI N° 83 LA CULTURE INFORMATIQUE
COURS “LA CULTURE INFORMATIQUE”-
composant régional de l’enseignement scolaire
en Russie
E. KOGAN, Y. PERVINE
Résumé et commentaire destinés au lecteur français
Malgré l’apparition d’un nombre important d’écoles secondaires y
compris d’écoles privées de formes diverses, dans le l’enseignement public
de la Russie, les écoles d’état ont conservé leur rôle dominant. Après la
destruction de l’Union Soviétique et l’affaiblissement du rôle de Ministère
de l’Education en Russie, c’est aux régions que revient le rôle de résolution
des problèmes globaux. Les professeurs E. Kogan, chef du département
d’enseignement dans la région de Samara et Y. Pervine, coordinateur du
projet “la Culture informatique” proposent leur méthode d’approche
d’informatisation de l’enseignement public à Samara, une des régions les
plus développées de la Russie. Suite au congrès consacré à
l’informatisation de l’enseignement dans les écoles qui a eu lieu à Samara
en Octobre 1994, il s’est avéré que bon nombre d’autres régions de la Russie
soient intéressées à ce projet. Le texte présenté ici a été préparé pour ce
Congrès.
Dans toutes les écoles de la Russie, une heure par semaine peut être
consacrée à discuter avec les écoliers des problèmes les plus actuels dans
leur ville, dans leur région. L’utilisation de cette heure peut être variée.
Par exemple, à Samara cette heure est consacrée à la préparation d’une
nouvelle génération informatisée.
Depuis 1985, un nouveau cours d’informatique a été créé dans toutes
les écoles de l’Union Soviétique. Dans la lignée des études, ce cours
avait lieu pendant les deux dernières années d'études. Cependant l'enseignement
de l’informatique de la première à la onzième classe comme cela
se passe à Samara est une première.
La formation des enseignants s’effectue dans les instituts de perfectionnement
des professeurs qui existent dans chaque ville régionale.162
E. KOGAN, Y. PERVINE LA REVUE DE L'EPI
Parmi la grande variété d’ordinateurs que possèdent les écoles en
Russie, ce sont les IBM PC qui sont surtout utilisés, bien qu’ils ne soient
pas toujours bien configurés.
Le système de numérotation des classes en Russie diffère du système
français : les enfants commencent leur vie scolaire en première classe (7
ans) jusqu’à la 11ème qui est l’année de promotion. Il existe deux variantes
de l’enseignement élémentaire : trois années pour les élèves forts et
quatre années pour les enfants de niveau moyen.
1. REMARQUES PRÉLIMINAIRES
Aujourd’hui on voit nettement se détacher une nouvelle société
informatisée. Dans les conditions actuelles les exigences requises auprès
de la nouvelle génération par rapport à celles présentées il y a un quart
de siècle de cela ont changé. Aujourd’hui un jeune homme doit posséder
des connaissances des nouvelles technologies. Il doit pouvoir maîtriser
des problèmes tels que :
- planification de son activité,
- recherche d’une information nécessaire pour la résolution d’un
problème donné,
- projet et construction des modèles informatiques,
- discipline de communication et structure des messages,
- instrumentation de tous les aspects de l’activité humaine, mise en
pratique des moyens techniques modernes dans la vie quotidienne,
industrielle, artistique.
L’ensemble de toutes ces connaissances, capacités et pratiques
nouvelles composent un nouveau style de pensée opérationnel. L’école
actuelle est équipée d’un fond informatique et de techniques de calcul
modernes qui ont pour but de transmettre un nouveau style de pensée à
l’étudiant.
Un homme capable de travailler sur un système informatique, avec
des bases de données et des tableurs électroniques, sur des réseaux
d’information locaux et globaux, acquiert non seulement une maîtrise des
nouvelles technologies, mais surtout une nouvelle vision du monde. Le
niveau culturel de ce jeune homme caractérise la notion de culture
informatique qui doit commencer à être enseignée dès les premières
leçons. 163
LA REVUE DE L'EPI LA CULTURE INFORMATIQUE
Le problème qui se pose pour la formation de la Culture
informatique est qu’elle repose sur une commande sociale de la société
informatisée moderne. Aujourd’hui on pose des conditions bien définies
pour la résolution de ces problèmes :
- L’ordinateur personnel cesse d’être un objet exotique à l’école mais
devient un instrument de travail quotidien dans l’activité scolaire.
- Il y a eu accumulation d’expérience dans l’enseignement des bases de
l’informatique et de l’utilisation des ordinateurs à des enfants d’âges
différents.
- Le système de formation a reçu une grande liberté dans l’élaboration
des programmes et des plans d’étude.
- L’heure régionale permet d’orienter le processus d’enseignement vers
les problèmes les plus actuels pour la région.
On a pour la suite une description du développement de ce cours qui a
déjà été largement implanté dans les écoles de la région de Samara dès
l’année scolaire 1994-1995.
2. QU’EST-CE QUE LE COURS “LA CULTURE INFORMATIQUE”
?
En projetant le cours “la Culture informatique”, il faut tenir
compte des conditions réelles qu’il impliquera quand il s’introduira à
l’école. On a déjà dégagé précédemment certaines exigences de ce cours.
Bien que la plupart de ces exigences soient d’ordre conjoncturel, il est
impossible de les nier. Les exigences sont regroupées en plusieurs
groupes. La classification de ces exigences est assez conventionnelle.
2.1. Les exigences méthodologiques
1) Il s’agit d’un cours qui serait obligatoire dans les écoles
d’enseignement général. Il élimine a priori l’orientation professionnelle
en faveur d’une orientation philosophique. A partir de là le but du cours
serait de fournir un mode de pensée, qui irait de pair avec la société
informatisée moderne.
2) Dans les discussions sur l’approche procédurale et fonctionnelle
pour l’enseignement de l’informatique (la discipline principale du cours)
“la Culture informatique” doit s’en tenir à son juste milieu : l’initiation
aux paquets de programmes appliqués (éditeurs, bases de données,164
E. KOGAN, Y. PERVINE LA REVUE DE L'EPI
tableurs) tient une grande place dans l'enseignement, mais ne doit pas
abaisser le niveau d’apprentissage des connaissances fondamentales
d’informatique et des structures de gestion et de données.
3) Les connaissances et les savoirs reçus dans ce cours formeront
l'arsenal de l’art de planification au sens large du terme (qui ne se limite
pas aux capacités techniques de la programmation). Les techniques de
planification (et surtout la procédure décroissante de construction) sont
les bases de nombreux thèmes du cours “la Culture informatique” qui se
développeront tout au long des années d’étude.
4) Le cours “la Culture informatique” est une discipline obligatoire
dans les écoles d'enseignement général. Aucune restriction élitiste n’est
admise lors de l'introduction de ce cours à l’école. Il doit être accessible à
tout écolier de niveau moyen.
La recherche d’élèves talentueux se fera au niveau des relations
individuelles entre le professeur et l’élève.
5) Les formes collectives d’enseignement sont réalisées de façons
maximale dans ce cours. Un des buts du cours : enseigner à l’écolier à se
sentir responsable de la décision à prendre devant le groupe. D’autre
part, l’organisation de l’enseignement et plus particulièrement les projets
et exercices informatiques démontrent à l’étudiant la possibilité de puiser
dans les solutions du groupe.
6) L’ordinateur se présente devant les enfants comme une machine
d’information universelle et non pas comme une calculatrice. Le cours a
pour but de démontrer qu’un ordinateur est un instrument qui facilite,
améliore et organise la communication entre les hommes.
7) Le cours doit contribuer à l’humanisation de l’enseignement de
façon directe ou indirecte. En examinant les différents procédés informatiques,
le cours “la Culture informatique” enseigne les structures des oeuvres
littéraires et musicales et il montre les détails et techniques graphiques
mais permet également de développer le côté émotionnel de l’enfant
sans oublier le contenu sémantique.
8) Les outils informatiques du cours ainsi que de nombreux procé-
dés d’enseignement ont pour but d’assurer la recherche scientifique et
artistique. Les enfants apprennent la pratique de construction, de mise
en forme et de soutenance de la recherche scientifique. Les élèves organisent
des concerts, impriment des journaux muraux, éditent des recueils165
LA REVUE DE L'EPI LA CULTURE INFORMATIQUE
de leurs oeuvres, préparent leurs expositions de dessins au moyen de
rédacteurs informatiques, de bases de données, de systèmes d’édition.
9) Le principe de spirale didactique est un des facteurs de la
structuration en méthodologie de la plupart des disciplines scolaires :
d’abord on apprend des notions fondamentales à l’étape de l’éducation
primaire, puis on les développe dans les classes centrales de l’école secondaire,
enfin on passe à la généralisation scientifique pour les classes de
promotion. On peut observer la même spirale dans le cours "la Culture
informatique" : d’abord les exécuteurs les plus simples à gestion directe,
puis l’ordinateur qui joue le rôle d’un dispositif gérant des exécuteurs,
enfin les moyens informatiques (la programmation) de la gestion.
2.2. Les exigences pédagogiques
10) On pourrait discuter d’un idéal de l’enseignement primaire
informatisé après une radicale restructuration du contenu de
l’enseignement et des méthodes. Une telle approche exigerait aujourd’hui
beaucoup de temps et d'énormes ressources.
Afin de faciliter la construction du cours, les auteurs du cours ont
reçu une autorisation qui leur permettrait de ne pas respecter de façon
stricte les exigences interdisciplinaires. Cependant les auteurs n'ont pas
profité de cette possibilité pour des raisons :
premièrement à cause du stéréotype pédagogique de pensée des
constructeurs du logiciel ;
deuxièmement parce que les liaisons interdisciplinaires sont si
organiques que le refus de les représenter compliquerait
l’élaboration du cours au lieu de la simplifier.
11) Parmi les disciplines scolaires qui sont comprises dans le cours
“la Culture informatique”, il faut absolument parler de l’informatique.
C’est pourquoi une des plus importantes questions sur la mise en
place du cours “la Culture informatique” est sa corrélation avec le cours
d’informatique standard. Dans les deux à quatre prochaines années (la
période de transition) ces deux cours coexisteront.
Une fois que la mise en place du cours “la Culture informatique”
sera faite dans toutes les classes jusqu’à la onzième, le cours d'informatique
standard pourra alors être éliminé. Les craintes que l’on serait susceptible
d’avoir face à l’introduction récente d’examens en informatique à
l'entrée de plusieurs universités et écoles supérieures n’ont pas lieu166
E. KOGAN, Y. PERVINE LA REVUE DE L'EPI
d’être. En effet le bagage des connaissances que reçoivent les enfants
pendant le cours “la Culture informatique’ dépasse les exigences requises
pour cet examen.
12) En tenant compte de la valeur propre du cours “la Culture
informatique”, de son contenu original, de sa structure non conventionnelle,
il est indispensable de concevoir un support au cours par des
manuels et matériaux didactiques ; en effet les manuels et systèmes
didactiques existants ne peuvent être utilisés, même comme solution
palliative.
13) Le facteur le plus important du cours est le contingent des professeurs
qui introduiront ce cours à l’école.
Les étapes de l’éducation primaire (classes de 1ère à 3ème ou 1ère
à 4ème) devront être dirigées par le même instituteur, qui enseignera les
disciplines de base.
Ainsi les matériels didactiques orientés vers l’instituteur devront
respecter le niveau spécifique d’un instituteur de l’école primaire. Ce
niveau ne prend pas en compte la connaissance de la programmation, des
systèmes d’exploitation et des programmes professionnels appliqués. Le
matériel didactique doit être détaillé et accessible à l'instituteur.
14) Le professeur d’informatique est chargé du cours "la Culture
informatique". D’une part, cela assure le niveau indispensable de qualification.
D’autre part, la participation du professeur d’informatique à ce
cours renforcera le prestige de sa discipline. Enfin, cette augmentation de
sa charge de travail par une discipline qui lui donne toutes les possibilités
de manifester son individualité créative servira au professeur de stimulant
moral et matériel.
15) Tous les composants du cours “la Culture informatique” sont
orientés vers le système traditionnel. Etant donné que les classes sont
généralement équipées de 10 à 15 ordinateurs personnels il faudra absolument
utiliser la documentation administrative qui permettra de diviser
les groupes en deux sous-groupes pour les leçons d’informatique.
2.3. Exigences de l’ordre de l’organisation
16) Le cours se compose de 11 modules, chacun correspondant à
une année scolaire. Afin d’obtenir un effet le plus rapidement possible, on
prévoit dans le cours quelques “points d’entrées” - des modules (années167
LA REVUE DE L'EPI LA CULTURE INFORMATIQUE
d’étude) avec lesquels on pourrait entamer le cours “la Culture
informatique”.
Il est évident que si le point d’entrée (voir 2.1.4 "Structure d'implantation
du cours") est éloigné de la 1ère classe, l’enseignant qui
abordera le cours devra être vigilant et compléter les lacunes éventuelles.
Les manuels et les matériels didactiques pour les classes des points
d’entrées prévoient différentes variantes d’introduction du cours aux
enfants. On peut trouver inutile d’écrire deux ou trois assortiments des
matériaux didactiques pour chaque point d’entrée. Chaque manuel doit
contenir différentes variantes des premiers paragraphes dans lesquels on
expose les résumés des modules précédents, qui seront adaptés à chaque
point d’entrée.
17) Le volume de chaque module est déterminé par la notion de
l’heure régionale. Il compte 32 heures pour une année scolaire. Ainsi le
volume général du cours “la Culture informatique” de la 1ère à la
dernière classe s’évalue à 320 (ou 352) heures.
18) La remise à niveau des instituteurs qui ne se pratiquait pas
auparavant est une étape complexe qui exige un travail énorme. Les professeurs
qui seront les pionniers dans l’enseignement du cours “la
Culture informatique” ne possèdent bien souvent pas suffisamment de
manuels et de matériels didactiques pendant ces cours de formation. Ils
n’ont accès qu’à des fichiers textes ou à des maquettes de documentation
technique. C’est pour cette raison que l’un des premiers documents
administratifs préparé pour le projet “la Culture informatique” a été le
plan méthodologique détaillé des études pour les séminaires de formation
des enseignants. Le plan de séminaire est prévu pour les instituts
régionaux de perfectionnement des enseignants. Il a été élaboré avec la
participation des auteurs des systèmes méthodologiques et du logiciel.
19) La salle prévue pour le cours est la classe d’informatique.
L’utilisation de cette salle pour les cours d’informatique standard (deux
dernières années scolaires) et pour certaines leçons informatisées des différentes
disciplines rend l’horaire de cette classe extrêmement chargé. Le
choix de cette classe pour le cours de la Culture informatique ne fait
qu’augmenter les problèmes.
La création d’une classe spécifique au cours “la Culture
informatique” serait la solution la plus rationnelle. Un autre problème
d’ordre ergonomique s’ajoute. En effet les jeunes enfants ne peuvent pas
travailler aux tables destinées aux adultes. Le cours “la Culture168
E. KOGAN, Y. PERVINE LA REVUE DE L'EPI
informatique” souhaité dans les classes primaires ne fait qu’aggraver les
problèmes de la classe d’informatique.
20) Il est nécessaire de prévoir pour les enfants qui suivent le cours
une participation aux camps d’été, où ils trouveront simultanément du
repos et une rencontre avec des ordinateurs et systèmes informatiques,
dans des conditions nouvelles et plus confortables.
Il est utile de prévoir de tels camps d’été équipés d'ordinateurs
surtout pour la période d’implantation du cours "la Culture
informatique".
Le programme de travail extra scolaire avec des enfants dans le
domaine de l’informatique doit être élaboré en association avec le contenu
du cours “la Culture informatique”.
2.4. Exigences techniques
21) Des programmes professionnels et éducatifs adaptés, sont en
proportion équivalente dans le cours. Il est évident que les programmes
originaux prédominent à l’école primaire, tandis que l’enseignement des
élèves de promotion inclut la connaissance de certains systèmes informatiques
professionnels.
D’ailleurs l’utilisation des moyens professionnels de programmation
par les écoliers n’implique pas leur orientation vers l’étude de la
documentation des programmes. Dans ce cas aussi on prépare les maté-
riels didactiques spécialement pour les élèves de l’école publique classique.
22) Le type d’ordinateurs recommandés pour le cours “la Culture
informatique” était à priori déterminé. Il s’agit d’ordinateurs PC et de
machines compatibles. La configuration minimum comporte une mémoire
centrale de 640 Ko et des moniteurs avec des adapteurs EGA ou supé-
rieurs (pour plusieurs types d’ordinateurs russes et en particulier pour
des ordinateurs avec les moniteurs CGA cette condition est trop restrictive).
23) Le rôle des ordinateurs dans l’organisation des fonctions communicatives
en société informatisée est fondamental, et les problèmes de
communication avec l’aide d'ordinateurs doivent être abordés dans le
cours.
Le réseau local est bien souhaitable en classe. En plus, simultané-
ment à la solution des questions administratives et techniques de169
LA REVUE DE L'EPI LA CULTURE INFORMATIQUE
l’introduction du cours "la Culture informatique", il est important
d’établir les modems dans toutes les écoles de la région pour assurer des
communications à travers les réseaux globaux (ou, au moins, à travers le
réseau régional du système d’éducation nationale).
En même temps il est clair que l’introduction des réseaux dans
toutes les écoles sans exception (même dans les régions développées) est
une perspective à long terme. C’est pourquoi pendant les études des problèmes
de communication on utilise les moyens de simulation des
réseaux locaux.
24) Le principe de simulation des situations réelles se réalise parfois
dans les classes supérieures : en admettant l’absence de modems
dans les écoles et l'impossibilité d'accéder aux réseaux globaux
d’information, le cours doit néanmoins argumenter l’actualité des communications
informatiques et former des acquis de base des communications
intermachines. Les conditions techniques (minimum) citées ci-dessus
sont considérablement restrictives pour les communications réelles.
Dans toutes les situations identiques la simulation comme principe
méthodologique devient l’unique possibilité.
3. STRUCTURE GÉNÉRALE DU COURS “LA CULTURE INFORMATIQUE”
DANS LE CADRE DE L’HEURE RÉGIONALE (1-11)
1ère classe
Ton ami l’ordinateur
Introduction élémentaire à la pratique du dialogue avec
l’ordinateur. L’ordinateur aux leçons de mathématiques et de langue
maternelle.
Les programmes de l'entraînement les plus simples de l’interface
clavier et souris. Les exercices de calculs directs et inverses, la composition
du nombre et l’arithmétique la plus simple. Les exercices avec les
programmes des systèmes "Le Petit", "Le voyage au Pays d’Abécédaire",
"Robotland+".
Pour le module de la première classe on prévoit un livret illustré.
“Ton ami l’ordinateur” destiné aux enfants, le matériel didactique pour
l’instituteur et des instructions pour les utilisateurs des programmes.170
E. KOGAN, Y. PERVINE LA REVUE DE L'EPI
2ème classe
Ensembles, éléments et indices.
Les premières notions sur ensemble, sous-ensemble et leurs élé-
ments. La régularité et l’ordre. La classification et la construction.
L’ordinateur aux leçons de mathématiques et de langue maternelle.
Les jeux et les exercices sur la classification, l'entraînement de la
mémoire et la construction, basés sur les programmes des paquets "Les
Classificateurs" et "Le Petit".
Il y a un recueil illustré de problèmes pour les enfants avec des
exercices de classification, d’analyse des indices caractéristiques de
l’ensemble, de construction et d'entraînement de la mémoire. Le matériel
didactique pour l’instituteur est construit avec les commentaires méthodologiques
pour chaque leçon.
3ème classe
Algorithmes
Les algorithmes autour de nous. Les modèles informatiques.
Les notions de commande et d’algorithme sont considérées et discutées
en détail. Les exercices avec des programmes de la section “Les
études algorithmiques” du système Robotland+, des paquets "Le Petit" et
"L'Arithmétique". Les instruments informatiques des leçons de mathé-
matiques.
Le livre pour les enfants et le matériel didactique pour l’instituteur
basés sur le système Robotland+ est en préparation.
4ème classe
L’ordinateur aide à réfléchir
La notion de l'exécuteur et des moyens de gestion. Reconnaissances
des régularités et recherche des algorithmes ; la méthode de la boite
noire.
Le schéma général d’étude des exécuteurs. Enseignement préparatoire
des structures de gestion. Solution des problèmes combinatoires et
construction des exécuteurs. Les exercices avec des programmes de la
section “Les Exécuteurs” du système Robotland+ et du paquet "Les Images
gaies".171
LA REVUE DE L'EPI LA CULTURE INFORMATIQUE
Les livres du module pour les enfants et pour l’instituteur sont en
préparation.
5ème classe
L’ordinateur et le mot
Editeur de texte : dictées, compositions, journaux muraux et livres.
On considère les mécanismes du traitement de l'information textuelle
et les applications scolaires éventuelles d’éditeur adapté au texte
dans le cadre du cours "la Culture informatique" ainsi que dans d'autres
disciplines.
Le livre de lecture pour les enfants “Ordinateur et mot” est déjà
édité à la base du paquet "Tort" (le paquet des programmes appliqués
destiné à enseigner le traitement de texte aux enfants), avec un livre
pour le professeur et un recueil d'instructions pour l’utilisateur.
6ème classe
L'ordinateur - un instrument de l’art
Les éditeurs graphiques, exposition de dessins faits à l’aide de
l’ordinateur. Rédaction de l’information musicale.
On étudie le paquet d’éditeurs adaptés graphiques pendant les
leçons et hors cours. Application graphique aux systèmes intégrés (la
construction de contes).
On introduit les premières bases de la musique et de la rédaction
de l’information musicale. Les expositions, les tournois, les concerts dans
la classe d’informatique.
On a fait éditer un livre pour les écoliers (en deux parties : la graphique
et la musique) et le matériel didactique pour le professeur.
7ème classe
Coucaratcha et Tortille font des études avec l’ordinateur
Procédures, paramètres, récursions
L'exécuteur Coucaratcha. La gestion directe et programmée. Procédures.
Rédaction des procédures. Les structures de gestion du langage
de Coucaratcha.172
E. KOGAN, Y. PERVINE LA REVUE DE L'EPI
Logo est le langage des enfants et des ordinateurs. Introduction
graphique pour les débutants au langage de programmation Logo. Les
premières notions de la technologie des projets. Les structures de données,
les récursions, les dessins animés.
Le manuel pour les écoliers est en publication. Il contient des élé-
ments de gestion des exécuteurs Coucaratcha et Tortille de Logo, les
premières leçons de programmation. On édite aussi un livre pour le professeur.
Le logiciel de ce module est l'exécuteur programmé Coucaratcha de
Robotland+ et la version du système Logowriter avec le lexique russe.
8ème classe
Dépôts d’information
Bases de données et tableurs électroniques.
On discute les structures des processus de mémorisation et de
recherche de l’information. Les applications des bases de données pendant
les leçons et hors cours.
Qu’est-ce que la banque et l’argent de clearing ? Que faut il avoir
dans la base de données sur la bibliothèque scolaire (ou à domicile).
Les pratiques de manipulation avec les tableurs électroniques.
On prépare le livre de lecture pour les enfants au sujet des bases
de données et des tableurs ainsi qu’un livre pour le professeur. On utilisera
le logiciel original adapté.
9ème classe
Codage de l’information
Formes différentes de présentation de l’information et de son traitement.
Les transformations de l’information définissent des sujets de
module. L’ordinateur comme machine universelle de transformation de
l’information. Une grande série de travaux de laboratoire accompagne le
cours.
Le module s’accompagne d’un manuel et d’un livre pour enseignant,
qui ont été spécialement conçus pour le cours "la Culture
informatique".173
LA REVUE DE L'EPI LA CULTURE INFORMATIQUE
10ème classe
Modèles informatiques
Programmes et projets.
Principes de programmation structurée. Logiciel des disciplines
scolaires hors de l’informatique.
Simulation des objets et des processus réels par les moyens informatiques.
Les notions fondamentales de l’informatique comme généralisation
des exécuteurs et des robots. Les caractéristiques de l’interface.
Le logiciel du module se présente sous forme de programmes du
système Koumir-93 et d'une série d'exécuteurs d'hypertextes.
11ème classe
Nouvelles technologies informatiques
L’ordinateur - l’outil de la société informatisée. Logiciel, matériel,
informaticiel.
On donne une notion des systèmes complexes intégrés et de leur
utilisation dans les processus de transformation de l’information et dans
les systèmes appliqués.
Les systèmes d’édition. Les processus et les systèmes parallèles.
Multimédia.
On montre les principes et on donne des exemples de construction
d'encyclopédies hypertextes ainsi que de leur manipulation. Exercices de
préparation de matériaux publiés avec l’aide de systèmes d'édition sur
table. Notion de communication dans les réseaux locaux et globaux
d’information. Traitement de vidéo- et audio-information par les moyens
multimédia.
4. STRUCTURE D’IMPLANTATION DU COURS
Le cours “La Culture informatique” se présente comme un système
de modules, chacun correspondant à une année scolaire. Du point de vue
du contenu d’enseignement, la spirale didactique est bien rendu par les
séquences de modules. Une telle spirale caractérise les autres cycles
scientifiques dans le système de l’éducation scolaire : les notions fondamentales
en interprétation élémentaire au début de l’école, le retour au
niveau méthodologique plus haut dans les classes supérieures. Les modules
sont ainsi préparés avec une certaine autonomie.174
E. KOGAN, Y. PERVINE LA REVUE DE L'EPI
Premièrement, les élèves qui quittent l’école générale sans terminer
leur enseignement secondaire, reçoivent néanmoins les notions de
base de la Culture informatique, qui leur permettront de s’orienter dans
la société informatisée.
Deuxièmement, la structure modulaire du cours permet d’organiser
le processus scolaire au cours “la Culture informatique” pas obligatoirement
en séquence stricte qui commencerait en première classe et se terminerait
en onzième, mais de prévoir quelques points éventuels de
départ pour commencer le cours à tout moment “les points d’entrée”.
Troisièmement, la structure modulaire du cours rend réelle,
l’élaboration du projet qui se fera par étapes avec un partage strict des
fonctions entre des équipes autonomes d’auteurs.
Dans la section 3 “Structure générale du cours” on considèrait le
plan d’étude de base qui prévoit la séquence dite naturelle d'apprentissage
du contenu.
On y marque des points d’entrée éventuels et on discute les modifications
correspondantes du plan d’étude.
Entrée de base. Premier point d’entrée 1ère classe
Point d’entrée temporaire 2ème classe
3ème classe
4ème classe
Deuxième point d’entrée 5ème classe
6ème classe
7ème classe
8ème classe
Troisième point d’entrée 9ème classe
10ème classe
11ème classe175
LA REVUE DE L'EPI LA CULTURE INFORMATIQUE
Entrée de base. Premier point d’entrée
Dans l’enseignement scolaire d’aujourd’hui il y a deux modifications
du plan d’étude pour l’école primaire : 1-3 et 1-4.
On édite des manuels pour les modules de troisième-quatrième
classes sous une seule couverture. Le maître de classe reçoit la recommandation
d’utiliser entièrement le plan ou de le raccourcir selon le
schéma d’enseignement accepté par son école. Ces deux plans d’étude
pour les troisième-quatrième classes sont placés en appendice du livre du
maître pour l'aider à s’adapter au schéma donné.
La structure modulaire du cours permet de ne pas corriger tout le
contenu suivant du plan de base.
Le point d’entrée temporaire (auxiliaire) de la seconde classe est
destiné à simplifier les problèmes plutôt administratifs liés d’un côté à la
large implantation du cours dans les écoles d’une grande région, et d'un
autre côté au décalage entre le début de l’enseignement dans la première
classe et le passage à l’école secondaire (la 5ème classe). Les élèves de la
seconde classe qui commencent le cours, doivent récupérer les connaissances
et pratiques qu’ils n’ont pas encore eu. Le problème s’est surtout
simplifié parce que le travail d’alphabétisation guidé pour des écoliers de
première classe à l’aide d’ordinateurs n’est plus indispensable : le contingent
de la seconde classe se compose d’élèves qui savent lire. Plusieurs
programmes exigeant la compréhension de textes peuvent bien fonctionner
en module de la seconde année sans adaptation supplémentaire.
Deuxième point d’entrée
Les écoliers commencent à faire connaissance avec la Culture
informatique directement par le traitement de texte qui présente le type
le plus important des processus informatiques modernes sur ordinateur.
Les notions indispensables de l’algorithme, de l'exécuteur, du système de
commandes peuvent être complétés un peu plus tard (9ème-10ème), au
nouveau cycle de la spirale didactique.
Du point de vue administratif la cinquième classe est un point
d’entrée très commode. Le passage à l’école secondaire avec son enseignement
multidisciplinaire permet de confier l'introduction du cours à
des professeurs ayant une meilleure formation, spécialisés en informatique.176
E. KOGAN, Y. PERVINE LA REVUE DE L'EPI
Troisième point d’entrée
Les exigences préalables qui sont posées devant les écoliers de
neuvième classe du point de vue de leur préparation à la perception du
cours “la Culture informatique” sont les suivantes :
- expérience minimale du travail sur ordinateur, pratiques de manipulation
avec le clavier,
- expérience d’écriture de programmes de 10-20 lignes dans
n’importe quel langage de programmation.
On peut se débarrasser des ces exigences après huit leçons supplémentaires
et diminuer le volume du module 9 de huit heures.
Parmi les participants à l’élaboration du logiciel et du didacticiel
du cours, on peut citer les institutions compétentes du pays : société
“Robotland”, l’Association “Ordinateur et enfance”, Institut des problèmes
d’informatique de l’Académie des Sciences de la Russie, Institut des
Nouvelles Technologies en Education, société “Infomir” (Université de
Moscou) et d'autres équipes scientifiques et les spécialistes à Moscou,
Samara et Pereslavl-Zalessky.
E. KOGAN, Y. PERVINE
Vers une signalisation universelle
Badr Benmammar
To cite this version:
Badr Benmammar. Vers une signalisation universelle. 3`eme cycle. 2006.
HAL Id: cel-00718228
https://cel.archives-ouvertes.fr/cel-00718228v3
Submitted on 6 Aug 2012
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.Vers une signalisation universelle
Badr BENMAMMAR
Université Bordeaux 1
1Plan
• Introduction
Contexte
Objectif
Approches retenues
• Approche basée sur le profil
Profil de mobilité de l’utilisateur
La spécification de la mobilité (MSpec)
1
• Signalisation générique: MQoS NSLP
Réservation de ressources à l’avance
Gestion dynamique de ressources
• Validation
Scénario fixe-mobile
• Conclusion
Contributions
Perspectives
2Introduction
Problématique:
Emergence de nouvelles applications très exigeantes en terme de qualité de
service (applications multimédias).
Emergence de nouveaux réseaux sans fil.
2
Garantir la qualité de service dans un environnement IP mobile, une tâche très
difficile.
• Objectif:
Proposer des solutions capables d’améliorer la qualité de service dans un
environnement IP mobile.
3
Introduction `a la gestion m´emoire
Olivier Zendra
To cite this version:
Olivier Zendra. Introduction `a la gestion m´emoire. Universit´e Henri Poincar´e, Nancy 1.
UFR STMIA. Master Ing´enierie Syst`eme, sp´ecialit´e Electronique Embarqu´ee et Instrumentale.
Nancy, France, 2005.
HAL Id: inria-00001232
https://cel.archives-ouvertes.fr/inria-00001232
Submitted on 11 Apr 2006
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.Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Introduction à la gestion mémoire
olivier.zendra@loria.fr
http://www.loria.fr/~zendra
Olivier Zendra
Chargé de Recherche
INRIA-Lorraine / LORIAOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Plan du cours
• 1- Gestion mémoire: les bases
• 2- Gestion mémoire et temps réel:
éléments
• 3- Gestion mémoire et systèmes
embarqués: éléments
– Basse consommationOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
1- Bases de la gestion mémoire
• Concepts de base: tas, pile
• Gestion manuelle / automatique
• Algorithmes classiques:
– comptage de références
– marquage-balayage
– copie / compactageOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Concepts de base en gestion
mémoire
• Mémoire: des puces (matériel)
• Vue par le système (OS/application) via
des adresses (logiciel)
0 4 8 12
MMUOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Concepts de base en gestion
mémoire
• Manipulation des adresses à la main
(ASM):
MOV 47,#0xFBBFC
MOV 74,#0xFBFBC
ADD 3,#0xFBFBC
INC #0xFBBFC
SUB #0XFBBFC,#0xFBFBC
– Peu clair...Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Concepts de base en gestion
mémoire
• Manipulation des adresses à la main
(ASM)
– Permet de mettre des données en un lieu
précis de la mémoire
– Compliqué si on veut faire cohabiter plusieurs
applications
– Lisibilité et maintenabilité pitoyablesOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Concepts de base en gestion
mémoire
• Manipulation symbolique explicite des
adresses: variables et pointeurs
int *a = 0xFBBFC
int *b = 0xFBFBC
*a = 47
*b = 74
*b = *b+3
*a = *a+1
*b = *b-*a
– C'est mieux: plus haut niveau, plus clairOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Concepts de base en gestion
mémoire
• Manipulation symbolique implicite des
adresses: variables et références
int a = 47
int b = 74
b += 3
a++
b -= aOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Concepts de base en gestion
mémoire
• Manipulation symbolique implicite des
adresses: variables et références
– Encore plus haut niveau, plus clair
– Localisation (adresse) masquée (par le
système qui gère la mémoire)
• Facile d'avoir plusieurs programmes (« multi-tâche »)Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Concepts de base en gestion
mémoire
• Le contrôleur mémoire (MMU) montre à
l'OS une mémoire matérielle continue
alors que puces discontinues
• Le système (d'exploitation) montre au
programme une mémoire virtuelle
– La pagination est masquée
– Chaque programme se croit seul (simplifié)Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Mémoire virtuelle
• Mise en correspondance mémoire
virtuelle / mémoire réelle
– traduction d'adresses
– mémoire virtuelle >> mémoire réelle
– mémoire virtuelle vue comme une seule zone
(continue) alors que mémoire réelle discontinue
(en pages)Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Mémoire virtuelle
n° page décalage
@ physique
complète
Programme
CPU
table des pages
(1 par processus)
@ physique page
@ physique page décalage
@ logique
RAM
0xF047006A
0xF047
0x006A
0x0B50
0x0B50006AOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Structuration mémoire
• Mémoire d'un programme découpée en
plusieurs zones:
– zone(s) statique(s) (RAM, voire ROM)
– zone(s) de code (lecture seule)
– zone(s) de données (lecture-écriture)
• pile
• tasOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Structuration mémoire: exemple
Pile Tas Zone
statique Zone de code
0x0000
0x0FFF
0xA000
0xCFFF
0xD000
0xD2FF
0xD300
0xF5FFOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
La pile
• Zone « dans laquelle s'exécute le
programme »
– paramètres, variables locale, adresse et valeur
de retour de fonction / routine / méthode
– croît à chaque appel, décroît à chaque retour
• Automatique: géré par l'environnement
d'exécution (runtime)
• +/- invisible du programme(ur)Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
La pile
0xCC12
123
-4
'm'
0xFFB4
67
0x0000
MAX
...
...
@ de retour
paramètre 1
paramètre 2
paramètre 3
variable locale 1
variable locale 2
@ de retour
variable locale 1
variable locale 2
...
...
SP
APPEL n+1
APPEL n
NB: Ici, pile croissante avec adresses croissantes.
En pratique, la pile croît souvent vers 0x0000.Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Le tas
• Zone où le programme(ur) alloue toutes ses
données qui ne sont pas en pile
• Allocation explicite: malloc C
MonObjet*mon_objet=(MonObjet*)malloc(sizeof(MonObjet));
• Allocation « implicite »: new en Java, C++...
MonObjet mon_objet = new MonObjet();Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Le tas
Pile
mon_objet 0xFFB4
...
...
...
...
0xFFB4
Mon_Objet
Tas
47
0x22B474
0x22B512
0Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Le tas
• Zone « désordonnée », contrairement à
la pile (d'où les noms...)
• La gestion mémoire concerne
principalement le tasOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Le tas
0xD28B
0xD2AF
0xD2FF
0xD32B
S o p h i e
26
6
172
Personne 0xD2FF
6 D u p o n t 0xD2D7
0xD2D7
8 4 1 3 3 1 2 4 2
Entier[8] Chaîne Chaîne
PileOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire manuelle
• Allocations et désallocations (libérations)
explicites (malloc/free):
void les_20_premiers_premiers(){
int premiers[]=malloc(20*sizeof(int));
// variable premiers en pile, zone en tas
for (int i=0;i<20;i++)
premiers[i]=calculer_premier(i);
afficher_tableau_entiers(20,premiers);
free(premiers); // si pas là, fuite dans tas
}Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire manuelle
• Problème: risques d'oublis
– mémoire non libérée (gaspillage)
– utilisation d'une donnée déjà libérée (erreur !)
– extrêmement difficiles à détecter et corrigerOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire automatique
• Un système remplace le développeur en
allouant et surtout désallouant
automatiquement
– impossible d'oublier de désallouer (mais
possible de continuer de référencer à tort)
– plus difficile (si pointeurs) voire impossible (si
références) d'utiliser une donnée déjà libéréeOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire automatique
• Exemple:
void les_20_premiers_premiers(){
int premiers[] = new int[20];
// variable premiers en pile, zone en tas
for (int i=0;i<20;i++)
premiers[i]=calculer_premier(i);
afficher_tableau_entiers(20,premiers);
} // ici, premiers est dépilé, donc la zone
// en tas n'est plus référencée, elle peut
// être automatiquement recyclée/libéréeOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire automatique
• Système automatique de gestion
mémoire = ramasse-miettes
• Doit pouvoir garder (ou retrouver) les
données/objets encore actifs, et du coup
être capable de libérer les autres
• Connaît les zones mémoire libres
(allouables) et celles qui sont occupées Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire automatique
• Maintient une liste des zones libres:
Tas Tas
zones_libres null
taille
suivant
taille
suivant
taille
suivant
réf. 0 réf. 1 réf. 2 réf. 3 réf. 4 réf. 5Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithmes classiques
de gestion mémoire automatique
• Comptage de références
• Marquage-balayage
• Copie-compactageOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
• A chaque objet (ou donnée, structure,
zone mémoire) alloué est associé un
compteur entier indiquant le nombre de
références sur cet objetOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
S o p h i e
26
6
172
Personne 0xD2FF
6 D u p o n t
0xD2D7
8 4 1 3 3 1 2 4 2
Entier[8] Chaîne Chaîne
Pile
Compteurs de références
1 2 1 1Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
• A chaque affectation, on met à jour les
compteurs concernés:
a = new X(); // nb_réf(X1)=1
b = a; // nb_réf(X1)=2
a = new X(); // nb_réf(X1)=1; nb_réf(X2)=1
b = null; // nb_réf(X1)=0: X1 libérable
• Libération peut être immédiate (+
simple) ou différéeOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
• Libérer un objet X1:
– récupérer la mémoire de X1 (remise en liste
libre)
– diminuer les compteurs de références des
objets pointés par X1
• libérations en cascade possibles (peut prendre du temps)Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
• Le problème des cycles
Objet A
Objet C Objet B
2
1 1
Pile...Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
• Le problème des cycles
Objet A
Objet C Objet B
2
1 1
Pile... 1Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
• Cycles non détectés
– Besoin en plus d'un système de détection de
cycles
Objet A
Objet C Objet B
1
1 1
Le cycle A/B/C n'est plus référencé,
mais ses compteurs sont >0, donc
les objets ne sont pas collectés...Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
• Problème de la fragmentation
Tas Tas
A l'instant T1:
A l'instant T2 > T1:
Tas Tas
zones_libres null
Le programme s'exécute,
des objets sont libérésOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence
• Fragmentation possible
Tas Tas
zones_libres null
A l'instant T2, on veut allouer 5:
Mais pas de zone mémoire assez grande disponible:
Pourtant il y a de la mémoire libre (14 en tout): c'est la fragmentation.Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Comptage de référence: bilan
• Simple
• Exécution répartie le long de celle du prog.
• Coûteux au total: MAJ de compteur(s) à
chaque affectation
• Pas de gros délai si objets libérés un par un.
Délais si cascades...
• Problème des cycles
• Fragmentation possibleOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Marquage-balayage
• Le ramasse-miettes se déclenche par
intermittence
– Exécution du ramasse-miettes arrête le
programme temporairement
• Lorsque ramasse-miettes se déclenche:
– phase de marquage: trouver les vivants
– phase de balayage: recycler les mortsOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Marquage-balayage
• A chaque objet alloué est associé un
marqueur (ou drapeau, ou mark flag)
S o p h i e
26
6
172
Personne 0xD2FF
6 D u p o n t
0xD2D7
8 4 1 3 3 1 2 4 2
Entier[8] Chaîne Chaîne
MarqueurOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
• Partir des racines (piles, zone statique)
du graphes d'objets
• Pour chaque objet rencontré
– s'il est déjà marqué, rien à faire
– sinon le marquer et propager l'algorithme sur
tous les objets qu'il référence
• Quand le marquage se termine, on a
tous les actifs. Les autres sont morts.Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
0xCC12
-4
'm'
0xFFB4
67
...
...
@ de retour
param. 1
param. 2
param. 3
var. loc. 1
var. loc. 2
@ de retour
param. 1
var. loc. 1
...
...
APPEL n-1 APPEL n
0xFFB4
4567
0xDC28
0xF028
Pile (racines)
Objet C
Objet A Objet B
Objet D
Objet EOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
0xCC12
-4
'm'
0xFFB4
67
...
...
@ de retour
param. 1
param. 2
param. 3
var. loc. 1
var. loc. 2
@ de retour
param. 1
var. loc. 1
...
...
APPEL n-1 APPEL n
0xFFB4
4567
0xDC28
0xF028
Pile (racines)
Objet C
Objet A Objet B
Objet D
Objet E
VOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
0xCC12
-4
'm'
0xFFB4
67
...
...
@ de retour
param. 1
param. 2
param. 3
var. loc. 1
var. loc. 2
@ de retour
param. 1
var. loc. 1
...
...
APPEL n-1 APPEL n
0xFFB4
4567
0xDC28
0xF028
Pile (racines)
Objet C
Objet A Objet B
Objet D
Objet E
V VOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
0xCC12
-4
'm'
0xFFB4
67
...
...
@ de retour
param. 1
param. 2
param. 3
var. loc. 1
var. loc. 2
@ de retour
param. 1
var. loc. 1
...
...
APPEL n-1 APPEL n
0xFFB4
4567
0xDC28
0xF028
Pile (racines)
Objet C
Objet A Objet B
Objet D
Objet E
V V
VOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
0xCC12
-4
'm'
0xFFB4
67
...
...
@ de retour
param. 1
param. 2
param. 3
var. loc. 1
var. loc. 2
@ de retour
param. 1
var. loc. 1
...
...
APPEL n-1 APPEL n
0xFFB4
4567
0xDC28
0xF028
Pile (racines)
Objet C
Objet A Objet B
Objet D
Objet E
V V
VOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
0xCC12
-4
'm'
0xFFB4
67
...
...
@ de retour
param. 1
param. 2
param. 3
var. loc. 1
var. loc. 2
@ de retour
param. 1
var. loc. 1
...
...
APPEL n-1 APPEL n
0xFFB4
4567
0xDC28
0xF028
Pile (racines)
Objet C
Objet A Objet B
Objet D
Objet E
V V
VOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de marquage
0xCC12
-4
'm'
0xFFB4
67
...
...
@ de retour
param. 1
param. 2
param. 3
var. loc. 1
var. loc. 2
@ de retour
param. 1
var. loc. 1
...
...
APPEL n-1 APPEL n
0xFFB4
4567
0xDC28
0xF028
Pile (racines)
Objet C
Objet A Objet B
Objet D
Objet E
V V
VOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de balayage
• On parcourt la liste de toutes les zones
mémoires.
• Si marqué, on conserve (on démarque
pour le coup suivant),
• Si pas marqué, on intègre la zone dans
la liste libre.Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Algorithme de balayage
V Objet A Objet E V Objet C Objet D V Objet B Zone des objets
de taille 56 du tas
zones_libres
Après marquage, avant balayage:
null
Balayage: drapeaux vidés,
zones libres en liste
Objet A zone libre Objet C Objet B Zone des objets
de taille 56 du tas
zones_libres
Après balayage:
null
zone libreOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Marquage-balayage: bilan
• Pauses longues: marquage + balayage
– durée du marquage dépend de la taille du
graphe d'objets (surtout les vivants)
• Amélioration: incrémental (pauses
fractionnées)
• Les cycles ne sont pas un problème
• Fragmentation possibleOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Copie-compactage
• Principe: parcours du graphe d'objets
(comme marquage-balayage) et recopie
des vivants dans nouvel espace
mémoire (de façon contiguë).
• (cf. page 8 de [JLAP2004] sur ma page
web publications)Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Copie-compactage: bilan
• Parcours comme marquage
• Recopie coûteuse
• Gestion de « forwarding pointers »
• Double espace mémoire
• Pas de fragmentationOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
2- Gestion mémoire et temps réel
• TR: +/- rapide, mais prévisible
• Souvent, gestion à la main, bas niveau,
placement fixe des structures dans des
emplacements fixes
– flexibilité minimale
– réutilisabilité très faible
– prédictibilité totale (capitale en TR dur)Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
2- Gestion mémoire et temps réel
• Problèmes si utilisation d'algorithmes
plus génériques (vus précédemment)
– Hiérarchie mémoire plus souple amène défauts
de page
• Délai
• Peu prévisibles
– Pauses que le GC impose au mutateur
• Délai
• ImprévisibleOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Ramasse-miettes temps réel
• Algorithmes incrémentaux ne suffisent
pas en TR
• Développement d'algorithmes TR
spécifiques
– Idée: considérer le GC comme une tâche
« comme les autres »
• Ordonnancé parmi les autres tâches
• Problème: le faire au bon momentOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
3- Gestion mémoire
et systèmes embarqués
• Systèmes embarqués: omniprésents
• Types de contraintes:
– Faible taille (code, données, RAM, ROM)
– Faible puissance de calcul
– Systèmes embarqués autonomes (tél. PDA,
APN...)
• Faible puissance électrique max (instantanée)
• Faible autonomie en énergie (cumulée)Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie
• Impact de la mémoire sur l'énergie
consommée
– Coût statique (leakage): majeure partie
– Coût dynamique (accès): plus modeste
– Taille de la mémoire active
– Type de la mémoire active: RAM, SRAM, etc.
• Plus est rapide, plus consomme E (sauf disque)Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie
• Impact de la mémoire sur l'énergie
consommée
– « éloignement » de la mémoire
• accès bus très coûteux
– Gros caches == perfs++ == leakage++
== fréquence-- == perfs--
– Placement et F d'accès des données
importantsOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie:
solutions
• Technologies matérielles (pour mémoire)
– Conception des cellules SRAM (+ de place, -
de fuites): 6 transistors SRAM
– Partitionnement des bancs mémoire (seul le
bloc accédé est activé)
– Cache decay: lignes de cache « mortes »
mises en mode basse énergie (Vdd gating)
– Nombreuses autres ! Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie:
solutions
• Idée 1: éteindre ce qui ne sert pas
– Mémoire en bancs
– Énergie: grouper (Vitesse: entrelacer)
• Grouper à l'allocation / selon durée de vie
• Statiquement ou dynamiquement (ordo. ou GC)
• Regrouper lors du GC: libérer bancs complets pour les
éteindreOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie:
solutions
• Idée 1: éteindre ce qui ne sert pas
– Beaucoup de compromis
• GC quand nouveau banc va être allumé ? Compromis
gain/coût...
• Compression de données ? Compromis gain/coût...
• Attention au coût (E et T) d'éteindre/rallumerOlivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie:
solutions
• Idée 2: limiter le coût E des transferts de
données
– Données très utilisées dans mémoire où accès
dynamique peu cher
– Données peu utilisées dans mémoire où perte
statique faible (même si accès cher)
– Minimiser les transferts (Data Transfert and
Storage Exploration): copies des données ?Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie:
solutions
• Idée 3: diminuer le coût du GC
– Optimisations en faveur énergie, pas vitesse
• Marqueurs groupés, pas dans objets
– Éviter les recopies d'objets
– ...Olivier ZENDRA Master Ingénierie Système / Électronique Embarquée et Instrumentale / Gestion mémoire Nov. 2005
Gestion mémoire basse énergie:
bilan
• « energy-aware GC »
• Collaboration nécessaire avec le reste
du système
– ordonnancement
– matériel (API requise)
– ...
• Pas trivial.
Approches (m,k)-firm pour la gestion de la qualit´e de
service temps r´eel
Ye-Qiong Song
To cite this version:
Ye-Qiong Song. Approches (m,k)-firm pour la gestion de la qualit´e de service temps r´eel.
INPL-ENSEM, LORIA Nancy, 2005.
HAL Id: inria-00000790
https://cel.archives-ouvertes.fr/inria-00000790
Submitted on 19 Nov 2005
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.Approches (m,k)-firm pour la gestion de la qualité de service temps réel
YeQiong SONG
LORIA - INPL
Campus Scientifique, B.P. 239
54506 Vandoeuvre-Lès-Nancy, France
song@loria.fr
Résumé
Cet article présente d’abord un état de l’art sur les
principaux algorithmes d’ordonnancement développés
pour la garantie temps réel (m,k)-firm, puis explique
comment les approches (m,k)-firm peuvent être utiles
pour une meilleure gestion de la qualité de service avec
dégradation contrôlée (graceful degradation) dans les
réseaux et systèmes temps réel. Un algorithme appelé
(m,k)-WFQ est détaillé pour illustrer l’intérêt de
l’approche (m,k)-firm dans l’ordonnancement des
paquets de flux MPEG dans des réseaux. Le problème
fondamental de la garantie déterministe de (m,k)-firm est
également approfondi à travers l’élaboration de la
condition suffisante d’ordonnançabilité de l’algorithme
DBP.
1. Introduction
Aujourd’hui, de plus en plus d’applications temps réel
sont déployées au-dessus de réseaux comme l’Internet.
Ceci signifie que ces réseaux doivent fournir des
garanties en termes de respect de contraintes temporelles
sur les communications. L’augmentation constante de
débit des réseaux qui composent l’Internet (Ethernet,
réseaux mobiles sans fil, réseaux courants porteurs par
exemple) n’apporte une solution que temporaire. En
effet, le surplus de bande passante apportée par toute
augmentation de débit est pratiquement immédiatement
comblée par de nouvelles applications multimédias. La
technique de réservation qui consiste à sur-dimensionner
les ressources (over-provisioning) n’est, donc, pas une
solution viable à l’avenir. Ce constat oblige donc à
spécifier des techniques et méthodes pour garantir une
Qualité de Service (QdS) temporelle sous des contraintes
de ressources limitées. De plus, la gestion de la QdS
temporelle dans l’Internet soulève un problème de
passage à l’échelle. Pour y faire face, l’IETF
recommande d’appliquer l’architecture « Diffserv »
plutôt que « Intserv ». Mais le problème de « Diffserv »
est que la garantie est vis à vis de classes de trafics et
non pour une application. Une exigence de garantie
déterministe de QdS pour une application dans une
classe d’applications oblige à un dimensionnement selon
la contrainte la plus stricte imposée aux applications
considérées, conduisant de nouveau à un
surdimensionnement de ressources. Notons que des
solutions pour supporter des applications sous
contraintes temps réel souples sur l’Internet ont été
proposées [El-Gendy03]. Mais ces solutions n’apportent
qu’une garantie temps réel probabiliste. Ceci peut ne pas
convenir à certains types d’applications, notamment dans
le cas du contrôle-commande ou du multimédia. En
effet, ces applications peuvent tolérer des pertes de
paquets (ou des paquets écartés à cause du retard
dépassant l’échéance requise) en transmission sur les
réseaux mais à condition que ces pertes soient
distribuées selon un modèle spécifié de manière
déterministe et non en observant une propriété sur la
moyenne de leurs occurrences (par exemple,
transmission de paquet de MPEG, de voix sur IP, …).
Un problème typique est comment éviter trop de pertes
consécutives des paquets en cas de congestion des
réseaux. Il est clair que les politiques classiques de
gestion de buffers telles que TD (Tail-Drop) conduit
inévitablement à des pertes consécutives tandis que RED
(Random Early Detection), en écartant aléatoirement des
paquets dans une région de taille de file d’attente, essaie
de résoudre ce problème mais sans donner aucune
garantie.
Si l’on s’attache aux systèmes temps réel distribués,
on est confronté au même problème de
surdimensionnement. Classiquement, chercher la
garantie absolue de QdS pour des applications sous
contraintes temps réel dures revient à prendre en compte
du pire cas ; or le système fonctionne en temps normal
avec un cas moyen très éloigné du pire cas. Ce
phénomène est encore plus accentué avec le déploiement
de la méthode d’ordonnancement holistique comme
démontré dans [Martin04]. Contrairement à des
mécanismes de QdS dans l’Internet qui s’auto-adaptent à
l’état du système grâce au mécanisme de contrôle
d’admission et des mesures de QdS en-ligne (une sorte
de « feedback »), un système temps réel classique conçu
selon l’approche temps réel dur souffre de rigidité à
cause des hypothèses strictes sur le modèle de
tâches/messages. Ce qui peut rendre une solution ordonnançable vulnérable face aux aléas (de charges, de
ressources, de perturbations de l’environnement) Aussi,
dans le domaine du contrôle-commande, il apparaît
intéressant de s’orienter vers la notion de système
adaptatif afin de supporter non seulement la variation de
performances du support informatique (tolérance aux
fautes), mais aussi l’évolution de l’application qui induit
une variation de charges par rapport aux hypothèses du
départ sur le modèle d’activation de tâches. En plus,
l’utilisation des composants standards, comme par
exemple un réseau Ethernet partagé avec d’autres
applications à la place d’un bus de terrain, exige aussi
l’implémentation des mécanismes de contrôle
d’admission et d’ordonnancement de trafics en fonction
de la mesure en-ligne de la QdS, c’est à dire avec
« feedback ». Fournir des mécanismes de gestion de la
QdS appropriés dans un système temps réel adaptatif
(incertitude de charges et de ressources) reste encore un
problème ouvert [ARTIST03].
Par ailleurs, que ce soit en QdS dans les réseaux ou en
ordonnancement dans les systèmes temps réel, les
travaux antérieurs négligent le fait que la plupart des
applications soient capables, dans une limite à identifier,
de tolérer et/ou s’adapter à la variation de performances
du système. Des exemples typiques sont la transmission
de vidéo et voix qui tolère la perte occasionnelle des
paquets, des systèmes de contrôle-commande sur-
échantillonnés qui peuvent non seulement tolérer des
pertes des échantillons, mais en plus la loi de commande
peut aussi compenser des pertes et retards grâce à
l’emploi de boucles de contrôle fermées ayant comme
entrée supplémentaire la QdS instantanée du système
support. Par exemple, des travaux regroupés sous le nom
de NCS « Networked Control Systems » visent à étudier
la robustesse des lois de commande en fonction de
variation de performance de l’architecture informatique
support (calculateurs et réseaux) ou à concevoir des lois
de commande robuste en prenant en compte la variation
de la QdS du système support (en particulier le réseau)
[Nilsson98], [Chow01], [Jumel03]. Il est donc plus
optimal de concevoir des applications temps réel en
prenant compte cette capacité « naturelle » de tolérance
du non-respect des échéances. Dans ce cas, le modèle
(m,k)-firm [Hamdaoui95] paraît convenable pour
spécifier plus précisément les contraintes temps réel.
Une contrainte (m,k)-firm est définie sur une tâche
récurrente. Elle exige qu’au moins m parmi k invocations
consécutives de la tâche doivent être exécutées par le
système en respectant leur échéance, avec m ≤ k (le cas
où m = k est équivalent du cas de temps réel dur, que
nous notons aussi par (k,k)-firm). Si l’on considère
qu’une application peut accepter une dégradation de
service jusqu’à m exécutions avant l’échéance parmi k
demandes d’exécutions consécutives quelconques, un
système peut alors conçu selon l’approche (m,k)-firm
pour offrir des niveaux de QdS variés entre (k,k)-firm
(cas normal) et (m,k)-firm (pire cas) avec autant de
niveaux intermédiaires correspondant aux différentes
valeurs possibles entre k et m. Ce qui résulte en un
système avec la dégradation de la QdS contrôlée
(Graceful degradation).
La garantie du respect des contraintes temps réel
selon le modèle (m,k)-firm dans un système temps réel
dynamique et dans un réseau à QdS nécessite des efforts
de recherche dans deux directions : 1) pour la prise en
compte explicite de cette nouvelle contrainte (m,k)-firm,
des algorithmes d’ordonnancement classiques tels que
EDF (Earliest Deadline First), FP (Fixed Priority), WFQ
(Weighted Fair Queueing) doivent être étendus et des
algorithmes nouveaux restent à développer ; 2) bien
qu’en moyenne (m,k)-firm permette de diminuer le
besoin de ressources par rapport au temps réel dur qui est
équivalent à (k,k)-firm, il n’est pas toujours possible de
réaliser ce gain lors que l’ordonnancement est non
préemptif et une garantie déterministe de (m,k)-firm
(appelé aussi par certains chercheurs (m,k)-hard) est
exigée. Ceci à cause de la NP-complétude du problème.
Deux pistes sont possibles : soit le développement de
l’analyse d’ordonnançabilité vis à vis de l’algorithme
d’ordonnancement proposé dans des cas particuliers
mais représentent un intérêt pratique, soit étendre le
modèle (m,k)-firm initial afin de permettre de réaliser ce
gain.
L’objectif de ce papier est de donner un aperçu des
algorithmes d’ordonnancement pour la garantie
déterministe temps réel (m,k)-firm et les appliquer à la
gestion de la QdS.
La gestion de la QdS est assurée par trois
fonctions fondamentales: ordonnancement, gestion de
files d’attente en cas de saturation et la régulation de
trafic. Dans ce papier, nous nous intéressons
principalement à l’application du modèle (m,k)-firm
dans la fonction de l’ordonnancement.
Le reste de ce papier est organisé comme ce qui suit.
La section 2 présente un état de l’art sur les travaux
autour de (m,k)-firm. La section 3 décrit (m,k)-WFQ qui
permet à un serveur WFQ (Weighted Fair Queueing) de
prendre en compte plus efficacement des contraintes
temporelles des flux multimédias temps réel. La section
4 présente une analyse d’ordonnançabilité de
l’algorithme DBP (Distance Based Priority) non
préemptif. Enfin, la section 5 conclut le papier et indique
les perspectives.
2. Etat de l’art sur (m,k)-firm
2.1. Modèle général: MIQSS
Considérons un modèle d’accès multiple à une
ressource partagée que nous allons appeler MIQSS
(Multiple Input Queues Single Server) dans la suite de ce
document. Nous cherchons à ordonnancer des demandes
d’accès au serveur commun, tout en satisfaisant leurs contraintes temporelles et en optimisant le taux
d’utilisation du serveur. Dans notre contexte de systèmes
distribués temps réel, ce serveur peut modéliser un
processeur pour les demandes d’exécution des
invocations de tâches ou un médium de transmission
(bande passante) de paquets.
Afin que nos résultats puissent aussi être
applicables à la transmission de paquets, seul le cas
non-préemptif nous intéresse. Notons que ce cas est en
général plus difficile à analyser que le cas préemptif.
Serveur
de capacité
c
τ1
τ2
τN
.
.
.
politique
d’ordonnancement
des clients en tête
des queues
sources interarrivée
clients
Figure 1. Modèle MIQSS
Une source τi est caractérisée par sa fonction de
flux d’arrivée Fi. Dans cette étude, cette fonction peut
être :
• Périodique ou sporadique: décrit par (Ci, Ti) dans
le cas d’une date initiale quelconque d’arrivée du
premier client et (ri, Ci, Ti) dans le cas d’une date
initiale fixe ri, où Ci est le temps d’exécution d’un
client et Ti la période d’inter-arrivée (ou d’interarrivée
minimale dans le cas sporadique).
• Périodique avec gigues : (Ci, Ti, Ji) ou (ri, Ci, Ti, Ji).
Où Ji représente le déphasage maximum de l’instant
d’une arrivée de client par rapport à la période.
• (σi, ρi)-borné : une courbe linéaire caractérisée par
une taille de rafale σi et un débit moyen ρi qui
majore la vraie fonction cumulative d’arrivée du
travail [LeBoudec02], [Chang00]. La quantité du
travail apportée par un client est définie par Wi avec
notamment où c représente le débit du
serveur.
/ C W i i = c
Dans la suite, les contraintes temps réel sont
toujours données par (Di, mi, ki) où Di est l’échéance
relative à l’instant d’arrivée d’un client et (mi, ki) sont
les deux paramètres de la contrainte (mi, ki)-firm.
2.2. Expression de contraintes (m,k)-firm et WHRT
Une source sous contrainte temps réel (m, k)-firm
peut se trouver dans l’un des deux états : normal et
échec transitoire (dynamic failure) [Hamdaoui95]. La
connaissance de son état à l’instant t dépend de
l’historique du traitement des k derniers clients
générés par la source. Si l’on associe ‘1’ à un client
respectant son échéance et ‘0’ à un client ratant son
échéance, cet historique est alors entièrement décrit
par une suite de k bits appelée une k-séquence. La
Figure 2 donne un exemple de (2,3)-firm avec par
convention le déplacement vers la gauche des bits.
111
101
011
010
001
100
110
000
0
1
0
1
0
0
1
1
0
1
0
1
1
0
1
0 1: échance respectée 0: échance non respectée
Etat normal
Etat d’échec transitoire
Figure 2. Diagramme d’état-transition d’une source
avec (2,3)-firm
Dans un système qui peut être modélisé par MIQSS,
on peut définir l’état du système à un instant t à partir
des états des sources du même instant. Un système est
dit en état d’échec transitoire si au moins une de ses
sources est en échec transitoire (une sorte de ET logique
entre les états de l’ensemble de sources).
Une source peut exprimer sa contrainte (m,k)-firm
en spécifiant simplement la valeur des deux
paramètres : m et k.
Afin de faciliter l’expression des contraintes du
type (m,k)-firm mais avec plus de précision sur la
répartition des m parmi les k clients consécutifs,
[Bernat97] et [Bernat01] ont enrichi ce modèle (m,k)-
firm en proposant trois autres formes qui
correspondent à la complémentarité et la
consécutivité:
• (m , k )-firm : au plus m clients avec échéance non
respectée dans une fenêtre quelconque de k arrivées
consécutives
• m, k -firm : au moins m clients consécutifs avec
échéance respectée dans une fenêtre quelconque de
k arrivées consécutives
• m , k -firm: au plus m clients consécutifs avec
échéance non respectée dans une fenêtre quelconque
de k arrivées consécutives
La notion de (m,k)-firm est alors généralisée et
une source sous ces formes de contraintes est dite sous
contrainte WHRT (Weakly-Hard Real-Time)
[Bernat01]. Néanmoins il convient de remarquer que
certaines de ces formes peuvent toujours être
exprimées sous forme de (m,k)-firm :
• (m , k )-firm : équivalente à (k-m,k)-firm• m, k -firm : pas d’équivalence dans (m,k)-firm
• m k, = m : en fait il est facile de constater
qu’avec m k, , on ne peut jamais avoir plus de m
clients consécutifs avec échéance non respectée
quelque soit la taille de k pourvu que m < k. De plus
une source respectant (m,k)-firm inclut le cas
particulier de k − m .
Notons que la k-séquence réalisée par un
algorithme d’ordonnancement n’est pas
nécessairement répétitive. On parle alors de kséquence
dynamique.
Un cas particulier d’expression de contrainte
(m,k)-firm est la spécification d’une k-séquence fixe
appelée un κ-pattern (ou (m,k)-pattern [Quan00]).
Cette technique s’inspire du modèle de calcul
imprécis [Chung90] où une tâche est composée d’une
partie critique (mandatory) et d’une partie optionnelle.
Le κ-pattern d’une source ayant une contrainte
temporelle (m,k)-firm est défini par la succession de k
éléments de l’alphabet {0, 1} où ‘0’ indique une
demande de traitement optionnelle et ‘1’ une demande
critique avec où πi est le i
ème élément du
κ-pattern pour 1 .
1
k
i i
π m = ∑ =
≤ ≤i k
En répétant continuellement le κ-pattern, on classe
les demandes de traitement des clients d’un flux (ou
une source) en deux catégories : optionnelle et
critique. Il est facile de prouver qu’il suffit de traiter
avec succès toutes les demandes critiques (les m
« 1 ») pour satisfaire la contrainte (m,k)-firm (voir
[Ramanathan99], Théorème 1). Notons que la
réciproque n’est pas vraie car une garantie (m,k)-firm
n’a pas objectif de produire une k-séquence fixe. Les
demandes optionnelles peuvent être traitées quand le
serveur n’est pas occupé ou rejetées si leur échéances
ne peuvent pas être respectées par le serveur.
De ce fait, le nième client (ou demande de
traitement) d’un flux ayant la contrainte temporelle
(m,k)-firm est considéré comme étant un client
critique si et seulement s’il satisfait la relation
suivante :
π(n%k) = 1 (1)
avec n%k le reste de la division de n modulo k.
L’utilisation d’un κ-pattern fixe a l’avantage de
ramener le problème de l’analyse d’ordonnançabilité
du système (m,k)-firm à celui de l’analyse
d’ordonnançabilité classique. Par exemple quand tous
les clients critiques sont ordonnancés sous la politique
FP (fiexed priority) et les clients optionnels ont la
priorité la moins élevée, l’analyse d’ordonnançabilité
est donnée dans [Ramanathan99]. L’application de
cette classification peut être utile dans le domaine du
multimédia. En effet, ce concept peut être appliqué à
un flux de paquets vidéos pour sélectionner les
paquets critiques dans un GOP (Group of Pictures) en
utilisant le standard de compression MPEG [Furht99].
Par exemple, un flux compressé utilisant la structure
du GOP suivante [IBBPBBPBB], où les paquets I
(Intra images) et P (Predicted images) sont plus
importants que les paquets B (Bi-directional
predicted/interpolated images), peut être considéré
comme étant un flux ayant des contraintes temporelles
de type (6,9)-firm et spécifié par le κ-pattern suivant
{πi(1≤i≤k)} = {110110110}. Ce κ-pattern signifie
qu’une partie des paquets de type B est déclarée
comme optionnelle par la source de ce flux. Par
exemple, le 226ème
paquet est considéré comme étant
critique car π(226%9) = π1 = 1 et le 228ème
paquet est
considéré comme étant optionnel car π(228%9) = π3 = 0.
Une fois la contrainte WHRT spécifiée, on peut
alors passer à l’étape de recherche d’algorithmes
d’ordonnancement pour que la contrainte soit
respectée (de façon déterministe ou probabiliste).
2.3. Algorithmes d’ordonnancement pour (m,k)-firm
Il existe aujourd’hui principalement deux familles
d’algorithmes qui prennent en compte (m,k)-firm:
dynamique (par exemple DBP : Distance Based
Priority) et statique (par exemple EFP : Enhanced
Fixed Priority). Par algorithme dynamique nous
voulons dire que la priorité affectée à chaque client
est ajustée automatiquement en fonction de l’état du
système (en particulier de la k-séquence des sources) à
l’instant t. Tandis qu’une affectation statique de
priorité est basée sur un paramètre fixe (taux m/k par
exemple).
Un algorithme dynamique a l’avantage de permettre
au système de s’adapter aux changements de situation
(variation de flux, de capacité du serveur, …). Il
convient à la gestion en-ligne de la QdS. Le problème est
qu’il ne donne souvent qu’une garantie statistique (besteffort)
de m sur k. C’est le cas de DBP et de la première
version de DWCS (Dynamic Window Constrained
Scheduling) [West99]. Une version améliorée de DWCS
[West04] permet de donner une garantie déterministe de
m sur k sous des conditions particulières (même Ci pour
toutes les sources). A contrario, un algorithme statique
permet une vérification hors-ligne du système et garantit
de façon déterministe le respect de m sur k échéances
dans le cas où le système ne violerait pas les hypothèses
du pire cas.
Dans ce qui suit nous expliquons le principe de DBP,
DWCS et EFP. 2.3.1. DBP (Distance Based Priority) Le serveur choisit les clients présents en tête des
queues selon leur priorité. Dans le cas d’égalité de
priorité parmi les clients à choisir, EDF (Earliest
Deadline First) est utilisée par défaut. Nous notons
par DBP-EDF ce système.
DBP [Hamdoui95] est la façon la plus directe pour
la prise en compte de la contrainte (m,k)-firm. Pour
une k-séquence donnée, DBP définit à chaque début
du service d’un client la distance d’aller à un état
d’échec transitoire comme le nombre consécutif de
bits 0 à ajouter pour atteindre cet état. La priorité que
DBP donne au client en tête de la queue
correspondante à la k-séquence est égale à cette
distance. Si la source se trouve déjà en état d’échec
transitoire (i.e., moins de m 1 dans la k-séquence), la
plus haute priorité 0 est affectée. Par exemple, pour
une source sous contrainte (3,5)-firm, le client en tête
de la queue est de priorité 2 si les 5 clients précédents
forment une k-séquence (11011), il est de priorité 3 si
les 5 clients précédents forment une k-séquence
(10111).
2.3.2. DWCS (Dynamic Window Constrained
Scheduling)
L’algorithme DWCS a été conçu dans [West99] pour
maximiser l’utilisation de la bande passante du réseau en
cas de surcharge pour des flux temps-réel tolérant aux
pertes. Il se charge de garantir la contrainte de type
(2x x, + − y) firm , c'est-à-dire, pas plus que 2x
dépassements d’échéances dans n’importe quelle fenêtre
de x+y paquets consécutifs tout en ayant la capacité de
partager la bande passante entre les paquets des flux en
compétition en proportion de leurs échéances et
tolérances aux pertes, avec x représente le nombre de
paquets qui pourraient être perdus ou transmis en retard
pour chaque fenêtre fixe de taille y paquets consécutifs.
DWCS est développé pour être employé comme une
alternative à EDF dans des conditions de surcharge, étant
donné que les performances de EDF se dégradent
sérieusement pour une charge supérieure à un.
Formellement, selon [Hamdaoui95] la priorité est
évaluée comme suit. Nous notons par
( 1 1 , , , j ) j j j
j i k i i s = δ − + " δ δ − la k-séquence de la source τj,
par lj(n,s) la position (en comptant à partir de droite)
de la nième
échéance respectée (ou 1) dans sj, la priorité
du (i+1)ème
client de τj est donnée par : Cet algorithme nécessite deux attribues par flux pour
assurer l’ordonnancement des paquets :
• L’échéance : elle est définie comme étant le
temps maximum entre le service de deux paquets
consécutifs au sein d’un même flux. Dans le cas
d’un flux périodique, l’échéance d’un flux
Di
Di τ i
est égale à sa période T . i
_ 1 ( , ) j P DBPi j j j j k l m s + = − +1 (2)
Notons que lorsqu’il y a moins de n 1 dans s, alors
lj(n,s) = kj + 1, afin que la plus haute priorité (= 0)
soit affectée. • La contrainte de fenêtre fixe: elle est aussi appelée
facteur de tolérance aux pertes. Elle est spécifiée
par la valeur i i = y W x i où représente le
nombre maximum de paquets perdus (ou transmis
en retard) pour chaque fenêtre fixe de taille
paquets consécutifs.
xi
i y
La Figure 3 schématise comment DBP est utilisé
pour l’affectation de priorité. Cette politique
d’affectation dynamique de priorité peut être
facilement et efficacement implémentée en matériel
car l’historique de chaque source peut être stocké dans
un registre de kj bits. Bien que DWCS s’intéresse à une fenêtre fixe, cette
contrainte peut inclure le cas de fenêtre glissante du
modèle (m,k)-firm. Dans [West04], il a été montré que
cette contrainte (x,y) permet, au pire (quand les x paquets
perdus se trouvent à la fin d’une fenêtre de taille y et les
x autres paquets se perdent au début de la fenêtre
suivante), de garantir le respect de (2x x, + − y) firm .
Comme DBP, DWCS maintient l’information d’état par
flux mais l’utilisation de cette information diffère
significativement de DBP. En effet, DBP affecte la
priorité relative à un flux en se basant sur l’historique
des k derniers clients, alors que DWCS utilise la notion
de la fenêtre fixe dans laquelle x et y changent de valeurs
au cours du temps selon un algorithme que nous
expliquons par la suite.
( , , , ) 1 1 1 1 δ i − k 1 + 1 " δ i − δ i
( , , , ) 2 2 1 2 k 2 1 i i δ i − + " δ − δ
2 1 2 2 2 3 , , , i + i + i + " j j j
( , , , ) 1 1 N
i N
i N δ i − k N + " δ − δ
N
i N
i N
i j j j 3 2 1 , , , " + + +
1 1 1 1, i+ pi+ 1 j 1 1 2 1 3 , , , i + i + i + " j j j
2 1 2
1, i+ pi+ j
N
i Nji 1 p 1 , + +
DBP
DBP
DBP
Serveur
...
...
τ 1
τ N
τ 2
x ji : ième travail de source x x pi : priorité du ième travail de source x
Figure 3. DBP pour l’affectation de priorité des
clients en tête des queues DWCS choisit les paquets à servir en fonction de
leurs échéances ainsi que leurs facteurs de tolérance aux
pertes. Dans [West99], l’affectation de priorité selon lapremière version de DWCS (DWCS1
) se résume en six
règles et est présentée dans le tableau suivant.
1 Choisir le paquet avec la plus petite contrainte de
fenêtre (plus petit facteur de tolérance aux
pertes) ( ) =
= = 1..
min i i i i N
W x y avec ≠ 0 i y
2 S’il existe 1 , , alors servir
avec EDF
≤ ≤ i j N /W W i = j ≠
( ) =
= 1..
min n n N
D
0
3 S’il existe 1 , et
, alors servir le paquet ayant le plus
petit numérateur de la contrainte de fenêtre
≤ ≤ i j N
=
= 1..
min i N
x
/ 0 W W i = j ≠
( )i
Di = D j
4 Si W W= = 0 et i j = = 0 i j y y
=
= 1..
min n n N
D
, alors servir avec
EDF ( )
5 Si W , alors servir le paquet ayant le plus
grand dénominateur de la contrainte de fenêtre
= 0 i
( ) =
= 1..
max n n N
y
6 Tous les autres cas sont traités par FIFO
Nous observons que si deux paquets ont les mêmes
valeurs de facteurs de tolérance aux pertes et les mêmes
valeurs d’échéances, alors les paquets sont servis selon
l’ordre croissant des où i x i x yi représente la valeur
courante du facteur de tolérance aux pertes pour tous les
paquets du ième flux. Ainsi, la priorité est affectée au
paquet du flux ayant la contrainte de perte la plus étroite,
afin d’éviter des pertes consécutives de paquets. Si les
facteurs de tolérance ainsi que les dénominateurs i y des
deux paquets sont nuls, alors les paquets sont servis dans
l’ordre croissant de leurs échéances ; Sinon, si les
dénominateurs i y sont non nuls, alors le paquet ayant la
plus grande valeur du dénominateur de la contrainte de
fenêtre sera affecté la plus haute priorité.
Chaque fois qu’un paquet du flux i est transmis, la
contrainte de fenêtre du i
ème
flux est ajustée. De même,
les contraintes de fenêtre des autres flux sont ajustées
dans le cas où il existe des paquets de ces flux qui ont
dépassé leurs échéances.
Pour les flux tolérant les pertes de paquets, les
paquets ayant raté leurs échéances sont tout simplement
rejetés. Pour les flux ne tolérant pas de pertes de paquets,
les échéances servent à réduire le délai d’attente dans les
files avant leur transmission. La valeur du facteur de
tolérance sert dans ce cas à éviter un retard excessif des
paquets de tel flux.
Les contraintes x et y sont ajustées au cours du
temps en fonction des échéances si elles sont ratées ou
non. Considérons un flux i ayant la contrainte de fenêtre
originale W x i i = yi à l’instant initial. Notons par
′ = ′ ′ W x i i yi la contrainte de fenêtre courante. Si le
paquet du flux i est transmis avant le dépassement de son
échéance, les contraintes x et sont ajustées de la
façon suivante :
′
i ′
i y
si (
si
or
al
s
s
i
′
j
(
( )
′
s
ors
lors
j ′ −
′ ′
= = ′ ′
ors
j y
x y
y
)
( )
al 1
0 or ;
i i i
i i i i i i
y x y y
x y x x y y
′ ′ > = ′ −
′ ′ = = =′ ′ =
Cependant, pour tous les paquets des autres flux en
attente, si un paquet du flux / j ≠ i rate son
échéance, alors les contraintes sont ajustées selon la
règle suivante:
)
( )
( )
( )
′ >
′ ′ = − =
′ ′ = = ′ = ′ =
′ =
+ > =
Si 0 Alors
1; 1;
Si 0 Al ;
Sinon Si 0 Alor
Si 0 Al +
Si 0 A +
j
j j
j j j j j
j
j j
j j j
j
j j j j
x
x x
x y x x y y
x
y x
y x
x y y y
j
Donc à chaque fois qu’une échéance du flux j est
ratée, le facteur de tolérance aux pertes de ce flux est
ajusté de façon à lui donner plus d’importance dans le
prochain tour de sélection de paquet. Cette approche
évite le problème de famine en affectant des priorités
plus élevées aux flux qui sont susceptibles de violer leurs
contraintes de fenêtre initiales. Inversement, un paquet
du flux i est servi avec respect de son échéance, conduit
à la diminution du facteur de tolérance des autres flux
réduisant ainsi sa priorité aux prochains tours.
Récemment, West et al. proposent dans [West04] la
deuxième version de DWCS (DWCS2
). La différence
principale avec la première version est que les deux
premières lignes du tableau sont inversées. Dans la
deuxième version de DWCS, la première règle
d’affectation de priorité est identique à EDF, i.e. le
paquet ayant la plus petite échéance est le plus
prioritaire. La deuxième règle dans DWCS2
fait recours à
une comparaison des contraintes de fenêtre lorsque les
échéances sont égales. West et al. expliquent que le
changement de l’ordre des règles est dû à l’optimalité de
EDF dans des conditions de charge normale pour
respecter les échéances et par conséquent les contraintes
de fenêtre. Cependant, l’algorithme DWCS1
reste
toujours plus performant que EDF dans des conditions
de surcharge où il est impossible de respecter toutes les
échéances.
Dans [West04], les auteurs étudient les
caractéristiques temporelles de DWCS2
et montre
analytiquement que, dans le cas où il existe un
ordonnancement faisable pour un ensemble de flux
périodiques, les délais des flux en service sont toujours bornés même en situation de surcharge. En effet, il a été
montré que le délai garanti à chaque flux est indépendant
des autres flux en service même en situation de
surcharge. De plus, les résultats de simulation montrent
que DWCS et DBP on des performances similaires en
termes de nombre d’échéances ratées et de violation de
la contrainte de fenêtre. Enfin, une implémentation sur
Linux de DWCS est téléchargeable à partir du site de
l’auteur.
2.3.3. EFP (Enhanced Fixed Priority)
EFP est proposé dans [Hamdaoui97],
[Ramanathan99]. Pour prendre en compte la
contrainte (m,k)-firm, il suffit que chaque source
définisse un κ-pattern et marque parmi ses k clients
consécutifs m clients critiques et k-m clients
optionnels. En faisant ainsi le serveur pourra rejeter
un client optionnel en cas de surcharge (c’est à dire au
cas où son échéance ne peut plus être respectée par le
serveur). Tous les clients critiques peuvent être
ordonnancés par un algorithme à priorité fixe tel que
RM (Rate Monotonic). Les clients optionnels sont
servis avec la priorité la plus basse selon la politique
FIFO. Le problème revient donc à définir un κ-
pattern. Pour commencer le marquage, le premier
client de chaque source est marqué critique par défaut.
Pour une source τi, le marquage des clients critiques et
optionnels selon sa contrainte (mi,ki)-firm est alors
entièrement donné par l’équation suivante.
Le nième
client (n = 0, 1, …) est marqué critique si
n vérifie : n m k
n
k m
× = ×
Ce qui donne comme κ-pattern suivant (pour i=1, 2,
…, k) :
1 si
0 sinon
i
i m k i
π k m
× = × =
(3)
Le marquage ne dépend que du rapport mi/ki. Une
condition suffisante est donnée dans [Ramanathan99]
pour la garantie déterministe de contrainte (mi,ki)-
firm.
Cet algorithme souffre néanmoins trois problèmes:
• Le premier client de chaque source est marqué
critique par défaut. Ce qui force artificiellement le
système de se retrouver dans un « pire cas ».
• L’équation 3 distribue régulièrement les m clients
critiques parmi les k arrivées consécutives. Ce qui
peut ne pas être optimal dans certaines situations.
• La technique de marquage ne dépend que du rapport
mi/ki, mais pas de Ci et Ti. Deux sources ayant des Ci
et Ti très différents mais avec la même contrainte
(m,k)-firm relèveront du même κ-pattern et donc se
verront leur clients critiques distribués de la même
façon. Le fait de ne pouvoir les distinguer peut
conduire à une situation non optimale.
Partant de l’idée qu’une partition judicieuse et
globale des clients critiques de toutes les sources
devrait donner une meilleure ordonnançabilité,
[Quan00] a amélioré l’algorithme présenté dans
[Hamdaoui97, Ramanathan99]. Il a d’abord prouvé
que trouver une partition optimale est NP-difficile.
Puis, il donne une heuristique pour optimiser la
répartition de mi clients critiques parmi ki clients
consécutifs en prenant en compte les relations entre
les sources.
3. (m,k)-WFQ pour une meilleure gestion de
la QdS temps réel
L’ordonnanceur WFQ (Weighted Fair Queueing)
[Parekh93] est déployé dans les commutateurs et
routeurs du réseau Internet pour fournir de la QdS
grâce à ses propriétés de garantie de bande passante et
de délai borné pour des flux (σ,ρ)-bornés.
L’algorithme (m,k)-WFQ consiste à intégrer les
contraintes temporelles (m,k)-firm au processus
d’ordonnancement de WFQ. Nous faisons d’abord un
rappel du principe de WFQ afin d’expliquer ensuite
l’apport de (m,k)-WFQ.
WFQ garantit à chaque flux servi la proportion de
la bande passante réservée selon son coefficient de
partage Φi. Chaque paquet de messages est estampillé
par un tag appelé temps virtuel de départ. Le serveur
sélectionne toujours le paquet dont le temps virtuel de
départ est le premier à partir de l’instant de sélection.
Dans WFQ le temps virtuel de départ est défini par :
{ } 1 max , ( )
k
k k i
i i
i
L F F V t − = Φ
+ (4)
avec
• : temps virtuel de départ du k
ième paquet du i
ème
flux,
k Fi
• V(t) : le temps virtuel quand le k
ième paquet arrive,
• Φi : le coefficient de partage du i
ème flux,
k • Li : la taille du k
ième paquet du i
ème flux,
• ma { } 1 x , ( ) k F V i t − : le temps virtuel du début de
service du k
ième paquet.
Avec WFQ, il est montré dans [LeBoudec02] que
pour un flux τi de type (σi,ρi)-borné et ayant un débit
moyen réservé gi ≥ ρi, le délai garanti par WFQ à ce
flux est borné par :
max ,max i
i
i
L D
g c
σ
= + (5) où Lmax est la taille maximale du paquet parmi tous les
paquets dans tous les flux et c la capacité de
traitement du serveur.
Nous rappelons qu’un flux est dit (σ,ρ)-borné si sa
fonction cumulative d’arrivée R(t) vérifie la relation
∀ ≤ 0 , s ≤ t R (t) − R(s) ≤ σ ρ + (t − s) avec σ la taille
maximale de rafale et ρ le débit moyen à long terme.
La borne fournie par WFQ sur le temps de réponse
d’une source de flux est étroitement liée au coefficient
de partage de la bande passante ρi et à la taille de la
rafale σi. Pour avoir un délai d’attente court, un flux
doit réserver une large bande passante. Pour un flux
de faible débit moyen et ayant une grande rafale ceci
peut conduire à une mauvaise utilisation de la bande
passante. Ce problème peut être résolu avec la
politique WFQ priorisé proposé dans [Wang02] mais
la notion de (m,k)-firm n’est pas prise en compte.
Nous avons proposé dans [Koubâa04a],
[Koubâa04b] une approche appelée (m,k)-WFQ. Pour
que l’ordonnanceur WFQ puisse prendre en compte
les contraintes temporelle (m,k)-firm, nous exprimons
la contrainte par un κ-pattern, donc la source marque
m paquets critiques parmi tous les k paquets
consécutifs et les autres étant optionnels.
L’ordonnanceur (m,k)-WFQ estampille ensuite le
paquet par son temps virtuel de départ décrit par
l’équation 4. L’algorithme est décrit dans la Figure 4.
Le processus de service est activé quand au moins un
paquet existe dans la file d’attente du système. Le
serveur sélectionne le paquet ayant le plus petit temps
virtuel de départ parmi tous les paquets critiques
présents en tête de files. Si aucun paquet critique
existe, le choix sera fait parmi les paquets optionnels.
Puis, si le paquet sélectionné est critique, il est
exécuté (ou transmis) directement par le serveur,
tandis que si le paquet est optionnel, l’ordonnanceur
vérifie avant son exécution si ce paquet pouvait
éventuellement satisfaire son échéance. Si l’échéance
souhaitée ne peut être garantie après l’exécution, le
serveur rejette le paquet et refait une nouvelle
sélection, sinon, il l’envoie.
L’avantage de l’algorithme proposé est qu’il
permet de garantir une bande passante à un flux tout
en intégrant les propriétés temporelles dans le
processus d’ordonnancement ce qui revient à gérer les
flux plus efficacement. En effet, le rejet des paquets
optionnels qui ne satisfont pas leurs échéances permet
au serveur de donner la main plus rapidement aux
paquets critiques en attente. Cette perte ne dégrade
pas les performances des flux servis tant que leurs
contraintes (mi,ki)-firm sont satisfaites. Ainsi, (m,k)-
WFQ diminue forcément les bornes sur les temps de
réponse des flux temps réel par rapport à WFQ
standard. Dans ce qui suit nous montrons
quantitativement cette amélioration par simulation
d’un exemple.
Entrées
Flux τi = {(Période ou Débit), Echéance
Désirée, (mi,ki), (Gigue ou Rafale),
Taille de Paquet)
Affectation de priorité
A l’arrivée du aième du flux [i] {
si ( ( % )i π a k = 1 ) alors {
Marquer le paquet comme critique;
}
sinon {
Marquer le paquet comme optionnel;
}
Calculer le temps virtuel de départ k Fi ;
Estampiller le paquet avec k Fi ;
}
Mettre le paquet dans sa file d’attent;
Discipline de Service
Serveur
Tant que (la file est non vide) {
= libre;
si (serveur!= occupé) {
Choisir le paquet dont k Fi plus petit
si (paquet est critique) {
Envoyer le paquet;
Serveur = occupé;
sinon { //Paquet Optionnel
}
si (l’échéance serait ratée){
Rejet du paquet;
Serveur = libre;
sinon {
}
Envoyer le paquet;
Serveur = occupé;
}
}
}
si (serveur== occupé) {
attendre jusqu’à tx totale du paquet;
Serveur= libre;
}
Figure 4. Algorithme (m,k)-WFQ
Considérons un réseau constitué de trois sources
de trafic. Ces trois sources partagent un lien de 10
Mbit/s selon leurs coefficients de réservation. Dans
cette simulation, on considère une taille fixe à tous les
paquets des trois flux de 8 Kbits. Le Tableau 1
récapitule les paramètres de simulation pour chacun
des flux.
Le marquage de paquets en critiques et optionnels
est spécifié par un κ-pattern fixe pour chaque source. La première source génère un flux de voix selon le
modèle de trafic ON/OFF. Les périodes d’activité ON
et de silence OFF sont exponentiellement distribuées
avec les moyennes 1/ et avec
une période de génération de paquets dans la période
d’activité de 50 ms. Donc, le débit moyen du flux est
de 64 Kb/s. Les contraintes temporelles sont de type
(4,5) et l’échéance souhaitée d’un paquet est fixée à
10 ms. Le κ-pattern fixe le profil de la séquence
comme : 11011 11011 11011 …
500 µ ON = ms 1/ 755ms OFF µ =
(m,k) Débit Trafic κ-pattern Echéance
Voix (4,5) 64 kb/s ON/OFF (500/755/50)ms 11011 10 ms
Vidéo (3,5) 2Mb/s Périodique avec gigue ~2Mb/s 10110 4 ms
FTP (0,1) 7,936 Mb/s Périodique avec gigue ~7.936 Mb/s 0 Infinie
Tableau 1. Configuration simulée
La deuxième source est une source CBR (Constant
Bit Rate ) périodique avec gigue (95% de Ti-Ci) qui
génère un flux vidéo de 2 Mbit/s. L’échéance des
paquets est fixée à 4 ms avec une garantie de type
(3,5). Le κ-pattern fixe le profil de la séquence
comme : 10110 10110 10110 …
La troisième source est un agrégat de flux FTP,
que nous supposons périodique avec gigue (95% de
Ti-Ci) et qui consomme le reste de la bande passante
ayant donc un débit de 7,936 Mb/s. Un flux FTP est
vulnérable à la perte de paquets et ce trafic fonctionne
en mode Best-Effort. Donc, il ne possède pas de
propriétés temporelles strictes comme dans le cas des
deux sources temps-réel : Voix et Vidéo. Par
conséquent, nous fixons une garantie de type (0,1)
pour le flux FTP et une échéance infinie afin d’éviter
tout rejet de paquets FTP optionnels.
Le tableau 2 montre les bornes mesurées sur le temps de
réponse des paquets pour chacun des flux et ce pour le
serveur (m,k)-WFQ, le serveur WFQ, le serveur (m,k)-
FIFO et le serveur FIFO.
(m,k)-WFQ WFQ (m,k)-FIFO FIFO
Voix 9,769 (taux de rejet = 6,8%) 2428,031 20,529 48,031
Vidéo 3,999 (taux de rejet = 5,5%) 55,391 21,086 49,031
FTP 9,696 36,562 21,442 49,083
Tableau 2. Bornes sur les temps de réponse (ms)
Les cas du serveur FIFO et (m,k)-FIFO sont
simulés pour que l’on puisse les comparer avec le cas
du serveur (m,k)-WFQ. Un serveur (m,k)-FIFO est
simplement un serveur FIFO avec le rejet des paquets
optionnels ayant leur échéances ratées.
Comme prévu, (m,k)-WFQ fournit une garantie
plus étroite sur le délai pour les flux temps-réel. Dans
ce scénario, on peut remarquer que le délai maximal
garanti par WFQ au trafic de la voix est assez grand.
Ce résultat découle de deux facteurs majeurs (cf.
équation 5) : le faible taux de bande passante réservée
(64 Kbit/s) et la taille importante de la rafale.
L’algorithme (m,k)-WFQ permet de réduire
considérablement les bornes sur les temps de réponse
en sacrifiant quelques paquets optionnels selon les
contraintes temporelles (m,k)-firm de chaque flux. Le
rejet des paquets optionnels ne satisfaisant pas leurs
échéances améliore nettement le délai des paquets
critiques. En comparant (m,k)-WFQ avec la politique
(m,k)-FIFO, on peut aussi constater que (m,k)-WFQ
conserve la bonne propriété de WFQ en terme de
distinction des flux (garantie par flux).
Pour fournir la garantie déterministe de (m,k)-firm
dans (m,k)-WFQ, nous donnons la borne sur le temps
de réponse de (m,k)-WFQ. L’évaluation de cette
borne n’est pas triviale essentiellement à cause de la
difficulté de déterminer la part de paquets optionnels
que le serveur a effectivement servi. La Figure 5
montre le modèle en « network calculus » qui a
permis le calcul de cette borne.
Le calcul de la borne sur le temps de réponse
utilise le formalisme du Network Calculus
[LeBoudec02]. Dans [Koubâa04a] nous avons intégré
les contraintes (m,k)-firm dans le formalisme du
Network Calculus en introduisant la notion du (m,k)-filtre qui permet de filtrer tous les paquets optionnels
et fournir en sortie seulement les paquets critiques. La
Figure 5 montre la technique pour modéliser le flux
effectif qui devra être servi par un serveur,
garantissant un débit fixé tel que celui de WFQ. Le
flux effectif contient tous les paquets critiques et le
nombre maximum de paquets optionnels qui pourront
être servis par l’ordonnanceur. Les paquets optionnels
servis sont ceux qui ne ratent pas leurs échéances. Ce
flux effectif est utilisé pour le calcul de la borne sur le
délai garanti par (m,k)-WFQ.
R*2(t)
R*3(t)
(m,k)
Filter
(k-m,k)
Filter
R*1(t)
R(t) R*(t)
Mux
( , σ ρ) k m−
k
Shaper
Figure 5. Modèle de Network calculus
Le délai maximal garanti pour une source (σ,ρ)-
borné respectant une contrainte temporelle (m,k)-firm
avec un taux de partage de bande passante g ≥ ρ et
servi par un ordonnanceur (m,k)-WFQ est :
* max max m k, k m,k
e L D
g g c
σ = ⋅ λ λ + − ⋅ + (6)
Avec e ≤ σ la taille maximale de rafale des paquets
optionnels qui pourraient être transmis par
l’ordonnanceur. λm k, désigne le taux de bits critiques
du flux et λk m− ,k le taux de bits optionnels du flux.
Dans le cas où la taille du paquet est constante
m k,
m
k
λ = . Si aucun paquet optionnel n’est servi,
* x Dmin
Lma m k, g c +
σ = ⋅ λ est la plus petite borne sur le
délai. Pour garantir un délai entre Dmin* et Dmax*, on
peut ajuster l’échéance maximale Dop qui détermine e
= gDop.
L’algorithme (m,k)-WFQ peut être étendu et intégré
dans Intserv et le réseau ATM. L’idée de base est que
chaque source voulant profiter d’une garantie avec
dégradation adaptée doit marquer ses paquets en tant que
optionnel ou critique selon sa contrainte (m,k)-firm et
son κ-pattern associé. L’ordonnanceur WFQ qui garantit
le débit dans le cadre du service garanti, doit tenir
compte de cette classification. Les paquets optionnels
dont l’échéance ne peut être respectée sont rejetés.
(m,k)-WFQ permet alors de garantir des bornes sur le
délai plus précises et d’une manière plus flexible. Pour
une source ayant un trafic défini par le TSPEC (M,p,b,r)
de Intserv et d’ATM avec M la taille maximale d’un
paquet, p le débit crête, b la taille maximale de la rafale
autorisée et r le débit moyen à long terme associé à la
contrainte (m,k)-firm et autorisant un délai maximal pour
les paquets optionnels égal à , le délai maximal Dmax
a été obtenu dans [Koubâa04b] de façon similaire à
l’obtention de l’équation 6.
Dop
4. Garantie déterministe et condition
suffisante de DBP
On vient de voir que beaucoup d’algorithmes
d’ordonnancement ont été proposés pour fournir une
garantie en moyenne (best-effort) et déterministe du
temps réel (m,k)-firm. S’il est vrai que par rapport à la
garantie déterministe du temps réel dur, le fait de ne
plus viser que garantir en moyenne m échéances parmi
les k instances consécutives d’une tâche résulte en
moins de demande de ressources en moyenne, il n’est
pas évident que cet avantage est toujours conservé
lorsqu’on cherche une garantie déterministe de (m,k)-
firm. Cette question est fondamentale pour savoir si
un algorithme d’ordonnancement pour (m,k)-firm peut
apporter des avantages par rapport à un algorithme
connu (EDF, FP, …) pour le temps réel dur avec
garantie déterministe. Le point clé pour répondre à
cette question est la recherche de conditions
suffisantes d’ordonnançabilité. Un ensemble de
sources τ = (τ1, τ2, …, τN) (dans le modèle MIQSS)
ordonnançable respecte alors la contrainte (m,k)-firm
de façon déterministe car l’analyse d’ordonnançabilité
est réalisée dans le pire cas.
Le cas de (m,k)-WFQ donne relativement
simplement cette garantie déterministe grâce à WFQ
qui transforme en fait un serveur partagé en N
serveurs dédiés à N sources, avec comme facteur
d’interférence la longueur maximale d’un paquet Lmax.
L’obtention d’une condition suffisante dans un
modèle MIQSS avec non préemption est en général un
problème difficile.
Dans ce paragraphe, nous donnons d’abord un état de
l’art sur ce problème de recherche de conditions
suffisantes pour l’ordonnancement non préemptif, puis
une condition suffisante pour la garantie déterministe du
temps réel (m,k)-firm avec l’ordonnancement NP-DBPEDF
(Non Preemptive - Distance Based Priority -
Earliest Deadline First) [Li03], [Li04].
4.1. Etat de l’art sur les conditions suffisantes
Nous commençons par nous intéresser à la
condition suffisante pour la garantie déterministe
(k,k)-firm (i.e. temps réel dur). Pour un ensemble de
sources périodiques ou sporadiques τ = (τ1, τ2, …, τN)avec τi = {Ti, Ci, Di} et des dates initiales
quelconques, [Jeffay91] a donné un ensemble de
conditions suffisantes et nécessaires
d’ordonnançabilité sous EDF non préemptif (noté par
NP-EDF : Non-Preemptive EDF). Dans la suite de ce
paragraphe nous supposons que le temps est discrétisé
et indexé par les entiers. Nous supposons également
que l’échéance est égale à la période (ou à l’intervalle
d’interarrivée minimal s’il s’agit du cas sporadique).
Théorème de [Jeffay91] :
Considérons un ensemble de N sources
périodiques ou sporadiques τ = (τ1, τ2, …, τN)
avec τi = {Ti, Ci, Di} classées dans l’ordre nondécroissant
des périodes (i.e. pour deux sources
τi, τj, si i < j, alors Ti ≤ Tj) et Di = Ti. Si τ est
ordonnançable, on a :
C1:
1
1
N
i
i i
C
= T ∑ ≤
C2: ∀i, 1< i N; ∀L, T1 < L < Ti ≤ :
1
1
1 i
i j
j j
L C C
T
−
=
− ≥ + ∑ L
Si τ satisfait les conditions C1 et C2 cidessus,
alors NP-EDF peut ordonnancer
n’importe quel ensemble concret généré à partir
de τ. C’est à dire τi avec une date initiale ri.
Le sens de C1 est clair. C’est la charge globale
normalisée qui ne doit jamais dépasser 1. Une autre
interprétation de C1 peut être que pour un intervalle
de temps quelconque, la demande de traitement est
toujours inférieure à la longueur de l’intervalle. C2
décrit une répartition extrême des flux d’arrivée : le
client Ci occupe le serveur et tous les autres arrivent
juste après une unité de temps (temps discret). Le
serveur doit alors être capable de terminer le
traitement de Ci, ainsi que le traitement des autres
arrivées (représentées par le deuxième terme dans C2)
sans dépasser une échéance.
Pour un ensemble τ dans le modèle MIQSS on
peut utiliser ce théorème pour dimensionner la
capacité de traitement du serveur c (Ci = Wi/c). Dans
[Li03] un algorithme est développé pour trouver le c
minimal.
En ce qui concerne la garantie déterministe (m,k)-
firm dans le modèle MIQSS, si l’on considère (m,k)-
WFQ comme un cas particulier de MIQSS et DWCS
[West04] comme étant trop restreint, un seul autre
résultat proposé par [Ramanathan99] existe pour le
cas de κ-pattern fixe selon l’équation 3 que nous
instancions ici dans le modèle MIQSS pour prendre en
compte les sources multiples.
Pour une source τi = {Ti, Ci, Di, mi, ki} le κ-pattern
correspondant est une suite binaire de ki bits
∏ = i i {π 1 2 , π π i ... ik i }
1
ki
m ij i j
∑ π =
=
, qui satisfait : (1) le nème client est
critique si πι(n%ki) = 1 et optionnel si πι(n%ki) = 0 ;
(2) .
Le κ-pattern proposé dans [Ramanathan99] est
donné par :
1 Si
0 S 1,2, inon
i i
ij i i
i
j m k j k m
j k
π
× = × = = "
(7)
Les demandes de traitement critiques sont
ordonnancées selon RM (Rate Monotonic). La
condition suffisante est donnée par le théorème
suivant.
Théorème de [Ramanathan99] :
Considérons un ensemble de N sources
périodiques ou sporadiques τ = (τ1, τ2, …, τN)
avec τi = {Ti, Ci, Di, mi, ki} classées dans
l’ordre non-décroissant des périodes (i.e. pour
deux sources τi, τj, si i < j, alors Ti ≤ Tj) et Di =
Ti. Définissons les termes ci-dessous :
: , i i
ij j j i
i i
k k R l T l T T l Z m m +
= ⋅ ⋅ < ∈
1
1
i
i i
j
R R
−
=
=∪ j
( ) j
j
j j
m t
n t
k T
=
1
1
( ) ( )
i
i i j
j
W t C n t C
−
=
= + ⋅ ∑ j
Si i t R i n W (t) t 1 mi ∈ ≤ pour tout 1 i ≤ ≤ N ,
alors la politique RM respecte de façon
déterministe toutes les contraintes (mi,ki)-firm.
Dans la pratique pour un ensemble de source τ =
(τ1, τ2, …, τN) avec dates initiales quelconques,
trouver la capacité du serveur c minimale requise pour
la garantie déterministe selon ce théorème est NPdifficile
[Quan00]. Dans [Quan00] des algorithmes heuristiques sont
proposés. Afin de minimiser la charge instantanée
dans le pire cas (qui permet de diminuer la demande
en c), [Quan00] propose de répartir plus
uniformément les mi parmi les ki en faisant la rotation
des mi selon l’équation suivante.
(( 1) ) 1 si 1
0 s 1,2, inon
i i i
i
ij i i
i
j s m k j s k m
j k
π
− − × − = × + = = "
(8)
où si est le nombre de périodes obtenues par le
décalage circulaire vers la droite.
Un algorithme heuristique choisit une valeur de si
provoquant ainsi moins d’interférence de demandes
d’exécution par rapport à l’algorithme de
[Ramanathan99]. Ce principe de rotation ne change
pas de κ-pattern vis à vis d’une source mais change
simplement la répartition dans l’axe du temps des
demandes d’exécution critiques de N sources. En
réalité, cette rotation veut introduire une sorte de κ-
pattern dynamique. De ce point de vue DBP le fait
plus facilement par l’affectation de priorité en-ligne.
4.2. Condition suffisante pour NP-DBP-EDF
Par rapport à NP-EDF dans [Jeffay91], NP-DBPEDF
introduit une variable supplémentaire qui est la
valeur de DBP à l’instant t. Pour un client de la source
τi sa priorité DBP est calculée selon l’équation 2 et on
la note par DBPj(t). A un instant t, l’ensemble des
clients peut être classé en trois classes suivantes :
1) Le client en cours de service dans le serveur
2) Les clients en attente avec DBPj(t) = 1, i.e., ces
clients doivent être exécutés par le serveur et
terminer leur service avant leurs échéances
respectives, sinon la garantie (m,k)-firm sera
violée
2+i) Les clients en attente avec DBPj(t) = i (i>1), i.e.,
un tel client sera exécuté si le serveur est
disponible et si l’exécution peut terminer avant
son échéance, sinon il sera écarté par le serveur
et le prochain client de la source aura sa priorité
augmentée : DBPj(t+Tj) = DBPj(t)-1
Nous rappelons qu’en cas d’égalité de priorité
DBP, EDF est utilisé.
La condition suffisante est donnée par le théorème
suivant (cf. [Li03] pour la preuve).
Théorème de [Li03] :
Considérons un ensemble de N sources périodiques ou sporadiques τ = (τ1, τ2, …, τN) avec τi = {Ti, Ci, Di, mi,
ki} classées dans l’ordre non-décroissant des périodes (i.e. pour deux sources τi, τj, si i < j, alors Ti ≤ Tj) et Di = Ti.
Si τ satisfait les conditions C1 et C2 suivantes durant un intervalle de temps L quelconque, NP-DBP-EDF peut
alors ordonnancer n’importe quel ensemble concret τ’ généré par τ. C’est à dire qu’il n’y aura aucune violation de
contrainte (mi,ki)-firm pour i = 1, 2, …, N.
C1: ,
i i
i i
i i
i U i i i
L L k T
L k T
m M in m C ∈ k T T
− + +
∑ i
( ) 1 ( ( ) 2) 1 ( ( ) 2) 1 ( ( ) 2) ,
j j
j j j j
j j j j
j j j
j U j j j
L DBP t T
L DBP t T k T
L DBP t T k T
m Min m C L ∈ −τ k T T
− − − − − − − − − − + ≤
∑
C2: , , m in ( i ∀ ∀i L L > T )
1 1
i
i i i
i i i
i i
i i i
L C
L C k T
L C k T
m Min m C
k T T
+
− − − − + + − − +
, 1 i( ) 1 ( ( ) 2) 1 ( ( ) 2) 1 ( ( ) 2) ,
i
j j
j j j j
j j j j
j j j
j j j j
L DBP t T
L DBP t T k T
L DBP t T k T
m Min m C ∈ −τ τ k T T
− − − − − − − − − − + ≤
∑ L
Où U est l’ensemble de clients de DBP = 1 qui peuvent arriver au même instant t et τ - U l’ensemble des autres
clients. Dans le pire cas cet ensemble U peut inclure un client de chaque source et τ - U = ∅ (ensemble vide).
Dans la pratique pour un ensemble concret τ’, ce pire cas peut ne jamais être atteint.
En fait, cette expression de condition suffisante est
celle de NP-EDF avec une variable qui est DBPj(t).
Nous avons démontré [Li03] par ailleurs que pour un
système avec des valeurs de mi et ki quelconques (avec
mi < ki, pour i = 1, 2, … N qui représente le numéro de
source), cette condition suffisante peut être équivalente à
la condition définie dans le cas du temps réel dur : (k,k)-
firm.
Pour un ensemble concret de sources, un
programme développé dans [Li03] peut être utilisé
pour évaluer la différence en terme de demande de
capacité de traitement du serveur entre (m,k)-firm et
(k,k)-firm.
Figure 6 et Figure 7 montrent ce qu’on peut
obtenir par ce programme pour le cas concret du
Tableau 3. L’abscisse représente un intervalle de
temps L et l’ordonnée la demande de serveur devant
être exécutée avant la fin de l’intervalle de temps L
(i.e. arrivée cumulative du travail). Dans chaque
figure la courbe supérieure correspond à la demande
de (k,k)-firm et celle inférieure correspond à la
demande de (m,k)-firm. On a supposé que toutes les
DBPi(t) = 1 (le pire cas) pour (m,k)-firm.
contrainte (m,k) Ci Ti
= Di
Source 1 (2,5) 8 12
Source 2 (4,5) 10 20
Source 3 (3,6) 2 5
Source 4 (1,5) 4 6
Tableau 3. Un cas concret du MIQSS
On peut constater que la demande de serveur de
(m,k)-firm ne dépasse jamais celle de (k,k)-firm mais
les deux courbes se superposent pour des petites
valeurs de L.
Comment éviter cette situation indésirable constitue
alors un objectif de nos travaux futurs car le
dimensionnement du serveur du modèle MIQSS en
dépend directement. Dans [Li03] une analyse des causes
de la superposition est développée et nous concluons que
la meilleure approche d’ordonnancement et les meilleurs
κ-patterns doivent être donnés par le serveur
(ordonnanceur). Ce qui peut être réalisé par
l’établissement d’un protocole de négociation de la QdS
entre les sources et l’ordonnanceur.
t(ms)
workload
10 20 30 40 50 60
Figure 6. Différence en demande de serveur
entre conditions 1 de [Li03] et de [Jeffay91]
t(ms) t(ms)
workload
10 20 30 40 50 60 t(ms)
Figure 7. Différence en demande de serveur
entre conditions 2 de [Li03] et de [Jeffay91]5. Conclusion et perspectives
Offrir la QdS temps réel avec dégradation
contrôlée selon le modèle (m,k)-firm consiste en une
piste intéressante pour la conception des systèmes
temps réel adaptatifs. En effet par rapport à la
conception des lois de commande adaptatives en
fonction de la variation de la QdS dans un système de
contrôle-commande distribué, qui est basée sur une
métrologie explicite en temps réel de la QdS du réseau
[Michaut03], une approche utilisant par exemple DBP
a l’avantage d’être simple car la « métrologie » de la
QdS du système (certes se réduit au seul paramètre
qui est équivalent à la charge) est réalisée
implicitement par la k-séquence qui peut être
considérée comme un historique de la QdS du réseau.
Parmi les algorithmes d’ordonnancement sous
contrainte (m,k)-firm, nous préférons les algorithmes
dynamiques tels que DBP et DWCS aux algorithmes
utilisant un κ-pattern fixe. Ceci pour essentiellement
deux raisons : la capacité d’adaptation en-ligne à la
variation d’état du système (variation en flux d’entrée,
en capacité de traitement du serveur, …) et le
potentiel de mieux utiliser le serveur dans le modèle
MIQSS. Cette dernière est simple à comprendre.
Considérons une source ayant déjà les m premiers
clients servis. Le serveur, en cas de surcharge, peut ne
pas servir les k-m clients suivants tout en satisfaisant
la contrainte de (m,k)-firm. Tandis qu’avec un κ-
pattern fixe, le serveur ayant déjà servi les m premiers
clients (critiques et optionnels) risque de continuer à
servir encore des clients s’il y des clients critiques
dans les k-m clients suivants selon le κ-pattern.
Nos travaux futurs visent principalement deux
directions : 1) Implémentation de la gestion dynamique
de QdS selon le modèle (m,k)-firm dans les réseaux; 2)
Recherche de conditions suffisantes d’ordonnançabilité
avec d’autres algorithmes d’ordonnancement pour la
garantie déterministe de (m,k)-firm ainsi que leur
exploitation pour le dimensionnement du serveur dans le
modèle MIQSS.
References
[ARTIST03] Project IST-2002-34820, Roadmap, “Adaptive
Real-Time Systems for Quality of Service Management”,
http://www.systemes-critiques.org/ARTIST/Roadmaps/ ,
May 6th 2003.
[Bernat01] Bernat, G., A. Burns and A. Llamosi, “Weakly-hard
real-time systems”, IEEE Transactions on Computers,
50(4), pp.308-321, April 2001.
[Bernat97] Bernat G. and A. Burns, “Combining (n, m)-hard
deadlines and dual priority scheduling”, Proceedings of
Real-Time Systems Symposium, pages 46–57, Dec 1997.
[Chang00] Chang, C. S., Performance Guarantees in
Communication Networks. New York: Springer-Verlag,
2000.
[Chow01] Chow, M.Y., Y. Tipsuwan, “Network-based control
adaptation for network QoS variation”, IEEE Military
Communications Conference (MILCOM2001), Vol. 1,
pp257 -261, 2001.
[Chung90] Chung, J.Y., Liu, J.W. and Lin, K.J., “Scheduling
periodic jobs that allows imprecise results”, IEEE Trans.
on Computers, 39(9):1156-1175, sep. 1990.
[El-Gendy03] El-Gendy, M.A., A. Bose, K.G. Shin, “Evolution
of the Internet QoS and support for soft real-time
applications”, proceedings of the IEEE, Vol.91, No.7,
pp1086-1104, July 2003.
[Furht99] Furht, B. (Editor), Handbook of multimedia
computing, CRC Press LLC, 1999.
[Hamdaoui95] Hamdaoui M. and P. Ramanathan, “A dynamic
priority assignment technique for streams with (m, k)-
firm deadlines”, IEEE Transactions on Computers,
44(4), 1443–1451, Dec.1995.
[Hamdaoui97] Hamdaoui M. and P. Ramanathan, “Evaluating
Dynamic Failure Probability for Streams with (m, k)-
firm Deadline”, IEEE Transactions on Computers,
46(12), pp.1325–1337, Dec.1997.
[Jeffay91] Jeffay, K., Stanat, D.F. and Martel, C.U., “On Non
Pre-emptive Scheduling of Periodic and Sporadic Task”,
IEEE real-time systems symposium, pp129-139, San
Antonio (USA), Dec. 4-6, 1991.
[Jumel03] Jumel, F., N. Navet, F. Simonot-Lion, « Influence
des performances d'une architecture informatique sur la
fiabilité des systèmes échantillonnés ». Edition Teknéa
RTS'2003. (Paris). 2003.
[Koubâa04a] Koubâa, A., Song, Y.Q., “Loss-Tolerant QoS
using Firm Constraints in Guaranteed Rate Networks”,
10th IEEE Real-Time and Embedded Technology and
Applications (RTAS'2004), Toronto (Canada) 25-28 May
2004.
[Koubâa04b] Koubâa, A., Gestion de la qualité de service
temporelle selon la contrainte (m,k)-firm dans les
réseaux à commutation de paquets, Thèse de l’INPL,
Nancy, 27 octobre 2004.
[LeBoudec02] Le Boudec, J.Y. and P. Thiran, Network
Calculus: A Theory of Deterministic Queueing Systems
For The Internet, Online Version of the Book of Springer
Verlag – LNCS 2050, July 2002.
[Li03] Li, J., « Sufficient condition for guaranteeing (m,k)-firm
real-time requirement under NP-DBP-EDF scheduling »,
Rapport de DEA d’informatique de Lorraine, LORIA,
Juin 2003.
[Li04] Li, J., Y.Q. Song, F. Simonot-Lion, « Schedulability
analysis for systems under (m,k)-firm constraints »,
WFCS2004, Vienna (Austria), Sept. 22-24, 2004.
[Martin04] Martin S., « Maîtrise de la dimension temporelle de
la Qualité de Service dans les réseaux », Thèse
Université Paris 12 (projet Hipercom INRIA), 6 Juillet
2004. [Michaut03] Michaut F., « Adaptation des applications
distribuées à la Qualité de Service fournie par le réseau
de communication », Thèse UHP Nancy 1, 26 Nov.
2003.
[Nilsson98] Nilsson, J., et al, “Stochastic analysis and control
of real-time systems with random time delays”,
Automatica, vol.34, pp.57-64, 1998.
[Parekh93] Parekh, A.K., R.G. Gallager, “A generalized
processor sharing approach to flow control in integrated
services networks: the single-node case”, IEEE/ACM
Transactions on Networking, Volume 1, Issue 3, pp344-
357, June 1993.
[Quan00] Quan G. and X. Hu, “Enhanced Fixed-priority
Scheduling with (m, k)-firm Guarantee”, Proc. Of 21st
IEEE Real-Time Systems Symposium, pp.79-88, Orlando,
Florida, (USA), November 27-30, 2000.
[Ramanathan99] Ramanathan P., “Overload management in
Real-Time control applications using (m, k)-firm
guarantee”. IEEE Transactions on Parallel and
Distributed Systems, 10(6):549–559, June 1999.
[Wang02] Wang, S., Y. Wang, K. Lin, “Integrating Priority
with Share in the Priority-Based Weighted Fair Queueing
Scheduler for Real-Time Networks” Journal of RTS,
p119-149, 2002.
[West04] West, R., Y. Zhang, K. Schwan and C. Poellabauer,
"Dynamic Window-Constrained Scheduling of RealTime
Streams in Media Servers", IEEE Transactions on
Computers, Volume 53, Number 6, pp. 744-759, June
2004.
[West99] West, R. and K. Schawn, “Dynamic windowconstrained
scheduling for multimedia applications”, 6th
International Conf. On Multimedia Computing and
Systems, ICMCS’99, IEEE, June 2000.
Introduction `a l’analyse syntaxique et `a la compilation
Roberto M. Amadio
To cite this version:
Roberto M. Amadio. Introduction `a l’analyse syntaxique et `a la compilation. Ecole d’ing´enieur. ´
Paris Diderot (Paris 7), 2009, pp.68.
HAL Id: cel-00373150
https://cel.archives-ouvertes.fr/cel-00373150v2
Submitted on 25 Jun 2009
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.Introduction `a l’analyse syntaxique et `a la compilation
(notes de cours) ∗
Roberto M. Amadio
Universit´e Paris Diderot (Paris 7)
25 juin 2009
R´esum´e
Ces notes de cours sont une introduction aux diff´erentes phases de la compilation des
langages de programmation. Apr`es un survol de ces phases bas´e sur un petit langage
d’expressions arithm´etiques, on pr´esente la th´eorie des grammaires alg´ebriques LL et LR.
On s’int´eresse ensuite `a l’´evaluation et au typage en s’appuyant sur les techniques de la
s´emantique op´erationnelle. On d´ecline ces techniques dans le cadre de simples langages qui
refl`etent les styles de programmation imp´eratif, `a objets et fonctionnel. Enfin, on aborde
les questions de la conception d’une machine virtuelle, de la gestion de la m´emoire et de
la traduction du langage source dans le langage d’une machine virtuelle.
∗Envoyez vos corrections `a amadio@pps.jussieu.fr
1Table des mati`eres
1 Pr´eliminaires 4
1.1 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2 Programme du cours et des travaux pratiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3 Pr´e-requis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4 Bibliographie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Introduction 6
2.1 Le langage source . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 L’analyse lexicale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.3 L’analyse syntaxique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.4 La syntaxe abstraite . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.5 L’´evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.6 Le typage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.7 Une machine virtuelle et son langage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.8 La compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3 Grammaires Alg´ebriques (rappel) 14
3.1 Grammaires . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.2 D´erivations et ambigu¨ıt´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
3.3 Simplification de grammaires non-contextuelles . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
3.4 Automates `a pile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
3.5 Automates `a pile d´eterministes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
4 Grammaires LL 18
4.1 Fonctions First et Follow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
4.2 Grammaires LL(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
5 Grammaires LR 22
5.1 Probl`emes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
5.2 Pragmatique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.3 Survol des r´esultats les plus importants . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.4 Grammaires LR(0) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
5.5 Grammaires LR(1) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
6 Evaluation et typage d’un langage imp´eratif 31 ´
6.1 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
6.2 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 ´
6.3 Extension avec proc´edures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
6.4 Mise-en-oeuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
6.5 Liaison et ´evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
6.6 Typage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
7 Evaluation et typage d’un langage `a objets 42 ´
7.1 Syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
7.2 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 ´
7.3 Typage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
8 Evaluation et typage d’un langage fonctionnel 48 ´
8.1 Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.2 Appel par nom et appel par valeur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.3 Typage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
8.4 Un ´evaluateur pour le langage fonctionnel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
8.5 Vers une mise en oeuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8.6 Mise en oeuvre de l’´evaluateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
29 Machine virtuelle et compilation 55
9.1 Instructions du code octet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
9.2 Compilation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
9.3 Erreurs et typage du code octet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
10 Gestion de la m´emoire 62
10.1 Marquage et balayage (mark and sweep) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
10.2 Comptage des r´ef´erences (reference counting) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
10.3 R´ecup´eration par copie (copying collection) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
10.4 Inversion de pointeurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
31 Pr´eliminaires
1.1 Objectifs
A l’issu de ce cours, l’´etudiant doit ˆetre capable :
– de d´ecrire la syntaxe abstraite d’un langage de programmation et de construire un
analyseur syntaxique pour ce langage `a l’aide d’outils standards.
– de comprendre la description formalis´ee de la s´emantique op´erationnelle et de la s´emantique
statique d’un langage (principalement le typage).
– de programmer un ´evaluateur et un v´erificateur de correction statique.
– d’´ecrire un compilateur vers une simple machine virtuelle et de mettre en oeuvre la
machine virtuelle (notamment la gestion de la m´emoire).
1.2 Programme du cours et des travaux pratiques
– Syntaxe des langages de programmation.
– Principes de l’analyse syntaxique descendante (LL) et montante (LR).
– Pr´esentation des outils Lex et Yacc sous OCAML.
– R´ealisation d’un analyseur syntaxique complet.
– Evaluation et typage d’un langage imp´eratif, d’un langage `a objets et d’un langage ´
fonctionnel.
– R´ealisation d’un ´evaluateur et d’un v´erificateur de type pour un langage `a objets.
– Machine virtuelle et fonction de compilation pour le langage imp´eratif.
– Principes de gestion de la m´emoire.
1.3 Pr´e-requis
Notions d’algorithmique et de logique. Notions de programmation imp´erative, `a objets et
fonctionnelle. Notions de langages formels : langages rationnels et alg´ebriques.
1.4 Bibliographie
Ces notes ne sont qu’une trace synth´etique de ce qui est discut´e dans le cours. On pourra
se r´ef´erer aux textes suivants pour une pr´esentation plus approfondie.
– A. Appel. Modern compiler implementation in ML, Cambridge University Press (en
anglais seulement).
– A. Aho, R. Sethi et J. Ullman. Compilateurs : principes, techniques et outils. Dunod
(disponible aussi en anglais). Un classique, notamment pour la partie sur l’analyse
syntaxique.
– R. Wilhelm, D. Maurer. Les compilateurs— th´eorie, construction, g´en´eration, Masson
(disponible aussi en anglais). Les quatre premiers chapitres de ce texte contiennent
des descriptions assez compl`etes de machines virtuelles pour des langages imp´eratifs,
fonctionnels, `a objets et logiques.
Ces notes de cours consid`erent uniquement des langages de programmation s´equentiels
de type imp´eratif, `a objets et fonctionnel. On fait l’impasse sur les questions de compilation
li´ees aux langages parall`eles et/ou avec des contraintes de temps r´eel. Par ailleurs, on ignore
les probl`emes d’optimisation et de g´en´eration de code qui sont associ´es `a la compilation vers
4les langages assembleurs. Ces questions comprennent, par exemple, l’optimisation de boucles,
l’analyse de vivacit´e et l’allocation de registres.
52 Introduction
Que fait un ordinateur ? Il ex´ecute des commandes. Que fait un compilateur ? Il traduit
des commandes formul´ees dans un certain langage L (dit langage source) dans les commandes
d’un langage L
0
(dit langage objet) compr´ehensible par l’ordinateur. Avant de traduire, il faut
s’assurer que la ‘phrase’ `a traduire soit bien une phrase du langage source. C’est le but de
l’analyse syntaxique.
Dans ce cours un langage est toujours un langage de programmation et dans ce contexte on
parle de compilation plutˆot que de traduction. Notre premier objectif est d’introduire un petit
langage de programmation et de s’en servir pour illustrer de fa¸con informelle les diff´erentes
phases de l’analyse syntaxique et de la compilation.
2.1 Le langage source
Le langage source consid´er´e est un langage d’expressions. Il comprend :
– Des constantes qui d´enotent des nombres naturels : 0, 12, 345, . . .
– Des constantes qui d´enotent des valeurs bool´eennes : true, false.
– Des op´erateurs : +, ∗, and, or , . . .
– Des variables (ou identificateurs) : x, a45, zzz, . . .
Il est aussi possible de d´eclarer des identificateurs `a l’aide d’une instruction let in et de
composer les expressions `a l’aide d’une instruction if then else.
2.2 L’analyse lexicale
La premi`ere tˆache consiste `a identifier les unit´es lexicales de notre langage. Dans notre
cas, il s’agira de :
– Mots clefs (let, if,. . .)
– Symboles (+, ∗,(,), . . .)
– Identificateurs (toute suite de lettres et de chiffres qui commence par une lettre).
– Nombres (toute suite de chiffres).
Il faut aussi d´ecider quels sont les symboles qui permettent de s´eparer les unit´es lexicales.
Typiquement on choisit : le symbole blanc, le retour chariot et la tabulation. Enfin, on utilise
souvent un symbole sp´ecial eof pour marquer la fin du fichier.
Exemple 2.1 Dans
let x7= 3
in
(x7+4 )
eof
On devrait identifier les unit´es lexicales suivantes (qu’on s´epare avec un espace) :
let x7 = 3 in ( x7 + 4 ) eof
La sp´ecification des unit´es lexicales est effectu´ee `a l’aide d’expressions r´eguli`eres (on dit
aussi rationnelles). Cette approche est particuli`erement utile pour les unit´es lexicales comme
6les identificateurs qui comportent une infinit´e d’´el´ements. Par exemple, un identificateur est
sp´ecifi´e par les expressions r´eguli`eres :
chiffre = 0 + · · · + 9
lettre = a + · · · + z + A + · · · + Z
ident = lettre · (chiffre + lettre)
∗
A partir d’une expression r´eguli`ere, des algorithmes standards permettent de construire un
automate fini qui reconnaˆıt exactement les unit´es lexicales sp´ecifi´ees. L’outil Lex permet
d’automatiser compl`etement ce travail. L’utilisateur d´ecrit les unit´es lexicales et l’outil g´en`ere
une fonction qui permet de lire la prochaine unit´e lexicale disponible en entr´ee ou d’afficher
un signal d’erreur si aucune unit´e lexicale est reconnue.
2.3 L’analyse syntaxique
Grˆace `a l’analyse lexicale, nous pouvons voir le langage source comme un mot dont les
caract`eres sont les unit´es lexicales. Ainsi, dans le cas de l’exemple 2.1, on pourrait obtenir un
mot de la forme :
let id(x7 ) eq cnst(3 ) in lpar id(x7 ) plus cnst(4 ) rpar eof
Certains caract`eres du mot en question comme id et cnst ont un param`etre. Ce param`etre est
une valeur qui est associ´ee `a l’unit´e lexicale. La prochaine tˆache consiste `a d´ecrire la structure
des phrases du langage en s’appuyant sur la th´eorie des grammaires non-contextuelles (ou
alg´ebriques). Par exemple, voici une grammaire qui d´ecrit notre langage :
op → plus | prod | and | · · ·
e → id | cnst | e op e | lpar e rpar
b → e | if e then b else b | let id eq e in b | lpar b rpar
S → b eof
Et voici une d´erivation gauche :
S ⇒ b eof
⇒ let id eq e in b eof
⇒ let id eq cnst in b eof
⇒ let id eq cnst in e eof
⇒ let id eq cnst in lpar e rpar eof
⇒ let id eq cnst in lpar e plus e rpar eof
⇒ let id eq cnst in lpar id plus e rpar eof
⇒ let id eq cnst in lpar id plus cnst rpar eof
On remarquera que les unit´es lexicales sont les symboles terminaux de la grammaire.
Un premier probl`eme est de d´eterminer si une certaine suite d’unit´es lexicales appartient au
langage g´en´er´e par la grammaire. Il y a des algorithmes g´en´eraux qui permettent de r´epondre
`a cette question mais ces algorithmes ne sont pas tr`es efficaces. Par ailleurs, une grammaire
peut ˆetre ambigu¨e et cette ambigu¨ıt´e est nuisible au processus de compilation. Dans les ann´ees
70 on a donc d´efini un certain nombre de sous-classes des langages alg´ebriques. Les contraintes
principales qu’on souhaite satisfaire sont les suivantes :
1. On s’int´eresse `a des grammaires alg´ebriques non-ambigu¨es.
72. Le langage g´en´er´e doit ˆetre reconnaissable par un automate `a pile d´eterministe (APD).
3. La construction de l’APD `a partir de la grammaire doit ˆetre suffisamment efficace.
4. La classe de grammaires consid´er´ee doit ˆetre suffisamment expressive pour traiter les
constructions principales des langages de programmation.
L’analyse syntaxique ne se limite pas `a d´eterminer si un mot peut ˆetre g´en´er´e par une
grammaire. Deux autres objectifs aussi importants sont :
– Si le mot n’est pas dans le langage g´en´er´e, il faut produire un message d’erreur informatif
qui facilite la correction du programme. Par exemple : Missing ) at line 342.
– Si le mot peut ˆetre g´en´er´e, alors on veut construire une repr´esentation interne du programme
qui permettra d’effectuer d’autres v´erifications (analyse statique) et ´eventuellement
de proc´eder `a une compilation. On appelle aussi syntaxe abstraite cette repr´esentation
interne.
2.4 La syntaxe abstraite
La ‘syntaxe abstraite’ d’un programme est essentiellement un arbre ´etiquet´e. Le fait de
passer d’une repr´esentation lin´eaire (un mot) `a une repr´esentation `a arbre permet d’´eliminer
certaines informations syntaxiques comme les parenth`eses. Dans des langages `a la ML, la
repr´esentation d’un arbre ´etiquet´e est directe `a l’aide de d´eclarations de type et de constructeurs.
Par exemple, dans notre cas on pourrait avoir :
op = Plus | And | ...
exp = Id of string | Cnst of int | Op of op * exp * exp
body = Exp of exp | Ite of exp * body * body | Let of string * exp * body
Ainsi la syntaxe abstraite associ´ee `a notre programme serait :
Let("x7", Exp(Cnst(3)), Exp(Op(Plus, Id("x7"), Cnst(4))))
Dans d’autres langages comme C ou Java, la repr´esentation d’un arbre ´etiquet´e demande
un certain travail de codage (enregistrements, pointeurs,. . .)
La construction de l’arbre s’effectue en associant des ‘actions s´emantiques’ aux r`egles de
la grammaire. Par exemple, l’action qu’on associe `a la r`egle b → let id eq e in b pourrait
ˆetre celle de construire un arbre dont la racine est ´etiquet´ee par Let et qui a trois fils qui
correspondent aux arbres associ´es `a id, e et b, respectivement.
2.5 L’´evaluation
Toute traduction (ou compilation) suppose une pr´eservation de la signification (ou s´emantique)
de la phrase traduite. Comment faire pour d´ecrire la s´emantique d’un langage de programmation
? Une id´ee g´en´erale qui s’applique aussi bien aux automates qu’aux langages de
programmation est de d´ecrire formellement le calcul et de retenir le ‘r´esultat’ du calcul. Cette
id´ee est ad´equate au moins pour les langages s´equentiels et d´eterministes que nous traitons
dans ce cours.
Dans notre ´etude de cas, nous pouvons ´etablir que le r´esultat du calcul d’une expression
est une valeur v, `a savoir ou bien un bool´een ou bien un nombre naturel. Pour d´ecrire le
calcul on utilise une relation ⇓. Cette relation est d´efinie sur la syntaxe abstraite mais pour
8des raisons de lisibilit´e on l’´ecrit toujours en utilisant la syntaxe concr`ete. La relation est
d´efinie par les r`egles suivantes.
v ⇓ v
ei ⇓ ni ∈ N i = 1, 2
e1 + e2 ⇓ n1 + n2
e ⇓ true b1 ⇓ v
if e then b1 else b2 ⇓ v
e ⇓ false b2 ⇓ v
if e then b1 else b2 ⇓ v
e
0 ⇓ v
0
[v
0/x]b ⇓ v
let x = e
0
in b ⇓ v
Ici on se limite au cas o`u op est l’addition sur les nombres naturels.
On d´enote par [v/x]b la substitution de v pour x dans b qui est d´efinie par r´ecurrence sur
la structure de b :
[v/x]v
0 = v
0
[v/x]y =
(
v si x = y
y sinon
[v/x](e1 + e2) = [v/x]e1 + [v/x]e2
[v/x](if e then b1 else b2) = if [v/x]e then [v/x]b1 else [v/x]b2
[v/x](let y = e in b) = (
let y = [v/x]e in b si x = y
let y = [v/x]e in [v/x]b sinon
On remarquera que dans [v/x](let x = e in b) l’op´eration de substitution n’affecte pas b car
la variable x est li´ee `a l’expression e dans b.
Voici un exemple d’application des r`egles :
3 ⇓ 3 4 ⇓ 4
3 ⇓ 3 [3/x](x + 4) ⇓ 7
let x = 3 in (x + 4) ⇓ 7
On ne peut pas ´evaluer une expression qui contient une variable non d´eclar´ee. Par exemple, on
ne peut pas ´evaluer let x = 3 in y. Par ailleurs, le branchement if e then b1 else b2 ⇓ v est d´efini
seulement si le test e s’´evalue en une valeur bool´eenne. Il est toujours possible de compl´eter
la d´efinition de la s´emantique de fa¸con `a prendre en compte ces situations anormales. A cette
fin, on introduit la possibilit´e qu’une expression s’´evalue en une nouvelle valeur err . On peut
9alors reformuler et compl´eter les r`egles comme suit :
v ⇓ v
ei ⇓ ni ∈ N i = 1, 2
e1 + e2 ⇓ n1 + n2
ei ⇓ vi i = 1, 2 {v1, v2} 6⊂ N
e1 + e2 ⇓ err
e ⇓ true b1 ⇓ v
if e then b1 else b2 ⇓ v
e ⇓ false b2 ⇓ v
if e then b1 else b2 ⇓ v
e ⇓ v v /∈ {true, false}
if e then b1 else b2 ⇓ err
e
0 ⇓ v
0 v
0 6= err [v
0/x]b ⇓ v
let x = e
0
in b ⇓ v
e
0 ⇓ err
let x = e
0
in b ⇓ err
x ⇓ err
2.6 Le typage
Certaines erreurs peuvent ˆetre ´evit´ees si le programme satisfait des contraintes additionnelles
de bonne formation. Une m´ethode standard pour formuler ces contraintes est de donner
des r`egles de typage. Un type est une abstraction d’un ensemble de valeurs. Dans notre cas,
nous consid´erons un type bool pour l’ensemble des valeurs bool´eennes {true, false} et un type
nat pour l’ensemble des nombres naturels.
Les jugements utilis´es dans les r`egles de typage ont la forme E ` b : τ o`u :
– τ ∈ {bool, nat} est un type.
– E est un environnement de type, c’est-`a-dire une fonction partielle `a domaine fini des
identificateurs aux types.
Il convient d’introduire un minimum de notations :
– On repr´esente par x1 : τ1, . . . , xn : τn o`u xi 6= xj si i 6= j l’environnement de type E tel
que E(xi) = τi pour i = 1, . . . , n et qui n’est pas d´efini autrement.
– Si f : D * D0
est une fonction partielle, d ∈ D et d
0 ∈ D0 alors
f[d
0
/d](x) = (
d
0
si x = d
f(x) autrement
Par exemple, E[τ /x] est l’environnement de type qui se comporte comme E sauf sur x
o`u il rend le type τ .
– On d´enote par ∅ l’environnement de type `a domaine vide et on abr`ege le jugement
∅ ` b : τ avec ` b : τ .
Les r`egles de typage sont les suivantes :
n ∈ N
E ` n : nat
v ∈ {true, false}
E ` v : bool
E(x) = τ
E ` x : τ
E ` ei
: nat i = 1, 2
E ` e1 + e2 : nat
E ` e : bool E ` bi
: τ i = 1, 2
E ` if e then b1 else b2 : τ
E ` e : τ
0 E[τ
0/x] ` b : τ
E ` let x = e in b : τ
10Voici un exemple de preuve de typage.
x : nat ` x : nat x : nat ` 4 : nat
` 3 : nat x : nat ` (x + 4) : nat
` let x = 3 in x + 4 : nat
On remarquera que la valeur err n’est pas typable. Notre objectif est de montrer qu’une
expression typable ne peut pas s’´evaluer `a err . Comme la valeur err n’est pas typable, il suffit
de montrer que la relation d’´evaluation pr´eserve la typabilit´e.
Proposition 2.2 Si x1 : τ1, . . . , xn : τn ` b : τ , ` vi
: τi pour i = 1, . . . , n et [v1/x1, . . . , vn/xn]b ⇓
v alors ` v : τ .
Idee de la preuve ´ . Par r´ecurrence sur le typage de b. On se limite `a traiter le cas le plus
int´eressant o`u le programme a la forme let x = e in b. On suppose x 6= xi pour i = 1, . . . , n.
Le cas o`u x = xi est similaire. Soient E = x1 : τ1, . . . , xn : τn et S = [v1/x1, . . . , vn/xn]. On
sait que la preuve de typage termine par :
E ` e : τ
0 E[τ
0/x] ` b : τ
E ` let x = e in b : τ
Par ailleurs, on sait que :
S(let x = e in b) = (let x = Se in Sb) ⇓ v
Par d´efinition de l’´evaluation, on doit avoir Se ⇓ v
0
. Par hypoth`ese de r´ecurrence sur E ` e : τ
0
,
il suit que ` v
0
: τ
0
. Donc v
0 6= err . Mais alors on doit avoir : S[v
0/x]b ⇓ v. Par hypoth`ese de
r´ecurrence sur E[τ
0/x] ` b : τ , il suit que ` v : τ . •
Exercice 2.3 Montrez qu’il y a des expressions qui ne s’´evaluent pas en erreur et qui ne sont
pas typables.
Exercice 2.4 D´emontrez une version plus forte de la proposition 2.2, `a savoir si x1 : τ1, . . . , xn :
τn ` b : τ et ` vi
: τi pour i = 1, . . . , n alors [v1/x1, . . . , vn/xn]b ⇓ v et ` v : τ . Cette version
‘forte’ ne se g´en´eralise pas `a des langages plus compliqu´es car souvent le typage ne suffit pas
`a assurer la terminaison du programme ´evalu´e.
2.7 Une machine virtuelle et son langage
Une machine virtuelle est un ensemble de structures de donn´ees et d’algorithmes qui
permettent d’ex´ecuter (efficacement) un certain ensemble d’instructions. En d’autres termes,
une machine virtuelle peut ˆetre vue comme un type de donn´ee.
On consid`ere une machine virtuelle dont la m´emoire est divis´ee en deux parties :
– Une zone statique qui contient un compteur ordinal pc, un pointeur `a la pile sp et les
instructions du programme `a ex´ecuter.
– Une pile de valeurs dont le sommet est point´e par sp.
11On voit la m´emoire comme un tableau M et on d´enote, par exemple, par M[sp] la cellule du
tableau d’adresse sp. La machine peut ex´ecuter un certain nombre d’instructions dont nous
d´ecrivons l’effet sur les structures de la machine virtuelle :
build v sp := sp + 1; M[sp] := v; pc := pc + 1
branch j (si M[sp] = true alors pc := pc + 1 sinon pc := j); sp := sp − 1
load i sp := sp + 1; M[sp] := M[i]; pc := pc + 1
add sp := sp − 1; M[sp] := M[sp] + M[sp + 1]; pc := pc + 1
return pc := 0; M[0] := M[sp]; sp := 0
Le cycle de chargement ex´ecution (fetch and execute) est :
pc := 1; sp := 0;
while pc 6= 0 do
execute(pc)
Donc le calcul termine quand pc = 0 et dans ce cas le r´esultat est `a l’adresse 0 de la pile.
On remarquera que la machine virtuelle ne v´erifie pas les types des donn´ees. Ainsi il est
possible d’ex´ecuter une instruction branch lorsque M[sp] ne contient pas une valeur bool´eenne
ou d’ex´ecuter une instruction add lorsque le sommet de la pile ne contient pas deux nombres
naturels. On pourrait ajouter des actions qui v´erifient les types au moment de l’ex´ecution.
Alternativement, on pourrait s’assurer statiquement que le code compil´e ne produit jamais
des erreurs de type.
2.8 La compilation
On souhaite compiler un programme b dans une liste d’instructions de la machine virtuelle.
On d´efinit une fonction de compilation C qui prend en param`etre une expression et une liste
de variables w et produit une liste d’instructions de la machine virtuelle. La liste w garde une
trace des d´eclarations let x = . . . et naturellement au d´ebut de la compilation on suppose que
la liste est vide. Nous utilisons la notation i(x, w) pour indiquer la position la plus `a droite
de l’occurrence de x dans w. Par exemple i(x, y · x · z · x · y) = 4.
C(x, w) = (load i(x, w)) · (return)
C(v, w) = (build v) · (return)
C(e1 + e2, w) = C
0
(e1, w) · C0
(e2, w) · (add) · (return)
C
0
(x, w) = load i(x, w)
C
0
(v, w) = build v
C
0
(e1 + e2, w) = C
0
(e1, w) · C0
(e2, w) · (add)
C(let x = e in b, w) = C
0
(e, w) · C(b, w · x)
C(if e then b1 else b2, w) = C
0
(e, w) · (branch κ) · C(b1, w) · κ : C(b2, w)
On introduit une fonction auxiliaire C
0 qui ne retourne pas le r´esultat `a la fin du calcul. Dans
la derni`ere ´equation, nous utilisons la notation κ : C(. . .) pour indiquer que l’adresse de la
premi`ere instruction de C(. . .) est κ.
Exemple 2.5 La compilation de l’expression
let x = 3 in
let y = x + x in
let x = true in
if x then y else x
12est la suivante o`u dans la troisi`eme colonne on pr´esente le contenu de la pile au moment de
l’ex´ecution :
1 : build 3
2 : load 1 3
3 : load 1 3 3
4 : add 3 3 3
5 : build true 3 6
6 : load 3 3 6 true
7 : branch 10 3 6 true true
8 : load 2 3 6 true
9 : return 3 6 true 6
10 : load 3 (code mort)
11 : return (code mort)
On remarquera que certaines instructions sont redondantes ou inaccessibles (code mort).
Exercice 2.6 Consid´erez :
b = let x = 3 in
let x = x + x in
let y = true in
if y then x + x else x
Calculez les unit´es lexicales, l’arbre de d´erivation et la syntaxe abstraite de b. Evaluez et typez ´
b. Compilez b et ex´ecutez le code compil´e.
Un point important que nous omettons de traiter ici est celui de la correction de la
fonction de compilation. Un premier pas pourrait consister `a montrer que la compilation d’un
programme bien typ´e ne produit pas d’erreurs au moment de l’ex´ecution. Ensuite, on pourrait
chercher `a montrer que si un programme bien typ´e s’´evalue dans une valeur v alors l’ex´ecution
du code compil´e produira comme r´esultat la valeur v.
133 Grammaires Alg´ebriques (rappel)
3.1 Grammaires
D´efinition 3.1 Une grammaire G est un vecteur (V, Σ, S, R) o`u V est un ensemble fini de
symboles terminaux et non-terminaux, Σ ⊆ V est l’ensemble des symboles terminaux, S ∈
V \Σ est le symbole initial (et un non-terminal), et R ⊆fin V
+ × V
∗
est l’ensemble des r`egles
(ou productions).
Par convention, on utilise a, b, . . . pour les symboles terminaux, u, v, . . . pour les mots sur
Σ, A, B, . . . , S pour les symboles non-terminaux, X, Y, . . . pour les symboles terminaux et
non-terminaux et α, β, γ, . . . pour les mots sur V . On ´ecrit (α, β) ∈ R comme α → β. La
notation α → β1 | · · · | βn est une abr´eviation pour α → β1, . . . , α → βn.
Une configuration est simplement un mot sur V . Si α, β ∈ V
∗
sont des configurations alors
α ⇒ β (α se r´e-´ecrit dans β dans une ´etape) si
α = γ1γγ2, γ → γ
0
et β = γ1γ
0γ2 .
On d´enote par ⇒∗
la clˆoture r´eflexive et transitive de ⇒. Le langage L(G) g´en´er´e par une
grammaire G est d´efini par
L(G) = {w ∈ Σ
∗
| S ⇒∗ w} .
Dans les ann´ees 60, Noam Chomsky a propos´e une classification des grammaires selon le
type des r`egles utilis´ees. En particulier :
Lin´eaires droites Les r`egles ont la forme A → w ou A → wB avec A, B ∈ V \Σ et w ∈ Σ
∗
.
Ces grammaires g´en`erent exactement les langages r´eguliers (ou rationnels).
Non contextuelles Les r`egles ont la forme A → α avec A ∈ V \Σ et α ∈ V
∗
. Ces grammaires
g´en`erent exactement les langages non-contextuels (on dit aussi alg´ebriques).
Exemple 3.2 La grammaire suivante d´ecrit les mots sur l’alphabet {a, b} qui peuvent ˆetre
lus indiff´eremment de gauche `a droite et de droite `a gauche.
S → | a | b | aSa | bSb .
La grammaire est non-contextuelle mais elle n’est pas lin´eaire droite.
3.2 D´erivations et ambigu¨ıt´e
Soit G = (V, Σ, S, R) une grammaire non-contextuelle. Une d´erivation est une s´equence
de pas de r´e´ecriture qui m`ene du symbole S `a un mot w ∈ Σ
∗
. Une d´erivation gauche (droite)
est une d´erivation o`u dans tous les pas de r´e´ecriture on d´eveloppe le symbole non-terminal le
plus `a gauche (droite).
Une d´erivation peut ˆetre repr´esent´ee par un arbre de d´erivation dont les noeuds sont
´etiquet´es par les symboles dans V . La racine de l’arbre est ´etiquet´ee avec le symbole initial
S. Quand une r`egle A → X1 · · · Xn avec Xi ∈ V est appliqu´ee, on ajoute n fils au noeud qui
correspond `a A et on les ´etiquette avec X1, . . . , Xn. On remarque qu’il peut y avoir plusieurs
d´erivations qui produisent le mˆeme arbre mais que les d´erivations gauches (droites) sont en
correspondance bijective avec les arbres de d´erivation.
14D´efinition 3.3 (ambigu¨ıt´e) Une grammaire est ambigu¨e s’il y a un mot w ∈ L(G) qui
admet deux arbres de d´erivation diff´erents. Un langage non-contextuel est ambigu si toutes
les grammaires non-contextuelles qui le g´en`erent sont ambigu¨es.
Exemple 3.4 Il est facile de v´erifier que la grammaire E → i | E + E | E ∗ E est ambigu¨e.
Il est beaucoup plus difficile de montrer que le langage {a
n
b
n
c
md
m | n, m ≥ 1} ∪ {a
n
b
mc
md
n
|
n, m ≥ 1} est ambigu.
Exercice 3.5 Soit G = (V, T, S, R) une grammaire non-contextuelle o`u V = {S, A, B, a, b},
T = {a, b} et
R = {S → | aB | bA, A → aS | bAA | a, B → bS | aBB | b}.
1. Donnez un arbre de d´erivation, ainsi que les d´erivations gauches et droites de la chaˆıne
aaabbabbba.
2. G est-elle ambigu¨e ?
3.3 Simplification de grammaires non-contextuelles
D´efinition 3.6 Soit G = (V, Σ, S, R) une grammaire non-contextuelle. Un symbole X ∈ V
est utile si ∃ w ∈ Σ
∗ S ⇒∗ αXβ ⇒∗ w.
Proposition 3.7 Soit G = (V, Σ, S, R) une grammaire non-contextuelle telle que L(G) 6= ∅.
Alors on peut construire une grammaire non-contextuelle ´equivalente G0
telle que tous les
symboles sont utiles.
Idee de la preuve ´ . On proc`ede en trois ´etapes.
(1) D’abord on montre qu’on peut ´eliminer tous les symboles non-terminaux qui ne peuvent
pas produire un mot de symboles terminaux. A cette fin, on calcule it´erativement le plus
petit ensemble U tel que : (i) si A → w alors A ∈ U et (ii) si A → X1 . . . Xn et Xi ∈ Σ ∪ U
pour tout i = 1, . . . , n alors A ∈ U. Ensuite, on ´elimine toutes les r`egles qui contiennent des
symboles non-terminaux qui ne sont pas dans U.
(2) On calcule it´erativement l’ensemble des symboles non-terminaux qui sont accessible `a
partir du symbole initial. Soit U le plus petit ensemble tel que (i) S ∈ U, et (ii) si A → α
et A ∈ U alors les non-terminaux dans α sont dans U. On ´elimine toutes les r`egles qui
contiennent des symboles non-terminaux qui ne sont pas dans U.
(3) En supposant (1) et (2), on peut aussi d´eterminer les symboles terminaux utiles. Ces sont
les symboles qui paraissent `a droite d’une des r`egles restantes. •
Exemple 3.8 On consid`ere la grammaire :
S → AB | a A → a
En appliquant la m´ethode pr´ec´edente on arrive `a la grammaire S → a. Remarquez que le
r´esultat n’est pas celui souhait´e si on applique la simplification (2) avant la simplification (1).
D´efinition 3.9 Une -r`egle est une r`egle de la forme A → .
15Proposition 3.10 Soit G = (V, Σ, S, R) une grammaire non-contextuelle. Alors :
(1) On peut d´eterminer si ∈ L(G).
(2) Si /∈ L(G) alors on peut construire une grammaire non-contextuelle ´equivalente sans
-r`egles.
(3) Si ∈ L(G) alors on peut construire une grammaire non-contextuelle ´equivalente qui
contient exactement une -r`egle de la forme S → o`u S est le symbole initial et tel que le
symbole initial S ne paraˆıt pas `a droite d’une r`egle.
Idee de la preuve ´ . (1) On calcule it´erativement les symboles non-terminaux qui peuvent
se r´eduire au mot .
(2) Pour chaque r`egle A → X1 · · · Xn on g´en`ere les sous-r`egles A → Xi1
· · · Xik
o`u 1 ≤ i1 <
· · · < ik ≤ n, k ≥ 1 et les ´el´ements effac´es Xj se r´e-´ecrivent en .
(3) Si ∈ L(G) alors la m´ethode d´ecrite dans (2) produit une grammaire G = (V, Σ, S, R)
qui g´en`ere le langage L(G)\{}. Ensuite on ajoute un nouveau symbole initial S
0
et les r`egles
S
0 → | S. •
Exemple 3.11 Consid´erons la grammaire S → aS0
b, S
0 → | aS0
b. L’´elimination de la
-r`egle m`ene `a la grammaire : S → ab | aS0
b, S
0 → ab | aS0
b.
Exercice 3.12 Soit G une grammaire non-contextuelle sans -r`egles. Montrez qu’on peut
´eliminer les r`egles de la forme A → B o`u A, B sont des symboles non-terminaux.
3.4 Automates `a pile
Un automate `a pile (AP) est un automate fini qui dispose en plus d’une pile. Les automates
`a pile reconnaissent exactement les langages non-contextuels.
D´efinition 3.13 Un automate `a pile M est un vecteur (Σ, Q, qo, F, Γ, Zo, δ) o`u Σ est l’alphabet
d’entr´ee, Q est un ensemble fini d’´etats, qo ∈ Q est l’´etat initial, F ⊆ Q est l’ensemble
des ´etats finaux, Γ est l’alphabet de la pile, Zo ∈ Γ est le symbole initialement pr´esent sur la
pile et enfin
δ : (Σ ∪ {}) × Q × Γ → 2
(Q×Γ
∗)
est la fonction de transition.
Une configuration est un triplet (w, q, γ) ∈ Σ
∗×Q×Γ
∗
. La relation de r´eduction est d´efinie
par
(aw, q, Zγ) `M (w, q0
, γ0γ) si (q
0
, γ0
) ∈ δ(a, q, Z)
(w, q, Zγ) `M (w, q0
, γ0γ) si (q
0
, γ0
) ∈ δ(, q, Z)
Donc M plac´e dans l’´etat q et avec le symbole Z au sommet de la pile peut se d´eplacer dans
l’´etat q
0
en rempla¸cant Z par γ
0 au sommet de la pile et en lisant (ou sans lire) un symbole
de l’entr´ee. On remarque qu’`a chaque pas un AP doit lire un symbole de la pile et que donc
le calcul s’arrˆete si la pile est vide.
Le langage reconnu par un AP M est d´efini par
L(M) = {w ∈ Σ
∗
| ∃ γ ∈ Γ
∗
, q ∈ F (w, qo, Zo) `
∗
M (, q, γ)} .
16Dans ce cas on dit que l’AP accepte sur ´etat final. Une d´efinition alternative consiste `a accepter
sur pile vide. Formellement
L(M) = {w ∈ Σ
∗
| ∃ q ∈ Q (w, qo, Zo) `
∗
M (, q, )} .
Si on prend la deuxi`eme d´efinition, il est inutile de sp´ecifier l’ensemble F d’´etats finaux dans
la d´efinition d’AP. Il n’est pas trop difficile de montrer qu’un langage est accept´e par un AP
sur ´etat final si et seulement si il est accept´e par un AP (pas forc´ement le mˆeme) sur pile
vide.
Un AP peut aussi ˆetre repr´esent´e comme un graphe dirig´e : une arˆete de l’´etat q `a l’´etat
q
0
est ´etiquet´ee par le triplet (a, X)/γ ssi (q
0
, γ) ∈ δ(a, q, X), o`u a ∈ Σ ∪ {}.
Proposition 3.14 Les langages reconnus par les AP sont exactement ceux g´en´er´es par les
grammaires non-contextuelles.
3.5 Automates `a pile d´eterministes
D´efinition 3.15 (APD) Un AP d´eterministe (APD) est un AP tel que chaque configuration
accessible a au plus un successeur imm´ediat.
Proposition 3.16 Les conditions suivantes assurent qu’un AP M = (Σ, Q, qo, F, Γ, Zo, δ)
est d´eterministe :
(1) ]δ(a, q, X) ≤ 1 pour a ∈ Σ ∪ {}.
(2) Si δ(, q, X) 6= ∅ alors ∀ a ∈ Σ δ(a, q, X) = ∅.
Les langages reconnus par les APD forment une classe interm´ediaire entre les langages
r´eguliers et les langages non-contextuels. En particulier, il n’est pas possible de d´eterminiser
les AP. Les langages reconnus par les APD sont stables par compl´ementaire mais pas par
union (ou intersection).
Exemple 3.17 Il n’y a pas d’APD qui puisse reconnaˆıtre le langage {a
i
b
j
c
k
| i = j ou j = k}.
Exercice 3.18 On consid`ere la grammaire G
S → aSbS | bSaS | .
Soit L le langage g´en´er´e par G et L
0 = L\{}. Montrez que :
1. La grammaire G est ambigu¨e.
2. Il y a une grammaire sans -r`egles qui g´en`ere le langage L
0
.
Exercice 3.19 Construisez un AP d´eterministe qui reconnaˆıt le langage g´en´er´e par la grammaire
:
S
0 → S$
S → if E then S else S L → end
S → begin S L L →; SL
S → print E E → num = num
174 Grammaires LL
On consid`ere une premi`ere classe de langages non-contextuels, dits langages LL (pour
left-to-right parse, leftmost derivation), qui sont reconnus par un APD. L’APD cherche `a
construire une d´erivation gauche en gardant sur la pile les symboles qui doivent encore ˆetre
r´e-´ecrits. Au d´ebut du calcul le symbole initial S est plac´e sur la pile. A chaque pas, l’automate
d´ecide (de fa¸con d´eterministe) quelle r`egle appliquer simplement en regardant les k premiers
symboles en entr´ee et le symbole au sommet de la pile. Nous consid´erons ici le cas k = 1.
4.1 Fonctions First et Follow
D´efinition 4.1 Soit G = (V, Σ, S, R) une grammaire non-contextuelle, A ∈ V \Σ et γ ∈ V
∗
.
On d´efinit :
(1) null(A) si A ⇒∗
.
(2) First(γ) = {a ∈ Σ | ∃ α γ ⇒∗ aα}.
(3) Follow(A) = {a ∈ Σ | S ⇒∗ αAaβ}.
Donc si a ∈ First(γ) alors on peut r´ecrire γ dans un mot dont le premier symbole est a.
D’autre part si a ∈ Follow(A) alors on peut trouver une d´erivation o`u a suit imm´ediatement
A.
On suppose que tous les symboles sont utiles (cf. section 3). Nous avons d´ej`a consid´er´e le
calcul du pr´edicat null (cf. section 3). Clairement First() = ∅ et si a ∈ Σ alors First(a) = {a}.
De plus,
First(X1 . . . Xn) = [
i=1,...,n
{First(Xi) | null(X1), . . . , null(Xi−1)} .
Il est donc suffisant de d´eterminer First sur les symboles non-terminaux. La fonction First
est la plus petite fonction (au sens de l’inclusion ensembliste) telle que pour toutes les r`egles
A → Y1 . . . YnXα, n ≥ 0, X ∈ V , on a
null(Yi), 1 ≤ i ≤ n ⇒ First(A) ⊇ First(X) .
La fonction Follow est la plus petite fonction telle que si A → αBY1 . . . YnXβ, n ≥ 0, X ∈ V
alors
null(Yi), 1 ≤ i ≤ n ⇒ Follow(B) ⊇ First(X)
et si A → αBY1 . . . Yn, n ≥ 0 alors
null(Yi), 1 ≤ i ≤ n ⇒ Follow(B) ⊇ Follow(A) .
4.2 Grammaires LL(1)
D´efinition 4.2 Une grammaire non-contextuelle G = (V, Σ, S, R) est LL(1) si pour tous
les symboles non-terminaux A avec r`egles A → α1 | · · · | αn les conditions suivantes sont
satisfaites :
(1) First(αi) ∩ First(αj ) = ∅ si i 6= j.
(2) Si null(A) alors First(αi) ∩ Follow(A) = ∅ pour i = 1, . . . , n.
18Exemple 4.3 Consid´erez la grammaire
S → d | ABS A → B | a B → | c
Alors
null First Follow
S non {a, c, d} ∅
A oui {a, c} {a, c, d}
B oui {c} {a, c, d}
La grammaire n’est pas LL(1) car par exemple null(A), A → a et a ∈ Follow(A) ∩ First(a).
Sans perte de g´en´eralit´e, on peut supposer que si null(A) alors A → est une r`egle de
la grammaire. Si la grammaire est LL(1) alors on associe au couple (a, A) ∈ Σ × (V \Σ) une
r`egle comme suit :
– Si a ∈ First(αi) alors on applique la r`egle A → αi
.
– Si null(A) et a ∈ Follow(A) alors on choisit la r`egle A → .
Ensuite on peut construire un APD M = (Σ, {qo} ∪ {qa | a ∈ Σ}, qo, V, S, δ) dont la
fonction de transition δ est d´efinie par :
δ(a, qo, a) = {(qo, )} si a ∈ Σ
δ(a, qo, A) = {(qa, α)} si a ∈ Σ, A → α, a ∈ First(α)
δ(a, qo, A) = {(qa, )} si a ∈ Σ, null(A), a ∈ Follow(A)
δ(, qa, a) = {(qo, )} si a ∈ Σ
δ(, qa, A) = {(qa, α)} si a ∈ Σ, A → α, a ∈ First(α)
δ(, qa, A) = {(qa, )} si a ∈ Σ, null(A), a ∈ Follow(A)
Exemple 4.4 Consid´erez la grammaire
S → iEtSeS | c E → b
On d´erive
null First Follow
S non {i, c} {e}
E non {b} {t}
Donc la grammaire est LL(1) et on peut construire un APD qui reconnaˆıt le langage g´en´er´e.
L’APD a comme alphabet d’entr´ee Σ = {i, t, e, c, b} et les transitions suivantes :
(qo, x, x) 7→ (qo, ) x ∈ Σ (qo, c, S) 7→ (qc, c)
(qo, i, S) 7→ (qi
, iEtSeS) (qo, b, E) 7→ (qb, b)
(qc, , c) 7→ (qo, ) (qc, , S) 7→ (qc, c)
(qi
, , i) 7→ (qo, ) (qi
, , S) 7→ (qi
, iEtSeS)
(qb, , E) 7→ (qb, b) (qb, , b) 7→ (qo, )
Voici le calcul par lequel l’APD reconnaˆıt l’entr´ee ibtcec avec pile vide :
(qo, ibtcec, S) ` (qi
, btcec, iEtSeS) ` (qo, btcec, EtSeS) ` (qb, tcec, btSeS)
` (qo, tcec, tSeS) ` (qo, cec, SeS) ` (qc, ec, ceS) ` (qo, ec, eS)
` (qo, c, S) ` (qc, , c) ` (qo, , )
19Exemple 4.5 Consid´erez la grammaire
S → S
0$ S
0 → A | B | A → aAb | B → bBa |
On d´erive :
null First Follow
S non {$, a, b} ∅
S
0 oui {a, b} {$}
A oui {a} {b, $}
B oui {b} {a, $}
Donc la grammaire est LL(1) et on peut construire un APD qui reconnaˆıt le langage g´en´er´e.
Exercice 4.6 Expliquez pourquoi la grammaire suivante n’est pas LL(1) :
S → iEtSS0
| a S0 → eS | E → b
La grammaire est-elle ambigu¨e ?
Exercice 4.7 On consid`ere la grammaire suivante avec symbole initial S :
S → G$ G → P
G → P G P → id : R
R → R → idR
1. Calculez les fonctions null , First et Follow sur les symboles non-terminaux de la grammaire.
2. La grammaire est-elle LL(1) ? Motivez votre r´eponse.
Exercice 4.8 On consid`ere la grammaire.
S → A | B A → aAb | 0 B → aBbb | 1
Calculer le First de S, A et B. La grammaire est-elle LL(1) ? Pouvez vous construire un
automate `a pile d´eterministe qui reconnaˆıt le langage g´en´er´e par la grammaire ?
Exercice 4.9 On consid`ere la grammaire :
S → E$ E → T E0
E0 → +T E0
| T → F T0
T
0 → ∗F T0
| F → (E) | id
1. Calculez First des symboles non terminaux.
2. Calculez Follow des symboles non terminaux.
3. La grammaire est-elle LL(1) ? Expliquez.
4. Calculez une grammaire ´equivalente sans -r`egles.
20Exercice 4.10 Le but de cet exercice est de montrer que l’on peut toujours ´eliminer une production
de la forme A → Aα (production qu’on appelle r´ecursive gauche). Cette ´elimination
peut aider `a construire une grammaire LL ´equivalente. Dans la suite on appelle A-production
une production de la forme A → β . Soit G une grammaire,
A → Aα1 | . . . | Aαn
l’ensemble des A-productions ayant A comme symbole le plus `a gauche et
A → β1 | . . . | βm
les autres A-productions. Consid´erez la grammaire G0 obtenue en ajoutant un symbole B et
en rempla¸cant les A-productions par :
A → β1 | . . . | βm | β1B | . . . | βmB
et
B → α1 | . . . | αn | α1B | . . . | αnB
Montrez que G0
est ´equivalente `a G.
Exercice 4.11 On consid`ere la grammaire suivante :
S → E$ E → E + T | E − T | T
T → T ∗ F | T /F | F F → id | num | (E)
Eliminez les productions r´ecursives gauches. ´
215 Grammaires LR
Dans les APD associ´es aux grammaires LL on cherche `a construire une d´erivation gauche `a
partir du symbole initial. On proc`ede de la racine vers les feuilles et on effectue des expansions
de symboles non-terminaux, c’est-`a-dire on remplace la partie gauche d’une r`egle (un nonterminal)
par sa partie droite.
Dans les APD associ´es aux grammaires LR (pour left-to-right parse, rightmost derivation)
on cherche `a construire une d´erivation droite `a partir des feuilles. On proc`ede des feuilles vers
la racine et on effectue des r´eductions, c’est-`a-dire on remplace la partie droite d’une r`egle
par sa partie gauche (un non-terminal). Plus pr´ecis´ement, l’APD peut effectuer deux types
d’actions :
shift On d´eplace un symbole de l’entr´ee vers la pile.
reduce On remplace un mot α au sommet de la pile par un non-terminal X, `a condition que
X → α soit une r`egle de la grammaire.
L’APD peut lire k symboles de l’entr´ee avant de d´ecider quelle action ex´ecuter.
Exemple 5.1 On consid`ere la grammaire :
S
0 → S$ S → S; S | id := E | print(L)
E → id | num | E + E | (S, E) L → E | L, E
Il se trouve que cette grammaire est LR. Dans la table 1, nous d´ecrivons l’ex´ecution de l’APD
o`u on omet le symbole initial de la pile.
Pile Entr´ee Action
id := num; print(num)$ shift
id := . . . shift
id := num . . . shift
id := num ; . . . reduce E → num
id := E ; . . . reduce S → id := E
S ; . . . shift
S; print . . . shift
S; print (. . . shift
S; print( num . . . shift
S; print(num ). . . reduce E → num
S; print(E ). . . reduce L → E
S; print(L ). . . shift
S; print(L) $ reduce S → print(L)
S; S $ reduce S → S; S
S $ shift
S$ reduce S
0 → S$
S
0
accept
Tab. 1 – Exemple d’analyse LR
5.1 Probl`emes
Un certain nombre de questions doivent ˆetre clarifi´ees :
22– La taille de la pile de l’APD peut ´evoluer suite `a des op´erations de shift et de reduce.
On a besoin d’exprimer de fa¸con synth´etique ce qui se trouve sur la pile.
– Un membre droit d’une r`egle peut ˆetre facteur droit d’une autre r`egle comme dans :
A → α1α2 B → α2
Si α1α2 sont sur la pile, il faut d´ecider quelle r´eduction appliquer. On appelle cette
situation un conflit reduce/reduce.
– Si une partie droite d’une r`egle est sur la pile, faut-il ex´ecuter un reduce ou un shift ?
Une possibilit´e serait de privil´egier toujours un reduce, mais dans certaines situations il
peut ˆetre pr´ef´erable d’ex´ecuter un shift comme dans la deuxi`eme ligne de la table 1.
5.2 Pragmatique
Le processus de d´eveloppement d’un APD est automatis´e grˆace `a des outils comme Yacc.
– On commence par ´ecrire une grammaire, le plus souvent en imitant une autre grammaire
qui marche.
– Yacc met en ´evidence un certain nombre de conflits shift/reduce ou reduce/reduce.
– On cherche `a r´egler les conflits. Yacc offre la possibilit´e de sp´ecifier simplement la fa¸con
d’associer un op´erateur et les priorit´es entre op´erateurs.
5.3 Survol des r´esultats les plus importants
– Un langage L a la propri´et´e du pr´efixe si
w ∈ L, w = w1w2, w2 6= ⇒ w1 ∈/ L
c’est-`a-dire si un mot w appartient `a L alors aucun pr´efixe propre de w est dans L.
– On peut toujours modifier un langage L pour qu’il ait la propri´et´e du pr´efixe. On
introduit un nouveau symbole terminal $ et on consid`ere L
0 = {w$ | w ∈ L}. Il est ais´e
de v´erifier que L
0 a la propri´et´e du pr´efixe. De plus, les mots dans L
0
sont simplement
les mots de L avec un marqueur au fond.
– On associe `a une grammaire LR(k) un APD dont les d´ecisions peuvent d´ependre des k
symboles en entr´ee.
– Les grammaires LR(0) g´en`erent exactement les langages qui ont la propri´et´e du pr´efixe
et qui sont accept´es par un APD.
– Si un langage est accept´e par un APD alors on peut construire une grammaire LR(1)
qui le g´en`ere.
– Le processus de g´en´eration d’un APD `a partir d’une grammaire LR(1) peut ˆetre inefficace.
Pour cette raison, on s’int´eresse aussi `a des classes de grammaires SLR(1) et
LALR(1) qui sont un compromis entre l’efficacit´e des grammaires LR(0) et la g´en´eralit´e
des grammaires LR(1).
5.4 Grammaires LR(0)
Soit G = (V, Σ, S, R) une grammaire non-contextuelle. On ´ecrit α ⇒D β pour signifier
que la r´e´ecriture concerne le symbole non-terminal de α le plus `a droite.
23D´efinition 5.2 Soit · un symbole tel que · ∈/ V . On d´efinit l’ensemble des items :
Item = {A → α · β | A → αβ}
D´efinition 5.3 Un mot γ ∈ V
∗
est un pr´efixe admissible s’il existe une d´erivation droite :
S ⇒∗
D δAw ⇒D δαβw
o`u w ∈ Σ
∗
, δα = γ et A → αβ est une r`egle. Dans ce cas, on dit aussi que l’item A → α · β
est valide pour γ.
Exemple 5.4 On consid`ere la grammaire
S
0 → Sc S → SA | A A → aSb | ab
avec S
0
symbole initial. L’ensemble Item est compos´e par
{S
0 → ·Sc, S0 → S · c, S0 → Sc·, S → ·SA, . . .}
On prend comme d´erivation droite :
S
0 ⇒D Sc ⇒D SAc ⇒D SaSbc
Pour d´eterminer les pr´efixes admissibles par rapport `a SaSbc on cherche d’abord un sous-mot
qui correspond `a une partie droite d’une r`egle. Dans notre cas la seule possibilit´e est aSb. Par
ailleurs, S
0 ⇒D Sc ⇒D SAc ⇒D SaSbc. Donc on peut prendre w = c et on obtient comme
pr´efixes admissibles : S, Sa, SaS et SaSb.
Construction de l’AFD Comment savoir si un pr´efixe est admissible ? Un r´esultat remarquable
est qu’on peut construire un AFD qui accepte exactement les pr´efixes admissibles et
qui au passage, nous donne aussi l’ensemble des items valides pour le pr´efixe.
On commence par construire un AFN (automate fini non-d´eterministe) M et on obtient
l’AFD par une proc´edure standard de d´eterminisation.
– L’alphabet d’entr´ee de l’AFN est l’ensemble V de symboles terminaux et non terminaux
de la grammaire.
– L’ensemble des ´etats est donn´e par Q = {q0} ∪ Item. On a donc l’ensemble des items
et un ´etat q0 qu’on prend comme ´etat initial.
– Tous les ´etats sauf q0 sont des ´etats finaux.
– La fonction de transition δ a le type :
δ : Q × (V ∪ {}) → 2
Q
et elle est d´efinie par les conditions suivantes :
1. δ(q0, ) = {S → ·α | S → α ∈ R}.
2. δ(A → α · Bβ, ) = {B → ·γ | B → γ ∈ R}.
3. δ(A → α · Xβ, X) = {A → αX · β} o`u X ∈ V .
24Exemple 5.5 On construit l’AFN associ´e `a la grammaire dans l’exemple 5.4. Soient :
0 = q0 1 = S
0 → ·Sc 2 = S
0 → S · c 3 = S
0 → Sc· 4 = S → ·SA 5 = S → ·A
6 = S → A· 7 = S → S · A 8 = A → ·aSb 9 = A → ·ab 10 = S → SA· 11 = A → a · Sb
12 = A → a · b 13 = A → aS · b 14 = A → ab· 15 = A → aSb·
Les transitions sont d´efinies par le tableau suivant :1
→ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0
1 S
2 c
3
4 S
5 A
6
7 A
8 a
9 a
10
11 S
12 b
13 b
14
15
Une configuration de l’AFN est un couple (q, w) o`u q est un ´etat et w est un mot. On
´ecrit (q, w) ` (q
0
, w0
) ((q, w) `
∗
(q
0
, w0
)) si l’AFN peut aller de la premi`ere `a la deuxi`eme
configuration avec un pas de calcul (un nombre fini, ´eventuellement 0, de pas de calcul).
Th´eor`eme 5.6 (q0, γ) `
∗
(A → α·β, ) ssi γ est un pr´efixe admissible et A → α·β est valide
pour γ.
Idee de la preuve ´ . (⇒) On proc`ede par r´ecurrence sur la longueur du chemin le plus court
´etiquet´e avec γ qui va de l’´etat initial q0 `a un item (´etat) A → α · β.
– Si le chemin a longueur 1 alors γ = , l’item a la forme S → ·β, est un pr´efixe
admissible pour la d´erivation droite S ⇒D β et S → ·β est valide pour .
– Si la derni`ere arˆete est ´etiquet´ee par X ∈ V alors l’arˆete va d’un item A → α
0
· Xβ `a
un item A → α
0X · β avec α = α
0X. Par hypoth`ese de r´ecurrence,
S ⇒∗
D δAw ⇒D δα0Xβw
γ
0 = δα0
et A → α
0
· Xβ est valide pour γ
0
. Mais alors la mˆeme r´eduction montre que
γ = γ
0X est admissible et que A → α
0X · β est valide pour γ.
– Si la derni`ere arˆete est ´etiquet´ee par alors l’arˆete va d’un item B → α1 ·Aβ1 `a un item
A → ·β. Par hypoth`ese de r´ecurrence, B → α1 · Aβ1 est valide pour γ. Donc
S ⇒∗
D δBw ⇒D δα1Aβ1w
et γ = δα1. Si tous les symboles de la grammaire sont utiles, on peut supposer que
β1 ⇒∗
D w1. Donc
S ⇒∗
D δBw ⇒D δα1Aβ1w ⇒∗
D δα1Aw1w
avec γ = δα1 admissible et A → ·β valide pour γ.
1
Il faut lire le tableau de la fa¸con suivante : si le symbole X a ordonn´ee q et abscisse q
0
alors l’automate
peut faire une transition X de q `a q
0
.
25(⇐) On suppose
S ⇒∗
D γ1Aw ⇒D γ1αβw
o`u A → αβ est un r`egle et γ = γ1α. On montre par r´ecurrence sur la longueur de la d´erivation
droite que
(q0, γ1) `
∗
(A → ·αβ, )
Il suit, par construction de l’automate, que (A → ·αβ, α) `
∗
(A → α · β, ) et donc que
(q0, γ) `
∗
(A → α · β, ).
– Le cas de base est imm´ediat : si S ⇒D β alors (q0, ) ` (S → ·β, ).
– Pour le pas inductif, supposons que
S ⇒∗
D γ2Bw1 ⇒D γ2γ3Aγ4w1 ⇒∗
D γ2γ3Aw2w1
o`u γ1 = γ2γ3 et w = w2w1. Par hypoth`ese de r´ecurrence : (q0, γ2) `
∗
(B → ·γ3Aγ4, ).
On d´erive : (B → ·γ3Aγ4, γ3) `
∗
(B → γ3 · Aγ4, ) ` (A → .αβ, ). Donc : (q0, γ1) `
∗
(A → ·αβ, ). •
A partir de l’AFN on d´erive par d´eterminisation un AFD dont les ´etats sont des ensembles
d’items.
D´efinition 5.7 Un item est complet s’il a la forme A → α·, c’est-`a-dire le symbole sp´ecial ·
est le symbole le plus `a droite.
D´efinition 5.8 La grammaire G est LR(0) si
1. Le symbole initial ne paraˆıt pas `a droite d’une r`egle (une condition technique qui n’est
pas restrictive en pratique).
2. Si un ´etat de l’AFD associ´e contient un item complet alors il ne contient pas d’autres
items.
Exemple 5.9 On construit l’AFD associ´e `a la grammaire dans l’exemple 5.4. Soient :
0 = {0, 1, 4, 5, 8, 9} 1 = {2, 7, 8, 9} 2 = {6} 3 = {4, 5, 8, 9, 11, 12} 4 = {3}
5 = {10} 6 = {7, 8, 9, 13} 7 = {14} 8 = {15}
Les transitions sont :
→ 0 1 2 3 4 5 6 7 8
0 S A a
1 a c A
2
3 A a S b
4
5
6 a b
7
8
On peut v´erifier que la grammaire est LR(0).
26Construction de l’APD On construit un APD qui accepte le langage g´en´er´e par une
grammaire LR(0).
– L’APD garde sur la pile un pr´efixe admissible γ = X1 · · · Xk. Plus pr´ecis´ement, on
intercale les symboles dans Γ avec les ´etats de l’AFD de fa¸con `a avoir q0X1q1 · · · Xkqk
avec qi+1 = δ(qi
, Xi+1), i = 0, . . . , k − 1.
– Si l’´etat au sommet de la pile est un ensemble compos´e d’un item complet, par exemple
qk = {A → Xi
· · · Xk·}, alors on effectue un reduce. La nouvelle pile a la forme
q0X1q1 · · · Xi−1qi−1Aq
o`u q = δ(qi−1, A).
– Si qk n’est pas complet on effectue un shift. Si a est le symbole lu, la nouvelle pile est
q0X1q1 · · · Xkqkaq si q = δ(qk, a).
– On accepte quand S symbole initial est sur la pile (le fait de faire un reduce sur le
symbole initial signifie que la d´erivation est termin´ee car le symbole initial ne peut pas
paraˆıtre `a droite d’une r`egle).
Exemple 5.10 On simule le comportement de l’APD associ´e `a la grammaire de l’exemple
5.4 sur l’entr´ee aababbc.
Pile Entr´ee Action
0 aababbc shift
0a3 ababbc shift
0a3a3 babbc shift
0a3a3b7 abbc reduce A → ab
0a3A2 abbc reduce S → A
0a3S6 abbc shift
0a3S6a3 bbc shift
0a3S6a3b7 bc reduce A → ab
0a3S6A5 bc reduce S → SA
0a3S6 bc shift
0a3S6b8 c reduce A → aSb
0A2 c reduce S → A
0S1 c shift
0S1c4 reduce S
0 → Sc
0S
0
accept
Exercice 5.11 On consid`ere la grammaire suivante avec symbole initial S :
S → A$ A → BA | B → aB | b
Expliquez pourquoi cette grammaire n’est pas LR(0).
Suggestion A → · est un item complet.
Exercice 5.12 On consid`ere la grammaire G suivante :
S → C, C → 0 | aCb .
1. Donnez la repr´esentation graphique de l’automate fini non-d´eterministe qui reconnaˆıt
les pr´efixes admissibles.
2. La grammaire est-elle LR(0) ? Expliquez.
273. D´erivez de l’analyse un automate `a pile d´eterministe qui accepte le langage g´en´er´e par
la grammaire.
Exercice 5.13 On consid`ere (`a nouveau) la grammaire :
S → A | B A → aAb | 0 B → aBbb | 1
V´erifiez que la grammaire est LR(0) et d´erivez l’automate `a pile d´eterministe qui accepte le
langage g´en´er´e par la grammaire.
Exercice 5.14 On consid`ere la grammaire suivante avec S symbole initial :
S → E$ E → id
E → id(E) E → E + id
1. Donnez la repr´esentation graphique d’un automate fini non-d´eterministe qui reconnaˆıt
les pr´efixes admissibles de la grammaire.
2. La grammaire est-elle LR(0) ? Justifiez votre r´eponse.
5.5 Grammaires LR(1)
Les principes de construction d´evelopp´es pour les grammaires LR(0) se g´en´eralisent aux
grammaires LR(1). Soient G = (V, Σ, S, R) une grammaire alg´ebrique et $ un nouveau symbole
qui servira `a marquer la fin du mot `a g´en´erer.
Item Un item est maintenant un couple (A → α · β, T) o`u A → αβ ∈ R est une r`egle de la
grammaire et T est un sous-ensemble de Σ ∪ {$}.
AFN On construit un AFN dont les ´etats Q sont les items plus un ´etat initial qo. La fonction
de transition δ a le type :
δ : Q × (V ∪ {}) → 2
Q
et elle est d´efinie par les conditions suivantes :
1. δ(q0, ) = {(S → ·α, {$}) | S → α ∈ R}.
2. δ((A → α · Bβ, T), ) = {(B → ·γ, Tβ) | B → γ ∈ R} o`u
Tβ =
(
First(β) ∪ T si null(β)
First(β) autrement
3. δ((A → α · Xβ, T), X) = {(A → αX · β, T)} o`u X ∈ V .
AFD On d´eterminise l’AFN pour obtenir un AFD ´equivalent. On dit que la grammaire est
LR(1) si : (i) le symbole initial ne paraˆıt pas `a droite d’une r`egle et (ii) si un ´etat de
l’AFD associ´e contient un item complet (A → α·, T) alors :
1. Si l’´etat contient un item (B → α
0
· a
0β
0
, T0
) alors a
0 ∈/ T.
2. Si l’´etat contient un item (B → α
0
·, T0
) alors T ∩ T
0 = ∅.
Intuitivement, la condition 1 ´evite les conflits reduce-shift et la condition 2 ´evite les
conflits reduce-reduce.
28APD Si la grammaire est LR(1) alors on peut construire un APD qui reconnaˆıt le langage
g´en´er´e par la grammaire et qui effectue des op´erations de shift et de reduce. La nouveaut´e
est que maintenant l’APD peut prendre en compte le prochain symbole en entr´ee.2
Comme dans le cas LR(0), la pile a la forme q0X1q1 · · · Xkqk o`u qi+1 = δ(qi
, Xi+1),
i = 0, . . . , k − 1 et δ est la fonction de transition de l’AFD. L’APD effectue trois types
d’actions.
reduce Si l’´etat au sommet de la pile contient un item complet (A → Xi
· · · Xk·, T)
avec A 6= S et si le prochain symbole en entr´ee appartient `a T alors on effectue une
action reduce et la nouvelle pile a la forme q0X1q1 · · · Xi−1qi−1Aq o`u q = δ(qi−1, A).
shift Si l’´etat au sommet de la pile contient un item (A → α · aB, T) et a est le
prochain symbole en entr´ee alors on effectue une action shift et la nouvelle pile est
q0X1q1 · · · Xkqkaq o`u q = δ(qk, a).
accept Si l’´etat au sommet de la pile contient un item (S → X1 · · · Xk·, {$}) et si le
prochain symbole en entr´ee est $ alors on accepte.
Les conditions qui d´efinissent une grammaire LR(1) assurent qu’`a chaque moment du
calcul au plus une action sera possible.
Exemple 5.15 On consid`ere la grammaire G :
S → A A → BA | B → aB | b
Cette grammaire g´en`ere le langage r´egulier (a
∗
b)
∗
. Ce langage n’a pas la propri´et´e du pr´efixe
et donc la grammaire G ne peut pas ˆetre LR(0). On pourrait consid´erer la grammaire G0
:
S → A$ A → BA | B → aB | b
mais il est facile de v´erifier que la grammaire obtenue n’est toujours pas LR(0).
On calcule les fonctions null , First et Follow .
null First Follow
S oui {a, b} ∅
A oui {a, b} ∅
B non {a, b} {a, b}
On peut v´erifier au passage que la grammaire G est LL(1). Il s’agit donc d’un exemple de
grammaire qui est LL(1) mais pas LR(0). On sait que les grammaires LL(1) et LR(0) sont
incomparables et qu’elles sont contenues strictement dans les grammaires LR(1).
Nous allons v´erifier que la grammaire G est LR(1). D’abord on construit l’AFN. Soient :
0 = q0 1 = (S → ·A, {$}) 2 = (S → A·, {$}) 3 = (A → ·BA, {$})
4 = (A → ·, {$}) 5 = (A → B · A, {$}) 6 = (B → ·aB, {a, b, $}) 7 = (B → ·b, {a, b, $})
8 = (A → BA·, {$}) 9 = (B → a · B, {a, b, $}) 10 = (B → b·, {a, b, $}) 11 = (B → aB·, {a, b, $})
Les transitions sont d´efinies par le tableau suivant :
2La technique utilis´ee pour se ramener `a un APD standard consiste `a ajouter le symbole sp´ecial $ `a l’entr´ee
et `a ‘m´emoriser’ le prochain symbole en entr´ee dans l’´etat de l’automate.
29→ 0 1 2 3 4 5 6 7 8 9 10 11
0
1 A
2
3 B
4
5 A
6 a
7 b
8
9 B
10
11
On construit l’AFD associ´e. Soient :
0 = {0, 1, 3, 4, 6, 7} 1 = {2} 2 = {3, 4, 5, 6, 7} 3 = {6, 7, 9} 4 = {10}
5 = {8} 6 = {11}
Les transitions sont :
→ 0 1 2 3 4 5 6
0 A B a b
1
2 B a b A
3 a b B
4
5
6
L’´etat 3 ne contient pas d’item complet. Les ´etats 1, 4, 5, 6 contiennent un seul item qui est
complet. Les ´etats 0 et 2 contiennent un seul item complet (A → ·, {$}) et dans les autres
items, $ ne paraˆıt pas `a droite de ·. Donc la grammaire G est LR(1).
On termine l’exemple en simulant le comportement de l’APD associ´e `a la grammaire sur
l’entr´ee aabb$.
Pile Entr´ee Action
0 aabb$ shift
0a3 abb$ shift
0a3a3 bb$ shift
0a3a3b4 b$ reduce B → b
0a3a3B6 b$ reduce B → aB
0a3B6 b$ reduce B → aB
0B2 b$ shift
0B2b4 $ reduce B → b
0B2B2 $ reduce A →
0B2B2A5 $ reduce A → BA
0B2A5 $ reduce A → BA
0A1 $ reduce S → A
0S $ accepte
306 Evaluation et typage d’un langage imp´eratif ´
On pr´esente les r`egles d’´evaluation et de typage d’un petit langage imp´eratif. Par rapport
au langage d’expressions consid´er´e dans la section 2, on voit paraˆıtre plusieurs concepts
nouveaux :
– la notion d’environnement qui sugg`ere une mise-en-oeuvre efficace de la substitution.
– la notion de m´emoire qui permet de mod´eliser l’affectation.
– la gestion du contrˆole : les branchements, les boucles, le goto,. . .
– le passage de param`etres aux proc´edures.
– la gestion de l’environnement ou comment associer une valeur `a un nom.
6.1 Syntaxe
Dans un souci de lisibilit´e, on utilise une syntaxe concr`ete, ´etant entendu que l’´evaluateur
op`ere sur l’arbre de syntaxe abstraite g´en´er´e par l’analyseur syntaxique.3
Types Les types comprennent deux types de base bool et int ainsi que les types produit et
r´ef´erence :
τ ::= bool | int | τ ∗ τ | ref τ
On d´enote avec (τ1, . . . , τn) → τ le type d’une op´eration qui re¸coit n arguments de type
τ1, . . . , τn et rend un r´esultat de type τ . On d´enote aussi avec (τ1, . . . , τn) le type d’une
proc´edure qui attend n param`etres de type τ1, . . . , τn (et ne rend pas de r´esultat).
Valeurs Soit Z l’ensemble des entiers avec ´el´ements n, m, . . . Soit Loc un ensemble infini de
locations avec ´el´ements `, `0
, . . .. Concr`etement on peut penser `a une location comme
`a une adresse de m´emoire. Les valeurs comprennent les valeurs de base, les couples de
valeurs et les locations :
v ::= true | false | n | Pair (v, v) | `
Soit Val l’ensemble des valeurs (qui contient l’ensemble des locations).
Expressions La cat´egorie syntaxique des expressions comprend des op´erateurs op sur les
types de base bool et int. Par exemple : +, ∗,∧, >, . . . A chaque op´erateur op on associe
l’interpr´etation attendue op. Par exemple, + est l’addition sur les entiers.
id ::= x | y | . . .
e ::= v | id | op(e1, . . . , en) | Pair (e, e) | Fst(e) | Snd(e) | ref e | !e
Les expressions comprennent aussi un constructeur de couple et les projections associ´ees
ainsi qu’un g´en´erateur de r´ef´erence et l’op´erateur de d´er´ef´erenciation associ´e.
D´eclarations Une d´eclaration est une liste d’associations entre identificateurs et expressions
:
D ::= | (let id = e); D
Commandes Les commandes comprennent une affectation et des op´erateurs de base pour
manipuler le flot du contrˆole :
S ::= id := e | (while e do S) | (if e then S else S) | S; S
3Dans la suite on adopte la notation de Backus-Naur : pour sp´ecifier une grammaire alg´ebrique on ´ecrit
S ::= · · · plutˆot que S → · · ·
31Programmes Un programme est constitu´e d’une d´eclaration suivie par une commande :
P ::= D; S
Exemple 6.1 Voici un exemple de programme :
let x = ref !input;
let y = ref 1;
(while !x > 0 do y := 2∗!y; x :=!x − 1);
output :=!y
Ici on suppose que certaines variables comme input et output sont pr´ed´efinies. Un programme
utilise ces variables pour lire l’entr´ee et ´ecrire le r´esultat du calcul.
6.2 Evaluation ´
Pour ´evaluer expressions, d´eclarations, commandes et programmes nous avons besoin de
deux param`etres : un environnement η et une m´emoire µ. Soit Id l’ensemble des identificateurs.
On d´efinit :
– Un environnement η : Id * Val comme une fonction partielle `a domaine fini de Id dans
Val.
– Une m´emoire µ : Loc * Val comme une fonction partielle `a domaine fini de Loc dans
Val.
On utilise les jugements suivants :
(e, η, µ) ⇓ (v, µ0
), (D, η, µ) ⇓ (η
0
, µ0
), (S, η, µ) ⇓ µ
0
, (P, η, µ) ⇓ µ
0
.
On ´ecrit ` = new(η, µ) pour dire que ` est une location qui ne parait pas dans im(η) ∪
dom(µ) ∪ im(µ). Cette op´eration peut toujours ˆetre effectu´ee car domaine et image sont des
ensembles finis et on suppose que Loc est un ensemble infini.
Expressions
(v, η, µ) ⇓ (v, µ)
η(x) d´efini
(x, η, µ) ⇓ (η(x), µ)
(e, η, µ) ⇓ (v, µ0
) ` = new(η, µ0
)
(ref e, η, µ) ⇓ (`, µ0
[v/`])
(e, η, µ) ⇓ (`, µ0
)
(!e, η, µ) ⇓ (µ
0
(`), µ0
)
(e1, η, µ) ⇓ (v1, µ1)· · ·(en, η, µn−1) ⇓ (vn, µn)
v1, . . . , vn dans le domaine de d´efinition de op
(op(e1, · · · , en), η, µ) ⇓ (op(v1, . . . , vn), µn)
(e1, η, µ) ⇓ (v1, µ1) (e2, η, µ1) ⇓ (v2, µ2)
(Pair (e1, e2), η, µ) ⇓ (Pair (v1, v2), µ2)
(e, η, µ) ⇓ (Pair (v1, v2), µ0
)
(Fst(e), η, µ) ⇓ (v1, µ0
)
(e, η, µ) ⇓ (Pair (v1, v2), µ0
)
(Snd(e), η, µ) ⇓ (v2, µ0
)
Exemple 6.2 On suppose η0(x) = `x et µ0(`x) = true. On d´erive :
(Snd(!(ref (Pair (3, !x)))), η0, µ0) ⇓ (true, µ0[Pair (3, true)/`1])
32D´eclarations
( , η, µ) ⇓ (η, µ)
(e, η, µ) ⇓ (v, µ0
) (D, η[v/x], µ0
) ⇓ (η
00, µ00)
(let x = e; D, η, µ) ⇓ (η
00, µ00)
Exercice 6.3 Evaluez la liste de d´eclarations suivante : ´
let x = ref 3;
let y =!x + 3 :
Remarque 6.4 Il est int´eressant de comparer le traitement du let ci-dessus avec celui d´ecrit
en section 2.5 pour le simple langage d’expressions. Dans le langage d’expressions on remplace,
par une op´eration de substitution, l’identificateur par une valeur. Cette op´eration de
substitution n’est pas triviale et elle peut s’av´erer coˆuteuse. Dans la pratique de la mise-enoeuvre,
il est pr´ef´erable d’introduire une notion d’environnement comme nous l’avons fait pour
le langage imp´eratif et d’enregistrer dans l’environnement l’association entre identificateur et
valeur. Bien sˆur on pourrait appliquer cette id´ee aussi au langage d’expressions de la section
2.5. Dans ce cas le jugement deviendrait (b, η) ⇓ (v, η0
) et la r`egle pour le let s’´ecrirait comme
suit :
(e
0
, η) ⇓ (v
0
, η0
) (b, η[v
0/x]) ⇓ (v, η00)
(let x = e
0
in b, η) ⇓ (v, η00)
Commandes
η(x) = ` (e, η, µ) ⇓ (v, µ0
)
(x := e, η, µ) ⇓ µ
0
[v/`]
(S1, η, µ) ⇓ µ1 (S2, η, µ1) ⇓ µ2
(S1; S2, η, µ) ⇓ µ2
(e, η, µ) ⇓ (false, µ0
)
(while e do S, η, µ) ⇓ µ
0
(e, η, µ) ⇓ (true, µ0
) (S; (while e do S), η, µ0
) ⇓ µ
00
(while e do S, η, µ) ⇓ µ
00
(e, η, µ) ⇓ (true, µ0
) (S1, η, µ0
) ⇓ µ
00
(if e then S1 else S2, η, µ) ⇓ µ
00
(e, η, µ) ⇓ (false, µ0
) (S2, η, µ0
) ⇓ µ
00
(if e then S1 else S2, η, µ) ⇓ µ
00
Exercice 6.5 Evaluez la commande suivante dans un environnement ´ η tel que η(x) = `x.
x := 1;
while !x > 0 do
x :=!x − 1
Programmes
(D, η, µ) ⇓ (η
0
, µ0
) (S, η0
, µ0
) ⇓ µ
00
(D; S, η, µ) ⇓ µ
00
Remarque 6.6 On notera que :
– L’´evaluation d’une expression n’affecte pas l’environnement et peut ´eventuellement produire
une extension de la m´emoire.
– L’´evaluation d’une d´eclaration peut modifier l’environnement et peut provoquer l’´evaluation
d’une expression.
33– L’´evaluation d’une commande peut modifier la m´emoire et peut provoquer l’´evaluation
d’une expression.
Exercice 6.7 Evaluez le programme de l’exemple 6.1 dans l’environnement ´ η0 et la m´emoire
µ0 tels que η0(input) = `0 et µ(`0) = 1.
Exercice 6.8 On modifie la cat´egorie syntaxique des commandes S en rempla¸cant la commande
while par la commande goto :
S ::= id := e | lab : S | goto lab | (if e then S) | S; S
Ici lab est une nouvelle cat´egorie syntaxique d’´etiquettes qu’on d´enote par a, b, c, . . .
Pour d´ecrire l’´evaluation de ces nouvelles commandes on ´elargit le domaine de d´efinition
des environnements aux ´etiquettes. Si a est une ´etiquette, η est un environnement et η(a)
est d´efini alors η(a) est une commande. Les r`egles d’´evaluation pour les deux nouvelles commandes
introduites sont alors les suivantes :
(S, η[S/a], µ) ⇓ µ
0
(a : S, η, µ) ⇓ µ
0
(η(a), η, µ) ⇓ µ
0
(goto a, η, µ) ⇓ µ
0
1. Compl´etez la description de l’´evaluation en donnant les r`egles pour l’affectation x := e,
le branchement (if e then S) et la s´equentialisation S1; S2.
2. Proposez un sch´ema de traduction de la commande (while e do S) dans le langage avec
goto.
3. Appliquez votre sch´ema de traduction `a la commande :
(while x do
(while y do S1)) ;
(while z do S2)
6.3 Extension avec proc´edures
On consid`ere maintenant une extension du langage avec proc´edures.
Syntaxe r´evis´ee
D´eclarations de proc´edure On ajoute les d´eclarations de proc´edure.
DP ::= | (procedure f(x1 : τ1, . . . , xn : τn) = D; S) ; DP
Une proc´edure se compose d’un nom, d’une liste de param`etres formels typ´es et d’un
corps de proc´edure D; S.
Commandes On ajoute l’appel de proc´edure `a la liste des commandes.
S ::= · · · |f(e1, . . . , en)
Programmes Maintenant, un programme se compose d’une liste ´eventuellement vide de
d´eclarations de proc´edure et d’un corps principal D; S.
P ::= DP; D; S
34Evaluation r´evis´ee ´ On d´efinit Pid comme l’ensemble des identificateurs de proc´edures.
On d´efinit VProc comme l’ensemble des couples de la forme (x1 · · · xn, D; S), c’est-`a-dire une
liste d’identificateurs et le ‘code’ d’un corps de proc´edure. Un environnement η : Id ∪ Pid *
Val ∪ VProc est maintenant une fonction partielle `a domaine fini qui associe une valeur aux
identificateurs et un ´el´ement de VProc aux identificateurs de proc´edure. Si η est un environnement,
on d´enote par η|Pid la restriction de η `a Pid. Il faut ajouter des r`egles pour la
d´eclaration de proc´edure et pour l’appel de proc´edure.
D´eclaration de proc´edure On introduit un jugement (DP, η) ⇓ η qui est d´efini par les
r`egles :
( , η) ⇓ η
(DP, η[(x, D; S)/f]) ⇓ η
0
((procedure f(x : ~τ ) = D; S); DP, η) ⇓ η
0
L’effet d’une d´eclaration de proc´edure est d’associer au nom de la proc´edure ses param`etres
formels et son code.
On remarquera que dans des langages plus g´en´eraux, cette information n’est pas suf-
fisante. Dans ces langages on a besoin de connaˆıtre aussi l’environnement dans lequel
la proc´edure doit ˆetre ´evalu´ee. On arrive ainsi `a la notion de clˆoture qui est un couple
(code, environnement). Cette notion sera d´evelopp´ee dans la suite du cours.
Appel de proc´edure Les valeurs qui correspondent aux param`etres actuels de la proc´edure
peuvent ˆetre des locations. Une proc´edure a donc la possibilit´e de retourner un r´esultat
en modifiant la valeur contenue dans une location qui lui est transmise en param`etre.
Au moment de l’appel de proc´edure il faut d´eterminer l’environnement dans lequel la
proc´edure est appel´ee. Dans notre cas cet environnement comprend uniquement les
noms des proc´edures.
η(f) = (x1 · · · xn, D; S)
(e1, η, µ) ⇓ (v1, µ1)· · ·(en, η, µn−1) ⇓ (vn, µn)
(D; S, η|Pid [v1/x1, . . . , vn/xn], µn) ⇓ µ
0
(f(e1, . . . , en), η, µ) ⇓ µ
0
Programme La commande principale S est ´evalu´ee dans un environnement o`u toutes les
proc´edures et les variables d´eclar´ees dans DP et D sont d´efinies.
(DP, η) ⇓ η
0
(D; S, η0
, µ) ⇓ µ
0
(DP; D; S, η, µ) ⇓ µ
0
Remarque 6.9 Il est important que dans l’´evaluation du corps d’une proc´edure on cache
l’environnement de l’appelant. Par exemple, dans
procedure f() = x :=!x + 1;
let x = ref 1;
f()
la variable x ne doit pas ˆetre visible dans le corps de f et donc l’appel de f devrait produire
une erreur au moment de l’ex´ecution.
35Exercice 6.10 Evaluez : ´
(procedure f (x : int, y : ref int) =
let i = ref x;
y := 1; (while !i > 0 do (y :=!i∗!y;i :=!i − 1)));
let out = ref 0; let in = 2;
f(in, out)
6.4 Mise-en-oeuvre
On peut ajouter des r`egles pour les situations anormales. On donne une ´evaluation `a erreur
toutes le fois qu’on rencontre une des situations suivantes :
– on ´evalue une variable qui n’est pas dans l’environnement.
– les arguments de op ont le mauvais type.
– l’argument de Fst ou Snd n’est pas une paire.
– on d´e-r´ef´erence une valeur qui n’est pas une location.
– on cherche la valeur associ´ee `a une location qui n’est pas d´efinie en m´emoire.
– on affecte une variable qui n’est pas d´efinie dans l’environnement ou qui est d´efinie mais
dont la valeur n’est pas une location.
– on a une condition de test pour while ou if then else qui n’est pas un bool´een.
– on appelle une proc´edure qui n’est pas d´efinie dans l’environnement ou on appelle une
proc´edure avec le mauvais nombre d’arguments.
Par ailleurs, si une des ´evaluations en hypoth`ese donne erreur alors la conclusion donne erreur.
Exemple 6.11 On introduit un symbole sp´ecial err et on admet des jugements de la forme :
(e, η, µ) ⇓ err , (DP, η) ⇓ err , (D, η, µ) ⇓ err , (S, η, µ) ⇓ err , (P, η, µ) ⇓ err .
Si, par exemple, on consid`ere la commande while on peut ajouter les r`egles suivantes :
(e, η, µ) ⇓ (v, µ0
) v /∈ {false, true}
(while e do S, η, µ) ⇓ err
(e, η, µ) ⇓ err
(while e do S, η, µ) ⇓ err
(e, η, µ) ⇓ (true, µ0
) (S; (while e do S), η, µ0
) ⇓ err
(while e do S, η, µ) ⇓ err
Exercice 6.12 Ecrire les r`egles qui traitent les erreurs pour d’autres constructions du langage ´
(expressions, d´eclarations de proc´edure, d´eclarations, commandes et programmes).
Remarque 6.13 On pourrait consid´erer d’autres types d’erreurs. Par exemple on peut associer
une taille `a chaque valeur.
|true| = |false| = |n| = |`| = 1
|Pair (v1, v2)| = 1 + |v1| + |v2|
L’espace allou´e pour m´emoriser une valeur serait proportionnel `a sa taille. On pourrait donner
une erreur si on alloue une valeur dont la taille exc`ede celle de la m´emoire allou´ee. Par
exemple
let x = ref 1;
x := Pair (!x, !x)
pourrait produire une erreur.
36La mise en oeuvre d’un ´evaluateur dans un langage qui permet les appels r´ecursifs est tr`es
directe. Il s’agit de fixer des structures de donn´ees pour la repr´esentation de l’environnement
et de la m´emoire et des op´erations associ´ees :
– g´en´erer une nouvelle location.
– cr´eer des nouvelles associations dans l’environnement ou en m´emoire.
– chercher une association dans l’environnement ou en m´emoire.
– mettre `a jour une association dans l’environnement ou en m´emoire.
Ensuite il suffit de d´efinir une fonction r´ecursive ‘Eval’ qui est dirig´ee par la syntaxe (abstraite).
6.5 Liaison et ´evaluation
Le langage imp´eratif consid´er´e repose sur la liaison statique et l’appel par valeur. On
analyse des variations possibles dans le cadre d’un simple langage d’expressions
e ::= ⊥ | n | Id | let Id = e in e | quote(e) | unquote(e)
o`u ⊥ repr´esente un calcul qui diverge, n est un entier et Id = {x, y, . . .} est l’ensemble des identificateurs.
L’op´erateur quote permet de bloquer l’´evaluation d’une expression et l’op´erateur
unquote permet de la d´ebloquer. Soit Exp l’ensemble des expressions. L’ensemble des valeurs
v est d´efini par
v ::= n | quote(e)
On consid`ere diff´erentes strat´egies d’´evaluation : avec liaison dynamique ou statique et avec
appel par nom ou par valeur.
Liaison dynamique Un environnement η est une fonction partielle de Id dans Exp. Soit
Env l’ensemble des environnements. La relation d’´evaluation ⇓ associe une valeur v `a un
couple (e, η) ∈ Exp × Env. La relation est d´efinie par les r`egles :
(v, η) ⇓ v
(η(x), η) ⇓ v
(x, η) ⇓ v
(e, η) ⇓ quote(e
0
) (e
0
, η) ⇓ v
(unquote(e), η) ⇓ v
(e, η) ⇓ n
(unquote(e), η) ⇓ n
et par la r`egle :
(par nom) (e, η[e
0/x]) ⇓ v,
(let x = e
0
in e, η) ⇓ v
(par valeur) (e
0
, η) ⇓ u (e, η[u/x]) ⇓ v
(let x = e
0
in e, η) ⇓ v
Liaison statique Dans ce cas l’ensemble des environnements Env est le plus petit ensemble
de fonctions partielles (sur Id) tel que la fonction `a domaine vide est un environnement et
si x1, . . . , xn ∈ Id, e1, . . . , en ∈ Exp et η1, . . . , ηn ∈ Env alors la fonction partielle telle que
η(xi) = (ei
, ηi) pour i = 1, . . . , n est un environnement. La relation d’´evaluation ⇓ associe
`a un couple (e, η) ∈ Exp × Env, un couple (v, η0
). On appelle aussi clˆoture un couple (e, η)
constitu´e d’un code (une expression dans notre cas) et d’un environnement.
37La relation d’´evaluation est d´efinie par les r`egles :
(v, η) ⇓ (v, η)
η(x) ⇓ (v, η0
)
(x, η) ⇓ (v, η0
)
(e, η) ⇓ (quote(e
0
), η0
) (e
0
, η0
) ⇓ (v, η00)
(unquote(e), η) ⇓ (v, η00)
(e, η) ⇓ (n, η0
)
(unquote(e), η) ⇓ (n, η0
)
et par la r`egle :
(par nom) (e, η[(e
0
, η)/x]) ⇓ (v, η1)
(let x = e
0
in e, η) ⇓ (v, η1)
(par valeur)
(e
0
, η) ⇓ (u, η2)
(e, η[(u, η2)/x]) ⇓ (v, η1)
(let x = e
0
in e, η) ⇓ (v, η1)
S´eparation On donne des exemples qui distinguent les diff´erentes strat´egies de liaison et
d’´evaluation.
– let x = ⊥ in 3 distingue appel par nom et appel par valeur dans les deux types de
liaison. A savoir, l’´evaluation converge par nom et diverge par valeur.
– Reste `a comparer (1) dynamique+nom et statique+nom et (2) dynamique+valeur et
statique+valeur. Soit :
e1 ≡ let x = 3 in e2, e2 ≡ let y = x in e3, e3 ≡ let x = 5 in y .
En dynamique par nom, (e1, ∅) ⇓ 5. En dynamique par valeur, (e1, ∅) ⇓ 3. En statique
par nom (e1, ∅) ⇓ (3, ∅). En statique par valeur (e1, ∅) ⇓ (3, ∅).
– Reste `a comparer dynamique par valeur et statique par valeur. Si l’on se restreint `a
des expressions sans quote, unquote alors les deux strat´egies co¨ıncident. En effet dans
la liaison statique on va associer `a une variable un nombre et donc l’environnement ne
joue pas de rˆole. On modifie donc l’exemple ci-dessus comme suit :
e1 ≡ let x = 3 in e2, e2 ≡ let y = quote(x) in e3, e3 ≡ let x = 5 in unquote(y) .
Maintenant (e1, ∅) s’´evalue en 5 en dynamique par valeur et en (3, ∅) en statique par
valeur.
386.6 Typage
On d´enote par Types l’ensemble des types et par ProcTypes les vecteurs de types qu’on
associe aux proc´edures. Un environnement de types est une fonction
E : Id ∪ Pid * Types ∪ ProcTypes
dont le domaine est fini avec E(Id) ⊆ Types et E(Pid) ⊆ ProcTypes. Un type est une
abstraction d’une valeur. De mˆeme, un environnement de types est une abstraction d’un
environnement.
Typage des expressions On consid`ere un jugement de la forme :
E ` e : τ
et on suppose que dans une expression on nomme jamais explicitement une location `. Les
r`egles de typage sont les suivantes :
E ` true : bool E ` false : bool E ` n : int
E(x) = τ
E ` x : τ
E ` ei
: τi i = 1, 2
E ` Pair (e1, e2) : τ1 ∗ τ2
E ` e : τ1 ∗ τ2
E ` Fst(e) : τ1
E ` e : τ1 ∗ τ2
E ` Snd(e) : τ2
E ` e : τ
E ` ref e : ref τ
E ` e : ref τ
E `!e : τ
Typage des environnements On consid`ere des jugements de la forme :
E ` D : E
0 E ` DP : E
0
Les r`egles de typage sont :
E ` : E
E ` e : τ E[τ /x] ` D : E0
E ` (let x = e) ; D : E0
E|Pid [(τ1, . . . , τn)/f, τ1/x1, . . . , τn/xn] ` D; S E[(τ1, . . . , τn)/f] ` DP : E00
E ` (procedure f(x1 : τ1, . . . , xn : τn) = D; S); DP : E00
Typage des commandes On consid`ere des jugements de la forme :
E ` S
Les r`egles de typage sont :
E(x) = ref τ E ` e : τ
E ` x := e
E ` e : bool E ` S
E ` while e do S
E ` e : bool E ` S1 E ` S2
E ` if e then S1 else S2
E(f) = (τ1, . . . , τn) E ` ei
: τi i = 1, . . . , n
E ` f(e1, . . . , en)
E ` S1 E ` S2
E ` S1; S2
39Typage des programmes On consid`ere un jugement de la forme :
E ` P
La r`egle de typage est :
E ` DP : E0 E0 ` D : E00 E00 ` S
E ` DP; D; S
Exercice 6.14 Typez, si possible, les programmes :
procedure f() = x :=!x + 1; (procedure f (x : int, y : ref int) =
let x = ref 1; let i = ref x;
f() y := 1; (while !i > 0 do (y :=!i∗!y;i :=!i − 1)));
let out = ref 0; let in = 2;
f(in, out)
V´erification de type L’application des r`egles de typage est dirig´ee par la syntaxe abstraite.
Il s’agit simplement de fixer une repr´esentation des environnements de type et d’´ecrire des
fonctions r´ecursives qui prennent en argument un environnement de type et v´erifient le bon
typage d’expressions, d´eclarations, commandes et programmes :
Propri´et´es du typage L’objectif des r`egles de typage est toujours de s’assurer que :
Un programme bien typ´e ne s’´evalue pas en erreur.
La formulation de cette propri´et´e et sa v´erification est maintenant beaucoup plus compliqu´ee
que dans le langage d’expressions consid´er´e dans la section 2. Par exemple, on peut commencer
par traiter un fragment du langage o`u :
v ::= n | `
e ::= v | id | ref e |!e
D ::= | (let id = e); D
P ::= D
On remarquera que l’´evaluation d’expressions peut produire des locations. On a donc besoin
de ‘typer les locations’. Plus en g´en´eral, on a besoin d’exprimer les propri´et´es de la m´emoire
qui sont pr´eserv´ees par l’´evaluation. On est donc amen´e `a formuler une notion de type de
m´emoire qui abstrait une m´emoire dans le mˆeme sens qu’un environnement de types abstrait
un environnement.
Exercice 6.15 On souhaite analyser les programmes suivants qui se composent d’une d´eclaration
de proc´edure f, d’une d´eclaration de variable x et d’un corps principal f().
Programme 1
procedure f() =
let x = ref 1;
let y = ref !x;
x :=!y;
let x = ref true;
f()
Programme 2
procedure f() =
let x = ref true;
let y = ref 2 :;
y :=!x;
let x = ref 1;
f()
Programme 3
procedure f() =
let y = ref !x;
x :=!y;
let x = ref 1;
f()
Pour chaque programme, pr´ecisez si :
401. Le programme est bien typ´e.
2. L’ex´ecution du programme est susceptible de produire une erreur.
Suggestion Vous pouvez r´epondre `a ces questions sans calculer formellement le typage et l’´evaluation des
programmes.
Exercice 6.16 On ´etend la cat´egorie syntaxique S des commandes du langage avec une commande
(repeat S until e) .
La s´emantique informelle de cette commande est la suivante : (A) On ex´ecute la commande S.
(B) On ´evalue l’expression e. (C) Si le r´esultat de l’´evaluation est true alors on termine, si le
r´esultat de l’´evaluation est false alors on saute au point (A), autrement on avorte l’ex´ecution
et on donne un message d’erreur.
1. Proposez un codage de la commande repeat dans le langage imp´eratif avec while qui respecte
la s´emantique informelle (on peut supposer que le langage comprend un op´erateur
not qui calcule la n´egation sur le type des bool´eens).
2. Donnez les r`egles d’´evaluation pour la commande repeat .
3. Donnez les r`egles de typage pour la commande repeat qui permettent d’´eviter la situation
d’erreur d´ecrite dans la s´emantique.
Exercice 6.17 On consid`ere le langage imp´eratif d´ecrit dans le cours. On ´etend la cat´egorie
syntaxique S des commandes avec une commande for de la forme
(for (id; S
0
) S) .
dont la s´emantique informelle est la suivante.
1. On v´erifie que la valeur associ´ee `a l’identificateur id est une r´ef´erence ` et que la valeur
v associ´ee `a la la r´ef´erence ` est un entier.
2. Si v n’est pas un entier on donne un message d’erreur.
3. Si v est ´egal `a 0 on termine l’ex´ecution de la commande.
4. Autrement, on ex´ecute la commande S suivie par la commande d’incr´ement S
0
et on
saute au point 1.
Vous devez :
1. Donner les r`egles formelles d’´evaluation pour la commande for.
2. Donner une r`egle de typage pour la commande for qui permet d’´eviter la situation d’erreur
d´ecrite dans la s´emantique informelle.
417 Evaluation et typage d’un langage `a objets ´
On suppose que le lecteur a d´ej`a pratiqu´e la programmation `a objets. On pr´esente la
syntaxe (plutˆot abstraite), les r`egles d’´evaluation et les r`egles de typage d’un micro-langage
`a objets librement inspir´e du langage Java.
Un objet est constitu´e d’un nom de classe et d’une liste de locations de m´emoire qu’on
appelle attributs. Une classe est une d´eclaration dans laquelle on sp´ecifie comment construire
et manipuler les objets de la classe. En particulier, on sp´ecifie les attributs de chaque objet
et les m´ethodes qui permettent de les manipuler.
Les langages `a objets reposent sur les notions d’h´eritage et de sous-typage. On rappelle
que la premi`ere est une relation entre les impl´ementations des classes alors que la deuxi`eme
est une relation entre les interfaces des classes. Nous d´ecrivons une approche ´el´ementaire dans
laquelle l’h´eritage est simple (au lieu d’ˆetre multiple) et la relation de sous-typage est d´eriv´ee
de l’h´eritage (en g´en´eral les deux notions peuvent ˆetre incomparables).
7.1 Syntaxe
Classes On suppose une classe Object sans attributs et sans m´ethodes. Chaque d´eclaration
de classe ´etend une autre classe. Par exemple, on peut d´eclarer une classe C qui h´erite de la
classe D et qui comprend un attribut f et une m´ethode m.
class C extends D = (
· · ·
var f : C
0
(d´eclaration d’attribut (field))
· · ·
methodm(x1 : D1, ..., xn : Dn) : D
0 = e (d´eclaration de m´ethode)
· · ·)
Les noms des classes seront les types de notre langage. On d´erive de l’h´eritage une relation
binaire de sous-typage ≤ sur les classes comme la plus petite relation r´eflexive et transitive
telle que C ≤ D si le programme contient une d´eclaration de la forme ci-dessus. Pour interdire
des h´eritages cycliques, on demande `a ce que C ≤ D et D ≤ C implique C = D. Sous cette
hypoth`ese, on peut repr´esenter la relation de sous-typage comme un arbre ayant la classe
Object `a sa racine (la racine ´etant ‘en haut’).
Valeurs, locations et m´emoires Nous allons supposer que tous les attributs sont modifiables.
On reprend et on adapte les notions de location et de m´emoire que nous avons
consid´er´e pour le langage imp´eratif. Soit Loc un ensemble infini de locations avec ´el´ements
`, `0
, . . . Une location est maintenant un pointeur (ou r´ef´erence) `a un objet. La valeur v d’un
objet prend la forme :
v ::= C(`1, . . . , `n) n ≥ 0
o`u C est le nom de la classe `a laquelle l’objet appartient et `1, . . . , `n sont les locations
associ´ees aux n attributs modifiables de l’objet. Une m´emoire µ est une fonction partielle `a
domaine fini qui associe `a une location la valeur d’un objet.
42Expressions et Commandes Les cat´egories syntaxiques des expressions e et des commandes
S sont d´efinies comme suit :
e ::= x | (variable)
v | (valeur)
new C(e1, . . . , en) | (g´en´eration d’objet)
e.f | (invocation d’attribut)
e.m(e1, . . . , en) | (invocation de m´ethode)
(e as C) | (coercition/downcasting)
S; e (commande-expression)
S ::= e.f := e | (affectation d’attribut)
S; S (s´equentialisation)
Conventions Parmi les variables, on r´eserve la variable this (on choisit aussi self) pour faire
r´ef´erence `a l’objet sur lequel la m´ethode est invoqu´ee. Par ailleurs, comme dans le langage
imp´eratif, on peut faire l’hypoth`ese que le programme source ne manipule pas directement
les locations.
Programme Un programme est constitu´e d’une liste de d´eclarations de classes, et d’une
expression. La valeur de l’expression est le r´esultat du programme. Un programme bien form´e
doit satisfaire certaines conditions :
1. Si C ≤ D alors C h´erite de tous les attributs de D. On demande `a qu’il n’y ait pas
de conflit de nom parmi les attributs. En d’autres termes, si on remonte un chemin de
l’arbre d’h´eritage on ne doit pas trouver deux attributs avec le mˆeme nom.
2. Si C ≤ D alors C h´erite aussi de toutes les m´ethodes de D, cependant C peut red´efinir
(override) une m´ethode `a condition que son type soit le mˆeme que le type de la m´ethode
h´erit´ee.
Il convient d’introduire un certain nombre de fonctions qui seront utilis´ees dans la formulation
des r`egles d’´evaluation et de typage.
– field(C) retourne la liste f1 : C1, . . . , fn : Cn des attributs accessibles par un objet de
la classe C. Si on g´en`ere un objet de la classe C on doit donc lui passer n arguments.
– mtype(m, C) retourne le type de la m´ethode m dans la classe C.
– override(m, D, C → C) est un pr´edicat qui v´erifie que si mtype(m, D) est d´efini alors il
co¨ıncide avec C → C.
– mbody(m, C) retourne le corps (x1, . . . , xn, e) de la m´ethode m dans la classe C ; ici
x1, . . . , xn sont les param`etres formels et e est l’expression associ´ee `a la m´ethode.
Exemple 7.1 On consid`ere une suite de d´eclarations de classes qui permettent de repr´esenter
les valeurs bool´eennes, le nombres naturels en notation unaire, les listes d’objets et les r´ef´erences.
class Bool extends Object = (
method ite(x:Object, y:Object): Object = new Object() )
43class True extends Bool = (
method ite(x:Object,y:Object): Object = x )
class False extends Bool = (
method ite(x:Object,y:Object): Object = y )
class Num extends Object = (
method iszero():Bool = new Bool()
method pred():Num = new Num() )
class Zero extends Num = (
method iszero():Bool = new True() )
class NotZero extends Num = (
var pd: Num
method pred() : Num = this.pd
method iszero(): Bool = new False() )
class List extends Object = (
method select(n:Num): Object = new Object()
method insert(c:Object): NotEmptyList = new NotEmptyList(c,this) )
class NotEmptyList extends List = (
var cl: Object
var follow: List
method select(n:Num): Object = n.iszero().ite( this.cl, this.follow.select(n.pred())) )
class Ref extends Object = (
var val : Object
read(): Object = this.val
write(x:Object):Object = this.val:=x; this )
Exercice 7.2 Compl´etez le code de l’exemple 7.1 en ´ecrivant les m´ethodes suivantes :
1. Une m´ethode cpl dans la classe Bool pour calculer le compl´ementaire d’un bool´een.
2. Une m´ethode add dans la classe Num avec un argument de type Num pour additionner.
3. Une m´ethode count dans la classe List pour compter le nombre d’´el´ements d’une liste.
7.2 Evaluation ´
Pour se rapprocher d’une mise-en-oeuvre de l’´evaluateur, il conviendra de formuler les
r`egles d’´evaluation par rapport `a un environnement η qui associe des valeurs aux variables.
Le jugements qu’on consid`ere ont la forme : (e, η, µ) ⇓ (v, µ0
) et (S, η, µ) ⇓ µ
0
. On ´evalue
les expressions et les commandes par rapport `a une m´emoire et un environnement. Dans
le premier cas le r´esultat de l’´evaluation est une valeur et une nouvelle m´emoire et dans
le deuxi`eme le r´esultat est une m´emoire. Les r`egles d’´evaluation sont les suivantes, o`u l’on
suppose que new(µ, n) = `1, . . . , `n si `1, . . . , `n sont n locations ‘nouvelles’ (pas d´ej`a utilis´ees
dans µ).
44(v, η, µ) ⇓ (v, µ) (x, η, µ) ⇓ (η(x), µ)
(e1, η, µ) ⇓ (v1, µ1), . . . ,(en, η, µn−1) ⇓ (vn, µn),
`1, . . . , `n = new(µ, n)
(new C(e1, . . . , en), η, µ) ⇓ (C(`1, . . . , `n), µn[v1, . . . , vn/`1, . . . , `n])
(e, η, µ) ⇓ (C(`1, . . . , `n), µ0
)
field(C) = f1 : C1, . . . , fn : Cn 1 ≤ i ≤ n
(e.fi, η, µ) ⇓ (µ
0
(`i), µ0
)
(e, η, µ) ⇓ (C(`), µ0) mbody(m, C) = (x1, . . . , xn, e0
)
(e1, η, µ0) ⇓ (v1, µ1)· · ·(en, η, µn−1) ⇓ (vn, µn)
(e
0
, η[v1, . . . , vn/x1, . . . , xn, C(`)/this], µn) ⇓ (v, µ0
)
(e.m(e1, . . . , en), η, µ) ⇓ (v, µ0
)
(e, η, µ) ⇓ (C(`), µ0
) C ≤ D
(e as D, η, µ) ⇓ (C(`), µ0
)
(S, η, µ) ⇓ µ
0
(e, η, µ0
) ⇓ (v, µ00)
(S; e, η, µ) ⇓ (v, µ00)
(e, η, µ) ⇓ (C(`1, . . . , `n), µ0
)
field(C) = f1 : C1, . . . , fn : Cn (e
0
, η, µ0
) ⇓ (v, µ00)
(e.fi := e
0
, η, µ) ⇓ µ
00[v/`i]
(S, η, µ) ⇓ µ
0
(S
0
, η, µ0
) ⇓ µ
00
(S; S
0
, η, µ) ⇓ µ
00
Exemple 7.3 On se r´ef`ere aux classes d´efinies dans l’exemple 7.1. Soient η un environnement
vide, µ une m´emoire vide et e l’expression new Ref(new True()).write(new False())).read().
On peut v´erifier que l’´evaluation de (e, η, µ) produit l’expression False() et la m´emoire µ[False()/`].
7.3 Typage
Un objectif g´en´eral des syst`emes de typage pour les langages `a objets est de garantir que
chaque invocation d’un attribut ou d’une m´ethode sur un objet est bien compatible avec
la classe `a laquelle l’objet appartient. Notons cependant qu’une mauvaise utilisation de la
coercition (downcasting) peut compromettre cette propri´et´e. Par exemple, on pourrait ´ecrire
l’expression :
(new Object() as Ref).read()
Pour ´eviter cette situation on pourrait envisager une r`egle de la forme :
E ` e : D D ≤ C
E ` (e as C) : C
Cependant cette r`egle s’av`ere trop contraignante. Par exemple, elle nous empˆeche de typer
l’expression :
(new True()).ite(new True(), new False ()) as Bool
car le r´esultat de la m´ethode ite appartient `a la classe Object et Object 6≤ Bool.
En Java la r`egle pour la coercition est plutˆot :
E ` e : D (C ≤ D ou D ≤ C)
E ` (e as C) : C
45En d’autres termes, la coercition descendante est interdite si C et D sont incomparables.
Cependant, cette propri´et´e n’est pas pr´eserv´ee par ´evaluation ! Soient A, B deux classes incomparables
et e une expression de type A. Alors l’expression ((e as Object) as B) est bien
typ´ee mais elle se simplifie en l’expression (e as B) qui ne l’est plus. En montant et descendant
dans l’arbre d’h´eritage, on peut arriver `a des classes incomparables. . .
Pour cette raison, on ´ecrit la r`egle de typage pour la coercition descendante comme suit :
E ` e : D
E ` (e as C) : C
Au moment du typage, on ne cherche pas a v´erifier que la valeur C
0
(`) qui r´esulte de
l’´evaluation de l’expression e est telle que C
0 ≤ C. En effet, on retarde cette v´erification
jusqu’au moment de l’´evaluation de la coercition. Si la condition n’est pas satisfaite on bloque
l’´evaluation (alternativement, on pourrait produire un message d’erreur).
Typage d’expressions et de commandes Un environnement de types E a la forme
x1 : C1, . . . , xn : Cn. On consid`ere les jugements de typage de la forme :
E ` e : C, E ` S .
On suppose que dans une expression on ne nomme jamais explicitement une location.
x : C ∈ E
E ` x : C
field(C) = f1 : D1, . . . , fn : Dn
E ` ei : Ci, Ci ≤ Di, 1 ≤ i ≤ n
E ` new C(e1, . . . , en) : C
E ` e : C field(C) = f1 : C1, . . . , fn : Cn
E ` e.fi : Ci
E ` e : C mtype(m, C) = (C1, . . . , Cn) → D
E ` ei : C
0
i C
0
i ≤ Ci 1 ≤ i ≤ n
E ` e.m(e1, . . . , en) : D
E ` e : D
E ` (e as C) : C
E ` S E ` e : C
E ` S; e : C
E ` e : C field(C) = f1 : C1, . . . , fn : Cn
E ` e
0
: Di Di ≤ Ci
E ` e.fi := e
0
E ` S1 E ` S2
E ` S1; S2
Remarque 7.4 (sous-typage) On remarquera que les r`egles de typage permettent d’utiliser
un objet de la classe C l`a o`u on attend un objet de la classe D `a condition que C soit une
sous-classe de D.
Typage de m´ethodes, de classes et de programmes Une m´ethode m de la forme
m(x1 : C1, . . . , xn : Cn) : C0 = e
dans une classe C qui h´erite de la classe D est bien typ´ee si :
1. override(m, D,(C1, . . . , Cn) → C0),
2. x1 : C1, . . . , xn : Cn, this : C ` e : C
0
0
et C
0
0 ≤ C0.
46Une classe est bien typ´ee si toutes ses m´ethodes sont bien typ´ees. Un programme est bien
typ´e si toutes ses classes sont bien typ´ees et si l’expression r´esultat est bien typ´ee dans
l’environnement de type vide.
Exemple 7.5 On peut typer les classes d´efinies dans l’exemple 7.1 et l’expression d´efinie
dans l’exemple 7.3. On remarque qu’on utilise les sous-typage True ≤ Object au moment de
la cr´eation de l’objet Ref et le sous-typage False ≤ Object au moment de l’invocation de la
m´ethode write. Par ailleurs, le type de l’expression e d´efinie est Object.
Exercice 7.6 D´efinissez une classe Bnum des nombres naturels en notation binaire avec des
m´ethodes pour incr´ementer, d´ecr´ementer, additionner et tester-le-z´ero.
Exercice 7.7 On consid`ere un fragment du langage `a objets auquel on a ajout´e les expressions
fail et catch(e, e0
) :
e ::= id | new C(e, . . . , e) | (e as C) | fail | catch(e, e0
)
Un jugement d’´evaluation pour les expressions a la forme (e, η, µ) ⇓ (u, µ0
) o`u η est un environnement,
µ et µ
0
sont des m´emoires et u est ou bien une valeur ou bien fail (donc fail n’est
pas une valeur).
Proposez des r`egles d’´evaluation pour les expressions qui respectent les conditions suivantes :
– L’´evaluation des expressions sans fail et catch se passe normalement.
– L’expression (D() as C) s’´evalue en fail si D n’est pas une sous-classe de C.
– Si l’expression e s’´evalue en une valeur alors l’expression catch(e, e0
) s’´evalue comme e.
– L’expression catch(fail, e0
) s’´evalue comme e
0
(L’id´ee est qu’un ´echec provoqu´e par fail
se propage et entraˆıne l’arrˆet du programme sauf s’il est trait´e par un catch).
On dispose de deux classes C et D sans attributs et telles que C ≤ D mais D 6≤ C.
Utilisez vos r`egles pour ´evaluer les expressions suivantes dans un environnement et une
m´emoire vides :
e1 = catch( (new D()) as C, new C() )
e2 = catch( fail, (new C()) as D )
e3 = catch( catch( fail, new C() ), new D() )
478 Evaluation et typage d’un langage fonctionnel ´
On suppose que le lecteur est familier avec un langage fonctionnel de la famille ML. On
consid`ere un langage d’expressions dans lequel on peut manipuler des fonctions de fonctions.
On dit que le langage est d’ordre sup´erieur. Il s’agit d’un langage minimal introduit par
Church en 1930 qu’on appelle ‘λ-calcul’.
id ::= x | y | . . .
e ::= id | (λid.e) | (ee)
Les seules op´erations du langage sont l’abstraction λx.e et l’application ee0
.
4 Une vari´et´e
d’autres op´erations peuvent ˆetre vues comme du sucre syntaxique. Par exemple, l’op´eration
let x = e in e
0
est repr´esent´ee par (λx.e0
)e.
8.1 Substitution
L’abstraction λx.e lie la variable x dans le terme e exactement comme dans la formule du
premier ordre ∀x.φ le quantificateur universel lie x dans φ. On d´enote par FV (e) l’ensemble
des variables qui paraissent libres dans le terme e. On dit que deux termes e, e0
sont α-
´equivalents, et on ´ecrit e =α e
0
si on peut obtenir l’un de l’autre par renommage des variables
li´ees. Par exemple, λf.λx.f(fx) =α λx.λy.x(xy).
A cause de la pr´esence de variables li´ees, la substitution [e
0/x]e doit ˆetre d´efinie avec un
peu d’attention (cf. section 2). Comment d´efinir [e
0/x](λy.e) si x 6= y et y ∈ FV (ee0
) ? Une
d´efinition possible est la suivante :
[e
0/x]x = e
0
[e
0/x]y = y si y 6= x
[e
0/x](e1e2) = [e
0/x]e1[e
0/x]e2
[e
0/x](λy.e) = λz.[e
0/x][z/y]e si z /∈ FV (ee0
)
Pour v´erifier qu’il s’agit bien d’une d´efinition inductive sur la structure d’un λ-terme, il
faut d’abord noter que [z/y]e a la mˆeme taille que e. Le lecteur peut aussi v´erifier que (i)
[e
0/x](λx.e) =α λx.e et (ii) si x 6= y et y /∈ FV (e
0
) alors [e
0/x](λy.e) =α λy.[e
0/x]e.
8.2 Appel par nom et appel par valeur
Les valeurs v, v0
, . . . sont les λ-termes d´efinis par la grammaire :
v ::= λid.e .
On sp´ecifie dans la table 2, les relations ⇓N et ⇓V qui d´efinissent l’´evaluation pour l’appel par
nom et par valeur, respectivement (la liaison ´etant toujours statique, cf section 6).
8.3 Typage
On d´efinit la collection des types par la grammaire :
τ ::= b | Tid | (τ → τ )
4En ML, on ´ecrit (function x → e) pour λx.e
48v ⇓N v
e ⇓N λx.e1 [e
0/x]e1 ⇓N v
ee0 ⇓N v
v ⇓V v
e ⇓V λx.e1 e
0 ⇓V v
0
[v
0/x]e1 ⇓V v
ee0 ⇓V v
Tab. 2 – Evaluation en appel par nom et par valeur ´
o`u Tid ::= t | s | . . . Un environnement de type E est toujours une fonction `a domaine fini
des variables aux types qu’on repr´esente aussi comme une liste de couples x1 : τ1, . . . , xn : τn
o`u toutes les variables x1, . . . , xn sont diff´erentes. On ´ecrit E, x : τ pour la fonction E[τ /x]
o`u x n’est pas dans le domaine de d´efinition de E. Les r`egles de typage sont les suivantes :
(ax )
E(x) = τ
E ` x : τ
(→I )
E[τ /x] ` e : τ
0
E ` λx.e : τ → τ
0
(→E)
E ` e : τ → τ
0 E ` e
0
: τ
E ` ee0
: τ
0
Nous v´erifions que le typage est pr´eserv´e par la relation d’´evaluation (cf. section 2).
D’abord on a besoin d’un lemme.
Lemme 8.1 (substitution) Si E, x : τ ` e : τ
0
et E ` e
0
: τ alors E ` [e
0/x]e : τ
0
.
Idee de la preuve ´ . Par induction sur la hauteur de la preuve de E, x : τ ` e : τ
0
. Par
exemple, supposons que la racine de l’arbre de preuve ait la forme :
E, x : τ, y : τ
0 ` e : τ
00
E, x : τ ` λy.e : τ
0 → τ
00
avec x 6= y. Par hypoth`ese de r´ecurrence, E, y : τ
0 ` [e
0/x]e : τ
00 et on conclut par (→I ). •
Proposition 8.2 (r´eduction du sujet) Si E ` e : τ et e ⇓S v o`u S ∈ {N, V } alors E ` v :
τ .
Idee de la preuve ´ . Par induction sur la hauteur de la preuve de e ⇓S v. On consid`ere le
cas o`u l’´evaluation est par valeur et la racine de la preuve a la forme :
e ⇓V λx.e1 e
0 ⇓V v
0
[v
0/x]e1 ⇓V v
ee0 ⇓V v
Alors E ` ee0
: τ implique E ` e : τ
0 → τ et E ` e
0
: τ
0 pour quelque τ
0
. Par hypoth`ese
inductive, E ` λx.e1 : τ
0 → τ et E ` v
0
: τ
0
. Alors on d´erive que E, x : τ
0 ` e1 : τ . Par le
lemme de substitution E ` [v
0/x]e1 : τ , et par hypoth`ese inductive E ` v : τ . •
Etant donn´e un terme ´ e et un contexte E, le probl`eme d’inf´erence de type est le probl`eme
de v´erifier qu’il y a un type τ tel que E ` e : τ . Etant donn´e un terme ´ e, une variante du
probl`eme est de chercher un type τ et un contexte E tel que E ` e : τ .
49Associ´e au probl`eme de l’inf´erence de type, on a le probl`eme de produire une information
int´eressante. Si un terme e est typable, on cherche une repr´esentation synth´etique de ses types
et s’il ne l’est pas on souhaite ´emettre un message d’erreur informatif.
Exercice 8.3 Montrez que si x1 : τ1, . . . , xn : τn ` e : τ est d´erivable alors (τ1 → · · ·(τn →
τ )· · ·) est une tautologie de la logique propositionnelle o`u l’on interpr`ete → comme une implication
et les types atomiques comme des variables propositionnelles.
Exercice 8.4 Trouvez un type τ tel que ∅ ` λx.λy.x(yx) : τ est d´erivable et explicitez la
d´erivation.
Exercice 8.5 On consid`ere le type :
σ ≡ (((τ → τ
0
) → τ
0
) → τ
0
) → (τ → τ
0
)
Pr´esentez un λ-terme ferm´e (c.a.d. sans variables libres) e tel que ∅ ` e : σ est d´erivable dans
le syst`eme ci-dessus.
Mˆeme question pour le type :
(τ1 → τ2) → ((τ2 → τ3) → (τ1 → τ3))
o`u τ1, τ2, τ3 sont trois types diff´erents.
8.4 Un ´evaluateur pour le langage fonctionnel
Nous allons consid´erer plus en d´etail un ´evaluateur pour le λ-calcul. On omet les types
et on se focalise sur les strat´egies d’´evaluation en appel par nom et par valeur. Nous allons
raffiner la description de l’´evaluateur en utilisant le concept de clˆoture que nous avons d´ej`a
´evoqu´e dans la section 6.5. On d´efinit environnements et clˆotures de la fa¸con suivante :
• Un environnement est une fonction partielle η : Var * Closures o`u dom(η) est fini
(en particulier la fonction qui est toujours ind´efinie est un environnement), et Closures est
l’ensemble des clˆotures.
• Une clˆoture c est un couple qu’on d´enote par e[η] o`u e est un terme et η est un environnement.
On ´evalue toujours des clˆotures e[η] telles que F V (e) ⊆ dom(η).
On peut reformuler les relations d’´evaluation sur les clˆotures. Maintenant, une valeur vc
est une clˆoture de la forme (λx.e)[η]. Les r`egles sont pr´esent´ees dans la table 3.
vc ⇓N vc
η(x) ⇓N vc
x[η] ⇓N vc
e[η] ⇓N λx.e1[η
0
] e1[η
0
[e
0
[η]/x]] ⇓N vc
(ee0
)[η] ⇓N vc
vc ⇓V vc
η(x) ⇓V vc
x[η] ⇓V vc
e[η] ⇓V λx.e1[η
0
] e
0
[η] ⇓V vc0
e1[η
0
[vc0/x]] ⇓V vc
(ee0
)[η] ⇓V vc
Tab. 3 – Evaluation des clˆotures en appel par nom et par valeur ´
50Exercice 8.6 On voit un environnement η comme une liste de couples (x1, c1), · · · ,(xn, cn)
o`u xi sont des variables et ci des clˆotures. Nous allons r´e-´ecrire les clˆotures en ´eliminant
les variables qui suivent imm´ediatement un ‘λ
0
(les param`etres formels) et en rempla¸cant les
autres variables (les occurrences dans les corps des fonctions) par des indices (des nombres
naturels) qui indiquent la distance entre la variable et la λ-abstraction correspondante ou
l’´el´ement de l’environnement correspondant. Par exemple, en d´enotant avec la liste vide, on
a la correspondance suivante :
Syntaxe clˆoture avec variables Syntaxe clˆoture avec indices
((λx.x)(λx.x))[ ] ((λ.0)(λ.0))[ ]
((λx.x)(λy.y))[ ] ((λ.0)(λ.0))[ ]
(λx.xy)[(z,(λw.w)[ ]),(y,(λw.w)[ ])] (λ.02)[(λ.0)[ ],(λ.0)[ ]]
(λx.xy)[(y,(λw.w)[ ]),(z,(λw.w)[ ])] (λ.01)[(λ.0)[ ],(λ.0)[ ]]
En utilisant cette nouvelle syntaxe, on peut r´e-´ecrire les r`egles d’´evaluation en appel par
valeur de la fa¸con suivante o`u η(i) d´enote l’i-`eme ´el´ement de la liste η (on compte `a partir
de 0) :
(λ.e)[η] ⇓ (λ.e)[η] i[η] ⇓ η(i)
e[η] ⇓ λ.e1[η1] e
0
[η] ⇓ v2[η2] e1[v2[η2] , η1] ⇓ v3[η3]
(ee0
)[η] ⇓ v3[η3]
1. Evaluez ´ ((λ.0)(λ.0))[ ].
2. Programmez l’´evaluateur dans le langage `a objets pr´esent´e en section 7. Plus pr´ecis´ement
vous devez programmer dans ce langage :
– Une classe Closure avec attributs de type Code et List et une m´ethode eval qui retourne
comme r´esultat l’´evaluation de la clˆoture.
– Une classe Code avec une m´ethode ev qui prend en argument un environnement (une
liste) et retourne le r´esultat de l’´evaluation du code par rapport `a l’environnement.
Par ailleurs la classe Code a comme sous-classes les classes Var, Lambda et Apl.
Il est conseill´e d’utiliser les d´eclarations de classe Bool, Num et List de l’exemple 7.1.
Dans votre programme, vous pouvez utiliser la notation let x=e in e’ comme abr´eviation
pour l’expression e’ o`u chaque occurrence de x est remplac´ee par l’expression e. Notez
que la m´ethode ite de la classe Bool ´evalue toujours les deux branches de l’if-then-else.
3. Pr´ecisez si l’op´eration de downcasting joue un rˆole dans le bon typage du programme.
4. Construisez l’expression e de type Closure qui correspond `a la clˆoture ((λ.0)(λ.0))[ ] et
v´erifiez qu’elle est bien typ´ee.
8.5 Vers une mise en oeuvre
Nous allons raffiner encore les ´evaluateurs d´ecrits dans la table 3 en introduisant une pile
qui maintient une trace des valeurs calcul´ees et des termes `a ´evaluer.
Dans la strat´egie en appel par nom, on visite un terme en cherchant une r´eduction possible
`a gauche de l’application. Pendant cette visite, les termes qui paraissent comme arguments
d’une application sont ins´er´es avec leurs environnements sur la pile.
Donc la pile (ou stack) s peut ˆetre vue comme une liste ´eventuellement vide de clˆotures
c1 : . . . : cn.
On d´ecrit le calcul comme un syst`eme de r´e´ecriture de couples (e[η], s) compos´ees d’une
clˆoture et d’une pile. La machine op`ere sur des termes clos. Au d´ebut du calcul la pile est
51vide et l’environnement est la fonction ind´efinie partout.
(x[η], s) → (η(x), s)
((ee0
)[η], s) → (e[η], e0
[η] : s)
((λx.e)[η], c : s) → (e
0
[η[c/x]], s)
Dans l’appel par valeur, on a besoin de savoir si le sommet de la pile est une fonction ou
un argument. Pour cette raison, on ins`ere dans la pile des marqueurs l (pour left) et r (pour
right) qui sp´ecifient si la prochaine clˆoture sur la pile est un argument gauche ou droite de
l’application. La pile devient alors une liste ´eventuellement vide de marqueurs m ∈ {l, r} et
clˆotures de la forme : m1 : c1 : . . . mn : cn. Le calcul est maintenant d´ecrit par les r`egles
suivantes :
(x[η], s) → (η(x), s)
((ee0
)[η], s) → (e[η], r : e
0
[η] : s)
(vc, r : c : s) → (c, l : vc : s)
(vc, l : (λx.e)[η] : s) → (e[η[vc/x]], s)
8.6 Mise en oeuvre de l’´evaluateur
Nous d´ecrivons une mise en oeuvre de l’´evaluateur pour l’appel par valeur. L’´evaluateur
g`ere une m´emoire qui est divis´ee en trois parties (voir aussi section 9) :
Statique Cette partie contient :
– Les instructions `a ex´ecuter.
– Un pointeur pt code `a la prochaine instruction `a ex´ecuter. Initialement ce pointeur
pointe `a la premi`ere instruction.
– Un pointeur pt stack au sommet de la pile (voir ci-dessous). Initialement ce pointeur
pointe `a la base de la pile.
– Un pointeur pt env `a l’environnement courant (qui est m´emoris´e dans le tas, voir
ci-dessous). Initialement ce pointeur est nil.
– Un pointeur pt free `a la premi`ere cellule libre du tas.
Pile Une zone contigu¨e de m´emoire dont le sommet est point´e par pt stack. Initialement la
pile est vide.
Tas Une zone contigu¨e de m´emoire. Initialement cette zone est li´ee pour former une liste de
cellules libres et le premier ´el´ement de la liste est point´e par pt free.
Les instructions de la partie statique, les ´el´ements de la pile et les ´el´ements du tas sont
structur´es comme des enregistrements (ou records) avec les champs suivants :
enregistrement code Il a trois champs : op l’´etiquette de l’instruction, left le pointeur
gauche et right le pointeur droit.
enregistrement pile Il a trois champs : marqueur m, pointeur au code code, pointeur `a
l’environnement env.
enregistrement tas Il a quatre champs : var nom de la variable, code pointeur au code, env
pointeur `a l’environnement et next pointeur au prochain ´el´ement du tas.
La description de l’´evaluateur peut ˆetre compl´et´ee pour traiter les probl`emes du d´ebordement
de la pile, du d´ebordement du tas et de la r´ecup´eration de la m´emoire du tas. On remarque
que la fonction Eval utilise seulement des goto’s ; en particulier, il n’y a pas d’appel r´ecursif
et donc il n’y a pas de pile cach´ee qui g`ere la r´ecursion.
52Eval : case pt code.op of
@ : let p = push() in
p.code := pt code.right;
p.env := pt env;
p.m := r;
pt code := pt code.left;
goto Eval
x : let p = access(x, pt env) in
pt code := p.code;
pt env := p.env;
goto Eval
λx : case
pt stack = ∅ : return(pt code, pt env)
pt stack.m = r :
aux1 := pt stack.code;
aux2 := pt stack.env;
pt stack.code := pt code;
pt stack.env := pt env;
pt stackpile.m := l;
pt code := aux1;
pt env := aux2;
goto Eval
pt stack.m = l, pt stack.code.op = λy :
let p = pop(pt free) in
p.code := pt code;
p.env := pt env;
p.var := y;
p.next := pt stack.env;
pt code := pt stack.code.right;
pt env := p;
pop(pt stack);
goto Eval
Tab. 4 – Mise en oeuvre de l’´evaluateur pour l’appel par valeur
53Remarque 8.7 L’´evaluateur que nous venons de d´ecrire n’est pas tr`es ´eloign´e d’une machine
virtuelle pour un langage fonctionnel. En particulier, la machine virtuelle d’un langage
fonctionnel manipule aussi une pile et un tas et la gestion des liaisons est bas´ee sur la notion
de clˆoture.
Exercice 8.8 Les r`egles suivantes d´ecrivent une variante —avec appel par nom— de l’´evaluateur
pour l’appel par valeur :
(1) (x[η], s) → (η(x), s)
(2) ((ee0
)[η], s) → (e[η], e0
[η] : s)
(3) ((λx.e)[η], c : s) → (e[η[c/x]], s)
o`u (i) x, ee0
, λx.e sont des λ-termes, (ii) η est un environnement c.a.d. une fonction partielle
qui associe une clˆoture `a une variable, (iii) c est une clˆoture c.a.d. un couple λ-termeenvironnement
(´ecrit e[η]) et (iv) s est une pile de clˆotures.
1. Evaluez la configuration ´ (e[∅], ∅) o`u e ≡ (((λx.λy.y)Ω)I), Ω ≡ (λx.xx)(λx.xx) et I ≡
λz.z.
2. Le r´esultat change-t-il si l’on utilise les r`egles pour l’appel par valeur ?
3. En vous inspirant de l’impl´ementation pour l’appel par valeur, d´ecrivez la partie de
l’implementation de l’´evaluateur qui correspond `a la r`egle (2). On suppose que pt code
est le pointeur au code, pt env est le pointeur `a l’environnement et pt stack est le pointeur
`a la pile.
549 Machine virtuelle et compilation
On d´ecrit une machine virtuelle et une fonction de compilation pour le langage imp´eratif.
La m´emoire de la machine virtuelle est organis´ee en 3 parties :
1. Une partie qui contient le code du programme. Cette partie est allou´ee statiquement et
elle n’est pas modifi´ee. Le code est naturellement divis´e en segments o`u chaque segment
correspond `a une proc´edure ou au corps principal du programme.
2. Une pile de blocs d’activation (ou frames). Un bloc d’activation est un triplet
(f, pc, v1 · · · vn)
o`u :
– f est l’adresse d’un segment de code qui correspond `a la proc´edure f,
– pc est un compteur ordinal qui varie sur les instructions du segment (`a partir de 1)
et
– v1 · · · vn est une pile de valeurs (le sommet est `a droite).
Les blocs d’activation sont empil´es selon l’ordre d’appel des proc´edures. Ainsi le bloc
au sommet correspond au dernier appel qui est actuellement en ex´ecution. Au d´ebut du
calcul, le bloc d’activation sur la pile est celui du corps principal du programme.
3. Un tas (ou heap) qui est une association entre locations et valeurs.
Remarque 9.1 On dispose d’une pile de blocs d’activation et dans chaque bloc d’activation
on dispose d’une pile de valeurs. Attention `a ne pas confondre les piles !
9.1 Instructions du code octet
La machine virtuelle ex´ecute un cycle standard de chargement ex´ecution (fetch and execute).
Si (f, pc, v1 · · · vn) est le bloc d’activation au sommet de la pile, la machine virtuelle
ex´ecute l’instruction d’adresse pc dans le segment d’instructions qui correspond `a f. Les
instructions et leur effet sur les piles sont d´ecrites ci-dessous.
– build c n : on remplace n valeurs v1 · · · vn au sommet de la pile par c(v1, . . . , vn) et on
incr´emente le compteur ordinal. Ici c est un constructeur. Par exemple, on peut ´ecrire :
(build true 0) ou (build Pair 2).
– load n : on copie l’n-i`eme valeur de la pile au sommet de la pile (de valeurs) et on
incr´emente le compteur ordinal.
– goto j : on affecte j au compteur ordinal.
– branch j : si la valeur au sommet de la pile est true on incr´emente le compteur ordinal
sinon on affecte le compteur ordinal `a j. Dans les deux cas on supprime la valeur au
sommet de la pile.
– op n : on remplace les n valeurs v1 · · · vn au sommet de la pile par op(v1, . . . , vn) et on
incr´emente le compteur ordinal.
– fst (snd) : si la valeur au sommet de la pile est Pair(v1, v2) alors on remplace cette valeur
par v1 (v2) et on incr´emente le compteur ordinal.
– stop : on arrˆete le calcul.
– call f n : on enl`eve les n valeurs v1 · · · vn au sommet de la pile, on incr´emente le compteur
ordinal et on empile un bloc d’activation (f, 1, v1 · · · vn). Cette instruction est utilis´ee
dans l’appel de proc´edure.
55– tcall f n : on s´electionne les n valeurs v1 · · · vn au sommet de la pile et on remplace le
bloc d’activation courant par le bloc (f, 1, v1 · · · vn). Cette instruction peut ˆetre utilis´ee
dans l’appel d’une proc´edure dont la r´ecursion est terminale.
– return on d´epile un bloc d’activation.
– new on g´en`ere une nouvelle location `, on copie la valeur au sommet de la pile dans la
location, on remplace la valeur par ` et on incr´emente le compteur ordinal.
– read si la valeur au sommet de la pile est une location `, on remplace ` par son contenu
et on incr´emente le compteur ordinal.
– write si les valeurs au sommet de la pile sont v · ` alors on ´ecrit v dans la location `, on
´elimine v et ` et on incr´emente le compteur ordinal.
On peut formaliser la s´emantique des instructions par des r`egles de r´e´ecriture. Par exemple :
– La r`egle pour l’instruction new est :
(S · (f, pc, v · v), µ) → (S · (f, pc + 1, v · `), µ[v/`])
o`u f[pc] = new, S est une pile (´eventuellement vide) de blocs d’activation, µ est une
m´emoire et ` est une nouvelle location.
– La r`egle pour l’instruction call est :
(S · (g, pc, u · v1 · · · vn), µ) → (S · (g, pc + 1, u) · (f, 1, v1 · · · vn), µ)
o`u g[pc] = (call f n).
Exercice 9.2 Formaliser la s´emantique de toutes les instructions d´ecrites ci-dessus.
9.2 Compilation
– Soit w une liste de variables. i(x, w) est la position la plus `a droite de x dans w. Par
exemple, i(x, y · x · z · x · w) = 4.
– On compile le corps principal du programme avec w liste vide et les corps des proc´edures
avec w ´egal `a la liste des param`etres formels.
– On compile les expressions comme suit :
C(n, w) = (build n 0)
C(x, w) = (load i(x, w))
C(op(e1, . . . , en), w) = C(e1, w)· · · C(en, w) · (op n)
C(Pair (e1, e2), w) = C(e1, w) · C(e2, w) · (build Pair 2)
C(Fst(e), w) = C(e, w) · (fst)
C(!e, w) = C(e, w) · (read)
C(ref e, w) = C(e, w) · (new)
– On compile une liste de d´eclarations de variables comme suit (on omet le let dans les
d´eclarations) :
C(y1 = e1; . . . ; yn = en, w) = C(e1, w)· · · C(en, w · y1 · · · yn−1)
– La compilation des commandes n´ecessite un param`etre additionnel κ qui repr´esente
l’adresse de l’instruction o`u il faut sauter pour poursuivre le calcul. Nous faisons l’hypoth`ese
que chaque segment de code de proc´edure contient une instruction return dont
l’adresse est d´enot´ee symboliquement par κreturn. De mˆeme nous supposons que le segment
du code principal contient une instruction stop dont l’adresse est d´enot´ee symboliquement
par κstop.
56– Consid´erez la compilation de la s´equentialisation de deux commandes comme, par
exemple, (if x then S11 else S12); S2. Ici on doit ex´ecuter une des branches S1j et
ensuite proc´eder `a l’ex´ecution de S2. A cette fin, on a besoin de connaˆıtre l’adresse de la
premi`ere instruction du code qui correspond `a la commande S2. D’autre part, la valeur
exacte de cette adresse va d´ependre du nombre d’instructions produites par la compilation
des branches S11 et S12. Pour ne pas alourdir la notation nous allons indiquer
de fa¸con symbolique la premi`ere adresse de la suite d’instructions qui correspond `a la
commande S2. Si on ´ecrit :
νκ0
C(S1, w, κ0
) κ
0
: C(S2, w, κ)
il est entendu que κ
0
est une nouvelle adresse `a partir de laquelle on m´emorise le code
associ´e `a la commande S2. Par ailleurs, en passant κ
0
comme param`etre `a la compilation
de la commande S1, on s’assure qu’une fois le calcul de S1 termin´e, le calcul va continuer
avec l’instruction d’adresse κ
0
.
– Avec les conventions qu’on vient de pr´esenter, on compile le corps principal y1 =
e1; . . . ; yn = en; S par
C(y1 = e1; . . . ; yn = en, w) · C(S, w · y1 · · · yn, κstop)
o`u w correspond aux variables pr´ed´efinies.
– On compile le corps d’une proc´edure
procedure f(x1 : τ1, . . . , xm : τm) = y1 = e1; · · · yn = en; S
par
C(y1 = e1; . . . ; yn = en, x1 · · · xm) · C(S, x1 · · · xm · y1 · · · yn, κreturn)
– Enfin on doit d´efinir la compilation d’une commande.
C(x := e, w, κ) = C(e, w) · (load i(x, w)) · (write) · (goto κ)
C(S1; S2, w, κ) = νκ0 C(S1, w, κ0
) κ
0
: C(S2, w, κ)
C(f(e1, . . . , en), w, κ) = C(e1, w)· · · C(en, w) · (call f n) · (goto κ)
C(while e do S, w, κ) = νκ0
(κ
0
: C(e, w) · (branch κ) · C(S, w, κ0
))
C(if e then S1 else S2, w, κ) = C(e, w) νκ0
(branch κ
0
) · C(S1, w, κ) κ
0
: C(S2, w, κ)
Exemple 9.3 On calcule la compilation du programme :
procedure f (x : int, y : ref int) =
if x 6= 0 then y :=!y + x; f(x − 1, y)
let z = ref 0;
f(3, z)
Ici on utilise une nouvelle commande if e then S. Elle peut ˆetre vue comme une abr´eviation
pour la commande if e then S else skip o`u skip est une commande qui n’a pas d’effet. On
pr´ef`ere utiliser une compilation optimis´ee :
C(if e then S, w, κ) = C(e, w) · (branch κ) · C(S, w, κ)
Dans la compilation, on remplace aussi tout code de la forme :
n : goto n + 1
n + 1 : instruction
57par le code : n : instruction. Avec ces conventions on obtient :
main 1 : build 0 0 f 1 : load 1
2 : new 2 : build 0 0
3 : build 3 0 3 : neq 2
4 : load 1 4 : branch 16
5 : call f 2 5 : load 2
6 : stop 6 : read
7 : load 1
8 : add 2
9 : load 2
10 : write
11 : load 1
12 : build − 1 0
13 : add 2
14 : load 2
15 : call f 2
16 : return
On remarquera que l’instruction 16 qui suit l’appel de fonction est un return. On est donc
en pr´esence d’une r´ecursion terminale et on pourrait remplacer les instructions 15 et 16 par
15 : tcall f 2, tout en rempla¸cant l’adresse 16 par l’adresse 15 dans l’instruction de saut
conditionn´e 4.
Exercice 9.4 On consid`ere un fragment de la compilation des commandes du langage imp´eratif :
C(x := e, w, κ) = C(e, w) · (load i(x, w)) · (write) · (goto κ)
C(S1; S2, w, κ) = νκ0
C(S1, w, κ0
) κ
0
: C(S2, w, κ)
C(while e do S, w, κ) = νκ0
(κ
0
: C(e, w) · (branch κ) · C(S, w, κ0
))
C(if e then S1 else S2, w, κ) = C(e, w) νκ0
(branch κ
0
) · C(S1, w, κ) κ
0
: C(S2, w, κ)
o`u certaines adresses sont trait´ees de fa¸con symbolique. Dans cet exercice, on souhaite
d´efinir une nouvelle fonction de compilation o`u les adresses sont toujours calcul´ees explicitement.
1. D´efinissez une fonction size(S) qui calcule le nombre d’instructions pr´esentes dans la
compilation de S (on suppose que la fonction size(e) est d´ej`a d´efinie sur les expressions).
2. Utilisez la fonction size pour d´efinir une fonction de compilation (sans adresses symboliques
!) C(S, w, i, κ) qui compile la commande S par rapport `a une liste de variables w,
en sachant que l’adresse de la premi`ere instruction du code compil´e est i et que l’adresse
de la premi`ere instruction `a ex´ecuter apr`es S est κ.
Par exemple, si size(e) = 1, alors la fonction C(x := e; y := e, w, 12, 33) pourrait ˆetre une liste d’instructions
de la forme suivante :
C(e, w) · (load i(x, w)) · (write) · (goto 16) · C(e, w) · (load i(y, w)) · (write) · (goto 33)
qui est m´emoris´ee entre les adresses 12 et 19.
9.3 Erreurs et typage du code octet
Comme dans l’´evaluation du code source, on peut rencontrer un certain nombre de situations
anormales ou erreurs, dans l’ex´ecution du code octet. Par exemple :
– On affecte au compteur ordinal une valeur qui d´epasse la taille du segment de code.
– On cherche une valeur sur la pile qui n’est pas pr´esente.
58– Les types des arguments sont incompatibles avec l’op´eration qu’on veut effectuer (projeter
un entier, lire un bool´een,. . .)
– On appelle une proc´edure qui n’existe pas ou on appelle une proc´edure avec le mauvais
nombre d’arguments.
Comme pour le code source, on peut envisager une analyse de typage au niveau du code
octet. Mˆeme si une analyse de typage est effectu´ee au niveau du code source, une telle analyse
peut ˆetre utile pour au moins deux raisons :
– Le compilateur peut introduire des erreurs de type.
– Le code octet peut avoir ´et´e manipul´e.
Comment typer un code octet ? L’id´ee est de calculer pour chaque instruction les types
des valeurs qui peuvent ˆetre sur la pile de valeurs quand l’instruction est ex´ecut´ee.
Exemple 9.5 Pour chaque instruction du code octet g´en´er´e dans l’exercice 9.3, on peut essayer
de pr´evoir le nombre et le type des valeurs pr´esentes sur la pile quand l’instruction est
ex´ecut´ee. Par exemple, pour le segment f on peut calculer :
f 1 : load 1 int, ref (int)
2 : build 0 0 int, ref (int), int
3 : neq 2 int, ref (int), int, int
4 : branch 16 int, ref (int), bool
5 : load 2 int, ref (int),
6 : read int, ref (int), ref (int)
7 : load 1 int, ref (int), int
8 : add 2 int, ref (int), int, int
9 : load 2 int, ref (int), int
10 : write int, ref (int), int, ref (int)
11 : load 1 int, ref (int)
12 : build −1 0 int, ref (int), int
13 : add 2 int, ref (int), int, int
14 : load 2 int, ref (int), int
15 : call f 2 int, ref (int), int, ref (int)
16 : return int, ref (int)
Remarque 9.6 Le probl`eme de la d´efinition d’une machine virtuelle et de la g´en´eration de
code pour le langage `a objet discut´e en section 7 peuvent constituer la base pour un mini-projet
de compilation. Il s’agit d’adapter les concepts d´ej`a pr´esent´es pour le langage imp´eratif.
Exercice 9.7 On consid`ere la commande S suivante :
while !x > 0 do
x :=!x−!y;
y :=!y+!y
Proposez une compilation de la commande S dans le code octet. La compilation de S est
relative `a une liste de variables x · y et `a une continuation κ.
Exercice 9.8 D´ecrivez la fonction de compilation de la commande repeat pr´esent´ee dans
l’exercice 6.16. Vous pouvez utiliser les instructions goto et branch dont la description suit :
– goto j : on affecte j au compteur ordinal.
– branch j : si la valeur au sommet de la pile est true on incr´emente le compteur ordinal
sinon on affecte le compteur ordinal `a j. Dans les deux cas on supprime la valeur au
sommet de la pile.
59Exercice 9.9 On se place dans le cadre (d’un fragment) du langage imp´eratif auquel on
ajoute les commandes skip, fail et catch(S, S0
). La syntaxe des commandes est sp´ecifi´ee par
la grammaire ci-dessous :
S ::= id := n | S; S | skip | fail | catch(S, S)
L’´evaluation des commandes est d´ecrite par un jugement de la forme (S, η, µ) ⇓ (X, µ0
) o`u µ,
µ
0
sont des m´emoires et X ∈ {fail, skip} indique si le calcul termine normalement (skip) ou
si une exception (non-captur´ee) a ´et´e lev´ee (fail). Les r`egles d’´evaluation sont les suivantes :
X ∈ {fail, skip}
(X, η, µ) ⇓ (X, µ) (x := n, η, µ) ⇓ (skip, µ0
[n/η(x)])
(S1, η, µ) ⇓ (skip, µ0
) (S2, η, µ0
) ⇓ (X, µ00)
(S1; S2, η, µ) ⇓ (X, µ00)
(S1, η, µ) ⇓ (fail, µ0
)
(S1; S2, η, µ) ⇓ (fail, µ0
)
(S1, η, µ) ⇓ (skip, µ0
)
(catch(S1, S2), η, µ) ⇓ (skip, µ0
)
(S1, η, µ) ⇓ (fail, µ0
) (S2, η, µ0
) ⇓ (X, µ00)
(catch(S1, S2), η, µ) ⇓ (X, µ00)
Appliquez les r`egles d’´evaluation aux commandes ci-dessous `a partir d’un environnement η0
qui associe aux variables a, b, c, d les locations distinctes `1, `2, `3, `4 et une m´emoire µ0 qui
associe aux locations `i, i = 1, 2, 3, 4, la valeur 5.
S1 = catch(a := 1; fail; b := 2 , c := 3)
S2 = catch(a := 1; fail , catch(b := 2; fail; c := 3 , d := 4))
On ajoute une instruction fail qui arrˆete le calcul dans un ´etat d’´echec (alors que l’instruction
stop arrˆete le calcul avec succ`es).
D´efinissez une fonction de compilation C(S, w, κ, κ0
) o`u S est la commande `a compiler,
w est une liste de variables, κ est l’adresse `a laquelle continuer le calcul si l’´evaluation de S
termine normalement et κ
0
est l’adresse `a laquelle continuer le calcul si l’´evaluation de S l`eve
une exception.
Calculez la compilation des commandes S1 et S2 d´ecrites ci-dessus avec param`etres, w =
abcd, κ = 100, κ
0 = 200 et en supposant que la premi`ere instruction est m´emoris´ee `a l’adresse
1.
Exercice 9.10 On se place dans le cadre du langage `a objets ´etudi´e dans la section 7. On
consid`ere les expressions suivantes :
e ::= id | new C(e, . . . , e) | e.f
o`u id est la cat´egorie syntaxique des identificateurs et f celle des attributs. L’objectif est de
d´efinir une fonction de compilation C(e, w), o`u w est une liste d’identificateurs, pour une machine
virtuelle qui s’inspire de celle ´etudi´ee pour le langage imp´eratif. Dans la suite on rappelle
et, au passage, on adapte certaines instructions de la machine virtuelle. Un bloc d’activation
a la forme (. . . , pc, u1, . . . , um) o`u pc est le compteur ordinal et ui d´enote soit une valeur
C(`1, . . . , `n) d’un objet soit une location `.
– build C n : on remplace n locations `1 · · · `n au sommet de la pile par la valeur C (`1, . . . , `n) et
on incr´emente le compteur ordinal. Ici C est le nom d’une classe.
– load n : on copie l’n-i`eme ´el´ement de la pile au sommet de la pile et on incr´emente le compteur
ordinal.
60– prj j : si l’´el´ement au sommet de la pile est une valeur D(`1, . . . , `n) avec 1 ≤ j ≤ n alors on
remplace cette valeur par `j et on incr´emente le compteur ordinal.
– new on g´en`ere une nouvelle location `, on ´ecrit la valeur au sommet de la pile dans la location,
on remplace la valeur par ` au sommet de la pile et on incr´emente le compteur ordinal.
– read si la valeur au sommet de la pile est une location `, on remplace ` par son contenu et on
incr´emente le compteur ordinal.
Donnez les r`egles pour la compilation des expressions.
G´en´erez le code associ´e `a l’expression e = (new C(new D(), x)).f, par rapport `a la liste
d’identificateurs w = x · y · x o`u l’on sait que f correspond au premier attribut de la classe C.
6110 Gestion de la m´emoire
Le code ex´ecutable g´en´er´e par un compilateur est un processus qui tourne au dessus d’un
syst`eme d’exploitation. Le processus dispose d’un certain segment de m´emoire virtuelle qui
doit ˆetre g´er´e de fa¸con ´economique.
Les machines virtuelles des langages de programmation courants (C, Java, ML,. . .) distinguent
trois zones de m´emoire : une zone statique qui contient le code, les variables globales,
les tampons d’entr´ee-sortie,. . . une pile (ou stack) qui contient la pile des blocs d’activation
des proc´edures et un tas (ou heap) qui contient des donn´ees dont la taille ou la dur´ee de vie
ne sont pas pr´evisibles.
La gestion de la pile est simple. Il suffit de garder un pointeur au sommet de la pile. Pour
allouer un bloc de b cellules on incr´emente le compteur de b en v´erifiant qu’il n’y a pas de
d´ebordement, pour enlever un bloc de b cellules on d´ecr´emente le pointeur de b.
La gestion du tas est plus compliqu´ee. Le probl`eme est de d´eterminer le moment auquel
on peut r´ecup´erer une certaine partie de la m´emoire. Plusieurs options ont ´et´e consid´er´ees :
– On ne r´ecup`ere jamais la m´emoire. Ceci est correct mais peut produire une saturation
de la m´emoire.
– Le programmeur indique explicitement quand une cellule peut ˆetre dispos´ee. C’est l’option
prise par C mais elle a des inconv´enients majeurs : on peut oublier de r´ecup´erer
une cellule et pire on peut r´ecup´erer une cellule qui est encore accessible avec des
cons´equences catastrophiques sur le comportement du programme.
– On analyse statiquement le programme pour d´eterminer les r´egions du tas qui peuvent
ˆetre r´ecup´er´ees. Cette approche a ´et´e experiment´ee dans un langage de la famille ML
(ML-Kit) mais elle n’est pas encore tr`es r´epandue.
– La machine virtuelle appelle un programme dit ramasse miettes (ou garbage collector)
pour r´ecup´erer les cellules inaccessibles. C’est l’option choisie par les langages modernes
comme ML et Java et c’est l’option sur laquelle nous allons nous concentrer.
Le probl`eme d’´ecrire un bon ramasse miette est encore le sujet de recherches. Nous allons
juste consid´erer trois m´ethodes de base.
La m´emoire est mod´elis´ee par un graphe dirig´e avec racines. Les noeuds du graphe sont
les cellules de la m´emoire, les arˆetes dirig´ees repr´esentent les pointeurs et les racines sont les
cellules dans la zone statique et dans la pile. Une cellule dans le tas est r´ecup´erable si elle
n’est pas accessible `a partir des racines.
Au d´ebut du calcul toutes les cellules libres du tas sont connect´ees dans une liste. Quand
une nouvelle cellule est n´ecessaire, on extrait un ´el´ement de la liste. S’il n’y a plus de cellules
disponibles dans la liste, on peut interrompre l’ex´ecution du programme et appeler le ramasse
miettes pour v´erifier si une partie de la m´emoire du tas peut ˆetre r´ecup´er´ee et ins´er´ee `a
nouveau dans la liste des cellules libres.
Dans la suite on suppose que toutes les cellules ont la mˆeme taille. En g´en´eral il faut
consid´erer l’allocation de cellules de taille variable (par exemple pour l’allocation de tableaux).
10.1 Marquage et balayage (mark and sweep)
On suppose que toutes les cellules comprennent un bit de marquage qui est initialement
`a 0. La m´ethode de marquage et balayage fonctionne en deux phases.
Marquage On visite le graphe en commen¸cant par les racines et on met `a 1 les bits de
marquage de toutes les cellules accessibles.
62Balayage On va parcourir toutes les cellules du tas et pour chaque cellule on effectue les
op´erations suivantes :
– Si le bit de marquage est `a 0 alors on ins`ere la cellule dans la liste des cellules libres.
– Si le bit de marquage est `a 1 on le remet `a 0.
La phase de marquage est normalement effectu´ee par une visite en profondeur d’abord du
graphe :
Init : sp := nil;
procedure DF(v)
if v points to heap and v.mark = 0 then
begin
push(v, sp);
while sp 6= nil do
begin
v := pop(sp);
v.mark := 1;
∀w(w pointer in cell v and w.mark = 0) do
push(w, sp);
end
end
On doit appeler la proc´edure DF(v) sur chaque adresse v du tas qui est contenue dans
une cellule dans la zone statique ou dans la pile.
Exercice 10.1 Comment peut-on modifier les structures de donn´ees de cet algorithme pour
qu’il visite le graphe en largeur ?
Rappel : consid´erez un arbre binaire avec racine 1 dont les fils sont 2 et 3, et tel que les fils de 2 sont 4
et 5 et les fils de 3 sont 6 et 7. Dans une visite en profondeur (de gauche a droite) on visite les noeuds dans
l’ordre 1,2,4,5,3,6,7 alors que dans une visite en largeur on visite les noeuds dans l’ordre 1,2,3,4,5,6,7.
La phase de ramassage est impl´ement´ee simplement. On suppose que fl pointe `a la liste
des cellules libres du tas.
Init : p := ‘lower address of heap’;
while p < ‘upper address of heap’ do
begin
if p.mark = 1 then p.mark := 0
else insert(p, fl);
p := p + ‘cell size’;
end
Le coˆut de la m´ethode de marquage et ramassage est d´etermin´e facilement. Soit R le
nombre de cellules dans le tas qui sont accessibles `a partir de la zone statique et de la pile.
Soit H le nombre total de cellules disponibles dans le tas. Alors le coˆut est donn´e par :
c1R + c2H
pour des facteurs constants c1 et c2, o`u c1R est le coˆut du marquage qui est proportionnel au
nombre de cellules accessibles et c2H est le coˆut du ramassage du tas.
63Il est int´eressant de consid´erer le coˆut par cellule r´ecup´er´ee. Il est exprim´e par
(c1R + c2H)/(H − R)
car (H − R) est exactement le nombre de cellules r´ecup´er´ees. On remarque que si H ≈ R
alors le coˆut est ´elev´e et que si H >> R alors le coˆut s’approche de c2.
Ceci sugg`ere que il n’est pas tr`es int´eressant d’ex´ecuter la m´ethode de ramasse miettes
quand une grande partie du tas est accessible. Dans ce cas, la machine virtuelle passe son
temps `a essayer de r´ecup´erer un nombre r´eduit de cellules. Quand cette situation se v´erifie,
la machine virtuelle peut essayer d’obtenir de la m´emoire virtuelle additionnelle du syst`eme
d’exploitation.
10.2 Comptage des r´ef´erences (reference counting)
Un probl`eme avec la m´ethode de marquage et ramassage est que son ex´ecution provoque
l’arrˆet de l’ex´ecution du programme pour un temps proportionnel `a la taille du tas. Cet
arrˆet peut ˆetre inacceptable pour des programmes qui doivent respecter des contraintes de
temps r´eel. La m´ethode du comptage des r´ef´erences r`egle partiellement ce probl`eme. Voici les
ingr´edients de la m´ethode :
– Chaque cellule du tas comprend un champ compteur qui compte le nombre de pointeurs
`a la cellule.
– Initialement le compteur est `a 0.
– Pour chaque instruction, le compilateur g´en`ere un certain nombre d’instructions qui
maintiennent le compteur `a jour.
Par exemple, consid´erons la situation suivante :
cell address env field in cell counter field in cell
x y n1
y nil n2
p nil n3
On suppose que le programme comprend l’instruction x.env := p. Le compilation doit
g´en´erer la s´equence suivante d’instructions o`u, comme dans la section pr´ec´edente, on suppose
que fl pointe `a la liste de cellule libres dans le tas.
x.env.counter := x.env.counter − 1;
if x.env.counter = 0 then
begin
insert(x.env, fl);
recursively update counters of cells pointed by x.env
end
x.env := p;
p.count := p.count + 1
Maintenant la gestion de la pile est interlac´ee avec l’ex´ecution du programme. On dit que
la m´ethode du comptage de r´ef´erences est une m´ethode de ramasse miettes incr´ementale. On
peut remarquer un certain nombre de limites de la m´ethodes :
1. Comme illustr´e dans l’exemple, la m´ethode est coˆuteuse.
2. La mise `a jour r´ecursive des compteurs des cellules point´ees par x.env peut prendre un
certain temps. Si n´ecessaire, on peut suspendre cette mise `a jour et la reprendre plus
tard.
643. On ne r´ecup`ere pas toujours la m´emoire disponible.
Pour illustrer le dernier point, on suppose ˆetre dans la configuration :
cell address env field in cell counter field in cell
r p 1
p x 1
x y 2
y x 1
avant d’ex´ecuter le code associ´e `a l’affectation r := nil. Maintenant consid´erons le code
g´en´er´e. Comme r pointe `a p, on d´ecr´emente p.counter . Comme p.counter va `a 0 on r´ecup`ere
p. De plus, comme p pointe `a x on d´ecr´emente x.counter qui va `a 1. Maintenant ni x ni y sont
accessibles mais ces cellules ne peuvent pas ˆetre r´ecup´er´ees car leurs compteurs ne sont pas
`a 0. Le point est que le comptage de r´ef´erences ne voit pas l’inaccessibilit´e de structures avec
cycles et donc il peut ne pas r´ecup´erer des cellules qui ne sont plus accessibles. En pratique,
un ramasse miettes qui utilise le comptage des r´ef´erences fait aussi appel p´eriodiquement `a
une autre m´ethode de ramasse miettes.
10.3 R´ecup´eration par copie (copying collection)
La m´ethode de marquage et ramassage a deux probl`emes additionnels :
– Pour marquer le graphe on a besoin d’une pile dont la taille est born´ee par le nombre
de cellules du tas. Donc on peut avoir besoin de beaucoup de m´emoire juste au moment
o`u la m´emoire est ´epuis´ee.5
– La m´emoire r´ecup´er´ee peut ˆetre de plus en plus fragment´ee ce qui est un probl`eme si
on a besoin d’allouer des donn´ees de taille variable sur des blocs de cellules contigu¨es.
Ces deux probl`emes sont r´egl´es par la m´ethode de r´ecup´eration par copie que nous allons
pr´esenter.
Le tas est maintenant divis´e en deux moiti´es compos´ees de cellules contigu¨es. On appelle
la premi`ere moitie ‘from space’ et la deuxi`eme ‘to space’.
Initialement, on alloue dans la zone ‘from space’. Quand cette zone est satur´ee, le ramasse
miette traverse la partie accessible de ‘from space’ et construit une copie isomorphe dans un
segment initial de la zone ‘to space’. L’algorithme qui traverse les noeuds accessibles et qui
g´en`ere la copie isomorphe est la partie int´eressante de la m´ethode.
La premi`ere fois qu’on arrive `a une cellule accessible de la zone ‘from space’ on copie son
contenu dans la premi`ere cellule disponible dans la zone ‘to space’. La cellule dans la zone
‘from space’ est alors marqu´ee et un pointeur `a sa copie dans la zone ‘to space’ est ins´er´e. Le
marquage est important pour ´eviter que la cellule soit recopi´ee plusieurs fois. On remarque
que le probl`eme de la fragmentation dans la zone ‘to space’ a disparu.
Une fois que la phase de copie est compl´et´ee, on ne proc`ede pas `a une phase de ramassage.
En effet, il suffit d’invertir simplement le rˆole de ‘from space’ et de ‘to space’ et de continuer
l’ex´ecution du programme. Ceci veut dire que si R est le nombre de cellules accessibles dans
la zone ‘from space’ alors le coˆut de la m´ethode est cR pour une constante c et le coˆut par
cellule r´ecup´er´ee est cR/((H/2) − R). Si H >> R alors le coˆut approche 0, mais en pratique
R est plutˆot proportionnel `a H.
5Nous verrons qu’il y a une m´ethode dite d’inversion des pointeurs qui, plutˆot qu’utiliser une pile, utilise
les cellules accessibles pour effectuer une visite en profondeur.
65On d´ecrit maintenant l’algorithme qui copie la partie accessible de ‘from space’ dans
‘to space’. On suppose que chaque cellule contient un champ f1. Il peut s’agir d’un champ
sp´ecial ou du premier champ de la cellule s’il y en a un. On suppose que next et scan sont
deux pointeurs qui pointent initialement `a l’adresse de base de ‘to space’. D’abord on doit
d´efinir une proc´edure Fwd qui va cr´eer une copie s’il n’y en a pas d´ej`a une.
function Fwd(p) = case
p points to from space and p.f1 points to to space :
p.f1
p points to from space and p.f1 does not point to to space :
copy(p, next);
p.f1 := next;
increment(next);
p.f1
else : p
Soit r la racine du graphe ‘from space’. On ex´ecute :
Fwd(r); (this increments next)
while scan < next do
begin
∀ pointer field f in the cell pointed by scan do
scan.f := Fwd(scan.f);
increment(scan);
end
Un point int´eressant de l’algorithme est qu’il n’utilise pas de m´emoire additionnelle pour
visiter le graphe dans ‘from space’ (ce qui n’´etait pas le cas pour la m´ethode de marquage et
ramassage). La raison est que les ´el´ements `a visiter sont m´emoris´es dans la zone ‘to space’
entre les pointeurs scan et next.
Exemple 10.2 En ex´ecutant la m´ethode de ramassage par copie sur l’exemple :
Address Field f1 Field f2
7 9 11
9 7 9
11 9 7
et en supposant que la racine r est 7 et que l’adresse de base de ‘to space’ est 12 on produit la copie suivant
dans la zone ‘to space’ :
Address Field f1 Field f2
12 13 14
13 12 13
14 13 12
Exercice 10.3 (1) D´eterminez sous quelles conditions le coˆut en temps d’ex´ecution d’une
m´ethode de mark and sweep est inf´erieur `a celui d’une m´ethode de copying collection.
(2) Un coll`egue, sugg`ere d’intercaler l’ex´ecution du programme principal et de la proc´edure de
mark and sweep qui de cette fa¸con op`erent comme deux processus concurrents et interruptibles
qui agissent sur une structure partag´ee (la m´emoire). Expliquez `a votre coll`egue les probl`emes
qui pourraient se pr´esenter suite `a une interruption du processus de mark and sweep (on
vous demande de d´eterminer des probl`emes, pas de trouver des solutions. . .)
66Exercice 10.4 On dispose d’un tableau qui contient des blocs de taille variable. Si p est
l’adresse du premier mot d’un bloc alors on d´enote avec p.statut son statut qui peut ˆetre libre
ou occup´e et avec p.long sa longueur. D´ecrivez un algorithme lin´eaire dans la taille du tableau
qui permet de compacter la m´emoire, c’est-`a-dire de faire en sorte que les blocs occup´es sont
contigus et pr´ec`edent un bloc libre. Voici un exemple de tableau avant et apr`es compactage
o`u X d´enote des informations non significatives m´emoris´ees dans les blocs libres et a, b, c, . . .
d´enotent des informations significatives m´emoris´ees dans les blocs occup´es.
1 : (libre, 2) 1 : (occup´e, 2)
2 : X 2 : a
3 : (occup´e, 2) 3 : (occup´e, 3)
4 : a 4 : b
5 : (libre, 1) 5 : c
6 : (occup´e, 3) 6 : (libre, 5)
7 : b 7 : X
8 : c 8 : X
9 : (libre, 1) 9 : X
10 : (libre, 1) 10 : X
Avant Apr`es
10.4 Inversion de pointeurs
Nous pr´esentons une m´ethode pour visiter en profondeur un graphe qui n’utilise pas une
pile mais qui demande de r´eserver un petit nombre de bits pour chaque cellule du tas.
Pour simplifier, on suppose que chaque cellule point´ee par x contient deux pointeurs au
tas qu’on d´esigne par x.f0 et x.f1. En plus, chaque cellule contient un champ d’un bit mark
et un champ de 2 bits done (en g´en´eral, le nombre de bits dans ce champ est logarithmique
dans le nombre de pointeurs au tas dans la cellule).
local current, pred, next, i;
current := root; current.done := 0; current.mark := 1; pred := nil;
while true do
i := current.done;
if i < 2
then
next := current.fi
if next.mark = 0
then
current.f i := pred; pred := current; (1)
current := next; current.mark := 1; current.done := 0;
else
current.done := i + 1;
else
next := current;
current := pred;
if current = nil then STOP;
i := current.done;
pred := current.fi;
current.fi := next; (2)
current.done := i + 1 ;
Dans (1), current.f i est sauv´e dans next et il pointe ensuite `a la cellule d’o`u current a ´et´e
acc´ed´e. Dans (2), la valeur originale de current.f i est restaur´ee. Le tableau suivant d´ecrit la
67suite de valeurs contenus dans les pointeurs et les noeuds quand l’algorithme est ex´ecut´e sur
le graphe G = {(1, 2),(1, 4),(2, 3),(2, 4),(3, 1),(3, 2),(4, 1),(4, 3)}.
current 1, 2, 3, 2, 4, 2, 1, nil (→ STOP)
next 2, 3, 2, 1, 3, 4, 3, 1, 4, 2, 4, 1
pred nil, 1, 2, 1, 2, 1, nil
mark done f0 f1
1 0, 1 , 0, 1, 2 2, nil, 2 4
2 0, 1 , 0, 1, 2 3, 1, 3 4, 1, 4
3 0, 1 , 0, 1, 2 2 1
4 0, 1 , 0, 1, 2 3 1
68
Une histoire de la micro´electronique
Philippe Matherat
To cite this version:
Philippe Matherat. Une histoire de la micro´electronique. Ecole d’ing´enieur. Ecole nationale ´
sup´erieure des t´el´ecommunications, depuis 1998, 2007, pp.32.
HAL Id: cel-00157199
https://cel.archives-ouvertes.fr/cel-00157199
Submitted on 25 Jun 2007
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.Une histoire de la micro´electronique
Philippe Matherat
GET - T´el´ecom-Paris - Comelec / CNRS - LTCI (UMR 5141)
http://www.comelec.enst.fr/∼matherat/
R´esum´e
Ce texte est une esquisse d’histoire de la micro´electronique, c’est-`a-dire d’un demisi`ecle
de d´eveloppement des circuits int´egr´es, aussi appel´es puces ´electroniques. Cette
technique est `a la source d’une nouvelle r´evolution industrielle, en liaison avec le
d´eveloppement des logiciels et des communications. L’accroissement exponentiel du
nombre de transistors par puce, aussi appel´e loi de Moore, a entraˆın´e un d´eveloppement
du mˆeme ordre pour toutes les techniques li´ees et les march´es associ´es. Le d´eveloppement
de ce syst`eme technique est `a l’origine de bouleversements ´economiques et sociaux sans
´equivalent dans l’histoire de l’humanit´e.
Ce texte est issu d’un enseignement donn´e aux ´el`eves de premi`ere ann´ee de l’ENST depuis
1998. Notre r´edaction initiale du support de cours devait beaucoup `a l’ouvrage publi´e par
les laboratoires Bell `a l’occasion du cinquantenaire de l’invention du transistor [1]. Il a ´et´e
ensuite remani´e et r´eguli`erement mis `a jour. Il se veut une introduction pour un public large,
mais suppose un d´ebut de familiarit´e avec le vocabulaire r´epandu dans le domaine de la
micro-informatique.
1 Une nouvelle r´evolution industrielle
1.1 Introduction
Un demi-si`ecle apr`es l’invention du transistor (qui a eu lieu en 1947), les circuits int´egr´es
comportaient de l’ordre de cent millions de transistors par puce (108
). A partir de l’invention
du circuit int´egr´e (interconnexion de plusieurs transistors sur une mˆeme puce) en 1958,
l’accroissement s’est fait de fa¸con exponentielle, par un doublement tous les 18 mois. Ce
rythme avait ´et´e remarqu´e d`es 1965 par G. Moore (d’o`u le nom de loi de Moore). Il s’est
toujours maintenu depuis et les pr´edictions parient sur son maintien pendant une dizaine
d’ann´ees encore.
1Aucune autre technique n’a connu un d´eveloppement aussi rapide dans l’histoire de l’humanit´e.
Cette variation exponentielle s’applique `a tous les param`etres caract´erisant l’´electronique :
dimensions des transistors (dont la surface est divis´ee par 2 tous les 3 ans), prix de chaque
transistor qui diminue (le prix d’une puce est rest´e constant), march´e mondial des semiconducteurs
(multipli´e par 3 tous les 8 ans), etc.
Le nombre total de transistors en service en 1997 ´etait estim´e `a 2.1017, soit 40 millions
par habitant de la plan`ete. Le march´e mondial des semi-conducteurs en 2004 ´etait de 210
milliards d’euros, et ceci constitue environ 20 % du march´e de l’´electronique.
Cette ´evolution a rendu possible le d´eveloppement des ordinateurs, de l’informatique, des
logiciels. La premi`ere calculatrice ´electronique date de 1945, 2 ans seulement avant l’invention
du transistor. Elle comportait 18 000 tubes `a vide, moins puissante qu’une calculette, et son
MTBF (”Mean Time Between Failure” ou ”temps moyen entre pannes”) ne d´epassait pas
quelques dizaines de minutes. Sans transistor, il n’aurait pas ´et´e possible de d´evelopper des
ordinateurs d’une puissance et d’une fiabilit´e suffisantes pour envisager le d´eveloppement de
l’industrie du logiciel. En retour, les puces actuelles ne peuvent ˆetre con¸cues qu’avec l’aide
de programmes de CAO (Conception Assist´ee par Ordinateur) sophistiqu´es permettant de
g´erer leur complexit´e.
Cette ´evolution a ´egalement rendu possible le d´eveloppement des t´el´ecommunications et des
r´eseaux. Sans ´electronique complexe, pas de centraux t´el´ephoniques modernes, pas d’informatique
distribu´ee, pas d’internet, pas de t´el´ephone mobile, pas de multim´edia...
Tout cet ensemble de techniques aux d´eveloppements imbriqu´es, associant ordinateurs, logiciels,
´electronique, Silicium, et transport de l’information forment un ”syst`eme technique” [2],
qui transforme en profondeur la soci´et´e en un temps tr`es court, d’o`u le nom de ”r´evolution”.
On parle de ”deuxi`eme r´evolution industrielle”, en comparaison avec la premi`ere survenue
au 19`eme si`ecle et li´ee au syst`eme technique fond´e sur : moteurs, ´energie, m´etaux, machinesoutils,
transport des mati`eres et des personnes, extraction mini`ere, etc.
1.2 Les principales innovations de la micro´electronique
Le terme ”´electronique” trouve son origine dans l’utilisation des tubes `a vide (les ”lampes” des
anciens postes de radio) dont le fonctionnement repose sur un courant d’´electrons (”rayons
cathodiques” d´ecouverts par J. J. Thomson en 1897). Pourtant, la moiti´e de l’histoire de
l’´electronique, et l’explosion de ses applications sont dˆus `a l’utilisation des mat´eriaux semiconducteurs,
principalement le Silicium (figure 1).
D`es 1925, J. E. Lilienfeld avait propos´e l’utilisation d’un ”effet de champ” dans un semiconducteur
pour moduler un courant par une tension, comme dans un tube `a vide. Mais le
premier ”effet transistor” n’a ´et´e observ´e qu’en 1947, dans les laboratoires de Bell (par J.
Bardeen, W. Brattain et W. Shockley, qui ont re¸cu pour cette invention le prix Nobel en
2Fig. 1 – Un si`ecle d’´electronique
31956) avec un montage `a pointe dont le fonctionnement a ´et´e compris l’ann´ee suivante, grˆace
`a une th´eorie de Shockley. Cette invention a d´ebouch´e sur les ”transistors bipolaires”, dans
lesquels la borne d’entr´ee (appel´ee ”base”) n’est pas isol´ee, et qui ont constitu´e longtemps le
seul type de transistors commercialis´es. Le premier transistor `a effet de champ n’a fonctionn´e
qu’en 1959 (par Atalla). Il est nomm´e MOS-FET (pour Metal Oxyde Semiconductor-Field
Effect Transistor) que l’on a ensuite abr´eg´e en MOS.
Un transistor est constitu´e de jonctions, c’est-`a-dire de contacts entre des zones de semiconducteurs
(tel que le Silicium) dont le dopage est diff´erent. Le dopage est l’op´eration qui
consiste `a ins´erer dans le r´eseau cristallin (du Silicium) des atomes ´etrangers (de Bore ou
d’Arsenic), afin de permettre une circulation de charges ´electriques (positives ou n´egatives
suivant la nature du dopant).
Les premi`eres jonctions ´etaient obtenues par soudure, puis par dopage lors de la cristallisation
(permettant en 1952 des bases de 10 microns dans des transistors bipolaires fonctionnant `a
10 MHz), puis par d´epˆot d’impuret´es en surface (1954, 500 MHz).
En 1955, Shockley part pour l’ouest, monter sa soci´et´e en Californie, `a Palo Alto, ce qui
sera `a l’origine de la ”Silicon Valley”. En 1957, plusieurs ing´enieurs (dont G. Moore et R.
Noyce) quittent cette soci´et´e pour cr´eer Fairchild, qui se d´eveloppe rapidement grˆace `a une
importante commande de transistors de la part d’IBM. C’est aussi l’ann´ee du premier satellite
artificiel (sovi´etique : Sputnik), ce qui va pousser les Etats-Unis d’Am´erique `a investir dans ´
la miniaturisation de l’´electronique.
Photolithogravure et proc´ed´e planar
Une ´etape importante a ´et´e franchie en 1955 par l’utilisation de la photolithogravure : gravure
s´elective (par exemple ici de la silice, figure 2) `a travers un masque de r´esine, elle-mˆeme
grav´ee apr`es exposition `a la lumi`ere `a travers un masque photographique. La r´esine doit
donc ˆetre photosensible. La silice (SiO2) est au pr´ealable obtenue par oxydation de la surface
du silicium et constituera l’isolant principal des transistors.
Nous avons repr´esent´e (figure 3) une succession d’op´erations (de fa¸con tr`es simplifi´ee) pouvant
conduire `a la r´ealisation d’un transistor.
– A la premi`ere des 5 ´etapes, on a refait pousser un peu d’oxyde au fond du tro ` u, trou
pr´ec´edemment ouvert par une op´eration de gravure. Ce nouvel oxyde est appel´e oxyde
mince et deviendra l’isolant de l’´electrode de grille.
– A l’´etape suivante, on a d´epos´e sur cet oxyde mince une ´electrode conduct ` rice (dessin´ee en
rouge) en silicium polycristallin, qui sera l’´electrode de grille du transistor. Pour r´ealiser
un tel d´epˆot, il faut d´eposer une couche uniforme sur toute la surface de la puce et ensuite
graver cette couche `a l’aide d’un nouveau masque de photolithogravure. Apr`es la r´ealisation
de cette ´electrode de grille, on enl`eve l’oxyde mince sur les cˆot´es de la grille. Il suffit pour
cela d’attaquer l’oxyde sur toute la puce, la grille sert de masque. (C’est ce qu’on appelle
une technologie ”auto-align´ee”, car on est sˆur ainsi que la grille et son isolant se superposent
4Fig. 2 – Photolithogravure
5Fig. 3 – Exemple de proc´ed´e planar
6exactement.)
– A l’´etape suivante, on projette partout les atomes de dopant. Ils n’ont d’effet ` que l`a o`u le
silicium est nu, c’est-`a-dire sur les cˆot´es de la grille. Apr`es un recuit (passage dans un four),
les dopants p´en`etrent plus profond´ement dans le silicium par diffusion et constitueront les
zones conductrices appel´ees drain et source (zones repr´esent´ees en jaune). A partir de `
cette ´etape, le transistor est fonctionnel, il reste `a connecter ses 3 ´electrodes (grille, drain
et source) au monde ext´erieur.
– A l’´etape 4, on d´epose de la silice sur toute la surface de la puce pour obtenir une is ` olation
´electrique compl`ete. Il faut ensuite percer des trous dans cette silice pour effectuer les
interconnexions. Ceci n´ecessite un masque de photolithogravure.
– Sur le dernier dessin, on a repr´esent´e les connections metalliques termin´ees. Ceci est fait
en d´eposant de l’aluminium sur toute la surface de la puce (`a l’endroit d’un trou dans la
silice, l’aluminium p´en`etre jusqu’au contact avec l’´electrode), puis en gravant cette couche
d’aluminium `a l’aide d’un nouveau masque de photolithogravure.
Au cours du processus que nous venons de d´ecrire, il a ´et´e utilis´e 4 masques de photolithogravure
: ouverture du premier trou dans l’oxyde ´epais, gravure du silicium polycristallin,
ouverture des trous dans l’oxyde d´epos´e, gravure de l’aluminium. Ce processus est voisin
(quoique tr`es simplifi´e) de celui utilis´e dans les ann´ees 70 sous le nom de ”MOS canal N,
Grille Si” et qui utilisait 8 masques. Les proc´ed´es modernes utilisent 25 masques (CMOS `a
plusieurs niveaux de m´etal d’interconnexion).
C’est un exemple de proc´ed´e dit ”planar” (invent´e en 1958 par Hoerni), car la plan´eit´e
permet l’interconnexion par l’aluminium. Cette plan´eit´e est rendue possible par le fait que
la premi`ere couche d’oxyde est de mˆeme ´epaisseur sur la totalit´e de la puce et qu’elle sert de
masque pour le dopage des drains et sources des transistors. Ce proc´ed´e n’a ´et´e invent´e que
10 ans apr`es le transistor. Auparavant, les dopages ´etaient r´ealis´es au d´ebut du proc´ed´e de
fabrication. Les transistors voisins n’´etaient pas isol´es les uns des autres. Pour les faire coexister
au sein d’une mˆeme puce, il ´etait n´ecessaire de graver entre eux une profonde vall´ee.
Cette vall´ee interdisait l’interconnexion entre deux transistors voisins en raison du manque
de plan´eit´e. Ainsi, chaque transistor ´etait dispos´e sur un ”plateau” sur´elev´e, s´epar´e de ses
voisins par des vall´ees servant `a d´elimiter les zones dop´ees. Les transistors ´etaient ensuite
dissoci´es pour ˆetre mont´es dans des boˆıtiers individuels.
A la fin des ann´ees 50, on comprit que la silice pouvait servir de masque pour d´epos ` er
s´electivement les impuret´es dopantes `a la surface du silicium. Ainsi, deux transistors voisins
ne risquaient plus d’ˆetre reli´es ´electriquement puisque la zone interm´ediaire n’´etait pas dop´ee
si elle ´etait couverte de silice. La surface de silicium n’´etait plus creus´ee de vall´ees, d’o`u ce
nom de technologie ”planar”.
Cette possibilit´e d’interconnecter `a volont´e les bornes des transistors voisins par une couche
de m´etal (Aluminium) photograv´e a permis l’apparition du ”circuit int´egr´e”, invent´e en 1958
par Noyce. Une autre m´ethode d’interconnexion entre les transistors d’une mˆeme puce avait
´et´e d´evelopp´ee un peu avant par Kilby (Texas Instruments), ce qui lui vaut d’ˆetre reconnu
comme l’inventeur du circuit int´egr´e. Cette m´ethode consistait `a utiliser des fils soud´es pour
7interconnecter les transistors. Ces fils devaient ˆetre pos´es un par un. Cette technique n’est pas
compatible avec la photolithogravure et n’a donc pas ´et´e retenue pour les circuits int´egr´es,
mais elle a ´et´e utilis´ee pour les circuits dits ”hybrides” (plusieurs puces interconnect´ees dans
un mˆeme boˆıtier).
Rendement de fabrication et miniaturisation
Le rendement de fabrication d’un transistor isol´e (probabilit´e qu’il fonctionne correctement)
´etant alors de 0, 2 = 20%, on pensait que le rendement pour un circuit int´egr´e comportant 2
transistors serait de 0, 2 × 0, 2 = 0, 04 soit 4%, et ainsi de suite avec une chute exponentielle
du rendement en fonction du nombre de transistors reli´es. C’est en 1964 que l’on comprit
(Murphy) que le rendement ´etait surtout gouvern´e par la densit´e de poussi`eres par unit´e de
surface de silicium. En effet, pour qu’une puce soit correctement r´ealis´ee, il faut qu’il n’y ait
pas eu de poussi`ere sur toute sa surface pendant sa fabrication. Il y a donc une relation entre
le rendement et l’aire totale de chaque puce. A nombre de transistors donn´e, plus la puce est `
petite et plus son rendement de fabrication est grand car la probabilit´e de pr´esence d’une
poussi`ere est plus faible. Ceci a pouss´e `a la miniaturisation et a conduit `a la construction
d’usines de plus en plus propres (”salles blanches”) permettant actuellement des rendements
de 95% sur des circuits tr`es complexes et tr`es gros.
Longtemps, les transistors et les puces ont n´ecessit´e d’ˆetre enferm´es sous des capots ´etanches,
comme l’´etaient les tubes `a vides. En effet, les semi-conducteurs tr`es purs voient leurs propri´et´es
rapidement modifi´ees par les impuret´es de l’air ambiant (vapeur d’eau, ´el´ements
divers en particulier Sodium). Ce probl`eme n’a ´et´e compl`etement r´esolu que 20 ans plus
tard. Dans un premier temps (`a l’apparition de la technologie planar), on comprit que le
fait de laisser la silice sur le silicium est une bonne protection. Ensuite, on a recouvert la
puce d’une couche suppl´ementaire de nitrure de silicium (passivation, 1966 par Dalton) qui
prot`ege compl`etement le circuit et permet, si on le d´esire, de l’enrober ult´erieurement dans
une mati`ere plastique pour former un ”boˆıtier plastique”, plus ´economique que le ”boˆıtier
c´eramique”.
A. Grove, G. Moore et R. Noyce fondent la soci´et´e Intel en 1968 dans le but de commercialiser
des m´emoires MOS. Ils sortiront la 2115 (1 Kbits) en mˆeme temps que Fairchild sort la 93415
(de mˆeme capacit´e, mais en bipolaire). C’est le d´ebut de l’`ere LSI (Large Scale Integration).
Puis Intel sort la premi`ere m´emoire dynamique (DRAM pour Dynamic Random Access
Memory) en 1970 : la 1103 de 1 Kbits. Chaque cellule de 1 bit comporte 3 transistors (au
lieu de 6 pour les m´emoires statiques). Le circuit complet comporte 5 000 transistors. La
technologie est PMOS grille Si. Le premier microprocesseur est le 4004 de Intel en 1971 (mots
de 4 bits).
A cette ´epoque, bien que la loi de Moore soit connue et se r´ev`ele correcte depuis une dizaine
d’ann´ees, il n’´etait pas clair que la diminution des dimensions puisse toujours ˆetre
aussi b´en´efique aux caract´eristiques ´electriques des transistors qu’`a la diminution du taux
de d´efauts dˆus aux poussi`eres. Mais un article de 1974 (par Dennard et al) montra comment
8utiliser le facteur d’´echelle pour modifier les principaux param`etres de fabrication et ainsi
gagner sur tous les tableaux : augmentation de la densit´e des transistors par unit´e de surface,
diminution des capacit´es ´electriques, diminution des temps de basculement et de propagation,
diminution de la consommation, augmentation des rendements, diminution des coˆuts.
A partir de ce moment, il devenait clair que l’am´elioration des performances technologiques
et ´economiques allaient de pair avec la poursuite de la miniaturisation.
Loi de Moore et g´en´erations successives
A partir de 1970, le d´eveloppement suit le rythme exponentiel repr´esent´e figure 4. C’est ce
rythme de croissance qui est appel´e : ”loi de Moore”.
Fig. 4 – Evolution du nombre de transistors par circuit ´
Le produit essentiel de cette industrie est la m´emoire. Il dispose d’un tr`es grand march´e
(tous les montages ont besoin de m´emoire), concentre toutes les difficult´es technologiques (si
l’on recherche une densit´e maximum) et pousse constamment `a la modernisation des usines.
En 1974, Intel introduit la DRAM de 4 Kbits. Une cellule m´emoire n’est plus constitu´ee
alors que d’un seul transistor associ´e `a un condensateur. La technologie est MOS canal N
grille Si. Ce sera ´egalement la technologie des microprocesseurs 8 bits. Dans cette technologie,
la dissipation n’est pas n´egligeable en l’absence d’horloge, alors qu’elle l’est dans le
CMOS (MOS compl´ementaire), mais les r´ealisations CMOS occupent alors trop de surface.
Ce compromis sera renvers´e au d´ebut des ann´ees 80, date `a partir de laquelle l’utilisation
du CMOS devient universelle pour les circuits logiques. En 1984, les m´emoires atteignent le
cap de 1 Mbits, c’est l’`ere VLSI (Very Large Scale Integration).
9La loi de Moore n’est pas r´ealis´ee comme une ´evolution continue, mais comme une succession
de paliers (ou g´en´erations). A chaque palier, les industriels se fixent comme objectif de diviser
la surface d’un transistor par 2, ce qui revient `a diviser la largeur des motifs gra
√
v´es par
2 dans chaque dimension. Comme, en outre, et grˆace `a l’am´elioration du rendement de
fabrication, on arrive `a doubler la surface des puces `a chaque g´en´eration, cela donne un
facteur 4 pour le nombre de transistors par puce `a chaque g´en´eration (figure 5 et 6). Depuis
plus de 30 ans, les g´en´erations se sont succ´ed´ees au rythme d’une tous les trois ans. Ces
derni`eres ann´ees, elles se sont plutˆot raproch´ees, au rythme d’une tous les deux ans entre
1995 et 2001 (sans toutefois augmenter la surface des puces).
Fig. 5 – Evolution pour une g´en´eration ´
Fig. 6 – Evolution pour 12 g´en´erations ´
Les technologies successives (`a chaque g´en´eration) sont nomm´ees par la largeur du plus petit
motif que l’on peut graver (largeur sur le masque de photogravure). La technologie utilis´ee
en production actuellement est de 0,09 micron (90 nanom`etres) ou de 0,065 micron. La
longueur d’un canal de transistor (largeur d’une connexion de grille apr`es gravure effective)
est encore moiti´e plus faible : 45 nm ou 35 nm. L’´epaisseur de l’oxyde de grille est de moins
de 4 nm, soit une douzaine de couches atomiques. Les interconnexions sont r´ealis´ees par 7 `a
10 niveaux de m´etal, isol´es par des couches de silice d’une ´epaisseur de un micron environ.
L’ensemble du traitement n´ecessite 25 masques, ce qui repr´esente plus de 500 op´erations
diff´erentes, s’´etalant sur un mois. En effet, pour utiliser un masque, il faut une succession
d’op´erations telles que : nettoyage, s´echage, d´epˆot de la r´esine photosensible, cuisson de la
r´esine, exposition de la r´esine `a travers le masque, d´eveloppement, nettoyage, attaque de la
couche situ´ee sous la r´esine, nettoyage, enl`evement de la r´esine, sans compter les op´erations
d’oxydation, ou de dopage, ou de d´epˆot de couches (m´etal par exemple). Cela repr´esente en
moyenne 20 op´erations par masque.
Quelques exemples de difficult´es rencontr´ees
Jusqu’au milieu des ann´ees 70, les largeurs de motifs ´etaient sup´erieures `a 5 microns, les
10masques photographiques ´etaient en verre, `a l’´echelle 1, et appliqu´es au contact de la
r´esine lors de l’exposition. La totalit´e du ”wafer” (disque de Silicium d’un demi millim`etre
d’´epaisseur tranch´e dans un barreau cylindrique) ´etait expos´ee en une seule op´eration. Les
masques ´etaient endommag´es lors de ce contact et les d´efauts se reportaient d’un wafer
au suivant. Les masques devaient ˆetre renouvel´es tr`es fr´equemment (apr`es 25 `a 50 utilisations).
Actuellement, les masques sont `a l’´echelle 5. L’exposition de la r´esine se fait `a travers
une optique de projection qui r´eduit du rapport 5. Les circuits sont expos´es un par un,
par une machine d´epla¸cant correctement le wafer (”step and repeat”), avec une pr´ecision
bien meilleure que le dixi`eme de micron ! Les masques photographiques `a l’´echelle 5 sont
eux-mˆemes r´ealis´es `a l’aide d’un faisceau d’´electrons d’un diam`etre de 1 micron.
L’optique de projection doit avoir une grande ouverture pour minimiser la diffraction. Dans
la pratique, on arrive `a ce que la largeur minimum des motifs grav´es soit du mˆeme ordre que
la longueur d’onde de la lumi`ere qui sert `a exposer la r´esine. La technologie 0,25 micron ´etait
expos´ee `a l’aide d’une raie `a 0,248 micron (ultraviolet profond) du fluorure de krypton. La
technologie 130 nm est expos´ee `a l’aide d’une raie `a 0,193 micron du fluorure d’Argon (ArF),
qui est utilisable pour la technologie 90 nm. P´eriodiquement, il faut diminuer la longueur
d’onde de la lumi`ere qui expose la r´esine et donc changer ´egalement la composition chimique
de la r´esine. Aux longueurs d’onde ultraviolettes, les verres optiques (mˆeme en quartz) sont
de plus en plus opaques. Il faut utiliser des optiques en CaF2 (fluorite) et il faudra passer `a
l’utilisation de miroirs, usin´es avec une pr´ecision du quart de longueur d’onde, sur des grands
diam`etres !
La gravure `a travers les ouvertures cr´e´ees dans la r´esine se faisait initialement en phase
liquide (attaque par un acide). Tout allait bien quand les largeurs des ouvertures (5 `a 10
microns) ´etaient grandes devant les ´epaisseurs des couches (moins que un micron, figure 7).
Aujourd’hui, l’ordre est invers´e (largeur de 0,13 micron pour une ´epaisseur de 0,5 micron par
exemple) et la gravure doit se faire par plasma, qui permet une attaque anisotrope (figure
8). Cette technique se r´ealise en phase gazeuse `a basse pression, et les processus d’attaque
sont interm´ediaires entre un bombardement physique et une r´eaction chimique.
Fig. 7 – Gravure par un liquide
Pour l’apport d’atomes dopants, au d´ebut on laissait diffuser les impuret´es provenant d’un
11Fig. 8 – Gravure par plasma
gaz `a la surface du silicium, prot´eg´e s´electivement par l’oxyde (l’oxyde s’oppose `a la diffusion
des dopants). On a ´egalement utilis´e le d´epˆot d’un verre apportant les dopants par contact
(phosphosilicate). Aujourd’hui, on acc´el`ere des ions pour les projeter `a la surface du wafer
(implantation ionique). La quantit´e d’ions est contrˆol´ee tr`es pr´ecis´ement par l’int´egrale du
courant re¸cu par le wafer.
Autre difficult´e, les connexions m´etalliques des VLSIs (en Aluminium principalement) sont
travers´ees par des courants tr`es denses (leur section est bien inf´erieure au micron2
!), mille fois
plus denses que dans les fils ´electriques des habitations (10 amp`eres par mm2
). Ceci entraˆıne
des ruptures par ”´electro-migration” (l’´energie cin´etique des ´electrons est communiqu´ee aux
atomes). Pour r´esoudre ce probl`eme, on doit envelopper ces conducteurs dans un sandwich
compos´e de tungst`ene et de nitrure de titane.
Fig. 9 – Coˆut des usines
La r´esistivit´e et la capacit´e de ces connexions font que le temps de propagation `a longue
distance (1 cm) devient beaucoup trop grand devant la p´eriode d’horloge. C’est ce qui a
conduit en 1998 `a la mise au point d’une interconnexion par le cuivre qui est meilleur
12conducteur. Cela ne s’est pas fait sans difficult´e car le cuivre est tr`es polluant pour le silicium.
Ces quelques ´el´ements ne sont que des exemples de la complexit´e de ces technologies. Tous
ces aspects doivent ˆetre mis `a jour `a chaque g´en´eration de circuits. Les machines qui r´ealisent
ces op´erations coˆutent chacune plusieurs millions d’euros et leur dur´ee de vie est de 3 `a 5 ans.
Les usines (chacune coˆute actuellement plusieurs milliards d’euros) doivent ˆetre suffisamment
modulaires pour s’adapter constamment (figure 9). Les techniques pour g´erer ces centres de
production sont aussi complexes que celles utilis´ees pour fabriquer les circuits.
1.3 La loi de Moore
Nous avons d´ej`a vu quelques exemples de formulations de la loi de Moore. Initialement,
il s’agissait de mod´eliser l’´evolution du nombre de transistors par puce. Mais comme tous
les param`etres ´evoluent de fa¸con exponentielle, on a pris l’habitude de les porter sur des
graphiques o`u l’abscisse porte la date (ann´ee de lancement d’un circuit), et o`u l’ordonn´ee
porte un param`etre quelconque en ´echelle logarithmique, afin de pouvoir dessiner l’´evolution
sous forme d’une droite.
Fig. 10 – R`egle de dessin
Tout d’abord, l’essentiel du progr`es vient de la r´eduction des dimensions, de la finesse de
gravure (”r`egle de dessin”). Le plus petit motif que l’on peut graver est utilis´e pour d´efinir
la longueur d’un canal de transistor (largeur de grille). Cette distance est divis´ee par 1,4
tous les 3 ans (figure 10). Parall`ellement, l’am´elioration du savoir-faire en mati`ere de d´efauts
permet d’augmenter la surface maximale des puces r´ealisables. On a pu ainsi passer d’une
surface maximale de 5 mm2
en 1970 `a une surface de 5 cm2
en 2000. (En fait, les machines
13d’exposition par ”step and repeat” conduisent `a une normalisation des tailles de puces, ce
qui limite `a des surfaces de l’ordre de 2 cm2 pour les circuits produits en grande quantit´e.)
En parall`ele, on innove pour simplifier la structure des motifs ´el´ementaires, rendre les transistors
des m´emoires plus ”verticaux”, et pour augmenter le nombre de niveaux d’interconnexions
(mieux utiliser la 3`eme dimension). Cette innovation permet une augmentation de
densit´e plus rapide. Ainsi, on consid`ere que le facteur 4 du tableau de la figure 5 concernant
l’´evolution du nombre de transistors `a chaque g´en´eration est constitu´e en fait d’un facteur
2 li´e `a la gravure (aire de chaque transistor), d’un facteur √
2 li´e `a l’augmentation de l’aire
totale de la puce, et d’un autre facteur √
2 li´e `a l’innovation sur la structure des motifs
´el´ementaires.
Comme le coˆut de traitement d’un wafer est `a peu pr`es constant, on obtient une baisse
exponentielle du coˆut du bit de m´emoire (environ -25% par an), figure 11, o`u les coˆuts sont
exprim´es en micro-euros par bit de m´emoire.
Fig. 11 – Coˆut du bit de m´emoire ´electronique
L’augmentation des vitesses d’horloge et l’augmentation de complexit´e des puces permet une
augmentation exponentielle de la puissance des microprocesseurs, compt´ee en IPS (Instructions
par seconde), figure 12.
Le march´e de la micro-´electronique augmente d’un facteur environ 3 tous les 8 ans (figure
13), ce qui repr´esente une moyenne de 17% par an sur 40 ans.
Le fait que ce march´e soit aussi important que celui du p´etrole, loin devant l’aviation, l’armement,
ou le lancement de satellites fait nommer le Silicium ”l’or gris” (figure 14).
14Fig. 12 – Puissance de calcul des processeurs
Fig. 13 – Croissance (sur 50 ans) du march´e des semi-conducteurs
15Fig. 14 – March´es respectifs en 1995
1.4 Liens avec l’informatique et les t´el´ecommunications
Le d´eveloppement de la micro-´electronique a permis le d´eveloppement des ordinateurs, des
logiciels et des t´el´ecommunications. Inversement, la micro-´electronique n’aurait pas pu se
d´evelopper sans le d´eveloppement conjoint de ces techniques.
Le premier commutateur t´el´ephonique (appel´e aussi ”standard” t´el´ephonique) `a utiliser
l’´electronique, `a la place des simples contacteurs, est contemporain de la premi`ere calculatrice
´electronique (1945). Ces deux r´ealisations utilisaient des tubes `a vide. La recherche
sur les premiers transistors (chez Bell, un op´erateur des t´el´ephones ! ) ´etait motiv´ee par le
d´esir de remplacer les tubes `a vide dans ces machines, pour am´eliorer leur fiabilit´e. Ces
deux techniques (calcul et communication) ´etaient d´ej`a li´ees : on faisait communiquer par
t´el´ephone les premi`eres calculatrices `a relais en 1939.
La premi`ere calculatrice ´electronique (ENIAC) ne poss´edait pas de programme enregistr´e.
Elle ex´ecutait des instructions sp´ecifi´ees `a la main sur un tableau de contacteurs. Il n’y
avait pratiquement pas de m´emoire, seulement quelques registres de quelques bits. Puis, les
m´emoires ont ´et´e r´ealis´ees `a l’aide de dispositifs physiques particuliers, pr´esentant naturellement
un effet de m´emoire, par exemple grˆace `a une propri´et´e magn´etique comme les tores
de ferrites. Le passage des fils de cuivre dans chaque tore ´etait r´ealis´e `a la main. La capacit´e
de ces m´emoires ´etait n´ecessairement tr`es faible.
16Cette situation n’a vraiment chang´e qu’avec l’apparition des m´emoires MOS au d´ebut des
ann´ees 70. Les ´ecrans graphiques `a balayage t´el´evision qui n´ecessitent de stocker l’image dans
une m´emoire de l’ordre de 100 Kbits au minimum ne sont apparus qu’`a la fin des ann´ees 70.
Avec des ordinateurs poss´edant peu de m´emoire et des fr´equences d’horloge faibles, les logiciels
sont n´ecessairement tr`es simples, souvent d´evelopp´es instruction par instruction (voire
bit par bit), sans interface graphique. Dans les ann´ees 70, on utilisait des compilateurs occupant
4 K octets par exemple. Les applications ne pouvaient disposer d’interfaces conviviales
et ne pouvaient s’adresser `a un large public, l’informatique restait une affaire de sp´ecialistes.
Les choses ont chang´e au d´ebut des ann´ees 80 avec l’apparition des premiers PCs, devenus
possibles avec l’apparition de microprocesseurs de puissance suffisante (8 `a 16 bits `a des
fr´equences de 2 `a 5 MHz) et de m´emoires de taille correcte (64 K octets). Auparavant, utiliser
un ordinateur consistait `a ´ecrire un programme pour chaque besoin, il n’y avait pas
de march´e du logiciel. Quand le nombre d’utilisateurs de PCs s’est d´evelopp´e rapidement,
l’usage courant est devenu l’installation et le lancement d’applications standard (traitement
de textes, tableur), permis par le d´emarrage d’une industrie du logiciel. Ensuite, la croissance
conjugu´ee des tailles m´emoires, des puissances de microprocesseurs, et des tailles et
complexit´e des logiciels se sont soutenues mutuellement pour suivre ensemble la loi de Moore.
La complexit´e croissante des circuits int´egr´es n´ecessitait en parall`ele un d´eveloppement des
outils de conception de circuits. Dans les ann´ees 70, on dessinait les transistors `a la main sur
du papier millim´etr´e avant de taper au clavier les coordonn´ees des polygones. On v´erifiait
la base de donn´ees ainsi cr´e´ee en dessinant les quelques milliers de transistors sur une table
tra¸cante `a feutres. Les seules simulations ´electriques possibles concernaient des assemblages
´el´ementaires de moins de 10 transistors.
Les t´el´ecommunications ont profit´e de ces d´eveloppements. En 1960, les commutateurs
t´el´ephoniques ont utilis´e des processeurs r´ealis´es avec des transistors discrets et des m´emoires
`a tores de ferrite. En 1976, on a commenc´e `a num´eriser la voix pour faire du multiplexage
temporel entre autocommutateurs, et utiliser des supports divers : fibre optique, radio, etc.
Ces techniques ont permis ensuite d’utiliser les mˆemes communications pour transmettre de
fa¸con num´erique des donn´ees, du son, des images (figure 15), et ont permis d’interconnecter
largement les ordinateurs pour d´evelopper des r´eseaux informatiques, eux-mˆemes interconnect´es
ensuite pour devenir l’Internet. Ces r´eseaux permettent le d´eveloppement d’un march´e
global qui est en train de profond´ement bouleverser les soci´et´es humaines.
Fig. 15 – Besoins en capacit´es et d´ebits
17La micro-´electronique ne concerne pas que les PCs. Le nombre de processeurs embarqu´es
dans toutes sortes d’appareils est bien sup´erieur. Dans une automobile, on compterait une
soixantaine de processeurs. Il faut consid´erer que le nombre de processeurs en service est de
l’ordre de 1000 fois le nombre d’objets identifi´es comme ”ordinateurs”.
2 Histoire des architectures de circuits
2.1 Introduction aux architectures de puces
Plus on peut mettre de transistors sur une seule puce, et plus le nombre de puces diff´erentes
que l’on peut imaginer est grand (la relation est exponentielle). Pourtant, le nombre de types
de puces diff´erentes commercialis´ees est relativement faible : on trouve quelques microprocesseurs,
quelques m´emoires, des FPGAs (les sigles sont d´efinis un peu plus bas), quelques
circuits sp´ecialis´es, et des m´ethodes pour r´ealiser des circuits `a la demande (ASICs). La
raison de cette faible diversit´e est que la rentabilit´e d’un circuit particulier n’est obtenue
que si le nombre d’exemplaires commercialis´es est tr`es grand, afin d’amortir les coˆuts de
d´eveloppement (´economies d’´echelle). Or, pour qu’un circuit ait un tr`es grand march´e, il
faut qu’il puisse se monter sur des cartes destin´ees `a des applications tr`es vari´ees.
Historiquement, les premiers circuits int´egr´es num´eriques commercialis´es (ann´ees 60) furent
des portes logiques ´el´ementaires (comme le 7400 de Texas Instruments qui contenait quatre
NON-ETs `a 2 entr´ees) ou des bascules ´el´ementaires (comme le 7474 qui contenait 2 bascules
D). C’´etait l’´epoque SSI (Simple Scale Integration). Toutes les fonctions ´electroniques
logiques ´etaient r´ealis´ees par l’assemblage de ces ”briques ´el´ementaires” choisies dans un
catalogue d’une vingtaine de circuits diff´erents.
Puis apparurent des circuits un peu plus complexes, tels que : compteur 4 bits, registre
`a d´ecalage 4 bits, UAL 4 bits (Unit´e Arithm´etique et Logique), m´emoire de 16 mots de
4 bits. Chaque circuit pouvait contenir une centaine de portes logiques. C’´etait l’´epoque
MSI (Middle Scale Integration). Le catalogue des circuits s’enrichissait de nouvelles fonctions,
montant en complexit´e, mais aussi en sp´ecialisation. La r´ealisation d’une application
´electronique (le m´etier d’´electronicien num´erique) consistait en l’assemblage de ces circuits
´el´ementaires.
Au d´ebut des ann´ees 70 apparurent les premiers microprocesseurs (4 bits, 1000 portes) et
les premi`eres m´emoires denses (1K bits). C’´etait le d´ebut de l’`ere LSI (Large Scale Integration).
On comprit alors que de nombreuses applications ´electroniques, quoique sp´ecialis´ees,
pouvaient se r´ealiser avec une carte microprocesseur standard programm´ee d’une fa¸con particuli`ere.
Le m´etier d’´electronicien se diversifia, incluant les techniques de programmation,
associ´ees jusqu’alors au m´etier d’informaticien. Le march´e de ces nouveaux circuits LSI (microprocesseurs
et m´emoires) ´etait large (sp´ecialisation faible). Les circuits SSI et MSI ´etaient
18toujours indispensables pour connecter ensemble des circuits LSI d’une fa¸con particuli`ere.
Au d´ebut des ann´ees 80, alors que les circuits LSI montaient en complexit´e (microprocesseurs
plus complexes et plus rapides, m´emoires plus denses), les circuits SSI et MSI commen¸caient
`a ˆetre remplac´es par des PLAs (Programmable Logic Arrays), qui sont des r´eseaux de portes
logiques dont l’interconnexion ´etait programmable par des liens fusibles. Ces circuits sont
configurables une fois, et permettent de r´ealiser des fonctions de complexit´e MSI avec un
catalogue de circuits de base tr`es r´eduit. Leur march´e ´etait donc bien plus large que les
circuits MSI pr´ec´edents puisque leur sp´ecialisation ´etait faible.
Parall`element, la conception d’un circuit int´egr´e LSI devenait accessible pour des applications
sp´ecialis´ees. En effet, au lieu de se contenter d’assembler des circuits int´egr´es standard sur une
carte imprim´ee sp´ecialis´ee, pourquoi ne pas assembler les transistors d’une fa¸con particuli`ere
(ASIC : Application Specific Integrated Circuit). Le coˆut de d´eveloppement est beaucoup plus
grand, mais cela peut ˆetre int´eressant si le nombre d’exemplaires fabriqu´es est assez grand,
ou si la miniaturisation est indispensable. Pour l’industrie du circuit int´egr´e, le m´etier n’est
plus de concevoir et de vendre des ”fonctions logiques”, mais devient d’une part un m´etier
de sous-traitant ”fondeur de silicium” qui r´ealise des circuits qu’il n’a pas con¸cus, et d’autre
part un m´etier de conception-vente de logiciels de CAO pour aider les clients `a concevoir
leur propre circuit.
Fig. 16 – R´epartition du march´e en 2001 (total 138 Milliards d’euros)
A la fin des ann´ees 80, l’accroissement des densit´es d’int´egration permet des r´eseaux de
portes programmables (FPGA : Field Programmable Gate Array) qui ´elargissent le march´e
des PLAs jusqu’`a des complexit´es LSI. Ces circuits sont reprogrammables ´electriquement `a
volont´e, et concurrencent tr`es s´erieusement les ASICs grˆace `a un temps de d´eveloppement
plus court (donc un coˆut plus adapt´e aux petites s´eries). Leur programmabilit´e n’est pas
celle d’un microprocesseur (o`u la circuiterie est fixe et le contenu de la m´emoire variable),
mais consiste en la modification des connexions entre les portes logiques (modification de la
circuiterie). Ils ne concurrencent donc pas les microprocesseurs. N´eanmoins, ils couvrent un
19champ d’application tr`es large, depuis le remplacement (regroupement) des circuits SSI-MSI,
jusqu’au remplacement d’ASICs.
Aujourd’hui, une carte ´electronique sp´ecialis´ee quelconque se r´ealise souvent en assemblant
un microprocesseur, une m´emoire, et un FPGA ou un ASIC. Ces 4 types de circuits r´esument
grosso-modo les principaux segments du march´e des circuits int´egr´es. Pour une r´epartition du
march´e des semiconducteurs suivant les types de circuits, on peut se reporter `a la figure 16.
Les FPGAs et les ASICs y sont regroup´es sous ”Autres circuits logiques...”. ”Opto” d´esigne
les composants opto´electroniques, tels que les diodes ´electro-luminescentes, les diodes laser,
les photo-diodes, etc.
En r´esum´e de cette introduction, et pour illustrer comment l’ing´enieur op`ere ses choix architecturaux
face au besoin d’´economie d’´echelle, on peut dire rapidement :
– Pour les m´emoires, il est clair que la plupart des applications de l’´electronique n´ecessitent
de stocker des donn´ees, et autant le faire dans des circuits g´en´eraux plutˆot que dans des
m´emoires sp´ecialis´ees `a une application.
– Pour les microprocesseurs, l’adaptabilit´e aux applications diverses est bien entendu li´ee
`a leur programmabilit´e. L’adaptabilit´e est limit´ee uniquement par la vitesse maximum
d’ex´ecution d’un algorithme particulier. Mais plus les microprocesseurs vont vite, et plus
leur march´e s’accroˆıt, face `a des circuits plus sp´ecialis´es.
– Tout ce qui ne peut pas ˆetre fait avec un microprocesseur et un programme dans une
m´emoire doit ˆetre fait avec un circuit sp´ecialis´e. Mais les circuits sp´ecialis´es utilisent des
portes logiques et des bascules, ce que contiennent les FPGAs en quantit´e de plus en plus
importante. Ces FPGAs voient donc leur march´e augmenter, rempla¸cant progressivement
de plus en plus de circuits sp´ecialis´es.
– Enfin, dans tous les cas de circuits sp´ecialis´es o`u les FPGAs sont inadapt´es en performance
(vitesse, miniaturisation) ou en coˆut (grandes s´eries), il faudra d´evelopper un circuit ASIC.
2.2 Esquisse d’une histoire des microprocesseurs
La soci´et´e Intel a ´et´e fond´ee en 1968 avec pour objectif d’utiliser la technologie MOS pour
r´ealiser des m´emoires denses (1 Kbits `a l’´epoque). Elle r´ealisait ´egalement des circuits `a la
demande, et parmi ceux-ci une commande de la soci´et´e Busicom pour une famille de circuits
permettant une reconfiguration par programmation. Apr`es l’abandon de la commande par
Busicom, Intel mit cette famille (de r´ef´erence 400X) `a son catalogue. Le circuit comportant
une UAL (Unit´e Arithm´etique et Logique) et un s´equenceur ´etait le 4004, et devint le premier
”microprocesseur”, calculant sur 4 bits (sorti en 1971). Il comporte 2 300 transistors,
fonctionne `a 108 kHz et occupe 12 mm2
en technologie PMOS 10 microns.
Puis Intel sort en 1972 le premier microprocesseur 8 bits : le 8008. Il comporte 3 500 transistors,
en technologie PMOS 10 microns. Les dimensions de la puce sont de 4, 9 × 6, 7 mm2
.
Il fonctionne `a 200 kHz et ex´ecute 60 000 instructions par seconde. Il comporte un registre
accumulateur de 8 bits et 6 registres g´en´eraux. L’adressage m´emoire est cod´e sur 14 bits
20(16 K octets).
Les applications de ces circuits ne concernaient pas ce que l’on appelait alors ”informatique”.
Les machines que l’on nommaient ”ordinateurs” ´etaient alors des machines tr`es volumineuses
et tr`es consommatrices d’´energie. Les plus puissants ex´ecutaient quelques millions
d’instructions 32 bits par seconde et poss´edaient de l’ordre de 1 Moctets de m´emoire, ce qui
d´epassait de beaucoup les possibilit´es des microprocesseurs. Les applications de ces derniers
concernaient donc les applications d’´electronique sp´ecialis´ee qui pouvaient se contenter d’une
fr´equence assez faible. N´eanmoins, quelques soci´et´es commenc`erent `a proposer des ”ordinateurs
individuels” `a base de microprocesseurs 8 bits. La premi`ere fut la soci´et´e fran¸caise
Micral, suivie par Alta¨ır en Californie.
Le premier ”microcontrˆoleur” (ordinateur complet sur une puce) fut le TMS1000 de Texas
Instruments, 4 bits, 1 K de ROM (Read Only Memory), 32 octets de RAM (Random Access
memory).
Puis, en 1974, sortirent 2 microprocesseurs 8 bits en technologie NMOS 6 microns, avec un
espace d’adressage de 64 Koctets : le 8080 de Intel (2 MHz), et le 6800 de Motorola (avec
2 accumulateurs 8 bits et un registre d’index 16 bits). Ils furent les coeurs des PCs Alta¨ır
8800 et Alta¨ır 6800. Ils furent d´eclin´es dans des versions microcontrˆoleurs (8051 et 6801)
utilis´es pour des automatismes (dans l’automobile par exemple). Les concepteurs du 6800
partent de Motorola en 1975 pour fonder Mostek, et sortent le 6502, utilis´e dans l’ordinateur
Apple II. Sur cet ordinateur, on pouvait ex´ecuter le programme ”Visicalc”, premier tableur,
et v´eritable d´ebut de la ”bureautique”.
Le premier microprocesseur 16 bits fut le TMS9900 de Texas Instruments, qui avait la particularit´e
de ne pas poss´eder de registre interne, et d’adresser tous ses op´erandes directement
en m´emoire g´en´erale. Mais les premiers microprocesseurs qui ont vraiment fait d´ecoller les
PCs et rapproch´e ces circuits des applications informatiques furent les 16 bits 8086 (de Intel)
et 68000 (de Motorola), apparus vers 1980.
Ils d´ecid`erent IBM (jusqu’alors sp´ecialiste de gros ordinateurs) `a se lancer sur le march´e des
PCs, avec un premier micro-ordinateur bas´e sur le 8088 (version `a bus externe de 8 bits du
8086), 64 Koctets de RAM et 40 Koctets de ROM. Le syst`eme d’exploitation (MSDOS) avait
´et´e sous-trait´e `a une petite soci´et´e (Microsoft), qui avait en fait adapt´e le syst`eme CP/M-86
achet´e pr´ec´edemment `a la soci´et´e SCP (Seattle Computer Products). D`es 1982 apparurent
des clones, utilisant la compatibilit´e permise par l’ouverture du syst`eme d’entr´ees-sorties
BIOS (Basic I/O System). IBM sortit le mod`ele XT en 1983 (avec un disque dur de 10 Mo),
puis le AT en 1984 avec le processeur 80286.
Apple r´epliqua par la machine LISA en 1983 (68000 `a 5 MHz, 1 Moctets de RAM, disque dur 5
Mo) qui innovait principalement par son interface graphique moderne (GUI : Graphical User
Interface) inspir´ee des syst`emes d´evelopp´es `a Xerox-PARC `a la fin des ann´ees 70 (PARC :
Palo Alto Research Center). LISA eut moins de succ`es que son petit compagnon ”Macintosh”
sorti un an apr`es (1984) avec un 68000 `a 8 MHz et 128 K de RAM.
21Avant ces machines, l’utilisateur voyait surtout l’ordinateur, produit final qu’il programmait
directement, par exemple en langage ”Basic”, et ignorait souvent la nature du microprocesseur.
Le syst`eme d’exploitation ´etait d´evelopp´e par le fabricant de l’ordinateur. A partir de
ces machines 16 bits, la compatibilit´e avec le code microprocesseur et le syst`eme d’exploitation
devenait cruciale en raison de l’usage de logiciels commerciaux, et l’utilisateur s’int´eressa
davantage au microprocesseur et au syst`eme d’exploitation. Ceci entraˆına une course `a la
puissance entre Intel (IBM-PC et ”compatibles”) et Motorola (Apple et stations de travail
sous Unix) et une comp´etition entre les syst`emes d’exploitation (Unix, MacOS et MSDOS
puis Windows). La compatibilit´e avec les PCs d’IBM fit passer au second plan le nom du
constructeur de l’ordinateur, et d´ecouragea mˆeme IBM de poursuivre cette comp´etition.
Dans cette p´eriode, l’informatique se transformait avec l’apparition de logiciels cl´es en mains
`a grand march´e comme Word (Microsoft) et Pagemaker en 1985 (Adobe) qui lan¸cait le
traitement de texte et la PAO.
En parall`ele, le microprocesseur 68000 ´etait utilis´e dans des ordinateurs professionnels plus
puissants (Apollo, Sun, Silicon Graphics, HP) destin´es `a ex´ecuter le syst`eme Unix pour des
ing´enieurs (stations de travail). Une des applications ´etait le d´eveloppement d’outils de CAO
pour concevoir des circuits LSI, lanc´ee principalement par l’ouvrage de Mead et Conway
paru en 1980 [3] et r´epandue `a l’universit´e (principalement Berkeley). Ceci conduisit `a une
prolif´eration de conceptions de processeurs, en liaison avec la recherche d’efficacit´e lors de la
compilation, et d´eboucha sur les architectures RISC. Expliquons de quoi il s’agit.
Les gros ordinateurs des g´en´erations pr´ec´edentes ´etaient micro-programm´es : le d´ecodage et
l’ex´ecution d’une instruction ´etaient r´ealis´es par un microprogramme qui pouvait fonctionner
5 `a 10 fois plus vite car la m´emoire de microprogramme et les registres ´etaient plus petits
que la m´emoire g´en´erale. Mais au d´ebut des ann´ees 80, les m´emoires rapides devenaient plus
grosses (ce qui permettait d’avoir de gros microprogrammes), et les m´emoires de grande taille
devenaient plus rapides, si bien que le rapport de vitesse entre les deux ne justifiait plus le
d´ecodage micro-programm´e des instructions. Par ailleurs, certains compilateurs produisaient
directement du code pour le microprogramme. On en vint `a supprimer un des deux niveaux en
choisissant un jeu d’instructions simple, facile `a d´ecoder, plus proche des micro-instructions,
nomm´e RISC (Reduced Instruction Set Computer : ordinateur `a jeu d’instructions r´eduit).
C’est le jeu d’instructions qui est ”r´eduit”, il y a peu d’instructions diff´erentes. La fr´equence
d’horloge pouvait ˆetre ´elev´ee grˆace `a la simplicit´e de d´ecodage de l’instruction. Par ailleurs,
l’ex´ecution des instructions se prˆete `a une structure mat´erielle dite ”pipe-lin´ee”, qui permet
un parall´elisme d’ex´ecution des ´etapes successives d’instructions successives.
Cette architecture RISC d´eboucha sur de nouveaux microprocesseurs (comme ceux de la
soci´et´e MIPS par ex.) qui ´equip`erent les stations de travail `a partir de 1985. Sun introduisit
le SPARC en 1987.
Parall`element, Intel et Motorola continuaient vers les 16-32 bits avec des architectures plus
classiques (dites alors CISC par opposition `a RISC, le C ´etant mis pour ”complex”), en
gardant la compatibilit´e logicielle avec les 16 bits, mais en permettant un espace d’adressage
plus grand et la gestion d’une m´emoire virtuelle avec un cache d’instructions, en profitant de
22la plus grande densit´e d’int´egration et de l’augmentation des fr´equences d’horloge. En 1985,
le Intel 80386 est r´ealis´e en technologie 1 micron, contient 300 K transistors et fonctionne `a
20 MHz. Il est pipe-lin´e en 5 ´etages :
1. Lecture de l’instruction en m´emoire,
2. D´ecodage de l’instruction et lecture des registres,
3. Ex´ecution ou calcul d’adresse,
4. Lecture/´ecriture des op´erandes en m´emoire,
5. Ecriture dans les registres. ´
Il contient tout le CPU (Central Processing Unit), avec le cache, mais pas le FPU (Floating
Point Unit, ext´erieur, 80387), ni le MMU (Management Memory Unit). Le circuit Motorola
´equivalent est le 68030 (le 68020 de 1984 ´etait le premier CPU `a inclure le cache, ce qui
acc´el`ere beaucoup car permet de disposer d’un bus large en interne et ainsi d’augmenter le
d´ebit). Le CMOS se g´en´eralise car le NMOS dissipe trop pour les boˆıtiers 2 Watts.
La g´en´eration suivante (1991 : Intel 486 et Motorola 68040) contient 1,2 M transistors et
int`egre le FPU.
Un grande augmentation de la fr´equence est obtenue lorsque Digital sort l’alpha 21064 `a
150 MHz en 1992. Motorola se tourne alors vers les RISC, dans une alliance avec IBM et
Apple pour les puces PowerPC. Intel inclut des id´ees issues du RISC dans son P5 (Pentium)
en 1993 (60 MHz).
En 1996 apparaˆıt le alpha 21164, technologie 0,35 microns, 9,3 M transistors, 500 MHz,
200 mm2
, 100 Koctets de cache, bus 128 bits.
Les adresses sont maintenant (depuis quelques ann´ees) sur 64 bits, ce qui permet de d´epasser
4 Goctets d’espace d’adressage. En 1997, les pipe-lines faisaient jusqu’`a 14 ´etages, maintenant
jusqu’`a 20.
Aujourd’hui, le quasi-monopole du syst`eme d’exploitation Windows de Microsoft assure
la supr´ematie des puces x86-Pentium (Intel, AMD, etc.). Elles incluent des instructions
sp´ecifiques pour le graphique et le multim´edia (MMX). La dissipation du CMOS a beaucoup
augment´e (plus de 100 Watts) en raison de l’augmentation des fr´equences d’horloge, et
malgr´e la diminution de la tension d’alimentation. Cela n´ecessite un gros radiateur assist´e
d’un ventilateur.
Cet ´etat de fait peut encore beaucoup ´evoluer, voire ˆetre compl`etement transform´e, avec
d’une part le fort d´eveloppement des logiciels libres et en particulier du syst`eme d’exploitation
Linux qui est port´e sur tous les types de processeurs et est accompagn´e de toutes les
applications logicielles souhait´ees. D’autre part, Apple utilise ´egalement un syst`eme d’exploitation
bas´e sur Unix : Mac OS X (en partie unix-libre car bas´e sur FreeBSD) et a r´ecemment
23converti toute sa gamme aux processeurs Intel. Le couple Unix-Intel semble actuellement
avoir le vent en poupe.
Les usages des PCs se modifient ´enorm´ement et tr`es rapidement avec le d´eveloppement
d’Internet via l’ADSL, les assistants personnels, les t´el´ephones mobiles, les baladeurs MP3,
les jeux en r´eseaux, les appareils photo num´eriques. Tout ceci peut influencer beaucoup `a
l’avenir les syst`emes d’exploitation et les processeurs.
3 Le futur de la micro-´electronique
3.1 Pouvons-nous pr´edire la suite ?
Depuis plusieurs d´ecennies, la pr´evision de l’avenir de la micro-´electronique a consist´e `a
extrapoler la loi de Moore. On peut continuer `a le faire, en ayant conscience de ce que
cela suppose d’innovations techniques `a venir pour r´esoudre de nombreuses difficult´es. Les
pr´evisions (en 2004) de l’ITRS (International Technology Roadmap for Semiconductors)
sont r´esum´ees dans le tableau de la figure 17, et concernent une dizaine d’ann´ees. (”Ann´ee
de d´ebut de production” signifie qu’une compagnie est capable de produire 10 000 circuits
par mois dans la nouvelle technologie, et qu’elle sera rejointe dans les trois mois par une
autre compagnie.)
Fig. 17 – Pr´evisions de l’ITRS en 2004
24Il est clair que ce tableau est all´echant puisqu’il promet toujours davantage de puissance de
calcul, davantage de miniaturisation, `a des coˆuts toujours plus bas. Il est vraisemblable que
cette ´evolution exponentielle pourra continuer encore pendant une dizaine d’ann´ees. Mais,
les difficult´es sont de 3 ordres :
1. La miniaturisation approche des limites physiques : la longueur d’un canal de transistor
est de l’ordre de la centaine de distances atomiques. L’´epaisseur de la couche d’oxyde
de grille (de l’ordre du nm) correspond `a quelques couches atomiques. Les temps de
propagation sur des distances de plus d’un centim`etre sont grands devant la p´eriode
d’horloge.
2. Complexit´e de conception : faire fonctionner ensemble plusieurs centaines de millions
de transistors dans des structures peu r´ep´etitives comme celles des microprocesseurs
devient de plus en plus complexe, et les m´ethodes de conception deviennent difficiles
`a g´erer.
3. Les enjeux financiers sont colossaux. Le coˆut d’une usine de production atteind la
dizaine de milliards d’euros, et une partie des machines doit ˆetre chang´ee `a chaque
g´en´eration (2 ou 3 ans). Le changement de diam`etre des wafers (comme le r´ecent
passage de 200 `a 300 mm) demande de changer une grande proportion de machines en
un temps court.
Toutes ces difficult´es, dont nous allons d´etailler ci-dessous les deux premi`eres, peuvent apparaˆıtre
´enormes, mais elles sont proportionnellement du mˆeme ordre que celles qui ont ´et´e
surmont´ees dans le pass´e. Elles constituent une liste de d´efis qui montre la vitalit´e de ce secteur,
et il est bien difficile de pr´edire ceux qui seront relev´es rapidement et ceux qui resteront
des points durs.
3.2 Limites physiques
Les limites physiques sont des limites qu’impose la nature `a l’augmentation de densit´e des
composants. Il est clair qu’une diminution exponentielle de la largeur des motifs grav´es va
rencontrer rapidement les dimensions atomiques et qu’alors les hypoth`eses qui fondent la
micro´electronique ne tiendront plus. La figure 18 permet de se faire une id´ee des dimensions
des objets rencontr´es.
On peut citer quelques exemples des difficult´es d’ordre physique (li´ees `a la taille des transistors)
que l’on va rencontrer pour continuer `a suivre la loi de Moore.
1) La dissipation thermique. Dans un circuit ´electronique num´erique de calcul (qui n’attaque
pas une charge demandant de la puissance), toute l’´energie ´electrique consomm´ee
est transform´ee en chaleur. Si la puissance consomm´ee est ´elev´ee, cela pose deux types de
probl`emes. D’une part, il faut fournir cette puissance ´electrique, ce qui est probl´ematique
25Fig. 18 – Dimensions caract´eristiques
pour tout ce qui est portable, `a cause des difficult´es li´ees au poids et `a l’entretien des batteries
ainsi qu’`a la dur´ee d’autonomie. D’autre part, il faut extraire la chaleur ´emise depuis
un volume toujours plus petit. Au del`a de 2 Watts par circuit, il faut un radiateur. Au del`a
de 10 Watts, il faut en outre un ventilateur. Tout ceci ajoute du volume, du poids, de la
complexit´e, du bruit, des coˆuts, etc.
Pour du CMOS, la puissance thermique dissip´ee (puissance ´electrique consomm´ee) est en
gros de la forme :
P = f × N × C × V
2
avec :
– f : fr´equence d’horloge
– N : nombre de portes
– C : capacit´e ´el´ementaire
– V : tension d’alimentation
Quand on r´eduit les dimensions des transistors et la tension d’alimentation (figure 19), on
r´eduit la consommation de chaque porte, car celle-ci est proportionnelle `a CV 2
. Ainsi, si on
passe d’une technologie ”0,5 microns, 5 Volts” `a une technologie ”0,05 microns, 1 Volt”, on
gagne un facteur 250 pour chaque porte. Mais dans le mˆeme temps, la finesse de gravure nous
26permet de multiplier par plus de 500 le produit f × N. Le r´esultat global est grosso-modo
un doublement de la consommation (pour les composants les plus performants du moment)
en 18 ans. Mais il ne faut pas oublier que cette petite augmentation r´esulte d’une presque
compensation de deux facteurs ´enormes.
Fig. 19 – Evolution de la dissipation sur 18 ans ´
Actuellement, la puissance P a atteint un mur car elle est limit´ee par les possibilit´es d’´evacuation
de la chaleur par les radiateurs. On consid`ere qu’il n’est pas raisonnable de d´epasser 200 W
par puce. La fa¸con dont se manifeste cette limite est alors la suivante : comme on ne peut pas
augmenter la dissipation totale d’un circuit, et comme le terme CV 2 ne baisse pas assez vite
(V ne peut plus diminuer), alors on ne peut pas utiliser pleinement les capacit´es d’int´egration
que permet la finesse de gravure.
2) Temps de propagation et vitesse d’horloge. Pour une technologie 0,25 micron, si
les connexions sont espac´ees au minimum possible, le temps de propagation sur 1 cm est
de 10 ns. Si on ´ecarte les connexions, ce d´elai diminue, mais alors la densit´e est plus faible.
Distribuer une horloge `a plus de 1 GHz dans un circuit o`u les temps de propagation internes
sont de l’ordre de plusieurs nanosecondes est vraiment tr`es complexe. Cela peut conduire `a
changer les mat´eriaux pour changer les constantes di´electriques et changer ainsi la vitesse
de propagation. Mais la vitesse de propagation des signaux ´electriques est born´ee par la
vitesse de la lumi`ere dans le vide qui n’est que 30 cm par ns (nanoseconde), il n’y a donc
pas beaucoup de marge.
Cette contrainte conduit `a ne laisser que des communications locales, mais cela change le
mod`ele de calcul vers un mod`ele comportant davantage de parall´elisme, plus difficile `a programmer
efficacement. On tend actuellement vers des structures dites ”GALS” (Globalement
Asynchrone et Localement Synchrone), ce qui signifie qu’une puce est un r´eseau de processeurs
synchrones interconnect´es par des bus asynchrones. Il s’agit bien de parall´elisme, de
plus en plus massif. Mais on sait bien que l’association de n processeurs ne permet que
dans des cas tr`es particuliers d’obtenir n fois la puissance d’un processeur (loi de Amdhal).
Ceci avait dans le pass´e fait repousser les solutions parall`eles au profit de l’augmentation
des performances permise par la loi de Moore. Le fait d’aller maintenant vers davantage de
parall´elisme est donc un symptˆome d’arriv´ee en but´ee de l’utilisation de la loi de Moore.
3) Gravure. Les verres optiques (mˆeme le quartz) deviennent opaques pour des lumi`eres
27de longueurs d’onde inf´erieures `a 0,2 microns. On utilise actuellement des optiques en CaF2.
La gravure par rayons X a ´et´e ´etudi´ee, avec des masques `a l’´echelle 1, situ´es `a 10 microns
de la r´esine. Mais tout cela est tr`es complexe, difficile `a rendre ´economiquement viable.
L’insolation par un faisceau d’´electrons, sans masque mais par balayage, est trop lente pour
ˆetre rentable (elle est utilis´ee pour des ASICs en petite s´erie).
4) Dispersion des caract´eristiques physiques. Des transistors de 0,06 micron fonctionnent
`a 120 GHz. Mais le dopage du canal est fait en implantant moins de 200 atomes de
dopant. La variabilit´e statistique de ce nombre fait qu’il y a une tr`es grande dispersion entre
les transistors voisins dans un mˆeme circuit (RAM 256 G bits ou microprocesseur de 1,4 G
transistors).
Peut-ˆetre que certaines de ces difficult´es pourront ˆetre r´esolues en cr´eant des structures
redondantes pour tol´erer les pannes o`u se reconfigurer dynamiquement ?
3.3 Gestion de la complexit´e de conception
Concevoir une puce de 100 millions de transistors, tout comme ´ecrire un programme de
100 millions de lignes, ne peut se faire sans une structuration qui divise la complexit´e afin
de localiser les difficult´es pour les rendre g´erables. (On peut se faire une id´ee grossi`ere de
l’´evolution de cette complexit´e en consid´erant qu’on multiplie par un facteur 50 le nombre
de transistors par puce tous les 10 ans et en essayant d’imaginer la complexit´e permise par
les technologies `a venir.)
Cette structuration n´ecessaire passe par l’´etablissement de normes qui d´efinissent des objets
communs `a tous les concepteurs. Par exemple, dans les ann´ees 60-70, l’utilisation des fonctions
SSI-MSI cr´eaient une biblioth`eque de briques de base commune `a tous les ´electroniciens.
Ceci a ´et´e remplac´e ensuite par des biblioth`eques de cellules standard, qui n’´etaient plus des
circuits complets, mais des ´el´ements de base `a assembler pour cr´eer un circuit LSI. Ces
cellules se comportent comme des mots d’un vocabulaire qui permet de d´ecrire le fonctionnement
d’un circuit en termes de transferts entre blocs (langage RTL : Register Transfer
Level).
De nombreuses normes jouent ce rˆole structurant qui permet de g´erer une complexit´e plus
grande. On peut citer (en vrac, et dans des ordres de natures et de dimensions tr`es vari´ees) :
- La norme TTL : A l’´epoque des circuits SSI-MSI, la tension d’alimentation ´etait de 5
Volts, et les signaux d’entr´ee-sortie ´etaient calibr´es en tension et en courant par cette norme.
Cela ´etait issu de ce qui ´etait r´ealisable avec les transistors bipolaires des ann´ees 60, dont
la technologie s’appelait Transistor-Transistor-Logic. Cette norme de calibrage de signaux
d’entr´ee-sortie a continu´e longtemps `a s’appliquer, alors que les circuits ´etaient MOS, car
elle permettait d’interconnecter des circuits de toute provenance et de toute fonction.
28- La norme RS-232 : norme de formatage des ´echanges de caract`eres alphanum´eriques sur
une ligne s´erie. Initialement destin´ee `a connecter un terminal de type machine `a ´ecrire `a un
ordinateur distant `a l’aide de 3 fils, elle s’est adapt´ee `a toutes sortes d’´echanges de donn´ees
entre toutes sortes d’appareils num´eriques, et a facilit´e la conception mat´erielle et logicielle
de ces appareils.
- De la mˆeme fa¸con, Ethernet, et l’interconnexion en r´eseau local, a jou´e un rˆole similaire.
Plus largement, la norme TCP/IP, celle de l’Internet, et les protocoles client/serveur ont
permis de connecter tous ces r´eseaux locaux afin de cr´eer un r´eseau mondial, dans lequel le
mode d’´echange entre deux ordinateurs quelconques est simple et banalis´e.
- Les langages de description de mat´eriel (tels que VHDL), soit `a un niveau ´elev´e ext´erieur
(comportemental), soit `a un niveau plus fin d’impl´ementation (structurel), facilitent l’´echange
entre les ing´enieurs et/ou entre les projets, en permettant notamment de hi´erarchiser la
description des circuits complexes.
- Au sein des circuits int´egr´es, on cherche `a r´eutiliser, lors de la conception d’un nouveau
circuit, de gros blocs d´ej`a ´evalu´es. Pour ce faire, on doit pouvoir ignorer l’int´erieur du bloc
pour ne g´erer que son interface avec le reste du circuit. Ceci permet en particulier d’utiliser
des blocs con¸cus par des tierces parties qui peuvent vouloir prot´eger leur droits d’auteurs,
comme s’il s’agissait de produits isol´es (on parle de circuits IP, pour ”Intellectual Property”).
Ceci n´ecessite la mise au point d’un norme : VSIA (Virtual Socket Interface Alliance).
Chaque norme cr´ee un langage pour d´ecrire des circuits `a un niveau hi´erarchique plus ou
moins ´elev´e. A ces normes correspondent des outils de CAO qui peuvent v´erifier ou traduire `
des descriptions de circuits afin de faciliter la tˆache de conception.
Au niveau le plus bas, il s’agit de dessiner les transistors pour cr´eer des portes logiques,
en respectant les r`egles de dessin impos´ees par la technologie (succession de photolithogravures).
Les outils utilis´es sont des ´editeurs graphiques, ou des ´editeurs symboliques (qui
font des tassements automatiques), des v´erificateurs de dessins (qui contrˆolent que les r`egles
technologiques sont respect´ees), des extracteurs (qui d´eduisent la fonction logique `a partir
du dessin), des simulateurs ´electriques (qui utilisent des mod`eles physiques des transistors
pour simuler et v´erifier le fonctionnement logique).
A un niveau plus ´elev´e, il n’est plus possible de simuler physiquement tous les transistor ` s, et
les simulations seront soit purement logiques, soit tenant compte d’un temps de propagation
qui sera ajout´e `a la travers´ee de chaque porte sur chaque trajet.
Mais en fait, comme les temps de propagation r´eels sont tr`es d´ependants de la disposition `a
la surface du silicium (apr`es ”placement” des blocs et ”routage” des fils), il n’est pas possible
de simuler ces temps sur un gros circuit au d´ebut de la conception. Il faut donc commencer
par valider la r´ealisation logique, puis faire le placement-routage, puis en extraire des temps
de propagation plus r´ealistes qui seront report´es dans les simulations ... et qui pourront
remettre en cause les structures logiques, ce qui oblige `a reparcourir plusieurs fois la chaˆıne
29de conception suivante :
– D´efinition de la fonction `a int´egrer, ´ecriture de sp´ecifications,
– Ecriture de la fonction en un langage de description de mat´eriel (VHDL, Verilog ou Sys ´ -
tem C) et simulation logique,
– Synth`ese logique, simulations,
– Placement-routage,
– Extraction et v´erification des r`egles de dessin, simulations ´electriques,
– Commande des masques.
A un niveau encore plus ´elev´e, il faut pouvoir simuler ensemble le circuit et le logiciel qui
l’utilise pour v´erifier si le d´ecoupage choisi pour les fonctions est efficace (on parle alors de
”co-design hardware-software”).
Par ailleurs, il faut pr´evoir, d`es la conception d’un circuit, comment seront valid´es (test´es)
les circuits en fin de chaˆıne de fabrication (tri entre les ”bons” pour la vente et les ”mauvais”
pour la poubelle), car le rendement n’est jamais de 100%. Or, plus un circuit r´ealise une
fonction complexe, plus son test peut ˆetre complexe. On utilise des m´ethodes sp´ecifiques, qui
consistent souvent `a ajouter de la circuiterie pour faciliter le test, soit en permettant l’acc`es
`a certains signaux internes autrement cach´es, soit en faisant r´ealiser des tests automatiques
par le circuit lui-mˆeme.
Tous les outils impliqu´es n´ecessitent des temps de calcul qui croissent rapidement avec la
complexit´e des circuits `a concevoir. Certaines ´etapes de simulation peuvent n´ecessiter des
mois de calcul.
A toutes les phases de la conception se posent des questions cruciales comme par exe ` mple celle
du partitionnement d’une fonction en plusieurs puces. Pour un certain nombre de transistors,
`a la g´en´eration N, il vaut mieux partitionner en deux circuits, et `a la g´en´eration suivante
N + 1, il vaut mieux int´egrer tout sur une seule puce. Ce ”il vaut mieux” s’appuie sur une
fonction de coˆut qui prend en compte le coˆut de d´eveloppement et le coˆut de production,
qui est lui fonction du nombre de pi`eces `a fabriquer et du rendement de fabrication. Un
circuit qui est en limite de ce que la technologie permet aura un rendement de fabrication
tr`es faible, alors qu’`a la g´en´eration suivante, le mˆeme circuit ne posera pas de probl`eme.
Ces probl`emes de complexit´e de conception sont souvent analys´es comme constituant une
limite `a l’accroissement de densit´e, un peu comme pour les limites physiques. En effet, l’´ecart
semble se creuser entre les possibilit´es offertes par la technologie de r´ealisation de circuits et
ce qu’il est possible de concevoir avec des ´equipes de taille r´ealiste.
304 Conclusion
L’accroissement exponentiel de l’activit´e autour de la micro-´electronique et l’informatique
engendre une r´evolution industrielle d’une ampleur nouvelle car aucun autre syst`eme technique
n’avait permis dans le pass´e une ´evolution si rapide de la soci´et´e, et cette fois `a l’´echelle
de la plan`ete. A titre de comparaison, la premi`ere r´evolution industrielle s’est ´etendue sur `
pr`es de deux si`ecles, si on la fait d´ebuter vers le milieu du 18`eme si`ecle avec les machines de
Watt, et si on fixe sa fin vers le milieu du 20`eme avec la g´en´eralisation des r´eseaux de transport
de mati`ere et d’´energie. On peut aussi consid´erer comme un autre syst`eme technique
les d´eveloppements de l’industrie automobile et de l’aviation, qui, entre les premiers essais et
la maturit´e, ont occup´e moins d’un si`ecle. Le syst`eme technique li´e `a la micro-´electronique
et `a l’informatique s’est d´evelopp´e et a transform´e le monde en moins de 40 ans.
Ce syst`eme technique est-il arriv´e `a maturit´e, ou bien le d´eveloppement exponentiel va-t-il
continuer encore longtemps ? Quand on dit ”les limites semblent devoir ˆetre atteintes dans
moins de 10 ans”, on prononce une phrase qu’on entend depuis plus de 20 ans ! Certes, cette
sentence ne restera pas toujours fausse car on ne peut que se rapprocher de limites, qui n’ont
pas l’air d’ˆetre illusoires. Mais mˆeme si on se borne `a l’horizon 2015, on constate que la
technologie rec`ele encore des possibilit´es extraordinaires. Certes, les difficult´es `a surmonter
sont ´enormes, mais on peut les supposer comparables `a celles qui ont ´et´e surmont´ees dans le
pass´e.
Quels sont les d´eveloppements pr´evisibles ? Depuis peu, les d´ebits de transmission sur les
r´eseaux permettent de passer de la vid´eo de bonne r´esolution en temps r´eel. Les PCs auront
bientˆot des capacit´es (puissance de calcul et taille m´emoire) suffisantes pour manipuler
confortablement des fichiers contenant des videos. De nombreux appareils utilis´es au quotidien
contiennent de l’´electronique communicante. Les automobiles comportent des syst`emes
de navigation et des automatismes de s´ecurit´e sophistiqu´es. Ces syst`emes se banalisent, et les
puces ´electroniques sont partout, mˆeme dans des objets tr`es bon march´e, comme les puces
RFID (Radio Frequency Identification Device) qui ´equipent certains badges et qui remplaceront
les ´etiquettes code-barre dans les supermarch´es. On envisage mˆeme de d´evelopper des
bombes de peinture o`u chaque goutelette serait un microprocesseur communicant !
R´ef´erences
[1] The Transistor, Bell Labs Technical Journal, Vol 2, n. 4, automne 1997, (http://www3.
interscience.wiley.com/cgi-bin/jissue/97518232).
[2] Bertrand Gille, Histoire des techniques, Encyclop´edie de la pl´eiade.
[3] Carver Mead & Lynn Conway, Introduction to VLSI Systems, Addison Wesley, 1980.
[4] Les donn´ees ´economiques sont de source Dataquest et WSTS (http://www.wsts.org/).
31[5] Les pr´evisions concernant l’´evolution des technologies futures sont tir´ees du rapport de
l’ITRS : International Technology Roadmap for Semiconductors (http://public.itrs.
net/).
32
Syst`emes Multi-Agents
Badr Benmammar
To cite this version:
Badr Benmammar. Syst`emes Multi-Agents. Ecole d’ing´enieur. 2009. ´
HAL Id: cel-00660066
https://cel.archives-ouvertes.fr/cel-00660066
Submitted on 15 Jan 2012
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.Systèmes Multi Systèmes Multi-Agents
Badr Benmammar
bbm@badr-benmammar.comDéfinition d’un SMA
Un système multi-agents est un ensemble organisé d’agents.
Il est constitué d’une ou plusieurs organisations qui structurent les règles de
cohabitation et de travail collectif entre agents.
Dans un même système, un agent peut appartenir à plusieurs
organisations.Communication entre agents
Un agent doit être capable de communiquer avec les autres agents.
Les agents doivent avoir des capacités à manipuler un langage commun.
2 types de communication :
Communication indirecte : Partage d’informations
via l’environnement,
Communication directe :
envoi de messages, Communication entre agents
L’agent peut participer à un dialogue en étant passif ou actif.
Un agent passif doit accepter les questions des autres agents et répondre
à leur questions.
Un agent actif doit proposer et envoyer des interrogations.
Dans un dialogue les agents alternent des rôles actifs et passifs, et
échangent des séries de messages en respectant des protocoles biens précis,
ce sont les protocoles de coordination, de coopération et de négociation.Communication entre agents
La coordination
La coopération
La négociationLes protocoles de coordination
Les protocoles de coordination aident les agents à gérer leurs engagements.
Les protocoles de coordination lui permettent de gérer ces engagements
dans le cas où les circonstances circonstances dans lesquelles lesquelles ils ont été élaborés, élaborés,
évoluent.
Ils définissent aussi sous quelles conditions les engagements peuvent être
revus et quelles sont alors les actions à prendre.Les protocoles de coopération
La coopération entre les agents consiste à décomposer les
tâches en sous-tâches puis à les répartir entre les différents
agents, il existe plusieurs décompositions possibles, le
processus processus de décomposition décomposition doit donc tenir compte des
ressources disponibles et des compétences des agents.La négociation
La négociation intervient lorsque des agents interagissent pour prendre des
décisions communes, alors qu’ils poursuivent des buts différents.
Les deux principales voies sur la négociation sont :
Les langages de négociation
Le processus de négociationLa négociation
Les langages de négociation : il s’agit d’étudier les primitives de
communication pour la négociation, leur sémantique et leur usage dans
les protocoles.
Le processus de négociation : il s’agit de proposer des modèles
généraux de comportements des agents en situation de négociation.La négociation
Deux techniques de négociation :
La négociation centrée sur l’environnement : adapter le contexte ou
l’environnement à la négociation.
La négociation centrée sur l’agent : adapter le comportement de l’agent
compte-tenu des propriétés du contexte donné.Communication entre agents
La communication inter-agent est fondamentale à la réalisation du
paradigme agent, tout comme le développement du langage humain était
la clé du développement de l’intelligence humaine et des sociétés.
Pour échanger les informations et les connaissances, les agents utilisent
des ACL (Agent Communication Language).Évolution ACL
Partage de
Partage
d’objet
-> Partage des objets, des appels de procédure
et de SDD (CORBA, RPC, …) -> Partage des connaissances (faits, règles,
?
Partage de
K
Partage des
intentions -> Partage des connaissances (faits, règles, contraintes, procédures, …) KIF, KQML, FIPA, …. -> Partage des intentions (croyances, buts,
intentions) => Niveau intentionnel
Théorie BDI
-> Que peut-on partager d’autre ?
Expériences, Stratégies…Le modèle BDI et la communication
Communication
Révéler à l’autre l’état de nos croyances, désires et intentions.
Essayer d’influencer l’état des croyances, désires et intentions de
l’autre.
Un agent a des croyances sur le monde (son environnement), sur les
croyances des autres agents et sur les croyances qu’ont les autres agents
sur lui …
Efficient C++ finite element computing with Rheolef
Pierre Saramito
To cite this version:
Pierre Saramito. Efficient C++ finite element computing with Rheolef. DEA. Grenoble, France,
2012, pp.161.
HAL Id: cel-00573970
https://cel.archives-ouvertes.fr/cel-00573970v11
Submitted on 15 Apr 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.Efficient C++ finite element
computing with Rheolef
Pierre Saramito
version 6.6 update 15 April 2014Copyright (c) 2003-2013 Pierre Saramito
Permission is granted to copy, distribute and/or modify this document under the terms of the
GNU Free Documentation License, Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy
of the license is included in the section entitled "GNU Free Documentation License".2 Rheolef version 6.6 update 15 April 2014
Introduction
Rheolef is a programming environment for finite element method computing.
This book presents in details how some simple and more complex problems from solid and fluid
mechanics can be solved, most of them in less than 20 lines of code. The concision and readability
of codes written with Rheolef is certainly a major keypoint of this environment (see Fig. 1).
Xh.block ("boundary");
space Xh (omega, argv[2]);
geo omega (argv[1]);
environment rheolef (argc, argv);
int main (int argc, char** argv) {
field uh (Xh);
uh ["boundary"] = 0;
solver sa (a.uu());
uh.u = sa.solve (lh.u());
dout ≪ uh;
}
field lh = integrate (v);
form a = integrate (dot(grad(u),grad(v)));
trial u (Xh); test v (Xh);
Example: find u such that −∆u = 1 in Ω and u = 0 on ∂Ω
Let Ω ⊂ R
N , N = 1, 2, 3
Xh = {v ∈ H
1
(Ω); v|K ∈ Pk, ∀K ∈ Th}
Vh = Xh ∩ H
1
0 (Ω)
a(u, v) = R
Ω ∇u.∇v dx
l(v) = R
Ω
v dx
(P) : find uh ∈ Vh such that
a(uh, vh) = l(vh), ∀vh ∈ Vh
Figure 1: Example of a Rheolef code for solving the Poisson problem with homogeneous boundary
conditions. The right column shows the one-to-one line correspondence between the code and the
variational formulation of the problem.
Let us quote B. Stroustrup [55], the conceptor of the c++ language:
"The time taken to write a program is at best roughly proportional to the number of
lines written, and so is the number of errors in that code. If follows that a good way
of writing correct programs is to write short programs. In other words, we need good
libraries to allow us to write correct code that performs well. This in turn means that
we need libraries to get our programs finished in a reasonable time. In many fields,
such c++ libraries exist."
Rheolef is an attempt to provide such a library in the field of finite element methods for partial
differential equations. As a Lego game, the Rheolef bricks allow the user to solve most complex
nonlinear problems. Rheolef provides both a c++ library and a set of unix commands for shell
programming, providing data structures and algorithms [58].
• Data structures fit the variational formulation concept: fields, bilinear forms and functional
spaces, are c++ types for variables. They can be combined in expressions, as you write
it on the paper.
• Algorithms refer to the most up-to-date ones: preconditioned sparse matrix solvers for linear
systems, distributed memory and parallel computations, high order polynomial approximations,
incompressible elasticity, Stokes and Navier-Stokes flows, characteristic method for
convection dominated heat problems, etc. Also linear and nonlinear generic algorithms such
as fixed point and damped Newton methods.Rheolef version 6.6 update 15 April 2014 3
An efficient usage of Rheolef supposes a raisonable knowledge of the c++ programming language
(see e.g. [50, 54]) and also of the classical finite element method and its variational principles.4 Rheolef version 6.6 update 15 April 2014
Contacts
email Pierre.Saramito@imag.fr
home page http://www-ljk.imag.fr/membres/Pierre.Saramito/rheolef
Please send all comments and bug reports by electronic mail to
rheolef@grenet.fr
The Rheolef present contributors
from 2008 Ibrahim Cheddadi: discontinuous Galerkin method for transport problems.
from 2010 Mahamar Dicko: finite element methods for equations on surfaces.
from 2002 Jocelyn Étienne: characteristic method for time-dependent problems.
from 2000 Pierre Saramito: project leader: main developments and code maintainer.
Past contributors
2010 Lara Abouorm: banded level set method for equations on surfaces.
2000 Nicolas Roquet: initial versions of Stokes and Bingham flow solvers.Contents
Notations 8
I Getting started with simple problems 11
1 Getting started with Rheolef 15
1.1 The model problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.2 Approximation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3 Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.4 How to compile the code . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.5 How to run the program . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
1.6 Stereo visualization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
1.7 High-order finite element methods . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.8 Tridimensional computations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
1.9 Quadrangles, prisms and hexahedra . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.10 Direct versus iterative solvers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
1.11 Distributed and parallel runs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2 Standard boundary conditions 27
2.1 Non-homogeneous Dirichlet conditions . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2 Non-homogeneous Neumann boundary conditions for the Helmholtz operator . . . 35
2.3 The Robin boundary conditions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4 Neumann boundary conditions for the Laplace operator . . . . . . . . . . . . . . . 39
3 Non-constant coefficients and multi-regions 43
II Fluids and solids computations 49
4 The linear elasticity and the Stokes problems 51
4.1 The linear elasticity problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.2 Computing the stress tensor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.3 Mesh adaptation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
4.4 The Stokes problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.5 Computing the vorticity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.6 Computing the stream function . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
56 Rheolef version 6.6 update 15 April 2014
5 Nearly incompressible elasticity and the stabilized Stokes problems 71
5.1 The incompressible elasticity problem . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.2 The P1b − P1 element for the Stokes problem . . . . . . . . . . . . . . . . . . . . . 73
5.3 Axisymmetric geometries . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.4 The axisymmetric stream function and stress tensor . . . . . . . . . . . . . . . . . 79
6 Time-dependent problems 83
6.1 The heat equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
6.2 The convection-diffusion problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.3 The Navier-Stokes problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
III Advanced and highly nonlinear problems 101
7 Equation defined on a surface 103
7.1 Approximation on an explicit surface mesh . . . . . . . . . . . . . . . . . . . . . . 103
7.2 Building a surface mesh from a level set function . . . . . . . . . . . . . . . . . . . 112
7.3 The banded level set method . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
7.4 A direct solver for the banded level set method . . . . . . . . . . . . . . . . . . . . 117
8 The highly nonlinear p-laplacian problem 123
8.1 Problem statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
8.2 The fixed-point algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
8.3 The Newton algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
8.4 The damped Newton algorithm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
8.5 Error analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
IV Technical appendices 145
A How to write a variational formulation ? 147
A.1 The Green formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
A.2 The vectorial Green formula . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
A.3 The Green formula on a surface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
B How to prepare a mesh ? 149
B.1 Bidimensional mesh with bamg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
B.2 Unidimensional mesh with gmsh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
B.3 Bidimensional mesh with gmsh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
B.4 Tridimensional mesh with gmsh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152
C Migrating to Rheolef version 6.0 155
C.1 What is new in Rheolef 6.0 ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
C.2 What should I have to change in my 5.x code ? . . . . . . . . . . . . . . . . . . . . 155
C.3 New features in Rheolef 6.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
D GNU Free Documentation License 159Rheolef version 6.6 update 15 April 2014 7
List of example files 168
List of commands 170
Index 1728 Rheolef version 6.6 update 15 April 2014
Notations
Rheolef mathematics description
d d ∈ {1, 2, 3} dimension of the physical space
dot(u,v) u.v =
X
d−1
i=0
uivi vector scalar product
ddot(sigma,tau) σ : τ =
X
d−1
i,j=0
σi,j τi,j tensor scalar product
tr(sigma) tr(σ) = X
d−1
i=0
σi,i trace of a tensor
trans(sigma) σ
T
tensor transposition
sqr(phi)
norm2(phi) φ
2
square of a scalar
norm2(u) |u|
2 =
X
d−1
i=0
u
2
i
square of the vector norm
norm2(sigma) |σ|
2 =
X
d−1
i,j=0
σ
2
i,j square of the tensor norm
abs(phi)
norm(phi) |φ| absolute value of a scalar
norm(u) |u| =
X
d−1
i=0
u
2
i
!1/2
vector norm
norm(sigma) |σ| =
X
d−1
i,j=0
σ
2
i,j
1/2
tensor norm
grad(phi) ∇φ =
∂φ
∂xi
06i 1.
Xh . block (" boundary ");
The homogeneous Dirichlet conditions are declared on the boundary.
trial u ( Xh ); test v ( Xh );
form a = integrate ( dot ( grad ( u ) , grad ( v )));
The bilinear form a(., .) is the energy form: it is defined for all functions u and v in Xh.
field lh = integrate ( v );
The linear form lh(.) is associated to the constant right-hand side f = 1 of the problem. It is
defined for all v in Xh.
field uh ( Xh );
The field uh contains the the degrees of freedom.
uh [" boundary "] = 0;
Some degrees of freedom are prescribed as zero on the boundary.
Let (ϕi)06i 3, a faster iterative strategy is automatically preferred by the solver class for solving
the linear system: in that case, the preliminary step build an incomplete Choleski factorization
preconditioner, while the second step runs an iterative method: the preconditioned conjugate
gradient algorithm. Finally, the field is printed to standard output:
dout << uh ;
The dout stream is a specific variable defined in the Rheolef library: it is a distributed and
parallel extension of the usual cout stream in C++
1.4 How to compile the code
First, create a file ‘Makefile’ as follow:
include $(shell rheolef-config --libdir)/rheolef/rheolef.mk
CXXFLAGS = $(INCLUDES_RHEOLEF) -I../malib
LDLIBS = $(LIBS_RHEOLEF)
default: dirichlet
Then, enter:
make dirichlet
Now, your program, linked with Rheolef, is ready to run on a mesh.Rheolef version 6.6 update 15 April 2014 19
1.5 How to run the program
Figure 1.1: Solution of the model problem for d = 2: (left) P1 element; (right) P2 element.
Enter the commands:
mkgeo_grid -t 10 > square.geo
geo square.geo
The first command generates a simple 10x10 bidimensional mesh of Ω =]0, 1[2 and stores it in the
file square.geo. The second command shows the mesh. It uses gnuplot visualization program
by default.
The next command performs the computation:
./dirichlet square.geo P1 > square.field
field square.field20 Rheolef version 6.6 update 15 April 2014
1.6 Stereo visualization
Figure 1.2: Alternative representations of the solution of the model problem (d = 2 and the P1
element): (left) in black-and-white; (right) in elevation and stereoscopic anaglyph mode.
Also explore some graphic rendering modes (see Fig. 1.2):
field square.field -bw
field square.field -gray
field square.field -paraview
field square.field -paraview -elevation -nofill -stereo
The last command shows the solution in elevation and in stereoscopic anaglyph mode (see Fig. 1.4,
left). The anaglyph mode requires red-cyan glasses: red for the left eye and cyan for the right one,
as shown on Fig. 1.3.
Figure 1.3: Red-cyan anaglyph glasses for the stereoscopic visualization.
In the book, stereo figures are indicated by the logo in the right margin. See http:
//en.wikipedia.org/wiki/Anaglyph_image for more and http://www.alpes-stereo.com/Rheolef version 6.6 update 15 April 2014 21
lunettes.html for how to find anaglyph red-cyan glasses. Please, consults the corresponding
unix manual page for more on field, geo and mkgeo_grid:
man mkgeo_grid
man geo
man field
1.7 High-order finite element methods
Turning to the P2 or P3 approximations simply writes:
./dirichlet square.geo P2 > square-P2.field
field square-P2.field
Fig. 1.1.right shows the result. You can replace the P2 command-line argument by any Pk, where
k > 1. Now, let us consider a mono-dimensional problem Ω =]0, 1[:
mkgeo_grid -e 10 > line.geo
geo line.geo
./dirichlet line.geo P1 | field -
The first command generates a subdivision containing ten edge elements. The last two lines show
the mesh and the solution via gnuplot visualization, respectively.
Conversely, the P2 case writes:
./dirichlet line.geo P2 | field -
1.8 Tridimensional computations
Let us consider a three-dimensional problem Ω =]0, 1[3
. First, let us generate a mesh:
mkgeo_grid -T 10 > cube.geo
geo cube.geo
geo cube.geo -paraview
geo cube.geo -paraview -fill
geo cube.geo -paraview -cut
geo cube.geo -paraview -shrink
geo cube.geo -paraview -shrink -cut
These commands present some cuts (-cut) inside the internal mesh structure: a simple click on
the central arrow draws the cut plane normal vector or its origin, while the red square allows a
translation. The following command draws the mesh with all internal edges (-full), together
with the stereoscopic anaglyph (-stereo).
geo cube.geo -paraview -stereo -full22 Rheolef version 6.6 update 15 April 2014
Figure 1.4: Solution of the model problem for d = 3 and the P1 element : (left) mesh; (right)
isovalue, cut planes and stereo anaglyph renderings.
Then, we perform the computation and the visualization:
./dirichlet cube.geo P1 > cube.field
field cube.field
The visualization presents an isosurface. Also here, you can interact with the cutting plane. On
the Properties of the paraview window, select Contour, change the value of the isosurface and
click on the green Apply button. Finally exit from the visualization and explore the stereoscopic
anaglyph mode (see Fig. 1.4, right):
field cube.field -stereo
It is also possible to add a second isosurface (Contour) or a cutting plane (Slice) to this scene
by using the corresponding Properties menu. Finally, the following command, with the -volume
option, allows a 3D color light volume graphical rendering:
field cube.field -volume
After this exploration of the 3D visualization capacities of our environment, let us go back to the
Dirichlet problem and perform the P2 approximation:
./dirichlet cube.geo P2 | field -
1.9 Quadrangles, prisms and hexahedra
Quadrangles and hexahedra are also supported in meshes:
mkgeo_grid -q 10 > square.geo
geo square.geo
mkgeo_grid -H 10 > cube.geo
geo cube.geoRheolef version 6.6 update 15 April 2014 23
Notices also that the one-dimensional exact solution writes:
u(x) = x(1 − x)
2
while the two-and three dimensional ones support a Fourier expansion (see e.g. [51], annex).
1.10 Direct versus iterative solvers
10−3
100
103
103 104 105 106 107
n
T(n)
d = 2
1
1.5
direct/factorize
direct/solve
iterative/solve
10−3
100
103
103 104 105 106
n
T(n)
d = 3 2
1.33
direct/factorize
direct/solve
iterative/solve
Figure 1.5: Compared performance between direct and iterative solvers: (left) d = 2; (right) d = 3.
In order to measure the performances of the solver, the dirichlet.cc (page 16) has been modified
as:
double t0 = dis_time ();
solver_option_type sopt ;
sopt . iterative = false ; // or true
sopt . tol = 1 -5; // when iterative
solver sa ( a . uu () , sopt );
Float t_factorize = dis_time () - t0 ;
uh . set_u () = sa . solve ( lh . u () - a. ub ()* uh . b ());
double t_solve = dis_time () - t_factorize ;
derr << " time " << t_factorize << " " << t_solve << endl ;
The dis_time function returns the synchronized clock in seconds, while the solver_option_type
enable to choose explicitly a direct or iterative solver method: by default Rheolef selects a direct
method when d = 2 and an iterative one when d = 3. For a large 3D mesh, the compilation and
run writes:
make dirichlet
mkgeo_grid -T 60 > cube-60.geo
./dirichlet cube-60.geo P1 > cube-60.field
Fig. 1.5 plots the performances of the direct and iterative solvers used in Rheolef. The computing
time T(n) is represented versus size n of the linear system, says Ax = b. Notice that for a
square-k.geo or cube-k.geo mesh, we have n = (k − 1)d
. For the direct method, two times
are represented: first, the time spend to factorize A = LDLT
, where L is lower triangular and
D is diagonal, and second, the time used to solve LDLT = x (in three steps: solving Lz = b,
then Dy = z and finally L
T x = y). For the iterative method, the conjugate gradient algorithm is
considered, without building any preconditionner, so there is nothing to initialize, and only one
time is represented. The tolerance on the residual term is set to 10−5
.24 Rheolef version 6.6 update 15 April 2014
In the bidimensional case, the iterative solver presents asymptotically, for large n, a computing
time similar to the factorization time of the direct solver, roughly O(n
3/2
) while the time to solve
by the direct method is dramatically lower, roughly O(n). As the factorization can be done one
time for all, the direct method is advantageous most of the time.
In the threedimensional case, the situation is different. The factorization time is very time consuming
roughly O(n
2
), while the time to solve for both direct and iterative methods behave as
O(n
4/3
). Thus, the iterative method is clearly advantageous for threedimensionnal problems.
Future works will improve the iterative approach by building preconditionners.
The asymptotic behaviors of direct methods strongly depends upon the ordering strategy used for
the factorization. For the direct solver, Rheolef was configured with the mumps [3, 4] library and
mumps was configured with the parallel scotch [40] ordering library. For a regular grid and in the
bidimensional case, there exists a specific ordering called nested disection [20, 26] that minimize
the fillin of the sparse matrix during the factorization. For threedimensional case this ordering is
called nested multi-section [6]. Asymptotic computing time for these regular grid are then explicity
known:
d direct/factorize direct/solve iterative
1 n n n
2
2 n
3/2 n log n n
3/2
3 n
2 n
4/3 n
4/3
The last column gives the asymptotic computing time for the conjugate gradient on a general
mesh [50]. Remark that these theoretical results are consistent with numerical experiments presented
on Fig. 1.5.
1.11 Distributed and parallel runs
For large meshes, a computation in a distributed and parallel environment is profitable:
mpirun -np 8 ./dirichlet cube-60.geo P1 > cube-60.field
mpirun -np 16 ./dirichlet cube-60.geo P1 > cube-60.field
The computing time T(n, p) depends now upon the linear system size n and the number of processes
p. For a fixed system n, the speedup S(p) when using p processors is defined by the ratio of the time
required by a sequential computation with the time used by a parallel one: S(p) = T(n, 1)/T(n, p).
The speedup is presented on Fig 1.6 for the two phases of the computation: the assembly phase
and the solve one, and for d = 2 (direct solver) and 3 (iterative solver). The ideal speedup
S(p) = p and the null speedup S(p) = 1 are represented by dotted lines. Observe on Fig 1.6
that for too small meshes, using too much processes is not profitable, as more time is spend by
communications rather by computations, especially for the solve phase. Conversely, when the
mesh size increases, using more processes leads to a remarkable speedup for both d = 2 and 3.
The largest mesh used here contains about three millions of elements. The speedup behavior is
roughly linear up to a critical number of processor denotes as pc. Then, there is a transition to a
plateau (the Amdahl’s law), where communications dominate. Notice that pc increases with the
mesh size: larger problems lead to a higher speedup. Also pc increases also with the efficiency of
communications.
Present computation times are measured on a BullX DLC supercomputer (Bull Newsca) composed
of nodes having two intel sandy-bridge processors and connected to a FDR infiniband non-blocking
low latency network. The assembly phase corresponds to dirichlet.cc (page 16) line 7 to 13
and the solve phase to lines 14 and 151
.
1
Input and output are poorly paralleliazed yet and the corresponding speedup is not presented here. Future
version of Rheolef will consider mpi_io.Rheolef version 6.6 update 15 April 2014 25
0
1
8
16
24
32
0 8 16 24 32
p
S(p)
assembly d = 2
square-40
square-80
square-160
square-320
square-640
square-1280
0
1
8
16
24
32
0 8 16 24 32
p
S(p)
assembly d = 3
cube-10
cube-20
cube-40
cube-60
0
1
8
16
24
32
0 8 16 24 32
p
S(p)
direct solve d = 2
square-40
square-80
square-160
square-320
square-640
square-1280
0
1
8
16
24
32
0 8 16 24 32
p
S(p)
direct solve d = 3
cube-10
cube-20
cube-40
cube-60
0
1
8
16
24
32
0 8 16 24 32
p
S(p)
iterative solve d = 2
square-40
square-80
square-160
square-320
square-640
square-1280
0
1
8
16
24
32
0 8 16 24 32
p
S(p)
iterative solve d = 3
cube-10
cube-20
cube-40
cube-60
Figure 1.6: Distributed and massively parallel resolution of the model problem with P1 element:
speedup S(p) versus the number of processors p during : (left-right) for d = 2 and 3, respectively
; (top) the assembly phase ; (center-bottom) the solve phase, direct and iterative solvers,
respectively.26 Rheolef version 6.6 update 15 April 2014Chapter 2
Standard boundary conditions
We show how to deal with various non-homogeneous boundary conditions of Dirichlet, Neuman
and Robin type.
2.1 Non-homogeneous Dirichlet conditions
Formulation
We turn now to the case of a non-homogeneous Dirichlet boundary conditions. Let f ∈ H−1
(Ω)
and g ∈ H
1
2 (∂Ω). The problem writes:
(P2) find u, defined in Ω such that:
−∆u = f in Ω
u = g on ∂Ω
The variational formulation of this problem expresses:
(V F2) find u ∈ V such that:
a(u, v) = l(v), ∀v ∈ V0
where
a(u, v) = Z
Ω
∇u.∇v dx
l(v) = Z
Ω
f v dx
V = {v ∈ H1
(Ω); v|∂Ω = g}
V0 = H1
0
(Ω)
Approximation
As usual, we introduce a mesh Th of Ω and the finite dimensional space Xh:
Xh = {v ∈ H1
(Ω); v/K ∈ Pk, ∀K ∈ Th}
Then, we introduce:
Vh = {v ∈ Xh; v|∂Ω = πh(g)}
V0,h = {v ∈ Xh; v|∂Ω = 0}
2728 Rheolef version 6.6 update 15 April 2014
where πh denotes the Lagrange interpolation operator. The approximate problem writes:
(V F2)h: find uh ∈ Vh such that:
a(uh, vh) = l(vh), ∀vh ∈ V0,h
The following C++ code implement this problem in the Rheolef environment.
Example file 2.1: dirichlet-nh.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " cosinusprod_laplace . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega ( argv [1]);
8 size_t d = omega . dimension ();
9 space Xh ( omega , argv [2]);
10 Xh . block (" boundary ");
11 trial u ( Xh ); test v ( Xh );
12 form a = integrate ( dot ( grad ( u ) , grad ( v )));
13 field lh = integrate ( f (d )* v );
14 field uh ( Xh );
15 space Wh ( omega [" boundary "] , argv [2]);
16 uh [" boundary "] = interpolate ( Wh , g ( d ));
17 solver sa ( a . uu ());
18 uh . set_u () = sa . solve ( lh . u () - a . ub ()* uh . b ());
19 dout << uh ;
20 }
Let us choose Ω ⊂ R
d
, d = 1, 2, 3 with
f(x) = d π2
d
Y−1
i=0
cos(πxi) and g(x) =
d
Y−1
i=0
cos(πxi) (2.1)
Remarks the notation x = (x0, . . . , xd−1) for the Cartesian coordinates in R
d
: since all arrays
start at index zero in C++ codes, and in order to avoid any mistakes between the code and the
mathematical formulation, we also adopt this convention here. This choice of f and g is convenient,
since the exact solution is known:
u(x) =
d
Y−1
i=0
cos(πxi)
The following C++ code implement this problem by using the concept of function object, also
called class-function (see e.g. [34]). A convenient feature is the ability for function objects to store
auxiliary parameters, such as the space dimension d for f here, or some constants, as π for f and
g.
Example file 2.2: cosinusprod_laplace.icc
1 struct f : field_functor {
2 Float operator () ( const point & x ) const {
3 return d * pi * pi * cos ( pi * x [0])* cos ( pi * x [1])* cos ( pi * x [2]); }
4 f ( size_t d1 ) : d ( d1 ) , pi ( acos ( Float ( -1))) {}
5 size_t d ; const Float pi ;
6 };
7 struct g : field_functor {
8 Float operator () ( const point & x ) const {
9 return cos ( pi * x [0])* cos ( pi * x [1])* cos ( pi * x [2]); }
10 g ( size_t d1 ) : pi ( acos ( Float ( -1))) {}
11 const Float pi ;
12 };Rheolef version 6.6 update 15 April 2014 29
Comments
The class point describes the coordinates of a point (x0, . . . , xd−1) ∈ R
d as a d-uplet of Float.
The Float type is usually a double. This type depends upon the Rheolef configuration (see [48],
installation instructions), and could also represent some high precision floating point class. The
dirichlet-nh.cc code looks like the previous one dirichlet.cc related to homogeneous boundary
conditions. Let us comments the changes. The dimension d comes from the geometry Ω:
size_t d = omega . dimension ();
The linear form l(.) is associated to the right-hand side f and writes:
field lh = integrate ( f (d )* v );
Notice that the function object f is build with the dimension d as parameter. Notice also the use
of field_functor1
in the definition of the class f: this trick allows us to mixt functions, fields and
test-functions in the same expression, as f(d) ∗ v.
The space Wh of piecewise Pk functions defined on the boundary ∂Ω is defined by:
space Wh ( omega [" boundary "] , argv [2]);
where Pk is defined via the second command line argument argv[2]. This space is suitable for
the Lagrange interpolation of g on the boundary:
uh [" boundary "] = interpolate ( Wh , g( d ));
The values of the degrees of freedom related to the boundary are stored into the field uh.b, where
non-homogeneous Dirichlet conditions applies. The rest of the code is similar to the homogeneous
Dirichlet case.
2.1.1 How to run the program
First, compile the program:
make dirichlet-nh
Running the program is obtained from the homogeneous Dirichlet case, by replacing dirichlet
by dirichlet-nh:
mkgeo_grid -e 10 > line.geo
./dirichlet-nh line.geo P1 > line.field
field line.field
for the bidimensional case:
mkgeo_grid -t 10 > square.geo
./dirichlet-nh square.geo P1 > square.field
field square.field
and for the tridimensional case:
mkgeo_grid -T 10 > box.geo
./dirichlet-nh box.geo P1 > box.field
field box.field -volume
The optional -volume allows a 3D color light volume graphical rendering. Here, the P1 approximation
can be replaced by P2, P3, etc, by modifying the command-line argument.
1The actual implementation of a field_functor class bases on the curiously recurring template pattern (CRTP)
C++ idiom: the definition of the class f derives from field_functor that depend itself upon f. So,
be carrefull when using copy-paste, as there a no checks if you write e.g. field_functor with another
function g instead of f.30 Rheolef version 6.6 update 15 April 2014
2.1.2 Error analysis
Principle
Since the solution u is regular, the following error estimates holds:
ku − uhk0,2,Ω ≈ O(h
k+1)
ku − uhk0,∞,Ω ≈ O(h
k+1)
ku − uhk1,2,Ω ≈ O(h
k
)
providing the approximate solution uh uses Pk continuous finite element method, k > 1. Here,
k.k0,2,Ω, k.k0,∞,Ω and k.k1,2,Ω denotes as usual the L
2
(Ω), L∞(Ω) and H1
(Ω) norms.
By denoting πh the Lagrange interpolation operator, the triangular inequality leads to:
ku − uhk0,2,Ω 6 k(I − πh)(u)k0,2,Ω + kuh − πhuk0,2,Ω
From the fundamental properties of the Laplace interpolation πh, and since u is smooth enough,
we have k(I −πh)(u)k0,2,Ω ≈ O(h
k+1). Thus, we have just to check the kuh −πhuk0,2,Ω term. The
following code implement the computation of the error.
Example file 2.3: cosinusprod_error.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " cosinusprod . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 Float error_linf_expected = ( argc > 1) ? atof ( argv [1]) : 1 e +38;
8 field uh ; din >> uh ;
9 space Xh = uh . get_space ();
10 size_t d = Xh . get_geo (). dimension ();
11 field pi_h_u = interpolate ( Xh , u_exact ( d ));
12 field eh = uh - pi_h_u ;
13 trial u ( Xh ); test v ( Xh );
14 form m = integrate ( u * v );
15 form a = integrate ( dot ( grad ( u ) , grad ( v )));
16 dout << " error_l2 " << sqrt ( m ( eh , eh )) << endl
17 << " error_linf " << eh . max_abs () << endl
18 << " error_h1 " << sqrt ( a ( eh , eh )) << endl ;
19 return ( eh . max_abs () <= error_linf_expected ) ? 0 : 1;
20 }
Example file 2.4: cosinusprod.icc
1 struct u_exact : field_functor < u_exact ,Float > {
2 Float operator () ( const point & x ) const {
3 return cos ( pi * x [0])* cos ( pi * x [1])* cos ( pi * x [2]); }
4 u_exact ( size_t d1 ) : d ( d1 ) , pi ( acos ( Float ( -1.0))) {}
5 size_t d ; Float pi ;
6 };
The m(., .) is here the classical scalar product on L
2
(Ω), and is related to the mass form.
Running the program
make dirichlet-nh cosinusprod_error
After compilation, run the code by using the command:
mkgeo_grid -t 10 > square.geo
./dirichlet-nh square.geo P1 | ./cosinusprod_errorRheolef version 6.6 update 15 April 2014 31
10−10
10−8
10−6
10−4
10−2
10−2 10−1
h
kuh − πh(u)k0,2,Ω
2 = k + 1
3
4
k = 1
k = 2
k = 3
10−10
10−8
10−6
10−4
10−2
10−2 10−1
h
kuh − πh(u)k0,∞,Ω
2 = k + 1
3
4
k = 1
k = 2
k = 3
10−8
10−6
10−4
10−2
100
10−2 10−1
h
|uh − πh(u)|1,2,Ω
1 = k
2
3
k = 1
k = 2
k = 3
Figure 2.1: Strait geometry: error analysis in L
2
, L∞ and H1 norms.32 Rheolef version 6.6 update 15 April 2014
The three L
2
, L∞ and H1
errors are printed for a h = 1/10 uniform mesh. Note that an unstructured
quasi-uniform mesh can be simply generated by using the mkgeo_ugrid command:
mkgeo_ugrid -t 10 > square.geo
geo square.geo
Let nel denotes the number of elements in the mesh. Since the mesh is quasi-uniform, we have
h ≈ n
1
d
el where d is the physical space dimension. Here d = 2 for our bidimensional mesh. Figure 2.1
plots in logarithmic scale the error versus n
1
2
el for both Pk approximations, k = 1, 2, 3 and the
various norms. Observe that the error behaves as predicted by the theory.
Curved domains
The error analysis applies also for curved boundaries and high order approximations.
Example file 2.5: cosinusrad_laplace.icc
1 struct f : field_functor {
2 Float operator () ( const point & x ) const {
3 Float r = sqrt (sqr( x [0])+ sqr( x [1])+ sqr( x [2]));
4 Float sin_over_ar = ( r == 0) ? 1 : sin ( a * r )/( a * r );
5 return sqr( a )*(( d -1)* sin_over_ar + cos ( a * r )); }
6 f ( size_t d1 ) : d ( d1 ) , a ( acos ( Float ( -1.0))) {}
7 size_t d ; Float a ;
8 };
9 struct g : field_functor {
10 Float operator () ( const point & x ) const {
11 return cos ( a * sqrt (sqr( x [0])+ sqr( x [1])+ sqr( x [2]))); }
12 g ( size_t =0) : a ( acos ( Float ( -1.0))) {}
13 Float a ;
14 };
Example file 2.6: cosinusrad.icc
1 struct u_exact : field_functor < u_exact ,Float > {
2 Float operator () ( const point & x ) const {
3 Float r = sqrt (sqr( x [0])+ sqr( x [1])+ sqr( x [2]));
4 return cos ( a * r ); }
5 u_exact ( size_t =0) : a ( acos ( Float ( -1.0))) {}
6 Float a ;
7 };
First, generate the test source file and compile it:
sed -e ’s/sinusprod/sinusrad/’ < dirichlet-nh.cc > dirichlet_nh_ball.cc
sed -e ’s/sinusprod/sinusrad/’ < cosinusprod_error.cc > cosinusrad_error.cc
make dirichlet_nh_ball cosinusrad_error
Then, generates the mesh of a circle and run the test case:
mkgeo_ball -order 1 -t 10 > circle-P1.geo
geo circle-P1
./dirichlet_nh_ball circle-P1.geo P1 | ./cosinusrad_error
For a high order k = 3 isoparametric approximation:
mkgeo_ball -order 3 -t 10 > circle-P3.geo
geo circle-P3
./dirichlet_nh_ball circle-P3.geo P3 | ./cosinusrad_error
Observe Fig. 2.2: for meshes based on triangles: the error behave as expected when k = 1, 2, 3, 4.
A similar result occurs for quadrangles, as shown on Fig. 2.3.Rheolef version 6.6 update 15 April 2014 33
10−10
10−8
10−6
10−4
10−2
100
10−2 10−1
h
kuh − πh(u)k0,2,Ω
2 = k + 1
3
4
k = 1
k = 2
k = 3
k = 4
10−10
10−8
10−6
10−4
10−2
100
10−2 10−1
h
kuh − πh(u)k0,∞,Ω
2 = k + 1
3
4
k = 1
k = 2
k = 3
k = 4
10−8
10−6
10−4
10−2
100
10−2 10−1
h
|uh − πh(u)|1,2,Ω
1 = k
2
3
k = 1
k = 2
k = 3
k = 4
Figure 2.2: Curved domains (triangles): error analysis in L
2
, L∞ and H1 norms.34 Rheolef version 6.6 update 15 April 2014
10−10
10−8
10−6
10−4
10−2
10−2 10−1
h
kuh − πh(u)k0,2,Ω
2 = k + 1
3
4
k = 1
k = 2
k = 3
k = 4
10−10
10−8
10−6
10−4
10−2
100
10−2 10−1
h
kuh − πh(u)k0,∞,Ω
2 = k + 1
3
4
k = 1
k = 2
k = 3
k = 4
10−8
10−6
10−4
10−2
10−2 10−1
h
|uh − πh(u)|1,2,Ω
1 = k
2
3
k = 1
k = 2
k = 3
k = 4
Figure 2.3: Curved domains (quadrangles): error analysis in L
2
, L∞ and H1 norms.Rheolef version 6.6 update 15 April 2014 35
mkgeo_ball -order 3 -q 10 > circle-q-P3.geo
geo circle-q-P3
./dirichlet_nh_ball circle-q-P3.geo P3 | ./cosinusrad_error
These features are currently in development for arbitrarily Pk high order approximations and
three-dimensional geometries.
2.2 Non-homogeneous Neumann boundary conditions for
the Helmholtz operator
Formulation
Let us show how to insert Neumann boundary conditions. Let f ∈ H−1
(Ω) and g ∈ H− 1
2 (∂Ω).
The problem writes:
(P3): find u, defined in Ω such that:
u − ∆u = f in Ω
∂u
∂n = g on ∂Ω
The variational formulation of this problem expresses:
(V F3): find u ∈ H1
(Ω) such that:
a(u, v) = l(v), ∀v ∈ H1
(Ω)
where
a(u, v) = Z
Ω
(u v + ∇u.∇v) dx
l(v) = Z
Ω
f v dx +
Z
∂Ω
g v ds36 Rheolef version 6.6 update 15 April 2014
Approximation
As usual, we introduce a mesh Th of Ω and the finite dimensional space Xh:
Xh = {v ∈ H1
(Ω); v/K ∈ Pk, ∀K ∈ Th}
The approximate problem writes:
(V F3)h: find uh ∈ Xh such that:
a(uh, vh) = l(vh), ∀vh ∈ Xh
Example file 2.7: neumann-nh.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " sinusprod_helmholtz . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega ( argv [1]);
8 size_t d = omega . dimension ();
9 space Xh ( omega , argv [2]);
10 trial u ( Xh ); test v ( Xh );
11 form a = integrate ( u * v + dot ( grad ( u ) , grad ( v )));
12 field lh = integrate ( f (d )* v ) + integrate (" boundary ", g (d )* v );
13 field uh ( Xh );
14 solver sa ( a . uu ());
15 uh . set_u () = sa . solve ( lh . u () - a . ub ()* uh . b ());
16 dout << uh ;
17 }
Let us choose Ω ⊂ R
d
, d = 1, 2, 3 and
f(x) = (1 + dπ2
)
d
Y−1
i=0
sin(πxi)
g(x) =
−π when d = 1
−π
X
d−1
i=0
sin(πxi)
!
when d = 2
−π
X
d−1
i=0
sin(πxi) sin(x(i+1)mod d
!
when d = 3
This example is convenient, since the exact solution is known:
u(x) =
d
Y−1
i=0
sin(πxi) (2.2)Rheolef version 6.6 update 15 April 2014 37
Example file 2.8: sinusprod_helmholtz.icc
1 struct f : field_functor {
2 Float operator () ( const point & x ) const {
3 switch ( d ) {
4 case 1: return (1+ d * pi * pi )* sin ( pi * x [0]);
5 case 2: return (1+ d * pi * pi )* sin ( pi * x [0])* sin ( pi * x [1]);
6 default : return (1+ d * pi * pi )* sin ( pi * x [0])* sin ( pi * x [1])* sin ( pi * x [2]);
7 }}
8 f ( size_t d1 ) : d ( d1 ) , pi ( acos ( Float ( -1.0))) {}
9 size_t d ; const Float pi ;
10 };
11 struct g : field_functor {
12 Float operator () ( const point & x ) const {
13 switch ( d ) {
14 case 1: return - pi ;
15 case 2: return - pi *( sin ( pi * x [0]) + sin ( pi * x [1]));
16 default : return - pi *( sin ( pi * x [0])* sin ( pi * x [1])
17 + sin ( pi * x [1])* sin ( pi * x [2])
18 + sin ( pi * x [2])* sin ( pi * x [0]));
19 }}
20 g ( size_t d1 ) : d ( d1 ) , pi ( acos ( Float ( -1.0))) {}
21 size_t d ; const Float pi ;
22 };
Comments
The neumann-nh.cc code looks like the previous one dirichlet-nh.cc. Let us comments only
the changes.
form a = integrate ( u * v + dot ( grad ( u ) , grad ( v )));
The bilinear form a(., .) is defined. Notes the flexibility of the integrate function that takes as
argument an expression involving the trial and test functions. The right-hand side is computed
as:
field lh = integrate ( f (d )* v ) + integrate (" boundary ", g (d )* v );
The second integration is perfomed on ∂Ω. The additional first argument of the integrate
function is here the name of the integration domain.
2.2.1 How to run the program
First, compile the program:
make neumann-nh
Running the program is obtained from the homogeneous Dirichlet case, by replacing dirichlet
by neumann-nh.
2.3 The Robin boundary conditions
Formulation
Let f ∈ H−1
(Ω) and Let g ∈ H
1
2 (∂Ω). The problem writes:
(P4) find u, defined in Ω such that:
−∆u = f in Ω
∂u
∂n + u = g on ∂Ω38 Rheolef version 6.6 update 15 April 2014
The variational formulation of this problem expresses:
(V F4): find u ∈ H1
(Ω) such that:
a(u, v) = l(v), ∀v ∈ H1
(Ω)
where
a(u, v) = Z
Ω
∇u.∇v dx +
Z
∂Ω
uv ds
l(v) = Z
Ω
uv dx +
Z
∂Ω
gv ds
Approximation
As usual, let
Xh = {v ∈ H1
(Ω); v/K ∈ Pk, ∀K ∈ Th}
The approximate problem writes:
(V F4)h: find uh ∈ Xh such that:
a(uh, vh) = l(vh), ∀vh ∈ Xh
Example file 2.9: robin.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " cosinusprod_laplace . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega ( argv [1]);
8 size_t d = omega . dimension ();
9 space Xh ( omega , argv [2]);
10 trial u ( Xh ); test v ( Xh );
11 form a = integrate ( dot ( grad ( u ) , grad ( v ))) + integrate (" boundary ", u * v );
12 field lh = integrate ( f (d )* v ) + integrate (" boundary ", g (d )* v );
13 field uh ( Xh );
14 solver sa ( a . uu ());
15 uh . set_u () = sa . solve ( lh . u () - a . ub ()* uh . b ());
16 dout << uh ;
17 }
Comments
The code robin.cc looks like the previous one neumann-nh.cc. Let us comments the changes.
form a = integrate ( dot ( grad ( u ) , grad ( v ))) + integrate (" boundary ", u * v );
This statement reflects directly the definition of the bilinear form a(., .), as the sum of two integrals,
the first one over Ω and the second one over its boundary.
2.3.1 How to run the program
First, compile the program:
make robin
Running the program is obtained from the homogeneous Dirichlet case, by replacing dirichlet
by robin.Rheolef version 6.6 update 15 April 2014 39
2.4 Neumann boundary conditions for the Laplace operator
In this chapter we study how to solve a ill-posed problem with a solution defined up to a constant.
Formulation
Let Ω be a bounded open and simply connected subset of R
d
, d = 1, 2 or 3. Let f ∈ L
2
(Ω) and
g ∈ H
1
2 (∂Ω) satisfying the following compatibility condition:
Z
Ω
f dx +
Z
∂Ω
g ds = 0
The problem writes:
(P5)h: find u, defined in Ω such that:
−∆u = f in Ω
∂u
∂n = g on ∂Ω
Since this problem only involves the derivatives of u, it is clear that its solution is never unique [23,
p. 11]. A discrete version of this problem could be solved iteratively by the conjugate gradient
or the MINRES algorithm [39]. In order to solve it by a direct method, we turn the difficulty by
seeking u in the following space
V = {v ∈ H1
(Ω); b(v, 1) = 0}
where
b(v, µ) = Z
Ω
v dx, ∀v ∈ L
2
(Ω), ∀µ ∈ R
The variational formulation of this problem writes:
(V F5): find u ∈ V such that:
a(u, v) = l(v), ∀v ∈ V
where
a(u, v) = Z
Ω
∇u.∇v dx
l(v) = m(f, v) + mb(g, v)
m(f, v) = Z
Ω
fv dx
mb(g, v) = Z
∂Ω
gv ds
Since the direct discretization of the space V is not an obvious task, the constraint b(u, 1) = 0
is enforced by a Lagrange multiplier λ ∈ R. Let us introduce the Lagrangian, defined for all
v ∈ H1
(Ω) and µ ∈ R by:
L(v, µ) = 1
2
a(v, v) + b(v, µ) − l(v)
The saddle point (u, λ) ∈ H1
(Ω) × R of this Lagrangian is characterized as the unique solution of:
a(u, v) + b(v, λ) = l(v), ∀v ∈ H1
(Ω)
b(u, µ) = 0, ∀µ ∈ R
It is clear that if (u, λ) is solution of this problem, then u ∈ V and u is a solution of (V F5).
Conversely, let u ∈ V the solution of (V F5). Choosing v = v0 where v0(x) = 1, ∀x ∈ Ω leads to
λ meas(Ω) = l(v0). From the definition of l(.) and the compatibility condition between the data f
and g, we get λ = 0. Notice that the saddle point problem extends to the case when f and g does
not satisfies the compatibility condition, and in that case λ = l(v0)/meas(Ω).40 Rheolef version 6.6 update 15 April 2014
Approximation
As usual, we introduce a mesh Th of Ω and the finite dimensional space Xh:
Xh = {v ∈ H1
(Ω); v/K ∈ Pk, ∀K ∈ Th}
The approximate problem writes:
(V F5)h: find (uh, λh) ∈ Xh × R such that:
a(uh, v) + b(v, λh) = lh(v), ∀v ∈ Xh
b(uh, µ) = 0, ∀µ ∈ R
where
lh(v) = m(Πhf, vh) + mb(πhg, vh)
Example file 2.10: neumann-laplace.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 size_t d ;
5 Float f ( const point & x ) { return 1; }
6 Float g ( const point & x ) { return -0.5/ d ; }
7 int main (int argc , char ** argv ) {
8 environment rheolef ( argc , argv );
9 geo omega ( argv [1]);
10 d = omega . dimension ();
11 space Xh ( omega , argv [2]);
12 trial u ( Xh ); test v ( Xh );
13 form m = integrate ( u * v );
14 form a = integrate ( dot ( grad ( u ) , grad ( v )));
15 field b = m * field ( Xh ,1);
16 field lh = integrate ( f *v ) + integrate (" boundary ", g * v );
17 csr A = {{ a . uu () , b . u ()} ,
18 { trans ( b . u ()) , 0 }};
19 vec B = { lh . u () , 0 };
20 A . set_symmetry ( true );
21 solver sa = ldlt ( A );
22 vec U = sa . solve ( B );
23 field uh ( Xh );
24 uh . set_u () = U [ range (0 , uh . u (). size ())];
25 Float lambda = ( U . size () == uh . u (). size ()+1) ? U [ uh . u (). size ()] : 0;
26 # ifdef _RHEOLEF_HAVE_MPI
27 mpi :: broadcast ( U . comm () , lambda , U . comm (). size () - 1);
28 # endif // _RHEOLEF_HAVE_MPI
29 dout << uh
30 << " lambda " << lambda << endl ;
31 }
Comments
Let Ω ⊂ R
d
, d = 1, 2, 3. We choose f(x) = 1 and g(x) = −1/(2d). This example is convenient,
since the exact solution is known:
u(x) = −
1
12
+
1
2d
X
d
i=1
xi(1 − xi)
The code looks like the previous ones. Let us comment the changes. The discrete bilinear form b
is computed as bh ∈ Xh that interprets as a linear application from Xh to R: bh(vh) = m(vh, 1).
Thus bh is computed as
field b = m * field ( Xh ,1.0);Rheolef version 6.6 update 15 April 2014 41
where the discrete bilinear form m is identified to its matrix and field(Xh,1.0) is the constant
vector equal to 1. Let
A =
a.uu trans(b.u)
b.u 0
, U =
uh.u
lambda
, B =
lh.u
0
The problem admits the following matrix form:
A U = B
The matrix and right-hand side of the system are assembled by concatenation:
csr A = {{ a . uu , b . u } ,
{ trans ( b . u ) , 0 }};
vec B = { lh .u , 0 };
where csr and vec are respectively the matrix and vector classes. The csr is the abbreviation of
compressed sparse row, a sparse matrix compression standard format. Notice that the matrix A is
symmetric and non-singular, but indefinite : it admits eigenvalues that are either strictly positive
or strictly negative. While the Choleski factorization is not possible, its variant the LDLT one is
performed, thanks to the ldlt function:
solver sa = ldlt ( A );
Then, the uh.u vector is extracted from the U one:
uh . u = U [ range (0 , uh . u . size ())];
The extraction of lambda from U is more technical in a distributed environment. In a sequential
one, since it is stored after the uh.u values, it could be simply written as:
Float lambda = U [ uh . u . size ()];
In a distributed environment, lambda is stored in U on the last processor, identified by
U.comm().size()-1. Here U.comm() denotes the communicator, from the boost::mpi library
and U.comm().size() is the number of processors in use, e.g. as specified by the mpirun command.
On this last processor, the array U has size equal to uh.u.size()+1 and lambda is stored
in U[uh.u.size()]. On the others processors, the array U has size equal to uh.u.size() and
lambda is not available. The following statement extract lambda on the last processor and set it
to zero on the others:
Float lambda = ( U . size () == uh . u . size ()+1) ? U [ uh . u . size ()] : 0;
Then, the value of lambda is broadcasted on the others processors:
mpi :: broadcast ( U . comm () , lambda , U . comm (). size () - 1);
The preprocessing guards #idef. . .#endif assure that this example compile also when the library
is not installed with the MPI support. Finally, the statement
dout << catchmark (" u ") << uh
<< catchmark (" lambda ") << lambda << endl ;
writes the solution (uh, λ). The catchmark function writes marks together with the solution in
the output stream. These marks are suitable for a future reading with the same format, as:
din >> catchmark (" u") >> uh
>> catchmark (" lambda ") >> lambda ;
This is useful for post-treatment, visualization and error analysis.
2.4.1 How to run the program
As usual, enter:
make neumann-laplace
mkgeo_grid -t 10 > square.geo
./neumann-laplace square P1 | field -42 Rheolef version 6.6 update 15 April 2014Chapter 3
Non-constant coefficients and
multi-regions
This chapter is related to the so-called transmission problem. We introduce some new concepts:
problems with non-constant coefficients, regions in the mesh, weighted forms and discontinuous
approximations.
Formulation
Let us consider a diffusion problem with a non-constant diffusion coefficient η in a domain bounded
Ω ⊂ R
d
, d = 1, 2, 3:
(P): find u defined in Ω such that:
−div(η∇u) = f in Ω (3.1)
u = 0 on Γleft ∪ Γright (3.2)
∂u
∂n = 0 on Γtop ∪ Γbottom when d > 2 (3.3)
∂u
∂n = 0 on Γfront ∪ Γback when d = 3 (3.4)
where f is a given source term.
4344 Rheolef version 6.6 update 15 April 2014
west
east
bottom
right
top
left
Figure 3.1: Transmission problem: the domain Ω partition: (Ωwest and Ωeast).
We consider here the important special case when η is piecewise constant:
η(x) =
ε when x ∈ Ωwest
1 when x ∈ Ωeast
where (Ωwest, Ωeast) is a partition of Ω in two parts (see Fig. 3.1). This is the so-called transmission
problem: the solution and the flux are continuous on the interface Γ0 = ∂Ωeast ∩ ∂Ωwest
between the two domains where the problem reduce to a constant diffusion one:
uΩwest = uΩeast on Γ0
ε
∂u/Ωwest
∂n =
∂uΩeast
∂n on Γ0
It expresses the transmission of the quantity u and its flux across the interface Γ0 between two
regions that have different diffusion properties: Notice that the more classical problem, with
constant diffusion η on Ω is obtained by simply choosing when ε = 1.
The variational formulation of this problem expresses:
(V F): find u ∈ V such that:
a(u, v) = l(v), ∀v ∈ V
where the bilinear forms a(., .) and the linear one l(.) are defined by
a(u, v) = Z
Ω
η ∇u.∇v dx, ∀u, v ∈ H1
(Ω)
l(v) = Z
Ω
f v dx, ∀v ∈ L
2
(Ω)
V = {v ∈ H1
(Ω); v = 0 on Γleft ∪ Γright}
The bilinear form a(., .) defines a scalar product in V and is related to the energy form. This form
is associated to the −div η∇ operator.
The approximation of this problem could performed by a standard Lagrange Pk continuous approximation.Rheolef
version 6.6 update 15 April 2014 45
Example file 3.1: transmission.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 int main (int argc , char ** argv ) {
5 environment rheolef ( argc , argv );
6 const Float epsilon = 0.01;
7 geo omega ( argv [1]);
8 space Xh ( omega , argv [2]);
9 Xh . block (" left ");
10 Xh . block (" right ");
11 string eta_approx = " P " + itos ( Xh . degree () -1) + " d ";
12 space Qh ( omega , eta_approx );
13 field eta_h ( Qh );
14 eta_h [" east "] = 1;
15 eta_h [" west "] = epsilon ;
16 trial u ( Xh ); test v ( Xh );
17 form a = integrate ( eta_h * dot ( grad ( u ) , grad ( v )));
18 field lh = integrate ( v );
19 field uh ( Xh );
20 uh [" left "] = uh [" right "] = 0;
21 solver sa ( a . uu ());
22 uh . set_u () = sa . solve ( lh . u () - a . ub ()* uh . b ());
23 dout << catchmark (" epsilon ") << epsilon << endl
24 << catchmark (" u ") << uh ;
25 }
Comments
This file is quite similar to those studied in the first chapters of this book. Let us comment only
the changes. The Dirichlet boundary condition applies no more on the whole boundary ∂Ω but
on two parts Γleft and Γright. On the other boundary parts, an homogeneous Neumann boundary
condition is used: since these conditions does not produce any additional terms in the variational
formulation, there are also nothing to write in the C++ code for these boundaries. We choose
f = 1: this leads to a convenient test-problem, since the exact solution is known when Ω =]0, 1[d
:
u(x) =
x0
2ε
1 + 3ε
2(1 + ε)
− x0
when x0 < 1/2
1 − x0
2
x0 +
1 − ε
2(1 + ε)
otherwise
The field η belongs to a discontinuous finite element Pk−1 space denoted by Qh:
string eta_approx = " P " + itos ( Xh . degree () -1) + " d ";
space Qh ( omega , eta_approx );
field eta ( Qh );
For instance, when argv[2] contains "P2", i.e. k = 2, then the string eta_approx takes value
"P1d". Then η is initialized by:
eta [" east "] = 1;
eta [" weast "] = epsilon ;
The energy form a is then constructed with η as additional parameter that acts as a integration
weight:
form a = integrate ( eta_h * dot ( grad ( u ) , grad ( v )));
Such forms with a additional weight function are called weighted forms in Rheolef.46 Rheolef version 6.6 update 15 April 2014
How to run the program ?
Build the program as usual: make transmission. Then, creates a one-dimensional geometry with
two regions:
mkgeo_grid -e 100 -region > line.geo
geo line.geo
The trivial mesh generator mkgeo_grid, defines two regions east and west when used with the
-region option. This correspond to the situation:
Ω = [0, 1]d
, Ωwest = Ω ∩ {x0 < 1/2} and Ωeast = Ω ∩ {x0 > 1/2}.
In order to avoid mistakes with the C++ style indexes, we denote by (x0, . . . , xd−1) the Cartesian
coordinate system in R
d
.
Finally, run the program and look at the solution:
make transmission
./transmission line.geo P1 > line.field
field line.field
Since the exact solution is a piecewise second order polynomial and the change in the diffusion
coefficient value fits the element boundaries, we obtain the exact solution for all the degrees of
freedom of any Pk approximation, k > 1, as shown on Fig. 3.2 when k = 1. Moreover, when k > 2
then uh = u since Xh contains the exact solution u.
0
1
2
3
0 0.25 0.5 0.75 1
exact
h = 1/6
h = 1/10
h = 1/14
Figure 3.2: Transmission problem: uh = πh(u) (ε = 10−2
, d = 1, P1 approximation).
The two dimensional case corresponds to the commands:
mkgeo_grid -t 10 -region > square.geo
geo square.geo
./transmission square.geo P1 > square.field
field square.field -elevationRheolef version 6.6 update 15 April 2014 47
while the tridimensional to
mkgeo_grid -T 10 -region > cube.geo
./transmission cube.geo P1 > cube.mfield
field cube.field
As for all the others examples, you can replace P1 by higher-order approximations, change elements
shapes, such as q, H or P, and run distributed computations computations with mpirun.48 Rheolef version 6.6 update 15 April 2014Part II
Fluids and solids computations
49Chapter 4
The linear elasticity and the Stokes
problems
4.1 The linear elasticity problem
Formulation
The total Cauchy stress tensor expresses:
σ(u) = λ div(u).I + 2µD(u) (4.1)
where λ and µ are the Lamé coefficients. Here, D(u) denotes the symmetric part of the gradient
operator and div is the divergence operator. Let us consider the elasticity problem for the
embankment, in Ω =]0, 1[d
, d = 2, 3. The problem writes:
(P): find u = (u0, . . . , ud−1), defined in Ω, such that:
− div σ(u) = f in Ω,
∂u
∂n
= 0 on Γtop ∪ Γright
u = 0 on Γleft ∪ Γbottom,
u = 0 on Γfront ∪ Γback, when d = 3
(4.2)
where f = (0, −1) when d = 2 and f = (0, 0, −1) when d = 3. The Lamé coefficients are assumed
to satisfy µ > 0 and λ + µ > 0. Since the problem is linear, we can suppose that µ = 1 without
any loss of generality.
5152 Rheolef version 6.6 update 15 April 2014
x2
x1
left right
bottom
top
front
x1
bottom x0
left right
top
x0
back
Figure 4.1: The boundary domains for the square and the cube.
recall that, in order to avoid mistakes with the C++ style indexes, we denote by (x0, . . . , xd−1) the
Cartesian coordinate system in
mathbbRd
.
For d = 2 we define the boundaries:
Γleft = {0}×]0, 1[, Γright = {1}×]0, 1[
Γbottom = ]0, 1[×{0}, Γtop = ]0, 1[×{1}
and for d = 3:
Γback = {0}×]0, 1[2
, Γfront = {1}×]0, 1[2
Γleft = ]0, 1[×{0}×]0, 1[, Γright = ]0, 1[×{1}×]0, 1[
Γbottom = ]0, 1[2×{0}, Γtop = ]0, 1[2×{1}
These boundaries are represented on Fig. 4.1.
The variational formulation of this problem expresses:
(V F): find u ∈ V such that:
a(u, v) = l(v), ∀v ∈ V, (4.3)
where
a(u, v) = Z
Ω
(λdiv u div v + 2D(u) : D(v)) dx,
l(v) = Z
Ω
f.v dx,
V = {v ∈ (H1
(Ω))2
; v = 0 on Γleft ∪ Γbottom}, when d = 2
V = {v ∈ (H1
(Ω))3
; v = 0 on Γleft ∪ Γbottom ∪ Γright ∪ Γback}, when d = 3
Approximation
We introduce a mesh Th of Ω and for k > 1, the following finite dimensional spaces:
Xh = {vh ∈ (H1
(Ω))d
; vh/K ∈ (Pk)
d
, ∀K ∈ Th},
Vh = Xh ∩ V
The approximate problem writes:
(V F)h: find uh ∈ Vh such that:
a(uh, vh) = l(vh), ∀vh ∈ VhRheolef version 6.6 update 15 April 2014 53
Example file 4.1: embankment.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " embankment . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega ( argv [1]);
8 space Xh = embankment_space ( omega , argv [2]);
9 Float lambda = ( argc > 3) ? atof ( argv [3]) : 1;
10 size_t d = omega . dimension ();
11 point f (0 ,0 ,0);
12 f [d -1] = -1;
13 trial u ( Xh ); test v ( Xh );
14 form a = integrate ( lambda *div( u )* div( v ) + 2* ddot (D( u ) ,D( v )));
15 field lh = integrate ( dot (f , v ));
16 solver sa ( a . uu ());
17 field uh ( Xh , 0);
18 uh . set_u () = sa . solve ( lh . u () - a . ub ()* uh . b ());
19 dout << catchmark (" inv_lambda ") << 1/ lambda << endl
20 << catchmark (" u ") << uh ;
21 }
Example file 4.2: embankment.icc
1 space embankment_space ( const geo& omega , string approx ) {
2 space Xh ( omega , approx , " vector ");
3 Xh . block (" left ");
4 if ( omega . dimension () >= 2)
5 Xh . block (" bottom ");
6 if ( omega . dimension () == 3) {
7 Xh . block (" right ");
8 Xh . block (" back ");
9 }
10 return Xh ;
11 }
Comments
The space is defined in a separate file ‘embankment.icc’, since it will be reused in others examples
along this chapter:
space Vh ( omega , " P2 ", " vector ");
Note here the multi-component specification "vector" as a supplementary argument to the space
constructor. The boundary condition contain a special cases for bi- and tridimensional cases. The
right-hand-side fh represents the dimensionless gravity forces, oriented on the vertical axis: the
last component of fh is set to −1 as:
fh [d -1] = -1;
The code for the bilinear form a(., .) and the linear one l(.) are closed to their mathematical
definitions:
form a = integrate ( lambda *div( u )* div( v ) + 2* ddot (D( u ) ,D( v )));
field lh = integrate ( dot (f , v ));
Finally, the 1/λ parameter and the multi-field result are printed, using mark labels, thanks to the
catchmark stream manipulator. Labels are convenient for post-processing purpose, as we will see
in the next paragraph.54 Rheolef version 6.6 update 15 April 2014
How to run the program
Figure 4.2: The linear elasticity for λ = 1 and d = 2 and d = 3: both wireframe and filled surfaces
; stereoscopic anaglyph mode for 3D solutions.
Compile the program as usual (see page 18):
make embankment
and enter the commands:
mkgeo_grid -t 10 > square.geo
geo square.geo
The triangular mesh has four boundary domains, named left, right, top and bottom. Then,
enter:
./embankment square.geo P1 > square-P1.fieldRheolef version 6.6 update 15 April 2014 55
The previous command solves the problem for the corresponding mesh and writes the multicomponent
solution in the ‘.field’ file format. Run the deformation vector field visualization
using the default gnuplot render:
field square-P1.field
field square-P1.field -nofill
Note the graphic options usage ; the unix manual for the field command is available as:
man field
The view is shown on Fig. 4.2. A specific field component can be also selected for a scalar
visualization:
field -comp 0 square-P1.field
field -comp 1 square-P1.field
Next, perform a P2 approximation of the solution:
./embankment square.geo P2 > square-P2.field
field square-P2.field -paraview -nofill
Finally, let us consider the three dimensional case
mkgeo_grid -T 10 > cube.geo
./embankment cube.geo P1 > cube-P1.field
field cube-P1.field -stereo
field cube-P1.field -stereo -fill
The two last commands show the solution in 3D stereoscopic anaglyph mode. The graphic is
represented on Fig. 4.2. The P2 approximation writes:
./embankment cube.geo P2 > cube-P2.field
field cube-P2.field
4.2 Computing the stress tensor
Formulation and approximation
The following code computes the total Cauchy stress tensor, reading the Lamé coefficient λ and
the deformation field uh from a ‘.field’ file. Let us introduce:
Th = {τh ∈ (L
2
(Ω))d×d
; τh = τ
T
h and τh;ij/K ∈ Pk−1, ∀K ∈ Th, 1 6 i, j 6 d}
This computation expresses:
find σh such that:
m(σh, τ ) = b(τ, uh), ∀τ ∈ Th
where
m(σ, τ ) = Z
Ω
σ : τ dx,
b(τ, u) = Z
Ω
(2D(u) : τ dx + λdiv(u) tr(τ )) dx,
where tr(τ ) = Pd
i=1 τii is the trace of the tensor τ .56 Rheolef version 6.6 update 15 April 2014
Example file 4.3: stress.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 int main (int argc , char ** argv ) {
5 environment rheolef ( argc , argv );
6 Float inv_lambda ;
7 field uh ;
8 din >> catchmark (" inv_lambda ") >> inv_lambda
9 >> catchmark (" u ") >> uh ;
10 const geo & omega = uh . get_geo ();
11 const space & Xh = uh . get_space ();
12 string grad_approx = " P " + itos ( Xh . degree () -1) + " d ";
13 space Th ( omega , grad_approx , " tensor ");
14 size_t d = omega . dimension ();
15 tensor I = tensor :: eye ( d );
16 field sigma_h = ( inv_lambda == 0) ?
17 interpolate ( Th , 2*D( uh )) :
18 interpolate ( Th , 2*D( uh ) + (1/ inv_lambda )* div ( uh )* I );
19 dout << catchmark (" s ") << sigma_h ;
20 }
Comments
In order to our code stress.cc to apply also for the forthcomming incompressible case λ = +∞,
the Lamé coefficient is introduced as 1/λ. Its value is zero in the incompressible case. By this
way, the previous code applies for any deformation field, and is not restricted to our embankment
problem. The stress tensor is obtained by a direct interpolation of the uh first derivatives. As
uh is continuous and piecewise polynomial Pk, its derivatives are also piecewise polynomials with
degree k − 1, but discontinuous at inter-element boundaries : this approximation is denoted as
Pk−1,d. Thus, the stress tensor belongs to the space Th with the Pk−1,d element.
How to run the program
Figure 4.3: The stress tensor visualization (linear elasticity λ = 1).
First, compile the program:
make stressRheolef version 6.6 update 15 April 2014 57
The visualization for the stress tensor as ellipses writes:
./stress < square-P1.field > square-stress-P1.field
./stress < square-P2.field > square-stress-P2.field
field square-stress-P1.field -paraview
field square-stress-P2.field -paraview
The visualization based on paraview requires the TensorGlyph plugin1
If this plugin is not available
on our installation, turns to the mayavi render:
field square-stress-P1.field -proj -mayavi
field square-stress-P2.field -proj -mayavi
Recall that the stress, as a derivative of the deformation, is P0 (resp. P1d) and discontinuous when
the deformation is P1 (resp. P2) and continuous. The approximate stress tensor field is projected
on a continuous piecewise linear space, using the -proj option. Conversely, the 3D visualization
bases on ellipsoids:
./stress < cube-P1.field > cube-stress-P1.field
field cube-stress-P1.field -stereo
Also, if the TensorGlyph plugin is not available in your paraview installation, and the -mayavi
option in the previous command.
1 http://paraview.org/Wiki/ParaView/User_Created_Plugins The tensor glyph paraview plugin is still not
part of the paraview distribution and its installation requires a compilation from paraview source code.58 Rheolef version 6.6 update 15 April 2014
Figure 4.4: The σ01 stress component (linear elasticity λ = 1): d = 2 (top) and d = 3 (bottom) ;
P0 (left) and P1 discontinuous approximation (right).
You can observe a discontinuous constant or piecewise linear representation of the approximate
stress component σ01 (see Fig. 4.4):
field square-stress-P1.field -comp 01
field square-stress-P2.field -comp 01 -elevation
field square-stress-P2.field -comp 01 -elevation -stereo
Notice that the -stereo implies the -paraview one: this feature available with paraview and
mayavi renders. The approximate stress field can be also projected on a continuous piecewise
space:
field square-stress-P2.field -comp 01 -elevation -proj
The tridimensional case writes simply (see Fig. 4.4):
./stress < cube-P1.field > cube-stress-P1.field
./stress < cube-P2.field > cube-stress-P2.field
field cube-stress-P1.field -comp 01 -stereo
field cube-stress-P2.field -comp 01 -stereoRheolef version 6.6 update 15 April 2014 59
and also the P1-projected versions write:
field cube-stress-P1.field -comp 01 -stereo -proj
field cube-stress-P2.field -comp 01 -stereo -proj
These operations can be repeated for each σij components and for both P1 and P2 approximation
of the deformation field.
4.3 Mesh adaptation
The main principle of the auto-adaptive mesh writes [9, 13, 25, 45, 56]:
cin >> omega;
uh = solve(omega);
for (unsigned int i = 0; i < n; i++) {
ch = criterion(uh);
omega = adapt(ch);
uh = solve(omega);
}
The initial mesh is used to compute a first solution. The adaptive loop compute an adaptive
criterion, denoted by ch, that depends upon the problem under consideration and the polynomial
approximation used. Then, a new mesh is generated, based on this criterion. A second solution
on an adapted mesh can be constructed. The adaptation loop converges generally in roughly 5 to
20 iterations.
Let us apply this principle to the elasticity problem.60 Rheolef version 6.6 update 15 April 2014
Example file 4.4: embankment_adapt.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " elasticity_solve . icc "
5 # include " elasticity_criterion . icc "
6 # include " embankment . icc "
7 int main (int argc , char ** argv ) {
8 environment rheolef ( argc , argv );
9 const Float lambda = 1;
10 geo omega ( argv [1]);
11 adapt_option_type options ;
12 string approx = ( argc > 2) ? argv [2] : " P1 ";
13 options . err = ( argc > 3) ? atof ( argv [3]) : 5e -3;
14 size_t n_adapt = ( argc > 4) ? atoi ( argv [4]) : 5;
15 options . hmin = 0.004;
16 for ( size_t i = 0; true ; i ++) {
17 space Xh = embankment_space ( omega , approx );
18 field uh = elasticity_solve ( Xh , lambda );
19 odiststream of ( omega . name () , " field ");
20 of << catchmark (" lambda ") << lambda << endl
21 << catchmark (" u ") << uh ;
22 if ( i == n_adapt ) break ;
23 field ch = elasticity_criterion ( lambda , uh );
24 omega = adapt ( ch , options );
25 odiststream og ( omega . name () , " geo ");
26 og << omega ;
27 }
28 }
Example file 4.5: elasticity_solve.icc
1 field elasticity_solve ( const space & Xh , Float lambda ) {
2 size_t d = Xh . get_geo (). dimension ();
3 point f (0 ,0 ,0);
4 f [d -1] = -1;
5 trial u ( Xh ); test v ( Xh );
6 field lh = integrate ( dot (f , v ));
7 form a = integrate ( lambda *div( u )* div( v ) + 2* ddot (D( u ) ,D( v )));
8 solver sa ( a . uu ());
9 field uh ( Xh , 0);
10 uh . set_u () = sa . solve ( lh . u () - a . ub ()* uh . b ());
11 return uh ;
12 }
Example file 4.6: elasticity_criterion.icc
1 field elasticity_criterion ( Float lambda , const field & uh ) {
2 string grad_approx = ( uh . get_approx () == " P2 ") ? " P1d " : " P0 ";
3 space Xh ( uh . get_geo () , grad_approx );
4 if ( grad_approx == " P0 ") return interpolate ( Xh , norm ( uh ));
5 space T0h ( uh . get_geo () , grad_approx );
6 size_t d = uh . get_geo (). dimension ();
7 tensor I = tensor :: eye ( d );
8 return interpolate ( T0h , sqrt (2* norm2 (D( uh )) + lambda *sqr(div( uh ))));
9 }
Comments
The criterion is here:
ch =
|uh| when using P1
(σ(uh) : D(uh))1/2 when using P2
The elasticity_criterion function compute it as
return interpolate ( Xh , norm ( uh ));
when using P1, and asRheolef version 6.6 update 15 April 2014 61
return interpolate ( T0h , sqrt (2* norm2 (D( uh )) + lambda *sqr(div( uh ))));
when using P2. The sqr function returns the square of a scalar. Conversely, the norm2 function
returns the square of the norm. In the min programm, the result of the elasticity_criterion
function is send to the adapt function:
field ch = elasticity_criterion ( lambda , uh );
omega = adapt ( ch , options );
The adapt_option_type declaration is used by Rheolef to send options to the mesh generator.
The err parameter controls the error via the edge length of the mesh: the smaller it is, the smaller
the edges of the mesh are. In our example, is set by default to one. Conversely, the hmin parameter
controls minimal edge length.
How to run the program
P1: 6661 elements, 3620 vertices P2: 1734 elements, 969 vertices
Figure 4.5: Adapted meshes: the deformation visualization for P1 and P2 approximations.
The compilation command writes:
make embankment_adapt
The mesh loop adaptation is initiated from a bamg mesh (see also appendix B.1).
bamg -g square.bamgcad -o square.bamg
bamg2geo square.bamg square.dmn > square.geo
./embankment_adapt square P1 2e-2
The last command line argument is the target error. The code performs a loop of five mesh adaptations:
the corresponding meshes are stored in files, from square-1.geo.gz to square-5.geo.gz,
and the associated solutions in files, from square-1.field.gz to square-5.field.gz. The additional
‘.gz’ suffix expresses that the files are compressed using gzip.
geo square-5.geo
field square-5.field -paraview -nofill62 Rheolef version 6.6 update 15 April 2014
Note that the ‘.gz’ suffix is automatically assumed by the geo and the field commands.
For a piecewise quadratic approximation:
./embankment_adapt square P2 5e-3
Then, the visualization writes:
geo square-5.geo
field square-5.field -paraview -nofill
A one-dimensional mesh adaptive procedure is also possible:
gmsh -1 line.mshcad -o line.msh
msh2geo line.msh > line.geo
geo line.geo
./embankment_adapt line P2
geo line-5.geo
field line-5.field -comp 0 -elevation
The three-dimensional extension of this mesh adaptive procedure is in development.
4.4 The Stokes problem
Formulation
Let us consider the Stokes problem for the driven cavity in Ω =]0, 1[d
, d = 2, 3. The problem
writes:
(S) find u = (u0, . . . , ud−1) and p defined in Ω such that:
− div(2D(u)) + ∇p = 0 in Ω,
− div u = 0 in Ω,
u = (1, 0) on Γtop,
u = 0 on Γleft ∪ Γright ∪ Γbottom,
∂u0
∂n
=
∂u1
∂n
= u2 = 0 on Γback ∪ Γfront when d = 3,
where D(u) = (∇u + ∇u
T
)/2. The boundaries are represented on Fig. 4.1, page 52.
The variational formulation of this problem expresses:
(V F S) find u ∈ V(1) and p ∈ L
2
0
(Ω) such that:
a(u, v) + b(v, p) = 0, ∀v ∈ V(0),
b(u, q) = 0, ∀q ∈ L
2
0
(Ω),
where
a(u, v) = Z
Ω
2D(u) : D(v) dx,
b(v, q) = −
Z
Ω
div(v) q dx.
V(α) = {v ∈ (H1
(Ω))2
; v = 0 on Γleft ∪ Γright ∪ Γbottom and v = (α, 0) on Γtop}, when d = 2,
V(α) = {v ∈ (H1
(Ω))3
; v = 0 on Γleft ∪ Γright ∪ Γbottom,
v = (α, 0, 0) on Γtop and v2 = 0 on Γback ∪ Γfront}, when d = 3,
L
2
0
(Ω) = {q ∈ L
2
(Ω); Z
Ω
q dx = 0}.Rheolef version 6.6 update 15 April 2014 63
Approximation
The Taylor-Hood [27] finite element approximation of the Stokes problem is considered. We
introduce a mesh Th of Ω and the following finite dimensional spaces:
Xh = {v ∈ (H1
(Ω))d
; v/K ∈ (P2)
d
, ∀K ∈ Th},
Vh(α) = Xh ∩ V(α),
Qh = {q ∈ L
2
(Ω)) ∩ C
0
(Ω); ¯ q/K ∈ P1, ∀K ∈ Th},
The approximate problem writes:
(V F S)h find uh ∈ Vh(1) and p ∈ Qh such that:
a(uh, v) + b(v, ph) = 0, ∀v ∈ Vh(0),
b(uh, q) = 0, ∀q ∈ Qh.
(4.4)
Example file 4.7: cavity.icc
1 space cavity_space ( const geo& omega_h , std :: string approx ) {
2 space Xh ( omega_h , approx , " vector ");
3 Xh . block (" top "); Xh . block (" bottom ");
4 if ( omega_h . dimension () == 3) {
5 Xh . block (" back "); Xh . block (" front ");
6 Xh [1]. block (" left "); Xh [1]. block (" right ");
7 } else {
8 Xh . block (" left "); Xh . block (" right ");
9 }
10 return Xh ;
11 }
12 field cavity_field ( const space & Xh , Float alpha ) {
13 field uh ( Xh , 0.);
14 uh [0][ " top "] = alpha ;
15 return uh ;
16 }
Example file 4.8: stokes_cavity.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " cavity . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega ( argv [1]);
8 space Xh = cavity_space ( omega , " P2 ");
9 space Qh ( omega , " P1 ");
10 trial u ( Xh ) , p ( Qh ); test v ( Xh ) , q ( Qh );
11 form a = integrate (2* ddot (D( u ),D( v )));
12 form b = integrate ( -div( u )* q );
13 form mp = integrate ( p * q );
14 field uh = cavity_field ( Xh , 1);
15 field ph ( Qh , 0.);
16 solver_abtb stokes ( a . uu () , b . uu () , mp . uu ());
17 stokes . solve ( -( a . ub ()* uh . b ()) , -( b . ub ()* uh . b ()) ,
18 uh . set_u () , ph . set_u ());
19 dout << catchmark (" u ") << uh
20 << catchmark (" p ") << ph ;
21 }
Comments
The spaces and boundary conditions and grouped in specific functions, defined in file ‘cavity.icc’.
This file is suitable for a future re-usage. Next, forms are defined as usual, in file
‘stokes_cavity.cc’.64 Rheolef version 6.6 update 15 April 2014
The problem admits the following matrix form:
a.uu trans(b.uu)
b.uu 0
uh.u
ph.u
=
−a.ub ∗ uh.b
−b.ub ∗ uh.b
An initial value for the pressure field is provided:
field ph ( Qh , 0);
The main Stokes solver call writes:
solver_abtb stokes ( a . uu () , b . uu () , mp . uu ());
stokes . solve ( -( a . ub ()* uh . b ()) , -( b . ub ()* uh . b ()) ,
uh . set_u () , ph . set_u ());
For tridimensional geometries (d = 3), this system is solved by the preconditioned conjugate
gradient algorithm. the preconditioner is here the mass matrix mp.uu for the pressure: as showed
in [29], the number of iterations need by the conjugate gradient algorithm to reach a given precision
is then independent of the mesh size. For more details, see the Rheolef reference manual related
to mixed solvers, available e.g. via the unix command:
man solver_abtb
When d = 2, it is interesting to turn to direct methods and factorize the whole matrix of the linear
system. As the pressure is defined up to a constant, the whole matrix is singular. By adding a
Lagrange multiplier that impose a null average pressure value, the system becomes regular and
the modified matrix can be inverted. Such a technique has already been presented in section 2.4
for the Neumann-Laplace problem. Finally, he choice between iterative and direct algorithm for
the Stokes solver is automatically done, regarding the geometry dimension.
How to run the program
Figure 4.6: The velocity visualization for d = 2 and d = 3 with stereo anaglyph.
We assume that the previous code is contained in the file ‘stokes_cavity.cc’. Then, compile the
program as usual (see page 18):
make stokes_cavityRheolef version 6.6 update 15 April 2014 65
and enter the commands:
mkgeo_grid -t 10 > square.geo
./stokes_cavity square > square.field
The previous command solves the problem for the corresponding mesh and writes the solution in
a ‘.field’ file. Run the velocity vector visualization :
field square.field -velocity
Run also some scalar visualizations:
field square.field -comp 0
field square.field -comp 1
field square.field -catchmark p
Note the -catchmark option to the field command: the file reader jumps to the label and then
starts to read the selected field. Next, perform another computation on a finer mesh:
mkgeo_grid -t 20 > square-20.geo
./stokes_cavity square-20.geo > square-20.field
and observe the convergence.
Finally, let us consider the three dimensional case:
mkgeo_grid -T 5 > cube.geo
./stokes_cavity cube.geo > cube.field
and the corresponding visualization:
field cube.field -velocity
field cube.field -comp 0
field cube.field -comp 1
field cube.field -comp 2
field cube.field -catchmark p
4.5 Computing the vorticity
Formulation and approximation
When d = 2, we define [23, page 30] for any distributions φ and v:
curl φ =
∂φ
∂x1
, −
∂φ
∂x0
,
curl v =
∂v1
∂x0
−
∂v0
∂x1
,
and when d = 3:
curl v =
∂v2
∂x1
−
∂v1
∂x2
,
∂v0
∂x2
−
∂v2
∂x0
,
∂v1
∂x0
−
∂v0
∂x1
Let u be the solution of the Stokes problem (S). The vorticity is defined by:
ω = curl u when d = 2,
ω = curl u when d = 3.66 Rheolef version 6.6 update 15 April 2014
Since the approximation of the velocity is piecewise quadratic, we are looking for a discontinuous
piecewise linear vorticity field that belongs to:
Yh = {ξ ∈ L
2
(Ω); ξ/K ∈ P1, ∀K ∈ Th}, when d = 2
Yh = {ξ ∈ (L
2
(Ω))3
; ξi/K ∈ P1, ∀K ∈ Th}, when d = 3
The approximate variational formulation writes:
ωh ∈ Yh,
R
Ω
ωh ξ dx =
R
Ω
curl uh ξ dx, ∀ξ ∈ Yh when d = 2,
ω ∈ Yh,
R
Ω ωh.ξ dx =
R
Ω
curl uh.ξ dx, ∀ξ ∈ Yh when d = 3.
Example file 4.9: vorticity.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 int main (int argc , char ** argv ) {
5 environment rheolef ( argc , argv );
6 field uh ;
7 din >> uh ;
8 const space & Xh = uh . get_space ();
9 string grad_approx = " P " + itos ( Xh . degree () -1) + " d ";
10 string valued = ( uh . size () == 3) ? " vector " : " scalar ";
11 space Lh ( uh . get_geo () , grad_approx , valued );
12 field curl_uh = interpolate ( Lh , curl ( uh ));
13 dout << catchmark (" w ") << curl_uh ;
14 }
Comments
As for the stress tensor (see stress.cc, page 56), the vorticity is obtained by a direct interpolation
of the uh first derivatives and its approximation is discontinuous at inter-element boundaries.
How to run the program
Figure 4.7: The vorticity: elevation view for d = 2 and vector representation for d = 3 (with
anaglyph).Rheolef version 6.6 update 15 April 2014 67
For d = 2, just enter:
make vorticity
./vorticity < square.field | field -elevation -stereo -
and you observe a discontinuous piecewise linear representation of the approximate vorticity. Also,
the vorticity presents two sharp peaks at the upper corners of the driven cavity: the vorticity is
unbounded and the peaks will increase with mesh refinements. This singularity of the solution is
due to the boundary condition for the first component of the velocity u0 that jumps from zero to
one at the corners. The approximate vorticity field can also be projected on a continuous piecewise
linear space, using the -proj option (See Fig. 4.7 left):
./vorticity < square.field | field -elevation -stereo -nofill -
./vorticity < square.field | field -elevation -stereo -proj -
For d = 3, the whole vorticity vector can also be visualized (See Fig. 4.7 right):
./vorticity < cube.field | field -proj -velocity -stereo -
In the previous command, the -proj option has been used: since the 3D render has no support for
discontinuous piecewise linear fields, the P1-discontinuous field is transformed into a P1-continuous
one, thanks to a L
2 projection. P1 The following command shows the second component of the
vorticity vector, roughly similar to the bidimensional case.
./vorticity < cube.field | field -comp 1 -
./vorticity < cube.field | field -comp 1 -proj -
4.6 Computing the stream function
Formulation and approximation
When d = 3, the stream function is a vector-valued field ψ that satisfies [23, page 90]: curl ψ = u
and div ψ = 0. From the identity:
curl curl ψ = −∆ψ + ∇(div ψ)
we obtain the following characterization of ψ :
−∆ ψ = curl u in Ω,
ψ = 0 on Γback ∪ Γfront ∪ Γtop ∪ Γbottom,
∂ψ
∂n = 0 on Γleft ∪ Γright.
When d = 2, the stream function ψ is a scalar-valued field the solution of the following problem [23,
page 88]:
−∆ ψ = curl u in Ω,
ψ = 0 on ∂Ω.68 Rheolef version 6.6 update 15 April 2014
Example file 4.10: streamf_cavity.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 int main (int argc , char ** argv ) {
5 environment rheolef ( argc , argv );
6 field uh ;
7 din >> uh ;
8 const space & Xh = uh . get_space ();
9 size_t d = uh . get_geo (). dimension ();
10 string valued = ( d == 3) ? " vector " : " scalar ";
11 space Ph ( uh . get_geo () , " P2 ", valued );
12 Ph . block (" top "); Ph . block (" bottom ");
13 if ( d == 3) {
14 Ph . block (" back "); Ph . block (" front ");
15 } else {
16 Ph . block (" left "); Ph . block (" right ");
17 }
18 trial u ( Xh ) , psi ( Ph ); test phi ( Ph );
19 form a = ( d == 3) ? integrate ( ddot ( grad ( psi ) , grad ( phi )))
20 : integrate ( dot ( grad ( psi ) , grad ( phi )));
21 form b = ( d ==3) ? integrate ( dot ( curl ( u ) , phi ))
22 : integrate ( curl ( u )* phi );
23 field psi_h ( Ph , 0.);
24 field lh = b * uh ;
25 solver sa ( a . uu ());
26 psi_h . set_u () = sa . solve ( lh . u () - a . ub ()* psi_h . b ());
27 dout << catchmark (" psi ") << psi_h ;
28 }
How to run the program
Figure 4.8: The stream function visualization: isolines for d = 2, and combined vectors and
isonorm surface for d = 3.
For d = 2, just enter (see Fig. 4.8 left):
make streamf_cavity
./streamf_cavity < square.field | field -bw -Rheolef version 6.6 update 15 April 2014 69
For d = 3, the whole stream function vector can be visualized:
./streamf_cavity < cube.field | field -velocity -
The second component of the stream function is showed by:
./streamf_cavity < cube.field | field -comp 1 -
The combined representation of Fig. 4.8.right has been obtained in two steps. First, enter:
./streamf_cavity < cube.field | field -comp 1 -noclean -noexecute -
mv output.vtk psi1.vtk
./streamf_cavity < cube.field | field -velocity -
The -noclean -noexecute options cause the creation of the ‘.vtk’ file for the second component,
without running the paraview visualization. Next, in the paraview window associated to
the whole stream function, select the File->Open menu and load ‘psi1.vtk’ and click on the
green button Apply. Finally, select the Filters/Common/Contours menu: the isosurface appears.
Observe that the 3D stream function is mainly represented by its second component.70 Rheolef version 6.6 update 15 April 2014Chapter 5
Nearly incompressible elasticity and
the stabilized Stokes problems
5.1 The incompressible elasticity problem
Formulation
Let us go back to the linear elasticity problem.
When λ becomes large, this problem is related to the incompressible elasticity and cannot be
solved as it was previously done. To overcome this difficulty, the pressure is introduced :
p = −λdiv u
and the problem becomes:
(E) find u and p defined in Ω such that:
− div(2D(u)) + ∇p = f in Ω,
− div u −
1
λ
p = 0 in Ω,
+B.C.
The variational formulation of this problem expresses:
(V F E) find u ∈ V (1) and p ∈ L
2
(Ω) such that:
a(u, v) + b(v, p) = m(f, v), ∀v ∈ V (0),
b(u, q) − c(p, q) = 0, ∀q ∈ L
2
0
(Ω),
where
m(u, v) = Z
Ω
u.v dx,
a(u, v) = Z
Ω
D(u) : D(v) dx,
b(v, q) = −
Z
Ω
div(v) q dx.
c(p, q) = 1
λ
Z
Ω
p q dx.
V = {v ∈ (H1
(Ω))2
; v = 0 on Γlef t ∪ Γbottom}
When λ becomes large, we obtain the incompressible elasticity problem, that coincides with the
Stokes problem.
7172 Rheolef version 6.6 update 15 April 2014
Approximation
As for the Stokes problem, the Talor-Hood [27] finite element approximation is considered. We
introduce a mesh Th of Ω and the following finite dimensional spaces:
Xh = {v ∈ (H1
(Ω)); v/K ∈ (P2)
2
, ∀K ∈ Th},
Vh(α) = Xh ∩ V,
Qh = {q ∈ L
2
(Ω)) ∩ C
0
(Ω); ¯ q/K ∈ P1, ∀K ∈ Th},
The approximate problem writes:
(V F E)h find uh ∈ Vh(1) and p ∈ Qh such that:
a(uh, v) + b(v, ph) = 0, ∀v ∈ Vh(0),
b(uh, q) − c(p, q) = 0, ∀q ∈ Qh.
Example file 5.1: incompressible-elasticity.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " embankment . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega ( argv [1]);
8 Float inv_lambda = ( argc > 2 ? atof ( argv [2]) : 0);
9 size_t d = omega . dimension ();
10 space Xh = embankment_space ( omega , " P2 ");
11 space Qh ( omega , " P1 ");
12 point f (0 ,0 ,0);
13 f [d -1] = -1;
14 trial u ( Xh ) , p ( Qh ); test v ( Xh ) , q ( Qh );
15 field lh = integrate ( dot (f , v ));
16 form a = integrate (2* ddot (D( u ) ,D( v )));
17 form b = integrate ( -div ( u )* q );
18 form mp = integrate ( p * q );
19 form c = inv_lambda * mp ;
20 field uh ( Xh , 0) , ph (Qh , 0);
21 solver_abtb elasticity ( a . uu () , b . uu () , c . uu () , mp . uu ());
22 elasticity . solve ( lh . u () - a . ub ()* uh . b () , -(b . ub ()* uh . b()) ,
23 uh . set_u () , ph . set_u ());
24 dout << catchmark (" inv_lambda ") << inv_lambda << endl
25 << catchmark (" u ") << uh
26 << catchmark (" p ") << ph ;
27 }
Comments
The problem admits the following matrix form:
a.uu trans(b.uu)
b.uu −c.uu uh.u
ph.u
=
lh.u − a.ub ∗ uh.b
−b.ub ∗ uh.b
The problem is similar to the Stokes one (see page 64). This system is solved by:
solver_abtb elasticity ( a . uu () , b . uu () , c . uu () , mp . uu ());
elasticity . solve ( lh . u () - a . ub ()* uh . b () , -(b . ub ()* uh . b()) ,
uh . set_u () , ph . set_u ());
For two-dimensional problems, a direct solver is used by default. In the three-dimensional case,
an iterative algorithm is the default: the preconditioned conjugate gradient. The preconditioner
is here the mass matrix mp.uu for the pressure. As showed in [29], the number of iterations need
by the conjugate gradient algorithm to reach a given precision is then independent of the mesh
size and is uniformly bounded when λ becomes small, i.e. in the incompressible case.Rheolef version 6.6 update 15 April 2014 73
How to run the program
Figure 5.1: The incompressible linear elasticity (λ = +∞) for N = 2 and N = 3.
We assume that the previous code is contained in the file ‘incompressible-elasticity.cc’.
Compile the program as usual (see page 18):
make incompressible-elasticity
and enter the commands:
mkgeo_grid -t 10 > square.geo
./incompressible-elasticity square.geo 0 > square.field
field square.field -parview -nofill
mkgeo_grid -T 10 > cube.geo
./incompressible-elasticity cube.geo 0 > cube.field
field cube.field -parview -fill -scale 2
The visualization is performed as usual: see section 4.1, page 54. Compare the results on Fig. 5.1,
obtained for λ = +∞ with those of Fig. 4.2, page 54, obtained for λ = 1.
Finally, the stress computation and the mesh adaptation loop is left as an exercise to the reader.
5.2 The P1b − P1 element for the Stokes problem
Formulation and approximation
Let us go back to the Stokes problem. In section 4.4, page 62, the Taylor-Hood finite element was
considered. Here, we turn to the mini-element [5] proposed by Arnold, Brezzi and Fortin, also
well-known as the P1-bubble element. This element is generally less precise than the Taylor-Hood
one, but becomes popular, mostly because it is easy to implement in two and three dimensions
and furnishes a P1 approximation of the velocity field. Moreover, this problem develops some links
with stabilization technique and will presents some new Rheolef features.74 Rheolef version 6.6 update 15 April 2014
We consider a mesh Th of Ω ⊂ R
d
, d = 2, 3 composed only of simplicial elements: triangles when
d = 2 and tetrahedra when d = 3. The following finite dimensional spaces are introduced:
X
(1)
h = {v ∈ (H1
(Ω))d
; v/K ∈ (P1)
d
, ∀K ∈ Th},
Bh = {β ∈ (C
0
(Ω)) ¯ d
; β/K ∈ B(K)
d
, ∀K ∈ Th}
Xh = X
(1)
h ⊕ Bh
Vh(α) = Xh ∩ V(α),
Qh = {q ∈ L
2
(Ω)) ∩ C
0
(Ω); ¯ q/K ∈ P1, ∀K ∈ Th},
where B(K) = vect(λ1 × . . . × λd+1) and λi are the barycentric coordinates of the simplex K.
The B(K) space is related to the bubble local space. The approximate problem is similar to (4.4),
page 63, up to the choice of finite dimensional spaces.
Remark that the velocity field splits in two terms: uh = u
(1)
h +u
(b)
h
, where u
(1)
h ∈ X
(1)
h
is continuous
and piecewise linear, and u
(b)
h ∈ Bh is the bubble term.
We consider the abrupt contraction geometry:
Ω =]−Lu, 0[×]0, c[ ∪ [0, Ld[×]0, 1[
where c > 1 stands for the contraction ratio, and Lu, Ld > 0, are the upstream and downstream
tube lengths. The boundary conditions on u = (u0, u1) for this test case are:
u0 = upoiseuille and u1 = 0 on Γupstream
u = 0 on Γwall
∂u0
∂x1
= 0 and u1 = 0 on Γaxis
∂u
∂n = 0 on Γdownstream
where
Γupstream = {−Lu}×]0, c[
Γdownstream = {Ld}×]0, 1[
Γaxis = ]−Lu, Ld[×{0}
Γwall = ]−Lu, 0[×{c} ∪ {0}×]1, c[ ∪ ]0, Ld[×{1}
The matrix structure is similar to those of the Taylor-Hood element (see section 4.4, page 62).
Since Xh = X
(1)
h ⊕ Bh, any element uh ∈ Xh can be written as a sum uh = u1,h + ub,h where
u1,h ∈ X
(1)
h
and ub,h ∈ Bh. Remark that
a(u1,h, vb,h) = 0, ∀u1,h ∈ X
(1)
h
, ∀vb,h ∈ Bh.
Thus, the form a(., .) defined over Xh × Xh writes simply as the sum of the forms a1(., .) and
ab(., .), defined over X
(1)
h × X
(1)
h
and Bh × Bh respectively. Finaly, the form b(., .) defined over
Xh × Qh writes as the sum of the forms b1(., .) and bb(., .), defined over X
(1)
h × Qh and Bh × Qh
respectively. Then, the linear system admits the following block structure :
A1 0 BT
1
0 Ab BT
b
B1 Bb 0
U1
Ub
P
=
L1
Lb
Lp
An alternative and popular implementation of this element eliminates the unknowns related to
the bubble components (see e.g. [1], page 24). Remark that, on any element K ∈ Th, any bubbleRheolef version 6.6 update 15 April 2014 75
function vK that belongs to B(K) vanishes on the boundary of K and have a compact support in
K. Thus, the Ab matrix is block-diagonal. Moreover, Ab is invertible and Ub writes :
Ub = A
−1
b
(B
T
b p − Lb)
As Ab is block-diagonal, its inverse can be efficiently inverted at the element level during the
assembly process. Then, Ub can be easily eliminated from the system that reduces to:
A1 BT
1
B1 −C
U1
P
=
L1
L˜
p
where L˜
p = Lp − A
−1
b Lp and C = BbA
−1
b BT
b
. Remarks that the matrix structure is similar to
those of the nearly incompressible elasticity (see 5.1, page 5.1). This reduced matrix formulation
of the P1b − P1 element is similar to the direct P1 − P1 stabilized element, proposed by Brezzi
and Pitkäranta [12].
Example file 5.2: stokes_contraction_bubble.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " poiseuille . h "
5
6 int main (int argc , char ** argv ) {
7 environment rheolef ( argc , argv );
8 geo omega ( argv [1]);
9 space X1h ( omega , " P1 ", " vector ");
10 space Bh ( omega , " bubble ", " vector ");
11 space Qh ( omega , " P1 ");
12 space Wh ( omega [" upstream "] , " P1 ");
13 X1h . block (" wall ");
14 X1h . block (" upstream ");
15 X1h [1]. block (" axis ");
16 X1h [1]. block (" downstream ");
17 trial u1 ( X1h ) , ub ( Bh ) , p ( Qh );
18 test v1 ( X1h ) , vb ( Bh ) , q ( Qh );
19 form mp = integrate ( p * q );
20 form b1 = integrate ( -div( u1 )* q );
21 form bb = integrate ( -div( ub )* q );
22 form a1 = integrate (2* ddot (D( u1 ) ,D( v1 )));
23 form_option_type fopt ;
24 fopt . invert = true ;
25 form inv_ab = integrate (2* ddot (D( ub ) ,D( vb )) , fopt );
26 form c = bb * inv_ab * trans ( bb );
27 field u1h ( X1h , 0) , ph ( Qh , 0);
28 string sys_coord = omega . coordinate_system_name ();
29 Float cr = omega . xmax ()[1];
30 u1h [0][ " upstream "] = interpolate ( Wh , u_poiseuille ( cr , sys_coord ));
31 solver_abtb stokes ( a1 . uu () , b1 . uu () , c . uu () , mp . uu ());
32 stokes . solve ( -( a1 . ub ()* u1h . b ()) , -( b1 . ub ()* u1h . b ()) ,
33 u1h . set_u () , ph . set_u ());
34 dout << catchmark (" inv_lambda ") << 0 << endl
35 << catchmark (" u ") << u1h
36 << catchmark (" p ") << ph ;
37 }
Comments
First, A
−1
b
is computed as:
form_option_type fopt ;
fopt . invert = true ;
form inv_ab = integrate (2* ddot (D( ub ) ,D( vb )) , fopt );
Notice the usage of the optional parameter fopt to the integrate function. As the form is
bloc-diagonal, its inverse is computed element-by-element during the assembly process. Next, the
C = BbA
−1
b BT
b
form is simply computed as:76 Rheolef version 6.6 update 15 April 2014
form c = bb * inv_ab * trans ( bb );
Notice also the automatic computation of the geometric coordinate system and contraction ratio
c from the input mesh, as:
string sys_coord = omega . coordinate_system_name ();
Float cr = omega . xmax ()[1];
These parameters are send to the function that computes the Poiseuille input flow boundary
condition:
u1h [0][ " upstream "] = interpolate ( Wh , u ( cr , sys_coord ));
The file poiseuille.h contains code for the velocity and stream function boundary conditions.
Example file 5.3: poiseuille.h
1 struct u_poiseuille : field_functor < u_poiseuille ,Float > {
2 Float operator () ( const point & x ) const {
3 return a *( c + x [1])*( c - x [1]); }
4 u_poiseuille ( const Float & c1 , std :: string sc ) : c ( c1 )
5 { a = ( sc == " cartesian ") ? 3/(2* pow (c ,3)) : 4/ pow (c ,4); }
6 protected : Float c , a ;
7 };
8 struct psi_poiseuille : field_functor < psi_poiseuille ,Float > {
9 Float operator () ( const point & x ) const {
10 return xy ? a *sqr(c - x [1])*(2* c + x [1]) : a *sqr(c - x [1])* sqr( c + x [1]); }
11 psi_poiseuille ( const Float & c1 , std :: string sc )
12 : c ( c1 ) , xy ( sc == " cartesian ")
13 { a = xy ? -1/(2* pow (c ,3)) : -1/ pow (c ,4); }
14 protected : Float c , a ; bool xy ;
15 };
The Poiseuille velocity upstream boundary condition upoiseuille has been scaled such that the total
flow rate is equal to one. The stream function is equal to −1 on the axis and to zero on the wall.
This file contains also a treatment of the axisymmetric variant of the geometry: this case will be
presented in the next paragraphs.
How to run the program
The boundary conditions in this example are related to an abrupt contraction geometry with a
free surface. The corresponding mesh ‘contraction.geo’ can be easily builded from the geometry
description file ‘contraction.mshcad’, which is provided in the example directory of the Rheolef
distribution. The building mesh procedure is presented with details in appendix B, page B.
gmsh -2 contraction.mshcad -o contraction.msh
msh2geo contraction.msh > contraction.geo
geo contraction.geo
The mesh is represented on Fig. 5.2.top. Then, the computation and the visualization writes:
make stokes_contraction_bubble
./stokes_contraction_bubble contraction.geo > contraction-P1.field
field contraction-P1.field -paraview -velocity
The visualization of the velocity field brings few informations about the properties of the flow.
The stream function is more relevant for stationary flow visualization.Rheolef version 6.6 update 15 April 2014 77
ψmax = 1.109 × 10−3
ψmax = 1.118 × 10−3
Figure 5.2: Solution of the Stokes problem in the abrupt contraction: (top) the mesh; (center) the
P1 stream function associated to the P1b−P1 element; (bottom) the P2 stream function associated
to the P2 − P1 Taylor-Hood element.78 Rheolef version 6.6 update 15 April 2014
Example file 5.4: streamf_contraction.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " poiseuille . h "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 field uh ;
8 din >> uh ;
9 const geo & omega = uh . get_geo ();
10 size_t d = omega . dimension ();
11 string sys_coord = omega . coordinate_system_name ();
12 Float c = omega . xmax ()[1];
13 string approx = " P " + itos ( uh . get_space (). degree ());
14 space Ph ( omega , approx );
15 Ph . block (" upstream ");
16 Ph . block (" wall ");
17 Ph . block (" axis ");
18 space Wh ( omega [" upstream "] , approx );
19 const space & Xh = uh . get_space ();
20 field psi_h ( Ph , 0);
21 psi_h [" upstream "] = interpolate ( Wh , psi_poiseuille (c , sys_coord ));
22 psi_h [" wall "] = 0;
23 psi_h [" axis "] = -1;
24 form_option_type fopt ;
25 fopt . ignore_sys_coord = true ;
26 trial psi ( Ph ) , u ( Xh );
27 test xi ( Ph ) , v ( Xh );
28 form a = ( d == 3) ? integrate ( ddot ( grad ( psi ) , grad ( xi )))
29 : integrate ( dot ( grad ( psi ) , grad ( xi )) , fopt );
30 field lh = integrate ( dot ( uh , bcurl ( xi )));
31 solver sa ( a . uu ());
32 psi_h . set_u () = sa . solve ( lh . u () - a . ub ()* psi_h . b ());
33 dout << catchmark (" psi ") << psi_h ;
34 }
Notice the usage of the optional parameter fopt to the integrate function.
fopt . ignore_sys_coord = true ;
In the axisymmetric coordinate system, there is a specific definition of the stream function, together
with the use of a variant of the curl operator, denoted as bcurl in Rheolef.
field lh = integrate ( dot ( uh , bcurl ( xi )));
The axisymmetric case will be presented in the next section. By this way, our code is abble to
deal with both cartesian and axisymmetric geometries.
The stream function ψ (see also section 4.6) is computed and visualized as:
make streamf_contraction
./streamf_contraction < contraction-P1.field > contraction-P1-psi.field
field contraction-P1-psi.field -paraview
field contraction-P1-psi.field -n-iso 15 -n-iso-negative 10 -bw
The P1 stream function is represented on Fig. 5.2.center. The stream function is zero along the wall
and the line separating the main flow and the vortex located in the outer corner of the contraction.
Thus, the isoline associated to the zero value separates the main flow from the vortex. In order
to observe this vortex, an extra -n-iso-negative 10 option is added: ten isolines are drawn
for negatives values of ψ, associated to the main flow, and n_iso-10 for the positives values,
associated to the vortex.
A similar computation based on the Taylor-Hood P2 − P1 element is implemented in
stokes_contraction.cc. The code is similar, up to the boundary conditions, to
stokes_cavity.cc (see page 63): thus it is not listed here but is available in the Rheolef example
directory.Rheolef version 6.6 update 15 April 2014 79
make stokes_contraction
./stokes_contraction contraction.geo > contraction-P2.field
field contraction-P2.field -paraview -velocity
./streamf_contraction < contraction-P2.field > contraction-P2-psi.field
field contraction-P2-psi.field -n-iso-negative 10 -bw
The associated P2 stream function is represented on Fig. 5.2.bottom. Observe that the two solutions
are similar and that the vortex activity, defined as ψmax, is accurately computed with the
two methods (see also [47], Fig. 5.11.a, page 143).
field contraction-P1-psi.field -max
field contraction-P2-psi.field -max
Recall that the stream function is negative in the main flow and positive in the vortex located
in the outer corner of the contraction. Nevertheless, the Taylor-Hood based solution is more
accurate : this is perceptible on the graphic, in the region where the upstream vortex reaches the
boundary.
5.3 Axisymmetric geometries
Axisymmetric geometries are fully supported in Rheolef: the coordinate system is associated
to the geometry description, stored together with the mesh in the ‘.geo’ and this information is
propagated in spaces, forms and fields without any change in the code. Thus, a code that works in
plane a 2D plane geometry is able to support a 3D axisymmetric one without changes. A simple
axisymmetric geometry writes:
mkgeo_grid -t 10 -zr > square-zr.geo
more square-zr.geo
Remark the additional line in the header:
coordinate_system zr
The axis of symmetry is denoted as z while the polar coordinates are (r, θ). By symmetry, the
problem is supposed to be independent upon θ and the computational domain is described by
(x0, x1) = (z, r). Conversely, in some cases, it could be convenient to swap the order of the
coordinates and use (r, z): this feature is obtained by the -rz option:
mkgeo_grid -t 10 -rz > square-rz.geo
more square-rz.geo
Axisymmetric problems uses L
2
functional space equipped with the following weighted scalar
product
(f, g) = Z
Ω
f(z, r) g(z, r) r drdz
and all usual bilinear forms support this weight. Thus, the coordinate system can be chosen
at run time and we can expect an efficient source code reduction.
5.4 The axisymmetric stream function and stress tensor
In the axisymmetric case, the velocity field u = (uz, ur) can be expressed in terms of the Stokes
stream function ψ by (see Batchelor [8, p.453] and [57]):
u = (uz, ur) =
1
r
∂ψ
∂r , −
1
r
∂ψ
∂z
(5.1)80 Rheolef version 6.6 update 15 April 2014
Recall that in the axisymmetric case:
curl ψ =
1
r
∂(rψ)
∂r , −
∂ψ
∂z
Thus, from this definition, in axisymmetric geometries u 6= curl ψ and the definition of ψ differs
from the 2D plane or 3D cases (see section 4.6, page 67).
Let us turn to a variational formulation in order to compute ψ from u. For any ξ ∈ H1
(Ω), let
us multiply (5.1) by v = (∂rξ, −∂zξ) and then integrate over Ω with the r dr dz weight. For any
known u velocity field, the problem writes:
(P): find ψ ∈ Ψ(ψΓ) such that
a(ψ, ξ) = l(ξ), ∀ξ ∈ Ψ(0)
where we have introduced the following bilinear forms:
a(ψ, ξ) = Z
Ω
∂ψ
∂r
∂ξ
∂r +
∂ψ
∂z
∂ξ
∂z
dr dz
l(ξ) = Z
Ω
∂ξ
∂r uz −
∂ξ
∂z ur
r dr dz
These forms are defined in ‘streamf_contraction.cc’ as:
form_option_type fopt ;
fopt . ignore_sys_coord = true ;
form a = integrate ( dot ( grad ( psi ), grad ( xi )) , fopt );
and
field lh = integrate ( dot ( uh , bcurl ( xi )));
The fopt.ignore_sys_coord alows us to drops the r integration weight, i.e. replace r dr dz by
dr dz when computing the a(., .) form. Conversely, l involves the bcurl operator defined as:
bcurl ξ =
∂ξ
∂r , −
∂ξ
∂z
It is is closely related but differs from the standard curl operator:
curl ξ =
1
r
∂(rξ)
∂r , −
∂ξ
∂z
The bcurl operator is a specific notation introduced in Rheolef: it coincides with the usual curl
operator except for axisymmetric geometries. In tht case, it refers to the Batchelor trick, suitable
for the computation of the stream function.
As an example, let us reconsider the contraction geometry (see section 5.2, page 73), extended in
the axisymmetric case. In that case, the functional space is defined by:
Ψ(ψΓ) = {ϕ ∈ H1
(Ω); ϕ = ψΓ on Γupstream ∪ Γwall ∪ Γaxis}
with
ψΓ =
ψpoiseuile on Γupstream
0 on Γwall
−1 on Γaxis
This space corresponds to the imposition of Dirichlet boundary conditions on Γupstream, Γwall and
Γaxis and a Neumann boundary condition on Γdownstream.
The following unix commands generate the axisymmetric geometry:Rheolef version 6.6 update 15 April 2014 81
ψmax = 1.84 × 10−3
Figure 5.3: Solution of the axisymmetric Stokes problem in the abrupt contraction: (top) the P2
stream function associated to the P2 − P1 element; (bottom) comparison with the 2D Cartesian
solution (in red).
gmsh -2 contraction.mshcad -o contraction.msh
msh2geo -zr contraction.msh > contraction-zr.geo
more contraction-zr.geo
geo contraction-zr.geo
The previous code stokes_contraction.cc and streamf_contraction.cc are both reused as:
./stokes_contraction contraction-zr.geo > contraction-zr-P2.field
./streamf_contraction < contraction-zr-P2.field > contraction-zr-P2-psi.field
field contraction-zr-P2-psi.field -n-iso-negative 10 -bw
The solution is represented on Fig. 5.3: it slightly differs from the 2D Cartesian solution, as
computed in the previous section (see Fig. 5.2). The vortex size is smaller but its intensity
ψmax = 1.84 × 10−3
is higher. Despite the stream functions looks like similar, the plane solutions
are really different, as we can observe from a cut of the first component of the velocity along the
axis (see Fig. 5.4):
field contraction-P2.field -comp 0 -cut -normal 0 1 -origin 0 1e-15
field contraction-zr-P2.field -comp 0 -cut -normal 0 1 -origin 0 1e-15
The 1e-15 argument replace the zero value, as the mesh intersection cannot yet be done exactly
on the boundary. Notice that the stokes_contraction_bubble.cc can be also reused in a similar
way:
./stokes_contraction_bubble contraction-zr.geo > contraction-zr-P1.field
./streamf_contraction < contraction-zr-P1.field > contraction-zr-P1-psi.field
field contraction-zr-P1-psi.field -n-iso-negative 10 -bw82 Rheolef version 6.6 update 15 April 2014
0
1
2
3
4
-8 -4 0 2
z
u0(z, 0) axisymetric
cartesian
-2
-1
0
-8 -4 0 2
z
τθθ(z, 0)
Figure 5.4: Solution of the plane and axisymmetric Stokes problem in the abrupt contraction: cut
along the axis of symmetry: (left): u0; (right) τθθ.
There is another major difference with axisymmetric problems: the rate of deformation tensor
writes:
τ = 2D(u) =
τzz τrz 0
τrz τrr 0
0 0 τθθ
Thus, there is an additional non-zero component τθθ that is automatically integrated into the
computations in Rheolef. The incompressibility relation leads to tr(τ ) = τzz + τrr + τθθ = 0.
Here σtot = −p.I +τ is the total Cauchy stress tensor (by a dimensionless procedure, the viscosity
can be taken as one). By reusing the stress.cc code (see page 56) we are able to compute the
tensor components:
make stress
./stress < contraction-zr-P1.field > contraction-zr-P1-tau.field
The visualization along the axis of symmetry for the τθθ component is obtained by (see Fig. 5.4):
field contraction-zr-P1-tau.field -comp 22 -proj -cut -normal 0 1 -origin 0 1e-15
Recall that the τzz and τrr components are obtained by the -comp 00 and -comp 11 options,
respectively. The non-zero values along the axis of symmetry expresses the elongational effects in
the entry region of the abrupt contraction.Chapter 6
Time-dependent problems
6.1 The heat equation
Formulation
Let T > 0, Ω ⊂ R
d
, d = 1, 2, 3 and fdefined in Ω. The heat problem writes:
(P): find u, defined in Ω×]0, T[, such that
∂u
∂t − ∆u = f in Ω×]0, T[,
u(0) = 0 in Ω,
u(t) = 0 on ∂Ω×]0, T[.
where f is a known function. In the present example, we consider f = 1.
Approximation
Let ∆t > 0 and tn = n∆t, n > 0. The problem is approximated with respect to time by the
following first-order implicit Euler scheme:
u
n+1 − u
n
∆t
− ∆u
n+1 = f(tn+1) in Ω
where u
n ≈ u(n∆t) and u
(0) = 0. The variational formulation of the time-discretized problem
writes:
(V F)n: Let u
n being known, find u
n+1 ∈ H1
0
(Ω) such that
a (u
n+1, v) = l
(n)
(v), ∀v ∈ H1
0
(Ω).
where
a(u, v) = Z
Ω
(uv + ∆t ∇u.∇v) v dx
l
(n)
(v) = Z
Ω
(u
n + ∆t f(tn+1)) v dx
This is a Poisson-like problem. The discretization with respect to space of this problem is similar
to those presented in section 1.1, page 15.
8384 Rheolef version 6.6 update 15 April 2014
Example file 6.1: heat.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 int main (int argc , char ** argv ) {
5 environment rheolef ( argc , argv );
6 geo omega ( argv [1]);
7 size_t n_max = ( argc > 2) ? atoi ( argv [2]) : 100;
8 Float delta_t = 0.5/ n_max ;
9 space Xh ( omega , " P1 ");
10 Xh . block (" boundary ");
11 trial u ( Xh ); test v ( Xh );
12 form a = integrate ( u * v + delta_t * dot ( grad ( u ) , grad ( v )));
13 solver sa = ldlt ( a . uu ());
14 field uh ( Xh , 0);
15 branch event (" t "," u ");
16 dout << event (0 , uh );
17 for ( size_t n = 1; n <= n_max ; n ++) {
18 field rhs = uh + delta_t ;
19 field lh = integrate ( rhs * v );
20 uh . set_u () = sa . solve ( lh . u () - a. ub ()* uh . b ());
21 dout << event (n * delta_t , uh );
22 }
23 }
Comments
Notice the use of the branch class:
branch event (" t "," u ");
this is a wrapper class that is used here to print the branch of solution (tn, un)n>0, on the standard
output in the ‘.branch’ file format. An instruction as:
dout << event (t , uh );
is equivalent to the formatted output
dout << catchmark (" t ") << t << endl
<< catchmark (" u ") << uh ;Rheolef version 6.6 update 15 April 2014 85
How to run the program
Figure 6.1: Animation of the solution of the heat problem.
We assume that the previous code is contained in the file ‘heat.cc’. Then, compile the program
as usual (see page 18):
make heat
For a one dimensional problem, enter the commands:
mkgeo_grid -e 100 > line.geo
./heat line.geo > line.branch
The previous commands solve the problem for the corresponding mesh and write the solution in
the field-family file format ‘.branch’. For a bidimensional one:
mkgeo_grid -t 10 > square.geo
./heat square.geo > square.branch
For a tridimensional one:
mkgeo_grid -T 10 > box.geo
./heat box.geo > box.branch86 Rheolef version 6.6 update 15 April 2014
How to run the animation
branch line.branch -gnuplot -umax 0.125
A gnuplot window appears. Enter q to exit the window. For a bidimensional case, a more
sophisticated procedure is required. Enter the following unix commands:
branch square.branch -paraview
paraview &
A window appears, that looks like a video player. Then, open the File->open menu and
load square-..vtk. The first ’.’ stands for a wildcard, i.e. the time index family. Then,
press the apply green button and, click a first time on the video play button, at the top
of the window. Next, go to the object inspector window, select display and click on the
re-scale to data range button. Then click a second time on the video play button. An elevation
view can be also obtained: Select the Filter->alphabetical->wrap(scalar) menu, choose
10 as scale factor and press the apply green button. Then, click on the graphic window, rotate
the view and finally re-play the animation
To generate an animation file1
, go to the File->save animation menu and enter as file name
square and as file type jpeg. A collection of jpeg files are generated by paraview. Then, run
the unix command:
ffmpeg -r 2 -i ’square.%04d.jpg’ square.mov
The animation file square.mov can now be started from any video player, such as vlc:
vlc --loop square.mov
For the tridimensional case, the animation feature is similar.
6.2 The convection-diffusion problem
Formulation
Let T > 0 and ν > 0. The convection-diffusion problem writes:
(P): find φ, defined in Ω×]0, T[, such that
∂φ
∂t + u.∇φ − ν∆φ + σφ = 0 in Ω×]0, T[
φ(0) = φ0 in Ω
φ(t) = φΓ(t) on ∂Ω×]0, T[
where u, σ > 0, φ0 and φΓ being known. Notice the additional u.∇ operator.
Time approximation
This problem is approximated by the following first-order implicit Euler scheme:
φ
n+1 − φ
n ◦ Xn
∆t
− ν∆φ
n+1 + σφn+1 = 0 in Ω
1At this time, the avi output feature is broken in paraview, and an alternate mpeg output is here suggested.Rheolef version 6.6 update 15 April 2014 87
where ∆t > 0, φ
n ≈ φ(n∆t) and φ
(0) = φ0.
Let tn = n∆t, n > 0. The term Xn(x) is the position at tn of the particle that is in x at tn+1
and is transported by u
n. Thus, Xn(x) = X(tn, x) where X(t, x) is the solution of the differential
equation
( dX
dt
= u(X(t, x), t) p.p. t ∈ ]tn, tn+1[,
X(tn+1, x) = x.
Then Xn(x) is approximated by the first-order Euler approximation
Xn
(x) ≈ x − ∆t n
n
(x).
This algorithm has been introduced by O. Pironneau (see e.g. [41]), and is known as the method
of characteristic in the finite difference context and as the Lagrange-Galerkin in the finite element
one. The efficient evaluation of φh ◦ Xn(x) in an unstructured mesh involves a hierarchical d-tree
(quadtree, octree) data structure for the localization of the element K of the mesh that contains
x. When d = 3 requires also sophisticated geometric predicates to test whether x ∈ K without
rounding errors, and avoid to conclude that no elements contains a point x close to ∂K up to
rounding errors. This problems is addressed in Rheolef based on the cgal library.
The following code implements the classical rotating Gaussian hill test case (see e.g. [46]).
Example file 6.2: convect.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " rotating - hill . h "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega ( argv [1]);
8 string approx = ( argc > 2) ? argv [2] : " P1 ";
9 Float nu = ( argc > 3) ? atof ( argv [3]) : 1e -2;
10 size_t n_max = ( argc > 4) ? atoi ( argv [4]) : 50;
11 size_t d = omega . dimension ();
12 Float delta_t = 2* acos ( -1.)/ n_max ;
13 space Vh ( omega , approx , " vector ");
14 field uh = interpolate (Vh , u ( d ));
15 space Xh ( omega , approx );
16 Xh . block (" boundary ");
17 field phi_h = interpolate ( Xh , phi (d , nu ,0));
18 characteristic X ( - delta_t * uh );
19 quadrature_option_type qopt ;
20 qopt . set_family ( quadrature_option_type :: gauss_lobatto );
21 qopt . set_order ( Xh . degree ());
22 trial phi ( Xh ); test psi ( Xh );
23 branch event (" t "," phi ");
24 dout << catchmark (" nu ") << nu << endl
25 << event (0 , phi_h );
26 for ( size_t n = 1; n <= n_max ; n ++) {
27 Float t = n * delta_t ;
28 Float c1 = 1 + delta_t * phi :: sigma (d , nu , t );
29 Float c2 = delta_t * nu ;
30 form a = integrate ( c1 * phi * psi + c2 * dot ( grad ( phi ) , grad ( psi )) , qopt );
31 field lh = integrate ( compose ( phi_h , X )* psi , qopt );
32 solver sa ( a . uu ());
33 phi_h . set_u () = sa . solve ( lh . u () - a . ub ()* phi_h . b ());
34 dout << event (t , phi_h );
35 }
36 }
Comments
The characteristic variable X implements the localizer Xn(x):
characteristic X ( - delta_t * uh );88 Rheolef version 6.6 update 15 April 2014
Combined with the compose function, it perform the composition φh ◦ Xn. The right-hand side
is then computed by using the integrate function:
field lh = integrate ( compose ( phi_h , X )* psi , qopt );
Notice the additional qopt argument to the integrate function. By default, when this argument
is omitted, a Gauss quadrature formulae is assumed, and the number of point is computed such
that it integrate exactlty 2k + 1 polynoms, where k is the degree of polynoms in Xh. The GaussLobatto
quadrature formule is recommended for Lagrange-Galerkin methods. Recall that this
choice of quadrature formulae guaranties inconditional stability at any polynomial order. Here,
we specifies a Gauss-Lobatto quadrature formulae that should be exact for k order polynoms. The
bilinear form is computed via the same quadrature formulae:
form a = integrate ( c1 * phi * psi + c2 * dot ( grad ( phi ) , grad ( psi )) , qopt );
A test case is described in [42]: we take Ω =] − 2, 2[d and T = 2π. This problem provides an
example for a convection-diffusion equation and a known analytical solution:
φ(t, x) = exp
−λt − r(t)|x − x0(t)|
2
where λ = 4νt0 > 0 with t0 > 0 and ν > 0, x0(t) is the moving center of the hill and r(t) =
1/(t0 + 4νt). The source term is time-dependent: σ(t) = λ − 2dνr(t) and has been adjusted such
that the right-hand side is zero. The moving center of the hill x0(t) is associated to the velocity
field u(t, x) as:
d u(t, x) x0(t)
1 1/(2π) t/(2π) − 1/2
2 (y, −x) (− cos(t)/2, sin(t)/2)
3 (y, −x, 0) (− cos(t)/2, sin(t)/2, 0)
Example file 6.3: rotating-hill.h
1 struct u : field_functor {
2 point operator () ( const point & x ) const {
3 return ( d == 1) ? point ( u0 ) : point ( x [1] , -x [0]); }
4 u ( size_t d1 ) : d ( d1 ) , u0 (0.5/ acos ( Float ( -1))) {}
5 protected : size_t d ; Float u0 ;
6 };
7 struct phi : field_functor < phi ,Float > {
8 static Float sigma ( size_t d , Float nu1 , Float t ) {
9 const Float t0 = 0.2;
10 return 4* nu1 / t0 - 2* d * nu1 /( t0 + 4* nu1 * t ); }
11 Float operator () ( const point & x ) const {
12 point x0t ;
13 if ( d == 1) { x0t = point ( x0 [0] + u0 * t ); }
14 else { x0t = point ( x0 [0]* cos ( t) + x0 [1]* sin ( t ),
15 - x0 [0]* sin ( t ) + x0 [1]* cos ( t ));
16 }
17 return exp ( -4* nu *( t/ t0 ) - dist2 (x , x0t )/( t0 +4* nu * t ));
18 }
19 phi ( size_t d1 , Float nu1 , Float t1 ) : d ( d1 ) , nu ( nu1 ) , t ( t1 ) ,
20 t0 (0.2) , u0 (0.5/ acos ( Float ( -1))) , x0 ( -0.5 ,0) {}
21 protected : size_t d ; Float nu , t , t0 , u0 ; point x0 ;
22 };
Notice the use of a class-function phi for the implementation of φ(t) as a function of x. Such
programming style has been introduced in the standard template library [35], which is a part of
the standard C++ library. By this way, for a given t, φ(t) can be interpolated as an usual function
on a mesh.
How to run the program
We assume that the previous code is contained in the file ‘convect.cc’. Then, compile the program
as usual (see page 18):Rheolef version 6.6 update 15 April 2014 89
Figure 6.2: Animation of the solution of the rotating hill problem.
make convect
and enter the commands: Running the one-dimensional test case:
mkgeo_grid -e 500 -a -2 -b 2 > line2.geo
./convect line2.geo P1 > line2.branch
branch line2.branch -gnuplot
Notice the hill that moves from x = −1/2 to x = 1/2. Since the exact solution is known, it is
possible to analyze the error:90 Rheolef version 6.6 update 15 April 2014
Example file 6.4: convect_error.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " rotating - hill . h "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 Float tol = ( argc > 1) ? atof ( argv [1]) : 1e -10;
8 Float nu ;
9 din >> catchmark (" nu ") >> nu ;
10 branch get (" t "," phi ");
11 branch put (" t "," phi_h "," pi_h_phi ");
12 derr << " # t \ terror_l2 \ terror_linf " << endl ;
13 field phi_h ;
14 Float err_l2_l2 = 0;
15 Float err_linf_linf = 0;
16 for ( Float t = 0 , t_prec = 0; din >> get (t , phi_h ); t_prec = t ) {
17 const space & Xh = phi_h . get_space ();
18 size_t d = Xh . get_geo (). dimension ();
19 field pi_h_phi = interpolate ( Xh , phi (d , nu ,t ));
20 trial phi ( Xh ); test psi ( Xh );
21 form m = integrate ( phi * psi );
22 field eh = phi_h - pi_h_phi ;
23 Float err_l2 = sqrt ( m ( eh , eh ));
24 Float err_linf = eh . max_abs ();
25 err_l2_l2 += sqr( err_l2 )*( t - t_prec );
26 err_linf_linf = max ( err_linf_linf , err_linf );
27 dout << put (t , phi_h , pi_h_phi );
28 derr << t << " \ t " << err_l2 << " \ t " << err_linf << endl ;
29 }
30 derr << " # error_l2_l2 = " << sqrt ( err_l2_l2 ) << endl ;
31 derr << " # error_linf_linf = " << err_linf_linf << endl ;
32 return ( err_linf_linf <= tol ) ? 0 : 1;
33 }
The numerical error φh − πh(φ) is computed as:
field pi_h_phi = interpolate ( Xh , phi (d , nu ,t ));
field eh = phih - pi_h_phi ;
and its L
2 norm is printed on the standard error. Observe the use of the branch class as both
input and output field stream.
make convect_error
./convect_error < line2.branch > line2-cmp.branch
branch line2-cmp.branch -gnuplot
The instantaneous L
2
(Ω) norm is printed at each time step and the total error in L
2
(]0, T[;L
2
(Ω))
is finally printed at the end of the stream.Rheolef version 6.6 update 15 April 2014 91
kφh − πh(φ)kL2(L2) kφh − πh(φ)kL∞(L∞)
0.001
0.01
0.1
1
0.001 0.01 0.1 1
h
∆t = 2π/50
∆t = 2π/100
∆t = 2π/200
2
2
P1
P2
0.001
0.01
0.1
1
0.001 0.01 0.1 1
h
∆t = 2π/50
∆t = 2π/100
∆t = 2π/200
P1
P2
Figure 6.3: Diffusion-convection when d = 1 and ν = 10−2
: convergence versus h and ∆t for P1
and P2 elements: (left) in L
2
(L
2
) norm; (right) in L∞(L∞) norm.
A P2 approximation can be used as well:
./convect line2.geo P2 > line2.branch
branch line2.branch -gnuplot
./convect_error < line2.branch > line2-cmp.branch
On Fig. 6.3.left we observe the L
2
(L
2
) convergence versus h for the P1 and P2 elements when
d = 1: the errors reaches a plateau that decreases versus ∆t. On Fig. 6.3.right the L∞(L∞) norm
of the error presents a similar behavior. Since the plateau are equispaced, the convergence versus
∆t is of first order.
These computation was performed for a convection-diffusion problem with ν = 10−2
. The pure
transport problem (ν = 0, without diffusion) computation is obtained by:
./convect line2.geo P1 0 > line2.branch
branch line2.branch -gnuplot
Let us turn to the two-dimensional test case:
mkgeo_grid -t 80 -a -2 -b 2 -c -2 -d 2 > square2.geo
./convect square2.geo P1 > square2.branch
branch square2.branch -paraview
paraview &
The visualization and animation are similar to those of the head problem previously presented
in paragraph 6.1. Observe the rotating hill. The result is shown on Fig. 6.2. The error analysis
writes:
./convect_error < square2.branch > square2-cmp.branch
branch square2-cmp.branch -paraview
From the paraview menu, you can visualize simultaneously both the approximate solution and the
Lagrange interpolate of the exact one. Finally, the three-dimensional case:
mkgeo_grid -T 15 -a -2 -b 2 -c -2 -d 2 -f -2 -g 2 > cube2.geo
./convect cube2.geo P1 > cube2.branch
The visualization is similar to the two-dimensional case.92 Rheolef version 6.6 update 15 April 2014
6.3 The Navier-Stokes problem
Formulation
This longer example combines most functionalities presented in the previous examples.
Let us consider the Navier-Stokes problem for the driven cavity in Ω =]0, 1[d
, d = 2, 3. Let Re > 0
be the Reynolds number, and T > 0 a final time. The problem writes:
(NS): find u = (u0, . . . , ud−1) and p defined in Ω×]0, T[ such that:
Re
∂u
∂t + u.∇u
− div(2D(u)) + ∇p = 0 in Ω×]0, T[,
− div u = 0 in Ω×]0, T[,
u(t= 0) = 0 in Ω × {0, T},
u = (1, 0) on Γtop×]0, T[,
u = 0 on (Γleft ∪ Γright ∪ Γbottom)×]0, T[,
∂u0
∂n
=
∂u1
∂n
= u2 = 0 on (Γback ∪ Γfront)×]0, T[ when d = 3,
where D(u) = (∇u + ∇u
T
)/2. This nonlinear problem is the natural extension of the linear
Stokes problem, as presented in paragraph 6.3, page 92. The boundaries are represented on
Fig. 4.1, page 52.
Time approximation
Let ∆t > 0. Let us consider the following backward second order scheme, for all φ ∈ C
2
([0, T]) :
dφ
dt
(t) = 3φ(t) − 4φ(t − ∆t) + φ(t − 2∆t)
2∆t
+ O(∆t
2
)
The problem is approximated by the following second-order implicit scheme (BDF2):
Re3u
n+1 − 4u
n ◦ Xn + u
n−1 ◦ Xn−1
2∆t
− div(2D(u
n+1)) + ∇p
n+1 = 0 in Ω,
− div u
n+1 = 0 in Ω,
u
n+1 = (1, 0) on Γtop,
u
n+1 = 0 on Γleft ∪ Γright ∪ Γbottom,
∂un+1
0
∂n
=
∂un+1
1
∂n
= u
n+1
2 = 0 on Γback ∪ Γfront when d = 3,
where, following [10, 18]:
Xn
(x) = x − ∆t u
∗
(x)
Xn−1
(x) = x − 2∆t u
∗
(x)
u
∗ = 2u
n − u
n−1
It is a second order extension of the method previously introduced in paragraph 6.2 page 86. The
scheme defines a second order recurrence for the sequence (u
n)n>−1, that starts with u
−1 = u
0 = 0.
Variational formulation
The variational formulation of this problem expresses:
(NS)∆t: find u
n+1 ∈ V(1) and p
n+1 ∈ L
2
0
(Ω) such that:
a(u
n+1
, v) + b(v, pn+1) = m(f
n, v), ∀v ∈ V(0),
b(u
n+1, q) = 0, ∀q ∈ L
2
0
(Ω),Rheolef version 6.6 update 15 April 2014 93
where
f
n =
Re
2∆t
4 u
n
◦ Xn − u
n−1
◦ Xn
and
a(u, v) = 3Re
2∆t
Z
Ω
u.v dx +
Z
Ω
2D(u) : D(v) dx
and b(., .) and V(α) was already introduced in paragraph 4.4, page 62, while studying the Stokes
problem.
Space approximation
The Taylor-Hood [27] finite element approximation of this generalized Stokes problem was also
considered in paragraph 4.4, page 62. We introduce a mesh Th of Ω and the finite dimensional
spaces Xh, Vh(α) and Qh. The approximate problem writes:
(NS)∆t,h: find u
n+1
h ∈ Vh(1) and p
n+1 ∈ Qh such that:
a(u
n+1
h
, v) + b(v, pn+1
h
) = m(f
n
h
, v), ∀v ∈ Vh(0),
b(u
n+1
h
, q) = 0, ∀q ∈ Qh.
(6.1)
where
f
n
h =
Re
2∆t
4 u
n
h ◦ Xn − u
n−1
h
◦ Xn
The problem reduces to a sequence resolution of a generalized Stokes problems.94 Rheolef version 6.6 update 15 April 2014
Example file 6.5: navier_stokes_solve.icc
1 using namespace std ;
2 int navier_stokes_solve (
3 Float Re , Float delta_t , field l0h , field & uh , field & ph ,
4 size_t & max_iter , Float & tol , odiststream * p_derr =0) {
5 const space & Xh = uh . get_space ();
6 const space & Qh = ph . get_space ();
7 string label = " navier - stokes - " + Xh . get_geo (). name ();
8 quadrature_option_type qopt ;
9 qopt . set_family ( quadrature_option_type :: gauss_lobatto );
10 qopt . set_order ( Xh . degree ());
11 trial u ( Xh ) , p ( Qh );
12 test v ( Xh ) , q ( Qh );
13 form mp = integrate ( p *q , qopt );
14 form m = integrate ( dot (u , v ) , qopt );
15 form a = integrate (2* ddot (D( u ),D( v )) + 1.5*( Re / delta_t )* dot (u , v ) , qopt );
16 form b = integrate ( -div( u )* q , qopt );
17 solver sa ( a . uu ());
18 solver_abtb stokes ( a . uu () , b . uu () , mp . uu ());
19 if ( p_derr != 0) * p_derr << " [ " << label << " ] # n | du / dt |" << endl ;
20 field uh1 = uh ;
21 for ( size_t n = 0; true ; n ++) {
22 field uh2 = uh1 ;
23 uh1 = uh ;
24 field uh_star = 2.0* uh1 - uh2 ;
25 characteristic X1 ( - delta_t * uh_star );
26 characteristic X2 ( -2.0* delta_t * uh_star );
27 field l1h = integrate ( dot ( compose ( uh1 , X1 ) , v ), qopt );
28 field l2h = integrate ( dot ( compose ( uh2 , X2 ) , v ), qopt );
29 field lh = l0h + ( Re / delta_t )*(2* l1h - 0.5* l2h );
30 stokes . solve ( lh . u () - a . ub ()* uh . b () , -( b . ub ()* uh . b ()) ,
31 uh . set_u () , ph . set_u ());
32 field duh_dt = (3* uh - 4* uh1 + uh2 )/(2* delta_t );
33 Float residual = sqrt ( m ( duh_dt , duh_dt ));
34 if ( p_derr != 0) * p_derr << " [ " << label << " ] " << n << " " << residual << endl ;
35 if ( residual < tol ) {
36 tol = residual ;
37 max_iter = n ;
38 return 0;
39 }
40 if ( n == max_iter -1) {
41 tol = residual ;
42 return 1;
43 }
44 }
45 }
Comments
The navier_stokes_solve function is similar to the ‘stokes_cavity.cc’. It solves here a generalized
Stokes problem and manages a right-hand side fh:
characteristic X1 ( - delta_t * uh_star );
characteristic X2 ( -2.0* delta_t * uh_star );
field l1h = integrate ( compose ( uh1 , X1 )* v , qopt );
field l2h = integrate ( compose ( uh2 , X2 )* v , qopt );
field lh = l0h + ( Re / delta_t )*(2* l1h - 0.5* l2h );
This last computation is similar to those done in the ‘convect.cc’ example. The generalized
Stokes problem is solved by the solver_abtb class. The stopping criterion is related to the
stationary solution or the maximal iteration number.Rheolef version 6.6 update 15 April 2014 95
Example file 6.6: navier_stokes_cavity.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " navier_stokes_solve . icc "
5 # include " navier_stokes_criterion . icc "
6 # include " cavity . icc "
7 int main (int argc , char ** argv ) {
8 environment rheolef ( argc , argv );
9 if ( argc < 2) {
10 cerr << " usage : " << argv [0] << " < n_adapt > " << endl ;
11 exit (1);
12 }
13 geo omega ( argv [1]);
14 adapt_option_type options ;
15 Float Re = ( argc > 2) ? atof ( argv [2]) : 100;
16 options . err = ( argc > 3) ? atof ( argv [3]) : 1e -2;
17 size_t n_adapt = ( argc > 4) ? atoi ( argv [4]) : 5;
18 Float delta_t = 0.05;
19 options . hmin = 0.004;
20 options . hmax = 0.1;
21 space Xh = cavity_space ( omega , " P2 ");
22 space Qh ( omega , " P1 ");
23 field uh = cavity_field ( Xh , 1.0);
24 field ph ( Qh , 0);
25 field fh ( Xh , 0);
26 for ( size_t i = 0; true ; i ++) {
27 size_t max_iter = 1000;
28 Float tol = 1e -5;
29 navier_stokes_solve ( Re , delta_t , fh , uh , ph , max_iter , tol , & derr );
30 odiststream o ( omega . name () , " field ");
31 o << catchmark (" Re ") << Re << endl
32 << catchmark (" delta_t ") << delta_t << endl
33 << catchmark (" u ") << uh
34 << catchmark (" p ") << ph ;
35 o . close ();
36 if ( i >= n_adapt ) break ;
37 field ch = navier_stokes_criterion ( Re , uh );
38 omega = adapt ( ch , options );
39 o . open ( omega . name () , " geo ");
40 o << omega ;
41 o . close ();
42 Xh = cavity_space ( omega , " P2 ");
43 Qh = space ( omega , " P1 ");
44 uh = cavity_field ( Xh , 1.0);
45 ph = field ( Qh , 0);
46 fh = field ( Xh , 0);
47 }
48 }
Example file 6.7: navier_stokes_criterion.icc
1 field navier_stokes_criterion ( Float Re , const field & uh ) {
2 space T0h ( uh . get_geo () , " P1d ");
3 return interpolate ( T0h , sqrt ( Re * norm2 ( uh ) + 4* norm2 (D( uh ))));
4 }
Comments
The code performs a computation by using adaptive mesh refinement, in order to capture recirculation
zones. The adapt_option_type declaration is used by rheolef to send options to the
mesh generator. The code reuse the file ‘cavity.icc’ introduced page 63. This file contains two
functions that defines boundary conditions associated to the cavity driven problem.
The criteria function computes the adaptive mesh refinement criteria:
ch = (Re|uh|
2 + 2|D(uh)|
2
)
1/296 Rheolef version 6.6 update 15 April 2014
The criteria function is similar to those presented in the ‘embankment_adapt.cc’ example.
How to run the program
Re = 100: 4804 elements, 2552 vertices ψmax = 9.5 × 10−6
, ψmin = −0.103
Re = 400: 5233 elements, 2768 vertices ψmax = 6.4 × 10−4
, ψmin = −0.111
Figure 6.4: Meshes and stream functions associated to the solution of the Navier-Stokes equations
for Re = 100 (top) and Re = 400 (bottom).Rheolef version 6.6 update 15 April 2014 97
Re = 1000: 5873 elements, 3106 vertices ψmax = 1.64 × 10−3
, ψmin = −0.117
Figure 6.5: Meshes and stream functions associated to the solution of the Navier-Stokes equations
for Re = 1000.
The mesh loop adaptation is initiated from a bamg mesh (see also appendix B.1).
bamg -g square.bamgcad -o square.bamg
bamg2geo square.bamg square.dmn > square.geo
Then, compile and run the Navier-Stokes solver for the driven cavity for Re = 100:
make navier_stokes_cavity
./navier_stokes_cavity square.geo 100
The program performs a computation with Re = 100. By default the time step is ∆t = 0.05
and the computation loops for five mesh adaptations. At each time step, the program prints an
approximation of the time derivative, and stops when a stationary solution is reached. Then, we
visualize the ‘square-5.geo’ adapted mesh and its associated solution:
geo square-5.geo
field square-5.field.gz -velocity -scale 4 -paraview
Notice the -scale option that applies a multiplicative factor to the arrow length when plotting.
The representation of the stream function writes:
make streamf_cavity
zcat square-5.field.gz | ./streamf_cavity | field -bw -n-iso-negative 10 -
The programs ‘streamf_cavity.cc’, already introduced page 68, is here reused. The last options
of the field program draws isocontours of the stream function using lines, as shown on Fig. 6.4.
The zero isovalue separates the main flow from recirculations, located in corners at the bottom of
the cavity.
For Re = 400 and 1000 the computation writes:
./navier_stokes_cavity square.geo 400
./navier_stokes_cavity square.geo 100098 Rheolef version 6.6 update 15 April 2014
0
0.5
1
-0.5 0 0.5 1
u0(0.5, x1)
x1
Re = 100
Comparison: Re = 100
Re = 400
Comparison: Re = 400
Re = 1000
Comparison: Re = 1000
-0.5
0
0.5
0 0.5 1
x0
u1(x0, 0.5)
Re = 100
Re = 100, comparison
Re = 400
Re = 400, comparison
Re = 1000
Re = 1000, comparsion
Figure 6.6: Navier-Stokes: velocity profiles along lines passing thought the center of the cavity,
compared with data from [22]: (a) u0 along the vertical line; (b) u1 along the horizontal line line.
The visualization of the cut of the horizontal velocity along the vertical median line writes:
field square-5.field.gz -comp 0 -cut -normal -1 0 -origin 0.5 0
field square-5.field.gz -comp 1 -cut -normal 0 1 -origin 0 0.5
Fig. 6.6 compare the cuts with data from [22], table 1 and 2 (see also [24]). Observe that the
solution is in good agreement with these previous computations.
Re xc yc −ψmin ψmax
100 present 0.613 0.738 0.103 9.5 × 10−6
Labeur and Wells [31] 0.608 0.737 0.104 -
Donea and Huerta [16] 0.62 0.74 0.103 -
400 present 0.554 0.607 0.111 5.6 × 10−4
Labeur and Wells [31] 0.557 0.611 0.115 -
Donea and Huerta [16] 0.568 0.606 0.110 -
1000 present 0.532 0.569 0.117 1.6 × 10−3
Labeur and Wells [31] 0.524 0.560 0.121 -
Donea and Huerta [16] 0.540 0.573 0.110 -
Figure 6.7: Cavity flow: primary vortex position and stream function value.
Finally, table 6.7 compares the primary vortex position and its associated stream function value.
Notice also the good agreement with previous simulations. The stream function extremal values
are obtained by:
zcat square-5.field.gz | ./streamf_cavity | field -min -
zcat square-5.field.gz | ./streamf_cavity | field -max -
The maximal value has not yet been communicated to our knowledge and is provided in table 6.7
for cross validation purpose. The small program that computes the primary vortex position is
showed below.Rheolef version 6.6 update 15 April 2014 99
make vortex_position
zcat square-5.field.gz | ./streamf_cavity | ./vortex_position
Example file 6.8: vortex_position.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 int main (int argc , char ** argv ) {
4 environment rheolef ( argc , argv );
5 check_macro ( communicator (). size () == 1 , " please , use sequentially ");
6 field psi_h ;
7 din >> psi_h ;
8 size_t idof_min = 0;
9 Float psi_min = std :: numeric_limits :: max ();
10 for ( size_t idof = 0 , ndof = psi_h . ndof (); idof < ndof ; idof ++) {
11 if ( psi_h . dof ( idof ) >= psi_min ) continue ;
12 psi_min = psi_h . dof ( idof );
13 idof_min = idof ;
14 }
15 const array & xdof = psi_h . get_space (). get_xdofs ();
16 point xmin = xdof [ idof_min ];
17 dout << " xc \ t \ tyc \ t \ tpsi " << std :: endl
18 << xmin [0] << " \t " << xmin [1] << " \ t " << psi_min << std :: endl ;
19 }
For higher Reynolds number, Shen [53] showed in 1991 that the flow converges to a stationary state
for Reynolds numbers up to 10 000; for Reynolds numbers larger than a critical value 10 000 <
Re1 < 10 500 and less than another critical value 15 000 < Re2 < 16 000, these authors founded
that the flow becomes periodic in time which indicates a Hopf bifurcation; the flow loses time
periodicity for Re ≥ Re2. In 1998, Ould Salihi [38] founded a loss of stationarity between 10 000
and 20 000. In 2002, Auteri et al. [7] estimated the critical value for the apparition of the first
instability to Re1 ≈ 8018. In 2005, Erturk et al. [17] computed steady driven cavity solutions up
to Re 6 21 000. Also in 2005, this result was infirmed by [19]: these authors estimated Re1 close
to 8000, in agreement with [7]. The 3D driven cavity has been investigated in [33] by the method
of characteristic (see also [32] for 3D driven cavity computations). In conclusion, the exploration
of the driven cavity at large Reynolds number is a fundamental challenge in computational fluid
dynamics.100 Rheolef version 6.6 update 15 April 2014Part III
Advanced and highly nonlinear
problems
101Chapter 7
Equation defined on a surface
This chapter deals with equations defined on a closed hypersurface. We present three different
numerical methods: the direct resolution of the problem on an explicit surface mesh generated
independently of Rheolef, the direct resolution on a surface mesh generated by Rheolef from a
volume mesh, and finally a level set type method based on a volume mesh in an h-narrow band
containing the surface. This last method allows to define hybrid operators between surface and
volume-based finite element fields. These methods are demonstrated on two model problems and
two different surfaces.
Let us consider a closed surface Γ ∈ R
d
, d = 2 or 3 and Γ is a connected C
2
surface of dimension
d − 1 with ∂Γ = 0. We first consider the following problem:
(P1) find u, defined on Γ such that:
u − ∆su = f on Γ (7.1)
where f ∈ L
2
(Γ). For all function u defined on Γ, ∆s denotes the Laplace-Beltrami operator:
∆su = divs(∇su)
where ∇s and divs are the tangential derivative and the surface divergence along Γ, defined
respectively, for all scalar field ϕ and vector field v by:
∇sϕ = (I − n ⊗ n) ∇ϕ
divs v = (I − n ⊗ n) : ∇v
Here, n denotes a unit normal on Γ.
We also consider the following variant of this problem:
(P2) find u, defined on Γ such that:
−∆su = f on Γ (7.2)
This second problem is similar to the first one: the Helmholtz operator I − ∆s has been replaced
by the Laplace-Beltrami one −∆s. In that case, the solution is defined up to a constant: if u is
a solution, then u + c is also a solution for any constant c ∈ R. Thus, we refers to (P1) as the
Helmholtz-Beltrami problem and to (P2) as the Laplace-Beltrami one.
7.1 Approximation on an explicit surface mesh
The Helmholtz-Beltrami problem
Tanks to the surface Green formula (see appendix A.3), the variational formulation of problem
(P1) writes:
103104 Rheolef version 6.6 update 15 April 2014
(V F1): find u ∈ H1
(Γ) such that:
a(u, v) = l(v), ∀v ∈ H1
(Γ)
where for all u, v ∈ H1
(Γ),
a(u, v) = Z
Γ
(u v + ∇su.∇sv) ds
l(v) = Z
Γ
f v ds
Let k > 1 and consider a k-th order curved surface finite element mesh Γh of Γ. We define the
space Wh:
Wh =
vh ∈ H1
(Γh); v|S ∈ Pk, ∀S ∈ Γh
The approximate problem writes:
(V F1)h: find uh ∈ Wh such that:
a(uh, vh) = l(vh), ∀vh ∈ Wh
Example file 7.1: helmholtz_s.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " sphere . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo gamma ( argv [1]);
8 size_t d = gamma . dimension ();
9 space Wh ( gamma , argv [2]);
10 trial u ( Wh ); test v ( Wh );
11 form a = integrate ( u * v + dot ( grad_s ( u ) , grad_s ( v )));
12 field lh = integrate ( f (d )* v );
13 field uh ( Wh );
14 solver sa ( a . uu ());
15 uh . set_u () = sa . solve ( lh . u () - a . ub ()* uh . b ());
16 dout << uh ;
17 }
Comments
The problem involves the Helmholtz operator and thus, the code is similar to ‘neumann-nh.cc’
presented page 36. Let us comments the only differences:
form a = integrate ( u * v + dot ( grad_s ( u ) , grad_s ( v )));
The form refers to the grad_s operator instead of the grad one, since only the coordinates related
to the surface are involved.
field lh = integrate ( f (d )* v );
The right-hand-side does not involve any boundary term, since the surface Γ is closed: the boundary
domain ∂Γ = ∅. As test problem, the surface Γ is the unit circle when d = 2 and the unit
sphere when d = 3. The data f has been chosen as in [14, p. 17]. This choice is convenient since
the exact solution is known. Recall that the spherical coordinates (ρ, θ, φ) are defined from the
artesian ones (x0, x1, x2) by:
ρ =
q
x
2
0 + x
2
1 + x
2
2
, φ = arccos (x2/ρ), θ =
arccos
x0/
p
x
2
0 + x
2
1
when x1 > 0
2π − arccos
x0/
p
x
2
0 + x
2
1
otherwiseRheolef version 6.6 update 15 April 2014 105
Example file 7.2: sphere.icc
1 struct p : field_functor
{
2 Float operator () ( const point & x ) const {
3 if ( d == 2) return 26*( pow ( x [0] ,5) - 10* pow ( x [0] ,3)* sqr( x [1])
4 + 5* x [0]* pow ( x [1] ,4));
5 else return 3* sqr( x [0])* x [1] - pow ( x [1] ,3);
6 }
7 p ( size_t d1 ) : d ( d1 ) {}
8 protected : size_t d ;
9 };
10 struct f : field_functor {
11 Float operator () ( const point & x ) const {
12 if ( d == 2) return _p ( x )/ pow ( norm ( x ) ,5);
13 else return alpha * _p ( x );
14 }
15 f ( size_t d1 ) : d ( d1 ) , _p ( d1 ) {
16 Float pi = acos ( Float ( -1));
17 alpha = -(13./8.)* sqrt (35./ pi );
18 }
19 protected : size_t d ; p _p ; Float alpha ;
20 };
21 struct u_exact : field_functor < u_exact ,Float > {
22 Float operator () ( const point & x ) const {
23 if ( d == 2) return _f ( x )/(25+ sqr( norm ( x )));
24 else return sqr ( norm ( x ))/(12+ sqr( norm ( x )))* _f ( x );
25 }
26 u_exact ( size_t d1 ) : d ( d1 ) , _f ( d1 ) {}
27 protected : size_t d ; f _f ;
28 };
29 Float phi ( const point & x ) { return norm ( x ) - 1; }
How to run the program
The program compile as usual:
make helmholtz_s
A mesh of a circle is generated by:
mkgeo_ball -s -e 100 > circle.geo
geo circle
The mkgeo_ball is a convenient script that generates a mesh with the gmsh mesh generator. Then,
the problem resolution writes:
./helmholtz_s circle P1 > circle.field
field circle.field
field circle.field -elevation
The tridimensional case is similar:
mkgeo_ball -s -t 10 > sphere.geo
geo sphere.geo -stereo
./helmholtz_s sphere.geo P1 > sphere.field
field sphere.field -paraview
field sphere.field -stereo -gray
The solution is represented on Fig .7.1.left.106 Rheolef version 6.6 update 15 April 2014
Figure 7.1: Helmholtz-Beltrami problem: high-order curved surface mesh and its corresponding
isoparametric solution: (top) order = 1; (bottom) order = 3.
Higher-order isoparametric finite elements can be considered for the curved geometry:
mkgeo_ball -s -e 30 -order 3 > circle-P3.geo
geo circle-P3.geo -subdivide 10
Observe the curved edges (see Fig .7.1). The -subdivide option allows a graphical representation
of the curved edges by subdividing each edge in ten linear parts, since graphical softwares are not
yet able to represent curved elements. The computation with the P3 isoparametric approximation
writes:
./helmholtz_s circle-P3 P3 > circle-P3.field
field circle-P3.field -elevation
Notice that both the curved geometry and the finite element are second order. The tridimensional
counterpart writes simply:
mkgeo_ball -s -t 10 -order 3 > sphere-P3.geo
geo sphere-P3.geo
./helmholtz_s sphere-P3 P3 > sphere-P3.fieldRheolef version 6.6 update 15 April 2014 107
field sphere-P3.field -paraview
field sphere-P3.field -stereo -gray
The solution is represented on Fig .7.1).right-bottom. The graphical representation is not yet able
to represent the high-order approximation: each elements is subdivided and a piecewise linear
representation is used in each sub-elements.
Since the exact solution is known, the error can be computed: this is done by the program
helmholtz_s_error.cc. This file is not presented here, as it is similar to some others examples,
but can be founded in the Rheolef example directory. Figure 7.2 plots the error in various norms
versus element size for different isoparametric approximations.108 Rheolef version 6.6 update 15 April 2014
10−8
10−6
10−4
10−2
10−2 10−1
h
kuh − πh(u)k0,2,Ω
2 = k + 1
3
4
k = 1
k = 2
k = 3
10−8
10−6
10−4
10−2
10−2 10−1
h
kuh − πh(u)k0,∞,Ω
2 = k + 1
3
4
k = 1
k = 2
k = 3
10−8
10−6
10−4
10−2
100
10−2 10−1
h
|uh − πh(u)|1,2,Ω
1 = k
2
3
k = 1
k = 2
k = 3
Figure 7.2: Curved non-polynomial surface: error analysis in L
2
, L∞ and H1 norms.Rheolef version 6.6 update 15 April 2014 109
The Laplace-Beltrami problem
This problem has been introduced in (7.2), page 103. While the treatment of the HelmholtzBeltrami
problem was similar to the Helmholtz problem with Neumann boundary conditions, here,
the treatment of the Laplace-Beltrami problem is similar to the Laplace problem with Neumann
boundary conditions: see section 2.4, page 39. Notice that for both problems, the solution is
defined up to a constant. Thus, the linear problem has a singular matrix. The ‘laplace_s.cc’
code is similar to the ‘neumann-laplace.cc’ one, as presented in section 2.4. The only change
lies one the definition of the right-hand side.
Example file 7.3: laplace_s.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " torus . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo gamma ( argv [1]);
8 size_t d = gamma . dimension ();
9 space Wh ( gamma , argv [2]);
10 trial u ( Wh ); test v ( Wh );
11 form m = integrate ( u * v );
12 form a = integrate ( dot ( grad_s ( u ), grad_s ( v )));
13 field b = m * field ( Wh ,1);
14 field lh = integrate ( f (d )* v );
15 csr A = {{ a . uu () , b . u ()} ,
16 { trans ( b . u ()) , 0 }};
17 vec B = { lh . u () , 0 };
18 solver sa ( A );
19 vec U = sa . solve ( B );
20 field uh ( Wh );
21 uh . set_u () = U [ range (0 , uh . u (). size ())];
22 dout << uh ;
23 }110 Rheolef version 6.6 update 15 April 2014
Example file 7.4: torus.icc
1 static const Float R = 1;
2 static const Float r = 0.6;
3 Float phi ( const point & x ) {
4 return sqr( sqrt (sqr (x [0])+ sqr( x [1])) - sqr( R )) + sqr( x [2]) - sqr( r );
5 }
6 void get_torus_coordinates ( const point & x ,
7 Float & rho , Float & theta , Float & phi ) {
8 static const Float pi = acos ( Float ( -1));
9 rho = sqrt (sqr( x [2]) + sqr( sqrt (sqr ( x [0]) + sqr( x [1])) - sqr( R )));
10 phi = atan2 ( x [1] , x [0]);
11 theta = atan2 ( x [2] , sqrt (sqr( x [0]) + sqr ( x [1])) - R );
12 }
13 struct u_exact : field_functor < u_exact ,Float > {
14 Float operator () ( const point & x ) const {
15 Float rho , theta , phi ;
16 get_torus_coordinates (x , rho , theta , phi );
17 return sin (3* phi )* cos (3* theta + phi );
18 }
19 u_exact ( size_t d =3) {}
20 };
21 struct f : field_functor {
22 Float operator () ( const point & x ) const {
23 Float rho , theta , phi ;
24 get_torus_coordinates (x , rho , theta , phi );
25 Float fx = (9* sin (3* phi )* cos (3* theta + phi ))/ sqr (r )
26 - ( -10* sin (3* phi )* cos (3* theta + phi ) - 6* cos (3* phi )* sin (3* theta + phi ))
27 /sqr( R + r * cos ( theta ))
28 - (3* sin ( theta )* sin (3* phi )* sin (3* theta + phi ))
29 /( r *( R + r * cos ( theta )));
30 return fx ;
31 }
32 f ( size_t d =3) {}
33 };
As test problem, the surface Γ is the a torus when d = 3. The data f has been chosen as
in [37, p. 3355]. This choice is convenient since the exact solution is known. Let R and r denotes
the large and small torus radii, respectively. The torus coordinates (ρ, θ, φ) are defined linked to
the Cartesian ones by:
x0
x1
x2
= R
cos(φ)
sin(φ)
0
+ ρ
cos(φ) cos(θ)
sin(φ) cos(θ)
sin(θ)
Here ρ is the distance from the point to the circle in the x0x1 plane around 0 with radius R,
θ is the angle from the positive (x0, x1, 0) to x0 and φ is the angle from the positive x0 axis to
(x0, x1, 0).Rheolef version 6.6 update 15 April 2014 111
How to run the program ?
Figure 7.3: Laplace-Beltrami problem on a torus: high-order curved surface mesh and its corresponding
isoparametric solution: (top) order = 1; (bottom) order = 2.
The surface mesh of the torus is generated by:
gmsh -2 torus.mshcad -o torus.msh
msh2geo torus.msh > torus.geo
geo torus.geo -stereo
The ‘torus.mshcad’ is not presented here: it can be founded in the Rheolef example directory.
Then, the computation and visualization writes:
make laplace_s
./laplace_s torus.geo P1 > torus.field
field torus.field -paraview
field torus.field -stereo -gray
For a higher-order approximation:
gmsh -2 -order 2 torus.mshcad -o torus-P2.msh
msh2geo torus-P2.msh > torus-P2.geo
geo torus-P2.geo
./laplace_s torus-P2.geo P2 > torus-P2.field
field torus-P2.field -paraview
The solution is represented on Fig. 7.3. By editing ‘torus.mshcad’ and changing the density of
discretization, we can improve the approximate solution and converge to the exact solution. Due
to a bug [52] in the current gmsh version 2.5.1 the convergence is not optimal O(h
k
) for higher
values of k.112 Rheolef version 6.6 update 15 April 2014
7.2 Building a surface mesh from a level set function
The previous method is limited to not-too-complex surface Γ, that can be described by a regular
finite element surface mesh Γh. When the surface change, as in a time-dependent process, complex
change of topology often occurs and the mesh Γh can degenerate or be too complex to be efficiently
meshed. In that case, the surface is described implicitly as the zero isosurface, or zero level set, of
a function:
Γ = {x ∈ Λ; φ(x) = 0}
where Λ ⊂ R
d
is a bounding box of the surface Γ.
The following code automatically generates the mesh Γh of the surface described by the zero
isosurface of a discrete φh ∈ Xh level set function:
Γh = {x ∈ Λ; φh(x) = 0}
where Xh is a piecewise affine functional space over a mesh Th of Λ:
Xh = {ϕ ∈ L
2
(Λ) ∩ C
0
(Λ); ϕ/K ∈ P1, ∀K ∈ Th}
The polynomial approximation is actually limited here to first order: building higher order curved
finite element surface meshes from a level set function is planed for the future versions of Rheolef.
Finally, a computation, as performed in the previous paragraph can be done using Γh. We also
point out the limitations of this approach.
Example file 7.5: level_set_sphere.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " sphere . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo lambda ( argv [1]);
8 level_set_option_type opts ;
9 opts . split_to_triangle
10 = ( argc > 2 && argv [2] == std :: string (" - tq ")) ? false : true ;
11 space Xh ( lambda , " P1 ");
12 field phi_h = interpolate (Xh , phi );
13 geo gamma = level_set ( phi_h , opts );
14 dout << gamma ;
15 }
Comments
All the difficult work of building the intersection mesh Γh, defined as the zero level set of the φh
function, is performed by the level_set function:
geo gamma = level_set ( phi_h , opts );
When d = 3, intersected tetrahedra leads to either triangular or quadrangular faces. By default,
quadrangular faces are split into two triangles. An optional -tq program flag allows to conserve
quadrangles in the surface mesh: it set the split_to_triangle optional field to false.
How to run the program ?
After the compilation, generates the mesh of a bounding box Λ = [−2, 2]d of the surface and run
the program:Rheolef version 6.6 update 15 April 2014 113
make level_set_sphere
mkgeo_grid -t 20 -a -2 -b 2 -c -2 -d 2 > square2.geo
./level_set_sphere square2.geo > circle.geo
geo circle.geo -stereo
The computation of the previous paragraph can be reused:
./helmholtz_s circle.geo P1 | field -
Notice that, while the bounding box mesh was uniform, the intersected mesh could present arbitrarily
small edge length (see also Fig. 7.4):
geo -min-element-measure circle.geo
geo -max-element-measure circle.geo
Let us turn to the d = 3 case:
mkgeo_grid -T 20 -a -2 -b 2 -c -2 -d 2 -f -2 -g 2 > cube2.geo
./level_set_sphere cube2.geo | geo -upgrade - > sphere.geo
geo sphere.geo -stereo
./helmholtz_s sphere.geo P1 | field -paraview -
This approach can be extended to the Laplace-Beltrami problem on a torus:
sed -e ’s/sphere/torus/’ < level_set_sphere.cc > level_set_torus.cc
make level_set_torus
./level_set_torus cube2.geo | geo -upgrade - > torus.geo
geo torus.geo -stereo
./laplace_s torus.geo P1 | field -paraview -
While the bounding box mesh was uniform, the triangular elements obtained by intersecting the
3D bounding box mesh with the level set function can present arbitrarily irregular sizes nd shapes
(see also Fig. 7.4):
geo -min-element-measure -max-element-measure sphere.geo
geo -min-element-measure -max-element-measure torus.geo
Thus, there is no theoretical guaranties for the finite element method to converge on these irregular
families of meshes, despite, most of the time, the computations run well. This is the major
drawback of this method.114 Rheolef version 6.6 update 15 April 2014
Figure 7.4: Building an explicit surface mesh from level set: (top) circle; (center) sphere; (bottom)
torus.Rheolef version 6.6 update 15 April 2014 115
7.3 The banded level set method
The banded level set method presents the advantages of the two previous methods without their
drawback: it applies to very general geometries, as described by a level set funtion, and has
theoretical fundations, as usual finite element methods. The previous drawback of the intersection
mesh can be circumvented by enlarging the surface Γh to a band βh containing all the intersected
elements of Th (see [2, 15, 37]):
βh = {K ∈ Th; K ∩ Γh 6= ∅}
Then, we introduce Bh the piecewise affine functional space over βh:
Bh = {v ∈ L
2
(βh) ∩ C
0
(βh); v/K ∈ P1, ∀K ∈ Th}
The problem is extended from Γh to βh as:
(V F)h: find uh ∈ Bh such that:
a(uh, vh) = l(vh), ∀vh ∈ Bh
where, for all u, v ∈ Bh,
a(u, v) = Z
Γh
(u v + ∇su.∇sv) ds
l(v) = Z
Γh
f v ds
for all uh, vh ∈ Bh. Notice that while uh and vh are defined over βh, the summations in the
variational formulations are restricted only to Γh ⊂ βh.
Example file 7.6: helmholtz_band_iterative.cc
1 # include " rheolef . h "
2 using namespace std ;
3 using namespace rheolef ;
4 # include " sphere . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo lambda ( argv [1]);
8 size_t d = lambda . dimension ();
9 space Xh ( lambda , " P1 ");
10 field phi_h = interpolate (Xh , phi );
11 band gamma_h ( phi_h );
12 space Bh ( gamma_h . band () , " P1 ");
13 trial u ( Bh ); test v ( Bh );
14 form a = integrate ( gamma_h , u * v + dot ( grad_s ( u ) , grad_s ( v )));
15 field lh = integrate ( gamma_h , f ( d )* v );
16 field uh ( Bh ,0);
17 size_t max_iter = 10000;
18 Float tol = 1e -10;
19 pminres ( a . uu () , uh . set_u () , lh . u () , eye () , max_iter , tol , & derr );
20 dout << catchmark (" phi ") << phi_h
21 << catchmark (" u ") << uh ;
22 }
Comments
The band is build directly from the level set function as:
band gamma_h ( phi_h );
The band structure is a small class that groups the surface mesh Γh, available as
gamma_h.level_set(), and the βh mesh, available as gamma_h.band(). It also manages some116 Rheolef version 6.6 update 15 April 2014
correspondance between both meshes. Then, the space of piecewise affine functions over the band
is introduced:
space Bh ( gamma_h . band () , " P1 ");
Next, two forms are computed by using the integrate function, with the band gamma_h as a
domain-like argument:
form m = integrate ( gamma_h , u * v );
form a = integrate ( gamma_h , dot ( grad_s ( u ) , grad_s ( v )));
The right-hand side also admits the gamma_h argument:
field lh = integrate ( gamma_h , f ( d )* v );
Recall that summations for both forms and right-hand side will be performed on Γh, represented
by gamma_h.level_set(), while the approximate functional space is Bh. Due to this summation
on Γh instead of βh, the matrix of the system is singular [2, 36, 37] and the MINRES algorithm
has been chosen to solve the linear system:
pminres ( a . uu () , uh . set_u () , lh . u () , eye () , max_iter , tol , & derr );
The eye() argument represents here the identity preconditioner, i.e. no preconditioner at all. It
has few influence of the convergence properties of the matrix and could be replaced by another
simple one: the diagonal of the matrix diag(a.uu()) without sensible gain of performance:
pminres ( a . uu () , uh . set_u () , lh . u () , diag ( a . uu ()) , max_iter , tol , & derr );
How to run the program
The compilation and run writes:
make helmholtz_band_iterative
mkgeo_grid -T 20 -a -2 -b 2 -c -2 -d 2 -f -2 -g 2 > cube-20.geo
./helmholtz_band_iterative cube-20.geo > sphere-band.field
The run generates also two meshes (see Fig. 7.5): the intersection mesh and the band around it.
The solution is here defined on this band: this extension has no interpretation in terms of the
initial problem and can be restricted to the intersection mesh for visualization purpose:
make proj_band
./proj_band < sphere-band.field | field -paraview -
The ‘proj_band.cc’ is presented below. The run generates also the Γh mesh (see Fig. 7.5), required
for the visualization. The two-dimensional case is obtained simply by replacing the 3D bounding
box by a 2D one:
mkgeo_grid -t 20 -a -2 -b 2 -c -2 -d 2 > square-20.geo
./helmholtz_band_iterative square-20.geo > circle-band.field
./proj_band < circle-band.field | field -paraview -
./proj_band < circle-band.field | field -paraview -elevation -bw -stereoRheolef version 6.6 update 15 April 2014 117
Example file 7.7: proj_band.cc
1 # include " rheolef . h "
2 using namespace std ;
3 using namespace rheolef ;
4 int main (int argc , char ** argv ) {
5 environment rheolef ( argc , argv );
6 field phi_h ;
7 din >> catchmark (" phi ") >> phi_h ;
8 const space & Xh = phi_h . get_space ();
9 band gamma_h ( phi_h );
10 space Bh ( gamma_h . band () , " P1 ");
11 field uh ( Bh );
12 din >> catchmark (" u ") >> uh ;
13 space Wh ( gamma_h . level_set () , " P1 ");
14 gamma_h . level_set (). save ();
15 dout << interpolate ( Wh , uh );
16 }
7.4 A direct solver for the banded level set method
The iterative algorithm previously used for solving the linear system is not optimal: for 3D
problems on a surface, the bidimensionnal connectivity of the sparse matrix suggests that a direct
sparse factorisation would be much more efficent.
Recall that φh = 0 on Γh. Thus, if uh ∈ Bh is solution of the problem, then uh + αφh|βh ∈ Bh
is also solution for any α ∈ R, where φh|βh ∈ Bh denotes the restriction of the level set function
φh ∈ Xh on the band βh. Thus there is multiplicity of solutions and the matrix of the problem
is singular. The direct resolution is still possible on a modified linear system with additional
constraints in order to recover the unicity of the solution. We impose the constraint that the
solution uh should be othogonal to φh|βh ∈ Bh. In some special cases, the band is composed of
several connected components (see Fig. 7.6): this appends when a vertex of the bounding box
mesh belongs to Γh. In that case, the constaint sould be expressed on each connected component.
Fig. 7.6 shows also the case when a full side of an element is included in Γh: such an element of
the band is called isolated.118 Rheolef version 6.6 update 15 April 2014
Example file 7.8: helmholtz_band.cc
1 # include " rheolef . h "
2 using namespace std ;
3 using namespace rheolef ;
4 # include " sphere . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo lambda ( argv [1]);
8 size_t d = lambda . dimension ();
9 space Xh ( lambda , " P1 ");
10 field phi_h = interpolate (Xh , phi );
11 band gamma_h ( phi_h );
12 field phi_h_band = phi_h [ gamma_h . band ()];
13 space Bh ( gamma_h . band () , " P1 ");
14 Bh . block (" isolated ");
15 Bh . unblock (" zero ");
16 trial u ( Bh ); test v ( Bh );
17 form a = integrate ( gamma_h , u * v + dot ( grad_s ( u ) , grad_s ( v )));
18 field lh = integrate ( gamma_h , f ( d )* v );
19 vector > b ( gamma_h . n_connected_component ());
20 vector z ( gamma_h . n_connected_component () , 0);
21 for ( size_t i = 0; i < b . size (); i ++) {
22 const domain & cci = gamma_h . band () [" cc "+ itos ( i )];
23 field phi_h_cci ( Bh , 0);
24 phi_h_cci [ cci ] = phi_h_band [ cci ];
25 b [ i ] = phi_h_cci . u ();
26 }
27 csr A = { { a . uu () , trans ( b )} ,
28 { b , 0 } };
29 vec F = { lh . u () , z };
30 A . set_symmetry ( true );
31 solver sa = ldlt ( A );
32 vec U = sa . solve ( F );
33 field uh ( Bh ,0);
34 uh . set_u () = U [ range (0 , uh . u (). size ())];
35 dout << catchmark (" phi ") << phi_h
36 << catchmark (" u ") << uh ;
37 }
Comments
The management of the special sides and vertices that are fully included in Γh is perfomed by:
Bh . block (" isolated ");
Bh . unblock (" zero ");
The addition of linear constraints is similar to the ‘neumann-laplace.cc’ code, as presented in
section 2.4:
csr A = { { a . uu () , trans ( b )} ,
{ b , 0 } };
Here b is a vector >, i.e. a vector of linear constraints, one per connected component
of the band βh.
How to run the program
The commands are similar to the previous iterative implementation, just replacing
helmholtz_band_iterative by helmholtz_band.
This approach could be also adapted to the Laplace-Beltrami problem on the torus.Rheolef version 6.6 update 15 April 2014 119
Example file 7.9: laplace_band.cc
1 # include " rheolef . h "
2 using namespace std ;
3 using namespace rheolef ;
4 # include " torus . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo lambda ( argv [1]);
8 size_t d = lambda . dimension ();
9 space Xh ( lambda , " P1 ");
10 field phi_h = interpolate (Xh , phi );
11 band gamma_h ( phi_h );
12 field phi_h_band = phi_h [ gamma_h . band ()];
13 space Bh ( gamma_h . band () , " P1 ");
14 Bh . block (" isolated ");
15 Bh . unblock (" zero ");
16 trial u ( Bh ); test v ( Bh );
17 form m = integrate ( gamma_h , u * v );
18 form a = integrate ( gamma_h , dot ( grad_s ( u ) , grad_s ( v )));
19 field lh = integrate ( gamma_h , f ( d )* v );
20 vector > b ( gamma_h . n_connected_component ());
21 vector z ( gamma_h . n_connected_component () , 0);
22 for ( size_t i = 0; i < b . size (); i ++) {
23 const domain & cci = gamma_h . band () [" cc "+ itos ( i )];
24 field phi_h_cci ( Bh , 0);
25 phi_h_cci [ cci ] = phi_h_band [ cci ];
26 b [ i ] = phi_h_cci . u ();
27 }
28 field c = m * field ( Bh ,1);
29 csr A = { { a . uu () , trans ( b ) , c . u ()} ,
30 { b , 0 , 0 } ,
31 { trans ( c. u ()) , 0 , 0 } };
32 vec F = { lh . u () , z , 0};
33 A . set_symmetry ( true );
34 solver sa = ldlt ( A );
35 vec U = sa . solve ( F );
36 field uh ( Bh ,0);
37 uh . set_u () = U [ range (0 , uh . u (). size ())];
38 dout << catchmark (" phi ") << phi_h
39 << catchmark (" u ") << uh ;
40 }
Comments
The code is simlar to the previous one helmholtz_band.cc. Since the solution is defined up to a
constant, an additional linear constraint has to be inserted:
Z
Γh
uh dx = 0
This writes:
field c = m * field ( Bh ,1);
csr A = { { a . uu () , trans ( b ) , c . u ()} ,
{ b , 0 , 0 } ,
{ trans ( c. u ()) , 0 , 0 } };
How to run the program
make laplace_band
mkgeo_grid -T 20 -a -2 -b 2 -c -2 -d 2 -f -2 -g 2 > cube-20.geo
./laplace_band cube-20.geo > torus-band.field
./proj_band < torus-band.field | field -stereo -120 Rheolef version 6.6 update 15 April 2014
The solution is represented on Fig. 7.5.bottom.Rheolef version 6.6 update 15 April 2014 121
Figure 7.5: The banded level set method: (top) circle; (center) sphere; (bottom) torus.122 Rheolef version 6.6 update 15 April 2014
cc0
cc1
cc2
cc3
cc4
cc5
cc6
cc7
cc8
cc9
isolated
zero
Figure 7.6: The banded level set method: the band is composed of several connected components.Chapter 8
The highly nonlinear p-laplacian
problem
8.1 Problem statement
Let us consider the classical p-Laplacian problem with homogeneous Dirichlet boundary conditions
in a domain bounded Ω ⊂ R
d
, d = 1, 2, 3:
(P): find u, defined in Ω such that:
−div
η
|∇u|
2
∇u
= f in Ω
u = 0 on ∂Ω
where η : z ∈ R
+ 7−→ z
p−2
2 ∈ R
+. Several variants of the η can be considered: see [49] for practical
and usefull examples. Here p ∈]1, +∞[ and f are known. For the computational examples, we
choose f = 1. When p = 2, this problem reduces to the linear Poisson problem with homogeneous
Dirichlet boundary conditions. Otherwise, for any p > 1, the nonlinear problem is equivalent to
the following minimization problem:
(MP): find u ∈ W
1,p
0
(Ω) such that:
u = arg min
v∈W1,p
0
(Ω)
1
2
Z
Ω
H
|∇v|
2
dx −
Z
Ω
f v dx,
where H denotes the primitive of η:
H(z) = Z z
0
η(z) dz =
2z
p
p
Here W
1,p
0
(Ω) denotes the usual Sobolev spaces of functions in W1,p(Ω) We also assume that f ∈
W−1,p(Ω), where W
−1,p
0
(Ω) denotes the dual space of W
1,p
0
(Ω) that vanishes on the boundary [11,
p. 118]. The variational formulation of this problem expresses:
(VF): find u ∈ W
1,p
0
(Ω) such that:
a(u; u, v) = l(v), ∀v ∈ W
1,p
0
(Ω)
where a(., .) and l(.) are defined for any u0, u, v ∈ W1,p(Ω) by
a(u0; u, v) = Z
Ω
η
|∇u0|
2
∇u.∇v dx, ∀u, v ∈ W
1,p
0
(Ω) (8.1)
l(v) = Z
Ω
f v dx, ∀u, v ∈ L
2
(Ω) (8.2)
The quantity a(u; u, u)
1/p = k∇uk0,p,Ω induces a norm in W
1,p
0
, equivalent to the standard norm.
The form a(.; ., .) is bilinear with respect to the two last variable and is related to the energy form.
123124 Rheolef version 6.6 update 15 April 2014
8.2 The fixed-point algorithm
8.2.1 Principe of the algorithm
This nonlinear problem is then reduced to a sequence of linear subproblems by using the fixed-point
algorithm. The sequence
u
(n)
n>0
is defined by recurrence as:
• n = 0: let u
(0) ∈ W
1,p
0
(Ω) be known.
• n > 0: suppose that u
(n) ∈ W
1,p
0
(Ω) is known and find u
∗ ∈ W
1,p
0
(Ω) such that:
a
u
(n)
; u
∗
, v
= l(v), ∀v ∈ W
1,p
0
(Ω)
and then set
u
(n+1) = ωu∗ + (1 − ω) ∗ u
(n)
Here ω > 0 is the relaxation parameter: when ω = 1 we obtain the usual un-relaxed fixed point
algorithm. For stiff nonlinear problems, we will consider the under-relaxed case 0 < ω < 1. Let
u
(n+1) = G
u
(n)
denotes the operator that solve the previous linear subproblem for a given u
(n)
.
Since the solution u satisfies u = G(u), it is a fixed-point of G.
Let us introduce a mesh Th of Ω and the finite dimensional space Xh of continuous piecewise polynomial
functions and Vh, the subspace of Xh containing elements that vanishes on the boundary
of Ω:
Xh = {vh ∈ C
0
0
Ω
; vh/K ∈ Pk, ∀K ∈ Th}
Vh = {vh ∈ Xh; vh = 0 on ∂Ω}
where k = 1 or 2. The approximate problem expresses: suppose that u
(n)
h ∈ Vh is known and find
u
∗
h ∈ Vh such that:
a
u
(n)
h
; u
∗
h
, vh
= l(vh), ∀vh ∈ Vh
By developing u
∗
h
on a basis of Vh, this problem reduces to a linear system.Rheolef version 6.6 update 15 April 2014 125
Example file 8.1: p_laplacian_fixed_point.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " eta . icc "
5 # include " dirichlet . icc "
6 int main (int argc , char ** argv ) {
7 environment rheolef ( argc , argv );
8 geo omega ( argv [1]);
9 Float eps = std :: numeric_limits :: epsilon ();
10 string approx = ( argc > 2) ? argv [2] : " P1 ";
11 Float p = ( argc > 3) ? atof ( argv [3]) : 1.5;
12 Float w = ( argc > 4) ? ( is_float ( argv [4]) ? atof ( argv [4]) :2/ p ) :1;
13 Float tol = ( argc > 5) ? atof ( argv [5]) : 1 e5 * eps ;
14 size_t max_it = ( argc > 6) ? atoi ( argv [6]) : 500;
15 derr << " # P - Laplacian problem by fixed - point : " << endl
16 << " # geo = " << omega . name () << endl
17 << " # approx = " << approx << endl
18 << " # p = " << p << endl
19 << " # w = " << w << endl
20 << " # tol = " << tol << endl ;
21 space Xh ( omega , approx );
22 Xh . block (" boundary ");
23 trial u ( Xh ); test v ( Xh );
24 form m = integrate ( u * v );
25 solver sm ( m . uu ());
26 quadrature_option_type qopt ;
27 qopt . set_family ( quadrature_option_type :: gauss );
28 qopt . set_order (2* Xh . degree () -1);
29 field uh ( Xh );
30 uh [" boundary "] = 0;
31 field lh = integrate ( v );
32 dirichlet ( lh , uh );
33 derr << " # n r v " << endl ;
34 Float r = 1 , r0 = 1;
35 size_t n = 0;
36 do {
37 form a = integrate ( compose ( eta ( p ) , norm2 ( grad ( uh )))* dot ( grad ( u ) , grad ( v )) ,
38 qopt );
39 field mrh = a * uh - lh ;
40 field rh ( Xh , 0);
41 rh . set_u () = sm . solve ( mrh . u ());
42 r = rh . max_abs ();
43 if ( n == 0) { r0 = r ; }
44 Float v = ( n == 0) ? 0 : log10 ( r0 /r )/ n ;
45 derr << n << " " << r << " " << v << endl ;
46 if ( r <= tol || n ++ >= max_it ) break ;
47 solver sa ( a . uu ());
48 vec u_star = sa . solve ( lh .u () - a . ub ()* uh . b ());
49 uh . set_u () = w * u_star + (1 - w )* uh . u ();
50 } while ( true );
51 dout << catchmark (" p ") << p << endl
52 << catchmark (" u ") << uh ;
53 return ( r <= tol ) ? 0 : 1;
54 }
8.2.2 Comments
The implementation with Rheolef involves a weighted forms: the tensor-valued weight
η
∇u
(n)
h
2
is inserted in the variationnal expression passed to the integrate function. The
construction of the weighted form a(.; ., .) writes:
form a = integrate ( compose ( eta ( p ) , norm2 ( grad ( uh )))* dot ( grad ( u ) , grad ( v )) ,
qopt );126 Rheolef version 6.6 update 15 April 2014
Remarks the usage of the compose, norm2 and grad libray functions. The weight η
∇u
(n)
h
2
is
represented by the compose(eta(p),norm2(grad(uh))) sub-expression. This weight is evaluated
on the fly at the quadrature nodes during the assembly process implemented by the integrate
function. Also, notice the distinction between uh, that represents the value of the solution at step
n, and the trial u and test v functions, that represents any elements of the function space Xh.
These functions appear in the dot(grad(u),grad(v)) sub-expression. As the integrals involved
by this weighted form cannot be computed exactly for a general η function, a quadrature formula
is used:
Z
K
f(x) dx =
nXK−1
q=0
f(xK,q) ωK,q + O(h
k
′+1)
where (xK,q, ωK,q)06q {
2 Float operator () ( const Float & z ) const {
3 check_macro ( z != 0 || p > 2 , " eta : division by zero ( HINT : check mesh ) ");
4 return pow (z , (p -2)/2);
5 }
6 Float derivative ( const Float & z ) const {
7 check_macro ( z != 0 || p > 4 , " eta ’: division by zero ( HINT : check mesh ) ");
8 return 0.5*( p -2)* pow (z , (p -4)/2);
9 }
10 eta ( const Float & q ) : p ( q ) {}
11 Float p ;
12 };
The η function is implemented separately, in file named eta.icc in order to easily change its
definition. The derivative member function is not yet used here: it is implemented for a
forthcoming application (the Newton method). Notice the guards that check for division by
zero and send a message related to the mesh: this will be commentated in the next paragraph.
Finally, the fixed-point algorithm is initiated with u
(0) as the solution of the linear problem
associated to p = 2, i.e. the standard Poisson problem with Dirichlet boundary conditions.Rheolef version 6.6 update 15 April 2014 127
Example file 8.3: dirichlet.icc
1 void dirichlet ( const field & lh , field & uh ) {
2 const space & Xh = lh . get_space ();
3 trial u ( Xh ); test v ( Xh );
4 form a = integrate ( dot ( grad ( u ) , grad ( v )));
5 solver sa ( a . uu ());
6 uh . set_u () = sa . solve ( lh . u () - a. ub ()* uh . b ());
7 }
8.2.3 Running the program
Compile the program, as usual:
make p_laplacian_fixed_point
and enter the commands:
mkgeo_ugrid -t 50 > square.geo
geo square.geo
The triangular mesh has a boundary domain named boundary.
./p_laplacian_fixed_point square.geo P1 1.5 > square.field
field square.field -elevation -stereo
Figure 8.1: The p-Laplacian for d = 2: elevation view for p = 1.25 (left), p = 2 (center) and
p = 2.5 (right).
Run the field visualization:
field square.field -elevation -stereo
field square.field -cut -origin 0.5 0.5 -normal 1 1
The first command shows an elevation view of the solution (see 8.1) while the second one shows
a cut along the first bisector x0 = x1. Observe that the solution becomes flat at the center
when p decreases. The p = 2 case, corresponding to the linear case, is showed for the purpose of
comparison.
There is a technical issue concerning the mesh: the computation could failed on some mesh that
presents at least one triangle with two edges on the boundary:
mkgeo_grid -t 50 > square-bedge.geo
geo square-bedge.geo
./p_laplacian_fixed_point square-bedge.geo P1 1.5 > square-bedge.field128 Rheolef version 6.6 update 15 April 2014
The computation stops and claims a division by zero: the three nodes of such a triangle, the
three nodes are on the boundary, where uh = 0 is prescribed: thus ∇uh = 0 uniformly inside
this element. Notice that this failure occurs only for linear approximations: the computation
works well on such meshes for Pk approximations with k > 2. While the mkgeo_grid generates
uniform meshes that have such triangles, the mkgeo_ugrid calls the gmsh generator that automatically
splits the triangles with two boundary edges. When using bamg, you should consider the
-splitpbedge.
8.2.4 Convergence properties of the fixed-point algorithm
The fixed-point algorithm prints also rn, the norm of the residual term, at each iteration n, and the
convergence rate vn = log10(rn/r0)/n. The residual term of the non-linear variational formulation
is defined by:
r
(n)
h ∈ Vh and m
r
(n)
h
, vh
= a
u
(n)
h
; u
(n)
h
, vh
− l(vh), ∀vh ∈ Vh
where m(., .) denotes the L
2
scalar product. Clearly, u
(n)
h
is a solution if and only if r
(n)
h = 0.
For clarity, let us drop temporarily the n index of the current iteration. The field rh ∈ Vh can be
extended as a field rh ∈ Xh with vanishing components on the boundary. The previous relation
writes, after expansion of the bilinear forms and fields on the unknown and blocked parts (see
page 17 for the notations):
m.uu*rh.u = a.uu*uh.u + a.ub*ub.b - lh.u
rh.b = 0
This relation expresses that the residual term rh is obtained by solving a linear system involving
the mass matrix.
It remains to choose a good norm for estimating this residual term. For the corresponding continuous
formulation, we have:
r = −div
η
|∇u|
2
∇u
− f ∈ W−1,p(Ω)
Thus, for the continuous formulation, the residual term may be measured with the W−1,p(Ω)
norm. It is defined, for all ϕ ∈ W−1,p(Ω), by duality:
kϕk−1,p,Ω = sup
ϕ∈W1,p
0
(Ω)
v6=0
hϕ, vi
kvk1,p,Ω
= sup
v∈W1,p
0
(Ω)
kvk1,p,Ω=1
hϕ, vi
where h., .i denotes the duality bracked between W
1,p
0
(Ω) and W−1,p(Ω).
By analogy, let us introduce the discrete W−1,p(Ω) norm, denoted as k.k−1,h, defined by duality
for all ϕh ∈ Vh by:
kϕhk−1,h = sup
vh∈Vh
kvhk1,p,Ω=1
hϕh, vhi
The dual of space of the finite element space Vh is identified to Vh and the duality bracked is the
Euclidian scalar product of R
dim(Vh)
. Then, kϕhk−1,h is the largest absolue value of components
of ϕh considered as a vector of R
dim(Vh)
. With the notations of the Rheolef library, it simply
writes:
Float r = rh.u().max_abs()
Fig 8.2.top-left shows that the residual term decreases exponentially versus n, since the slope of
the plot in semi-log scale tends to be strait. Moreover, observe that the slope is independent ofRheolef version 6.6 update 15 April 2014 129
10−15
10−10
10−5
1
0 25 50
n
r
(n)
h
−1,h
p = 3/2
h = 1/10
h = 1/20
h = 1/30
h = 1/40
h = 1/50
10−15
10−10
10−5
1
0 25 50
n
r
(n)
h
−1,h
p = 3/2
k = 1
k = 2
k = 3
k = 4
k = 5
10−15
10−10
10−5
1
0 250 500
n
r
(n)
h
−1,h
p = 2.95
p = 2.90
p = 2.50
10−15
10−10
10−5
1
0 100 200
n
r
(n)
h
−1,h
p = 1.15
p = 1.25
p = 1.50
Figure 8.2: The fixed-point algorithm on the p-Laplacian for d = 2: when p = 3/2, independence
of the convergence properties of the residue (top-left) with mesh refinement; (top-right) with
polynomial order Pk; when h = 1/50 and k = 1, convergence (bottom-left) for p > 2 and (bottomright)
for p < 2.
the mesh size h. Also, by vertue of the previous carreful definition of the residual term and its
corresponding norm, all the slopes falls into a master curve.
These invariance properties applies also to the polynomial approximation Pk : Fig 8.2.top-right
shows that all the curves tends to collapse when k increases. Thus, the convergence properties
of the algorithm are now investigated on a fixed mesh h = 1/50 and for a fixed polynomial
approximation k = 1.
Fig 8.2.bottom-left and 8.2.bottom-right show the convergence vesus the power-law index p: observe
that the convergence becomes easier when p approaches p = 2, where the problem is linear.
In that case, the convergence occurs in one iteration. Nevertheless, it appears two limitations.
From one hand, when p → 3 the convergence starts to slow down and p > 3 cannot be solved
by this algorithm (it will be solved later in this chapter). From other hand, when p → 1, the
convergence slows down too and numerical rounding effets limits the convergence: the machine
precision canot be reached. Let us introduce the convergence rate vn = log10(rn/r0)/n it tends to
a constant, denoted as v¯ and: rn ≈ r0 × 10−v n¯
. Observe on Fig 8.3.left that v¯ tends to +∞ when
p = 2, since the system becomes linear and the algorithm converge in one iteration. Observe also
that v¯ tends to zero for p = 1 and p = 3 since the algorithm diverges. Fig 8.3.right shows the
same plot in semi-log scale and shows that v¯ behaves as: v¯ ≈ − log10 |p − 2|. This study shows130 Rheolef version 6.6 update 15 April 2014
0
1
2
1 2 3
p
v¯ computation
0
1
2
10−3 10−2 10−1 100
|p − 2|
v¯ computation: p < 2
computation: p > 2
fit: − log10 |p − 2|
Figure 8.3: The fixed-point algorithm on the p-Laplacian for d = 2: (left) convergence rate versus
p; (right) convergence rate versus p in semi-log scale.
that the residual term of the fixed point algorithm behaves as:
rn ≈ r0 |p − 2|
n
8.2.5 Improvement by relaxation
The relaxation parameter can improve the fixed-point algorithm: for instance, for p = 3 and
ω = 0.5 we get a convergent sequence:
./p_laplacian_fixed_point square.geo P1 3 0.5 > square.field
Observe on Fig. 8.4 the effect on the relaxation parameter ω upon the convergence rate v¯: for
p < 2 it can improve it and for p > 2, it can converge when p > 3. For each p, there is clearly an
optimal relaxation parameter, denoted by ωopt. A simple fit shows that (see Fig. 8.4.bottom-left):
ωopt = 2/p
Let us denote v¯opt the corresponding rate of convergence. Fig. 8.4.top-right shows that the convergence
is dramatically improved when p > 2 while the gain is less prononced when p < 2.
Coveniently replacing the extra parameter ω on the command line by - leads to compute automatically
ω = ωopt: the fixed-point algorithm is always convergent with an optimal convergent
rate, e.g.:
./p_laplacian_fixed_point square.geo P1 4.0 - > square.field
There is no way to improve more the fixed point algorithm: the next paragraph shows a different
algorithm that dramatically accelerates the computation of the solution.Rheolef version 6.6 update 15 April 2014 131
0
0.1
0.2
0.3
0.4
0 0.5 1 1.5 2
ω
v¯ p = 1.2
p = 1.3
p = 1.4
p = 1.5
0
0.1
0.2
0.3
0.4
0 0.25 0.5 0.75 1
ω
v¯ p = 3
p = 4
p = 5
p = 6
0
0.5
1
1.5
2
1 2 3 4 5 6 7 8
p
ωopt
computation: ωopt
fit: ωopt(p) = 2/p
0
0.5
1
1.5
2
2.5
1 2 3 4 5 6 7 8
p
v¯opt v¯ when ω = ωopt
v¯ when ω = 1
Figure 8.4: The fixed-point algorithm on the p-Laplacian for d = 2: effect of the relaxation
parameter ω (top-left) when p < 2; (top-right) when p > 2; (bottom-left) optimal ωopt; (bottomright)
optimal v¯opt.132 Rheolef version 6.6 update 15 April 2014
8.3 The Newton algorithm
8.3.1 Principe of the algorithm
An alternative to the fixed-point algorithm is to solve the nonlinear problem (P) by using the
Newton algorithm. Let us consider the following operator:
F : W
1,p
0
(Ω) −→ W−1,p(Ω)
u 7−→ F(u) = −div
η
|∇u|
2
∇u
− f
The F operator computes simply the residual term and the problem expresses now as: find u ∈
W
1,p
0
(Ω) such that F(u) = 0.
The Newton algorithm reduces the nonlinear problem into a sequence of linear subproblems: the
sequence
u
(n)
n>0
is classically defined by recurrence as:
• n = 0: let u
(0) ∈ W
1,p
0
(Ω) be known.
• n > 0: suppose that u
(n)
is known, find δu(n)
, defined in Ω, such that:
F
′
u
(n)
δu(n) = −F
u
(n)
and then compute explicitly:
u
(n+1) := u
(n) + δu(n)
The notation F
′
(u) stands for the Fréchet derivative of F, as an operator from W−1,p(Ω) into
W
1,p
0
(Ω). For any r ∈ W−1,p(Ω), the linear tangent problem writes:
find δu ∈ W
1,p
0
(Ω) such that:
F
′
(u) δu = −r
After the computation of the Fréchet derivative, we obtain the strong form of this problem:
(LT): find δu, defined in Ω, such that
−div
η
|∇u|
2
∇(δu) + 2η
′
|∇u|
2
{∇u.∇(δu)} ∇u
= −r in Ω
δu = 0 on ∂Ω
where
η
′
(z) = 1
2
(p − 2)z
p−4
2 , ∀z > 0
This is a Poisson-like problem with homogeneous Dirichlet boundary conditions and a non-constant
tensorial coefficient. The variational form of the linear tangent problem writes:
(V LT): find δu ∈ W
1,p
0
(Ω) such that
a1(u; δu, δv) = l1(v), ∀δv ∈ W
1,p
0
(Ω)
where the a1(.; ., .) is defined for any u, δu, δv ∈ W
1,p
0
(Ω) by:
a1(u; δu, δv) = Z
Ω
η
|∇u|
2
∇(δu).∇(δv) + 2η
′
|∇u|
2
{∇u.∇(δu)} {∇u.∇(δv)}
dx
l1(v) = −
Z
Ω
r v dx
For any ξ ∈ R
d
let us denote by ν(ξ) the following d × d matrix:
ν(ξ) = η
|ξ|
2
I + 2η
′
|ξ|
2
ξ ⊗ ξRheolef version 6.6 update 15 April 2014 133
where I stands for the d-order identity matrix. Then the a1 expresses in a more compact form:
a1(u; δu, δv) = Z
Ω
(ν(∇u)∇(δu)).∇(δv) dx
Clearly a1 is linear and symmetric with respect to the two last variables.
Example file 8.4: p_laplacian_newton.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " p_laplacian . h "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega_h ( argv [1]);
8 Float eps = std :: numeric_limits :: epsilon ();
9 string approx = ( argc > 2) ? argv [2] : " P1 ";
10 Float p = ( argc > 3) ? atof ( argv [3]) : 1.5;
11 Float tol = ( argc > 4) ? atof ( argv [4]) : 1 e5 * eps ;
12 size_t max_iter = ( argc > 5) ? atoi ( argv [5]) : 500;
13 derr << " # P - Laplacian problem by Newton : " << endl
14 << " # geo = " << omega_h . name () << endl
15 << " # approx = " << approx << endl
16 << " # p = " << p << endl
17 << " # tol = " << tol << endl
18 << " # max_iter = " << max_iter << endl ;
19 p_laplacian F (p , omega_h , approx );
20 field uh = F . initial ();
21 int status = newton (F , uh , tol , max_iter , & derr );
22 dout << setprecision ( numeric_limits :: digits10 )
23 << catchmark (" p ") << p << endl
24 << catchmark (" u ") << uh ;
25 return status ;
26 }
Example file 8.5: p_laplacian.h
1 class p_laplacian {
2 public :
3 typedef field value_type ;
4 typedef Float float_type ;
5 p_laplacian ( Float p , const geo& omega , string approx );
6 field initial () const ;
7 field residue ( const field & uh ) const ;
8 void update_derivative ( const field & uh ) const ;
9 field derivative_solve ( const field & mrh ) const ;
10 field derivative_trans_mult ( const field & mrh ) const ;
11 Float space_norm ( const field & uh ) const ;
12 Float dual_space_norm ( const field & mrh ) const ;
13 Float p ;
14 space Xh ;
15 field lh ;
16 form m ;
17 solver sm ;
18 quadrature_option_type qopt ;
19 mutable form a1 ;
20 mutable solver sa1 ;
21 };
22 # include " p_laplacian1 . icc "
23 # include " p_laplacian2 . icc "
8.3.2 Comments
The Newton algorithm is implemented in a generic way, for any F function, by the newton function
from the Rheolef librarys. The reference manual for the newton generic function is available
online:134 Rheolef version 6.6 update 15 April 2014
man newton
The function F and its derivative F
′ are provided by a template class argument. Here,
the p_laplacian class describes our F function, i.e. our problem to solve: its interface
is defined in the file ‘p_laplacian.h’ and its implementation in ‘p_laplacian1.icc’
and ‘p_laplacian2.icc’. The introduction of the class p_laplacian will allow an easy exploration
of some variants of the Newton algorithm for this problem, as we will see in the next section.
Example file 8.6: p_laplacian1.icc
1 # include " eta . icc "
2 # include " nu . icc "
3 # include " dirichlet . icc "
4 p_laplacian :: p_laplacian ( Float p1 , const geo & omega , string approx )
5 : p ( p1 ) , Xh () , lh () , m () , sm () , qopt () , a1 () , sa1 () {
6 Xh = space ( omega , approx );
7 Xh . block (" boundary ");
8 qopt . set_family ( quadrature_option_type :: gauss );
9 qopt . set_order (2* Xh . degree () -1);
10 trial u ( Xh ); test v ( Xh );
11 lh = integrate ( v );
12 m = integrate ( u * v );
13 sm = solver ( m. uu ());
14 }
15 field p_laplacian :: initial () const {
16 field uh ( Xh , 0);
17 dirichlet ( lh , uh );
18 return uh ;
19 }
20 field p_laplacian :: residue ( const field & uh ) const {
21 trial u ( Xh ); test v ( Xh );
22 form a = integrate ( compose ( eta ( p ), norm2 ( grad ( uh )))* dot ( grad ( u ) , grad ( v )) ,
23 qopt );
24 field mrh = a * uh - lh ;
25 mrh . set_b () = 0;
26 return mrh ;
27 }
28 void p_laplacian :: update_derivative ( const field & uh ) const {
29 size_t d = Xh . get_geo (). dimension ();
30 trial u ( Xh ); test v ( Xh );
31 a1 = integrate ( dot ( compose ( nu < eta >( eta ( p ) , d ) , grad ( uh ))* grad ( u ) , grad ( v )) ,
32 qopt );
33 sa1 = ldlt ( a1 . uu ());
34 }
35 field p_laplacian :: derivative_solve ( const field & rh ) const {
36 field delta_uh ( Xh ,0);
37 delta_uh . set_u () = sa1 . solve ( rh . u ());
38 return delta_uh ;
39 }
The residual term F(uh) is computed by the member function residual while the resolution of
F
′
(uh)δuh = Mrh is performed by the function derivative_solve. The derivative F
′
(uh) is
computed separately by the function update_derivative:
a1 = integrate ( dot ( compose ( nu < eta >( eta (p ) , d ) , grad ( uh ))* grad ( u ) , grad ( v )) ,
qopt );
Notice that the a1(u; ., .) bilinear form is a tensorial weighted form, where ν = ν(∇u) is the
weight tensor. The tensorial weight ν is inserted as (ν∇u).∇v in the variationnal expression for
the integrate function. As the tensor ν is symmetric, the bilinear form a1(., .) is also symmetric.
As the weight is non-polynomial for general η function and a quadrature formula is used:
a1(u0; u, v) = X
K∈Th
nXK−1
q=0
(ν (∇u0(xK,q)) ∇u(xK,q).∇v(xK,q)) ωK,q (8.4)
By using exactly the same quadrature for computing both a1(., .) and a(., .) in (8.4), then we have
that F
′
is always the derivative of F at the discrete level: while, in general, the derivation andRheolef version 6.6 update 15 April 2014 135
the discretization of problems does not commute, it is the case when using the same quadrature
formulae on both problems. This is an important aspect of the Newton method at discrete level,
for conservating the optimal convergence rate of the residual terms versus n.
The linear system involving the derivative F
′
(uh) is solved by the p_laplacian member function
derivative_solve. Finally, applying the generic Newton method requires a stopping criteria
on the residual term: this is the aim of the member function dual_space_norm. The three last
member functions are not used by the Newton algorithm, but by its extension, the damped Newton
method, that will be presented later.
Example file 8.7: p_laplacian2.icc
1 field p_laplacian :: derivative_trans_mult ( const field & mrh ) const {
2 field rh ( Xh , 0);
3 rh . set_u () = sm . solve ( mrh . u ());
4 field mgh = a1 * rh ;
5 mgh . set_b () = 0;
6 return mgh ;
7 }
8 Float p_laplacian :: space_norm ( const field & uh ) const {
9 return sqrt ( m ( uh , uh ));
10 }
11 Float p_laplacian :: dual_space_norm ( const field & mrh ) const {
12 field rh ( Xh , 0);
13 rh . set_u () = sm . solve ( mrh . u ());
14 return sqrt ( dual ( mrh , rh ));
15 }
The ν function is implemented for a generic η function, as a class-function that accept as template
agument another class-function.
Example file 8.8: nu.icc
1 template < class Function >
2 struct nu : std :: unary_function {
3 tensor operator () ( const point & grad_u ) const {
4 Float x2 = norm2 ( grad_u );
5 Float a = f ( x2 );
6 Float b = 2* f . derivative ( x2 );
7 tensor value ;
8 for ( size_t i = 0; i < d ; i ++) {
9 value (i , i ) = a + b* grad_u [ i ]* grad_u [ i ];
10 for ( size_t j = 0; j < i ; j ++)
11 value (j , i ) = value (i , j ) = b * grad_u [ i ]* grad_u [j ];
12 }
13 return value ;
14 }
15 nu ( const Function & f1 , Float d1 ) : f ( f1 ) , d ( d1 ) {}
16 Function f ;
17 size_t d ;
18 };
8.3.3 Running the program
Enter:
make p_laplacian_newton
mkgeo_ugrid -t 50 > square.geo
./p_laplacian_newton square.geo P1 3 > square.field
field square.field -elevation -stereo
The program prints at each iteration n, the residual term rn in discrete L
2
(Ω) norm. Convergence
occurs in less than ten iterations: it dramatically improves the previous algorithm (see Fig. 8.5).
Observe that the slope is no more constant in semi-log scale: the convergence rate accelerates and136 Rheolef version 6.6 update 15 April 2014
10−15
10−10
10−5
1
0 5 10 15 20 25
n
r
(n)
h
−1,h
p = 3
fixed point ω = 2/3
Newton
Figure 8.5: The Newton algorithm on the p-laplacian for d = 2: comparison with the fixed-point
algorithm.
the slope tends to be vertical, the so-called super-linear convergence. This is the major advantage
of the Newton method. Figs. 8.6.top-left and. 8.6.top-bottom shows that the algorithm converge
when p > 3 and that the convergence properties are independant of the mesh size h and the
polynomial order k. There are still two limitations of the method. From one hand, the Newton
algorithm is no more independant of h and k when p 6 3/2 and to tends to diverges in that
case when h tends to zero (see Fig. 8.6.bottom-left). From other hand, when p becomes large
(see Fig. 8.6.bottom-right), an overshoot in the convergence tends to increases and distroys the
convergence, due to rounding problems. In order to circumvent these limitations, another strategy
is considered in the next section: the damped Newton algorithm.Rheolef version 6.6 update 15 April 2014 137
10−15
10−10
10−5
1
0 5 10 15 20 25
n
r
(n)
h
−1,h
p = 3
h = 1/10
h = 1/20
h = 1/30
h = 1/40
h = 1/50
10−15
10−10
10−5
1
0 5 10 15 20 25
n
r
(n)
h
−1,h
p = 3
k = 1
k = 2
k = 3
k = 4
k = 5
10−15
10−10
10−5
1
0 50 100
n
r
(n)
h
−1,h
p = 3/2
h = 1/10
h = 1/20
h = 1/30
h = 1/40
h = 1/50
10−15
10−10
10−5
100
0 25
n
r
(n)
h
−1,h
p = 2.5
p = 3.0
p = 3.5
Figure 8.6: The Newton algorithm on the p-laplacian for d = 2: (top-left) comparison with the
fixed-point algorithm; when p = 3, independence of the convergence properties of the residue (topleft)
with mesh refinement; (top-right) with polynomial order Pk; (bottom-left) mesh-dependence
convergence when p < 2; (bottom-right) overshoot when p > 2.138 Rheolef version 6.6 update 15 April 2014
8.4 The damped Newton algorithm
8.4.1 Principe of the algorithm
The Newton algorithm diverges when the initial u
(0) is too far from a solution, e.g. when p is
not at the vicinity of 2. Our aim is to modify the Newton algorithm and to obtain a globally
convergent algorithm, i.e to converge to a solution for any initial u
(0). By this way, the algorithm
should converge for any value of p ∈]1, +∞[. The basic idea is to decrease the step length while
maintaining the direction of the original Newton algorithm:
u
(n+1) := u
(n) + λn δu(n)
where λ
(n) ∈]0, 1] and δu(n)
is the direction from the Newton algorithm, given by:
F
′
u
(n)
δu(n) = −F
u
(n)
Let V a Banach space and let T : V → R defined for any v ∈ V by:
T(v) = 1
2
kC
−1F(v)k
2
V
,
where C is some non-singular operator, easy to invert, used as a non-linear preconditioner. The
simplest case, without preconditioner, is C = I. The T function furnishes a measure of the residual
term in L
2 norm. The convergence is global when for any initial u
(0), we have for any n > 0:
T
u
(n+1)
6 T
u
(n)
+ α
D
T
′
u
(n)
, u(n+1) − u
(n)
E
V ′
,V
(8.5)
where h., .iV ′
,V is the duality product between V and its dual V
′
, and α ∈]0, 1[ is a small parameter.
Notice that
T
′
(u) = {C
−1F
′
(u)}
∗C
−1F(u)
where the superscript ∗ denotes the adjoint operator, i.e. the transpose matrix the in finite
dimensional case. In practice we consider α = 10−4 and we also use a minimal step length
λmin = 1/10 in order to avoid too small steps. Let us consider a fixed step n > 0: for convenience
the n superscript is dropped in u
(n) and δu(n)
. Let g : R → R defined for any λ ∈ R by:
g(λ) = T (u + λδu)
Then :
g
′
(λ) = hT
′
(u + λδu), δuiV ′
,V
= hC
−1F(u + λδu), F′
(u + λδu)C
−1
δuiV,V ′
where the superscript ∗ denotes the adjoint operator, i.e. the transpose matrix the in finite
dimensional case. The practical algorithm for obtaining λ was introduced first in [28] and is also
presented in [43, p. 385]. The step length λ that satisfy (8.5) is computed by using a finite sequence
λk, k = 0, 1 . . . with a second order recurrence:
• k = 0 : initialization λ0 = 1. If (8.5) is satisfied with u + λ0 d then let λ := λ0 and the
sequence stop here.
• k = 1 : first order recursion. The quantities g(0) = f(u) et g
′
(0) = hf
′
(u), di are already
computed at initialization. Also, we already have computed g(1) = f(u + d) when verifying
whether (8.5) was satisfied. Thus, we consider the following approximation of g(λ) by a
second order polynomial:
g˜1(λ) = {g(1) − g(0) − g
′
(0)}λ
2 + g
′
(0)λ + g(0)Rheolef version 6.6 update 15 April 2014 139
After a short computation, we find that the minimum of this polynomial is:
λ˜
1 =
−g
′
(0)
2{g(1) − g(0) − g
′(0)}
Since the initialization at k = 0 does not satisfy (8.5), it is possible to show that, when α is
small enough, we have λ˜
1 6 1/2 and λ˜
1 ≈ 1/2. Let λ1 := max(λmin, λ˜
1). If (8.5) is satisfied
with u + λ1 d then let λ := λ1 and the sequence stop here.
• k > 2 : second order recurrence. The quantities g(0) = f(u) et g
′
(0) =if
′
(u), dh are
available, together with λk−1, g(λk−1), λk−2 and g(λk−2). Then, g(λ) is approximated by
the following third order polynomial:
g˜k(λ) = aλ3 + bλ2 + g
′
(0)λ + g(0)
where a et b are expressed by:
a
b
=
1
λk−1 − λk−2
1
λ
2
k−1
−
1
λ
2
k−2
−
λk−2
λ
2
k−1
λk−1
λ
2
k−2
g(λk−1) − g
′
(0)λk−1 − g(0)
g(λk−2) − g
′
(0)λk−2 − g(0)
The minimum of g˜k(λ) is
λ˜
k =
−b +
p
b
2 − 3ag′(0)
3a
Let λk = min(1/2 λk, max(λ˜
k/10, λ˜
k+1) in order for λk to be at the same order of magnitude
as λk−1. If (8.5) is satisfied with u + λk d then let λ := λk and the sequence stop here.
The sequence (λk)k>0 is strictly decreasing: when the stopping criteria is not satisfied until λk
reaches the machine precision εmach then the algorithm stops with an error.
Example file 8.9: p_laplacian_damped_newton.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " p_laplacian . h "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega_h ( argv [1]);
8 Float eps = numeric_limits :: epsilon ();
9 string approx = ( argc > 2) ? argv [2] : " P1 ";
10 Float p = ( argc > 3) ? atof ( argv [3]) : 1.5;
11 Float tol = ( argc > 4) ? atof ( argv [4]) : eps ;
12 size_t max_iter = ( argc > 5) ? atoi ( argv [5]) : 500;
13 derr << " # P - Laplacian problem by damped Newton :" << endl
14 << " # geo = " << omega_h . name () << endl
15 << " # approx = " << approx << endl
16 << " # p = " << p << endl ;
17 p_laplacian F (p , omega_h , approx );
18 field uh = F . initial ();
19 int status = damped_newton (F , uh , tol , max_iter , & derr );
20 dout << catchmark (" p ") << p << endl
21 << catchmark (" u ") << uh ;
22 return status ;
23 }
8.4.2 Comments
The damped_newton function implements the damped Newton algorithm for a generic T(u) function,
i.e. a generic nonlinear preconditioner. This algorithms use a backtrack strategy implemented140 Rheolef version 6.6 update 15 April 2014
in the file ‘newton-backtrack.h’ of the Rheolef library. The simplest choice of the identity preconditioner
C = I i.e. T(u) = kF(u)k
2
V ′/2 is showed in file damped-newton.h. The gradient at
λ = 0 is
T
′
(u) = F
′
(u)
∗F(u)
and the slope at λ = 0 is:
g
′
(0) = hT
′
(u), δuiV ′
,V
= hF(u), F′
(u)δuiV ′
,V ′
= −kF(u)k
2
V ′
The ‘p_laplacian_damped_newton.cc’ is the application program to the p-Laplacian problem
together with the k.kL2(Ω) discrete norm for the function T.
8.4.3 Running the program
Figure 8.7: The p-Laplacian for d = 2: elevation view for p = 1.15 (left) and p = 7 (right).
As usual, enter:
make p_laplacian_damped_newton
mkgeo_ugrid -t 50 > square.geo
./p_laplacian_damped_newton square.geo P1 1.15 | field -stereo -elevation -
./p_laplacian_damped_newton square.geo P1 7 | field -stereo -elevation -
See Fig. 8.7 for the elevation view of the solution. The algorithm is now quite robust: the
convergence occurs for quite large range of p > 1 values and extends the range previously presented
on Fig. 8.1. The only limitation is now due to machine roundoff on some architectures.
Figs. 8.8.top shows that the convergence properties seems to slightly depend on the mesh re-
finement. Nevertheless, there are quite good and support both mesh refinement and high order
polynomial degree. When p is far from p = 2, i.e. either close to one or large, Figs. 8.8.bottom
shows that the convergence becomes slower and that the first linear regime, corresponding to the
line search, becomes longer. This first regime finishes by a brutal super-linear regime, where the
residual terms fall in few iterations to the machine precision.Rheolef version 6.6 update 15 April 2014 141
8.5 Error analysis
While there is no simple explicit expression for the exact solution in the square Ω =]0, 1[2
, there
is one when considering Ω as the unit circle:
u(x) = (p − 1) 2− 1
p−1
p
1 −
x
2
0 + x
2
1
p
p−1)
Example file 8.10: p_laplacian_circle.icc
1 struct u_exact : field_functor < u_exact ,Float > {
2 Float operator () ( const point & x ) const {
3 return (1 - pow ( norm2 ( x ) , p /(2* p -2)))/(( p /(p -1))* pow (2. ,1/( p -1)));
4 }
5 u_exact ( Float q ) : p ( q ) {}
6 protected : Float p ;
7 };
8 struct grad_u : field_functor < grad_u ,point > {
9 point operator () ( const point & x ) const {
10 return - ( pow ( norm2 ( x ) , p /(2* p -2) - 1)/ pow (2. ,1/( p -1)))* x ;
11 }
12 grad_u ( Float q ) : p ( q ) {}
13 protected : Float p ;
14 };
Example file 8.11: p_laplacian_error.cc
1 # include " rheolef . h "
2 using namespace rheolef ;
3 using namespace std ;
4 # include " p_laplacian_circle . icc "
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 Float tol = ( argc > 1) ? atof ( argv [1]) : 1e -15;
8 Float p ;
9 field uh ;
10 din >> catchmark (" p ") >> p
11 >> catchmark (" u ") >> uh ;
12 const geo & omega = uh . get_geo ();
13 const space & Xh = uh . get_space ();
14 field pi_h_u = interpolate ( Xh , u_exact ( p ));
15 field eh = pi_h_u - uh ;
16 quadrature_option_type qopt ;
17 qopt . set_family ( quadrature_option_type :: gauss );
18 qopt . set_order (2* Xh . degree ());
19 Float err_lp = pow ( integrate ( omega ,
20 pow ( fabs ( uh - u_exact (p )) , p ) , qopt ) , 1./ p );
21 Float err_w1p = pow ( integrate ( omega ,
22 pow ( norm ( grad ( uh ) - grad_u ( p )) , p ) , qopt ) , 1./ p );
23 Float err_linf = eh . max_abs ();
24 dout << " err_linf = " << err_linf << endl
25 << " err_lp = " << err_lp << endl
26 << " err_w1p = " << err_w1p << endl ;
27 return ( err_linf < tol ) ? 0 : 1;
28 }
Notice, in the file ‘p_laplacian_error.cc’, the usage of the integrate function, together with
a quadrature formula specificiation, for computing the errors in L
p norm and W1,p semi-norm.
Notice also the flexibility of expressions, mixing together fields as uh and field_functors, as
u_exact. The whole expression is evaluated by the integrate function at quadrature points
inside each element of the mesh.
By this way, the error analysis investigation becomes easy:
make p_laplacian_error
mkgeo_ball -t 10 -order 2 > circle-10-P2.geo
./p_laplacian_damped_newton circle-10-P2.geo P2 1.5 | ./p_laplacian_error142 Rheolef version 6.6 update 15 April 2014
We can vary both the mesh size and the polynomial order and the error plots are showed on
Fig. 8.9 for both the L
2
, L∞ norms and the W1,p semi-norm. Observe the optimal error behavior:
the slopes in the log-log scale are the same as those obtained by a direct Lagrange interpolation
of the exact solution.Rheolef version 6.6 update 15 April 2014 143
10−15
10−10
10−5
1
0 5 10 15 20 25
n
r
(n)
h
−1,h
p = 3/2, k = 1
h = 1/10
h = 1/20
h = 1/30
h = 1/40
h = 1/50
10−15
10−10
10−5
1
0 5 10 15 20 25
n
r
(n)
h
−1,h
p = 3/2, k = 1
k = 1
k = 2
k = 3
k = 4
k = 5
10−15
10−10
10−5
100
0 25 50
n
r
(n)
h
−1,h
h = 1/50, k = 1
p = 1.5
p = 1.4
p = 1.3
p = 1.2
10−15
10−10
10−5
100
0 5 10 15 20 25
n
r
(n)
h
−1,h
h = 1/50, k = 1
p = 3
p = 4
p = 5
p = 6
p = 7
Figure 8.8: The damped Newton algorithm on the p-Laplacian for d = 2: when p = 1.5 and
h = 1/50, convergence properties of the residue (top-left) with mesh refinement; (top-right) with
polynomial order Pk; (bottom-left) convergence when p < 2; (bottom-right) when p > 2.144 Rheolef version 6.6 update 15 April 2014
10−8
10−6
10−4
10−2
10−2 10−1 1
h
ku − uhk0,p,Ω
2 = k + 1
3
4
k = 1
k = 2
k = 3
10−8
10−6
10−4
10−2
10−2 10−1 1
h
ku − uhk0,∞,Ω
2 = k + 1
3
4
k = 1
k = 2
k = 3
10−6
10−4
10−2
1
10−2 10−1 1
h
|∇(u − uh)|0,p,Ω
1 = k
2
3
k = 1
k = 2
k = 3
Figure 8.9: The p-Laplacian for d = 2: error analysis.Part IV
Technical appendices
145Appendix A
How to write a variational
formulation ?
The major keypoint for using Rheolef is to put the problem in variational form. Then this
variational form can be efficiently translated into C++ language. This appendix is dedicated to
readers who are not fluent with variational formulations and some related functionnal analysis
tools.
A.1 The Green formula
Let us come back to the model problem presented in section 1.1, page 15, equations (1.1)-(1.2)
and details how this problem is transformed into (1.3).
Let H1
0
(Ω) the space of functions whose gradient square has a finite sum over Ω and that vanishes
on ∂Ω:
H1
0
(Ω) = {v ∈ L
2
(Ω); ∇v ∈ L
2
(Ω)d
and v = 0 on ∂Ω}
We start by multiplying (1.1) by an arbitrarily test-function v ∈ H1
0
(Ω) and then integrate over Ω :
−
Z
Ω
∆u v dx =
Z
Ω
f v dx, ∀v ∈ H1
0
(Ω)
The next step is to invoque an integration by part, the so-called Green formula:
Z
Ω
∆u v dx +
Z
Ω
∇u.∇v dx =
Z
∂Ω
∂u
∂n v ds, ∀u, v ∈ H1
(Ω)
Since our test-function v vanishes on the boundary, the integral over ∂Ω is zero and the problem
becomes:
Z
Ω
∇u.∇v dx =
Z
Ω
f v dx, ∀v ∈ H1
0
(Ω)
This is exactly the variational formulation (1.3), page 15.
A.2 The vectorial Green formula
In this section, we come back to the linear elasticity problem presented in section 4.1, page 51,
equations (4.1)-(4.2) and details how this problem is transformed into (4.3).
Let Γd (resp. Γn) denotes the parts of the boundary ∂Ω related to the homogeneous Dirichlet
boundary condition u = 0 (resp. the homogeneous Neumann boundary condition σ(u) n = 0).
147148 Rheolef version 6.6 update 15 April 2014
We suppose that ∂Ω = Γd ∩ Γn. Let us introduce the following functional space:
V = {v ∈ H1
(Ω)d
; v = 0 on Γd}
Then, multiplying the first equation of (4.2) by an arbitrarily test-function v ∈ V and then
integrate over Ω :
−
Z
Ω
div(σ(u)).v dx =
Z
Ω
f.v dx, ∀v ∈ V
The next step is to invoque an integration by part:
Z
Ω
div τ.v dx +
Z
Ω
τ : D(v) dx =
Z
∂Ω
τ : (v ⊗ n) ds, ∀τ ∈ L
2
(Ω)d×d
, ∀v ∈ V
Recall that div τ denotes Pd−1
j=0 ∂j τi,j
06i square.geo
This command creates a ‘square.geo’ file. Look at the mesh via the command:
geo square
This presents the mesh it in a graphical form, usually with gnuplot. You can switch to the
paraview or mayavi renders:
geo square -paraview
geo square -mayavi
A finer mesh could be generated by:
bamg -coef 0.5 -g square.bamgcad -o square-0.5.bamg
B.2 Unidimensional mesh with gmsh
The simplest unidimensional mesh is a line:
h_local = 0.1;
Point(1) = {0, 0, 0, h_local};
Point(2) = {1, 0, 0, h_local};
Line(3) = {1,2};
Physical Point("left") = {1};
Physical Point("right") = {2};
Physical Point("boundary") = {1,2};
Physical Line("interior") = {3};
The mesh generation command writes:
gmsh -1 line.mshcad -format msh -o line.msh
Then, the conversion to ‘.geo’ format and the visualization:
msh2geo line.msh > line.geo
geo lineRheolef version 6.6 update 15 April 2014 151
B.3 Bidimensional mesh with gmsh
Figure B.1: Visualization of the gmsh meshes ‘square.geo’ and ‘cube.geo’.
We first create a ‘square.mshcad’ file:
n = 10.0;
hloc = 1.0/n;
Point(1) = {0, 0, 0, hloc};
Point(2) = {1, 0, 0, hloc};
Point(3) = {1, 1, 0, hloc};
Point(4) = {0, 1, 0, hloc};
Line(1) = {1,2};
Line(2) = {2,3};
Line(3) = {3,4};
Line(4) = {4,1};
Line Loop(5) = {1,2,3,4};
Plane Surface(6) = {5} ;
Physical Point("left_bottom") = {1};
Physical Point("right_bottom") = {2};
Physical Point("right_top") = {3};
Physical Point("left_top") = {4};
Physical Line("boundary") = {1,2,3,4};
Physical Line("bottom") = {1};
Physical Line("right") = {2};
Physical Line("top") = {3};
Physical Line("left") = {4};
Physical Surface("interior") = {6};
This is an uniform mesh with element size h = 0.1. We refer to the gmsh documentation [21] for
the complete file format description. Next, enter the mesh generator commands:152 Rheolef version 6.6 update 15 April 2014
gmsh -2 square.mshcad -format msh -o square.msh
Then, enter the translation command:
msh2geo square.msh > square.geo
This command creates a ‘square.geo’ file. Look at the mesh via the command:
geo square
Remark that the domain names, defined in the .mshcad file, are included in the gmsh .msh input
file and are propagated in the .geo by the format conversion.
B.4 Tridimensional mesh with gmsh
First, create a ‘cube.mshcad’ file:
Mesh.Algorithm = 7; // bamg
Mesh.Algorithm3D = 7; // mmg3d
a = 0; c = 0; f = 0;
b = 1; d = 1; g = 1;
n = 10;
hloc = 1.0/n;
Point(1) = {a, c, f, hloc};
Point(2) = {b, c, f, hloc};
Point(3) = {b, d, f, hloc};
Point(4) = {a, d, f, hloc};
Point(5) = {a, c, g, hloc};
Point(6) = {b, c, g, hloc};
Point(7) = {b, d, g, hloc};
Point(8) = {a, d, g, hloc};
Line(1) = {1,2};
Line(2) = {2,3};
Line(3) = {3,4};
Line(4) = {4,1};
Line(5) = {5,6};
Line(6) = {6,7};
Line(7) = {7,8};
Line(8) = {8,5};
Line(9) = {1,5};
Line(10) = {2,6};
Line(11) = {3,7};
Line(12) = {4,8};
Line Loop(21) = {-1,-4,-3,-2};
Plane Surface(31) = {21} ;
Line Loop(22) = {5,6,7,8};
Plane Surface(32) = {22} ;
Line Loop(23) = {1,10,-5,-9};
Plane Surface(33) = {23} ;
Line Loop(24) = {12,-7,-11,3};
Plane Surface(34) = {24} ;
Line Loop(25) = {2,11,-6,-10};
Plane Surface(35) = {25} ;
Line Loop(26) = {9,-8,-12,4};Rheolef version 6.6 update 15 April 2014 153
Plane Surface(36) = {26} ;
Surface Loop(41) = {31,32,33,34,35,36};
Volume(51) = {41};
Physical Surface("bottom") = {31};
Physical Surface("top") = {32};
Physical Surface("left") = {33};
Physical Surface("front") = {35};
Physical Surface("right") = {34};
Physical Surface("back") = {36};
Physical Volume("internal") = {51};
Next, enter the mesh generator commands:
gmsh -3 cube.mshcad -format msh -o cube.msh
Then, enter the translation command:
msh2geo cube.msh > cube.geo
This command creates a ‘cube.geo’ file. Look at the mesh via the command:
geo cube
geo cube.geo -paraview -cut
The second command allows to see inside the mesh.154 Rheolef version 6.6 update 15 April 2014Appendix C
Migrating to Rheolef version 6.0
Due to its new distributed memory and computation support, Rheolef version 6.0 presents some
backward incompatibilities with previous versions: codes using previous versions of the library
should be slightly modified. This appendix presents some indications for migrating existing code.
C.1 What is new in Rheolef 6.0 ?
The major main features are:
• support distributed achitectures: the code looks sequential, is easy to read and write but
can be run massively parallel and distributed, based on the MPI library.
• high order polynomial approximation: Pk basis are introduced in this version, for k > 0.
This feature will be improved in the future developments.
• mesh adaptation and the charateristic method are now available for threedimensional
problems.
In order to evoluate in these directions, internal data structures inside the library are completely
rewritten in a different way, and thus this version is a completely new library.
Conversely, the library and unix command interfaces was as less as possible modified.
Nevertheless, the user will find some few backward incompatibilities: 5.93 based codes will not
directly compile with the 6.0 library version. Let us review how to move a code from 5.93 to 6.0
version.
C.2 What should I have to change in my 5.x code ?
1. Namespace
The namespace rheolef was already introduced in last 5.93 version. Recall that a code usually
starts with:
# include " rheolef . h "
using namespace rheolef ;
2. Environment
The MPI library requires initialisation and the two command line arguments. This initialisation
is performed via the boost::mpi class environment: The code entry point writes:
155156 Rheolef version 6.6 update 15 April 2014
int main (int argc , char ** argv ) {
environment rheolef ( argc , argv );
...
3. Fields and forms data accessors
The accesses to unknown and blocked data was of a field uh was direct, as uh.u and uh.b.
This access is no more possible in a distributed environment, as non-local value requests may be
optimized and thus, read and write access may be controled thought accessors. These accessors
are named uh.u() and uh.b() for read access, and uh.set_u() and uh.set_b() for write access.
Similarly, a form a has accessors as a.uu().
A typical 5.93 code writes:
ssk sa = ldlt ( a . uu );
uh . u = sa . solve ( lh . u - a . ub * uh . b );
and the corresponding 6.0 code is:
solver sa ( a . uu ());
uh . set_u () = sa . solve ( lh . u () - a. ub ()* uh . b ());
This major change in the library interface induces the most important work when porting to the
6.0 version.
Notice also that the old ssk class has been supersetted by the solver class, that manages
both direct and iterative solvers in a more effective way. For three-dimensional problems,
the iterative solver is the default while direct solvers are used otherwise. In the same spirit, a
solver_abtb has been introduced, for Stokes-like mixed problem. These features facilitate the
dimension-independent coding style provided by the Rheolef library.
4. Distributed input and output streams
Input and output sequential standard streams cin, cout and cerr may now replaced by distributed
Rheolef streams din, dout and derr as:
din >> omega ;
dout << uh ;
These new streams are available togeher with the idiststream and odiststream classes of the
Rheolef library.
5. File formats ‘.geo’ and ‘.field’ have changed
The ‘.geo’ and ‘.field’ file formats have changed. The ‘.mfield’ is now obsolete: it has been
merged into the ‘.field’ format that supports now multi-component fields. Also, the corresponding
mfield unix command is obsolete, as these features are integrated in the field unix
command.
At this early stage of the 6.0 version, it is not yet possible to read the old ‘.geo’ format, but this
backward compatibility will be assured soon.
6. Space on a domain
A space defined on a domain "boundary" of a mesh omega was defined in the 5.93 version as:
space Wh ( omega [" boundary "] , omega , " P1 ");
It writes now:
space Wh ( omega [" boundary "] , " P1 ");
as the repetition of omega is no more required.Rheolef version 6.6 update 15 April 2014 157
7. Nonlinear expressions involving fields
Non-linear operations, such as sqrt(uh) or 1/uh was directly supported in Rheolef-5.x.
space Xh ( omega , " P1 ");
field uh ( Xh , 2.);
field vh = 1/ uh ;
Notice that non-linear operations as 1/uh do not returns in general picewise polynomials while
uh*uh is piecewise quadratic. In Rheolef-5.x, the returned value was implicitly the Lagrange
interpolant of the nonlinear expression in space Xh. For more clarity, Rheolef-6.x requires an
explicit call to the interpolate function and the code should write:
field vh = interpolate (Xh , 1/ uh );
Notice that when the expression is linear, there is no need to call interpolate.
C.3 New features in Rheolef 6.4
The Rheolef-6.x code is in active developments. While backward compatibility s maintained since
6.0, some styles and idioms evoluates in order to increase the expressivity and the flexibility of the
interface library. Here is the summary of these evolutions.
1. Nonlinear expressions
Nonlinear expressions has been extended since Rheolef-6.4 to expression mixing field and functions
or field_functor. For instance, when u_exact is a field_functor, an L
2
error could be
computed using a nonlinear expression submitted to the integrate function:
Float err_l2 = sqrt ( integrate ( omega , sqr ( uh - u_exact ()) , qopt ));
2. Right-hand-side specification
For specifiying a right-hand-side involving f, previous code style, from Rheolef-6.0 to 6.3 was
using:
field lh = riesz ( Xh , f ());
Rheolef-6.4 introduces:
test v ( Xh );
field lh = integrate ( f ()* v );
This feature opens new possibilities of right-hand-side specifications, e.g. expressions involving
some derivatives of the test-function v. The riesz function is no more needed: it is maintained
for backward compatibility purpose.
3. Form specification
For specifiying a bilinear form, previous code style, from Rheolef-6.0 to 6.3 was using a specifi-
cation based on a name:
form a ( Xh , Xh , " grad_grad ");
Rheolef-6.4 introduces:
trial u ( Xh ); test v ( Xh );
form a = integrate ( dot ( grad ( u ) , grad ( v )));
This feature opens new possibilities for form specifications and more flexibility. The form specifi-
cation based on a name is no more needed: it is maintained for backward compatibility purpose.158 Rheolef version 6.6 update 15 April 2014Appendix D
GNU Free Documentation License
Version 1.1, March 2000
Copyright c 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing
it is not allowed.
*
Preamble
The purpose of this License is to make a manual, textbook, or other written document “free”
in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or noncommercially. Secondarily, this License
preserves for the author and publisher a way to get credit for their work, while not being considered
responsible for modifications made by others.
This License is a kind of “copyleft”, which means that derivative works of the document must
themselves be free in the same sense. It complements the GNU General Public License, which is
a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software
needs free documentation: a free program should come with manuals providing the same freedoms
that the software does. But this License is not limited to software manuals; it can be used for
any textual work, regardless of subject matter or whether it is published as a printed book. We
recommend this License principally for works whose purpose is instruction or reference.
Applicability and Definitions
This License applies to any manual or other work that contains a notice placed by the copyright
holder saying it can be distributed under the terms of this License. The “Document”, below, refers
to any such manual or work. Any member of the public is a licensee, and is addressed as “you”.
A “Modified Version” of the Document means any work containing the Document or a portion of
it, either copied verbatim, or with modifications and/or translated into another language.
A “Secondary Section” is a named appendix or a front-matter section of the Document that deals
exclusively with the relationship of the publishers or authors of the Document to the Document’s
overall subject (or to related matters) and contains nothing that could fall directly within that
overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary
159160 Rheolef version 6.6 update 15 April 2014
Section may not explain any mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal, commercial, philosophical, ethical
or political position regarding them.
The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those
of Invariant Sections, in the notice that says that the Document is released under this License.
The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or
Back-Cover Texts, in the notice that says that the Document is released under this License.
A “Transparent” copy of the Document means a machine-readable copy, represented in a format
whose specification is available to the general public, whose contents can be viewed and edited
directly and straightforwardly with generic text editors or (for images composed of pixels) generic
paint programs or (for drawings) some widely available drawing editor, and that is suitable for
input to text formatters or for automatic translation to a variety of formats suitable for input to
text formatters. A copy made in an otherwise Transparent file format whose markup has been
designed to thwart or discourage subsequent modification by readers is not Transparent. A copy
that is not “Transparent” is called “Opaque”.
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo
input format, LATEX input format, SGML or XML using a publicly available DTD, and standardconforming
simple HTML designed for human modification. Opaque formats include PostScript,
PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML
or XML for which the DTD and/or processing tools are not generally available, and the machinegenerated
HTML produced by some word processors for output purposes only.
The “Title Page” means, for a printed book, the title page itself, plus such following pages as are
needed to hold, legibly, the material this License requires to appear in the title page. For works
in formats which do not have any title page as such, “Title Page” means the text near the most
prominent appearance of the work’s title, preceding the beginning of the body of the text.
Verbatim Copying
You may copy and distribute the Document in any medium, either commercially or noncommercially,
provided that this License, the copyright notices, and the license notice saying this License
applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever
to those of this License. You may not use technical measures to obstruct or control the
reading or further copying of the copies you make or distribute. However, you may accept compensation
in exchange for copies. If you distribute a large enough number of copies you must also
follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display
copies.
Copying in Quantity
If you publish printed copies of the Document numbering more than 100, and the Document’s
license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and
legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify you as the publisher of these
copies. The front cover must present the full title with all words of the title equally prominent
and visible. You may add other material on the covers in addition. Copying with changes limited
to the covers, as long as they preserve the title of the Document and satisfy these conditions, can
be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones
listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.Rheolef version 6.6 update 15 April 2014 161
If you publish or distribute Opaque copies of the Document numbering more than 100, you must
either include a machine-readable Transparent copy along with each Opaque copy, or state in
or with each Opaque copy a publicly-accessible computer-network location containing a complete
Transparent copy of the Document, free of added material, which the general network-using public
has access to download anonymously at no charge using public-standard network protocols. If you
use the latter option, you must take reasonably prudent steps, when you begin distribution of
Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the
stated location until at least one year after the last time you distribute an Opaque copy (directly
or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before
redistributing any large number of copies, to give them a chance to provide you with an updated
version of the Document.
Modifications
You may copy and distribute a Modified Version of the Document under the conditions of sections
2 and 3 above, provided that you release the Modified Version under precisely this License, with
the Modified Version filling the role of the Document, thus licensing distribution and modification
of the Modified Version to whoever possesses a copy of it. In addition, you must do these things
in the Modified Version:
• Use in the Title Page (and on the covers, if any) a title distinct from that of the Document,
and from those of previous versions (which should, if there were any, be listed in the History
section of the Document). You may use the same title as a previous version if the original
publisher of that version gives permission.
• List on the Title Page, as authors, one or more persons or entities responsible for authorship
of the modifications in the Modified Version, together with at least five of the principal
authors of the Document (all of its principal authors, if it has less than five).
• State on the Title page the name of the publisher of the Modified Version, as the publisher.
• Preserve all the copyright notices of the Document.
• Add an appropriate copyright notice for your modifications adjacent to the other copyright
notices.
• Include, immediately after the copyright notices, a license notice giving the public permission
to use the Modified Version under the terms of this License, in the form shown in the
Addendum below.
• Preserve in that license notice the full lists of Invariant Sections and required Cover Texts
given in the Document’s license notice.
• Include an unaltered copy of this License.
• Preserve the section entitled “History”, and its title, and add to it an item stating at least
the title, year, new authors, and publisher of the Modified Version as given on the Title
Page. If there is no section entitled “History” in the Document, create one stating the title,
year, authors, and publisher of the Document as given on its Title Page, then add an item
describing the Modified Version as stated in the previous sentence.
• Preserve the network location, if any, given in the Document for public access to a Transparent
copy of the Document, and likewise the network locations given in the Document
for previous versions it was based on. These may be placed in the “History” section. You
may omit a network location for a work that was published at least four years before the
Document itself, or if the original publisher of the version it refers to gives permission.162 Rheolef version 6.6 update 15 April 2014
• In any section entitled “Acknowledgements” or “Dedications”, preserve the section’s title, and
preserve in the section all the substance and tone of each of the contributor acknowledgements
and/or dedications given therein.
• Preserve all the Invariant Sections of the Document, unaltered in their text and in their
titles. Section numbers or the equivalent are not considered part of the section titles.
• Delete any section entitled “Endorsements”. Such a section may not be included in the
Modified Version.
• Do not retitle any existing section as “Endorsements” or to conflict in title with any Invariant
Section.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary
Sections and contain no material copied from the Document, you may at your option designate
some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections
in the Modified Version’s license notice. These titles must be distinct from any other section titles.
You may add a section entitled “Endorsements”, provided it contains nothing but endorsements
of your Modified Version by various parties – for example, statements of peer review or that the
text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as
a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage
of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made
by) any one entity. If the Document already includes a cover text for the same cover, previously
added by you or by arrangement made by the same entity you are acting on behalf of, you may not
add another; but you may replace the old one, on explicit permission from the previous publisher
that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use
their names for publicity for or to assert or imply endorsement of any Modified Version.
Combining Documents
You may combine the Document with other documents released under this License, under the terms
defined in section 4 above for modified versions, provided that you include in the combination all
of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant
Sections of your combined work in its license notice.
The combined work need only contain one copy of this License, and multiple identical Invariant
Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same
name but different contents, make the title of each such section unique by adding at the end of
it, in parentheses, the name of the original author or publisher of that section if known, or else a
unique number. Make the same adjustment to the section titles in the list of Invariant Sections in
the license notice of the combined work.
In the combination, you must combine any sections entitled “History” in the various original
documents, forming one section entitled “History”; likewise combine any sections entitled “Acknowledgements”,
and any sections entitled “Dedications”. You must delete all sections entitled
“Endorsements.”
Collections of Documents
You may make a collection consisting of the Document and other documents released under this
License, and replace the individual copies of this License in the various documents with a singleRheolef version 6.6 update 15 April 2014 163
copy that is included in the collection, provided that you follow the rules of this License for
verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under
this License, provided you insert a copy of this License into the extracted document, and follow
this License in all other respects regarding verbatim copying of that document.
Aggregation With Independent Works
A compilation of the Document or its derivatives with other separate and independent documents
or works, in or on a volume of a storage or distribution medium, does not as a whole count
as a Modified Version of the Document, provided no compilation copyright is claimed for the
compilation. Such a compilation is called an “aggregate”, and this License does not apply to
the other self-contained works thus compiled with the Document, on account of their being thus
compiled, if they are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if
the Document is less than one quarter of the entire aggregate, the Document’s Cover Texts may
be placed on covers that surround only the Document within the aggregate. Otherwise they must
appear on covers around the whole aggregate.
Translation
Translation is considered a kind of modification, so you may distribute translations of the Document
under the terms of section 4. Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include translations of some or all Invariant
Sections in addition to the original versions of these Invariant Sections. You may include a translation
of this License provided that you also include the original English version of this License.
In case of a disagreement between the translation and the original English version of this License,
the original English version will prevail.
Termination
You may not copy, modify, sublicense, or distribute the Document except as expressly provided
for under this License. Any other attempt to copy, modify, sublicense or distribute the Document
is void, and will automatically terminate your rights under this License. However, parties who
have received copies, or rights, from you under this License will not have their licenses terminated
so long as such parties remain in full compliance.
Future Revisions of This License
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation
License from time to time. Such new versions will be similar in spirit to the present version, but
may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft.
Each version of the License is given a distinguishing version number. If the Document specifies
that a particular numbered version of this License "or any later version" applies to it, you have the
option of following the terms and conditions either of that specified version or of any later version
that has been published (not as a draft) by the Free Software Foundation. If the Document does
not specify a version number of this License, you may choose any version ever published (not as
a draft) by the Free Software Foundation.164 Rheolef version 6.6 update 15 April 2014
*
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of the License in the document
and put the following copyright and license notices just after the title page:
Copyright c YEAR YOUR NAME. Permission is granted to copy, distribute and/or
modify this document under the terms of the GNU Free Documentation License, Version
1.1 or any later version published by the Free Software Foundation; with the
Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being
LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in
the section entitled “GNU Free Documentation License”.
If you have no Invariant Sections, write “with no Invariant Sections” instead of saying which
ones are invariant. If you have no Front-Cover Texts, write “no Front-Cover Texts” instead of
“Front-Cover Texts being LIST”; likewise for Back-Cover Texts.
If your document contains nontrivial examples of program code, we recommend releasing these
examples in parallel under your choice of free software license, such as the GNU General Public
License, to permit their use in free software.Bibliography
[1] E. M. Abdalass. Résolution performante du problème de Stokes par mini-éléments, maillages
auto-adaptatifs et méthodes multigrilles – applications. PhD thesis, Thèse de l’école centrale
de Lyon, 1987. 74
[2] L. Abouorm. Méthodes mathématiques pour les écoulements sur des surfaces. PhD thesis,
M2R Université J. Fourier, Grenoble, 2010. 115, 116
[3] P. R. Amestoy, I. S. Duff, J.-Y. L’Excellent, and J. Koster. A fully asynchronous multifrontal
solver using distributed dynamic scheduling. SIAM J. Matrix Anal. Appl., 23(1):15–41, 2001.
24
[4] P. R Amestoy, A. Guermouche, J.-Y. L’Excellent, and S. Pralet. Hybrid scheduling for the
parallel solution of linear systems. Parallel Comput., 32(2):136–156, 2006. 24
[5] D. N. Arnold, F. Brezzi, and M. Fortin. A stable finite element for the Stokes equations.
Calcolo, 21:337–344, 1984. 73
[6] C. Ashcraft and J. W. H. Liu. Robust ordering of sparse matrices using multisection. SIAM
Journal on Matrix Analysis and Applications, 19(3):816–832, 1998. 24
[7] F. Auteri, N. Parolini, and L. Quartapelle. Numerical investigation on the stability of singular
driven cavity flow. J. Comput. Phys., 183(1):1–25, 2002. 99
[8] G. K. Batchelor. An introduction to fluid dynamics. Cambridge university press, UK, sixth
edition, 1967. 79
[9] H. Borouchaki, P. L. George, F. Hecht, P. Laug, B. Mohammadi, and E. Saltel. Mailleur
bidimensionnel de Delaunay gouverné par une carte de métriques. Partie II: applications.
Technical Report RR-2760, INRIA, 1995. 59
[10] K. Boukir, Y. Maday, B. Metivet, and E. Razafindrakoto. A high-order characteristic/finite
element method for the incompressible Navier-Stokes equations. Int. J. Numer. Meth. Fluids,
25:1421–1454, 1997. 92
[11] H. Brezis. Analyse fonctionnelle. Théorie et application. Masson, Paris, 1983. 123
[12] F. Brezzi and J. Pitkäranta. On the stabilization of finite element approximation of the Stokes
equations. In Efficient solutions of elliptic systems, Kiel, Notes on numerical fluid mechanics,
volume 10, pages 11–19, 1984. 75
[13] M. J. Castro-Diaz, F. Hecht, B. Mohammadi, and O. Pironneau. Anisotropic unstructured
mesh adaption for flow simulations. Int. J. Numer. Meth. Fluids, 25(4):475–491, 1997. 59
[14] K. Deckelnick, G. Dziuk, C.M. Elliott, and C.-J. Heine. An h-narrow band finite element
method for elliptic equations on implicit surfaces. IMA Journal of Numerical Analysis, to
appear:0, 2009. 104
165166 Rheolef version 6.6 update 15 April 2014
[15] M. Dicko. Méthodes mathématiques pour les écoulements sur des surfaces. PhD thesis, M2P
Université J. Fourier, Grenoble, 2011. 115
[16] J. Donea and A. Huerta. Finite element methods for flow problems. Wiley, New-York, 2003.
98
[17] E. Erturk, T. C. Corke, and C. Gökçol. Numerical solutions of 2-D steady incompressible
driven cavity flow at high Reynolds numbers. Int. J. Numer. Meth. Fluids, 48:747–774, 2005.
99
[18] G. Fourestey and S. Piperno. A second-order time-accurate ALE Lagrange-Galerkin method
applied to wind engineering and control of bridge profiles. Comput. Methods Appl. Mech.
Engrg., 193:4117–4137, 2004. 92
[19] T. Gelhard, G. Lube, M. A. Olshanskii, and J. H. Starcke. Stabilized finite element schemes
with LBB-stable elements for incompressible flows. J. Comput. Appl. Math., 177:243–267,
2005. 99
[20] A. George. Nested dissection of a regular finite element mesh. SIAM J. Numer. Anal.,
10:345–363, 1973. 24
[21] C. Geuzaine and J.-F. Remacle. Gmsh: a three-dimensional finite element mesh generator
with built-in pre- and post-processing facilities. Int. J. Numer. Meths Engrg., 79(11):1309–
1331, 2009. 149, 151
[22] U. Ghia, K. N. Ghia, and C. T. Shin. High Re solutions for incompressible flow using the
Navier-Stokes equations and a multigrid method. J. Comput. Phys., 48:387–411, 1982. 98
[23] V. Girault and P. A. Raviart. Finite element methods for the Navier-Stokes equations. Theory
and algorithms. Springer, 1986. 39, 65, 67
[24] M. M. Gupta and J. C. Kalita. A new paradigm for solving Navier-Stokes equations:
streamfunction-velocity formulation. J. Comput. Phys., 207:52–68, 2005. 98
[25] F. Hecht. BAMG: bidimensional anisotropic mesh generator, 2006. http://www.ann.
jussieu.fr/~hecht/ftp/bamg. 59, 149
[26] A. J. Hoffman, M. S. Martin, and D. J. Rose. Complexity bounds for regular finite difference
and finite element grids. SIAM J. Numer. Anal., 10(2):364–369, 1973. 24
[27] P. Hood and C. Taylor. A numerical solution of the Navier-Stokes equations using the finite
element technique. Comp. and Fluids, 1:73–100, 1973. 63, 72, 93
[28] Jr. J. E. Dennis and R. B. Schnablel. Numerical methods for unconstraint optimization and
nonlinear equations. Prentice Hall, Englewood Cliff, N. J., 1983. 138
[29] A. Klawonn. An optimal preconditioner for a class of saddle point problems with a penalty
term. SIAM J. Sci. Comput, 19(2):540–552, 1998. 64, 72
[30] A. Laadhari, C. Misbah, and P. Saramito. On the equilibrium equation for a generalized
biological membrane energy by using a shape optimization approach. Phys. D, 239:1568–
1572, 2010. 148
[31] R. J. Labeur and G. N. Wells. A Galerkin interface stabilisation method for the advectiondiffusion
and incompressible Navier-Stokes equations. Comput. Meth. Appl. Mech. Engrg.,
196(49–52):4985–5000, 2007. 98
[32] S. Melchior, V. Legat, P. Van Dooren, and A. J. Wathen. Analysis of preconditioned iterative
solvers for incompressible flow problems. Int. J. Numer. Meth. Fluids, 2011. 99Rheolef version 6.6 update 15 April 2014 167
[33] P. D. Minev and C. R. Ethier. A characteristic/finite element algorithm for the 3-D NavierStokes
equations using unstructured grids. Comput. Meth. in Appl. Mech. and Engrg., 178(1-
2):39–50, 1998. 99
[34] D. R. Musser and A. Saini. C++ STL tutorial and reference guide. Addison Wesley, Reading,
1996. 28
[35] D. R. Musser and A. Saini. STL tutorial and reference guide. Addison-Wesley, 1996. 88
[36] M. A. Olshanskii and A. Reusken. A finite element method for surface PDEs: matrix properties.
Numer. Math., 114:491–520, 2010. 116
[37] M. A. Olshanskii, A. Reusken, and J. Grande. A finite element method for elliptic equations
on surfaces. SIAM J. Num. Anal., 47(5):3339–3358, 2009. 110, 115, 116
[38] M. L. Ould Salihi. Couplage de méthodes numériques en simulation directe d’écoulements
incompressibles. PhD thesis, Université J. Fourier, Grenoble, 1998. 99
[39] C. C. Paige and M. A. Saunders. Solution of sparse indefinite systems of linear equations.
SIAM J. Numer. Anal., 12(4):617–629, 1975. 39
[40] F. Pellegrini. PT-Scotch and libscotch 5.1 user’s guide. Université de Bordeaux and INRIA,
France, 2010. 24
[41] O. Pironneau. Méthode des éléments finis pour les fluides. Masson, Paris, 1988. 87
[42] O. Pironneau and M. Tabata. Stability and convergence of a galerkin-characteristics finite
element scheme of lumped mass type. Int. J. Numer. Meth. Fluids, 64:1240–1253, 2010. 88
[43] W. H. Press, S. A. Teulkolsky, W. T. Vetterling, and B. P. Flannery. Numerical recepies in
C. The art of scientific computing. Cambridge University Press, UK, second edition, 1997.
Version 2.08. 138
[44] P. A. Raviart and J. M. Thomas. Introduction à l’analyse numerique des équations aux
dérivées partielles. Masson, Paris, 1983. 126
[45] N. Roquet, R. Michel, and P. Saramito. Errors estimate for a viscoplastic fluid by using Pk
finite elements and adaptive meshes. C. R. Acad. Sci. Paris, ser. I, 331(7):563–568, 2000. 59
[46] H. Rui and M. Tabata. A second order characteristic finite element scheme for convection
diffusion problems. Numer. Math. (to appear), 2001. 87
[47] P. Saramito. Simulation numérique d’écoulements de fluides viscoélastiques par éléments finis
incompressibles et une méthode de directions alternées; applications. PhD thesis, Institut
National Polytechnique de Grenoble, 1990. 79
[48] P. Saramito. Rheolef home page. http://www-lmc.imag.fr/lmc-edp/Pierre.Saramito/
rheolef, 2012. 29
[49] P. Saramito. Méthodes numériques en fluides complexes : théorie et algorithmes. CNRSCCSD,
2012. http://cel.archives-ouvertes.fr/cel-00673816. 123
[50] P. Saramito. Language C++ et calcul scientifique. College Publications, London, 2013. 3, 24
[51] P. Saramito and N. Roquet. An adaptive finite element method for viscoplastic fluid flows in
pipes. Comput. Meth. Applied Mech. Engng, 190(40-41):5391–5412, 2001. 23
[52] Pierre Saramito. Are curved and high order gmsh meshes really high order ?, 2012. http:
//www.geuz.org/pipermail/gmsh/2012/006967.html. 111168 Rheolef version 6.6 update 15 April 2014
[53] J. Shen. Hopf bifurcation of the unsteady regularized driven cavity flow. J. Comp. Phys.,
95:228–245, 1991. http://www.math.purdue.edu/~shen/pub/Cavity.pdf. 99
[54] B. Stroustrup. The C++ programming language. Addison Wesley, Reading, special edition,
1997. 3
[55] B. Stroustrup. C++ programming styles and libraries. InformIt.com, 0:0, 2002. 2
[56] M.-G. Vallet. Génération de maillages anisotropes adaptés, application à la capture de couches
limites. Technical Report RR-1360, INRIA, 1990. 59
[57] Wikipedia. The Stokes stream function. Wikipedia, 2012. http://en.wikipedia.org/wiki/
Stokes_stream_function. 79
[58] N. Wirth. Algorithm + data structure = programs. Prentice Hall, NJ, USA, 1985. 2List of example files
Makefile, 16
cavity.icc, 61
convect.cc, 85
convect_error.cc, 87
cosinusprod.icc, 28
cosinusprod_error.cc, 28
cosinusprod_laplace.icc, 26
cosinusrad.icc, 30
cosinusrad_laplace.icc, 30
dirichlet-nh.cc, 26
dirichlet.cc, 14
dirichlet.icc, 125
elasticity_criterion.icc, 58
elasticity_solve.icc, 58
embankment.cc, 51
embankment.icc, 51
embankment_adapt.cc, 57
eta.icc, 124
heat.cc, 81
helmholtz_band.cc, 115
helmholtz_band_iterative.cc, 113
helmholtz_s.cc, 102
incompressible-elasticity.cc, 70
laplace_band.cc, 116
laplace_s.cc, 107
level_set_sphere.cc, 110
navier_stokes_cavity.cc, 92
navier_stokes_criterion.icc, 93
navier_stokes_solve.icc, 91
neumann-laplace.cc, 38
neumann-nh.cc, 34
nu.icc, 133
p_laplacian.h, 131
p_laplacian1.icc, 132
p_laplacian2.icc, 133
p_laplacian_circle.icc, 139
p_laplacian_damped_newton.cc, 137
p_laplacian_error.cc, 139
p_laplacian_fixed_point.cc, 122
p_laplacian_newton.cc, 131
poiseuille.h, 74
proj_band.cc, 114
robin.cc, 36
rotating-hill.h, 86
sinusprod_helmholtz.icc, 35
sphere.icc, 103
stokes_cavity.cc, 61
stokes_contraction_bubble.cc, 73
streamf_cavity.cc, 66
streamf_contraction.cc, 76
stress.cc, 53
torus.icc, 107
transmission.cc, 42
vortex_position.cc, 97
vorticity.cc, 64
cavity.icc, 93
contraction.mshcad, 74, 78
convect.cc, 92
cosinusrad_error.cc, 30
cube.mshcad, 150
dirichlet_nh_ball.cc, 30
helmholtz_s_error.cc, 105
line.mshcad, 60, 148
neumann-nh.cc, 102
square.bamgcad, 59, 95, 147
square.dmn, 59, 95, 147
square.mshcad, 149
stokes_contraction.cc, 76
streamf_cavity.cc, 95
streamf_contraction.cc, 78
stress.cc, 80
torus.mshcad, 109
169List of commands
bamg2geo, 147
bamg, 59, 95, 147
-splitpbedge, 126
branch, 86
-gnuplot, 84
-paraview, 84, 89
-umax, 84
convect, 86
ffmpeg, 84
field, 17, 154
-, 19
-bw, 18, 76, 79, 95, 114
-catchmark, 63
-comp, 53, 56, 79, 96
-cut, 79, 96, 125
-elevation, 18, 56, 114, 125
-fill, 53
-gray, 18
-max, 77, 96
-min, 96
-n-iso, 76
-n-iso-negative, 76, 79, 95
-noclean, 67
-noexecute, 67
-nofill, 18, 53, 59
-normal, 79, 96, 125
-origin, 79, 96, 125
-paraview, 18, 53, 59, 114
-proj, 55
-scale, 71, 95
-stereo, 18, 20, 53, 55, 56, 103,
114
-velocity, 63, 95
-volume, 20, 27
geo, 17
-cut, 19
-fill, 19
-full, 19
-paraview, 19
-shrink, 19
-stereo, 19, 103
-subdivide, 104
gmsh, 60, 74, 78, 103, 109, 126, 148
gnuplot, 17, 19, 44, 53, 84, 87, 148
gzip, 59
library
boost, 15, 39, 153
CGAL, computational geometry, 85
MPI, message passing interface,
153
MPI, message passing interface, 15
mumps, linear system direct solver, 22
scotch, mesh partition library, 22
STL, standard template library, 86
make, 16
man, 19
mayavi, 55, 56, 148
mkgeo_ball, 103
-e, 103
-q, 30
-s, 103
-t, 30, 103
mkgeo_grid, 17, 86, 126
-H, 20
-T, 19, 89
-a, 87
-b, 87
-c, 89
-d, 89
-e, 19
-f, 89
-g, 89
-q, 20
-region, 44
-t, 17
-zr, 77
mkgeo_ugrid, 30, 126
mpirun, 22, 39, 45
msh2geo, 74, 148, 150
-zr, 78
paraview, 18, 20, 55, 56, 67, 84, 89,
148
rheolef-config, 13
–check, 13
–docdir, 13
–exampledir, 13
sed, 30
visualization
170Rheolef version 6.6 update 15 April 2014 171
mesh, 17
deformed, 53
vlc, 84
zcat, 95Index
approximation, 14
P0, 55
P1b-P1, 71
P1d, 55
P1, 15, 51, 55, 70, 71, 90
P2-P1, Taylor-Hood, 61, 71, 72, 76
P2, 15, 19, 51, 55, 70, 90
Pk, 15, 19, 153
bubble, 71
discontinuous, 43, 54–56, 64
high-order, 15, 19, 45, 153
isoparametric, 104
mixed, 61
argc, argv, command line arguments, 15, 153
BDF2 scheme, 90
benchmark
driven cavity flow, 60, 90
Dziuk-Elliott-Heine on a sphere, 102
embankment, 49
flow in an abrupt contraction, 72, 78
Olshanskii-Reusken-Grande on a torus,
108
rotating hill, 85
boundary condition
Dirichlet, 13, 25, 43, 49, 60, 69, 90, 121,
130
mixed, 69, 72, 78
Neumann, 33, 37, 43, 49, 69
Poiseuille flow, 74
Robin, 35
class
Float, 27
adapt_option_type, 59
band, 113
branch, 82, 88
characteristic, 85
communicator, 39
csr, 39
doubledouble, 27
environment, 153
eye, 114
field_functor, 27, 155
field, 14, 154
form_option_type, 73, 78
form, 14
geo, 14
idiststream, 154
level_set_option_type, 110
odiststream, 58, 154
point, 27
quadrature_option_type, 85, 124, 139
solver_abtb, 92, 154
solver_option_type, 21
solver, 16, 21, 62, 154
space, 14, 154
vec, 39
compilation, 16
convergence
error
versus mesh, 28, 105, 139
versus polynomial degree, 28, 105, 139
residue
rate, 126, 127
super-linear, 133
coordinate system
axisymmetric, 74, 76, 77
Cartesian, 26, 44
spherical, 102
torus, 108
directory of example files, 13, 74, 76
distributed computation, 15, 22, 39, 153
element shape, 45
error analysis, 28, 88, 105, 139
file format
‘.bamgcad’ bamg geometry, 59, 147
‘.bamg’ bamg mesh, 59, 147
‘.branch’ family of fields, 83
‘.dmn’ domain names, 147
‘.field’ field, 17, 154
‘.field’ multi-component field, 53, 154
‘.geo’ mesh, 17, 74, 77, 147, 148, 150,
154
‘.gz’ gzip compressed file, 59
172Rheolef version 6.6 update 15 April 2014 173
‘.jpg’ joint photographic experts group,
84
‘.mov’ quicktime video file, 84
‘.mshcad’ gmsh geometry, 60, 74, 78,
109, 148
‘.msh’ gmsh mesh, 60, 74, 78, 148
‘.vtk’ vtk file, 67, 84
form
(η∇u).∇v, 132
2D(u) : D(v), 61, 69
2D(u) : D(v) + λdiv u div v, 51
2D(u) : D(v) + u.v, 91
η∇u.∇v, 43, 123
∇su.∇sv + uv, 102
∇u.∇v, 14
∇u.∇v + uv, 35
uv, 28
bcurl(u).ξ, 76
curl(u).ξ, 63
div(u) q, 61, 69
energy, 14, 42, 121
product, 73
weighted, 43, 123
quadrature formula, 124, 132
tensorial weight, 132
Fréchet derivative, 130
function
adapt, 57, 59
catchmark, 39, 51, 63, 82
compose, 85, 93, 123, 132
damped_newton, 137
diag, 114
dis_time, 21
field_functor, 139
grad, 123, 132
integrate, 15, 35, 73, 76, 85, 102, 123,
132, 139, 155
on a band, 114
interpolate, 27, 58, 74, 88, 155
ldlt, 39
level_set, 110
newton, 131
norm2, 58, 93, 123
riesz, 155
sqr, 58
class-function object, 26, 86, 133
geometry
axisymmetric, 74, 76
circle, 30, 103
contraction, 72, 78
cube, 19, 150
curved, 104
line, 19, 148
sphere, 102
square, 17, 149
surface, 101
curvature, 146
torus, 109
Green formula, 101, 145
Lagrange
interpolation, 26, 27, 34, 38
multiplier, 37, 62
node, 15
Lamé coefficients, 49
Makefile, 16
matrix
bloc-diagonal
inverse, 73
block structure, 16
concatenation, 39
diagonal, 114
factorization
Choleski, 16
identity, 114
indefinite, 39
singular, 39, 114
sparse, 39
mesh, 14, 147
adaptation, 153
anisotropic, 57, 93
connected components, 115
generation, 74, 78, 147
method
characteristic, 84, 90, 153
conjugate gradient algorithm, 16, 37, 61,
70
Euler implicit scheme, 81, 84
fixed-point, 122, 134
relaxation, 122, 128
level set, 101, 110
banded, 113
minres algorithm, 37, 114
Newton, 130
damped, 136
namespace
rheolef, 14, 153
std, 14
norm
in W−1,p, 126
discrete version, 126
in W1,p, 121
in W
1,p
0
, 121
operator174 Rheolef version 6.6 update 15 April 2014
adjoint, 136
curl, 63
divergence, 49
gradient, 49
symmetric part, 49
Helmholtz, 33
Helmholtz-Beltrami, 101
Laplace, 13
Laplace-Beltrami, 101
parallel computation, 15, 22, 39
polar coordinate system, 77
preconditioner, 61
Choleski incomplete factorization, 16
for nearly incompressible elasticity, 70
for Stokes problem, 61
problem
Helmholtz, 33
Navier-Stokes, 90
Poisson, 13, 25, 35, 37, 81, 121, 123
Stokes, 60, 71, 90
convection-diffusion, 84
elasticity, 49
heat, 81
linear tangent, 130
nonlinear, 90
p-Laplacian, 121
stabilized Stokes, 73
transmission, 42
projection, 55, 65
quadrature formula, 124
quadrature formulae
Gauss, 86
Gauss-Lobatto, 86
region, 42, 44
residual term, 126, 130
singular solution, 65
space
W−1,p, 121
W−1,p, dual of W
1,p
0
, 126
W1,p, 121
W
1,p
0
, 121
dual, 126
duality bracket h., .i, 126
weighted (axisymmetric), 77
speedup, 22
stabilization, 69
stream function, 65, 76, 95
axisymmetric, 77
tensor
Cauchy stress, 49, 80
field, 55
rate of deformation, 80
visualization as ellipsoid, 54
unknow and blocked components, 15
variable
derr, 154
din, 154
dout, 154
visualization
animation, 84
elevation view, 18, 125
stereoscopic anaglyph, 18, 53
vortex, 76, 79
vorticity, 63
NooJ pour l’Intelligence ´economique
Philippe Lambert
To cite this version:
Philippe Lambert. NooJ pour l’Intelligence ´economique. Ecole th´ematique. Semaine de for- ´
mation NooJ `a l’INALCO, INALCO, 2012, pp.14.
HAL Id: cel-00677782
https://cel.archives-ouvertes.fr/cel-00677782
Submitted on 9 Mar 2012
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.Free Powerpoint Templates Page 1
NooJ pour l’intelligence
économique
Philippe Lambert
Institut Jean Lamour
Philippe.lambert@ijl.nancy-universite.fr
Semaine NooJ 2012Free Powerpoint Templates Page 2
PLAN
I. Contexte : l’intelligence économique
II. Cas d’études :
II. A.: Identification d’experts vietnamiens
II. B. : Traitement de questions ouvertes
d’un questionnaire
III. Perspectives de rechercheFree Powerpoint Templates Page 3
I. : L’intelligence économique
1/ L'ensemble des activités coordonnées de
collecte, de traitement et de diffusion de
l'information utile aux acteurs économiques
en vue de son exploitation
(Rapport Martre 1994)
2/ Réduction du niveau de l’incertitude dans
la prise de décision
(Nombreux auteurs)
3/ Donner la bonne information à la bonne
personne au bon momentFree Powerpoint Templates Page 4
I. : L’intelligence économique
Veille Intelligence
économique Observation
Donnée Information Connaissance
Définir les critères
de recherche
Rechercher les
données
Collecter et traiter
Valider, diffuser
l’information
Analyser l’information
et l’intégrer dans le
processus de prise de
décision
Le cycle de l’IEFree Powerpoint Templates Page 5
II. A.: Identification d’experts
Scénario : Implantation d’une entreprise au Vietnam
Trouver un point de contact localFree Powerpoint Templates Page 6
Restructuration des données
Entrepôt de données
(analyse multidimensionnelle)
II. A.: Identification d’expertsFree Powerpoint Templates Page 7
II. A.: Identification d’expertsFree Powerpoint Templates Page 8
II. B. : Questionnaire
Traitement des questions ouvertes
Questionnaire en ligne sur les nanosciences
Détermination des compétences des répondants
+
Leurs principales motivations
Répondants :
- Une centaine de chercheurs des laboratoires en recherche fondamentale (CNRS
et universités)
dans le champs des nanosciences (spintronique, photovoltaïques, optronique,
plasmas chauds, etc.
Comité de pilotage stratégiqueFree Powerpoint Templates Page 9
Préparation des données :
- Sélection des données
- Nettoyage des données
- Construction de nouvelles données
- Intégration des données
- Formatage des données
Fichier CSV
Mappage XSD
II. B. : QuestionnaireFree Powerpoint Templates Page 10
Création de
dictionnaires
II. B. : QuestionnaireFree Powerpoint Templates Page 11
II. B. : QuestionnaireFree Powerpoint Templates Page 12
Réponse ouverte : « les raisons de votre participation »
Traitement par NooJ d’un noeud XML spécifique
Extraction des syntagmes nominaux les plus
pertinents
II. B. : QuestionnaireFree Powerpoint Templates Page 13
Extraction des SN avec l’outil statistique de NooJFree Powerpoint Templates Page 14
Merci de votre attention !
Efficient C++ finite element computing with Rheolef :
volume 2: discontinuous Galerkin methods
Pierre Saramito
To cite this version:
Pierre Saramito. Efficient C++ finite element computing with Rheolef : volume 2: discontinuous
Galerkin methods. DEA. Grenoble, France, 2013, pp.51.
HAL Id: cel-00863021
https://cel.archives-ouvertes.fr/cel-00863021
Submitted on 18 Sep 2013
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.Efficient C++ finite element
computing with Rheolef
volume 2:
discontinuous Galerkin methods
Pierre Saramito
version 6.6 update 17 September 2013
0
0.5
1
0 0.5 1
x
h = 1/20 φ(x)
φh(x)
Re = 10 000Copyright (c) 2003-2013 Pierre Saramito
Permission is granted to copy, distribute and/or modify this document under the terms of the
GNU Free Documentation License, Version 1.3 or any later version published by the Free Software
Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy
of the license is included in the section entitled "GNU Free Documentation License".Contents
Notations 2
I Getting started with simple problems 5
1 A scalar first-order problem 7
1.1 The transport equation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2 Scalar second-order problems 11
2.1 The Poisson problem with Dirichlet boundary conditions . . . . . . . . . . . . . . . 11
2.2 The Helmholtz problem with Neumann boundary conditions . . . . . . . . . . . . . 13
II Fluids and solids computations 17
3 The linear elasticity and the Stokes problems 19
3.1 The linear elasticity problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.2 The Stokes problem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.3 The stationnary Navier-Stokes problem . . . . . . . . . . . . . . . . . . . . . . . . 23
III Technical appendices 39
A GNU Free Documentation License 41
List of example files 47
List of commands 49
Index 49
12 Rheolef version 6.6 update 17 September 2013
Notations
Rheolef mathematics description
d d ∈ {1, 2, 3} dimension of the physical space
dot(u,v) u.v =
X
d−1
i=0
uivi vector scalar product
ddot(sigma,tau) σ : τ =
X
d−1
i,j=0
σi,j τi,j tensor scalar product
tr(sigma) tr(σ) = X
d−1
i=0
σi,i trace of a tensor
trans(sigma) σ
T
tensor transposition
sqr(phi)
norm2(phi) φ
2
square of a scalar
norm2(u) |u|
2 =
X
d−1
i=0
u
2
i
square of the vector norm
norm2(sigma) |σ|
2 =
X
d−1
i,j=0
σ
2
i,j square of the tensor norm
abs(phi)
norm(phi) |φ| absolute value of a scalar
norm(u) |u| =
X
d−1
i=0
u
2
i
!1/2
vector norm
norm(sigma) |σ| =
X
d−1
i,j=0
σ
2
i,j
1/2
tensor norm
grad(phi) ∇φ =
∂φ
∂xi
06i 0, f and φΓ being known. Notice that this is the steady version of the unsteady
diffusion-convection problem previously introduced in section 6.2, page 80 and when the diffusion
coefficient ν vanishes. Here, the ∂Ω− notation is the upstream boundary part, defined by
∂Ω− = {x ∈ Ω; u(x).n(x) < 0}
Let us suppose that u ∈ W1,∞(Ω)d and introduce the space:
X = {ϕ ∈ L
2
(Ω); (u.∇)ϕ ∈ L
2
(Ω)d
}
and, for all φ, ϕ ∈ X
a(φ, ϕ) = Z
Ω
(u.∇φ ϕ + σ φ ϕ) dx +
Z
∂Ω
max (0, −u.n) φ ϕ ds
l(ϕ) = Z
Ω
f ϕ dx +
Z
∂Ω
max (0, −u.n) φΓ ϕ ds
Then, the variational formulation writes:
(F V ): find φ ∈ X such that
a(φ, ϕ) = l(ϕ), ∀ϕ ∈ X
Notice that the term max(0, −u.n) = (|u.n| − u.n)/2 is positive and vanishes everywhere except
on ∂Ω−. Thus, the boundary condition φ = φΓ is weakly imposed on ∂Ω− via the integrals on the
boundary. The discontinuous finite element space is defined by:
Xh = {ϕh ∈ L
2
(Ω); ϕh|K ∈ Pk, ∀K ∈ Th}
78 Rheolef version 6.6 update 17 September 2013
where k > 0 is the polynomial degree. Notice that Xh 6⊂ X and that the ∇φh term has no more
sense for discontinous functions φh ∈ Xh. Following [6, p. 14], we introduce the broken gradient
∇h as a convenient notation:
(∇hφh)|K = ∇(φh|K), ∀K ∈ Th
Thus
Z
Ω
u.∇hφh ϕh dx =
X
K∈Th
Z
K
u.∇φh ϕh dx, ∀φh, ϕh ∈ Xh
This leads to a discrete version ah of the bilinear form a, defined for all φh, ϕh ∈ Xh by (see
e.g. [6, p. 57], eqn. (2.34)):
ah(φh, ϕh) = Z
Ω
(u.∇hφh ϕh + σφh ϕh) dx +
Z
∂Ω
max (0, −u.n) φh ϕh ds
+
X
S∈S
(i)
h
Z
S
− u.n [[φh]] {{ϕh}} +
α
2
|u.n| [[φh]] [[ϕh]]
ds
The two last terms involves a sum over S
(i)
h
, the set of internal sides of the mesh Th. Each internal
side S has two possible orientations: one is choosen definitively. In practice, this orientation
is defined in the ‘.geo’ file containing the mesh, where all sides are listed, together with teir
orientation. Let n the corresponding normal to the side: as S is an internal side, there exists
two elements K0 and K1 such that S = ∂K0 ∩ ∂K1 and n is the outward unit normal of K0
on ∂K0 ∩ S and the inward unit normal of K1 on ∂K1 ∩ S. We also denote on S the jump
[[φ]] = φ|K0 − φ|K1
and the average {{φ}} = (φ|K0 + φ|K1
)/2. The last term in the definition of ah
is ponderated by a coefficient α > 0. Choosing α = 0 correspond to the so-called centered flux
approximation, while α = 1 is the upwinding flux approximation. The case α = 1 and k = 0
(piecewise constant approximation) leads to the popular upwinding finite volume scheme. Finally,
the discrete variational formulation writes:
(F V )h: find φh ∈ Xh such that
ah(φh, ϕh) = l(ϕh), ∀ϕh ∈ Xh
The following code implement this problem in the Rheolef environment.
Example file 1.1: transport_dg.cc
1 # include " rheolef .h"
2 using namespace rheolef ;
3 using namespace std ;
4 int main (int argc , char ** argv ) {
5 environment rheolef ( argc , argv );
6 geo omega ( argv [1]);
7 space Xh ( omega , argv [2]);
8 Float alpha = ( argc > 3) ? atof ( argv [3]) : 1;
9 Float sigma = ( argc > 4) ? atof ( argv [4]) : 3;
10 point u (1 ,0 ,0);
11 trial phi ( Xh ); test psi ( Xh );
12 form ah = integrate ( dot (u , grad_h ( phi ))* psi + sigma * phi * psi )
13 + integrate (" boundary ", max (0 , - dot (u , normal ()))* phi * psi )
14 + integrate (" internal_sides ",
15 - dot (u , normal ())* jump ( phi )* average ( psi )
16 + 0.5* alpha * abs ( dot (u , normal ()))* jump ( phi )* jump ( psi ));
17 field lh = integrate (" boundary ", max (0 , - dot (u , normal ()))* psi );
18 solver sah ( ah . uu ());
19 field phi_h ( Xh );
20 phi_h . set_u () = sah . solve ( lh . u ());
21 dout << catchmark (" sigma ") << sigma << endl
22 << catchmark ("phi ") << phi_h ;
23 }Rheolef version 6.6 update 17 September 2013 9
Comments
The data are φγ = 1 and u = (1, 0, 0), and then the exact solution is known: φ(x) = exp(−σx0).
The numerical tests are running with σ = 3 by default. The one-dimensional case writes:
make transport_dg
mkgeo_grid -e 10 > line.geo
./transport_dg line P0 | field -
./transport_dg line P1d | field -
./transport_dg line P2d | field -
Observe the jumps accross elements: these jumps decreases with mesh refinement or when polynomial
approximation increases. The two-dimensional case writes:
mkgeo_grid -t 10 > square.geo
./transport_dg square P0 | field -elevation -
./transport_dg square P1d | field -elevation -
./transport_dg square P2d | field -elevation -
The elevation view shows details on inter-element jumps. Finaly, the three-dimensional case writes:
mkgeo_grid -T 5 > cube.geo
./transport_dg cube P0 | field -
./transport_dg cube P1d | field -
./transport_dg cube P2d | field -
0
0.5
1
0 0.5 1
x
h = 1/20 φ(x)
φh(x)
0
0.5
1
0 0.5 1
x
h = 1/40 φ(x)
φh(x)
Figure 1.1: The discontinuous Galerkin method for the transport problem when k = 0 and d = 1.
Fig. 1.1 plots the solution when d = 1 and k = 0: observe that the boundary condition φ = 1 at
x0 = 0 is only weakly satified. It means that the approximation φh(0) tends to 1 when h tnds to
zero. Fig. 1.2 plots the error φ − φh in L
2 and L∞ norms: these errors behave as O
h
k+1
for
all k > 0, which is optimal. A theoretical O
h
k+1/2
error bound was shown in [9]. The present
numerical results confirm that these theoretical error bounds can be improved for some families of
meshes, as pointed out by Richter [11], that showed a O
h
k+1
optimal bound for the transport
problem. This result was recently extended by Cockburn et al. [2], while Peterson [10] showed
that the estimate O
h
k+1/2
is sharp for general families of quasi-uniform meshes.10 Rheolef version 6.6 update 17 September 2013
10−15
10−10
10−5
1
10−2 10−1
h
kφ − φhkL2
1 = k + 1
5 = k + 1
k = 0
k = 1
k = 2
k = 3
k = 4
10−15
10−10
10−5
1
10−2 10−1
h
kφ − φhkL∞
1 = k + 1
5 = k + 1
k = 0
k = 1
k = 2
k = 3
k = 4
Figure 1.2: The discontinuous Galerkin method for the transport problem: convergence when
d = 2.Chapter 2
Scalar second-order problems
2.1 The Poisson problem with Dirichlet boundary conditions
The Poisson problem with non-homogeneous Dirichlet boundary conditions has been already introduced
in volume 1, section 2.1, page 23:
(P): find u, defined in Ω, such that
−∆u = f in Ω
u = g on ∂Ω
where f and g are given.
The discontinuous finite element space is defined by:
Xh = {vh ∈ L
2
(Ω); vh|K ∈ Pk, ∀K ∈ Th}
where k > 1 is the polynomial degree. As elements of Xh do not belongs to H1
(Ω), due to
discontinuities at inter-elements, we introduce the broken Sobolev space:
H1
(Th) = {v ∈ L
2
(Ω); v|K ∈ H1
(K), ∀K ∈ Th}
such that Xh ⊂ H1
(Th). We introduce the folowing bilinear form ah(., .) and linear for lh(.),
defined for all u, v ∈ H1
(Th) by (see e.g. [6, p. 125 and 127], eqn. (4.12)):
ah(u, v) = Z
Ω
∇hu.∇hv dx +
X
S∈Sh
Z
S
(ηs [[u]] [[v]] − {{∇hu.n}} [[v]] − [[u]] {{∇hv.n}}) ds (2.1)
lh(v) = Z
Ω
f u dx +
Z
∂Ω
(ηs g v − g ∇hv.n) ds (2.2)
The last term involves a sum over Sh, the set of all sides of the mesh Th, i.e. the internal sides
and the boundary sides. By convenience, the definition of the jump and average are extended to
all boundary sides as [[u]] = {{u}} = u. Notice that, as for the previous transport problem, the
Dirichlet boundary condition u = g is weakly imposed on ∂Ω via the integrals on the boundary.
Finally, ηs > 0 is a stabilization parameter on a side S. The stabilization term associated to ηs is
present in order to achieve coercivity: it penalize interface and boundary jumps. A common choice
is ηs = β h−1
s where β > 0 is a constant and hs is a local length scale associated to the current side
S. One drawnback to this choice is that it requires the end user to specify the numerical constant
β. From one hand, if the value of this parameter is not sufficiently large, the form ah(., .) is not
coercive and the approximate solution develops instabilities an do not converge [7]. From other
hand, if the value of this parameter is too large, its affect the overall efficiency of the iterative
solver of the linear system: the spectral condition number of the matrix associated to ah(., .)
1112 Rheolef version 6.6 update 17 September 2013
grows linearly with this paramater [1]. An explicit choice of penalty parameter is proposed in [12]:
ηs = β $s where β = (k + 1)(k + d)/d and
$s =
meas(∂K)
meas(K)
when S = K ∩ ∂Ω is a boundary side
max
meas(∂K0)
meas(K0)
,
meas(∂K1)
meas(K1)
when S = K0 ∩ K1 is an internal side
Notice that $s scales as h
−1
s
. Now, the computation of the penalty parameter is fully automatic
and the convergence of the method is always guaranted to converge. Moreover, this choice has
been founded to be sharp and it preserves the optimal efficiency of the iterative solvers. Finally,
the discrete variational formulation writes:
(F V )h: find uh ∈ Xh such that
ah(uh, vh) = lh(vh), ∀vh ∈ Xh
The following code implement this problem in the Rheolef environment.
Example file 2.1: dirichlet_dg.cc
1 # include " rheolef .h"
2 using namespace rheolef ;
3 using namespace std ;
4 # include " cosinusprod_laplace . icc"
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega ( argv [1]);
8 space Xh ( omega , argv [2]);
9 size_t d = omega . dimension ();
10 size_t k = Xh . degree ();
11 Float beta = ( k +1)*( k + d )/ d;
12 trial u ( Xh ); test v ( Xh );
13 form a = integrate ( dot ( grad_h ( u ) , grad_h ( v )))
14 + integrate (" sides ", beta * penalty ()* jump ( u )* jump ( v )
15 - jump ( u )* average ( dot ( grad_h ( v ) , normal ()))
16 - jump ( v )* average ( dot ( grad_h ( u ) , normal ())));
17 field lh = integrate ( f (d )* v )
18 + integrate (" boundary ", beta * penalty ()* g ( d )* v
19 - g ( d )* dot ( grad_h ( v ), normal ()));
20 solver sa ( a . uu ());
21 field uh ( Xh );
22 uh . set_u () = sa . solve ( lh . u ());
23 dout << uh ;
24 }
Comments
The penalty() pseudo-function implements the computation of $s in Rheolef. The right-hand
side f and g are given by (2.1), volume 1, page 24. In that case, the exact solution is known.
Running the one-dimensional case writes:
make dirichlet_dg
mkgeo_grid -e 10 > line.geo
./dirichlet_dg line P1d | field -
./dirichlet_dg line P2d | field -
Fig. 2.1 plots the one-dimensional solution when k = 1 for two meshes. Observe that the jumps at
inter-element nodes decreases very fast with mesh refinement and are no more perceptible on the
plots. Recall that the Dirichlet boundary conditions at x = 0 and x = 1 is only weakly imposed:
the corresponding jump at the boundary is also not perceptible.
The two-dimensional case writes:Rheolef version 6.6 update 17 September 2013 13
-1
0
1
0 0.5 1
x
h = 1/10
u(x)
uh(x)
-1
0
1
0 0.5 1
x
h = 1/20
u(x)
uh(x)
Figure 2.1: The discontinuous Galerkin method for the Poisson problem when k = 1 and d = 1.
mkgeo_grid -t 10 > square.geo
./dirichlet_dg square P1d | field -elevation -
./dirichlet_dg square P2d | field -elevation -
and the three-dimensional one
mkgeo_grid -T 10 > cube.geo
./dirichlet_dg cube P1d | field -elevation -
./dirichlet_dg cube P2d | field -elevation -
Error analysis
The space H1
(Th) is equiped with the norm k.k1,h, defined for all v ∈ H1
(Th by [6, p. 128]:
kvk
2
1,h = k∇hvk
2
0,Ω +
X
S∈Sh
Z
S
h
−1
s
[[v]]2 ds
The code cosinusprod_error_dg.cc compute the error in these norms. This code it is not listed
here but is available in the Rheolef example directory. The computation of the error writes:
make cosinusprod_error_dg
./dirichlet_dg square P1d | cosinusprod_error_dg
Fig. 2.2 plots the error u − uh in L
2
, L∞ and the k.k1,h norms. The L
2 and L∞ error norms
behave as O
h
k+1
for all k > 0, while the k.k1,h one behaves as O
h
k
, which is optimal.
2.2 The Helmholtz problem with Neumann boundary conditions
The Poisson problem with non-homogeneous Neumann boundary conditions has been already
introduced in volume 1, section 2.2, page 31:
(P): find u, defined in Ω, such that
u − ∆u = f in Ω
∂u
∂n = g on ∂Ω14 Rheolef version 6.6 update 17 September 2013
10−15
10−10
10−5
1
10−2 10−1
h
ku − uhk0,Ω
2 = k + 1
5 = k + 1
k = 1
k = 2
k = 3
k = 4
10−15
10−10
10−5
1
10−2 10−1
h
ku − uhk∞,Ω
2 = k + 1
5 = k + 1
k = 1
k = 2
k = 3
k = 4
10−10
10−5
1
10−2 10−1
h
ku − uhk1,h
1 = k
4 = k
k = 1
k = 2
k = 3
k = 4
Figure 2.2: The discontinuous Galerkin method for the Poisson problem: convergence when d = 2.
where f and g are given. We introduce the folowing bilinear form ah(., .) and linear for lh(.),
defined for all u, v ∈ H1
(Th) by (see e.g. [6, p. 127], eqn. (4.16)):
ah(u, v) = Z
Ω
(u v + ∇hu.∇hv) dx (2.3)
+
X
S∈S
(i)
h
Z
S
(β$s [[u]] [[v]] − {{∇hu.n}} [[v]] − [[u]] {{∇hv.n}}) ds (2.4)
lh(v) = Z
Ω
f u dx +
Z
∂Ω
g v ds (2.5)
Let us comment the changes between these forms and those used for the Poisson problem with
Dirichlet boundary conditions. The Poisson operator −∆ has been replaced by the Helmholtz one
I − ∆ in order to have an unique solution. Remark also that the sum is performed in (2.1) for all
internal sides in S
(i)
h
, while, in (2.1), for Dirichlet boundary conditions, it was for all sides in Sh,
i.e. for both boundary and internal sides. Also, the right-hand-side linear form lh(.). do no more
involves any sum over sides.
Finally, the discrete variational formulation writes:
(F V )h: find uh ∈ Xh such that
ah(uh, vh) = lh(vh), ∀vh ∈ Xh
The following code implement this problem in the Rheolef environment.Rheolef version 6.6 update 17 September 2013 15
Example file 2.2: neumann_dg.cc
1 # include " rheolef .h"
2 using namespace rheolef ;
3 using namespace std ;
4 # include " sinusprod_helmholtz . icc"
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega ( argv [1]);
8 space Xh ( omega , argv [2]);
9 size_t d = omega . dimension ();
10 size_t k = Xh . degree ();
11 Float beta = ( k +1)*( k + d )/ d;
12 trial u ( Xh ); test v ( Xh );
13 form a = integrate ( u * v + dot ( grad_h ( u ) , grad_h (v )))
14 + integrate (" internal_sides ",
15 beta * penalty ()* jump ( u )* jump ( v )
16 - jump ( u )* average ( dot ( grad_h ( v ) , normal ()))
17 - jump ( v )* average ( dot ( grad_h ( u ) , normal ())));
18 field lh = integrate ( f (d )* v ) + integrate (" boundary ", g (d )* v );
19 solver sa ( a . uu ());
20 field uh ( Xh );
21 uh . set_u () = sa . solve ( lh . u ());
22 dout << uh ;
23 }
Comments
The right-hand side f and g are given by (2.2), volume 1, page 24. In that case, the exact solution
is known. Running the program is obtained from the non-homogeneous Dirichlet case, by replacing
dirichlet_dg by neumann_dg.16 Rheolef version 6.6 update 17 September 2013Part II
Fluids and solids computations
17Chapter 3
The linear elasticity and the Stokes
problems
3.1 The linear elasticity problem
The elasticity problem (4.2) has been introduced in volume 1, section 4.1, page 47.
(P): find u such that
−div (λdiv(u).I + 2D(u)) = f in Ω
u = g on ∂Ω
where λ > −1 is a constant and f, g given. This problem is a natural extension to vector-valued
field of the Poisson problem with Dirichlet boundary conditions.
The variational formulation writes:
(F V )h: find u ∈ V(g) such that
a(u, v) = lh(v), ∀v ∈ V(0)
where
V(g) = {v ∈ H1
(Ω)d
; v = g on ∂Ω}
a(u, v) = Z
Ω
(λ div(u) div(v) + 2D(u):D(v)) dx
l(v) = Z
Ω
f.v dx
The discrete variational formulation writes:
(F V )h: find uh ∈ Xh such that
ah(uh, vh) = lh(vh), ∀vh ∈ Xh
where
Xh = {vh ∈ L
2
(Ω)d
; vh|K ∈ P
d
k
, ∀K ∈ Th}
ah(u, v) = Z
Ω
(λ divh(u) divh(v) + 2Dh(u):Dh(v)) dx
+
X
S∈Sh
Z
S
(β$s[[u]].[[v]] − [[u]].{{λdivh(v)n + 2Dh(v)n}} − [[v]].{{λdivh(u)n + 2Dh(u)n}}) ds
lh(v) = Z
Ω
f.v dx +
Z
∂Ω
g.(β$sv − λdivh(v)n − 2Dh(v)n) ds
1920 Rheolef version 6.6 update 17 September 2013
where k > 1 is the polynomial degree in Xh.
Example file 3.1: elasticity_taylor_dg.cc
1 # include " rheolef .h"
2 using namespace rheolef ;
3 using namespace std ;
4 # include " taylor .icc"
5 int main (int argc , char ** argv ) {
6 environment rheolef ( argc , argv );
7 geo omega ( argv [1]);
8 space Xh ( omega , argv [2] , " vector ");
9 Float lambda = ( argc > 3) ? atof ( argv [3]) : 1;
10 size_t d = omega . dimension ();
11 size_t k = Xh . degree ();
12 Float beta = ( k +1)*( k + d )/ d;
13 trial u ( Xh ); test v ( Xh );
14 form a = integrate ( lambda * div_h ( u )* div_h ( v ) + 2* ddot ( Dh ( u ) , Dh ( v )))
15 + integrate ( omega . sides () ,
16 beta * penalty ()* dot ( jump ( u ) , jump ( v ))
17 - lambda * dot ( jump ( u ), average ( div_h ( v )* normal ()))
18 - lambda * dot ( jump ( v ), average ( div_h ( u )* normal ()))
19 - 2* dot ( jump ( u ) , average ( Dh ( v )* normal ()))
20 - 2* dot ( jump ( v ) , average ( Dh ( u )* normal ())));
21 field lh = integrate ( dot ( f () , v ))
22 + integrate ( omega . boundary () ,
23 beta * penalty ()* dot ( g () , jump ( v ))
24 - lambda * dot ( g () , average ( div_h ( v )* normal ()))
25 - 2* dot ( g () , average ( Dh ( v )* normal ())));
26 solver sa ( a . uu ());
27 field uh ( Xh );
28 uh . set_u () = sa . solve ( lh . u ());
29 dout << uh ;
30 }
Comments
The data are given when d = 2 by:
g(x) =
− cos(πx0) sin(πx1)
sin(πx0) cos(πx1)
and f = 2π
2g (3.1)
This choice is convenient since the exact solution is known u = g. This benmark solution was
proposed in 1923 by Taylor [13] in the context of the Stokes problem. Notice that the solution is
independent of λ since div(u) = 0.
Example file 3.2: taylor.icc
1 struct g : field_functor {
2 point operator () ( const point & x ) const {
3 return point ( - cos ( pi * x [0])* sin ( pi * x [1]) ,
4 sin ( pi * x [0])* cos ( pi * x [1])); }
5 g () : pi ( acos ( Float ( -1.0))) {}
6 const Float pi ;
7 };
8 struct f : field_functor {
9 point operator () ( const point & x ) const { return 2* sqr ( pi )* _g ( x ); }
10 f () : pi ( acos ( Float ( -1.0))) , _g () {}
11 const Float pi ; g _g ;
12 };
As the exact solution is known, the error can be computed. The code code
elasticity_taylor_error_dg.cc compute the error in L
2
, L∞ and energy norms. This code
it is not listed here but is available in the Rheolef example directory. The computation writes:
make elasticity_taylor_dg elasticity_taylor_error_dgRheolef version 6.6 update 17 September 2013 21
mkgeo_grid -t 10 > square.geo
./elasticity_taylor_dg square P1d | ./elasticity_taylor_error_dg
./elasticity_taylor_dg square P2d | ./elasticity_taylor_error_dg
3.2 The Stokes problem
Let us consider the Stokes problem for the driven cavity in Ω =]0, 1[d
, d = 2, 3. The problem has
been introduced in volume 1, section 4.4, page 57.
(P): find u and p, defined in Ω, such that
− div(2D(u)) + ∇p = f in Ω,
− div u = 0 in Ω,
u = g on ∂Ω
where f and g are given. This problem is the extension to divergence free vector fields of the
elasticity problem. The variational formulation writes:
(V F)h find u ∈ V(g) and p ∈ L
2
(Ω) such that:
a(u, v) + b(v, p) = l(v), ∀v ∈ V(0),
b(u, q) = 0, ∀q ∈ L
2
(Ω) (3.2)
where
V(g) = {v ∈ H1
(Ω)d
; v = g on ∂Ω}
a(u, v) = Z
Ω
2D(u):D(v) dx
b(u, q) = −
Z
Ω
div(u) q dx
l(v) = Z
Ω
f.v dx
The discrete variational formulation writes:
(V F)h find uh ∈ Xh and ph ∈ Qh such that:
ah(uh, vh) + bh(vh, ph) = lh(vh), ∀vh ∈ Xh,
bh(uh, qh) − ch(ph, qh) = kh(q), ∀qh ∈ Qh.
(3.3)
The discontinuous finite element spaces are defined by:
Xh = {vh ∈ L
2
(Ω)d
; vh|K ∈ P
d
k
, ∀K ∈ Th}
Qh = {qh ∈ L
2
(Ω)d
; qh|K ∈ P
d
k
, ∀K ∈ Th}
where k > 1 is the polynomial degree. Notice that velocity and presure are approximated by the
same polynomial order. This method was introduced by [4] and some recent theoretical results
can be founded in [5]. The forms are defined for all u, v ∈ H1
(Th)
d and q ∈ L
2
(Ω) by (see22 Rheolef version 6.6 update 17 September 2013
e.g. [6, p. 249]):
ah(u, v) = Z
Ω
2Dh(u):Dh(v) dx
+
X
S∈Sh
Z
S
(β$s[[u]].[[v]] − [[u]].{{2Dh(v)n}} − [[v]].{{2Dh(u)n}}) ds
bh(u, q) = Z
Ω
u.∇hq dx −
X
S∈S
(i)
h
Z
S
{{u}}.n [[q]] ds
ch(p, q) = X
S∈S
(i)
h
Z
S
hs [[p]] [[q]] ds
lh(v) = Z
Ω
f.v ds +
Z
∂Ω
g.(β$s v − 2Dh(v) n) ds
kh(q) = Z
∂Ω
g.n q ds
The stabilization form ch controls the pressure jump accross internal sides. This stabilization
term is necessary when using equal order polynomial approximation for velocity and pressure.
The definition of the forms is grouped in a subroutine: it will be reused later for the Navier-Stokes
problem.
Example file 3.3: stokes_dirichlet_dg.icc
1 void stokes_dirichlet_dg ( const space & Xh , const space & Qh ,
2 form & a , form & b , form & c , form & mp , field & lh , field & kh ,
3 quadrature_option_type qopt = quadrature_option_type ())
4 {
5 size_t k = Xh . degree ();
6 size_t d = Xh . get_geo (). dimension ();
7 Float beta = ( k +1)*( k + d )/ d;
8 trial u ( Xh ) , p ( Qh );
9 test v ( Xh ) , q ( Qh );
10 a = integrate (2* ddot ( Dh ( u ) , Dh ( v )) , qopt )
11 + integrate (" sides ", beta * penalty ()* dot ( jump ( u ) , jump ( v ))
12 - 2* dot ( jump ( u ) , average ( Dh ( v )* normal ()))
13 - 2* dot ( jump ( v ) , average ( Dh ( u )* normal ())) , qopt );
14 lh = integrate ( dot ( f () , v ) , qopt )
15 + integrate (" boundary ", beta * penalty ()* dot ( g () , v )
16 - 2* dot ( g () , Dh ( v )* normal ()) , qopt );
17 b = integrate ( dot (u , grad_h ( q )) , qopt )
18 + integrate (" internal_sides ", - dot ( average ( u ) , normal ())* jump ( q) , qopt );
19 kh = integrate (" boundary ", dot (g () , normal ())* q , qopt );
20 c = integrate (" internal_sides ", h_local ()* jump ( p )* jump ( q ) , qopt );
21 mp = integrate ( p *q , qopt );
22 }
A simple test program writes:Rheolef version 6.6 update 17 September 2013 23
Example file 3.4: stokes_taylor_dg.cc
1 # include " rheolef .h"
2 using namespace rheolef ;
3 using namespace std ;
4 # include " taylor .icc"
5 # include " stokes_dirichlet_dg . icc"
6 int main (int argc , char ** argv ) {
7 environment rheolef ( argc , argv );
8 geo omega ( argv [1]);
9 space Xh ( omega , argv [2] , " vector ");
10 space Qh ( omega , argv [2]);
11 form a , b , c , mp ;
12 field lh , kh ;
13 stokes_dirichlet_dg ( Xh , Qh , a , b , c , mp , lh , kh );
14 field uh ( Xh , 0) , ph (Qh , 0);
15 solver_abtb stokes ( a . uu () , b . uu () , c . uu () , mp . uu ());
16 stokes . solve ( lh . u () , kh . u () , uh . set_u () , ph . set_u ());
17 dout << catchmark ("u") << uh
18 << catchmark ("p") << ph ;
19 }
Comments
The data are given when d = 2 by (3.1). This choice is convenient since the exact solution is
known u = g and p = 0. The code stokes_taylor_error_dg.cc compute the error in L
2
, L∞
and energy norms. This code it is not listed here but is available in the Rheolef example directory.
The computation writes:
make stokes_taylor_dg stokes_taylor_error_dg
mkgeo_grid -t 10 > square.geo
./stokes_taylor_dg square P1d | ./stokes_taylor_error_dg
./stokes_taylor_dg square P2d | ./stokes_taylor_error_dg
3.3 The stationnary Navier-Stokes problem
3.3.1 Problem statemment
The Navier-Stokes problem has been already introduced in volume 1, section 3.3 page 23. Here
we consider the stationnary version of this problem. Let Re > 0 be the Reynolds number. The
problem writes:
(P): find u and p, defined in Ω, such that
Re (u.∇)u − div(2D(u)) + ∇p = f in Ω,
− div u = 0 in Ω,
u = g on ∂Ω
Notice that, when Re > 0, the problem is nonlinear, due to the inertia term u.∇u. When Re = 0
the problem reduces to the linear Stokes problem, presented in the previous section/
The variationnal formulation of this nonlinear problem writes:
(F V ): find u ∈ V(g) and p ∈ L
2
(Ω) such that
Re t(u; u, v) + a(u, v) + b(v, p) = l(v), ∀v ∈ V(0),
b(u, q) = 0, ∀q ∈ L
2
(Ω)
where the space V(g) and forms a, b and l are given as in the previous section 3.2 for the Stokes
problem and the trilinear form t(.; ., .) is given by:
t(w; u, v) = Z
Ω
((w.∇)u).v dx24 Rheolef version 6.6 update 17 September 2013
3.3.2 The discrete problem
Let
t(w; u, u) = Z
Ω
(w.∇u).u dx
Observe that, for all u, w ∈ H1
(Ω)d we have
Z
Ω
(w.∇u).u dx =
X
d−1
i,j=0
Z
Ω
ui wj ∂j (ui) dx
=
X
d−1
i,j=0
−
Z
Ω
ui ∂j (ui wj ) dx +
Z
∂Ω
u
2
i wj nj dx
=
X
d−1
i,j=0
−
Z
Ω
ui ∂j (ui) wj dx −
Z
Ω
u
2
i ∂j (wj ) dx +
Z
∂Ω
u
2
i wj nj dx
= −
Z
Ω
(w.∇u).u dx −
Z
Ω
div(w)|u|
2 dx +
Z
∂Ω
w.n |u|
2 ds (3.4)
Thus
t(w; u, u) = Z
Ω
(w.∇u).u dx = −
1
2
Z
Ω
div(w)|u|
2 dx +
1
2
Z
∂Ω
w.n |u|
2 ds
When div(w) = 0, the trilinear form t(.; ., .) reduces to a boundary term: it is formaly skewsymmetric.
The skew-symmetry of t is an important property: let (v, q) = (u, p) as test functions
in (F V ). We obtain:
a(u, u) = l(u)
In other words, we obtain the same energy balance as for the Stokes flow and inertia do not
contribute to the energy balance. This is an important property and we aim at obtaining the
same one at the discrete level. As the discrete solution uh is not exactly divergence free, following
Temam, we introduce the following modified trilinear form:
t
∗
(w; u, v) = Z
Ω
(w.∇u).v +
1
2
div(w) u.v
dx −
1
2
Z
∂Ω
(w.n) u.v ds, ∀u, v, w ∈ H1
(Ω)d
This form integrates the non-vanishing terms and we have:
t
∗
(w; u, u) = 0, ∀u, w ∈ H1
(Ω)d
When the discrete solution is not exactly divergence free, it is better to use t
∗
than t.
The discontinuous finite element spaces Xh and Qh and forms ah, bh, ch, lh and kh are defined as
in the previous section. Let us introduce t
∗
h
, the following discrete trilinear form, defined for all
uh, vh, wh ∈ Xh:
t
∗
h
(wh; uh, vh) = Z
Ω
(wh.∇huh).vh +
1
2
divh(wh) uh.vh
dx −
1
2
Z
∂Ω
(wh.n) uh.vh ds
Notice that t
∗
h
is similar to t
∗
: the gradient and divergence has been replaced by their broken
counterpart in the first term. As Xh 6⊂ H1
(Ω)d
, the skew-symmetry property is not expected to
be true at the discrete level. Then
t
∗
h
(wh; uh, uh) = X
K∈Th
Z
K
(wh.∇uh).uh +
1
2
div(wh)|uh|
2
dx −
1
2
Z
∂Ω
(wh.n)|uh|
2 dsRheolef version 6.6 update 17 September 2013 25
As the restriction of uh and wh to each K ∈ Th belongs to H1
(K)
d
, we have, using a similar
integration by part:
Z
K
(wh.∇uh).uh dx = −
1
2
Z
K
div(wh)|uh|
2 dx +
1
2
Z
∂K
(wh.n)|uh|
2 ds
Thus
t
∗
h
(wh; uh, uh) = 1
2
X
K∈Th
Z
∂K
(wh.n)|uh|
2 ds −
1
2
Z
∂Ω
(wh.n)|uh|
2 ds
The terms on boundary sides vanish while those on internal sides can be grouped:
t
∗
h
(wh; uh, uh) = 1
2
X
S∈S
(i)
h
Z
S
[[|uh|
2wh]].n ds
The jump term [[(uh.vh) wh]].n is not easily manageable and could be developed. A short computation
shows that, for all scalar fields φ, ϕ we have on any internal side:
[[φϕ]] = [[φ]]{{ϕ}} + {{φ}}[[ϕ]] (3.5)
{{φϕ}} = {{φ}}{{ϕ}} +
1
4
[[φ]][[ϕ]] (3.6)
Then
t
∗
h
(wh; uh, uh) = 1
2
X
S∈S
(i)
h
Z
S
{{wh}}.n [[|uh|
2
]] + [[wh]].n {{|uh|
2
}}
ds
=
X
S∈S
(i)
h
Z
S
{{wh}}.n ([[uh]].{{uh}}) + 1
2
[[wh]].n {{|uh|
2
}}
ds
Thus, as expected, the skew-symmetry property is no more satisfied at the discrete level, due to
the jumps of the fields at the inter-element boundaries. Following the previous idea, we introduce
the following modified discrete trilinear form:
th(wh; uh, vh) = t
∗
h
(wh; uh, vh) −
X
S∈S
(i)
h
Z
S
{{wh}}.n ([[uh]].{{vh}}) + 1
2
[[wh]].n {{uh.vh}}
ds
=
Z
Ω
(wh.∇huh).vh +
1
2
divh(wh) uh.vh
dx −
1
2
Z
∂Ω
(wh.n) uh.vh ds
−
X
S∈S
(i)
h
Z
S
{{wh}}.n ([[uh]].{{vh}}) + 1
2
[[wh]].n {{uh.vh}}
ds (3.7)
This expression has been proposed by Pietro and Ern [5, p. 22], eqn (72) (see also [6, p. 272], eqn
(6.57)). The boundary term introduced in th may be compensated in the right-hand side:
l
∗
h
(v) := lh(v) −
Re
2
Z
∂Ω
(g.n) g.vh ds
Notice that the boundary term introduced in th is compensated in the right-hand side l
∗
h
.26 Rheolef version 6.6 update 17 September 2013
Example file 3.5: inertia.icc
1 template < class W , class U , class V >
2 form inertia ( W w , U u , V v ,
3 quadrature_option_type qopt = quadrature_option_type ())
4 {
5 return
6 integrate ( dot ( grad_h ( u )* w , v ) + 0.5* div_h ( w )* dot (u , v ) , qopt )
7 + integrate (" boundary ", - 0.5* dot (w , normal ())* dot (u , v ) , qopt )
8 + integrate (" internal_sides ",
9 - dot ( average ( w ) , normal ())* dot ( jump ( u ) , average ( v ))
10 - 0.5* dot ( jump ( w ) , normal ())
11 *( dot ( average ( u ) , average ( v )) + 0.25* dot ( jump ( u ) , jump ( v ))) , qopt );
12 }
13 field inertia_fix_rhs ( test v ,
14 quadrature_option_type qopt = quadrature_option_type ())
15 {
16 return integrate (" boundary ", - 0.5* dot ( g () , normal ())* dot ( g () , v ) , qopt );
17 }
The discrete problem is
(F V )h: find uh ∈ Xh and p ∈ Qh such that
Re th(uh; uh, vh) + ah(uh, vh) + bh(vh, ph) = l
∗
h
(vh), ∀vh ∈ Xh,
bh(uh, qh) − ch(ph, qh) = kh(q), ∀qh ∈ Qh
(3.8)
The simplest approach for solving the discrete problem is to consider a fixed-point algorithm. The
sequence
u
(k)
h
k>0
is defined by reccurence as:
• k = 0: let u
(0)
h ∈ Xh being known.
• k > 0: let u
(k−1)
h ∈ Xh given. Find u
(k)
h ∈ Xh and p
(k)
h ∈ Qh such that
Re th
u
(k−1)
h
; u
(k)
h
, vh
+ ah
u
(k)
h
, vh
+ bh
vh, p
(k)
h
= l
∗
h
(vh), ∀vh ∈ Xh,
bh
u
(k)
h
, qh
− ch
p
(k)
h
, qh
= kh(q), ∀qh ∈ Qh.
At each step k > 0, this algorithm involves a linear subproblem of Stokes-type.Rheolef version 6.6 update 17 September 2013 27
Example file 3.6: navier_stokes_taylor_dg.cc
1 # include " rheolef .h"
2 using namespace rheolef ;
3 using namespace std ;
4 # include " taylor .icc"
5 # include " stokes_dirichlet_dg . icc"
6 # include " inertia .icc"
7 int main (int argc , char ** argv ) {
8 environment rheolef ( argc , argv );
9 geo omega ( argv [1]);
10 space Xh ( omega , argv [2] , " vector ");
11 space Qh ( omega , argv [2]);
12 Float Re = ( argc > 3) ? atof ( argv [3]) : 1;
13 size_t max_iter = ( argc > 4) ? atoi ( argv [4]) : 1;
14 form a , b , c , mp ;
15 field lh , kh ;
16 stokes_dirichlet_dg ( Xh , Qh , a , b , c , mp , lh , kh );
17 field uh ( Xh , 0) , ph (Qh , 0);
18 solver_abtb stokes ( a . uu () , b . uu () , c . uu () , mp . uu ());
19 stokes . solve ( lh . u () , kh . u () , uh . set_u () , ph . set_u ());
20 trial u ( Xh ); test v ( Xh );
21 form a1 = a + Re * inertia ( uh , u , v );
22 lh += Re * inertia_fix_rhs ( v );
23 derr << "#k r as" << endl ;
24 for ( size_t k = 0; k < max_iter ; ++ k ) {
25 solver_abtb stokes ( a1 . uu () , b. uu () , c . uu () , mp . uu ());
26 stokes . solve ( lh . u () , kh . u () , uh . set_u () , ph . set_u ());
27 form th = inertia ( uh , u , v );
28 a1 = a + Re * th ;
29 field rh = a1 * uh + b . trans_mult ( ph ) - lh ;
30 derr << k << " " << rh . max_abs () << " " << th ( uh , uh ) << endl ;
31 }
32 dout << catchmark ("Re") << Re << endl
33 << catchmark ("u") << uh
34 << catchmark ("p") << ph ;
35 }
Comments
The data are given when d = 2 by (3.1). This choice is convenient since the exact solution is known
u = g and p = −(Re/4)(cos(2πx0) + cos(2πx1)). The code navier_stokes_taylor_error_dg.cc
compute the error in L
2
, L∞ and energy norms. This code it is not listed here but is available in
the Rheolef example directory. The computation writes:
make navier_stokes_taylor_dg navier_stokes_taylor_error_dg
./navier_stokes_taylor_dg square P1d 10 10 | ./navier_stokes_taylor_error_dg
./navier_stokes_taylor_dg square P2d 10 10 | ./navier_stokes_taylor_error_dg
3.3.3 A conservative variant
Remark the identity
div(u ⊗ u) = (u.∇)u + div(u) u
The momentum conservation can be rewritten in conservative form and the problem writes:
(P˜): find u and p, defined in Ω, such that
div(Re u ⊗ u − 2D(u)) + ∇p = f in Ω,
− div u = 0 in Ω,
u = g on ∂Ω28 Rheolef version 6.6 update 17 September 2013
Notice the Green formulae (see volume 1, appendix A.2, page 141):
Z
Ω
div(u ⊗ u).v dx = −
Z
Ω
(u ⊗ u):∇v dx +
Z
∂Ω
(u.n) (u.v) ds
The variationnal formulation is:
(F Vg): find u ∈ V(g) and p ∈ L
2
(Ω) such that
Re t˜(u; u, v) + a(u, v) + b(v, p) = ˜l(v), ∀v ∈ V(0),
b(u, q) = 0, ∀q ∈ L
2
(Ω)
where the forms t˜ and ˜lh are given by:
t˜(w; u, v) = −
Z
Ω
(w ⊗ u):∇v dx
˜l(v) = l(v) − Re Z
∂Ω
(g.n) (g.v) ds
Notice that the right-hand side ˜l contains an additional term that compensates those comming
from the integration by parts. Then, with v = u:
t˜(w; u, u) = −
Z
Ω
(w ⊗ u):∇u dx
=
Z
Ω
div(w ⊗ u).u dx −
Z
∂Ω
(w ⊗ u) : (u ⊗ n) dx
=
Z
Ω
(((u.∇)w).u + div(u) (u.w)) dx −
Z
∂Ω
(u.n) (u.w) dx
From an integration by part similar to (3.4):
Z
Ω
(u.∇w).u dx = −
Z
Ω
(u.∇u).w dx −
Z
Ω
div(u) (u.w) dx +
Z
∂Ω
(u.n) (u.w) ds
The term (u.∇w).u do not reapper after the integration by parts: instead, it appears (u.∇u).w.
Thus, the structure of the t˜ trilinear form do not permit a general skew-symmetry property as it
was the case for t. It requires the three arguments to be the same:
t˜(u; u, u) = Z
Ω
((u.∇)u).u + div(u)|u|
2
dx −
Z
∂Ω
(u.n)|u|
2 dx
Using (3.4) with w = u leads to:
Z
Ω
((u.∇)u).u dx = −
1
2
Z
Ω
div(u)|u|
2 dx +
1
2
Z
∂Ω
(u.n)|u|
2 ds (3.9)
Then
t˜(u; u, u) = 1
2
Z
Ω
div(u)|u|
2 dx −
1
2
Z
∂Ω
(u.n)|u|
2 ds
When working with velocities that are not divergence-free, a possible modification of the trilinear
form t˜ is to consider
t˜∗
(w; u, v) = t˜(w; u, v) −
1
2
Z
Ω
div(v) (u.w) dx +
1
2
Z
∂Ω
(v.n) (u.w) ds
= −
Z
Ω
(w ⊗ u):D(v) + 1
2
div(v) (u.w)
dx +
1
2
Z
∂Ω
(v.n) (u.w) dsRheolef version 6.6 update 17 September 2013 29
Then we have
t˜∗
(u; u, u) = 0, ∀u ∈ H1
(Ω)d
The new variationnal formulation is:
(F Vg)
∗
: find u ∈ V(g) and p˜ ∈ L
2
(Ω) such that
Re t˜∗
(u; u, v) + a(u, v) + b(v, p˜) = ˜l(v), ∀v ∈ V(0),
b(u, q) = 0, ∀q ∈ L
2
(Ω)
One can easily check that when (u, p˜) is a solution of (F Vg)
∗
, then (u, p) is a solution of (F Vg)
with p = ˜p + Re|u|/2. The apparition of the kinetic energy term Re|u|/2 in the modified pressure
field p˜ is due to the introduction of the div(v) (u.w) term in the trilinear form t˜∗
.
At the discrete level, let us define for all uh, vh, wh ∈ Xh:
t˜∗
h
(wh; uh, vh) = −
Z
Ω
(wh ⊗ uh):∇hvh +
1
2
divh(vh) (uh.wh)
dx
+
1
2
Z
∂Ω
(vh.n) (uh.wh) ds
Notice that t˜∗
h
is similar to t˜∗
: the gradient and divergence has been replaced by their broken
counterpart in the first term. As Xh 6⊂ H1
(Ω)d
, the skew-symmetry property is not expected to
be true at the discrete level. Then
t˜∗
h
(uh; uh, uh) = −
Z
Ω
(uh ⊗ uh):∇huh +
1
2
divh(uh)|uh|
2
dx +
1
2
Z
∂Ω
(uh.n)|uh|
2 ds
Next, using (3.9) in each K, and then developing thanks to (3.5)-(3.6), we get
t˜∗
h
(uh; uh, uh) = 1
2
Z
∂Ω
(uh.n)|uh|
2 ds −
1
2
X
K∈Th
Z
∂K
(uh.n)|uh|
2 ds
= −
1
2
X
S∈S
(i)
h
Z
S
[[(uh.n)|uh|
2
]] ds
= −
1
2
X
S∈S
(i)
h
Z
S
({{uh}}.n) [[|uh|
2
]] + ([[uh]].n) {{|uh|
2
}}
ds
= −
X
S∈S
(i)
h
Z
S
({{uh}}.n) ({{uh}}.[[uh]]) + 1
2
([[uh]].n) {{|uh|
2
}}
ds
The idea is to integrate this term in the definition of a discrete t˜h. One of the possibilities is
t˜h(wh; uh, vh) = t˜∗
h
(wh; uh, vh) + X
S∈S
(i)
h
Z
S
({{uh}}.n) ({{wh}}.[[vh]]) + 1
2
{{uh.wh}} ([[vh]].n)
ds
= −
Z
Ω
(wh ⊗ uh):∇hvh +
1
2
divh(vh) (uh.wh)
dx
+
1
2
Z
∂Ω
(vh.n) (uh.wh) ds
+
X
S∈S
(i)
h
Z
S
({{uh}}.n) ({{wh}}.[[vh]]) + 1
2
{{uh.wh}} ([[vh]].n)
ds (3.10)
This expression was proposed by [5, p. 21], eqn (73) (see also [6, p. 282]) folling and original idea
introduced in [3].30 Rheolef version 6.6 update 17 September 2013
Example file 3.7: inertia_cks.icc
1 form inertia ( field w , trial u , test v ,
2 quadrature_option_type qopt = quadrature_option_type ())
3 {
4 return
5 integrate ( - dot ( trans ( grad_h ( v ))* w , u ) - 0.5* div_h ( v )* dot (u , w ) , qopt )
6 + integrate (" internal_sides ",
7 dot ( average ( u ) , normal ())* dot ( jump ( v ) , average ( w ))
8 + 0.5* dot ( jump ( v ) , normal ())
9 *( dot ( average ( u ) , average ( w )) + 0.25* dot ( jump ( u ) , jump ( w ))) , qopt )
10 + integrate (" boundary ", 0.5* dot (v , normal ())* dot (u , w ) , qopt );
11 }
12 field inertia_fix_rhs ( test v ,
13 quadrature_option_type qopt = quadrature_option_type ())
14 {
15 return integrate (" boundary ", - dot ( g () , normal ())* dot ( g () , v ), qopt );
16 }
The discrete problem is
(F Vg)h: find uh ∈ Xh and p˜ ∈ Qh such that
Re t˜h(uh; uh, vh) + ah(uh, vh) + bh(vh, p˜h) = ˜l
∗
h
(vh), ∀vh ∈ Xh,
bh(uh, qh) − ch(ph, qh) = kh(q), ∀qh ∈ Qh
A simple test program is obtained by replacing in navier_stokes_taylor_dg.cc the include
inertia.icc by inertia_cks.icc. The compilation and run are similar.
3.3.4 A Newton solver
The discrete problems (F V )h can be put in a compact form:
F(uh, ph) = 0
where F is defined in variationnal form:
hF(uh, ph), (vh, qh)i =
Re th(uh; uh, vh) + ah(uh, vh) + bh(vh, ph) − l
∗
h
(vh)
bh(uh, qh) − ch(ph, qh) − kh(q)
for all (vh, qh) ∈ Xh × Qh. Notices that, after some minor modifications in the definition of
F, this method could also applies for the locally conservative formulation (F Vg)h. The previous
formulation is simply the variationnal expression of F(uh, ph) = 0. The Newton method defines
the sequence
u
(k)
h
k>0
by reccurence as:
• k = 0: let u
(0)
h ∈ Xh being known.
• k > 0: let u
(k−1)
h ∈ Xh given. Find δuh ∈ Xh and δph ∈ Qh such that
F
0
u
(k−1)
h
, p
(k−1)
h
.(δuh, δph) = −F
u
(k−1)
h
, p
(k−1)
h
and then defines
u
(k)
h = u
(k−1)
h + δuh and p
(k)
h = p
(k−1)
h + δph
At each step k > 0, this algorithm involves a linear subproblem involving the jacobian F
0
that is
definied by its variationnal form:
hF
0
u
(k−1)
h
, p
(k−1)
h
.(δuh, δph), (vh, qh)i
=
Re (th(δuh; uh, vh) + th(uh; δuh, vh)) + ah(δuh, vh) + bh(vh, δph)
bh(δuh, qh) − ch(δph, qh)
Rheolef version 6.6 update 17 September 2013 31
Example file 3.8: navier_stokes_taylor_newton_dg.cc
1 # include " rheolef .h"
2 using namespace rheolef ;
3 using namespace std ;
4 # include " taylor .icc"
5 # include " stokes_dirichlet_dg . icc"
6 # include " inertia .icc"
7 # include " navier_stokes_dg .h"
8 int main (int argc , char ** argv ) {
9 environment rheolef ( argc , argv );
10 Float eps = numeric_limits :: epsilon ();
11 geo omega ( argv [1]);
12 string approx = ( argc > 2) ? argv [2] : " P1d";
13 Float Re = ( argc > 3) ? atof ( argv [3]) : 100;
14 Float tol = ( argc > 4) ? atof ( argv [4]) : eps ;
15 size_t max_iter = ( argc > 5) ? atoi ( argv [5]) : 100;
16 string restart = ( argc > 6) ? argv [6] : "";
17 navier_stokes_dg F ( Re , omega , approx );
18 navier_stokes_dg :: value_type xh = F . initial ( restart );
19 int status = damped_newton (F , xh , tol , max_iter , & derr );
20 dout << catchmark ("Re") << Re << endl
21 << catchmark ("u") << xh [0]
22 << catchmark ("p") << xh [1];
23 return status ;
24 }
Comments
The implementation of the Newton method follows the generic approach introduced in volume 1,
section 8.3, page 126. For that purpose we define a class navier_stokes_dg.
Example file 3.9: navier_stokes_dg.h
1 struct navier_stokes_dg {
2 typedef valarray value_type ;
3 typedef Float float_type ;
4 navier_stokes_dg ( Float Re , const geo& omega , string approx );
5 value_type initial ( string restart ) const ;
6 value_type residue ( const value_type & uh ) const ;
7 void update_derivative ( const value_type & uh ) const ;
8 value_type derivative_solve ( const value_type & mrh ) const ;
9 value_type derivative_trans_mult ( const value_type & mrh ) const ;
10 Float space_norm ( const value_type & uh ) const ;
11 Float dual_space_norm ( const value_type & mrh ) const ;
12 Float duality_product ( const value_type & mrh , const value_type & msh ) const ;
13 Float Re ;
14 space Xh , Qh ;
15 quadrature_option_type qopt ;
16 form a0 , b , c , mu , mp ;
17 field lh0 , lh , kh ;
18 solver smu , smp ;
19 mutable form a1 ;
20 mutable solver_abtb stokes1 ;
21 };
22 # include " navier_stokes_dg1 .icc"
23 # include " navier_stokes_dg2 .icc"
The member functions of the class are defined in two separate files.32 Rheolef version 6.6 update 17 September 2013
Example file 3.10: navier_stokes_dg1.icc
1 navier_stokes_dg :: navier_stokes_dg (
2 Float Re1 , const geo& omega , string approx )
3 : Re ( Re1 ), Xh () , Qh () , qopt () , a0 () , b () , c () , mu () , mp () , lh0 () , lh () , kh () ,
4 smu () , smp () , a1 () , stokes1 ()
5 {
6 Xh = space ( omega , approx , " vector ");
7 Qh = space ( omega , approx );
8 qopt . set_family ( quadrature_option_type :: gauss );
9 qopt . set_order (2* Xh . degree ()+1);
10 stokes_dirichlet_dg ( Xh , Qh , a0 , b , c , mp , lh0 , kh , qopt );
11 trial u ( Xh ); test v ( Xh );
12 lh = lh0 + Re * inertia_fix_rhs (v , qopt );
13 mu = integrate ( dot (u , v ) , qopt );
14 smu = solver ( mu . uu ());
15 smp = solver ( mp . uu ());
16 }
17 navier_stokes_dg :: value_type
18 navier_stokes_dg :: initial ( string restart ) const {
19 value_type xh (2);
20 xh [0] = field ( Xh , 0);
21 xh [1] = field ( Qh , 0);
22 Float Re0 = 0;
23 if ( restart == "") {
24 solver_abtb stokes0 ( a0 . uu () , b . uu () , c . uu () , mp . uu ());
25 stokes0 . solve ( lh0 . u () , kh . u () , xh [0]. set_u () , xh [1]. set_u ());
26 } else {
27 idiststream in ( restart );
28 in >> catchmark ("Re") >> Re0
29 >> catchmark ("u") >> xh [0]
30 >> catchmark ("p") >> xh [1];
31 check_macro ( xh [1]. get_space () == Qh , " unexpected " << xh [0]. get_space (). stamp ()
32 << " approximation in file \"" << restart << "\" (" << Xh . stamp () << " expected )");
33 }
34 derr << "# continuation : from Re=" << Re0 << " to " << Re << endl ;
35 return xh ;
36 }
37 navier_stokes_dg :: value_type
38 navier_stokes_dg :: residue ( const value_type & xh ) const {
39 trial u ( Xh ); test v ( Xh );
40 form a = a0 + Re * inertia ( xh [0] , u , v , qopt );
41 value_type mrh (2);
42 mrh [0] = a * xh [0] + b . trans_mult ( xh [1]) - lh ;
43 mrh [1] = b * xh [0] - c * xh [1] - kh ;
44 return mrh ;
45 }
46 void navier_stokes_dg :: update_derivative ( const value_type & xh ) const {
47 trial u ( Xh ); test v ( Xh );
48 a1 = a0 + Re *( inertia ( xh [0] , u , v , qopt ) + inertia (u , xh [0] , v , qopt ));
49 stokes1 = solver_abtb ( a1 . uu () , b . uu () , c . uu () , mp . uu ());
50 }
51 navier_stokes_dg :: value_type
52 navier_stokes_dg :: derivative_solve ( const value_type & mrh ) const {
53 value_type delta_xh (2);
54 delta_xh [0] = field ( Xh , 0);
55 delta_xh [1] = field ( Qh , 0);
56 stokes1 . solve ( mrh [0]. u () , mrh [1]. u () ,
57 delta_xh [0]. set_u () , delta_xh [1]. set_u ());
58 return delta_xh ;
59 }
60 navier_stokes_dg :: value_type
61 navier_stokes_dg :: derivative_trans_mult ( const value_type & mrh ) const {
62 value_type rh (2);
63 rh [0] = field ( Xh );
64 rh [1] = field ( Qh );
65 rh [0]. set_u () = smu . solve ( mrh [0]. u ());
66 rh [1]. set_u () = smp . solve ( mrh [1]. u ());
67 value_type mgh (2);
68 mgh [0] = a1 . trans_mult ( rh [0]) + b . trans_mult ( rh [1]);
69 mgh [1] = b * rh [0] - c * rh [1];
70 return mgh ;
71 }Rheolef version 6.6 update 17 September 2013 33
Example file 3.11: navier_stokes_dg2.icc
1 Float navier_stokes_dg :: dual_space_norm ( const value_type & mrh ) const {
2 value_type rh (2);
3 rh [0] = field ( Xh );
4 rh [1] = field ( Qh );
5 rh [0]. set_u () = smu . solve ( mrh [0]. u ());
6 rh [1]. set_u () = smp . solve ( mrh [1]. u ());
7 return std :: max ( rh [0]. max_abs () , rh [1]. max_abs ());
8 }
9 Float navier_stokes_dg :: space_norm ( const value_type & xh ) const {
10 return sqrt ( mu ( xh [0] , xh [0]) + mp ( xh [1] , xh [1]));
11 }
12 Float navier_stokes_dg :: duality_product (
13 const value_type & mrh , const value_type & msh ) const
14 {
15 value_type rh (2);
16 rh [0] = field ( Xh );
17 rh [1] = field ( Qh );
18 rh [0]. set_u () = smu . solve ( mrh [0]. u ());
19 rh [1]. set_u () = smp . solve ( mrh [1]. u ());
20 return dual ( rh [0] , msh [0]) + dual ( rh [1] , msh [1]);
21 }
make navier_stokes_taylor_newton_dg navier_stokes_taylor_error_dg
./navier_stokes_taylor_newton_dg square P2d 1000 | ./navier_stokes_taylor_error_dg
3.3.5 Application to the driven cavity benchmark
Example file 3.12: cavity_dg.icc
1 struct g : field_functor {
2 point operator () ( const point & x ) const {
3 return point (( abs (1 - x [1]) < 1e -7) ? 1 : 0 , 0 , 0); }
4 };
5 struct f : field_functor {
6 point operator () ( const point & x ) const { return point (0 ,0 ,0); }
7 };
The program navier_stokes_cavity_newton_dg.cc is obtained by replacing in
navier_stokes_taylor_newton_dg.cc the include taylor.icc by cavity_dg.icc that
defines the boundary conditions. The compilation and run are similar.
make navier_stokes_cavity_newton_dg stream_cavity
./navier_stokes_cavity_newton_dg square P1d 500 > square.field
field -proj square.field -field | ./streamf_cavity | \
field -bw -n-iso-negative 10 -mayavi -
3.3.6 Upwinding
The skew symmetry property is generalized to the requirement that th be non-dissipative (see [6,
p. 282], eqn (6.68)):
th(wh; uh, uh) > 0, ∀wh, uh ∈ Xh
A way to satisfy this property is to add an upwinding term in th:
t˘h(wh; uh, vh) := th(wh; uh, vh) + sh(wh; uh, vh)
with
sh(wh; uh, vh) = 1
2
X
S∈S
(i)
h
Z
S
|{{wh}}.n| ([[uh]].[[vh]]) ds34 Rheolef version 6.6 update 17 September 2013
10−10
10−5
100
0 5 10 15 20 25
n
r
(n)
h
L∞
h = 1/40, k = 1
Re = 100
500
1000
Figure 3.1: The discontinuous Galerkin method for the Navier-Stokes problem on the driven cavity
benchmark when k = 1 and d = 2: convergence of the damped Newton algorithm.
We aim at using a Newton method. We replace th by its extension t˘h containing the upwind
terms in the definition of F, and then we compute its jacobian F
0
. As the absolute value is
not differentiable, the functions sh, t˘h and then F are also not differentiable with respect to
wh. Nevertheless, the absolute value is convex and we can use some concets of the sudifferential
calculus. Let us introduce the multi-valued sign function:
sgn(x) =
{1} when x > 0
[−1, 1] when x = 0
{−1} when x < 0
Then, the subdifferential of the absolute value function is sgn(x) and for all δwh, wh, uh, vh ∈ Xh,
we define a generalization of the partial derivative as
∂sh
∂wh
(wh; uh, vh).(δwh) = 1
2
X
S∈S
(i)
h
Z
S
sgn({{wh}}.n) ({{δwh}}.n) ([[uh]].[[vh]]) ds
Example file 3.13: inertia_upw.icc
1 # include " sgn.icc"
2 form inertia_upw ( field w , trial u , test v ,
3 quadrature_option_type qopt = quadrature_option_type ())
4 {
5 return integrate (" internal_sides ",
6 0.5* abs ( dot ( average ( w ), normal ()))* dot ( jump (u ) , jump ( v )));
7 }
8 form d_inertia_upw ( field w , trial dw , field u , test v ,
9 quadrature_option_type qopt = quadrature_option_type ())
10 {
11 return integrate (" internal_sides ",
12 0.5* compose ( sgn , dot ( average ( w ) , normal ()))
13 * dot ( average ( dw ) , normal ())* dot ( jump ( u ) , jump ( v )));
14 }Rheolef version 6.6 update 17 September 2013 35
A multi-valued jacobian F
0
is then defined:
hF
0
u
(k−1)
h
, p
(k−1)
h
.(δuh, δph), (vh, qh)i
= Re
th(δuh; uh, vh) + th(uh; δuh, vh) + ∂sh
∂wh
(uh; uh, vh).(δuh) + sh(uh; δuh, vh)
0
+
ah(δuh, vh) + bh(vh, δph)
bh(δuh, qh) − ch(δph, qh)
We are abble to extend the Newton method to the F function that allows a multi-valued subdifferential
F
0
. During iterations, we can choose any of the available directions in the subdifferential.
One the possibilities is then to replace the multi-valued sign function by a single-value one:
sgn( g x) =
1 when x > 0
−1 when x < 0
Example file 3.14: sgn.icc
1 Float sgn ( Float x ) { return ( x >= 0) ? 1 : -1; }
Example file 3.15: navier_stokes_upw_dg.h
1 # include " navier_stokes_dg .h"
2 struct navier_stokes_upw_dg : navier_stokes_dg {
3 typedef valarray value_type ;
4 typedef Float float_type ;
5 navier_stokes_upw_dg ( Float Re , const geo& omega , string approx );
6 value_type residue ( const value_type & uh ) const ;
7 void update_derivative ( const value_type & uh ) const ;
8 };
9 # include " navier_stokes_upw_dg . icc"
Example file 3.16: navier_stokes_upw_dg.icc
1 # include " inertia_upw .icc "
2 navier_stokes_upw_dg :: navier_stokes_upw_dg (
3 Float Re1 , const geo& omega , string approx )
4 : navier_stokes_dg ( Re1 , omega , approx ) {}
5
6 navier_stokes_upw_dg :: value_type
7 navier_stokes_upw_dg :: residue ( const value_type & xh ) const {
8 trial u ( Xh ); test v ( Xh );
9 form a = a0 + Re *( inertia ( xh [0] , u , v , qopt )
10 + inertia_upw ( xh [0] , u , v , qopt ));
11 value_type mrh (2);
12 mrh [0] = a * xh [0] + b . trans_mult ( xh [1]) - lh ;
13 mrh [1] = b * xh [0] - c * xh [1] - kh ;
14 return mrh ;
15 }
16 void navier_stokes_upw_dg :: update_derivative ( const value_type & xh ) const {
17 trial du ( Xh ); test v ( Xh );
18 a1 = a0 + Re *( inertia ( xh [0] , du , v , qopt )
19 + inertia_upw ( xh [0] , du , v , qopt )
20 + inertia ( du , xh [0] , v , qopt )
21 + d_inertia_upw ( xh [0] , du , xh [0] , v , qopt ));
22 stokes1 = solver_abtb ( a1 . uu () , b . uu () , c . uu () , mp . uu ());
23 }
The program navier_stokes_cavity_newton_upw_dg.cc is obtained by replacing in
navier_stokes_taylor_newton_dg.cc the string navier_stokes_dg by navier_stokes_upw_dg
(two occurences: in the includes and then in the definition of F). Also replace the include
taylor.icc by cavity_dg.icc that defines the boundary conditions. The compilation and run
are similar.36 Rheolef version 6.6 update 17 September 2013
make navier_stokes_cavity_newton_upw_dg stream_cavity
mkgeo_grid -t 80 > square.geo
./navier_stokes_cavity_newton_upw_dg square P1d 500 1e-15 100 > square-500.field
field -proj square-500.field -field | ./streamf_cavity | \
field -bw -n-iso 30 -n-iso-negative 20 -mayavi -
Computations for higher Renolds numbers are performed by continuation, starting from a previous
computation at lower Re:
./navier_stokes_cavity_newton_upw_dg square P1d 1000 1e-15 100 square-500.field > square-1000.field
./navier_stokes_cavity_newton_upw_dg square P1d 1500 1e-15 100 square-1000.field > square-1500.field
Re = 0 Re = 400
Re = 1000 Re = 2000
Figure 3.2: The discontinuous Galerkin method for the Navier-Stokes problem on the driven cavity
benchmark when k = 1 (80 × 80 grid): stream function isovalues for various Re.Rheolef version 6.6 update 17 September 2013 37
Re = 3200 Re = 5000
Re = 7500 Re = 10000
Figure 3.3: The discontinuous Galerkin method for the Navier-Stokes problem on the driven cavity
benchmark when k = 1 (80 × 80 grid): stream function isovalues for various Re (cont.).38 Rheolef version 6.6 update 17 September 2013
Re = 15000 Re = 20000
Re = 25000
Figure 3.4: The discontinuous Galerkin method for the Navier-Stokes problem on the driven cavity
benchmark when k = 1 (80 × 80 grid): stream function isovalues for various Re (cont.).Part III
Technical appendices
39Appendix A
GNU Free Documentation License
Version 1.1, March 2000
Copyright c 2000 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing
it is not allowed.
*
Preamble
The purpose of this License is to make a manual, textbook, or other written document “free”
in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it,
with or without modifying it, either commercially or noncommercially. Secondarily, this License
preserves for the author and publisher a way to get credit for their work, while not being considered
responsible for modifications made by others.
This License is a kind of “copyleft”, which means that derivative works of the document must
themselves be free in the same sense. It complements the GNU General Public License, which is
a copyleft license designed for free software.
We have designed this License in order to use it for manuals for free software, because free software
needs free documentation: a free program should come with manuals providing the same freedoms
that the software does. But this License is not limited to software manuals; it can be used for
any textual work, regardless of subject matter or whether it is published as a printed book. We
recommend this License principally for works whose purpose is instruction or reference.
Applicability and Definitions
This License applies to any manual or other work that contains a notice placed by the copyright
holder saying it can be distributed under the terms of this License. The “Document”, below, refers
to any such manual or work. Any member of the public is a licensee, and is addressed as “you”.
A “Modified Version” of the Document means any work containing the Document or a portion of
it, either copied verbatim, or with modifications and/or translated into another language.
A “Secondary Section” is a named appendix or a front-matter section of the Document that deals
exclusively with the relationship of the publishers or authors of the Document to the Document’s
overall subject (or to related matters) and contains nothing that could fall directly within that
overall subject. (For example, if the Document is in part a textbook of mathematics, a Secondary
4142 Rheolef version 6.6 update 17 September 2013
Section may not explain any mathematics.) The relationship could be a matter of historical
connection with the subject or with related matters, or of legal, commercial, philosophical, ethical
or political position regarding them.
The “Invariant Sections” are certain Secondary Sections whose titles are designated, as being those
of Invariant Sections, in the notice that says that the Document is released under this License.
The “Cover Texts” are certain short passages of text that are listed, as Front-Cover Texts or
Back-Cover Texts, in the notice that says that the Document is released under this License.
A “Transparent” copy of the Document means a machine-readable copy, represented in a format
whose specification is available to the general public, whose contents can be viewed and edited
directly and straightforwardly with generic text editors or (for images composed of pixels) generic
paint programs or (for drawings) some widely available drawing editor, and that is suitable for
input to text formatters or for automatic translation to a variety of formats suitable for input to
text formatters. A copy made in an otherwise Transparent file format whose markup has been
designed to thwart or discourage subsequent modification by readers is not Transparent. A copy
that is not “Transparent” is called “Opaque”.
Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo
input format, LATEX input format, SGML or XML using a publicly available DTD, and standardconforming
simple HTML designed for human modification. Opaque formats include PostScript,
PDF, proprietary formats that can be read and edited only by proprietary word processors, SGML
or XML for which the DTD and/or processing tools are not generally available, and the machinegenerated
HTML produced by some word processors for output purposes only.
The “Title Page” means, for a printed book, the title page itself, plus such following pages as are
needed to hold, legibly, the material this License requires to appear in the title page. For works
in formats which do not have any title page as such, “Title Page” means the text near the most
prominent appearance of the work’s title, preceding the beginning of the body of the text.
Verbatim Copying
You may copy and distribute the Document in any medium, either commercially or noncommercially,
provided that this License, the copyright notices, and the license notice saying this License
applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever
to those of this License. You may not use technical measures to obstruct or control the
reading or further copying of the copies you make or distribute. However, you may accept compensation
in exchange for copies. If you distribute a large enough number of copies you must also
follow the conditions in section 3.
You may also lend copies, under the same conditions stated above, and you may publicly display
copies.
Copying in Quantity
If you publish printed copies of the Document numbering more than 100, and the Document’s
license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and
legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
the back cover. Both covers must also clearly and legibly identify you as the publisher of these
copies. The front cover must present the full title with all words of the title equally prominent
and visible. You may add other material on the covers in addition. Copying with changes limited
to the covers, as long as they preserve the title of the Document and satisfy these conditions, can
be treated as verbatim copying in other respects.
If the required texts for either cover are too voluminous to fit legibly, you should put the first ones
listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages.Rheolef version 6.6 update 17 September 2013 43
If you publish or distribute Opaque copies of the Document numbering more than 100, you must
either include a machine-readable Transparent copy along with each Opaque copy, or state in
or with each Opaque copy a publicly-accessible computer-network location containing a complete
Transparent copy of the Document, free of added material, which the general network-using public
has access to download anonymously at no charge using public-standard network protocols. If you
use the latter option, you must take reasonably prudent steps, when you begin distribution of
Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the
stated location until at least one year after the last time you distribute an Opaque copy (directly
or through your agents or retailers) of that edition to the public.
It is requested, but not required, that you contact the authors of the Document well before
redistributing any large number of copies, to give them a chance to provide you with an updated
version of the Document.
Modifications
You may copy and distribute a Modified Version of the Document under the conditions of sections
2 and 3 above, provided that you release the Modified Version under precisely this License, with
the Modified Version filling the role of the Document, thus licensing distribution and modification
of the Modified Version to whoever possesses a copy of it. In addition, you must do these things
in the Modified Version:
• Use in the Title Page (and on the covers, if any) a title distinct from that of the Document,
and from those of previous versions (which should, if there were any, be listed in the History
section of the Document). You may use the same title as a previous version if the original
publisher of that version gives permission.
• List on the Title Page, as authors, one or more persons or entities responsible for authorship
of the modifications in the Modified Version, together with at least five of the principal
authors of the Document (all of its principal authors, if it has less than five).
• State on the Title page the name of the publisher of the Modified Version, as the publisher.
• Preserve all the copyright notices of the Document.
• Add an appropriate copyright notice for your modifications adjacent to the other copyright
notices.
• Include, immediately after the copyright notices, a license notice giving the public permission
to use the Modified Version under the terms of this License, in the form shown in the
Addendum below.
• Preserve in that license notice the full lists of Invariant Sections and required Cover Texts
given in the Document’s license notice.
• Include an unaltered copy of this License.
• Preserve the section entitled “History”, and its title, and add to it an item stating at least
the title, year, new authors, and publisher of the Modified Version as given on the Title
Page. If there is no section entitled “History” in the Document, create one stating the title,
year, authors, and publisher of the Document as given on its Title Page, then add an item
describing the Modified Version as stated in the previous sentence.
• Preserve the network location, if any, given in the Document for public access to a Transparent
copy of the Document, and likewise the network locations given in the Document
for previous versions it was based on. These may be placed in the “History” section. You
may omit a network location for a work that was published at least four years before the
Document itself, or if the original publisher of the version it refers to gives permission.44 Rheolef version 6.6 update 17 September 2013
• In any section entitled “Acknowledgements” or “Dedications”, preserve the section’s title, and
preserve in the section all the substance and tone of each of the contributor acknowledgements
and/or dedications given therein.
• Preserve all the Invariant Sections of the Document, unaltered in their text and in their
titles. Section numbers or the equivalent are not considered part of the section titles.
• Delete any section entitled “Endorsements”. Such a section may not be included in the
Modified Version.
• Do not retitle any existing section as “Endorsements” or to conflict in title with any Invariant
Section.
If the Modified Version includes new front-matter sections or appendices that qualify as Secondary
Sections and contain no material copied from the Document, you may at your option designate
some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections
in the Modified Version’s license notice. These titles must be distinct from any other section titles.
You may add a section entitled “Endorsements”, provided it contains nothing but endorsements
of your Modified Version by various parties – for example, statements of peer review or that the
text has been approved by an organization as the authoritative definition of a standard.
You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as
a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage
of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made
by) any one entity. If the Document already includes a cover text for the same cover, previously
added by you or by arrangement made by the same entity you are acting on behalf of, you may not
add another; but you may replace the old one, on explicit permission from the previous publisher
that added the old one.
The author(s) and publisher(s) of the Document do not by this License give permission to use
their names for publicity for or to assert or imply endorsement of any Modified Version.
Combining Documents
You may combine the Document with other documents released under this License, under the terms
defined in section 4 above for modified versions, provided that you include in the combination all
of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant
Sections of your combined work in its license notice.
The combined work need only contain one copy of this License, and multiple identical Invariant
Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same
name but different contents, make the title of each such section unique by adding at the end of
it, in parentheses, the name of the original author or publisher of that section if known, or else a
unique number. Make the same adjustment to the section titles in the list of Invariant Sections in
the license notice of the combined work.
In the combination, you must combine any sections entitled “History” in the various original
documents, forming one section entitled “History”; likewise combine any sections entitled “Acknowledgements”,
and any sections entitled “Dedications”. You must delete all sections entitled
“Endorsements.”
Collections of Documents
You may make a collection consisting of the Document and other documents released under this
License, and replace the individual copies of this License in the various documents with a singleRheolef version 6.6 update 17 September 2013 45
copy that is included in the collection, provided that you follow the rules of this License for
verbatim copying of each of the documents in all other respects.
You may extract a single document from such a collection, and distribute it individually under
this License, provided you insert a copy of this License into the extracted document, and follow
this License in all other respects regarding verbatim copying of that document.
Aggregation With Independent Works
A compilation of the Document or its derivatives with other separate and independent documents
or works, in or on a volume of a storage or distribution medium, does not as a whole count
as a Modified Version of the Document, provided no compilation copyright is claimed for the
compilation. Such a compilation is called an “aggregate”, and this License does not apply to
the other self-contained works thus compiled with the Document, on account of their being thus
compiled, if they are not themselves derivative works of the Document.
If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if
the Document is less than one quarter of the entire aggregate, the Document’s Cover Texts may
be placed on covers that surround only the Document within the aggregate. Otherwise they must
appear on covers around the whole aggregate.
Translation
Translation is considered a kind of modification, so you may distribute translations of the Document
under the terms of section 4. Replacing Invariant Sections with translations requires special
permission from their copyright holders, but you may include translations of some or all Invariant
Sections in addition to the original versions of these Invariant Sections. You may include a translation
of this License provided that you also include the original English version of this License.
In case of a disagreement between the translation and the original English version of this License,
the original English version will prevail.
Termination
You may not copy, modify, sublicense, or distribute the Document except as expressly provided
for under this License. Any other attempt to copy, modify, sublicense or distribute the Document
is void, and will automatically terminate your rights under this License. However, parties who
have received copies, or rights, from you under this License will not have their licenses terminated
so long as such parties remain in full compliance.
Future Revisions of This License
The Free Software Foundation may publish new, revised versions of the GNU Free Documentation
License from time to time. Such new versions will be similar in spirit to the present version, but
may differ in detail to address new problems or concerns. See http://www.gnu.org/copyleft.
Each version of the License is given a distinguishing version number. If the Document specifies
that a particular numbered version of this License "or any later version" applies to it, you have the
option of following the terms and conditions either of that specified version or of any later version
that has been published (not as a draft) by the Free Software Foundation. If the Document does
not specify a version number of this License, you may choose any version ever published (not as
a draft) by the Free Software Foundation.46 Rheolef version 6.6 update 17 September 2013
*
ADDENDUM: How to use this License for your documents
To use this License in a document you have written, include a copy of the License in the document
and put the following copyright and license notices just after the title page:
Copyright c YEAR YOUR NAME. Permission is granted to copy, distribute and/or
modify this document under the terms of the GNU Free Documentation License, Version
1.1 or any later version published by the Free Software Foundation; with the
Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being
LIST, and with the Back-Cover Texts being LIST. A copy of the license is included in
the section entitled “GNU Free Documentation License”.
If you have no Invariant Sections, write “with no Invariant Sections” instead of saying which
ones are invariant. If you have no Front-Cover Texts, write “no Front-Cover Texts” instead of
“Front-Cover Texts being LIST”; likewise for Back-Cover Texts.
If your document contains nontrivial examples of program code, we recommend releasing these
examples in parallel under your choice of free software license, such as the GNU General Public
License, to permit their use in free software.Bibliography
[1] P. Castillo. Performance of discontinuous Galerkin methods for elliptic PDEs. SIAM J. Sci.
Comput., 24(2):524–547, 2002. 12
[2] B. Cockburn, B. Dong, J. Guzmán, and J. Qian. Optimal convergence of the original DG
method on special meshes for variable transport velocity. SIAM J. Numer. Anal., 48(1):133–
146, 2010. 9
[3] B. Cockburn, G. Kanschat, and D. Schötzau. A locally conservative LDG method for the
incompressible Navier-Stokes equations. Math. Comput., 74(251):1067–1095, 2005. 29
[4] B. Cockburn, G. Kanschat, D. Schötzau, and C. Schwab. Local discontinuous Galerkin
methods for the Stokes system. SIAM J. Numer. Anal., 40(1):319–343, 2002. 21
[5] D. A. di Pietro and A. Ern. Discrete functional analysis tools for discontinuous Galerkin methods
with application to the incompressible Navier-Stokes equations. Math. Comp., 79:1303–
1330, 2010. 21, 25, 29
[6] D. A. di Pietro and A. Ern. Mathematical aspects of discontinuous Galerkin methods. Springer,
2012. 7, 8, 11, 13, 14, 22, 25, 29, 33
[7] Y. Epshteyn and B. Rivière. Estimation of penalty parameters for symmetric interior penalty
Galerkin methods. J. Comput. Appl. Math., 206(2):843–872, 2007. 11
[8] J. S. Hesthaven and T. Warburton. Nodal discontinuous Galerkin methods. Algorithms, analysis
and applications. Springer, 2008. 7
[9] C. Johnson and J. Pitkäranta. An analysis of the discontinuous Galerkin method for a scalar
hyperbolic equation. Math. Comp., 46(173):1–26, 1986. 9
[10] T. E. Peterson. A note on the convergence of the discontinuous Galerkin method for a scalar
hyperbolic equation. SIAM J. Numer. Anal., 28(1):133–140, 1991. 9
[11] G. R. Richter. An optimal-order error estimate for the discontinuous galerkin method. Math.
Comput., 50(181):75–88, 1988. 9
[12] K. Shahbazi. An explicit expression for the penalty parameter of the interior penalty method.
J. Comput. Phys., 205(2):401–407, 2005. 12
[13] G. I. Taylor. On the decay of vortices in a viscous fluid. Philos. Mag., 46:671–674, 1923. 20
47List of example files
cavity_dg.icc, 33
dirichlet_dg.cc, 12
elasticity_taylor_dg.cc, 20
inertia.icc, 25
inertia_cks.icc, 29
inertia_upw.icc, 34
navier_stokes_dg.h, 31
navier_stokes_dg1.icc, 31
navier_stokes_dg2.icc, 33
navier_stokes_taylor_dg.cc, 26
navier_stokes_taylor_newton_dg.cc, 31
navier_stokes_upw_dg.h, 35
navier_stokes_upw_dg.icc, 35
neumann_dg.cc, 14
sgn.icc, 35
stokes_dirichlet_dg.icc, 22
stokes_taylor_dg.cc, 22
taylor.icc, 20
transport_dg.cc, 8
cosinusprod_error_dg.cc, 13
elasticity_taylor_error_dg.cc, 20
navier_stokes_taylor_error_dg.cc, 27
stokes_taylor_error_dg.cc, 23
taylor.icc, 23, 27
48Index
approximation
P0, 8
P1, 23
P2, 23
discontinuous, 7
benchmark
driven cavity flow, 21, 23
embankment, 19
boundary condition
Dirichlet, 11, 13, 21, 23
weakly imposed, 7, 11
broken Sobolev space H1
(Th), 11
convergence
error
versus mesh, 9, 13
form
[[u]]{{∇hv.n}}, 11, 14
[[u]]{{v}}, 8
[[u]][[v]], 8, 11, 14
internal sides of a mesh, 8
operator
average, accross sides, 8, 11
jump, accross sides, 8, 11
penalty parameter, 12
problem
Navier-Stokes, 23
Poisson, 11, 13
Stokes, 21, 23
elasticity, 19
nonlinear, 23
upstream boundary, 7
upwind scheme, 33
upwinding, 8
49
Une introduction aux (semi-)groupes d’automate
Ines Klimann
To cite this version:
Ines Klimann. Une introduction aux (semi-)groupes d’automate. Master. Une introduction
aux (semi-)groupes d’automate, MPRI, 2013, pp.21.
HAL Id: cel-01058503
https://cel.archives-ouvertes.fr/cel-01058503
Submitted on 27 Aug 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.Une introduction aux (semi-)groupes d’automate
Ines Klimann klimann@liafa.univ-paris-diderot.fr
MPRI 2012/2013 - filière “Modélisation par automates finis”
1 Introduction
Les groupes d’automate ont été introduits dans les années 1960-1970 par des mathématiciens spécialistes
de la théorie des groupes. Ils ont permis dans les années qui ont suivi de répondre à des conjectures
importantes de théorie des groupes, notamment le problème de Burnside (exemples d’automates très
simples engendrant des groupes de torsion infinis finiment engendrés, c’est-à-dire des groupes infinis
finiment engendrés dont tous les éléments sont d’ordres finis [stage proposé sur cette thématique, encadré
par Matthieu Picantin]) et le problème de Milnor (existence de groupes à croissance intermédiaire).
Les (semi-)groupes d’automate sont un objet d’étude en soi et, comme pour toute famille de (semi-)groupes,
on peut se poser des questions de décidabilité concernant les (semi-)groupes d’automate. Le but de ce
cours est d’explorer une partie de l’existant sur la décidabilité de la finitude de tels (semi-)groupes. Nous
nous centrerons en particulier sur les résultats liés à la structure de l’automate. Il existe d’autres critères
provenant de la théorie géométrique des groupes, que nous n’aborderons pas ici.
Pierre Gillibert a montré très récemment que le problème de finitude des semi-groupes d’automate est
indécidable [5], tandis que le problème de finitude des groupes sur des automates inversibles-réversibles
sur 2 lettres est décidable [7].
Il y a donc deux directions de recherche concernant la finitude des (semi-)groupes d’automates :
– trouver la frontière entre décidable et indécidable [stage proposé sur ce sujet],
– trouver des semi-algorithmes efficaces en moyenne pour tester la finitude ou l’infinitude.
Dans ce cours, nous allons nous concentrer sur le deuxième point : je donnerai des conditions nécessaires
ou suffisantes de finitude et nous verrons comment accélérer les calculs pour les semi-algorithmes existant
déjà [2, 1, 8].
Pour illustrer la difficulté de l’étude de la finitude des (semi-)groupes d’automates, regardons la figure 1 :
ce petit automate engendre un groupe d’ordre 1 494 186 269 970 473 680 896 = 264
· 3
4 ≈ 1.5 × 1021
.
1 2 3
1|3
2|2
3|1
3|1
1|3
2|2
1|2
2|3
3|1
Figure 1 – Automate de Mealy engendrant un groupe d’ordre 1 494 186 269 970 473 680 896.
12 Premiers éléments
2.1 Automates de Mealy
Soit S un ensemble fini non vide. On note TS l’ensemble des applications de S dans S et SS l’ensemble
des permutations de S.
automate Définition 1. En oubliant les états initiaux et finaux, un automate (fini, déterministe et complet) est la
donnée d’un triplet
A, Σ, δ = (δi
: A → A)i∈Σ
,
où
– l’ensemble des états A est un ensemble fini non vide,
– l’alphabet Σ est un ensemble fini non vide,
– les fonctions de transition δi sont des applicationss : δi ∈ TA.
On identifie cet automate à un élément de T
Σ
A.
automate de Définition 2. Un automate de Mealy est un quadruple
Mealy
A, Σ, δ = (δi
: A → A)i∈Σ, ρ = (ρx : Σ → Σ)x∈A
,
tel que (A, Σ, δ) et (Σ, A, ρ) sont des automates.
Les applications ρx sont les fonctions de production de l’automate.
La terminologie standard vue jusqu’à présent est transducteur lettre-à-lettre séquentiel et complet (avec
même alphabet d’entrée et de sortie).
Un automate de Mealy est identifié à un élément de T
Σ
A × T
A
Σ.
Les transitions d’un automate de Mealy sont les
x
i | ρx(i)
−−−−−→ δi(x).
Un automate de Mealy est identifié à son ensemble de transitions.
On utilise la notation graphique usuelle des automates : un graphe dont les sommets sont les états et les
arcs correspondent aux transitions de l’automate, voir figure 2.
0 1
0|0
1|1
1|0
0|1
Figure 2 – Un automate de Mealy.
2.2 (Semi-)groupe engendré par un automate de Mealy et propriétés structurelles
de certains automates
Soit A = (A, Σ, δ, ρ) un automate de Mealy. Cet automate peut être vu comme un automate à deux
bandes définissant une application de Σ
∗
vers Σ
∗
.
Plus formellement, on construit les fonctions de production étendues ρx : Σ∗ → Σ
∗
à partir des fonctions fcts prod.
étendues
2de production ρx : Σ → Σ. Pour cela, on écrit
x
u|v
−−→ y avec u = u1 · · · un et v = v1 · · · vn
pour décrire l’existence d’un chemin
x
u1|v1 −−−→ x1
u2|v2 −−−→ x2 −→ · · · −→ xn−1
un|vn −−−−→ y
dans A.
Par convention, l’image du mot vide est lui-même. L’application ρx préserve la longueur et les préfixes et
satisfait
∀u ∈ Σ, ∀v ∈ Σ
∗
, ρx(uv) = ρx(u)ρδu(x)(v) . (1)
On peut aussi définir les fonctions de production étendues ρx : Σ∗ → Σ
∗ par récurrence à l’aide de la
formule (1).
Par ailleurs, on peut aussi étendre ces fonctions sur A∗ par composition :
ρu = ρu1···un = ρun ◦ · · · ◦ ρu1
.
On peut bien entendu faire de même avec les applications δi
: A∗ → A∗
.
semi-groupe Définition 3. Le semi-groupe hAi+ engendré par A = (A, Σ, δ, ρ) est le semi-groupe des applications
engendré Σ
∗ → Σ
∗
engendré par les fonctions de production étendues ρx, x ∈ A.
Un semi-groupe est un semi-groupe d’automate s’il existe un automate qui l’engendre.
Exemple 1. L’automate de la figure 2 engendre le semi-groupe N. Soit un mot u ∈ {0, 1}
∗
. On interprète
u comme le miroir de l’écriture en base 2 d’un entier, notons u¯ cet entier. Alors : ρ0(u) = u et ρ1(u) = v,
où v¯ = ¯u + 1. L’application associée à l’état 0 est donc l’identité et l’application associée à l’état 1 est
l’incrémentation. Le semi-groupe engendré est donc isomorphe à N.
Si les fonctions de production sont des permutations de Σ, alors les fonctions de production étendues
sont des permutations de Σ
∗
. Elles sont donc inversibles et on peut envisager d’engendrer un groupe.
automate Définition 4. Un automate de Mealy est inversible si ses fonctions de production sont des permutations.
inversible Un automate inversible est identifié à un élément de T
Σ
A × S
A
Σ.
groupe Définition 5. Le groupe hAi engendré par un automate de Mealy inversible A = (A, Σ, δ, ρ) est le
engendré groupe des permutations de Σ
∗
engendré par les fonctions de production étendues ρx, x ∈ A.
Un groupe est un groupe d’automate s’il existe un automate qui l’engendre.
Exemple 2. L’automate de la figure 2 engendre le groupe Z.
automate Définition 6. Un automate de Mealy est réversible si ses fonctions de transition sont des permutations.
réversible
Un automate réversible est identifié à un élément de S
Σ
A × T
A
Σ. Le terme employé habituellement en
théorie des automates est automate à groupe.
Un automate inversible-réversible est identifié à un élément de S
Σ
A × S
A
Σ.
32.3 Opérations sur les automates et liens entre les (semi-)groupes engendrés
2.3.1 Automate inverse
Définition 7. Soit un automate de Mealy inversible A ∈ T
Σ
A × S
A
Σ. Soit A−1 = {x
−1 automate , x ∈ A} une copie
inverse disjointe de l’ensemble A des états. L’automate (de Mealy) inverse A−1 de A est défini par l’ensemble de
transitions
x
−1
j|i
−→ y
−1 ∈ A−1 ⇐⇒ x
i|j
−→ y ∈ A . (2)
La fonction de production ρx associée à l’état x de A est une bijection de Σ
∗
sur Σ
∗
, on peut donc
considérer son inverse ρ
−1
x
: Σ∗ → Σ
∗
associée à l’état x
−1 de A−1
. On a alors
hAi+ = {ρu, u ∈ A
∗
}, hAi = {ρu, u ∈ (A ⊔ A
−1
)
∗
} .
A noter qu’on peut toujours, à partir d’un automate de Mealy, considérer l’ensemble des transitions
inverses de ses transitions (telles que définies par (2)). On note i cette opération. Par i, on obtient toujours
un transducteur lettre-à-lettre avec même alphabet d’entrée et de sortie, mais ce n’est pas nécessairement
un automate de Mealy : c’est un automate de Mealy si et seulement l’automate de départ est inversible,
dans ce cas bien entendu : i(A) = A−1
.
automate Définition 8. Un automate de Mealy inversible est biréversible si lui et son inverse sont réversibles.
biréversible
En particulier, et de façon immédiate, un automate biréversible est inversible-réversible.
Proposition 1. Soit A un automate inversible-réversible. On a
hAi = hA−1
i = hA ⊔ A−1
i = hA ⊔ A−1
i+,
où A ⊔ A−1
est l’automate de Mealy dont l’ensemble des transitions est l’union des ensembles de
transitions de A et A−1
.
De plus, si hAi ou hAi+ est fini, on a
hAi = hAi+.
Démonstration. Le premier point découle directement des définitions.
Supposons que le semi-groupe hAi+ soit fini et soit x un de ses éléments : il existe deux entiers k et
n tels que x
k+n = x
k
. On a donc x
n = 1 dans le groupe hAi. L’inverse x
n−1 de x appartient donc au
semi-groupe hAi+ et on a égalité entre groupe et semi-groupe.
(À noter que cette démonstration est valable pour tout semi-groupe qui est sous-semi-groupe d’un groupe :
un tel semi-groupe fini est toujours un groupe.)
2.3.2 Automate dual
La définition d’un automate de Mealy introduit une symétrie forte entre l’ensemble des états et l’alphabet
de l’automate. De fait on peut inverser leurs rôles.
automate Définition 9. L’automate dual de A = (A, Σ, δ, ρ) est l’automate de Mealy d(A) dont les transitions
dual sont décrites par
i
x|y
−−→ j ∈ d(A) ⇐⇒ x
i|j
−→ y ∈ A . (3)
4Cette définition est consistante : le dual d’un automate de Mealy est bien toujours un automate de Mealy
(c’est-à-dire un transducteur lettre-à-lettre séquentiel et complet).
Un automate est réversible si et seulement si son dual est inversible.
Les propositions 2 et 3 suivantes sont complémentaires l’une de l’autre et nous donnent nos premières
propriétés liées à la finitude sur les (semi-)groupes d’automate.
Proposition 2 ([1]). Soit deux semi-groupes finis G et H. Il existe un automate de Mealy A tel que
hAi+ = G et hd(A)i+ = H.
On a un énoncé similaire sur les groupes.
Démonstration. La preuve est faite dans le cadre des groupes. Elle est similaire pour les semi-groupes.
Commençons par une preuve avec les mains pour comprendre ce qui se passe.
On construit en parallèle l’automate A qui engendre G et l’automate d(A) qui engendre H. On procède
par étape en s’assurant à chaque instant que A et d(A) sont duaux, que A est bien un automate de
Mealy inversible et bien entendu en s’assurant que A engendre G et d(A) engendre H.
Le groupe G étant fini, il est isomorphe à un sous-groupe de Sm pour un certain m. De même, le groupe
H est isomorphe à un sous-groupe de Sn pour un certain n.
A
ρg ∈ Sm g
d(A)
δh ∈ Sn h
Par dualisation on obtient :
A
ρg ∈ Sm g
i δh(i)
idH
d(A)
δh ∈ Sn h
i ρg(i)
idG
Les états de A agissent tous sur les éléments de H et de même les états de d(A) sur les éléments de G,
donc :
A
g
ρg ∈ Sm
idH
i δh(i)
idH
d(A)
h
δh ∈ Sn
idG
i ρg(i)
idG
Les états de A agissent tous sur les éléments de {1, . . . , m} et de même du côté du dual, donc :
5A
g
ρg ∈ Sm
idH
i δh(i)
id
d(A)
h
δh ∈ Sn
idG
i ρg(i)
id
Formalisons la preuve précédente.
Tout groupe fini est un sous-groupe d’un groupe de permutations. Soit Σ1 et A2 deux ensembles finis tels
que G est un sous-groupe de SΣ1
et H est un sous-groupe de SA2
. Soit A1 ⊆ SΣ1 un ensemble de
générateurs de G et Σ2 ⊆ SA2 un ensemble de générateurs de H.
On pose A = A1 × A2 et Σ = Σ1 × Σ2 et on considère l’automate de Mealy d’ensemble d’états A sur
l’alphabet Σ dont les transitions sont données par
(a, b)
(i,j)|(a(i),j)
−−−−−−−−→ (a, j(b)).
On note δ et ρ les fonctions de transition et de production correspondantes. Clairement pour (a, b) ∈
A1 × A2 et (a, b′
) ∈ A1 × A2, on a ρ(a,b) = ρ(a,b′) et on peut noter cette fonction ρa : Σ∗ → Σ
∗
. On a
alors pour tout a ∈ A1 et tout (i1, j1), . . . ,(in, jn) ∈ Σ
∗
:
ρa
(i1, j1)· · ·(in, jn)
= (a(i1), j1) (a(i2), j2) · · · (a(in), jn) .
Ainsi le groupe engendré par (ρa : Σ∗ → Σ
∗
)a∈A1
est isomorphe au groupe engendré par (a : Σ1 →
Σ1)a∈A1
, c’est-à-dire hAi = G. De la même façon hd(A)i = H.
Proposition 3 ([10, 12, 1]). Le (semi-)groupe engendré par A est fini si et seulement si le (semi-)groupe
engendré par son dual d(A) est fini.
Démonstration. La preuve est faite pour les semi-groupes, elle s’étend aux groupes directement par la
proposition 1.
Soit un automate de Mealy A = (A, Σ, δ, ρ). On suppose que le semi-groupe engendré par son dual est
fini.
Fixons un mot w ∈ A∗
, on a :
ρw(u1u2 · · · un) := ρw(u1)ρδu1
(w)(u2)ρδu1u2
(w)(u3)· · · ρδu1u2···un−1
(w)(un) ,
pour tout u1u2 · · · un ∈ Σ
∗
. La fonction de production ρw peut donc être vue comme la fonction de
production d’un transducteur lettre-à-lettre sur le graphe de Cayley de hd(A)i+ par rapport aux lettres
de Σ :
δu δui δu δui
i i|ρδu(w)(i)
Or il n’y a qu’un nombre fini de tels transducteurs, égal au nombre d’applications de hd(A)i+ vers TΣ.
On en conclut
#hAi+ ≤
#Σ(#Σ) (#hd(A)i+)
.
62.3.3 Automates étendus
Soit A un automate inversible-réversible. On a vu en proposition 1 que hAi = hA ⊔ A−1
i, c’est-à-dire
qu’on ne modifie pas le groupe engendré en considérant les états et leurs inverses.
On peut de même considérer les lettres et leurs inverses.
automate Définition 10. Soit A un automate inversible-réversible. L’automate étendu A˜ de A est son extension à
étendu l’ensemble d’états A ⊔ A−1
et à l’alphabet Σ ⊔ Σ
−1
:
A˜ = A
′ ⊔ (A
′
)
−1
où A
′ = d(d(A) ⊔ d(A)
−1
).
Le corollaire suivant est une conséquence des propositions 1 et 3.
Corollaire 1. Soit A un automate inversible-réversible. Les groupes hAi et hAi˜ sont tous deux finis ou
tous deux infinis.
À noter que ces deux groupes ne sont pas nécessairement isomorphes. Par exemple si on considère
l’automate de la figure 3, il engendre un groupe d’ordre 16 et son automate étendu engendre un groupe
d’ordre 64.
a b
0|1
2|3
0|3
2|1
1|0
3|2
1|0
3|2
Figure 3 – Automate inversible-réversible engendrant le groupe K4 ⋊ Z2 d’ordre 16.
2.3.4 Automates d’ordres supérieurs
Définition 11. Soit un automate de Mealy A = (A, Σ, δ, ρ) ∈ T
Σ
A × T
A aut. d’ordre Σ et deux entiers n, k > 0.
supérieur L’automate de Mealy
An,k =
A
n
, Σ
k
,(δx : A
n → A
n
)x∈Σk ,(ρu : Σk → Σ
k
)u∈An
(4)
est l’automate de Mealy d’ordre (n, k) associé à A.
Il s’identifie à un élément de T
Σ
k
An × T
A
n
Σk .
Dans l’équation (4), ρu : An → An est la restriction de ρu : A∗ → A∗
à An, et de même pour δx. On a
en particulier A1,1 = A.
Graphiquement, An,k est un automate dont les états sont des mots de longueur n sur A dans le semigroupe
engendré par A et les actions de ces états correspondent aux actions des éléments du semi-groupe
sur des mots de longueur k sur Σ.
Le semi-groupe engendré par l’automate d’ordre (n, 1) associé à A est un sous-semi-groupe de hAi+. Le
semi-groupe engendré par l’automate d’ordre (1, k) associé à A est isomorphe à hAi+. Le semi-groupe
engendré par l’automate d’ordre (n, k) associé à A est donc isomorphe à un sous-semi-groupe de hAi+.
L’automate An,1 est parfois noté An et appelé puissance n-ème de A.
puissance
d’un aut.
73 Problème du mot
Le premier problème de décision qu’on aborde avec les (semi-)groupes est le problème du mot : peuton
décider si deux mots représentent le même élément du (semi-)groupe ? Ce problème est en général
indécidable [11].
Ce problème est décidable dans le cadre des semi-groupes d’automate, comme montré en proposition 4,
ce qui rend le problème de finitude semi-décidable par énumération.
Lemme 1. Étant donné un automate de Mealy, on peut décider si les fonctions de production étendues
de deux de ses états sont égales.
Je ne détaille pas la preuve ici, mais il suffit de regarder la procédure de minimisation introduite en
section 4 pour s’en convaincre.
Proposition 4. Le problème du mot est décidable pour les (semi-)groupes d’automate.
Démonstration. Soit un automate de Mealy A = (A, Σ, δ, ρ). Si l’identité de Σ
∗ n’est pas une des fonctions
de production étendues des états de A, on peut ajouter un état qui boucle sur lui-même et dont la fonction
de production est l’identité de Σ. Sans perte de généralité on peut donc supposer qu’un des générateurs
du groupe est l’identité, ce qui permet de considérer le problème du mot sur des mots de même longueur.
Soit les générateurs u1, u2, . . . , un, v1, v2, . . . , vn ∈ A pour lesquels on se demande si
u1u2 · · · un
?= v1v2 · · · vn.
On se place dans l’automate puissance An : u1u2 · · · un et v1v2 · · · vn sont des états de cet automate. On
applique donc le lemme 1 pour obtenir le résultat.
Cependant, même pour de petits automates, les (semi-)groupes engendrés peuvent être grands, comme
montré dans l’introduction avec l’automate de la figure 1.
Dans la suite, on s’intéresse à des constructions permettant de décider de la finitude ou de l’infinitude
d’un (semi-)groupe engendré par automate.
4 Critère de finitude : la md-réduction
On construit ici un critère reposant sur la notion de minimisation d’un automate.
congruence Définition 12. Soit un automate de Mealy A = (A, Σ, δ, ρ). Une équivalence ≡ sur A est une congruence
pour A si
∀x, y ∈ A,
[x ≡ y] =⇒ [∀i ∈ Σ, ρx(i) = ρy(i) et δi(x) ≡ δi(y)]
.
L’équivalence de Nérode sur A est la congruence la plus fine pour A.
équivalence
de Nérode
L’équivalence de Nérode est la limite de la suite d’équivalences de plus en plus fines (≡k) définie par
∀x, y ∈ A, x ≡0 y ⇐⇒ ∀i ∈ Σ, ρx(i) = ρy(i),
∀k > 0, x ≡k+1 y ⇐⇒ x ≡k y et ∀i ∈ Σ, δi(x) ≡k δi(y).
L’ensemble des états A étant fini, cette suite est ultimement constante ; de plus, elle est constante dès que
deux termes consécutifs sont égaux. Sa limite est donc calculable.
On note [x] la classe d’équivalence d’un état x ∈ A pour l’équivalence de Nérode.
8automate Définition 13. Soit un automate de Mealy A = (A, Σ, δ, ρ) et ≡ l’équivalence de Nérode associée à A.
minimisé Le minimisé de A est l’automate de Mealy A/≡ = (A/≡, Σ,
˜δ, ρ˜), où, pour tout état x ∈ A et toute lettre
i ∈ Σ, on a :
˜δi([x]) = [δi(x)] et ρ˜[x](i) = ρx(i).
Un automate est minimal s’il est équivalent à son minimisé.
La définition est consistante avec la définition classique de minimisation sur les automates booléens : la
partition initiale a lieu ici en fonction des fonctions de production ; pour rappel, dans le cas des automates
booléens elle se fait sur le critère états finaux / états non finaux.
Proposition 5. Un automate de Mealy et son minimisé engendrent le même semi-groupe.
Démonstration. On montre par récurrence sur n que ρx et ρ˜[x] sont égaux sur Σ
n.
Laissé en exercice.
On remarque que le dual d’un minimisé n’est pas nécessairement minimal. On introduit ici une notion de
minimalité symétrique entre un automate et son dual.
Définition 14. Une paire d’automates duaux est md-réduite si chacun des deux automates de la paire est
paire / aut.
md-réduit(e)
minimal. Par extension, on dira qu’un automate est md-réduit si la paire qu’il forme avec son dual est
md-réduite.
La md-réduction d’une paire d’automates duaux consiste à réduire alternativement chacun des deux auto- md-réduction
mates jusqu’à ce que la paire soit md-réduite.
Exemple 3. Un exemple de md-réduction est donné en figure 4.
Même si elle ne le semble pas au premier abord, la md-réduction est confluente [1]. Ce fait n’est pas crucial
pour la suite, mais facilitera les tournures de phrase en nous permettant de donner la définition suivante.
Définition 15. La paire d’automates de Mealy obtenue par md-réduction d’un couple d’automates duaux
md-réduit est appelée son md-réduit.
Théorème 1 ([1]). Une paire d’automates duaux engendre des (semi-)groupes finis si et seulement si son
md-réduit engendre des (semi-)groupes finis.
Démonstration. Laissée en exercice.
On note par ailleurs que dmd(A) est un quotient de A. Donc si le groupe engendré par A est fini, celui
engendré par dmd(A) est plus petit.
Le théorème 1 n’est pas en lui-même un critère de finitude puisqu’il faut savoir si le md-réduit obtenu
engendre des groupes finis. Néanmoins il peut être efficacement combiné à d’autres critères de finitude.
On déduit de ce théorème une condition suffisante de finitude effective donnée par le corollaire 2, en
remarquant que l’automate trivial engendre le groupe trivial.
Corollaire 2 ([1]). Si la md-réduction d’une paire d’automates de Mealy duaux aboutit à une paire d’automates
triviaux, les automates de départ engendrent des (semi-)groupes finis.
La démonstration de la proposition 6 ci-dessous est une application directe de ce critère.
Il existe des paires md-réduites non triviales d’automates duaux qui engendrent des (semi-)groupes finis.
Un exemple est donné en figure 5.
9a b
0|1
2|3
0|3
2|1
1|0
3|2
1|0
3|2
d
0 1
3 2
a|a
b | b
a| b
a|a
b | b
a| b
b |a
b |a
m
13 02
a|a
b | b
a| b
b |a
d
a b
02|13
02|13
13|02 13|02
m
ab
13|02
02|13
d
13 02
ab |ab
ab |ab
m
0123
ab |ab
d
ab
0123|0123
Figure 4 – La md-réduction d’une paire d’automates de Mealy duaux.
a b
1|0
0|1
1|1
0|1
Figure 5 – Automate md-réduit (non trivial) qui engendre un semi-groupe de taille 6.
5 Critère structurel de finitude : branchement limité
Antonenko [2] s’est intéressé au problème suivant : quels sont les automates de Mealy tels que pour toutes
les fonctions de production possibles, le semi-groupe engendré est fini ?
Les critères développés dans [2] reposent sur la structure de l’automate. La proposition 7 donne le résultat
général. Il est cependant plus intuitif d’étudier en premier la proposition 6.
état sans Définition 16. Dans un automate de Mealy A = (A, Σ, δ, ρ), l’état x ∈ A est sans branchement si son
branchement image par une fonction de transition ne dépend pas de la lettre lue, c’est-à-dire :
∀i, j ∈ Σ, δi(x) = δj(x).
Graphiquement cela signifie qu’une seule transition part de l’état x, étiquetée par toutes les lettres de
l’alphabet Σ.
10aut. sans Définition 17. Un automate de Mealy A = (A, Σ, δ, ρ) est sans branchement si tous ses états sont sans
branchement branchement.
On pourra alors en abusant légèrement noter δ(x) l’image d’un état x ∈ A par une des fonctions de
transition δi
.
Proposition 6 ([2]). Un automate de Mealy sans branchement engendre un (semi-)groupe fini.
Démonstration. Soit un automate de Mealy sans branchement. Tous les états de son dual sont équivalents,
le md-réduit de la paire est donc une paire d’automates triviaux et on peut conclure par le corollaire 2.
[Ce n’est pas la démonstration donnée dans [2].]
Le résultat de la proposition 6 s’étend aux automates dont aucun branchement n’est suivi d’un cycle.
aut. à branch Définition 18. Un automate de Mealy A = (A, Σ, δ, ρ) est à branchement limité si tous ses états t
limité atteignables à partir d’un cycle sont sans branchement.
Proposition 7 ([2]). Un automate de Mealy à branchement limité engendre un (semi-)groupe fini.
Démonstration. avec les mains
Quitte à dérouler un peu les cycles, on peut supposer que toutes les branches qui précèdent l’entrée dans
un cycle ont même longueur b. En s’autorisant à agrandir ces mêmes cycles (en les parcourant un certain
nombre de fois), on peut également supposer que tous les cycles ont même longueur ℓ.
On découpe alors un mot en ses b premières lettres, puis en paquets de ℓ lettres consécutives. Sur les b
premières lettres, il n’y a qu’un nombre fini d’actions possibles. Sur la suite du mot : sur chaque paquet de
ℓ lettres, il n’y a qu’un nombre fini d’actions possibles et au bout d’un moment on a forcément vu toutes
les actions qui devaient apparaître.
Formalisation laissée en exercice.
Bien entendu ce critère ne couvre pas tous les automates engendrant des (semi-)groupes finis. Par exemple,
l’automate de la figure 1 n’est pas à branchement limité et engendre un semi-groupe fini.
Ce critère est maximal dans le sens où pour tout automate qui n’est pas à branchement limité, il existe
une fonction de production telle que le groupe engendré est infini.
La démonstration se fait en traitant séparément les trois cas suivants :
(i) il existe un cycle C étiqueté uniquement par des 0 et tel qu’un des états de ce cycle branche vers un
état extérieur à C ;
(ii) il existe un cycle C étiqueté uniquement par des 0 et tel qu’un des états de ce cycle branche vers un
état de C ;
(iii) les cycles qui possèdent des états qui branchent ne sont pas uniquement étiquetés par des 0.
Montrons le cas (i) pour donner une idée :
x1
x2
x0
xn−1
xn−2
x
′
0|0
0|0
0|0
0|0
0|0
0|0
i|1 1|0
0|0
11Soit deux entiers k et ℓ tels que k + ℓ soit divisible par n. Alors ρxk
(0ℓ1v) = 0ℓ+11v
′
.
On montre que l’élément suivant du groupe engendré par l’automate est d’ordre infini :
ρ¯ = ρx1 ◦ ρx2 ◦ · · · ◦ ρxn−1 ◦ ρx0
.
En effet pour un entier k quelconque, on a
ρ¯(0kn1 · · ·) = ρx1 ◦ ρx2 ◦ · · · ◦ ρxn−1 ◦ ρx0
(0kn1 · · ·)
= ρx1 ◦ ρx2 ◦ · · · ◦ ρxn−1
(0kn+11 · · ·)
= . . .
= 0(k+1)n
1 · · ·
Donc au final :
ρ¯
k
(1ω
) = 0kn1 · · · .
6 Critère d’infinitude : graphe en hélice
Dans cette partie nous travaillons exclusivement sur des automates inversibles-réversibles. Nous introduisons
de nouvelles représentations d’automates de Mealy permettant de considérer un automate et son dual
simultanément.
graphe en Définition 19. On appelle graphe en hélice d’un automate de Mealy A = (A, Σ, δ, ρ) le graphe de
hélice sommets A × Σ et d’arcs les (x, i) → (δi(x), ρx(i)).
On remarque qu’on peut définir un graphe en hélice pour tout transducteur lettre-à-lettre ayant même
alphabet d’entrée et de sortie. Un tel transducteur est un automate de Mealy si et seulement si de tout
sommet part un unique arc.
Proposition 8. Si le groupe engendré par un automate inversible-réversible est fini, alors son graphe en
hélice est une union de cycles disjoints.
Pour montrer ce résultat, nous avons besoin d’une autre représentation d’une paire d’automates duaux.
La transition x
i | ρx(i)
−−−−−→ δi(x) est notée
i
x δi(x)
ρx(i)
.
Cette notation est appelée transition en croix. Un automate de Mealy est identifié à l’ensemble de ses transition en
croix transitions en croix (de cardinalité |A| × |Σ|).
Un chemin dans un automate de Mealy A (resp. dans son dual d(A)) peut être représenté par un
diagramme en croix horizontal (resp. vertical). On peut également considérer des diagrammes en croix diagramme
en croix rectangulaires de dimension n × k sur lesquels on peut lire les fonctions de production de l’automate
associé An,k d’ordre (n, k) et de son dual.
Par exemple, le diagramme en croix suivant :
i1 ik
x1 . . . y1
.
.
.
.
.
.
xn . . . yn
j1 jk
correspond dans An,k à
ρx1···xn
(i1 · · ·ik) = j1 · · · jk,
δi1···ik
(x1 · · · xn) = y1 · · · yn .
12Démonstration de la proposition 8. Soit A = (A, Σ, δ, ρ) un automate inversible-réversible qui engendre
un groupe fini. La proposition 3 nous permet d’affirmer que l’automate dual d(A) engendre également un
groupe fini.
Si on considère l’application qui va de l’ensemble fini des sommets d’un graphe en hélice dans lui-même
et qui à un sommet associe son unique successeur dans ce graphe, le graphe en hélice est une union de
cycles disjoints si et seulement si cette application est bijective, donc si et seulement si elle est surjective,
c’est-à-dire qu’un graphe en hélice est une union de cycles disjoints si et seulement si chaque sommet de
ce graphe possède un prédécesseur.
Soit un état x ∈ A et une lettre i ∈ Σ. Montrons que le sommet (x, i) du graphe en hélice possède un
prédécesseur. Il existe deux entiers m, n > 0 tels que ρ
m
x = ρxm = idhAi et δ
n
i = δin = idhd(A)i
. Cela
implique l’existence d’une transition x
m i
n|i
n
−−−→ x
m dans l’automate associé d’ordre (m, n). Le diagramme
en croix correspondant s’écrit :
n
i i
x . . . x
m
.
.
.
.
.
.
x . . . x
i i
.
Le coin sud-est donne un prédécesseur à (x, i).
La condition de la proposition 8 n’est pas suffisante : il existe des automates dont le graphe en hélice est
une union de cycles disjoints et dont on sait par ailleurs qu’ils engendrent un groupe infini, comme par
exemple l’automate d’Alešin donné en figure 6.
a
b
c
0|1
1|0
0|1
1|0
0|0
1|1
Figure 6 – L’automate d’Alešin engendre un groupe infini. Son graphe en hélice est un cycle.
De fait, la proposition 9 caractérise de façon très simple l’ensemble des automates inversibles-réversibles
dont le graphe en hélice est une union de cycles disjoints.
Proposition 9. Soit A un automate inversible-réversible. Les propriétés suivantes sont équivalents :
(i) A est biréversible,
(ii) didi(A) est un automate de Mealy,
(iii) le graphe en hélice de A est une union de cycles disjoints.
Démonstration.
(i) ⇒ (ii) A est biréversible, cela signifie qu’il est inversible et i(A) est réversible, ce qui entraîne que
di(A) est inversible. A nouveau, on peut donc prendre l’inverse puis le dual et on obtient que
didi(A) est un automate de Mealy.
13(ii) ⇒ (i) L’automate A étant supposé inversible-réversible, di(A) est bien un automate de Mealy.
Par ailleurs, didi(A) étant un automate de Mealy, idi(A) est également un automate de Mealy.
Comme c’est l’inverse de di(A), on en déduit que di(A) est inversible, donc i(A) réversible. Ce qui
entraîne que A est biréversible.
(ii) ⇔ (iii) Dans le graphe en hélice d’un automate de Mealy, il part exactement un arc de chaque
sommet. Le graphe en hélice d’un automate de Mealy est donc une union de cycles disjoints si et
seulement s’il arrive au plus un arc par sommet.
On définit le graphe G d’ensemble de sommets A−1 × Σ
−1
et d’arcs (y
−1
, j−1
) → (x
−1
, i−1
) si
(x, i) → (y, j) appartient au graphe en hélice H de A.
Le graphe G est le graphe en hélice de didi(A) :
– si didi(A) est un automate de Mealy, chaque sommet de G possède un successeur, donc chaque
sommet de H possède un prédecesseur et H est une union de cycles disjoints,
– si H est une union de cycles disjoints, il en est de même pour G et on déduit de la remarque
qui suit la définition 19 que didi(A) est un automate de Mealy.
On en déduit un critère d’infinitude structurel, très simple à vérifier :
Corollaire 3. Tout automate inversible-réversible qui n’est pas biréversible engendre un groupe infini.
7 Condition nécessaire et suffisante de finitude (non effective)
Dans cette partie nous travaillons exclusivement sur des automates inversibles-réversibles. Le critère pré-
senté ici n’est à ce jour pas effectif, cette section sert donc quelque peu du cadre général de ce cours,
mais les techniques utilisées dans les preuves peuvent s’avérer intéressantes dans d’autres occasions.
graphes en Définition 20. Soit un automate de Mealy A et deux entiers n, k > 0. Le graphe en hélice d’ordre (n, k)
hélice de A est le graphe en hélice de l’automate de Mealy d’ordre (n, k) associé à A.
On parle des graphes en hélice de A pour désigner l’ensemble de ses graphes en hélice d’ordre quelconque.
On peut noter que le graphe en hélice de A tel que défini à la définition 19 est le graphe en hélice
d’ordre (1, 1) de A.
Théorème 2. Le groupe engendré par un automate inversible-réversible est fini si et seulement si les
graphes en hélice de son automate étendu sont des unions de cycles disjoints uniformément bornés.
Pour montrer le théorème 2, nous allons utiliser des résultats intermédiaires.
Lemme 2. Les graphes en hélice d’un automate de Mealy sont des unions de cycles disjoints si et
seulement si son graphe en hélice d’ordre (1, 1) est une union de cycles disjoints.
La démonstration de ce lemme repose sur le même type d’argument que celle de la proposition 8 et est
laissée en exercice.
Proposition 10. Si un automate inversible-réversible engendre un groupe fini, alors les cycles des graphes
en hélices de son automate étendu sont uniformément bornés.
Démonstration. Soit A un automate inversible-réversible engendrant un groupe fini et A˜ son automate
étendu. D’après le corollaire 1, le groupe engendré par A˜ est fini et d’après le lemme 2, ses graphes en
hélices sont des unions de cycles disjoints.
D’après la proposition 3, le groupe hd(A˜)i est également fini.
14Soit C, un cycle d’un graphe en hélice de A˜ et (u, v) ∈ (A ⊔ A−1
)
∗ × (Σ ⊔ Σ
−1
)
∗ un sommet de
ce cycle. Chaque sommet de C est de la forme (h(u), g(v)), où g (resp. h) est un élément de hAi˜
(resp. hd(A˜)i). Comme les sommets sont deux à deux distincts, la longueur du cycle C est bornée par
#hAi × ˜ #hd(A˜)i.
Proposition 11. Si les cycles des graphes en hélice de l’automate étendu d’un automate inversible-réversible
sont uniformément bornés, alors le groupe engendré par cet automate est fini.
Démonstration. La démonstration de cette proposition repose sur un résultat poussé de théorie des groupes
qui permet d’affirmer qu’un groupe d’automate dont les ordres des éléments sont bornés1
est fini.
On dit qu’un mot sur les générateurs d’un groupe est unitaire s’il représente l’identité dans le groupe. mot unitaire
Le groupe hAi˜ étant infini, les ordres de ses éléments ne sont pas bornés : soit il existe un mot x ∈
(A ⊔ A−1
)
∗
tel que ρx est d’ordre infini, soit il existe une suite de mots (xn)n∈N ⊆ (A ⊔ A−1
)
∗
telle
que la suite des ordres des (ρxn
)n∈N est strictement croissante. Nous allons traiter le deuxième cas (le
premier est analogue).
On note kn l’ordre de l’élément ρxn
: pour tout k, 1 ≤ k < kn, il existe un mot uk ∈ (Σ ⊔ Σ
−1
)
∗
tel que
ρ
k
xn
(uk) = u
′
k
6= uk.
Comme hd(A˜)i est un groupe, le mot uk peut être étendu en un mot unitaire ukvk. On pose alors
wn = u1v1 · · · ukn−1vkn−1.
Par construction ρxn
(wn) = u
′
1
· · · 6= wn.
Par ailleurs u1v1 étant unitaire, on a également
ρ
2
xn
(wn) = ρ
2
xn
(u1v1)ρ
2
xn
(u2v2 · · · ukn−1vkn−1)
= ρ
2
xn
(u1v1)u
′
2
· · · 6= wn .
De la même façon, on montre que pour tout k < kn, on a ρ
k
xn
(wn) 6= wn.
Dans le graphe en hélice de A˜ d’ordre (|xn|, |wn|), on considère le cycle contenant le nœud (xn, wn). Le
mot wn étant unitaire, les successeurs de (xn, wn) dans ce cycle sont : (xn, ρxn
(wn)), (xn, ρ2
xn
(wn)),
. . . Ce cycle est donc de longueur kn. Comme (kn)n diverge vers l’infini, les longueurs des cycles des
graphes en hélice de A˜ ne sont pas uniformément bornées.
Le théorème 2 est alors un corollaire des propositions 10 et 11.
8 Accélération des semi-algorithmes existants
Cette section décrit comment la minimisation permet d’accélérer substantiellement les procédures existantes
servant à tester la finitude et à caluler la croissance ou l’ordre d’un (semi-)groupe fini [8].
Notre point de départ sont les deux paquets GAP [4] suivants : FR développé par Bartholdi [3] et automgrp
développé par Muntyan et Savchuk [9].
8.1 Croissance d’un (semi-)groupe d’automate
La croissance d’un (semi-)groupe correspond à la vitesse à laquelle celui-ci va grossir lorsqu’on compose
les éléments au fur et à mesure. Donnons une définition plus formelle. Soient un automate de Mealy
15A = (A, Σ, δ, ρ) et un mot x ∈ A∗
. La longueur de ρx, notée |ρx|, est la longueur minimale d’un mot longueur
équivalent à x :
|ρx| = min{n | ∃y ∈ A
n
, ρx = ρy} .
La fonction de croissance de l’automate A est la série formelle qui énumère les éléments du semigroupe fonction de
croissance en fonction de leur longueur :
X
g∈hAi+
t
|g| =
X
n∈N
#{g ∈ hAi+ ; |g| = n} t
n
.
On s’intéresse au calcul des termes de cette série. Les paquets FR et automgrp utilisent l’énumération ; cette
technique fonctionne pour n’importe quel (semi-)groupe dans lequel le problème du mot est résoluble : on
part des générateurs et on engendre de nouveaux éléments étape par étape, jusqu’à ne plus en obtenir. Le
fait que le groupe soit engendré par un automate ne sert qu’à apporter une solution au problème du mot.
On peut en fait utiliser complètement et en permanence la structure d’automate et la puissance de la
minimisation pour obtenir de manière globale tous les éléments de longueur n à partir des éléments de
longueur n − 1. A chaque entier n, on associe un automate de Mealy An dont les états sont exactement
les éléments de longueur au plus n :
An = m(An−1 × m(A
′
)) et A1 = m(A) ,
où A′ = A si l’identité est un générateur de A, et l’union de A et de l’automate trivial sinon.
AutomatonGrowth := function ( arg )
local aut , radius , growth , sph , curr , next , r;
aut := arg [1]; # automate de Mealy
if Length ( arg ) >1 then radius := arg [2];
else radius := infinity ;
fi;
r := 0;
curr := TrivialMealyMachine ([1]);
next := Minimized ( aut );
aut := Minimized ( next + TrivialMealyMachine ( Alphabet ( aut )));
sph := aut !. nrstates - 1; # nombre d ’ etats non triviaux
growth := [ next !. nrstates - sph ];
while sph >0 and r < radius
do Add ( growth , sph );
r := r +1;
curr := next ;
next := Minimized ( next * aut );
sph := next !. nrstates - curr !. nrstates ;
od;
return growth ;
end;
L’appel AutomatonGrowth(aut) permet de calculer la croissance du semi-groupe hauti+, tandis que l’appel
AutomatonGrowth(aut+aut^-1) calcule la croissance du groupe hauti.
Résultats expérimentaux. Nous commençons par faire tourner AutomatonGrowth et WordGrowth (paquet
FR) sur l’automate de Grigorchuk. Pour un rayon de 10, AutomatonGrowth est nettement plus rapide, 76 ms
contre 9 912 ms 2
. La raison en est simple : WordGrowth appelle la procédure de minimisation 57 577 fois
tandis que AutomatonGrowth ne l’appelle que 12 fois :
1. Il existe des groupes d’automate infinis dont les éléments sont tous d’ordre fini, par exemple le groupe engendré par l’automate
de Grigorchuk [6].
2. Programmes exécutés sur un processeur Intel Core 2 Duo 3,06 GHz.
16gap > aut := GrigorchukMachine ;; f := sgp ( aut );; radius := 10;;
gap > ProfileFunctions ([ Minimized ]);
gap > WordGrowth (f , radius ); time ;
[ 1, 4, 6, 12 , 17 , 28 , 40 , 68 , 95 , 156 , 216 ]
9912
gap > DisplayProfile ();
count self / ms chld / ms function
57577 7712 0 Minimized
7712 TOTAL
gap > ProfileFunctions ([ Minimized ]);
gap > AutomatonGrowth ( aut , radius ); time ;
[ 1, 4, 6, 12 , 17 , 28 , 40 , 68 , 95 , 156 , 216 ]
76
gap > DisplayProfile ();
count self / ms chld / ms function
12 72 0 Minimized
72 TOTAL
Comparons maintenant les temps d’exécution des diverses implémentations pour les premiers termes de
la fonction de croissance des 335 automates de Mealy biréversibles à 3 lettres et 3 états (à isomorphisme
près). Certains résultats n’apparaissent pas dans la table 1 faute d’avoir pu les obtenir en temps raisonnable.
Table 1 – Temps moyen (en ms)
rayon 1 2 3 4 5 6 7
WordGrowth – FR 3,4 29,0 555,0 8 616,5 131 091,4 2 530 170,3 ?
Growth – automgrp 0,7 2,8 16,9 158,9 1 909,0 22 952,8 ?
AutomatonGrowth 0,6 1,8 5,9 28,9 187,3 1 005,9 7 131,4
8.2 Ordre d’un (semi-)groupe
FR et automgrp implémentent des procédures de calcul de l’ordre d’un (semi-)groupe d’automate fini. Ces
deux paquets utilisent des approches tout à fait orthogonales. L’implémentation décrite ici affine l’approche
de FR and reste orthogonale à celle de automgrp.
L’implémentation de automgrp. Le paquet GAP automgrp définit la function LevelOfFaithfulAction
qui permet de calculer—parfois de façon extrêmement efficace—l’ordre du groupe engendré. Le principe
est le suivant : soient A un automate de Mealy inversible sur l’alphabet Σ et Gk le groupe engendré
par les restrictions à Σ
k des fonctions de productions étendues. Si #Gk = #Gk+1 pour un certain k,
alors hAi est fini, d’ordre #Gk. Cette fonction peut être facilement adaptée à un automate de Mealy non
inversible.
LevelOfFaithfulAction n’est pas utilisable pour calculer la fonction de croissance : à chaque étape on
calcule un quotient du semi-groupe. Mais c’est une bonne stratégie pour calculer l’ordre du semi-groupe.
De plus cette méthode profite du fait que GAP a en quelque sorte été écrit pour manipuler des permutations
de groupes finis.
L’implémentation de FR et la nouvelle implémentation. Tout algorithme qui permet de calculer la
fonction de croissance peut être utilisé pour calculer l’ordre d’un (semi-)groupe fini. Il suffit de calculer la
fonction de croissance jusqu’à trouver un coefficient nul. C’est l’approche utilisée dans FR. Comme nous
avons proposé, dans la section précédente, une nouvelle implémentation pour la fonction de croissance,
nous obtenons directement une nouvelle procédure pour calculer l’ordre. Appelons-la AutomSGrOrder.
17Résultats expérimentaux. L’orthogonalité des deux approches précédentes peut être illustrée par l’automate
de la figure 1. Ni la fonction Order de FR, ni AutomSGrOrder ne sont capables de calculer
l’ordre du groupe, alors que automgrp, via LevelOfFaithfulAction, permet d’obtenir le résultat en seulement
14 338 ms. D’un autre côté, AutomSGrOrder calcule l’ordre du semi-groupe engendré par le dual
en 17 ms, alors qu’une adaptation de LevelOfFaithfulAction (aux automates de Mealy non inversibles)
met 2 193 ms (ce semi-groupe est d’ordre 234).
8.3 Finitude
Toute procédure qui calcule l’ordre d’un (semi-)groupe d’automate produit une procédure de semi-décision
pour le problème de finitude. Les deux paquets FR and automgrp appliquent un certain nombre de critères
de finitude ou d’infinitude puis essayent en dernier recours de calculer l’ordre du groupe.
On peut saupoudrer ces procédures de minimisation : on remplace le (semi-)groupe dont on veut dé-
cider s’il est fini ou non successivement par d’autres (semi-)groupes qui sont finis si et seulement si le
(semi-)groupe d’origine l’était. Il est possible d’incorporer cette astuce pour obtenir deux nouvelles implé-
mentations, l’une dans l’esprit de FR et l’autre dans l’esprit de automgrp. Ces nouvelles implémetations
sont plus efficaces que les précédentes, de plusieurs ordres de grandeur. Les deux approches restent utiles
car selon le cas l’une ou l’autre sera la plus rapide.
Les nouvelles impleméntations La conception de la procédure IsFinite1 est consistente avec celle
de AutomatonGrowth. Ainsi IsFinite1 est beaucoup plus proche de FR que de automgrp. La version écrite
ici fonctionne en parallèle sur l’automate et son dual.
IsFinite1 := function ( aut , limit )
local radius , dual , curr1 , next1 , curr2 , next2 ;
radius := 0;
aut := MDReduced ( Prune ( aut )); # automate elague puis md - reduit
dual := DualMachine ( aut );
curr1 := MealyMachine ([[1]] ,[()]);
curr2 := curr1 ;
next1 := aut ;
next2 := dual ;
while curr2 !. nrstates <> next2 !. nrstates and radius < limit
do radius := radius + 1;
curr1 := next1 ;
next1 := Minimized ( next1 * aut );
if curr1 !. nrstates <> next1 !. nrstates
then curr2 := next2 ;
next2 := Minimized ( next2 * dual );
else return true ;
fi;
od;
if curr2 !. nrstates = next2 !. nrstates then return true ; fi;
return fail ;
end;
La procédure IsFinite2 est une amélioration de LevelOfFaithfulAction (automgrp) : la minimisation
est faite sur le dual. Cette procédure peut être améliorée en parallélisant son exécution sur l’automate et
son dual.
IsFinite2 := function ( aut , limit )
local Fonc1 , Fonc2 , next , cs , ns , lev ;
aut := MDReduced ( Prune ( aut ));
if IsInvertible ( aut ) then Fonc1 := Group ;
Fonc2 := PermList ;
18else Fonc1 := Semigroup ;
Fonc2 := Transformation ; fi;
lev := 0;
cs := 1;
ns := Order ( Fonc1 ( List ( aut !. output , Fonc2 )));
aut := DualMachine ( aut );
next := aut ;
while cs < ns and lev < limit
do
lev := lev +1;
cs := ns ;
next := Minimized ( next * aut );
ns := Order ( Fonc1 ( List ( DualMachine ( next )!. output , Fonc2 )));
od;
if cs = ns then return true ; else return fail ; fi;
end;
Table 2 – Temps moyen (en ms) pour détecter la finitude de (semi-)groupes
2 lettres 3 états 2 lettres 4 états 3 lettres 3 états
IsFinite – FR 0,68 36,36 1 342,12
IsFinite – automgrp 0,81 1,79 3,78
IsFinite1 0,49 0,52 0,61
IsFinite2 0,49 0,62 0,70
Résultats expérimentaux. La table 2 présente le temps moyen pour détecter la finitude de (semi-)groupes
engendrés par des automates de Mealy inversibles ou réversibles sur p lettres et q états, avec p+q ∈ {5, 6}.
Pour que ces comparaisons soient équitables, ce qui est donné est le temps minimal pour un automate et
son dual.
9 Cas à deux états
Si on fixe le nombre d’états et la taille de l’alphabet, le nombre d’automates de Mealy correspondant
est potentiellement très grand : il y a q
qp(p!)q
automates de Mealy inversibles à q états et p lettres. Si
on regarde à isomorphisme de structure près, il y a 76 automates de Mealy à 2 états et 2 lettres et
10 766 772 automates de Mealy à 3 états et 3 lettres. Engendrer ces automates est un défi en soi.
L’accélération des calculs permet de faire des tests systématiques sur de grandes familles d’automates. Ces
tests permettent de vérifier et/ou d’élaborer des conjectures. Voici deux conjectures établies par calculs
dans [8] :
Conjecture 1. Tout groupe fini engendré par un automate biréversible sur p lettres et q états est d’ordre
au plus #hBp,qi = p!
q
, où :
y
x
ρx = (1, 2, . . . , p)
ρy = (1, 3, . . . , p)
∀z 6∈ {x, y}, ρz = ( )
Bp,q :
Si cette conjecture se révèle vraie, la problème de finitude serait décidable pour les automates biréversibles.
Une autre conjecture (devenue depuis un résultat) obtenue par expérimentation :
19Théorème 3. Un automate de Mealy réversible à deux états engendre un semi-groupe fini ou libre.
Nous allons montrer ici une partie de ce résultat.
Analysons la structure des composantes connexes des puissances successives de l’automate de Mealy A.
Pour m > 0, u, v ∈ Am et x, y ∈ A, s’il existe un chemin de ux vers vy dans Am+1, alors il existe un
chemin de u vers v dans Am. Donc si An n’est pas connexe, il en est de même de toutes les puissances
suivantes de A. Il existe donc au plus un entier n tel que An est connexe et An+1 ne l’est pas. Appelons-le
degré de connexion de A. Par convention, si A n’est pas connexe, son degré de connexion est nul et il a degré de
connexion un degré de connexion infini si toutes ses puissances sont connexes.
On peut remarquer que l’automate Baby Aleshin (voir figure 7) est réversible, possède trois états et a un
degré de connexion égal à 2 ; il engendre le semi-groupe infini non libre Z
∗3
2 = Z2 ∗ Z2 ∗ Z2 [10]. Ainsi le
théorème 3 ne s’étend pas à des ensembles d’états plus grands.
a
b
c
0|1
1|0
0|0
1|1
0|0
1|1
Figure 7 – L’automate Baby Aleshin engendre le groupe Z
∗3
2 = Z2 ∗ Z2 ∗ Z2 [10].
Proposition 12. Le degré de connexion d’un automate de Mealy réversible à deux états est fini si et
seulement s’il engendre un semi-groupe fini.
Ce résultat se montre par une série de petits résultats.
Lemme 3. Soit un automate de Mealy réversible A ayant au moins deux états. Si A engendre un semigroupe
possédant des éléments de torsion, alors son degré de connexion est fini.
Idée. Notons A l’ensemble des états de A. Si hAi+ possède des éléments de torsion, alors il existe un
mot u ∈ A+ et deux entiers n ≥ 0 et k > 0 tels que u
n et u
n+k
sont équivalents.
On montre que les états de la composante connexe contenant u
n+2k
sont tous de la forme vw2
, où
|v| = |u|
n et |w| = |u|
k
, ce qui entraîne que A(n+2k)|u| n’est pas connexe.
Dans la suite de cette sous-section, A = (A, Σ, δ, ρ) est un automate de Mealy réversible à deux
états (A = {x, y}), de degré de connexion fini n.
Lemme 4. Soit C une composante connexe de Am, pour un certain m et soit u ∈ Am un état de C. La
composante connexe de ux est de taille #C si elle ne contient pas uy et 2#C si elle contient uy.
Démonstration. Soit D la composante connexe contenant ux : v ∈ Am appartient à C si et seulement s’il
existe z ∈ A tel que vz appartienne à D, d’où : N ≤ #D ≤ 2N.
Soient v appartenant à C et z, z¯ ∈ A, z 6= ¯z : ux et vz appartiennent à la même composante connexe si
et seulement si uy et vz¯ appartiennent à la même composante connexe. D’où le résultat.
Lemme 5. Soit un automate de Mealy réversible A, de degré de connexion n. Pour m ≥ n, les composantes
connexes de Am sont toutes de taille 2
n.
20Idée. Par récurrence sur m ≥ n.
Pour m ∈ {n, n + 1}, la propriété est vraie (en utilisant le lemme 4 pour m = n + 1).
Soit m > n + 1. On suppose que les composantes connexes de Am−1
et Am sont de taille 2
n. Si C
est une composante connexe de Am+1, le lemme 4 et l’hypothèse de récurrence permettent de conclure
que C est de taille 2
n ou 2
n+1. On montre ensuite par l’absurde que C n’est pas de taille 2
n+1, car cela
entraînerait, par le lemme 4, l’existence d’une composante connexe de Am−1 de taille 2
n−1
.
Preuve de la proposition 12. Soit A un automate de Mealy réversible à deux états.
Si le degré de connexion de A est nul, hd(A)i+ est le semi-groupe trivial et hAi+ est fini d’après la
proposition 3.
Sinon, soit n ≥ 1 le degré de connexion de A : pour un m ≥ n, les composantes connexes de Am
sont toutes de taille 2
n. A numérotation des états prêt, il ne peut donc y avoir qu’un nombre fini de
composantes connexes distinctes. On en déduit que hAi+ est fini.
La réciproque est un cas particulier du lemme 3.
Références
[1] A. Akhavi, I. Klimann, S. Lombardy, J. Mairesse, and M. Picantin. On the finiteness problem
for automaton (semi)groups. International Journal of Algebra and Computation, (accepted), 2011.
http://arxiv.org/abs/1105.4725.
[2] A. S. Antonenko. On transition functions of Mealy automata of finite growth. Matematychni Studii.,
29(1) :3–17, 2008.
[3] L. Bartholdi. FR Functionally recursive groups, Self-similar groups — a GAP package, Version 1.2.3, 2011.
[4] The GAP Group. GAP – Groups, Algorithms, and Programming, Version 4.4.12, 2008.
[5] P. Gillibert. communication personnelle, 2012.
[6] R. I. Grigorchuk. On Burnside’s problem on periodic groups. Funktsional. Anal. i Prilozhen., 14(1) :53–54,
1980.
[7] I. Klimann. The finiteness of a group generated by a 2-letter invertible-reversible Mealy automaton is
decidable. In STACS, 2013. http ://arxiv.org/abs/1208.6324.
[8] I. Klimann, J. Mairesse, and M. Picantin. Implementing computatioons in automaton (semi)groups. In
N. Moreira and R. Reis, editors, CIAA, number 7381 in LNCS, pages 240–252, 2012.
[9] Y. Muntyan and D. Savchuk. automgrp Automata Groups — a GAP package, Version 1.1.4.1, 2008.
[10] V. Nekrashevych. Self-similar groups, volume 117 of Mathematical Surveys and Monographs. American
Mathematical Society, Providence, RI, 2005.
[11] P.S. Novikov. On the algorithmic unsolvability of the word problem in group theory. Trudy Mat. Inst.
Steklov, 44 :1–143, 1955. in Russian.
[12] D. M Savchuk and Y. Vorobets. Automata generating free produtcs of groups of order 2. J. Algebra,
336(1) :53–66, 2011.
21
Le syst`eme d’information de l’entreprise
Badr Benmammar
To cite this version:
Badr Benmammar. Le syst`eme d’information de l’entreprise. Ecole d’ing´enieur. 2007. ´
HAL Id: cel-00662726
https://cel.archives-ouvertes.fr/cel-00662726
Submitted on 24 Jan 2012
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.Le système d’information
de l’entreprise
Badr Benmammar
benmamma@enst.frPlan
Introduction à l’informatique
Domaines d’application de l’informatique
L’informatique industrielle
L’informatique scientifique
L’informatique de gestion
L’informatique communicante
Internet
L’histoire d’Internet
Les services sur Internet
Protocoles et logiciels
Structure de l’ordinateur
Système d’exploitation
Le système d’information de l’entrepriseFormation
En Algérie :
USTO - ORAN
1999
Ingénieur en Informatique - Option Génie Logiciel
Mention : Très bien (Major de la promotion)
2001
Ingénieur Etude et Développement Tlemcen
1994 Tlemcen Baccalauréat Série Sciences Exactes
Mention : Bien
En France :
LaBRI
ENSEIRB
LIPN
2003
2005
2006
Attaché temporaire d’enseignement et de recherche
(demi-service)
Ingénieur de recherche
Doctorat de l’Université Bordeaux 1
Mention : Très honorable
2001
2002
LIPN Master Recherche en Intelligence Artificielle
et Optimisation Combinatoire
Post-Doc : Chargé d’études à l’ENST
2007 ENST
Le routage externe BGP4
Luc Saccavini
To cite this version:
Luc Saccavini. Le routage externe BGP4. 2006.
HAL Id: inria-00108171
https://cel.archives-ouvertes.fr/inria-00108171
Submitted on 19 Oct 2006
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.1
LE ROUTAGE BGP4(+) / septembre 2006 1/56 V2.0
LE ROUTAGE BGP4(+)
Luc.Saccavini@inria.fr
septembre 20062
LE ROUTAGE BGP4(+) / septembre 2006 2/56 V2.0
Classification des protocoles de routage
R Il existe 2 grandes familles de protocoles de routage
R Les protocoles intérieurs (IGP)
R Distance-vecteur : RIP, IGRP
R État des liens : OSPF, IS-IS
R Taille <100 routeurs, 1 autorité d’administration
R Échange de routes, granularité = routeur
R Les protocoles extérieurs (EGP)
R EGP, BGP, IDRP
R Taille = Internet, coopération d’entités indépendantes
R Échange d’informations de routage, granularité = AS
Rappel sommaire sur les types de protocoles de routage :
- distance vecteur : la distance est le nombre de routeurs pour joindre une destination, chaque routeur ne connaît
que son voisinage et propage les routes qu'il connaît à ses voisins (ex. RIP).
- états des liens : chaque routeur connaît la topologie et l'état de l'ensemble des liens du réseau, puis en déduit les
chemins optimaux. À chaque interaction les routeurs s'envoient toute leur table de routage (ex. OSPF).
Le protocole BGP peut être considéré comme à mi-chemin entre les deux types de protocoles précédents. En
effet, l’échange de chemins d’AS permet à chaque routeur de reconstruire une grande partie de la topologie du
réseau, ce qui est caractéristique des protocoles de type «état des liens», mais deux routeurs voisins n’échangent
que les routes qu’ils connaissent, ce qui est caractéristique d’un protocole de type «distance-vecteur».
Références sur les autres protocoles de routage :
IPv4 IPv6 --------------------------------------------------------------------------------------------------------------
RIP (Routing Information Protocol) RFC 2453, 11/98 «RIPv2» RFC2080, 01/97 «RIPng»
IGRP voir manuel IOS de Cisco
EIGRP voir manuel IOS de Cisco
OSPF (Open Shortest Path First) RFC 2328, 04/98 «OSPv2» RFC 2740, 12/99 «OSPv3»
IS-IS (Intermediate System to Intermediate System ISO/IEC 10589, (ou RFC1142, 02/90)
EGP (Exterior Gateway Protoco) RFC 904 04/84 --------
IDRP (Inter Domain Routing Protocol) ISO/IEC IS10747 10/93
BGP (Border Gateway Protocol) RFC 4271, 01/06 «BGP4» RFC 2545, 03/99 «BGP4+»3
LE ROUTAGE BGP4(+) / septembre 2006 3/56 V2.0
Notion de système autonome (AS)
R Ensemble de routeurs sous une même entité administrative
SYSTÈME AUTONOME
R1
R2
R4 R5
Routeurs internes
Routeur de bord
annonceur BGP
R3
Au sein d’un AS plusieurs IGP (et/ou un routage statique) peuvent être utilisés.
Fonctionnellement, on distingue 2 types de Systèmes Autonomes :
- les AS clients : ils sont les producteurs ou les consommateurs de paquets IP
- les AS de transit : ils ne font que transporter les paquets IP qui leurs sont confiés
Un AS n’est à priori pas lié à la localisation géographique des différents routeurs qui le
constituent.4
LE ROUTAGE BGP4(+) / septembre 2006 4/56 V2.0
Objectifs généraux du protocole BGP
R Échanger des routes (du trafic) entre organismes indépendants
R Opérateurs
R Gros sites mono ou multi connectés
R Implémenter la politique de routage de chaque organisme
R Respect des contrats passés entre organismes
R Sûreté de fonctionnement
R Être indépendant des IGP utilisés en interne à un organisme
R Supporter un passage à l’échelle (de l’Internet)
R Minimiser le trafic induit sur les liens
R Donner une bonne stabilité au routage
BGP élimine les boucles de routage en examinant le chemin d’AS associé à une route.
Les RFC1265 et RFC1774 contiennent une étude des propriétés de mise à l’échelle du protocole BGP.
Dans cette étude, si on appelle N le nombre total de préfixes annoncés dans l’Internet, M la distance
moyenne entre les AS (exprimée en nombre d’AS), et A le nombre total d’AS de l’Internet, alors, le
volume d’information échangé lors du premier échange entre deux voisins BGP est proportionnel à :
O(N+M*A). Le volume de mémoire nécessaire dans chaque routeur étant proportionnel à :
O((N+M*A)*K), avec K=nombre moyen de voisins BGP par routeur.
Nombre de Distance moy. Nombre moy. Nombre moy. Volume initial Volume mém.
préfixes (N) inter-AS (M) d’AS (A) de voisins (K) échangé utilisé
--------------------------------------------------------------------------------------------------------------
2100 5 59 3 9000 27000
4000 10 100 6 18000 108000
10000 15 300 10 49000 490000
20000 8 400 86000
40000 15 400 172000
100000 20 3000 20 520000 1040000
La première ligne de ce tableau correspond à la situation de début 1991, la quatrième à celle de fin
1994, la dernière au 1er semestre 2001.5
LE ROUTAGE BGP4(+) / septembre 2006 5/56 V2.0
Principes généraux du protocole BGP
R Protocole de type PATH-vecteur
R Chaque entité est identifiée par un numéro d’AS
R La granularité du routage est le Système Autonome (AS)
R Le support de la session BGP est TCP (port 179)
R Les sessions BGP sont établies entre les routeurs de bord d’AS
R Protocole point à point entre routeurs de bord d’AS
R Protocole symétrique
R (un annonceur BGP n’est pas forcément un routeur)
Le choix de TCP comme support du protocole est important car il le libère du problème de
garantir une bonne transmission des informations.
C'est ce choix qui a permis aux architectes du protocole de ne plus procéder que par mise à jour
des informations modifiées après l'envoi initial de la table complète lors de l'ouverture de la
session entre deux routeurs. Cela permet de minimiser le trafic induit.
La politique de routage se traduit par le filtrage des routes apprises et annoncées (ne jamais
oublier qu’annoncer une route vers un réseau c’est accepter du trafic à destination de ce réseau).
Le filtrage (au sens BGP) peut agir en «tout ou rien» sur la route (annonce, prise en compte), mais
aussi par modification des attributs de la route pour modifier la préférence accordée à la route
comme on le verra plus loin.6
LE ROUTAGE BGP4(+) / septembre 2006 6/56 V2.0
Exemple de connexion BGP (1)
R2
AS 200
AS 100
R1
BGP
R Client connecté à un seul Fournisseur d’Accès Internet (FAI).
Seuls les routeurs de bord de l’AS sont figurés.
Client
Session BGP
AS officiels (enregistrés) : de 1 à 64511
AS privés (non-enregistrés) : de 64512 à 65535
FAI
Lien physique
Les routeurs qui échangent leurs informations en BGP doivent être directement connectés (liaison
point à point ou LAN partagé).
C'est la conséquence logique de la frontière administrative qui les sépare et qui empêche que le
routage à travers un réseau de routeurs puisse être assuré par un IGP.
Exceptionnellement, des routeurs de bord peuvent ne pas être en vis-à-vis (ex. le routeur où arrive
le lien externe à l’AS ne connaît pas le protocole BGP).
L’utilisation de numéros d’AS privés est à éviter pour des AS terminaux (clients) car une
connexion à un deuxième AS de transit (FAI) peut conduire à une configuration illégale.
Les numéros d’AS officiels sont attribués par les mêmes organismes qui sont en charge de
distribuer les réseaux IP :
- RIPE-NCC : zone Europe
- APNIC : zone Asie et Pacifique
- ARIN : zone Amérique du Nord
- AFRINIC : zone Afrique
- LACNIC : zone Amérique Latine et îles Caraïbes
C ’est le même numéro d’AS qui est utilisé pour les échanges de préfixes IPv4 et IPv6 (car BGP
est multi-protocole)..7
LE ROUTAGE BGP4(+) / septembre 2006 7/56 V2.0
Exemple de connexion BGP (2)
R3
AS 300
R2
AS 200
BGP
BGP
R Client connecté à deux fournisseurs :
AS 100
R1
Client
FAI 1
FAI 2
R1 à deux voisins : R2 et R3
L’AS client peut choisir de faire passer tout son trafic par FAI1 (AS 200) et garder sa liaison vers
FAI2 (AS 300) en secours, ou équilibrer son trafic entre FAI1 et FAI2. C’est le cas typique qui
amène à utiliser le protocole de routage BGP pour réagir dynamiquement en cas de défaillance
d’un lien.
Dans le cas précédent, le seul intérêt d ’avoir un protocole de routage dynamique (par rapport à
une simple route par défaut) est de pouvoir avoir une alerte (en provenance de la session BGP) en
cas de défaillance du FAI.8
LE ROUTAGE BGP4(+) / septembre 2006 8/56 V2.0
Exemple de connexion BGP (3)
R3
AS 300
R2
AS 200
R4
AS 100
R1
R Client connecté à 2 fournisseurs par 2 routeurs différents :
E-BGP
E-BGP
I-BGP
FAI 2
FAI 1
BGP Externe
BGP Interne
Client
Ce schéma correspond au cas classique d'un client qui se connecte à deux fournisseurs pour
s'assurer une protection contre la défaillance de l'un d'entre eux ou de l’un de ses routeurs de bord
R1 ou R4.
On notera la présence d’une connexion BGP entre les routeurs de bord de l’AS 100. Cette
connexion BGP «interne» (notée I-BGP) est nécessaire pour maintenir la cohérence entre ces 2
routeurs qui doivent posséder les mêmes informations de routage (se souvenir qu’en BGP la
granularité du routage est l’AS).
L’un des principaux intérêts de l’I-BGP est de permettre la redondance des routeurs de bord d’un
AS.9
LE ROUTAGE BGP4(+) / septembre 2006 9/56 V2.0
Exemple de connexion BGP (4)
R3
AS 300
R2
AS 200
R Client connecté à 3 fournisseurs avec redondance sur l’un :
E-BGP
E-BGP
FAI2
FAI1
BGP Externe
BGP Interne
R7
AS 400
R8
E-BGP
E-BGP
R4
AS 100
R1
I-BGP
R6
R5
FAI3
Client
Noter le maillage complet de sessions I-BGP entre R1, R4, R6, R5 dans l’AS 100. Pour les autres
AS, les 4 routeurs de bord de l’AS 100 sont vus, du point de vue fonctionnel comme un seul
routeur (avec 4 interfaces).
Cet exemple montre aussi une des limitations d'avoir à faire un maillage complet de sessions IBGP
entre les routeurs de bord d'un même AS (nombre de sessions = N*(N+1)/2). On verra à la
fin de l'exposé qu’il existe des solutions (réflecteurs de routes) qui permettent de diminuer le
nombre de sessions I-BGP.
Sauf mention explicite, tout ce qui est exposé dans la suite concerne les sessions BGP externes.
Dans le cas de deux AS multiplement connectés comme AS400 et AS100 et si l’ensemble des
routeurs de bord des deux AS partagent un même LAN, les routeurs de bord ne sont pas
forcément des annonceurs BGP, et vice-versa.10
LE ROUTAGE BGP4(+) / septembre 2006 10/56 V2.0
Règles pour les AS multi-connectés
R Les routeurs de bord d’un même AS échangent leurs informations
de routage en I-BGP
R Les connexions en I-BGP forment un maillage complet sur les
routeurs de bord d’un AS
R Ce sont les IGP internes à l’AS qui assurent et maintiennent la
connectivité entre les routeurs de bord qui échangent des
informations de routage en I-BGP
R Le numéro d’AS est un numéro officiel (si connexions vers 2 AS
différents)
Attention, dans un même AS, c'est bien l'IGP (ou le routage statique) qui est responsable de la
connectivité interne de l'AS. Si un routeur de bord ne peut pas atteindre une route de son AS (qui
lui a été annoncée par un voisin interne par exemple), il ne la propagera pas à ses voisins BGP
(externes ou internes).11
LE ROUTAGE BGP4(+) / septembre 2006 11/56 V2.0
Les composants d’un annonceur BGP
R Une description des politiques de routage (entrée et sortie)
R Des tables où sont stockées les informations de routage
R En entrée : Adj-RIB-in (informations reçues et non traitées)
R En sortie : Adj-RIB-out (informations à annoncer)
R En interne : Loc-RIB (informations locales au routeur)
R Un automate implémentant le processus de décision
R Des sessions avec ses voisins pour échanger les informations de
routage
L’expression ‘routeur BGP’ est très souvent utilisée à la place de ‘annonceur BGP’ car il est peu
fréquent qu’un annonceur ne soit pas aussi un routeur. Le cas pouvant cependant se produire (ex.
serveurs de routes), le standard (RFC4271) utilise systématiquement l’expression ‘annonceur
BGP’.
Concernant les 3 tables où sont stockées les informations de routage, le standard ne spécifie pas
qu'elles doivent être physiquement séparées, ce qui impliquerait un gaspillage de mémoire qui est
une ressource critique sur les routeurs qui doivent connaître toutes les routes de l'Internet (environ
180 000 en septembre 2006).
La spécification de l’expression de la politique de routage dans BGP n'est pas standardisée, elle
dépend donc des implémentations du protocole. Une telle standardisation n’est suggérée que dans
RFC1786 (status Informational) pour les bases des organismes d’allocation (RIPE-NCC, ARIN,
APNIC, LACNIC, AFRINIC).12
LE ROUTAGE BGP4(+) / septembre 2006 12/56 V2.0
Schéma fonctionnel du processus BGP
Politique de
filtrage d‘annonces en entrée
Politique de
filtrage d‘annonces sortie
Adj-RIB-in Loc-RIB Adj-RIB-out
Annonceur BGP
Annonces reçues Annonces émises
Table de
routage locale
Configuration
locale routeur (+IGP)
Processus de décision
Noter la flèche à double sens entre la table Loc-RIB et le processus de décision en bas du schéma.
En effet, si c'est bien la table Loc-RIB qui permet au final de bâtir la table de routage, elle reçoit
aussi des informations sur les routes locales de l'AS à travers des directives du fichier de
configuration (annonces statiques ou redistribution des routes apprises par l'IGP dans BGP).
Ce schéma ne concerne que les annonces reçues et faites en E-BGP. En I-BGP, le schéma est plus
simple (voir fin d’exposé).
Quand l’annonceur BGP est aussi un routeur, sa table de routage locale est construite à partir des
informations de routage produites par le processus BGP, les autres protocoles de routage, et sa
configuration. S’il existe plusieurs routes vers le même réseau, une métrique nouvelle est
introduite (la ‘distance administrative’ dans l’implémentation de Cisco) pour régler le choix de la
route à installer dans la table de routage.13
LE ROUTAGE BGP4(+) / septembre 2006 13/56 V2.0
La vie du processus BGP
R Automate à 6 états, qui réagit sur 13 événements
R Il interagit avec les autres processus BGP par échange de 4 types de
messages :
R OPEN
R KEEPALIVE
R NOTIFICATION
R UPDATE
R Taille des messages de 19 à 4096 octets
R Éventuellement sécurisés par MD5
Les messages étant de longueur variable, ils sont marqués dans le flot d'octets du canal TCP par
une séquence spéciale de trois octets qui repère leur début.14
LE ROUTAGE BGP4(+) / septembre 2006 14/56 V2.0
Le message OPEN
R 1er message envoyé après l’ouverture de la session TCP
R Informe son voisin de :
R Sa version de BGP
R Son numéro d’AS
R D’un numéro identifiant le processus BGP
R Propose une valeur de temps de maintien de la session
R Valeur suggérée : 90 secondes
R Si 0 : maintien sans limite de durée
R Met le processus en attente d’un KEEPALIVE
En cas de démarrage simultané de deux sessions BGP par deux voisins, il faut choisir de ne
conserver que l'une des deux connexions. Pour cela on ne conserve que celle ouverte par le
processus de numéro identifiant le plus petit. Pour déterminer ce numéro identifiant, les
implémentations de Cisco et Zebra choisissent par défaut le plus petit numéro IP de interfaces
connues.15
LE ROUTAGE BGP4(+) / septembre 2006 15/56 V2.0
Le message KEEPALIVE
R Confirme un OPEN
R Réarme le minuteur contrôlant le temps de maintien de la session
R Si temps de maintien non égal à 0
R Est ré-émis toutes les 30 secondes (suggéré)
R Message de taille minimum (19 octets)
En cas d'absence de modification de leur table de routage, les routeurs ne s'échangent plus que des
messages KEEPALIVE toutes les 30 secondes, ce qui génère un trafic limité à environ 5bits/s au
niveau BGP.
L'implémentation BGP de Cisco porte par défaut à 60 secondes l'intervalle entre 2 messages
KEEPALIVE, celle de Zebra à 30 secondes.16
LE ROUTAGE BGP4(+) / septembre 2006 16/56 V2.0
Le message NOTIFICATION
R Ferme la session BGP
R Fournit un code et un sous code renseignants sur l’erreur
R Ferme aussi la session TCP
R Annule toutes les routes apprises par BGP
R Émis sur incidents :
R Pas de KEEPALIVE pendant 90s ()
R Message incorrect
R Problème dans le processus BGP
R ….
Le message NOTIFICATION est envoyé au moindre incident lors du déroulement du processus
BGP. Le fait de supprimer lors de son arrivée toutes les routes apprises par BGP peut provoquer
des instabilités de routage injustifiées (un incident ne veut pas forcément dire que toutes les routes
apprises précédemment sont devenues fausses).
Dans son implémentation de BGP, Cisco donne la possibilité de supprimer cette fonctionnalité,
en conservant telle quelle la table de routage en cas de réception d’un message NOTIFICATION.17
LE ROUTAGE BGP4(+) / septembre 2006 17/56 V2.0
Le message UPDATE
R Sert à échanger les informations de routage
R Routes à éliminer (éventuellement)
R Ensemble des attributs de la route
R Ensemble des réseaux accessibles (NLRI)
R Chaque réseau est défini par (préfixe, longueur)
R Envoyé uniquement si changement
R Active le processus BGP
R Modification des RIB f(Update, politique de routage, conf.)
R Émission d’un message UPDATE vers les autres voisins
C'est le message principal du protocole.
Lors du paramétrage d'un processus BGP il faut aussi faire un choix entre synchroniser ou pas les
annonces de l'IGP et les annonces BGP.18
LE ROUTAGE BGP4(+) / septembre 2006 18/56 V2.0
Le processus BGP
R L’automate à états finis du processus BGP (simplifié au chemin
principal, sans la gestion des incidents)
LIBRE EN
CONNEXION OPEN ENVOYÉ Session TCP ouverte
Envoi OPEN
Envoi KEEPALIVE
Démarrage BGP
Ouverture session
TCP
Réception OPEN
Traitement,
envoi UPDATE SESSION ÉTABLIE OPEN CONFIRMÉ Réception KEEPALIVE
Fin initialisation
Réception UPDATE
Réception
KEEPALIVE
Réception NOTIFICATION,
problème dans UPDATE, etc..
Fermeture session TCP
L’état supplémentaire non figuré (ACTIF) sur le schéma se rapporte à la phase d'initialisation de
la session BGP et concerne la gestion des incidents au niveau TCP pendant cette phase.
La liste complète des événements pouvant arriver est la suivante :
1 : Démarrage BGP
2 : Fin BGP
3 : Session TCP ouverte
4 : Session TCP fermée
5 : Ouverture session TCP échouée
6 : Erreur fatale dans session TCP
7 : Minuteur ConnectRetry expiré
8 : Minuteur Hold Time expiré
9 : Minuteur KeepAlive expiré
10 : Réception d’un message OPEN
11 : Réception d’un message KEEPALIVE
12 : Réception d’un message UPDATE
13 : Réception d’un message NOTIFICATION19
LE ROUTAGE BGP4(+) / septembre 2006 19/56 V2.0
Le message UPDATE : attributs de la route
R Classés en 4 catégories :
R Reconnus, obligatoires
R ORIGIN, AS_PATH, NEXT_HOP
R Reconnus, non-obligatoires
R LOCAL_PREF, ATOMIC_AGGREGATE
R Optionnels, annonçables (transitifs ou non)
R MULTI_EXIT_DISC (MED), AGGREGATOR
R Optionnels, non-annonçables
R WEIGHT (spécifique à Cisco)
Tout ces attributs de route concernent le cas principal qui est l’E-BGP. Un seul est spécifique de
l’I-BGP, c’est le LOCAL_PREF qui n’est annoncé qu’à l'intérieur de l'AS dans les sessions IBGP.
Pour un attribut de route, le fait d’appartenir à la catégorie «reconnu» impose au processus BGP
de savoir le traiter s’il est présent dans une annonce.
Inversement, s’il appartient à la catégorie «optionnel» un processus BGP n’est pas dans
l’obligation de savoir le prendre en compte pour le traiter.
Le caractère «transitif» d’un attribut lui donne une portée illimitée.
Le caractère «non-transitif» d’un attribut limite sa portée à l’AS (ex. LOCAL_PREF) ou à l’AS
voisin (ex. MED).20
LE ROUTAGE BGP4(+) / septembre 2006 20/56 V2.0
Les attributs de route obligatoires (1)
R ORIGIN
R Donne l’origine de la route, peut prendre 3 valeurs :
R IGP : la route est intérieure à l’AS d’origine
R EGP : la route a été apprise par le protocole EGP
R Incomplète : l’origine de la route est inconnue ou apprise par
un autre moyen (redistribution des routes statiques ou
connectées dans BGP par exemple)
On ne voit dans la pratique que les valeurs "IGP" ou "Incomplete" qui sont positionnées. (même
sur des routeurs de points d'échange qui connaissent environ 130 000 routes), le protocole EGP
n’étant plus utilisé.
Dans les implémentations de Cisco ou de Zebra, les valeurs «IGP», «EGP» ou «incomplete», sont
respectivement représentées par les lettres «i», «e» ou «?» dans les représentations des tables
d’informations de routage.
Exemple (Cisco ou Zebra) :
cs7206>sh ip bgp
BGP table version is 28403, local router ID is 194.199.17.59
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 129.88.0.0 193.54.188.1 19 0 64515 i
*> 129.88.1.250/32 193.54.188.1 19 0 64515 ?
*> 129.88.1.254/32 193.54.188.1 11 0 64515 ?
*> 129.88.3.0/24 193.54.188.1 18 0 64515 ?
*> 129.88.100.0/24 194.199.17.35 0 32768 i
*> 129.88.103.0/24 193.54.188.1 20 0 64515 ?
*> 129.88.253.0/24 193.54.188.1 20 0 64515 ?
*> 132.168.0.0 193.54.188.5 0 0 2063 i21
LE ROUTAGE BGP4(+) / septembre 2006 21/56 V2.0
Les attributs de route obligatoires (2)
R AS_PATH
R Donne la route sous forme d’une liste de segments d’AS
R Les segments sont ordonnés ou non (AS_SET)
R Chaque routeur rajoute son numéro d’AS aux AS_PATH des
routes qu’il a apprises avant de les ré-annoncer
R NEXT_HOP
R Donne l’adresse IP du prochain routeur qui devrait être utilisé
(peut éviter un rebond si plusieurs routeurs BGP sont sur un
même réseau local)
Les segments d’AS non ordonnés sont formés par un routeur qui a fait une opération d'agrégation.
Ce dernier regroupe dans cet ensemble non ordonné tous les AS associés aux routes qu'il a
agrégées. Cela permet aux autres routeurs de continuer à détecter d'éventuelles boucles
concernant ces routes.
Dans l’implémentation de Cisco, les segments d’AS dans un AS_PATH sont encadrés par des
accolades {}.22
LE ROUTAGE BGP4(+) / septembre 2006 22/56 V2.0
Exemple 1 : tables Adj-RIB-in
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
NLRI
2001:660:114:0:2::/64
ORIGIN
i
AS_PATH
200
NEXT_HOP
2001:660:114:9:1::2
NLRI
2001:660:114:0:1::/64
ORIGIN
i
AS_PATH
100
NEXT_HOP
2001:660:114:9:1::123
LE ROUTAGE BGP4(+) / septembre 2006 23/56 V2.0
Exemple 1 : configuration sur ZEBRA(*)
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2 router bgp 200
bgp router-id 0.0.0.200
neighbor 2001:660:114:9:1::1 remote-as 100
address-family ipv6 unicast
neighbor 2001:660:114:9:1::1 activate
network 2001:660:114:0:2::/64
exit-address-family
router bgp 100
bgp router-id 0.0.0.100
neighbor 2001:660:114:9:1::2 remote-as 200
address-family ipv6 unicast
neighbor 2001:660:114:9:1::2 activate
network 2001:660:114:0:1::/64
exit-address-family
(*) version 0.96a
Noter que l'annonce des réseaux internes de l'AS se fait par une directive "network" qui
positionne aussi l'attribut ORIGIN à la valeur "IGP" (cf. planche précédente).
Attention, cette directive n’a pas du tout le même sens qu’avec certains IGP (ex. OSPF), de plus
les implémentations de Cisco et Zebra diffèrent sensiblement quand à l’effet d’une directive
"network" :
Pour Cisco, cette directive ne fait que positionner l’attribut ORIGIN à IGP, mais ne force pas
l’annonce de la route concernant ce réseau en BGP. Cette annonce est conditionnée au fait que le
routeur sache bien router ce réseau. Ce comportement est normal pour un routeur, mais une
instabilité de l’IGP interne à l’AS se propage hors de l’AS et peut s’avérer pénalisant).
Pour Zebra, cette directive positionne l’attribut ORIGIN à IGP, et provoque l’annonce de la route
concernant ce réseau en BGP. Ce comportement évite les instabilité d’annonces de route, mais
peut provoquer un trafic inutile sur le lien inter-AS.
Noter aussi que la première directive neighbor (ex neighbor 2001:660:114:9:1::2
remote-as 200) identifie le voisin et le protocole IP de transport (IPv6 dans cet exemple). La
deuxième directive neighbor (ex neighbor 2001:660:114:9:1::2 activate) qui est
positionnée dans la séquence spécifique au protocole IPv6 (ex address-family ipv6
unicast) active spécifiquement des échanges d’informations de routage concernant le protocole
IPv6.24
LE ROUTAGE BGP4(+) / septembre 2006 24/56 V2.0
Exemple 2 : tables Adj-RIB-in
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
AS_PATH
100
100, 300
NLRI
2001:660:114:0:1::/64
2001:660:114:0:3::/64
ORIGIN
i
i
NEXT_HOP
2001:660:114:9:1::1
2001:660:114:9:1::1
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
AS_PATH
200
300
NLRI
2001:660:114:0:2::/64
2001:660:114:0:3::/64
ORIGIN
i
i
NEXT_HOP
2001:660:114:9:1::2
2001:660:114:9:2::325
LE ROUTAGE BGP4(+) / septembre 2006 25/56 V2.0
Exemple 2 : configuration sur ZEBRA(*)
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
router bgp 100
bgp router-id 0.0.0.100
neighbor 2001:660:114:9:1::2 remote-as 200
neighbor 2001:660:114:9:2::3 remote-as 300
address-family ipv6 unicast
neighbor 2001:660:114:9:1::2 activate
neighbor 2001:660:114:9:2::3 activate
network 2001:660:114:0:1::/64
exit-address-family
(*) version 0.96a
La configuration de R3 est symétrique de celle de R2.
L’AS 100 qui sert d’AS de transit pour les AS 200 et 300 doit synchroniser les annonces entre
BGP et l’IGP interne à l’AS. Sinon un effet de «trou noir» peut se produire.26
LE ROUTAGE BGP4(+) / septembre 2006 26/56 V2.0
2001:660:114:9:3::2
2001:660:114:9:3::3
Exemple 3 : tables Adj-RIB-in
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
AS_PATH
100
100, 300
300
300, 100
NLRI
2001:660:114:0:1::/64
2001:660:114:0:3::/64
2001:660:114:0:3::/64
2001:660:114:0:1::/64
ORIGIN
i
i
i
i
NEXT_HOP
2001:660:114:9:1::1
2001:660:114:9:1::1
2001:660:114:9:3::3
2001:660:114:9:3::3
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
AS_PATH
200
300
200, 300
300, 200
NLRI
2001:660:114:0:2::/64
2001:660:114:0:3::/64
2001:660:114:0:3::/64
2001:660:114:0:2::/64
ORIGIN
i
i
i
i
NEXT_HOP
2001:660:114:9:1::2
2001:660:114:9:2::3
2001:660:114:9:1::2
2001:660:114:9:2::3
Noter la présence de plusieurs routes pour le même réseau dans les tables des routeurs R1, R2 (et
R3 par symétrie).27
LE ROUTAGE BGP4(+) / septembre 2006 27/56 V2.0
Exemple 3 : configuration sur ZEBRA(*)
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
router bgp 200
bgp router-id 0.0.0.200
neighbor 2001:660:114:9:1::1 remote-as 100
neighbor 2001:660:114:9:3::3 remote-as 300
address-family ipv6 unicast
neighbor 2001:660:114:9:1::1 activate
neighbor 2001:660:114:9:3::3 activate
network 2001:660:114:0:2::/64
exit-address-family
2001:660:114:9:3::2
2001:660:114:9:3::3
(*) version 0.96a28
LE ROUTAGE BGP4(+) / septembre 2006 28/56 V2.0
Les attributs de route optionnels (1)
R LOCAL_PREF (non transitif, discretionary)
R Pondère la priorité donnée aux routes en interne à l’AS
R Jamais annoncé en E-BGP
R ATOMIC_AGGREGATE (transitif, discretionary)
R Indicateur d’agrégation
R Quand des routes plus précises ne sont pas annoncées
R AGGREGATOR (transitif)
R Donne l’AS qui a formé la route agrégée
R L'adresse IP du routeur qui a fait l’agrégation
L’attribut LOCAL_PREF est un puissant outil d’expression de la politique de routage à l’intérieur
d’un AS car il est pris en compte avant la longueur de l’AS_PATH dans le choix entres des routes
concurrentes.
Noter le caractère non-transitif de l’attribut de route LOCAL_PREF qui n’est donc pas transmis
hors de l’AS.29
LE ROUTAGE BGP4(+) / septembre 2006 29/56 V2.0
Les attributs de route optionnels (2)
R MULTI_EXT_DISC ou MED (non transitif)
R Permet de discriminer les différents points de connexion d’un
AS multi-connecté (plus faible valeur préférée)
R WEIGHT (non transitif, spécifique Cisco)
R Pondère localement (au routeur) la priorité des routes BGP
R COMMUNITY (transitif)
R Pour un ensemble de routeurs ayant une même propriété
RTrois valeurs reconnues
R no-export : pas annoncé aux voisins de la confédération
R no-advertise : pas annoncé aux voisins BGP
R no-export-subconfed : pas annoncé en E-BGP
Dans la version 3 de BGP, l’attribut MED était appelé Inter-AS_Metric, l’implémentation Cisco
de BGP-4 a gardé le terme de Metric pour certaines commandes manipulant le MED. Cette
implémentation permet aussi de comparer des MED d’AS différents (bgp always-compare-med
sur IOS Cisco).
On pourra aussi consulter le RFC4451 ‘BGP MULTI_EXT_DISC (MED) Considerations’ sur
l’usage et la pratique de l’attribut MED.
Pour l’attribut COMMUNITY, le standard (RFC1997) recommande de coder le numéro d’AS
dans les deux premiers octets, les 2 suivants étant laissés à disposition des administrateurs de
l’AS. Une communauté de routeurs peut s’étendre sur plusieurs AS. L’implémentation de Cisco
connaît une valeur prédéfinie égale à «internet».
L’attribut WEIGHT peut varier de 0 à 32768, les plus grandes valeurs sont préférées. Par défaut,
il prend les valeurs suivantes :
- 32768 si la route est initiée par le routeur
- 0 pour les autres routes30
LE ROUTAGE BGP4(+) / septembre 2006 30/56 V2.0
La portée de quelques attributs de route
R1
AS 100
AS 300
R3
AS 200
R2
ORIGIN
(AS_PATH)
NEXT_HOP
LOCAL_PREF
MULTI_EXT_DISC
WEIGHT
ORIGIN
(100, AS_PATH)
NEXT_HOP{R1}
MULTI_EXT_DISC
ORIGIN
(200, 100, AS_PATH)
NEXT_HOP {R2}
ORIGIN
(AS_PATH)
NEXT_HOP
LOCAL_PREF
R1’
L'attribut MED n'est pas annoncé dans l'AS du routeur de bord R1 mais à son voisin extérieur (qui
ne le propage pas).
L'attribut LOCAL_PREF n'est annoncé que dans l'AS du routeur de bord.
L'attribut NEXT_HOP est modifié par chaque traversée d’AS.
L'attribut AS_PATH est préfixé du numéro d’AS à chaque traversée d’AS.
L'attribut ORIGIN n’est jamais modifié.31
LE ROUTAGE BGP4(+) / septembre 2006 31/56 V2.0
Le processus de décision (1)
R Il est enclenché par une annonce de route
R Il se déroule en trois phases
R Calcul du degré de préférence de chaque route apprise
R Choix des meilleures routes à installer dans RIB-Loc
R Choix des routes qui vont être annoncées
R Il applique aux informations de routage un traitement basé sur
RCritères techniques : suppression boucles, optimisations, …
RCritères administratifs : application de la politique de routage de
l’AS.
Pour être prise en compte une annonce de route doit avoir son NEXT_HOP routable.
Une route interne n’est annoncée par un routeur que s’il sait la joindre.
Une route externe n’est annoncée par un routeur que s’il sait joindre le NEXT_HOP.
Une route dont l’attribut NEXT_HOP est l’adresse IP du voisin n’est pas annoncée à ce voisin
(qui la connaît déjà !).32
LE ROUTAGE BGP4(+) / septembre 2006 32/56 V2.0
Le processus de décision (2)
R Critères de choix entre 2 routes (priorités décroissantes) :
RWEIGHT (propriétaire Cisco, plus grand préféré)
RLOCAL_PREF le plus grand
RRoute initiée par le processus BGP local
RAS_PATH minimum
RORIGIN minimum (IGP -> EGP -> Incomplete)
RMULTI_EXT_DISC minimum
RRoute externe préférée à une route interne (à l’AS)
RRoute vers le plus proche voisin local (au sens de l’IGP)
RRoute vers le routeur BGP de plus petite adresse IP
L’installation d’une route dans la table de routage doit prendre en compte le fait qu’une route peut
être apprise par plusieurs protocoles de routage différents. L’implémentation de Cisco utilise la
notion de distance administrative pour cela. Le choix entre 2 routes se fait en prenant celle qui a la
distance administrative la plus faible. Les valeurs par défaut des distances administratives
associées aux origines des routes sont :
Route directement connectée 0
Route statique 1
Route apprise en E-BGP 20
Route apprise en EIGRP (interne) 90
Route apprise en IGRP 100
Route apprise en OSPF 110
Route apprise en ISIS 115
Route apprise en RIP 120
Route apprise en EGP 140
Route apprise en EIGRP (externe) 170
Route apprise en I-BGP 200
Route apprise en BGP (local) 200
Route d’origine inconnue 25533
LE ROUTAGE BGP4(+) / septembre 2006 33/56 V2.0
Différences entre E-BGP et I-BGP
R Une annonce reçue en I-BGP n’est pas ré-annoncée en I-BGP
R L’attribut LOCAL_PREF n’est annoncé qu’en I-BGP
R Seuls les voisins E-BGP doivent être directement connectés
R Les annonces I-BGP ne modifient pas l’AS_PATH
R Les annonces I-BGP ne modifient pas le NEXT_HOP
R Le MED n’est pas annoncé en I-BGP
Le traitement différent appliqué aux attributs de route suivant que le voisin BGP est externe ou interne est
résumé dans le tableau suivant :
ATTRIBUT E-BGP I-BGP
-----------------------------------------------------------------------------------------------------------------
AS_PATH =(local AS+AS_PATH) non modifié si reçu en E-BGP
NEXT_HOP =@IP annonceur non modifié
MED =métrique non annoncé
LOCAL_PREF pas annoncé annoncé
ATOMIC_AGGREGATE
AGGREGATOR
Certains minuteurs (vus plus loin) sont aussi traités différemment :
MINUTEUR E-BGP I-BGP
------------------------------------------------------------------------------------------------------------------
MinRouteAdvertisement pris en compte pas pris en compte (pour accélérer
la convergence dans l’AS)34
LE ROUTAGE BGP4(+) / septembre 2006 34/56 V2.0
L’annonce des routes internes d’un AS
R Statique
R Pas d’instabilité de routage, mais trous noirs possibles
R Exemples en IOS
R redistribute [static|connected] -> ORIGIN: Incomplete
R network -> ORIGIN: IGP
R Dynamique
R Suit au mieux l’état du réseau, nécessite du filtrage
R Exemples en IOS
R redistribute -> ORIGIN: IGP
La redistribution de routes apprises dynamiquement est difficile à contrôler. Il est nécessaire de
faire attention à ne pas faire boucler la redistribution de routes entre l’IGP et BGP (notamment la
route par défaut !).
L’annonce statique est à préférer à priori pour annoncer les routes internes de l’AS par BGP.35
LE ROUTAGE BGP4(+) / septembre 2006 35/56 V2.0
La politique de routage
R Elle peut influencer :
R Le traitement des routes reçues
R Le traitement des routes annoncées
R L'interaction avec les IGP de l’AS
R En pratique elle s’exprime par :
R Du filtrage de réseaux
R Du filtrage de routes (AS_PATH)
R De la manipulation d’attributs de routes36
LE ROUTAGE BGP4(+) / septembre 2006 36/56 V2.0
Politique de routage :
exemple de filtrage de réseaux sur ZEBRA
R Filtrage des réseaux annoncés : AS100 ne veut pas servir d’AS de
transit pour le réseau 2001:660:114:0:3::/64 de l’AS300
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
router bgp 100
bgp router-id 0.0.0.100
neighbor 2001:660:114:9:1::2 remote-as 200
[…..]
neighbor 2001:660:114:9:1::2 distribute-list 1 out
access-list 1 deny 2001:660:114:0:3::/64 le 128
access-list 1 permit ::/0 le 128
Le filtrage BGP s’appuie sur le même mécanisme des access-list qui est utilisé pour le filtrage des
paquets IP. L’application de l’access-list à une session BGP (au lieu d’une interface dans le cas de
filtrage de paquets IP) permet d’éliminer certains réseaux d’une annonce reçue (paramètre ‘in’)
ou faite (paramètre ‘out’).
Dans le cas ci-dessus, l’access-list est à appliquer à toutes les autres sessions BGP que pourrait
avoir le routeur R1.37
LE ROUTAGE BGP4(+) / septembre 2006 37/56 V2.0
Politique de routage :
exemple de filtrage de réseaux sur ZEBRA
R Filtrage des réseaux annoncés : AS100 ne veut pas servir d’AS de
transit pour le réseau 2001:660:114:0:3::/64 de l’AS300 (variante)
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
router bgp 100
bgp router-id 0.0.0.100
neighbor 2001:660:114:9:2::3 remote-as 300
[…..]
neighbor 2001:660:114:9:2::3 distribute-list 1 in
access-list 1 deny 2001:660:114:0:3::/64 le 128
access-list 1 permit ::/0 le 128
Dans cette variante, l’élimination de l’annonce du réseau 2001:660:114:0:3::/64/24 empêche bien
le transit car ce réseau ne sera pas réannoncé, mais en plus, l’AS 100 ne sera pas capable de router
ce réseau.38
LE ROUTAGE BGP4(+) / septembre 2006 38/56 V2.0
Politique de routage :
exemple de filtrage de routes sur ZEBRA
R Filtrage des AS_PATH annoncés : AS100 ne veut pas servir d’AS
de transit pour tous les réseaux internes d’AS300
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
router bgp 100
bgp router-id 0.0.0.100
neighbor 2001:660:114:9:1::2 remote-as 200
[….]
neighbor 2001:660:114:9:1::2 filter-list 1 out
ip as-path access-list 1 deny ^300$
ip as-path access-list 1 permit .*
Les AS_PATH étant des chaînes de caractères, l’identification et la localisation d’un AS ou d’un
ensemble d’AS se fait par des expressions régulières, en utilisant le sous ensemble suivant de
caractères spéciaux :
Caractère Symbole Signification
---------------------------------------------------------------------------------------------------
Point . Représente n’importe quel caractère
Astérisque * Représente 0 ou N fois le caractère précédent
Plus + Représente 1 ou N fois le caractère précédent
Interrogation ? Représente 0 ou 1 fois le caractère précédent
Circonflexe ^ Représente le début de la chaîne de caractères
Dollar $ Représente la fin de la chaîne de caractères
Souligné _ Représente l’un des 5 caractères servant à délimiter
les N° d ’AS soit: ,{}() le début ou fin de chaîne
Crochet ouvrant [ Début d’un intervalle
Crochet fermant ] Fin d’un intervalle
Tiret - Sépare les 2 caractères définissant l’intervalle
Les 3 derniers caractères spéciaux s’utilisent conjointement, par exemple l’intervalle noté [1-6]
représente un chiffre compris entre 1 et 6 inclus.39
LE ROUTAGE BGP4(+) / septembre 2006 39/56 V2.0
Politique de routage :
exemple de manipulation sur ZEBRA
R Filtrage par route map : AS100 veut privilégier la route par défaut
annoncée par AS300
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
router bgp 100
bgp router-id 0.0.0.100
neighbor 2001:660:114:9:2::3 remote-as 300
[…..]
neighbor 194.9.2.3 route MAP_300 in
neighbor 194.9.1.2 route MAP_200 in
Nota : confédération de routeurs dans AS10040
LE ROUTAGE BGP4(+) / septembre 2006 40/56 V2.0
Politique de routage :
exemple de manipulation sur ZEBRA (suite)
R Filtrage par route map : AS100 veut savoir router uniquement
2001:660:114:0:3::/64, mais sans servir d’AS de transit pour AS300
AS 300
R3
2001:660:114:0:3::/64
AS 200 R2
2001:660:114:0:2::/64
AS 100
R1
2001:660:114:0:1::/64
2001:660:114:9:1::1
2001:660:114:9:1::2
2001:660:114:9:2::1 2001:660:114:9:2::3
route map MAP_300 permit 10
match ip address 1
set LOCAL_PREF 150
route map MAP_300 permit 20
set LOCAL_PREF 100
access-list 1 permit 0.0.0.0 0.0.0.0
route map MAP_200 permit 10
match ip address 1
set LOCAL_PREF 100
route map MAP_200 permit 20
set LOCAL_PREF 15041
LE ROUTAGE BGP4(+) / septembre 2006 41/56 V2.0
Optimisations : stabilité du routage (1)
R Les routes instables sont pénalisées
RÀ chaque instabilité => X points de pénalité
RSi Pénalité > limite L1 => route supprimée
RSi Pénalité < limite L2 => route rétablie
RSi : pas de nouvelle pénalité pendant T1 => Pénalité/2
RSi Pénalité < limite L3 => on oublie tout
R Ne concerne que les annonces E-BGP42
LE ROUTAGE BGP4(+) / septembre 2006 42/56 V2.0
Optimisations : stabilité du routage (2)
R Allure du facteur de mérite associé à une route instable
Facteur de mérite (RFC2439)
0,000
0,500
1,000
1,500
2,000
2,500
3,000
3,500
4,000
4,500
5,000
0,00 0,40 0,80 1,20 1,60 2,00 2,40 2,80 3,20
Temps
Valeur
Fréquence 1/2
Fréquence 1/3
Fréquence 1/4
Fréquence 1/8
Dans l’implémentation IOS de Cisco, on a :
- Pénalité pour une instabilité (X) = 1000 points
- Limite de suppression d’une route (L1) = 2000 points
- Limite de réutilisation d’une route (L2) = 750 points
- Valeur d’oubli des informations de pénalisation (L3) = 350 points
- Demie vie de la pénalisation (T1) = 120 secondes
Cette technique de pénalisation des routes instables est justifiée et standardisée dans le RFC2439.43
LE ROUTAGE BGP4(+) / septembre 2006 43/56 V2.0
Optimisations : contrôle du trafic BGP
R On peut agir sur différents minuteurs
R MinRouteAdvertisementInterval
R MinASOriginationInterval
RLa gigue dans la fréquence des annonces
R On peut réduire le volume des informations annoncées
RNLRI agrégés
RAS_PATH condensés
MinRouteAdvertisementInterval est le temps minimum entre 2 annonces de routes vers des
voisins externes (uniquement).
MinASOriginationInterval est le temps minimum entre 2 annonces résultant d’une mise à jour des
routes internes de l’AS (en provenance de l’IGP par exemple).
Le facteur de gigue est un paramètre global au routeur. C’est un nombre aléatoire à valeur dans
l’intervalle [0,75-1] qui pondère l’ensemble des 5 minuteurs du processus BGP.
Rappel des valeurs (en secondes) des minuteurs d’un processus BGP :
Minuteur Valeur suggérée implémentation implémentation
par le RFC1771 Cisco Zebra ----------------------------------------------------------------------------------------------------
ConnectRetry 120
Hold Time 90 180 180
KeepAlive 30 60 60
MinRouteAdvertisementInterval 30 30 0
MinASOriginationInterval 1544
LE ROUTAGE BGP4(+) / septembre 2006 44/56 V2.0
Optimisation : sécurisation des échanges BGP
R Mesures natives au protocole
RSession BGP = {@IP1,numéro AS1},{@IP2,numéro AS2}
RSignature MD5 de chaque message
R Compléments : mesures standard au niveau TCP ou IP
RFiltrage du port 179
R MAIS : a toutes les vulnérabilités de TCP ou IP
RDéni de service45
LE ROUTAGE BGP4(+) / septembre 2006 45/56 V2.0
Optimisations : les réflecteurs de routes
R Permet d’éviter une croissance en N2 des sessions I-BGP
R Mais rajoute un point de panne singulier
R On met donc plusieurs réflecteurs de route par AS
R4
AS 100
R1
I-BGP
R6
R5
Schéma sans réflecteur de routes Schéma avec 2 réflecteurs de routes (R4 et R5)
R4
AS 100
R1
I-BGP
R6
R5
Introduit à titre expérimental en 1996 par le RFC1966, modifié en 2000 par le RFC2756,
actuellement défini comme standard par le RFC4456 (d’avril 2006).
Si l’on considère un AS avec N routeurs de bord, il aura un nombre de sessions I-BGP qui sera égal à
: N(N-1)/2 sans réflecteur de route. Si certains de ces routeurs de bord sont aussi réflecteurs de route,
le nombre de sessions I-BGP sera plus faible, mais pourra varier entre 2 valeurs suivant le niveau de
redondance que l’on souhaite (noter que tous les réflecteurs de route doivent être complètement
maillés en sessions I-BGP).
Ainsi le nombre de sessions I-BGP sera compris entre :
N-1 et 2N-3 avec 2 réflecteurs de route
N et 3(N-2) avec 3 réflecteurs de route
N-R + R(R-1)/2 et NR - R(R+1)/2 avec R réflecteurs de route
La fonction Fmin(N,R)=N-R + R(R-1)/2 a une valeur minimale pour R=3/2 quel que soit N. Les
valeurs entières de R qui la minimisent sont donc 1 et 2.
La fonction Fmax(N,R)=NR-R(R+1)/2 a une valeur maximale pour R=N-1/2 donc plus R est petit
plus la valeur de Fmax sera faible.
Du point de vue de la minimisation du nombre de sessions I-BGP, la valeur optimale de R est donc
égale à 2 quel que soit N, si l’on veut assurer une redondance des réflecteurs de route. Dans ce cas
on a 2N-3 sessions I-BGP.46
LE ROUTAGE BGP4(+) / septembre 2006 46/56 V2.0
Extensions : les confédérations d’AS
R Permet de réduire le nombre de sessions I-BGP
R En divisant l’AS en mini-AS (ou sous AS)
R Les routeurs de bord d’un mini-AS établissent des sessions
RI-BGP entre eux (maillage complet)
RE-BGP avec leurs voisins d’autres AS
RPseudo E-BGP avec leurs voisins d’autres minis-AS
R Vu de l’extérieur, la confédération d’AS apparaît comme un seul et
unique AS
Pour bien apparaître comme faisant partie d’un même AS vis-à-vis de l’extérieur, les routeurs de
bord de deux mini-AS différents échangent des sessions E-BGP (car leurs numéros d’AS sont
différents), mais ces sessions suivent les mêmes règles de modification des attributs de route que
les sessions I-BGP. Lors de ces sessions, les attributs NEXT_HOP, MED, et LOCAL_PREF ne
sont donc pas modifiés.
Les confédérations d’AS ont été introduites en 1996 à titre expérimental par le RFC1965, puis
standardisées en 2001 par le RFC3065.47
LE ROUTAGE BGP4(+) / septembre 2006 47/56 V2.0
Extensions : les groupements de routeurs
R Les routeurs BGP d’un groupement partagent la même politique de
routage (ex. routes maps, filtres d’annonces, …)
R Cette politique est définie sur l’un des routeurs du groupement
R Elle est propagée automatiquement sur les autres routeurs
R Un routeur du groupement peut modifier localement sa politique de
routage (mais ne la propage pas aux autres)48
LE ROUTAGE BGP4(+) / septembre 2006 48/56 V2.0
Extensions : les serveurs de route
R Sur un grand point d’échange on peut avoir :
R100 fournisseurs d’accès Internet
RPlus de 180 000 routes annoncées (en 2006)
R Ce qui pourrait impliquer :
RJusqu'à 10 000 sessions TCP !
R Solution : les serveurs de route
RRéduit le nombre de sessions (quelques unes par fournisseur
d’accès)
Introduit à titre expérimental en 1995 par le RFC1863, et classé en historique en 2005 par le
RFC4223.49
LE ROUTAGE BGP4(+) / septembre 2006 49/56 V2.0
Extensions : le routage multi-protocole (IPv6)
R Dans BGP, seuls 3 attributs de route de dépendent d’IPv4
RNLRI, NEXT_HOP, (AGGREGATOR)
R Pour rendre BGP multi-protocole, on introduit 2 attributs de route
supplémentaires
R MP_REACH_NLRI (optionnel, non-transitif)
R MP_UNREACH_NLRI (optionnel, non-transitif)
R L’attribut de route MP_REACH_NLRI contient des triplets
RAdress_family (ex. IPv4, IPv6, IPX), NEXT_HOP, NLRI
R Un message UPDATE contient MP_REACH_NLRI et les autres
attributs de route déjà vus (ORIGIN, LOCAL_PREF...)
Introduit comme standard par le RFC2858. Les seules modifications de configurations
correspondent aux format des adresses IPv6.
Exemple de configuration d’une session BGP en IPv6 sous Zebra :
router bgp 65400
bgp router-id 192.108.119.167
ipv6 bgp neighbor 2001:660:281:8::1 remote-as 1938
Exemple d’affichage des informations BGP en IPv6 sous Zebra :
bgpd# sh ipv6 bgp
BGP table version is 0, local router ID is 192.108.119.167
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Metric LocPrf Weight Path
*> ::194.182.135.0/120 0 1938 2200 1103 766 278 6435 i
2001:660:281:8::1(fe80::83fe:c80a)
*> 2001:200::/35 0 1938 2200 3425 2500 i
2001:660:281:8::1(fe80::83fe:c80a)
*> 2001:200:12a::/48 0 1938 2200 5511 3549 ?
2001:660:281:8::1(fe80::83fe:c80a)
[….]50
LE ROUTAGE BGP4(+) / septembre 2006 50/56 V2.0
Exemple de configuration BGP en IPv6 (Zebra)
router bgp 65400
bgp router-id 192.108.119.167
ipv6 bgp neighbor 2001:660:281:8::1 remote-as 1938
ipv6 bgp neighbor 2001:660:281:8::1 prefix-list filtre_nlri in
ipv6 bgp neighbor 2001:660:281:8::1 filter-list filtre_as in
!
ipv6 prefix-list filtre_nlri description Refus des annonces de son préfixe et du 2002::/16
ipv6 prefix-list filtre_nlri seq 5 deny 3ffe:305:1014::/48 le 128
ipv6 prefix-list filtre_nlri seq 10 deny 2002::/16 le 128
ipv6 prefix-list filtre_nlri seq 15 permit any
!
ip as-path access-list filtre_as deny 1938 2200 5511 *
ip as-path access-list filtre_as permit .*
Résultat sous Zebra de la configuration ci-dessus (commande ‘sh ipv6 bgp neighbors’)
BGP neighbor is 2001:660:281:8::1, remote AS 1938, external link
BGP version 4, remote router ID 131.254.200.10
BGP state = Established, up for 00:04:16
Last read 00:00:16, hold time is 180, keepalive interval is 60 seconds
Neighbor capabilities:
Route refresh: advertised and received(old and new)
[…..]
For address family: IPv6 Unicast
Community attribute sent to this neighbor
Inbound path policy configured
Incoming update prefix filter list is *filtre_nlri
Incoming update AS path filter list is *filtre_as
225 accepted prefixes
Connections established 1; dropped 0
Local host: 2001:660:281:8::2, Local port: 1190
Foreign host: 2001:660:281:8::1, Foreign port: 179
Nexthop: 192.108.119.167
Nexthop global: 2001:660:281:8::2
Nexthop local: ::
BGP connection: non shared network
Read thread: on Write thread: off51
LE ROUTAGE BGP4(+) / septembre 2006 51/56 V2.0
Extensions : le routage multicast (MBGP)
R Vu comme un cas particulier du routage multi-protocole
R Utilisation de la notion de sous famille d’adresse
R Implémentations récentes (IOS, ….)
Introduit comme standard par le RFC2858 en juin 2000.52
LE ROUTAGE BGP4(+) / septembre 2006 52/56 V2.0
Extensions : annonce de capacité
R Standardisé initialement en mai 2000 par le RFC2842 (statut PS)
R Standardisé définitivement en novembre 2002 par le RFC3392 (DS)
R Introduit un paramètre optionnel : capabilities
R Annonce les capacités fonctionnelles d’un routeur lors de l’OPEN
R Permet une mise à niveau automatique des fonctionnalités utilisées
dans cette session BGP
R Permettra des mises à niveau des implémentations de BGP non
synchrones
Exemple sous Ios/Cisco du résultat de la commande ‘sh ipv6 bgp neighbors’ :
BGP neighbor is 2001:660:281:1::1, remote AS 1938, external link
BGP version 4, remote router ID 131.254.200.10
BGP state = Established, up for 16:42:08
Last read 00:00:08, hold time is 180, keepalive interval is 60 seconds
Neighbor capabilities:
Route refresh: advertised and received
Address family IPv6 Unicast: advertised and received
Received 5601 messages, 0 notifications, 0 in queue
Sent 3785 messages, 0 notifications, 0 in queue
Route refresh request: received 0, sent 0
Minimum time between advertisement runs is 30 seconds
For address family: IPv6 Unicast
BGP table version 3272, neighbor version 3272
Index 1, Offset 0, Mask 0x2
264 accepted prefixes consume 16896 bytes
Prefix advertised 4, suppressed 0, withdrawn 053
LE ROUTAGE BGP4(+) / septembre 2006 53/56 V2.0
Bibliographie : principaux RFC sur BGP
R RFC1772 Application of the Border Gateway Protocol in the Internet. Y
Rekhter, P. Gross. 03/1995. (DS)
R RFC1773 Experience with the BGP-4 protocol. P. Traina. 03/1995. (INFO)
R RFC1774 BGP-4 Protocol Analysis. P. Traina, Editor. 03/1995. (INFO)
R RFC1997 BGP Communities Attribute. R. Chandra, P. Traina & T. Li. 06/1996.
(PS)
R RFC1998 An Application of the BGP Community Attribute in Multi-home Routing.
E. Chen & T. Bates. 06/1996. (INFO)
R RFC2042 Registering New BGP Attribute Types. B. Manning. 01/1997. (INFO)
R RFC2385 Protection of BGP Sessions via the TCP MD5 Signature Option. A.
Heffernan. 08/1998. (PS)
R RFC2439 BGP Route Flap Damping. C.Villamizar, R.Chandra, R.Govindan. 11/1998.
(PS)
R RFC2457 Definitions of Managed Objects for Extended Border Node. B. Clouston,
B. Moore. 11/1998. (PS)
R RFC2545 Use of BGP-4 Multiprotocol Extensions for IPv6 Inter-Domain Routing.
P. Marques, F. Dupont. 03/1999. (PS)
R RFC2858 Multiprotocol Extensions for BGP-4. T. Bates, Y. Rekhter, R. Chandra,
D. Katz. 06/2000. (PS)
Bref historique de l’évolution du protocole BGP (voir RFC1773)
BGP-1 : RFC1105, juin 1989
BGP-2 : RFC1163, juin 1990
La hiérarchisation des AS est supprimée (notion de liens inter-AS haut/bas/horizontaux),
introduction des attributs de routes, beaucoup de changements dans les formats des
messages.
BGP-3 : RFC1267, octobre 1991
Détection et gestion des collisions d’ouvertures de sessions BGP, introduction d ’un
identifiant de routeur, le NEXT_HOP peut être situé dans un autre AS que celui du
routeur qui fait l’annonce.
BGP-4 : RFC1771, mars 1995
Ajout des adresses CIDR, introduction des ensembles d’AS (non ordonnés) dans les
AS_PATH, et ajout des attributs de route MED (remplace INTER-AS METRIC),
LOCAL-PRFERENCE, AGGREGATOR.
BGP-4+ : RFC2283 en février 1998, RFC2545 en mars 1999, RFC2858 en juin 2000
Extensions multiprotocoles (RFC2283, remplacé par le RFC2858)
Support d’IPv6 (RFC2545)
Routage multicast
Réflecteurs de routes, RFC2796 en avril 2000
Annonces de capacités, RFC2842 en mai 2000, puis RFC3302 en novembre 2002
Confédérations d’AS RFC3065 en février 2001
Ré-écriture complète du RFC1771 par le RFC4271 en janvier 2006
BGP/MPLS, RFC4364 février 2006
Interaction entre OSPF et BGP/MPLS, RFC4577, juin 200654
LE ROUTAGE BGP4(+) / septembre 2006 54/56 V2.0
Bibliographie : principaux RFC sur BGP
R RFC2918 Route Refresh Capability for BGP-4. E. Chen, 09/2000. (PS)
R RFC3065 Autonomous System Confederations for BGP. P. Traina, D. McPherson, J.
Scudder. 02/2001. (PS)
R RFC3107 Carrying Label Information in BGP-4. Y.Rekhter, E.Rosen. 02/2001.(PS)
R RFC3345 Border Gateway Protocol (BGP) Persistent Route Oscillation Condition.
D. McPherson, V. Gill, D. Walton, A. Retana, 08/2002. (INFO)
R RFC3392 Capabilities Advertisement with BGP-4. R. Chandra, J. Scudder.
11/2002. (DS)
R RFC4271 A Border Gateway Protocol 4 (BGP-4). Y. Rekhter, T. Li., S. Hares.
01/2006. (DS)
R RFC4272 BGP Security Vulnerabilities Analysis. S. Murphy. 01/2006 (INFO)
R RFC4273 Definitions of Managed Objects for BGP-4. J. Haas, Ed., S. Hares,
Ed.. 01/2006. (PS)
R RFC4274 BGP-4 Protocol Analysis. D. Meyer, K. Patel. 01/2006. (INFO)
R RFC4276 BGP-4 Implementation Report. S. Hares, A. Retana. 01/2006. (INFO)
R RFC4364 BGP/MPLS IP Virtual Private Networks (VPNs). E. Rosen, Y. Rekhter.
02/2006. (PS)
R RFC4456 BGP Route Reflection: An Alternative to Full Mesh Internal BGP
(IBGP). T. Bates, E. Chen, R. Chandra. 04/2006. (DS)55
LE ROUTAGE BGP4(+) / septembre 2006 55/56 V2.0
Bibliographie : livres
R Le routage dans l’Internet, C. Huitema, Eyrolles, 1994
R Interconnections with bridges and routers, R, Perlman,
Addison-Wesley, 1996
R Internet Routing Architectures, B.Halabi, Cisco Press,
1997
R BGP4 Inter-Domain Routing in the Internet, J. W. Stewart
III, Addison-Wesley, 199956
LE ROUTAGE BGP4(+) / septembre 2006 56/56 V2.0
Bibliographie : Sites web
R www.rsng.net : Route Server Next generation Project
R www.merit.net : Nombreuses informations sur les points d’échange de trafic entre
opérateurs des USA.
R www.gated.org : Site de distribution du logiciel gated (payant) qui implemente la
plupart des logiciels de routage (dont BGP4)
R www.zebra.org : Site de distribution du logiciel zebra (licence GPL) qui implemente la
plupart des logiciels de routage (dont BGP4)
R www.caida.org : Propose des outils de métrologie réseau, beaucoup de données sur le
trafic.
R www.merit.edu/~ipma/ : outils de mesure de performances, beaucoup d’informations sur
les tables BGP de certains routeurs des points d’échange
R www.ep.net : Liste des points déchange
R www.ra.net : Routing Arbiter Project
R telnet://route-server.cerf.net : Accès en ligne a un routeur BGP
R http://www.cisco.com/univercd/cc/td/doc/cisintwk/ics/icsbgp4.htm : Manuel de référence
des commandes BGP sur IOS de Cisco.
R www.mcvax.org/~jhma/routing/ : nombreuses statistiques sur les tables de routage BGP
Pr´esentation de la radio cognitive
Badr Benmammar
To cite this version:
Badr Benmammar. Pr´esentation de la radio cognitive. 3`eme cycle. 2012.
HAL Id: cel-00680189
https://cel.archives-ouvertes.fr/cel-00680189v2
Submitted on 25 Mar 2012
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.Présentation de la radio
cognitive
Badr Benmammar
badr.benmammar@gmail.com2
Plan
Radio logicielle (software radio)
Radio logicielle restreinte (SDR)
Radio cognitive (RC)
Historique
Définition
Relation entre RC et SDR
Architecture
Cycle de cognition
Composantes
Fonctions
Détection du spectre (Spectrum sensing)
Gestion du spectre (Spectrum management)
Mobilité du spectre (Spectrum mobility)3
Radio logicielle (software radio)
Travaux de Joseph Mitola (1991): définir une classe de radio
reprogrammable et reconfigurable.
Définition : La radio logicielle est une radio dans laquelle les fonctions
typiques de l’interface radio généralement réalisées en matériel, telles que la
fréquence porteuse, la largeur de bande du signal, la modulation et l’accès au
réseau sont réalisés sous forme logicielle. La radio logicielle moderne intègre
également l’implantation logicielle des procédés de cryptographie, codage
correcteur d’erreur, codage source de la voix, de la vidéo ou des données.
Le concept de radio logicielle doit également être considéré comme une
manière de rendre les usagers, les fournisseurs de services et les fabricants
plus indépendants des normes. Ainsi, avec cette solution, les interfaces radio
peuvent, en principe, être adaptées aux besoins d’un service particulier pour
un usager particulier dans un environnement donné à un instant donné.4
Radio logicielle restreinte (SDR)
On distingue plusieurs niveaux d’avancement dans le domaine : la radio
logicielle est le but ultime intégrant toute les fonctionnalités en logiciel, mais
elle impose des phases intermédiaires combinant anciennes et nouvelles
techniques, on parle alors de radio logicielle restreinte (software defined
radio). Les contraintes de puissance de calcul, de consommation électrique, de
coûts, etc. imposent actuellement de passer par cette phase intermédiaire.
La radio logicielle restreinte est un système de communication radio qui
peut s’adapter à n’importe quelle bande de fréquence et recevoir n’importe
quelle modulation en utilisant le même matériel.
Les opportunités qu’offre le SDR lui permettent de résoudre des problèmes
de la gestion dynamique du spectre. Les équipements SDR peuvent
fonctionner dans des réseaux sans fil hétérogènes c’est-à-dire qu’un SDR idéal
peut s’adapter automatiquement aux nouvelles fréquences et aux nouvelles
modulations. 5
Radio cognitive
L’idée de la radio cognitive a été présentée officiellement par Joseph Mitola
III à un séminaire à KTH, l'Institut royal de technologie, en 1998, publié plus
tard dans un article de Mitola et Gerald Q. Maguire, Jr en 1999.
Mitola combine son expérience de la radio logicielle ainsi que sa passion pour
l'apprentissage automatique et l'intelligence artificielle pour mettre en place la
technologie de la radio cognitive. D’après lui : Une radio cognitive peut
connaître, percevoir et apprendre de son environnement puis agir pour
simplifier la vie de l'utilisateur.
• Le terme radio cognitive (CR) est utilisé pour décrire un système ayant la
capacité de détecter et de reconnaître son cadre d'utilisation, ceci afin de lui
permettre d’ajuster ses paramètres de fonctionnement radio de façon
dynamique et autonome et d'apprendre des résultats de ses actions et de son
cadre environnemental d'exploitation. 6
Radio cognitive
La radio cognitive est une forme de communication sans fil dans laquelle un
émetteur/récepteur peut détecter intelligemment les canaux de
communication qui sont en cours d'utilisation et ceux qui ne le sont pas, et
peut se déplacer dans les canaux inutilisés. Ceci permet d'optimiser l'utilisation
des fréquences radio disponibles (RF) du spectre tout en minimisant les
interférences avec d'autres utilisateurs.
Cette capacité permet d'adapter chaque appareil aux conditions spectrales du
moment et offre donc aux utilisateurs un accès plus souple, efficace et
complet à cette ressource. Cette approche peut améliorer considérablement le
débit des données et la portée des liaisons sans augmenter la bande passante
ni la puissance de transmissions. La radio cognitive offre également une
solution équilibrée au problème de l'encombrement du spectre en accordant
d'abord l'usage prioritaire au propriétaire du spectre, puis en permettant à
d'autres de se servir des portions inutilisées du spectre.7
Radio cognitive
Le principe de la radio cognitive, repris dans la norme IEEE 802.22, nécessite une
gestion alternative du spectre qui est la suivante : un mobile dit secondaire pourra à
tout moment accéder à des bandes de fréquence qu’il juge libre, c’est-à-dire, non
occupées par l’utilisateur dit primaire possédant une licence sur cette bande.
L’utilisateur secondaire devra les céder une fois le service terminé ou une fois qu’un
utilisateur primaire aura montré des velléités de connexion.
On entreprend actuellement de modifier la norme IEEE 802.16 (WiMAX) par le biais
de la norme IEEE 802.16h afin de prendre en charge la coexistence et la collaboration
dans le même canal. La norme IEEE 802.22, qui vise la coexistence avec les
microphones et les systèmes de télévision, présente des caractéristiques semblables.
Les deux normes mettent en application les techniques de la radio cognitive.
Un Réseau Cognitif coordonne les transmissions suivant différentes bandes de
fréquences et différentes technologies en exploitant les bandes disponibles à un instant
donné et à un endroit donné. Il a besoin d’une station de base capable de travailler sur
une large gamme de fréquences afin de reconnaître différents signaux présents dans le
réseau et se reconfigurer intelligemment.8
Relation entre RC et SDR
L’une des principales caractéristiques de la radio cognitive est la capacité
d’adaptation où les paramètres de la radio (fréquence porteuse, puissance,
modulation, bande passante) peuvent être modifiés en fonction de :
L’environnement radio
La situation
Les besoins de l’utilisateur
L’état du réseau
La géo localisation
…
La radio logicielle est capable d’offrir les fonctionnalités de flexibilité, de
reconfigurabilité et de portabilité inhérentes à l’aspect d’adaptation de la radio
cognitive. Par conséquent, cette dernière doit être mise en œuvre autour d’une
radio logicielle. En d’autres termes, la radio logicielle est une "technologie
habilitante" pour la radio cognitive.9
Relation entre RC et SDR
Chargé de l’optimisation ou du
contrôle du module SDR en se basant
sur quelques paramètres d’entrée tels
que les informations issues de la
perception sensorielle ou de
l’apprentissage de l’environnement
radio, du contexte utilisateur, et de
l’état du réseau.
Figure 1 : Relation entre la radio cognitive et la radio logicielle restreinte10
Architecture de la RC
Mitola a défini l’architecture d’une radio cognitive par un ensemble cohérent
de règles de conception par lequel un ensemble spécifique de composants
réalise une série de fonctions de produits et de services.
Figure 2 : Architecture de la radio cognitive11
Architecture de la RC
Les six composantes fonctionnelles de l’architecture d’une radio cognitive sont:
La perception sensorielle (Sensory Perception : SP) de l'utilisateur qui inclut
l'interface haptique (du toucher), acoustique, la vidéo et les fonctions de détection et
de la perception.
Les capteurs de l'environnement local (emplacement, température, accéléromètre,
etc.).
Les applications système (les services médias indépendants comme un jeu en réseau).
Les fonctions SDR (qui incluent la détection RF et les applications radio de la SDR).
Les fonctions de la cognition (pour les systèmes de contrôle, de planification,
d'apprentissage).
Les fonctions locales effectrices (synthèse de la parole, du texte, des graphiques et
des affiches multimédias). 12
Protocoles utilisés par la radio cognitive
Figure 3 : Protocoles utilisés par la radio cognitive13
Protocoles utilisés par la radio cognitive
Dans la couche physique, le RF est mis en œuvre à base de radio définie par
logiciel. Les protocoles d'adaptation de la couche MAC, réseau, transport, et
applications doivent être conscients des variations de l'environnement radio
cognitif. En particulier, les protocoles d'adaptation devraient envisager
l'activité du trafic des principaux utilisateurs, les exigences de transmission
d'utilisateurs secondaires, et les variations de qualité du canal…
Pour relier tous les modules, un contrôle radio cognitif est utilisé pour établir
des interfaces entre l'émetteur/récepteur SDR et les applications et services
sans fil. Ce module radio cognitif utilise des algorithmes intelligents pour
traiter le signal mesuré à partir de la couche physique, et de recevoir des
informations sur les conditions de transmission à partir des applications pour
contrôler les paramètres de protocole dans les différentes couches. 14
Cycle de cognition
La composante cognitive de l’architecture de la radio cognitive comprend une
organisation temporelle, des flux d'inférences et des états de contrôle.
Ce cycle synthétise cette composante de manière évidente. Les stimuli entrent
dans la radio cognitive comme des interruptions sensorielles envoyées sur le
cycle de la cognition pour une réponse. Une telle radio cognitive observe
l'environnement, s’oriente, crée des plans, décide, et puis agit.
Figure 4 : Cycle de cognition de Mitola Figure 5 : Cycle de cognition simplifié15
Cycle de cognition
Phase d’observation (détecter et percevoir)
La RC observe son environnement par l'analyse du flux de stimuli entrant. Dans la
phase d'observation, la RC associe l’emplacement, la température, le niveau de
lumière des capteurs, et ainsi de suite pour en déduire le contexte de
communication. Cette phase lie ces stimuli à des expériences antérieures pour
discerner les modèles au fil du temps. La radio cognitive rassemble les expériences
en se souvenant de tout.
Phase d’orientation
La phase d'orientation détermine l'importance d'une observation en liant à celle-ci
une série connue de stimuli. Cette phase fonctionne à l'intérieur des structures de
données qui sont analogues à la mémoire à court terme (STM), que les gens
emploient pour s’engager dans un dialogue sans forcément se souvenir de tout à la
même mesure que dans la mémoire à long terme (LTM). Le milieu naturel fournit
la redondance nécessaire pour lancer le transfert de la STM à la LTM. La
correspondance entre les stimuli courants et les expériences stockées se fait par
reconnaissance des stimuli ou par reliure.16
Cycle de cognition
Phase de planification
La plupart des stimuli sont traités avec délibérative plutôt qu’avec réactivité. Un
message entrant du réseau serait normalement traité par la génération d'un plan
(dans la phase de plan, la voie normale). Le plan devrait également inclure la phase
de raisonnement dans le temps. Généralement, les réponses réactives sont
préprogrammées ou apprises en étant dit, tandis que d'autres réactions de
délibération sont prévues.
Phase de décision
La phase de décision sélectionne un plan parmi les plans candidats. La radio peut
alerter l'utilisateur d’un message entrant ou reporter l'interruption à plus tard en
fonction des niveaux de QoI (Quality of Information) statués dans cette phase.
Phase d’action
Cette phase lance les processus sélectionnés qui utilisent les effecteurs
sélectionnés qui accèdent au monde extérieur ou aux états internes de la radio
cognitive. L'accès au monde extérieur consiste principalement à composer des
messages qui doivent être envoyés dans l'environnement en audio ou exprimés
dans différents langages appropriés. 17
Cycle de cognition
Phase d’apprentissage
L’apprentissage dépend de la perception, des observations, des décisions
et des actions. L'apprentissage initial est réalisé à travers la phase
d’observation dans laquelle toutes les perceptions sensorielles sont
continuellement comparées à l'ensemble de l'expérience antérieure pour
continuellement compter les événements et se souvenir du temps écoulé
depuis le dernier événement.
L'apprentissage peut se produire quand un nouveau modèle est créé en
réponse à une action. Par exemple, les états internes antérieurs et courants
peuvent être comparés avec les attentes pour en apprendre davantage sur
l'efficacité d'un mode de communication.18
Composantes de la radio cognitive
Les différentes composantes d'un émetteur/récepteur radio cognitive qui mettent en
œuvre ces fonctionnalités sont présentées dans la figure ci-dessous.
Figure 6 : Composante de la radio cognitive19
Composantes de la radio cognitive
Emetteur / Récepteur: un émetteur/récepteur SDR sans fil est le composant
majeur avec les fonctions du signal de transmission de données et de réception. En
outre, un récepteur sans fil est également utilisé pour observer l'activité sur le spectre
de fréquence (spectre de détection).
Les paramètres émetteur/récepteur dans le nœud de la radio cognitive peuvent
être modifiés dynamiquement comme dicté par les protocoles de couche
supérieure.
Analyseur de spectre (Spectrum analyser): L'analyseur de spectre utilise les signaux
mesurés pour analyser l'utilisation du spectre (par exemple pour détecter la signature
d'un signal provenant d'un utilisateur primaire et trouver les espaces blancs du spectre
pour les utilisateurs secondaires).
L'analyseur de spectre doit s'assurer que la transmission d'un utilisateur primaire
n'est pas perturbée si un utilisateur secondaire décide d'accéder au spectre. Dans
ce cas, diverses techniques de traitement du signal peuvent être utilisées pour
obtenir des informations sur l'utilisation du spectre.20
Composantes de la radio cognitive
Extraction de connaissances et apprentissage (Knowledge
extraction/learning): L'apprentissage et l'extraction de connaissances utilisent les
informations sur l'utilisation du spectre pour comprendre l'environnement ambiant RF
(par exemple le comportement des utilisateurs sous licence). Une base de
connaissances de l'environnement d'accès au spectre est construite et entretenue, qui
est ensuite utilisée pour optimiser et adapter les paramètres de transmission pour
atteindre l'objectif désiré sous diverses contraintes. Les algorithmes d'apprentissage
peuvent être appliqués pour l'apprentissage et l'extraction de connaissances.
Prise de décision (Decision making): Après que la connaissance de l'utilisation du
spectre soit disponible, la décision sur l'accès au spectre doit être faite. La décision
optimale dépend du milieu ambiant, elle dépend du comportement coopératif ou
compétitif des utilisateurs secondaires. Différentes techniques peuvent être utilisées
pour obtenir une solution optimale.21
Fonctions de la radio cognitive
Les principales fonctions de la radio cognitive sont les suivantes:
Détection du spectre (Spectrum sensing)
Détecter le spectre non utilisé et le partager sans interférence avec d'autres
utilisateurs. La détection des utilisateurs primaires est la façon la plus efficace pour
détecter les espaces blancs du spectre.
L'un des objectifs de la détection du spectre, en particulier pour la détection des
interférences, est d'obtenir le statut du spectre (libre /occupé), de sorte que le
spectre peut être consulté par un utilisateur secondaires en vertu de la contrainte
d'interférence. Le défi réside dans le fait de mesurer l'interférence au niveau du
récepteur primaire causée par les transmissions d'utilisateurs secondaires.
Gestion du spectre (Spectrum management)
Capter les meilleures fréquences disponibles pour répondre aux besoins de
communication des utilisateurs.
Les radios cognitives devraient décider de la meilleure bande de spectre pour
répondre aux exigences de qualité de service sur toutes les bandes de fréquences
disponibles, donc les fonctions de gestion du spectre sont nécessaires pour les
radios cognitives. Ces fonctions de gestion peuvent être classées comme suit:22
Fonctions de la radio cognitive
Analyse du spectre :
Les résultats obtenus de la détection du spectre sont analysés pour estimer la qualité
du spectre. Une des questions ici est de savoir comment mesurer la qualité du
spectre qui peut être accédée par un utilisateur secondaire.
Cette qualité peut être caractérisée par le rapport signal/bruit, la durée moyenne et
la corrélation de la disponibilité des espaces blancs du spectre. Les informations sur
cette qualité de spectre disponible à un utilisateur par radio cognitive peuvent être
imprécises et bruyantes.
Des algorithmes d’apprentissage de l’intelligence artificielle sont des techniques qui
peuvent être employées par les utilisateurs de la radio cognitive pour l'analyse du
spectre.
Décision sur le spectre :
Modèle de décision: un modèle de décision est nécessaire pour l'accès au spectre. La
complexité de ce modèle dépend des paramètres considérés lors de l'analyse du spectre.
Le modèle de décision devient plus complexe quand un utilisateur secondaire a des objectifs
multiples. Par exemple, un utilisateur secondaire peut avoir l'intention de maximiser son
rendement tout en minimisant les perturbations causées à l'usager primaire. Les méthodes
d'optimisation stochastique (le processus de décision de Markov) seront un outil intéressant
pour modéliser et résoudre le problème d’accès au spectre dans un environnement radio
cognitif.23
Fonctions de la radio cognitive
Compétition / coopération dans un environnement multi utilisateurs : Lorsque
plusieurs utilisateurs (à la fois primaires et secondaires) sont dans le système, leur préférence
va influer sur la décision du spectre d’accès. Ces utilisateurs peuvent être coopératifs ou non
coopératifs dans l'accès au spectre.
Dans un environnement non-coopératif, chaque utilisateur a son propre objectif, tandis
que dans un environnement coopératif, tous les utilisateurs peuvent collaborer pour atteindre
un seul objectif. Par exemple, plusieurs utilisateurs secondaires peuvent entrer en
compétition les uns avec les autres pour accéder au spectre radio (par exemple, O1, O2, O3,
O4 dans la figure ci-dessous) de sorte que leur débit individuel soit maximisé. Au cours de
cette concurrence entre les utilisateurs secondaires, tous veillent à ce que l’interférence causée
à l'utilisateur primaire est maintenue en dessous de la limite de température de brouillage
correspondante. La théorie des jeux est l'outil le plus approprié pour obtenir la solution
d'équilibre pour le problème du spectre dans un tel scénario.
Dans un environnement coopératif, les radios cognitives coopèrent les unes avec les
autres pour prendre une décision pour accéder au spectre et de maximiser une fonction
objectif commune en tenant compte des contraintes. Dans un tel scénario, un contrôleur
central peut coordonner le spectre de gestion. 24
Fonctions de la radio cognitive
Figure 7 : Accès au spectre Coopératif et non-coopératif 25
Fonctions de la radio cognitive
Mise en œuvre distribuée du contrôle d’accès au spectre : Dans un environnement
multi utilisateur distribué, pour un accès non-coopératif au spectre, chaque utilisateur peut
parvenir à une décision optimale de façon indépendante en observant le comportement
(historique / action) des autres utilisateurs du système. Par conséquent, un algorithme
distribué est nécessaire pour un utilisateur secondaire pour prendre la décision sur l'accès au
spectre de manière autonome.
Mobilité du spectre (Spectrum mobility)
C’est le processus qui permet à l’utilisateur de la RC de changer sa fréquence de
fonctionnement. Les réseaux radio cognitifs essayent d’utiliser le spectre de manière
dynamique en permettant à des terminaux radio de fonctionner dans la meilleure
bande de fréquence disponible, de maintenir les exigences de communication
transparentes au cours de la transition à une meilleure fréquence.
Recherche des meilleures bandes de fréquence : La RC doit garder une trace des bandes
de fréquence disponibles de sorte que si nécessaire (par exemple, un utilisateur autorisé est
détecté), il peut passer immédiatement à d'autres bandes de fréquences. Lors de la
transmission par un utilisateur secondaire, l'état de la bande de fréquences doit être respecté.
Auto-coexistence et synchronisation : Quand un utilisateur secondaire effectue un
transfert du spectre, deux questions doivent être prises en compte. Le canal cible ne doit pas
être actuellement utilisé par un autre utilisateur secondaire (l'exigence d'auto-coexistence), et
le récepteur de la liaison secondaire correspondant doit être informé de la non-intervention
du spectre (la demande de synchronisation). 26
Nos publications dans le domaine de la RC
Asma Amraoui, Fatima zohra Benidris, Badr Benmammar, Francine Krief and Fethi Tarik
Bendimerad. "Toward cognitive radio resource management based on multi-agent systems for
improvement of real-time application performance". Proceedings of the Fifth IFIP International
Conference on New Technologies, Mobility and Security (NTMS'2012). Istanbul, Turkey.7-10
May 2012.
B. Benmammar, A. Amraoui and W. Baghli. "Performance improvement of wireless link
reliability in the context of cognitive radio". IJCSNS International Journal of Computer Science
and Network Security. VOL.12 No.01, January, 2012, pp. 15-22. ISSN : 1738-7906.
A. Amraoui, W. Baghli and B. Benmammar, "Improving video conferencing application quality
for a mobile terminal through cognitive radio", Proceedings of the 14th IEEE International
Conference on Communication Technology (ICCT 2012). Chengdu, China, November 9th-11th,
2012.
A. Amraoui, W. Baghli et B. Benmammar, "Amélioration de la fiabilité du lien sans fil pour un
terminal radio cognitive mobile". Dans les actes du 12 ème Journées Doctorales en Informatique
et Réseau (JDIR'11). Belfort, France, 23-25 Novembre 2011. Pages : 1-6. 27
Publications relatives à nos travaux
Zeina Jrad, Badr Benmammar, Joseph Corréa, Francine Krief, Nader Mbarek. "A User
Assistant for QoS Negotiation in a Dynamic Environment Using Agent Technology".
Proceedings of the Second IEEE and IFIP International Conference on Wireless and Optical
Communications Networks WOCN 2005. March 6 - 8, 2005, Hyatt Regency Hotel, Dubai,
United Arab Emirates UAE, Print ISBN: 0-7803-9019-9.
B. Benmammar and F. Krief. “Resource Management for End-to-End QoS in a Mobile
Environment”. 2nd IEEE INTERNATIONAL CONFERENCE ON Wireless and Mobile
Computing, Networking and Communications (WiMob 2006). Montréal, Canada. June 19-21,
2006.
N. Samaan, B. Benmammar, F. Krief and A. Karmouch. "Prediction-based Advanced
Resource Reservation in a Mobile Environment". 18th IEEE Annual Canadian Conference on
Electrical and Computer Engineering, CCECE05, May 1-4, 2005, Saskatoon Inn, Saskatoon,
Saskatchewan Canada.28
Publications relatives à nos travaux
B. Benmammar and F. Krief. "MQoS NSLP: a mobility profile management based approach
for advance resource reservation in a mobile environment". Proceedings of the 7th IFIP
IEEE International Conference on Mobile and Wireless Communications Networks (MWCN
2005). Marrakech, Morocco. September 19-21, 2005.
Z. Jrad, F. Krief and B. Benmammar. "An Intelligent User Interface for the Dynamic
Negotiation of QoS". Proceedings of the 10th IEEE International Conference on
Telecommunications.ICT'2003. Papeete, Tahiti. February 2003, Print ISBN: 0-7803-7661-7.
B. Benmammar et F. Krief. “La Technologie Agent et les Réseaux Sans Fil”. Congrès Des
Nouvelles Architectures pour les Communications. DNAC’2003. Paris, France. Octobre 2003.
Analyse num´erique
Catherine Bolley
To cite this version:
Catherine Bolley. Analyse num´erique. Ecole d’ing´enieur. Ecole Centrale de Nantes, 2012, ´
pp.97.
HAL Id: cel-01066570
https://cel.archives-ouvertes.fr/cel-01066570
Submitted on 21 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.Catherine Bolley
Analyse numériqueÉcole Centrale de Nantes — 2012
Ce document est sous licence Creative Commons BY-NC-SA 4.0 France :
— attribution ;
— pas d’utilisation commerciale ;
— partage dans les mêmes conditions.
http://creativecommons.org/licenses/by-nc-sa/4.0/deed.frTable des matières
1 Généralités sur les matrices
1.1 Normes matricielles 9
1.2 Suites dans Kn;n 10
2 Résolution numérique de systèmes linéaires
2.1 Méthodes directes 13
2.1.1 Système triangulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.1.2 Méthodes de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.1.3 Méthode LU ou algorithme de Crout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.1.4 Méthode de Cholesky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.2 Méthodes itératives 18
2.2.1 Résultats généraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2.2 Principales méthodes itératives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3 Convergence et comparaison des méthodes itératives 21
2.3.1 Matrices à diagonale strictement dominante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.3.2 Matrices hermitiennes définies positives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3 Calcul de valeurs et vecteurs propres
3.1 Vecteurs propres d’une matrice triangulaire 23
3.2 Méthodes de la puissance itérée 24
3.2.1 Itérations simples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.2.2 Méthode d’accélération de convergence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3.2.3 Méthode de la puissance itérée inverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3 Méthodes issues de transformations matricielles 26
3.3.1 Méthode de Rutishauser ou du LU
LR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
3.3.2 Matrices réelles symétriques : méthode de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4 Interpolation polynomiale
4.1 Polynôme d’interpolation de Lagrange 31
4.1.1 Existence et unicité du polynôme d’interpolation de Lagrange . . . . . . . . . . . . . . . . . . . . . . 31
4.1.2 Erreur d’interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.1.3 Choix des points d’interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
4.2 Construction du polynôme d’interpolation 33
4.2.1 Différences divisées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.2.2 Différences finies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.3 Schéma de Hörner 35
5 Approximation de fonctions
5.1 Approximation hilbertienne 375.2 Approximation au sens des moindres carrés 38
5.2.1 Données dans L
2
w .a I b/ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5.2.2 Données dans R
n
: approximation au sens des moindres carrés discret . . . . . . . . . . . . . . . . 39
5.2.3 Convergence des approximations au sens des moindres carrés . . . . . . . . . . . . . . . . . . . . . . 39
5.3 Polynômes orthonormés 40
6 Intégration numérique
6.1 Étude générale 43
6.1.1 Formulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
6.1.2 Erreur d’intégration numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.1.3 Convergence des méthodes d’intégration numérique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2 Formules d’intégration numérique 44
6.2.1 Formules élémentaires de Newton-Côtes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
6.2.2 Méthodes d’intégration numérique composées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
6.2.3 Formules de Gauss . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
6.3 Intégration numérique en deux dimensions 48
7 Équations différentielles du premier ordre à condition initiale
7.1 Problème de Cauchy 51
7.1.1 Condition de Cauchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
7.1.2 Théorème d’existence et d’unicité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.2 Méthodes de résolution numériques à un pas 52
7.2.1 Méthode d’Euler-Cauchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
7.2.2 Étude générale des méthodes à un pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
7.3 Méthodes de résolution numérique à pas multiples 56
7.3.1 Méthodes d’Adams-Bashforth à k C 1 pas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
7.3.2 Méthodes d’Adams-Moulton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
7.3.3 Formulation générale des méthodes à pas multiples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
8 Systèmes d’équations non linéaires
8.1 Principe de résolution par itérations 61
8.2 Principales méthodes en une dimension 62
8.2.1 Méthode des approximations successives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
8.2.2 Méthode de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
8.2.3 Méthode de dichotomie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.3 Principales méthodes dans R
n 64
8.3.1 Méthode des approximations successives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.3.2 Méthode de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
8.4 Application aux racines de polynômes : méthode de Bairstow 65
8.4.1 Principe de la méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
8.4.2 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669 Exercices
A Méthode des éléments finis en dimension 1
A.1 Étude de l’erreur d’approximation 79
A.1.1 Notations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
A.1.2 Majoration de jju
uhjj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
A.1.3 Majoration de ju
uhj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
A.1.4 Majoration de ju
uhj1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
A.2 Problème approché avec intégration numérique 81
A.2.1 Majoration de jju
Quhjj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
A.2.2 Majoration de ju
Quhj0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82
A.2.3 Erreur d’intégration numérique par la méthode des trapèzes . . . . . . . . . . . . . . . . . . . . . . . 83
A.2.4 Majoration de Rh si on utilise la méthode des trapèzes . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
A.3 Tests numériques de résolution de problèmes approchés 84
B Méthode de la puissance itérée pour le calcul de valeurs propres
B.1 Itérations simples 85
B.1.1 Résultats généraux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
B.1.2 Approximation d’un vecteur propre associé à 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
B.1.3 Approximation de la valeur propre 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
B.1.4 Cas où l’itéré initial est orthogonal à l’espace propre à gauche associé à 1 . . . . . . . . . . . . . 86
B.1.5 Amélioration de la méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
B.1.6 Calcul d’autres éléments propres : méthode de déflation . . . . . . . . . . . . . . . . . . . . . . . . . . 88
B.2 Méthode d’accélération de convergence 88
B.3 Méthode de la puissance itérée inverse 89
C Prérequis d’analyse numérique
C.1 Analyse matricielle 91
C.2 Algèbre linéaire 91
C.3 Valeurs propres 92
C.4 Résolution numérique de systèmes linéaires 93
C.5 Analyse 961
Généralités sur les matrices
Notations et rappels
Dans ce document, l’ensemble K est un corps commutatif, R ou C. Kn
est l’espace vectoriel des
vecteurs (colonnes) à n lignes à coefficients dans K. Si u 2 Kn
, on notera u D .ui/iD1;:::;n où les
ui sont les coefficients de u. Kn;m est l’espace vectoriel des matrices à n lignes et m colonnes à
coefficients dans K. Si A 2 Kn;m a pour coefficients aij , on notera :
A D .aij /
i;j ; i D 1; : : : ; n; j D 1; : : : ; m (1.1)
où i désigne l’indice de ligne et j , l’indice de colonne. La matrice A
> 2 Km;n désigne la
transposée de la matrice A et ses coefficients vérifient :
a
>
ij D aj i; i D 1; : : : ; n; j D 1; : : : ; m (1.2)
La matrice A
2 Kn;m est l’adjointe de la matrice A :
A
D AN> (1.3)
Matrices carrées On s’intéresse au cas m D n et A 2 C
n;n. On note i
, i D 1; : : : ; n les n
valeurs propres dans C de A.
B Définition 1.1 — Rayon spectral. On appelle rayon spectral de A, le réel noté .A/ défini par :
.A/ D max
iD1;:::;n
ji
j (1.4)
B Définition 1.2 — Trace. La trace de la matrice A est donnée par :
tr.A/ D
Xn
iD1
ai i (1.5)
On a en particulier :
tr.A/ D
Xn
iD1
i (1.6)
B Définition 1.3 — Matrice diagonale. Une matrice carrée A 2 Kn;n est dite diagonale lorsque
aij D 0 pour i ¤ j .
CRYPTANALYSE DE RSA
Abderrahmane Nitaj
To cite this version:
Abderrahmane Nitaj. CRYPTANALYSE DE RSA. 3`eme cycle. Oujda (Maroc), 2009, pp.56.
HAL Id: cel-00420490
https://cel.archives-ouvertes.fr/cel-00420490v2
Submitted on 12 Jan 2010
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.CRYPTANALYSE DE RSA
Abderrahmane Nitaj
Laboratoire de Math´ematiques Nicolas Oresme
Universit´e de Caen, France
http://www.math.unicaen.fr/~nitaj
nitaj@math.unicaen.fr
c Version du 28 juin 2009Table des mati`eres
Contenu i
Pr´eface 1
1 Introduction au cryptosyst`eme RSA 3
1.1 Principe de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.1 Le module RSA . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1.2 Les cl´es publiques et priv´ees . . . . . . . . . . . . . . . . . . . 5
1.1.3 Envoi d’un message . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.4 D´echiffrement d’un message . . . . . . . . . . . . . . . . . . . 8
1.1.5 Signature d’un message . . . . . . . . . . . . . . . . . . . . . . 9
1.1.6 Preuve de RSA . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.2 Un exemple d’utilisation de RSA . . . . . . . . . . . . . . . . . . . . 12
1.2.1 Transformation d’un texte en nombres . . . . . . . . . . . . . 12
1.2.2 L’exemple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3 Cryptanalyses ´el´ementaires de RSA . . . . . . . . . . . . . . . . . . 15
1.3.1 Cryptanalyse de RSA connaissant ϕ(N) . . . . . . . . . . . . 15
1.3.2 Utilisation du mˆeme module et deux exposants diff´erents . . . 16
1.3.3 Utilisation de modules diff´erents pour le mˆeme message. . . . 18
1.3.4 Cryptanalyse de RSA si |p − q| < cN1/4
: M´ethode de Fermat 21
2 Cryptanalyse de RSA par les fractions continues 25
2.1 Les fractions continues . . . . . . . . . . . . . . . . . . . . . . . . . . 25
iii TABLE DES MATIERES `
2.1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.1.2 D´efinitions et propri´et´es . . . . . . . . . . . . . . . . . . . . . 26
2.2 Cryptanalyse de RSA par les fractions continues . . . . . . . . . . . . 37
2.2.1 L’attaque de Wiener . . . . . . . . . . . . . . . . . . . . . . . 38
3 Cryptanalyse de RSA par l’algorithme LLL 43
3.1 L’algorithme LLL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.1.1 Introduction aux r´eseaux . . . . . . . . . . . . . . . . . . . . . 43
3.1.2 L’algorithme LLL . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.2 Cryptanalyse de RSA par la r´eduction des r´eseaux . . . . . . . . . . . 59
3.2.1 La m´ethode de Coppersmith : polynˆomes `a une variable . . . 59
3.2.2 Factorisation de N . . . . . . . . . . . . . . . . . . . . . . . . 69
Bibliographie 73Pr´eface
Si vous enseignez `a un homme, vous n’enseignez qu’`a une
personne. Si vous enseignez `a une femme, vous enseignez `a toute
une famille.
.
éÊ
K
A
«
IÒ
Ê« Y
®
¯
è
@QÓ@
IÒ
Ê« @
X@
A
Ó
@ , @
XQ
¯
IÒ
Ê« Y
®
¯ C
g.
P
IÒ
Ê« @
X@
La cryptographie moderne est bas´ee sur les math´ematiques pour s´ecuriser l’information.
On distingue deux types de protocoles cryptographiques : la cryptographie
`a cl´e priv´ee et la cryptographie `a cl´e publique. La cryptographie `a cl´e publique `a ´et´e
introduite par Whitfield Diffie et Martin Hellman en 1976, marquant ainsi la naissance
de la cryptographie moderne. Le principe de la cryptographie `a cl´e publique
repose sur deux types de cl´es : une cl´e publique et une cl´e priv´ee. Pour chiffrer un
message, on utilise la cl´e publique de son destinataire. Alors, seul le destinataire peut
d´echiffrer le message re¸cu avec sa propre cl´e priv´ee. En 1978, Ronald Rivest, Adi
Shamir et Leonard Adleman ont propos´e le premier cryptosyst`eme `a cl´e publique,
appel´e RSA. Ce cryptosyst`eme est devenu le plus r´epandu dans le monde car il est
facile `a r´ealiser mais tr`es difficile `a casser. En effet, sa s´ecurit´e repose sur l’un des
probl`emes les plus difficiles en math´ematiques : la factorisation des grand nombres.
Dans ce travail, nous introduisons les principes g´en´eraux du cryptosyst`eme RSA
ainsi que certaines attaques permettant de le casser, si les param`etres de s´ecurit´e sont
mal choisis ou s’il v´erifient des relations permettant `a un attaquant d’en tirer profit.
Dans le chapitre 1, nous donnons les principes g´en´eraux du cryptosyst`eme RSA et
nous pr´esentons quelques attaques ´el´ementaires permettant de le casser. Dans le
chapitre 2, nous pr´esentons une introduction `a la th´eorie des fractions continues
et leur utilisation pour attaquer le cryptosyst`eme RSA dans certains cas. Dans
le chapitre 3, nous pr´esentons quelques aspects de la r´eduction des r´eseaux, plus
pr´ecis´ement l’algorithme LLL et son utilisation pour attaquer le cryptosyst`eme RSA
grˆace `a la m´ethode de Coppersmith.
Dans ce travail, la plupart des r´esultats sont illustr´es par des algorithmes programm´es
`a l’aide des syst`emes de calcul Maple 12 et Magama dont un calculateur
12 TABLE DES MATIERES `
en ligne est `a l’adresse http://magma.maths.usyd.edu.au/calc/.Chapitre 1
Introduction au cryptosyst`eme
RSA
Celui qui n’aime pas gravir les montagnes, vivra toute sa vie dans
les trous.
Abou Al Qasim Achabi
. Q
®
m
Ì'@
á
K
.
Q
ë
YË@
Y
K
.
@
ª
K
È
A
J
.
m
.
Ì'@
Xñ
ª
I
.
m
B
á
Ó
ð
ú
G
.
A
Ë@ Õæ
A
®Ë@ ñ
K
.
@
1.1 Principe de RSA
Toutes les op´eration du cryptosyst`eme RSA se passe dans un ensemble de nombre
entiers. Soient p et q deux nombres premiers assez grands. On note N = pq. Le
nombre N est appel´e module RSA. Supposons que deux personnes A et B veulent
communiquer de fa¸con sˆure en utilisant le cryptosyst`eme RSA. Pour cela, ils doivent,
chacun de son cot´e pr´eparer un module RSA, deux cl´es e et d, ex´ecuter une proc´edure
de chiffrement et de signature et une proc´edure de d´echiffrement et de v´erification
de la signature.
1.1.1 Le module RSA
Avant tout, pour utiliser le cryptosyst`eme RSA, chacun des intervenants A et B doit
fabriquer son propre module RSA. L’algorithme 1 peut ˆetre alors utilis´e.
3
Cours Interconnexion et conception de r´eseaux
(informatiques)
Jean-Luc Archimbaud
To cite this version:
Jean-Luc Archimbaud. Cours Interconnexion et conception de r´eseaux (informatiques). Ecole ´
d’ing´enieur. A Grenoble `a l’ENSIMAG (cours donn´e 2 fois), 2002, pp.322.
HAL Id: cel-00561873
https://cel.archives-ouvertes.fr/cel-00561873
Submitted on 2 Feb 2011
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.1
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 1
Interconnexion et conception de
réseaux
Cours de 24 h pour 3ième année
Ecole d’ingénieurs réseaux
2002
Jean-Luc Archimbaud CNRS/UREC
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 2
Interconnexion et conception de réseaux
• Réseau :
– Qu’est-ce ?
– Plusieurs réseaux interconnectés ? réseau
– Dans le cours : réseau informatique d’entreprise – de
campus
• Concevoir un réseau c’est actuellement :
– Faire évoluer l’existant
– Réfléchir à toutes les couches
• Tranchées ? Applications
– Utiliser les services des opérateurs – sous-traitance
– Travail de puzzle : assemblage de briques
• Matériel - logiciel2
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 3
Concevoir un réseau c’est définir
• L’architecture physique (réseau = câble)
– Carte des sites – bâtiments – salles à connecter
– Les supports physiques
– Les équipements actifs
• L’architecture logique (réseau = réseau IP)
– Les protocoles
– Plan adressage – Routage
• L’administration des équipements - surveillance
• Les services réseaux
– DNS (nommage), Messagerie, Web, …
• Les outils de sécurité
• Les connexions avec l’extérieur : Internet, …
Adaptée aux équipements - besoins des utilisateurs
Stations – Serveurs – Applications
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 4
Plan du cours
• Réseaux locaux - LAN
– Liens physiques - câblage : Coax - TP – FO – sans fil
– Câblage de bâtiment
– Protocoles niveau 1-2 : Ethernets – FDDI
• Rappels : caractéristiques du protocole IP
• Eléments actifs d’interconnexion Eth-IP
– Répéteurs – hubs (Ethernet)
– Ponts (Ethernet)
– Commutateurs Ethernet
– Routeurs (IP)
– Commutateurs-routeurs (Ethernet-IP)3
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 5
Plan du cours
• Liaisons longues distances
– Liaisons physiques
• Commutées RTC, RNIS, ADSL, X25, louées LS
– Modems
• ATM
– Objectifs
– QoS : Qualité de Service
– Couches 1 et 2
– Commutateurs et routage
– Architectures LS et LANE
– Bilan
• Exemples d’architecture
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 6
Plan du cours
• Architecture logique IP
– Adresses IP
– Plan adressage IP
– Routage IP
– Exemples de répartition d’utilisateurs et de services
– Architecture ATM : classical IP
• MPLS
• Intégration voix-données (téléphonie – informatique)
– Pourquoi ?
– Différents niveaux d’intégration
– Téléphonie sur IP
• Services rendus
• H323
• SIP
– Bilan aujourd’hui4
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 7
Plan du cours
• Réseaux virtuels
– Pourquoi ?
– VLAN
– Avec ATM
– VPN (PPTP, L2TP, IPsec)
• Services d’interconnexion de France Télécom
– Interconnexion niveau 2 moyen débit
– Interconnexion niveau 2 haut-débit
– Services (entreprises)
• Services à assurer – couche 7
– Noms
– Messagerie
– Annuaire
– Services Web
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 8
Plan de cours
• Qualité de service IP –rappels
– RSVP
– DiffServ
• Fonctions « annexes » de certains équipements actifs
– Rappels
– NAT
– Filtrage
– Multicast
– Gestion des files d’attente
• Administration de réseau
• Quoi ?
– Equipes, standards
– Configuration, surveillance, dépannage
– Stations d’administration
– Métrologie5
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 9
Plan du cours
• Quelques éléments de sécurité
• Accès à l’Internet
• Accès depuis l’Internet
– A l’Intranet
– Aux serveurs Internet
• Construction d’un réseau « solide »
• Etudes de cas
– Réseau de petit laboratoire éclaté
– Réseau de campus
• Gros site d’une entreprise
– Réseau Renater (national)
• Entreprise multi-sites
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 10
Bibliographie
• Computer Networks 3rd edition (Tanenbaum)
• TCP/IP Illustrated, Vol 1 - W. Richard Stevens
• Constructeurs (white papers)
– CISCO : http://www.cisco.com
– …
• Elements d’interconnexion Ethernet
– http://www.unige.ch/dinf/jfl/elem/index.htm
• Pointeurs cours, mémoires
– http://reseau.plisson.org/
• Cours UREC
– http://www.urec.cnrs.fr/cours/
• Moteurs de recherche6
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 11
LAN : dimension
• LAN : Local Area Network
– Un étage
– Un bâtiment
– Diamètre < 2 km
– Un site géographique : domaine privé
– Plusieurs bâtiments (site-campus)
• Interconnexion de LAN
• MAN : Metropolitan Area Network
– Dimension d’une ville
– Diamètre < 10 km
– Domaine public : service d’opérateurs locaux
• WAN : Wide Area Network
– Très longues distances : opérateurs (inter)nationaux
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 12
LAN : Liens physiques : critères choix
• En théorie : propriétés physiques
• En pratique :
– Coût
• Câble (media)
• Connecteurs (connectique)
• Emetteurs et récepteurs
• Installation : pose (tirer des câbles)
– Immunité aux perturbations
• Foudre, électromagnétiques, …
– Longueur maximum possible entre deux équipements
actifs (? minimiser le nb)
• Coût équipement
• Besoin alimentation électrique, …
– Débits possibles (surtout débit max) : bps7
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 13
LAN : liens physiques : câble coaxial
• Bande de base : Baseband
– 50 ohm – transmissions numériques – quelques kms
– Ex : Ethernet câble jaune – bus - prises vampires - 10base5 (500
m)
• Large bande : Broadband (LAN, MAN, WAN)
– 75 ohm – transmissions analogiques – 100 kms
– Plusieurs bandes de fréquences ? plusieurs flux
– Ex : câble télévision
• Bons débits (Gbits/s) et distances, bonne immunité
• Problème : cher
– Equipements - encombrement (Ø = 1 cm)– difficulté de la pose
• N’est plus utilisé pour le LAN informatique
– Il peut rester quelques câbles coaxiaux jaunes Ethernet et
Ethernet fin (Bande de base) : 10base2 (185 m) - Prises en T
• Utilisé dans le réseau câble des villes
– Connexion ordinateur : Carte 10BaseT – Modem – Câble (TV)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 14
LAN : câble coaxial fin et prise en T8
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 15
LAN : Liens physiques : TP
• TP : Twisted Pair : Paire torsadée
• Fil de cuivre isolé de diamètre 1 mm
• Utilisé depuis très longtemps pour le téléphone
• TP catégorie (type de TP mais aussi composants)
– 3 : jusqu’à 16 Mhz : très répandu aux USA
– 4 : jusqu’à 20 Mhz : peu utilisé
– 5 : jusqu’à 125 Mhz : le plus répandu actuellement
• Câbles 4 paires avec des pas de torsades différents
– 5E : amélioration du câblage 5 (Gigabit Ethernet)
– 6 : jusqu’à 250 Mhz
– 7 : jusqu’à 600 Mhz
• Blindage des câbles :
– UTP : Unshielded : pas de blindage
– STP : Shielded : blindage avec tresse métallique
– FTP : Foiled : entourée d’un feuillard d’aluminium
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 16
LAN : Liens physiques : TP
• Nombre de paires utilisées : 2 à 4 suivant l’utilisation
• Connexions point à point : architecture en étoile
• Connecteurs RJ45 : 4 paires
• Avantages :
– Câblage universel : informatique et téléphone
– Débit : plusieurs Mbits/s et Gbits/s sur 100 m (jusqu’à quelques
centaines)
– Câble et pose peu chers
• Désavantages :
– Très sensibles aux perturbations (électromagnétiques, …)
– Courtes distances
– Beaucoup de câbles : pose par professionnels
• C’est le media le plus utilisé à l’intérieur des bâtiments9
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 17
LAN : photos TP et RJ45
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 18
LAN : Liens physiques : FO
• FO : Fiber Optic : Fibre Optique
• 2 types : multimode - monomode
– Multimode : rayons lumineux avec réflexions : dispersion
• Cœur optique : diamètre 50 ou 62.5 microns
• Gaine optique : 125 microns
• Multimode 50 ou 62.5 (le plus courant aujourd’hui)
– Monomode (single mode) : rayons lumineux « en ligne droite »
• Cœur optique avec un diamètre plus petit : 9 microns
• Gaine optique : 125 microns
– Monomode pour de plus longues distances et plus haut débits
• Plusieurs fenêtres de longueurs d’onde possibles pour le
faisceau lumineux émis
– Fenêtres d’émission centrées sur : 850, 1300 et 1550 nm10
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 19
LAN : Liens physiques : FO
• Connectique :
– Epissures (définitif) ~ soudures
– Connecteurs : les plus répandus :
SC (encliquetage) et ST (baionnette)
• Emetteurs :
– Photodiodes (LED) : multimode, débits moyens,
distances courtes-moyennes, peu chers
– Lasers : multi ou monomode , très hauts débits,
longues distances, plus chers
– Plus faciles à installer sur de la fibre multimode
• Unidirectionnel : 2 FO pour une liaison
• Câbles généralement de 2 à 40 fibres
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 20
LAN : Liens physiques : FO
• Budget optique :
– Emetteur-récepteur : quelle « atténuation optique » maximale
possible peut-on avoir ?
• Ex 12 dB
– Affaiblissements dans chaque liaison
• Distance : lg de fibre : 3.5 dB/km pour FO 62.5 - 850 nm
• Connectique : épissure : 0.2 dB, connecteur : 2 dB, …
• Détérioration des éléments
– Affaiblissement total de la liaison < budget optique
• Multiplexage optique
– Multiples longueurs d’ondes sur une même fibre
– Protocole DWDM (Dense Wavelengh Division Multiplexing)
– Mutiplexeurs, démultiplexeurs, commutateurs optiques
– Choix n fibres ou multiplexage optique : coût11
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 21
LAN : Liens physiques : FO
• Avantages-inconvénients
– Débits possibles très élevés (potentiellement
immenses)
– Longues distances (dizaines voir centaines de km)
– Insensible aux perturbations électromagnétiques
– … confidentialité
• Utilisation
– C’est le support maintenant le plus utilisé en
interconnexion de bâtiments, en MAN et WAN
– Quelques fois en câblage de stations : cher
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 22
LAN : photos de FO et connecteurs
Connecteur SC Connecteur ST12
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 23
LAN : sans fil
Liaisons radio LAN (R-LAN - WIFI) : 2.4 GHz
• Architecture étoile
– Carte sur stations (PC, …) avec antenne
– Concentrateur avec antenne : borne
• Connecté au réseau câblé : borne
• Normes IEEE 802.11
• Même rôle que 802.3 pour Ethernet
• Distance max station-borne : entre 50 et 200 m
• Débits max
• 11 Mbits/s partagés (802.11b) : 10 M à 10 m, 1 M à 50 m
• Evolutions : Jusqu’à 54 Mbps (802.11a), 20 Mbps et + (802.11g)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 24
LAN : R-LAN
• Utilisation : intérieur de bâtiment (en R-LAN)
– Liaisons provisoires : portables, conférences, …
– Locaux anciens et protégés (impossible d’effectuer un
câblage)
• Problèmes
– Débit limité
– Sécurité : diffusion
• Contrôle de l’espace de diffusion
• WEP (Wired Equivalent Privacy)
• Fixe les adresses Ethernet
• Considère comme « externe » : ajout IPSec, …
• Se déploie très fortement actuellement
• MAN aussi : boucle locale radio (BLR 8M)13
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 25
LAN : sans fil
Liaisons laser
• Depuis de nombreuses années
• Point à point : interconnexion de réseaux
• Distance : 1 ou 2 km sans obstacle
• Débits : plusieurs Mbits/s
• Utilisation :
– Quand coût tranchées trop élevé ou domaine public
– Liaison provisoire
• Problème : réglage de la direction du faisceau
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 26
LAN-MAN : sans fil
• Faisceaux hertziens : de 2.4 à 40 GHz
– Pas les mêmes fréquences que R-LAN
– Demande une licence à l’ART et une redevance
– Maxima de débit : de l’ordre de
• 2 - 34 voir 155 Mbits/s jusqu’à plusieurs km
– Interconnexion de réseaux (et téléphone)
– Utilisation :
• Plutôt en MAN
• Demande une solide étude préalable (obstacles …)
• Interconnexion de sites distants sans besoin d’opérateur
• Utilisé par les opérateurs (France Télécom …)
• Satellite : pas en LAN !
– Service d’opérateur
– Quand FO non disponible14
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 27
LAN : câblage de bâtiment (TP)
(vocabulaire)
• Construction d’un bâtiment : pré -câblage
• TP : câblage courants faibles : informatique et téléphone
• Répartiteur : local technique
– Nœud de concentration et de brassage
– Arrivées-départ des liaisons, équipements actifs
• Dans un grand bâtiment
– 1 répartiteur général : RG
– n sous-répartiteurs : SR
– Entre RG et SR : câblage primaire : rocades ou colonnes
– Entre SR et prises stations : câblage horizontal
– Structure étoilée
• Câbles - connecteurs – cordons - jarretières – baies de
brassage
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 28
LAN : câblage de bâtiment (TP)
• Chemins de câbles :
– gaines techniques
– faux plafond
– goulottes, …
• Bureaux :
– Prises murales
– Recommandation CNRS : 3 prises (tél + info) par personne
• Tests après installation : cahier de recette
– Certification (classe d’installation : classe D)
– Réflectométrie
– Etiquetage – plans : obligatoire
• Base de données pour le système de câblage ?
• Travail de spécialistes
Sans bon câblage, pas de bons services
Câblage : fondations du réseau15
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 29
LAN : Photo baie de brassage optique
–
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 30
LAN : tous les Ethernets
• Protocoles pour LAN (au départ)
– Gigabit Eth : protocole différent (sauf trame) ? MAN
• Trame
– Adresse destination (MAC address) : 6 octets 08:00:20:06:D4:E8
– Adresse origine (MAC address) : 6 octets
– Type (IP = 0800) ou longueur (IEEE 802.3) : 2 octets
– Données : taille variable < 1500 octets
• Adresses (6 bytes) – MAC address
– Station : unique
• 3 premiers octets : constructeur
– CISCO 00:00:0C
– Sun 08:00:20
– HP 08:00:09
• 3 octets suivants : coupleur
– Broadcast : FF:FF:FF:FF:FF:FF
– Multicast : 1er octet impair16
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 31
LAN : Ethernet 10 M - 10Base5
• Protocole : Ethernet – IEEE802.3
• Début 1980
• Conçu pour 10Base5 : bus : coaxial : diffusion
• Méthode d’accès : CSMA-CD
– Carrier Sense Multiple Access-Collision Detection
– Accès multiple et écoute de porteuse – Détection de
collision
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 32
LAN : Ethernet 10 M - 10Base5
• 10 Mbits/s (partagés)
• CSMA-CD :
– Emet quand le media est libre
– Si autre signal sur le media durant émission : arrête l’émission
• RTD : round trip delay < 51.2 µs ? lg max réseau
• Taille minimum trame envoyée (correcte) : 64 bytes
• Quand trame taille < 64 bytes : collision
• 10Base5 : 5 câbles 500 m avec répéteurs : 2.5 km
• Problèmes 10Base5
– Coût : câble et connectique
– Sensibilité aux perturbations électromagnétiques
– Besoin d’une même terre
• Solution bas prix : 10Base2
– Thin Ethernet - 185 m - stations en coupure
• 10Base5 et 10Base2 ? 10BaseT17
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 33
LAN : Ethernet 10 M - 10BaseT
• CSMA-CD, 10 Mbits/s, RTD < 51.2 µs
• Câble : paire torsadée : UTP 5 – RJ45
• Architecture étoile : centre : hub (multirépéteur)
• Distance max hub-station ou hub-hub : 100 m
• 4 hubs max entre 2 stations : 500 m lg max
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 34
LAN : Ethernet 10 M : 10BaseF
• Pbs 10BaseT : perturbations – distance
– ? 10BaseF
• CSMA-CD, 10 Mbps, RTD < 51.2 µs
• Liaison : 2 FO multimode 50 ou 62.5
• Connecteurs SC ou ST
• Station – Répéteur : 1 km
• Répéteur – Répéteur : 2 km18
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 35
LAN : Ethernet 10 M
• Réseau au sens Ethernet : domaine de broadcast
• Avantage : protocole simple
• Problèmes :
– Débit limité (10 M partagé)
– Distances limitées
– Dépendance vis a vis de son voisin (collisions, charge)
– Broadcast : charge
– Pas de confidentialité (diffusion)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 36
LAN : Ethernet 100 M – 1000 M
• 100BaseT (IEEE802.3U) – Fast Ethernet 1995
– Idem 10BaseT (CSMA/CD, RJ45, …)
avec débit x 10 et taille réseau / 10
– TP (100BaseT) ou FO (100BaseF)
– Distance max : Hub – Station : 100 m (TP) - 412 m (FO)
– Lg max réseau 100BaseTX : 250 m
– Utilisation : serveurs ? stations
– Auto-négociation débit : 10 ou 100
• 1000Base – Gigabit Ethernet
– Idem 100Base avec débit x 10 – Taille min trame : 512 bytes
– Câblage FO ou TP de très bonne qualité
– Point à point, pas de diffusion
– Full duplex possible
– Utilisation : Serveurs - Backbone Campus – MAN
ATTENTION : toutes les distances max Ethernet citées :
réseau uniquement avec répéteurs-hubs19
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 37
LAN : Ethernets
• 10Base5
– 10 Mbits/s - Coax jaune - Lg max rép – station : 500 m
• 10Base2
– 10 Mbits/s – Coax fin – Lg max rép– station : 185 m
• 10BaseT (IEEE802.3 – 1990)
– 10 Mbits/s – 2 paires UTP – Lg max hub-station : 100 m
– 1 paire pour chaque sens de transmission
• 10BaseFL
– 10 Mbits/s – 2 FO (1 pour chaque sens)
– Lg max répet/ou stations : 2 km avec multimode 62.5
• 100BaseTX
– 100Mbits/s - 2 paires UTP catégorie 5
– Lg max hub-station : 100 m (réseau 250 m)
• 100BaseT4 (peu utilisé)
– 100Mbits/s - 4 paires UTP Catégorie 3 ou 4
– Lg max hub-station : 100 m (réseau 250 m)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 38
LAN : Ethernets
• 100 BaseFX
– 100 Mbits/s – 2 FO
– 412 m (HD) ou 2 km (FD) multimode 62.5
– 20 km monomode
• 1000BaseSX (IEEE802.3z)
– Sur 2 FO avec longueurs d’onde 850 nm
– Lg max : multimode 50 550 m – 62.5 220 m
• 1000BaseLX (IEEE802.3z)
– Sur 2 FO avec longueurs d’onde 1300 nm
– Lg max : multimode 50 550 m - monomode 5 km et plus
• 1000BaseT (IEEE802.3ab – 1999)
– Sur 4 paires UTP Cat 5E
– Longueur max 100 m20
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 39
LAN : schéma réseau campus de Jussieu
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 40
LAN : FDDI
• FDDI : Fiber Distributed Data Interface
• Protocole pour réseau local informatique
• Débit 100 Mbits/s (partagé)
• Anneau 2 FO multimode
• Nœud : station (SA/ DA)-concentrateur-routeur
• Réseau max : taille 100 km, 500 stations
C
S S S
S R
S S S S
Ethernet
S
S21
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 41
LAN : FDDI
• Accès au support par jeton (3 octets)
• Un jeton circule sur l’anneau
• Une station qui veut émettre
– Capture le jeton
– Envoie les trames de données
– Libère le jeton
– Retire ses trames au passage suivant
• Une station réceptrice
– Lit les trames qui lui sont adressées
– Modifie un champ des trames (FS) pour indiquer
qu’elle a lu la trame
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 42
LAN : FDDI
• Trame
– Adresse destination (6 octets idem Ethernet)
– Adresse source
– FS (Frame Status)
• Erreur
• Adresse reconnue
• Trame lue
– …
– Données : lg max 4500 octets
• Pb : station FDDI ? station Ethernet
– Taille des trames FDDI jusqu’à 4500 bytes alors que
max Ethernet est 1500
– Solution pour IP : fragmentation IP22
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 43
LAN : FDDI
• Circulation normale : anneau primaire
• Coupure anneau
– Rebouclage de l’anneau
– Mise en fonction : anneau secondaire
C
S S S
S R
S S S S
Ethernet
S
S Anneau primaire
Anneau secondaire
Fonctionnement normal
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 44
LAN : FDDI
C
S S S
S R
S S S S
Ethernet
S
S Anneau primaire
Anneau secondaire
C
S S S
S R
S S S S
Ethernet
S
S Anneau primaire
Anneau secondaire
Coupure de lien
Arrêt de station23
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 45
LAN : FDDI
Possibilité d’avoir des stations prioritaires
CDDI : FDDI sur paire torsadée
Bilan :
FDDI trop cher – pas assez de débit
Maintenant remplacé par Ethernet 100 ou Giga
Bon example de réseau anneau à jeton
C
S S S
S R
S S S S
Ethernet
S
S Anneau primaire
Anneau secondaire
Coupure lien station simple attachement
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 46
Rappels : caractéristiques IPv4
• Protocole réseau : couche 3
• Mode non connecté
• Eléments d’un réseau IP :
– Stations, réseaux (sens niv2), routeurs
• Informations : datagrammes (paquets)
• Entête datagramme :
– Version (4)
– TOS Type of Service : qualité de service
– TTL Time To Live : 60 ? 0 (-1 à chaque routeur)
– Identification protocole de transport (TCP, UDP, ICMP, …)
– Adresse IP de la station origine
– Adresse IP de la station destinataire
– …
• Taille datagramme < 64 Koctets
Souvent de taille d’environ 512 ou 576 bytes24
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 47
IPv4 : couche 4
• Couche 4 :protocole entre stations (pas entre routeurs)
• TCP : Transmission Control Protocol
– Paquet TCP = segment
– Mode connecté
– Transport fiable (contrôle d’erreurs, accusés de réception,
retransmission, …)
– Spécification des applications : numéros de port (origine,
destination) dans le segment
– Fenêtrage – Slow start: s’adapte à tous les débits
• UDP : UserDatagramm Protocol
– Pas de contrôle
– Mode non connecté
– Spécification de l’application : numéros de port (orig, dest)
– Protocole léger, permet multicast-broadcast facilement
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 48
IPv4 : ICMP
• ICMP : Internet Control Message Protocol
• RFC792
• Messages ’de contrôle’ émis par les stations ou
les routeurs
• Messages :
– Ralentir le débit d’émission
– Destination inaccessible
– Demande d’echo
– Réponse echo
– « Time To Live » exceeded
– Redirection
– ….25
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 49
IPv4 : couche 2
• IP / couche 2 : les datagrammes IP peuvent être
transportés par tous les types de réseaux :
– Ethernet RFC894 et RFC1042
– Liaison série : point à point (PPP RFC1331-1332)
– ATM (RFC1577)
– FDDI
– X25
– …
• @ IP ? @ couche 2 ?
– Ethernet, FDDI : broadcast : ARP, RARP
– ATM : serveur ARP
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 50
IPv4 : exemple trame Ethernet (TCP)
Une trame Ethernet avec un segment TCP a la forme :
• Entête Ethernet
– @ Ethernet destination
– @ Ethernet origine
– Type = 800
• Entête IP
– …
– Indication TCP
– @ IP origine
– @ IP destination
– …
• Entête TCP
– Numéro de port source
– Numéro de port destination
– …
• Données26
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 51
IPv4 : adresses
• 4 bytes 194.220.156.3
• Chaque coupleur de station ou de routeur a une
adresse
• Partie réseau (IP) : 194.220.156
• Partie station (IP) : 3
• Routeur : sépare (interconnecte) 2 réseaux IP
• Adresses (IP) de broadcast et de multicast
– 194.220.157.255 : broadcast sur réseau IP
194.220.157.0
• Détails dans les cours suivants
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 52
Eléments d’interconnexion
Ethernet - IP
• Pourquoi ? – Problèmes
• Répéteurs – Hubs (Ethernet)
• Ponts (Ethernet)
• Commutateurs Ethernet
• Routeurs (IP)
• Commutateurs-Routeurs (Ethernet-IP)27
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 53
Eléments d’interconnexion : pourquoi ?
• Ré-amplifier les signaux
– Electriques - optiques
– ? Augmenter la distance maximale entre 2 stations
• Connecter des réseaux différents
– Supports : Coax, TP, FO, Radio, Hertzien, …
– Protocoles niveau 2 : Ethernet, FDDI, ATM, … rieur
• « Limiter » la diffusion (Ethernet)
– Diminuer la charge globale
• Limiter les broadcast-multicast Ethernet (inutiles)
– Diminuer la charge entre stations
• Limiter la dépendance / charge des voisins
• Objectif in fine : garantir une bande passante disponible (une qualité de
service) entre 2 stations
– Limiter les problèmes de sécurité
• Diffusion ? écoute possible : pas de confidentialité
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 54
Eléments d’interconnexion : pourquoi ?
• Restreindre le périmètre de la connectivité désirée
– Extérieur ? Intérieur : protection contre attaques (sécurité)
– Intérieur ? Extérieur : droits de connexion limités
• Segmenter le réseau :
– Un sous-réseau / groupe d’utilisateurs : entreprises, directions,
services, …)
– Séparer l’administration de chaque réseau
– Créer des réseaux réseaux virtuels
• S’affranchir de la contrainte géographique
• Pouvoir choisir des chemins différents dans le transport
des données entre 2 points
– Autoriser ou interdire d’emprunter certains réseaux ou liaisons à
certains trafic28
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 55
Eléments d’interconnexion : problèmes
• Eléments conçus pour répondre a des besoins :
– Qui ont évolué au cours du temps
• Durée de vie courte des équipements
• Toujours mieux et moins cher
– Rapidement à moindre coût : pragmatique
• Chaque élément offre certaines fonctions
les « prioritaires » du marché de l’époque
• ? Problèmes :
– Classification, frontières sont un peu complexes
– Terminologie imprécise (dépend du contexte)
• Commerciaux rarement techniciens
• Attention : le choix est un compromis entre les
fonctions désirées et le coût
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 56
Eléments d’interconnexion : répéteur
• Répéteur (Ethernet)
– Boite noire dédiée
– Remise en forme, ré -amplification des signaux
(électroniques ou optiques)
– But augmenter la taille du réseau (au sens Ethernet)
• Exemple : distance maxentre stations A - C : 500 m ? 1000 m
Repeteur
Station A Station B
Station C
Coax 1
Coax 229
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 57
Eléments d’interconnexion : répéteur
• Travaille au niveau de la couche 1
• Ne regarde pas le contenu de la trame
• Il n'a pas d'adresse Ethernet
– Transparent pour les stations Ethernet
• Entre supports coaxiaux, TP et FO
• Avantages
– débit 10 Mb/s
– pas (ou très peu) d'administration
• Désavantages
– Ne diminue pas la charge
– Ne filtre pas les collisions
– N’augmente pas la bande passante
– Pas de possibilité de réseau virtuel (VLAN)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 58
Eléments d’interconnexion : hub
• Hub : muti-répéteur : étoile (obligatoire TP)
• Idem répéteur pour :
– Fonctions, avantages, désavantages
• Pour Eth 10 et 100
• Ex : Hub 8 ports TP
HUB Station
Station
Station
Station
Station Station
Station
d < 100 m
HUB Station
Station
10 M
10 M 10 M
10 M
10 M
10 M
10 M 10 M
10 M30
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 59
Eléments d’interconnexion : hub
• Fonction annexes :
– Affectation d’une @ MAC (@ Eth) à chaque brin : sécurité
– « Auto-negotiation » débit hub 10-100 (IEEE 802.3u)
– Surveillance SNMP
• Nombre maximum sur réseau Ethernet
– 10Base5 : 4 répéteurs
– 10BaseT : 4 hubs
• Distance max entre 2 stations : 500 m
– 100BaseT : 4 hubs
• Mais distance maxentre 2 stations : 250 m
– 1000BaseX : utilise des commutateurs
• Utilisation actuelle
– En « extrémité » de réseau (stations utilisateurs)
– Remplacés par des commutateurs Ethernet
• En cœur de réseau, pour serveurs, et même pour stations
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 60
Eléments d’interconnexion :hub
• Remarque : borne sans fil 802.11b = hub
• Face arrière hub stackable
– 3 x 24 ports TP (prises RJ45)
– 1 port FO (2 FO)31
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 61
• Aussi appelé répéteur filtrant ou "bridge"
• Niveau de la couche 2
– Traitement : valeur @ MAC destinataire ? transmet
ou non : trafic A-D ne va pas sur coax 2
– Localisation des @ MAC des stations par écoute
(auto-learning) ou fixée
– Ignoré des stations (transparent)
Elts d’interconnexion : pont (Ethernet)
Station A Station D
Station C
Coax 1
Coax 2
PONT
Station B
500 m
500 m
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 62
Elts d’interconnexion : pont
• Avantages
– Augmente la distance max entre 2 stations Ethernet
– Diminue la charge des réseaux et limite les collisions
• Le trafic entre A et D ne va pas sur Coax 2
• Remplacés en LAN par les commutateurs
• Fonctions supplémentaires : cf commutateurs
• Ponts distants
– Ethernet – Liaison spécialisée (cuivre ou hertzienne
ou laser)
– Encore utilisés32
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 63
Elts d’interconnexion : commutateur
• Commutateur – Switch Ethernet de niveau 2
– 10, 100, 1000 Mb/s TP ou FO
• Fonction : multi-ponts, cœur d’étoile
• Commute les trames Ethernet sur un port ou un
autre
– Matrice de commutation
COMM Station
Station Station
Station
Station Station
Station
d < 100 m
HUB Station
Station
1 G
10 M
100 M
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 64
Elts d’interconnexion : commutateur
• Mêmes fonctions et avantages que le pont +
augmentation de la bande passante disponible
• Matériels - logiciel
– Chassis ou boitier
– Cartes : 2 ports FO, 8 ports TP … avec débits 10, 100, 1000 Mb/s
– Système d’exploitation
– Configuration : telnet, client Web
– Surveillance : SNMP
• Quelques critères de choix techniques (performances)
– Bus interne avec un débit max : 10 Gb/s
– Vitesse de commutation nb de trames / s
– Bande passante « annoncée » : 24 Gb/s
– Nb d’adresses MAC mémorisable / interface33
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 65
Elts d’interconnexion : commutateur
• Permet : Ethernet Full duplex (TP ou FO)
– Emission et réception en même temps : 2x10 ou 2x100
– « Auto-negotiation» possible (IEEE 802.3u)
• Fonctions supplémentaires
– Auto-sensing débit (IEEE 802.3u)
– Affectation statique d’@ MAC et filtrage au niveau 2
– Spanning Tree : évite les boucles
• Construction d’un arbre
• A un instant : un seul chemin utilisé
– Réseaux virtuels : VLAN
– Port d’écoute qui reçoit tout le trafic des autres ports
• Analyseur
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 66
Elts d’interconnexion : commutateur
• Limitations d’un réseau de commutateurs
– Théoriquement pas de distance maximum
– Broadcast et multicast diffusés partout
– 1 seul réseau IP possible
• Très répandu :
– Local : workgroup switch
– Campus : complété par le routeur (plus « lent » et
plus cher)
– Remplacé par le commutateur-routeur (plus cher)
quand besoin34
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 67
Elts interconnexion :
commutateur et hubs
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 68
Elts interconnexion : routeur (IP)
• Niveau 3 : aussi appelé commutateur niveau 3
– Il y a des routeurs multi-protocoles
• On ne parlera que de IP
– Interconnecte 2 ou plus réseaux (ou sous-réseaux) IP
Station
Station
Station
hub
Routeur
Ethernet
192.88.32.0
COMM
Eth Station
Station
Station
Station
Ethernet
192.99.40.0
COMM
ATM Station
Station
ATM
129.88.0.035
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 69
Elts interconnexion : routeur (IP)
• Table de routage / @ IP destination
• N’est pas transparent pour les stations
– Chaque station doit connaître l’@ IP du coupleur du
routeur pour « le traverser »
• Pour le protocole Ethernet
– C’est une station Ethernet
– Chaque port possède une adresse Ethernet
• Matériels
– Chassis ou boitier
– Cartes : 2 ports FO, 8/16/24/32/48/64 ports TP … avec
débits 10, 100, 1000 Mb/s, LS, ATM, FDDI …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 70
Elts interconnexion : routeur (IP)
• Logiciel – performances
– Système d’exploitation
• IOS CISCO
– Configuration : avec telnet ou navigateur
– Surveillance : SNMP
– Performances :
• Nb de paquets routés/s
• Routage : ASIC
– Un PC Linux avec 2 cartes Ethernet peut faire
fonction de routeur
• Fonctions annexes : chapitre ultérieur du cours 36
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 71
Elts interconnexion :
Commutateur-routeur (IP)
• Multilayers switch
• Réunion des fonctions commutateur et routeur
dans une seule « boite »
• On peut configurer certains ports en
commutation, d’autres en routage
• L’équipement à tout faire
– Mais pour le configurer il est nécessaire d’avoir défini
l’architecture que l’on veut mettre en place
• Maintenant très performant avec des prix très
compétitifs
– Remplace les routeurs et les commutateurs
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 72
Elts interconnexion : commut-routeur
• Exemple de réseau de laboratoire
COMMUTATEUR-ROUTEUR
CAMPUS
FO
1G
FO
Serveur 1
Serveur 2 100 M TP
1 G
100 M TP
S1 S2 S3 S4 Mail WWW 10 M TP 10 M TP 10 M TP 10 M TP 10 M TP37
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 73
Elts interconnexion : commut-routeur
• Peut-être équivalent à :
ROUTEUR
CAMPUS
Serveur 1 Serveur 2
S1
S2 S3
S4
Mail WWW
COMMUT
COMMUT
COMMUT
3 (sous-)réseaux IP :
Serveur 1, Serveur2 – S1, S2, S3, S4 – Mail, WWW
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 74
Elts interconnexion : action /trame
Trame Ethernet contenant un datagramme TCP
• Entête Ethernet
– @ Ethernet destination ? Pont - Commutateur
– …
• Entête IP
– …
– @ IP destination ? Routeur
– …
• Entête TCP
– …
– Numéro de port destination ? Station (choix du service)
– …
• Données ? Application38
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 75
Elts interco : Architecture Eth - IP
Dans une entreprise
• Entre stations utilisateurs d’un service
– Hubs ou commutateurs
• Entre serveurs ou stations demandant du débit
(graphiques, …) d’un service
– Commutateurs
• Entre services
– Commutateurs ou routeurs
• Entre l’entreprise et l’extérieur (Internet)
– Routeurs
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 76
Ex interconnexion de réseaux Ethernet
Station M
Station L
Station K
hub
Routeur
COMM
Eth Station F
Station G
Station H
COMM
Eth Station J
Station I
Station E
Station D
hub
Station C
Station A
hub Station B
Pont
Station N
Station O
hub
Pont Station P
Station R Station Q
10 M
10 M
10 M 10 M
10 M
100 M
100 M
100 M
100 M
10 M
10 M
100 M
2 M
100 M
10 M
10 M
10 M
10 M 10 M
10 M
10 M
10 M
10 M
10 M
100 M39
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 77
Ex interconnexion de réseaux Ethernet
• Trame Eth A ? C. Arrive -t- elle à B ? E ? F ?
• Trame Eth P ? O. Arrive -t-elle à N ? M ?
• Trame Eth R ? Q. Arrive -t-elle à I ? J ?
• Trame Eth A ? L. Arrive -t-elle à K ?
• A -> Broadcast Eth. Arrive -t-il à B ? D ? G ? R ?
• L ? Broadcast Eth. Arrive -t-il à K ? O ? D ?
• Collision possible entre les 2 trames :
– A ? B et D ? E ? O ? N et M ? L ?
– G ? H et E ? F ?
• B a un coupleur défectueux (envoie des trames sans écoute ?
collisions). Cette station perturbe –t-elle A ? E ? G ? R ?
• F dans le même cas. G est-elle perturbée ?
• O dans le même cas. M est-elle perturbée ?
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 78
Ex interconnexion de réseaux Ethernet
• B émet un flot de données de 5 M b/s vers A en continu. Quelle
bande passante (théorique) reste-t-il à A ? C ? E ? F ? R ?
• G émet un flot de données de 5 M b/s vers H en continu. Quelle
bande passante (théorique) reste-t-il à F ? E ?
• G émet un flot continu de broadcast à 20 Mbps. Quelle bande
passante (théorique) reste-t-il à H ? E ? B ? R ?
• O émet un flot de broadcast à 2 Mbps. Quelle bande passante reste-til
entre N et M ?
• Les flots de données en parallèle suivants sont ils possibles ?
– 10 Mb/s A-B et 10 Mbps D-E ?
– 100 Mb/s R-Q et 10 Mbps I-J ?
– 10 Mb/s O-N et 10 Mb/s L-M ?
– 10 Mb/s F-G et 10 Mb/s F-H ?40
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 79
Liaisons longues distances - opérateurs
• Liaisons
– Commutées = temporaires ? partagées
• Pb : phase (+ ou - longue) d’établissement de connexion et de
déconnexion ? difficile pour un serveur
– Permanentes : entre 2 points fixes
• LS : Liaisons Spécialisées – Lignes Louées
• Opérateurs
– Opérateurs Telecom traditionnels : FT, Cegetel, …
Mais aussi SNCF, sociétés d’autoroutes, …
– Liaisons : FO, câbles cuivre, liaisons hertziennes, …
– Equipements : (dé)multiplexeur, commutateurs (en tous genres),
…
– Offres « sur mesure » - contrats spécifiques
– Offres « catalogue » : étudiées ici
– Les services « à valeur ajoutée » (d’interconnexion) seront
étudiés dans un chapitre ultérieur
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 80
Liaisons longues distances : utilisations
• Entreprises :
– Liaisons inter-sites
– Louent des liaisons spécialisées aux opérateurs
– Coût d’installation + coût de location
• Particuliers ou petites agences :
– Particulier - domicile ? entreprise
– Agence ? siège
– Utilisent les réseaux commutés
– Généralement : coût d’installation + location +
utilisation41
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 81
Liaisons commutées : RTC
Réseau Téléphonique Commuté
• Equipement : modem V90 56.6 Kb/s (réception)
– Emission à 33.6 Kb/s
• Modem micro : interne, externe sur port série …
• Particulier/agence ? LAN Entreprise
– Micro - Modem – RTC – Serveur d’accès RTC (pool
de modems – Concentrateur - Routeur) – LAN
(Ethernet) entreprise
• Fonction de ré-appel : coût et sécurité
• Authentification des utilisateurs : protocole – serveur RADIUS
– Micro – Modem – RTC – Fournisseur d’accès
Internet – Connexion Internet –Routeur – (Garde -
barrière) - LAN entreprise
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 82
Liaisons commutées : RTC
• IP
– Protocole niveau 2
SLIP ? PPP (Point to Point Protocol)
– Micro : @ IP statique ou dynamique (DHCP)
• Liaison non permanente
– Le micro ne peut pas être serveur
• Toujours très utilisé
– Réseau RTC partout
– Toujours plus de débit possible sur la paire torsadée42
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 83
Liaisons commutées : RNIS
Réseau Numérique à Intégration de Service
• ISDN (surtout Europe et Japon)
• Réseau national de FT : Numéris
• Accès de base (particulier-agence) : 144 Kb/s
– 2 canaux B à 64 Kb/s : téléphone + Internet par exemple
– 1 canal D à 14 Kb/s : signalisation
– Utilisation liaison téléphonique classique
– 25,5 E / mois en oct 02 (Numeris Itoo)
• Accès primaire (Entreprise : PABX) : ~ 2 Mb/s
– 30 canaux B à 64 Kb/s + 1 canal D à 64 Kb/s
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 84
Liaisons commutées : RNIS
• Connexion micro (particulier-agence)
– « Modem » RNIS : carte micro ou « modem» externe
sur port série
– Modem RTC - BoitierRNIS avec 2 prises
téléphoniques
– Chemin : Micro – Modem RNIS – Réseau Numéris –
(Modem RNIS) – Serveur d’accès RTC ou PABX -
Entreprise
• Interconnexion de sites : routeurs RNIS (2B + D)
• IP : idem RTC : PPP
• L’utilisation n’a jamais vraiment décollé
– Européen, surtout français : pas USA - Cher
– Encore utilisé en back-up ou pour liaisons provisoires43
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 85
Liaisons longues distance : ADSL
• ADSL : Asymmetric Digital Subscriber Line
• xDSL : technologie pour transmission à haut
débit sur le RTC
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 86
Liaisons longues distances : ADSL
• Modems :
– 512 Kb/s réception - 128 Kb/s émission
– 1 M b/s réception – 256 Kb/s émission (ADSL Pro)
• La liaison reste libre pour le téléphone
– Bande de fréquences utilisée # fréquences vocales
– Filtres : chez particulier et au répartiteur FT
• Contraintes :
– Poste téléphonique < 5 km d’un répartiteur FT
• Le cas de 80 % des foyers français
– Que le répartiteur FT soit connecté à un réseau ADSL
– Abonnement
• ADSL chez FT ou ailleurs
• Chez un fournisseur accès Internet
• Pack qui inclut les 244
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 87
Liaisons longues distances : ADSL
• Liaison particulier – entreprise :
– Micro – coupleur Ethernet ou port USB – Modem ADSL – RTC
– FAI ADSL – Internet – Routeur – LAN Entreprise
• IP : idem Ethernet
• Connexion permanente :
– Coût installation et mensuel (pas à la consommation)
– Possibilité de connecter un routeur côté particulier ou agence
mais fournisseur d’accès obligatoire
• Offre FT :
– Sans Internet : 30 E / mois ou 107 E / mois (ADSL Pro) en oct 02
• De plus en plus utilisé
– Pbs : monopole de FT, disponibilité selon le lieu
– Devrait devenir l’accès standard
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 88
Liaisons longues distances : X25
• Réseau à commutation de paquets :
– Couches 2-3
– Circuits virtuels
– Adresses X25
• Opérateur historique : Transpac
• Accès jusqu’à 64 Kb/s (ou guère plus)
• Les serveurs vidéotex (minitel) ont une
connexion X25
• Remplacé par IP sous toutes ses formes45
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 89
Liaisons spécialisées FT
• Transfix (nationales)
– 2.4 K b/s à 34 Mb/s
– STAS : Spécifications Techniques d’Accès au Service
– 2.4 K à 19.2 K : interfaces : V24, V28
– 64 K à 34 M : interfaces : X24/V11 ou G703-G704
– Modems fournis par opérateur
– Liaisons internationales : idem nationales mais plus difficiles à
mettre en place de bout en bout : sur-mesure
• Connexions :
– Routeurs
– Ponts (distants)
– Commutateurs ATM
– PABX Téléphoniques
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 90
Liaisons longues distances : modems
• MOdulateur DEModulateur
– Convertisseur digital/analogique ou adaptateur
digital/digital destiné à transporter des données sur
des lignes point à point
• Plusieurs types de modems :
– RTC : Liaisons commutées : asynchrones
historiquement
– LS : Liaisons permanentes : synchrones
– RNIS
– Câble
– ADSL
– TV
– …46
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 91
Modems RTC
• Programmation :
– Commandes AT (origine Hayes)
• Fonctions :
– Contrôle de flux XON/XOFF ou RTS-CTS
– Correction d’erreur (MNP 34, V42, ARQ)
– Compression (MNP5, MNP7, V42Bis)
– Adaptation automatique débits et fonctions
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 92
ATM : plan
• Objectifs
• QoS : Qualité de Service
• Couches 1 et 2
• Commutateurs
• Routage
• Architectures LS et LANE
• Bilan
• Exemple47
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 93
ATM : objectifs
• ATM : Asynchronous Transfert Mode
• Origine : CNET (FT R&D)
– Opérateur téléphone à l’origine
• Supporter tout type de communication
Voix – Vidéo - Données informatiques
• Mieux utiliser la bande passante
– Téléphonie longue distance
• Fonctionner à très hauts débits : Gbits/s
• Garantir une qualité de service (QoS) à chaque
utilisateur (application) de bout en bout
• Démarche très théorique
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 94
ATM : objectifs
• Mêmes protocoles et technologies en LAN, MAN
et WAN
• Caractéristiques des réseaux / services attendus
– Bande passante (bps) partagée : garantie si possible
– Temps de latence (délai de transmission) :
minimum et constant si possible
• Dépend distance, éléments actifs, charge (files d’attente)
– Jitter (variation temps de latence) : min si possible
– Taux de pertes : min si possible
– …
ATM veut fournir ces services
? Protocoles et technologies complexes48
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 95
ATM : Exemple de QoS : Téléphonie
• Entendre tous les mots
– Faible taux de pertes
• Contrainte : bit error rate < 10-2
– Débit constant garanti
• Contrainte : 64 Kbits/s sans compression ---> 5 Kbits/s avec
• Recevoir au même rythme que l'émission
– Temps de latence fixe : contrainte :jitter < 400 ms
• Dialogue possible
– Temps de latence faible
– Poste avec annulation d'echo
• Retransmissions : inutiles
• Mode connecté bien adapté
• Exemple d'incompatibilité (théorique)
Téléphone et Ethernet
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 96
ATM QoS : classes de service
• Problème : pour supporter toutes les qualités de
service sur tous les réseaux ATM il faudrait surdimensionner
:
– Les liaisons : bande passante et caractéristiques
– Les équipements : performances et fonctionnalités
• Solution ATM :
– On regroupe les applications qui demandent des
qualités de service similaires ? 4 groupes
– On définit 4 classes de services que peuvent offrir les
réseaux (liens et équipements) ATM qui
correspondent aux 4 groupes : UBR, ABR, CBR, VBR 49
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 97
ATM QoS : classes de services
• UBR – Unspecified Bit Rate
– Les applications peuvent émettre un flux variable
jusqu’à un débit maximum
– Réseau : aucune garantie – pas de contrôle de flux
– Service très dégradé
• ABR – Available Bit Rate
– Pour supporter des applications qui peuvent utiliser
toute la bande passante disponible, avec un service
« Best Effort » de type IP
– Exemples : applications qui utilisent TCP (FTP,
HTTP, …), interconnexion d’Ethernets
– Services réseau
• Aucune garantie (bande passante, temps de latence, …)
• Mais mécanisme de contrôle de flux
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 98
ATM QoS : classes de services
• CBR – Constant Bit Rate
– Pour supporter les flux à débit constant de données
– Exemple d’application : téléphone
– Services réseau : bande passante réservée, temps de latence fixe
• VBR – Variable Bit Rate
– Pour supporter les applications à débit variable mais qui
demandent certaines garanties (par exemple une bande passante
minimum garantie à tous les instants)
– Exemple : multimédia : vidéo compressée à débit variable …
– Services réseau :
• Bande passante minimum garantie
• Bande passante maximum garantie pendant un temps maximum fixé
• Temps de latence
• ….
– ? Très complexe à réaliser50
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 99
ATM 1-2 : mode connecté
• Problème : quand demande-t-on une (des)
qualité(s) de service au réseau ?
• Statiquement : à l’abonnement
– (Ou lors de la conception du réseau)
• A chaque session : mode connecté
– Ouverture d’une connexion de bout en bout
• En indiquant ce dont on a besoin
– Transfert d’informations
– Fermeture d’une connexion
• Appel destinataire (ouverture connexion)
– Adresse destinataire ? Numéro de VP et de VC
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 100
ATM 1-2 : les cellules
• Données dans des cellules
• Taille fixe : 53 octets
– Compromis
• Petite (avantage : faible temps de propagation, …)
• Grande (avantage : moins de traitements, …)
– Facilite les implémentations hardware
– Facilite l'allocation de bande passante
• Ni détection, ni récupération d'erreur
En Tête Information (Payload)
53 Octets
5 Octets 48 Octets51
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 101
ATM 1-2 : structure de la cellule
Champ Information
48 octets
GFC VPI
VPI VCI
VCI
VCI PT CLP
8 bits
HEC
GFC Generic Flow Control
VPI Virtual Path Identifier (8 bits : 256)
VCI Virtual Channel Identifier
(16 bits : 64000 possibilités)
PT Payload Type
Message d’administration ou
d’information
Etat de congestion
(MAJ par commutateur)
CLP Cell Loss Priority
"priorité" à la destruction si 1
HEC Header Error Check
sur l'en-tête de la cellule
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 102
ATM 1-2 : UNI (standard)
• UNI : User to Network Interface
– Comment établir une connexion
– Comment la rompre
– Format des paramètres de qualité de service
• Débit, taux d’erreur, temps de latence, …
– Format d’adresse : 20 octets
Emetteur Réseau Récepteur
Début de
l'appel
Setup
Call proceeding
Connect
Connect Ack, facultatif
Setup
Connect
Connect Ack
Call proceeding
Appel
terminé
Appel
accepté
Appel reçu
Etablissement connexion52
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 103
ATM 1-2 : adresses : 3 types
AFI : Identificateur de l'autorité et du format
HO-DSP : High Order Domain Specific Part, utilisé pour supporter des protocoles de routages hiérarchiques.
ESI : End System Identifier, en fait la MAC adresse (idem Ethernet)
1 2 10 6 1
1 2 10 6 1
DCC ATM Format
ICD ATM Format
AFI
39
AFI
47
DCC
ICD
HO-DSP
HO-DSP ESI SEL
ESI SEL
1 8 4 6 1
E.164 ATM Format
AFI
45
E.164 HO-DSP ESI SEL
Data
Country
Code
Code
organisation
IDI
IDP
IDI
IDP
IDI
IDP
Initial domain identifier
Initial Domain Part
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 104
ATM 1-2 : liaisons
• Point à point
• Liaisons spécialisées câble cuivre (longues distances)
– E1 (2 Mbits/s), E2 (34 Mbits/s)
– T1 (1.5 Mbits/s), T3 (45 Mbits/s)
– ….
• Liaisons FO
– FO multimode 155 Mbits/s (OC 3)
– FO multimode ou monomode 622 Mbits/s (OC12)
– ….
• Liaisons TP
– 155 Mbps UTP cat5
– 52 Mbps UTP cat3
– ….53
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 105
ATM : commutateurs ATM
• Eléments d’interconnexion de niveau 2
• Commutateur ATM
– Interconnecte des liaisons ATM (point à point)
– Commute les cellules sur une liaison ou une autre /
table de routage
• Cellule contient les numéros de VP et de VC
– Etablissement des VP et VC
• Statiquement
• Dynamiquement lors de l’ouverture de la connexion
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 106
ATM : commutateurs ATM
• Structure d’un réseau ATM
COMM
ATM
Station
Station
Station
Station
Station
Station
COMM
ATM Station
Station
hub
Routeur
Eth
COMM
ATM54
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 107
ATM : commutateurs
• VP et VC
Chemin de transmission
VP
VP
VP
VC
VC
VC
VC
VC
VC
VC VC
VC
VC
VC
VC
VC
VC
VP
VP
VP
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 108
ATM : commutateurs
• Commutateur de VP et de VC
VC Switch
VP Switch
VP 1
VP 6 VP 2
VP 7
VP 5
VC 1
VC 2
VC 1
VC 2
VC 3
VC 4
VC 1
VC 255
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 109
ATM : routage
Switch
1
2
3
Link 1 Routing Table
VCI-in Link out VCI-out
1 2 2
2 2 4
3 3 3
4 3 6
Link 2 Routing Table
VCI-in Link out VCI-out
2 1 1
4 1 2
Link 3 Routing Table
VCI-in Link out VCI-out
3 1 3
6 1 4
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 110
ATM : routage
Switch
1
2
3
Link 1 Routing Table
VCI-in Link out VCI-out
1 2 2
2 2 4
3 3 3
4 3 6
Link 2 Routing Table
VCI-in Link out VCI-out
2 1 1
4 1 2
Link 3 Routing Table
VCI-in Link out VCI-out
3 1 3
6 1 4
VCI = 456
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 111
ATM : routage
Switch
1
2
3
Link 1 Routing Table
VCI-in Link out VCI-out
1 2 2
2 2 4
3 3 3
4 3 6
Link 2 Routing Table
VCI-in Link out VCI-out
2 1 1
4 1 2
Link 3 Routing Table
VCI-in Link out VCI-out
3 1 3
6 1 4
VCI = 4 VCI = 4
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 112
ATM : routage
Switch
1
2
3
Link 1 Routing Table
VCI-in Link out VCI-out
1 2 2
2 2 4
3 3 3
4 3 6
Link 2 Routing Table
VCI-in Link out VCI-out
2 1 1
4 1 2
Link 3 Routing Table
VCI-in Link out VCI-out
3 1 3
6 1 4
VCI = 4 VCI = 4
VCI = 657
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 113
ATM : routage
Switch
1
2
3
Link 1 Routing Table
VCI-in Link out VCI-out
1 2 2
2 2 4
3 3 3
4 3 6
Link 2 Routing Table
VCI-in Link out VCI-out
2 1 1
4 1 2
Link 3 Routing Table
VCI-in Link out VCI-out
3 1 3
6 1 4
VCI = 4
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 114
ATM : routage
Switch
1
2
3
Link 1 Routing Table
VCI-in Link out VCI-out
1 2 2
2 2 4
3 3 3
4 3 6
Link 2 Routing Table
VCI-in Link out VCI-out
2 1 1
4 1 2
Link 3 Routing Table
VCI-in Link out VCI-out
3 1 3
6 1 4
VCI = 4
VCI = 458
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 115
ATM : routage
Switch
1
2
3
Link 1 Routing Table
VCI-in Link out VCI-out
1 2 2
2 2 4
3 3 3
4 3 6
Link 2 Routing Table
VCI-in Link out VCI-out
2 1 1
4 1 2
Link 3 Routing Table
VCI-in Link out VCI-out
3 1 3
6 1 4
VCI = 2 VCI = 4
VCI = 4
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 116
Tables de routage ATM
Commutateur
port 1
Table de routage
Station VCI
B 2
C 3
Station A
Table de routage port 1
VCI-in Port- out VCI-out
2 2 2
3 3 6
Table de routage
Station VCI
A 2
C 4
Table de routage
Station VCI
A 6
B 8
Station B Station C
port 2
port 3
Table de routage port 2
VCI-in Port- out VCI-out
2 1 2
4 3 8
Table de routage port 3
VCI-in Port- out VCI-out
6 1 3
8 2 459
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 117
Architectures ATM
• On peut bâtir plusieurs types d’architecture sur
un réseau ATM
– Liaisons spécialisées point à point
– Des réseaux LANE : émulation de LAN
– Des réseaux classical IP : architecture IP
• Traité dans la partie « Architecture IP »
• Et on peut mixer l’ensemble
– Ce que font les opérateurs
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 118
Architecture ATM : Liaison spécialisée
• Utilisation courante : location de VC ou de VP entre 2
sites à un opérateur qui possède un réseau ATM
– WAN
– Débit demandé pour la liaison
– Certaines qualités de service assurées : ABR, CBR, …
• Connexion des sites aux extrémités :
– Commutateur ATM
• S’il y a un réseau ATM sur le site, permet de garantir certaines qualités
de service jusqu’à l’intérieur du site.
– Routeur IP (fourni par le site) avec une carte ATM
• Sur le site : réseaux Ethernets par exemple
• Routeur fourni ou non par l’opérateur
– Commutateur ou routeur Ethernet
• L’opérateur fournit l’équipement ATM ?? Ethernet
• ATM est « invisible » pour le site60
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 119
Architecture ATM : LANE : buts
• LANE : LAN Emulation
– ELAN : EmulatedLAN
• Objectifs :
– Interconnexions (niveau 2) de réseaux locaux comme
Ethernet à travers un réseau ATM
– Intégration de stations ATM comme « stations
Ethernet »
– But : rendre « invisible » les commutateurs ATM aux
réseaux Ethernet ? LAN emulation
• En LAN mais aussi en MAN
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 120
Architecture ATM : LANE : schéma
Commutateur
ATM
Commutateur
ATM
Commutateur
ATM
Réseau ATM
Station A
ATM
A
T Routeur IP
M
Commutateur
ATM - Eth
Commutateur
ATM - Eth
Commutateur
ATM - Eth
hub Station Eth
Station Eth
Station Eth
hub Station ETH
Station ETH
Station ETH
hub Station Eth
Station Eth
Station Eth
hub Station Eth
Station Eth Station Eth
Station B
ATM
hub
Station Eth
Station Eth
Serveur LANE61
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 121
Architecture ATM : LANE
• Emule un réseau Ethernet (de commutateurs) :
– Stations Eth + Stations ATM A et B
– Stations ETH ne font pas partie de ce réseau
• Sur LANE : interconnexion de niveau 2
– On peut utiliser d’autres protocoles que IP
• Logiciels :
– Stations Eth : pas de logiciel spécifique
• ATM « transparent »
– Stations ATM, routeur IP, Commut ATM-Eth : LEC
• LAN Emulation Client
– Sur réseau ATM : « serveur » LANE
• LECS (Configuration Server)
• LES (LAN Emulation Server)
• BUS (Broadcast and Unknown Server)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 122
Architecture LANE : pbs à résoudre
Transformation @ Eth ? ? @ ATM
• Lorsqu’une station ATM se connecte sur le réseau
(A, B, commutateur ATM-Eth, routeur ATM IP)
– Elle connaît l’adresse ATM du Serveur LANE (config manuelle)
– Elle s’enregistre auprès du Serveur LANE :
• J’ai telle @ ATM
• J’ai, ou je connais les @ Ethernet suivantes …
• Lorsqu’une station ATM veut envoyer une trame
Ethernet à une station X
– Interroge le Serveur LANE : qu’elle est l’adresse ATM de la
station Ethernet X ?
– Le Serveur lui indique l’adresse ATM
– La station ouvre une connexion ATM avec la station ATM
– ….62
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 123
Architecture LANE : pbs à résoudre
Broadcast Eth ? Réseau mode connecté ATM
• Lorsqu’une station ATM veut envoyer un
broadcastEthernet
– Elle envoie la trame vers le Serveur LANE
– Celui-ci ouvre autant de connexions que de stations
ATM sur le LANE
– Il envoie la trame à toutes les stations ATM
• Ouverture-fermeture de connexion ATM
– Mécanismes de time -out pour ne pas trop ouvrir ou
fermer de connexions ATM
• On peut avoir plusieurs ELAN sur un réseau
ATM
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 124
ATM : bilan
• Très complexe :
– Cher
– Très délicat à faire fonctionner
• Utilisé en MAN et WAN par opérateur :
– Location de VC statiques entre 2 points (équivalent de LS)
• Reconfiguration lorsque location de nouvelles liaisons
• Garantit de bande passante
– Création de réseaux virtuels ELAN
• Utilisation en LAN
– Années 1995-2000
– Remplacé par Gigabit Ethernet maintenant
– Avantage restant : peut intégrer le téléphone (PABX)
• Utilisation en MAN et WAN
– Encore très utilisé
– Remplacé par DWDM, IP directement sur FO, …
• Bon exemple de réseau multiservices en mode connecté63
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 125
ATM exemple : réseau MAN (C3I2)
VPs C3I2 à
10 M, 20, 30, 35, …
selon les sites
VPs SAFIR
à 2, 4 ou 10 M
SAFIR
France
C3I2
Grenoble
INRIA
Montbonnot
Domaine
universitaire
INPG
Felix Viallet
CNET
Meylan
CEA
Polygone
CNRS
Paris
Jussieu
Lyon
La Doua
Rouen
Crihan
Toulouse
CICT
CEA
Saclay
Sophia
INRIA
EDF
Clamart
Liaison interne
au site à 155 M
Prise C3I2 à 155 M
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 126
Ex d’architecture : dorsale Jussieu64
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 127
Ex d’architecture : tour
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 128
Ex d’archi : interco 2 bâtiments distants65
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 129
Ex d’archi : interco 2 bâtiments distants
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 130
Ex d’archi : RAP : MAN
• Réseau Académique Parisien
• Universités, CNRS, INSERM, …
– 300 000 étudiants – 40 000 personnels
– 99 sites Paris intra-muros
• Réseau privé : ART …
• 5 POP (Point Of Presence)
– Jussieu (27 sites)
– Odéon (34 sites)
– Auteuil (15 sites)
– Malesherbes (10 sites)
– CNAM (13 sites)
• Ouverture: été 200266
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 131
Ex d’archi : RAP : câbles
• Fibre noire : Single Mode G652
– 69 sites
– Lg totale (liaison) : 356.1 km
– Métro : 312 km
– Egouts : 33 km
– Génie civil : 0.3 km
– Plus petite liaison : 1 km, plus grande : 9.6 km
• BLR (Boucle locale radio)/ S-HDSL (« ADSL »
particulier)
– 23 sites à 2 Mbits/s
• Faisceaux hertziens
– 2 sites proches de Paris
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 132
DWDM
Infrastructure
de transport optique
Ex d’archi : RAP : services réseau
Data, voice, vidéo, multimédia, VPN …
ATM
SDH/SONET
Ethernet
IP
DWDM
Infrastructure
de services
Services67
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 133
Ex d’archi : RAP : Architecture
Odéon
W
W
E
E
Auteuil
Jussieu E
dwdm
dwdm
dwdm
cr
cr
cr
s-atm
s-atm
Site F Eth 100
Gigabit Ethernet
ATM OC12
GigaEthernet
8410 m
3100 m
W W E
E
Malesherbes
dwdm
s-atm
cr
dwdm
cr
s-atm
Site A
Site D
Site C
c
c
NRD
ATM
IP
5082 m
8672 m
5120 m
ATM OC3
Eth 100
10 longueurs d’onde
20 réseaux optiques virtuelsSP SP
Site B
s-atm
s-atm
gw-rap
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 134
Architecture logique IP : plan
Dans ce chapitre : réseau = réseau IP
• Adresses IP
• Affectation statique ou dynamique (DHCP)
• Plan adressage IP
• Routage IP
• Exemple de répartition d’utilisateurs et de
services
• Architecture ATM : classical IP68
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 135
Architecture IP : réseaux IP
Station M
Routeur
COMM
Eth
Station G
Station H
COMM
Eth Station J
Routeur
Station C
Station A
hub Station B
Station N hub Station O
Routeur Station P
Station Q
Station R
LS 1 M
256 Kb/s
Station L
hub
Fournisseur d’accès
Internet
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 136
Architecture IP : adresses
• Une adresse IP par coupleur (machine, routeur)
• Format : 4 octets notation décimale A.B.C.D
– Ex : 130.190.5.3 193.32.30.150
• Une adresse doit être unique au monde
– Pour l’accès depuis l’Internet
• ? Surtout pour les serveurs
– Pas obligatoire pour les stations clientes Internet
• ? Intervalles d’adresses locales
• 2 ou 3 parties dans une adresse IP :
– @ de réseau – (@ sous-réseau) - @ machine
• Elément qui sépare 2 (ou +) réseaux ou sousréseaux
IP : routeur (ou commut-routeur)69
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 137
Archi IP : @ (ancienne classification)
• Classe A : A.B.C.D avec A ? 127
– 1er octet : @ de réseau : 126 réseaux possibles
– Reste : 254 x 254 x 254 (16 M) machines adressables
– Ex : DEC : 16.0.0.0 MIT : 18.0.0.0
• Classe B : 128 ? A ? 191
– 2 premiers octets : @ de réseau
• 64 x 254 : 16 000 réseaux possibles
– Reste : 254 x 254 (64 000) machines adressables
– Ex : IMAG : 129.88.0.0 Jussieu : 134.157.0.0
• Classe C : 192 ? A ? 223
– 3 premiers octets : @ de réseau
• 31x 254 x 254 (2 M) de réseaux possibles )
– Dernier octet : 254 adresses de machines
• IBP : 192.33.181.0 CITI2 : 192.70.89.0
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 138
Archi IP : sous-réseaux (subnets)
• Sous-réseaux : découpage d’un réseau IP (classe A, B, C)
• Les sous-réseaux d’un même réseau (subnetté) devaient
avoir une taille identique (contrainte routeurs) :
– Masque de subnetspécifiait le découpage
– Bits qui désignent la partie réseau + sous-réseau = 1
– 192.33.181.0 découpé en 4 sous-réseaux
• Masque 255.255.255.192
• 192.33.181.0-192.33.181.63
• 192.33.181.64-192.33.181.127
• 192.33.181.128-192.33.181.191
• 192.33.181.192-192.33.181.255
• Les routeurs permettent maintenant de créer des sousréseaux
de tailles différentes
• Les sous-réseaux sont connexes
– Non séparés par un autre réseau IP
– Découpage en sous-réseaux n’est connu que du propriétaire du
réseau (site, entreprise, provider, …), pas de l’Internet70
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 139
Archi IP : classless
• Pour obtenir une adresse de réseau (unique)
– Auprès de son fournisseur d’accès à l’Internet
– AFNIC (France) – RIPE (Europe)
– Classe A : impossible
– Classe B : presque impossible (épuisé)
– Classe C ou partie de Classe C : OK
• Nouvelle notation et découpage : classless
– Réseau 129.88.0.0 ? Réseau 129.88/16
– Réseau 192.33.181.0 ? Réseau 192.33.181/24
– Réseaux (sous-réseaux avant)
• 192.33.181.0/26 : 192.33.181.0-192.33.181.63
• 192.33.181.64/26 : 192.33.181.64-192.33.181.127
• 192.33.181.128/26 : 192.33.181.128-192.33.181.191
• 192.33.181.192/27 : 192.33.181.192-192.33.181.223
• 192.33.181.224/27 : 192.33.181.224-192.33.181.255
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 140
Archi IP : @ particulières
• Classe D : 224? A ? 239 : multicast
– 224.10.15.3 : ? groupe de stations sur l’Internet (n’importe où)
• Classe E : 240 ? A ? 254 : utilisation ultérieure
• Adresses locales (ne doivent pas sortir sur l’Internet)
– 10.0.0.0 à 10.255.255.255 : 10/8
– 172.16.0.0 à 172.31.255.255 : 172.16/12
– 192.168.0.0 à 192.168.255.255 : 192.168/16
• Loopback (soi-même) : 127.0.0.1
• 0.0.0.0 : quand station ne connaît pas son adresse
• 130.190.0.0 : le réseau 130.190/16
• 130.190.255.255 : broadcast
– Toutes les machines du réseau 130.190/1671
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 141
Archi IP : Affection @ IP à une station
• Configuration statique
– Unix : commande ifconfig
– Windows (2000 pro) : panneau de conf – connexion réseau –
TCP/IP
• Configuration dynamique : DHCP
– Serveur DHCP (Dynamic Host Configuration Protocol) dans un
réseau IP avec une plage d’adresses à attribuer
– Station sans adresse IP fait une demande DHCPDISCOVER
• @ IP source 0000 @IP dest 255.255.255.255
• Contient @ Ethernet et nom de la station
– Serveur DHCP répond :
• Adresse IP - Masque de sous-réseau – informations de routage
• Adresses DNS – Nom de domaine
• Durée du bail
– Explication simplifiée (plusieurs serveurs DHCP possibles, …)
– Avantage : pas de conf sur stations, portables, économie d’@
– Désavantage : qui est qui ?
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 142
Archi IP : pbs adresses IP
• Adressage ni hiérarchique, ni géographique
– Tables de routages énormes au cœur de l’Internet
– Distribution des adresses
• Au compte-goutte (maintenant bataille commerciale)
• Uniquement 4 bytes (et certaines plages vides)
? Pénurie d’adresses
– FAI : adresses dynamiques aux clients
– Entreprises – FAI :
• Adresses locales sur réseau privé
• NAT : Network Address Translation
– Et PAT : Port Address Translation
– IPv672
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 143
Archi IP : plan d’adressage
• Un routeur sépare 2 (ou plus) réseaux ou sous-réseaux IP
• Il faut construire un plan d’adressage
– Découper l’espace d’adressage dont on dispose en sous-réseaux
et le répartir entre les stations
• Eléments à prendre en compte :
– Les routeurs séparent les sous-réseaux
• Proximité géographique des stations
• Ou non si VLAN
– Dans un sous-réseau on est dépendant de son voisin
• Broadcast Ethernet par exemple
– On regroupe dans un même sous-réseau les stations qui
travaillent entre elles (d’un service par exemple)
• La majorité du trafic reste local au sous-réseau (évite de charger les
autres sous-réseaux
• Profils de connexion et de sécurité identiques
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 144
Archi IP : plan adressage 192.33.181/24
192.33.181.129
Routeur 3
COMM
Eth
192.33.181.141
192.33.181.142
COMM
Eth 192.33.181.200
Routeur 2
192.33.181.67
192.33.181.65 (B)
hub
192.33.181.66 (A)
192.33.181.2 hub 192.33.181.3
Routeur 1
192.33.181.5
192.33.181.201
192.33.181.202 (C)
LS 1 M
256 Kb/s
192.33.181.130
hub
Fournisseur d’accès
Internet
192.33.181.0/26
192.33.181.64/26
192.33.181.128/26
192.33.181.192/27
192.33.181.224/27
Quelles @ manquent ils ?73
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 145
Archi IP : plan adressage 192.33.181/24
192.33.181.129
Routeur 3
COMM
Eth
192.33.181.141
192.33.181.142
COMM
Eth 192.33.181.200
Routeur 2
192.33.181.67
192.33.181.65 (B)
hub
192.33.181.66 (A)
192.33.181.2 hub 192.33.181.3
Routeur 1
192.33.181.5
192.33.181.201
192.33.181.202 (C)
LS 1 M
256 Kb/s
192.33.181.130
hub
Fournisseur d’accès
Internet
192.33.181.0/26
192.33.181.64/26
192.33.181.128/26
192.33.181.192/27
192.33.181.224/27
192.33.181.203
192.33.181.231
192.33.181.10
192.33.181.230
192.33.181.80
192.33.181.150
192.33.181.145
X
Pour l’administration des équipements, il en manque d’autres …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 146
Archi IP : routage IP
• A (192.33.181.66) veut envoyer un datagramme IP à B
(192.33.181.65)
– Pb : A doit envoyer une trame Ethernet mais ne connaît l’@ Eth
B
– Elle envoie un broadcast Ethernet sur le réseau qui demande :
quelle est l’@ eth de B ? (l’@ Eth de A est spécifiée dans la trame
Ethernet : @ Eth origine)
– B répond à l’@ Eth A en disant : je suis 192.33.181.65 et mon
adresse Ethernet est @ Eth B
– A peut alors envoyer alors les datagrammes IP dans des trames
Ethernet (elle connaît l’@ Eth de B)
– Mécanisme : ARP – RARP
• A (192.33.181.66) veut envoyer un datagramme à C
(192.33.181.202)
– Elle doit envoyer une trame Eth au routeur 2 : 192.33.181.80
– Il lui manque cette information ? Information de routage74
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 147
Archi IP : routage IP
• Chaque station doit être configurée pour spécifier
– Son adresse IP (Commande Unix ifconfig)
– L’adresse du sous-réseau sur laquelle elle est (Commande Unix
ifconfig)
– Une table (de routage) qui indique comment atteindre les autres
réseaux (Commande Unix route add)
• Exemple A
– @ IP : 192.33.181.66 - @ Réseau : 192.33.181.64/26
– Routes (numéro IP du prochain routeur destinataire) :
• 192.33.181.128/26 ? 192.33.181.80
• 192.33.181.224/27 ? 192.33.181.80
• 192.33.181.192/27 ? 192.33.181.80
• 192.33.181.0/26 ? 192.33.181.80
• Reste du monde (default route) ? 192.33.181.80
• La route par défaut (default route - default gateway) suffit
• Toutes les stations doivent être configurées
– Ex : mon PC dans panneau de configuration …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 148
Archi IP : routage IP
• Les routeurs aussi doivent être configurés
– Par port : @ IP, @ Réseau (ou sous-réseau)
– Table routage
• Exemple routeur 3 :
– Port 1 : 192.33.181.230 - réseau 192.33.181.224/27
– Port 2 : 192.33.181.145 – réseau 192.33.181.128/26
– Port 3 : 192.33.181.203 – réseau 192.33.181.192/27
– Port 4 : X – réseau Y
– Table routage
• Route 192.33.181.64/26 ? Port 2 : 192.33.181.150
• Route 192.33.181.0/26 ? Port 1 : 192.33.181.231
• Route default ? Port 4 : routeur du fournisseur d’accès
• Exemple : envoi datagramme B ? C75
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 149
Archi IP : routage IP
• Routage statique
– Mise à jour tables de routage : manuelle
– ICMP redirect : Ce n’est pas ici c’est ailleurs
– Problème : intervention manuelle
• Quand le réseau évolue : modification manuel des tables
• Quand plusieurs chemins possibles et coupures
– Utilisé généralement au niveau des stations, dans
certains routeurs d’extrémités
• Routage dynamique
– Protocoles entre routeurs et entre routeurs et stations
pour mettre à jour automatiquement les tables de
routages : annonces de routes
– Ex : RIP, OSPF, BGP
– Cf cours sur le routage
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 150
Archi IP : routage IP
• L’Internet ne fonctionnerait pas sans bons
protocoles de routage et sans experts pour les
faire fonctionner
• C’est une problématique surtout d’opérateurs
Internet
– A laquelle s’ajoutent les accords de peering
• Routeurs doivent être très rapides
– Traitement du routage directement en ASIC
• Routeurs au cœur de l’Internet : doivent
connaître toutes les routes : impossible ?
Agrégation de plages d’adresses de réseaux IP
• On n’est pas obligé d’avoir une route par défaut
sur tous les équipements : sécurité76
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 151
Archi IP : répartition d’utilisateurs
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 152
Architecture ATM : classical IP
• Objectif :
– Utiliser un réseau ATM pour transporter des
datagrammes IP
• RFC 1483
– Comment encapsuler (transporter) les datagrammes
IP dans des cellules ATM
• RFC 1577
– Comment construire un réseau IP sur un réseau ATM
– Pb ARP par exemple77
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 153
Architecture ATM : classical IP
Commutateur
ATM
Commutateur
ATM
Commutateur
ATM
Réseau ATM
Station IP A
ATM
A
T Routeur IP
M
ATM
Routeur IP
Routeur IP
ATM
Routeur IP
ATM
hub Station IP Eth
Station IP Eth
Station IP Eth
hub Station IP Eth
Station IP Eth
Station IP Eth
hub Station IP Eth
Station IP Eth
Station IP Eth
hub Station IP Eth
Station IP Eth Station IP Eth
Station IP B
ATM
hub
Station IP Eth
Station IP Eth
Serveur ARP
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 154
Architecture ATM : classical IP
• Un sous-réseau IP dans un réseau ATM
– Un serveur ARP
– Gère une table @ IP ? ? @ ATM
• Lorsqu’une station ATM IP se connecte
– Elle connaît l’@ ATM du serveur ARP
• Configuration manuelle
– Elle s’enregistre auprès du serveur ARP
• Indique son adresse ATM et son adresse IP
• Lorsqu’une station ATM-IP veut émettre un
datagramme IP vers une autre station ATM-IP
– Demande au ARP Serveur l’@ ATM de la station IP
– Ouvre un VC avec cette station ATM
– …78
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 155
Architecture ATM : classical IP
• Lacunes :
– Pas de broadcast ou multicast IP
– Un seul serveur ARP : pas de redondance : pb si panne
• On peut avoir plusieurs sous-réseaux IP sur un réseau
ATM :
– Passe par un routeur ATM-IP pour communiquer
• ATM complexe avec IP :
– Mode non connecté (IP) avec techno en mode connecté (ATM)
• Rq : sur un même réseau ATM on peut avoir :
– Des VC ou VP permanents (ouverts en permanence) :
• LS informatique : interconnexions LANs
• Interconnexions PABX
– Des ELAN (plusieurs LANE)
– Des sous-réseaux IP
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 156
MPLS : buts
• MPLS : Multi Protocol Label Switching
• Protocole pour opérateurs de WAN IP
• Lacunes d’un réseau WAN IP « classique »
– Travail d’un routeur important
• Il doit étudier chaque datagramme
• Il doit extraire l’@ IP destinatrice du datagramme IP, consulter sa
table de routage et agir en conséquence
– Pas de partage de charge entre plusieurs liaisons
• Il n’y a qu’une route par destination
– Pas de routage qui tiendrait compte de qualités de
service demandées79
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 157
MPLS
• Les routeurs en bordure de réseau ajoutent (et
enlèvent) une étiquette aux datagrammes selon :
– La route que devra emprunter le datagramme
– La classification du datagramme
• Prioritaire ou non, pour application avec QoS, …
• Les routeurs au cœur du réseau routent selon
cette étiquette
– Rapide (plutôt de la commutation que du routage)
• Protocole pour mettre à jour les tables de
routage des routeurs au cœur du réseau :
– Une fois par « flot »
– Choix de route / étiquette donc / origine, QoS, …
– Réservation de bande passante possible
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 158
Intégration téléphonie – informatique
• Intégration voix - données
• Intégration possible car :
– Téléphone et informatique utilisent :
• Mêmes câbles (FO, TP) et ondes (hertziennes ou radio)
• Eléments actifs similaires : les téléphones sont maintenant numériques
– Ordinateurs :
• Equipés de microphone et hauts-parleurs
• Pourraient remplacer les postes téléphoniques : poste « unique »
• Pourquoi intégrer ? : faire des économies
– En réseau d’entreprise
• Infrastructure et matériel : même réseau (plusieurs sens à réseau)
• Même équipe d’administration
– Dans les réseaux des opérateurs : mêmes économies
– Au niveau des utilisateurs : économies sur les communications
téléphoniques longues distances
• Le coût d’une communication téléphonique dépend de la distance
• Le coût d’une « communication » Internet est indépendante de la
distance80
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 159
Intégration voix-données
• Pourquoi intégrer ? : apporter des nouveaux services
– Evolution des services informatiques
• Chat, mail ? mode de communication vocal (téléphonique)
– Evolution des services téléphoniques
• Communication téléphonique ? transfert de documents, vidéo, …
– Intégration des services
• Annuaires : « téléphoniques » et informatiques (LDAP)
• Messageries : vocales et électroniques
• Comment intégrer ?
– Normes existent : H323, SIP
– Solutions techniques (matériels) existent
– Législation s’assouplit : dérégulation du téléphone
– Différents niveaux d’intégration : tranchées ? réseau et services
• Rappel : contraintes téléphone :
– QoS (voir chapitre ATM précédent) difficiles sur réseau IP
– Existant qui fonctionne parfaitement : PABX à faire évoluer
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 160
Voix-Données : niveaux d’intégration
• Mêmes tranchées, fourreaux, goulottes … (chemins de
câbles) sur un site
2 câblages (et équipements actifs) différents
– 2 réseaux physiques donc logiques différents
– 2 administrations différentes
– Fait depuis plusieurs années entre les bâtiments
– Maintenant en pré-câblage de bâtiment
• Câblage courants faibles
• LS longue distance partagée entre 2 sites
– Interconnexion de PABX
– Interconnexion de LAN (routeurs, commutateurs, ponts)
– Ex : LS 2 Mb/s (MIC) ou hertzienne ou laser éclatée
(multiplexeur et dé-multiplexeur)
• 1 M (16 voix téléphoniques) pour PABX
• 1 Mb/s pour interconnexion de LAN81
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 161
Voix-Données : niveaux d’intégration
• Partage d’un réseau ATM
– VP pour PABX
– VP pour informatique (routeurs, commutateurs)
– FT et les autres opérateurs le font
• Utilisation du réseau téléphonique pour les
données
– Externe (RTC national) ou interne à l’entreprise
– Ordinateur (ou routeur) – Modem – Réseau
téléphonique – Modem – Ordinateur (ou
concentrateur ou routeur ou …)
– V90 (56.6 Kb/s), RNIS (2x64 Kb/s), ADSL (… 1 Mb/s)
• Utilisation du réseau IP pour la voix
– Téléphonie sur IP
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 162
Voix-Données : Tél / IP : services rendus
• Connexion ordinateur – ordinateur (application voix)
– Ordinateur – Réseau IP (Eth, PPP) – Ordinateur
– Netmeeting par exemple
– Un réseau logique différent du réseau téléphonique
• Pas de communication possible avec postes t éléphoniques classiques
– Intéressant pour longues distances
• Economies en coût de communication
• Connexion PABX – PABX
– Téléphones – PABX – passerelle – Réseau IP (Eth, ATM, PPP) –
passerelle – PABX – Téléphones
– Pas de communication téléphonique possible avec ordinateur
connecté dans le mode précédent
– Intéressant si bonne infrastructure IP (beaucoup de débit)
• Intégration totale : « le tout IP»
– Communications postes téléphoniques - ordinateurs possibles82
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 163
Voix-Données : Tél / IP : H323
• Origine : monde des téléphonistes ITU
• Ensemble complet de standards
– Architecture et fonctions d’un système de vidéo-conférence
– Sur réseaux en mode paquet (sans connexion), sans garantie de
QoS comme IP (mais pas uniquement pour IP)
• IP : RTP
– Real-time Transport Protocol
– Transport flux temps réel : vidéo, audio, … dans UDP
– Ajoute des informations pour que le récepteur compense :
variation latence, arrivée de datagrammes dans le désordre, …
• Type de données transport ées
• Horodatage
• Numéro de séquence
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 164
Voix-Données : Tél / IP : H323
• IP : RTCP
– Real-time Transport Control Protocol
– Permet d’avertir l’émetteur de la qualité de la
transmission :
• Le taux de paquets perdus
• La variation de la latence
• …
– Informations sur l’identité des participants
(applications multicast)
• Eléments (matériels ou logiciels)
– Terminal H323 :
• Ordinateur avec netmeeting
• Téléphone sur IP (H323)
• …83
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 165
Voix-Données : Tél / IP : H323
• Eléments (matériels ou logiciels) suite
– Passerelle : entre réseau IP et RTC (ou RNIS)
• Interfaces :
– Ethernet ? réseau IP
– Ports TP ? téléphones classiques ou PABX
• Codage/décodage voix, mise en paquets, suppression d’écho, …
– Garde-barriè re : administration
• Gestion des @adresses : IP ?? E164 (téléphoniques)
• Contrôle les accès
• Peut refuser des appels si bande passante insuffisante
• Contrôle une zone (H323)
– MCU-Pont : Multicast Control Unit : téléconférence
• Gère Multicast
– Transmet avec adresse IP multicast si le réseau le permet
• Ouvre n « connexions » point à point
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 166
Voix-Données : Tél / IP : H323
• Exemple de réseau H323 (entre 2 sites)
Réseau IP (Internet)
Routeur
Routeur
hub Station (H323)
Station (H323)
Téléphone sur IP
(H323)
Passerelle
PABX
Téléphone
analogique
Téléphone
RTC analogique
hub Station (H323)
Téléphone sur IP
(H323)
Passerelle
PABX
Téléphone
analogique
RTC
Garde-barrière84
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 167
Voix-Données : Tél / IP : SIP
• SIP : Session Invitation Protocol
• Origine : IETF : Informatique
• Gestion de sessions multimedia avec 1 ou n
participants
• Adresses : sip:bob@193.10.3.1
• Utilise RTP au-dessus de UDP ou TCP
• Station IP ?? Station IP : le protocole définit
– Appel – Négociation des paramètres
– Communication
– Fermeture de connexion
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 168
Voix-Données : Tél / IP : SIP
• Autres services
– Location server (registrar)
• Pour qu’un client puisse s’enregistrer quand il change d’adresse
IP (mobile, ISP avec adresse dynamique par exemple)
– Proxy server
• Serveur d’un côté (reçoit les appels)
• Client de l’autre (émet des appels)
• Pourquoi ? : Point de contrôle, de facturation
– Redirect server
• Reçoit des appels
• Indique la bonne destination à laquelle s’adresser : proxy , …
• Peut permettre de gérer la répartition de charge entre plusieurs
serveurs
• SIP beaucoup plus basique que H32385
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 169
Voix-Données : bilan aujourd’hui
• Constat : la téléphonie ce n’est pas simple
– Besoin de QoS et habitude de bonne qualité
– Fonctionnalités des PABX et postes téléphoniques sont
maintenant complexes : numéros abrégés, transfert d’appel,
téléconférence, messagerie vocale, …
– 2 équipes d’exploitation avec des cultures différentes
• Téléphonistes - informaticiens
• ? Intégration prudente
– Années 1999-2000 : on va tout mettre sur IP
– Aujourd’hui : on peut basculer certaines parties
• Elt nouveau : arrivée massive du téléphone portable
– Habitude de communications de moins bonne qualité
• Comme le transport de la voix sur un réseau « Best Effort » IP
– Portabilité sans comparaison avec ordinateur portable
• Ne va pas dans le sens d’un terminal unique : téléphone-ordinateur
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 170
Voix-Données : bilan aujourd’hui
• Dans entreprise :
– Dépend de l’historique et de la culture
– Intégration des 2 équipes d’exploitation ?
• Généralement :
– L’utilisateur conserve 2 équipements : téléphone et
ordinateur
– Les infrastructures réseaux d’extrémité (câblage
horizontal) sont différentes mais chemins identiques
• Poste téléphonique : câblage téléphonique ? PABX
• Ordinateur : câblage informatique ? hubs, commutateurs, …
– Interconnexion de PABX sur IP : solution de + en +
déployée
• Car débits du réseau données >> réseau téléphonique
• Avec back-up RNIS par exemple86
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 171
Voix - Video : n participants
• N vers n : réunions avec participants distants :
– Téléconférence (voix uniquement)
• Service FT (équivalent d’un MCU)
• Poste téléphonique habituel ou matériel dédié
– Matériel de visio-conférence (voix + image)
• H323 sur RNIS ? H323 sur IP
• Matériel dédié
• Netmeeting + Webcam
– Multicast IP :
• V IC-RAT + Webcam
• Réseau multicast
• Académique surtout
• 1 vers n : Visio-conférence (sans question de la salle)
– Idem ci-dessus
– Streaming : realplayer
• Unicast ou multicast IP
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 172
Réseaux virtuels : plan
• Pourquoi ?
• VLAN :Virtual LAN
• Avec ATM
• VPN : Virtual Private Network
– PPTP
– L2TP
– IPSEC87
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 173
Réseaux virtuels : pourquoi ?
On regroupe dans un même réseau (Ethernet commuté ou
IP) les stations qui travaillent ensemble (groupe de
travail - workgroup). Conséquences :
• Les applications « groupe de travail » :
– Qui ont besoin de découvrir les serveurs (contrôleur de domaine,
voisinage réseau, imprimantes, serveur DHCP, zone Mac, …)
– Et ces serveurs qui ont besoin d’émettre des messages vers toutes
les stations du groupe de travail
Utilisent les broadcasts Ethernet ou IP
• Le groupe qui a les mêmes besoins de sécurité :
– Contrôle l’accès entrant sur le réseau à la frontière du réseau
(routeur d’accès)
– Est assuré de la confidentialité par rapport à l’extérieur du
groupe car il n’y a pas diffusion à l’extérieur du réseau
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 174
Réseaux virtuels : pourquoi ?
• Le groupe qui à les mêmes besoins de connectivité depuis
et vers l’extérieur :
– Effectue un contrôle d’accès sortant à la frontière du réseau (sur
le routeur d’accès)
– Peut mettre en place une limitation de la bande passante utilisée
vers l’extérieur au point de sortie
• Le groupe peut avoir le même adressage IP et des noms
de stations dans le même domaine :
– Réalisé de fait dans un réseau IP
• Problème : comment peut on avoir les mêmes services
avec un groupe géographiquement dispers é ?
• Solution : avec des réseaux virtuels88
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 175
Réseaux virtuels : pourquoi ?
• Exemples de groupes dispersés
– Université UJF sur plusieurs sites à Grenoble et un à Valence
• Besoin de regrouper les sites dans un seul réseau logique
– Entreprise multi sites interconnectés par Internet :
• Même besoin
– Formation d’ingénieurs sur 2 sites ENSIMAG-ENSERG
• Même besoin
– Unité CNRS (UREC) sur 4 villes
• Même besoin
• Exemples de services dispersés
– Services administratifs (DR) du CNRS
– Services comptabilité d’une entreprise multi-sites
• Mais aussi des groupes mobiles
– Ordinateurs mobiles
– Déménagements, réorganisations ? éclatements géographiques
des équipes
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 176
Réseaux virtuels : principes
• Regrouper « logiquement » un groupe de stations
dispersées géographiquement
– Dans un même réseau : Ethernet ou IP ou …
• Buts :
– Utilisation d’applications « groupe de travail »
– Sécurité
– Contrôle de bande passante
– Noms et adresses IP
– Mobilité
• Plusieurs techniques suivant les buts, WAN/LAN, …
– VLAN
– ELAN
– VPN89
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 177
Réseaux virtuels : VLAN
• Virtual LAN
• But : créer un réseau virtuel de niveau 2
– Un domaine de broadcast (Ethernet)
• Possible avec des commutateurs Ethernet
– Pas avec des hubs
– Intelligence dans les commutateurs (et routeurs)
• Différents types de VLANs
– Par ports (de commutateur) : niveau 1
– Par adresse MAC (Ethernet) : niveau 2
– Suivant la valeur d’autres champs : niveau 3
• Protocole, @ IP, …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 178
Réseaux virtuels : VLAN par ports
Chaque port de commutateur est affecté à un VLAN
Exemple :
VLAN 1 : A,B,C,D,E,F,I,J
VLAN 2 : G,R,K,M,L
VLAN 3 : H,Q
Station L
Station K
hub
Commutateur
Routeur
COMM
Eth 1 Station F
Station G
Station H
COMM
Eth 2 Station J
Station I
Station E
Station D
hub
Station C
Station A
hub Station B
Station R Station Q
Station M
3 1
2 4
5
1
2
3
4
590
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 179
Réseaux virtuels : VLAN par ports
• Configuration VLAN de Eth 1 : 3 VLANS 1-2-3
– Port 1 = VLAN 1 Port 4 = VLAN 3
– Port 2 = VLAN 1 Port 3 = VLAN 2
– Port 5 = Voir après
– Quand Eth1 reçoit une trame de A (VLAN 1) :
• Envoie vers port 2 (et port 5 : cf après)
• Configuration VLAN de Eth 2 : 3 VLANS 1-2- »
– Port 1 = VLAN 1 Port 3 = VLAN 3
– Port 2 = VLAN 1 Port 4 = VLAN 2
– Port 5 = Voir après
– Quand Eth1 reçoit une trame de I (VLAN 1) :
• Envoie vers port 1 (et port 5, cf après)
• Configuration commutateur de Eth1 (idem Eth2) :
– Port 1 : @ MAC A, B, C, D, E
– …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 180
Réseaux virtuels : VLAN par port
• Diffusion
– Les équipements Eth1, Eth2 et le commutateurrouteur
font en sorte que :
• Quand A envoie un broadcast Ethernet ? A,B,C,D,E,F,I,J
(VLAN1)
mais pas vers les autres stations
• Pour communiquer entre Eth1, Eth2, Eth3
– Trame Ethernet F ? G impossible
• Datagramme IP : F ? Commutateur-routeur ? G
– Passe par routeur ou commutateur-routeur
• Remarque
– Cette segmentation peut aussi être réalisée par
brassage manuel dans le local technique où sont les
commutateurs : dans certains cas91
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 181
Réseaux virtuels : VLAN 802.1Q
• Problème : numéro de VLAN sur les truncks
– Schéma précédent : lorsque le commutateur Eth 2 reçoit une
trame Ethernet venant de A, pour savoir vers quelles stations il
doit la rediffuser il faut qu’il sache le numéro de VLAN dont A
est membre
– ? Il faut qu’il trouve cette information dans la trame
• Il faut que sur chaque lien entre les commutateurs
(truncks) les trames soient marquées (taggées)
– Protocoles propriétaires : ISL (CISCO)
– IEEE802.1Q
• Champ type Eth : 8100
• Champ numéro de VLAN : 12 bits (4096)
• Niveau de priorité : 3 bits ? QoS
• ….
• Informations de la trame initiale
• Schéma précédent : 802.1Q est activé entre Eth 1 –
Commut-Routeur – Eth 2
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 182
Réseaux virtuels : VLAN par @ MAC
Chaque station peut appartenir à un VLAN
suivant son adresse MAC
Exemple :
VLAN 1 : A, C, F, I, J, G
VLAN 2 : B, D, K, R
VLAN 3 : L, M, E, Q, H
Station L
Station M hub
Commutateur
Routeur 3
COMM
Eth 1
Station F
Station G
Station H
COMM
Eth 2 Station J
Station I
Station E
Station D
hub
Station C
Station A
hub Station B
Station K Station R Station Q
1
3 2
4
5
1
2
3 4
592
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 183
Réseaux virtuels : VLAN par @ MAC
• Configuration VLAN de Eth 1 : 3 VLANS 1-2-3
– VLAN 1 : @ MAC de A, C, F, G
– VLAN 2 : @ MAC de B, D, Q, R
– VLAN 3 : @ MAC de E, H
– Quand Eth1 reçoit une trame de A (VLAN 1) :
• Envoie vers port 2 (et port 5 : cf après)
• Configuration VLAN de Eth 2 : 3 VLANS 1-2- »
– Port 1 = VLAN 1 Port 3 = VLAN 3
– Port 2 = VLAN 1 Port 4 = VLAN 2
– Port 5 = Voir après
– Quand Eth1 reçoit une trame de I (VLAN 1) :
• Envoie vers port 1 (et port 5, cf après)
• Configuration commutateur de Eth1 (idem Eth2) :
– Port 1 : @ MAC A, B, C, D, E
– …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 184
VLAN par port ou par @ MAC
• Avantages VLAN @MAC / port
– Des stations sur des hubs peuvent appartenir à différents VLANs
• Mais la diffusion n’est pas sélective selon les branches des hubs
– On peut avoir des stations qui sont déplacées (déménagement
ou mobiles) sans besoin de reconfiguration
– On peut identifier chaque station avec son numéro de carte
Ethernet
• Sécurité accrue
• Si adresse MAC inconnue : appartient au VLAN « visiteurs »
• Désavantages VLAN par @ Mac
– Administration plus lourde
• Répertorier et tenir à jour des tables avec toutes les adresses MAC
– Si utilisateur change sa carte Ethernet : modification de
configuration93
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 185
Réseaux virtuels : VLAN niveau 3
• Affecter les trames Ethernet dans un VLAN
différent selon des champs que l’on trouve dans
la trame :
– Champ type Ethernet : protocole : IP, IPX, Appletalk,
…
– L’adresse IP origine : sous-réseau
• mais ce n’est pas du routage
– …
• Peut être utile quand de nombreux protocoles
sont utilisés sur un même réseau
– Support des « anciennes applications »
– De moins en moins utile
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 186
Réseaux virtuels : VLAN
• Commutateurs :
– Ils conservent leur fonction de base : commutation, sans diffusion
inutile
– Certains peuvent ne pas avoir de fonctionnalité VLAN
– Dans les exemples précédents les commutateurs ont la
fonctionnalité d’accepter plusieurs adresses Ethernet et VLAN
par port : ce n’est pas toujours le cas
• Routeurs :
– Peuvent supporter 802.1Q. Si non, il faut autant de cartes
Ethernet que de VLAN pour que le routeur route les VLAN
• Ex de VLANs dans un laboratoire
– 1 / par équipe de recherche pour stations de travail individuelles
– Administration (peut inclure la station de chaque secrétaire
d’équipe de recherche)
– Test : toutes les machines de test des différentes équipes
– Serveurs locaux
– Serveurs Internet
– Visiteurs94
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 187
Réseaux virtuels : VLAN
• Le travail d’administration de VLAN n’est pas
négligeable !
– Il faut bien connaître le réseau (et être plusieurs à le
connaître : pb absence)
– Il faut un outil d’administration
• Théorie : on peut utiliser des commutateurs de
différents constructeurs : IEEE802.1Q
• En pratique : commutateurs homogènes
– Avec un outil d’administration fourni par le
constructeur
• Les VLAN sont des réseaux virtuels pour LAN
– Pas pour MAN ou WAN
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 188
Réseaux virtuels : ATM
• Interconnexion de réseaux Ethernet
– ELAN : principe LANE (cf chapitre précédent)
• Utilisation de VPs ATM pour interconnecter des
bâtiments (LAN) ou des sites (WAN) :
– Réseaux Ethernet ou ATM
– Réseaux IP
– Fonctions :
• Sécurité : appelé aussi VPN ATM
• Garantie de qualité de service (débit / VP)
– Exemple : service ATM de Renater95
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 189
Réseaux virtuels : VPN : but
• VPN : Virtual Private Network
– Terme générique qui regroupe plusieurs techniques
• Relier 2 réseaux distants (ou une station et un réseau) via
un réseau ouvert (Internet) en garantissant :
• Les services de VLAN pour IP : même réseau logique IP
• Etendre le réseau interne
• Des services des sécurité :
• Confidentialité des informations transmises
• Intégrité des données (données non modifiées par un tiers)
• Authentification de l’émetteur et du destinataire (au sens station ou
routeur)
• Sans rechercher une qualité de service particulière (débit …)
• Eviter des infrastructures dédiées à base de LS
– Réduction de coût en utilisant un réseau partagé
• Utilisation du tunneling (tunnelisation)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 190
Réseaux virtuels : VPN : tunnels
• Un tunnel transporte des données entre 2 points
sans que les éléments entre les points
« perturbent » ce transport
– Réseau de transport : transparent
• Entre 2 réseaux ou entre station-serveur
Réseau 1
Réseau 2
Internet Station A
Serveur 1
Station B 96
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 191
Réseaux virtuels : VPN : tunnels
• Encapsulation
– En entrée de tunnel : données insérées (encapsulées) dans un
paquet du protocole de tunnelisation
– En sortie : données extraites : retrouvent leur forme initiale
– Tunnel IP véhiculant des datagrammes IP
• Entête
– @ IP Origine : @ IP entrée du tunnel
– @ IP Destinatrice : @ IP sortie du tunnel
– Protocole : tunnel : par ex : GRE
• Données : datagramme initial IP
– Entête : @ IP station origine - @ IP station destinatrice
– Données
• Plusieurs méthodes et protocoles
– PPTP (RFC2637)
– L2F (RFC2341)
– L2TP (RFC2661)
– IPSEC
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 192
Réseaux virtuels : VPN : PPP
• PPP : Point to Point Protocol
– Permet de transporter des datagrammes IP sur une
liaison point à point (RTC, LS par exemple)
– Mais aussi d’autres protocoles que IP
– Fonctionnalités supplémentaires :
• Authentification des extrêmités : PAP ou CHAP
– Avant tout transfert de données
• Chiffrement des données (confidentialité et intégrité)
• Adressage IP dynamique
• Compression
• …97
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 193
Réseaux virtuels : VPN : PPTP
• PPTP : Point-to-Point Tunneling Protocol
• Origine Microsoft
• VPN surtout sur réseau commuté pour accès particulier
– Station isolée ? LAN entreprise
• Encapsulation IP, IPX, … ? PPP ? GRE ? IP
– Pas uniquement IP
• La station isolée semble appartenir au LAN de
l’entreprise
– Elle peut avoir une adresse IP dans le sous-réseau IP du LAN,
comme si elle était une station du réseau interne
– Elle voit les autres stations du LAN comme si elle était connectée
sur le LAN
– Elle a les mêmes droits d’accès aux ressources du LAN qu’une
station du LAN (serveurs de fichiers, imprimantes, …)
– Elle utilisera la sortie Internet de l’entreprise pour accéder à
l’Internet
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 194
Réseaux virtuels : VPN : PPTP
• Le chemin entre la station et le LAN est sécurisé
– En utilisant les fonctions optionnelles de PPP
– Authentification
– Chiffrement
• Mais il faut bien configurer le serveur PPTP
pour que des stations pirates ne puissent pas se
connecter sur le LAN
• Serveur PPTP
– Serveur NT, Linux, …
– Serveur d’accès PPTP - Routeur
• Client PPTP
– Windows NT, 95/98 …, Linux, Mac, …98
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 195
Réseaux virtuels : VPN : PPTP
2 utilisations
LAN interne
193.51.3/24
Internet
Station
Client PPTP
193.51.3.2
Serveur
193.51.3.5
Serveur
PPTP
Station
Client PPTP
193.51.3.4
LAN interne
193.51.3/24
Internet
Station
Client PPP
193.51.3.2
Serveur
193.51.3.5
Serveur
PPTP
Station
Client PPP
193.51.3.4
Serveur d’accès PPP
Client PPTP
FAI
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 196
Réseaux virtuels : VPN : L2TP
• L2TP : Layer 2 Tunneling Protocol
– Réunion de PPTP et L2F (CISCO)
• Devrait remplacer PPTP
• 3 cas de configuration possibles :
– Tunnels L2TP : clients L2TP et serveur L2TP (idem
PPTP)
– PPP : clients PPP et FAI - Tunnels L2TP : FAI et
serveur L2TP (idem PPTP)
– LAN – Serveur L2TP – Tunnels L2TP – Serveur
L2TP - LAN
• Sécurité
– Utilisation possible des fonctions de PPP
– Pour protéger le tunnel : IPSec 99
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 197
Réseaux virtuels : VPN : IPSec
• IPSec : IP Security Protocol
• IETF : Pour mettre un peu d’ordre dans les différentes
méthodes de tunneling et de sécurisation
• Sécurisation des échanges au niveau IP
– Chaque datagramme est authentifié et/ou chiffré
• Inclus dans IPv6 (intégré dans toutes les piles IPv6)
• Optionnel dans IPv4
• Evolution majeure de IP
• Peut-être mis en œuvre sur tout équipement IP
– Routeur, serveur, station de travail, …
• Peut-être mis en œuvre de bout en bout ou sur un
tronçon du chemin
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 198
Réseaux virtuels : VPN : IPSec
• Entêtes ajoutés :
– AH : Authentication Header
– ESP : Encapsulation Security Payload
• Datagramme avec AH
– Entête IP – AH – (Entête TCP/UDP – Données) en clair
• AH (Authentication Header)
– SPI : Security Parameter Index ? SA (Security Association)
• Index d’une table qui pointe sur tout ce qui est nécessaire au récepteur
pour interpréter cette entête : algorithmes de crypto utilisés …
– Numéro de séquence
• Evite le rejeu du datagramme
– Signature électronique du contenu du datagramme (? entête IP)
• Checksum chiffré
• Garantit intégrité et authentifie l’origine100
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 199
Réseaux virtuels : VPN : IPSec
• Datagramme avec ESP
– Entête IP – Entête ESP – (Entête TCP/UDP – Données) chiffrés –
[Authentication ESP]
• Entête ESP (Encapsulation Security Payload)
– SPI : Security Parameter Index ? SA (Security Association)
– Numéro de séquence
• Authentification ESP
– Optionnelle
– Signature – authentification : checksum chiffré : similaire AH
• AH inclut l’entête IP pas ESP
• Utilisé en mode tunnel pour la signature (pas AH)
• 2 Modes d’utilisation
– Mode transport
– Mode tunnel
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 200
Réseaux virtuels : VPN : modes IPSec
• Mode transport
– L’entête IP d’origine n’est pas contenue dans
l’encapsulation
– Entête IP – AH – Entête TCP – Données
– Entête IP – ESP – (Entête TCP – Données) chiffrées
– Entête IP – AH – ESP – (Entête TCP – Données)
chiffrés
• Mode tunnel
– Entête IP (nouveau) – AH – Entête IP (origine) -
Entête TCP – Données
– Entête IP (nouveau) - ESP - (Entête IP (origine) -
Entête TCP - Données) chiffrées - [Authen ESP]101
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 201
Réseaux virtuels : VPN : IPSec tunnel
• Le mode tunnel permet les fonctionnalités des
VPN que l’on a vues :
– Stations distantes ou sous-réseau distant considérés
comme une partie du LAN (avec le même adressage)
– Sécurité dans le transport
Internet
Routeur
IPSec
Routeur
IPSec 194.21.2/24
194.21.2.3
194.21.2.5
194.21.2.4 IPSec
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 202
Réseaux virtuels : VPN : IPSec-Sécurité
Security associations : SA
• IPSec permet d’utiliser différents algorithmes, clés, … de
cryptographie
– Les 2 extrémités doivent se mettre d’accord
• Pour chaque connexion IPSec : 1 ou 2 SA
– Une SA pour AH
– Une SA pour ESP
• SA
– Algo d’authentification (MD5, …)
– Algo de chiffrement (DES, …)
– Clés de chiffrement
– Clés d’authentification
– Durée de vie des clés
– …102
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 203
Réseaux virtuels : VPN : IPSec
• Gestion des clés
– Manuelle
– IKE Internet Key Exchange (ancien nom : ISAKMP)
• Procédure pour que les 2 extrémités se mettent d’accord :
protocoles, algorithmes, clés
• Management des clés : fourniture de clés de manière sécurisée …
• IPSec
– Très solide, bien conçu et intégré dans toutes les piles
IPv6
– Devrait beaucoup se répandre
– Distinction Auth / Chiff : OK pour les législations
– Mais attention : sécurité IP (pas utilisateur …)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 204
Services de FT : plan
• LS (transfix), RNIS (numeris), ADSL : cf avant
• Interconnexion niveau 2 « traditionnelle » moyen débit
– Frame Relay
– Transrel
• Interconnexion niveau 2 haut-débit
– Turbo DSL
– Intra-Cité
– Inter LAN
– SMHD
– SMHD - Giga
– MultiLAN
• Services IP (pour entreprises)
– Les Classiques Oléane
– Global Intranet
– Global Extranet
– Collecte IP/ADSL103
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 205
Services FT : interconnexion
« traditionnelle » moyen débit
• Frame Relay
– Remplacement de X25 : réseau commuté commuté
avec circuits virtuels
– Débits de 19.2 Kb/s à 8 Mb/s
– Connexion réseaux FR d’entreprise
– Réseau international
• Transrel
– Service point à point
– Interconnexion de réseaux Ethernet, Token Ring
– Interfaces (équipements : ponts)
• Ethernet 10 ou 100 Mb/s
• Token Ring 4 ou 16 Mb/s
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 206
Services FT : interco HD : Turbo DSL
• Même zone (géographique)
• Agences ou particuliers ? Site central
• Liaisons permanentes
• Raccordement site central
– ATM 30, 60, 90 ou 120 Mb/s
• Raccordement extrémités
– ADSL jusqu’à 2 Mb/s – 320 Kb/s104
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 207
Services FT : interco HD : Intra-Cité
• MAN : Voix et données
• Boucle locale FT
• Connexions point à point (LS virtuelles) de 2
sites équivalents à 2 Mb/s, 10 Mb/s ou 100 Mb/s
• Interfaces
– G703 : PABX : 2 Mb/s
– Ethernet 10 ou 100BaseT : 2 Mb/s, 10 Mb/s, 100 Mb/s
• Connexion entreprise
– PABX, routeur IP, commutateur Ethernet
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 208
Services FT : interco HD : Inter LAN
• MAN : données
• Client : PME (petit budget)
• Connexions point à point (LS virtuelles) ou multipoint de
sites équivalents à 2, 4, 20, 40, 60, 100 Mb/s
• Interfaces
– Ethernet 10 ou 100BaseT ou GigaEthernet
– ATM
• Différents niveaux de « qualité de débit »
– Débit minimum garanti (on peut avoir plus si réseau peu chargé)
– Débit permanent garanti
– Débit non garanti (?)
• Connexion entreprise
– Routeur IP, commutateur Ethernet, commutateur ATM105
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 209
Services FT : interco HD : SMHD
• MAN : n sites
• SMHD : Service Multisites Haut-débit
– Protocole SMDH
– Boucle FO MAN dédiée à 155, 622 ou 2.5 Gb/s
– Sécurisation : chaque site est raccordé avec 2
parcours différents
• Les sites se partagent la bande passante de la
boucle
• Liaisons permanentes ou temporaires entre sites
– 2, n x 2, 34, 45 ou 155 Mb/s
• Interfaces
– G703, Ethernet 10 et 100 Mb/s
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 210
Services FT : interco HD : SMHD Giga
• Nouveau
• MAN – 3 sites minimum
• Technologie DWDM
– Multiplexage optique
– Ce n’est donc pas le protocole SMHD
• Liaisons (jusqu’à 32 par lien)
– 622 Mbps ? 2.5 Gigabit/s
– Très hauts débits
• Interfaces d’accès
– Fast Eth, Giga Eth, Fiber Channel, ..
• Bientôt 10 Gigabit/s106
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 211
Services FT : interco HD : MultiLAN
• WAN : 92 villes françaises et aussi international
• Raccordements (physiques) : 2, 34 ou 155 Mb/s
• Connexions point à point (LS virtuelles) de débits de 256
Kb/s à 100 Mb/s
• Interfaces
– ATM
– Ethernet 10 ou 100BaseT
– …
• Infrastructure de réseau FT : ATM
• Connexion entreprise : PABX, commutateur ATM,
équipement vidéo, routeur IP, commutateur Ethernet
• Applications : voix (PABX), données (LAN), vidéo
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 212
Services FT : IP : Classiques Oleane
• Connexion Entreprise à Internet
• Types de raccordement
– Lien permanent avec possibilité de back-up Numeris
– Connexion RTC, Numeris, GSM
– ADSL
• Equipement de connexion
– Routeur IP fourni ou non
• Services à valeur ajoutée
– Adresses IP
– Hébergement, gestion DNS, serveur Web
– Boites aux lettres (anti-virus possible)
– Proxy Web
– ….107
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 213
Services FT : IP : Global Intranet
• Créer un réseau privé virtuel pour l’entreprise
– Sites : moyen débit
– Postes utilisateurs fixes ou mobiles : bas débit
• Techniques
– CV ATM
– Filtrage adresses IP
– Tunelling IP
– Authentification des utilisateurs
• Equipements de connexion
– Routeur fourni ou non
– Poste utilisateur
• Accès
– Permanent 64 Kb/s ? 2 Mb/s
– Commuté : RTC, Numeris, GSM
– ADSL
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 214
Services FT : IP : Global Extranet
• Service d’information de l’entreprise (Extranet)
accessible par RTC ou Internet
– Clients, Partenaires, Fournisseurs
• Facture : téléphone particulier
– Numéros d’appel réservés
• Technique : tunnels IP
Réseau
IP de FT
Réseau Routeur
FT
Internet
Serveur
d’accès FT Routeur
Entreprise
Interface du
service FT
Micro
particulier
Micro
particulier
Micro
particulier Serveurs
Numéris
RTC
Serveur
d’accès FT
RTC108
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 215
Services FT : IP : collecte IP/ADSL
• Pour les fournisseurs d’accès Internet (FAI)
• Pour collecter le trafic des abonnés ADSL
• Routeur FT chez le FAI
– Interfaces Ethernet 10, 100 ou 1000 Mb/s
– Débits : 10 Mb/s? 4 Gb/s
• Les routeurs FT sont transparents : tunneling …
Réseau
IP de FT
Réseau Routeur
FT
Internet
Routeur
FT
Routeur
FT
Routeur
FAI
Interface du
service FT
Région Y
Micro Région X
particulier
Micro
particulier
Micro
particulier
Micro
particulier
Concentrateur
ADSL
Concentrateur
ADSL ADSL
ADSL
ADSL
ADSL
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 216
Services à assurer : plan
Services « obligatoires » à assurer (couche 7)
Uniquement aspect architecture – choix -stratégie
• Noms (machines)
– Principes
– Plan de nommage
• Messagerie
• Annuaires
• Services Web109
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 217
Services : noms
• Buts techniques
– Traduction : nom de machine ? adresse IP
– http://www.inpg.fr ? datagramme IP :
• Ouverture connexion TCP sur port 80
• Adresse IP destinataire : ?
• Comment : www.inpg.fr ? 195.83.76.58 ?
– Ping www.inpg.fr
• Datagramme ICMP - @ destination 195.83.76.58
– Dans l’autre sens aussi : @ IP ? nom de machine
• Configurations, contrôles d’accès, fichiers de trace, … explicités
avec des noms
– Mais aussi messagerie électronique
• jla@urec.cnrs.fr ? serveur messagerie SMTP mail.urec.cnrs.fr
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 218
Services : noms
• Pour que cela fonctionne dans l’Internet
– Noms uniques
– Système très solide : des serveurs DNS « direct» et « reverse »
– Dynamique : ajout de noms décentralisé dans les serveurs DNS
• Unicité
– Nommage hiérarchique arborescent avec des domaines
• .com, .edu, .org, …, .fr, .de, .uk, …
– Plan de nommage dans les organismes-entreprises
• Solidité – Dynamique
– N serveurs de noms administrés localement
• Un serveur primaire par zone
• Plusieurs serveurs secondaires
• Copies régulières des informations primaire ? secondaires
– Caches
• Postes de travail
• Serveurs (primaires – secondaires)
– Serveurs DNS : machines dédiées, aux bons emplacements110
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 219
Services : plan de nommage
• Choix du nom de domaine (pour une entreprise)
– Pas technique : image de l’entreprise
• Serveurs Web, …
• Adresses électroniques
• Un nom a maintenant une valeur commerciale
– Sous .com
• Quelques $
• Pas de vérification
– Sous .fr
• Plusieurs dizaines (centaines) d’euros
• Vérifications
• AFNIC : association ? système « sain »
– Dérives
• Réservation de noms tels que cnrs.com pour revente
• Certains pays (en voie de développement) :
– Société à but uniquement lucratif qui gère le top level domain du pays
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 220
Services : plan de nommage machines
• Choix de sous-domaines : technique
– Un sous-domaine
• ? un serveur DNS « direct »
• ? un administrateur
– Un serveur DNS « reverse »
• ? un sous-réseau IP
• ? un administrateur
– On regroupe souvent serveur « direct » et « reverse »
• Quand ajout de machine : MAJ des 2 nécessaire
– En cas de problèmes : facilité de localisation
• Nom ? Où ?
– Possibilité d’alias sur les noms
• Très souple111
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 221
Services : plan de nommage machines
Exemple : UREC (Paris, Grenoble, Lyon, Marseille)
• Domaine urec.cnrs.fr
– Sous-domaines grenoble.urec.cnrs.fr et paris.urec.cnrs.fr
• Un serveur DNS Paris (un administrateur)
– Primaire : urec.cnrs.fr, paris.urec.cnrs.fr, reverse réseau IP
Paris
– Secondaire : grenoble.urec.cnrs.fr, reverse réseau IP Grenoble
• Un serveur DNS Grenoble (un autre administrateur)
– Primaire pour grenoble.urec.cnrs.fr, reverse réseau IP grenoble
– Secondaire : urec.cnrs.fr, paris.urec.cnrs.fr, reverse réseau IP
Paris
• Lyon, Marseille : nommage machines laboratoires locaux
• Alias dans DNS urec.cnrs.fr, …
– www.urec.cnrs.fr ? www.paris.urec.cnrs.fr : visibilité
– Idem autres services : mail, …
– Autres services dans domaine services.cnrs.fr ? urec.cnrs.fr
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 222
Services : plan de nommage machines
• Exemple : IMAG (fédération de 8 laboratoires)
– Domaine imag.fr - pas de sous-domaine
– Un serveur DNS primaire imag.fr
– N serveurs DNS secondaires imag.fr
• Pour l’extérieur (authoritative) : 3
• En interne, au moins un par laboratoire
– Equipe d’administrateurs soudée
• Choix des noms de toutes les machines centralisé
• Bases de données mise à jour par chaque administrateur de labo
– Script de mise à jour automatique du DNS primaire
– Serveurs Web de labo : nom du labo le nom : image
• www.imag.fr, www-id.imag.fr, www-clips.imag.fr, …
– Choix pas de ss-domaine ? visibilité de la fédération
• Une autre possibilité aurait été : un sous domaine par laboratoire112
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 223
Services : plan nommage machines
• Choix
– Divers : image, organisation entreprise, organisation des
administrateurs, histoire, …
– Qu’ils soient clairs : document de référence :
• Comment est-ce organisé ?
• Qui fait quoi ?
• Visibilité / extérieur
– Pour les noms des serveurs
– Pour le nom des stations clientes : intérieur : choix technique
• Adressage privé - NAT
– 2 nommages : 2 DNS : interne – externe
– Les noms de stations internes ne sont plus visibles de l’extérieur
– Mais il faut néanmoins que les stations internes communiquent
entre elles : document de référence toujours utile
• Les FAI offrent des services de DNS
• Pb : quand rachat … entreprise ? changement de nom ?
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 224
Services : messagerie
• Messagerie Internet : protocole SMTP
– Messagerie interne dans l’entreprise peut être
différence : passerelle nécessaire
– Dans ce chapitre : messagerie interne SMTP, logiciel
Sendmail ou Postfix
• Plan
– Choix de la forme des adresses
– Répartition des serveurs
– Méthodes d’accès aux boites aux lettres
– Format des messages113
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 225
Services : messagerie : adresses
Adresses de messagerie : quelle stratégie ?
• De préférence forme canonique : Prénom.Nom@…
– Exemple : Jean-Luc.Archimbaud@urec.cnrs.fr
– Avantages
• Adresse unique (sauf homonymes)
• Adresse « parlante » : peut éviter un annuaire
• Faire apparaître sous-domaines ou non ?
– Pierre.Durant@etudes.edf.fr ou Pierre.Durant@edf.fr ?
– Pérennité de l’adresse et forme simple / centralisation
• Utiliser des adresses génériques
– webmaster@.., postmaster@…, info@…, …
– Peut-être pour des fonctions : direction@…, secrétariat@…, …
– Avantage : pérennité quand la personne change de fonction
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 226
Services : messagerie : adresses
• « Transformation» d’adresses - redirection
– Différents mécanismes peuvent modifier les champs « To» et
« From » sur les messages arrivants ou partants
– Serveurs-relais de messagerie : messages arrivants
• To : Francis.Duval@edf.fr ? Francis.Duval@der.edf.fr
– Serveurs-relais de messagerie : messages partants
• From : jla ? From : Jean-Luc.Archimbaud@urec.cnrs.fr
– Comptes utilisateurs : .forward (messages arrivants)
• To : jla@imag.fr ? To : Jean-Luc.Archimbaud@urec.cnrs.fr
– Ne pas en abuser
• Doit simplement résoudre les cas particuliers
• Différencier adresse professionnelle et personnelle ?
(au travail)
– Probl ème : correspondance privée : débat non tranché
• « Cacher » les adresses pour limiter les SPAM ?114
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 227
Services : messagerie : serveurs
• 2 services à assurer :
– Relais de messages et hébergement de boites aux lettres
• Entrant : un seul serveur relais avec les boites aux lettres
– Accessible depuis l’Internet
– Avec machine back-up quand indisponible
• DNS : plusieurs MX records
– Probl ème de sécurité : attaque des boites aux lettres
• Entrant : un serveur relais sans boite aux lettres
– Accessible depuis l’Internet
– Redirige vers 1 ou plusieurs serveurs internes suivant l’adresse
du destinataire :
• Si adresses avec sous-domaine ? le serveur interne du sous-domaine
• Sinon, base de données : une adresse ? son serveur interne
– Boites aux lettres sur serveurs internes
– Serveurs internes non accessibles depuis l’Internet
• Sortant : préférable de passer par un seul serveur relais
– Canonisation des adresses, surveillance, traces, …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 228
Services : messagerie : serveurs relais
• Service à surveiller de près
– Très souvent attaqué
– Trace des abus
• Interdire le relayage : @ externe ? @ externes
– Probl ème SPAM : obligatoire
• Installer un anti-virus
– Evite MAJ sur chaque poste interne
• Lutter contre le SPAM
– Outils avec mots clés et/ou black lists (pas de solution miracle)
– La solution est la signature électronique
• Lutte anti-virus - SPAM : accord du personnel nécessaire
• Exemple IMAG
– Un relais de messagerie externe (reçoit To : X@imag.fr )
– N serveurs de messagerie internes avec boites : 1 / labo
– Table : @ d’une personne ? serveur de messagerie interne
– Gestion idem DNS115
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 229
Services : messagerie : accès aux boites
• Connexion interactive sur le serveur
– Qui contient les boites aux lettres : commande Mail Unix …
– Pb : il faut gérer autant de comptes interactifs que de boites
• POP - Post Office Protocol
– Accès depuis une station personnelle avec outil (navigateur, …)
– Les boites aux lettres sont transférées sur la station personnelle
• IMAP - Internet Message Access Protocol
– Accès depuis une station personnelle (navigateur, …)
– Les boites aux lettres restent sur le serveur
• IMAP/POP ?
– De plus en plus de IMAP
– Dépend de l’utilisation :
• Veut-on garder sur le serveur les messages (place, sauvegarde, …) ?
• Les utilisateurs sont ils connectés lorsqu’ils utilisent la messagerie ?
– Versions sécuris ées : POPS – IMAPS
• Authentification ou non des clients
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 230
Service : messagerie : formats messages
• MIME - Multipurpose Internet Mail Extensions
– Standard pour format de messages contenant tous types de
données : texte, video, voix, …
• S/MIME – Security …
– Version sécurisée de MIME
– Certificats électroniques
– Signature électronique
• Authentification
• Intégrité
– Chiffrement
– Concurrent : PGP
• Principal pb messagerie : pas authentification expéditeur
– SPAM, Virus, pas de valeur juridique, …
• Messagerie : service externalisable116
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 231
Annuaires : un standard
• LDAP - Lightweight Directory Access Protocol
– Communications client-serveur (sécurisées si voulu)
– Modèle de données
• Arborescence hiérarchique
• Classes d’objets
• Nommage
– Modèle fonctionnel
• Recherche, comparaison, ajout, …
– API
– Réplication
– …
• Un annuaire LDAP
– Peut utiliser un logiciel de base de données : oracle …
• LDAP : Interface standard d’accès
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 232
Annuaires LDAP : utilisations
• Classique de personnes : adresses électroniques
– Accès avec navigateur – complétion d’adresse
– Gestionnaire de liste de diffusion, …
• De certificats électroniques
• De droits d’accès
– A des systèmes, des applications, …
– Remplacement de NIS, NIS+
• De ressources
– Grilles de calcul
– Equipements (réseau)
• Besoin d’avoir une réflexion sur l’architecture
– Un seul annuaire ou n / utilisation ou groupe
– Séparer LDAPs publics et privés (internes)
– Sécurisation de l’annuaire, pb de SPAM (limitation du nb
d’accès), …117
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 233
Services Web
• Accès aux serveurs Web externes (Internet)
– Autorisation ou non ?
• Décision de direction, pas d’administrateur réseau
– Proxy ou non ?
– Attention aux problèmes de sécurité
• Virus dans documents récupérés
• Exécution de code localement : javascript, …
• ? Proxy utile
• Serveurs Web de l’entreprise
– Différencier administration technique / contenu
– Définir les droits d’accès et une méthode de mise à jour
– Pour Intranet
• Informations internes
• Serveurs dans un sous-réseau non accessible depuis l’extérieur
– Pour Extranet – Internet
• Information publiques
• Serveurs dans un sous-réseau public
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 234
Fonctions «annexes » équipements actifs
PLAN
• Administration
• Tunnels
• IPSec
• NAT
• Filtrage
• Multicast
• Gestion files d’attente118
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 235
Fonctions «annexes » équipements actifs
• Administration
– Agent SNMP
– Traces ? syslog
– Compteurs : charge, nb de datagrammes, de bytes, …
• Tunneling
– Cf chapitre sur les réseaux virtuels : VPN
– Dans les routeurs, stations IP
– Pour sécurité mais aussi IPv6 dans IPv4, multicast
dans unicast, …
• IPSec
– Cf chapitre sur les réseaux virtuels
– Dans les routeurs, stations IP
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 236
Fcts «annexes » éqts actifs : NAT
• NAT – Network Address Translation (traduction)
• Fonction dans routeur d’accès (entre site et Internet)
• Traduit les adresses IP
– Modifie l’entête des datagrammes IP échangés avec l’extérieur
– Dans les sens sortant et entrant
• Une station du site
– Possède une adresse interne 10.1.1.2
• Elle est configurée avec cette adresse
• Les machines internes communiquent avec elle avec cette adresse
– Connue de l’extérieur avec l’adresse 193.96.49.64 (@ externe)
• Les machines de l’Internet communiquent avec elle avec cette adresse
– Le système est transparent pour les stations
• Le routeur entre le site et l’Internet fait la traduction119
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 237
Fcts «annexes » éqts actifs : NAT
Site Extérieur
Station
10.1.1.2
Station
129.88.35.3
Routeur
NAT
Internet Internet LAN
Station
10.1.1.4
@ orig 10.1.1.2
@ dest 129.88.35.3
@ orig 193.96.49.64
@ dest 129.88.35.3
@ orig 129.88.35.3
@ dest 10.1.1.2
@ orig 129.88.35.3
@ dest 193.96.49.64
Table de traduction dans le routeur NAT
@ interne 10.1.1.2 ?? @ externe 193.96.49.64
@ orig 10.1.1.2
@ dest 10.1.1.4
@ orig 10.1.1.4
@ dest 10.1.1.2
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 238
Fcts «annexes » éqts actifs : NAT
• Traduction statique
– 10.1.1.2 ?? 193.96.49.64
– 10.1.1.3 ?? 193.96.49.66
– …
– ? Besoin autant d’adresses IP officielles que de stations
• Traduction dynamique
– Pool d’adresses officielles (externes) pouvant être attribués
• Ex : 193.96.49.0/24
– Attribution d’une adresse externe lors du premier datagramme
reçu par le routeur
– Adresse libérée au bout d’un temps d’inactivité
• Ex : pas de datagramme avec cette adresse reçu depuis 3 heures
– ? On peut avoir plus de stations que d’adresses IP officielles
• On mixte : serveurs : statique - clients : dynamique120
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 239
NAT : PAT Port Address Translation
Site Extérieur
Station
10.1.1.2
Station
129.88.35.3
Routeur
NAT
Internet Internet LAN
Station
10.1.1.4
@ orig 10.1.1.2:1504
@ dest 129.88.35.3:80
@ orig 193.96.49.64:1504
@ dest 129.88.35.3:80
@ orig 129.88.35.3:80
@ dest 10.1.1.2:1504
@ orig 129.88.35.3:80
@ dest 193.96.49.64:1504
Table de traduction dans le routeur NAT (PAT)
@ interne 10.1.1.2:1504 ?? @ externe 193.96.49.64:1504
@ interne 10.1.1.4:1580 ?? @ externe 193.96.49.64:1505
@ orig 10.1.1.4:1580
@ dest 129.88.35.3:80
@ orig 129.88.35.3:80
@ dest 10.1.1.4:1580
@ orig 193.96.49.64:1505
@ dest 129.88.35.3:80
@ orig 129.88.35.3:80
@ dest 193.96.49.64:1505
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 240
Fcts «annexes » éqts actifs : NAT
• Contenu de datagrammes (données) à modifier
– Pour certains services :ICMP, FTP, H323, …
• Besoin de 2 serveurs DNS
– Un interne : non accessible depuis l’extérieur
• Contient toutes les adresses internes
– Un externe : dans la DMZ
• Contient les adresses externes
– Les noms des stations clientes sont « aléatoires »
• Serveurs accédés depuis l’Internet
– Adresses statiques
• L’adressage interne peut s’étendre sur n sites
– Avec un VPN
– Un routeur NAT pour communiquer avec l’extérieur121
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 241
NAT : pourquoi ?
• On manque d’adresses officielles IP (4 bytes)
– On ne peut plus numéroter toutes les stations IP de la planète de
manière unique
– En interne, sur les sites, numérote les stations avec les @ privées
• 10/8, 172.16/12, 192.168/16
• Plusieurs sites peuvent utiliser les mêmes adresses
• Exemple : site avec une @ réseau officielle 193.96.49.0/24
– 5000 machines internes
– Numérote ses stations avec une adresse réseau privée : 10/8
• Peut numéroter des millions de machines
– Quelques adresses 193.96.49.0/24 réservées aux serveurs
• Accédés depuis l’Internet : DNS externe 193.96.49.1, Web externe
193.96.49.2, Mail 193.96.49.3 (avec PAT ce peut être le même numéro)
– Pool d’adresses 193.96.49.[4,254] disponibles (NAT)
• Attribuées dynamiquement aux stations locales quand elles
communiquent avec l’Internet
• 250 machines internes peuvent communiquer avec l’Internet
simultanément : beaucoup plus si on utilise PAT
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 242
NAT : plus et moins
• Avantages
– On dispose d’un espace d’adresses énorme en interne
• Pas de limitation dans l’architecture des sous-réseaux
• Pas de problème quand nouvelles stations à numéroter
– Les stations clientes ont des @ IP dynamiques
• Plus difficiles à attaquer : meilleure sécurité
• Désavantages
– Sécurité : les stations clientes sont « anonymes »
• Difficile de savoir quelle station interne a attaqué un site ext erne
– Contrôle d’accès / @ IP effectué sur certains serveurs
• Impossible sauf si traduction statique
– Rompt le principe IP de connectivité de bout en bout
• Peut avoir des effets de bord sur certaines applications
– Retarde l’arrivée de IPv6122
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 243
NAT : conclusion
• De très nombreux sites l’utilisent
– Peu universitaires car premiers venus sur Internet, ils
disposent de beaucoup d’adresses officielles
– Système très bien huilé maintenant
• NAT / DHCP
– DHCP : autre manière d’économiser des adresses
– Mais beaucoup moins d’économie que NAT
• DHCP : une station a besoin d’une adresse officielle dès qu’elle
communique avec l’extérieur mais aussi avec l’intérieur
• Pas de possibilité de PAT
– On peut faire les 2
• DHCP : pour ses fonctions de configuration dynamique
• NAT : pour ses fonctions de traduction d’adresse
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 244
Fcts «annexes » éqts actifs : filtrage
• Consiste à laisser passer ou non certains flux
selon les informations trouvées dans
– Les entêtes des trames Ethernet
– Les entêtes des datagrammes IP
– Les entêtes des segments TCP, UDP
• Ponts, Commutateurs
– Filtrage de niveau 2
– Sur le contenu des entêtes des trames Ethernet
• Routeurs
– Filtrage de niveau 3
– Sur les entêtes IP, TCP, UDP123
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 245
Filtrage : rappel trame Ethernet – IP
• Entête Ethernet
– @ Ethernet destination
– @ Ethernet origine
– Champ type : protocole : 0800 IP, 0806 ARP, …
• Entête IP
– @ IP origine
– @ IP destination
– Protocole : 1 ICMP, 6 TCP, 17 UDP, …
• Entête TCP ou UDP
– Numéro de port source (application station source)
– Numéro de port destination (application station
destination)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 246
Filtrage : niveau 2
• Ponts – commutateurs / port
– Sur les entêtes Ethernet
• Exemple : filtrer sur un port
– Certains protocoles : Appletalk, IPX, …
• Car il n’y a pas de stations qui utilisent ces procotoles sur ce port
• Diminue la charge du côté du port
– Filtre les trames multicast ou broadcast de ces protocoles
• Evite les erreurs
– Des utilisateurs sans compétence qui pourraient lancer ces
protocoles sur leur station et perturber les autres stations
– Certaines adresses Ethernet origine
• Stations trop bavardes, polluantes
– Certaines adresses Ethernet destination multicast,
broadcast
• But principal : diminuer la charge124
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 247
Filtrage : niveau 3
• Dans les routeurs
– Sur les entêtes IP, TCP, UDP
• But principal
– Sécurité (protection de stations, de services, de serveur)
– Limitation des flux applicatifs (pas de chat, P2P, …)
• Deux politiques :
– Par défaut : tout est autorisé (P1)
• On interdit ce que l’on ne veut pas
– Par défaut : tout est interdit (P2)
• On autorise ce que l’on veut
• Deux types de filtrages
– Sur les adresses IP (de stations ou de (ss-)-réseaux)
– Sur les numéros de ports (applications)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 248
Filtrage : niveau 3
• Filtrage sur @ IP de station ou de (ss-)réseau
– Sens entrant (Internet ? Site) / @ IP destination
• P1 : interdit l’accès à des stations « à protéger »
• P2 : autorise uniquement l’accès à certains serveurs (publics)
– Sens entrant / @ IP origine
• P1 : interdit l’entrée de datagrammes de stations dangereuses
(black-list)
• P2 : autorise l’accès que depuis certaines stations
– Sens sortant (Site ? Internet) / @ IP origine
• P1 : interdit à certaines stations de sortir (sur l’Internet, …)
• P2 : autorise uniquement certaines stations à sortir
– Sens sortant / @ IP destination
• P1 : interdit l’accès à des serveurs à contenu peu recommandable
• P2 : n’autorise l’accès que vers des serveurs répertoriés125
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 249
Filtrage : numéros de port
• Applications IP : mode client –serveur
– Serveur : wellknown ports
• HTTP : 80, Telnet : 23, SMTP : 25, …
– Client
• 1024, 1025, 1026, … pour FTP, Telnet, …
• 1023, 1022, 1021 … pour rexec, rlogin, rsh, rcp, …
• Exemples de filtre sens entrant (Internet ? Site)
– P2 : Laisse passer uniquement les datagrammes avec
port destination = 80 vers @IP destination 194.33.2.5
• Autorise uniquement l’accès HTTP sur le serveur Web 194.33.2.5
• Si un autre utilisateur interne installe un serveur Web, il ne sera pas
accessible depuis l’extérieur
– P1 : Filtre tous les datagrammes avec port destination = 23
• Interdit l’accès en telnet sur toutes les machines internes depuis
l’extérieur
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 250
Filtrage : numéros de port
• Exemple de filtre sens sortant (Site ? Internet)
– P2 : laisse passer tous les datagrammes avec numéros
de ports source > 980
?Autorise toutes les stations à être cliente sur des
serveurs Internet
– P2 : laisse passer les datagrammes avec port dest=25
uniquement vers station 129.88.32.2
? Oblige toutes les stations interne à passer par le relais
de messagerie 129.88.32.2 pour envoyer du courrier126
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 251
Filtrage : exemple de politique
Site 192.56.62/24
Extérieur
Routeur Internet Internet LAN
192.56.62.70
Serveur DNS
SMTP, Web
192.56.62.80
Serveur Telnet
192.56.62.90
A isoler
192.56.62.X
Clientes uniquement
Filtres
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 252
Filtrage : ex (simplifié) de politique 2
• Les filtres sont exécutés en séquence (ACL CISCO)
– Pour chaque datagramme
• Si condition remplie : action - exit
• Sinon : continue les filtres
• Si @ IP dest = 192.56.62.90 : filtre
– Isole 192.56.62.90
• Si @ IP dest = 192.56.62.80 et port dest = 23 : laisse
passer
– Ouvre accès au serveur telnet : 192.56.62.80
• Si @ IP dest = 192.56.62.70 et port dest = (53 ou 25 ou 80)
: laisse passer
– Ouvre accès au serveur DNS, SMTP, Web 192.56.62.70
• Si port dest > 980 : laisse passer
– Laisse passer le trafic vers stations clientes internes
• Reste : filtre
– Interdit tous les autres trafics127
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 253
Filtrage : bilan
• Les filtres peuvent être installés à l’intérieur du
site
– Sur les routeurs entre services, équipes, … par
exemple
– Entre sous-réseaux ou VLAN
• Avec l’Internet : politique 2 recommandée
– On interdit tout sauf …
– Si P1 : nouvelle vulnérabilité découverte ? MAJ des
filtres
• Si fonction dans une boité dédiée avec interface
graphique …? Garde-barrière
– Fonction appelé « filtrage statique » dans les gardesbarrières
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 254
Filtrage : bilan
• Filtrage dans les routeurs
– Beaucoup utilisé en entrée de campus, laboratoires
– En entreprise plutôt entre sous-réseaux internes
• En entrée (site-Internet) : garde-barrière
• Limitations techniques
– Basé sur des numéros de port : les applications
peuvent utiliser d’autres numéros que les wellknown
port (pb cheval de Troie)
– Rebonds applicatifs indétectables
– Tunnels applicatifs non détectable (HTTP par
exemple)
– ? filtrage statefull dans garde -barriè re nécessaire128
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 255
Fcts «annexes » éqts actifs : multicast IP
• Applications habituelles : unicast
– Point à point
– 1 émetteur ? 1 récepteur
• Le récepteur devenant ensuite émetteur
– Adresses Ethernet et IP unicast
• Applications multicast
– 1 émetteur ? n récepteurs (diffusion ciblée)
– Radio (plutôt broadcast)
– Télévision
• Non cryptée : broadcast
• Cryptée (Canal + …) : multicast
– Télé-séminaire, télé-réunion, vidéo-conférence, …
• Dans ce cas un récepteur peut aussi devenir émetteur
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 256
Multicast IP
• Media idéal de transport : air
– Ondes radio avec émetteurs terrestres, satellites, …
– Pas de problème sauf partage des fréquences
Emetteur
Récepteur 1
Récepteur 2
Récepteur 5
Récepteur 4
Récepteur 3129
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 257
Multicast IP
• Réseau filaire IP avec technique classique
– On transporte n fois les mêmes données
– On utilise beaucoup de bande passante
• Pour ne transporter qu’une fois les données :
– Adresses, protocoles, routages, … multicast
Emetteur
Récepteur 1
Récepteur 2
Récepteur 5
Récepteur 4
R
R Récepteur 3 Internet Internet
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 258
Multicast IP
• Participants à une appli multicast : groupe multicast
• Identification du groupe multicast : @ IP
– Une adresse IP de classe D : 224.0.0.0 ? 239.255.255.255
– Emetteur ? groupe : @ IP destination = @ IP multicast
• Choix d’une adresse multicast : statique
• Choix d’une adresse multicast : dynamique
– Annuaire de groupes multicast en cours (ex : application SDR)
– Responsable du groupe ? annuaire
• Je veux ouvrir une session « cours ARR » pour tel créneau horaire
• Fournis moi une adresse multicast
– Annuaire
• Donne une adresse multicast au responsable : 224.2.0.1
• Publie : « cours ARR » a telle @ multicast
– Participants au groupe
• Consultent annuaire et récupère l’adresse multicast du groupe130
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 259
Multicast IP
• Protocoles : UDP, RTP, RTCP (cf H323), …
• L’émetteur émettra ses données
– Avec @ IP destination multicast : 224.2.0.1
– @ IP origine : son @ IP (unicast)
• Les récepteurs se mettront à l’écoute
– Pour recevoir les datagrammes avec cette @ dest
• Emetteur-récepteurs sur même réseau Ethernet
– Utilisation du multicast Ethernet
• Premier octet de l’@ impair
• IEEE a attribué 01.00.5E.X.Y.Z pour applications multicast IP
– @ Destination Ethernet : 01.00.5E.X.Y.Z
• IP : 224.2.0.1 ? Ethernet 01.00.5E.02.00.01
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 260
Multicast IP : routeurs
• Pb : quand il y a des routeurs entre émetteur et récepteurs
• Les routeurs : @ dest 224.2.0.1 : que faire ?
– R3 doit les renvoyer vers R4 et R7 mais pas vers R2
• ? tables de routages et protocoles de routage spécifiques
Emetteur
Récepteur
Récepteur
Récepteur
Récepteur
Récepteur
Récepteur hub
hub
hub
hub
R2
R4
R6
R8
R1
R5
R7
R3131
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 261
Multicast IP : protocoles de routage
Protocole entre stations et premier routeur
• Principe : stations : je veux m’abonner
– Je veux recevoir le flux multicast 224.2.0.1
– R4, R6, R8 vont recevoir ce message
– R2 ne va pas le recevoir
• Exemple : IGMP
– Internet Group Management Protocol
– Le routeur émet un datagramme toutes les minutes
• Qui veut s’abonner à des groupes multicast ?
– Les stations intéressées répondent
– Le routeur le redemande régulièrement
• Pour savoir si de nouvelles stations sont intéressées
• Pour savoir si les anciennes abonnées sont toujours intéressées
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 262
Multicast IP: protocoles de routage
Protocole entre routeurs
Exemple PIM Protocol Independant Multicast
• But : arriver à un arbre de diffusion : 2 principes
• Dense mode
– Les routeurs envoient à tous les routeurs tous les flux multicast
• Au départ. Exemple : R3 vers R4, R7, R2
– Les routeurs non intéressés demandent d’arrêter l’émission
• R2 indique à R3 : il y a personne chez moi d’intéressé par 224.2.0.1
• R3 arrêtera d’émettre vers R2 ce flux : pruning
• Sparse mode
– Le routeur émetteur s’enregistre auprès du RP
• RP : Rendez vous Point
• Je vais diffuser vers 224.2.0.1
• Aucun routeur n’émet encore à ce stade
– Quand station intéressée : s’enregistre auprès du RP
• Celui-ci « avertit » les routeurs concernés d’émettre132
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 263
Multicast IP
• Quand partie du réseau non multicast : tunnels
– Ex : uniquement les routeurs de sites R1, R4, R6 et R8
supporte le multicast (au cœur réseau d’opérateur)
Emetteur
Récepteur
Récepteur
Récepteur
Récepteur
Récepteur
Récepteur hub
hub
hub
hub
R2
R4
R6
R8
R1
R5
R7
R3
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 264
Multicast IP
• Réseaux (routeurs) : complexe
• Travail d’opérateur : très important
– En France uniquement Renater offre réellement ce
service
– On peut faire des tunnels
• Aujourd’hui
– Beaucoup d’expérimentations autour du multicast
– Réseau MBONE (opérationnel)
– Télévision sur Internet : idée abandonnée
– Radio sur Internet : pas multicast
– Vidéoconfé rence : 3 solutions
• Multicast IP
• H323
• RNIS133
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 265
Fcts «annexes » éqts actifs :
gestion des files d’attente
• Dans les routeurs : files d’attente
– En entrée : généralement gérées basiquement
– En sortie, pour chaque interface, choix :
• Taille de la file d’attente
– Important car quand elle est pleine le routeur jette les datagrammes
• La classification
– Permet de faire passer en priorité certains datagrammes (voix / FTP par
exemple)
• Gestion des files d’attente : fondamental dans un réseau
en mode non connecté (IP)
• Différentes techniques implémentées
– FIFO
– WFQ
– PQ
– CQ
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 266
Gestion des files d’attente : FIFO
• FIFO – First In First Out
– Mécanisme simple :
• Une file d’attente / interface de sortie
• Emission par ordre d’arrivée
– Plus : simple donc logiciels performants
– Pas de problème quand réseau peu chargé et files
d’attente de taille suffisante
• Pas de perte de datagramme
• Temps de traitement (latence) court
– Dans le cas contraire
• Temps de traitement peut-être trop long pour certaines sessions
TCP ou autre (par exemple s’il y a un gros transfert FTP en
cours, il va bloquer le flux H323 d’une communication voix)
– Perte de datagrammes (file d’attente pleine)
– Latence trop grande
– TCP ? retransmission, slow start, … : service très dégradé134
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 267
Gestion des files d’attente : PQ
• PQ : Priority Queuing
• Plusieurs files d’attente / interface de sortie
– Une file par priorité
– La file la plus prioritaire est envoyée avant les autres
– Le routeur peut déterminer la priorité selon
• Le protocole niveau 3 : IP/IPX
• Le protocole niveau 4 : TCP/UDP
• Les applications : Telnet/FTP/H323/…
• …
• Pb : certains types de trafic (priorité trop basse)
peuvent ne jamais être émis
– Coupures de session, … : catastrophe
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 268
Gestion des files d’attente : CBQ
• CBQ : Class Based Queuing
– Ou CQ - Custom Queuing
– Amélioration du PQ
• Exemple : 3 files d’attente / interface de sortie
– Haute, moyenne et basse priorité
– A chaque « rotation» le routeur envoie 10
datagrammes de la file haute, 6 de ma moyenne, 3 de
la basse.
• Evite que la basse priorité ne soit jamais émise
• Peut être une méthode pour partager une bande
passante (entre classes de services)
• Pb : nécessite du CPU pour du très haut débit135
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 269
Gestion des files d’attente
• WFQ : Weighted Fair Queuing
– Modification du CBQ en prenant en compte le volume
de données (nb de bytes) dans la répartition
– Evite que les flux avec des gros datagrammes
d’écrasent ceux avec des petits datagrammes
• Exemple d’efficacité de ces mécanismes
– Expérience CISCO sur une liaison surchargée
– Flux Telnet, FTP, Voix combinés sur un routeur
• Sans ces mécanismes : occupation bande passante 57 %
• Avec ces mécanismes : occupation bande passante 98 %
• Pb : réglage de ces mécanismes
– Le constructeur fournit des exemples
– Mais ça dépend de l’environnement : flux, …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 270
Fcts «annexes » éqts actifs : bilan
• Les routeurs peuvent être très simples à configurer et
administrer
– Entre 2 Ethernet, avec uniquement la fonction de routage pour
connecter un réseau de classe C avec l’extérieur
– Une dizaine de lignes de configuration
• Mais aussi très complexes
– Si on rajoute : comptabilité, tunnels, IPSec, routage dynamique,
filtrage, NAT, multicast, files d’attente, …
– Plusieurs centaines, voire milliers de lignes de configuration
– Demande des experts : chaque ligne de configuration est
importante
• Choix lors de l’achat d’un nouveau matériel
– Tendance à prendre toujours le même constructeur
• Expérience, habitude des ingénieurs
– Attention au monopole
– Des « Clones » d’OS de routeurs connus existent136
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 271
Qualité de service QoS (IP)
• Internet (IP) de base : best effort
– Le réseau peut avoir une mauvaise qualité (pertes, …) voire
devenir inutilisable
• La QoS repose sur quelques paramètres techniques
– Débit (bande passante)
– Pertes
– Latence (délai de transmission)
– Variation de la latence : gigue ou jitter
Mais impossibles à garantir dans l’Internet entre 2 utilisateurs
• QoS pour l’utilisateur : le réseau doit être transparent
• QoS où ?
– Entre deux sites
– Entre deux utilisateurs
– Pour un type d’application ?
– …
• 2 standards (principes) pour Internet : RSVP et DiffServ
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 272
Qualité de service (IP) : RSVP
• RSVP : Resource Reservation Protocol
• Protocole en // de TCP, UDP
– Comme ICMP et les protocoles de routage
• Principes
– La station (réceptrice) demande une QoS au réseau (bande
passante, …)
– Tous les routeurs le long du chemin
• Prennent en compte cette demande et réservent les ressources
nécessaires : CPU, mémoire, … (ils peuvent refuser)
• Tiennent à jour une table avec toutes les réservations effectuées
• Problème : (trop) complexe
– Adapté au mode connecté, pas à IP
• Que se passe-t-il quand le routage est dissymétrique ou change ? …
• Flux multicast ?137
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 273
Qualité de service (IP) : Diffserv
• Diffserv : Differentiated Services
• Les datagrammessont marqués / contenu
– Champ TOS dans IPv4, Traffic Class dans IPv6
– Par la station / routeur d « entrée »
• Chaque routeur traite différemment les
datagrammes
– Mécanismes dans routeur : gestion files d’attente
adaptée au champ TOS ou Traffic Class
• Simple mais peu précis
– Peut être facilement implémenté
– Là ou cela peut être utile (sur une partie du chemin)
• Liaisons à moyen, bas débits
• Pour certaines applications
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 274
Qualité de service (IP)
• Quand bande passante « à profusion» : QoS inutile
– Le cas généralement des LAN
– La bande passante disponible sur FO devient énorme
• Problème
– Besoin de QoS quand la bande passante est limitée car chère
c’est à dire dans les WAN
– Or c’est le plus difficile car présence d’un opérateur et souvent
même de plusieurs opérateurs
• Comment vérifier que le client respecte le contrat ?
– Non traité dans ce cours : policy
• On ne pourra pas implémenter un mécanisme de qualité
de service global dans tout l’Internet
• Les opérateurs utilisent plutôt des mécanismes « légers »
– Sur certaines portions, pour certains clients/applications
• Entreprises : choisissent des équipements qui supportent
DiffServ, au cas où …138
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 275
Administration de réseau : plan
• Que faut il administrer ?
• Les hommes
– Administrateurs et utilisateurs
• Les standards
– SNMP …
• La configuration des équipements
• La surveillance
– Détection des anomalies
• Le dépannage
• Les stations d’administration
• La sécurité
• La métrologie
– Qui consomme quoi ? ? Comptabilité
– Performances ? Evolution (anticiper)
• Remarques
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 276
Administration de réseau : quoi ?
• Que faut il administrer ?
– Tout ce que l’on a vu, en particulier :
• Le câblage
– Disposer des plans A JOUR
– Garder les cahiers de recette
– Disposer de valises de tests pour les grands réseaux
• Eléments d’interconnexion
– Hubs, ponts, commutateurs, routeurs
– Configuration, surveillance, métrologie
• Services (couche 7)
– DNS
• Configurer, mettre à jour
– Relais et serveurs de messagerie
• Configurer, mettre à jour, surveiller (spool), métrologie
– …
• Sécurité139
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 277
Administration de réseau : les hommes
• Constituer une équipe d’administrateurs
– Qui fait quoi ? Sur quoi ?
– Opérateurs – Techniciens – Ingénieurs – Gourous
• Faut il séparer très strictement les niveaux ?
– Difficile car évolution des réseaux très rapide
• Selon les stades d’installation : besoins différents de compétences
– Exemple entreprise : 3 équipes
• Infrastructure : câblage
• Ingénierie : configuration équipements d’interco, services, routage
• Supervision : surveillance, métrologie, sécurité
– Exemple opérateur Internet
• NOC : Network Operation Center : fait marcher
– Configuration, surveillance, …
– Procédures en cas d’incidents : tickets d’incidents, base de données, …
• NIC : Network Information Center : interface avec les utilisateurs
– Nommage, informations aux utilisateurs, hot line, …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 278
Administration de réseau : les hommes
• Où s’arrête le service d’administration réseau ?
– Administration des serveurs Web ?
– Installation des clients de messagerie sur les postes utilisateurs ?
– ….
• Astreinte ?
– Selon les besoins de l’entreprise : cela coûte cher
– Peut être externalisée
• Assistance (hot line) pour les utilisateurs
– Ca ne marche pas !
– Obligatoire
– Centrale puis dispatching
– Locale puis appel à l’assistance centrale si besoin
– Difficile pour un utilisateur de séparer réseau / application
• Il faut une très bonne organisation humaine
– Ne pas hésiter à décentraliser (noms, adresses, …)
– Compétences : formation continue obligatoire140
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 279
Administration de réseau : standards
• ICMP
– Echo, TTL exceeded, Dest unreachable, redirect, …
– Utilisé par les outils ping, traceroute par exemple
– Avantage : supporté par toute station IP (ordi, routeur, …)
– Peut sembler anodin mais en fait très utilisé
• SNMP - Simple Network Management Protocol
– Agent (serveur) dans hub, commut, routeur, station, …
– Manager depuis station d’administration
– MIB : informations (@, …) – standard ou constructeur
– Fonctions : GET – SET – TRAP sur UDP
– Sécurité embryonnaire ? config ne se fait pas avec SNMP
• RMON – RMON2 : MIBs pour sondes
• Les standards permettent d’avoir un même outil pour
administrer des matériels hétérogènes
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 280
Administration de réseau :
configuration des équipements
• Avec telnet ou interface Web
– Pas SNMP
– Telnet est souvent plus précis (pour les spécialistes)
– Attention aux mots de passe : ajouter filtrage / @ IP
• Perte de la configuration quand arrêt de l’équipement ?
• Stockage des différentes configurations
– Généralement : TFTP
• Permet de sauvegarder une configuration sur un serveur
• Inversement de charger cette configuration depuis ce serveur dans
l’équipement actif
– Attention : pas de mot de passe dans TFTP
• Outils de constructeurs qui permettent de gérer plusieurs
versions de configuration et d’OS …141
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 281
Administration de réseau : surveillance
• But : détecter (rapidement) des anomalies
• 2 types d’informations utiles
– Alarmes : lien coupé, élément arrêté, daemon/service inactif, …
– Relevés (courbes, tableaux, …) sur une courte période indiquant
des charges, utilisations anormales (inhabituelles)
• Longue période ? métrologie
• Transport : liens, équipements actifs
– Traps SNMP émis par les équipements
– Outils à base de ping et/ou traceroute depuis un point
– Lors récupération de compteurs SNMP, sondes : courbes
inhabituelles
• Services : messagerie, …
– Daemon (service) inactif, spool plein, …
– Ex d’outil : Big Brother
• Depuis une station interroge un daemon spécifique sur chaque machine
de service
• Détecte si service inactif, remonte des alarmes sur des seuils, …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 282
Administration de réseau : surveillance
• Alarmes et relevés
– Arrivent sur ou partent de la station d’administration
– Alarmes peuvent générer des mails … aux admins
• Des éléments de charges, activités anormales
permettent de détecter des problèmes de sécurité
– Brusque trafic vers une station, d’une application, …
• Les construire avec l’expérience
– On peut récupérer énormément d’informations
– Lesquelles sont pertinentes ?
• Les utilisateurs sont souvent plus rapides que les
outils
– Pour avertir : ça ne marche pas !142
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 283
Administration de réseau : dépannage
• Où se situe le problème ? Quand localisé : réponse simple
• Faire preuve de logique
– Première question : qu’est-ce qui a changé ?
– Procéder par élimination
• Ex de démarche : telnet www.inpg.fr ne marche pas
– Est-ce que la machine est accessible : ping www.inpg.fr ?
– Si non, où s’arrête l’accès : traceroute www.inpg.fr ?
• Tout de suite : problème très local
– Ping machine locale ? pb sur routeur sortant ou sur réseau local
– Câblage ? Essai d’une prise voisine …
• Si arrêt à un routeur : lequel ?
– Sur le site distant : téléphone à l’administrateur distant …
– Sur le site local
» Est-ce uniquement vers ce site : essaie d’atteindre un autre site de l’Internet
» …
• …
– Si oui, service arrêté ? Problème de filtrage ?
– …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 284
Administration de réseau : dépannage
• Demande de connaître
– La théorie : protocoles, fonctions des équipements, …
– Son réseau, ses utilisateurs et leurs applications
• Analyseurs de protocoles
– Quand vraiment on ne peut pas faire autrement
– Ex de logiciel du domaine public :TcpDump
– Station portable avec logiciel commercial
– Il faut bien connaître les protocoles
• Problèmes logiciels : d’autres ont eu le même pb
– Ne pas hésiter à utiliser les moteurs de recherche,
news, …143
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 285
Admin réseau : station d’administration
• Objectif : disposer d’UNE station qui
– Permette de configurer tous les équipements et de stocker toutes
les configurations
– Reçoive toutes les alarmes (Traps SNMP, …)
– Permette d’exécuter des scripts de surveillance développés, …
– Dessine (automatiquement) la carte du réseau : liens, stations,
équipements actifs, services
– Affiche en rouge ce qui ne marche pas
– Récupère des données de métrologie, les stocke, les affiche …
• Trois types
– Stations « générales » (Sun, HP, IBM, …)
• Beaucoup de temps pour les maîtriser
– Stations de constructeurs d’équipements (CISCO)
– Stations « artisanales » avec outils du domaine public
• Actuellement personne vise l’unicité (LA station)
– Les grands sites ont les 3 types de stations précédentes
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 286
Administration de réseau : sécurité
• De plus en plus de problèmes de sécurité liés au réseau
– Intrusion depuis l’Internet sur des machines internes
– Attaque de serveurs Internet :Web, messagerie, DNS
– Virus dans les messages électroniques, SPAM
– Vers se propageant par le réseau
– Spoofing d’@ IP, d’@ de messagerie
– Charge de liens (trafic parasite) ? deny de service
– …
• Organisation – coopération étroite entre responsable
sécurité et administrateur réseau
– Surveillance du réseau ? peut indiquer des probl èmes de
sécurité
– Architecture de réseau ? permet d’appliquer facilement une
politique de sécurité
• Maintenant la sécurité est un critère de choix important
dans l’architecture et les équipements144
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 287
Administration de réseau : métrologie
• But : répondre aux questions
– A quoi sert le réseau ? A quelles applications ? A qui ? Quand ?
– Qui l’utilise ? ? comptabilité si nécessaire
– Y-a-t-il des goulots d’étranglement ? Des problèmes de
performances ? ? Qualité de service
– Quelle évolution ? ? Anticiper les besoins
• Commander l’augmentation de débit d’une liaison avant sa saturation
• Ensemble de compteurs ? tableaux, courbes, …
• Qui fournit les informations ?
– Equipements en écoute passive sur le réseau
• Sondes RMON, RMON2
• Logiciel IPTrafic
• Pb : nb d’équipements nécessaires, où les mettre (pb commutation)
– Equipements actifs du réseau : commutateurs, routeurs
• Comptent différentes choses ? compteurs sp écifiques ou MIBs
• Sont interrogés « par telnet » ou SNMP
• Peuvent ne plus compter correctement quand d’autres urgences (charge)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 288
Administration de réseau : métrologie
• Quelles informations ?
– Charge et taux de collisions / interface
– Issues de comptage de différents champs des datagrammes
• @ IP (? numéros de réseaux), ports (? applications)
• Exemples d’informations fournies
– Le graphe journalier, hebdomadaire … de la charge de chaque
brin Ethernet, de chaque liaison, du taux de collision
– La répartition entre HTTP, MAIL, FTP, … sur chaque liaison
– Les 20 stations les plus consommatrices
– Le pourcentage de trafic intra-entreprise et extra-entreprise
– Le pourcentage de bande passante de l’accès Internet consommé
par chaque service de l’entreprise
• MRTG : logiciel graphique
– Visualise le trafic sur les interfaces des commutateurs, routeurs,
stations
– Informations dans MIBs, obtenues par SNMP145
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 289
Administration de réseau : remarques
• Fondamentale quand réseau d’envergure
• Surveillance :
– Confidentialité des relevés
– Respect de la vie privée
• Constats
– Les équipements et les liaisons fonctionnent bien
– IP est très solide
? Conséquence négative sur le besoin d’administration
• Il faut se construire soi-même sa boite à outils
– Pas une seule solution avec un seul produit
– Difficile de conduire une approche théorique globale
• Beaucoup d’outils du domaine public existent
– Mais chaque outil a un but particulier
– Un administrateur doit bien savoir ce qu’il veut obtenir
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 290
Administration de réseau : remarques
Exemple de choix de logiciels du domaine public
• Outil de dépannage : tcpdump
– Analyseur sur station Unix
• Outil de surveillance de liaison : MTR
– Utilise ping et traceroute
– Détecte rapidement une anomalie sur une liaison (coupure, engorgement). Sort des
statistiques.
• Outil de surveillance de trafic : NTOP
– Sonde
– Indique à quoi est utilisé le réseau : charge, stations les plus bavardes, qui dialogue avec qui,
avec quels protocoles, …
– Sur une courte période
• Outil de surveillance de services : Mon
– Services surveillés : messagerie, Web, FTP, SMTP, POP, IMAP, …
– Alerte (mail) quand indisponibles
• Outil de métrologie : Cricket basé sur MRTG
– Interroge des routeurs, commutateurs en SNMP
– Charge, trafic sur une longue période
• Outil de métrologie orienté comptabilité : acct-cisco
– Comptabilité (et répartition de charge) sur un routeur CISCO146
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 291
Eléments de sécurité
• De protection contre les agressions externes en
provenance de l’Internet (donc via le réseau)
• Garde-barrière
– Equipement entre l’extérieur (hostile) et l’intérieur
(de confiance) : routeur, équipement spécifique
– 3 ensembles principaux de contrôle
• Filtrage IP « de base » : cf cours sur les fonctions annexes des
routeurs
• Filtrage IP statefull : analyse des sessions applicatives
• Relais applicatifs
– Ex telnet : login sur garde-barrière puis login sur machine interne
– Permet de concentrer les contrôles sur une machine
– Difficile d’avoir des débits très élevés (Gigabits : non)
– Fiabilité : prévoir un équipement de secours
– Entre réseau interne de l’entreprise et l’Internet
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 292
Eléments de sécurité
• Architecture segmentée : un exemple
Internet Internet R
WWW
Relais
Mail
DNS
…
DMZ
Serveurs Internet
G-B
R
Serveurs internes
Mail WWW DNS
Calcul Stockage …
Service administratif
Service R&D
Service X
NAT
Sonde147
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 293
Eléments de sécurité
• Un pb de cette architecture : travail à distance
– Comment consulter son courrier à distance ?
– Comment accéder à l’Intranet à distance ?
– Solutions : cf connexion depuis l’Internet
• Un autre pb : portables
– Où les connecter en interne (peuvent transporter des virus ou
vers) ?
• Garde-barrière
– Ne pas se reposer uniquement sur sa protection
• Sonde de détection d’intrusions
– Sonde avec bibliothèque de signatures d’attaques
• Logiciel de simulation d’intrusions
– Test de vulnérabilités à travers le réseau
• Rq : jamais de sécurité à 100 % (ne pas connecter ?)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 294
Accès à l’Internet (Web)
• Station interne – LAN entreprise ? Internet
• Connexion directe (sans NAT)
– @ IP officielle station ? @ IP serveur Web
• Connexion directe avec NAT
– @ IP privée station ? @ IP serveur Web
– NAT
– @ IP officielle ? @ IP serveur Web
• Proxy-cache Web : serveur dans DMZ
– @ IP station ? @ IP proxy Web
– @ IP proxy Web ? @ IP serveur Web
– 2 sessions TCP (HTTP) : Station–Proxy et Proxy– Serveur Web
– Cache, gain bande passante, filtrage, traces, anti-virus
• Sécurisé : 3ième méthode > 2nde > 1ère
• Accès à l’Internet : autorisation ou non aux salariés ?148
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 295
Accès depuis l’Internet
Serveurs Internet – Extranet de l’entreprise
• Où les mettre ?
– Dans la DMZ
• Zone Démilitarisée, semi-ouverte
– Chez un fournisseur d’accès ou hébergeur
• Stations dédiées
• Serveurs aux CNRS
– Plutôt apache et Linux
– Un peu IIS et Win-NT : bcq trop de pbs de sécurité
• Prévoir un mécanisme de MAJ
• Bien les sécuriser
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 296
Accès depuis l’Internet
au réseau de l’entreprise
• Comment travailler à distance ?
– Consulter sa messagerie et émettre des messages
– Accéder (interactif) aux stations internes
– Transférer des fichiers
– Accéder globalement à toutes les ressources de l’Intranet (réseau
interne)
De manière sécurisée (pas de mot de passe en clair sur le réseau)
• Consulter sa boite aux lettres
– Accès interactif, POP, IMAP trop dangereux
– SSL : POPS, IMAPS, Passerelle Web (HTTPS)
• Chiffrement uniquement
• Chiffrement et authentification du client : certificat client
• Emettre des messages
– Relais « public » ou Sendmail-TLS149
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 297
Accès depuis l’Internet
au réseau de l’entreprise
• Accès interactif et transfert de fichiers
– Sécurisation niveau application : SSH par exemple
– Garde-barrière
• Accéder à toutes les ressources internes
– VPN
– PPT, L2TP, IPSec
• Tous ces mécanismes demandent des
compétences pointues pour ne pas créer des
trous de sécurité
• Personnel très mobile : tout sur le portable ?
– Attention aux vols
– Prévoir sauvegardes
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 298
Construire un réseau « solide »
Fiabilité, disponibilité, tolérance aux pannes, …
• Faire une architecture (physique et logique) simple
– IP est très souple : ne pas abuser des possibilités pointues
• Faire des cahiers des charges (pour chaque évolution)
– Qu’est-ce qu’on veut comme fonctionnalités ?
– Laisser répondre les intégrateurs
• Choisir des équipements spécialisés
– Un PC avec Linux n’est pas un routeur
• Ne pas hésiter à multiplier les machines dédiées /services
– Web – FTP – Mail - DNS - …
• Services réseaux
– Sous Unix ou sous NT ?
– Selon compétences – habitudes – schéma directeur150
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 299
Construire un réseau « solide »
• Faire en fonction des moyens dont on dispose
– Identifier ce qui est vital et non
• Cela va dépendre des applications
• L’expérience est très utile
– De chaque incident on tire une leçon
– Il est difficile de travailler uniquement en théorie
• Ex de question : les équipements et les liaisons sont ils fiables ?
• Comment le savoir sans expérience ?
• Les routeurs par exemple sont jusqu’à présent très fiables
• Faire appel aux entreprises du métier
– Ne pas faire son câblage soi-même
– Utiliser les services des opérateurs
– …
– Mais comprendre et contrôler (le domaine évolue vite)
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 300
Réseau « solide » : disponibilité
• Des liaisons
– Chaque contrat avec opérateur garantit :
• Délai d’intervention
• Délai de rétablissement : 4 h par exemple
• …
– Etablir le même principe en interne
• Pb bien connu : « coup de pelleteuse »
• Des équipements d’interconnexion (matériel)
– Spare
– Contrats de maintenance
– Garantie : souvent à vie maintenant
– Dans locaux réservés et protégés (accès, feu, climatisation ?, …)
• Des serveurs
– Classique informatique
• Ces aspects sont très important (pbs engendrés graves)
– Les informaticiens peuvent avoir tendance à le sous-estimé151
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 301
Réseau « solide » : tolérance aux pannes
• Pannes
– Rupture de liens
– Arrêt d’équipements actifs et de services
• Liaisons (niveau 1)
– Réseau maillé sur site
• Câbles mais aussi tranchées
• Bâtiment : deux accès différents ?
– Liaisons externes LS
• 2 LS différentes ? : rare
– Opérateurs : assurent le maillage
• Back up par réseaux commutés : souvent
– Débits inférieurs : est-ce que les applications fonctionnent toujours
? ? Est-ce utile ?
• 2 points d’arrivées des liaisons externes différents ?
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 302
Réseau « solide » : tolérance aux pannes
Niveau 2 : difficulté : Ethernet = bus (? étoile)
• Pas de structure d’anneau ou de maillage : pas
de maillage possible en extrémité
– (dans réseau capillaire : stations)
– Sauf manipulation (changement de prise …)
• Au cœur : réseau maillé de commutateurs
possible
– Algorithme de Spanning Tree
– Mais construction d’un arbre
• Un seul chemin utilis é à un moment
• L’autre inutilis é : « gaspillage »152
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 303
Réseau « solide » : tolérance aux pannes
Niveau 3 IP :
Routage dynamique sur réseau maillé de routeurs
• Fonctionne très bien : permet de basculer d’un chemin à
un autre sans intervention manuelle
• Pb (similaire à Eth) : à un instant une seule route vers
une destination
– On peut avoir 2 chemins différents pour une destination mais
avec des poids différents
• Quand tout va bien : utilise le chemin avec le poids le plus fort
• Bascule sur l’autre quand le premier chemin est coupé
• Pas de répartition de charge / destination
– Mais on peut répartir plusieurs destinations entre des chemins
différents
• Avec des poids différents permettant de basculer tout le trafic sur un
chemin ou l’autre en cas de rupture d’un des chemins
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 304
Réseau « solide » : tolérance aux pannes
Services : serveurs secondaires
• DNS : ce service doit être très fiable
– Bien répartir les serveurs secondaires
– Au moins un sur le même site
• Pas à côté du primaire (en cas de coupure de lien, …)
– 2 autres ailleurs
• Messagerie (relais) : serveurs secondaires
– DNS : MX records / domaine avec poids différents
– Mécanisme supplémentaire de file d’attente sur serveur émetteur
• Reste 4 j par défaut si serveur distant ne répond pas
• Mais c’est moins que la durée des périodes de fermeture des entreprises
• Serveurs Web de l’entreprise
– Si service important : image de marque, source de revenue, outil
de travail (B2B) avec fournisseur/client …
– Réplication de serveurs … : solutions commerciales disponibles153
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 305
Réseau « solide » : sécurité
• Problème sécurité souvent très coûteux
– Serveurs indisponibles, réseau bloqué, vols d’information, …
– Or attaques viennent maintenant du réseau
• Outils imparfaits
– Disparates (un peu à tous les niveaux …)
– Ne colmatent qu’une partie des trous : toujours de nouveaux
• IP et Internet : conçus sans souci de sécurité
– Principe d’un réseau global, égalitaire, sans frontière
• Pas conçu pour modèle réaliste : réseaux internes (entreprises) et un
réseau d’interconnexion
– Pas de limitation de débit / station ou application
– Transport en clair des informations (mot de passe donc)
– Pas garantie émetteur dans messagerie électronique
– …
• Actuellement la sécurité est une partie très importante
du travail d’un administrateur de réseaux
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 306
Réseau « solide » : qualité de service
• Le réseau est vital pour toutes les activités
– On « demande plus » au réseau
• Et à ses administrateurs
– Pas uniquement de garantir la connectivité
• Que le ping marche ne suffit plus
– Mais que les applications fonctionnent correctement
• ? Qualité de service
– Savoir réserver des bandes passantes (avec certaines
qualités) à
• Des utilisateurs (fonctionnellement à des sous-réseaux IP)
• Des applications (fonctionnellement à des numéros de ports)
– Mécanismes
• Cf chapitres : files d’attente routeurs et QoS154
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 307
La conception de réseaux
• Assemblage de briques un peu disparates
• Mais l’architecte doit avoir une vision globale
– Câbles ? applications
– Connaissances dans des domaines très divers
• Le réseau demande un budget conséquent
– Difficile à faire accepter à la direction
– Arguments trop techniques
• Métier difficile
– A risques
• Si le réseau ne marche pas ? catastrophe pour l’entreprise
– Forte évolution des technologies
• Remise à niveau continuel des connaissances
– Sens relationnel obligatoire
• Psychonet parfois
• Mais intéressant …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 308
Etudes de cas : plan
• Réseau de petit laboratoire éclaté : UREC
– Réseau d’une PME sur 2 sites
• Réseau de campus
– Réseau d’un gros site d’une entreprise
• Réseau Renater (national)
– Réseau opérateur télécom
– Réseau grande entreprise multi-sites155
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 309
Réseau UREC : stations Paris-Grenoble
• Paris
– 7 personnes
– 5 bureaux, salle machines (climatisée)
• Grenoble
– 4 personnes + stagiaires
– 6 bureaux, salle machines (climatisée), local technique
• Choix OS
– Stations personnelles : bureautique ? Windows
– Serveur fichiers interne et sauvegarde ? Windows
– Serveurs Internet (DNS, Mail, Web, …) ? Linux
– Développement, tests ? Cela dépend
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 310
Réseaux UREC : câblage
• Câblages effectués par 2 sociétés spécialisées
– Cahier de recette : plans, repérage des prises, résultats tests
• TP catégorie 5 : 100 Mbps OK
– Post-câblage à Grenoble
– Pré-câblage à Paris (nouveaux bureaux)
– Lors du déménagement Paris : abandon de la FO
– 3 prises par personne : 2 informatiques, 1 téléphone
• Cœur étoiles
– Local technique à Grenoble, salle machine à Paris
– Armoires de brassage
• Chemins de câble
– Goulottes dans les bureaux et faux plafonds ailleurs
• Evolution à court terme
– Bornes sans fil : portables, visiteurs156
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 311
Réseaux UREC
• Equipements actifs
– Paris et Grenoble : un commutateur routeur
– 2 ports FO Gbps Ethernet
– 48 ports TP 10-100 Mbps Ethernet
– Contrat de maintenance
– Avant : routeurs, commutateurs Ethernet et ATM,
Hub Ethernet, Stations Eth et/ou ATM
– Connexion extérieure : prise Giga Eth réseau de
campus
• Plan d’adressage
– 1 numéro de classe C officiel à Paris
– 1 numéro de classe C officiel à Grenoble
– Sous-réseaux sur les sites : utilisation des VLAN
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 312
Réseaux UREC sur 2 sites : VLAN
Commut
Routeur
• Autre possibilité : faire des VLAN étendus sur 2
sites
– Pas vraiment de besoin (serveurs mail … dupliqués)
– Trop de dépendance d’un site / l’autre (pb si coupure
Renater par exemple)
FO
Campus
Stations utilisateurs
Serveurs Internet : DNS, mail, Web, …
Serveurs internes : fichiers, log, mail, Web Intranet
Stations visiteurs
Stations tests157
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 313
Réseau UREC : noms machines
(Rappel : déjà expliqué avant)
• Domaine urec.cnrs.fr
– Ss-domaine grenoble.urec.cnrs.fr : toutes machines de Grenoble
– Ss-domaine paris.urec.cnrs.fr : toutes les machines de Paris
• Alias
– www.urec.fr ? elea.paris.urec.cnrs.fr
– mail.urec.cnrs.fr ? thinos.paris.urec.cnrs.fr
– …
– services.cnrs.fr ? kaki.grenoble.urec.cnrs.fr
• Serveur DNS serveur Paris
– Primaire urec.cnrs.fr et paris.urec.cnrs.fr
– Secondaire grenoble.urec.cnrs.fr
• Serveur DNS Grenoble
– Primaire grenoble.urec.cnrs.fr
– Secondaire paris.urec.cnrs.fr et urec.cnrs.fr
• Serveurs DNS secondaires : Jussieu, Grenoble, …
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 314
UREC : messagerie
• Objectifs architecture
– Adresses standards : Prénom.Nom@urec.cnrs.fr
– Utiliser 2 serveurs (back up) : Paris et Grenoble
• MX urec.cnrs.fr ? Serveurs :
– Mail.paris.urec.cnrs.fr (prioritaire)
– Mail.grenoble.urec.cnrs.fr
• Alias par personne :
– Jean-Luc.Archimbaud@urec.cnrs.fr? JeanLuc.Archimbaud@grenoble.urec.cnrs.fr
• Service accès aux boites aux lettres :
– IMAP en local
– IMAPS avec certificats électroniques à distance158
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 315
UREC : autres services (pour l’UREC)
• Web Intranet :
– Contrôle d’accès par certificat
• Annuaire LDAP : interne
• Service listes de diffusion : SYMPA
• Multicast : routeurs configurés pour le recevoir
• NAT : pas utilisé
• Videoconf (actuellement téléconférence)
– Etude pour l’achat d’un matériel H323 dédié (écran
…)
• Administration
– Un administrateur à Paris, un à Grenoble
– Utilisation de BigBrother
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 316
UREC : sécurité
• Basée sur la segmentation et le filtrage
• Connexion vers l’extérieur
– Tout est possible pour toutes les stations du personnel
– Pour les autres (serveurs, machines tests, …) : limitée au
maximum
• Connexion depuis l’extérieur
– Vers certains serveurs locaux, depuis certains réseaux
• Filtres IP : aucun accès possible :
– Extérieur ? ? machines tests, serveurs internes
– Extérieur ? machines utilisateurs
– Machines tests ? machines utilisateurs
– …
• Filtres IP : accès restreints :
– Extérieur ? serveur Web : uniquement Web
– …159
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 317
UREC : sécurisation accès distants
• Actuellement : n applications
– Telnet, FTP, IMAP, HTTP vers Intranet
– Sécurisation
• Filtrage : uniquement depuis certaines stations
• Mot de passe ? SSL des applications (telnets, ftps, imps, https)
avec utilisation des certificats électroniques
• A l’étude : IPSec avec certificats électroniques
– Station distante considérée comme station locale
– Problèmes :
• Paramétrage de IPSec (fragmentation UDP)
• Plus de débit nécessaire sur la liaison
• Montages en tous sens demande bande passante
• LA STATION NOMADE DOIT ETRE DE CONFIANCE
– Pas d’autres connexions à l’Internet possible depuis cette station
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 318
Réseau de campus
• CNRS Meudon : 10 bâtiments
• Câblage :
– Interconnexion FO
– Intérieur des bâtiments TP Cat5
• Niveau 2-3
– Cœur de réseau : commutateur 100 et GigaEth
– A l’entrée de chaque bâtiment : routeur
– A l’intérieur des bâtiments : commutateurs – hubs
– Sortie vers Renater : routeur
• Adressage IP
– 3 classes C160
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 319
Réseau de campus : services
• Messagerie
• Serveur Web
– Internet
– Intranet : contrôle d’accès par numéro IP
• Sécurité
– Filtres sur les routeurs
– Contrôle d’accès et traces sur les serveurs (tcpwrapper)
• Equipe
– 2 ingénieurs
– Groupe des correspondants de laboratoire
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 320
RENATER : services
• REseau NAtional de la Technologie, de l’Enseignement et
de la Recherche
– GIP : Min Ens Sup, CNRS, INRIA, CEA, …
• Service interconnexion IP
– Réseaux région
– Réseaux métropolitains (MAN)
– Gros sites
– Autres opérateurs français : GIX : SPHINX
– Connexion internationale
• Autres services
– IPv6
– Multicast
– VPN
– CERT161
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 321
RENATER : architecture
• Opérateurs
– N opérateurs pour les liaisons (FO)
– Principaux : TD et FT
– Un opérateur pour l’administration des équipements
actifs (routeurs) : CS
• Architecture
– ATM (VC avec IP) ? IP sur SDH
– VPN : VC ATM ? IPSec
• NRDs : Nœuds de raccordement
– Locaux techniques avec routeurs
– Dans sites en région
JL Archimbaud CNRS/UREC Interconnexion et conception de réseaux 2002 322
Outils Logiques pour l’Informatique
Roberto M. Amadio
To cite this version:
Roberto M. Amadio. Outils Logiques pour l’Informatique. Ecole d’ing´enieur. 2006, Universit´e ´
Paris 7, 2007, pp.86.
HAL Id: cel-00163821
https://cel.archives-ouvertes.fr/cel-00163821
Submitted on 18 Jul 2007
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.Outils Logiques pour l’Informatique∗
Roberto M. Amadio
Universit´e Paris 7
18 juillet 2007
R´esum´e
Ces notes sont une introduction `a la logique math´ematique et aux techniques de
d´eduction automatique dans le cadre du calcul propositionnel classique avec des applications
`a la r´esolution de probl`emes combinatoires et `a la mod´elisation et analyse de
syst`emes informatiques.
1 Introduction
Dans ces notes on aborde les th`emes suivants.
– Calcul propositionnel classique. Interpr´etation. Formes normales. M´ethode de Davis
Putnam. Fonctions d´efinissables. Relation avec les circuits combinatoires.
– Syst`eme de preuve de Gentzen. Correction, compl´etude et compacit´e. M´ethode de
preuve par r´esolution.
– M´ethodes bas´ees sur les diagrammes de d´ecision binaire. Application `a l’analyse de
syst`emes finis.
– Langages formels et automates finis. Non-d´eterminisme et d´eterminisation.
– Notions de calculabilit´e. Machines de Turing. Enum´erations. D´ecidabilit´e. Th´eor`eme de ´
Rice.
– Notions de complexit´e. Classes P et NP. R´eduction en temps polynomial. Le probl`eme
SAT et la notion de NP-compl´etude. Th´eor`eme de Cook-Levin.
– Ordres bien fond´es et principe d’induction.
– M´ethodes de terminaison. Plongement monotone. Ordres produit et lexicographique.
Lemme de K¨onig. Ordre sur les multi-ensembles.
– Travail Pratique. Mise en oeuvre d’une proc´edure de d´eduction automatique type DavisPutnam,
R´esolution,
– Travail Pratique. Utilisation d’un SAT solver type SATO ou CHAFF et application `a
la r´esolution de probl`emes combinatoires type planification, ordonnancement, programmation
lin´eaire sur les entiers,. . .
On pourra se r´ef´erer aux textes suivants pour une pr´esentation plus approfondie.
– J. Barwise, Handbook of mathematical logic (chapitres r´edig´es par J. Barwise et H. Schwichtenberg),
Elsevier.
∗Ces notes sont bas´ees sur un cours que j’ai assur´e `a l’Universit´e de Paris 7 en 2005 et 2006. Elles sont
compl´et´ees par une s´election de travaux dirig´es et pratiques.
1– J. Gallier. Logic for computer science (chapitres 1-4), Harper et Row (disponible en
ligne).
– J. Goubault-Larrecq et I. Mackie. Proof theory and automated deduction (chapitre 1),
Kluwer Academic Publishers.
– M. Sipser. Introduction to the theory of computation (chapitres 3-7), Thomson.
On trouve aussi plusieurs textes d’introduction `a la logique r´edig´es en fran¸cais qui comprennent
un chapitre sur le calcul propositionnel. Par exemple :
– R. Cori, D. Lascar. Logique math´ematique, tome 1 : calcul propositionnel - cours et
exercices, Dunod.
Le texte
– P. Wolper. Introduction `a la calculabilit´e, InterEditions.
comprend une introduction ´el´ementaire aux machines de Turing et `a la complexit´e.
22 Calcul Propositionnel
La logique est `a l’origine une r´eflexion sur le discours (logos) et sur sa coh´erence. En
particulier, la logique math´ematique s’int´eresse `a l’organisation et `a la coh´erence du discours
math´ematique et donc aux notions de validit´e et de preuve. Dans le calcul propositionnel
classique, on dispose d’un certain nombre de propositions qui peuvent ˆetre vraies ou fausses
et d’un certain nombre d’op´erateurs qui permettent de combiner ces propositions.
2.1 Formules
– Soit V = {x1, x2, . . .} un ensemble d´enombrable de variables propositionnelles.
– L’ensemble Form des formules est le plus petit ensemble tel que Form ⊇ V et si A, B ∈
Form alors
¬A (n´egation),
(A ∧ B) (conjonction)
(A ∨ B) (disjonction)
sont des formules.1
– Si A ∈ V on dit que A est une formule atomique.
– Si A ∈ V ou A = ¬B et B ∈ V on dit que A est un litt´eral. Dans le premier cas on dit
que le litt´eral est positif et dans le deuxi`eme qu’il est n´egatif. On d´enote un litt´eral avec
`, `0
, . . .
– L’ensemble Var (A) des variables pr´esentes dans la formule A est d´efini par :
Var (x) = {x}, Var (¬A) = Var (A), Var (A ∧ B) = Var (A ∨ B) = Var (A)∪ Var (B).
2.2 Interpr´etation
– 2 = {0, 1} est l’ensemble des valeurs bool´eennes, d’apr`es George Boole. De fa¸con
´equivalente on peut utiliser B = {faux, vrai} avec la convention que faux correspond `a 0
et vrai `a 1.
– Une affectation est une fonction partielle
v : V * 2
avec domaine de d´efinition dom(v).
– Si v est une affectation, x est une variable propositionnelle et b une valeur bool´eenne
alors v[b/x] est l’affectation d´efinie par
v[b/x](y) = (
b si y = x
v(y) autrement
– L’interpr´etation [[A]]v d’une formule A par rapport `a l’affectation v est d´efinie par
r´ecurrence sur la structure de A en supposant que Var (A) ⊆ dom(v) (autrement l’interpr´etation
n’est pas d´efinie) :
[[x]]v = v(x) [[¬A]]v = NOT([[A]]v)
[[A ∧ B]]v = AND([[A]]v, [[B]]v) [[A ∨ B]]v = OR([[A]]v, [[B]]v).
1
Il s’agit d’un exemple de d´efinition inductive d’un ensemble dont il sera question dans la section 8.
3o`u les fonctions NOT, AND, OR sont d´efinies par :
x NOT(x) x y AND(x, y) x y OR(x, y)
0 1 0 0 0 0 0 0
1 0 0 1 0 0 1 1
1 0 0 1 0 1
1 1 1 1 1 1
Parfois, il est pr´ef´erable d’utiliser une notation plus compacte, `a savoir : x = NOT(x),
x + y = OR(x, y) et x · y = AND(x, y).
– On ´ecrit v |= A si [[A]]v = 1.
– On dit que A est satisfiable s’il existe une affectation v telle que v |= A.
– On dit que A est valide (ou une tautologie) si pour toute affectation v, v |= A.
Exercice 2.1 Montrez que A est valide si et seulement si ¬A n’est pas satisfiable.
Exercice 2.2 Si X est un ensemble de variables et v est une affectation alors v|X est la
restriction de v `a X. Soit A une formule et X ⊇ Var (A). Montrez que si v|X = v
0
|X
alors
[[A]]v = [[A]]v
0
. Donc l’interpr´etation [[A]]v est ind´ependante des valeurs de l’affectation v sur
les variables propositionnelles qui ne sont pas pr´esentes dans A.
2.3 Substitution
La substitution [B/x]A d’une formule B pour une variable propositionnelle x dans la
formule A est d´efinie par :
[B/x](y) = (
B si y = x
y autrement
[B/x](¬A) = ¬[B/x]A,
[B/x](A ∧ A0
) = ([B/x]A ∧ [B/x]A0
) [B/x](A ∨ A0
) = ([B/x]A ∨ [B/x]A0
)
Proposition 2.3 [[[B/x]A]]v = [[A]]v[[[B]]v/x].
Idee de la preuve ´ . Par r´ecurrence sur la structure de A. •
2.4 Equivalence logique ´
On d´efinit les formules :
0 =def x ∨ ¬x 1 =def x ∧ ¬x (A → B) =def ¬A ∨ B (A ↔ B) =def (A → B) ∧ (B → A)
Si |= A ↔ B on dit que A et B sont logiquement ´equivalentes et on ´ecrit aussi A ≡ B.
Exercice 2.4 Montrez que A et B sont logiquement ´equivalentes si et seulement si pour toute
affectation v, [[A]]v = [[B]]v.
Exercice 2.5 Montrez :
(A ∨ 0) ≡ A, (A ∨ 1) ≡ 1, (A ∨ B) ≡ (B ∨ A),
((A ∨ B) ∨ C) ≡ (A ∨ (B ∨ C)), (A ∨ A) ≡ A
(A ∧ 0) ≡ 0, (A ∧ 1) ≡ A, (A ∧ B) ≡ (B ∧ A),
((A ∧ B) ∧ C) ≡ (A ∧ (B ∧ C)), (A ∧ A) ≡ A,
(A ∧ B) ∨ C ≡ (A ∧ C) ∨ (B ∧ C), (A ∨ B) ∧ C ≡ (A ∧ C) ∨ (A ∧ C),
¬¬A ≡ A, ¬(A ∨ B) ≡ ((¬A) ∧ (¬B)), ¬(A ∧ B) ≡ ((¬A) ∨ (¬B)) .
4On appelle les deux derni`eres ´equivalences de l’exercice pr´ec´edent lois de De Morgan.
Si {Ai
| i ∈ I} est une famille de formules index´ees sur l’ensemble I on peut ´ecrire :
V
{Ai
|i∈I} ou V
i∈I Ai
, W
{Ai
|i∈I} ou W
i∈I Ai
.
Comme la disjonction et la conjonction sont associatives et commutatives, cette notation
d´efinit une formule unique `a ´equivalence logique pr`es. Par convention, si I est vide on a :
^
∅ = 1 et _
∅ = 0 .
2.5 Fonctions d´efinissables et formes normales
– Soit x1, . . . , xn une liste de variables distinctes telle que {x1, . . . , xn} ⊇ var (A). Une
formule A d´efinit une fonction fA : 2
n → 2 par
fA(b1, . . . , bn) = [[A]][b1/x1, . . . , bn/xn]
Notez que la fonction fA non seulement d´epend de A mais aussi de la liste de variables
x1, . . . , xn. Par exemple, la formule x d´efinit la premi`ere projection par rapport `a la
liste x, y et la deuxi`eme projection par rapport `a la liste y, x.
– Une formule est en forme normale disjonctive (DNF pour Disjunctive Normal Form) si
elle est une disjonction de conjonctions de litt´eraux.
– On appelle clause une disjonction de litt´eraux. Une formule est en forme normale
conjonctive (CNF pour Conjuctive Normal Form) si elle est une conjonction de clauses.
Th´eor`eme 2.6 Toute fonction f : 2
n → 2 est d´efinissable par une formule A en forme
normale disjonctive telle que Var (A) = {x1, . . . , xn}.
Idee de la preuve ´ . On construit un tableau de v´erit´e avec 2n
entr´ees. Si f(b1, . . . , bn) = 1
avec bi ∈ {0, 1} alors on construit un monˆome (`1 ∧ · · · ∧ `n) o`u `i = xi si bi = 1 et `i = ¬xi
autrement. La formule A est la disjonction de tous les monˆomes obtenus de cette fa¸con. Par
exemple, si f(0, 1) = f(1, 0) = 1 et f(0, 0) = f(1, 1) = 0 alors on obtient A = (¬x1 ∧ x2) ∨
(x1 ∧ ¬x2). •
Corollaire 2.7 Toute fonction f : 2
n → 2 est d´efinissable par une formule A en forme
normale conjonctive telle que Var (A) = {x1, . . . , xn}.
Idee de la preuve ´ . Par le th´eor`eme 2.6 on peut construire une formule A en forme normale
disjonctive pour la fonction NOT ◦ f : 2
n → 2. Donc la formule ¬A d´efinit la fonction f. On
applique maintenant les lois de De Morgan et on obtient :
¬
_
i∈I
(
^
j∈Ji
`i,j ) ≡
^
i∈I
(¬(
^
j∈Ji
`i,j )) ≡
^
i∈I
(
_
j∈Ji
(¬`i,j ) ) ≡
^
i∈I
(
_
j∈Ji
`
0
i,j )
o`u `
0
i,j = ¬xi,j si `i,j = xi,j et `
0
i,j = xi,j si `i,j = ¬xi,j . Bien sˆur, on utilise ici l’´equivalence
logique A ≡ ¬¬A. •
5Remarque 2.8 Tout ensemble fini X peut ˆetre cod´e par les ´el´ements d’un ensemble 2
n
pour n suffisamment grand. Toute fonction f : 2
n → 2
m se d´ecompose en m fonctions
f1 : 2
n → 2, . . . , fm : 2
n → 2. Ainsi toute fonction f : X → Y o`u X et Y sont finis
peut ˆetre d´efinie, modulo codage, par un vecteur de formules du calcul propositionnel. Avec un
peu de r´eflexion, tout objet fini peut ˆetre repr´esent´e par des formules du calcul propositionnel.
Cette puissance de repr´esentation explique en partie la grande vari´et´e d’applications possibles
du calcul propositionnel.
Exercice 2.9 Montrez que toute formule est logiquement ´equivalente `a une formule compos´ee
de n´egations et de conjonctions (ou de n´egations et de disjonctions).
Exercice 2.10 La taille |A| d’une formule A peut se d´efinir par :
|x| = 1, |¬A| = 1 + |A|, |A ∧ B| = 1 + |A| + |B|, |A ∨ B| = 1 + |A| + |B| .
Donnez une borne sup´erieure `a la taille d’une formule qui d´efinit une fonction f : 2
n → 2.
Exercice 2.11 (1) Montrez que :
_
i=1,...,m
(
^
j=1,...,ni
`i,j ) ≡
^
1≤i≤m,1≤ki≤ni
(`1,k1 ∨ · · · ∨ `m,km)
(2) Supposez ni = n pour i = 1, . . . , m. Exprimez la taille des formules dans (1) en fonction
de n et m.
(3) D´erivez une proc´edure pour transformer une formule en CNF.
Exercice 2.12 (1) Montrez l’´equivalence logique :
(A ∧ B) ∨ (¬A ∧ B) ≡ B (1)
(2) On peut appliquer cette ´equivalence logique pour simplifier une forme normale disjonctive.
Par exemple, consid´erez la fonction f(x, y, z) d´efinie par le tableau de v´erit´e :
x\yz 00 01 11 10
0 0 1 1 0
1 1 1 1 1
Calculez la forme normale disjonctive de f et essayez de la simplifier en utilisant l’´equivalence
logique 1.
(3) La pr´esentation du tableau de v´erit´e n’est pas arbitraire. . . Proposez une m´ethode graphique
pour calculer une forme normale disjonctive simplifi´ee.
Exercice 2.13 Soit f une fonction sur les nombres naturels. Dire qu’un probl`eme est d´ecid´e
en O(f), signifie qu’on dispose d’un algorithme A et de n0, k nombres naturels tels que pour
toute entr´ee dont la taille n est sup´erieure `a n0, le temps de calcul de A sur l’entr´ee en
question est inf´erieure `a k · f(n).
(1) Montrez que la satisfaction d’une formule en DNF et la validit´e d’une formule en CNF
peuvent ˆetre d´ecid´ees en O(n).
(2) Soit pair (x1, . . . , xn) = (Σi=1,...,nxi) mod 2 la fonction qui calcule la parit´e d’un vecteur de
bits. Montrez que la repr´esentation en DNF ou CNF de cette fonction est en O(2n
). Peut-on
appliquer (1) pour simplifier la repr´esentation ?
6Exercice 2.14 (if-then-else) La fonction ternaire ITE est d´efinie par ITE(1, x, y) = x et
ITE(0, x, y) = y. Montrez que toute fonction f : 2
n → 2, n ≥ 0 s’exprime par composition de
la fonction ITE et des (fonctions) constantes 0 et 1.
Exercice 2.15 (nand,nor) Les fonctions binaires NAND et NOR sont d´efinies par NAND(x, y) =
NOT(AND(x, y)) et NOR(x, y) = NOT(OR(x, y)). Montrez que toute fonction f : 2
n → 2,
n ≥ 0, s’exprime comme composition de la fonction NAND (ou de la fonction NOR). Montrez
que les 4 fonctions unaires possibles n’ont pas cette propri´et´e et que parmi les 16 fonctions
binaires possibles il n’y en a pas d’autres qui ont cette propri´et´e.
Exercice 2.16 L’or exclusif ⊕ (xor) est d´efini par
A ⊕ B ≡ (A ∧ ¬B) ∨ (¬A ∧ B)
Montrez que :
(1) ⊕ est associatif et commutatif.
(2) x ⊕ 0 ≡ x et x ⊕ x ≡ 0.
(3) Toute fonction bool´eenne f : 2
n → 2 peut ˆetre repr´esent´ee `a partir de 1, ∧ et ⊕.
2.6 M´ethode de Davis-Putnam
La m´ethode de Davis Putnam permet de d´ecider si une formule en forme normale conjonctive
est satisfiable. On repr´esente une formule A en CNF comme un ensemble (´eventuellement
vide) de clauses {C1, . . . , Cn} et une clause C comme un ensemble (´eventuellement vide) de
litt´eraux. Dans cette repr´esentation, on d´efinit la substitution [b/x]A d’une valeur bool´eenne
b ∈ {0, 1} dans A comme suit :
[b/x]A = {[b/x]C | C ∈ A et [b/x]C 6= 1}
[b/x]C =
1 si (b = 1 et x ∈ C) ou (b = 0 et ¬x ∈ C)
C\{`} si (b = 1 et ` = ¬x ∈ C) ou (b = 0 et ` = x ∈ C)
C autrement
On d´efinit une fonction DP qui agit r´ecursivement sur une formule A en CNF dans la
repr´esentation d´ecrite ci-dessus :
function DP(A) = case
(1) A = ∅ : true
(2) ∅ ∈ A false
(3) {x,¬x} ⊆ C ∈ A : DP(A\{C})
(4) {x} ∈ A : DP([1/x]A)
(5) {¬x} ∈ A : DP([0/x]A)
(6) else : choisir x dans A;
DP([0/x]A) or DP([1/x]A)
Dans (1), nous avons une conjonction du vide qui par convention est ´equivalente `a true. Dans
(2), A contient une clause vide. La disjonction du vide ´etant ´equivalente `a false, la formule A
est aussi ´equivalente `a false. Dans (3), une clause contient un litt´eral et sa n´egation et elle est
7donc ´equivalente `a true. Dans (4) et (5), A contient une clause qui est constitu´ee uniquement
d’une variable ou de sa n´egation. Ceci permet de connaˆıtre la valeur de la variable dans toute
affectation susceptible de satisfaire la formule. Dans (6), nous sommes oblig´es `a consid´erer les
deux valeurs possibles d’une affectation sur une variable.
Exercice 2.17 (1) Montrez que si A est une fonction en CNF alors la fonction DP termine.
(2) Montrez que DP(A) retourne true (false) si et seulement si A est satisfiable (ne l’est pas).
Exercice 2.18 Expliquez comment utiliser la m´ethode de Davis-Putnam pour d´ecider la validit´e
d’une formule.
Exercice 2.19 Modifiez la fonction DP pour que, si la formule A est satisfiable, elle retourne
une affectation v qui satisfait A.
Exercice 2.20 R´efl´echissez aux structures de donn´ees et aux op´erations n´ecessaires `a la mise
en oeuvre de l’algorithme en Java.
Exercice 2.21 En logique classique, on peut d´efinir l’implication A → B comme ¬A ∨ B.
Analysez la satisfiabilit´e et la validit´e des formules suivantes :
(x → w) → ((y → z) → ((x ∨ y) → w))
(x → y) → ((y → ¬w) → ¬x)
Calculez la CNF des deux formules et de leurs n´egations. Appliquez la m´ethode de DavisPutnam
pour d´eterminer la satisfiabilit´e des formules obtenues.
Exercice 2.22 Une clause de Horn est une clause (c’est-`a-dire une disjonction de litt´eraux)
qui contient au plus un litt´eral positif. Une formule de Horn est une formule en CNF dont les
clauses sont des clauses de Horn.
(1) Montrez que toute formule de Horn est ´equivalente `a la conjonction (´eventuellement vide)
de clauses de Horn de la forme :
(1) x
(2) ¬x1 ∨ · · · ∨ ¬xn
(3) ¬x1 ∨ · · · ∨ ¬xn ∨ xn+1
o`u n ≥ 1 et xi 6= xj si i 6= j. Dans ce cas on dit que la formule de Horn est r´eduite.
(2) Montrez qu’une formule de Horn r´eduite qui ne contient pas de clauses de la forme (1)
ou qui ne contient pas de clauses de la forme (2) est satisfiable.
(3) Donnez une m´ethode efficace (temps polynomial) pour d´eterminer si une formule de Horn
est satisfiable.
2.7 Circuits
Une formule A du calcul propositionnel avec variables x1, . . . , xn peut ˆetre vue comme un
arbre. On a vu que A d´efinit une fonction fA : 2
n → 2. Une fa¸con naturelle de calculer la
fonction fA est de propager les valeurs de v´erit´e des feuilles vers la racine. On peut mesurer
la complexit´e du calcul en comptant le nombre de portes ou en comptant la longueur du
chemin le plus long. Intuitivement, la premi`ere mesure correspond `a l’espace occup´e par le
calcul alors que la deuxi`eme correspond au temps n´ecessaire au calcul.
82.7.1 Circuits bool´eens
Une formule/arbre A peut pr´esenter une certaine redondance. Par exemple, consid´erons
la formule :
(x3 ∧ ¬((x1 ∨ x2) ∧ (¬x1 ∨ ¬x2))) ∨ (¬x3 ∧ (x1 ∨ x2) ∧ (¬x1 ∨ ¬x2))
Les formules x1, x2, x3, (x1 ∨ x2), (¬x1 ∨ ¬x2) paraissent plusieurs fois dans la formule A. On
peut alors envisager de donner une repr´esentation plus compacte de A dans laquelle les sous
formules identiques sont partag´ees. On arrive ainsi `a la notion de circuit bool´een.
Un circuit bool´een est un graphe dirig´e acyclique G = (N, A) o`u on appelle les noeuds dans
N portes logiques. A chaque porte logique on associe une ´etiquette ∧,∨,¬, 0, 1, x1, . . . , xn. Les
noeuds avec ´etiquettes ∧,∨ ont 2 arˆetes entrantes, les noeuds avec ´etiquette ¬ ont 1 arˆete
entrante et les noeuds avec ´etiquettes 0, 1, x1, . . . , xn n’ont pas d’arˆete entrante. Les noeuds
qui n’ont pas d’arˆete entrante correspondent aux entr´ees du circuit. Les noeuds qui n’ont pas
d’arˆete sortante correspondent aux sorties du circuit. Chaque sortie correspond `a une fonction
(avec entr´ees x1, . . . , xn) repr´esent´ee par le circuit.
Les fonctions calcul´ees par le circuit sont obtenues en affectant des valeurs de v´erit´e aux
variables x1, . . . , xn et en propageant ces valeurs de v´erit´e des entr´ees vers les sorties. Le fait
que le graphe est acyclique assure que ce calcule peut toujours ˆetre effectu´e et que le r´esultat
est d´etermin´e de fa¸con unique.
2.7.2 Circuits combinatoires
Les circuits bool´eens sont une abstraction math´ematique de dispositifs ´electroniques qu’on
appelle circuits combinatoires. Dans les circuits combinatoires, les portes logiques sont r´ealis´ees
par des transistors, les arˆetes correspondent `a des interconnexions et les valeurs bool´eennes
correspondent `a des tensions. Typiquement, 0 est repr´esent´e par la masse (tension 0V ) et 1
par 5V .
Dans les circuits combinatoires les boucles sont interdites, ce qui correspond `a la condition
d’acyclicit´e dans les circuits bool´eens. Cette condition permet de garantir que suite `a une
variation des tensions en entr´ee, la tension du circuit en sortie se stabilise sur une valeur
significative (proche de 0V ou de 5V apr`es un temps qui est li´e `a des variables physiques
comme la temp´erature et la longueur des interconnexions).
Remarquons que les mesures de complexit´e que nous avons ´evoqu´ees pour les circuits
logiques ont une interpr´etation imm´ediate en terme de circuits combinatoires. Le nombre de
noeuds du circuit bool´een correspond au nombre de portes logiques, c’est-`a-dire au nombre
de transistors n´ecessaires `a la mise en oeuvre du circuit. Coupl´ee avec la topologie des interconnexions,
cette mesure d´etermine l’espace occup´e par le circuit. La longueur du chemin le
plus long correspond au temps qu’il faut attendre entre une variation du signal en entr´ee et
la stabilisation du signal en sortie.
La notion de circuit bool´een fait abstraction de la notion de temps (le calcul du r´esultat
est instantan´e) et dans une certaine mesure de distance (on compte le nombre de portes mais
on ne compte pas la longueur des interconnexions) et il permet de simplifier grandement la
conception d’un circuit combinatoire. Dans la suite nous allons consid´erer dans un certain
d´etail la conception d’un additionneur.
92.7.3 Additionneur
On consid`ere un vecteur bn, . . . , b0 o`u bi ∈ {0, 1} comme un nombre en base 2. Ainsi le
nombre repr´esent´e est Σi=0,...,nbi2
i qu’on d´enote aussi avec (bn · · · b0)2.
Un multiplexeur est un circuit bool´een avec n + 2n
entr´ees cn−1, . . . , c0, x2n−1, . . . , x0 et
une sortie y tel que
y = x(cn−1···c0)2
Exercice 2.23 Construisez un circuit bool´een qui r´ealise un multiplexeur dont le nombre de
portes est proportionnel `a 2
n
et dont la longueur du chemin le plus long est proportionnelle `a
n.
Un additionneur est un circuit bool´een avec 2n entr´ees xn−1, yn−1, . . . , x0, y0 et n + 1
sorties rn, sn−1, . . . , s0 tel que
(xn−1 · · · x0)2 + (yn−1 · · · y0)2 = (rnsn−1 · · · s0)2
On peut r´ealiser un additionneur en utilisant l’algorithme standard qui propage la retenue de
droite `a gauche.
Exercice 2.24 (1) R´ealisez un circuit A avec 3 entr´ees x, y, r et deux sorties s, r0
tel que
(r
0
s)2 = (x)2 + (y)2 + (r)2
(2) Expliquez comment inter-connecter n circuits A pour obtenir un additionneur sur n bits.
(3) Montrez que dans le circuit en question le nombre de portes et la longueur du chemin le
plus long sont proportionnels `a n.
Exercice 2.25 Le but de cet exercice est de r´ealiser un additionneur dont le nombre de portes
est encore polynomiale en n mais dont la longueur du chemin le plus long est proportionnelle
`a lg(n). Pour ´eviter que la retenue se propage `a travers tout le circuit, l’id´ee est d’anticiper sa
valeur. Ainsi pour additionner 2 vecteurs de longueur n, on additionne les premiers n/2 bits
(ceux de poids faible) et en mˆeme temps on additionne les derniers n/2 bits (ceux de poids
fort) deux fois (en parall`ele) une fois avec retenue initiale 0 et une fois avec retenue initiale
1. On applique cette m´ethode r´ecursivement sur les sous-vecteurs de longueur n/4, n/8, . . .
selon le principe diviser pour r´egner.
(1) Construisez explicitement un tel circuit pour n = 4.
(2) D´eterminez en fonction de n le nombre de portes et la longueur du chemin le plus long
du circuit obtenu.
Exercice 2.26 Un d´ecodeur est un circuit avec n entr´ees xn−1, . . . , x0 et 2
n
sorties y2n−1, . . . , y0
tel que
yi = 1 ssi i = (xn−1 · · · x0)2
R´ealisez un tel circuit.
10Exercice 2.27 On dispose d’un circuit combinatoire CE avec 2 entr´ees x, y et 2 sorties <, =
dont le comportement est sp´ecifi´e par le tableau suivant (bien sˆur, les symboles choisis pour
les sorties ne sont pas arbitraires) :
x y < =
0 0 0 1
0 1 1 0
1 0 0 0
1 1 0 1
Un comparateur n bits est une fonction bool´eenne C avec 2n entr´ees et 1 sortie telle que :
C(xn−1, yn−1, . . . , x0, y0) = 1 ssi (xn−1 · · · x0)2 < (yn−1 · · · y0)2
On remarque que :
(xn−1 · · · x0)2 < (yn−1 · · · y0)2 ssi (xn−1 < yn−1) ou
((xn−1 = yn−1) et (xn−2 · · · x0)2 < (yn−2 · · · y0)2)
Montrez comment construire un circuit combinatoire qui impl´emente un comparateur 4 bits
en disposant de : (i) 4 circuits CE , (ii) 8 portes AND binaires (vous n’ˆetes pas oblig´es de
les utiliser toutes) et 1 porte OR avec 4 entr´ees. Si vous ˆetes bloqu´e, essayez d’abord le
comparateur 2 bits.
113 Syst`emes de preuve
Pour l’instant on a consid´er´e un langage logique (la logique propositionnelle classique)
et une notion de validit´e. Comment s’assurer qu’une formule est valide ? Dans le cas de
la logique propositionnelle, on peut envisager de v´erifier toutes les affectations mais cette
m´ethode demande 2n v´erifications pour une formule qui contient n variables. De plus pour
v´erifier la validit´e de formules en logique du premier ordre on aurait `a consid´erer une infinit´e
de cas car les domaines d’interpr´etation sont infinis. D’o`u l’id´ee de se donner des axiomes
et des r`egles pour d´eduire avec un effort fini de calcul des formules valides. Par exemple, on
pourrait avoir les axiomes :
(A1) A → (B → A)
(A2) (A → (B → C)) → ((A → B) → (A → C))
et on pourrait avoir une r`egle :
(R)
A A → B
B
A partir des axiomes et des r`egles on peut construire des ` preuves. Une preuve est un arbre
dont les feuilles sont ´etiquet´ees par des axiomes et dont les noeuds internes sont ´etiquet´es par
des r`egles d’inf´erence. La formule qui se trouve `a la racine de l’arbre est la formule que l’on
d´emontre. Par exemple, en prenant B = (A → A) et C = A on peut construire une preuve
de A → A par application des axiomes (A1 − 2) et de la r`egle (R) (2 fois). On remarquera
qu’axiomes et r`egles sont toujours donn´es en forme sch´ematique. Par exemple, dans l’axiome
(A1) il est entendu qu’on peut remplacer les formules A et B par des formules arbitraires.
3.1 Correction et compl´etude
On dit qu’un syst`eme de preuve est :
correct s’il permet de d´eduire seulement des formules valides,
complet si toute formule valide peut ˆetre d´eduite.
Il est trivial de construire des syst`emes corrects ou complets mais il est beaucoup plus
d´elicat de construire des syst`emes corrects et complets. On va examiner un syst`eme correct
et complet propos´e par Gerhard Gentzen en 1930. Une id´ee g´en´erale est d’´ecrire des r`egles
d’inf´erence qui permettent de r´eduire la ‘complexit´e structurale (ou logique)’ des formules
jusqu’`a une situation qui peut ˆetre trait´ee directement par un axiome.
Exercice 3.1 Soit A = `1 ∨ · · · ∨ `n une disjonction de litt´eraux. Montrez que A est valide si
et seulement si une variable propositionnelle x et sa n´egation ¬x sont pr´esentes dans A.
Ceci sugg`ere un axiome :
x ∨ ¬x ∨ B
ou plus en g´en´eral
A ∨ ¬A ∨ B
On consid`ere maintenant la situation pour la conjonction et la disjonction.
12Exercice 3.2 Montrez que :
|= A ∧ B ssi |= A et |= B
Ceci sugg`ere une r`egle pour la conjonction :
A B
A ∧ B
Exercice 3.3 Montrez que :
|= A ∨ B si |= A ou |= B
Ceci sugg`ere deux r`egles pour la disjonction :
A
A ∨ B
B
A ∨ B
Comment traiter la n´egation ? L’exercice suivant montre comment r´eduire la n´egation en
faisant passer la formule `a droite ou `a gauche d’une implication.
Exercice 3.4 Montrez que :
|= B → (¬A ∨ C) ssi |= (B ∧ A) → C
|= (B ∧ ¬A) → C ssi |= B → (A ∨ C)
Ce type de consid´erations nous m`enent `a la notion de s´equent.
D´efinition 3.5 Un s´equent est un couple (Γ, ∆) qu’on ´ecrit Γ ` ∆ d’ensembles finis (´eventuellement
vides) de formules. Un s´equent Γ ` ∆ est valide si la formule
(
^
A∈Γ
A) → (
_
B∈∆
B)
est valide.
Par convention, on ´ecrit un s´equent {A1, . . . , An} ` {B1, . . . , Bm} comme A1, . . . , An `
B1, . . . , Bm et un ensemble Γ ∪ {A} comme Γ, A. On remarquera que la virgule ‘,’ est interpr´et´ee
comme une conjonction `a gauche et comme une disjonction `a droite du s´equent. On
va maintenant reformuler nos id´ees sur la simplification des formules en utilisant la notion de
s´equent.
(Ax )
A, Γ ` A, ∆
(∧ `)
A, B, Γ ` ∆
A ∧ B, Γ ` ∆
(` ∧)
Γ ` A, ∆ Γ ` B, ∆
Γ ` A ∧ B, ∆
(∨ `)
A, Γ ` ∆ B, Γ ` ∆
A ∨ B, Γ ` ∆
(` ∨)
Γ ` A, B, ∆
Γ ` A ∨ B, ∆
(¬ `)
Γ ` A, ∆
¬A, Γ ` ∆
(` ¬)
A, Γ ` ∆
Γ ` ¬A, ∆
13Ce syst`eme est remarquable par sa simplicit´e conceptuelle : il comporte un axiome ‘identit´e’
qui dit que de A on peut d´eriver A et des r`egles d’inf´erence. Pour chaque op´erateur de la
logique, on dispose d’une r`egle qui introduit l’op´erateur `a gauche du ` et d’une autre qui
l’introduit `a droite.
Exercice 3.6 Montrez que :
(1) Un s´equent A, Γ ` A, ∆ est valide.
(2) Pour chaque r`egle d’inf´erence la conclusion est valide si et seulement si les hypoth`eses
sont valides.
Th´eor`eme 3.7 Le syst`eme de Gentzen d´erive exactement les s´equents valides.
Idee de la preuve ´ . Par l’exercice 3.6 tout s´equent d´erivable est valide. Donc le syst`eme
est correct. Soit Γ ` ∆ un s´equent valide. On applique les r`egles jusqu’`a ce que toutes les
formules dans les s´equents soient atomiques. Ensuite on remarque qu’un s´equent valide dont
toutes les formules sont atomiques peut ˆetre d´eriv´e par application de l’axiome (Ax ). Cette
remarque est une simple reformulation de l’exercice 3.1. •
D´efinition 3.8 Soit A une formule. L’ensemble sf (A) des sous formules de A est d´efini par
sf (A) =
{A} si A atomique
{A} ∪ sf (B) si A = ¬B
{A} ∪ sf (B1) ∪ sf (B2) si A = B1 ∧ B2 ou A = B1 ∨ B2
Exercice 3.9 (sous-formule) Montrez que si un s´equent est d´erivable alors il y a une preuve
du s´equent qui contient seulement des sous formules de formules dans le s´equent.
Exercice 3.10 (affaiblissement) Montrez que si le s´equent Γ ` ∆ est d´erivable alors le
s´equent Γ ` A, ∆ l’est aussi.
Exercice 3.11 (implication) Dans le syst`eme de Gentzen on peut donner un traitement
direct de l’implication :
(→`)
Γ ` A, ∆ B, Γ ` ∆
A → B, Γ ` ∆
(`→)
Γ, A ` B, ∆
Γ ` A → B, ∆
Red´emontrez le th´eor`eme 3.7 pour le syst`eme de Gentzen ´etendu avec ces r`egles.
Exercice 3.12 Montrez que les r`egles pour la disjonction et l’implication sont d´erivables des
r`egles pour la conjonction et la n´egation en utilisant les ´equivalences : A ∨ B ≡ ¬(¬A ∧ ¬B)
et A → B ≡ ¬A ∨ B.
Exercice 3.13 (1) Ecrire l’axiome et les r`egles d’inf´erence du calcul des s´equents pour les ´
op´erateurs logiques de n´egation ¬ et d’implication →. Rappel : on peut retrouver les r`egles
pour l’implication `a partir des r`egles pour la n´egation et la disjonction.
(2) Utilisez les syst`eme de preuve d´ecrit pour construire une preuve des s´equents suivants :
` (¬¬A → A) et (A → B),(A → ¬B) ` ¬A
14Exercice 3.14 Trouvez les r`egles (` NAND) et (NAND `) pour l’op´erateur logique NAND
en utilisant le fait que NAND(A, B) s’´ecrit comme ¬(A ∧ B).
Exercice 3.15 (coupure) La r`egle de coupure (ou cut) est :
(coupure)
A, Γ ` ∆ Γ ` A, ∆
Γ ` ∆
Montrez que le syst`eme de Gentzen ´etendu avec cette r`egle est toujours correct (et complet).
Exercice 3.16 D´erivez du syst`eme de Gentzen un algorithme pour v´erifier si une formule A
est valide. Quelle est la complexit´e en temps de votre algorithme ?
Exercice 3.17 On consid`ere les formules suivantes :
A = (x ∨ z) ∧ (y ∨ w), B = (¬x ∨ ¬y) ∧ (¬z ∨ ¬w), C = (¬x ∨ ¬z) ∧ (¬y ∨ ¬w)
1. Consid´erez le s´equent A, C ` B. S’il est valide, construisez une preuve du s´equent,
autrement donnez une affectation des variables x, y, z, w qui montre qu’il ne l’est pas.
2. Mˆeme probl`eme pour le s´equent A, B ` C.
3.2 Compacit´e
Un ensemble (´eventuellement infini) de formules T est satisfiable s’il existe une affectation
qui satisfait chaque formule dans T.
Exercice 3.18 Si T est satisfiable alors chaque sous ensemble fini de T est satisfiable.
On va montrer que la r´eciproque est aussi vraie.
D´efinition 3.19 (1) Un ensemble T de formules est finement satisfiable si tout sous ensemble
fini de T est satisfiable.
(2) Un ensemble T de formules finement satisfiable est maximal si pour toute formule A soit
A ∈ T soit ¬A ∈ T.
Exercice 3.20 Montrez que :
(1) Si S est un ensemble finement satisfiable et maximal alors :
A ∈ S ssi ¬A /∈ S
A ∧ B ∈ S ssi A ∈ S et B ∈ S
A ∨ B ∈ S ssi A ∈ S ou B ∈ S
(2) Soit S un ensemble de formules finement satisfiable et maximal. On d´efinit une affectation
vS par :
vS(x) = (
1 si x ∈ S
0 si ¬ ∈ S
Pourquoi cette d´efinition est-elle correcte ?
(3) Soit S finement satisfiable et maximal. Montrez que S est satisfiable.
(4) Soit T un ensemble de formules. Montrez que s’il existe S ⊇ T finement satisfiable et
maximal alors T est satisfiable.
15Exercice 3.21 Soit T un ensemble de formules finement satisfiable et A une formule. Alors,
soit T ∪ {A} est finement satisfiable soit T ∪ {¬A} est finement satisfiable.
Th´eor`eme 3.22 (compacit´e) Si un ensemble de formules T est finement satisfiable alors
il est satisfiable.
Idee de la preuve ´ . Soit {An | n ∈ N} une ´enum´eration de toutes les formules. On d´efinit
T0 = T et
Tn+1 =
(
Tn ∪ {An} si Tn ∪ {An} est finement satisfiable
Tn ∪ {¬An} autrement
S =
S
n∈N Tn
On d´emontre que Tn est finement satisfiable par r´ecurrence sur n en utilisant l’exercice 3.21.
On en d´erive que S est finement satisfiable car si X ⊆ S et X est fini alors ∃ n X ⊆ Tn. On
v´erifie aussi que S est maximal car pour toute formule A il existe n tel que A = An et donc
A ∈ Tn+1 ou ¬A ∈ Tn+1. Donc par l’exercice 3.20, S est satisfiable et donc T l’est aussi. •
Exercice 3.23 Soit T un ensemble de formules. On ´ecrit T |= A si pour toute affectation v,
si v satisfait T alors v satisfait A. Montrez que si T |= A alors il existe T0 sous-ensemble fini
de T tel que T0 |= A. Suggestion : utilisez le th´eor`eme de compacit´e.
3.3 M´ethode de preuve par r´esolution
Exercice 3.24 Montrez que la r`egle d’inf´erence suivante est valide :
A ∨ ¬C B ∨ C
A ∨ B
(2)
Exercice 3.25 Pour repr´esenter les formules en CNF on adopte la mˆeme notation ensembliste
utilis´ee pour d´ecrire la m´ethode de Davis-Putnam.
– Une clause C est un ensemble de litt´eraux.
– Une formule A est un ensemble de clauses.
Nous consid´erons une variante de la r`egle (2) :
A ∪ {C ∪ {x}} ∪ {C
0 ∪ {¬x}} x /∈ C ¬x /∈ C
0
A ∪ {C ∪ {x}} ∪ {C
0 ∪ {¬x}} ∪ {C ∪ C
0}
(3)
Dans la suite on appelle (3) r`egle de r´esolution.
2 L’effet de l’application de la r`egle consiste
`a ajouter une nouvelle clause C ∪ C
0
qu’on appelle r´esolvant des deux clauses C ∪ {x} et
C
0 ∪ {¬x}.
(1) Montrez que l’hypoth`ese est logiquement ´equivalente `a la conclusion.
(2) Conclure que si la conclusion n’est pas satisfiable alors l’hypoth`ese n’est pas satisfiable.
En particulier, si la conclusion contient la clause vide alors l’hypoth`ese n’est pas satisfiable.
2Sans les conditions x /∈ C et ¬x /∈ C
0
on pourrait par exemple ‘simplifier’ les clauses {x} et {¬x} en
{x,¬x}.
16Fait Si une formule A en CNF n’est pas satisfiable alors la r`egle de r´esolution permet de
d´eriver une formule A0 avec une clause vide. On dit que la r`egle de r´esolution est compl`ete
pour la r´efutation, c’est-`a-dire pour la d´erivation de la clause vide. La m´ethode peut ˆetre
impl´ement´ee it´erativement. A chaque it´eration on ajoute toutes les clauses qui sont un
r´esolvant de deux clauses. Cette it´eration termine forc´ement car le nombre de clauses qu’on
peut construire est fini. Parfois, il convient de repr´esenter la d´erivation comme un graphe
dirig´e acyclique (ou DAG pour directed acyclic graph) dont les noeuds sont ´etiquet´es par les
clauses. Initialement on a autant de noeuds que de clauses et pas d’arˆetes. Chaque fois qu’on
applique la r`egle de r´esolution (3) on introduit un nouveau noeud qui est ´etiquet´e avec la
clause r´esolvant C ∪ C
0
et deux nouvelles arˆetes qui vont des noeuds ´etiquet´es avec les clauses
C ∪ {x} et C
0 ∪ {¬x} vers le noeud ´etiquet´e avec la clause C ∪ C
0
.
Exercice 3.26 Construire la formule A en CNF qui correspond au principe du nid de pigeon
avec 2 pigeons et 1 nid. D´erivez la clause vide en utilisant la r`egle de r´esolution. Mˆeme
probl`eme avec 3 pigeons et 2 nids (attention le calcul risque d’ˆetre long).
Exercice 3.27 Soit A une formule en CNF avec m variables et n clauses. Montrez qu’il y a
au plus m · (n · (n − 1)/2) fa¸cons d’appliquer la r`egle de r´esolution.
Exercice 3.28 Soit A une formule en CNF et C une clause. Expliquez comment utiliser la
m´ethode de r´esolution pour ´etablir si l’implication A → C est valide.
Exercice 3.29 Un exercice de r´evision. On consid`ere les formules en CNF suivantes :
1. ¬x ∨ (¬y ∨ x)
2. (x ∨ y ∨ ¬z) ∧ (x ∨ y ∨ z) ∧ (x ∨ ¬y) ∧ ¬x.
3. (x ∨ y) ∧ (z ∨ w) ∧ (¬x ∨ ¬z) ∧ (¬y ∨ ¬w).
Pour chaque formule :
1. Si la formule est valide calculez une preuve de la formule dans le syst`eme de Gentzen.
2. Si la formule est satisfiable mais pas valide calculez une affectation qui satisfait la formule
en utilisant la m´ethode de Davis-Putnam.
3. Si la formule n’est pas satisfiable d´erivez la clause vide en utilisant la m´ethode par
r´esolution.
174 Diagrammes de d´ecision binaire et applications
Les diagrammes de d´ecision binaire (BDD pour Binary Decision Diagrams) sont une
repr´esentation des fonctions bool´eennes. Cette repr´esentation avait d´ej`a ´et´e remarqu´ee par
Lee en 1959 mais son int´erˆet algorithmique a ´et´e r´ealis´e plus r´ecemment par Bryant en 1986.
Les BDD repr´esentent une fonction bool´eenne comme un circuit compos´e de multiplexeurs
(if-then-else) et de constantes 0 et 1. Une propri´et´e importante de cette repr´esentation est
qu’´etant donn´e un ordre sur les variables, le BDD peut ˆetre r´eduit efficacement `a une forme
canonique. On parle alors de diagramme de d´ecision binaire ordonn´e et r´eduit (ROBDD
pour reduced ordered binary decision diagram). En pratique, la repr´esentation canonique est
consid´erablement plus compacte que la repr´esentation explicite dont la taille est exponentielle
dans le nombre de variables de la fonction.
Une deuxi`eme propri´et´e importante est qu’il est possible de manipuler directement les
repr´esentations canoniques pour calculer la conjonction, la disjonction, le compl´ementaire,. . .
La situation est similaire `a celle des langages r´eguliers o`u un langage peut ˆetre repr´esent´e par
un automate et les op´erations d’union, intersection, compl´ementaire sur les langages peuvent
ˆetre calcul´ees directement sur les automates. Aujourd’hui, les BDD sont courrament utilis´es
dans la synth`ese et analyse de circuits.
4.1 OBDD
Soit f : 2
n → 2 une fonction bool´eenne `a n variables x1, . . . , xn. Si b ∈ {0, 1} est une
valeur bool´eenne, on d´enote par [b/xi
]f : 2
(n−1) → 2 la fonction bool´eenne `a n − 1 variables
o`u la variable xi est remplac´ee par b. On appelle restriction cette op´eration sur les fonctions.
En utilisant la restriction, on peut exprimer une fonction `a n variables comme une combinaison
bool´eenne de fonctions `a n − 1 variables.
f = xi
[1/xi
]f + xi
[0/xi
]f
On nomme cette transformation expansion de Shannon. On remarquera que la quantification
universelle et existentielle sur une variable propositionnelle s’exprime aussi par le biais de la
restriction :
∀xi f = ([1/xi
]f)([0/xi
]f) ∃xi f = ([1/xi
]f) + ([0/xi
]f)
Cette transformation entraˆıne un doublement de la taille de la formule pour chaque quantifi-
cation.
On abr`ege l’op´erateur ternaire if then else par → , . Ainsi :
x → f, f0 = (xf) + xf0
o`u x est une variable bool´eenne. On utilise cette notation, pour reformuler l’expansion de
Shannon :
f = xi → [1/xi
]f, [0, xi
]f
On fixe un ordre sur les variables, par exemple x1 < · · · < xn. On d´efinit par r´ecurrence
l’ensemble des expressions qui d´ependent d’un sous-ensemble de variables :
– Les expressions 0 et 1 d´ependent de l’ensemble vide.
– Si les expressions e1 et e2 d´ependent de {xi+1, . . . , xn}, alors l’expression xi → e1, e2
d´epend de {xi
, xi+1, . . . , xn}.
18– Si l’expression e d´epend de X et X ⊆ X0 alors e d´epend de X0
.
A partir de la fonction f on peut it´erer l’expansion de Shannon en commen¸cant par la
variable x1 et en terminant avec les fonctions constantes 0 et 1. Ainsi on construit :
f = x1 → [1/x1]f, [0/x1]f
= x1 → (x2 → [1/x2, 1/x1]f, [0/x2, 1/x1]f),(x2 → [1/x2, 0/x1]f, [0/x2, 0/x1]f)
· · ·
= · · ·
On peut repr´esenter l’expression comme un arbre binaire complet de profondeur n − 1 o`u les
noeuds internes sont ´etiquet´es par les variables et les noeuds terminaux par 0 ou 1, et les deux
arˆetes sortantes d’un noeud interne sont ´etiquet´ees par 0 et 1. Cette repr´esentation d´epend
de l’ordre des variables et pour cette raison on parle de BDD ordonn´es (OBDD).
On remarquera que cette repr´esentation a aussi une taille O(2n
). Cependant, la repr´esentation
d’un OBDD comme un arbre binaire est souvent redondante et une repr´esentation plus
compacte est possible par partage de sous-arbres communs. Dans ce cas, le BDD est repr´esent´e
par un graphe dirig´e acyclique (DAG) connexe et avec une racine.
4.2 Simplification
Soit N un ensemble fini de noeuds et V = {x1, . . . , xn} un ensemble de variables ordonn´e
par x1 < · · · < xn. On peut repr´esenter un OBDD comme suit :
v : N → {0, 1} ∪ V (´etiquette des noeuds)
l : N → (N ∪ {↑}) (arˆete sortant ´etiquet´e par 0)
h : N → (N ∪ {↑}) (arˆete sortant ´etiquet´e par 1)
tel que :
– Le graphe r´esultat est acyclique et tous les noeuds sont accessibles `a partir d’un noeud
identifi´e comme ´etant la racine.
– Les noeuds non-terminaux sont ´etiquet´es par des variables et les noeuds terminaux sont
´etiquet´es par 0 ou 1. En d’autres termes :
v(n) ∈ V ⇒ l(n), h(n) ∈ N v(n) ∈ {0, 1} ⇒ l(n) = h(n) =↑
– L’ordre des variables est respect´e :
v(n) ∈ V and v(l(n)) ∈ V ⇒ v(n) < v(l(n))
v(n) ∈ V and v(h(n)) ∈ V ⇒ v(n) < v(h(n))
A partir d’un OBDD on applique trois r`egles de simplification :
– Soient n et n
0 deux noeuds terminaux distincts avec la mˆeme ´etiquette. Alors tous les
pointeurs `a n
0 peuvent ˆetre redirig´es sur n et n
0 peut ˆetre ´elimin´e.
– Soit n un noeud non-terminal et l(n) = h(n) = n
0
. Alors tous les pointeurs `a n peuvent
ˆetre redirig´es sur n
0
, et n peut ˆetre ´elimin´e.
– Soient n et n
0 deux noeuds non-terminaux distincts tels que v(n) = v(n
0
), l(n) = l(n
0
)
et h(n) = h(n
0
). Alors tous les pointeurs `a n
0 peuvent ˆetre redirig´es sur n et n
0 peut
ˆetre ´elimin´e.
On ´ecrit B 7→ B0
si un OBDD B est transform´e en B0 par une des r`egles de simplification.
On dit que B est un forme normale s’il ne peut pas ˆetre simplifi´e.
19Th´eor`eme 4.1 (1) Si B est un OBDD bien form´e par rapport `a un ordre donn´e et B 7→ B0
alors B0
est un OBDD bien form´e par rapport au mˆeme ordre.
(2) Toute s´equence de simplification termine.
(3) Si B 7→ B0
et B 7→ B00 alors ou bien B0 = B00 ou bien il existe B0
1
et B00
1
tels que B0
7→ B0
1
,
B00 7→ B00
1
et B0
1
et B00
1
sont ´egaux `a renommage des noeuds pr`es.
(4) Tout OBDD peut ˆetre simplifi´e en une forme normale et cette forme est unique `a renommage
des noeuds pr`es.
Exercice 4.2 Calculez le ROBDD pour la fonction f : 2
3 → 2 avec ordre x < y < z.
xyz 000 001 010 011 100 101 110 111
f(x, y, z) 0 0 0 1 0 1 0 1
Exercice 4.3 (1) Calculez le ROBDD pour la fonction (a∧b)∨(c∧d) avec ordre a < b < c.
(2) Calculez le ROBDD pour un comparateur de 2-bits ∧i=1,2(ai = bi) en utilisant les ordres
a1 < b1 < a2 < b2 et a1 < a2 < b1 < b2.
(3) G´en´eraliser `a un comparateur de n-bits et d´eterminez le nombre de noeuds dans le
ROBDD pour les ordres a1 < b1 < · · · < an < bn et a1 < · · · an < b1 < · · · < bn.
Exercice 4.4 Soit p : 2
n → 2 la fonction pour le contrˆole de parit´e, c’est-`a-dire
p(x1, . . . , xn) = (Σi=1,...,nxi) mod 2
Donnez le sch´ema et pr´ecisez le nombre de noeuds du ROBDD (BDD ordonn´e et r´eduit) qui
repr´esente la fonction p par rapport `a l’ordre x1 < · · · < xn.
Exercice 4.5 Montrez que la satisfaction et la validit´e d’une fonction bool´eenne repr´esent´ee
par un ROBDD peut ˆetre d´ecid´ee en O(1).
Exercice 4.6 On sait qu’un langage r´egulier (ou rationnel) ´eventuellement infini peut ˆetre
repr´esent´e par un graphe ´etiquet´e fini. On pourrait repr´esenter une fonction f : 2
n → 2 par
le langage :
Lf = {x1 . . . xn | f(x1, . . . , xn) = 1} ⊂ {0, 1}
∗
Comparez l’automate Mf qui reconnaˆıt le langage Lf avec le ROBDD associ´e `a la fonction
f. Est-ce-que les deux repr´esentations ont la mˆeme taille ?
4.3 Ordre des variables
L’ordre des variables a un effet important sur la taille d’un ROBDD. Par exemple,
consid´erons la fonction Σi=1,...,naibi
. Avec l’ordre a1 < b1 < · · · < an < bn la taille du
ROBDD est O(n) alors qu’avec l’ordre a1 < · · · an < b1 < · · · < bn la taille du ROBDD est
O(2n
).
Une bonne heuristique est de garder proche dans l’ordre les variables qui interagissent
dans le calcul du r´esultat. Il est int´eressant d’´etudier la meilleure et la pire repr´esentation
possible pour certaines classes de fonctions.
– Pour les fonctions sym´etriques, c’est-`a-dire pour les fonctions dont le r´esultat est invariant
par permutation de l’entr´ee, la taille du ROBBD varie entre O(n) et O(n
2
).
– Pour le bit central de la fonction d’addition sur n bits la taille varie entre O(n) et O(2n
).
20– Pour le bit central de la fonction de multiplication sur n bits la taille est toujours O(2n
).
Exercice 4.7 (1) Montrez que f : 2
n → 2 est sym´etrique si et seulement si il y a une
fonction h : {0, . . . , n} → 2 telle que f(x1, . . . , xn) = h(Σi=1,...,nxi).
(2) Conclure qu’une fonction sym´etrique a une repr´esentation comme ROBDD dont la taille
est O(n
2
).
4.4 Restriction
Etant donn´e un OBDD pour la fonction ´ f, le calcul de la restriction, par exemple [0/x]f,
consiste `a rediriger toute arˆete qui pointe au noeud n tel que v(n) = x vers l(n). Le calcul de
[1/x]f est similaire.
Exercice 4.8 Montrez que l’application de l’algorithme de restriction sur un ROBDD peut
ne pas produire un ROBDD.
4.5 Application
On d´efinit un algorithme A pour l’application qui prend l’OBDD de deux fonctions
bool´eennes f, g : 2
n → 2 et une op´eration binaire op : 2
2 → 2, et retourne un OBDD
pour la fonction (f op g) : 2
n → 2 (par rapport au mˆeme ordre).
La remarque fondamentale est que l’op´eration op commute avec l’expansion de Shannon :
f op g = x → ([1/x]f op [1/x]g),([0/x]f op [0/x]g)
L’algorithme visite les deux OBDD en profondeur d’abord. En supposant que nf et ng soient
les racines des deux OBDD, l’appel A(nf , n0
g
, op) retournera la racine de l’OBDD pour f op g.
L’algorithme r´ecursif est d´ecrit dans la table 1, o`u new est une fonction qui retourne un
nouveau noeud.
Cet algorithme peut ˆetre amen´e `a ´evaluer plusieurs fois le mˆeme couple de sous-arbres.
Pour ´eviter cela, on consid`ere une optimisation qui consiste `a garder dans un tableau de
hachage les couples de sous-arbres d´ej`a visit´es. Une deuxi`eme optimisation est d’arrˆeter les
appels r´ecursifs chaque fois qu’on arrive `a une feuille d’un des sous-arbres avec la propri´et´e
que la valeur de la feuille est suffisante pour d´eterminer le r´esultat de l’op´eration op. Enfin,
il est possible de modifier l’algorithme de fa¸con `a ce qu’il recherche `a la vol´ee une des 3
simplifications. De cette fa¸con, on peut g´en´erer directement un ROBDD `a partir de ROBDD.
Quand toutes ces optimisations sont mises en oeuvre et ´etant donn´e un tableau d’hachage
qui garantit un temps d’acc`es constant en moyenne, il est possible de montrer que la
complexit´e de l’op´eration d’application est de l’ordre du produit de la taille des OBDD qui
repr´esentent f et g. En gros, une op´eration logique peut au plus ´elever au carr´e la taille de la
repr´esentation. Bryant appelle cela une propri´et´e de d´egradation gracieuse (bien sˆur l’it´eration
d’un carr´e donne un exponentiel !)
Exercice 4.9 On consid`ere la fonction bool´eenne f : 2
2n → 2 telle que
f(xn−1, . . . , x0, yn−1, . . . , y0) = 1 ssi (xn−1 · · · x0)2 ≤ (yn−1 · · · y0)2
o`u (zn−1 · · · z0)2 est la valeur en base 2 de la suite zn−1 · · · z0. On ordonne les variables de la
fa¸con suivante :
xn−1 < yn−1 < · · · < x0 < y0
21A(n, n0
, op) = case
v(n) = v(n
0
) ∈ V : n
00 := new; v(n
00) := v(n);
l(n
00) := A(l(n), l(n
0
), op); h(n
00) := A(h(n), h(n
0
), op); n
00
v(n) et (iv) les noeuds
qui correspondent aux ´etats finaux ont un double contour.
Dans la suite, on proc`ede en trois ´etapes :
1. On d´efinit la notion de configuration d’un automate.
2. On d´ecrit comment un automate peut se d´eplacer d’une configuration `a une autre.
3. On sp´ecifie quels mots sont accept´es par l’automate.
Une m´ethodologie similaire est utilis´ee dans la suite pour un type d’automate plus g´en´eral
qu’on appelle Machine de Turing.
D´efinition 5.2 Soit M = (Σ, Q, qo, F, δ) un AFD. Une configuration est un couple (w, q) ∈
Σ
∗ × Q. On d´efinit une relation de r´eduction `M par (aw, q) `M (w, δ(a, q)) et on suppose
que `
∗
M est la clˆoture r´eflexive et transitive de `M. Le langage L(M) reconnu (ou accept´e)
par M est d´efini par :
L(M) = {w ∈ Σ
∗
| (w, qo) `
∗
M (, q) and q ∈ F} .
Exemple 5.3 Soit M = ({a, b}, {1, 2}, 1, {2}, δ) avec fonction de transition δ sp´ecifi´ee comme
suit :
Etat ´ Entr´ee
a b
1 1 2
2 1 2
Il n’est pas difficile de montrer que L(M) est l’ensemble des mots qui terminent par b.
Remarque 5.4 Dans la d´efinition de AFD on insiste pour que pour chaque ´etat q et pour
chaque caract`ere a de l’alphabet il y ait exactement une arˆete sortante de q avec ´etiquette a.
En pratique, on peut relˆacher cette condition et demander juste qu’il y ait au plus une arˆete
sortante de q avec ´etiquette a. Un tel automate peut ˆetre transform´e facilement en un AFD
en introduisant un ´etat ‘puits’ qs et en ´etendant la fonction de transition δ de fa¸con telle que
δ(a, qs) = qs pour tout a ∈ Σ et δ(a, q) = qs chaque fois que δ(a, q) n’est pas d´efini.
Remarque 5.5 (minimisation) Il est facile de construire diff´erents AFD qui acceptent le
mˆeme langage. Cependant on peut montrer que parmi ces automates il y en a un qui a un
nombre minimum d’´etats. De plus cet automate est unique `a renommage des ´etats pr`es.
255.3 Automates non-d´eterministes
Nous consid´erons trois extensions de la notion d’AFD qui nous m`enent `a la notion d’automate
fini non-d´eterministe (AFN).
1. On permet de lire plus qu’un caract`ere dans un pas de calcul.
2. On permet de ne pas lire un caract`ere (-transition).
3. Pour un noeud donn´e, on autorise deux ou plus arˆetes sortantes ´etiquet´ees avec le mˆeme
mot.
D´efinition 5.6 (AFN) Un automate fini non-d´eterministe (AFN) N est un vecteur (Σ, Q,
qo, F, δ) o`u Σ est un alphabet, Q est un ensemble fini d’´etats, qo est l’´etat initial, F ⊆ Q est
l’ensemble des ´etats finaux et δ : Q × Σ
∗ → 2
Q est une fonction de transition qui s’´evalue
dans l’ensemble vide presque partout.
Une configuration pour un AFN est un couple (w, q) ∈ Σ
∗ × Q. La relation de r´eduction
`N est d´efinie par :
(w, q) `N (w
0
, q0
) si w = w
00w
0
et q
0 ∈ δ(w
00, q)
et le langage reconnu L(N) est d´efini par
L(N) = {w ∈ Σ
∗
| (w, qo) `
∗
N (, q) et q ∈ F} .
Dans un AFD, ´etant donn´e un mot w on trouve un chemin de calcul unique qui va de (w, qo)
`a (, q), pour un certain q. Par opposition, dans un AFN on peut avoir plusieurs chemins, et
le w est accept´e si au moins un chemin m`ene `a un ´etat final. Un probl`eme fondamental est de
comprendre si et dans quel mesure le calcul non-d´eterministe est plus puissant que le calcul
d´eterministe.
Th´eor`eme 5.7 (d´eterminisation) Pour tout AFN on peut construire un AFD qui accepte
le mˆeme langage.
Proof hint. (1) Si un automate peux ex´ecuter le pas de calcul (a1 · · · an, q) ` (, q0
) avec
n ≥ 2 alors on introduit n−1 nouveaux ´etats non-finaux q1, . . . , qn−1 et on red´efinit la fonction
de transition pour que :
(a1 · · · an, q) ` (a2 · · · an, q1) ` · · · ` (an, qn−1) ` (, q0
) .
(2) On peut donc supposer que dans une transition un automate N = (Σ, Q, qo, F, δ) lit
au plus un caract`ere et que la fonction de transition a le type δ : (Σ ∪ {}) × Q → 2
Q.
Maintenant, l’id´ee est d’´eliminer les -transitions, en ajoutant une transition ´etiquet´ee par a
de q `a q1, chaque fois qu’il y a un chemin de q `a q1 dont toutes les arˆetes sont ´etiquet´ees par
sauf une qui est ´etiquet´ee par a.
Formellement, on introduit une notion de -clˆoture d’un ´etat q comme suit :
E(q) = {q
0
| (, q) `
∗
(, q0
)} .
Ensuite on construit un nouveau automate N0 = (Σ, Q, qo, F0
, δ0
) o`u F
0 = {q ∈ Q | E(q)∩F 6=
∅} et δ
0
: Σ × Q → 2
Q est d´efinie par
δ
0
(a, q) = [
q
0∈E(q)
{E(q
00) | q
00 ∈ δ(a, q0
)} .
26Dans d’autres termes, (a, q) `N0 (, q1) ssi
(a, q) `
∗
N (a, q0
) `N (, q00) `
∗
N (, q1) .
(3) On peut supposer que l’automate N a une fonction de transition δ avec le type suivant
δ : Σ × Q → 2
Q. Supposons que de l’´etat q, en lisant a, l’automate peut aller ou bien dans q1
ou bien dans q2, c.-a.-d., δ(a, q) = {q1, q2}. Pour simuler ce comportement non-d´eterministe
avec un AFD M on dit que M plac´e dans l’´etat q, en lisant a, peut aller dans un ‘nouveau
´etat’ {q1, q2} qui est capable de ‘simuler’ le comportement `a la fois de q1 et q2.
Formellement, on construit un AFD M = (Σ, 2
Q, {qo}, FM, δM) dont les ´etats sont des
sous-ensembles de l’ensemble des ´etats de N et tel que :
FM = {X ⊆ Q | X ∩ F 6= ∅}
δM(a, X) = S
q∈X δ(a, q) .
•
Exemple 5.8 Consid´erons l’AFN N = ({a, b}, {1, 2, 3}, 1, {2}, δ) avec
δ(, 1) = {2} δ(bb, 1) = {3} δ(a, 2) = {2} δ(, 3) = {1} δ(a, 3) = {3} .
On ´elimine la transition ´etiquet´ee par bb en introduisant un ´etat auxiliaire, ensuite on ´elimine
les -transitions, et enfin on d´eterminise l’automate.
Remarque 5.9 (coˆut) Il y a des AFN tels que chaque AFD ´equivalent a un nombre d’´etats
qui est exponentiel dans le nombre d’´etats de l’AFN.
Remarque 5.10 (langages r´eguliers) On dit qu’un langage accept´e par un automate fini
est r´egulier (ou rationnel). La classe des langages r´eguliers a une th´eorie tr`es riche qui sera
l’objet d’un cours au deuxi`eme semestre.
Exercice 5.11 Montrez que pour tout langage L, L
∗ = (L
∗
)
∗
.
Exercice 5.12 Montrez qu’il existe des langages L1 et L2 tels que (L1 ∪ L2)
∗ 6= L
∗
1 ∪ L
∗
2
.
Exercice 5.13 Montrez qu’il existe des langages L1 et L2 tels que (L1 · L2)
∗ 6= L
∗
1
· L
∗
2
.
Exercice 5.14 Consid´erons l’automate fini M = (Q, Σ, δ, q0, F), o`u Q = {q0, q1, q2, q3}, Σ =
{0, 1}, F = {q0} et la fonction δ est d´efinie par le tableau suivant :
Etat ´ Entr´ee
0 1
q0 q2 q1
q1 q3 q0
q2 q0 q3
q3 q1 q2
V´erifiez si les chaˆınes 1011010 et 101011 sont accept´ees par M. Prouvez que L(M) est l’ensemble
des mots compos´es d’un nombre pair de 0 et d’un nombre pair de 1.
27Exercice 5.15 Pour chacun des langages suivants, construire un automate fini non d´eterministe
qui l’accepte :
1. Les repr´esentations binaires des nombres pairs.
2. Les repr´esentations d´ecimales des multiples de 3.
3. Le langage des mots sur l’alphabet {a, b} contenant ou bien la chaˆıne aab ou bien la
chaˆıne aaab.
4. Le langage des mots sur l’alphabet {0, 1} dont le troisi`eme caract`ere de droite existe et
est ´egale `a 1.
Construire des automates d´eterministes pour les langages d´ecrits ci-dessus.
Exercice 5.16 Soient M un AFD qui accepte un langage L et N1, N2 deux AFN qui acceptent
les langages L1, L2, respectivement (sur un alphabet Σ fix´e).
1. Montrez qu’on peut construire un AFD qui accepte le langage compl´ementaire Σ
∗\L.
2. Montrez qu’on peut construire un AFN qui accepte le langage L1 ∪L2 et le langage it´er´e
(L1)
∗
.
3. Conclure que la classe des langages accept´es par un AFD est stable par union, intersection,
compl´ementaire et it´eration.
Exercice 5.17 Soit l’automate fini non-d´eterministe M = (Q, Σ, δ, q0, F), o`u Q = {q0, q1, q2},
Σ = {0, 1, 2}, F = {q0, q2}, et la fonction de transition δ est d´efinie par le tableau suivant :
Etat ´ Entr´ee
0 1 2
q0 {q0, q1, q2} {q1, q2} {q2}
q1 ∅ {q1, q2} {q2}
q2 ∅ ∅ {q2}
Transformez cet automate en automate fini d´eterministe.
Exercice 5.18 Transformez l’automate M = (Q, Σ, δ, q0, F) suivant en automate fini d´eterministe.
On suppose que Q = {q0, q1, q2}, Σ = {0, 1, 2}, F = {q2}, et la fonction de transition δ est
d´efinie par le tableau suivant :
Etat ´ Entr´ee
0 1 2
q0 {q0} {q1} ∅ {q2}
q1 ∅ {q1} ∅ {q2}
q2 ∅ ∅ {q2} ∅
286 Calculabilit´e
Certains probl`emes calculatoires demandent une m´emoire qui est fonction de la taille de
l’entr´ee (par exemple le tri d’une liste d’´el´ements ou la multiplication de deux matrices). De
tels probl`emes ne peuvent pas ˆetre r´esolus par des automates finis dont la m´emoire est born´ee
a priori. On consid`ere le probl`eme de formaliser un mod`ele de calcul suffisamment g´en´eral
pour calculer tout ce qu’un ‘ordinateur’ pourrait calculer en disposant d’une quantit´e illimit´ee
de temps et de m´emoire. Plusieurs mod`eles ´equivalents ont ´et´e propos´es `a partir des ann´ees
’30. On base la pr´esentation sur les machines de Turing (MdT) qui peuvent ˆetre vues comme
une simple g´en´eralisation des automates finis.
6.1 Machines de Turing
Un automate fini dispose d’un contrˆole fini et d’un ruban sur lequel il peut d´eplacer sa
tˆete de lecture de gauche `a droite. Une machine de Turing a en plus la possibilit´e d’´ecrire sur
le ruban et de d´eplacer la tˆete de lecture de droite `a gauche.
D´efinition 6.1 Une machine de Turing (d´eterministe) M est un vecteur M = (Q, Σ, Γ,t,
q0, qa, qr, δ) o`u :
– Q est un ensemble fini d’´etats.
– Σ est l’alphabet d’entr´ee.
– Γ est l’alphabet du ruban.
– t ∈ Γ\Σ est un symbole sp´ecial,
– q0, qa, qr ∈ Q sont des ´etats. En particulier q0 est l’´etat initial et qa, qr sont deux ´etats
finaux distincts qui entraˆınent l’arrˆet du calcul.
– δ : Q × Γ → Q × Γ × {L, R} est la fonction (d´eterministe) de transition o`u L pour left
et R pour right sont deux symboles.
Une configuration de la machine M est un mot wqw0 o`u w, w0 ∈ Γ
∗
et q ∈ Q. Une configuration
initiale est un mot q0w o`u w ∈ Σ
∗
repr´esente l’entr´ee de la machine.
Une MdT calcule sur un ruban dont la taille n’est pas born´ee `a droite. Soit t
ω
le mot
infini t t t · · · Une configuration wqw0 d´ecrit : (i) le contenu du ruban qui est ww0t
ω
, (ii)
l’´etat q de la machine et (iii) la position de la tˆete de lecture qui lit le premier caract`ere du
mot w
0t
ω
.
4
Un pas de calcul est d´ecrit par la fonction δ. En fonction de l’´etat courant et du symbole
en lecture, la machine se d´eplace dans un nouvel ´etat, ´ecrit un symbole `a la place du symbole
lu et d´eplace la tˆete de lecture `a gauche ou `a droite. Le d´eplacement de la tˆete de lecture `a
gauche est impossible si le mot w de la configuration courante est vide. Dans ce cas la tˆete
de lecture reste sur place.
4Remarquez que les configurations wqw0
, wqw0t, wqw0 t t, · · · sont ´equivalentes dans le sens qu’elles
d´ecrivent la mˆeme situation.
29Pour formaliser ces id´ees, on d´efinit une relation binaire `M. En supposant que q /∈ {qa, qr},
la relation `M est la plus petite relation sur les configurations qui satisfait :
wqaw0 `M wbq0w
0
si δ(q, a) = (q
0
, b, R)
wq `M wbq0
si δ(q, t) = (q
0
, b, R)
wcqaw0 `M wq0
cbw0
si δ(q, a) = (q
0
, b, L)
qaw0 `M q
0
bw0
si δ(q, a) = (q
0
, b, L)
wcq `M wq0
cb si δ(q, t) = (q
0
, b, L)
q `M q
0
b si δ(q, t) = (q
0
, b, L)
On remarque que, la fonction δ ´etant totale, le calcul de M s’arrˆete si et seulement si la
machine arrive `a un ´etat final.
Exercice 6.2 Examinez la d´efinition de machine de Turing et r´epondez aux questions suivantes
:
1. Une MdT peut-elle ´ecrire le symbole t sur le ruban ?
2. L’alphabet d’entr´ee et du ruban peuvent-ils ˆetre ´egaux ?
3. La tˆete de lecture peut-elle rester au mˆeme endroit pendant deux ´etapes cons´ecutives ?
4. Une MdT peut-elle contenir un seul ´etat ?
Un automate fini peut accepter ou refuser un mot, une MdT peut aussi boucler. Dans
la d´efinition de langage accept´e par une MdT il faut prendre en compte cette troisi`eme
possibilit´e.
D´efinition 6.3 (1) Un ensemble L ⊆ Σ
∗
est semi-d´ecidable s’il existe une MdT M telle que
L = {w | q0w `
∗
M w
0
qaw
00}. Dans ce cas on dit que M semi-d´ecide (ou accepte) L.
(2) Un ensemble L est d´ecidable s’il existe une MdT M dont le calcul termine toujours et
qui semi-d´ecide L. Dans ce cas on dit que M d´ecide L.
Exemple 6.4 On construit une MdT qui d´ecide {a
n
b
m | n, m ≥ 0}. On a Σ = {a, b},
Γ = Σ∪ {t} et Q = {q0, qa, qr, q1}. On remarque qu’il est inutile de sp´ecifier le comportement
de la fonction δ sur les ´etats qa et qr car par d´efinition la MdT s’arrˆete quand elle arrive
`a ces ´etats. Par ailleurs, il est aussi inutile de sp´ecifier le caract`ere ´ecrit et le d´eplacement
effectu´e par la tˆete de lecture pour toute transition qui va dans les ´etats finaux. En effet, pour
les probl`emes de d´ecision on s’int´eresse seulement `a l’´etat final et on ignore le contenu du
ruban et la position de la tˆete de lecture. Enfin, on peut interpr´eter l’absence de sp´ecification
comme une transition dans l’´etat qr. Avec ces conventions, on peut d´ecrire le comportement
de la fonction δ par le tableau :
a b t
q0 q0, a, R q1, b, R qa, ,
q1 q1, b, R qa, ,
Comme dans les automates finis, on peut introduire une notation graphique. Par exemple, on
´ecrira :
q
a/b,L → q
0
30pour signifier que la MdT dans l’´etat q et en lisant a, ´ecrit b, se d´eplace `a gauche (L) et va
dans l’´etat q
0
.
On remarquera que dans ce cas notre MdT se comporte comme un automate fini : elle se
d´eplace seulement `a droite et elle ne modifie pas le contenu du ruban.
Exemple 6.5 On construit une MdT qui d´ecide {a
n
b
n
| n ≥ 0}. On a Σ = {a, b}, Γ =
Σ ∪ {X, Y,t} et Q = {q0, qa, qr, q1, q2, q3, q4}. La fonction δ est sp´ecifi´ee comme suit :
a b X Y t
q0 q1, X, R qa, ,
q1 q1, a, R q2, Y, L q1, Y, R
q2 q2, a, L q3, X, R q2, Y, L
q3 q1, X, R q4, Y, R
q4 q4, Y, R qa, ,
Exemple 6.6 Soit Σ = {0, 1, ]} et L = {w]w | w ∈ {0, 1}
∗}. On peut construire une MdT qui
d´ecide L en prenant Γ = Σ ∪ {t, X}. La machine lit le premier caract`ere b de w, le remplace
par X, puis d´eplace sa tˆete de lecture `a droite pour v´erifier que le premier symbole `a droite
de ] est b, le remplace par X, puis revient `a gauche du ] et ainsi de suite. Un observateur qui
regarderait le contenu du ruban verrait par exemple :
01]01t
ω X1]01 t
ω
· · · X1]X1 t
ω
· · · XX]X1 t
ω
· · · XX]XXt
ω
Exercice 6.7 Donnez la description formelle d’une MdT qui d´ecide le langage {w]w | w ∈
{0, 1}
∗}.
Exercice 6.8 (programmation MdT) Pr´esentez le graphe de transition d’une MdT M
d´eterministe avec alphabet d’entr´ee Γ = {0, 1,(0, 0),(0, 1),(1, 0),(1, 1)} qui a la propri´et´e suivante
: `a partir de la configuration initiale q0(xn−1, yn−1)· · ·(x0, y0), M va parcourir l’entr´ee
de gauche `a droite et la remplacer par zn−1 · · · z0 o`u (zn−1 · · · z0)2 = max{(xn−1 · · · x0)2,
(yn−1 · · · y0)2} et s’arreter dans un ´etat accepteur qa. En d’autres termes, M doit calculer le
maximum des entr´ees.
Exercice 6.9 On se propose de programmer une Machine de Turing avec alphabet d’entr´ee
Σ = {0, 1, ]} qui a la propri´et´e suivante : `a partir d’une configuration initiale q0]w o`u w est
un mot fini compos´e de 0 et 1 la machine s’arrˆete dans un ´etat accepteur qa avec un ruban
qui contient le mot ]]w. En d’autres termes, la fonction de la machine est de d´ecaler d’une
case vers la droite le mot w en ins´erant le symbole ] dans la case qui est ainsi lib´er´ee.
1. Donnez la repr´esentation graphique d’une Machine de Turing qui impl´emente la fonction
de d´ecalage d´ecrite ci-dessus.
Suggestion Il est possible de programmer cette tˆache avec une MdT dont la tˆete de lecture se d´eplace
toujours `a droite.
2. Tracez le calcul de la machine de la configuration initiale q0]10 `a la configuration finale.
Exercice 6.10 Donnez la description formelle d’une MdT qui d´ecide le langage des mots sur
l’alphabet {0} dont la longueur est une puissance de 2 : 2
0
, 2
1
, 2
2
, . . .
31Exercice 6.11 D´ecrivez informellement une MdT qui d´ecide le langage :
{a
i
b
j
c
k
| i · j = k et i, j, k ≥ 1} .
Si un calcul termine on peut aussi voir le ‘contenu du ruban’ comme le r´esultat du calcul.
Plus pr´ecis´ement on consid`ere comme ‘r´esultat du calcul’ la concat´enation de tous les symboles
dans l’alphabet d’entr´ee qui sont sur le ruban `a la fin du calcul. Par exemple, si le ruban a
la forme ta t tbat
ω
et a, b sont des symboles de l’alphabet d’entr´ee, le r´esultat du calcul est
aba. On ´ecrit M(w) ↓ si la MdT M avec entr´ee w termine et M(w) = w
0
si M(w) ↓ avec
r´esultat w
0
.
D´efinition 6.12 (1) Une fonction partielle f : Σ∗ * Σ
∗
est une fonction partielle r´ecursive
s’il existe une MdT M avec alphabet d’entr´ee Σ telle que f(w) = w
0
si et seulement si
M(w) = w
0
.
(2) Une fonction r´ecursive est une fonction partielle r´ecursive totale, c’est-`a-dire qui est
d´efinie sur chaque entr´ee.
Exercice 6.13 Soit Σ = {0, 1} et suc : Σ∗ → Σ
∗
la fonction ‘successeur’ en base 2 telle que :
(suc(w))2 = (w)2 + 1
Montrez que suc est r´ecursive.
6.2 Enum´erations ´
Une vari´et´e de structures finies comme arbres, graphes, polynˆomes, grammaires, MdT,. . .
peuvent ˆetre cod´ees comme mots finis d’un alphabet fini.
Exemple 6.14 (probl`emes et langages) Un graphe dirig´e fini est un couple (N, A) o`u N
est un ensemble fini de noeuds et A ⊆ N × N est un ensemble d’arˆetes. Deux graphes dirig´es
(N, A) et (N0
, A0
) sont isomorphes s’il existe une bijection f : N → N0
telle que (n, n0
) ∈ A
ssi (f(n), f(n
0
)) ∈ A0
. Notre objectif est de fixer un alphabet fini Σ et de repr´esenter les
graphes dirig´es comme un langage sur cet alphabet fini. Plus pr´ecis´ement on va repr´esenter les
graphes dirig´es `a ‘isomorphisme pr`es’. Ceci est justifi´e par le fait qu’en g´en´eral on s’int´eresse
aux propri´et´es des graphes qui sont invariantes par isomorphisme (connectivit´e, diam`etre,
isomorphisme,. . .). On suppose que l’ensemble des noeuds N est un segment initial des nombres
naturels cod´es en binaire, par exemple N = 0, 1, 10, 11. En cons´equence, A est maintenant un
ensemble de couples de nombres naturels cod´es en binaire. On peut ajouter un symbole ] qui
agit comme un s´eparateur. Maintenant le graphe ({0, 1, 2, 3}, {(2, 0),(1, 3),(2, 3)}) peut ˆetre
repr´esent´e par le mot fini sur l’alphabet Σ = {0, 1, ]} :
]0]1]10]11]]10]0]1]11]10]11]
Par le biais de ce codage, on peut consid´erer `a isomorphisme pr`es l’ensemble des graphes
dirig´es comme un certain langage de mots finis sur un alphabet fini. Si G est un graphe
dirig´e, on d´enote par hGi son codage. Supposons maintenant qu’on s’int´eresse au probl`eme
de savoir si deux graphes dirig´es sont isomorphes.5 On peut reformuler ce probl`eme comme
le probl`eme de la reconnaissance du langage :
L = {hGi]]]hG
0
i | G et G
0
sont isomorphes}
5Notez qu’on peut avoir plusieurs codages qui repr´esentent le mˆeme graphe `a isomorphisme pr`es.
32Exemple 6.15 (fixer un alphabet) On applique maintenant la mˆeme m´ethode aux MdT.
Une MdT est un programme. Il est clair que le ‘nom’ des ´etats n’affecte pas le comportement
d’une MdT. Ainsi on peut supposer que les ´etats sont cod´es, par exemple, en binaire.
Consid´erons maintenant l’ensemble Γ. Il est possible de simuler le comportement d’une MdT
M qui utilise un alphabet Γ avec une autre MdT M0
qui utilise seulement un alphabet {0, 1,t}.
Si Γ a n ´el´ements on code chaque ´el´ement de Γ par une suite binaire de longueur k = dlg ne.
Pour simuler un pas de calcul de M, M0 doit : (i) lire k symboles cons´ecutifs et en fonction
de ces k symboles et de l’´etat courant (ii) ´ecrire k symboles et (iii) d´eplacer la tˆete de lecture
de k symboles `a droite ou `a gauche. Donc, `a un codage pr`es, le comportement de toute MdT
qui op`ere sur un alphabet arbitraire peut ˆetre simul´e par une MdT qui op`ere sur un alphabet
fini qui est fix´e une fois pour toutes.
Exemple 6.16 (´enum´eration de MdT) On s’int´eresse maintenant `a la repr´esentation comme
mots finis des MdT sur un alphabet donn´e. On peut fixer un codage pour le symbole t, pour
les ´etats q0, qa, qr et pour les symboles L, R. Ensuite, la fonction δ peut ˆetre repr´esent´ee en listant
son graphe (on peut ´eventuellement ajouter un symbole sp´ecial pour s´eparer les diff´erents
´el´ements de la liste comme on l’a fait dans le cas des graphes). En proc´edant de la sorte
toute MdT est repr´esent´ee par un mot fini sur un alphabet fini. Soit MdT(Σ) ⊆ Σ
∗
l’ensemble
des codages de MdT sur l’alphabet Σ choisi. Les mots qui composent cet ensemble doivent
repr´esenter comme une liste la fonction δ d’une MdT. Il est donc d´ecidable de savoir si un
mot appartient `a MdT(Σ). Par ailleurs, on peut d´efinir une fonction r´ecursive et surjective
ϕ : Σ∗ → MdT(Σ). Soit w0 le codage d’une MdT. La fonction ϕ est d´efinie par :
ϕ(w) = (
w si w code une MdT
w0 autrement
Mots ou nombres ? On a ´etudi´e la calculabilit´e de langages de mots finis. Une autre
possibilit´e aurait ´et´e de consid´erer la calculabilit´e de sous-ensembles de nombres naturels. La
th´eorie n’est pas vraiment affect´ee par ce choix car les mots finis peuvent ˆetre cod´es par des
nombres naturels et le codage est effectivement calculable comme on va le montrer dans les
exercices qui suivent.
Exercice 6.17 On peut ´enum´erer les couples de nombres naturels en proc´edant ‘par diagonales’
:
(0, 0), (1, 0),(0, 1), (2, 0),(1, 1),(0, 2), (3, 0). . .
Montrez que la fonction hm, ni = (m + n)(m + n + 1)/2 + n est une bijection entre N × N et
N. D´ecrire un algorithme pour calculer la fonction inverse.
Exercice 6.18 On d´efinit les fonctions h ik : Nk → N pour k ≥ 2 :
hm, ni2 = hm, ni
hn1, . . . , nkik = hhn1, . . . , nk−1ik−1, nki si k ≥ 3
Montrez que les fonctions h ik sont des bijections.
Exercice 6.19 On consid`ere l’ensemble N∗ des mots finis de nombres naturels. Notez que
N∗
est en correspondance bijective avec S
k≥0 Nk
. D´efinissez une bijection entre N∗
et N.
33Exercice 6.20 Soit Σ = {a, b, . . . , z} un alphabet fini. On peut ´enum´erer les ´el´ements de Σ
∗
comme suit :
, a, b, . . . , z, aa, . . . , az, ba, . . . , bz, za, . . . , zz, aaa, . . .
Si Σ contient k ´el´ements on aura k
0 mots de longueur 0, k mots de longueur 1, k
2 mots de
longueur 2, . . . D´efinissez une bijection entre Σ
∗
et N.
MdT universelle Un corollaire de ces exercices est qu’il y a une bijection h , i : Σ∗×Σ
∗ →
Σ. Par le biais de cette bijection, une MdT peut interpr´eter tout mot w comme un couple de
mots hw1, w2i. Par ailleurs, par le biais de la fonction ϕ une MdT peut interpr´eter tout mot
comme le codage d’une MdT.
On peut alors construire une MdT U qu’on appelle MdT universelle telle que
U(hw1, w2i) = ϕ(w1)(w2)
La machine U –dont on omet les d´etails de construction– re¸coit un mot w qui est interpr´et´e
comme un couple de mots w1, w2. Ensuite le mot w2 est interpr´et´e comme l’entr´ee de la MdT
d´ecrite par le premier mot w1. La MdT U simule la MdT ϕ(w1) sur l’entr´ee w2. Ainsi, la
machine U se comporte comme un interpr`ete qui re¸coit en argument un programme et une
entr´ee et calcule le r´esultat du programme sur l’entr´ee.
Exercice 6.21 (1) Montrez qu’un langage est semi-d´ecidable si et seulement si il est le
domaine de d´efinition d’une fonction partielle r´ecursive.
(2) On dit qu’un langage L ⊆ Σ
∗
est r´ecursivement ´enum´erable s’il est l’image d’une fonction
partielle r´ecursive. Montrez qu’un langage L est r´ecursivement ´enum´erable si et seulement si
il est semi-d´ecidable.
Suggestion : Soit M une MdT et w0, w1, w2, . . . une suite d’entr´ees. On peut simuler M
sur w0 pour 0 pas, sur w0 pour 1 pas, sur w1 pour 0 pas, sur w0 pour 2 pas, sur w1 pour 1
pas, sur w2 pour 0 pas,. . .
Exercice 6.22 (1) Rappel : tout nombre naturel n ≥ 2 admet une d´ecomposition unique
comme produit p
n1
1
· · · p
nk
k
o`u k ≥ 1, p1 < · · · < pk sont des nombres premiers et n1, . . . , nk ≥
1. En utilisant ce fait, d´efinissez une fonction surjective de N dans les parties finies de N.
(2) On ne peut pas g´en´eraliser aux parties de N ! Supposez une ´enum´eration e : N → 2
N.
Consid´erez X = {n | n /∈ e(n)}. Comme e est surjective, il existe nX tel que e(nX) = X et
soit nX ∈ X soit nX ∈/ X. Montrez que dans les deux cas on arrive `a une contradiction.
(3) On dit qu’un ensemble X est d´enombrable s’il y a une fonction bijective entre X et les
nombres naturels N.
(3.1) Montrez que l’ensemble des langages sur un alphabet Σ n’est pas d´enombrable.
(3.2) Conclure qu’il y a des langages qui ne sont pas semi-d´ecidables.
On r´esume ces consid´erations comme suit :
– Un probl`eme algorithmique peut ˆetre (souvent) reformul´e comme un probl`eme de reconnaissance
d’un langage.
– Sans perte de g´en´eralit´e, nous pouvons limiter notre attention aux MdT qui op`erent sur
un alphabet Γ fix´e une fois pour toutes.
34– On peut coder une MdT comme un mot fini et on peut ´enum´erer tous les codages de
MdT sur un alphabet donn´e.
– A un codage pr`es, il y a autant de MdT que de nombres naturels alors que l’ensemble
des langages a la cardinalit´e des parties de nombres naturels. Il doit donc y avoir des
langages qui ne sont pas d´ecidables.
– On peut s’int´eresser de fa¸con ´equivalente `a la calculabilit´e de langages de mots finis,
d’ensembles de couples de mots finis, d’ensembles de nombres naturels,. . .
– On peut construire une MdT universelle qui re¸coit en entr´ee le codage d’une MdT M
et une entr´ee w et simule le calcul de M sur w.
6.3 Temps de calcul
Un pas de calcul d’une MdT est une op´eration ´el´ementaire qui demande un effort de
calcul born´e : il s’agit de consulter un tableau fini, d’´ecrire un symbole et de d´eplacer d’une
position la tˆete de lecture. Il semble donc raisonnable de mesurer le temps de calcul d’une
MdT simplement comme le nombre de pas de calcul n´ecessaires pour arriver `a un ´etat final.
D´efinition 6.23 Soit M une MdT qui termine sur toute entr´ee. La complexit´e en temps de
M est une fonction t : N → N o`u t(n) est le nombre maximal de pas de calcul n´ecessaires `a
la machine pour terminer sur une entr´ee de taille n (la taille d’un mot est sa longueur).
Souvent on s’int´eresse seulement `a l’ordre de grandeur de la complexit´e.
D´efinition 6.24 Soient f, g : N → N deux fonctions sur les nombres naturels. On dit que f
est O(g) s’ils existent n0, c ∈ N tels que pour tout n ≥ n0, f(n) ≤ cg(n).
En d’autres termes, f est O(g) si presque partout f est domin´ee par g `a une constante
multiplicative pr`es.
Exercice 6.25 Montrez que : 6n
3 + 2n
2 + 20n + 45 est O(n
3
).
Il est int´eressant d’analyser comment la notation O interagit avec le logarithme et l’exposant.
Une premi`ere remarque est qu’on peut n´egliger la base du logarithme et prendre
toujours le logarithme en base 2. En effet, logbn = log2n/log2
b. En ce qui concerne l’exposant,
on remarquera que la fonction 3n n’est pas O(2n
). Cependant elle est O(2(cn)
) en prenant par
exemple c = 2. Pour cette raison, on introduit la notation 2O(f)
. Par exemple, la notation
2
O(n)
indique une fonction 2cn pour une constante c. Ainsi 745n
est 2O(n)
. Notez cependant
que 2n
2
n’est pas 2O(n)
.
D´efinition 6.26 Soit g : N → N une fonction sur les nombres naturels et M une MdT. On
dit que M est O(g) si la complexit´e en temps t de M est O(g).
Par exemple, dire qu’une machine M est O(n) veut dire qu’ils existent n0, c ∈ N tels que
pour toute entr´ee w de taille n ≥ n0 le temps de calcul de M sur l’entr´ee w est au plus cn.
Exercice 6.27 Montrez qu’il y a une MdT M qui d´ecide le langage L = {w]w | w ∈ {0, 1}
∗}
qui est O(n
2
).
356.4 Variantes de MdT
Plusieurs variantes de MdT ont ´et´e consid´er´ees. Ces variantes n’affectent pas la notion de
langage semi-d´ecidable ou d´ecidable mais peuvent changer de fa¸con significative la complexit´e
du calcul.
Machines multi-rubans Une MdT multi-rubans est une MdT qui dispose d’un nombre
fini k de rubans. Sa d´efinition formelle suit celle d’une MdT standard modulo le fait que le
type de la fonction de transition δ est maintenant
δ : Q × Γ
k → Q × Γ
k × {L, R, S}
k
Un pas de calcul se d´eroule de la fa¸con suivante : en fonction de l’´etat courant et des symboles
lus sur les k rubans, la machine va dans un autre ´etat, remplace les symboles lus par d’autres
symboles et d´eplace les tˆetes de lecture. Avec la directive S pour stay on a la possibilit´e de
garder une tˆete de lecture `a la mˆeme place.
Proposition 6.28 Soit M une MdT multi-rubans. On peut construire une MdT standard M0
qui simule M. Si la complexit´e de M est t(n) ≥ n la complexit´e de M0
est O(t(n)
2
).
Idee de la preuve ´ . Supposons que la MdT M dispose de 3 rubans dont le contenu est
0101t
ω
, aabt
ω
et bat
ω
et dont les tˆetes de lecture sont en deuxi`eme, troisi`eme et premi`ere
position respectivement. La MdT M0 m´emorise les trois rubans sur un seul ruban de la fa¸con
suivante :
]0101]aab]ba]t
ω
On notera que M0 dispose d’un nouveau symbole ] pour s´eparer les rubans et que pour chaque
symbole a de M on introduit un nouveau symbole a. Le symbole soulign´e indique la position
de la tˆete de lecture.
Un pas de calcul de M est simul´e de la fa¸con suivante :
– M0
commence par parcourir son ruban de gauche `a droite pour calculer les symboles en
lecture et d´eterminer les actions `a effectuer.
– Ensuite, M0
effectue un deuxi`eme passage dans lequel elle remplace le symbole en lecture
(les symboles soulign´es) par des nouveaux symboles et ´eventuellement d´eplace la tˆete
de lecture (c’est-`a-dire, remplace un symbole par un symbole soulign´e).
– Si le symbole soulign´e pr´ec`ede le symbole ] et le calcul pr´evoit un d´eplacement `a droite
il est n´ecessaire d’allouer une nouvelle case. A cette fin, la machine M0 d´ecale `a droite
le contenu du ruban.
La borne O(t(n)
2
) sur le temps de calcul de la simulation est obtenue de la fa¸con suivante.
D’abord on observe que si la complexit´e de M est t(n), la taille des rubans manipul´es par
M ne peut jamais d´epasser t(n). Ensuite on d´etermine le nombre d’op´erations n´ecessaires `a
simuler un pas de calcul de M. Le premier passage est O(t(n)). Le deuxi`eme passage est aussi
O(t(n)) car le d´ecalage `a droite peut ˆetre effectu´e au plus k fois si la machine M comporte k
rubans et chaque d´ecalage peut ˆetre effectu´e en O(t(n)). •
Les machines multi-rubans permettent de donner une preuve simple du fait suivant.
Proposition 6.29 Un langage L est d´ecidable si et seulement si L et son compl´ementaire
L
c
sont semi-d´ecidables.
36Idee de la preuve ´ . (⇒) Par d´efinition un langage d´ecidable est semi-d´ecidable. D’une
MdT M qui d´ecide L on obtient une MdT M0 qui d´ecide L
c
simplement en ´echangeant les
´etats finaux qa et qr.
(⇐) Soient M et M0
les MdT qui d´ecident L et L
c
, respectivement. On d´erive une MdT
N avec 2 rubans qui copie d’abord l’entr´ee w du premier au deuxi`eme ruban et qui simule
ensuite alternativement un pas de r´eduction de la machine M et un pas de r´eduction de la
machine M0
. La machine N accepte si M arrive `a l’´etat qa et elle refuse si M0 arrive `a l’´etat
q
0
a
. La machine N termine toujours car tout mot w est accept´e soit par M soit par M0
. •
MdT non-d´eterministes Une MdT non-d´eterministe M est une MdT dont la fonction de
transition δ a le type :
δ : Q × Γ → 2
(Q×Γ×{L,R})
La notion de pas de calcul est adapt´ee imm´ediatement. Par exemple, on ´ecrira
wqaw0 `M wbq0w
0
si (q
0
, b, R) ∈ δ(q, a)
Exercice 6.30 Compl´etez la d´efinition de pas de calcul d’une machine non-d´eterministe.
La d´efinition 6.3 de langage semi-d´ecidable et d´ecidable s’applique directement aux MdT
non-d´eterministes.6 On remarquera que pour qu’une entr´ee w soit accept´ee il suffit qu’il existe
un calcul qui m`ene de la configuration initiale `a l’´etat qa.
Proposition 6.31 Soit N une MdT non-d´eterministe. On peut construire une MdT standard
M qui simule N. Si la complexit´e de N est t(n) ≥ n la complexit´e de M est 2
O(t(n))
.
Idee de la preuve ´ . Dans une MdT non-d´eterministe N il y a une constante k qui borne
le nombre d’alternatives possibles dans la suite du calcul. Ainsi on peut repr´esenter le calcul
d’une MdT non-d´eterministe comme un arbre ´eventuellement infini mais dont le branchement
est born´e par la constante k.
Les noeuds de cet arbre correspondent `a des mots sur {0, . . . , k − 1}
∗
. On peut ´enum´erer
tous les noeuds de l’arbre en explorant l’arbre en largeur d’abord :
, 0, . . . , k − 1, 00, . . . , 0(k − 1), 10, . . . , 1(k − 1), . . .(k − 1)0, . . . ,(k − 1)(k − 1), 000, . . .
Une MdT peut calculer le successeur imm´ediat d’un mot π par rapport `a cette ´enum´eration.
Pour simuler la machine N on utilise une MdT M avec 3 rubans. La proposition 6.28
nous assure qu’on peut toujours remplacer M par une MdT standard. Le premier ruban de
M contient l’entr´ee w, le deuxi`eme contient le chemin de l’arbre π qui est actuellement explor´e
et le troisi`eme contient le ruban de la machine N lorsqu’elle calcule en effectuant les choix
selon le chemin π.
Pour un chemin donn´e π, la machine M copie l’entr´ee du premier ruban au troisi`eme et
effectue ensuite un calcul en simulant l’ex´ecution de N sur le chemin π.
– Le calcul peut bloquer car le chemin π ne correspond pas `a un choix possible. Dans ce
cas on consid`ere le successeur imm´ediat de π et on it`ere.
6Ce n’est pas le cas pour la notion de fonction partielle r´ecursive car il faut d´ecider d’abord quel est le
r´esultat d’une MdT non-d´eterministe. . .
37– Le calcul arrive `a la fin du chemin π mais la machine ne se trouve pas dans l’´etat qa.
Dans ce cas aussi on consid`ere le successeur imm´ediat de π et on it`ere.
– Le calcul arrive `a la fin du chemin π et la machine se trouve dans l’´etat qa. Dans ce cas
on accepte et on arrˆete le calcul.
– La simulation peut aussi noter qu’il ne reste plus de chemins `a explorer et dans ce cas
elle s’arrˆete et refuse.
Si la complexit´e de N est t(n), la taille des chemins `a consid´erer est aussi O(t(n)). Le
nombre de chemins `a simuler est 2O(t(n)). Donc la complexit´e de M est 2O(t(n)). Enfin, la
MdT standard qui simule M est aussi 2O(t(n)) car (2cn)
2
est 2O(n)
. •
Exercice 6.32 (1) Montrez que les langages accept´es par un automate fini sont d´ecidables.
(2) Montrez que la collection des langages d´ecidables est stable par rapport aux op´erations
d’union, compl´ementaire, concat´enation et it´eration.
(3) Montrez que la collection des langages semi-d´ecidables est stable par rapport aux op´erations
d’union et concat´enation.
Suggestion : utilisez le non-d´eterminisme.
Th`ese de Church-Turing Il est ´evident que le calcul d’une MdT est effectif dans le sens
qu’une personne (une machine ´electronique) peut simuler le calcul d’une MdT `a condition
de disposer d’une quantit´e de papier (d’une quantit´e de m´emoire) qui peut ˆetre ´etendue
ind´efiniment. La th`ese de Church-Turing affirme que :
Tout langage semi-d´ecidable par une “proc´edure effective” est semi-d´ecidable par
une MdT.
On ne peut pas d´emontrer cette affirmation tant que la notion de “proc´edure effective”
n’est pas formalis´ee. Le probl`eme est qu’il n’y a pas de d´efinition g´en´erale de “proc´edure
effective”. On dispose seulement d’exemples de “proc´edures effectives” (par exemple les MdT,
les programmes assembleurs, les programmes Java, les syst`emes de preuve,. . .) et ce qu’on
peut faire est de d´emontrer que ces exemples sont ´equivalents au sens o`u ils permettent de
semi-d´ecider le mˆeme ensemble de langages. Nombreuses preuves de ce type ont ´et´e effectu´ees
depuis les ann´ees 30 et ceci nous permet d’avoir un certain niveau de confiance dans la validit´e
de la th`ese.
6.5 Langages ind´ecidables
On rappelle qu’il y a une bijection h , i entre les mots finis et les couples de mots finis et
que tout mot w peut ˆetre vu comme la repr´esentation d’une MdT ϕ(w). En particulier, on
utilise la notation M, M0
, . . . pour des mots qui sont consid´er´es comme des MdT. On ´ecrit
aussi ϕ(M)(w) pour indiquer le r´esultat du calcul de la MdT repr´esent´ee par ϕ(M) sur une
entr´ee w.
D´efinition 6.33 Le langage H est d´efini par
H = {hM, wi | ϕ(M)(w) ↓}
38Le langage H est semi-d´ecidable par la MdT universelle. Le langage H formalise un
probl`eme int´eressant qu’on appelle probl`eme de l’arrˆet : ´etant donn´e une MdT (un programme)
M et une entr´ee w on se demande si le calcul de M sur l’entr´ee w termine.
On peut aussi consid´erer le comportement d’une machine M lorsque elle re¸coit comme
entr´ee le codage d’une machine M0
. En particulier, on peut s’int´eresser au r´esultat de l’application
de la machine M `a son propre codage.
D´efinition 6.34 Le langage K est d´efini par
K = {M | ϕ(M)(M) ↓}
On va montrer que les langages H et K ne sont pas d´ecidables. Au passage, par la proposition
6.29 cela implique que les langages compl´ementaires Hc
et Kc ne sont mˆeme pas
semi-d´ecidables.
Th´eor`eme 6.35 Le langage K n’est pas d´ecidable.
Idee de la preuve ´ . Si K est d´ecidable il devrait y avoir une MdT ϕ(M) telle que
ϕ(M)(M0
) ↓ ssi M0 ∈ Kc
Si on applique ϕ(M) `a M on a deux possibilit´es :
1. Si ϕ(M)(M) ↓ alors M ∈ Kc
et donc ¬ϕ(M)(M) ↓.
2. Si ¬ϕ(M)(M) ↓ alors M /∈ Kc
et donc ϕ(M)(M) ↓.
Les deux possibilit´es m`enent `a une contradiction, donc Kc n’est pas semi-d´ecidable.7 •
Plutˆot que d´emontrer directement que H n’est pas d´ecidable on va introduire une technique
pour r´eduire l’analyse d’un langage `a l’analyse d’un autre langage.
D´efinition 6.36 Soient L, L0 deux langages sur un alphabet Σ. On dit que L se r´eduit `a L
0
et on ´ecrit L ≤ L
0
s’il existe une fonction r´ecursive f : Σ∗ → Σ
∗
telle que
w ∈ L ssi f(w) ∈ L
0
.
Si L ≤ L
0 alors les m´ethodes de d´ecision qu’on d´eveloppe pour L
0 peuvent ˆetre appliqu´ees
`a L aussi.
Proposition 6.37 Si L ≤ L
0
et L
0
est semi-d´ecidable (d´ecidable) alors L est semi-d´ecidable
(d´ecidable).
Idee de la preuve ´ . On sait qu’il existe une fonction r´ecursive f telle que w ∈ L ssi f(w) ∈ L
0
.
Supposons que Mf soit une MdT qui calcule f et M0 une MdT qui semi-d´ecide L
0
. Pour semid´ecider
(d´ecider) L il suffit de composer M0
et Mf . •
Exemple 6.38 On obtient que K ≤ H en utilisant la fonction f(M) = hM, Mi. Comme K
n’est pas d´ecidable, H ne peut pas ˆetre d´ecidable non plus.
7On appelle cette technique de preuve diagonalisation. On l’a d´ej`a utilis´ee dans l’exercice 6.22.
39Le fait que le probl`eme de l’arrˆet soit ind´ecidable n’est que la pointe de l’iceberg. . .
D´efinition 6.39 On dit que deux MdT sont extensionnellement ´equivalentes si elles terminent
sur les mˆemes entr´ees en donnant la mˆeme r´eponse (accepter/refuser).8
D´efinition 6.40 On dit qu’un langage P ⊆ Σ
∗
est une propri´et´e extensionnelle si P ne
distingue pas les codages de deux machines qui sont extensionnellement ´equivalentes.9 On dit
aussi que P est triviale si P ou P
c
est l’ensemble vide.
Th´eor`eme 6.41 (Rice) Toute propri´et´e extensionnelle P non triviale est ind´ecidable.
Idee de la preuve ´ . Soit M∅
le codage d’une MdT qui accepte le langage vide. Supposons que
M∅ ∈/ P (autrement on montre que P
c
est ind´ecidable). Supposons aussi que M1 ∈ P. Soit f
la fonction qui associe au codage d’une MdT M le codage d’une MdT qui re¸coit une entr´ee w,
calcule ϕ(M)(M) et si elle termine calcule M1(w). La machine f(M) est extensionnellement
´equivalente `a M1 (et donc appartient `a P) si et seulement si M ∈ K. Donc la fonction f
montre que K ≤ P. •
Exercice 6.42 En utilisant le th´eor`eme de Rice, montrez que les langages suivants sont
ind´ecidables :
(1) L’ensemble K des codages de MdT qui terminent sur l’entr´ee et acceptent .
(2) L’ensemble Tot des codages de MdT qui terminent sur toute entr´ee.
(3) L’ensemble Eq des codages de couples de MdT qui sont extensionnellement ´equivalentes.
Une cons´equence de (2) est qu’il ne peut pas y avoir un langage de programmation dans
lequel on peut programmer exactement les fonctions totales. Il ne serait pas d´ecidable de savoir
si un programme de ce langage est bien form´e. Il est donc n´ecessaire de donner des crit`eres
d´ecidables qui assurent la terminaison mais qui excluent certains programmes qui terminent.
Une cons´equence de (3) est qu’on ne peut pas automatiser le probl`eme de l’´equivalence de
deux programmes. Dans ce cas aussi on est amen´e `a faire des approximations.
Exercice 6.43 Montrez ou invalidez les assertions suivantes :
1. Il y a une MdT qui accepte les mots sur l’alphabet {0, 1} qui contiennent autant de 0
que de 1 (si la MdT existe, il suffira d’en donner une description informelle).
2. Rappel : si A et B sont deux langages, on ´ecrit A ≤ B s’il existe une r´eduction de A `a
B.
Si A est s´emi-d´ecidable et A ≤ Ac alors A est d´ecidable.
3. L’ensemble des (codages de) MdT qui reconnaissent un langage fini est d´ecidable.
Exercice 6.44 Montrez ou donnez un contre-exemple aux assertions suivantes :
1. L’ensemble des (codages de) MdT qui terminent sur le mot vide est d´ecidable.
2. L’ensemble des (codages de) MdT qui divergent sur le mot vide est semi-d´ecidable.
8
Il y a des variations possibles de cette d´efinition. Par exemple, on peut dire que les machines sont
´equivalentes si elles calculent la mˆeme fonction partielle.
9En d’autres termes, si M et M0
sont extensionnellement ´equivalentes alors soit {M, M0
} ⊆ P soit {M, M0
}∩
P = ∅.
403. L’ensemble des (codages de) MdT qui terminent sur le mot vide en 10100 pas de calcul
est d´ecidable.
Exemple 6.45 On termine en mentionnant (sans preuve) quelques probl`emes ind´ecidables
remarquables.
(1) Soit Σ un alphabet et soit (v1, w1)· · ·(vk, wk) une suite finie de couples de mots dans Σ
∗
.
Le probl`eme de correspondance de Post (PCP) consiste `a d´eterminer s’ils existent n ≥ 1 et
i1, . . . , in ∈ {1, . . . , k} tels que :
vi1
· · · vin = wi1
· · · win
.
Par exemple, consid´erez {(ab, a),(bcc, bb),(c, cc)}. On ne peut pas concevoir un algorithme
qui pour tout PCP d´ecide si le probl`eme a une solution. En d’autres termes, le probl`eme de
correspondance de Post est ind´ecidable.
(2) Soit p(x1, . . . , xn) un polynˆome de degr´e arbitraire avec variables x1, . . . , xn et avec coef-
ficients dans Z. Par exemple, p(x, y, z) = 6x
3yz2 + 3xy2 − x
3 − 10. Le dixi`eme probl`eme de
Hilbert consiste `a d´eterminer si le polynˆome p a des racines dans Z, c’est-`a-dire :
∃ x1, . . . , xn ∈ Z p(x1, . . . , xn) = 0
Ce probl`eme a ´et´e propos´e comme un challenge parmi d’autres en 1900 par D. Hilbert et
il a ´et´e montr´e ind´ecidable par Matijasevich en 1970 (le mˆeme probl`eme sur les r´eels est
d´ecidable).
(3) La logique du premier ordre est l’extension du calcul propositionnel o`u l’on introduit la
quantification. Par exemple, on peut ´ecrire ∀ x ∃ y A(x, y). Une telle formule est valide si
pour tout ensemble U 6= ∅ et pour toute relation binaire RA sur U il est vrai que pour tout
u ∈ U il existe v ∈ V tel que (u, v) ∈ RA. La validit´e d’une formule du premier ordre est
ind´ecidable.
(4) On peut s’int´eresser aux formules du premier ordre sur un alphabet particulier qui
comprend les symboles +,∗ et < qui sont interpr´et´es comme l’addition, la multiplication et
l’in´egalit´e de nombres naturels. De mˆeme, les quantificateurs sont interpr´et´es maintenant sur
les nombres naturels. Par exemple, ∀ x ∃ y x < y est une formule qui dit que pour chaque
nombre naturel x on peut trouver un nombre naturel y qui est strictement plus grand. La validit´e
d’une formule du premier ordre (interpr´et´ee sur les nombres naturels) est (hautement)
ind´ecidable.10
10On peut construire une hi´erarchie qu’on appelle hi´erarchie arithm´etique de probl`emes ind´ecidables et
toujours ‘plus durs’.
417 Complexit´e : les classes P et NP
On s’int´eresse au probl`emes d´ecidables en temps polynomial (d´eterministe ou non-d´eterministe).
D´efinition 7.1 P (NP) est la classe des langages qui sont d´ecidables par une MdT d´eterministe
(non-d´eterministe) en temps O(n
k
) pour un certain k.
Il suit de la d´efinition que tout probl`eme dans P est aussi dans NP. Les classes P et NP
sont suffisamment robustes pour ne pas ˆetre affect´ees par une modification du mod`ele de
calcul. Par exemple, ces classes ne d´ependent pas du fait que les MdT disposent de un ou de
plusieurs rubans. On peut mˆeme enrichir le mod`ele de calcul en supposant que la machine
dispose d’une m´emoire illimit´ee en acc`es direct (RAM pour random access memory). Dans une
telle machine l’acc`es `a une cellule de m´emoire est effectu´e en O(1). On peut d´emontrer qu’une
MdT d´eterministe peut simuler une machine avec RAM avec une d´egradation polynomiale
des performances, c’est-`a-dire qu’il y a un (petit) nombre k tel que si la machine avec RAM
a complexit´e O(t(n)) la MdT qui la simule a complexit´e O(t(n)
k
).
Une grande partie des probl`emes qui sont consid´er´es dans un cours standard d’algorithmique
font partie de la classe P. Par exemple, les probl`emes de tri, la r´esolution de syst`emes
d’´equations lin´eaires, les probl`emes de recherche dans un arbre, le probl`eme de la connectivit´e
d’un graphe,. . . Dans la suite on va consid´erer un certain nombre de probl`emes qui sont dans
la classe NP.
Exemple 7.2 (1) Le probl`eme de savoir si une formule du calcul propositionnel est satisfiable
est dans NP. Il suffit de deviner une affectation et de v´erifier.
(2) Soit G = (V, E) un graphe non-dirig´e. Le probl`eme du circuit hamiltonien consiste `a
d´eterminer s’il existe un parcours du graphe qui contient chaque sommet du graphe une et
une seule fois. Un algorithme dans NP qui r´epond `a la question devine une permutation des
sommets et v´erifie si elle correspond `a un parcours dans le graphe.
(2) Soit V un ensemble de villes et d une fonction qui associe `a chaque paire de villes (v, v0
)
la distance d(v, v0
) ≥ 0 pour aller de v `a v
0
. Le probl`eme du voyageur de commerce11 est
de d´eterminer s’il existe un parcours qui traverse chaque ville exactement une fois dont la
longueur est inf´erieure `a b. En d’autres termes, dans TSP on consid`ere un graphe non-dirig´e,
complet (chaque couple de noeuds est connect´e par une arˆete) et avec une fonction de coˆut sur
les arˆetes et on cherche `a d´eterminer si le graphe contient un circuit hamiltonien dont le coˆut
est inf´erieur `a b. Un algorithme dans NP qui r´epond `a la question devine une permutation
des villes et v´erifie si la somme des distances est inf´erieure `a b.
12
7.1 R´eduction polynomiale
Faute de pouvoir d´emontrer que les probl`emes dans l’exemple 7.2 sont ou ne sont pas
dans P, on va essayer de les comparer. A cette fin, on reprend la notion de r´eduction entre
probl`emes (d´efinition 6.36) en ajoutant la contrainte que la r´eduction est calculable en temps
polynomiale (d´eterministe).
11Aussi connu comme TSP pour Travelling Salesman Problem.
12Ce probl`eme est aussi formul´e comme un probl`eme d’optimisation o`u l’on cherche `a minimiser la longueur
d’un parcours ferm´e.
42D´efinition 7.3 Soient L, L0 deux langages sur un alphabet Σ. On dit que L se r´eduit `a L
0
en temps polynomial et on ´ecrit L ≤P L
0
s’il existe une fonction r´ecursive f : Σ∗ → Σ
∗
calculable en temps polynomial telle que
w ∈ L ssi w ∈ L
0
Exemple 7.4 Il y a une r´eduction polynomiale du probl`eme du circuit hamiltonien au probl`eme
du voyageur de commerce. L’ensemble des noeuds correspond `a l’ensemble des villes. La distance
d est d´efinie par :
d(v, v0
) = (
1 si (v, v0
) arˆete
2 autrement
La constante b est ´egale au nombre des villes. Maintenant, on remarque :
– S’il existe un parcours de longueur b alors ce parcours ne peut contenir que des chemins
entre villes de longueur 1. Donc ce parcours correspond `a un chemin hamiltonien.
– Inversement, s’il y a un chemin hamiltonien alors la r´eponse au probl`eme du voyageur
de commerce est positive.
Exercice 7.5 Une formule est en 3-CNF si elle est en CNF et chaque clause (disjonction de
litt´eraux) comporte exactement 3 litt´eraux. Le probl`eme 3-SAT consiste `a d´eterminer si une
formule en 3-CNF est satisfiable. Montrez que :
(1) 3-SAT est dans NP.
(2) Une clause `1 ∨ · · · ∨ `n avec n > 3 peut ˆetre remplac´ee par
(`1 ∨ `2 ∨ y1) ∧ (¬y1 ∨ `3 ∨ y2) ∧ · · ·(¬yn−3 ∨ `n−1 ∨ `n)
o`u y1, . . . , yn−3 sont des nouvelles variables.
(3) Une clause avec 1 ou 2 litt´eraux peut ˆetre remplac´ee par une clause avec 3 litt´eraux.
(4) Conclure qu’il y a une r´eduction polynomiale de SAT `a 3-SAT.
Exercice 7.6 Montrez que la notion de r´eduction polynomiale est transitive : L1 ≤P L2 et
L2 ≤P L3 implique L1 ≤P L3.
7.2 SAT et NP-compl´etude
D´efinition 7.7 Un probl`eme L (langage) est NP-complet s’il est dans NP et si tout probl`eme
L
0 dans NP admet une r´eduction polynomiale `a L.
Dans un certain sens les probl`emes NP-complets sont les plus durs. Si on trouve un
algorithme polynomial pour un probl`eme NP-complet alors on a un algorithme polynomial
pour tous les probl`emes de la classe NP. Un fait remarquable est que plusieurs probl`emes
naturels sont NP-complets.
Th´eor`eme 7.8 (Cook-Levin 1971) Le probl`eme SAT est NP-complet.
Idee de la preuve ´ . Soit L un langage d´ecid´e par une MdT M non d´eterministe polynomiale
en temps p(n). Donc w ∈ L ssi `a partir de la configuration initiale q0w la machine M peut
arriver `a l’´etat qa. On d´ecrit une r´eduction polynomiale qui associe `a chaque mot w une
43formule en CNF Aw qui est satisfiable si et seulement si w ∈ L. L’id´ee est que la formule
Aw va d´ecrire les calculs possibles (M est non-d´eterministe !) de la machine M sur l’entr´ee
w. La remarque fondamentale est qu’un calcul d’une machine de Turing en temps p(n) sur
un mot w de taille n peut ˆetre repr´esent´e par un tableau de taille p(n) × p(n) dont la case
de coordonn´ees (i, j) contient la valeur du ruban au temps i et `a la position j. Si le calcul
termine avant p(n) on peut toujours recopier le ruban jusqu’au temps p(n).
On peut associer `a chaque case (i, j) et `a chaque symbole a une variable propositionnelle
xi,j,a avec l’id´ee que xi,j,a = 1 si et seulement si la case (i, j) contient le symbole a.
Ensuite on peut construire des formules (de taille polynomiale en n) qui assurent que :
– Exactement un symbole est dans chaque case.
– Les cases (1, j) correspondent `a la configuration initiale.
– Chaque case (i + 1, j) est obtenue des cases (i, j − 1),(i, j),(i, j + 1) selon les r`egles de
la Machine.
– La configuration finale accepte.
Exemple 7.9 On construit une CNF qui correspond au calcul de la MdT M dans l’exemple
6.4 sur l’entr´ee aab.
13 Le calcul de la MdT pourrait ˆetre :
1 2 3 4 5
1 q0 a a b t
2 a q0 a b t
3 a a q0 b t
4 a a b q1 t
5 a a b t qa
Pour repr´esenter le calcul on introduit les variables xi,j,u o`u i, j ∈ {1, . . . , 5} et u ∈ {a, b, q0, q1, qa}.
La configuration initiale est sp´ecifi´ee par :
Ainit = x1,1,q0 ∧ x1,2,a ∧ x1,3,a ∧ x1,4,b ∧ x1,5,t
On doit imposer la contrainte que `a chaque instant exactement un symbole est pr´esent `a
chaque position. Par exemple, pour l’instant i `a la position j on ´ecrira :
Ai,j = (xi,j,a ∨ · · · ∨ xi,j,qa
) ∧ (¬xi,j,a ∨ ¬xi,j,b) ∧ · · · ∧ (¬xi,j,q1 ∨ ¬xi,j,qa
)
L’objectif est d’arriver `a une configuration qui contient l’´etat qa. Cela revient `a demander :
Aaccept = ∨1≤i,j≤5xi,j,qa
Enfin on doit d´ecrire les ‘r`egles de calcul’ de la machine M. Par exemple, on pourrait exprimer
δ(q0, a) = (q0, a, R) par la conjonction de formules de la forme
(xi−1,j−1,q0 ∧ xi−1,j,a) → (xi,j−1,a ∧ xi,j,q0
)
Il est possible de proc´eder d’une fa¸con plus syst´ematique. Une propri´et´e int´eressante des MdT
est qu’`a chaque instant le calcul est localis´e dans une r´egion de taille born´ee. Si w1qw2 `M
w
0
1
q
0w
0
2
la diff´erence entre les deux configurations est localis´ee dans une r´egion de taille 3 qui
13Il s’agit d’un cas tr`es sp´ecial car la MdT en question se comporte comme un automate fini d´eterministe.
Cependant les id´ees se g´en´eralisent.
44comprend l’´etat et les deux symboles contigu¨es. L’id´ee est alors de regarder toutes les fenˆetres
de largeur 3 et de hauteur 2 dans le tableau qui repr´esente le calcul (il y en a un nombre
polynomial) et de s’assurer que le contenu de chaque fenˆetre est conforme aux r`egles de la
machines.
La formule en question peut ˆetre exprim´ee en CNF. Par exemple, on pourrait avoir une
formule de la forme :
((x1 ∧ x2) → (y1 ∧ y2)) ∨ ((x1 ∧ x2) → (w1 ∧ w2)) ∨ ((x1 ∧ x2) → (z1 ∧ z2))
pour dire que si deux cases contiennent les symboles a1, a2 (variables x1, x2) alors deux autres
cases contiennent ou bien les symboles b1, b2 (variables y1, y2) ou bien les symboles c1, c2
(variables w1, w2) ou bien les symboles d1, d2 (variables z1, z2).
Une telle formule peut se r´e-´ecrire en CNF comme suit.
(¬x1 ∨ ¬x2 ∨ y1 ∨ w1 ∨ z1)∧
(¬x1 ∨ ¬x2 ∨ y1 ∨ w1 ∨ z2)∧
(¬x1 ∨ ¬x2 ∨ y1 ∨ w2 ∨ z1)∧
(¬x1 ∨ ¬x2 ∨ y1 ∨ w2 ∨ z2)∧
(¬x1 ∨ ¬x2 ∨ y2 ∨ w1 ∨ z1)∧
(¬x1 ∨ ¬x2 ∨ y2 ∨ w1 ∨ z2)∧
(¬x1 ∨ ¬x2 ∨ y2 ∨ w2 ∨ z1)∧
(¬x1 ∨ ¬x2 ∨ y2 ∨ w2 ∨ z2)
La transformation est exponentielle dans le nombre de possibilit´es (3 dans notre cas), mais
pour une MdT donn´ee, ce nombre est born´e par une constante.
Exercice 7.10 On dispose d’un ensemble P = {1, . . . , m} de pigeons et d’un ensemble N =
{1, . . . , n} de nids. Le principe du nid de pigeon14 est le suivant :
1. Chaque pigeon a un nid.
2. Chaque nid a au plus un pigeon.
D´ecrivez le principe par une formule du calcul propositionnel en CNF qui utilise comme
formules atomiques oi,j pour i = 1, . . . , m et j = 1, . . . , n o`u la validit´e de oi,j repr´esente le
fait que le pigeon i occupe le nid j. La formule en question doit ˆetre satisfiable si et seulement
si m ≤ n. Quelle est la taille de la formule en fonction de m, n ?
Remarque : si on prend m = n+1 on obtient une formule en CNF qui n’est pas satisfiable.
Cette formule est utilis´ee souvent comme un test pour les m´ethodes de preuve (Davis-Putnam,
r´esolution,. . .)
Exercice 7.11 On dispose d’une grille 4 × 4 qui se d´ecompose en 4 sous-grilles 2 × 2. On
d´enote par le couple (i, j), o`u i, j ∈ {1, 2, 3, 4}, les coordonn´ees d’une case de la grille. Chaque
case de la grille contient un ensemble de nombres naturels contenu dans {1, 2, 3, 4}. On introduit
64 variables propositionnelles xi,j,k pour i, j, k ∈ {1, 2, 3, 4} avec l’interpr´etation suivante :
xi,j,k est ‘vrai’ si et seulement si la case de coordonn´ees (i, j) contient le nombre k.
14Traduction approximative de pigeon principle.
45Soit A une formule qui utilise les variables xi,j,k et P une propri´et´e de la grille. On dit
que A exprime P si, dans l’interpr´etation ci-dessus, A est satisfiable si et seulement si P est
v´erifi´ee. Par exemple, par la formule A = x1,1,2 ∨ x1,1,3 on exprime la propri´et´e que la case
de coordonn´ees (1, 1) contient ou bien 2 ou bien 3.
1. D´efinissez des formules en forme normale conjonctive qui expriment les propri´et´es suivantes
:
(a) La case de coordonn´ees (2, 2) contient au moins un num´ero compris entre 1 et 4.
(b) On ne peut pas trouver deux cases sur la premi`ere ligne qui contiennent le num´ero
4.
(c) La case (3, 2) contient au plus un num´ero.
2. Donnez une borne sup´erieure au nombre de litt´eraux contenus dans une formule en
forme normale conjonctive qui exprime la propri´et´e suivante : il n’y a pas deux cases
sur la mˆeme ligne, sur la mˆeme colonne ou sur la mˆeme sous-grille 2×2 qui contiennent
le mˆeme num´ero. Expliquez votre calcul.
Exercice 7.12 Pour n ≥ 1 on introduit n
2
variables propositionnelles xi,j avec 1 ≤ i, j ≤ n.
(1) Construisez une formule An en forme normale conjonctive qui a la propri´et´e suivante :
une affectation v satisfait An exactement quand il existe une permutation π : {1, . . . , n} →
{1, . . . , n} telle que v(xi,j ) = 1 si et seulement si π(i) = j. Par exemple, pour n = 2 il n’y a
que deux affectations qui peuvent satisfaire A2 `a savoir soit (v(x1,1) = v(x2,2) = 1 et v(x1,2) =
v(x2,1) = 0) soit (v(x1,1) = v(x2,2) = 0 et v(x1,2) = v(x2,1) = 1). Ecrivez explicitement ´ An
pour n = 3 et ensuite donnez le sch´ema de la formule An pour un n arbitraire. Suggestion :
une permutation sur un ensemble fini X est la mˆeme chose qu’une fonction injective sur X.
(2) Un graphe fini non-dirig´e G est un couple (N, E) o`u N = {1, . . . , n}, n ≥ 2 est un
ensemble qui repr´esente les noeuds du graphe et E est un ensemble de sous-ensembles de N
de cardinalit´e 2 qui repr´esente les arˆetes du graphe. On dit que G admet un circuit hamiltonien
s’il existe une permutation π : {1, . . . , n} → {1, . . . , n} telle que
{π(1), π(2)} ∈ E, . . . , {π(n − 1), π(n)} ∈ E
Montrez que le probl`eme de savoir si un graphe admet un circuit hamiltonien a une r´eduction
polynomiale au probl`eme de la satisfiabilit´e d’une formule en CNF du calcul propositionnel.
Suggestion : on utilise la formule An de l’exercice 7.12 pour sp´ecifier l’existence d’une permutation
et on ajoute des variables yi,j , i, j = 1, . . . , n, i 6= j pour sp´ecifier les arˆetes du
graphe.
Exercice 7.13 On dispose d’un ´echiquier (une matrice carr´ee) n × n. Une reine qui occupe
une position de l’´echiquier peut attaquer toutes les positions sur la mˆeme ligne, la mˆeme colonne
ou sur les diagonales inclin´ees de 45 d´egr´ees. On cherche `a placer r reines sur l’´echiquier
de fa¸con `a ce qu’elles ne puissent pas s’attaquer mutuellement. A cette fin, ´ecrivez une formule
en CNF qui est satisfiable si et seulement si le probl`eme a une solution. On utilisera des
formules atomiques oi,j pour i = 1, . . . , m et j = 1, . . . , n o`u la validit´e de oi,j repr´esente le
fait qu’une reine occupe la position (i, j).
Remarque : la formule obtenue est aussi un test int´eressant pour les m´ethodes de preuve.
Par exemple, pour n = r = 4 ou n = r = 8 le probl`eme a une solution.
46Exercice 7.14 Soit A une matrice et b un vecteur `a coefficients dans Z. Le probl`eme de
programmation lin´eaire enti`ere (ILP pour integer linear programming) consiste `a d´eterminer
s’il existe un vecteur ~x `a coefficients dans Nm tel que A~x = ~b.
15 Ce probl`eme est dans NP. On
utilise des notions d’alg`ebre lin´eaire pour montrer que si le probl`eme a une solution alors il en
a une dont la taille est polynomiale dans la taille de la matrice A. Ensuite on peut appliquer
la m´ethode standard qui consiste `a deviner un vecteur ~x et `a v´erifier qu’il est une solution.
A partir de ce fait, le but de l’exercice est de montrer que le probl`eme est NP-complet par
r´eduction du probl`eme SAT. Il peut ˆetre utile de consid´erer d’abord les probl`emes suivants.
– Montrez qu’en introduisant des variables auxiliaires on peut exprimer la satisfaction
d’une contrainte d’in´egalit´e comme un probl`eme d’ILP.
– Montrez qu’on peut exprimer la contrainte x ∈ {0, 1}.
– Montrez qu’on peut exprimer la contrainte x = y o`u x, y ∈ {0, 1}, 0 = 1 et 1 = 0.
– Montrez comment coder la validit´e d’une clause (disjonction de litt´eraux).
Exercice 7.15 Soit G un graphe non-dirig´e (cf. exercice 8.6). Un k-clique est un ensemble
de k noeuds de G qui ont la propri´et´e que chaque couple de noeuds est connect´ee par une
arˆete.
Le langage CLIQUE est compos´e de couples hG, ki o`u (i) G est le codage d’un graphe, (ii)
k est un nombre naturel et (iii) G contient comme sous-graphe un k-clique.
Le langage 3-SAT est compos´e de formules en forme normale conjonctive o`u chaque clause
contient 3 litt´eraux.
1. Montrez que le langage CLIQUE est dans NP.
2. On souhaite construire une r´eduction polynomiale de 3-SAT `a CLIQUE. Si la formule
A contient k clauses alors le graphe associ´e GA contient k groupes de noeuds o`u chaque
groupe est compos´e de 3 noeuds et chaque noeud est ´etiquet´e par un litt´eral. Par exemple,
si la clause est (x ∨ ¬y ∨ z) alors on aura un groupe de 3 noeuds ´etiquet´es avec x, ¬y et
z.
(a) D´ecrivez les arˆetes de GA de fa¸con `a ce que le graphe GA contienne une k-clique
si et seulement si la formule A est satisfiable et dessinez le graphe GA dans le cas
o`u
A = (x ∨ y) ∧ (¬x ∨ ¬y) ∧ (¬x ∨ y) ∧ (x ∨ ¬y)
(la formule en question comporte seulement deux litt´eraux par clause mais la
construction du graphe GA s’applique aussi bien `a ce cas).
(b) Quelle conclusion peut-on tirer de la construction pr´ec´edente ? Motivez votre r´eponse :
i. Si 3-SAT est un probl`eme polynomiale d´eterministe alors CLIQUE est un
probl`eme polynomiale d´eterministe.
ii. CLIQUE est un probl`eme NP-complet.
Exercice 7.16 Un graphe (non-dirig´e) G est compos´e d’un ensemble fini non-vide de noeuds
N et d’un ensemble A d’arˆetes qui connectent les noeuds. Formellement, une arˆete est un
ensemble {i, j} de noeuds de cardinalit´e 2. On dit que deux noeuds sont adjacents s’il y a une
arˆete qui les connecte.
15Comme pour le probl`eme du voyageur de commerce, le probl`eme ILP est souvent formul´e comme un
probl`eme d’optimisation. Par exemple, il s’agit de minimiser une fonction lin´eaire ~cT
~x sous les contraintes
A~x = ~b et ~x ≥ 0.
47Probl`eme du coloriage Etant donn´e un graphe ´ G = (N, A) et un nombre naturel k ≥ 2
on d´etermine s’il existe une fonction c : N → {1, . . . , k} telle que si i, j sont deux noeuds
adjacents alors c(i) 6= c(j).
16
Probl`eme de l’emploi du temps Etant donn´e (i) un ensemble d’´etudiants ´ E = {1, . . . , n}
(n ≥ 2), (ii) un ensemble de cours C = {1, . . . , m} (m ≥ 2), (iii) un ensemble de plages
horaires P = {1, . . . , p} (p ≥ 2) et (iv) une relations binaire R telle que (i, j) ∈ R si et
seulement si l’´etudiant i suit le cours j on d´etermine s’il existe une fonction emploi du temps
edt : C → P telle que si un ´etudiant suit deux cours diff´erents j 6= j
0 alors edt(j) 6= edt(j
0
).
D´emontrez ou donnez un contre-exemple aux assertions suivantes :
1. Le probl`eme de l’emploi du temps se r´eduit au probl`eme du coloriage.
2. Le probl`eme de l’emploi du temps se r´eduit en temps polynomial au probl`eme du coloriage.
3. Le probl`eme du coloriage est dans NP.
Remarque 7.17 (1) On connaˆıt un bon millier de probl`emes NP-complets. Cependant, certains
probl`emes comme l’isomorphisme de graphes (cf. exemple 6.14) r´esistent `a une classi-
fication. A l’´etat de nos connaissances, il est possible que le probl`eme de l’isomorphisme de
graphes soit ni NP-complet ni dans P.
(2) La question de savoir s’il y a un langage dans NP qui n’est pas dans P est ouverte depuis
1971. C’est un probl`eme naturel de la th´eorie de la complexit´e et il est aussi le probl`eme le
plus m´ediatis´e de l’informatique th´eorique. 17
(3) Une autre fa¸con de mesurer la complexit´e du calcul d’une MdT est de compter l’espace,
c’est-`a-dire le nombre de cellules du ruban qu’elle utilise. La classe PSPACE (NPSPACE) est
la classe des probl`emes qui peuvent ˆetre r´esolus par une MdT d´eterministe (non-d´eterministe)
en utilisant un espace polynomial dans la taille de l’entr´ee. Il n’est pas tr`es difficile de montrer
que PSPACE=NPSPACE. On en d´eduit imm´ediatement que P ⊆ NP ⊆ PSPACE mais on
ne sait pas si une de ces inclusions est stricte.
(4) Nombreuses autres classes de complexit´e ont ´et´e introduites. Par exemple : LOGSPACE,
la classe des probl`emes qui peuvent ˆetre r´esolus en espace logarithmique (LOGSPACE ⊆ P) et
EXPTIME, la classe des probl`emes qui peuvent ˆetre r´esolus en temps exponentiel (PSPACE
⊆ EXPTIME).
16On peut voir les valeurs {1, . . . , k} comme des couleurs qu’on affecte aux noeuds, d’o`u le nom du probl`eme.
17Le probl`eme P vs. NP est cit´e parmi les “7 probl`emes math´ematiques du troisi`eme mill´enaire” par la
Clay Foundation `a cot´e de l’hypoth`ese de Riemann, la conjecture de Poincar´e, la r´esolution des ´equations de
Navier-Stokes,. . . La preuve de la conjecture de Poincar´e a ´et´e annonc´ee r´ecemment, il ne reste donc que 6
probl`emes. . .
488 Preuves par induction
On s’int´eresse d’abord aux d´efinitions inductives. Dans une d´efinition inductive on construit
un ensemble ‘inductif’ par stratifications successives et on dispose d’un principe de r´ecurrence
ainsi que d’un ordre implicite. Les ensembles librement engendr´es constituent un exemple remarquable
d’ensemble inductif. Par ailleurs, on peut g´en´eraliser la notion d’ordre et arriver `a
la notion d’ensemble bien fond´e. Les ensembles bien fond´es admettent un principe d’induction
qui g´en´eralise le principe de r´ecurrence habituel.
8.1 Ensembles inductifs
Soit A un ensemble, X ⊆ A un sous-ensemble, et F = {fi
: Ani → A | i ∈ I} un
ensemble d’op´erations sur A. A partir de (A, X, F) on voudrait d´efinir inductivement un
ensemble Ind(A, X, F) comme le plus petit sous-ensemble de A qui contient X et qui est
stable par rapport aux op´erations dans F, c’est-`a-dire pour tout i ∈ I si y1, . . . yni ∈ Y alors
fi(y1, . . . , yni
) ∈ Y .
Exemple 8.1 Soit Z l’ensemble des nombres entiers et suc et + les op´erations successeur et
addition, respectivement. On pourrait d´efinir :
(1) L’ensemble des nombres naturels comme le plus petit sous-ensemble de Z qui contient
{0} et qui est stable par rapport `a l’op´eration de successeur.
(2) L’ensemble des nombres pairs positifs comme le plus petit sous-ensemble de Z qui contient
{0, 2} et qui est stable par rapport `a l’op´eration d’addition.
Il n’est pas si ´evident qu’une d´efinition inductive d´efinit bien un ensemble. Il faut d’abord
s’assurer que le plus petit ensemble dont parle la d´efinition existe. A partir de (A, X, F) on
peut d´efinir une fonction F : 2A → 2
A comme suit :
F(Z) = X ∪ {fi(z1, . . . , zni
) | i ∈ I, zj ∈ Z, j = 1, . . . , ni}
On remarque que la condition F(Z) ⊆ Z est satisfaite si et seulement si X ⊆ Z et Z est
stable par rapport aux op´erations dans F. Maintenant consid´erons l’intersection de tous les
ensembles Z ⊆ A qui satisfont cette condition :
Y =
\
{Z ⊆ A | F(Z) ⊆ Z} . (5)
Proposition 8.2 Le plus petit ensemble Ind(A, X, F) existe et est ´egale `a Y.
Idee de la preuve ´ . Par d´efinition, si F(Z) ⊆ Z alors Y ⊆ Z. Pour s’assurer de l’existence
du plus petit ensemble tel que. . . il reste `a d´emontrer que F(Y ) ⊆ Y . D’abord on observe que
F est monotone, c’est-`a-dire :
X1 ⊆ X2 ⇒ F(X1) ⊆ F(X2)
Si F(Z) ⊆ Z par d´efinition de Y on d´erive que Y ⊆ Z et par monotonie que F(Y ) ⊆ F(Z).
Donc
F(Y ) ⊆
\
{F(Z) | Z ⊆ A, F(Z) ⊆ Z} ⊆ \
{Z | Z ⊆ A, F(Z) ⊆ Z} = Y .
•
Si F(Z) = Z on dit que Z est un point fixe de F.
49Proposition 8.3 (it´eration) (1) L’ensemble Y d´efini par l’´equation (5) est le plus petit
point fixe de F.
(2) De plus on peut donner une d´efinition it´erative de Y . Si on d´efinit,
F
0 = ∅ Fn+1 = F(F
n
) F
ω =
[
n≥0
F
n
alors F
n ⊆ Fn+1 et F
ω = Y .
Idee de la preuve ´ . (1) On sait F(Y ) ⊆ Y . Par monotonie, F(F(Y )) ⊆ F(Y ). Par d´efinition
de Y , Y ⊆ F(Y ).
(2) On observe, F
n ⊆ Y implique par monotonie F
n+1 ⊆ F(Y ) ⊆ Y . Donc F
ω ⊆ Y . Ensuite,
on v´erifie que F(F
ω
) ⊆ Fω
, ce qui implique Y ⊆ Fω
. •
Proposition 8.4 Tout ensemble Y d´efini inductivement `a partir de (A, X, F) admet le principe
d’induction suivant :
Z ⊆ Y, F(Z) ⊆ Z
Z = Y
(6)
Si on explicite le principe dans le cas des nombres naturels N, on obtient le principe de
r´ecurrence habituel :
Z ⊆ N, 0 ∈ Z, ∀ n n ∈ Z → n + 1 ∈ Z
Z = N
(7)
Exercice 8.5 (transitivit´e) Soit R une relation binaire sur un ensemble. Sa clˆoture r´eflexive
et transitive R∗
est la plus petite relation qui contient la relation identit´e, la relation R et telle
que si (x, y),(y, z) ∈ R∗ alors (x, z) ∈ R∗
. Montrez que R∗ peut ˆetre vu comme un ensemble
d´efini inductivement.
Exercice 8.6 Un graphe non-dirig´e G est compos´e d’un ensemble fini non-vide de noeuds
N et d’un ensemble A d’arˆetes qui connectent les noeuds. Formellement, une arˆete est un
ensemble {i, j} de noeuds de cardinalit´e 2. Le degr´e d’un noeud i dans un graphe est le
nombre d’arˆetes qui le contiennent. Par exemple, un noeud isol´e a degr´e 0. D´emontrez en
utilisant le principe de r´ecurrence l’assertion suivante :
Chaque graphe avec au moins 2 noeuds contient 2 noeuds avec le mˆeme degr´e.
8.2 Treillis complets et points fixes
Un ordre partiel (L, ≤) est un ensemble L ´equip´e d’une relation r´eflexive, anti-sym´etrique
et transitive. Soit X ⊆ L (´eventuellement vide). Un ´el´ement y ∈ L est une borne sup´erieure
pour X si ∀ x ∈ X x ≤ y. Un ´el´ement y ∈ L est le sup de X s’il est la plus petite borne
sup´erieure. De fa¸con duale, on d´efinit la notion de borne inf´erieure et de inf.
D´efinition 8.7 Un treillis complet est un ordre partiel (L, ≤) tel que tout sous-ensemble a
un sup.
D´efinition 8.8 Une fonction monotone f sur un ordre partiel L est une fonction qui respecte
l’ordre. On dit que x est point fixe de f si f(x) = x.
50Proposition 8.9 (Tarski) (1) Les parties d’un ensemble ordonn´ees par inclusion forment
un treillis complet.
(2) Tout sous-ensemble d’un treillis complet a un inf.
(3) Toute fonction monotone sur un treillis complet a un plus grand et un plus petit point
fixe qui s’expriment respectivement par sup{x | x ≤ f(x)} et inf {x | f(x) ≤ x}.
Idee de la preuve ´ . (1) Le sup est l’union et l’inf est l’intersection d’ensembles.
(2) Soit X ⊆ L et BI(X) l’ensemble des bornes inf´erieures de X. On consid`ere z =
sup(BI(X)) et on montre que z = inf (X).
(3) On pose z = sup{x | x ≤ f(x)}. Si f(y) = y alors y ≤ z. Donc il reste `a montrer que
z est un point fixe. On montre d’abord que z ≤ sup{f(x) | x ≤ f(x)} ≤ f(z). Ensuite par
monotonie, f(z) ≤ f(f(z)) et par d´efinition de z on arrive `a f(z) ≤ z. •
Exercice 8.10 Soit (N∪{∞}, ≤) l’ensemble des nombres naturels avec un ´el´ement maximum
∞, 0 < 1 < 2 < . . . < ∞. Montrez que toute fonction monotone f sur cet ordre admet un
point fixe, c’est-`a-dire un ´el´ement x tel que f(x) = x.
8.3 Ensembles librement engendr´es
Nous allons consid´erer une forme particuli`erement importante de d´efinition inductive. Soit
L un ensemble de symboles `, `0
, . . . avec arit´e ar (`) ∈ N. On peut d´efinir un ensemble T(L)
par :
T(L)0 = {` ∈ L | ar (`) = 0}
T(L)n+1 = T(L)n ∪ {(`, t1, . . . , tn) | ` ∈ L, ar (`) = n, ti ∈ T(L)n, i = 1, . . . , n}
T(L) = S
n≥0 T(L)n
On peut voir les ´el´ements de T(L) comme des arbres finis ordonn´es dont les noeuds sont
´etiquet´es par des symboles dans L de fa¸con compatible avec leur arit´e. Maintenant, on peut
associer `a chaque symbole ` ∈ L une fonction `a ar (`) arguments sur T(L) qui est d´efinie par :
`(t1, . . . , tn) = (`, t1, . . . , tn) (8)
Supposons maintenant X ⊆ {` ∈ L | ar (`) = 0} et Σ ⊆ L avec X ∩ Σ = ∅. On peut d´efinir un
ensemble inductif Y = Ind(T(L), X, Σ) qui est compos´e d’arbres finis dans T(L) qui utilisent
uniquement les symboles dans X ∪Σ comme ´etiquettes. On dit que l’ensemble Y est librement
engendr´e `a partir de X et Σ.
Exemple 8.11 L’ensemble des formules du calcul propositionnel peut ˆetre vu comme librement
engendr´e `a partir d’un ensemble V de symboles de ‘variables’ d’arit´e 0 et de symboles
‘fonctionnels’ Σ = {¬,∧,∨} o`u ar (¬) = 1 et ar (∧) = ar (∨) = 2. En d’autres termes,
Form = Ind(T(L), V, Σ)
On peut donc formuler un principe d’induction pour les formules du calcul propositionnel qui
s’´enonce de la fa¸con suivante :
F ⊆ Form V ⊆ F (A, B ∈ F implique ¬A, A ∧ B, A ∨ B ∈ F)
F = Form
51et qui correspond `a l’intuition que Form est le plus petit ensemble tel que. . .
18
Exercice 8.12 On consid`ere l’ensemble de symboles fonctionnels
Σ = {, a, b}
o`u ar () = 0 et ar (a) = ar (b) = 1. Calculez l’ensemble librement engendr´e associ´e `a Σ. Cet
ensemble est-il isomorphe `a un ensemble d´ej`a consid´er´e dans le cours ?
8.4 Ensembles bien fond´es
Dans un ensemble inductif on peut d´efinir le rang d’un ´el´ement comme
rang(y) = min{n | y ∈ Fn
}
Ainsi on peut voir un ensemble inductif comme un ensemble stratifi´e (ou ordonn´e) en niveaux
0, 1, 2, . . . On peut imaginer des ensembles avec une structure d’ordre diff´erente. Par exemple,
consid´erons N∪ {∞} avec ∞ > n si n ∈ N. Clairement, le principe de r´ecurrence (7) n’est pas
valide dans cet ensemble car mˆeme si un ensemble Z contient 0 et est stable par successeur
il n’est pas forcement ´egal `a N ∪ {∞}. On va donc consid´erer un principe d’induction plus
g´en´eral qui s’applique aussi `a des structures comme N ∪ {∞}.
D´efinition 8.13 (ensemble bien fond´e) Un ensemble bien fond´e est un couple (W, >) o`u
(1) W est un ensemble, (2) >⊆ W × W est une relation transitive et (3) il n’existe pas de
s´equence infinie w0 > w1 > w2 > · · · dans W.
19
Exemple 8.14 L’ensemble des nombres naturels avec l’ordre usuel est bien fond´e. L’ensemble
des nombres entiers ou l’ensemble des nombres rationnels positifs ne le sont pas. L’ensemble
N ∪ {∞} est bien fond´e.
Exemple 8.15 L’ensemble des formules du calcul propositionnel ordonn´ees selon leur taille
est bien fond´e.
Exercice 8.16 Soient N l’ensemble des nombres naturels, Nk
le produit cart´esien N×· · ·×N
k fois et A =
S
{Nk
| k ≥ 1}. Soit < une relation binaire sur A telle que : (x1, . . . , xn) <
(y1, . . . , ym) ssi il existe k ≤ min(n, m) (x1 = y1, . . . , xk−1 = yk−1, xk < yk) Est-il vrai que <
est un ordre bien fond´e ? Donner soit une preuve soit un contre-exemple.
Si x ∈ W on d´enote par ↓ (x) l’ensemble {y | x > y} des ´el´ements strictement plus petits
que x.
D´efinition 8.17 (principe d’induction) Soit (W, >) un ordre bien fond´e et Z ⊆ W. Chaque
ordre bien fond´e admet le principe de raisonnement par induction suivant :
∀x(↓ (x) ⊆ Z → x ∈ Z)
Z = W
(9)
18Si on est p´edant on devrait ´ecrire (¬, A), (∧, A, B) et (∨, A, B).
19Il en suit que > est un ordre strict, c’est-`a-dire pour tout w ∈ W, w 6> w.
52Par exemple, consid´erons W = N∪ {∞}. Maintenant on ne peut pas appliquer le principe
`a Z = N car ↓ (∞) ⊆ N mais ∞ ∈/ N. Il est instructif d’expliciter le principe quand W est
l’ensemble des nombres naturels avec l’ordre standard >. Dans ce cas la condition ↓ (x) ⊆ Z
s’exprime aussi par : ∀ y < x y ∈ Z. Donc pour montrer que Z = N il suffit de montrer :
∀ x ∀ y < x y ∈ Z → x ∈ Z c’est-`a-dire : pour tout nombre x, il faut montrer que le fait
que les ´el´ements plus petits que x sont dans Z implique que x est dans Z aussi. On peut
reformuler cette condition par :
(indN)
0 ∈ Z ∀ x > 0 ((∀ y < x y ∈ Z) → x ∈ Z)
Z = N
La condition est alors tr`es proche du principe de r´ecurrence standard :
(recN)
0 ∈ Z ∀ x > 0 (x − 1 ∈ Z → x ∈ Z)
Z = N
En effet on peut montrer que les deux principes sont ´equivalents.
Le principe d’induction (9) et la notion de bonne fondation sont deux faces de la mˆeme
m´edaille.
Th´eor`eme 8.18 Soit (W, >) un ordre. (W, >) est bien fond´e si et seulement si le principe
d’induction (9) est valide.
Idee de la preuve ´ . (⇒) Supposons que le principe (9) ne soit pas valide. Donc il y a un
ensemble Z tel que ∀x(↓ (x) ⊆ Z → x ∈ Z) mais x0 ∈/ Z. Mais alors il doit exister x1 ∈↓ (x0)
tel que x1 ∈/ Z. Par le mˆeme argument on trouve x2 ∈↓ (x1) tel que x2 ∈/ Z. Donc on trouve
une s´equence infinie x0 > x1 > x2 > · · · dans W ce qui contredit l’hypoth`ese de bonne
fondation.
(⇐) Soit
Z = {x | il n’y a pas de suite descendante infinie `a partir de x}
L’ensemble Z satisfait la condition
∀x(↓ (x) ⊆ Z → x ∈ Z)
ainsi par le principe d’induction (9), Z = W et donc W est bien fond´e. •
539 M´ethodes de terminaison
Un probl`eme fondamental en informatique consiste `a d´emontrer la terminaison d’un programme
ou d’un syst`eme de r´eduction.
D´efinition 9.1 (syst`eme de r´eduction) Un syst`eme de r´eduction est un couple (A,→) o`u
A est un ensemble et →⊆ A × A.
Exemple 9.2 Un automate fini M = (Σ, Q, q0, F, δ) o`u δ : Σ × Q → 2
Q, d´efinit un syst`eme
de r´eduction sur l’ensemble des configurations (Σ∗ × Q×) par (w, q) → (w
0
, q0
) si w = aw0
et
q
0 ∈ δ(q, a).
Exemple 9.3 Le comportement d’un programme peut ˆetre d´efini par un syst`eme de r´eduction.
Par exemple, consid´erons un langage imp´eratif ´el´ementaire compos´e de :20
Variables v ::= x | y | · · ·
Expressions e ::= v | t | f | · · ·
Programmes P ::= skip | v := e | if e then P else P | while e do P | P; P
Une m´emoire µ est une fonction qui affecte `a chaque variable une valeur (dans notre cas,
true, false, . . .). Maintenant, le comportement d’un programme peut ˆetre d´efini par un syst`eme
de r´eduction sur les couples (P, µ). D’abord on d´efinit la valeur [[e]]µ d’une expression e dans
une m´emoire µ :
21
[[x]]µ = µ(x), [[t]]µ = true, [[f]]µ = false, · · ·
Ensuite, on donne des r`egles pour ´evaluer un couple (P, µ).
(x := e, µ) → (skip, µ[[[e]]µ/x])
(if e then P else Q, µ) → (Q, µ) si [[e]]µ = false
(if e then P else Q, µ) → (P, µ) si [[e]]µ = true
(while e do P, µ) → (skip, µ) si [[e]]µ = false
(while e do P, µ) → (P; (while e do P), µ) si [[e]]µ = true
(skip; P, µ) → (P, µ)
(P; Q, µ) → (P
0
; Q, µ0
) si (P, µ) → (P
0
, µ0
)
Remarque 9.4 La d´efinition de la relation → est aussi de nature inductive. Soit Prog l’ensemble
des programmes et Mem l’ensemble des m´emoires. La relation → est le plus petit
ensemble contenu dans (Prog × Mem)
2
qui contient les couples ((P, µ),(P
0
, µ0
)) qui satisfont
une des premi`ere 6 conditions (r`egles) et qui est stable par rapport `a une famille de fonctions
{fQ | Q ∈ Prog} d´efinie par fQ((P, µ),(P
0
, µ0
)) = ((P; Q, µ),(P
0
; Q, µ0
)).
D´efinition 9.5 (terminaison) Un syst`eme de r´e´ecriture (X, →) termine s’il n’existe pas de
suite infinie x0 → x1 → x2 → · · ·.
20On pr´esente ici la grammaire selon la notation BNF (Backus-Naur Form). Comme dans le cas des formules
du calcul propositionnel, on pourrait voir les programmes comme les ´el´ements d’un ensemble librement
engendr´e.
21On remarquera l’analogie avec l’interpr´etation d’une formule du calcul propositionnel par rapport `a une
affectation.
54Soit →+ la clˆoture transitive de la relation →, `a savoir :
→1=→ →n+1= (→) ◦ (→n
) →+=
[
n≥1
→n
Il y a une relation naturelle entre terminaison et ordres bien fond´es.
D´efinition 9.6 (plongement monotone) Soit (X, →) un syst`eme de r´e´ecriture et (W, >)
un ordre bien fond´e. X admet un plongement monotone dans W s’il existe une fonction
µ : X → W telle que x → y implique µ(x) > µ(y).
Th´eor`eme 9.7 Soit X = (X, →) un syst`eme de r´e´ecriture. Les assertions suivantes sont
´equivalentes :
(1) X termine.
(2) (X, →+) est bien fond´e.
(3) X admet un plongement monotone dans un ordre bien fond´e.
Idee de la preuve ´ . (1) ⇒ (2) Si (X, →+) n’est pas bien fond´e, on a une s´equence x0 →+
x1 →+ x2 →+ · · ·. Donc (X, →) ne termine pas.
(2) ⇒ (3) Il suffit de prendre comme ordre bien fond´e (X, →+) et comme plongement
l’identit´e.
(3) ⇒ (2) Si (X, →) ne termine pas on a une s´equence x0 → x1 → · · · ce qui induit une
s´equence µ(x0) > µ(x1) > · · · dans l’ordre bien fond´e. •
D´efinition 9.8 Soit (X, →) un syst`eme de r´e´ecriture.
(1) L’ensemble des successeurs imm´ediats d’un ´el´ement x ∈ X est d´efini par :
suc(x) = {y | x → y}
(2) L’ensemble des successeurs d’un ´el´ement x ∈ X est d´efini par :
suc+(x) = {y | x →+ y}
(3) On dit que le syst`eme est `a branchement fini si pour tout x ∈ X, suc(x) est fini.
Proposition 9.9 Soit X = (X, →) un syst`eme de r´e´ecriture `a branchement fini.
(1) Si X termine alors pour tout x, suc+(x) est fini.
(2) X termine si et seulement si il admet un plongement dans N.
Idee de la preuve ´ . (1) Si suc+(x0) est infini alors il existe x1 ∈ suc(x0) tel que suc+(x1)
est infini donc il existe x2 ∈ suc(x1) tel que suc+(x2) . . . On obtient ainsi une s´equence
x0 → x1 → x2 → · · · qui contredit l’hypoth`ese que le syst`eme termine.
(2) (⇐) Par le th´eor`eme 9.7. (⇒) On peut d´efinir µ(x) = ]suc+(x). Alternativement, on peut
d´efinir µ(x) comme la longueur de la plus longue s´equence de r´eduction qui commence avec
x. Dans les deux cas on v´erifie que si x → y alors µ(x) > µ(y). •
55Exercice 9.10 On consid`ere des programmes imp´eratifs while dont les variables prennent
comme valeurs des nombres naturels. Montrez que le programme suivant termine o`u l’on sait
que le test Φ termine et n’a pas d’effet de bord (c’est-`a-dire que l’´evaluation du test n’affecte
pas la valeur associ´ee aux variables) :
while u > l + 1 do
(r := (u + l) div 2;
if Φ then u := r else l := r)
9.1 Confluence, terminaison et forme normale
Soit (X, →) un syst`eme de r´e´ecriture. Soit ∗→ la clˆoture r´eflexive et transitive de →, `a
savoir ∗→=→+ ∪Id o`u Id est la relation identit´e.
D´efinition 9.11 On dit que le syst`eme est confluent si pour tout x ∈ X
x
∗→ y1 et x
∗→ y2 implique ∃ z (y1
∗→ z et y2
∗→ z) (10)
On dit que le syst`eme est localement confluent si pour tout x ∈ X
x → y1 et x → y2 implique ∃ z y1
∗→ z et y2
∗→ z
On dit que y est une forme normale de x si x
∗→ y et ¬∃ z y → z.
Proposition 9.12 (Newman) Soit X = (X, →) un syst`eme de r´e´ecriture.
(1) Si X est confluent alors il est localement confluent.
(2) Si X termine et est localement confluent alors il est confluent.
(3) Si X est confluent alors chaque ´el´ement a au plus une forme normale.
(4) Si X termine et est localement confluent alors chaque ´el´ement a exactement une forme
normale.
Idee de la preuve ´ . (1) Par d´efinition.
(2) On montre que tout ´el´ement x est confluent. Si x → x1
∗→ y1 et x → x2
∗→ y2, par
confluence locale x1
∗→ y et x2
∗→ y. Par hypoth`ese inductive x1 et x2 sont confluents et ceci
implique que x est confluent aussi.
(3) Si x
∗→ y1 et x
∗→ y2 et y1, y2 sont des formes normales alors y1 = y2 car autrement on
contredit la confluence.
(4) Par (2) si le syst`eme est localement confluent alors il est confluent et donc si x
∗→ x1, x2
et x1, x2 sont des formes normales alors x1 = x2. •
Exercice 9.13 Soit ({a, b, c, d},→) un syst`eme de r´e´ecriture o`u →= {(c, a),(c, d),(d, c),(d, b)}.
Dire si : le syst`eme termine, est localement confluent, est confluent.
569.2 Ordre lexicographique
Il y a des syst`emes de r´e´ecriture qui ne sont pas `a branchement fini et dont la terminaison
ne peut pas ˆetre d´emontr´ee par un plongement dans N.
Exemple 9.14 On consid`ere le syst`eme de r´e´ecriture (N × N,→) o`u
(i + 1, j) → (i, k) (i, j + 1) → (i, j) pour i, j, k ∈ N
Ce syst`eme n’est pas `a branchement fini `a cause de la premi`ere r`egle et il n’admet pas de
plongement monotone dans N. Si µ : N × N → N est monotone, on devrait avoir :
k = µ(1, 1) > µ(0, k) > µ(0, k − 1) > · · · > µ(0, 0)
mais on a seulement k nombres naturels sous k alors que la chaˆıne qu’on vient de construire
a longueur k + 1. Cependant, on peut montrer sa terminaison par plongement dans un ordre
lexicographique que nous allons construire dans la suite.
D´efinition 9.15 Soient (A, >A) et (B, >B) deux ordres stricts. L’ordre lexicographique >l
sur A × B est d´efini par :
(x, y) >l (x
0
, y0
) si x >A x
0
ou (x = x
0
et y >B y
0
)
Th´eor`eme 9.16 (1) L’ordre lexicographique de deux ordres stricts est encore un ordre strict.
(2) L’ordre lexicographique de deux ordres bien fond´es est encore bien fond´e.
Idee de la preuve ´ . (1) Il est imm´ediat que (x, y) 6>l (x, y). Supposons (x1, y1) >l (x2, y2)
et (x2, y2) >l (x3, y3).
• Si x1 > x2 alors x1 > x3 donc (x1, y1) >l (x3, y3).
• Si x1 = x2 alors y1 > y2. Si x2 > x3 alors (x1, y1) >l (x3, y3). Si par contre x2 = x3 alors
y2 > y3 et donc (x1, y1) >l (x3, y3).
(2) Par contradiction. Supposons (x0, y0) >l (x1, y1) >l
· · · Ceci implique x0 ≥ x1 ≥ · · ·
Comme A est bien fond´e il existe i tel que xj = xi pour j ≥ i. Mais ceci implique yi > yi+1 >
yi+2 > · · · ce qui est impossible si B est bien fond´e. •
Exercice 9.17 (1) Montrez que le syst`eme dans l’exemple 9.14 termine.
(2) Montrez que le syst`eme (N × N,→) o`u
(i, j + 1) → (i, j) et (i + 1, j) → (i, i)
termine.
(3) Trouvez (s’il existe) un plongement monotone du syst`eme pr´ec´edent dans (N, >).
(4) Utilisez le principe d’induction pour d´emontrer l’existence d’une fonction (r´ecursive)
a : N × N → N telle que :
a(0, n) = n + 1
a(m + 1, 0) = a(m, 1)
a(m + 1, n + 1) = a(m, a(m + 1, n))
57(5) Calculez `a l’aide d’un programme autant de valeurs a(n, n) que possible.
(6) On ´etend l’ordre lexicographique `a un produit A = A1 × · · · × An, n ≥ 3, d’ordres bien
fond´es (Ai
, >i) :
(x1, . . . , xn) > (y1, . . . , yn) si ∃ k ≤ n (x1 = y1, . . . , xk−1 = yk−1 et xk >k yk)
Montrez que (A, >) est bien fond´e.
Exercice 9.18 Soit A = {a, b, c}
∗
l’ensemble des mots finis sur l’alphabet {a, b, c}. Soit →
une relation binaire sur A∗
telle que :
w → w
0
ssi (w = w1aaw2 et w
0 = w1bcw2) ou
(w = w1bbw2 et w
0 = w1acw2) ou
(w = w1cccw2 et w
0 = w1acw2)
Donc w se r´eduit `a w
0
si w
0
est obtenu de w en rempla¸cant ou bien un sous-mot aa par bc,
ou bien un sous-mot bb par ac ou bien un sous-mot ccc par ac. Construisez un plongement
monotone dans un ordre bien fond´e qui montre la terminaison de ce syst`eme de r´eduction.
Suggestion : on peut commencer par remarquer que la derni`ere r`egle diminue le nombre de
caract`eres.
Exercice 9.19 Soit A = {0, 1}
∗
l’ensemble des mots finis sur l’alphabet {0, 1}. Si w est un
mot on d´enote par |w| sa longueur. Soit → une relation binaire sur A telle que :
w → w
0
ssi ∃ w1, w2 ∈ A (w = w101w2 et w
0 = w1100w2)
En d’autres termes, un pas de r´e´ecriture revient `a remplacer un sous-mot 01 par le mot 100.
1. Trouvez deux fonctions fi
: N → N, i = 0, 1 sur les nombres naturels N = {0, 1, 2, 3, . . .}
telles que :
A Si n > n0 alors fi(n) > fi(n
0
) pour i = 0, 1.
B Pour tout n, f1(f0(n)) > f0(f0(f1(n))).
2. On d´efinit une fonction µ : A → N par
µ() = 0, µ(wi) = fi(µ(w)) pour i = 0, 1
Montrez que µ est un plongement monotone du syst`eme de r´e´ecriture (A,→) dans l’ordre
bien fond´e (N, >).
Suggestion Montrez par r´ecurrence sur |w2| que µ(w101w2) > µ(w1100w2).
3. Supposons que : w0 → w1 → · · · → wn et |w0| = m. En d’autres termes, il y a n pas de
r´eduction `a partir d’un mot de longueur m.
(a) Utilisez le plongement monotone µ pour donner une borne sup´erieure `a n en fonction
de m.
(b) D´emontrez ou donnez un contre-exemple `a l’assertion suivante : n ≤ 2m3+4m+3.
58Exercice 9.20 (ordre produit) Soient (Ai
, >i) pour i = 1, . . . , n des ordres bien fond´es.
On d´efinit une relation > sur le produit cart´esien A1 × · · · × An par
(a1, . . . , an) > (a
0
1
, . . . , a0
n
) si ai ≥i a
0
i
, i = 1, . . . , n et ∃ i ∈ {1, . . . , n} ai >i a
0
i
(1) La relation > est-elle un ordre bien fond´e ?
(2) Comparez la relation > `a l’ordre lexicographique sur le produit d´efini dans l’exercice 9.17.
Exercice 9.21 Consid´erons les programmes while :
while m 6= n do
if m > n then m := m − n else n := n − m
while m 6= n do
if m > n then m := m − n
else h := m; m := n; n := h
Dire si les programmes terminent quand les variables varient sur les nombres naturels positifs.
Exercice 9.22 Soit A = {a, b}
∗
l’ensemble des mots finis sur l’alphabet {a, b}. Soit → une
relation binaire sur A telle que :
w → w
0
ssi w = w1abw2 et w
0 = w1bbaw2
Donc w se r´eduit `a w
0
si w
0
est obtenu de w en rempla¸cant un sous-mot ab avec bba.
Montrez ou invalidez les assertions suivantes (il est conseill´e de s’appuyer sur les r´esultats
d´emontr´es dans le cours) :
1. Le syst`eme de r´eduction (A,→) est `a branchement fini.
2. Le syst`eme termine.
3. Le syst`eme est localement confluent.
4. Le syst`eme est confluent.
9.3 Lemme de K¨onig
Soit N l’ensemble des nombres naturels et N∗
l’ensemble des mots finis de nombres naturels.
On va repr´esenter un arbre comme l’ensemble des chemins possibles dans l’arbre.
Formellement, on dit qu’un arbre D est un sous-ensemble de N∗ qui satisfait les conditions
suivantes :
(1) Si w ∈ D et w
0
est un pr´efixe de w (c’est-`a-dire ∃ w
00 w = w
0w
00) alors w
0 ∈ D.
(2) Si wi ∈ D et j < i alors wj ∈ D.
On peut ainsi repr´esenter des arbres infinis avec un nombre d´enombrable de noeuds et
mˆeme des arbres avec des noeuds qui ont un nombre d´enombrable de fils. On dit qu’un arbre
est `a branchement fini si chaque noeud a un nombre fini de fils.
Remarque 9.23 Parfois il est commode d’ajouter des symboles L sur les noeuds d’un arbre.
Dans ce cas on d´efinit un arbre ´etiquet´e comme une fonction partielle t : N∗ * L dont le
domaine de d´efinition est un arbre.
59Lemme 9.24 (K¨onig) Tout arbre `a branchement fini qui comporte un nombre infini de
noeuds admet un chemin infini.
Idee de la preuve ´ . On utilise le mˆeme argument mentionn´e dans la preuve de la proposition
9.9(1). Soit π = i1 · · ·ik ∈ D un chemin tel que le sous-arbre de racine π est infini. Comme D
est `a branchement fini il existe un ik+1 tel que πik+1 ∈ D et le sous-arbre de racine πik+1 est
infini. En continuant ainsi on peut construire un chemin infini dans D. •
9.4 Ordre sur les mots
On donne un premier exemple d’application du lemme de K¨onig. Soit (Σ, >) un ensemble
bien fond´e. Soit Σ∗
l’ensemble des mots finis sur Σ. On ´ecrit w w
0
si on peut obtenir w
0 de
w en rempla¸cant un caract`ere a ∈ Σ par un mot w
00 tel que tous les caract`eres dans w
00 sont
plus petits que a dans la relation >. Par exemple, si a > b > c alors on obtient aab abcbcb
en rempla¸cant le deuxi`eme caract`ere a par bcbc.
(1) On remarque que n’est pas transitive. Par exemple, aab()()bac mais aab 6 bac. Soit
donc + la clˆoture transitive de .
(2) Ajoutons `a l’alphabet Σ un caract`ere > qui domine tous les autres et un caract`ere ⊥ qui
est domin´e par tous les autres. Maintenant, toute suite
w0 w1 w2 · · ·
peut ˆetre r´e´ecrite comme
> w0 w1 w2 · · ·
en ajoutant > au d´ebut de la suite. Aussi, en supposant l’ordre alphab´etique sur Σ, la suite
bc defc defg dhifg difg
se r´e´ecrit en
> bc defc defg dhifg d⊥ifg .
Ainsi le caract`ere h qui est remplac´e par le mot vide dans la premi`ere suite est remplac´e par
⊥ dans la deuxi`eme.
(3) On remarquera que le d´eveloppement se repr´esente ais´ement par un arbre ´etiquet´e. En
effet on a ajout´e le caract`ere > pour commencer le calcul `a la racine d’un arbre et le caract`ere
⊥ pour couvrir le cas o`u un caract`ere est remplac´e par le mot vide.
A partir de cette repr´esentation il est facile de voir que l’ordre + est bien fond´e. Il suffit
de montrer que la relation n’admet pas de suite descendante infinie. Si une telle suite
existait, il serait possible de lui associer un arbre comme on vient de le voir. Or cet arbre
est `a branchement fini car un caract`ere est remplac´e par un nombre fini de caract`eres. Par
K¨onig, l’arbre en question doit comporter un chemin infini. Mais dans ce chemin on devrait
trouver une suite infinie de caract`eres a > b > c > · · · ce qui contredit l’hypoth`ese.
Exercice 9.25 Soit N∗
l’ensemble des mots finis sur les nombres naturels avec l’ordre habituel.
Montrez la terminaison du syst`eme :
u(i + 1)v → uiiv pour u, v ∈ N∗
609.5 Ordre sur les multi-ensembles
Un multi-ensemble est un ensemble dont les ´el´ements peuvent apparaˆıtre avec une certaine
multiplicit´e.
D´efinition 9.26 Un multi-ensemble M sur un ensemble A est une fonction M : A → N. Un
multi-ensemble est fini si {x | M(x) 6= 0} est fini.
On utilise la notation {| |} pour les multi-ensembles. Par exemple, {|a, b, a|} est le multiensemble
compos´e de deux occurrences de a et une de b. Certaines notations, op´erations et
relations disponibles sur les ensembles peuvent s’adapter aux multi-ensembles. Par exemple :
x ∈ M si M(x) > 0
M ⊆ N si ∀ x ∈ A M(x) ≤ N(x)
(M ∪ N)(x) = M(x) + N(x)
(M\N)(x) = M(x)
.
− N(x)
o`u n
.
− m = n − m si n − m ≥ 0 et 0 autrement. Si A est un ensemble on d´enote avec M(A)
l’ensemble des multi-ensembles finis sur A.
Remarque 9.27 Un multi-ensemble fini sur A peut ˆetre repr´esent´e par un mot fini sur A.
Cette repr´esentation est unique si l’on suppose que l’op´eration de concat´enation est commutative.
D´efinition 9.28 Soient (A, >) un ordre strict et M, N ∈ M(A). On ´ecrit : M >M(A) N s’ils
existent X, Y ∈ M(A) tels que X 6= ∅, X ⊆ M, N = (M\X) ∪ Y et ∀ y ∈ Y ∃ x ∈ X x > y.
Par exemple, si A = N avec l’ordre usuel alors {|5, 3, 1, 1|} >M(N) {|4, 3, 3, 1|}. Pour v´erifier
l’in´egalit´e on peut choisir X = {|5, 1|} et Y = {|4, 3|} mais on peut aussi choisir X = {|5, 3, 3, 1|}
et Y = {|4, 3, 3, 1|}.
Proposition 9.29 Si > est un ordre strict sur A alors >M(A) est un ordre strict sur M(A).
Idee de la preuve ´ . Il faut v´erifier X 6>M(A) X et que >M(A) est transitif. La deuxi`eme
propri´et´e demande un peu de travail. Supposons que :
X ∪ {|x1, . . . , xm|} >M(A) X ∪ {|y1, . . . , yn|} = X0 ∪ {|w1, . . . , wp|} >M(A) X0 ∪ {|z1, . . . zq|}
On peut d´ecomposer X en X1 ∪ X2 et {|y1, . . . , yn|} en Y1 ∪ Y2 pour que X0 = X1 ∪ Y1 et
{|w1, . . . , wp|} = X2 ∪ Y2. Donc on obtient
X1 ∪ X2 ∪ {|x1, . . . , xm|} >M(A) X1 ∪ X2 ∪ Y1 ∪ Y2 >M(A) X1 ∪ Y1 ∪ {|z1, . . . , zq|}
Maintenant il suffit de v´erifier que chaque ´el´ement dans Y1 ∪ {|z1, . . . , zq|} est domin´e par un
´el´ement dans X2 ∪ {|x1, . . . , xm|}. •
Exercice 9.30 On ´ecrit X >1 Y si Y est obtenu de X en rempla¸cant un ´el´ement de X par
un multi-ensemble d’´el´ements strictement plus petits. Montrez que : (1) la relation >1 n’est
pas transitive (mˆeme si > est total) et (2) la clˆoture transitive de >1 est ´egale `a >M(A)
.
61Proposition 9.31 L’ordre (A, >) est bien fond´e si et seulement si l’ordre (M(A), >M(A)
)
est bien fond´e.
Idee de la preuve ´ . (⇐) Si a0 > a1 > · · · est une suite d´ecroissante dans A alors
{|a0|} >M(A) {|a1|} >M(A)
. . . en est une dans M(A).
(⇒) Il suffit de montrer que >1 est bien fond´e. L’argument est similaire `a celui utilis´e pour
l’ordre sur les mots et il fait aussi appel au lemme de K¨onig. •
Exercice 9.32 Soit N∗
les mots finis de nombres naturels. Montrez la terminaison du syst`eme :
u(i + 1)v → iviui pour u, v ∈ N∗
62A TD : Calcul propositionnel 1 (m´ethode de Davis Putnam)
La m´ethode de Davis Putnam permet de d´ecider si une formule en forme normale conjonctive
est satisfiable. On repr´esente une formule A en CNF comme un ensemble (´eventuellement
vide) de clauses {C1, . . . , Cn} et une clause C comme un ensemble (´eventuellement vide) de
litt´eraux. Dans cette repr´esentation, on d´efinit la substitution [b/x]A d’une valeur bool´eenne
b ∈ {0, 1} dans A comme suit :
[b/x]A = {[b/x]C | C ∈ A et [b/x]C 6= 1}
[b/x]C =
1 si (b = 1 et x ∈ C) ou (b = 0 et ¬x ∈ C)
C\{`} si (b = 1 et ` = ¬x ∈ C) ou (b = 0 et ` = x ∈ C)
C autrement
On d´efinit une fonction DP qui agit r´ecursivement sur une formule A en CNF dans la
repr´esentation d´ecrite ci-dessus :
function DP(A) = case
(1) A = ∅ : true
(2) ∅ ∈ A false
(3) {x,¬x} ⊆ C ∈ A : DP(A\{C})
(4) {x} ∈ A : DP([1/x]A)
(5) {¬x} ∈ A : DP([0/x]A)
(6) else : choisir x dans A;
DP([0/x]A) or DP([1/x]A)
Dans (1), nous avons une conjonction du vide qui par convention est ´equivalente `a true. Dans
(2), A contient une clause vide. La disjonction du vide ´etant ´equivalente `a false, la formule A
est aussi ´equivalente `a false. Dans (3), une clause contient un litt´eral et sa n´egation et elle est
donc ´equivalente `a true. Dans (4) et (5), A contient une clause qui est constitu´ee uniquement
d’une variable ou de sa n´egation. Ceci permet de connaˆıtre la valeur de la variable dans toute
affectation susceptible de satisfaire la formule. Dans (6), nous consid´erons les deux valeurs
possibles d’une affectation d’une variable.
Exercice A.1 Appliquez DP aux formules {{x,¬y}, {¬x, y}} et {{x, y}, {¬x, y}, {x,¬y}, {¬x,¬y}}.
Exercice A.2 (1) Montrez que si A est une fonction en CNF alors la fonction DP termine.
(2) Montrez que DP(A) retourne true (false) si et seulement si A est satisfiable (ne l’est pas).
Exercice A.3 Fait : toute formule peut ˆetre transform´ee en CNF. Expliquez comment utiliser
la m´ethode de Davis-Putnam pour d´ecider la validit´e d’une formule.
Exercice A.4 Modifiez la fonction DP pour que, si la formule A est satisfiable, elle retourne
une affectation v qui satisfait A.
Exercice∗ A.5 R´efl´echissez aux structures de donn´ees et aux op´erations n´ecessaires `a la
mise en oeuvre de l’algorithme en Java.
63B TD : Calcul Propositionnel 2 (´equivalence et d´efinissabilit´e)
Exercice B.1 Montrez les ´equivalences logiques :
(A ∨ 0) ≡ A, (A ∨ 1) ≡ 1, (A ∨ B) ≡ (B ∨ A),
((A ∨ B) ∨ C) ≡ (A ∨ (B ∨ C)), (A ∨ A) ≡ A
(A ∧ 0) ≡ 0, (A ∧ 1) ≡ A, (A ∧ B) ≡ (B ∧ A),
((A ∧ B) ∧ C) ≡ (A ∧ (B ∧ C)), (A ∧ A) ≡ A,
(A ∧ B) ∨ C ≡ (A ∨ C) ∧ (B ∨ C), (A ∨ B) ∧ C ≡ (A ∧ C) ∨ (B ∧ C),
¬¬A ≡ A, ¬(A ∨ B) ≡ ((¬A) ∧ (¬B)), ¬(A ∧ B) ≡ ((¬A) ∨ (¬B)) .
Exercice B.2 (1) Montrez l’´equivalence logique :
(A ∧ B) ∨ (¬A ∧ B) ≡ B (11)
(2) On peut appliquer cette ´equivalence logique pour simplifier une forme normale disjonctive.
Par exemple, consid´erez la fonction f(x, y, z) d´efinie par le tableau de v´erit´e :
x\yz 00 01 11 10
0 0 1 1 0
1 1 1 1 1
Calculez la forme normale disjonctive de f et essayez de la simplifier en utilisant l’´equivalence
logique (11).
(3) La pr´esentation du tableau de v´erit´e n’est pas arbitraire. . . Proposez une m´ethode graphique
pour calculer une forme normale disjonctive simplifi´ee.
Exercice B.3 Soit f une fonction sur les nombres naturels. Dire qu’un probl`eme est d´ecid´e
en O(f), signifie qu’on dispose d’un algorithme A et de n0, k nombres naturels tels que pour
toute entr´ee dont la taille n est sup´erieure `a n0, le temps de calcul de A sur l’entr´ee en
question est inf´erieure `a k · f(n).
(1) Montrez que la satisfaction d’une formule en DNF et la validit´e d’une formule en CNF
peuvent ˆetre d´ecid´ees en O(n).
(2) Soit pair (x1, . . . , xn) = (Σi=1,...,nxi) mod 2 la fonction qui calcule la parit´e d’un vecteur de
bits. Montrez que la repr´esentation en DNF ou CNF de cette fonction est en O(2n
). Peut-on
appliquer l’´equivalence logique (11) pour simplifier la repr´esentation ?
Exercice B.4 (if-then-else) La fonction ternaire ITE est d´efinie par ITE(1, x, y) = x et
ITE(0, x, y) = y. Montrez que toute fonction f : 2
n → 2, n ≥ 0 s’exprime par composition de
la fonction ITE et des (fonctions) constantes 0 et 1.
Exercice B.5 L’or exclusif ⊕ (xor) est d´efini par A ⊕ B ≡ (A ∧ ¬B) ∨ (¬A ∧ B). Montrez
que :
(1) ⊕ est associatif et commutatif.
(2) x ⊕ 0 ≡ x et x ⊕ x ≡ 0.
(3) Toute fonction bool´eenne f : 2
n → 2 peut ˆetre repr´esent´ee `a partir de 1, ∧ et ⊕.
64Exercice B.6 (nand,nor) Les fonctions binaires NAND et NOR sont d´efinies par NAND(x, y) =
NOT(AND(x, y)) et NOR(x, y) = NOT(OR(x, y)). Montrez que toute fonction f : 2
n → 2,
n ≥ 0, s’exprime comme composition de la fonction NAND (ou de la fonction NOR). Montrez
que les 4 fonctions unaires possibles n’ont pas cette propri´et´e et que que parmi les 16 fonctions
binaires possibles il n’y en a pas d’autres qui ont cette propri´et´e.
65C TD : Calcul Propositionnel 3 (clauses de Horn et circuits
combinatoires)
Exercice C.1 Une clause de (Alfred) Horn est une clause (c’est-`a-dire une disjonction de
litt´eraux) qui contient au plus un litt´eral positif. Une formule de Horn est une formule en
CNF dont les clauses sont des clauses de Horn.
(1) Montrez que toute formule de Horn est ´equivalente `a la conjonction (´eventuellement vide)
de clauses de Horn de la forme :
(1) x
(2) ¬x1 ∨ · · · ∨ ¬xn
(3) ¬x1 ∨ · · · ∨ ¬xn ∨ xn+1
o`u n ≥ 1 et xi 6= xj si i 6= j. Dans ce cas on dit que la formule de Horn est r´eduite.
(2) Montrez qu’une formule de Horn r´eduite qui ne contient pas de clauses de la forme (1)
ou qui ne contient pas de clauses de la forme (2) est satisfiable.
(3) Donnez une m´ethode efficace (temps polynomial) pour d´eterminer si une formule de Horn
est satisfiable.
Exercice C.2 Un d´ecodeur est un circuit avec n entr´ees xn−1, . . . , x0 et 2
n
sorties y2n−1, . . . , y0
tel que
yi = 1 ssi i = (xn−1 · · · x0)2
R´ealisez un tel circuit.
Exercice C.3 Un additionneur est un circuit bool´een avec 2n entr´ees xn−1, yn−1, . . . , x0, y0
et n + 1 sorties rn, sn−1, . . . , s0 tel que
(xn−1 · · · x0)2 + (yn−1 · · · y0)2 = (rnsn−1 · · · s0)2
On peut r´ealiser un additionneur en utilisant l’algorithme standard qui propage la retenue de
droite `a gauche.
(1) R´ealisez un circuit A avec 3 entr´ees x, y, r et deux sorties s, r0
tel que
(r
0
s)2 = (x)2 + (y)2 + (r)2
(2) Expliquez comment inter-connecter n circuits A pour obtenir un additionneur sur n bits.
(3) Montrez que dans le circuit en question le nombre de portes et la longueur du chemin le
plus long sont proportionnels `a n.
Exercice∗ C.4 Le but de cet exercice est de r´ealiser un additionneur dont le nombre de portes
est encore polynomiale en n mais dont la longueur du chemin le plus long est proportionnelle
`a lg(n). Pour ´eviter que la retenue se propage `a travers tout le circuit, l’id´ee est d’anticiper sa
valeur. Ainsi pour additionner 2 vecteurs de longueur n, on additionne les premiers n/2 bits
(ceux de poids faible) et en mˆeme temps on additionne les derniers n/2 bits (ceux de poids
fort) deux fois (en parall`ele) une fois avec retenue initiale 0 et une fois avec retenue initiale
1. On applique cette m´ethode r´ecursivement sur les sous-vecteurs de longueur n/4, n/8, . . .
selon le principe diviser pour r´egner.
(1) Construisez explicitement un tel circuit pour n = 4.
(2) D´eterminez en fonction de n le nombre de portes et la longueur du chemin le plus long
du circuit obtenu.
66D TD : Syst`eme de preuve de Gentzen et compacit´e
Rappel : voici le syst`eme de preuve de Gentzen.
(Ax )
A, Γ ` A, ∆
(∧ `)
A, B, Γ ` ∆
A ∧ B, Γ ` ∆
(` ∧)
Γ ` A, ∆ Γ ` B, ∆
Γ ` A ∧ B, ∆
(∨ `)
A, Γ ` ∆ B, Γ ` ∆
A ∨ B, Γ ` ∆
(` ∨)
Γ ` A, B, ∆
Γ ` A ∨ B, ∆
(¬ `)
Γ ` A, ∆
¬A, Γ ` ∆
(` ¬)
A, Γ ` ∆
Γ ` ¬A, ∆
Exercice D.1 Montrez que :
(1) Un s´equent A, Γ ` A, ∆ est valide.
(2) Pour chaque r`egle d’inf´erence la conclusion est valide si et seulement si les hypoth`eses
sont valides.
Exercice D.2 (sous-formule) Montrez que si un s´equent est d´erivable alors il y a une
preuve du s´equent qui contient seulement des sous formules de formules dans le s´equent.
Exercice∗ D.3 (affaiblissement) Montrez que si le s´equent Γ ` ∆ est d´erivable alors le
s´equent Γ ` A, ∆ l’est aussi.
Exercice D.4 (implication) Dans le syst`eme de Gentzen on peut donner un traitement
direct de l’implication :
(→`)
Γ ` A, ∆ B, Γ ` ∆
A → B, Γ ` ∆
(`→)
Γ, A ` B, ∆
Γ ` A → B, ∆
D´emontrez la correction et compl´etude du syst`eme de Gentzen ´etendu avec ces r`egles.
Exercice D.5 Montrez que les r`egles pour la disjonction et l’implication sont d´erivables des
r`egles pour la conjonction et la n´egation en utilisant les ´equivalences : A ∨ B ≡ ¬(¬A ∧ ¬B)
et A → B ≡ ¬A ∨ B.
Exercice D.6 (coupure) La r`egle de coupure (ou cut) est :
(coupure)
A, Γ ` ∆ Γ ` A, ∆
Γ ` ∆
Montrez que le syst`eme de Gentzen ´etendu avec cette r`egle est toujours correct (et complet).
Exercice D.7 Soit T un ensemble de formules. On ´ecrit T |= A si pour toute affectation v,
si v satisfait T alors v satisfait A. Montrez que si T |= A alors il existe T0 sous-ensemble fini
de T tel que T0 |= A. Suggestion : utilisez le th´eor`eme de compacit´e.
67E TD : R´esolution
Exercice E.1 Montrez que la r`egle d’inf´erence suivante est valide :
A ∨ ¬C B ∨ C
A ∨ B
(12)
Exercice E.2 Pour repr´esenter les formules en CNF on adopte la mˆeme notation ensembliste
utilis´ee pour d´ecrire la m´ethode de Davis-Putnam.
– Une clause C est un ensemble de litt´eraux.
– Une formule A est un ensemble de clauses.
Nous consid´erons la r`egle :
A ∪ {C ∪ {x}} ∪ {C
0 ∪ {¬x}} x /∈ C ¬x /∈ C
0
A ∪ {C ∪ {x}} ∪ {C
0 ∪ {¬x}} ∪ {C ∪ C
0}
(13)
Dans la suite on appelle (13) r`egle de r´esolution.
22 L’effet de l’application de la r`egle consiste
`a ajouter une nouvelle clause C ∪ C
0
qu’on appelle r´esolvant des deux clauses C ∪ {x} et
C
0 ∪ {¬x}.
(1) Montrez que l’hypoth`ese est logiquement ´equivalente `a la conclusion.
(2) Conclure que si la conclusion n’est pas satisfiable alors l’hypoth`ese n’est pas satisfiable.
En particulier, si la conclusion contient la clause vide alors l’hypoth`ese n’est pas satisfiable.
Fait Si une formule A en CNF n’est pas satisfiable alors la r`egle de r´esolution permet de
d´eriver une formule A0 avec une clause vide. On dit que la r`egle de r´esolution est compl`ete
pour la r´efutation, c’est-`a-dire pour la d´erivation de la clause vide. La m´ethode peut ˆetre
impl´ement´ee it´erativement. A chaque it´eration on ajoute toutes les clauses qui sont un
r´esolvant de deux clauses. Cette it´eration termine forcement car le nombre de clauses qu’on
peut construire est fini. Parfois, il convient de repr´esenter la d´erivation comme un graphe
dirig´e acyclique (ou DAG pour directed acyclic graph) dont les noeuds sont ´etiquet´es par les
clauses. Initialement on a autant de noeuds que de clauses et pas d’arˆetes. Chaque fois qu’on
applique la r`egle de r´esolution (13) on introduit un nouveau noeud qui est ´etiquet´e avec la
clause r´esolvant C ∪ C
0
et deux nouvelles arˆetes qui vont des noeuds ´etiquet´es avec les clauses
C ∪ {x} et C
0 ∪ {¬x} vers le noeud ´etiquet´e avec la clause C ∪ C
0
.
Exercice E.3 Soit A une formule en CNF et C une clause. Expliquez comment utiliser la
m´ethode de r´esolution pour ´etablir si l’implication A → C est valide.
Exercice E.4 Construire la formule A en CNF qui correspond au principe du nid de pigeon
avec 2 pigeons et 1 nid. Appliquez la r`egle de r´esolution. Mˆeme probl`eme avec 2 pigeons et 2
nids.
Exercice E.5 Soit A une formule en CNF avec m variables et n clauses. Montrez qu’il y a
au plus m · (n · (n − 1)/2) fa¸cons d’appliquer la r`egle de r´esolution.
Exercice E.6 Un exercice de r´evision. On consid`ere les formules en CNF suivantes :
22Sans les conditions x /∈ C et ¬x /∈ C
0
on pourrait par exemple ‘simplifier’ les clauses {x} et {¬x} en
{x,¬x}.
681. ¬x ∨ (¬y ∨ x)
2. (x ∨ y ∨ ¬z) ∧ (x ∨ y ∨ z) ∧ (x ∨ ¬y) ∧ ¬x.
3. (x ∨ y) ∧ (z ∨ w) ∧ (¬x ∨ ¬z) ∧ (¬y ∨ ¬w).
Pour chaque formule :
1. Si la formule est valide calculez une preuve de la formule dans le syst`eme de Gentzen.
2. Si la formule est satisfiable mais pas valide calculez une affectation qui satisfait la formule
en utilisant la m´ethode de Davis-Putnam.
3. Si la formule n’est pas satisfiable d´erivez la clause vide en utilisant la m´ethode par
r´esolution.
69F TD : Langages formels et automates finis
Exercice F.1 Montrez que pour tout langage L, L
∗ = (L
∗
)
∗
.
Exercice F.2 Montrez qu’il existe des langages L1 et L2 tels que (L1 ∪ L2)
∗ 6= L
∗
1 ∪ L
∗
2
.
Exercice F.3 Montrez qu’il existe des langages L1 et L2 tels que (L1 · L2)
∗ 6= L
∗
1
· L
∗
2
.
Exercice F.4 Pour chacun des langages suivants, construire un automate fini non d´eterministe
qui l’accepte :
1. Les repr´esentations binaires des nombres pairs.
2. Le langage des mots sur l’alphabet {a, b} contenant ou bien la chaˆıne aab ou bien la
chaˆıne aaab.
3. Le langage des mots sur l’alphabet {0, 1} dont le troisi`eme caract`ere de droite existe et
est ´egale `a 1.
Construire des automates d´eterministes pour les langages d´ecrits ci-dessus.
Exercice∗ F.5 Soient M un AFD qui accepte un langage L et N1, N2 deux AFN qui acceptent
les langages L1, L2, respectivement (sur un alphabet Σ fix´e).
1. Montrez qu’on peut construire un AFD qui accepte le langage compl´ementaire Σ
∗\L.
2. Montrez qu’on peut construire un AFN qui accepte le langage L1 ∪L2 et le langage it´er´e
(L1)
∗
.
3. Conclure que la classe des langages accept´es par un AFD est stable par union, intersection,
compl´ementaire et it´eration.
70G TD : Calculabilit´e 1 (machines de Turing et ´enum´erations)
Exercice G.1 Donnez la description formelle d’une MdT qui d´ecide le langage {w]w | w ∈
{0, 1}
∗}.
Exercice G.2 Donnez la description formelle d’une MdT qui d´ecide le langage des mots sur
l’alphabet {0} dont la longueur est une puissance de 2 : 2
0
, 2
1
, 2
2
, . . .
Exercice G.3 D´ecrivez informellement une MdT qui d´ecide le langage :
{a
i
b
j
c
k
| i · j = k et i, j, k ≥ 1} .
Exercice G.4 Soit Σ = {0, 1} et suc : Σ∗ → Σ
∗
la fonction ‘successeur’ en base 2 telle que :
(suc(w))2 = (w)2 + 1
Montrez que suc est r´ecursive.
Exercice G.5 On peut ´enum´erer les couples de nombres naturels en proc´edant ‘par diagonales’
:
(0, 0), (1, 0),(0, 1), (2, 0),(1, 1),(0, 2), (3, 0). . .
Montrez que la fonction hm, ni = (m + n)(m + n + 1)/2 + n est une bijection entre N × N et
N. D´ecrire un algorithme pour calculer la fonction inverse.
Exercice G.6 On d´efinit les fonctions h ik : Nk → N pour k ≥ 2 :
hm, ni2 = hm, ni
hn1, . . . , nkik = hhn1, . . . , nk−1ik−1, nki si k ≥ 3
Montrez que les fonctions h ik sont des bijections.
71H TD : Calculabilit´e 2 (´enum´erations et ind´ecidabilit´e)
Exercice H.1 On consid`ere l’ensemble N∗ des mots finis de nombres naturels. Notez que
N∗
est en correspondance bijective avec S
k≥0 Nk
. D´efinissez une bijection entre N∗
et N.
Exercice H.2 Soit Σ = {a, b, . . . , z} un alphabet fini. On peut ´enum´erer les ´el´ements de Σ
∗
comme suit :
, a, b, . . . , z, aa, . . . , az, ba, . . . , bz, za, . . . , zz, aaa, . . .
Si Σ contient k ´el´ements on aura k
0 mots de longueur 0, k mots de longueur 1, k
2 mots de
longueur 2, . . . D´efinissez une bijection entre Σ
∗
et N.
Exercice∗ H.3 (1) Montrez qu’un langage est semi-d´ecidable si et seulement si il est le
domaine de d´efinition d’une fonction partielle r´ecursive.
(2) On dit qu’un langage L ⊆ Σ
∗
est r´ecursivement ´enum´erable s’il est l’image d’une fonction
partielle r´ecursive. Montrez qu’un langage L est r´ecursivement ´enum´erable si et seulement si
il est semi-d´ecidable.
Suggestion : Soit M une MdT et w0, w1, w2, . . . une suite d’entr´ees. On peut simuler M
sur w0 pour 0 pas, sur w0 pour 1 pas, sur w1 pour 0 pas, sur w0 pour 2 pas, sur w1 pour 1
pas, sur w2 pour 0 pas,. . .
Exercice∗ H.4 (1) Montrez que les langages accept´es par un AFN sont d´ecidables.
(2) Montrez que la collection des langages d´ecidables est stable par rapport aux op´erations
d’union, compl´ementaire, concat´enation et it´eration.
(3) Montrez que la collection des langages semi-d´ecidables est stable par rapport aux op´erations
d’union et concat´enation.
Suggestion : utilisez le non-d´eterminisme.
Exercice H.5 Montrez ou invalidez les assertions suivantes :
1. Il y a une MdT qui accepte les mots sur l’alphabet {0, 1} qui contiennent autant de 0
que de 1 (si la MdT existe, il suffira d’en donner une description informelle).
2. Rappel : si A et B sont deux langages, on ´ecrit A ≤ B s’il existe une r´eduction de A `a
B.
Si A est semi-d´ecidable et A ≤ Ac alors A est d´ecidable.
3. L’ensemble des (codages de) MdT qui reconnaissent un langage fini est d´ecidable.
Exercice H.6 Montrez ou donnez un contre-exemple aux assertions suivantes :
1. L’ensemble des (codages de) MdT qui terminent sur le mot vide est d´ecidable.
2. L’ensemble des (codages de) MdT qui divergent sur le mot vide est semi-d´ecidable.
3. L’ensemble des (codages de) MdT qui terminent sur le mot vide en 10100 pas de calcul
est d´ecidable.
72I TD : Complexit´e (r´eductions polynomiales)
Exercice I.1 Un graphe (non-dirig´e) G est compos´e d’un ensemble fini non-vide de noeuds
N et d’un ensemble A d’arˆetes qui connectent les noeuds. Formellement, une arˆete est un
ensemble {i, j} de noeuds de cardinalit´e 2. On dit que deux noeuds sont adjacents s’il y a une
arˆete qui les connecte.
Probl`eme du coloriage Etant donn´e un graphe ´ G = (N, A) et un nombre naturel k ≥ 2
on d´etermine s’il existe une fonction c : N → {1, . . . , k} telle que si i, j sont deux noeuds
adjacents alors c(i) 6= c(j).
23
Probl`eme de l’emploi du temps Etant donn´e (i) un ensemble d’´etudiants ´ E = {1, . . . , n}
(n ≥ 2), (ii) un ensemble de cours C = {1, . . . , m} (m ≥ 2), (iii) un ensemble de plages
horaires P = {1, . . . , p} (p ≥ 2) et (iv) une relations binaire R telle que (i, j) ∈ R si et
seulement si l’´etudiant i suit le cours j on d´etermine s’il existe une fonction emploi du temps
edt : C → P telle que si un ´etudiant suit deux cours diff´erents j 6= j
0 alors edt(j) 6= edt(j
0
).
D´emontrez ou donnez un contre-exemple aux assertions suivantes :
1. Le probl`eme de l’emploi du temps se r´eduit au probl`eme du coloriage.
2. Le probl`eme de l’emploi du temps se r´eduit en temps polynomial au probl`eme du coloriage.
3. Le probl`eme du coloriage est dans NP.
Exercice I.2 Soit G un graphe non-dirig´e (cf. exercice I.1). Un k-clique est un ensemble de
k noeuds de G qui ont la propri´et´e que chaque couple de noeuds est connect´ee par une arˆete.
Le langage CLIQUE est compos´e de couples hG, ki o`u (i) G est le codage d’un graphe, (ii)
k est un nombre naturel et (iii) G contient comme sous-graphe un k-clique.
Le langage 3-SAT est compos´e de formules en forme normale conjonctive o`u chaque clause
contient 3 litt´eraux.
1. Montrez que le langage CLIQUE est dans NP.
2. On souhaite construire une r´eduction polynomiale de 3-SAT `a CLIQUE. Si la formule
A contient k clauses alors le graphe associ´e GA contient k groupes de noeuds o`u chaque
groupe est compos´e de 3 noeuds et chaque noeud est ´etiquet´e par un litt´eral. Par exemple,
si la clause est (x ∨ ¬y ∨ z) alors on aura un groupe de 3 noeuds ´etiquet´es avec x, ¬y et
z.
(a) D´ecrivez les arˆetes de GA de fa¸con `a ce que le graphe GA contienne une k-clique
si et seulement si la formule A est satisfiable et dessinez le graphe GA dans le cas
o`u
A = (x ∨ y) ∧ (¬x ∨ ¬y) ∧ (¬x ∨ y) ∧ (x ∨ ¬y)
(la formule en question comporte seulement deux litt´eraux par clause mais la
construction du graphe GA s’applique aussi bien `a ce cas).
(b) Quelle conclusion peut-on tirer de la construction pr´ec´edente ? Motivez votre r´eponse :
23On peut voir les valeurs {1, . . . , k} comme des couleurs qu’on affecte aux noeuds, d’o`u le nom du probl`eme.
73i. Si 3-SAT est un probl`eme polynomiale d´eterministe alors CLIQUE est un
probl`eme polynomiale d´eterministe.
ii. CLIQUE est un probl`eme NP-complet.
Exercice I.3 Soit A une matrice et b un vecteur `a coefficients dans Z. Le probl`eme de programmation
lin´eaire enti`ere (ILP pour integer linear programming) consiste `a d´eterminer s’il
existe un vecteur ~x `a coefficients dans Nm tel que A~x = ~b.
24 Ce probl`eme est dans NP. On
utilise des notions d’alg`ebre lin´eaire pour montrer que si le probl`eme a une solution alors il en
a une dont la taille est polynomiale dans la taille de la matrice A. Ensuite on peut appliquer
la m´ethode standard qui consiste `a deviner un vecteur ~x et `a v´erifier qu’il est une solution.
A partir de ce fait, le but de l’exercice est de montrer que le probl`eme est NP-complet par
r´eduction du probl`eme SAT. Il peut ˆetre utile de consid´erer d’abord les probl`emes suivants.
– Montrez qu’en introduisant des variables auxiliaires on peut exprimer la satisfaction
d’une contrainte d’in´egalit´e comme un probl`eme d’ILP.
– Montrez qu’on peut exprimer la contrainte x ∈ {0, 1}.
– Montrez qu’on peut exprimer la contrainte x = y o`u x, y ∈ {0, 1}, 0 = 1 et 1 = 0.
– Montrez comment coder la validit´e d’une clause (disjonction de litt´eraux).
24Comme pour le probl`eme du voyageur de commerce, le probl`eme ILP est souvent formul´e comme un
probl`eme d’optimisation. Par exemple, il s’agit de minimiser une fonction lin´eaire ~cT
~x sous les contraintes
A~x = ~b et ~x ≥ 0.
74J TD : Preuves par induction
Exercice J.1 (transitivit´e) Soit R une relation binaire sur un ensemble. Sa clˆoture r´eflexive
et transitive R∗
est la plus petite relation qui contient la relation identit´e, la relation R et telle
que si (x, y),(y, z) ∈ R∗ alors (x, z) ∈ R∗
. Montrez que R∗ peut ˆetre vu comme un ensemble
d´efini inductivement.
Exercice J.2 Un graphe non-dirig´e G est compos´e d’un ensemble fini non-vide de noeuds
N et d’un ensemble A d’arˆetes qui connectent les noeuds. Formellement, une arˆete est un
ensemble {i, j} de noeuds de cardinalit´e 2. Le degr´e d’un noeud i dans un graphe est le
nombre d’arˆetes qui le contiennent. Par exemple, un noeud isol´e a degr´e 0. D´emontrez en
utilisant le principe de r´ecurrence l’assertion suivante :
Chaque graphe avec au moins 2 noeuds contient 2 noeuds avec le mˆeme degr´e.
Exercice J.3 Soit (N∪ {∞}, ≤) l’ensemble des nombres naturels avec un ´el´ement maximum
∞, 0 < 1 < 2 < . . . < ∞. Montrez que toute fonction monotone f sur cet ordre admet un
point fixe, c’est-`a-dire un ´el´ement x tel que f(x) = x.
Exercice J.4 On consid`ere l’ensemble de symboles fonctionnels
Σ = {, a, b}
o`u ar () = 0 et ar (a) = ar (b) = 1. Calculez l’ensemble librement engendr´e associ´e `a Σ. Cet
ensemble est-il isomorphe `a un ensemble d´ej`a consid´er´e dans le cours ?
Exercice J.5 Soient N l’ensemble des nombres naturels, Nk
le produit cart´esien N×· · ·×N
k fois et A =
S
{Nk
| k ≥ 1}. Soit < une relation binaire sur A telle que : (x1, . . . , xn) <
(y1, . . . , ym) ssi il existe k ≤ min(n, m) (x1 = y1, . . . , xk−1 = yk−1, xk < yk) Est-il vrai que <
est un ordre bien fond´e ? Donner soit une preuve soit un contre-exemple.
75K TD : Terminaison 1
Exercice K.1 On consid`ere des programmes imp´eratifs while dont les variables prennent
comme valeurs des nombres naturels. Montrez que le programme suivant termine o`u l’on sait
que le test Φ termine et n’a pas d’effet de bord (c’est-`a-dire que l’´evaluation du test n’affecte
pas la valeur associ´ee aux variables) :
while u > l + 1 do
(r := (u + l) div 2;
if Φ then u := r else l := r)
Exercice K.2 Soit ({a, b, c, d},→) un syst`eme de r´e´ecriture o`u →= {(c, a),(c, d),(d, c),(d, b)}.
Dire si le syst`eme termine, est localement confluent, est confluent.
Exercice K.3 (1) Utilisez le principe d’induction pour d´emontrer la terminaison de la fonction
r´ecursive a telle que :
a(0, n) = n + 1
a(m + 1, 0) = a(m, 1)
a(m + 1, n + 1) = a(m, a(m + 1, n))
(2) Calculez `a l’aide d’un programme autant de valeurs a(n, n) que possible.
Exercice K.4 On ´etend l’ordre lexicographique `a un produit A = A1 × · · · × An, n ≥ 3,
d’ordres bien fond´es (Ai
, >i) :
(x1, . . . , xn) > (y1, . . . , yn) si ∃ k ≤ n (x1 = y1, . . . , xk−1 = yk−1 et xk >k yk)
Montrez que (A, >) est bien fond´e.
Exercice K.5 (ordre produit) Soient (Ai
, >i) pour i = 1, . . . , n des ordres bien fond´es.
On d´efinit une relation > sur le produit cart´esien A1 × · · · × An par
(a1, . . . , an) > (a
0
1
, . . . , a0
n
) si ai ≥i a
0
i
, i = 1, . . . , n et ∃ i ∈ {1, . . . , n} ai >i a
0
i
(1) La relation > est-elle un ordre bien fond´e ?
(2) Comparez la relation > `a l’ordre lexicographique sur le produit d´efini dans l’exercice K.4.
76L TD : Terminaison 2
Exercice L.1 Consid´erons les programmes while :
while m 6= n do
if m > n then m := m − n else n := n − m
while m 6= n do
if m > n then m := m − n
else h := m; m := n; n := h
Dire si les programmes terminent quand les variables varient sur les nombres naturels positifs.
Exercice L.2 Soit A = {a, b}
∗
l’ensemble des mots finis sur l’alphabet {a, b}. Soit → une
relation binaire sur A telle que :
w → w
0
ssi w = w1abw2 et w
0 = w1bbaw2
Donc w se r´eduit `a w
0
si w
0
est obtenu de w en rempla¸cant un sous-mot ab avec bba.
Montrez ou invalidez les assertions suivantes (il est conseill´e de s’appuyer sur les r´esultats
d´emontr´es dans le cours) :
1. Le syst`eme de r´eduction (A,→) est `a branchement fini.
2. Le syst`eme termine.
3. Le syst`eme est localement confluent.
4. Le syst`eme est confluent.
Exercice∗ L.3 Soient X, Y ∈ M(A). On ´ecrit X >1 Y si Y est obtenu de X en rempla¸cant
un ´el´ement de X par un multi-ensemble d’´el´ements strictement plus petits. Montrez que la
clˆoture transitive de >1 est ´egale `a >M(A)
.
Exercice L.4 Soit N∗
les mots finis de nombres naturels. Montrez la terminaison du syst`eme :
u(i + 1)v → iviui pour u, v ∈ N∗
77M TP : M´ethode de Davis-Putnam
M.1 Objectifs
Le but de ce TP est d’implanter en langage Java la proc´edure de Davis-Putnam : vous
devez r´ealiser un programme qui prend en entr´ee une formule A en forme normale conjonctive,
puis d´ecide si cette formule est satisfiable et si c’est le cas, renvoie une interpr´etation qui
satisfait A. Le programme que vous allez r´ealiser va lire les formules `a traiter dans un fichier.
Ce fichier respecte un format particulier : le format DIMACS. Le choix des structures de
donn´ees `a employer est de votre ressort. Il est fortement conseill´e de bien r´efl´echir `a l’int´egralit´e
de l’algorithme avant d’impl´ementer les classes et les m´ethodes dont vous aurez besoin.
M.2 D´efinitions
Rappelons quelques d´efinitions :
– un litt´eral est une variable propositionnelle x ou sa n´egation ¬x ;
– une clause est une disjonction de litt´eraux ;
– une clause est une tautologie si et seulement si elle contient une variable x et sa n´egation
¬x.
– une clause est dite unitaire si elle contient exactement un litt´eral,
– une formule en forme normale conjonctive est une conjonction de clauses,
– une affectation v est une fonction partielle des variables aux valeurs bool´eennes.
M.3 Format DIMACS
(http ://www.satlib.org/Benchmarks/SAT/satformat.ps)
Par exemple, la formule :
(x1 ∨ x3 ∨ ¬x4) ∧ (x4) ∧ (x2 ∨ ¬x3)
peut ˆetre cod´ee par :
c Exemple fichier au format CNF
p cnf 4 3
1 3 -4 0
4 0
2 -3
– la ligne c est une ligne commentaire,
– la ligne p sp´ecifie qu’il s’agit d’une formule en CNF avec 4 variables et 3 clauses,
– les lignes suivantes sp´ecifient les clauses. Le litt´eral xi est cod´e par i et le litt´eral ¬xi
par −i o`u i ≥ 1 (et dans ce cas i ≤ 4),
– les clauses peuvent ˆetre sur plusieurs lignes et elles sont s´epar´ees par 0.
Dans la page du cours, nous fournissons les fonctions afficheDimacs et ecrisDimacs,
qui sont un exemple de lecture et d’´ecriture de fichiers DIMACS. Vous pourrez vous baser sur
ces exemples pour r´ealiser l’interface de votre programme.
La r´ealisation de l’algorithme de Davis-Putnam exige la manipulation de formules, de
clauses et d’affectations. Vous devrez donc d´efinir les classes correspondantes ainsi que les
m´ethodes dont vous aurez besoin. Voici quelques m´ethodes de base (il s’agit de simples suggestions,
certaines m´ethodes pourront ˆetre omises ou ajout´ees selon vos besoins).
78Classe formule :
– un constructeur qui lit une formule CNF en format DIMACS et construit la formule
correspondante,
– vide qui teste si la formule est vide,
– affiche qui ´ecrit une formule dans un fichier au format DIMACS,
– verifie qui prend en argument une affectation et qui renvoie true si la formule est vraie
dans cette affectation.
Classe clause :
– appartient qui prend en argument un litt´eral et qui renvoie true s’il apparaˆıt dans la
clause,
– unitaire qui renvoie true si la clause ne contient qu’un seul litt´eral,
– vide qui renvoie true si la clause est vide,
– verifie qui prend en argument une affectation, et qui renvoie true si la clause est vraie
dans cette affectation.
Classe affectation :
– fixe qui prend en argument un litt´eral et un bool´een et qui ajoute le litt´eral `a l’affectation
avec la valeur du bool´een,
– valeur qui prend en argument un litt´eral et renvoie sa valeur dans l’affectation.
M.4 Davis-Putnam
La m´ethode de Davis-Putnam permet de d´ecider si une formule en forme normale conjonctive
est satisfiable. On repr´esente une formule A en CNF comme un ensemble (´eventuellement
vide) de clauses {C1, . . . , Cn} et une clause C comme un ensemble (´eventuellement vide) de
litt´eraux. Dans cette repr´esentation, on d´efinit la substitution [b/x]A d’une valeur bool´eenne
b dans A comme suit :
[b/x]A = {[b/x]C | C ∈ A et [b/x]C 6= 1}
[b/x]C =
1 si (b = 1 et x ∈ C) ou (b = 0 et ¬x ∈ C)
C\{`} si (b = 1 et ` = ¬x ∈ C) ou (b = 0 et ` = x ∈ C)
C autrement
La m´ethode de Davis-Putnam fonctionne comme suit. Au d´epart, A est une formule CNF :
– si A est vide, retourner true.
– si A contient la clause vide, retourner false.
– si A contient une clause C qui contient `a la fois les litt´eraux x et ¬x, appeler la fonction
davis-putnam sur la formule A \ C.
– si A contient une clause {x} (resp. {¬x}), appeler la fonction davis-putnam sur [1/x]A
(resp. [0/x]A).
– sinon, choisir une variable x dans A. Appliquer la proc´edure DP r´ecursivement sur
[1/x]A et [0/x]A. Retourner true si l’un des r´esultats est true, retourner false sinon.
Vous devrez d´efinir des m´ethodes pour chacune de ces op´erations. La derni`ere, en particulier,
doit ˆetre trait´ee avec attention : si la premi`ere affectation choisie ´echoue, il faut pouvoir
revenir `a l’´etat courant pour tester la deuxi`eme ; une forme de sauvegarde ou de duplication
sera donc n´ecessaire.
79Exercice M.1 1- Programmez une m´ethode estSatisfiable qui d´ecide si la formule est satis-
fiable en utilisant la proc´edure de Davis-Putnam
2- Modifiez la fonction estSatisfiable pour que si la formule est satisfiable, elle affiche une
affectation v qui satisfait A.
M.5 Test
Il s’agit maintenant de tester la correction et l’efficacit´e de votre programme.
– Il est facile de v´erifier si une formule A est satisfiable par une affectation v.
Exercice M.2 Programmez une m´ethode permettant ce test.
– Il est plus compliqu´e de v´erifier qu’une formule n’est pas satisfiable. Une possibilit´e est
de g´en´erer de fa¸con al´eatoire un certain nombre d’affectations et de v´erifier qu’elles ne
satisfont pas la formule.
Exercice M.3 Programmez une m´ethode qui r´ealise ce test sur une centaine d’affectations
prises au hasard.
– Sur quelles formules tester votre programme ? Il est pratique de disposer d’un g´en´erateur
de formules. Par exemple, on peut programmer une fonction G(n, m, p) qui g´en`ere une
formule avec n clauses et m variables avec la propri´et´e que :
– le litt´eral xj est pr´esent dans la clause Ci avec probabilit´e p/2 ;
– le litt´eral ¬xj est pr´esent dans la clause Ci avec probabilit´e p/2 ;
– les litt´eraux xj et ¬xj ne sont jamais pr´esents ensemble dans une clause Ci (et donc
ils sont absents avec probabilit´e (1 − p)).
Exercice M.4 Programmez une proc´edure qui prend les param`etres (n, m, p, k), g´en`ere
k formules en utilisant la fonction G(n, m, p), applique la proc´edure DP pour d´eterminer
la satisfiabilit´e et applique les m´ethodes d´evelopp´ees dans les exercices M.2 et M.3 pour
v´erifier le r´esultat.
M.6 Heuristique
Le choix d’une variable x dans la derni`ere ´etape peut avoir beaucoup d’influence sur la
rapidit´e de la proc´edure. Une heuristique possible est de choisir x de sorte que le nombre
de clauses dans lesquelles x apparaˆıt multipli´e par le nombre de clauses dans lesquelles ¬x
apparaˆıt est maximal, et de tester DP([1/x]A) d’abord s’il y a plus de clauses contenant x
que de clauses contenant ¬x, et DP([0/x]A) sinon.
Exercice M.5 1. Implanter cette strat´egie dans la fonction DP . Soit DPH la fonction
obtenue.
2. Modifiez le code de la fonction DP et de la fonction DPH pour qu’elles retournent le
nombre de fois que le pas de ‘choix’ DP([0/x]A) or DP([1/x]A) est ex´ecut´e.
3. Programmez une proc´edure qui prend les param`etres (n, m, p, k), g´en`ere k formules en
utilisant la fonction G(n, m, p), applique les proc´edures DP et DPH aux formules, v´erifie
80qu’elles produisent le mˆeme r´esultat (satisfiable ou pas satisifiable) et pour chaque formule
imprime le nombre de fois que le pas de ‘choix’ est ex´ecut´e par DP et DPH.
M.7 Le principe du pigeonnier (pigeon principle)
On dispose de m pigeons et de n nids. Le probl`eme P(m, n) a une solution si :
– Chaque pigeon a un nid.
– Chaque nid contient au plus un pigeon.
Il est ´evident que le probl`eme n’a de solution que si m est inf´erieur ou ´egal `a n, mais la
v´erification de ce fait par la m´ethode de Davis-Putnam peut s’av´erer tr`es coˆuteuse.
On ´ecrit le probl`eme du pigeonnier en CNF de la fa¸con suivante :
– On introduit les variables oi,j pour i ∈ [1..m], j ∈ [1..n]. On interpr`ete oi,j par le pigeon
i occupe le nid j.
– On introduit la CNF
^
i=1,...,m
(
_
j=1,...,n
oi,j )
qui exprime le fait que chaque pigeon doit se trouver dans un nid.
– On introduit la CNF
^
j=1,...,n, i,k=1,...,m,i tar xvf sato4.2.tgz
– compiler le programme en ex´ecutant dans le dossier de SATO la commande :
> make
Plus d’informations sont disponibles dans le fichier README `a la mˆeme adresse.
Vous pouvez tester le solveur en utilisant par exemple le g´en´erateur programm´e dans
le TP1 et comparer les performances avec votre impl´ementation de l’algorithme de DavisPutnam.
N.3 Le jeu du Sudoku
Le Sudoku est un puzzle en forme de grille. Le but du jeu est de remplir la grille avec des
chiffres allant de 1 `a 9 en respectant certaines contraintes, quelques chiffres ´etant d´ej`a dispos´es
dans la grille. La grille de jeu est un carr´e de neuf cases de cˆot´e, subdivis´e en autant de
carr´es identiques, appel´es r´egions.
5 3 7 9
6 1 9 5
9 8 6
8 6 3
4 8 3 1
7 2 6
6 8
4 1 9 5
8 7 9
La r`egle du jeu est simple : chaque ligne, colonne et r´egion ne doit contenir qu’une seule fois
tous les chiffres de 1 `a 9. Formul´e autrement, chacun de ces ensembles doit contenir tous les
82chiffres de 1 `a 9.
L’entr´ee de votre programme est un fichier qui repr´esente la grille sous la forme d’une
matrice 9×9. Lorsque le chiffre d’une case n’est pas d´efini, on note 0. Ainsi l’exemple pr´ec´edent
est repr´esent´e dans ce fichier sous la forme :
835 3 0 0 7 0 9 0 0
6 0 0 1 9 5 0 0 0
0 9 8 0 0 0 0 6 0
8 0 0 0 6 0 0 0 3
4 0 0 8 0 3 0 0 1
7 0 0 0 2 0 0 0 6
0 6 0 0 0 0 0 8 0
0 0 0 4 1 9 0 0 5
0 0 0 0 8 0 0 7 9
N.4 Interface
La principale tˆache `a effectuer est l’interfa¸cage entre le Sudoku et SATO. Dans une premier
temps on doit traduire le probl`eme du Sudoku vers un probl`eme de satisfiabilit´e. Puis on doit
transformer une affectation qui satisfait la formule g´en´er´ee en une solution du Sudoku.
Notez qu’en Java, on ne peut faire d’appel syst`eme, il faudra donc ex´ecuter le programme
final `a l’aide d’un script de la forme :
java Sudoku2SAT fic entree
./sato fic dimacs > fic sol
java SAT2Sudoku fic sol
O`u fic entree est le fichier qui repr´esente la grille d’entr´ee, fic dimacs est la traduction
du probl`eme en format DIMACS produit par le programme Sudoku2SAT et SAT2Sudoku traduit
l’affectation retourn´ee par SATO en solution du probl`eme initial. Le but du TP est de
programmer Sudoku2SAT et SAT2Sudoku.
N.5 Sudoku → SATO
Pour chaque case (x, y) de la grille (ligne x et colonne y) et chaque valeur z ∈ [1..9] on
introduit une variable propositionnelle sxyz. Le probl`eme du Sudoku peut ˆetre traduit vers
une formule CNF de la fa¸con suivante :
– Tout d’abord on veut que chaque case (x, y) contienne au moins un chiffre entre 1 9.
Par exemple, pour la case (1, 1) la clause g´en´er´ee sera :
s111 ∨ s112 ∨ s113 ∨ . . . ∨ s119.
– Ensuite, chaque chiffre de 1 `a 9 apparaˆıt au plus une fois dans chaque ligne. Par exemple,
le fait que le chiffre 1 apparaˆıt au plus une fois dans la ligne 1 correspond `a l’ensemble
de clauses :
(¬s111 ∨ ¬s121) ∧ (¬s111 ∨ ¬s131) ∧ . . . ∧ (¬s111 ∨ ¬s191) ∧ (¬s121 ∨ ¬s131) ∧ . . .
– De mˆeme, chaque chiffre de 1 `a 9 apparaˆıt au plus une fois dans chaque colonne.
– Chaque chiffre de 1 `a 9 apparaˆıt au plus une fois dans chaque r´egion.
– Enfin, il faut s’occuper des cases pr´e-remplies dans la grille de d´epart. Chacune de ces
cases correspond `a une clause avec un seul litt´eral.
84Notez que si on s’arrˆete l`a le codage est suffisant, mais on peut ajouter les contraintes suivantes
:
– Chaque case (x, y) contient au plus un chiffre entre 1 et 9.
– Chaque chiffre apparaˆıt au moins une fois dans chaque ligne.
– Chaque chiffre apparaˆıt au moins une fois dans chaque colonne.
– Chaque chiffre apparaˆıt au moins une fois dans chaque r´egion.
Exercice N.1 Ecrire un programme qui traduit un probl`eme de Sudoku en une formule CNF ´
sous le format DIMACS. Ce programme prend comme entr´ee un fichier sous la forme d´efinie
dans la partie pr´ec´edente et doit ´ecrire le r´esultat de la traduction dans un fichier de sortie.
N.6 SATO → Sudoku
Il reste `a transformer une affectation renvoy´ee par le solveur en solution pour le Sudoku.
Exercice N.2 Ecrire, une fonction qui transforme une affectation qui satisfait la formule en ´
solution du Sudoku et l’affiche.
Vous pouvez maintenant tester votre programme en essayant de r´esoudre des grilles propos´ees
par exemple aux adresses suivantes :
http ://logiciel.sudoku.free.fr/
http ://www.esudoku.fr/
...
Vous pouvez aussi tester dans quelle mesure l’ajout de contraintes suppl´ementaires am´eliore
les performances du programme.
85O TP : R´esolution
Pour repr´esenter les formules en CNF on adopte la mˆeme notation ensembliste utilis´ee
pour d´ecrire la m´ethode de Davis-Putnam.
– Une clause C est un ensemble de litt´eraux.
– Une formule A en CNF est un ensemble de clauses.
Soient C ∪ {x} et C
0 ∪ {¬x} deux clauses o`u l’on suppose que x /∈ C et ¬x /∈ C
0
.
On dit que C ∪ C
0
est un r´esolvant des deux clauses.
La m´ethode de r´esolution peut ˆetre formul´ee de la fa¸con suivante. Soit A un ensemble fini
de clauses. Si X est un ensemble de clauses, on pose
FA(X) = A ∪ X ∪ {C | C est un r´esolvant de deux clauses dans X}
Soit Res(A) le plus petit point fixe de FA. On peut montrer que la formule A est insatisfiable
si et seulement si Res(A) contient la clause vide.
Exercice O.1 Montrez (sur papier) que Res(A) est fini et peut ˆetre calcul´e.
On rappelle qu’une clause de Horn est une clause qui contient au plus un litt´eral positif.
Par ailleurs, une clause unitaire est une clause qui contient un litt´eral. Dans la m´ethode de
r´esolution unitaire on se limite `a calculer les r´esolvants de couples de clauses dont au moins
une est unitaire. On peut montrer qu’une conjonction de clauses de Horn n’est pas satisfiable
si et seulement si la m´ethode de r´esolution unitaire d´erive la clause vide.
Exercice O.2 Construire un programme qui re¸coit en entr´ee une formule A qui est une
conjonction de clauses de Horn au format dimacs et v´erifie si A est insatisfiable en utilisant
la m´ethode de r´esolution unitaire. Le programme imprime Res(A) (adapt´e pour la r´esolution
unitaire) s’il n’arrive pas `a g´en´erer la clause vide.
Exercice O.3 Estimez (sur papier) la complexit´e de votre programme en fonction de la taille
de la formule A.
86
Robotique Mobile
David Filliat
To cite this version:
David Filliat. Robotique Mobile. Ecole d’ing´enieur. Robotique Mobile, ENSTA ParisTech, ´
2011, pp.175.
HAL Id: cel-00655005
https://cel.archives-ouvertes.fr/cel-00655005
Submitted on 24 Dec 2011
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.David FILLIAT
École Nationale Supérieure de Techniques Avancées ParisTech
Robotique Mobile2Cette création est mise à disposition selon le Contrat Paternité-Pas d’Utilisation CommercialePartage
des Conditions Initiales à l’Identique 2.0 France disponible en ligne :
http://creativecommons.org/licenses/by-nc-sa/2.0/fr/
ou par courrier postal à Creative Commons, 171 Second Street, Suite 300, San Francisco,
California 94105, USA.
Ce document évolue régulièrement. La dernière version se trouve sur ma page personnelle
: http://www.ensta-paristech.fr/~filliat/
Si vous avez des remarques ou des suggestions pour m’aider à le faire progresser, ou simplement
si il vous a été utile, n’hésitez pas à m’écrire : david.filliat@ensta-paristech.fr
Dernière mise à jour : 5 octobre 2011Robotique Mobile - david.filliat@ensta-paristech.fr 4TABLE DES MATIÈRES
Table des matières
1 Introduction 9
1.1 Robot Mobile . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
1.2 Objectifs du cours . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 (Très) Bref aperçu historique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4 Exemples d’applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.5 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
I Les bases de la navigation 15
2 Les différents types de navigation 19
2.1 Les stratégies de navigation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.2 Les architectures de contrôle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.2.1 Contrôleurs Hiérarchiques . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2.2 Contrôleurs réactifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.2.3 Contrôleurs hybrides . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.2.4 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
3 Les sources d’information 27
3.1 Informations proprioceptives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3.2 Informations extéroceptives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.1 Variabilité perceptuelle . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.2 Perceptual aliasing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2.3 Utilisation directe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.2.4 Utilisation d’un modèle métrique . . . . . . . . . . . . . . . . . . . . . . . 30
3.3 Fusion d’informations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4 Matériels courants en robotique mobile 35
4.1 Les bases mobiles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.1 Holonomie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.2 Les plates-formes différentielles . . . . . . . . . . . . . . . . . . . . . . . 35
4.1.3 Les plates-formes omnidirectionnelles . . . . . . . . . . . . . . . . . . . . 36
4.1.4 Les plates-formes non holonomes . . . . . . . . . . . . . . . . . . . . . . 37
4.1.5 Les plates-formes à pattes . . . . . . . . . . . . . . . . . . . . . . . . . . 38
5 Robotique Mobile - david.filliat@ensta-paristech.frTABLE DES MATIÈRES
4.2 Les capteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2.1 Les capteurs proprioceptifs . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2.2 Les télémètres . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2.3 Les caméras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.2.4 Autres capteurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.3 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
II Navigation réactive 53
5 Navigation vers un but 57
5.1 Véhicules de Braitenberg . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
5.2 Modèle de Cartwright et Collet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
5.3 Asservissement visuel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
6 Évitement d’obstacles 61
6.1 Méthode des champs de potentiel . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.2 Méthode Vector Field Histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
6.3 Méthode de la fenêtre dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . 63
7 Apprentissage par renforcement 67
7.1 Formalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
7.2 Programmation dynamique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.2.1 Évaluation d’une politique . . . . . . . . . . . . . . . . . . . . . . . . . . 71
7.2.2 Amélioration d’une politique . . . . . . . . . . . . . . . . . . . . . . . . . 72
7.2.3 Algorithmes d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . 72
7.3 Méthodes de Monte-Carlo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
7.3.1 Évaluation d’un politique . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
7.3.2 Besoin d’exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
7.3.3 Algorithmes d’apprentissage . . . . . . . . . . . . . . . . . . . . . . . . . 74
7.4 Apprentissage par différences temporelles . . . . . . . . . . . . . . . . . . . . . 74
7.5 Traces d’éligibilité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
7.6 Application pratique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
7.7 Exemple de mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7.8 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
III Navigation utilisant une carte 81
8 Localisation, Cartographie et Planification 85
8.1 Les trois problèmes de la navigation par carte . . . . . . . . . . . . . . . . . . . . 85
8.2 Quelques hypothèses de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
8.2.1 Estimation de la position et de la direction . . . . . . . . . . . . . . . . . . 86
8.2.2 Environnements statiques et dynamiques . . . . . . . . . . . . . . . . . . 87
Robotique Mobile - david.filliat@ensta-paristech.fr 6TABLE DES MATIÈRES
9 Les représentations de l’environnement 89
9.1 Cartes topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
9.1.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
9.1.2 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
9.1.3 Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
9.1.4 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
9.2 Cartes métriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
9.2.1 Description . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
9.2.2 Avantages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
9.2.3 Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
9.2.4 Mise en œuvre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
9.3 Représentations hybrides et hiérarchiques . . . . . . . . . . . . . . . . . . . . . . 100
10 Localisation 103
10.1 Différentes capacités de localisation . . . . . . . . . . . . . . . . . . . . . . . . . 103
10.2 Estimation de la position par les perceptions . . . . . . . . . . . . . . . . . . . . 105
10.2.1 Cartes topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
10.2.2 Cartes métriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
10.2.3 Corrélation de cartes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
10.2.4 Limitations de l’estimation de la position par les perceptions . . . . . . . . 110
10.3 Suivi d’une hypothèse unique . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
10.3.1 Cartes topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
10.3.2 Cartes métriques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
10.3.3 Le filtrage de Kalman pour la localisation . . . . . . . . . . . . . . . . . . . 112
10.3.4 Limitations du suivi de position . . . . . . . . . . . . . . . . . . . . . . . . 119
10.4 Suivi de plusieurs hypothèses . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
10.4.1 Suivi explicite de plusieurs hypothèses . . . . . . . . . . . . . . . . . . . . 120
10.4.2 Le filtrage Bayésien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
10.4.3 Filtrage Bayésien dans le cas discret . . . . . . . . . . . . . . . . . . . . . 126
10.4.4 Filtrage particulaire . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
10.5 Comparaison des méthodes de localisation . . . . . . . . . . . . . . . . . . . . . 133
11 Cartographie 135
11.1 Les problèmes de la cartographie . . . . . . . . . . . . . . . . . . . . . . . . . . 135
11.1.1 Limitation des méthodes de localisation . . . . . . . . . . . . . . . . . . . 135
11.1.2 Fermetures de boucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
11.1.3 Cartographie incrémentale et retour en arrière . . . . . . . . . . . . . . . . 136
11.2 Cartographie incrémentale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
11.2.1 Cartes Topologiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
11.2.2 Cartes métriques : corrélation de scan . . . . . . . . . . . . . . . . . . . . 140
11.2.3 Cartes métriques : grilles d’occupation . . . . . . . . . . . . . . . . . . . . 141
11.2.4 Stratégies d’exploration . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
11.3 Retour sur les modifications passées . . . . . . . . . . . . . . . . . . . . . . . . 144
7 Robotique Mobile - david.filliat@ensta-paristech.frTABLE DES MATIÈRES
11.3.1 Méthodes de relaxation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
11.3.2 Cartographie par filtrage de Kalman étendu . . . . . . . . . . . . . . . . . 147
11.3.3 Fast SLAM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
11.4 Comparaison des méthodes de cartographie . . . . . . . . . . . . . . . . . . . . 154
11.5 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
12 Planification 155
12.1 Espace des configurations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
12.2 Discrétisation de l’espace de recherche . . . . . . . . . . . . . . . . . . . . . . . 156
12.3 Recherche de chemin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
12.3.1 Deux types de plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 158
12.3.2 Calcul de politique . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
12.3.3 Calcul d’un chemin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
12.4 Exemples de politiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
12.5 Choix de l’action avec une position incertaine . . . . . . . . . . . . . . . . . . . . 162
12.6 Pour aller plus loin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
Index 164
Bibliographie 165
Robotique Mobile - david.filliat@ensta-paristech.fr 8CHAPITRE 1. INTRODUCTION
Chapitre 1
Introduction
1.1 Robot Mobile
La robotique est un très bon exemple de domaine pluri-disciplinaire qui implique de nombreuses
thématiques telles que la mécanique, la mécatronique, l’électronique, l’automatique, l’informatique
ou l’intelligence artificielle. En fonction du domaine d’origine des auteurs, il existe donc
diverses définitions du terme robot, mais elles tournent en général autour de celle-ci :
Un robot est une machine équipée de capacités de perception, de décision et d’action
qui lui permettent d’agir de manière autonome dans son environnement
en fonction de la perception qu’il en a.
FIGURE 1.1 – Schéma des interactions d’un robot avec son environnement. Selon les approches,
un modèle interne de l’environnement peut être utilisé ou non.
Cette définition s’illustre par un schéma classique des interactions d’un robot avec son environnement
(Figure 1.1). Les différentes notions que nous présenterons dans ce cours sont essentiellement
issues de cette vision de la robotique, très orientée sur l’Intelligence Artificielle, qui
9 Robotique Mobile - david.filliat@ensta-paristech.fr1.2. OBJECTIFS DU COURS
place au centre des préoccupations l’enchaînement de ce cycle Perception/Décision/Action . La
manière dont un robot gère ces différents éléments est définie par son architecture de contrôle,
qui la plupart du temps va faire appel à un modèle interne de l’environnement qui lui permettra de
planifier ses actions à long terme.
1.2 Objectifs du cours
L’objectif de ce cours est de fournir un aperçu des problèmes de la robotique mobile et des
solutions actuelles. Ce cours se veut proche de la recherche, en présentant des méthodes apparues
dans les dernières années, mais présente également les notions de base nécessaires à
leur compréhension, ainsi qu’un panorama de techniques classiques dont la portée va au delà de
leur application en robotique mobile. La lecture des nombreuses références à des articles scienti-
fiques ou à des ouvrages de référence (la plupart du temps en anglais) n’est évidement pas utile
pour la compréhension du cours, mais doit permettre d’approfondir des points particuliers hors
de la portée de ce cours.
La robotique mobile est un domaine dans lequel l’expérience pratique est particulièrement
illustratrice et importante pour la compréhension des problèmes. Au delà des méthodes présentée
dans ce texte, les travaux dirigés ou le projet pratique associés que réalisent les étudiants
apporteront également leur lot de connaissances irremplaçables.
1.3 (Très) Bref aperçu historique
FIGURE 1.2 – La tortue de Grey Walter (nommée “machina speculatrix” et surnommée Elsie)
et une illustration de sa trajectoire pour rejoindre sa niche.
Le terme de robot apparaît pour la première fois dans une pièce de Karel Capek en 1920 :
Rossum’s Universal Robots. Il vient du tchèque ’robota’ (∼ servitude) et présente une vision des
robots comme serviteurs dociles et efficaces pour réaliser les taches pénibles mais qui déjà vont
se rebeller contre leurs créateurs.
Robotique Mobile - david.filliat@ensta-paristech.fr 10CHAPITRE 1. INTRODUCTION
La Tortue construite par Grey Walter dans les année 1950 (Figure 1.2), est l’un des premiers
robots mobiles autonomes. Grey Walter n’utilise que quelques composants analogiques, dont
des tubes à vide, mais son robot est capable de se diriger vers une lumière qui marque un
but, de s’arrêter face à des obstacles et de recharger ses batteries lorsqu’il arrive dans sa niche.
Toutes ces fonctions sont réalisées dans un environnement entièrement préparé, mais restent des
fonctions de base qui sont toujours des sujets de recherche et de développement technologiques
pour les rendre de plus en plus génériques et robustes.
FIGURE 1.3 – A gauche : Robot "Beast" de l’université John Hopkins dans les années 1960.
A droite : Le robot Shakey de Stanford en 1969 a été une plate-forme de démonstration des
recherches en intelligence artificielle.
Dans les années 60, les recherches en électronique vont conduire, avec l’apparition du transistor,
à des robots plus complexes mais qui vont réaliser des tâches similaires. Ainsi le robot
"Beast" (Figure 1.3) de l’université John Hopkins est capable de se déplacer au centre des couloirs
en utilisant des capteurs ultrason, de chercher des prises électriques (noires sur des murs
blanc) en utilisant des photo-diodes et de s’y recharger.
Les premier liens entre la recherche en intelligence artificielle et la robotique apparaissent
à Stanford en 1969 avec Shakey (Figure 1.3). Ce robot utilise des télémètres à ultrason et une
caméra et sert de plate-forme pour la recherche en intelligence artificielle, qui à l’époque travaille
essentiellement sur des approches symboliques de la planification. La perception de l’environnement,
qui à l’époque est considérée comme un problème séparé, voire secondaire, se révèle
particulièrement complexe et conduit là aussi à de fortes contraintes sur l’environnement. Ces
développements de poursuivent avec le Stanford Cart dans la fin des années 1970, avec notamment
les premières utilisations de la stéréo-vision pour la détection d’obstacles et la modélisation
11 Robotique Mobile - david.filliat@ensta-paristech.fr1.3. (TRÈS) BREF APERÇU HISTORIQUE
FIGURE 1.4 – Le Stanford Cart date de la fin des années 1970. Le robot Hilare du LAAS a été
construit en 1977.
de l’environnement. En France, le robot Hilare est le premier robot construit au LAAS, à Toulouse
(Figure 1.4).
Une étape importante est à signaler au début des années 1990 avec la mise en avant de
la robotique réactive, représentée notamment par Rodney Brooks. Cette nouvelle approche de la
robotique, qui met la perception au centre de la problématique, a permis de passer de gros robots
très lents à de petits robots (Figure 1.5), beaucoup plus réactifs et adaptés à leur environnement.
Ces robots n’utilisent pas ou peu de modélisation du monde, problématique qui s’est avérée être
extrêmement complexe.
FIGURE 1.5 – Genghis, développé par Rodney Brooks au MIT au début des années 1990.
Ces développements ont continué et l’arrivée sur le marché depuis les années 1990 de platesformes
intégrées telles que le pioneer de la société Mobile Robots a permis à de très nombreux
laboratoires de travailler sur la robotique mobile et à conduit à une explosion de la diversité des
thèmes de recherche. Ainsi, même si les problèmes de déplacement dans l’espace et de moRobotique
Mobile - david.filliat@ensta-paristech.fr 12CHAPITRE 1. INTRODUCTION
délisation de l’environnement restent difficiles et cruciaux, des laboratoires ont pu par exemple
travailler sur des approches multi-robot, la problématique de l’apprentissage ou sur les problèmes
d’interactions entre les hommes et les robots.
1.4 Exemples d’applications
Aujourd’hui, le marché commercial de la robotique mobile est toujours relativement restreint
en dehors des robots aspirateurs vendus à plusieurs millions d’exemplaires. Cependant, il existe
de nombreuses perspectives de développement qui en feront probablement un domaine important
dans le futur. Les applications des robots peuvent se trouver dans de nombreuses activités
"ennuyeuses, salissantes ou dangereuses" (3 D’s en anglais pour Dull, Dirty, Dangerous),
mais également pour des applications ludiques ou de service, comme l’assistance aux personnes
âgées ou handicapées.
FIGURE 1.6 – Exemples de robots commerciaux ou de recherche.
13 Robotique Mobile - david.filliat@ensta-paristech.fr1.5. POUR ALLER PLUS LOIN
Parmi les domaines d’applications possibles de la robotique, citons :
– La robotique de service (hôpital, bureaux, maison),
– La robotique de loisir (jouets, robot ’compagnon’),
– La robotique industrielle ou agricole (entrepôts logistiques, récolte de productions agricoles,
mines),
– La robotique en environnement dangereux (spatial, industriel, militaire, catastrophes naturelles).
A cela, s’ajoute a l’heure actuelle des nombreuses plates-formes conçues essentiellement
pour les laboratoires de recherche. La figure 1.6 montre quelques exemples de robots existants.
1.5 Pour aller plus loin
Les illustrations de ce chapitre sont, entre autre, tirées du livre "ROBOT : mere machine to
transcendent mind" de Hans Moravec [102], dont les illustrations sont disponibles en ligne 1
.
Le livre de Daniel Ichbiah "Robots, Genèse d’un peuple artificiel" [71] donne également un
bon aperçu "grand public" de la robotique et de sont histoire 2
.
1. http ://www.frc.ri.cmu.edu/ hpm/book98/
2. http ://ichbiah.online.fr/pagerobots.htm
Robotique Mobile - david.filliat@ensta-paristech.fr 14Première partie
Les bases de la navigation
15 Robotique Mobile - david.filliat@ensta-paristech.frDans cette partie, nous présentons les différentes catégories de méthodes de navigation utilisables
pour un robot mobile et les architectures de contrôle associées. Nous présentons ensuite
les informations qu’un robot pourra utiliser pour se déplacer, ainsi que les capteurs et les platesformes
couramment utilisées en robotique.
17 Robotique Mobile - david.filliat@ensta-paristech.frRobotique Mobile - david.filliat@ensta-paristech.fr 18CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION
Chapitre 2
Les différents types de navigation
2.1 Les stratégies de navigation
Les stratégies de navigation permettant à un robot mobile de se déplacer pour rejoindre un
but sont extrêmement diverses, de même que les classifications qui peuvent en être faites. Afin
de situer les différentes méthodes de navigation que nous allons étudier dans un contexte géné-
ral, nous reprenons ici une classification établie par Trullier et al. [138, 140]. Cette classification
a été établie en prenant en compte à la fois les stratégies des robots et des animaux. Elle pré-
sente l’avantage de distinguer les stratégies sans modèles internes et les stratégies avec modèle
interne.
Cette classification comporte cinq catégories, de la plus simple à la plus complexe :
– Approche d’un objet : cette capacité de base permet de se diriger vers un objet visible
depuis la position courante du robot. Elle est en général réalisée par une remontée de
gradient basée sur la perception de l’objet, comme dans l’exemple célèbre des véhicules
de Valentino Braitenberg [19] (voir section 5.1) qui utilisent deux capteurs de lumière pour
atteindre ou fuir une source lumineuse. Cette stratégie utilise des actions réflexes, dans
lesquelles chaque perception est directement associée à une action. C’est une stratégie
locale, c’est-à-dire fonctionnelle uniquement dans la zone de l’environnement pour laquelle
le but est visible.
– Guidage : cette capacité permet d’atteindre un but qui n’est pas un objet matériel directement
visible, mais un point de l’espace caractérisé par la configuration spatiale d’un ensemble
d’objets remarquables, ou amers, qui l’entourent ou qui en sont voisins. La straté-
gie de navigation, souvent une descente de gradient également, consiste alors à se diriger
dans la direction qui permet de reproduire cette configuration. Cette capacité semble
utilisée par certains insectes, comme les abeilles [26], et a été utilisée sur divers robots
[54, 86, 58, 114] (voir sections 5.2 et 5.3). Cette stratégie utilise également des actions ré-
flexes et réalise une navigation locale qui requiert que les amers caractérisant le but soient
visibles.
– Action associée à un lieu : cette capacité est la première capacité réalisant une navigation
globale, c’est-à-dire qui permette de rejoindre un but depuis des positions pour lesquelles
19 Robotique Mobile - david.filliat@ensta-paristech.fr2.1. LES STRATÉGIES DE NAVIGATION
a
D
A
a
a a a
a
a
a
a a
a
Direction à prendre pour atteindre le lieu A
Trajectoire suivie par l’animat
Obstacles
Lieux mémorisés
Zone inexplorée
FIGURE 2.1 – Action associée à un lieu. En chaque lieu, représenté par un cercle, l’action à
accomplir pour rejoindre le but A est représentée par une flèche indiquant la direction à suivre
à partir de ce lieu. Cette stratégie permet de rejoindre un but distant dans l’environnement
mais repose sur des chemins figés. Dans cet exemple, le chemin joignant le lieu D au lieu
A et passant par la droite de l’obstacle a été appris. Rejoindre le lieu A depuis le lieu D ne
pourra alors être réalisé que par ce chemin. Le raccourci empruntant le chemin de gauche,
par exemple, est inutilisable.
ce but ou les amers qui caractérisent son emplacement sont invisibles (par exemple [114].
Elle requiert une représentation interne de l’environnement qui consiste à définir des lieux
comme des zones de l’espace dans lesquelles les perceptions restent similaires, et à associer
une action à effectuer à chacun de ces lieux (cf. figure 2.1). L’enchaînement des
actions associées à chacun des lieux reconnus définit une route qui permet de rejoindre le
but. Ces modèles permettent donc une autonomie plus importante mais sont limités à un
but fixé. Une route qui permet de rejoindre un but ne pourra en effet pas être utilisée pour
rejoindre un but différent. Changer de but entraînera l’apprentissage d’une nouvelle route,
indépendante des routes permettant de rejoindre les autres buts.
B
D
A
Possibilité de passer d’un lieu à un autre
Trajectoire suivie par l’animat
Obstacles
Lieux mémorisés
Zone inexplorée
FIGURE 2.2 – Navigation topologique. Cette stratégie permet de mémoriser un ensemble
de lieux et les possibilités de passer de l’un à l’autre, indépendamment de tout but. Pour
rejoindre un but, il faut alors une étape de planification qui permet de rechercher, parmi tous
les chemins possibles, le chemin rejoignant le but. Dans notre exemple, le chemin le plus
court entre D et A peut alors être calculé, mais uniquement parmi les lieux et les chemins
déjà connus. Cette stratégie permet, par exemple, de contourner l’obstacle par la gauche
mais ne permet pas de le traverser en ligne droite de D à A.
Robotique Mobile - david.filliat@ensta-paristech.fr 20CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION
– Navigation topologique : cette capacité est une extension de la précédente qui mémorise
dans le modèle interne les relations spatiales entre les différents lieux. Ces relations
indiquent la possibilité de se déplacer d’un lieu à un autre, mais ne sont plus associées à
un but particulier. Ainsi le modèle interne est un graphe qui permet de calculer différents
chemins entre deux lieux arbitraires. Ce modèle ne permet toutefois que la planification de
déplacements parmi les lieux connus et suivant les chemins connus (cf. figure 2.2).
B
D
A
Trajectoire suivie par l’animat
Possibilité de passer d’un lieu à un autre
déduite de leur position relative
x
y
Obstacles
Lieux mémorisés
Possibilité de passer d’un lieu à un autre
Zone inexplorée
FIGURE 2.3 – Navigation métrique. Cette stratégie permet de calculer le chemin le plus court
entre deux lieux mémorisés, permettant même de planifier des raccourcis au sein de zones
inexplorées de l’environnement. Pour cela, la carte mémorise la position métrique relative de
chacun des lieux visités par le robot. Ainsi il est possible de prévoir un déplacement entre
deux lieux, même si la possibilité de ce déplacement n’est pas enregistrée dans la carte.
Dans cet exemple, cette stratégie permet de d’aller du lieu A au lieu D en traversant la zone
inexplorée.
– Navigation métrique : cette capacité est une extension de la précédente car elle permet
au robot de planifier des chemins au sein de zones inexplorées de son environnement.
Elle mémorise pour cela les positions métriques relatives des différents lieux, en plus de
la possibilité de passer de l’un à l’autre. Ces positions relatives permettent, par simple
composition de vecteurs, de calculer une trajectoire allant d’un lieu à un autre, même si la
possibilité de ce déplacement n’a pas été mémorisée sous forme d’un lien (cf. figure 2.3).
Les modèles des trois premières catégories utilisent des actions réflexes pour guider le robot
et se différencient essentiellement par le type de perceptions utilisées pour déclencher ces actions.
Ils se regroupent sous le terme générique de navigation réactive dont nous parlerons dans
la partie II. Ils peuvent être très simple, ne nécessitent pas de modèle global de l’environnement
mais ont un domaine d’application souvent restreint. Dans le monde vivant, ces stratégies sont
très répandues, notamment chez les insectes. Les comportements de ce type restent toutefois
essentiels dans les robots modernes car, du fait de leur simplicité, il sont généralement exécutés
très rapidement et ils permettent de réaliser des taches de bas-niveau, comme l’évitement des
obstacles imprévus, essentielles à la sécurité d’un robot.
Les modèles des deux dernières catégories autorisent pour leur part une navigation globale
et permettent de rejoindre un but arbitraire au sein de l’environnement. Ils s’appuient pour cela
sur un modèle interne du monde, une carte, qui supporte une planification. Ce modèle interne
mémorise donc la structure spatiale de l’environnement, indépendamment d’un but précis. Cha-
21 Robotique Mobile - david.filliat@ensta-paristech.fr2.2. LES ARCHITECTURES DE CONTRÔLE
cune des positions mémorisées dans ce modèle interne peut alors être utilisée comme but par
le processus de planification dont le rôle est de calculer une route vers ce but. Ce sont ces deux
stratégies qui sont regroupées sous le terme de navigation par carte, objet du chapitre III .
Une telle représentation interne est naturelle pour les êtres humains, pour lesquels des processus
cognitifs de haut niveau sont utilisés pour créer et utiliser une carte. Ces processus de
haut niveau sont toutefois très difficile à copier pour un robot réel qui ne dispose que de systèmes
rudimentaires de perception et de traitement des informations en comparaison avec un
homme. Par exemple, en environnement urbain, le processus de mise en correspondance de la
carte avec l’environnement réel afin de déterminer sa position fait souvent appel, pour l’homme,
à la lecture du nom des rues inscrit sur les bâtiments, ce qui est relativement difficile à automatiser,
à cause de la diversité des configurations dans lesquelles peuvent ce trouver ces noms.
On notera au passage que l’homme a quasiment toujours recours à des aménagements particuliers
de l’environnement pour connaitre sa position, par exemple celui qui consiste à nommer les
rues ou à lancer des satellites dans l’espace pour bénéficier du GPS. Le système de navigation
idéal pour un robot mobile sera probablement celui qui sera capable de tirer partie de toutes ces
informations, qui ne lui étaient pas destinées à l’origine.
L’utilisation de cartes par un robot mobile comme le font les hommes est probablement hors de
notre portée pendant quelques années, cependant il existe également des preuves de l’existence
de représentations internes similaires à de telles cartes chez les animaux, par exemple chez les
rats. Ces représentations sont identifiables au niveau neurologiques dans certaines parties de
leur cerveau, notamment dans l’hippocampe. Cela montre que des cartes sont utilisée par des
êtres vivants, sans le support de concept abstraits tels que les utilisent les humains. Ce type de
carte qui fait appel à des structures neurologiques de base et probablement à des perceptions
relativement simples, est un paradigme intéressant pour les robots mobiles.
En robotique mobile, comme pour l’homme ou certains animaux, l’utilisation de cartes est
quasiment indispensable pour permettre d’effectuer des tâches de navigation dans des conditions
environnementales complexes, qui ne sont pas spécialement adaptées pour le robot. La
construction et l’utilisation de telles cartes posent cependant de nombreux problèmes, notamment
pour garantir l’adéquation entre la carte et le monde réel. Pour cette raison, la plupart des
robots trouvent aujourd’hui un compromis entre une approche réactive et une approche utilisant
une carte afin de bénéficier de la rapidité et de la robustesse de la première et de la capacité de
déplacement à long terme de la seconde.
2.2 Les architectures de contrôle
Un robot est un système complexe qui doit satisfaire à des exigences variées et parfois contradictoires.
Un exemple typique pour un robot mobile est l’arbitrage qui doit être fait entre l’exécution
la plus précise possible d’un plan préétabli pour atteindre un but et la prise en compte d’éléments
imprévus, tels que les obstacles mobiles. Ces arbitrages, que ce soit au niveau du choix de stratégie,
ou au niveau de l’utilisation des capteurs, des effecteurs ou des ressources de calcul, sont
réglés par un ensemble logiciel appelé architecture de contrôle du robot. Cette architecture permet
donc d’organiser les relations entre les trois grandes fonctions que sont la perception, la
Robotique Mobile - david.filliat@ensta-paristech.fr 22CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION
décision et l’action .
Nous pouvons reprendre la définition de Ronald Arkin [4] de l’art de concevoir de telles architectures
:
Robotic architecture is the discipline devoted to the design of highly specific and individual robots
from a collection of common software building blocks.
Selon cette définition une architecture doit donc être conçue pour un robot précis, mais en
utilisant des modules génériques. De manière plus générale il existe également des règles de
conception relativement générales qui permettent de réaliser ces implémentations. En fonction
de ces règles, les architectures de contrôle peuvent être classées en trois grandes catégories
que nous détaillerons par la suite : les contrôleurs hiérarchiques, les contrôleurs réactifs et les
contrôleurs hybrides (Figure 2.4). Comme le précise cette définition, toutes ces architectures ne
diffèrent pas forcement par les méthodes élémentaires employées mais plutôt par leur agencement
et leur relations.
A B C
PERCEPTION
PLANIFICATION
ACTION
PERCEPTION ACTION
PLANIFICATION
PERCEPTION ACTION
FIGURE 2.4 – Illustration des architectures classiques des contrôleurs pour les robots mobiles
: Hiérarchique (A), Réactive (B) et Hybride (C) (Voir le texte pour la description détaillée).
2.2.1 Contrôleurs Hiérarchiques
Historiquement, les premiers robots mobiles dérivés des recherches en intelligence artificielle
utilisaient des contrôleurs hiérarchiques (cf. figure 2.4 A) dont le fonctionnement repose essentiellement
sur la capacité de décision travaillant sur un modèle du monde supposé quasiment-parfait.
Ces architectures fonctionnent selon un cycle rigide de modélisation de l’environnement, planifi-
cation des actions au sein de cette représentation, puis exécution du plan. La capacité de décision
était issue des premiers travaux en intelligence artificielle et reposait essentiellement sur des traitements
de données symboliques. Ces architectures ont rapidement montré leurs limites et leur
incapacité à fonctionner dans un environnement qui ne soit pas statique et simplifié à l’extrême.
L’essentiel des problèmes de ces architectures provient de l’utilisation d’un modèle interne
central qui est le seul pris en compte pour guider le robot. Elles se trouvent confrontées à tout les
problèmes des premiers développements de l’intelligence artificielle symbolique.
23 Robotique Mobile - david.filliat@ensta-paristech.fr2.2. LES ARCHITECTURES DE CONTRÔLE
Ces architectures supposent premièrement qu’un modèle informatique du monde puisse représenter
toutes les informations pertinentes pour le déplacement du robot. Or un tel modèle ne
peut être suffisant dans un environnement dynamique car au moment de la réalisation de l’action
l’environnement peut avoir suffisamment changé pour que la décision ne soit plus valide. Ce
problème était particulièrement crucial au début de la robotique mobile ou les capacités de calcul
limitées entraînaient des temps de planification de l’ordre de plusieurs dizaines de minutes. Mais
l’augmentation des capacités de calcul ne suffit pas à résoudre ce problème qui ne permet pas
de gérer un environnement de travail réaliste. C’est un problème intrinsèque lié d’une part à la
trop grande longueur de la boucle qui relie la perception à l’action et d’autre part à l’invalidité de
l’hypothèse de monde clos faite en intelligence artificielle 1
.
De plus, ces architectures permettent peu de contrôle sur l’exécution des actions. En effet,
une fois l’action choisie, elle est exécutée en supposant le modèle du monde correct et il n’y a pas
de retour direct de la perception sur l’exécution de l’action. Les écarts modèles/environnement ne
peuvent être pris en compte que via un nouveau cycle perception/modélisation/planification, ce
qui, par définition, est très peu réactif et conduit rapidement à de graves problèmes.
2.2.2 Contrôleurs réactifs
Rodney Brooks [20] a proposé une solution radicale à tous ces problèmes sous la forme d’une
architecture réactive (cf. figure 2.4 B). Dans cette architecture, un ensemble de comportements
réactifs, fonctionnant en parallèle, contrôle le robot sans utiliser de modèle du monde. Cette architecture
supprime évidemment les problèmes dûs aux différences entre la réalité, d’une part,
et le modèle de l’environnement du robot, d’autre part, mais limite clairement les tâches que peut
effectuer le robot (cf. [77] pour une critique). En effet, sans représentation interne de l’état de
l’environnement, il est très difficile de planifier une suite d’actions en fonction d’un but à atteindre.
Les robots utilisant cette architecture sont donc en général efficaces pour la tâche précise pour
laquelle ils ont été conçus, dans l’environnement pour lequel ils ont été prévus, mais sont souvent
difficiles à adapter à une tâche différente.
Les réussites de ces architectures sont liées au couplage direct entre la perception et l’action
qui permet une prise en compte très rapide des phénomènes dynamiques de l’environnement.
En donc une bonne robustesse dans des environnements complexes.
Comme nous l’avons mentionné, ces architectures sont en général basées sur plusieurs comportements
: évitement d’obstacles, déplacement aléatoire, déplacement vers un but, fuite d’un
point... Pour guider le robot, il faut donc choisir à chaque instant lequel de ces comportements
activer. Ce problème est connu dans la litérature scientifique sous le nom de sélection de l’action.
La solution proposée par Brooks, l’architecture de subsomption [21] est devenue un classique et
utilise une hiérarchie des comportements qui se déclenchent donc selon un ordre de priorité en
fonction des perceptions du robot.
1. L’hypothèse de monde clos dit que la représentation symbolique d’un problème va être suffisante pour pouvoir
représenter toutes les conséquences des actions réalisées dans ce monde. Cela s’avère impossible en pratique pour
des problèmes autre que des problèmes jouets (par exemple un monde de cubes posés sur une table).
Robotique Mobile - david.filliat@ensta-paristech.fr 24CHAPITRE 2. LES DIFFÉRENTS TYPES DE NAVIGATION
2.2.3 Contrôleurs hybrides
La plupart des contrôleurs actuellement utilisés choisissent une solution intermédiaire entre
ces deux approches sous la forme d’une architecture hybride [104, 3] (cf. figure 2.4 C). Cette
architecture se compose de deux niveaux. Le premier est chargé des tâches de navigation de
haut niveau, telles que la localisation, la cartographie et la planification. Pour cela, il s’appuie sur
un second niveau réactif qui est chargé d’exécuter les commandes avec le plus de précision possible
et de gérer les éléments non modélisés de l’environnement tels que les obstacles inconnus
ou dynamiques. L’action conjointe de ces deux niveaux permet de réagir rapidement face aux
variations imprévues de l’environnement, tout en permettant la réalisation d’actions planifiées à
plus long terme.
Le bas niveau de ces architectures peut être réalisé sous forme de comportements, tels que
ceux utilisés dans les architectures réactives. Ces comportements sont des boucles sensorimotrices
qui relient les action aux perceptions avec un phase de décision très courte, qui assure la
réactivité. Dans le même temps, les informations sensorielles sont utilisées par le haut niveau
dans une boucle sensorimotrice à une échelle de temps beaucoup plus longue. C’est la mise en
parallèles de ces deux échelles de temps qui fait la force de ces architectures.
Les exemples d’architectures hybrides foisonnent (4D/RCS, 3T, Harpic...) car de très nombreux
laboratoires et organismes travaillant sur la robotique ont développé leur architecture de ce
type.
2.2.4 Pour aller plus loin
Deux livres intéressants sur le sujet :
– Introduction to AI Robotics de Robin Murphy, MIT Press
– Behavior based robotics de Ronald C. Arkin, MIT Press
25 Robotique Mobile - david.filliat@ensta-paristech.fr2.2. LES ARCHITECTURES DE CONTRÔLE
Robotique Mobile - david.filliat@ensta-paristech.fr 26CHAPITRE 3. LES SOURCES D’INFORMATION
Chapitre 3
Les sources d’information
Tous les capteurs utilisés en robotique mobile fournissent des informations appartenant à l’une
de deux grandes catégories d’informations : les informations proprioceptives et les informations
extéroceptives.
– Les informations proprioceptives sont des informations internes au robot qui le renseignent,
dans le cas de la navigation, sur son déplacement dans l’espace. Ces informations peuvent
provenir de la mesure de la rotation de ses roues ou de la mesure de l’accélération grâce
à une centrale inertielle. Un processus d’intégration permet alors, en accumulant ces informations
au cours du temps, d’estimer la position relative de deux points par lesquels le
robot est passé.
– Les informations extéroceptives ou plus simplement les perceptions, sont des informations
caractéristiques d’une position que le robot peut acquérir dans son environnement. Ces
informations peuvent être de nature très variée. Par exemple, un robot peut mesurer la
distance des obstacles avec des capteurs infrarouges ou utiliser une caméra.
Ces deux sources d’information ont des propriétés opposées que nous détaillons dans les
deux sections suivantes.
3.1 Informations proprioceptives
Les informations proprioceptives renseignent sur le déplacement du robot dans l’espace. Elles
constituent donc une source d’information très importante pour la navigation. Cependant, la pré-
cision de cette information se dégrade continuellement au cours du temps, la rendant inutilisable
comme seule référence à long terme. Cette dégradation continuelle provient de l’intégration temporelle
des mesures effectuées par les capteurs internes. En effet, chaque capteur produit une
mesure bruitée du déplacement instantané, de la vitesse ou de l’accélération du robot. Ce bruit,
via le processus d’intégration qui a pour but d’estimer le déplacement, conduit inévitablement à
une erreur croissante.
Malgré ce défaut important, les informations proprioceptives ont l’avantage de dépendre assez
peu des conditions environnementales qui perturbent fortement les informations perceptives. La
vision, par exemple sera fortement perturbée si l’environnement est plongé dans le noir, mais
27 Robotique Mobile - david.filliat@ensta-paristech.fr3.2. INFORMATIONS EXTÉROCEPTIVES
les informations proprioceptives fourniront une information identique, que l’environnement soit
éclairé ou non. De plus, comme nous le verrons dans la section suivante, si deux lieux identiques
du point de vue des perceptions se trouvent dans l’environnement, les informations perceptives
ne permettent pas de les différencier. Les informations proprioceptives sont alors le seul moyen
de les distinguer.
En robotique, cette information a de plus l’avantage de la simplicité de manipulation. En effet,
le processus d’intégration fournit directement une estimation de la position du robot dans un
espace euclidien doté d’un repère cartésien. Dans ce type de repère, tous les outils de la géomé-
trie mathématique sont utilisables. Ils permettent, par exemple, d’effectuer des calculs de chemin
relativement simples lorsque l’on connaît la position du but et des obstacles.
3.2 Informations extéroceptives
Les informations extéroceptives, ou plus simplement les perceptions , fournissent un lien
beaucoup plus fort entre le robot et son environnement. En effet, les informations proprioceptives
fournissent des informations sur le déplacement du robot, alors que les informations perceptives
fournissent des informations directement sur la position du robot dans l’environnement. Ces
informations assurent un ancrage dans l’environnement, en permettant de choisir des perceptions
qui peuvent être utilisées comme points de repère. Ces points de repère sont indépendants
des déplacements du robot et pourront être reconnus quelle que soit l’erreur accumulée par les
données proprioceptives. La reconnaissance de ces points est évidemment soumise à une incertitude,
mais pas à une erreur cumulative, ce qui les rend utilisables comme référence à long
terme.
3.2.1 Variabilité perceptuelle
Pour être utile, un système de perception doit donc permettre de distinguer le plus de lieux
possible. Pour cela, il doit être capable de distinguer le plus de détails possibles, afin de faire la
différence entre deux lieux différents mais d’apparences similaires. Or l’augmentation de cette
capacité à distinguer de petites variations dans l’environnement rend le système sensible au
problème de la variabilité perceptuelle , c’est à dire au changement de perception au cours du
temps pour un lieu donné. Cette variabilité peut être due au bruit inhérent au processus de mesure
où à des variations de l’environnement non significatives pour le problème de navigation qui nous
concerne, par exemple le changement de luminosité. Pour s’affranchir de ce problème, il faut en
général mettre en place des processus de traitement des perceptions qui permettront de ne pas
dépendre de ces variations et de correctement identifier un lieu donné.
3.2.2 Perceptual aliasing
En cherchant à limiter la dépendance aux variations de l’environnement, le concepteur de
robot aboutit en général au problème du perceptual aliasing ou d’Ambiguïté des perceptions. Ce
problème désigne l’incapacité d’un système de perception à distinguer de manière unique tous
Robotique Mobile - david.filliat@ensta-paristech.fr 28CHAPITRE 3. LES SOURCES D’INFORMATION
les lieux d’un environnement. Cette situation est très courante lorsque les robots utilisent des
capteurs de distance aux obstacles tels que les capteurs à ultrasons. Dans un environnement
intérieur de tels capteurs sont, par exemple, capables de mesurer la position du robot par rapport
à un coin, mais ne fournissent aucune information sur la position le long d’un couloir rectiligne.
Toutes les positions le long d’un couloir correspondent alors à des perceptions identiques.
Il est possible d’utiliser des capteurs qui fournissent des données plus précises ou plus discriminantes.
Dans le cas des capteurs de distance, il est, par exemple, possible d’utiliser un
télémètre laser qui pourra distinguer les renfoncements des portes et sera ainsi plus précis. Mais
même en utilisant des capteurs plus informatifs, comme une caméra, ce problème finit par apparaitre
lorsque la taille de l’environnement augmente. Il existe toujours une limite matérielle ou
logicielle au delà de laquelle l’identification unique de toutes les positions d’un environnement
est impossible. Il n’est donc pas possible, en général, de régler complètement le problème du
perceptual aliasing, mais seulement d’en repousser l’apparition. Il faut donc bien étudier les capteurs
nécessaires en fonction des traitements réalisables et de l’environnement visé pour limiter
ce problème.
3.2.3 Utilisation directe
Les capteurs sur un robot mobile peuvent être de nature très variée et être utilisés de nombreuses
façons différentes. Il est toutefois possible de distinguer deux utilisations distinctes de
leurs données pour la navigation. Ces deux utilisations dépendent de l’utilisation ou non d’un modèle
métrique associé au capteur, modèle qui permet de traduire les valeurs brutes du capteur
en informations sur la géométrie de l’environnement. Ce modèle permet notamment de prévoir la
variation des mesures renvoyées par ce capteur en fonction du déplacement du robot.
Les perceptions peuvent être utilisées de manière directe, sans aucun modèle métrique, pour
comparer directement deux positions en examinant les perceptions recueillies en ces lieux. Cette
méthode ne permet cependant que de reconnaître des lieux de l’environnement préalablement
explorés par le robot. Sans modèle de la variation des capteurs, il est en effet impossible de
prévoir les valeurs que les capteurs relèveront dans un lieu inexploré, même s’il est proche ou
entouré de lieux connus.
Pour une telle utilisation directe, seules deux procédures permettant, d’une part, de mémoriser
une perception et, d’autre part, de comparer deux perceptions, sont alors nécessaires. Ces procédures
peuvent être mises en œuvre à partir de tous les types de capteurs existants. Il est, par
exemple, possible d’utiliser la couleur dominante de l’environnement autour du robot, la température
(en supposant qu’elle caractérise une zone de l’environnement, comme pour une chambre
froide), la force du signal wifi ou le temps de retour d’une onde sonore quand elle est envoyée
dans une direction donnée. La seule propriété utilisée est la constance des valeurs mesurées
par un capteur pour un lieu donné. Cette constance permet de reconnaître un lieu déjà visité ou
d’identifier un lieu nouveau dans l’environnement.
29 Robotique Mobile - david.filliat@ensta-paristech.fr3.2. INFORMATIONS EXTÉROCEPTIVES
3.2.4 Utilisation d’un modèle métrique
La seconde méthode d’utilisation d’un capteur consiste à utiliser un modèle métrique associé
. Un tel modèle permet de traduire les informations données par le capteur dans un espace
métrique qui est en général le même que celui utilisé pour estimer la position du robot grâce à
l’odométrie. Il est ainsi possible d’estimer la position d’objets de l’environnement par rapport au
robot, et ainsi de prévoir les données que ce capteur relèvera pour des positions différentes du
robot. L’utilisation d’un tel modèle n’est toutefois possible que pour certains capteurs. Il est, par
exemple, possible d’utiliser un tel modèle associé à un capteur à ultrasons, à un télémètre laser
ou à une paire de caméras stéréoscopique, mais pas à un capteur d’odeur.
a b
FIGURE 3.1 – Un modèle métrique pour un capteur permet deux utilisations de ses données.
La première est similaire à celle qui traite de telles données sans modèle métrique et requiert
la simple mémorisation de ce qui est perçu en un lieu donné (Partie a). La seconde utilise ces
données pour reconstituer les objets rencontrés dans l’environnement, objets qui pourront
tous être mémorisés dans un cadre de référence commun, indépendamment de la position
depuis laquelle ils ont été perçus (Partie b).
Avec un tel modèle, les valeurs des capteurs peuvent être utilisées simplement pour caractériser
chaque lieu atteint par le robot (cf. figure 3.1a). La méthode est alors la même que celle mise
en place quand les capteurs sont utilisés sans modèle métrique. L’utilisation d’un modèle mé-
trique présente toutefois l’avantage que les informations recueillies ont une sémantique plus forte
et une certaine indépendance au point de vue du robot. En effet, ces informations caractérisent la
structure spatiale locale de l’environnement, en plus de la simple apparence de l’environnement
depuis la position du robot. Cette structure spatiale peut alors être utilisée lors de la comparaison
de différents lieux. Il est par exemple possible de reconnaître un couloir en fonction de sa largeur,
indépendamment de la position du robot dans ce couloir. En effet, sans utilisation de modèles
métriques, deux perceptions recueillies en des positions différentes du couloir seront simplement
différentes. En utilisant un modèle métrique, il est possible de calculer la largeur du couloir, par
exemple, à partir des données recueillies et ainsi de déterminer si ces deux positions peuvent
correspondre au même couloir.
Cependant, grâce à un modèle métrique, les perceptions peuvent être utilisées de manière
différente. En effet, dans l’utilisation précédente, sans modèle métrique, elles sont utilisées pour
Robotique Mobile - david.filliat@ensta-paristech.fr 30CHAPITRE 3. LES SOURCES D’INFORMATION
y
x
a b c
A1
I1
A2
A3 ?
I2
A3 ?
A3
I1
A1 A2
I2
?
?
Environnement
Odométrie
Modèle métrique
Pas de modèle métrique
Odométrie
Mémorisation directe
Modèle métrique
Cadre de référence commun
FIGURE 3.2 – Un modèle métrique des perceptions permettent d’inférer les valeurs qui devraient
être perçues pour des positions encore non visitées. Dans cet exemple, les données
A1 et A2 sont perçues en deux positions reliées par des données proprioceptives I1 (partie
a). L’utilisation d’un modèle métrique permet de fusionner ces informations dans un cadre de
référence commun où des objets sont représentés, ici deux murs orthogonaux (partie b, haut).
Sans modèle métrique, ces données peuvent seulement être mémorisées de manière séparée
(partie b, bas). Dans le cas de l’utilisation d’un modèle métrique, les données peuvent
ensuite être utilisées pour estimer la perception A3 pour une nouvelle position reliée à la pré-
cédente par les données proprioceptives I2. Ici, le modèle permet d’inférer que les données
A3 correspondent à un coin de murs (partie c, haut). Sans un tel modèle, seules les positions
visitées peuvent être reconnues, et aucune inférence ne peut être faite pour les positions non
visitées (partie c, bas).
caractériser l’apparence de l’environnement depuis un lieu. Cette caractérisation ne permet pas
d’identifier individuellement des objets distants du robot qui pourraient servir de points de repères,
les amers. L’utilisation d’un modèle métrique permet l’identification de tels points (cf. figure 3.1b).
La perception de ces amers permet alors, en retour, d’obtenir des informations sur la position
du robot. Cette utilisation des perceptions offre l’avantage supplémentaire de permettre au robot
d’inférer les valeurs que mesureront les capteurs dans des positions différentes, mais voisines de
sa position courante (cf. figure 3.2). Par exemple, si un robot perçoit un mur à cinq mètres devant
lui, il peut prédire qu’en avançant d’un mètre, il percevra le mur à quatre mètres. Un autre moyen
de présenter cette propriété est de dire que les perceptions seules permettent d’estimer la position
métrique relative de deux lieux (cf. figure 3.3). Ainsi, si un robot perçoit deux fois un mur devant
lui, d’abord à cinq mètres puis à quatre mètres, il pourra en déduire qu’il a avancé d’un mètre.
Cette propriété permet au robot d’estimer sa position avec précision sur une part plus importante
de son environnement et ne limite plus la localisation aux lieux déjà visités. Cet avantage est une
conséquence directe de la fusion des informations proprioceptives et des perceptions au sein
31 Robotique Mobile - david.filliat@ensta-paristech.fr3.2. INFORMATIONS EXTÉROCEPTIVES
d’une même représentation, qui permet le passage d’un type d’information à l’autre.
A1
A2
I1 = 0
A1 A2 I1?
A2
A1
a b c
Environnement
Modèle métrique
Pas de modèle métrique
Correspondance
Correspondance
DIFFERENT
I1 I1
FIGURE 3.3 – Un modèle métrique des capteurs permet d’inférer la position relative I1 de deux
lieux depuis lesquelles des perceptions A1 et A2 ont été réalisées (partie a). Cette estimation
requiert d’abord la recherche d’un objet de l’environnement commun aux deux perceptions
(partie b, haut). L’utilisation de cet objet commun rend alors possible l’estimation de la position
relative I1 des deux lieux (partie c, haut). Sans modèle métrique, seule la similarité de deux
perceptions peut être mesurée (partie b, bas). Il est alors seulement possible d’estimer si ces
deux situations peuvent correspondre au même lieu ou non, c’est-à-dire si I1 est nulle ou non
(partie c, bas).
Toutefois, la mise au point d’un tel modèle métrique peut être difficile. La relation qui lie la
valeur mesurée par un capteur à la position des objets du monde réel peut être, en effet, très
complexe. Dans le cas des capteurs à ultrasons, par exemple, si un mur se trouve juste dans l’axe
du capteur, sa distance est simplement mesurée par le temps mis par l’onde sonore pour revenir
au capteur. Mais, dans le cas où le mur est fortement incliné par rapport au capteur, l’écho peut ne
pas revenir en direction du capteur qui ne détectera alors aucun obstacle. Un autre problème vient
de la texture des murs. Un mur recouvert de textile ou d’un matériau souple renverra les échos
très différemment d’un mur de béton. En conséquence, pour une distance donnée, le capteur
percevra des distances différentes suivant le matériau des murs. Ces deux exemples montrent
que le modèle métrique associé à un capteur ne dépend pas que du capteur. Il dépend aussi
fortement de propriétés locales de l’environnement qui sont difficiles ou impossibles à prendre en
compte dans un modèle du capteur seul.
Robotique Mobile - david.filliat@ensta-paristech.fr 32CHAPITRE 3. LES SOURCES D’INFORMATION
3.3 Fusion d’informations
En résumé, les informations proprioceptives sont simples à utiliser, mais dérivent au cours du
temps, tandis que les perceptions ne dérivent pas, mais souffrent des problèmes de variabilité
perceptuelle et d’Ambiguïté.
La solution pour résoudre ces problèmes est de fusionner ces deux types d’information. Il est
par exemple possible d’utiliser les informations proprioceptives afin de distinguer deux positions
physiquement différentes mais similaires pour le système perceptif. Ainsi deux lieux, dont la position
relative mesurée par les données proprioceptives est non nulle, ne seront pas confondus.
Cette solution est celle qui est mise en œuvre dans la majorité des systèmes de navigation, car
elle permet d’utiliser les deux sources d’informations en limitant les défauts inhérents à chacune.
Ainsi la dégradation progressive des informations proprioceptives est compensée par la reconnaissance
de positions de l’environnement grâce aux perceptions. Inversement, le problème de
perceptual aliasing est réglé par l’utilisation des données proprioceptives.
Comme nous le verrons dans ce cours, il existe de nombreuses méthodes pour utiliser conjointement
les deux sources d’informations. Ces méthodes diffèrent par leur capacité à utiliser de
manière plus ou moins efficace les avantages des deux types d’informations. D’une manière gé-
nérale, la qualité d’un système de navigation dépend fortement de cette capacité.
33 Robotique Mobile - david.filliat@ensta-paristech.fr3.3. FUSION D’INFORMATIONS
Robotique Mobile - david.filliat@ensta-paristech.fr 34CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
Chapitre 4
Matériels courants en robotique mobile
4.1 Les bases mobiles
Nous présentons rapidement les différents types de bases mobiles utilisées en robotique,
en nous focalisant sur les plateformes mobiles terrestres pour le milieu intérieur. Ce cours ne
portant pas sur les méthodes de commande, nous ne rentrerons pas en détails dans les modèles
cinématiques ou dynamiques associés. Nous ne parlerons pas non plus des effecteurs permettant
au robot d’agir sur son environnement, tels que les bras articulés.
4.1.1 Holonomie
En robotique, une plateforme est dite holonome lorsque que le nombre de degrés de libertés
contrôlables est égal au nombre total de degrés de liberté.
Pour un robot se déplaçant sur un plan, il y a 3 degrés de liberté (deux translations et une rotation).
A partir d’une position donnée, une plateforme holonome devra donc pouvoir se déplacer
en avant, sur le coté et tourner sur elle-même. Cette capacité permet de contrôler très simplement
le robot car tous les déplacements imaginables sont réalisables, ce qui simplifie le problème de
planification de trajectoire.
De nombreuses plateformes simples ne sont pas holonomes. C’est par exemple le cas des
voitures, ce qui oblige à manœuvrer pour réaliser certaines trajectoires. Par exemple, il est né-
cessaire de faire un créneau pour réaliser un déplacement latéral. Ces contraintes devront donc
être prises en compte lors de la planification de trajectoires. Nous allons cependant voir quelques
mécanismes permettant d’obtenir des plateformes holonomes, ou s’en approchant.
4.1.2 Les plates-formes différentielles
Une des configurations les plus utilisées pour les robots mobiles d’intérieur est la configuration
différentielle qui comporte deux roues commandées indépendamment. Une ou plusieurs roues
folles sont ajoutées à l’avant ou à l’arrière du robot pour assurer sa stabilité (Figure 4.1). Cette
plate-forme est très simple à commander, puisqu’il suffit de spécifier les vitesses des deux roues,
35 Robotique Mobile - david.filliat@ensta-paristech.fr4.1. LES BASES MOBILES
et permet de plus au robot de tourner sur place. Cette possibilité permet de traiter dans certains
cas le robot comme un robot holonome, ce qui va simplifier la planification de déplacement et la
commande du robot.
r
l
v
ω ω1
FIGURE 4.1 – Exemple de plate-forme différentielle. Pioneer 2 DX de la société MobileRobots.
Urban Robot de la société iRobot.
L’estimation du déplacement par odométrie est également très simple à partir de la mesure
des vitesses de rotation des deux roues ω1 et ω2. Les vitesses de translation v et de rotation ω
sont en effet données par :
v =
ω1r +ω2r
2
ω =
ω1r −ω2r
2l
Ce type de plate-forme peut également être utilisé avec des chenilles ce qui fournit une capacité
de franchissement de petits obstacles intéressante (Figure 4.1). Ces plates-formes peuvent
ainsi être utilisées en extérieur ou dans des décombres. L’utilisation de chenilles conduit cependant
à une odométrie très bruitée à cause du contact mal défini entre les chenilles et le sol qui
glissent beaucoup, notamment lors des rotations. L’estimation de la direction par l’odométrie sur
ce type de plates-formes est donc en général rapidement inutilisable.
4.1.3 Les plates-formes omnidirectionnelles
Les plates-formes omnidirectionnelles permettent de découpler de manière plus nette le contrôle
de la rotation et de la translation d’un robot et sont donc quasiment holonomes.
Il existe différents types de plateformes omnidirectionnelles. Le premier utilise trois ou quatre
roues qui tournent à la même vitesse pour fournir une translation et un mécanisme qui permet
d’orienter simultanément ces roues dans la direction du déplacement souhaitée (Figure 4.2).
Le corps du robot lui-même n’effectue pas de rotation mais uniquement des translations. Ce
système permet un contrôle très simple et relativement rapide car les changement de direction
ne concernent que les roues et peuvent donc se faire très vite. Par contre ces plates-formes sont
relativement limitées en capacité de franchissement et requièrent un sol très plan.
Une deuxième catégorie de plateformes utilise des roues dites "suédoises", qui n’offrent pas
de résistance au déplacement latéral (Figure 4.3). La plateforme comporte trois roues dont les
axes sont fixes. Les déplacements dans toutes les directions et en rotation sont obtenus en faisant
varier individuellement les vitesses des roues. La plateforme tourne sur place lorsque les trois
Robotique Mobile - david.filliat@ensta-paristech.fr 36CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
FIGURE 4.2 – Exemple de plate-forme omnidirectionnelle à roues orientables.
FIGURE 4.3 – Exemple de plate-forme omnidirectionnelle à roues suédoises.
roues tournent dans le même sens, à la même vitesse. Lorsque une roue est fixe, et que les deux
autres tournent en sens opposé, la plateforme avance en direction de la roue fixe. Différentes
combinaisons de vitesses permettent d’obtenir des déplacements quelconques.
4.1.4 Les plates-formes non holonomes
Des plates-formes non holonomes, telles que les voitures, sont également utilisées en robotique
mobile (Figure 4.4). C’est plus particulièrement le cas dans le domaine des véhicules
intelligents. Ces plates-formes sont toutefois plus difficile à commander car elle ne peuvent pas
tourner sur place et doivent manœuvrer, ce qui peut être difficile dans des environnements encombrés.
La commande de ces plates-formes pour réaliser un déplacement particulier est un
problème à part entière que nous n’aborderons pas dans ce cours. Par contre, il est possible
de prendre en compte ces contraintes de manière relativement simple dans la planification (voir
chapitre III).
37 Robotique Mobile - david.filliat@ensta-paristech.fr4.1. LES BASES MOBILES
FIGURE 4.4 – Exemple de plate-forme non holonome de type Ackerman.
4.1.5 Les plates-formes à pattes
FIGURE 4.5 – Exemples de robots à pattes. Hexapode de AAI Canada, Aibo de Sony, Nao de
Aldebarran Robotics.
Des plates-formes à deux, quatre ou six pattes peuvent également être utilisée. Elle ont l’avantage
théorique de pouvoir se déplacer sur des terrains assez complexes, même si en pratique la
plupart de ces plates-formes ne fonctionnent que sur des sols plans.
Les plates-formes à six pattes sont relativement pratiques car le robot peut être en équilibre
permanent sur au moins 3 pattes, ce qui facilite le contrôle. Les plates-formes à deux ou quatre
pattes sont plus complexes à commander et le simple contrôle de la stabilité et d’une allure de
marche correcte reste aujourd’hui difficile, ce qui les rend en général relativement lentes. L’odométrie
de ce type de plates-formes est de plus généralement d’assez faible qualité. Ces différents
facteurs font que ces plates-formes sont rarement utilisées quand l’application visée a un besoin
précis de positionnement et de navigation. De telles plates-formes commencent cependant à
apparaître à relativement grande échelle (par exemple le robot Nao de Aldebarran Robotics).
Robotique Mobile - david.filliat@ensta-paristech.fr 38CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
4.2 Les capteurs
Nous présentons dans cette section les capteurs les plus couramment utilisés en robotique
mobile pour les besoins de la navigation ainsi que des modèles probabilistes associés qui seront
utilisés dans plusieurs méthodes de navigation.
4.2.1 Les capteurs proprioceptifs
Les capteurs proprioceptifs permettent une mesure du déplacement du robot. Ce sont les
capteurs que l’on peut utiliser le plus directement pour la localisation, mais ils souffrent d’une
dérive au cours du temps qui ne permet pas en général de les utiliser seuls.
Odométrie
L’odométrie permet d’estimer le déplacement de la plateforme à partir de la mesure de rotation
des roues (ou du déplacement des pattes). La mesure de rotation est en général effectuée par
un codeur optique disposé sur l’axe de la roue, ou sur le système de transmission (par exemple
sur la sortie de la boite de vitesse pour une voiture). Le problème majeur de cette mesure est
que l’estimation du déplacement fournie dépend très fortement de la qualité du contact entre la
roue (ou la patte) et le sol. Elle peut être relativement correcte pour une plate-forme à deux roues
motrices sur un sol plan de qualité uniforme, mais est en général quasiment inutilisable seule pour
un robot à chenille par exemple. Pour limiter ce problème, il peut être intéressant de positionner
le codeur optique sur une roue non motrice qui glissera moins. Notons cependant que l’erreur
de ces méthodes se retrouve en général principalement sur l’estimation de la direction du robot,
tandis que la mesure de la distance parcourue est souvent de meilleure qualité.
Modèle probabiliste
La majorité des modèles de localisation et de cartographie présentés dans ce cours (voir
chapitre III) vont faire appel à un modèle probabiliste de cette mesure. Il existe deux types de modèles
: les modèles directs (donnant la probabilité de la mesure en fonction du déplacement réel)
et les modèles inverses (donnant la probabilité du déplacement réel en fonction de la mesure).
Dans le cas de l’odométrie, la plupart des méthodes utilisent un modèle inverse afin d’interpréter
les mesures réalisées.
Il existe divers types de modèles, mais les plus simples et les plus utilisés sont des modèles
supposant que les paramètres du mouvement (direction θ et longueur d du déplacement, changement
de direction φ du robot, cf Figure 4.6, gauche) sont statistiquement indépendants et soumis
à un bruit Gaussien :
P(d,θ,φ|do,θo,φo) = e
−
d−do
σd
2
×e
−
θ−θo
σθ
2
×e
−
φ−φo
σφ
2
où d,θ,φ sont les valeurs réelles et do,θo,φo les valeurs observées.
39 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS
FIGURE 4.6 – Modèle probabiliste de l’odométrie. Paramètres du déplacement à gauche.
Exemple de densité de probabilité après un déplacement rectiligne à droite.
En général, les écarts types de ces différentes gaussiennes (σd,σθ,σφ) dépendent de la
valeur de la mesure : l’erreur sur la longueur du déplacement pourra par exemple être proportionnelle
à cette longueur :
σd = γ×d
Il est possible d’utiliser des modèles beaucoup plus fins de l’odométrie reposant sur le processus
physique utilisé pour la mesure du déplacement. Il est par exemple possible de faire une
hypothèse de bruit gaussien sur le capteur réalisant la mesure de rotation de chaque roue puis,
par calcul, d’en déduire l’erreur sur l’estimation du déplacement du robot. Cependant, une telle
précision n’est souvent pas nécessaire dans de nombreux algorithmes.
Comme nous le verrons au chapitre sur la localisation, ces modèles probabilistes peuvent être
utilisés pour générer des positions possibles du robot selon la distribution de probabilité déduite
de la mesure de l’odométrie.
Les systèmes radar doppler et optiques
Au lieu de mesurer le déplacement par des mesures sur les roues, il est possible d’utiliser
un radar pointé vers le sol qui permet de mesurer la vitesse du véhicule par effet Doppler. Il
existe aussi des systèmes optiques, basés sur le même principe que les souris d’ordinateur,
qui mesurent le déplacement du véhicule en analysant le mouvement relatif du sol (figure 4.7).
Ces systèmes présentent l’avantage d’être plus précis que la mesure passant par les roues,
notamment car ils sont indépendants des dérapages possible de ces roues. Il sont cependant en
général relativement chers et encombrants et sont assez rares sur les petites plates-formes.
Robotique Mobile - david.filliat@ensta-paristech.fr 40CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
FIGURE 4.7 – Exemple d’odomètre optique Correvit L-CE de CORRSYS- DARTON Sensorsysteme
GmbH.
Les systèmes inertiels
La mesure de déplacement potentiellement la plus fiable provient de la mesure des accélé-
rations de la plate-forme par des capteurs inertiels. Cette mesure est potentiellement fiable car
elle ne dépend pas de la nature locale de l’environnement, cependant les capteurs inertiels sont
tous entachés de bruit de mesure qui produit une dérive de l’estimation de la position au cours du
temps.
La qualité des mesures inertielles dépend très fortement du type de capteurs utilisées. Historiquement,
les premiers capteurs ont été réalisés à base de systèmes mécaniques et peuvent
fournir des mesures extrêmement précise, au prix d’un coût et d’une masse très élevés. Ces dernières
années ont vu apparaître de nouvelles technologies de capteurs, notamment basés sur
les techniques de micro-électronique, qui ont permis la réalisation de capteurs inertiels “bas coût”
et l’apparition de ces capteurs dans des produits grand public. La précision de ces capteurs est
toutefois de quelques ordres de grandeur plus faible, ce qui rend leur utilisation isolée quasiment
impossible. Ces capteurs fournissent toutefois un très bon complément à l’odométrie, notamment
pour l’estimation de la direction.
L’accélération en translation de la plate-forme est mesurée par des accéléromètres. On dispose
en général deux accéléromètres pour prendre des mesures dans deux directions perpendiculaires
du plan de déplacement du robot. Un troisième peut être disposé verticalement afin de
mesurer l’accélération en trois dimensions.
L’accélération angulaire est mesurée par des gyromètres. On dispose en général un gyromètre
selon l’axe vertical, qui permet ainsi de mesurer l’angle de lacet du robot. Deux autres
gyromètres peuvent être positionnés selon deux axes du plan de déplacement afin d’estimer la
direction en trois dimensions.
Il est également possible de mesurer la rotation du robot par rapport à un axe de référence en
utilisant un gyroscope. Cette mesure s’effectue en général par rapport à un axe de référence mis
en rotation et isolé mécaniquement le plus possible du robot, ce qui rend sa direction indépendante
de la direction du robot. Cette mesure peut être moins bruitée que l’intégration du signal
d’accélération mais dépend très fortement de la qualité de la réalisation mécanique du système,
41 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS
qui dépend très directement du prix du gyroscope.
Enfin, les magnétomètres permettent, par la mesure du champ magnétique terrestre, de dé-
duire la direction du nord. Ces capteurs peuvent utiliser différentes technologies et ont l’avantage
de fournir une direction de référence stable au cours du temps (au contraire des gyroscopes qui
dérivent). Ces capteurs sont toutefois très délicats à utiliser en intérieur car ils sont très sensibles
aux masses métalliques présentes dans les bâtiments et leur structure. En pratique, on les utilise
donc principalement en extérieur en apportant le plus grand soin à leur positionnement sur le
robot pour éviter les influences des composants du robot, notamment les moteurs électriques.
FIGURE 4.8 – Centrale intertielle Crista de Cloud Cap Technology.
L’ensemble de ces éléments (accéléromètres, gyromètres, magnétomètres) peut être réuni
pour former une centrale inertielle qui permet d’estimer complètement les six degrés de libertés
de la position dans un espace à 3 dimensions. Les centrales inertielles “bas coût” sont cependant
aujourd’hui de qualité insuffisante pour une utilisation isolée, tandis que les centrales de qualité
correcte restent très chères. Ce domaine est cependant en évolution rapide avec l’arrivée de
nouvelles technologies et l’apparition de centrales “bas coût” de bonne qualité devrait se faire
dans les prochaines années.
L’utilisation des données fournies par ce type de senseurs passe aussi en général par un modèle
probabiliste, qui peut être du type de celui présenté pour l’odométrie. Cependant, la gestion
du bruit interne de ces capteurs demande en général des modèles beaucoup plus précis, qui
estiment explicitement la dérive des capteurs afin de la corriger. Ceci permet de bénéficier de
modèles plus précis en sortie également.
4.2.2 Les télémètres
Il existe différents types de télémètres, qui permettent de mesurer la distance aux éléments
de l’environnement, utilisant divers principes physiques.
Télémètres à ultrason
Les télémètres à ultrason sont historiquement les premiers à avoir été utilisés. Il utilisent la
mesure du temps de vol d’une onde sonore réfléchie par les obstacles pour estimer la distance
Robotique Mobile - david.filliat@ensta-paristech.fr 42CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
Zone aveugle
Obstacle Télémètre
Distance mesurée
cone de diffusion de l’onde sonore
FIGURE 4.9 – Principe du télémètre à ultrasons et exemple de télémètre réel.
(Figure 4.9). Ces télémètres sont très simple et peu cher, et sont donc très répandus, mais possèdent
de nombreux inconvénients.
En premier lieu, deux télémètres voisins ne peuvent être utilisés simultanément, car il est
impossible de savoir par lequel des deux télémètres une onde réfléchie a été émise (phénomène
de “crosstalk”). Un robot possédant plusieurs télémètres doit donc les activer l’un après l’autre,
ce qui entraîne un taux de rafraîchissement global des mesures relativement faible.
Ces télémètres possèdent une “zone aveugle”, de quelques centimètres, en dessous de laquelle
ils ne peuvent détecter les obstacles. Cette zone est due a une temporisation entre l’émission
de l’onde sonore et le début de la détection de l’onde réfléchie qui est nécessaire pour ne
pas perturber cette mesure.
De plus, l’onde réfléchie est très sensible aux conditions environnementales locales. Ainsi, si
l’angle entre l’obstacle et la direction de l’onde sonore est trop faible, il n’y aura pas de retour de
l’onde sonore et l’obstacle ne sera pas perçu. L’onde de retour dépend également de la texture
de l’obstacle. Un mur couvert de moquette pourra par exemple ne pas être détecté.
Les télémètres ultrason détectent les obstacles se situant dans un cône relativement large
(d’angle au sommet d’environ 30 degrés). Cette caractéristique peut être à la fois un avantage
et un inconvénient. C’est un inconvénient car un obstacle détecté n’est pas localisé en angle
à l’intérieur du cône de détection, et on obtient donc une mesure de la position relativement
imprécise. C’est par contre un avantage car des éléments relativement fins (les pieds de table ou
de chaise par exemple) sont détectés dans ce cône, alors qu’il pourraient ne pas être détectés
par des télémètres ayant un angle d’ouverture très fin.
Télémètres à infrarouge
Les télémètres infrarouges possèdent l’avantage d’avoir un cône de détection beaucoup plus
restreint. Il utilisent une lumière infrarouge au lieu d’une onde sonore pour la détection et peuvent
être basés sur différentes techniques qui permettent de recueillir plus ou moins d’information.
Il est possible de mesurer simplement le retour ou le non-retour d’une impulsion codée, ce
43 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS
FIGURE 4.10 – Principe du télémètre infrarouge à triangulation et exemple de télémètre réel
(Sharp).
qui permet de détecter la présence ou l’absence d’un obstacle dans une certaine portion de
l’espace. Il est également possible de réaliser une triangulation sur le faisceau de retour de l’onde
lumineuse, ce qui permet d’avoir une mesure de la distance de l’obstacle (figure 4.10).
Les inconvénients de ces télémètres sont liés à leur portée, en général relativement restreinte,
et à leur sensibilité aux sources de lumières qui contiennent un fort rayonnement infrarouge. Un
projecteur du type de ceux utilisés pour la télévision pointé sur le robot, par exemple, sature en
général complètement le récepteur et empêche toute détection d’obstacle. Ils sont également
très sensibles à la couleur et à la nature de la surface de l’obstacle (par exemple, ils détectent
difficilement les vitres et les obstacles noir mats).
Télémètres laser
Les télémètres les plus utilisés à l’heure actuelle pour des applications de cartographie et de
localisation sont les télémètres laser à balayage. Ils utilisent un faisceau laser mis en rotation afin
de balayer un plan, en général horizontal, et qui permet de mesurer la distance des objets qui
coupent ce plan (Figure 4.11, 4.11). Cette mesure peut être réalisée selon différentes techniques
soit en mesurant le temps de vol d’une impulsion laser, soit par triangulation.
Les télémètres courants ont une bonne résolution angulaire car ils permettent d’obtenir une
mesure de distance tout les demi degrés, sur une zone de 180 ou 360 degrés selon les modèles.
La mesure est de plus relativement précise (avec un bruit de l’ordre de quelques centimètres) à
une distance relativement grande (plusieurs dizaines de mètres). La fréquence d’acquisition est
en général de l’ordre de la dizaine de Hertz, voire proche de la centaine pour certains modèles.
Ces télémètres sont très utilisés en environnement intérieur car il fournissent des données
abondantes et précises sur la position des objets caractéristiques de l’environnement tels que
les murs. Ils possèdent toutefois un certain nombre d’inconvénients. En premier lieu, leur zone
de perception est restreinte à un plan et ne permet donc pas de détecter les obstacles situés
hors de ce plan (un petit objet posé au sol par exemple). Ils ne peuvent pas non plus détecter les
objets ne réfléchissant pas correctement la lumière du laser (en premier lieu les vitres, mais aussi
certains objets très réfléchissants, tels que les objets chromés). Pour limiter ces inconvénients,
il est possible de les utiliser en conjonction avec des capteurs à ultrason qui ont un cône de
Robotique Mobile - david.filliat@ensta-paristech.fr 44CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
Télémètre
Mesure obtenue
FIGURE 4.11 – Illustration du principe de fonctionnement d’un télémètre Laser et un exemple
de Télémètre Laser à balayage, fournissant 720 mesure réparties sur 360 degrés, à 5 Hz
(marque Ibeo).
détection plus large et qui peuvent détecter les vitres.
Enfin, la plupart des algorithmes de cartographie et de localisation existants supposent que
le plan de mesure du télémètre laser reste horizontal et à hauteur constante, ce qui n’est plus
vrai en cas de sol irrégulier ou, dans la majorité des cas, en extérieur. Il est alors nécessaire de
passer à une localisation et une cartographie en 3D.
FIGURE 4.12 – Un exemple de télémètre laser à balayage selon 2 axes (à gauche) et de
camera permettant d’obtenir une image de profondeur de 320x240 pixels (à droite).
Il existe des télémètres laser balayant l’espace selon deux axes 4.12. Ils permettent ainsi
d’obtenir une image de distance selon un angle solide de l’ordre de quelques dizaines de degrés
dans les deux dimensions. Ces télémètres restent toutefois cher et fragile du fait de la mécanique
nécessaire au balayage. De plus, la fréquence d’acquisition est relativement faible (de l’ordre de
45 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS
quelques Hertz), ce qui pose problème lorsque le robot est en mouvement. Ces télémètres sont
donc plutôt destinés à des applications relativement statiques comme la création de modèles 3D.
Il existe également des systèmes sans balayage permettant d’obtenir une image de profondeur
de la même manière qu’une caméra couleur standard. Plusieurs technologies sont utilisées,
soit par mesure de temps de vol d’une impulsion laser ou infrarouge, soit par triangulation à partir
de projecteurs infrarouges. Ces capteurs sont récents, mais sont très intéressants pour la robotique
mobile car ils permettent d’obtenir une information dense à une fréquence assez élevée
(image de profondeur de 320x240 à 30 Hz pour la caméra Kinect par exemple, figure 4.12). Ces
informations peuvent être couplées à une image couleur, on parle alors de caméra RGBD (D pour
Depth). Il reste cependant certaines limitations, notamment pour l’emploi en extérieur où l’information
de profondeur peut être perdue à cause de la lumière du soleil qui masque la lumière
infrarouge.
FIGURE 4.13 – Un exemple de télémètre laser à balayage a 64 nappes conçu par Velodyne.
Enfin, principalement pour les véhicules intelligents, il existe un compromis qui consiste à
utiliser plusieurs nappes laser avec différentes inclinaisons afin d’avoir des modèles assez précis
de l’environnement sur 360 degrés (figure 4.13). Ces capteurs restent assez lourds et chers, mais
permettent de réaliser quasiment l’ensemble des tâches nécessaires pour un véhicule comme la
localisation, la cartographie et la détection de piétons ou de véhicules.
Modèle probabiliste
Les modèles probabilistes associés aux télémètres permettent de donner la probabilité de la
mesure en fonction de la distance réelle de l’obstacle. Pour les capteurs réalisant plusieurs mesures,
les probabilités sont en général estimées pour chacune des mesures individuelles prises
depuis une position, puis agglomérées par produit en supposant les mesures indépendantes :
P(Scan|Obstacles) =
M
∏
i=1
P(mesurei
|Obstacles)
Robotique Mobile - david.filliat@ensta-paristech.fr 46CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
FIGURE 4.14 – Modèle probabiliste de télémètre par composition d’évènements élémentaires
et exemple d’application sur des données réelles de sonars ou de télémètres laser (tiré de
[135]).
Pour estimer la probabilité d’une mesure individuelle, il est possible d’utiliser une simple loi
gaussienne autour de la distance réelle comme modèle probabiliste, mais les modèles sont en
général un peu plus évolués et utilisent une combinaison de lois qui modélisent plusieurs phénomènes
qui peuvent être responsables de la mesure (Figure 4.14) :
– la mesure effective de l’obstacle visé, modélisé par une gaussienne en général
– la perception d’un obstacle imprévu, par exemple une personne ou un objet dynamique non
présent dans la représentation du monde, modélisé par une loi décroissante telle qu’une
exponentielle
– la non détection d’un écho, qui donne une mesure à la distance maximale du télémètre,
modélisé par un pic.
Les paramètres de cette combinaison de lois peuvent être réglés manuellement ou estimés
à partir d’un ensemble de mesures, par exemple en utilisant un algorithme de maximisation de
l’espérance. Ces modèles peuvent être adaptés à tout les types de télémètres (figure 4.14).
47 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS
4.2.3 Les caméras
L’utilisation d’une caméra pour percevoir l’environnement est une méthode attractive car elle
semble proche des méthodes utilisées par les humains et fournit un grande quantité d’information
sur l’environnement. Le traitement des données volumineuses et complexes fournies par
ces capteurs est cependant souvent difficile, mais c’est une voie de recherche très explorée et
prometteuse pour la robotique.
Caméras simples
Une caméra standard peut être utilisée de différentes manières pour la navigation d’un robot
mobile. Elle peut être utilisée pour détecter des amers visuels (des points particuliers qui servent
de repère, tels que des portes ou des affiches) à partir desquels il sera possible de calculer la
position du robot. Si ces amers sont simplement ponctuels, ou de petite taille, il sera en général
simplement possible d’estimer leur direction. Dans le cas ou les amers sont des objets connus
en 2 ou 3 dimensions, il sera en général possible d’estimer complètement la position du robot par
rapport à la leur. Elle peut également être utilisée pour détecter des “guides” de navigation pour
le robot, tels que des routes ou des couloirs.
FIGURE 4.15 – Illustration du principe de base du flot optique.
Il est également possible d’utiliser globalement une image pour caractériser une position ou
un point de vue dans l’environnement. Il faudra alors comparer cette image aux nouvelles images
acquises par le robot pour savoir si le robot est revenu à cette position. Cette comparaison peut
faire appel à différentes techniques, notamment celles utilisées dans le domaine de l’indexation
d’image.
Lorsque le robot est en mouvement, il est également possible de tirer parti du flot optique
(le mouvement apparent des objets dans l’image, voir figure 4.15), afin d’avoir une estimation de
la distance des objets. En effet, les objets les plus proches ont un déplacement apparent plus
important que les objets lointains. Cette méthode permet notamment de réaliser un évitement
d’obstacles ou de réaliser une reconstruction tridimensionnelle de l’environnement (par des techniques
connues sous le nom de structure from motion, voir section 4.2.3).
Robotique Mobile - david.filliat@ensta-paristech.fr 48CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
Caméras stéréoscopiques
FIGURE 4.16 – Exemple de données fournies par des caméras stéréoscopiques.
Lorsque l’on dispose de deux caméras observant la même partie de l’environnement à partir
de deux points de vue différents, il est possible d’estimer la distance des objets et d’avoir ainsi
une image de profondeur (Figure 4.16), qui peut être utilisée pour l’évitement d’obstacles ou la
cartographie. Cette méthode suppose toutefois un minimum d’éléments saillants dans l’environnement
(ou un minimum de texture) et peut être limitée, par exemple dans un environnement dont
les murs sont peint de couleurs uniformes. La qualité de la reconstruction risque également de
dépendre fortement des conditions de luminosité. La résolution et l’écartement des deux caméras
impose également les profondeurs minimum et maximum qui peuvent être perçues, ce qui peut
être limitatif pour la vitesse de déplacement du robot.
Des techniques similaires peuvent également être utilisées pour estimer la profondeur à partir
d’une caméra en mouvement (méthodes de structure from motion, voir par exemple [67]), la
difficulté étant alors d’estimer à la fois la profondeur et les positions relatives de la caméra lors de
la prise des deux images.
Caméras panoramiques
Les caméras panoramiques (catadioptriques) sont constituées d’une caméra standard pointant
vers un miroir de révolution (par exemple un simple cône, ou un profil plus complexe qui
peut s’adapter à la résolution exacte que l’on veut obtenir sur le panorama) (figure 4.17). L’image
recueillie permet d’avoir une vision de l’environnement sur 360 degrés autour de la camera. Le
secteur angulaire vertical observé dépend de la forme du miroir et peut être adapté aux besoins
de chaque application (Figure 4.17).
Ce type de caméra est très pratique pour la navigation car une image prise par une camera
panoramique orientée verticalement permet de caractériser une position, indépendamment de la
direction du robot. En effet, pour une position donnée et pour deux orientations différentes, la
même image sera formée par la caméra, à une rotation autour du centre près, tandis que pour
une caméra standard, orientée horizontalement, la scène serait différente.
Ces caméras sont donc très pratiques lorsque l’on caractérise une position de manière globale,
mais peuvent aussi être utilisées pour détecter des amers ou pour estimer le flux optique.
Dans ce cas, toutefois, comme la géométrie de l’image formée est relativement complexe et
49 Robotique Mobile - david.filliat@ensta-paristech.fr4.2. LES CAPTEURS
FIGURE 4.17 – Principe des caméras panoramiques catadioptriques, exemple d’image obtenue
et illustration du flux optique.
comme la résolution obtenue varie énormément selon la direction observée, les algorithmes
doivent être adaptés, ce qui pose un certain nombre de problèmes.
Concernant le flux optique, cependant, les caméras panoramiques possèdent l’avantage de
contenir toujours le point d’expansion et le point de contraction dans l’image, ce qui rend l’estimation
du mouvement beaucoup plus aisée (figure 4.17).
4.2.4 Autres capteurs
Les capteurs tactiles
Les robots peuvent être équipés de capteurs tactiles, qui sont le plus souvent utilisés pour
des arrêts d’urgence lorsqu’il rencontre un obstacle qui n’avait pas été détecté par le reste du
système de perception.
Ces capteurs peuvent être de simples contacteurs répartis sur le pourtour du robot. Il ne
détectent alors le contact qu’au dernier moment. Il est également possible d’utiliser des petites
tiges arquées autour du robot pour servir d’intermédiaire à ces contacteurs, ce qui permet une
Robotique Mobile - david.filliat@ensta-paristech.fr 50CHAPITRE 4. MATÉRIELS COURANTS EN ROBOTIQUE MOBILE
détection un peu plus précoce et donne ainsi plus de marge pour arrêter le robot.
Les balises
Dans certaines applications, il est également possible d’utiliser des balises dont on connaît la
position, et qui pourront être facilement détectées par le robot, afin de faciliter sa localisation.
Des techniques très diverses peuvent être utilisées pour ces balises. On peut par exemple
utiliser un signal radio, émis de manière omnidirectionnel par la balise. Le robot sera alors équipé
d’une antenne directionnelle qui lui permettra de détecter la direction des différentes balises, afin
de déduire sa position par triangulation.
On peut également utiliser des codes couleurs ou des codes barres qui pourront être détectés
par une caméra.
Le GPS
Les besoins de localisation étant omniprésents dans de très nombreux secteurs de la vie
actuelle, l’idée d’avoir un système de localisation le plus universel possible à donné lieu à l’apparition
du Global Positionning System (GPS). C’est un système de balises dont on a placé les
balises sur des satellites en orbite terrestre et qui est par conséquent accessible de quasiment
partout à la surface du globe. Ce système permet donc d’avoir une mesure de sa position dans
un repère global couvrant la terre avec une précision variant de quelques dizaines de mètres à
quelques centimètres suivant les équipements.
Ce système est cependant loin de résoudre tous les problèmes de localisation des robots mobiles.
Il fonctionne en effet difficilement dans des environnements urbains, et n’est pas utilisable
à l’intérieur des bâtiments. Sa précision est de plus souvent trop faible pour qu’un robot terrestre
puissent utiliser ces informations seules. En pratique, il est souvent couplé à un système inertiel
qui permet de palier aux pertes du signal GPS et il ne remplace de toute façon pas les capteurs
du robot qui lui permettent de percevoir son environnement immédiat, qui constitue la source
d’information principale pour la navigation à court terme (par exemple l’évitement d’obstacles, par
opposition à la navigation à long terme qui consiste à rejoindre un but distant).
4.3 Pour aller plus loin
Sensors for Mobile Robots : Theory and Application, Everett
Une version en ligne est disponible :
http://www-personal.engin.umich.edu/~johannb/my_book.htm
51 Robotique Mobile - david.filliat@ensta-paristech.fr4.3. POUR ALLER PLUS LOIN
Robotique Mobile - david.filliat@ensta-paristech.fr 52Deuxième partie
Navigation réactive
53 Robotique Mobile - david.filliat@ensta-paristech.frDans cette partie, nous présentons différentes stratégies de navigation réactive. Ces stratégies
peuvent être utilisées dans des architectures de contrôle purement réactives, mais aussi
comme modules de bas-niveau dans une architecture hybride. Par définition, les stratégies de
navigation réactives n’utilisent que les valeurs courantes des capteurs (ou des valeurs sur une
petite fenêtre temporelle), et non des données provenant d’un modèle interne, pour décider de
l’action à effectuer.
55 Robotique Mobile - david.filliat@ensta-paristech.frRobotique Mobile - david.filliat@ensta-paristech.fr 56CHAPITRE 5. NAVIGATION VERS UN BUT
Chapitre 5
Navigation vers un but
Nous commençons ici par des méthodes de navigation correspondant aux deux premières
catégories de stratégies de navigation définies dans le chapitre 2, c’est à dire l’approche d’un but
défini par un objet ou une configuration d’amers.
5.1 Véhicules de Braitenberg
Dans son livre “Vehicles : Experiments in Synthetic Psychology”, Valentino Braitenberg [19]
décrit une série d’expériences dans lesquelles des robots extrêmement simples peuvent montrer
des comportements complexes, qu’un observateur humain associe en général à différents types
d’émotions telles que la peur ou l’agression. Nous nous intéressons ici simplement à la structure
de ces robots, qui permet de réaliser simplement des comportements pour rejoindre un but visible.
Cette structure est devenue l’archétype des méthodes réactives simples.
But
M1
M2
C1
C2
FIGURE 5.1 – Dans les véhicules de Braitenberg, la vitesse de chacun des deux moteurs du
robot dépend de la valeurs de deux capteurs qui détectent la lumière émise par le but.
Dans le livre de Braitenberg, le but est matérialisé par une lumière, visible depuis tout l’environnement.
Le robot est simplement une plate-forme différentielle, constituée de deux roues dont
57 Robotique Mobile - david.filliat@ensta-paristech.fr5.2. MODÈLE DE CARTWRIGHT ET COLLET
on commande les vitesses de rotation et munie de deux capteurs de lumière situés de part et
d’autre de l’avant du robot (Figure 5.1). L’architecture interne du robot est simplement constituée
de liens entre ces capteurs et les moteurs qui permettent de calculer la vitesse des moteurs en
fonction des valeurs des capteurs.
En faisant varier les paramètres des connexions, il est alors possible de définir différents
comportements du robot. Si la vitesse de chaque moteur est reliée à la valeur du capteur du coté
opposé avec un coefficient positif, le robot se dirigera naturellement vers le but. Si, par contre,
la vitesse de chaque moteur est reliée à la valeur du capteur du même coté avec un coefficient
positif, le robot fuira le but.
Ces véhicules réalisent simplement une remontée ou une descente de gradient sur l’intensité
de la lumière. Ils correspondent à un simple contrôleur proportionnel en automatique et sont donc
relativement sujets à des oscillations dans le comportement du robot. Ils supposent de plus que
le but est visible depuis tout l’environnement, ce qui est rarement le cas en pratique. Ce modèle
est donc intéressant car c’est la méthode la plus simple possible pour réaliser un déplacement
vers un but, mais est difficile à utiliser dans une application réelle.
5.2 Modèle de Cartwright et Collet
Le “snapshot model” a été conçu pour expliquer comment des abeilles peuvent utiliser des
informations visuelles pour rejoindre un point donné de l’environnement. Il permet à un robot de
rejoindre un but dont la position est définie par la configuration d’amers de l’environnement autour
de ce but.
Amer
Amer
Amer
FIGURE 5.2 – Exemple de snapshot caractérisant la position du but. Le robot mémorise un
panorama contenant la position et la taille apparente des amers.
Le système perceptif du robot doit lui permettre de détecter la direction et la taille des amers
autour de lui. Le robot commence par mémoriser le but en enregistrant la configuration des amers
vus depuis la position de ce but (un snapshot, Figure 5.2).
Robotique Mobile - david.filliat@ensta-paristech.fr 58CHAPITRE 5. NAVIGATION VERS UN BUT
Perception courantes
Perceptions depuis le but
FIGURE 5.3 – Pour atteindre le but, chaque amer perçu est associé à un des amers mémorisés.
Pour chaque appariement, on déduit un vecteur tangentiel dont la norme augmente
avec l’écart entre amer perçus et mémorisés. La somme de ces vecteurs donne la direction à
prendre pour atteindre le but.
Lorsque, par la suite, le robot veut rejoindre ce but, il prend une nouvelle image des amers
et, par comparaison entre la configuration courante et la configuration mémorisée au but, il peut
déduire de manière très simple la direction dans laquelle se déplacer pour atteindre le but. Cette
comparaison est basée sur un appariement entre les amers perçus et les amers mémorisés,
chaque appariement permettant de calculer un vecteur dont la somme, pour tous les appariements
d’amers, donne la direction à prendre pour rejoindre le but (Figure 5.3). Le robot effectue
alors un déplacement de longueur fixée dans cette direction puis recommence le processus tant
que le but n’est pas atteint.
Là encore, le système est très simple et réalise une descente de gradient sur la configuration
des amers afin d’atteindre le but. Il ne fonctionne cependant pas sur l’ensemble de l’environnement
et la qualité du comportement obtenu dépend beaucoup de la configuration des amers
qui sont utilisés, un ensemble d’amers lointains et bien répartis tout autour du robot donnant les
meilleurs résultats. La qualité de l’appariement entre les amers est également primordiale, en
effet, si un amer perçu est associé au mauvais amer mémorisé, le vecteur de déplacement déduit
sera faux. Le modèle original supposait des amers noirs sur fond blanc, sans identité particulière,
pour lequel l’appariement est relativement hasardeux. Il n’est donc pas applicable en pratique.
D’autres travaux ont utilisé des amers colorés et différentes contraintes sur l’appariement qui
permettent une meilleur robustesse et sont donc applicables à des robots réels [58].
La plupart des implantations de ce modèles supposent de plus que la direction du robot est
connue afin de faciliter l’appariement. Avoir une estimation correcte de cette direction peut se
révéler difficile en pratique.
59 Robotique Mobile - david.filliat@ensta-paristech.fr5.3. ASSERVISSEMENT VISUEL
5.3 Asservissement visuel
L’asservissement visuel [30] (document disponible en ligne 1
) est une technique d’asservissement
de la position d’un robot qui est basée directement sur l’information extraite d’une image,
sans modélisation intermédiaire de l’environnement. Développées à l’origine pour la commande
des robots manipulateurs, ces techniques permettent également la commande de robots mobiles.
FIGURE 5.4 – Illustration du principe de l’asservissement visuel : l’erreur entre une image
courante et une image but (écart entre les croix rouges et vertes ici) est utilisée pour calculer
une commande qui permettra au robot d’atteindre la position correspondant à l’image but.
Dans ces approches, le but à atteindre est spécifié par l’image que le robot devra percevoir
depuis cette position. Différentes mesures sont réalisées sur cette image (par exemple la détection
de points d’intérêts) et la commande du robot est conçue pour amener à 0 l’écart entre la
mesure réalisée sur l’image courante et la mesure réalisée sur l’image cible (figure 5.4). Les choix
de mesures dans l’image et de la loi de commande peuvent être très variés, et vont conditionner
les trajectoires obtenues par le robot, leur stabilité, leur robustesse aux mauvaises perceptions
ou aux mauvaises modélisations du système, etc...
Nous ne détaillerons pas ici ces approches, mais il existe plusieurs applications intéressantes
en robotique mobile [15, 123, 34]. Notons que ces modèles sont souvent étendus pour fournir une
navigation à long terme en enchainant des tâches de contrôle local sur des séquences d’images.
Par exemple, [15] présente un système permettant de guider un robot en environnement intérieur
à partir du suivi de motifs détectés sur le plafond par une caméra pointée à la verticale. En
enchaînant des asservissements sur une séquence d’images, ce système permet au robot de
refaire une trajectoire qui a été montrée au préalable par un opérateur. De même, [123] et [34]
réalisent le guidage d’un véhicule en extérieur à l’aide d’une caméra pointée vers l’avant.
1. http://www.irisa.fr/lagadic/pdf/2002_hermes_chaumette.pdf
Robotique Mobile - david.filliat@ensta-paristech.fr 60CHAPITRE 6. ÉVITEMENT D’OBSTACLES
Chapitre 6
Évitement d’obstacles
L’évitement d’obstacles est un comportement de base présent dans quasiment tous les robots
mobiles. Il est indispensable pour permettre au robot de fonctionner dans un environnement
dynamique et pour gérer les écarts entre le modèle interne et le monde réel.
Les méthodes que nous présentons sont efficaces à condition d’avoir une perception correcte
de l’environnement. Elles seront par exemple très efficaces avec un télémètre laser, mais donneront
des résultats plus bruités avec des sonars. Pour limiter ce problème, il est possible d’appliquer
ces méthodes sur une représentation locale (c’est-à-dire de l’environnement proche du robot et
centrée sur le robot) de l’environnement qui sera construite en fonction des données de quelques
instants précédents. Cette représentation intermédiaire permettra de filtrer une grande partie du
bruit des données individuelles (en particulier pour les sonars).
Il faut également faire attention à ce que les capteurs détectent tous les obstacles. Par
exemple un laser à balayage ne verra pas les objets au dessous ou au dessus de son plan
de balayage, et pourra voir du mal à percevoir les vitres. Pour cette raison, on utilise souvent une
nappe laser couplée à des sonars, ou un système de plusieurs nappes laser inclinées.
6.1 Méthode des champs de potentiel
Dans la méthode d’évitement d’obstacles par champs de potentiels, on assimile le robot à une
particule se déplaçant suivant les lignes de courant d’un potentiel créé en fonction de l’environnement
perçu par le robot. Ce potentiel traduit différents objectifs tels que l’évitement d’obstacles ou
une direction de déplacement préférée. Il est calculé par sommation de différentes primitives de
potentiels traduisant chacun de ces objectifs (Figure 6.1). Ces différents potentiels peuvent avoir
une étendue spatiale limitée ou non (par exemple, n’avoir une influence que près des obstacles)
et leur intensité peut dépendre ou non de la distance.
Le gradient de ce potentiel donne, en chaque point de l’espace, la direction de déplacement
du robot (Figure 6.1). Comme c’est ce gradient, et non la valeur absolue du potentiel, qui nous
intéresse, il est possible de calculer directement en chaque point sa valeur par une simple somme
vectorielle en ajoutant les valeurs issues des différents potentiels primitifs. Ainsi, pour un robot
se déplaçant en ligne droite en espace ouvert et évitant les obstacles qu’il peut rencontrer, nous
61 Robotique Mobile - david.filliat@ensta-paristech.fr6.1. MÉTHODE DES CHAMPS DE POTENTIEL
Déplacement selon
une direction
Eloignement d’une
paroi
Répulsion
d’un point
Attraction
vers un point
Potentiel
Ligne de
courant
FIGURE 6.1 – Illustration de potentiels primitifs dont la combinaison guide les déplacements
du robot. Le robot se déplacera selon les lignes de courant.
FIGURE 6.2 – Illustration de la combinaison de différents potentiels primitifs.
obtenons par exemple les lignes de courant illustrées figure 6.2.
De plus, dans la pratique, pour l’évitement d’obstacles, le potentiel est en général calculé dans
l’espace relatif au robot et ne sert qu’a décider de la vitesse et de la direction courante. Il n’est
donc nécessaire de l’estimer que pour la position courante du robot, en sommant simplement la
contribution des différents éléments perçus (Figure 6.3).
Le principal inconvénient de cette méthode d’évitement d’obstacles est l’existence, pour certaines
configurations d’obstacles (relativement courantes) de minimum locaux du potentiel qui ne
permettent pas de décider de la direction à prendre (Figure 6.3). Ce problème peut être traité de
différentes façons. Il est par exemple possible de déclencher un comportement particulier lorsque
l’on rencontre un tel minimum (déplacement aléatoire, suivi de murs ....). Il est aussi possible
d’imposer que le potentiel calculé soit une fonction harmonique, ce qui garanti qu’il n’ait pas de
minima, mais rend son estimation beaucoup plus lourde en calcul.
Le principe de ces champs de potentiels est formalisé sous le nom de schéma moteur par R.
Arkin [4]. Pour lui, un schéma moteur est une action définie sous forme de potentiel en fonction
des perceptions du robot. Ces schémas sont utilisés comme contrôleur de bas niveau dans une
architecture hybride.
Robotique Mobile - david.filliat@ensta-paristech.fr 62CHAPITRE 6. ÉVITEMENT D’OBSTACLES
FIGURE 6.3 – Gauche : Illustration de la combinaison de différents potentiels primitifs dans
l’espace relatif au robot. Droite : Exemple de minimum local dans un champ de potentiel.
6.2 Méthode Vector Field Histogram
La méthode "Vector Field Histogram" [17] a été conçue spécifiquement pour utiliser une grille
d’occupation locale construite a partir de capteurs à ultrasons. Cette grille est construite de manière
très rapide par la méthode "Histogrammic in motion mapping" (voir section 11.2.3) qui produit
une grille dont chaque cellule contient un nombre d’autant plus élevé qu’elle a souvent été
perçue comme contenant un obstacle (Figure 6.4 haut).
Un histogramme représentant l’occupation de l’environnement autour du robot est ensuite
construit à partir de cette grille d’occupation locale. Pour cela, l’environnement est discrétisé en
secteurs angulaires pour lesquels la somme des valeurs des cellules est calculée (figure 6.4 bas).
Un seuil permettant de tolérer un certain bruit est ensuite utilisé pour déterminer les directions
possibles pour le robot : toutes les directions dont la valeur est inférieure au seuil sont considé-
rées. Le choix de la direction est finalement réalisé parmi les directions possibles en fonction de
contraintes externes (par exemple la direction la plus proche de la direction du but).
Cette méthode est extrêmement rapide (elle fonctionne sur un PC 386 à 20MHz !) et a permis
historiquement un déplacement réactif à des vitesses assez élevées (environ 1 m/s). Diverses
améliorations pour permettre le réglage de la vitesse du robot en fonction de la densité des
obstacles ou de la largeur de l’espace angulaire libre sont possibles.
6.3 Méthode de la fenêtre dynamique
La méthode de la fenêtre dynamique [47] permet de sélectionner une trajectoire locale du robot
qui va éviter les obstacles et dont les variations dans le temps vont respecter des contraintes
telles que les capacités de freinage maximales du robot. Pour appliquer l’algorithme, les trajectoires
locales sont paramétrées et peuvent prendre des formes différentes en fonction des
contraintes d’holonomie du robot par exemple. Une méthode simple applicable à de nombreuses
plateformes est d’utiliser les vitesses de translation et de rotation du robot.
La méthode de la fenêtre dynamique permet donc, à partir de la perception locale de l’environnement,
de sélectionner un couple (v,ω) de vitesses de translation et de rotation du robot
qui répond à différentes contraintes, dont celle d’éviter les obstacles. Un tel couple de vitesses,
63 Robotique Mobile - david.filliat@ensta-paristech.fr6.3. MÉTHODE DE LA FENÊTRE DYNAMIQUE
Obstacle
+1
+1
2
6 5
5 3 8
5 3
6 8
1
1
2
6 5
5 3 8
5 3
6 8
1
1
0
1
...
11
...
0 11
Seuil
Secteur
Somme des cellules
FIGURE 6.4 – Partie supérieure : Grille d’occupation locale construite par la méthode "Histogrammic
in motion mapping". La grille est construite dans le référentiel du robot : un compteur
est incrémenté pour chaque cellule appartenant au secteur angulaire dans lequel un obstacle
a été détecté et les valeurs sont déplacées d’une cellule à l’autre en fonction des déplacements
du robot. Partie Inférieure : Utilisation de l’histogramme des obstacles pour déterminer
la direction de déplacement du robot.
Robotique Mobile - david.filliat@ensta-paristech.fr 64CHAPITRE 6. ÉVITEMENT D’OBSTACLES
lorsqu’il est appliqué au robot, produit une trajectoire circulaire, pour laquelle la satisfaction des
différentes contraintes peut être évaluée. A l’issu de l’évaluation de toutes les contraintes pour
tous les couples de vitesses possibles, la méthode de la fenêtre dynamique permet de sélectionner
le couple le plus pertinent (qui répond le mieux aux contraintes).
v2,ω2 = succès
v1,ω1 = échec
Environnement réel Perceptions du robot
v2,ω2
v1,ω1
FIGURE 6.5 – Contrainte d’évitement d’obstacles pour la méthode de la fenêtre dynamique.
La première contrainte est la contrainte d’évitement d’obstacles. C’est une contrainte dure au
sens ou elle est binaire (succès / échec) et doit obligatoirement être satisfaite. Elle est évaluée
pour chacune des trajectoires possibles à partir de la perception locale de l’environnement à
un instant donné et de la position estimée du robot à un pas de temps fixé dans le futur pour
la trajectoire courante. Si le robot n’a pas rencontré d’obstacles à cet horizon, la contrainte est
respectée ; dans le cas contraire, elle ne l’est pas (Figure 6.5).
ω
v
ωmin ωmax
vmax
Vitesses conduisant
à percuter un obstacle
Vitesses conduisant
à un déplacement sur
Vitesses courantes Vitesses accessibles au
prochain pas de temps
FIGURE 6.6 – Fenêtre de sélection des vitesses tenant compte de la dynamique du robot.
Le respect ou le non respect de cette contrainte est reporté dans un graphe des vitesses qui
indique, pour chaque couple de vitesses possible (donc chaque trajectoire), si le robot va ou ne va
pas rencontrer un obstacle (Figure 6.6). Dans ce graphe, il est alors possible de tracer la fenêtre
des vitesses accessibles au prochain pas de temps à partir des vitesses courantes du robot et
65 Robotique Mobile - david.filliat@ensta-paristech.fr6.3. MÉTHODE DE LA FENÊTRE DYNAMIQUE
des valeurs d’accélération et décélération maximales. C’est cette fenêtre qui donne son nom à la
méthode car elle permet de prendre en compte la dynamique du robot (à travers la capacité de
freinage et d’accélération). Il reste alors à choisir, au sein de cette fenêtre, un couple de vitesses
qui ne conduise pas à percuter un obstacle pour garantir un déplacement sûr du robot.
ω
v
ωmin ωmax
vmax
Direction préférentielle
FIGURE 6.7 – Contrainte “souple” exprimant une préférence sur la direction à prendre.
Pour faire le choix parmi toutes les vitesses possibles au sein de cette fenêtre, il est possible
d’utiliser des contraintes “souples” supplémentaires pour exprimer des préférences au sein de cet
espace des vitesses accessibles. Ces contraintes s’expriment par une fonction de coût G(v,ω)
qui est en général la somme de plusieurs termes. Ces termes peuvent exprimer une préférence
a priori sur les vitesses, une préférence pour les trajectoires s’éloignant le plus des obstacles, ou
une préférence de direction si l’on dispose par exemple d’une estimation de la direction d’un but
à long terme (Figure 6.7). Le couple de vitesses minimisant ce coût au sein de la fenêtre est alors
sélectionné. Il garantit un déplacement sans rencontrer d’obstacles et le meilleur respect possible
des contraintes souples dans ce cadre.
Dans la pratique, les valeurs des différentes contraintes sont évaluées en différents points du
graphe des vitesses, le nombre de points dépendant notamment de la puissance de calcul disponible
et de la complexité de l’évaluation de chaque contrainte. L’utilisation de la fenêtre dynamique
est très intéressante pour un robot se déplaçant rapidement, ou pour un robot ayant des capacités
d’accélération et de ralentissement limitées. Elle permet alors de produire un déplacement du
robot sûr et régulier. Pour des robots qui ont une forte capacité d’accélération et de décélération
(par exemple un robot léger avec de bons moteurs électriques), on peut considérer que toutes les
vitesses sont accessibles presque instantanément. Il peut alors être suffisant de ne considérer
que la cinématique, et non la dynamique, ce qui se traduit par la prise en compte d’un seul point
du graphe, et non d’une fenêtre. La recherche du couple de vitesse est ainsi simplifiée.
Robotique Mobile - david.filliat@ensta-paristech.fr 66CHAPITRE 7. APPRENTISSAGE PAR RENFORCEMENT
Chapitre 7
Apprentissage par renforcement
Les méthodes que nous avons vu jusqu’à présent sont des associations entre perceptions
et actions conçues par des ingénieurs. Or il existe des techniques d’apprentissage (notamment
l’apprentissage par renforcement) permettant de créer des associations de ce type à partir d’informations
d’assez haut niveau sur la tâche à réaliser.
L’apprentissage par renforcement est une méthode qui permet de trouver, par un processus
d’essais et d’erreurs, l’action optimale à effectuer pour chacune des situations que le robot va
percevoir afin de maximiser une récompense. C’est une méthode d’apprentissage orientée objectif
qui va conduire à un contrôleur optimal pour la tâche spécifiée par les récompenses. Cette
méthode est de plus non supervisée car la récompense ne donne pas l’action optimale à réaliser
mais simplement une évaluation de la qualité de l’action choisie. Elle permet enfin de résoudre les
problèmes de récompense retardée pour lesquels il faut apprendre a sacrifier une récompense à
court terme pour obtenir une plus forte récompense à long terme et donc apprendre de bonnes
séquences d’actions qui permettront de maximiser la récompense à long terme.
Du fait de toutes ces caractéristiques, l’apprentissage par renforcement est une méthode
particulièrement adaptée à la robotique.
7.1 Formalisation
Le problème de l’apprentissage par renforcement pour un agent se formalise à partir des
éléments suivants :
– Un ensemble d’états S correspondant à la perception que l’agent a de l’environnement,
– Un ensemble d’actions possibles A ,
– Une fonction de récompense R : {S,A} → R.
L’agent va interagir avec son environnement par pas de temps discrets, en percevant l’état
de l’environnement st
, en choisissant une action at en fonction de cet état et en recevant la
récompense rt+1 associée (Figure 7.1).
L’évolution du robot dans son environnement est régi par un Processus de Décision Markovien
(MDP en anglais) qui décrit l’évolution de l’état et de la récompense en fonction des actions du
robot. Ce MDP (7.2), qui spécifie complètement la tâche du robot par le jeu des récompenses, se
67 Robotique Mobile - david.filliat@ensta-paristech.fr7.1. FORMALISATION
Environnement
état S
récompense R
action A
FIGURE 7.1 – Formalisation du problème d’apprentissage par renforcement.
décrit simplement à l’aide de deux fonctions :
– Une fonction de transition P
a
ss0 = P(st+1 = s
0
|st = s,at = a) qui donne la probabilité de
passer dans l’état s
0
lorsque l’agent effectue l’action a dans l’état s,
– Une fonction de récompense R
a
ss0 = E(rt+1|st = s,at = a,st+1 = s
0
) qui donne la récompense
moyenne lorsque l’agent passe de l’état s à s
0 en faisant l’action a.
FIGURE 7.2 – Exemple de MDP très simple. Chaque case correspond à un état et, pour
chaque état, 4 actions sont possibles qui conduisent aux cases voisines. La récompense est
nulle partout, sauf pour les actions qui mènent à la case "S", pour lesquelles la récompense
est 1.
Le comportement de l’agent est défini par une politique π : {S,A} → [0,1], qui guide l’agent
de manière probabiliste en spécifiant, pour chaque état s la probabilité de réaliser l’action a (et
donc ∑a π(s,a) = 1). Le but de l’apprentissage par renforcement va être de trouver la politique
optimale π
∗ maximisant la récompense à long terme 1
.
1. L’apprentissage par renforcement n’utilise que l’état courant pour prendre une décision, il suppose donc que
toute l’information nécessaire est contenue dans cet état. Le problème est donc considéré comme étant Markovien,
ce qui est rarement le cas en pratique en robotique. Si le problème est non markovien, c’est a dire si pour un
même état deux actions différentes sont optimales en fonction d’une variable inconnue au robot, l’apprentissage par
Robotique Mobile - david.filliat@ensta-paristech.fr 68CHAPITRE 7. APPRENTISSAGE PAR RENFORCEMENT
La récompense à long terme, que nous appellerons revenu Rt
, peut être définie de différentes
manières en fonction de la tâche considérée. Si la tâche consiste à répéter des épisodes qui
durent un nombre de pas de temps fixe, le revenu pourra être la somme des récompenses instantanées
pendant un épisode. Si au contraire la tâche se déroule de manière continue, le revenu
pourra se définir comme la somme des récompenses futures pondérées par une exponentielle
décroissante :
Rt =
∞
∑
k=0
γ
k
rt+k+1
où γ ∈ [0,1] est un facteur indiquant l’importance que l’on accorde aux récompenses futures.
Les algorithmes d’apprentissage par renforcement que nous verrons plus loin utilisent quasiment
tous une fonction de valeur V
π
(Figure 7.3) qui permet, pour une politique π donnée,
d’estimer le revenu moyen (les récompenses futures) pour un état donné si l’on suit la politique
considérée :
V
π
(s) = Eπ(Rt
|st = s)
FIGURE 7.3 – La fonction de valeur optimale dans notre exemple : pour chaque état, le niveau
de gris indique la récompense à long terme qui sera obtenue en prenant le chemin le plus
court vers le but.
Ces fonctions de valeurs peuvent aussi se définir non pas pour un état mais pour un état et
une action réalisée dans cet état :
Q
π
(s,a) = Eπ(Rt
|st = s,at = a)
La fonction de valeur pour un état s étant la moyenne des Q
π
(s,a), pondérées par la probabilité
de chaque action :
V
π
(s) = ∑a
π(s,a)Q
π
(s,a)
renforcement fournira la politique optimale, mais seulement dans l’ensemble des politiques “myopes”, n’ayant pas
toutes les informations pour une décision optimale.
69 Robotique Mobile - david.filliat@ensta-paristech.fr7.1. FORMALISATION
Une propriété essentielle de ces fonctions de valeur va permettre de créer les différents algorithmes
d’apprentissage, il s’agit de la relation de récurrence connue sous le nom d’équation de
Bellman :
V
π
(s) = ∑a
π(s,a)∑
s
0
P
a
ss0
R
a
ss0 +γV
π
(s
0
)
Cette équation traduit une cohérence de la fonction de valeur en reliant la valeur d’un état à
la valeur de tous les état qui peuvent lui succéder . Elle se déduit simplement de la définition de
v
π de la manière suivante :
V
π
(s) = Eπ(Rt
|st = s)
= Eπ(
∞
∑
k=0
γ
k
rt+k+1|st = s)
= Eπ(rt+1 +γ
∞
∑
k=0
γ
k
rt+k+2|st = s)
= ∑a
π(s,a)∑
s
0
P
a
ss0
"
R
a
ss0 +γEπ
∞
∑
k=0
γ
k
rt+k+2|st+1 = s
0
!#
= ∑a
π(s,a)∑
s
0
P
a
ss0
R
a
ss0 +γV
π
(s
0
)
La fonction de valeur permet de caractériser la qualité d’une politique, elle donne, pour chaque
état, le revenu futur si l’on suit cette politique. Elle permet également de comparer les politiques
en définissant un ordre partiel :
π ≥ π
0 ⇔ ∀s,V
π
(s) ≥ V
π
0
(s)
Cet ordre permet de définir la fonction de valeur de la politique optimale (Figure 7.3) que
l’apprentissage par renforcement va chercher à estimer :
V
?
(s) = max
π
V
π
(s)
fonction qui peut aussi s’exprimer pour un couple état-action :
Q
?
(s,a) = max
π
Q
π
(s,a)
avec la relation suivante :
Q
?
(s,a) = E(rt+1 +γV
?
(st+1)|st = a,at = a)
Il est également possible d’écrire une relation de récurrence pour la fonction de valeur optimale
qui sera légèrement différente de l’équation de Bellman. On parle alors d’équation d’optimalité
de Bellman, qui peut s’écrire :
V
∗
(s) = max
a
E (rt+1 +γV
∗
(st+1)|st = s,at = a)
= max
a ∑
s
0
P
a
ss0
R
a
ss0 +γV
∗
(s
0
)
Robotique Mobile - david.filliat@ensta-paristech.fr 70
Intelligence Artificielle et Syst`emes Multi-Agents
Badr Benmammar
To cite this version:
Badr Benmammar. Intelligence Artificielle et Syst`emes Multi-Agents. Ecole d’ing´enieur. 2009. ´
HAL Id: cel-00660507
https://cel.archives-ouvertes.fr/cel-00660507
Submitted on 16 Jan 2012
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.Intelligence Artificielle
et
Systèmes Multi-Agents
Badr Benmammar
bbm@badr-benmammar.comPlan
La première partie : L’intelligence artificielle (IA)
Définition de l’intelligence artificielle (IA)
Domaines d’application de l’IA
La reconnaissance de formes
Le traitement automatique des langues
Les systèmes experts
L’apprentissage automatique
L’intelligence artificielle distribuée (IAD)Plan
La deuxième partie : La technologie Agent
Définition d’un agent
Les agents intelligents et les agents mobiles
Les caractéristiques multidimensionnelles d’un agent
Architecture concrète pour un agent
Les agents logiques
Les agents réactifs
Les agents BDI
Les agents multi-niveaux
Modèle type d’un agentLa première partie :
L’intelligence artificielle (IA)Définition de l’intelligence artificielle (IA)
L’IA Désigne la simulation des mécanismes de la pensée par un
ordinateur
La faculté de reproduire un raisonnement par des moyens informatiques
Un ensemble de réalisations et de recherches qui essaient d'imiter
artificiellement les performances humaines
L'émergence des systèmes ''adaptatifs''Domaines d’application de l’IA
Systèmes
experts
Apprentissage
automatique
Traitement
automatique des
langues
Reconnaissance des
formes, des visages et la
vision en généralLa reconnaissance de formesLa reconnaissance de formes RdF
La reconnaissance de formes (ou parfois reconnaissance de
motifs) est un ensemble de techniques et méthodes visant à
identifier des motifs à partir de données brutes afin de prendre
une décision dépendant de la catégorie attribuée à ce motif.Définition
L’homme est le plus parfait des systèmes de RdF.
Reconstitution sur «machine» des fonctions typiquement
humaines:
Perception ;
Analyse et représentation ;
Interprétation.Analogies Système de RdF
Composantes d’un système de RdF :
Mécanique (satellite, bras d’un robot, …)
Saisie (caméra, scanner, micro, …)
Electronique (carte mémoire, CPU, …)
ALGORITHMIQUEProcessus de RdF
Les informations issues du monde réel sont généralement :
trop volumineuses
peu pertinentes
Le processus de RdF est un processus de réduction progressive et sélective
de l’informationProcessus de RdF
Etapes de traitement d’un processus de RdF:
Prétraitements
binarisation, segmentation, élimination du bruit, normalisation, …
Extraction des informations pertinentes
parole: fréquence, …
image: contours, …
Représentation de ces informations en vue de leur classification
vecteur, graphe,
Classification de la forme
apprentissage/décision,
+_ Quantité d’informationsLe traitement automatique des
languesLe traitement automatique des langues
Le Traitement automatique des langues est une discipline à
la frontière de :
La linguistique ;
L’informatique ;
L’intelligence artificielle.
Concerne l’application de programmes et techniques
informatiques à tous les aspects du langage humain. Applications
La traduction automatique ;
La correction orthographique ;
La recherche d'information et la fouille de textes ;
Le résumé automatique de texte ;
La génération automatique de textes ; Fouille de Texte (Text Mining)Qu’est-ce que le Text Mining ?
Le Text Mining est l’ensemble des :
Technologies et méthodes
… destinées au traitement automatique
… de données textuelles
… disponibles sous forme informatique,
… en assez grande quantité
… en vue d’en dégager et structurer le contenu, les thèmes dans une
perspective d’analyse rapide de découverte d’informations cachées ou de
prise automatique de décisionDéfinition
Text Mining
Procédé consistant à synthétiser (classer, structurer, résumer, …) les
textes en analysant les relations et les règles entre unités textuelles
(mots, groupes, phrases, documents) Processus de Text Mining: Vue simplifiée
Produit des vecteurs de fréquence
des mots importantsAnalyse et Préparation
Corriger l'orthographe
Eliminer les mots vides
Découper les textes en unités
Associer des termes à une catégorie
grammaticale ou sémantique
Réduire le nombre de termes à traiterCalculs de fréquence des termesRéduction des dimensions
Réduire les dimensions de la table de fréquences
En déterminant les termes les plus significatifs
En groupant les termes par affinité (profile)Domaines d’application
Exploration du contenu des documents
Questions ouvertes dans une enquête
Commentaires et plaintes des clients
Analyse des réclamations de garantie
Affectation de documents à des thèmes prédéfinis
Traitement des e-mails (redirection, filtrage)
Recherche d’information
Interrogation de textes par concepts, mots-clés, sujets, phrases visant à
obtenir des résultats triés par ordre de pertinence, à la GoogleEtapes de la fouille de textes
Sélection de textes
Extraction des termes
Analyse grammaticale
Filtrage des termes extraits
Transformation
Réduction des dimensions
Classification
Visualisation des résultats
Interprétation des résultatsLes systèmes expertsLes systèmes experts
Un système expert est un logiciel capable de répondre à
des questions, en effectuant un raisonnement à partir de
faits et de règles connus. Il peut servir notamment
comme outil d’aide à la décision. Les systèmes experts
Un système expert se compose de 3 parties :
Une base de faits ;
Une base de règles ;
Un moteur d’inférence.Faits et règles
Faits
Ensemble de vérités connues
Règles
Partie condition : prémisses
Partie action : conclusion, calcul, affichage ...
Éventuellement : coefficient de confiance
SI condition ALORS action [coefficient]Les systèmes experts
Pour l’essentiel, ils utilisent la règle d'inférence suivante :
Si P est vrai
(fait ou prémisse) et si on sait que P implique Q
(règle) alors, Q est vrai
(nouveau fait ou conclusion). Le moteur d’inférence
Le moteur d’inférence est capable d’utiliser faits et règles pour produire de
nouveaux faits, jusqu’à parvenir à la réponse à la question experte posée.
La plupart des systèmes experts existants reposent sur des mécanismes de
logique formelle et utilisent le raisonnement déductif. Pourquoi un SE ?
Problèmes mal formalisés ou dont la formulation évolue
Médecine : nouveaux examens, nouvelles connaissances, nouvelles
thérapies
Pas d’algorithme connu (ou algorithme trop complexe)
Reconnaissance de l’écriture
Jeu d’échecs
Affectation des ressources, ordonnancementLes systèmes expertsArchitecture
Base
de faits
Moteur d’inférence
Filtrage
Sélection
Assertion Exécution
Base de
règlesMode de raisonnements
Il existe de nombreux types de moteurs, capables de traiter différentes
formes de règles logiques pour déduire de nouveaux faits à partir de la base
de connaissance.
On distingue souvent trois catégories, basées sur la manière dont les
problèmes sont résolus :
Les moteurs - dit à
« chaînage avant
» - qui partent des faits et règles
de la base de connaissance, et tentent de s’approcher des faits
recherchés par le problème.
Les moteurs - dits à
« chaînage arrière
» - qui partent des faits
recherchés par le problème, et tentent par l’intermédiaire des règles, de
« remonter » à des faits connus,
Les moteurs - dits à
« chaînage mixte
» - qui utilisent une combinaison
de ces deux approches chaînage avant et chaînage arrière. Chaînage avant
Raisonnement guidé par les données :
Détecter les règles dont les prémisses sont vérifiées (filtrage)
Sélectionner la règle à appliquer
Appliquer la règle
Recommencer jusqu'à ce qu'il n'y ait plus de règle applicableChaînage arrière
But initial placé au sommet d’une pile
Détection des règles qui concluent à ce but
Résolution de conflits
Application de la règles, i.e, les éléments des prémisses deviennent de
nouveau sous- buts à atteindre.
Arrêt : pile vide ou aucune règle applicableExercice
Exercice 1
Soit la base de règles suivantes :
R1 : (┐A B) P
R2 : (P et Q) F
R3 : (C A) Q
R4 : F (D K)
R5 : K (M et L)
La base initiale de faits est : (A, D).
Prouvez le fait M par chaînage avant.
Projet IP-SIG : Signalisation g´en´erique du monde IP
Badr Benmammar
To cite this version:
Badr Benmammar. Projet IP-SIG : Signalisation g´en´erique du monde IP. 3`eme cycle. 2005.
HAL Id: cel-00682308
https://cel.archives-ouvertes.fr/cel-00682308
Submitted on 26 Mar 2012
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.Projet IP-SIG
Signalisation générique du monde IP
21 Juillet 2005
Badr BENMAMMAR
Université Bordeaux 12
PLAN
• Présentation du projet
– Objectif du projet et motivations
– Organisation du projet
• Partenaires et durée
• Les sous-projets • Échéances et livrables
– Rappels sur la signalisation IPSIG
• Présentation des travaux
– Sous-projet 3
• Réalisation du protocole GiSP
• Tests du protocole GiSP
• Démonstration – Sous-projet 4
• Définition d’un SLS dynamique
• Réalisation de l’environnement dynamique
• Démonstration
– Etude des travaux en cours à l’IETF
• Démonstration 3
Motivations et Objectif
• Motivations
– Plusieurs protocoles de signalisation existants
• RSVP, RSVP-TE, CR-LDP, Radius, Diameter
– Support des besoins de QoS, sécurité et mobilité
• Objectif
– Définition d’une signalisation Universelle
• Unifier le processus de signalisation
• Définition de SLS et de SLS dynamique 4
Organisation du projet
• Projet Exploratoire – 24 mois + 6 mois
• Partenaires :
• ALCATEL, ENST, ISEP, LIP6, LIPN, UTT et THALES
• Quatre sous-projets
– SP1 : SLS et protocoles de signalisation
• Livrable 1.1 : Définition d'un SLS
• Livrable 1.2 : Comparaison des protocoles de signalisation
– SP2 : Les briques de base et l'architecture globale
• Livrable 2.1 : Architecture du système de signalisation
• Livrable 2.2 : Spécification des briques de base
– SP3 : Le protocole GiSP (Generic Signaling Protocol)
• Livrable 3.1 : Réalisation du démonstrateur
• Livrable 3.2 : Tests du démonstrateur
– SP4 : Dynamique de l’environnement
• Livrable 4.1 : Définition d’un SLS dynamique
• Livrable 4.2 : Maquette de l'environnement dynamique5
Livrables et échéances
Livrable 3.1
Réalisation
T0+20
Septembre 04
Livrable 4.2
Maquette
Livrable 3.2
Tests
T0+24
Janvier 05
Livrable 4.1
Déf. d’un SLS
dynamique
Livrable 2.2
Spec des briques
de base
T0+18
Juillet 04
Livrable 2.1
Arch. du système
de signalisation
Livrable 1.2
Étude des
protocoles
T0+12
Livrable 1.1
déf. D’un SLS
T0+9
SP4
Dynamique de
l’environnement
SP3
Le protocole
GSP
SP2
Architecture
globale
SP1
Définition d’un
SLS et
protocoles de
signalisation6
Livrables et échéances - Nouvelle planification
Livrable 3.1.1 :
Réalisation
Livrable 3.1.3 : QoS NSLP
(NSIS WG)
T0+26
Mars 05
Livrable 4.2 :
Maquette
Livrable 3.1.2 : Emulation
GIMPS (NSIS WG)
Livrable 3.2 :Tests
T0+30
Juillet 05
Livrable 4.1
Déf. d’un SLS
dynamique
Livrable 2.2
Spec des
briques de
base
T0+18
Juillet 04
Livrable 2.1
Arch. du
système de
signalisation
Livrable 1.2
Étude des
protocoles
T0+12
Livrable 1.1
déf. D’un SLS
T0+9
SP4
Dynamique de
l’environnement
SP3
Le protocole GSP
SP2
Architecture
globale
SP1
Définition
d’un SLS et
protocoles de
signalisation7
Rappels - Architecture protocolaire
• Architecture protocolaire de NSIS
NSIS Signaling
Layer Protocol
“NSLP”
NSIS Transport
Layer Protocol
“NTLP”
NSLP pour QoS
NSLP pour
middlebox
NSLP pour …
IP layer
NSIS Transport
Layer Protocol
“NTLP”
Signalisation IPSIG
(GiSP : Generic Service Signaling Protocol)8
Rappels - Besoins du protocole GiSP
• Fonctionnalités de signalisation
• Deux modes de fonctionnement
– Path coupled
– Path decoupled
• Gestion des états
– Installer/modifier/supprimer un état
• Sensibilité au changement de routage
• Sensibilité à la mobilité
• Fonctionnalités de transport
• Transport fiable et non fiable
• Transport sécurisé
• Contrôle de congestion
• Fragmentation
• Bundling9
Rappels – Le protocole GiSP (Rappels)
• Définition d’un format de message
– ::=
• Définition de l’en-tête
– SM Flag : Mode de fonctionnement
– M_Type : Type de message
– New
• Permet d’installer une nouvelle session (rapidement sans vérifier si la session est déjà établie)
– Mod
• Établit une session dans le sens inverse du flux de données (de New)
• Modifier une session établie (sens forward et Backward) • Établit une session dans un nouveau chemin suite à un changement de route
– Info
• Échange de l’information entre éléments de signalisation
– Notification des erreurs
• Supporter le management d’état
– Rafraîchissement des états
– Suppression des états
• Définition d’un ensemble d’objets
– Transportant les informations nécessaires pour réaliser les fonctionnalités
du protocole GiSP10
Rappels
– Le protocole GiSP (Rappels)
• Caractéristiques
– Etablissement rapide d’un état dans un nœud en ½ RTT:
• Un message New (ou Mod) contient toute l’information pour établir un état
– Réduction du trafic de détection du changement de routage
• Au lieu d’envoyer un message complet, GISP envoie seulement l’identification de
session
– Mobilité: changement de la CoA (Care of Address)
• Utiliser l’identification de session et non l’identification de flux pour identifier une session de bout en bout
• Mécanismes développés
– Proposition d’un mécanisme de rafraîchissement performant
• Réduction du trafic de rafraîchissement
• Optimisation la gestion des timers
– Mise en place d’un transport fiable et non fiable
• Les messages sont explicitement acquittés ou non selon le besoin
– Mise en place d’un contrôle de congestion
• Dans le cas où GISP ne connaît pas le nœud suivant (mode non-connecté) GISP limite le trafic de signalisation traversant une interface
• Dans le cas où GISP connaît le nœud suivant (mode connecté) GISP applique un mécanisme de contrôle de congestion qui s’inspire des mécanismes de TCP, SCTP et DDCP (contrôle de congestion par fenêtre en supportant le mode fiable et non fiable).Le projet IPSIG
Dynamique de l’environnement12
Dynamique de l’environnement
Deux Aspects :
I. Négociation dynamique de SLA/SLS
II. Impact de la mobilité du terminal sur la
QoS13
Introduction
I. Négociation dynamique de SLA/SLS
– Identification des besoins de l’utilisateur
– Agents pour la négociation de SLA/SLS
– Protocole de négociation de paramètres de SLS14
Protocole SLN NSLP
• Protocole de négociation de paramètres de
SLS
– Environnement NSIS
NSIS Signaling
Layer Protocol
“NSLP”
NSIS Transport Layer
Protocol “NTLP”
NSLP pour QoS
NSLP pour
middlebox
NSIS Transport Layer
Protocol “NTLP”
NSLP pour la négociation15
Protocole SLN NSLP
- Négociation intra ou inter domaines.
• Entités de négociation16
Protocole SLN NSLP
• Architecture globale17
Protocole SLN NSLP - Temps de service : période de garantie du niveau de service - Scope : point d’entrée et de sortie d’un domaine - Identification du trafic : @IP, Port source/destination... - Garantie de performance : délai, gigue, taux de perte, bande
passante - Description et conformité du trafic : taille des paquets, débit
crête, paramètres du Token Bucket. - Traitement d’excès : lissage, marquage, élimination - Mode de négociation : SLS prédéfini ou non - Intervalle de renégociation : dépend du type de négociation. - Priorité et fiabilité : MDT, MTTR
• Paramètres du SLS de QoS18
Protocole Messages SLN NSLP
- Negotiate : Emis du SNI vers le SNR, permet de spécifier les
attributs sur lesquels on veut négocier ainsi que leurs valeurs.
- Revision : Emis par le SNR vers le SNI pour proposer une
alternative aux attributs et valeurs reçus dans le message
Negotiate.
- Response : Emis par le SNR ou SNI suite a un message
précèdent contenant un objet Response Request.
- Modify : Emis par le SNI vers le SNR en spécifiant le SLS ID
sur le quel la modification va porter
- Notify : Emis par le SNR (ou SNF) pour demander au SNI de
dégrader ou rétablir un niveau de service qui a été déjà
négocié.
- Release : Emis par le SNI vers le SNR pour résilier un SLS déjà
négocié.
• Messages SLN NSLP19
Protocole SLN NSLP
00 /
30 ms
D=100ms ; G=20ms ;
P=0,1% ; D= 704
Kbit/s
9h17h
LundiJeudi
@IP SNI
@IP SNR
@IP Host A
@IP Host B
Mode /interv
alle
Temps de Garantie de Performance
Service
Identification du Scope
trafic
00 /
30 ms
D<150ms ; G<30ms ;
P<1% ; D= 696 Kbit/s
9h17h
LundiJeudi
@IP SNI
@IP SNR
@IP Host A
@IP Host B
Mode /
intervalle
Temps de Garantie de Performance
Service
Identification du Scope
trafic
SLS Demandé pour la visioconférence
SLS accepté par le SNR
• Exemples de négociation20
Cas d’une Visioconférence
SNI / SIP
PROXY SNF SNR Host
Negotiate
B
Communication
Host
A
Negotiate
Revision
Revision
Response {Ack}
Response {Ack}
Reserve {Qspec}
Reserve {Qspec}
Reserve {Qspec}
Reserve {Qspec}
Invite
Invite
180 Ringing
180 Ringing
ACK
200 OK
200 OK
SLN NSLP QoS NSLP SIP21
Cas de la téléphonie IP
SNI / SIP
PROXY SNF Host B SNR
Negotiate
Communication
Host A
Negotiate
Response {Ack}
Response {Ack}
Reserve {Qspec}
Reserve {Qspec}
Reserve {Qspec}
Reserve {Qspec}
Invite
Invite
180 Ringing
180 Ringing
ACK
200 OK
200 OK
SLN NSLP QoS NSLP SIP
183 Progress
Bye
OK
Release {SLS ID}
Release {SLS ID} 22
Conclusion
• SLN NSLP est une proposition de protocole de
signalisation dans la bande pour la négociation de
niveau de service.
• SLN NSLP est indépendant du modèle de QoS grâce a
l’architecture de signalisation générique définie dans
NSIS.
• SLN NSLP est indépendant des objets de négociation
donc il est réutilisable.23
Dynamique de l’environnement
2. Impact de la mobilité du terminal sur QoS
– Réservation de ressources à l’avance
• Messages de QoS NSLP
• Profil de mobilité fourni par l’interface utilisateur
MSpec =
» : the MSpec identifier
» : ,
» : ,, etc.
– Procédure de handover
• Protocole CTP (Context Transfer Protocol)24
∑ Pij = 1
=
n
j 1
∑
=
n
i 1
Pi (tr) * Pij Pj (tr+1) =
Cj
Cn
Cn-1
Ci
C2
C1
tr+1
tr
P1j
P2j
Pij
Pnj
Pn-1j
P1
Pn
Pn-1
Pi
P2
Détermination du MSpec
• Basée sur les chaînes de Markov en temps continu
• Le système est dans l’état i si le terminal mobile est dans la
cellule Ci
Pij : probabilité de transition
de la cellule Ci vers la cellule Cj
Pi (tr) : probabilité de localisation
du terminal mobile dans la
cellule Ci à l’instant tr 25
∑
=
m
d 1
Pij Pij = (d) /m
Profil de mobilité du terminal - La matrice de transition contenant les Pij
M = [Pij] [N*N]
Pij(d): probabilité de transition de la cellule i vers la cellule j
durant d associations
m: nombre d’associations
-Le vecteur contenant les Pi (to)
V = [Pi(to)] [N]
Pi (to): probabilité de localisation du terminal mobile dans la
cellule Ci à l’instant to26
{ 0: no handover 1: vertical handover UMTS HD [Cell ID, App ID] =
Profil de mobilité du terminal - Les futures localisations du terminal mobile
MSpec (tr) = {Cj / Pj (tr+1) ≥ x }
x : un seuil fixe ou variable utilisé pour sélectionner
les cellules
- La décision de handover27
• Procédure de réservation de ressources à
l’avance
- Extension de QoS NSLP
• Différents scénarios (environnement HMIPv6) - Réservation à l’initiative du demandeur ou du
récepteur - Entre un terminal fixe et un terminal mobile - Entre terminaux mobiles
• Procédure de handover - Horizontal - Vertical
Protocole MQoS NSLP28
• Impact du seuil x
Simulations29
• Protocole de réservation de ressources à l’avance - Dans un environnement NSIS - Extension de QoS NSLP
• Réservations basées sur l’objet MSpec - Déterminé par le terminal mobile - Utilisation des chaînes de Markov en continu
• Méthode hybride
• Validation
Conclusion30
Maquette
Utilisateur Fournisseur
Jade
Négociation
Gold | prix
Silver | prix
Bronze | prix
Best effort | prix
• (Re)négociation à l’initiative de l’utilisateur31
Maquette
• (Re)négociation à l’initiative du fournisseur
Réseau
DiffServ
EndUserGenerator
New EndUser
Utilisateur Fournisseur
data Traffic Sender
Jade
J-Sim
Négociation
Nouveau
Prix fonction
de la charge
du réseau
Decision
finale
Gold | prix
Silver | prix
Bronze | prix
Best effort | prix32
Architecture de l’interface proposée
Fournisseur Réseau
Terminal Utilisateur
Interface graphique/Messages/Capteurs
Couche Gestion de profil
Apprentissage (SOM)
Couche de Contrôle
Couche de négociation Couche protocolaire
Profils Propriétés
Paramètres de
performance SLS33
Identité des personnes : rôles, préférences, permissions, etc.
Localisation des personnes : domicile, gare, travail, etc.
Période : l’heure, le jour, le mois, etc.
Contraintes : des utilisateurs, des applications, etc.
Active device : Laptop, PC, cellular
Connectivité : LAN, WLAN, cellular network
Informations contextuelles
Les r´eseaux sans fil et la nouvelle signalisation IP
Badr Benmammar
To cite this version:
Badr Benmammar. Les r´eseaux sans fil et la nouvelle signalisation IP. 3`eme cycle. 2004.
HAL Id: cel-00660842
https://cel.archives-ouvertes.fr/cel-00660842
Submitted on 17 Jan 2012
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.Les réseaux sans fil et la nouvelle
signalisation IP
Badr BENMAMMAR
Université Bordeaux 1
1
École DNAC d'hiver
Sur le Nil, Égypte,
du 11 au 18 décembre 20041
PLAN
• Introduction
• QoS NSLP
• Réservation de ressources à l’avance
• Format du MSpec
• Réservation de ressources à l’avance avec QoS NSLP
• Le transfert de contexte
• La procédure de handover
• Méthodes de prédiction
• Conclusion
22
IP-SIG (1/2)
Les objectifs de ce projet sont :
La définition d'une architecture de signalisation universelle (les besoins de QoS, de
mobilité et de sécurité)
La définition d'un SLS standard
Une étude prospective sur la dynamisation du SLS
1. ENST
2. ALCATEL
3. UTT
4. Université de Paris 13
5. ISEP
6. LIP6
7. THALES
Partenaires du projet
33
Quatre sous-projets:
Sous-projet 1 – SLA-SLS et protocoles de signalisation (Responsable ALCATEL)
Sous-projet 2 – Les briques de base et l'architecture globale (Responsable LIP6)
Sous-projet 3 – Le protocole GSP (Generic Signaling Protocol) (Responsable ISEP)
Sous-projet 4 – Dynamique de l’environnement (Responsable LIPN)
IP-SIG (2/2)
Négociation dynamique
de SLA/SLS
Impact de la mobilité
sur la signalisation
44
NSIS (Next Steps In Signaling)
• Standardiser une architecture comprenant deux couches:
- NTLP : NSIS Transport Layer Protocol
- NSLP : NSIS signaling Layer Protocol
IP
IP Layer Security
UDP TCP SCTP DCCP
Transport Layer Security
GIMPS: Messaging Layer
GIMPS Encapsulation GIMPS State Maintenance
NTLP
Signaling Application 1
Signaling Application 2
Signaling Application 3
NSLP
55
QoS NSLP
• QoS NSLP permet de générer une signalisation pour
fournir un certain niveau de QoS indépendamment du modèle
de QoS (Diffserv, Intserv,...)
• QoS NSLP + NTLP RSVP
6
• La création d’un état
• Le rafraîchissement d’un état
• La modification d’un état
• L’élimination d’un état6
Les messages de QoS NSLP
• Reserve : le seul à manipuler l’état de la réservation (rafraîchir,
créer, supprimer).
• Query : demande des informations aux nœuds QNE (les ressources
disponibles)
• Response : permet d’envoyer un résultat associé à un message
antérieur
• Notify : permet d’informer un nœud sans demande préalable
77
• Sender Initiated Reservation
Réservation de ressources avec QoS NSLP (1/2)
RESPONSE
NI NF NF NR
RESERVE
RESERVE
RESERVE
RESPONSE
RESPONSE
88
Réservation de ressources avec QoS NSLP (2/2)
• Receiver Initiated Reservation
NR NF NF NI
RESERVE
RESERVE
RESERVE
RESPONSE
RESPONSE
RESPONSE
QUERY
QUERY
QUERY
99
• NSIS (Next Steps In Signaling): fournir une signalisation
universelle
• Objectif: étudier l’impact de la mobilité sur la signalisation
NSIS
• Proposition : utiliser les messages de QoS NSLP afin de faire
des réservations à l’avance
• La QoS
• La sécurité
• La mobilité
10
Proposition10
Réservation de ressources à l’avance
• Réservation à l'avance dans tous les endroits que l'utilisateur
peut visiter
• Un profil de mobilité est déterminée soit par le réseau, soit par
le terminal mobile
• L’objet MSpec (Mobility Specification) détermine les futures
localisations du MH (Mobile Host)
• L’objet MSpec est inclus dans les messages de QoS NSLP
1111
Travaux réalisés dans les réseaux mobiles (1/2)
• Anup Kumar Talukdar, B. R. Badrinath, Arup Acharya. MRSVP: a
resource reservation protocol for an integrated services network
with mobile hosts, ACM Journal of Wireless Networks, vol. 7, 2001
12
• MSPEC (Mobility Specification): pas de format, les futures localisations
• La réservation active: si les paquets de ce flux passent par ce lien afin d’arriver au récepteur
• La réservation passive: si les ressources sont réservées pour ce flux sur le lien, mais les
paquets actuels pour ce flux ne sont pas transmis sur ce lien12
• Min-Sun Kim, Young-Joo Suh, Young-Jae Kim, Young Choi. A
Resource Reservation Protocol in Wireless Mobile Networks.
ICPP Workshops, Valencia, Spain September 03 - 07, 2001
Travaux réalisés dans les réseaux mobiles (2/2)
• La classe Free : elle représente les ressources utilisées en BE
• La classe Reserved : elle représente les ressources réservées et actuellement
utilisées, pour un flux spécifique
• La classe Prepared : elle représente les ressources réservées pour un flux spécifique
et qui ne sont pas actuellement utilisées
1313
Inconvénients
• Le nombre de flux qui peut être supporté par le routeur est
réduit
• Le MSPEC est très difficile à déterminer à l’avance
Avantages
• Meilleure QoS (délai et pertes de paquets)
• Application en temps réel.
1414
Format du MSpec
MSpec =
• : identificateur unique du MSpec
• : ,
• : ,,, etc.
1515
Procédure de réservation de ressources à l’avance
avec QoS NSLP (fixe,mobile)
-1 : Router Advertissement, un bit Q
0 : Registration Request, bit Q, QSpec et MSpec
1 : NOTIFY: QSpec et MSpec
2 : RESERVE: QSpec
3 : RESERVE
4 : RESPONSE
5 : RESPONSE
Réservation de ressources à l’avance avec
QoS NSLP
CN
HA Internet
HN
MAP
AR AR AR
MH
FN
2
4
5
5
0 -1
3 1 3
NI
NF NF NF
NF
NR
1616
Le Protocole CTP Context Transfer Protocol
(WG Seamoby)
17
• Contexte: l'information nécessaire sur l'état actuel d'un service afin de le
rétablir sur un nouveau sous-réseau
• les services candidats:
• Authentication, Authorization et Accounting (AAA)
• Header Compression
• Quality de Service (QoS)
• Point to point protocol (PPP)
• Politiques17
Le déclenchement de transfert
de contexte (1/3)
• Déclenché à l’initiative du :
– nœud mobile (mobile controlled).
– pAR ou nAR (network controlled).
• Exemple : mobile controlled, initié par le nœud mobile
MN nAR pAR
CT trigger
CTAR
CT Request
CTD
1818
Le déclenchement de transfert
de contexte (2/3)
MN nAR pAR
CT trigger
CTAR
CTD
CTDR
• Exemple : network controlled, initié par le pAR
1919
Le déclenchement de transfert
de contexte (3/3)
MN nAR pAR
CT trigger
CT Request
CTAR
CTD
CTDR
• Exemple : network controlled, initié par le nAR
2020
La procédure de handover
21
La procédure de handover
CN
HA Internet
HN
MAP
AR AR AR
MH
FN
MH
MIPv6
NOTIFY : en incluant le nouveau MSpec
RESERVE
1
2 CTD
CT Request
Analyse le nouveau MSpec21
Exemple
22
AR1
MAP
AR2 AR3 AR4
Cell1 Cell2 Cell3 Cell4
MH
MSpec1 = {Cell1, Cell3}22
Exemple
23
AR1
MAP
AR2 AR3 AR4
Cell1 Cell2 Cell3 Cell4
MSpec1 = {Cell1, Cell3}
MH
MSpec2 = {Cell2, Cell4}23
Exemple
24
AR1
MAP
AR2 AR3 AR4
Cell1 Cell2 Cell3 Cell4
MSpec1 = {Cell1, Cell3}
MH
MSpec2 = {Cell2, Cell4}24
Exemple
25
AR1
MAP
AR2 AR3 AR4
Cell1 Cell2 Cell3 Cell4
MSpec1 = {Cell1, Cell3}
MH
MSpec2 = {Cell2, Cell4}25
26
i = 1
Ci : cellule courante
MSpeci
i = 1
∀ C ∈ MSpec1 : créer une
réservation passive pour la
cellule C
Oui
handover après une période
t1 passée dans la cellule C1
i = i+1
Non
La réservation dans la cellule Ci devient
active
∀C∈{MSpeci-MSpeci-1-Ci-1} : créer une
nouvelle réservation pour la cellule C
∀C∈{ MSpeci-1- MSpeci-Ci}: supprimer
la réservation pour la cellule C
Oui
La réservation devient
passive pour la cellule Ci-1
Supprimer la
réservation pour la
cellule Ci-1
handover après une période
ti passée dans la cellule Ci
Non Ci-1∈ MSpeci
Les actions réalisées par le MAP dans le cas d’une communication
fixe-mobile26
Procédure de réservation de ressources à l’avance avec
QoS NSLP (mobile-mobile)
27
Internet
HA
HN
AR
AR
MAP2
AR
AR AR
MH1
MAP1
0
MH2
2
AR
1
3
4
5
6
7
7
8
8
9
9
Réservation de ressources à l’avance avec
QoS NSLP
0 : Router Advertissement , le bit Q.
1 : Registration Request, QSpec et MSpec2
2 : NOTIFY, QSpec et MSpec2
3 : Router Advertissement, le bit Q
4 : Registration Request, QSpec et MSpec1
5 : NOTIFY, QSpec et MSpec1
6 : RESERVE, QSpec
7 : NOTIFY
8 : RESERVE
9 : RESERVE27
La procédure de handover
28
Internet
HA
HN
AR
MAP2
AR
MH1
MAP1
4
5
5
6
6
AR AR
MH1
MH2
AR
3
CT Request
CTD
2
MH2
1
AR
MIPv6
MIPv6
La procédure de handover
1 : RESERVE
2 : RESPONSE
3 : NOTIFY
4 : RESERVE
5: NOTIFY, l’ancien MSpec1 et le
nouveau MSpec1
6 : RESERVE
Analyse le nouveau
MSpec228
Modélisation par les chaînes de Markov
• Le système est un modèle pouvant évoluer entre n états définis par
l’ensemble: C = (C1, C
2, ........Ci........
Cn)
• Le système est à l’état i = le terminal mobile se trouve dans la cellule Ci
• Pij : la probabilité de transition de la cellule Ci vers la cellule Cj
• Pi (t) : la probabilité pour que le terminal mobile se trouve dans la cellule
Ci à l’instant t
∑
Pij = 1, i = 1 à n et 0 ≤ Pij ≤ 1
=
n
j 1
∑=
n
i 1
Pi (t) * Pij
Pj (t+1) =
Cj
Cn
Cn-1
Ci
C
2
C1
t+1
t
P1j
P2j
Pij
Pnj
Pn-1j
P1
Pn
Pn-1
Pi
P
2
2929
Le profil de mobilité (1/2)
• Construire un modèle comportemental pour l’utilisateur
• il contient les informations suivantes :
- Un identificateur unique de l’utilisateur : user_id
- Les informations personnelles de l’utilisateur
- nom
- prénom
- age
- adresse
- ...
- Les préférences de l’utilisateur
Exemple : quand l’utilisateur se déplace vers la cellule1, qui couvre le Forum,
il commence toujours par le lancement d’un jeu vidéo durant 1h.
3030
Le profil de mobilité (2/2)
- M = [Pij] [N*N] : une matrice de transition qui contient les Pij
- V = [Pi(0)] [N] : un vecteur qui contient les Pi(0). (Pi (0): la probabilité
pour que le terminal mobile se trouve dans la cellule Ci à l’instant 0)
- Le MSpec (Mobility Specification): un ensemble dynamique, il est
modifié après chaque handover
3131
Calculer la matrice M et le vecteur V (1/2)
• Besoin de m connexions afin de déterminer les Pi(0) et les Pij
• l(d) : le nombre de transitions dans le système pour la dème connexion (1≤ d ≤ m)
• tij(d) : le nombre de transition de la cellule i à la cellule j pendant la dème connexion
• li(d) : le nombre de transitions sortantes de la cellule i pendant la dème connexion
32
• M = [Pij] [N*N]
• On le calcule de la manière suivante : l
i(d) =
∑=
n
j 1
tij(d)
∑=
n
i 1
li(d) = l(d)32
Calculer la matrice M et le vecteur V (2/2)
33
• La probabilité de transition de la cellule i à la cellule j pendant la dème connexion
(Pij(d)) est calculée de la manière suivante :
Pij(d) = tij(d)/l
i(d)
• Après m connexions, la probabilité de transition de la cellule i à la cellule j
est calculée de la manière suivante :
∑=
m
d 1
Pij Pij = (d) /m. i,j = 1,n
• Si à l’instant t = 0, l’utilisateur se connecte k fois dans la cellule i durant les m
•connexions alors :
Pi(0) = k/m ou (k*100/m)%
• V = [Pi(0)] [N]33
Prédire le MSpec à l’aide des chaînes de Markov
•Le MSpec est un sous ensemble de C
MSpec = {a1 C1, a2 C2,..........., ai Ci,.........., an Cn} / ai = {0, 1}
∑=
n
i 1
ai Ci / ai MSpec = = {0,1}
• On définit
θ (0 ≤
θ ≤ 1) : un seuil fixe ou variable, pour sélectionner les
cellules de plus grandes probabilités.
Le MSpec est défini comme suit : MSpec = {Cj / Pj (t+1) ≥
θ
}
3434
Non
Fin
Consulter le profil de
mobilité de l’utilisateur
Début
Identifier l’utilisateur
t = 0, MSpec = { }
C = (C1, C2, ........Ci........Cn)
Non Utilisateur Oui
= ancien
Initier la matrice de transition: M = [Pij], {i, j} =1, 2, ..... n
Initier Pi (0) i =1, 2, ….. n
J=1 ; 0 ≤ θ ≤ 1
MSpec = MSpec ∪ Cj
j = j+1
Oui
Non Oui j ≤ N
Pj (t+1) ≥ θ
∑
=
n
i 1
Pj (t+1) = Pi (t) * Pij
Prédiction du MSpec à l’aide des chaînes de Markov 3535
t0 t1 s0 s1 f1 f0
Temps du handover de la
cellule Ci-1 à la cellule Ci Temps du handover de la cellule Ci à la cellule Ci+1
Le temps passé dans la cellule Ci
Temps du lancement de la
méthode de prédiction
Temps de la
détermination du
MSpec
Temps de la détermination du MSpec
Temps de la procédure de réservation
de ressources à l’avance
temps
La cellule Ci-1 La cellule Ci La cellule Ci+1
Le temps d’attente dans la cellule Ci ≥ le temps de la détermination du MSpec +
le temps de la réservation de ressources à l’avance
Simulation
36
Systeme informatique de commande du robot V 80
V. Dupourque
To cite this version:
V. Dupourque. Systeme informatique de commande du robot V 80. RT-0035, 1984, pp.93.
HAL Id: inria-00070123
https://hal.inria.fr/inria-00070123
Submitted on 19 May 2006
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.
Lecture 10: Robust outlier detection with L0-SVDD
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
February 28, 2014Roadmap
1 Robust outlier detection with L0-SVDD
L0 SVDD
4 iterations of Adaptive L0 SVDDRecall SVDD
min
R,c,ξ
R + C
Xn
i=1
ξi
with kxi − ck
2 ≤ R + ξi
, i = 1, . . . , n
and ξi ≥ 0, i = 1, . . . , n
(1)
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 3 / 11SVDD + outlier
C =1/16 C =1/8 C =1/4 C = 1/2 (¾')
Figure: Example of SVDD solutions with different C values, m = 0 (red) and
m = 5 (magenta). The circled data points represent support vectors for both m.
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 4 / 11The L0 norm
kξk0 ≤ t
min
c∈IRp
,R∈IR,ξ∈IRn
R + Ckξk0
with kxi − ck
2 ≤ R+ξi
ξi ≥ 0 i = 1, n
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 5 / 11L0 relaxations
p norm
exponenetial
piecewise linear
log
min
c∈IRp
,R∈IR,ξ∈IRn
R + C
Xn
i=1
log(γ + ξi)
with kxi − ck
2 ≤ R+ξi
ξi ≥ 0 i = 1, n .
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 6 / 11DC programing
log(γ + t) = f (t) − g(t) with f (t) = t and g(t) = t − log(γ + t),
both functions f and g being convex. The DC framework consists in
minimizing iteratively (R plus a sum of) the following convex term:
f (ξ) − g
′
(ξ)ξ = ξ −
1 −
1
γ + ξ
old
ξ =
ξ
γ + ξ
old ,
where ξ
old
i
denotes the solution at the previous iteration.
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 7 / 11The DC idea applied to our L0 SVDD approximation consists in building a
sequence of solutions of the following adaptive SVDD:
min
c∈IRp
,R∈IR,ξ∈IRn
R + C
Xn
i=1
wi ξi
with kxi − ck
2 ≤ R+ξi
ξi ≥ 0 i = 1, n
with wi =
1
γ + ξ
old
i
.
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 8 / 11Stationary conditions of the KKT give: c =
Pn
i=1 αi xi and Pn
i=1 αi = 1
where the αi are the Lagrange multipliers associated with the inequality
constraints kxi − ck
2 ≤ R+ξi
. The dual of this problem is
(
min
α∈IRn
α
⊤XX ⊤α − α
⊤diag(XX ⊤)
with Pn
i=1 αi = 1 0 ≤ αi ≤ Cwi
i = 1, n
(2)
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 9 / 11Algorithm 1 L0 SVDD for the linear kernel
Data: X, y, C , γ
Result: R , c, ξ , α
wi = 1; i = 1, n
while not converged do
(α, λ) ← solve_QP(X, C,w) % solve problem (2)
c ← X
⊤α
R ← λ + c
⊤c
ξi ← max(0, kxi − ck
2 − R) i = 1, n
wi ← 1/(γ + ξi) i = 1, n
end
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 10 / 11Bibliography
Stéphane Canu (INSA Rouen - LITIS) February 28, 2014 11 / 11
Lecture 9: Multi Kernel SVM
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
April 16, 2014Roadmap
1 Tuning the kernel: MKL
The multiple kernel problem
Sparse kernel machines for regression: SVR
SimpleMKL: the multiple kernel solutionStandard Learning with Kernels
User
Learning Machine
kernel k data
f
http://www.cs.nyu.edu/~mohri/icml2011-tutorial/tutorial-icml2011-2.pdf
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 3 / 21Learning Kernel framework
User
Learning Machine
kernel
family
km
data
f , k(., .)
http://www.cs.nyu.edu/~mohri/icml2011-tutorial/tutorial-icml2011-2.pdf
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 3 / 21from SVM
SVM: single kernel k
f (x) = Xn
i=1
αi k (x, xi) + b
=
http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 4 / 21from SVM → to Multiple Kernel Learning (MKL)
SVM: single kernel k
MKL: set of M kernels k1, . . . , km, . . . , kM
◮ learn classier and combination weights
◮ can be cast as a convex optimization problem
f (x) = Xn
i=1
αi
X
M
m=1
dm km(x, xi) + b
X
M
m=1
dm = 1 and 0 ≤ dm
=
http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 4 / 21from SVM → to Multiple Kernel Learning (MKL)
SVM: single kernel k
MKL: set of M kernels k1, . . . , km, . . . , kM
◮ learn classier and combination weights
◮ can be cast as a convex optimization problem
f (x) = Xn
i=1
αi
X
M
m=1
dm km(x, xi) + b
X
M
m=1
dm = 1 and 0 ≤ dm
=
Xn
i=1
αiK(x, xi) + b with K(x, xi) = X
M
m=1
dm km(x, xi)
http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 4 / 21Multiple Kernel
The model
f (x) = Xn
i=1
αi
X
M
m=1
dmkm(x, xi) + b,
X
M
m=1
dm = 1 and 0 ≤ dm
Given M kernel functions k1, . . . , kM that are potentially well suited for a
given problem, find a positive linear combination of these kernels such that
the resulting kernel k is “optimal”
k(x, x
′
) = X
M
m=1
dmkm(x, x
′
), with dm ≥ 0,
X
m
dm = 1
Learning together
The kernel coefficients dm and the SVM parameters αi
, b.
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 5 / 21Multiple Kernel: illustration
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 6 / 21Multiple Kernel Strategies
Wrapper method (Weston et al., 2000; Chapelle et al., 2002)
◮ solve SVM
◮ gradient descent on dm on criterion:
⋆ margin criterion
⋆ span criterion
Kernel Learning & Feature Selection
◮ use Kernels as dictionary
Embedded Multi Kernel Learning (MKL)
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 7 / 21Multiple Kernel functional Learning
The problem (for given C)
min
f ∈H,b,ξ,d
1
2
kf k
2
H + C
X
i
ξi
with yi
f (xi) + b
≥ 1 + ξi
; ξi ≥ 0 ∀i
X
M
m=1
dm = 1 , dm ≥ 0 ∀m ,
f =
X
m
fm and k(x, x
′
) = X
M
m=1
dmkm(x, x
′
), with dm ≥ 0
The functional framework
H =
M
M
m=1
H′
m hf , giH′
m =
1
dm
hf , giHm
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 8 / 21Multiple Kernel functional Learning
The problem (for given C)
min
{fm},b,ξ,d
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
ξi
with yi
X
m
fm(xi) + b
≥ 1 + ξi
; ξi ≥ 0 ∀i
X
m
dm = 1 , dm ≥ 0 ∀m ,
Treated as a bi-level optimization task
min
d∈IRM
min
{fm},b,ξ
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
ξi
with yi
X
m
fm(xi) + b
≥ 1 + ξi
; ξi ≥ 0 ∀i
s.t. X
m
dm = 1 , dm ≥ 0 ∀m ,
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 9 / 21Multiple Kernel representer theorem and dual
The Lagrangian:
L =
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
ξi −
X
i
αi
yi
X
m
fm(xi) + b
− 1 − ξi
−
X
i
βi ξi
Associated KKT stationarity conditions:
∇mL = 0 ⇔
1
dm
fm(•) = Xn
i=1
αi yikm(•, xi) m = 1, M
Representer theorem
f (•) = X
m
fm(•) = Xn
i=1
αi yi
X
m
dmkm(•, xi)
| {z }
K(•,xi )
We have a standard SVM problem with respect to function f and kernel K.
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 10 / 21Multiple Kernel Algorithm
Use a Reduced Gradient Algorithm1
min
d∈IRM
J(d)
s.t. X
m
dm = 1 , dm ≥ 0 ∀m ,
SimpleMKL algorithm
set dm =
1
M
for m = 1, . . . , M
while stopping criterion not met do
compute J(d) using an QP solver with K =
P
m dmKm
compute ∂J
∂dm
, and projected gradient as a descent direction D
γ ← compute optimal stepsize
d ← d + γD
end while
−→ Improvement reported using the Hessian
1Rakotomamonjy et al. JMLR 08
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 11 / 21Computing the reduced gradient
At the optimal the primal cost = dual cost
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
ξi
| {z }
primal cost
=
1
2
α
⊤Gα − e
⊤α
| {z }
dual cost
with G =
P
m dmGm where Gm,ij = km(xi
, xj)
Dual cost is easier for the gradient
∇dm J(d) = 1
2
α
⊤Gmα
Reduce (or project) to check the constraints P
m dm = 1 →
P
m Dm = 0
Dm = ∇dm J(d) − ∇d1
J(d) and D1 = −
X
M
m=2
Dm
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 12 / 21Complexity
For each iteration:
SVM training: O(nnsv + n
3
sv).
Inverting Ksv,sv is O(n
3
sv), but might already be available as a
by-product of the SVM training.
Computing H: O(Mn2
sv)
Finding d: O(M3
).
The number of iterations is usually less than 10.
−→ When M < nsv, computing d is not more expensive than QP.
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 13 / 21MKL on the 101-caltech dataset
http://www.robots.ox.ac.uk/~vgg/software/MKL/
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 14 / 21Support vector regression (SVR)
the t-insensitive loss
(
min
f ∈H
1
2
kf k
2
H
with |f (xi) − yi
| ≤ t, i = 1, n
The support vector regression introduce slack variables
(SVR)
(
min
f ∈H
1
2
kf k
2
H + C
P|ξi
|
with |f (xi) − yi
| ≤ t + ξi 0 ≤ ξi
i = 1, n
a typical multi parametric quadratic program (mpQP)
piecewise linear regularization path
α(C,t) = α(C0,t0) + ( 1
C
−
1
C0
)u +
1
C0
(t − t0)v
2d Pareto’s front (the tube width and the regularity)Support vector regression illustration
0 1 2 3 4 5 6 7 8
−1
−0.8
−0.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
1
Support Vector Machine Regression
x
y
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
−1.5
−1
−0.5
0
0.5
1
1.5
Support Vector Machine Regression
x
y
C large C small
there exists other formulations such as LP SVR...Multiple Kernel Learning for regression
The problem (for given C and t)
min
{fm},b,ξ,d
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
ξi
s.t.
X
m
fm(xi) + b − yi
≤ t + ξi ∀iξi ≥ 0 ∀i
X
m
dm = 1 , dm ≥ 0 ∀m ,
regularization formulation
min
{fm},b,d
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
max(
X
m
fm(xi) + b − yi
− t, 0)
X
m
dm = 1 , dm ≥ 0 ∀m ,
Equivalently
min
fm},b,ξ,d
X
i
max
X
m
fm(xi) + b − yi
− t, 0
+
1
2C
X
m
1
dm
kfmk
2
Hm + µ
X
m
|dm|
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 17 / 21Multiple Kernel functional Learning
The problem (for given C and t)
min
{fm},b,ξ,d
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
ξi
s.t.
X
m
fm(xi) + b − yi
≤ t + ξi ∀iξi ≥ 0 ∀i
X
m
dm = 1 , dm ≥ 0 ∀m ,
Treated as a bi-level optimization task
min
d∈IRM
min
{fm},b,ξ
1
2
X
m
1
dm
kfmk
2
Hm + C
X
i
ξi
s.t.
X
m
fm(xi) + b − yi
≥ t + ξi ∀i
ξi ≥ 0 ∀i
s.t. X
m
dm = 1 , dm ≥ 0 ∀m ,
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 18 / 21Multiple Kernel experiments
0 0.2 0.4 0.6 0.8 1
−1
−0.5
0
0.5
1
LinChirp
0 0.2 0.4 0.6 0.8 1
−2
−1
0
1
2
x
0 0.2 0.4 0.6 0.8 1
0.2
0.4
0.6
0.8
1
Wave
0 0.2 0.4 0.6 0.8 1
0
0.5
1
x
0 0.2 0.4 0.6 0.8 1
0.2
0.4
0.6
0.8
1
Blocks
0 0.2 0.4 0.6 0.8 1
0
0.2
0.4
0.6
0.8
x
0 0.2 0.4 0.6 0.8 1
0.2
0.4
0.6
0.8
1
Spikes
0 0.2 0.4 0.6 0.8 1
0
0.5
1
x
Single Kernel Kernel Dil Kernel Dil-Trans
Data Set Norm. MSE (%) #Kernel Norm. MSE #Kernel Norm. MSE
LinChirp 1.46 ± 0.28 7.0 1.00 ± 0.15 21.5 0.92 ± 0.20
Wave 0.98 ± 0.06 5.5 0.73 ± 0.10 20.6 0.79 ± 0.07
Blocks 1.96 ± 0.14 6.0 2.11 ± 0.12 19.4 1.94 ± 0.13
Spike 6.85 ± 0.68 6.1 6.97 ± 0.84 12.8 5.58 ± 0.84
Table: Normalized Mean Square error averaged over 20 runs.
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 19 / 21Conclusion on multiple kernel (MKL)
MKL: Kernel tuning, variable selection. . .
◮ extention to classification and one class SVM
SVM KM: an efficient Matlab toolbox (available at MLOSS)2
Multiple Kernels for Image Classification: Software and Experiments
on Caltech-1013
new trend: Multi kernel, Multi task and ∞ number of kernels
2
http://mloss.org/software/view/33/
3
http://www.robots.ox.ac.uk/~vgg/software/MKL/Bibliography
A. Rakotomamonjy, F. Bach, S. Canu & Y. Grandvalet. SimpleMKL. J.
Mach. Learn. Res. 2008, 9:2491–2521.
M. Gönen & E. Alpaydin Multiple kernel learning algorithms. J. Mach.
Learn. Res. 2008;12:2211-2268.
http://www.cs.nyu.edu/~mohri/icml2011-tutorial/tutorial-icml2011-2.pdf
http://www.robots.ox.ac.uk/~vgg/software/MKL/
http://www.nowozin.net/sebastian/talks/ICCV-2009-LPbeta.pdf
Stéphane Canu (INSA Rouen - LITIS) April 16, 2014 21 / 21
Lecture 7: Tuning hyperparameters using cross validation
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
April 4, 2014Roadmap
1 Tuning hyperparameters
Motivation
Machine learning without data
Assessing the quality of a trained SVM
Model selection
log of the bandwith
log of C
1.5 2 2.5 3 3.5 4 4.5
ï1
0
1
2
3
4
“Evaluation is the key to making real progress in data mining”, [Witten &
Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Motivation: the influence of C on SVM
0 0.5 1 1.5 2 2.5 3 3.5 4
0.22
0.24
0.26
0.28
0.3
error
C (log. scale)
0
0
1
−1
C too small
0
0
0
1
1
1
−1 −1
−1
−1
−1
nice C
0
0
0
0
0
1
1
1
1
1
1
−1
−1
−1
−1
−1
C too largeMotivation:
Need for model selection (tuning the hyper parameters)
Require a good estimation of the performance on future data Choose a
relevant performance measureRoadmap
1 Tuning hyperparameters
Motivation
Machine learning without data
Assessing the quality of a trained SVM
Model selection
log of the bandwith
log of C
1.5 2 2.5 3 3.5 4 4.5
ï1
0
1
2
3
4
“Evaluation is the key to making real progress in data mining”, [Witten &
Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Machine learning without data
minimizing IP(error)Roadmap
1 Tuning hyperparameters
Motivation
Machine learning without data
Assessing the quality of a trained SVM
Model selection
log of the bandwith
log of C
1.5 2 2.5 3 3.5 4 4.5
ï1
0
1
2
3
4
“Evaluation is the key to making real progress in data mining”, [Witten &
Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Training and test data
Split dataset into two groups randomly picked (hold out strategy)
Training set: used to train the classifier
Test set: used to estimate the error rate of the trained classifier
(X,y) total available data
(Xa,ya) training data (Xt,yt) test data
(Xa, ya, Xt, yt) ← split(X, y, option =
1
3
)
Generally, the larger the training data the better the classifier
The larger the test data the more accurate the error estimateAssessing the quality of a trained SVM: minimum error rate
Definition (The confusion matrix)
A matrix showing the predicted and actual classifications. A confusion
matrix is of size L × L, where L is the number of different classes.
Observed / predicted Positive Negative
positive a b
negative c d
Error rate = 1 - Accuracy =
b + c
a + b + c + d
=
b + c
n
= 1 −
a + d
n
True positive rate (Recall, Sensitivity) d/(c+d).
True negative rate (Specificity) a/(a+b).
Precision, False positive rate, False negative rate...Other performances measures
N. Japkowicz & M. Shah, "Evaluating Learning Algorithms: A Classification Perspective", Cambridge University Press, 2011The learning equation
Learning = training + testing + tuning
Table: my experimental error rates
State of the art my new method Bayes error
problem 1 10% ± 1.25 8.5% ± .5
problem 2 5 % (.25) 4 % (.5)
is my new method good for problem 1?The learning equation
Learning = training + testing + tuning
Table: my experimental error rates
State of the art my new method Bayes error
problem 1 10% ± 1.25 8.5% ± .5 11 %
problem 2 5 % (.25) 4 % (.5) 2 %
is my new method good for problem 1?Error bars on Bernouilli trials
Error rate = bp B(p)
with confidence α: (Normal approximation interval)
p = IP(error) in bp ± u1−α/2
s
bp (1 − bp)
nt
with confidence α: (improved approximation)
p = IP(error) in 1
1 +
1
K
u
2
1−α/2
bp ± u1−α/2
s
bp (1 − bp)
nt
what if bp = 0?
http://en.wikipedia.org/wiki/Binomial_proportion_confidence_intervalTo improve the estimate
Random Subsampling (The repeated holdout method)
K-Fold Cross-Validation (K = 10 or K = 2 or k = n)
Leave-one-out Cross-Validation (k = 1)
BootstrapError bars: the gaussian approximation
... and to stabilize: iterate K times - do it say K = 10 times
The repeated holdout method
Holdout estimate can be made more reliable by repeating the process
with different subsamples
In each iteration, use a different random splitting
Average the error rates on the different iterations
mean error rate e =
1
K
X
K
k=1
ek variance σb
2 =
1
K − 1
X
K
k=1
(ek − e)
2
.
e + tα/2,K−1
r
σb
2
K
t0.025,9 = 2.262Cross validation
Definition (Cross-validation)
A method for estimating the accuracy of an inducer by dividing the data
into K mutually exclusive subsets (the “folds”) of approximately equal size.
Exemple of K = 3-Fold Cross-Validation
training data
test data
How many folds are needed (K =?)
large: small bias, large variance as well as computational time
small: computation time reduced, small variance, large bias
A common choice for K-Fold Cross Validation is K=5Leave one out cross validation
Theoretical guaranteesThe bootstrapComparing results
Two different issues
what is the best method for my problem?
how good is my learning algorithm?Comparing two algorithms: Mc Nemar’s test
build the confusion matrix of the two algorithms
Algo 1 / Algo 2 right wrong
right number of examples well
classified by both
e01 number of examples
well classified by 1 but not
by 2
wrong e10 number of examples
missclassified by 1 but not
by 2
number of examples missclassified
by both
H0: if the two algorithms are the same (we expect e10 = e01 =
e10+e01
2
)
(|e10 − e01| − 1)
2
e10 + e01
∼ χ
2
1
Beware: if e10 + e01 < 20 better use the sign test
Matlab function:
http://www.mathworks.com/matlabcentral/fileexchange/189-discrim/content/discrim/
mcnemar.m
J. L. Fleiss (1981) Statistical Methods for Rates and Proportions. Second Edition. Wiley.Roadmap
1 Tuning hyperparameters
Motivation
Machine learning without data
Assessing the quality of a trained SVM
Model selection
log of the bandwith
log of C
1.5 2 2.5 3 3.5 4 4.5
ï1
0
1
2
3
4
“Evaluation is the key to making real progress in data mining”, [Witten &
Frank, 2005], p.143 (from N. Japkowicz & M. Shah ICML 2012 tutorial)Model selection strategy
Model selection criteria attempt to find a good compromise between
The complexity of a model
Its prediction accuracy on the training data
1 (Xa, ya, Xt, yt) ← split(X, y, options)
2 (C, b) ← tune(Xa, ya, options)
3 model ← train(Xa, ya, C, b, options)
4 error ← test(Xt, yt, C, b, options)
Occam’s Razor:
the best theory is the smallest one that describes all the factsModel selection: the tuning function
function (C, b) ← tune(Xa, ya, options)
1 (Xℓ, yℓ, Xv, yv) ← split(Xa, ya, options)
2 loop on a grid for C
3 loop on a grid for b
1 model ← train(Xℓ, yℓ, C, b, options)
2 error ← test(Xv, yv, C, b, options)
The three sets
Training set: a set of examples used for learning: to fit the parameters
Validation set: a set of examples used to tune the hyper parameters
Test set: independent instances that have played no part in formation
of classifierhow to design the grids
A grid on b
A much simpler trick is to pick, say 1000 pairs (x,x’) at random from your
dataset, compute the distance of all such pairs and take the median, the
0.1 and the 0.9 quantile. Now pick b to be the inverse any of these three
numbers.
http://blog.smola.org/post/940859888/easy-kernel-width-choice
A grid on C
from Cmin to ∞
to much!The coarse to fine strategy
1 use a large coarse grid on a few data to localize interesting values
2 fine tuning on all data in this zone
1 (Xa, ya, Xt, yt) ← split(X, y)
2 (C, b) ← tune(Xa, ya, coarsegrids,smalltrainingset)
3 finegrids ← fit_grid(C, b)
4 (C, b) ← tune(Xa, ya, finegrids, largetrainingset)
5 model ← train(Xa, ya, C, b, options)
6 error ← test(Xt, yt, C, b, options)
The computing time is the key issueEvaluation measures
the span boundBibliography
http://research.cs.tamu.edu/prism/lectures/iss/iss_l13.pdf
http://www.cs.odu.edu/~mukka/cs795sum13dm/Lecturenotes/Day3/Chapter5.pdf
http://www.cs.cmu.edu/~epxing/Class/10701-10s/Lecture/lecture8.pdf
http://www.mohakshah.com/tutorials/icml2012/Tutorial-ICML2012/Tutorial_at_ICML_
2012_files/ICML2012-Tutorial.pdf
Stéphane Canu (INSA Rouen - LITIS) April 4, 2014 26 / 26
Lecture 6: Minimum encoding ball and Support vector
data description (SVDD)
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
May 12, 2014Plan
1 Support Vector Data Description (SVDD)
SVDD, the smallest enclosing ball problem
The minimum enclosing ball problem with errors
The minimum enclosing ball problem in a RKHS
The two class Support vector data description (SVDD)The minimum enclosing ball problem [Tax and Duin, 2004]
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 3 / 35The minimum enclosing ball problem [Tax and Duin, 2004]
the center
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 3 / 35The minimum enclosing ball problem [Tax and Duin, 2004]
the radius
Given n points, {xi
, i = 1, n} .
(
min
R∈IR,c∈IRd
R
2
with kxi − ck
2 ≤ R
2
, i = 1, . . . , n
What is that in the convex programming hierarchy?
LP, QP, QCQP, SOCP and SDP
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 3 / 35The convex programming hierarchy (part of)
LP
min
x
f
⊤x
with Ax ≤ d
and 0 ≤ x
QP
(
min
x
1
2
x
⊤Gx + f
⊤x
with Ax ≤ d
QCQP
min
x
1
2
x
⊤Gx + f
⊤x
with x
⊤Bix + a
⊤
i
x ≤ di
i = 1, n
SOCP
min
x
f
⊤x
with kx − aik ≤ b
⊤
i
x + di
i = 1, n
The convex programming hierarchy?
Model generality: LP < QP < QCQP < SOCP < SDP
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 4 / 35MEB as a QP in the primal
Theorem (MEB as a QP)
The two following problems are equivalent,
(
min
R∈IR,c∈IRd
R
2
with kxi − ck
2 ≤ R
2
, i = 1, . . . , n
(
min
w,ρ
1
2
kwk
2 − ρ
with w⊤xi ≥ ρ +
1
2
kxik
2
with ρ =
1
2
(kck
2 − R
2
) and w = c.
Proof:
kxi − ck
2 ≤ R
2
kxik
2 − 2x
⊤
i
c + kck
2 ≤ R
2
−2x
⊤
i
c ≤ R
2 − kxik
2 − kck
2
2x
⊤
i
c ≥ −R
2 + kxik
2 + kck
2
x
⊤
i
c ≥
1
2
(kck
2 − R
2
)
| {z }
ρ
+
1
2
kxik
2
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 5 / 35MEB and the one class SVM
SVDD: (
min
w,ρ
1
2
kwk
2 − ρ
with w⊤xi ≥ ρ +
1
2
kxik
2
SVDD and linear OCSVM (Supporting Hyperplane)
if ∀i = 1, n, kxik
2 = constant, it is the the linear one class SVM (OC SVM)
The linear one class SVM [Schölkopf and Smola, 2002]
(
min
w,ρ′
1
2
kwk
2 − ρ
′
with w⊤xi ≥ ρ
′
with ρ
′ = ρ +
1
2
kxik
2 ⇒ OC SVM is a particular case of SVDD
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 6 / 35When ∀i = 1, n, kxik
2 = 1
0
c
kxi − ck
2 ≤ R
2 ⇔ w
⊤xi ≥ ρ
with
ρ =
1
2
(kck
2 − R + 1)
SVDD and OCSVM
"Belonging to the ball" is also "being above" an hyperplane
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 7 / 35MEB: KKT
L(c, R, α) = R
2 +
Xn
i=1
αi
kxi − ck
2 − R
2
KKT conditionns :
stationarty ◮ 2c
Pn
i=1
αi − 2
Pn
i=1
αixi = 0 ← The representer theorem
◮ 1 −
Pn
i=1
αi = 0
primal admiss. kxi − ck
2 ≤ R
2
dual admiss. αi ≥ 0 i = 1, n
complementarity αi
kxi − ck
2 − R
2
= 0 i = 1, n
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 8 / 35MEB: KKT
the radius L(c, R, α) = R
2 +
Xn
i=1
αi
kxi − ck
2 − R
2
KKT conditionns :
stationarty ◮ 2c
Pn
i=1
αi − 2
Pn
i=1
αixi = 0 ← The representer theorem
◮ 1 −
Pn
i=1
αi = 0
primal admiss. kxi − ck
2 ≤ R
2
dual admiss. αi ≥ 0 i = 1, n
complementarity αi
kxi − ck
2 − R
2
= 0 i = 1, n
Complementarity tells us: two groups of points
the support vectors kxi − ck
2 = R
2 and the insiders αi = 0
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 8 / 35MEB: Dual
The representer theorem:
c =
Pn
i=1
αixi
Pn
i=1
αi
=
Xn
i=1
αixi
L(α) = Xn
i=1
αi
kxi −
Xn
j=1
αjxjk
2
Xn
i=1
Xn
j=1
αiαjx
⊤
i
xj = α
⊤Gα and Xn
i=1
αi x
⊤
i
xi = α
⊤diag(G)
with G = XX⊤ the Gram matrix: Gij = x
⊤
i
xj ,
min
α∈IRn
α
⊤Gα − α
⊤diag(G)
with e
⊤α = 1
and 0 ≤ αi
, i = 1 . . . n
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 9 / 35SVDD primal vs. dual
Primal
min
R∈IR,c∈IRd
R
2
with kxi − ck
2 ≤ R
2
,
i = 1, . . . , n
d + 1 unknown
n constraints
can be recast as a QP
perfect when d << n
Dual
min
α
α
⊤Gα − α
⊤diag(G)
with e
⊤α = 1
and 0 ≤ αi
,
i = 1 . . . n
n unknown with G the pairwise
influence Gram matrix
n box constraints
easy to solve
to be used when d > nSVDD primal vs. dual
Primal
min
R∈IR,c∈IRd
R
2
with kxi − ck
2 ≤ R
2
,
i = 1, . . . , n
d + 1 unknown
n constraints
can be recast as a QP
perfect when d << n
Dual
min
α
α
⊤Gα − α
⊤diag(G)
with e
⊤α = 1
and 0 ≤ αi
,
i = 1 . . . n
n unknown with G the pairwise
influence Gram matrix
n box constraints
easy to solve
to be used when d > n
But where is R
2
?Looking for R
2
(
min
α
α
⊤Gα − α
⊤diag(G)
with e
⊤α = 1, 0 ≤ αi
, i = 1, n
The Lagrangian: L(α, µ, β) = α
⊤Gα − α
⊤diag(G) + µ(e
⊤α − 1) − β
⊤α
Stationarity cond.: ∇αL(α, µ, β) = 2Gα − diag(G) + µe − β = 0
The bi dual
(
min
α
α
⊤Gα + µ
with −2Gα + diag(G) ≤ µe
by identification
R
2 = µ + α
⊤Gα = µ + kck
2
µ is the Lagrange multiplier associated with the equality constraint Xn
i=1
αi = 1
Also, because of the complementarity condition, if xi
is a support vector, then
βi = 0 implies αi > 0 and R
2 = kxi − ck
2
.Plan
1 Support Vector Data Description (SVDD)
SVDD, the smallest enclosing ball problem
The minimum enclosing ball problem with errors
The minimum enclosing ball problem in a RKHS
The two class Support vector data description (SVDD)
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 12 / 35The minimum enclosing ball problem with errors
the slack
The same road map:
initial formuation
reformulation (as a QP)
Lagrangian, KKT
dual formulation
bi dual
Initial formulation: for a given C
min
R,a,ξ
R
2 + C
Xn
i=1
ξi
with kxi − ck
2 ≤ R
2 + ξi
, i = 1, . . . , n
and ξi ≥ 0, i = 1, . . . , n
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 13 / 35The MEB with slack: QP, KKT, dual and R
2
SVDD as a QP:
min
w,ρ
1
2
kwk
2 − ρ +
C
2
Xn
i=1
ξi
with w⊤xi ≥ ρ +
1
2
kxik
2 −
1
2
ξi
and ξi ≥ 0,
i = 1, n
again with OC SVM as a particular case.
With G = XX ⊤
Dual SVDD:
min
α
α
⊤Gα − α
⊤diag(G)
with e
⊤α = 1
and 0 ≤ αi ≤ C,
i = 1, n
for a given C ≤ 1. If C is larger than one it is useless (it’s the no slack case)
R
2 = µ + c
⊤c
with µ denoting the Lagrange multiplier associated with the equality
constraint Pn
i=1 αi = 1.Variations over SVDD
Adaptive SVDD: the weighted error case for given wi
, i = 1, n
min
c∈IRp,R∈IR,ξ∈IRn
R + C
Xn
i=1
wi ξi
with kxi − ck
2 ≤ R+ξi
ξi ≥ 0 i = 1, n
The dual of this problem is a QP [see for instance Liu et al., 2013]
(
min
α∈IRn
α
⊤XX ⊤α − α
⊤diag(XX ⊤)
with Pn
i=1 αi = 1 0 ≤ αi ≤ Cwi
i = 1, n
Density induced SVDD (D-SVDD):
min
c∈IRp,R∈IR,ξ∈IRn
R + C
Xn
i=1
ξi
with wikxi − ck
2 ≤ R+ξi
ξi ≥ 0 i = 1, nPlan
1 Support Vector Data Description (SVDD)
SVDD, the smallest enclosing ball problem
The minimum enclosing ball problem with errors
The minimum enclosing ball problem in a RKHS
The two class Support vector data description (SVDD)
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 16 / 35SVDD in a RKHS
The feature map: IRp −→ H
c −→ f (•)
xi −→ k(xi
, •)
kxi − ckIRp ≤ R
2 −→ kk(xi
, •) − f (•)k
2
H ≤ R
2
Kernelized SVDD (in a RKHS) is also a QP
min
f ∈H,R∈IR,ξ∈IRn
R
2 + C
Xn
i=1
ξi
with kk(xi
, •) − f (•)k
2
H ≤ R
2+ξi
i = 1, n
ξi ≥ 0 i = 1, nSVDD in a RKHS: KKT, Dual and R
2
L = R
2 + C
Xn
i=1
ξi +
Xn
i=1
αi
kk(xi
, .) − f (.)k
2
H − R
2−ξi
−
Xn
i=1
βi ξi
= R
2 + C
Xn
i=1
ξi +
Xn
i=1
αi
k(xi
, xi) − 2f (xi) + kf k
2
H − R
2−ξi
−
Xn
i=1
βi ξi
KKT conditions
Stationarity
◮ 2f (.)
Pn
i=1 αi − 2
Pn
i=1 αik(., xi) = 0 ← The representer theorem
◮ 1 −
Pn
i=1 αi = 0
◮ C − αi − βi = 0
Primal admissibility: kk(xi
, .) − f (.)k
2 ≤ R
2 + ξi
, ξi ≥ 0
Dual admissibility: αi ≥ 0 , βi ≥ 0
Complementarity
◮ αi
kk(xi
, .) − f (.)k
2 − R
2 − ξi
= 0
◮ βi ξi = 0SVDD in a RKHS: Dual and R
2
L(α) = Xn
i=1
αik(xi
, xi) − 2
Xn
i=1
f (xi) + kf k
2
H with f (.) = Xn
j=1
αjk(., xj)
=
Xn
i=1
αik(xi
, xi) −
Xn
i=1
Xn
j=1
αiαj k(xi
, xj)
| {z }
Gij
Gij = k(xi
, xj)
min
α
α
⊤Gα − α
⊤diag(G)
with e
⊤α = 1
and 0 ≤ αi≤ C, i = 1 . . . n
As it is in the linear case:
R
2 = µ + kf k
2
H
with µ denoting the Lagrange multiplier associated with the equality
constraint Pn
i=1 αi = 1.SVDD train and val in a RKHS
Train using the dual form (in: G, C; out: α, µ)
min
α
α
⊤Gα − α
⊤diag(G)
with e
⊤α = 1
and 0 ≤ αi≤ C, i = 1 . . . n
Val with the center in the RKHS: f (.) = Pn
i=1 αik(., xi)
φ(x) = kk(x, .) − f (.)k
2
H − R
2
= kk(x, .)k
2
H − 2hk(x, .), f (.)iH + kf (.)k
2
H − R
2
= k(x, x) − 2f (x) + R
2 − µ − R
2
= −2f (x) + k(x, x) − µ
= −2
Xn
i=1
αik(x, xi) + k(x, x) − µ
φ(x) = 0 is the decision border
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 20 / 35An important theoretical result
For a well-calibrated bandwidth,
The SVDD estimates the underlying distribution level set [Vert and Vert,
2006]
The level sets of a probability density function IP(x) are the set
Cp = {x ∈ IRd
| IP(x) ≥ p}
It is well estimated by the empirical minimum volume set
Vp = {x ∈ IRd
| kk(x, .) − f (.)k
2
H − R
2 ≥ 0}
The frontiers coincidesSVDD: the generalization error
For a well-calibrated bandwidth,
(x1, . . . , xn) i.i.d. from some fixed but unknown IP(x)
Then [Shawe-Taylor and Cristianini, 2004] with probability at least 1 − δ,
(∀δ ∈]0, 1[), for any margin m > 0
IP
kk(x, .) − f (.)k
2
H ≥ R
2 + m
≤
1
mn
Xn
i=1
ξi +
6R
2
m
√
n
+ 3
r
ln(2/δ)
2nEquivalence between SVDD and OCSVM for translation
invariant kernels (diagonal constant kernels)
Theorem
Let H be a RKHS on some domain X endowed with kernel k. If there
exists some constant c such that ∀x ∈ X , k(x, x) = c, then the two
following problems are equivalent,
min
f ,R,ξ
R + C
Xn
i=1
ξi
with kk(xi
, .) − f (.)k
2
H ≤ R+ξi
ξi ≥ 0 i = 1, n
min
f ,ρ,ξ
1
2
kf k
2
H − ρ + C
Xn
i=1
εi
with f (xi) ≥ ρ − εi
εi ≥ 0 i = 1, n
with ρ =
1
2
(c + kf k
2
H − R) and εi =
1
2
ξi
.Proof of the Equivalence between SVDD and OCSVM
min
f ∈H,R∈IR,ξ∈IRn
R + C
Xn
i=1
ξi
with kk(xi
, .) − f (.)k
2
H ≤ R+ξi
, ξi ≥ 0 i = 1, n
since kk(xi
, .) − f (.)k
2
H = k(xi
, xi) + kf k
2
H − 2f (xi)
min
f ∈H,R∈IR,ξ∈IRn
R + C
Xn
i=1
ξi
with 2f (xi) ≥ k(xi
, xi) + kf k
2
H − R−ξi
, ξi ≥ 0 i = 1, n.
Introducing ρ =
1
2
(c + kf k
2
H − R) that is R = c + kf k
2
H − 2ρ, and since k(xi
, xi)
is constant and equals to c the SVDD problem becomes
min
f ∈H,ρ∈IR,ξ∈IRn
1
2
kf k
2
H − ρ +
C
2
Xn
i=1
ξi
with f (xi) ≥ ρ−
1
2
ξi
, ξi ≥ 0 i = 1, nleading to the classical one class SVM formulation (OCSVM)
min
f ∈H,ρ∈IR,ξ∈IRn
1
2
kf k
2
H − ρ + C
Xn
i=1
εi
with f (xi) ≥ ρ − εi
, εi ≥ 0 i = 1, n
with εi =
1
2
ξi
. Note that by putting ν =
1
nC we can get the so called ν
formulation of the OCSVM
min
f
′∈H,ρ′∈IR,ξ′∈IRn
1
2
kf
′k
2
H − nνρ′ +
Xn
i=1
ξ
′
i
with f
′
(xi) ≥ ρ
′ − ξ
′
i
, ξ′
i ≥ 0 i = 1, n
with f
′ = Cf , ρ
′ = Cρ, and ξ
′ = Cξ.Duality
Note that the dual of the SVDD is
(
min
α∈IRn
α
⊤Gα − α
⊤g
with Pn
i=1 αi = 1 0 ≤ αi ≤ C i = 1, n
where G is the kernel matrix of general term Gi,j = k(xi
, xj) and g the
diagonal vector such that gi = k(xi
, xi) = c. The dual of the OCSVM is
the following equivalent QP
(
min
α∈IRn
1
2
α
⊤Gα
with Pn
i=1 αi = 1 0 ≤ αi ≤ C i = 1, n
Both dual forms provide the same solution α, but not the same Lagrange
multipliers. ρ is the Lagrange multiplier of the equality constraint of the
dual of the OCSVM and R = c + α
⊤Gα − 2ρ. Using the SVDD dual, it
turns out that R = λeq + α
⊤Gα where λeq is the Lagrange multiplier of
the equality constraint of the SVDD dual form.Plan
1 Support Vector Data Description (SVDD)
SVDD, the smallest enclosing ball problem
The minimum enclosing ball problem with errors
The minimum enclosing ball problem in a RKHS
The two class Support vector data description (SVDD)
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 27 / 35The two class Support vector data description (SVDD)
−4 −3 −2 −1 0 1 2 3
−3
−2
−1
0
1
2
3
4
−4 −3 −2 −1 0 1 2 3
−3
−2
−1
0
1
2
3
4
.
min
c,R,ξ+,ξ−
R
2+C
X
yi =1
ξ
+
i +
X
yi =−1
ξ
−
i
with kxi − ck
2 ≤ R
2+ξ
+
i
, ξ+
i ≥ 0 i such that yi = 1
and kxi − ck
2 ≥ R
2−ξ
−
i
, ξ−
i ≥ 0 i such that yi = −1
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 28 / 35The two class SVDD as a QP
min
c,R,ξ+,ξ−
R
2+C
X
yi =1
ξ
+
i +
X
yi =−1
ξ
−
i
with kxi − ck
2 ≤ R
2+ξ
+
i
, ξ+
i ≥ 0 i such that yi = 1
and kxi − ck
2 ≥ R
2−ξ
−
i
, ξ−
i ≥ 0 i such that yi = −1
kxik
2 − 2x
⊤
i
c + kck
2 ≤ R
2+ξ
+
i
, ξ+
i ≥ 0 i such that yi = 1
kxik
2 − 2x
⊤
i
c + kck
2 ≥ R
2−ξ
−
i
, ξ−
i ≥ 0 i such that yi = −1
2x
⊤
i
c ≥ kck
2 − R
2 + kxik
2−ξ
+
i
, ξ+
i ≥ 0 i such that yi = 1
−2x
⊤
i
c ≥ −kck
2 + R
2 − kxik
2−ξ
−
i
, ξ−
i ≥ 0 i such that yi = −1
2yix
⊤
i
c ≥ yi(kck
2 − R
2 + kxik
2
)−ξi
, ξi ≥ 0 i = 1, n
change variable: ρ = kck
2 − R
2
min
c,ρ,ξ
kck
2 − ρ + C
Pn
i=1
ξi
with 2yixi
⊤c ≥ yi(ρ − kxik
2
)−ξi
i = 1, n
and ξi ≥ 0 i = 1, nThe dual of the two class SVDD
Gij = yi yjxix
⊤
j
The dual formulation:
min
α∈IRn
α
⊤Gα −
Pn
i=1 αi yikxik
2
with Xn
i=1
yiαi = 1
0 ≤ αi ≤ C i = 1, n
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 30 / 35The two class SVDD vs. one class SVDD
The two class SVDD (left) vs. the one class SVDD (right)
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 31 / 35Small Sphere and Large Margin (SSLM) approach
Support vector data description with margin [Wu and Ye, 2009]
min
w,R,ξ∈IRn
R
2+C
X
yi =1
ξ
+
i +
X
yi =−1
ξ
−
i
with kxi − ck
2 ≤ R
2 − 1+ξ
+
i
, ξ+
i ≥ 0 i such that yi = 1
and kxi − ck
2 ≥ R
2 + 1−ξ
−
i
, ξ−
i ≥ 0 i such that yi = −1
kxi − ck
2 ≥ R
2 + 1−ξ
−
i
and yi = −1 ⇐⇒ yi kxi − ck
2 ≤ yiR
2 − 1+ξ
−
i
L(c, R, ξ, α, β) = R
2+C
Xn
i=1
ξi +
Xn
i=1
αi
yikxi − ck
2 − yiR
2 + 1−ξi
−
Xn
i=1
βi ξi
−4 −3 −2 −1 0 1 2 3
−3
−2
−1
0
1
2
3
4SVDD with margin – dual formulation
L(c, R, ξ, α, β) = R
2+C
Xn
i=1
ξi +
Xn
i=1
αi
yikxi − ck
2 − yiR
2 + 1−ξi
−
Xn
i=1
βi ξi
Optimality: c =
Xn
i=1
αi yixi
;
Xn
i=1
αi yi = 1 ; 0 ≤ αi ≤ C
L(α) = Xn
i=1
αi
yikxi −
Xn
j=1
αi yjxjk
2
+
Xn
i=1
αi
= −
Xn
i=1
Xn
j=1
αjαi yi yjx
⊤
j xi +
Xn
i=1
kxik
2
yiαi +
Xn
i=1
αi
Dual SVDD is also a quadratic program
problem D
min
α∈IRn
α
⊤Gα − e
⊤α − f
⊤α
with y
⊤α = 1
and 0 ≤ αi ≤ C i = 1, n
with G a symmetric matrix n × n such that Gij = yi yjx
⊤
j
xi and fi = kxik
2
yiConclusion
Applications
◮ outlier detection
◮ change detection
◮ clustering
◮ large number of classes
◮ variable selection, . . .
A clear path
◮ reformulation (to a standart problem)
◮ KKT
◮ Dual
◮ Bidual
a lot of variations
◮ L
2 SVDD
◮ two classes non symmetric
◮ two classes in the symmetric classes (SVM)
◮ the multi classes issue
practical problems with translation invariant
kernels
.Bibliography
Bo Liu, Yanshan Xiao, Longbing Cao, Zhifeng Hao, and Feiqi Deng.
Svdd-based outlier detection on uncertain data. Knowledge and
information systems, 34(3):597–618, 2013.
B. Schölkopf and A. J. Smola. Learning with Kernels. MIT Press, 2002.
John Shawe-Taylor and Nello Cristianini. Kernel methods for pattern
analysis. Cambridge university press, 2004.
David MJ Tax and Robert PW Duin. Support vector data description.
Machine learning, 54(1):45–66, 2004.
Régis Vert and Jean-Philippe Vert. Consistency and convergence rates of
one-class svms and related algorithms. The Journal of Machine Learning
Research, 7:817–854, 2006.
Mingrui Wu and Jieping Ye. A small sphere and large margin approach for
novelty detection using training data with outliers. Pattern Analysis and
Machine Intelligence, IEEE Transactions on, 31(11):2088–2092, 2009.
Stéphane Canu (INSA Rouen - LITIS) May 12, 2014 35 / 35
Lecture 5: SVM as a kernel machine
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
April 26, 2014Plan
1 Kernel machines
Non sparse kernel machines
Sparse kernel machines: SVM
SVM: variations on a theme
Sparse kernel machines for regression: SVR
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1 1
1
1
1
1
1
1
1
1
1
1
1Interpolation splines
find out f ∈ H such that f (xi) = yi
, i = 1, ..., n
It is an ill posed problemInterpolation splines: minimum norm interpolation
(
min
f ∈H
1
2
kf k
2
H
such that f (xi) = yi
, i = 1, ..., n
The lagrangian (αi Lagrange multipliers)
L(f , α) = 1
2
kf k
2 −
Xn
i=1
αi
f (xi) − yi
Interpolation splines: minimum norm interpolation
(
min
f ∈H
1
2
kf k
2
H
such that f (xi) = yi
, i = 1, ..., n
The lagrangian (αi Lagrange multipliers)
L(f , α) = 1
2
kf k
2 −
Xn
i=1
αi
f (xi) − yi
optimality for f : ∇f L(f , α) = 0 ⇔ f (x) = Xn
i=1
αik(xi
, x)Interpolation splines: minimum norm interpolation
(
min
f ∈H
1
2
kf k
2
H
such that f (xi) = yi
, i = 1, ..., n
The lagrangian (αi Lagrange multipliers)
L(f , α) = 1
2
kf k
2 −
Xn
i=1
αi
f (xi) − yi
optimality for f : ∇f L(f , α) = 0 ⇔ f (x) = Xn
i=1
αik(xi
, x)
dual formulation (remove f from the lagrangian):
Q(α) = −
1
2
Xn
i=1
Xn
j=1
αiαjk(xi
, xj) +Xn
i=1
αi yi solution: max
α∈IRn
Q(α)
Kα = yRepresenter theorem
Theorem (Representer theorem)
Let H be a RKHS with kernel k(s,t). Let ℓ be a function from X to IR
(loss function) and Φ a non decreasing function from IR to IR. If there
exists a function f ∗minimizing:
f
∗ = argmin
f ∈H
Xn
i=1
ℓ
yi
, f (xi)
+ Φ
kf k
2
H
then there exists a vector α ∈ IRn
such that:
f
∗
(x) = Xn
i=1
αik(x, xi)
it can be generalized to the semi parametric case: +
Pm
j=1
βjφj(x)Elements of a proof
1 Hs = span{k(., x1), ..., k(., xi), ..., k(., xn)}
2 orthogonal decomposition: H = Hs ⊕ H⊥ ⇒ ∀f ∈ H; f = fs + f⊥
3 pointwise evaluation decomposition
f (xi) = fs (xi) + f⊥(xi)
= hfs (.), k(., xi)iH + hf⊥(.), k(., xi)iH
| {z }
=0
= fs (xi)
4 norm decomposition kf k
2
H = kfsk
2
H + kf⊥k
2
H | {z }
≥0
≥ kfsk
2
H
5 decompose the global cost
Xn
i=1
ℓ
yi
, f (xi)
+ Φ
kf k
2
H
=
Xn
i=1
ℓ
yi
, fs (xi)
+ Φ
kfsk
2
H + kf⊥k
2
H
≥
Xn
i=1
ℓ
yi
, fs (xi)
+ Φ
kfsk
2
H
6 argmin
f ∈H
= argmin
f ∈Hs
.Smooting splines
introducing the error (the slack) ξ = f (xi) − yi
(S)
min
f ∈H
1
2
kf k
2
H +
1
2λ
Xn
i=1
ξ
2
i
such that f (xi) = yi + ξi
, i = 1, n
3 equivalent definitions
(S
′
) min
f ∈H
1
2
Xn
i=1
f (xi ) − yi
2 +
λ
2
kf k
2
H
min
f ∈H
1
2
kf k
2
H
such that Xn
i=1
f (xi ) − yi
2 ≤ C
′
min
f ∈H
Xn
i=1
f (xi ) − yi
2
such that kf k
2
H ≤ C
′′
using the representer theorem
(S
′′) min
α∈IRn
1
2
kKα − yk
2 +
λ
2
α
⊤Kα
solution: (S) ⇔ (S
′
) ⇔ (S
′′) ⇔ α = (K + λI)
−1
y
6= ridge regression:
min
α∈IRn
1
2
kKα − yk
2 +
λ
2
α
⊤α with α = (K
⊤K + λI)
−1K
⊤yKernel logistic regression
inspiration: the Bayes rule
D(x) = sign
f (x) + α0
=⇒ log
IP(Y =1|x)
IP(Y =−1|x)
= f (x) + α0
probabilities:
IP(Y = 1|x) = expf (x)+α0
1 + expf (x)+α0
IP(Y = −1|x) = 1
1 + expf (x)+α0
Rademacher distribution
L(xi
, yi
, f , α0) = IP(Y = 1|xi)
yi +1
2 (1 − IP(Y = 1|xi))
1−yi
2
penalized likelihood
J(f , α0) = −
Xn
i=1
log
L(xi
, yi
, f , α0)
+
λ
2
kf k
2
H
=
Xn
i=1
log
1 + exp−yi (f (xi )+α0)
+
λ
2
kf k
2
HKernel logistic regression (2)
(R)
min
f ∈H
1
2
kf k
2
H +
1
λ
Xn
i=1
log
1 + exp−ξi
with ξi = yi (f (xi) + α0), i = 1, n
Representer theorem
J(α, α0) = 1I⊤ log
1I + expdiag(y)Kα+α0y
+
λ
2
α
⊤Kα
gradient vector anf Hessian matrix:
∇αJ(α, α0) = K
y − (2p − 1I)
+ λKα
HαJ(α, α0) = Kdiag
p(1I − p)
K + λK
solve the problem using Newton iterations
α
new = α
old+
Kdiag
p(1I − p)
K + λK
−1
K
y − (2p − 1I) + λαLet’s summarize
pros
◮ Universality
◮ from H to IRn
using the representer theorem
◮ no (explicit) curse of dimensionality
splines O(n
3
) (can be reduced to O(n
2
))
logistic regression O(kn3
) (can be reduced to O(kn2
)
no scalability!
sparsity comes to the rescue!Roadmap
1 Kernel machines
Non sparse kernel machines
Sparse kernel machines: SVM
SVM: variations on a theme
Sparse kernel machines for regression: SVR
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
−1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1 1
1
1
1
1
1
1
1
1
1
1
1
Stéphane Canu (INSA Rouen - LITIS) April 26, 2014 11 / 38SVM in a RKHS: the separable case (no noise)
max
f ,b
m
with yi
f (xi) + b
≥ m
and kf k
2
H = 1
⇔
(
min
f ,b
1
2
kf k
2
H
with yi
f (xi) + b
≥ 1
3 ways to represent function f
f (x)
| {z }
in the RKHS H
=
X
d
j=1
wj φj(x)
| {z }
d features
=
Xn
i=1
αi yi k(x, xi)
| {z }
n data points
(
min
w,b
1
2
kwk
2
IRd =
1
2 w⊤w
with yi
w⊤φ(xi) + b
≥ 1
⇔
(
min
α,b
1
2
α
⊤Kα
with yi
α
⊤K(:, i) + b
≥ 1using relevant features...
a data point becomes a function x −→ k(x, •)Representer theorem for SVM
(
min
f ,b
1
2
kf k
2
H
with yi
f (xi) + b
≥ 1
Lagrangian
L(f , b, α) = 1
2
kf k
2
H −
Xn
i=1
αi
yi(f (xi) + b) − 1
α ≥ 0
optimility condition: ∇f L(f , b, α) = 0 ⇔ f (x) = Xn
i=1
αi yik(xi
, x)
Eliminate f from L:
kf k
2
H =
Xn
i=1
Xn
j=1
αiαjyi yjk(xi
, xj)
Xn
i=1
αi yif (xi) = Xn
i=1
Xn
j=1
αiαjyi yjk(xi
, xj)
Q(b, α) = −
1
2
Xn
i=1
Xn
j=1
αiαjyi yjk(xi
, xj) −
Xn
i=1
αi
yib − 1
Dual formulation for SVM
the intermediate function
Q(b, α) = −
1
2
Xn
i=1
Xn
j=1
αiαjyi yjk(xi
, xj) − b
Xn
i=1
αi yi
+
Xn
i=1
αi
max
α
min
b
Q(b, α)
b can be seen as the Lagrange multiplier of the following (balanced)
constaint Pn
i=1 αi yi = 0 which is also the optimality KKT condition on b
Dual formulation
max
α∈IRn
−
1
2
Xn
i=1
Xn
j=1
αiαjyi yjk(xi
, xj) +Xn
i=1
αi
such that Xn
i=1
αi yi = 0
and 0 ≤ αi
, i = 1, nSVM dual formulation
Dual formulation
max
α∈IRn
−
1
2
Xn
i=1
Xn
j=1
αiαjyi yjk(xi
, xj) +Xn
i=1
αi
with Xn
i=1
αi yi = 0 and 0 ≤ αi
, i = 1, n
The dual formulation gives a quadratic program (QP)
(
min
α∈IRn
1
2
α
⊤Gα − I1
⊤α
with α
⊤y = 0 and 0 ≤ α
with Gij = yi yjk(xi
, xj)
with the linear kernel f (x) = Pn
i=1 αi yi(x
⊤xi) = Pd
j=1
βjxj
when d is small wrt. n primal may be interesting.the general case: C-SVM
Primal formulation
(P)
min
f ∈H,b,ξ∈IRn
1
2
kf k
2 +
C
p
Xn
i=1
ξ
p
i
such that yi
f (xi) + b
≥ 1 − ξi
, ξi ≥ 0, i = 1, n
C is the regularization path parameter (to be tuned)
p = 1 , L1 SVM
(
max
α∈IRn
−
1
2
α
⊤Gα + α
⊤1I
such that α
⊤y = 0 and 0 ≤ αi ≤ C i = 1, n
p = 2, L2 SVM
(
max
α∈IRn
−
1
2
α
⊤
G +
1
C
I
α + α
⊤1I
such that α
⊤y = 0 and 0 ≤ αi
i = 1, n
the regularization path: is the set of solutions α(C) when C variesData groups: illustration
f (x) = Xn
i=1
αi k(x, xi )
D(x) = sign
f (x) + b
useless data important data suspicious data
well classified support
α = 0 0 < α < C α = C
the regularization path: is the set of solutions α(C) when C variesThe importance of being support
f (x) = Xn
i=1
αi yik(xi
, x)
data
point α
constraint
value set
xi useless αi = 0 yi
f (xi) + b
> 1 I0
xi support 0 < αi < C yi
f (xi) + b
= 1 Iα
xi suspicious αi = C yi
f (xi) + b
< 1 IC
Table : When a data point is « support » it lies exactly on the margin.
here lies the efficiency of the algorithm (and its complexity)!
sparsity: αi = 0The active set method for SVM (1)
min
α∈IRn
1
2
α
⊤Gα − α
⊤1I
such that α
⊤y = 0 i = 1, n
and 0 ≤ αi
i = 1, n
Gα − 1I − β + by = 0
α
⊤y = 0
0 ≤ αi
i = 1, n
0 ≤ βi
i = 1, n
αiβi = 0 i = 1, n
αa
0
− − + b
1
1
0
β0
ya
y0
=
0
0
G α − − 1I β + b y = 0
Ga
Gi G0
G
⊤
i
(1) Gaαa − 1Ia + bya = 0
(2) Giαa − 1I0 − β0 + by0 = 0
1 solve (1) (find α together with b)
2 if α < 0 move it from Iα to I0
goto 1
3 else solve (2)
if β < 0 move it from I0 to Iα
goto 1The active set method for SVM (2)
Function (α, b, Iα) ←Solve_QP_Active_Set(G, y)
% Solve minα 1/2α⊤Gα − 1I⊤α
% s.t. 0 ≤ α and y⊤α = 0
(Iα, I0, α) ← initialization
while The_optimal_is_not_reached do
(α, b) ← solve
Gaαa − 1Ia + bya
y⊤
a αa
= 0
if ∃i ∈ Iα such that αi < 0 then
α ← projection( αa, α)
move i from Iα to I0
else if ∃j ∈ I0 such that βj < 0 then
use β0 = y0(Kiαa + b1I0) − 1I0
move j from I0 to Iα
else
The_optimal_is_not_reached ← FALSE
end if
end while
α
α
old
α
new
Projection step of the active
constraints algorithm
d = alpha - alphaold;
alpha = alpha + t * d;
Caching Strategy
Save space and computing time by computing only the needed parts of kernel matrix GTwo more ways to derivate SVM
Using the hinge loss
min
f ∈H,b∈IR
1
p
Xn
i=1
max
0, 1 − yi(f (xi) + b)
p
+
1
2C
kf k
2
Minimizing the distance between the convex hulls
min
α
ku − vk
2
H
with u(x) = X
{i|yi =1}
αik(xi
, x), v(x) = X
{i|yi =−1}
αik(xi
, x)
and X
{i|yi =1}
αi = 1,
X
{i|yi =−1}
αi = 1, 0 ≤ αi
i = 1, n
f (x) = 2
ku − vk
2
H
u(x) − v(x)
and b =
kuk
2
H − kvk
2
H
ku − vk
2
H
the regularization path: is the set of solutions α(C) when C variesRegularization path for SVM
min
f ∈H
Xn
i=1
max(1 − yif (xi), 0) + λo
2
kf k
2
H
Iα is the set of support vectors s.t. yi
f (xi) = 1;
∂f J(f ) = X
i∈Iα
γi yiK(xi
, •) −
X
i∈I1
yiK(xi
, •) + λo f (•) with γi ∈ ∂H(1) =] − 1, 0[Regularization path for SVM
min
f ∈H
Xn
i=1
max(1 − yif (xi), 0) + λo
2
kf k
2
H
Iα is the set of support vectors s.t. yi
f (xi) = 1;
∂f J(f ) = X
i∈Iα
γi yiK(xi
, •) −
X
i∈I1
yiK(xi
, •) + λo f (•) with γi ∈ ∂H(1) =] − 1, 0[
Let λn a value close enough to λo to keep the sets I0, Iα and IC unchanged
In particular at point xj ∈ Iα (fo (xj) = fn(xj) = yj) : ∂f J(f )(xj) = 0
P
i∈Iα
γioyiK(xi
, xj) = P
i∈I1
yiK(xi
P , xj) − λo yj
i∈Iα
γinyiK(xi
, xj) = P
i∈I1
yiK(xi
, xj) − λn yj
G(γn − γo) = (λo − λn)y avec Gij = yiK(xi
, xj)
γn = γo + (λo − λn)w
w = (G)
−1
yExample of regularization path
γi ∈] − 1, 0[ yiγi ∈] − 1, −1[ λ =
1
C
γi = −
1
C
αi
; performing together estimation and data selectionHow to choose ℓ and P to get linear regularization path?
the path is piecewise linear ⇔
one is piecewise quadratic
and the other is piecewise linear
the convex case [Rosset & Zhu, 07]
min
β∈IRd
ℓ(β) + λP(β)
1 piecewise linearity: lim
ε→0
β(λ + ε) − β(λ)
ε
= constant
2 optimality
∇ℓ(β(λ)) + λ∇P(β(λ)) = 0
∇ℓ(β(λ + ε)) + (λ + ε)∇P(β(λ + ε)) = 0
3 Taylor expension
lim
ε→0
β(λ + ε) − β(λ)
ε
=
∇2
ℓ(β(λ)) + λ∇2P(β(λ))−1∇P(β(λ))
∇2
ℓ(β(λ)) = constant and ∇2P(β(λ)) = 0
Lecture 4: kernels and associated functions
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
March 4, 2014Plan
1 Statistical learning and kernels
Kernel machines
Kernels
Kernel and hypothesis set
Functional differentiation in RKHSIntroducing non linearities through the feature map
SVM Val
f (x) = X
d
j=1
xjwj + b =
Xn
i=1
αi(x
⊤
i x) + b
t1
t2
∈ IR2
x1
x2
x3
x4
x5
linear in x ∈ IR5
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 3 / 37Introducing non linearities through the feature map
SVM Val
f (x) = X
d
j=1
xjwj + b =
Xn
i=1
αi(x
⊤
i x) + b
t1
t2
∈ IR2 φ(t) =
t1 x1
t
2
1
x2
t2 x3
t
2
2
x4
t1t2 x5
linear in x ∈ IR5
quadratic in t ∈ IR2
The feature map
φ : IR2 −→ IR5
t 7−→ φ(t) = x
x
⊤
i x = φ(ti)
⊤φ(t)
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 3 / 37Introducing non linearities through the feature map
A. Lorena & A. de Carvalho, Uma Introducão às Support Vector Machines, 2007
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 4 / 37Non linear case: dictionnary vs. kernel
in the non linear case: use a dictionary of functions
φj(x), j = 1, p with possibly p = ∞
for instance polynomials, wavelets...
f (x) = X
p
j=1
wjφj(x) with wj =
Xn
i=1
αi yiφj(xi)
so that
f (x) = Xn
i=1
αi yi
X
p
j=1
φj(xi)φj(x)
| {z }
k(xi
,x)
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 5 / 37Non linear case: dictionnary vs. kernel
in the non linear case: use a dictionary of functions
φj(x), j = 1, p with possibly p = ∞
for instance polynomials, wavelets...
f (x) = X
p
j=1
wjφj(x) with wj =
Xn
i=1
αi yiφj(xi)
so that
f (x) = Xn
i=1
αi yi
X
p
j=1
φj(xi)φj(x)
| {z }
k(xi
,x)
p ≥ n so what since k(xi
, x) = Pp
j=1
φj(xi)φj(x)
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 5 / 37closed form kernel: the quadratic kernel
The quadratic dictionary in IRd
:
Φ : IRd → IRp=1+d+
d(d +1)
2
s 7→ Φ =
1,s1,s2, ...,sd ,s
2
1
,s
2
2
, ...,s
2
d
, ...,sisj
, ...
in this case
Φ(s)
⊤Φ(t) = 1 + s1t1 + s2t2 + ... + sd td + s
2
1
t
2
1 + ... + s
2
d
t
2
d + ... + sisjtitj + ...
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 6 / 37closed form kernel: the quadratic kernel
The quadratic dictionary in IRd
:
Φ : IRd → IRp=1+d+
d(d +1)
2
s 7→ Φ =
1,s1,s2, ...,sd ,s
2
1
,s
2
2
, ...,s
2
d
, ...,sisj
, ...
in this case
Φ(s)
⊤Φ(t) = 1 + s1t1 + s2t2 + ... + sd td + s
2
1
t
2
1 + ... + s
2
d
t
2
d + ... + sisjtitj + ...
The quadratic kenrel: s, t ∈ IRd
, k(s, t) =
s
⊤t + 1
2
= 1 + 2s
⊤t +
s
⊤t
2
computes the dot product of the reweighted dictionary:
Φ : IRd → IRp=1+d+
d(d +1)
2
s 7→ Φ =
1,
√
2s1,
√
2s2, ..., √
2sd ,s
2
1
,s
2
2
, ...,s
2
d
, ..., √
2sisj
, ...
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 6 / 37closed form kernel: the quadratic kernel
The quadratic dictionary in IRd
:
Φ : IRd → IRp=1+d+
d(d +1)
2
s 7→ Φ =
1,s1,s2, ...,sd ,s
2
1
,s
2
2
, ...,s
2
d
, ...,sisj
, ...
in this case
Φ(s)
⊤Φ(t) = 1 + s1t1 + s2t2 + ... + sd td + s
2
1
t
2
1 + ... + s
2
d
t
2
d + ... + sisjtitj + ...
The quadratic kenrel: s, t ∈ IRd
, k(s, t) =
s
⊤t + 1
2
= 1 + 2s
⊤t +
s
⊤t
2
computes the dot product of the reweighted dictionary:
Φ : IRd → IRp=1+d+
d(d +1)
2
s 7→ Φ =
1,
√
2s1,
√
2s2, ..., √
2sd ,s
2
1
,s
2
2
, ...,s
2
d
, ..., √
2sisj
, ...
p = 1 + d +
d(d+1)
2 multiplications vs. d + 1
use kernel to save computration
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 6 / 37kernel: features throught pairwise comparizons
x φ(x)
e.g. a text e.g. BOW
K
n examples
n examples
Φ
p features
n examples
k(xi
, xj) = X
p
j=1
φj(xi)φj(xj)
K The matrix of pairwise comparizons (O(n
2
))
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 7 / 37Kenrel machine
kernel as a dictionary
f (x) = Xn
i=1
αik(x, xi)
αi
influence of example i depends on yi
k(x, xi) the kernel do NOT depend on yi
Definition (Kernel)
Let X be a non empty set (the input space).
A kernel is a function k from X × X onto IR.
k : X × X 7−→ IR
s, t −→ k(s, t)Kenrel machine
kernel as a dictionary
f (x) = Xn
i=1
αik(x, xi)
αi
influence of example i depends on yi
k(x, xi) the kernel do NOT depend on yi
Definition (Kernel)
Let X be a non empty set (the input space).
A kernel is a function k from X × X onto IR.
k : X × X 7−→ IR
s, t −→ k(s, t)
semi-parametric version: given the family qj(x), j = 1, p
f (x) = Xn
i=1
αik(x, xi)+
X
p
j=1
βjqj(x)Kernel Machine
Definition (Kernel machines)
A
(xi
, yi)i=1,n
(x) = ψ
Xn
i=1
αik(x, xi) +X
p
j=1
βjqj(x)
α et β: parameters to be estimated.
Exemples
A(x) = Xn
i=1
αi(x − xi)
3
+ + β0 + β1x splines
A(x) = signX
i∈I
αi exp−
kx−xi
k
2
b +β0
SVM
IP(y|x) = 1
Z
expX
i∈I
αi1I{y=yi }(x
⊤xi + b)
2
exponential familyPlan
1 Statistical learning and kernels
Kernel machines
Kernels
Kernel and hypothesis set
Functional differentiation in RKHS
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 10 / 37In the beginning was the kernel...
Definition (Kernel)
a function of two variable k from X × X to IR
Definition (Positive kernel)
A kernel k(s,t) on X is said to be positive
if it is symetric: k(s,t) = k(t,s)
an if for any finite positive interger n:
∀{αi}i=1,n ∈ IR, ∀{xi}i=1,n ∈ X ,
Xn
i=1
Xn
j=1
αiαjk(xi
, xj) ≥ 0
it is strictly positive if for αi 6= 0
Xn
i=1
Xn
j=1
αiαjk(xi
, xj) > 0Examples of positive kernels
the linear kernel: s, t ∈ IRd
, k(s, t) = s
⊤t
symetric: s
⊤t = t
⊤s
positive: Xn
i=1
Xn
j=1
αiαj k(xi
, xj ) = Xn
i=1
Xn
j=1
αiαj x
⊤
i
xj
=
Xn
i=1
αi xi
!⊤
Xn
j=1
αj xj
=
Xn
i=1
αi xi
2
the product kernel: k(s, t) = g(s)g(t) for some g : IRd → IR,
symetric by construction
positive: Xn
i=1
Xn
j=1
αiαj k(xi
, xj ) = Xn
i=1
Xn
j=1
αiαj g(xi )g(xj )
=
Xn
i=1
αi g(xi )
!
Xn
j=1
αj g(xj )
=
Xn
i=1
αi g(xi )
!2
k is positive ⇔ (its square root exists) ⇔ k(s, t) = hφs, φti
J.P. Vert, 2006Example: finite kernel
let φj
, j = 1, p be a finite dictionary of functions from X to IR (polynomials,
wavelets...)
the feature map and linear kernel
feature map: Φ : X → IRp
s 7→ Φ =
φ1(s), ..., φp(s)
Linear kernel in the feature space:
k(s, t) =
φ1(s), ..., φp(s)
⊤
φ1(t), ..., φp(t)
e.g. the quadratic kernel: s, t ∈ IRd
, k(s, t) =
s
⊤t + b
2
feature map:
Φ : IRd → IRp=1+d+
d(d +1)
2
s 7→ Φ =
1,
√
2s1, ..., √
2sj
, ..., √
2sd ,s
2
1
, ...,s
2
j
, ...,s
2
d
, ..., √
2sisj
, ...Positive definite Kernel (PDK) algebra (closure)
if k1(s,t) and k2(s,t) are two positive kernels
DPK are a convex cone: ∀a1 ∈ IR+
a1k1(s, t) + k2(s, t)
product kernel k1(s, t)k2(s, t)
proofs
by linearity:
Xn
i=1
Xn
j=1
αiαj
a1k1(i, j) + k2(i, j)
= a1
Xn
i=1
Xn
j=1
αiαj k1(i, j) +Xn
i=1
Xn
j=1
αiαj k2(i, j)
assuming ∃ψℓ s.t. k1(s, t) = X
ℓ
ψℓ(s)ψℓ(t)
Xn
i=1
Xn
j=1
αiαj k1(xi
, xj )k2(xi
, xj ) = Xn
i=1
Xn
j=1
αiαj
X
ℓ
ψℓ(xi )ψℓ(xj )k2(xi
, xj )
=
X
ℓ
Xn
i=1
Xn
j=1
αiψℓ(xi )
αjψℓ(xj
)
k2(xi
, xj )
N. Cristianini and J. Shawe Taylor, kernel methods for pattern analysis, 2004Kernel engineering: building PDK
for any polynomial with positive coef. φ from IR to IR
φ
k(s,t)
if Ψis a function from IRd
to IRd
k
Ψ(s), Ψ(t)
if ϕ from IRd
to IR+, is minimum in 0
k(s,t) = ϕ(s + t) − ϕ(s − t)
convolution of two positive kernels is a positive kernel
K1 ⋆ K2
Example : the Gaussian kernel is a PDK
exp(−ks − tk
2
) = exp(−ksk
2 − ktk
2 + 2s
⊤t)
= exp(−ksk
2
) exp(−ktk
2
) exp(2s
⊤t)
s
⊤t is a PDK and function exp as the limit of positive series expansion, so
exp(2s
⊤t) is a PDK
exp(−ksk
2
) exp(−ktk
2
) is a PDK as a product kernel
the product of two PDK is a PDK
O. Catoni, master lecture, 2005an attempt at classifying PD kernels
stationary kernels, (also called translation invariant):
k(s,t) = ks (s − t)
◮ radial (isotropic) gaussian: exp
− r
2
b
, r = ks − tk
◮ with compact support
c.s. Matèrn : max
0, 1 −
r
b
κ
r
b
kBk
r
b
, κ ≥ (d + 1)/2
◮ locally stationary kernels: k(s,t) = k1(s + t)ks (s − t)
K1 is a non negative function and K2 a radial kernel.
non stationary (projective kernels):
k(s,t) = kp(s
⊤t)
◮ separable kernels k(s,t) = k1(s)k2(t) with k1 and k2(t) PDK
in this case K = k1k
⊤
2 where k1 = (k1(x1), ..., k1(xn))
MG Genton, Classes of Kernels for Machine Learning: A Statistics Perspective - JMLR, 2002some examples of PD kernels...
type name k(s,t)
radial gaussian exp
−
r
2
b
, r = ks − tk
radial laplacian exp(−r/b)
radial rationnal 1 −
r
2
r
2+b
radial loc. gauss. max
0, 1 −
r
3b
d
exp(−
r
2
b
)
non stat. χ
2
exp(−r/b), r =
P
k
(sk−tk )
2
sk+tk
projective polynomial (s
⊤t)
p
projective affine (s
⊤t + b)
p
projective cosine s
⊤t/kskktk
projective correlation exp
s⊤t
kskktk − b
Most of the kernels depends on a quantity b called the bandwidththe importance of the Kernel bandwidth
for the affine Kernel: Bandwidth = biais
k(s, t) = (s
⊤t + b)
p = b
p
s
⊤t
b
+ 1
p
for the gaussian Kernel: Bandwidth = influence zone
k(s, t) = 1
Z
exp
−
ks − tk
2
2σ
2
b = 2σ
2the importance of the Kernel bandwidth
for the affine Kernel: Bandwidth = biais
k(s, t) = (s
⊤t + b)
p = b
p
s
⊤t
b
+ 1
p
for the gaussian Kernel: Bandwidth = influence zone
k(s, t) = 1
Z
exp
−
ks − tk
2
2σ
2
b = 2σ
2
Illustration
1 d density estimation b =
1
2
b = 2
+ data
(x1, x2, ..., xn)
– Parzen estimate
IPb(x) = 1
Z
Xn
i=1
k(x, xi)kernels for objects and structures
kernels on histograms and probability distributions
kernel on strings
spectral string kernel k(s, t) = P
u φu(s)φu(t)
using sub sequences
similarities by alignements k(s, t) = P
π
exp(β(s, t, π))
kernels on graphs
the pseudo inverse of the (regularized) graph Laplacian
L = D − A A is the adjency matrixD the degree matrix
diffusion kernels 1
Z(b)
expbL
subgraph kernel convolution (using random walks)
and kernels on HMM, automata, dynamical system...
Shawe-Taylor & Cristianini’s Book, 2004 ; JP Vert, 2006Multiple kernel
M. Cuturi, Positive Definite Kernels in Machine Learning, 2009Gram matrix
Definition (Gram matrix)
let k(s,t) be a positive kernel on X and (xi)i=1,n a sequence on X . the
Gram matrix is the square K of dimension n and of general term
Kij = k(xi
, xj).
practical trick to check kernel positivity:
K is positive ⇔ λi > 0 its eigenvalues are posivies: if Kui = λiui
; i = 1, n
u
⊤
i Kui = λiu
⊤
i ui = λi
matrix K is the one to be usedExamples of Gram matrices with different bandwidth
raw data Gram matrix for b = 2
b = .5 b = 10different point of view about kernels
kernel and scalar product
k(s, t) = hφ(s), φ(t)iH
kernel and distance
d(s, t)
2 = k(s, s) + k(t, t) − 2k(s, t)
kernel and covariance: a positive matrix is a covariance matrix
IP(f) = 1
Z
exp
−
1
2
(f − f0)
⊤K
−1
(f − f0)
if f0 = 0 and f = Kα, IP(α) = 1
Z
exp − 1
2
α⊤Kα
Kernel and regularity (green’s function)
k(s, t) = P
∗Pδs−t for some operator P (e.g. some differential)Let’s summarize
positive kernels
there is a lot of them
can be rather complex
2 classes: radial / projective
the bandwith matters (more than the kernel itself)
the Gram matrix summarize the pairwise comparizonsRoadmap
1 Statistical learning and kernels
Kernel machines
Kernels
Kernel and hypothesis set
Functional differentiation in RKHS
Stéphane Canu (INSA Rouen - LITIS) March 4, 2014 25 / 37From kernel to functions
H0 =
f
mf < ∞; fj ∈ IR;tj ∈ X , f (x) = Xmf
j=1
fjk(x,tj)
let define the bilinear form (g(x) = Pmg
i=1
gi k(x, si )) :
∀f , g ∈ H0, hf , giH0 =
Xmf
j=1
Xmg
i=1
fj gi k(tj
,si)
Evaluation functional: ∀x ∈ X
f (x) = hf (•), k(x, •)iH0
from k to H
for any positive kernel, a hypothesis set can be constructed H = H0 with
its metricRKHS
Definition (reproducing kernel Hibert space (RKHS))
a Hilbert space H embeded with the inner product h•, •iH is said to be
with reproducing kernel if it exists a positive kernel k such that
∀s ∈ X , k(•,s) ∈ H
∀f ∈ H, f (s) = hf (•), k(s, •)iH
Beware: f = f (•) is a function while f (s) is the real value of f at point s
positive kernel ⇔ RKHS
any function in H is pointwise defined
defines the inner product
it defines the regularity (smoothness) of the hypothesis set
Exercice: let f (•) = Pn
i=1 αik(•, xi). Show that kf k
2
H = α
⊤KαOther kernels (what really matters)
finite kernels
k(s, t) =
φ1(s), ..., φp(s)
⊤
φ1(t), ..., φp(t)
Mercer kernels
positive on a compact set ⇔ k(s, t) = Pp
j=1
λjφj(s)φj(t)
positive kernels
positive semi-definite
conditionnaly positive (for some functions pj)
∀{xi}i=1,n, ∀αi
,
Xn
i
αipj(xi) = 0; j = 1, p,
Xn
i=1
Xn
j=1
αiαjk(xi
, xj) ≥ 0
symetric non positive
k(s, t) = tanh(s
⊤t + α0)
non symetric – non positive
the key property: ∇Jt
(f ) = k(t, .) holds
C. Ong et al, ICML , 2004The kernel map
observation: x = (x1, . . . , xj
, . . . , xd )
⊤
◮ f (x) = w⊤x = hw, xi
IRd
feature map: x −→ Φ(x) = (φ1(x), . . . , φj(x), . . . , φp(x))⊤
◮ Φ : IRd
7−→ IRp
◮ f (x) = w⊤Φ(x) = hw, Φ(x)iIRp
kernel dictionary: x −→ k(x) = (k(x, x1), . . . , k(x, xi), . . . , k(x, xn))⊤
◮ k : IRd
7−→ IRn
◮ f (x) = Xn
i=1
αik(x, xi) = hα, k(x)iIRn
kernel map: x −→ k(•, x) p = ∞
◮ f (x) = hf (•),K(•, x)iHRoadmap
1 Statistical learning and kernels
Kernel machines
Kernels
Kernel and hypothesis set
Functional differentiation in RKHSFunctional differentiation in RKHS
Let J be a functional
J : H → IR
f 7→ J(f )
examples: J1(f ) = kf k
2
H, J2(f ) = f (x),
J directional derivative in direction g at point f
dJ(f , g) = lim
ε → 0
J(f + εg) − J(f )
ε
Gradient ∇J (f )
∇J : H → H
f 7→ ∇J (f )
if dJ(f , g) = h∇J (f ), giH
exercise: find out ∇J1
(f ) et ∇J2
(f )Hint
dJ(f , g) = dJ(f + εg)
dε
ε=0Solution
dJ1(f , g) = lim
ε → 0
kf +εgk
2−kf k
2
ε
=
lim
ε → 0
kf k
2+ε
2kgk
2+2εhf ,giH−kf k
2
ε
=
lim
ε → 0
εkgk
2 + 2hf , giH
= h2f , giH
⇔ ∇J1
(f ) = 2f
dJ2(f , g) = lim
ε → 0
f (x)+εg(x)−f (x)
ε
= g(x)
= hk(x, .), giH
⇔ ∇J2
(f ) = k(x, .)Solution
dJ1(f , g) = lim
ε → 0
kf +εgk
2−kf k
2
ε
=
lim
ε → 0
kf k
2+ε
2kgk
2+2εhf ,giH−kf k
2
ε
=
lim
ε → 0
εkgk
2 + 2hf , giH
= h2f , giH
⇔ ∇J1
(f ) = 2f
dJ2(f , g) = lim
ε → 0
f (x)+εg(x)−f (x)
ε
= g(x)
= hk(x, .), giH
⇔ ∇J2
(f ) = k(x, .)
Minimize
f ∈H
J(f ) ⇔ ∀g ∈ H, dJ(f , g) = 0 ⇔ ∇J (f ) = 0Subdifferential in a RKHS H
Definition (Sub gradient)
a subgradient of J : H 7−→ IR at f0 is any function g ∈ H such that
∀f ∈ V(f0), J(f ) ≥ J(f0) + hg,(f − f0)iH
Definition (Subdifferential)
∂J(f ), the subdifferential of J at f is the set of all subgradients of J at f .
H = IR J3(x) = |x| ∂J3(0) = {g ∈ IR | − 1 < g < 1}
H = IR J4(x) = max(0, 1 − x) ∂J4(1) = {g ∈ IR | − 1 < g < 0}
Theorem (Chain rule for linear Subdifferential)
Let T be a linear operator H 7−→ IR and ϕ a function from IR to IR
If J(f ) = ϕ(Tf )
Then ∂J(f ) = {T
∗g | g ∈ ∂ϕ(Tf )}, where T
∗ denotes T’s adjoint operatorexample of subdifferential in H
evaluation operator and its adjoint
T : H −→ IRn
f 7−→ Tf = (f (x1), . . . , f (xn))⊤
T
∗
: IRn −→ H
α 7−→ T
∗α
build the adjoint hTf , αiIRn = hf ,T
∗αiHexample of subdifferential in H
evaluation operator and its adjoint
T : H −→ IRn
f 7−→ Tf = (f (x1), . . . , f (xn))⊤
T
∗
: IRn −→ H
α 7−→ T
∗α =
Xn
i=1
αik(•, xi)
build the adjoint hTf , αiIRn = hf ,T
∗αiH
hTf , αiIRn =
Xn
i=1
f (xi)αi
=
Xn
i=1
hf (•), k(•, xi)iHαi
= hf (•),
Xn
i=1
αik(•, xi)
| {z }
T∗α
iHexample of subdifferential in H
evaluation operator and its adjoint
T : H −→ IRn
f 7−→ Tf = (f (x1), . . . , f (xn))⊤
T
∗
: IRn −→ H
α 7−→ T
∗α =
Xn
i=1
αik(•, xi)
build the adjoint hTf , αiIRn = hf ,T
∗αiH
hTf , αiIRn =
Xn
i=1
f (xi)αi
=
Xn
i=1
hf (•), k(•, xi)iHαi
= hf (•),
Xn
i=1
αik(•, xi)
| {z }
T∗α
iH
TT∗
: IRn −→ IRn
α 7−→ TT∗α =
Xn
j=1
αjk(xj
, xi)
= Kαexample of subdifferential in H
evaluation operator and its adjoint
T : H −→ IRn
f 7−→ Tf = (f (x1), . . . , f (xn))⊤
T
∗
: IRn −→ H
α 7−→ T
∗α =
Xn
i=1
αik(•, xi)
build the adjoint hTf , αiIRn = hf ,T
∗αiH
hTf , αiIRn =
Xn
i=1
f (xi)αi
=
Xn
i=1
hf (•), k(•, xi)iHαi
= hf (•),
Xn
i=1
αik(•, xi)
| {z }
T∗α
iH
TT∗
: IRn −→ IRn
α 7−→ TT∗α =
Xn
j=1
αjk(xj
, xi)
= Kα
Example of subdifferentials
x given J5(f ) = |f (x)| ∂J5(f0) =
g(•) = αk(•, x) ; −1 < α < 1
x given J6(f ) = max(0, 1 − f (x)) ∂J6(f1) =
g(•) = αk(•, x) ; −1 < α < 0
Optimal conditions
Theorem (Fermat optimality criterion)
When J(f ) is convex, f
⋆
is a stationary point of problem min
f ∈H
J(f )
If and only if 0 ∈ ∂J(f
⋆
)
f
f ⋆
⋆
∂J(f
⋆
)
exercice: find for a given y ∈ IR (from Obozinski)
min
x∈IR
1
2
(x − y)
2 + λ|x|Let’s summarize
positive kernels ⇔ RKHS = H ⇔ regularity kf k
2
H
the key property: ∇Jt
(f ) = k(t, .) holds not only for positive kernels
f (xi) exists (pointwise defined functions)
universal consistency in RKHS
the Gram matrix summarize the pairwise comparizons
Lecture 3: Linear SVM with slack variables
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
March 23, 2014The non separable case
−1.5 −1 −0.5 0 0.5 1 1.5 2 2.5 3
−1
−0.5
0
0.5
1
1.5
2
2.5Road map
1 Linear SVM
The non separable case
The C (L1) SVM
The L2 SVM and others “variations on a theme”
The hinge loss
0 0
Slack jThe non separable case: a bi criteria optimization problem
Modeling potential errors: introducing slack variables ξi
(xi
, yi)
no error: yi(w⊤xi + b) ≥ 1 ⇒ ξi = 0
error: ξi = 1 − yi(w⊤xi + b) > 0
0 0
Slack j
min
w,b,ξ
1
2
kwk
2
min
w,b,ξ
C
p
Xn
i=1
ξ
p
i
with yi(w⊤xi + b) ≥ 1 − ξi
ξi ≥ 0 i = 1, n
Our hope: almost all ξi = 0Bi criteria optimization and dominance
L(w) = 1
p
Xn
i=1
ξ
p
i
P(w) = kwk
2
Dominance
w1 dominates w2
if L(w1) ≤ L(w2) and P(w1) ≤ P(w2)
Pareto front (or Pareto Efficient Frontier)
it is the set of all nondominated solutions
P(w) = || w ||2
L(w) = 1/p Y
n
i=1
j
p
i
admisible set
Pareto’s front
w = 0
Admissible solution
Figure: dominated point (red),
non dominated point (purple)
and Pareto front (blue).
Pareto frontier
⇔
Regularization path
Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 5 / 293 equivalent formulations to reach Pareto’s front
min
w∈IRd
1
p
Xn
i=1
ξ
p
i + λ kwk
2
it works for CONVEX criteria!
Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 6 / 293 equivalent formulations to reach Pareto’s front
min
w∈IRd
1
p
Xn
i=1
ξ
p
i + λ kwk
2
min
w
1
p
Xn
i=1
ξ
p
i
with kwk
2 ≤ k
it works for CONVEX criteria!
Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 6 / 293 equivalent formulations to reach Pareto’s front
min
w∈IRd
1
p
Xn
i=1
ξ
p
i + λ kwk
2
min
w
1
p
Xn
i=1
ξ
p
i
with kwk
2 ≤ k
min
w
kwk
2
with 1
p
Xn
i=1
ξ
p
i ≤ k
′
it works for CONVEX criteria!
Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 6 / 29The non separable case
Modeling potential errors: introducing slack variables ξi
(xi
, yi)
no error: yi(w⊤xi + b) ≥ 1 ⇒ ξi = 0
error: ξi = 1 − yi(w⊤xi + b) > 0
Minimizing also the slack (the error), for a given C > 0
min
w,b,ξ
1
2
kwk
2 +
C
p
Xn
i=1
ξ
p
i
with yi(w⊤xi + b) ≥ 1 − ξi
i = 1, n
ξi ≥ 0 i = 1, n
Looking for the saddle point of the lagrangian with the Lagrange
multipliers αi ≥ 0 and βi ≥ 0
L(w, b, α, β) = 1
2
kwk
2 +
C
p
Xn
i=1
ξ
p
i −
Xn
i=1
αi
yi(w
⊤xi + b) − 1 + ξi
−
Xn
i=1
βi ξiThe KKT(p = 1)
L(w, b, α, β) = 1
2
kwk
2 +
C
p
Xn
i=1
ξ
p
i −
Xn
i=1
αi
yi(w
⊤xi + b) − 1 + ξi
−
Xn
i=1
βi ξi
stationarity w −
Xn
i=1
αi yixi = 0 and Xn
i=1
αi yi = 0
C − αi − βi = 0 i = 1, . . . , n
primal admissibility yi(w⊤xi + b) ≥ 1 i = 1, . . . , n
ξi ≥ 0 i = 1, . . . , n
dual admissibility αi ≥ 0 i = 1, . . . , n
βi ≥ 0 i = 1, . . . , n
complementarity αi
yi(w⊤xi + b) − 1 + ξi
= 0 i = 1, . . . , n
βi ξi = 0 i = 1, . . . , n
Let’s eliminate β!KKT (p = 1)
stationarity w −
Xn
i=1
αi yixi = 0 and Xn
i=1
αi yi = 0
primal admissibility yi(w⊤xi + b) ≥ 1 i = 1, . . . , n
ξi ≥ 0 i = 1, . . . , n;
dual admissibility αi ≥ 0 i = 1, . . . , n
C − αi ≥ 0 i = 1, . . . , n;
complementarity αi
yi(w⊤xi + b) − 1 + ξi
= 0 i = 1, . . . , n
(C − αi) ξi = 0 i = 1, . . . , n
sets I0 IA IC
αi 0 0 < α < C C
βi C C − α 0
ξi 0 0 1 − yi(w⊤xi + b)
yi(w⊤xi + b) > 1 yi(w⊤xi + b) = 1 yi(w⊤xi + b) < 1
useless usefull (support vec) suspiciousThe importance of being support
−2 −1 0 1 2 3 4
−2
−1
0
1
2
3
4
−2 −1 0 1 2 3 4
−2
−1
0
1
2
3
4
.
data
point α
constraint
value set
xi useless αi = 0 yi
w⊤xi + b
> 1 I0
xi support 0 < αi < C yi
w⊤xi + b
= 1 Iα
xi suspicious αi = C yi
w⊤xi + b
< 1 IC
Table: When a data point is « support » it lies exactly on the margin.
here lies the efficiency of the algorithm (and its complexity)!
sparsity: αi = 0Optimality conditions (p = 1)
L(w, b, α, β) = 1
2
kwk
2 + C
Xn
i=1
ξi −
Xn
i=1
αi
yi(w
⊤xi + b) − 1 + ξi
−
Xn
i=1
βi ξi
Computing the gradients:
∇wL(w, b, α) = w −
Xn
i=1
αi yixi
∂L(w, b, α)
∂b
=
Xn
i=1
αi yi
∇ξiL(w, b, α) = C − αi − βi
no change for w and b
βi ≥ 0 and C − αi − βi = 0 ⇒ αi ≤ C
The dual formulation:
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi ≤ C i = 1, nSVM primal vs. dual
Primal
min
w,b,ξ∈IRn
1
2
kwk
2 + C
Xn
i=1
ξi
with yi(w⊤xi + b) ≥ 1 − ξi
ξi ≥ 0 i = 1, n
d + n + 1 unknown
2n constraints
classical QP
to be used when n is too
large to build G
Dual
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi ≤ C i = 1, n
n unknown
G Gram matrix (pairwise
influence matrix)
2n box constraints
easy to solve
to be used when n is not too
largeThe smallest C
C small ⇒ all the points are in IC : αi = C
−2 −1 0 1 2 3 4
−3
−2
−1
0
1
2
3
4
5
6
−1 ≤ fj = C
Xn
i=1
yi(x
⊤
i xj)+b ≤ 1
fM = max(f ) fm = min(f )
Cmax =
2
fM − fmRoad map
1 Linear SVM
The non separable case
The C (L1) SVM
The L2 SVM and others “variations on a theme”
The hinge loss
0 0
Slack jL2 SVM: optimality conditions (p = 2)
L(w, b, α, β) = 1
2
kwk
2 +
C
2
Xn
i=1
ξ
2
i −
Xn
i=1
αi
yi(w
⊤xi + b) − 1 + ξi
Computing the gradients:
∇wL(w, b, α) = w −
Xn
i=1
αi yixi
∂L(w, b, α)
∂b
=
Xn
i=1
αi yi
∇ξiL(w, b, α) = Cξi − αi
no need of the positivity constraint on ξi
no change for w and b
Cξi − αi = 0 ⇒ C
2
Pn
i=1
ξ
2
i −
Pn
i=1 αi ξi = −
1
2C
Pn
i=1 α
2
i
The dual formulation:
min
α∈IRn
1
2
α
⊤(G +
1
C
I)α − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, nSVM primal vs. dual
Primal
min
w,b,ξ∈IRn
1
2
kwk
2 +
C
2
Xn
i=1
ξ
2
i
with yi(w⊤xi + b) ≥ 1 − ξi
d + n + 1 unknown
n constraints
classical QP
to be used when n is too
large to build G
Dual
min
α∈IRn
1
2
α
⊤(G +
1
C
I)α − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, n
n unknown
G Gram matrix is regularized
n box constraints
easy to solve
to be used when n is not too
largeOne more variant: the ν SVM
max
v,a
m
with min
i=1,n
|v
⊤xi + a| ≥ m
kvk
2 = k
min
v,a
1
2
kvk
2 − ν m +
Pn
i=1
ξi
with yi(v
⊤xi + a) ≥ m − ξi
ξi ≥ 0, m ≥ 0
The dual formulation:
min
α∈IRn
1
2
α
⊤Gα
with y
⊤α = 0
and 0 ≤ αi ≤ 1/n i = 1, n
m ≤ e
⊤αThe convex hull formulation
Minimizing the distance between the convex hulls
min
α
ku − vk
with u =
X
{i|yi =1}
αixi
, v =
X
{i|yi =−1}
αixi
and X
{i|yi =1}
αi = 1,
X
{i|yi =−1}
αi = 1, 0 ≤ αi ≤ C i = 1, n
w
⊤x =
2
ku − vk
u
⊤x − v
⊤x
and b =
kuk − kvk
ku − vkSVM with non symetric costs
Problem in the primal (p = 1)
min
w,b,ξ∈IRn
1
2
kwk
2 + C
+ X
{i|yi =1}
ξi + C
− X
{i|yi =−1}
ξi
with yi
w⊤xi + b
≥ 1 − ξi
, ξi ≥ 0, i = 1, n
for p = 1 the dual formulation is the following:
(
max
α∈IRn
−
1
2
α
⊤Gα + α
⊤e
with α
⊤y = 0 and 0 ≤ αi ≤ C
+ or C
− i = 1, n
It generalizes to any cost (useful for unbalanced data)Road map
1 Linear SVM
The non separable case
The C (L1) SVM
The L2 SVM and others “variations on a theme”
The hinge loss
0 0
Slack jEliminating the slack but not the possible mistakes
min
w,b,ξ∈IRn
1
2
kwk
2 + C
Xn
i=1
ξi
with yi(w⊤xi + b) ≥ 1 − ξi
ξi ≥ 0 i = 1, n
Introducing the hinge loss
ξi = max
1 − yi(w
⊤xi + b), 0
min
w,b
1
2
kwk
2 + C
Xn
i=1
max
0, 1 − yi(w
⊤xi + b)
Back to d + 1 variables, but this is no longer an explicit QPOoops! the notion of sub differential
Definition (Sub gradient)
a subgradient of J : IRd
7−→ IR at f0 is any vector g ∈ IRd
such that
∀f ∈ V(f0), J(f ) ≥ J(f0) + g
⊤(f − f0)
Definition (Subdifferential)
∂J(f ), the subdifferential of J at f is the set of all subgradients of J at f .
IRd = IR J3(x) = |x| ∂J3(0) = {g ∈ IR | − 1 < g < 1}
IRd = IR J4(x) = max(0, 1 − x) ∂J4(1) = {g ∈ IR | − 1 < g < 0}Regularization path for SVM
min
w
Xn
i=1
max(1 − yiw
⊤xi
, 0) + λo
2
kwk
2
Iα is the set of support vectors s.t. yiw⊤xi = 1;
∂wJ(w) = X
i∈Iα
αi yixi −
X
i∈I1
yixi + λo w with αi ∈ ∂H(1) =] − 1, 0[Regularization path for SVM
min
w
Xn
i=1
max(1 − yiw
⊤xi
, 0) + λo
2
kwk
2
Iα is the set of support vectors s.t. yiw⊤xi = 1;
∂wJ(w) = X
i∈Iα
αi yixi −
X
i∈I1
yixi + λo w with αi ∈ ∂H(1) =] − 1, 0[
Let λn a value close enough to λo to keep the sets I0, Iα and IC unchanged
In particular at point xj ∈ Iα (w
⊤
o xj = w
⊤
n xj = yj) : ∂wJ(w)(xj) = 0
P
i∈Iα
αioyix
⊤
i
xj =
P
i∈I1
yix
⊤
i
P
xj − λo yj
i∈Iα
αinyix
⊤
i
xj =
P
i∈I1
yix
⊤
i
xj − λn yj
G(αn − αo) = (λo − λn)y with Gij = yix
⊤
i
xj
αn = αo + (λo − λn)d
d = (G)
−1
ySolving SVM in the primal
min
w,b
1
2
kwk
2 + C
Xn
i=1
max
0, 1 − yi(w
⊤xi + b)
What for: Yahoo!, Twiter, Amazon,
Google (Sibyl), Facebook. . . : Big data
Data-intensive machine learning systems
"on terascale datasets, with trillions of
features,1 billions of training examples
and millions of parameters in an hour
using a cluster of 1000 machines"
How: hybrid online+batch approach adaptive gradient updates (stochastic
gradient descent)
Code available: http://olivier.chapelle.cc/primal/Solving SVM in the primal
J(w, b) = 1
2
kwk
2
2 +
C
2
Xn
i=1
max
1 − yi(w
⊤xi + b), 0
2
=
1
2
kwk
2
2 +
C
2
ξ
⊤ξ
with Xn
ξi = max
1 − yi(w
⊤xi + b), 0
∇wJ(w, b) = w − C
Xn
i=1
max
1 − yi(w
⊤xi + b), 0
yixi
= w − C (diag(y)X)
⊤ξ
HwJ(w, b) = Id + C
Xn
i∈/I0
xix
⊤
i
Optimal step size ρ in the Newton direction:
w
new = w
old − ρ H
−1
w ∇wJ(w
old
, b
old)The hinge and other loss
Square hinge: (huber/hinge) and Lasso SVM
min w,b
k
w
k
1
+
C
Xni=1
max
1
−
yi
(
w
⊤
x
i
+
b
)
,
0
p
Penalized Logistic regression (Maxent)
min w,b
k
w
k
22
−
C
Xni=1
log
1
+ exp
−
2
yi
(
w
⊤
x
i
+
b
)
The exponential loss (commonly used in boosting)
min w,b
k
w
k
22
+
C
Xni=1
exp
−
yi
(
w
⊤
x
i
+
b
)
The sigmoid loss
min w,b
k
w
k
22
−
C
Xni=1
tanh
yi
(
w
⊤
x
i
+
b
)
−
1
0
1
01
yf(x)
classification loss
0/1 loss
hinge
hinge
2
logistic
exponential
sigmoidChoosing the data fitting term and the penalty
For a given C: controling the tradeoff between loss and penalty
min
w,b
pen(w) + C
Xn
i=1
Loss
yi(w
⊤xi + b)
For a long list of possible penalties:
A Antoniadis, I Gijbels, M Nikolova, Penalized likelihood regression for
generalized linear models with non-quadratic penalties, 2011.
A tentative of classification:
convex/non convex
differentiable/non differentiable
What are we looking for
consistency
efficiency −→ sparcityConclusion: variables or data point?
seeking for a universal learning algorithm
◮ no model for IP(x, y)
the linear case: data is separable
◮ the non separable case
double objective: minimizing the error together with the regularity of
the solution
◮ multi objective optimisation
dualiy : variable – example
◮ use the primal when d < n (in the liner case) or when matrix G is hard
to compute
◮ otherwise use the dual
universality = nonlinearity
◮ kernelsBibliography
C. Cortes & V. Vapnik, Support-vector networks, Machine learning, 1995
J. Bi & V. Vapnik, Learning with rigorous SVM, COLT 2003
T. Hastie, S. Rosset, R. Tibshirani, J. Zhu, The entire regularization path
for the support vector machine, JMLR, 2004
P. Bartlett, M. Jordan, J. McAuliffe, Convexity, classification, and risk
bounds, JASA, 2006.
A. Antoniadis, I. Gijbels, M. Nikolova, Penalized likelihood regression for
generalized linear models with non-quadratic penalties, 2011.
A Agarwal, O Chapelle, M Dudík, J Langford, A reliable effective terascale
linear learning system, 2011.
informatik.unibas.ch/fileadmin/Lectures/FS2013/CS331/Slides/my_SVM_without_b.pdf
http://ttic.uchicago.edu/~gregory/courses/ml2010/lectures/lect12.pdf
http://olivier.chapelle.cc/primal/
Stéphane Canu (INSA Rouen - LITIS) March 23, 2014 29 / 29
Lecture 2: Linear SVM in the Dual
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
March 12, 2014Road map
1 Linear SVM
Optimization in 10 slides
Equality constraints
Inequality constraints
Dual formulation of the linear SVM
Solving the dual
Figure from L. Bottou & C.J. Lin, Support vector machine solvers, in Large scale kernel machines, 2007.Linear SVM: the problem
Linear SVM are the solution of the following problem (called primal)
Let {(xi
, yi); i = 1 : n} be a set of labelled data with
xi ∈ IRd
, yi ∈ {1, −1}.
A support vector machine (SVM) is a linear classifier associated with the
following decision function: D(x) = sign
w⊤x + b
where w ∈ IRd
and
b ∈ IR a given thought the solution of the following problem:
(
min
w,b
1
2
kwk
2 =
1
2w⊤w
with yi(w⊤xi + b) ≥ 1 i = 1, n
This is a quadratic program (QP):
(
min
z
1
2
z
⊤Az − d
⊤z
with Bz ≤ e
z = (w, b)⊤, d = (0, . . . , 0)⊤, A =
I 0
0 0
, B = −[diag(y)X, y] et e = −(1, . . . , 1)⊤Road map
1 Linear SVM
Optimization in 10 slides
Equality constraints
Inequality constraints
Dual formulation of the linear SVM
Solving the dualA simple example (to begin with)
(
min
x1,x2
J(x) = (x1 − a)
2 + (x2 − b)
2
with
x
x
⋆
∇xJ(x)
iso cost lines: J(x) = kA simple example (to begin with)
(
min
x1,x2
J(x) = (x1 − a)
2 + (x2 − b)
2
with H(x) = α(x1 − c)
2 + β(x2 − d)
2 + γx1x2 − 1
Ω = {x|H(x) = 0}
x
x
⋆
∇xJ(x)
∆x
∇xH(x)
tangent hyperplane
iso cost lines: J(x) = k
∇xH(x) = λ ∇xJ(x)The only one equality constraint case
(
min
x
J(x) J(x + εd) ≈ J(x) + ε∇xJ(x)
⊤d
with H(x) = 0 H(x + εd) ≈ H(x) + ε∇xH(x)
⊤d
Loss J : d is a descent direction if it exists ε0 ∈ IR such that
∀ε ∈ IR, 0 < ε ≤ ε0
J(x + εd) < J(x) ⇒ ∇xJ(x)
⊤d < 0
constraint H : d is a feasible descent direction if it exists ε0 ∈ IR such
that ∀ε ∈ IR, 0 < ε ≤ ε0
H(x + εd) = 0 ⇒ ∇xH(x)
⊤d = 0
If at x
⋆
, vectors ∇xJ(x
⋆
) and ∇xH(x
⋆
) are collinear there is no feasible
descent direction d. Therefore, x
⋆
is a local solution of the problem.Lagrange multipliers
Assume J and functions Hi are continuously differentials (and independent)
P =
min
x∈IRn
J(x)
avec H1(x) = 0
et H2(x) = 0
. . .
Hp(x) = 0Lagrange multipliers
Assume J and functions Hi are continuously differentials (and independent)
P =
min
x∈IRn
J(x)
avec H1(x) = 0 λ1
et H2(x) = 0 λ2
. . .
Hp(x) = 0 λp
each constraint is associated with λi
: the Lagrange multiplier.Lagrange multipliers
Assume J and functions Hi are continuously differentials (and independent)
P =
min
x∈IRn
J(x)
avec H1(x) = 0 λ1
et H2(x) = 0 λ2
. . .
Hp(x) = 0 λp
each constraint is associated with λi
: the Lagrange multiplier.
Theorem (First order optimality conditions)
for x
⋆ being a local minima of P, it is necessary that:
∇x J(x
⋆
) +X
p
i=1
λi∇xHi(x
⋆
) = 0 and Hi(x
⋆
) = 0, i = 1, pPlan
1 Linear SVM
Optimization in 10 slides
Equality constraints
Inequality constraints
Dual formulation of the linear SVM
Solving the dual
Stéphane Canu (INSA Rouen - LITIS) March 12, 2014 8 / 32The only one inequality constraint case
(
min
x
J(x) J(x + εd) ≈ J(x) + ε∇xJ(x)
⊤d
with G(x) ≤ 0 G(x + εd) ≈ G(x) + ε∇xG(x)
⊤d
cost J : d is a descent direction if it exists ε0 ∈ IR such that
∀ε ∈ IR, 0 < ε ≤ ε0
J(x + εd) < J(x) ⇒ ∇xJ(x)
⊤d < 0
constraint G : d is a feasible descent direction if it exists ε0 ∈ IR such that
∀ε ∈ IR, 0 < ε ≤ ε0
G(x + εd) ≤ 0 ⇒
G(x) < 0 : no limit here on d
G(x) = 0 : ∇xG(x)
⊤d ≤ 0
Two possibilities
If x
⋆
lies at the limit of the feasible domain (G(x
⋆
) = 0) and if vectors
∇xJ(x
⋆
) and ∇xG(x
⋆
) are collinear and in opposite directions, there is no
feasible descent direction d at that point. Therefore, x
⋆
is a local solution
of the problem... Or if ∇xJ(x
⋆
) = 0Two possibilities for optimality
∇xJ(x
⋆
) = −µ ∇xG(x
⋆
) and µ > 0; G(x
⋆
) = 0
or
∇xJ(x
⋆
) = 0 and µ = 0; G(x
⋆
) < 0
This alternative is summarized in the so called complementarity condition:
µ G(x
⋆
) = 0
µ = 0
G(x
⋆
) < 0
G(x
⋆
) = 0
µ > 0First order optimality condition (1)
problem P =
min
x∈IRn
J(x)
with hj(x) = 0 j = 1, . . . , p
and gi(x) ≤ 0 i = 1, . . . , q
Definition: Karush, Kuhn and Tucker (KKT) conditions
stationarity ∇J(x
⋆
) +X
p
j=1
λj∇hj(x
⋆
) +X
q
i=1
µi∇gi(x
⋆
) = 0
primal admissibility hj(x
⋆
) = 0 j = 1, . . . , p
gi(x
⋆
) ≤ 0 i = 1, . . . , q
dual admissibility µi ≥ 0 i = 1, . . . , q
complementarity µigi(x
⋆
) = 0 i = 1, . . . , q
λj and µi are called the Lagrange multipliers of problem PFirst order optimality condition (2)
Theorem (12.1 Nocedal & Wright pp 321)
If a vector x
⋆
is a stationary point of problem P
Then there existsa Lagrange multipliers such that
x
⋆
, {λj}j=1:p, {µi}i=1:q
fulfill KKT conditions
a
under some conditions e.g. linear independence constraint qualification
If the problem is convex, then a stationary point is the solution of the
problem
A quadratic program (QP) is convex when. . .
(QP)
(
min
z
1
2
z
⊤Az − d
⊤z
with Bz ≤ e
. . . when matrix A is positive definiteKKT condition - Lagrangian (3)
problem P =
min
x∈IRn
J(x)
with hj(x) = 0 j = 1, . . . , p
and gi(x) ≤ 0 i = 1, . . . , q
Definition: Lagrangian
The lagrangian of problem P is the following function:
L(x, λ, µ) = J(x) +X
p
j=1
λjhj(x) +X
q
i=1
µigi(x)
The importance of being a lagrangian
the stationarity condition can be written: ∇L(x
⋆
, λ, µ) = 0
the lagrangian saddle point max
λ,µ
min
x
L(x, λ, µ)
Primal variables: x and dual variables λ, µ (the Lagrange multipliers)Duality – definitions (1)
Primal and (Lagrange) dual problems
P =
min
x∈IRn
J(x)
with hj(x) = 0 j = 1, p
and gi(x) ≤ 0 i = 1, q
D =
(
max
λ∈IRp,µ∈IRq
Q(λ, µ)
with µj ≥ 0 j = 1, q
Dual objective function:
Q(λ, µ) = inf
x
L(x, λ, µ)
= inf
x
J(x) +X
p
j=1
λjhj(x) +X
q
i=1
µigi(x)
Wolf dual problem
W =
max
x,λ∈IRp,µ∈IRq
L(x, λ, µ)
with µj ≥ 0 j = 1, q
and ∇J(x
⋆
) +X
p
j=1
λj∇hj(x
⋆
) +X
q
i=1
µi∇gi(x
⋆
) = 0Duality – theorems (2)
Theorem (12.12, 12.13 and 12.14 Nocedal & Wright pp 346)
If f , g and h are convex and continuously differentiablea
, then the solution
of the dual problem is the same as the solution of the primal
a
under some conditions e.g. linear independence constraint qualification
(λ
⋆
, µ⋆
) = solution of problem D
x
⋆ = arg min
x
L(x, λ⋆
, µ⋆
)
Q(λ
⋆
, µ⋆
) = arg min
x
L(x, λ⋆
, µ⋆
) = L(x
⋆
, λ⋆
, µ⋆
)
= J(x
⋆
) + λ
⋆H(x
⋆
) + µ
⋆G(x
⋆
) = J(x
⋆
)
and for any feasible point x
Q(λ, µ) ≤ J(x) → 0 ≤ J(x) − Q(λ, µ)
The duality gap is the difference between the primal and dual cost functionsRoad map
1 Linear SVM
Optimization in 10 slides
Equality constraints
Inequality constraints
Dual formulation of the linear SVM
Solving the dual
Figure from L. Bottou & C.J. Lin, Support vector machine solvers, in Large scale kernel machines, 2007.Linear SVM dual formulation - The lagrangian
(
min
w,b
1
2
kwk
2
with yi(w⊤xi + b) ≥ 1 i = 1, n
Looking for the lagrangian saddle point max
α
min
w,b
L(w, b, α) with so called
lagrange multipliers αi ≥ 0
L(w, b, α) = 1
2
kwk
2 −
Xn
i=1
αi
yi(w
⊤xi + b) − 1
αi represents the influence of constraint thus the influence of the training
example (xi
, yi)Stationarity conditions
L(w, b, α) = 1
2
kwk
2 −
Xn
i=1
αi
yi(w
⊤xi + b) − 1
Computing the gradients:
∇wL(w, b, α) = w −
Xn
i=1
αi yixi
∂L(w, b, α)
∂b
=
Pn
i=1 αi yi
we have the following optimality conditions
∇wL(w, b, α) = 0 ⇒ w =
Xn
i=1
αi yixi
∂L(w, b, α)
∂b
= 0 ⇒
Xn
i=1
αi yi = 0KKT conditions for SVM
stationarity w −
Xn
i=1
αi yixi = 0 and Xn
i=1
αi yi = 0
primal admissibility yi(w⊤xi + b) ≥ 1 i = 1, . . . , n
dual admissibility αi ≥ 0 i = 1, . . . , n
complementarity αi
yi(w⊤xi + b) − 1
= 0 i = 1, . . . , n
The complementary condition split the data into two sets
A be the set of active constraints: usefull points
A = {i ∈ [1, n]
yi(w
∗⊤xi + b
∗
) = 1}
its complementary A¯ useless points
if i ∈ A/ , αi = 0The KKT conditions for SVM
The same KKT but using matrix notations and the active set A
stationarity w − X
⊤Dyα = 0
α
⊤y = 0
primal admissibility Dy (Xw + b I1) ≥ I1
dual admissibility α ≥ 0
complementarity Dy (XAw + b I1A) = I1A
αA¯ = 0
Knowing A, the solution verifies the following linear system:
w −X
⊤
A DyαA = 0
−DyXAw −byA = −eA
−y
⊤
AαA = 0
with Dy = diag(yA), αA = α(A) , yA = y(A) et XA = X(XA; :).The KKT conditions as a linear system
w −X
⊤
A DyαA = 0
−DyXAw −byA = −eA
−y
⊤
AαA = 0
with Dy = diag(yA), αA = α(A) , yA = y(A) et XA = X(XA; :).
=
I −X
⊤
A Dy 0
−DyXA 0 −yA
0 −y
⊤
A 0
w
αA
b
0
−eA
0
we can work on it to separate w from (αA, b)The SVM dual formulation
The SVM Wolfe dual
max
w,b,α
1
2
kwk
2 −
Xn
i=1
αi
yi(w
⊤xi + b) − 1
with αi ≥ 0 i = 1, . . . , n
and w −
Xn
i=1
αi yixi = 0 and Xn
i=1
αi yi = 0
using the fact: w =
Xn
i=1
αi yixi
The SVM Wolfe dual without w and b
max
α
−
1
2
Xn
i=1
Xn
j=1
αjαi yi yjx
⊤
j xi +
Xn
i=1
αi
with αi ≥ 0 i = 1, . . . , n
and Xn
i=1
αi yi = 0Linear SVM dual formulation
L(w, b, α) = 1
2
kwk
2 −
Xn
i=1
αi
yi(w
⊤xi + b) − 1
Optimality: w =
Xn
i=1
αi yixi
Xn
i=1
αi yi = 0
L(α) = 1
2
Xn
i=1
Xn
j=1
αjαi yi yjx
⊤
j xi
| {z }
w⊤w
−
Pn
i=1 αi yi
Xn
j=1
αjyjx
⊤
j
| {z }
w⊤
xi − b
Xn
i=1
αi yi
| {z }
=0
+
Pn
i=1 αi
= −
1
2
Xn
i=1
Xn
j=1
αjαi yi yjx
⊤
j xi +
Xn
i=1
αi
Dual linear SVM is also a quadratic program
problem D
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, n
with G a symmetric matrix n × n such that Gij = yi yjx
⊤
j
xiSVM primal vs. dual
Primal
min
w∈IRd
,b∈IR
1
2
kwk
2
with yi(w⊤xi + b) ≥ 1
i = 1, n
d + 1 unknown
n constraints
classical QP
perfect when d << n
Dual
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, n
n unknown
G Gram matrix (pairwise
influence matrix)
n box constraints
easy to solve
to be used when d > nSVM primal vs. dual
Primal
min
w∈IRd
,b∈IR
1
2
kwk
2
with yi(w⊤xi + b) ≥ 1
i = 1, n
d + 1 unknown
n constraints
classical QP
perfect when d << n
Dual
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, n
n unknown
G Gram matrix (pairwise
influence matrix)
n box constraints
easy to solve
to be used when d > n
f (x) = X
d
j=1
wjxj + b =
Xn
i=1
αi yi(x
⊤xi) + bThe bi dual (the dual of the dual)
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, n
L(α, λ, µ) = 1
2
α
⊤Gα − e
⊤α + λ y
⊤α − µ
⊤α
∇αL(α, λ, µ) = Gα − e + λ y − µ
The bidual
max
α,λ,µ
−
1
2
α
⊤Gα
with Gα − e + λ y − µ = 0
and 0 ≤ µ
since kwk
2 =
1
2
α
⊤Gα and DXw = Gα
(
max
w,λ
−
1
2
kwk
2
with DXw + λ y ≥ e
by identification (possibly up to a sign)
b = λ is the Lagrange multiplier of the equality constraintCold case: the least square problem
Linear model
yi =
X
d
j=1
wjxij + εi
, i = 1, n
n data and d variables; d < n
min
w
=
Xn
i=1
Xd
j=1
xijwj − yi
2
= kXw − yk
2
Solution: we = (X
⊤X)
−1X
⊤y
f (x) = x
⊤ (X
⊤X)
−1X
⊤y
| {z }
we
What is the influence of each data point (matrix X lines) ?
Shawe-Taylor & Cristianini’s Book, 2004data point influence (contribution)
for any new data point x
f (x) = x
⊤ (X
⊤X)(X
⊤X)
−1
(X
⊤X)
−1X
⊤y
| {z }
we
= x
⊤ X
⊤ X(X
⊤X)
−1
(X
⊤X)
−1X
⊤y
| {z }
αb
x⊤
n examples
d variables
X ⊤
αb
we
f (x) = X
d
j=1
wejxjdata point influence (contribution)
for any new data point x
f (x) = x
⊤ (X
⊤X)(X
⊤X)
−1
(X
⊤X)
−1X
⊤y
| {z }
we
= x
⊤ X
⊤ X(X
⊤X)
−1
(X
⊤X)
−1X
⊤y
| {z }
αb
x⊤
n examples
d variables
X ⊤
αb
we
x⊤xi
f (x) = X
d
j=1
wejxj =
Xn
i=1
αbi (x
⊤xi)
from variables to examples
αb = X(X
⊤X)
−1we
| {z }
n examples
et we = X
⊤αb | {z }
d variables
what if d ≥ n !SVM primal vs. dual
Primal
min
w∈IRd
,b∈IR
1
2
kwk
2
with yi(w⊤xi + b) ≥ 1
i = 1, n
d + 1 unknown
n constraints
classical QP
perfect when d << n
Dual
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, n
n unknown
G Gram matrix (pairwise
influence matrix)
n box constraints
easy to solve
to be used when d > n
f (x) = X
d
j=1
wjxj + b =
Xn
i=1
αi yi(x
⊤xi) + bRoad map
1 Linear SVM
Optimization in 10 slides
Equality constraints
Inequality constraints
Dual formulation of the linear SVM
Solving the dual
Figure from L. Bottou & C.J. Lin, Support vector machine solvers, in Large scale kernel machines, 2007.Solving the dual (1)
Data point influence
αi = 0 this point is useless
αi 6= 0 this point is said to be
support
f (x) = X
d
j=1
wjxj + b =
Xn
i=1
αi yi(x
⊤xi) + bSolving the dual (1)
Data point influence
αi = 0 this point is useless
αi 6= 0 this point is said to be
support
f (x) = X
d
j=1
wjxj + b =
X
3
i=1
αi yi(x
⊤xi) + b
Decison border only depends on 3 points (d + 1)Solving the dual (2)
Assume we know these 3 data points
min
α∈IRn
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
and 0 ≤ αi
i = 1, n
=⇒
(
min
α∈IR3
1
2
α
⊤Gα − e
⊤α
with y
⊤α = 0
L(α, b) = 1
2
α
⊤Gα − e
⊤α + b y
⊤α
solve the following linear system
Gα + b y = e
y
⊤α = 0
U = chol(G); % upper
a = U\ (U’\e);
c = U\ (U’\y);
b = (y’*a)\(y’*c)
alpha = U\ (U’\(e - b*y));Conclusion: variables or data point?
seeking for a universal learning algorithm
◮ no model for IP(x, y)
the linear case: data is separable
◮ the non separable case
double objective: minimizing the error together with the regularity of
the solution
◮ multi objective optimisation
dualiy : variable – example
◮ use the primal when d < n (in the liner case) or when matrix G is hard
to compute
◮ otherwise use the dual
universality = nonlinearity
◮ kernels
SVM and Kernel machine
Lecture 1: Linear SVM
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
March 12, 2014Road map
1 Linear SVM
Separating hyperplanes
The margin
Linear SVM: the problem
Linear programming SVM
0 0 0
margin
"The algorithms for constructing the separating hyperplane considered
above will be utilized for developing a battery of programs for pattern
recognition." in Learning with kernels, 2002 - from V .Vapnik, 1982Hyperplanes in 2d: intuition
It’s a line!Hyperplanes: formal definition
Given vector v ∈ IRd
and bias a ∈ IR
Hyperplane as a function h,
h : IRd −→ IR
x 7−→ h(x) = v
⊤x + a
Hyperplane as a border in IRd
(and an implicit function)
∆(v, a) = {x ∈ IRd
v
⊤x + a = 0}
The border invariance property
∀k ∈ IR, ∆(kv, ka) = ∆(v, a)
∆ = {x ∈ IR2
| v
⊤x + a = 0}
the decision border
∆
(x, h(x)) = v
⊤x + a)
(x, 0)
h(x)
d(x, ∆)Separating hyperplanes
Find a line to separate (classify) blue from red
D(x) = sign
v
⊤x + a
Separating hyperplanes
Find a line to separate (classify) blue from red
D(x) = sign
v
⊤x + a
the decision border:
v
⊤x + a = 0Separating hyperplanes
Find a line to separate (classify) blue from red
D(x) = sign
v
⊤x + a
the decision border:
v
⊤x + a = 0
there are many solutions...
The problem is ill posed
How to choose a solution?This is not the problem we want to solve
{(xi
, yi); i = 1 : n} a training sample, i.i.d. drawn according to IP(x, y)
unknown
we want to be able to classify new
observations: minimize IP(error)This is not the problem we want to solve
{(xi
, yi); i = 1 : n} a training sample, i.i.d. drawn according to IP(x, y)
unknown
we want to be able to classify new
observations: minimize IP(error)
Looking for a universal approach
use training data: (a few errors)
prove IP(error) remains small
scalable - algorithmic complexityThis is not the problem we want to solve
{(xi
, yi); i = 1 : n} a training sample, i.i.d. drawn according to IP(x, y)
unknown
we want to be able to classify new
observations: minimize IP(error)
Looking for a universal approach
use training data: (a few errors)
prove IP(error) remains small
scalable - algorithmic complexity
with high probability (for the canonical hyperplane):
IP(error) < IPb (error)
| {z }
=0 here
+ ϕ(
1
margin
| {z }
=kvk
)
Vapnik’s Book, 1982Margin guarantees
min
i∈[1,n]
dist(xi
, ∆(v, a))
| {z }
margin: m
Theorem (Margin Error Bound)
Let R be the radius of the smallest ball BR(a) =
x ∈ IRd
| kx − ck < R
,
containing the points (x1, . . . , xn) i.i.d from some unknown distribution IP.
Consider a decision function D(x) = sign(v
⊤x) associated with a
separating hyperplane v of margin m (no training error).
Then, with probability at least 1 − δ for any δ > 0, the generalization error
of this hyperplane is bounded by
IP(error) ≤ 2
r
R2
n m2
+ 3
r
ln(2/δ)
2n
R
v’x = 0
m
theorem 4.17 p 102 in J Shawe-Taylor, N Cristianini Kernel methods for pattern analysis, Cambridge 2004Statistical machine learning – Computation learning theory
(COLT)
{xi
, yi}
{xi
, yi}
i = 1, n A f = v
⊤x + a
x
yp = f (x)
IPb (error)
= 1
n
L(f (xi), yi)
Loss L
Vapnik’s Book, 1982Statistical machine learning – Computation learning theory
(COLT)
{xi
, yi}
{xi
, yi}
i = 1, n A f = v
⊤x + a
x
yp = f (x)
IPb (error)
= 1
n
L(f (xi), yi)
y Loss L
IP(error)
=
IE(L)
∀IP ∈ P
P IP
Prob
≤ + ϕ(kvk) ≥ δ
Vapnik’s Book, 1982linear discrimination
Find a line to classify blue and red
D(x) = sign
v
⊤x + a
the decision border:
v
⊤x + a = 0
there are many solutions...
The problem is ill posed
How to choose a solution ?
⇒ choose the one with larger marginRoad map
1 Linear SVM
Separating hyperplanes
The margin
Linear SVM: the problem
Linear programming SVM
0 0 0
marginMaximize our confidence = maximize the margin
the decision border: ∆(v, a) = {x ∈ IRd
v
⊤x + a = 0}
0 0 0
margin
maximize the margin
max
v,a
min
i∈[1,n]
dist(xi
, ∆(v, a))
| {z }
margin: m
Maximize the confidence
max
v,a
m
with min
i=1,n
|v
⊤xi + a|
kvk
≥ m
the problem is still ill posed
if (v, a) is a solution, ∀ 0 < k (kv, ka) is also a solution. . .Margin and distance: details
Theorem (The geometrical margin)
Let x be a vector in IRd
and ∆(v, a) = {s ∈ IRd
v
⊤s + a = 0} an
hyperplane. The distance between vector x and the hyperplane ∆(v, a)) is
dist(xi
, ∆(v, a)) = |v⊤x+a|
kvk
Let sx be the closest point to x in ∆ , sx = arg min
s∈∆
kx − sk. Then
x = sx + r
v
kvk
⇔ r
v
kvk
= x − sx
So that, taking the scalar product with vector v we have:
v
⊤r
v
kvk
= v
⊤(x − sx ) = v
⊤x − v
⊤sx = v
⊤x + a − (v
⊤sx + a)
| {z }
=0
= v
⊤x + a
and therefore
r =
v⊤x + a
kvk
leading to:
dist(xi
, ∆(v, a)) = min
s∈∆
kx − sk = r =
|v⊤x + a|
kvkGeometrical and numerical margin
∆ = {x ∈ IR2
| v
⊤x + a = 0}
the decision border
∆
d(x, ∆) = |v
⊤x + a|
kvk
the geometrical margin
d(xb, ∆)
(xr, v
⊤xr + a)
(xr, 0)
mr
d(xr, ∆)
(xb, v
⊤xb + a)
mb
(xb, 0)
m = |v
⊤x + a|
the numerical marginFrom the geometrical to the numerical margin
+1
ï1
ï1/|w|
1/|w|
{x | wT
x = 0}
<ï ï marge >
x
w
T
x
Valeur de la marge dans le cas monodimensionnel
Maximize the (geometrical) margin
max
v,a
m
with min
i=1,n
|v
⊤xi + a|
kvk
≥ m
if the min is greater, everybody is greater
(yi ∈ {−1, 1})
max
v,a
m
with yi(v
⊤xi + a)
kvk
≥ m, i = 1, n
change variable: w =
v
mkvk
and b =
a
mkvk =⇒ kwk =
1
m
max
w,b
m
with yi(w⊤xi + b) ≥ 1 ; i = 1, n
and m =
1
kwk
min
w,b
kwk
2
with yi(w⊤xi + b) ≥ 1
i = 1, nThe canonical hyperplane
(
min
w,b
kwk
2
with yi(w⊤xi + b) ≥ 1 i = 1, n
Definition (The canonical hyperplane)
An hyperplane (w, b) in IRd
is said to be canonical with respect the set of
vectors {xi ∈ IRd
, i = 1, n} if
min
i=1,n
|w
⊤xi + b| = 1
so that the distance
min
i=1,n
dist(xi
, ∆(w, b)) = |w⊤x + b|
kwk
=
1
kwk
The maximal margin (=minimal norm) canonical hyperplaneRoad map
1 Linear SVM
Separating hyperplanes
The margin
Linear SVM: the problem
Linear programming SVM
0 0 0
marginLinear SVM: the problem
The maximal margin (=minimal norm)
canonical hyperplane
0 0 0
margin
Linear SVMs are the solution of the following problem (called primal)
Let {(xi
, yi); i = 1 : n} be a set of labelled data with x ∈ IRd
, yi ∈ {1, −1}
A support vector machine (SVM) is a linear classifier associated with the
following decision function: D(x) = sign
w⊤x + b
where w ∈ IRd
and
b ∈ IR a given thought the solution of the following problem:
(
min
w∈IRd
, b∈IR
1
2
kwk
2
with yi(w⊤xi + b) ≥ 1 , i = 1, n
This is a quadratic program (QP): (
min
z
1
2
z
⊤Az − d
⊤z
with Bz ≤ eSupport vector machines as a QP
The Standart QP formulation
(
min
w,b
1
2
kwk
2
with yi(w⊤xi + b) ≥ 1, i = 1, n
⇔
(
min
z∈IRd+1
1
2
z
⊤Az − d
⊤z
with Bz ≤ e
z = (w, b)
⊤, d = (0, . . . , 0)
⊤, A =
I 0
0 0
, B = −[diag(y)X, y] and
e = −(1, . . . , 1)
⊤
Solve it using a standard QP solver such as (for instance)
% QUADPROG Quadratic programming .
% X = QUADPROG (H ,f ,A ,b ) attempts to solve the quadratic programming problem :
%
% min 0.5* x ’* H*x + f ’* x subject to : A*x <= b
% x
% so that the solution is in the range LB <= X <= UB
For more solvers (just to name a few) have a look at:
plato.asu.edu/sub/nlores.html#QP-problem
www.numerical.rl.ac.uk/people/nimg/qp/qp.htmlRoad map
1 Linear SVM
Separating hyperplanes
The margin
Linear SVM: the problem
Linear programming SVM
0 0 0
marginOther SVMs: Equivalence between norms
L1 norm
variable selection
(especially with
redundant noisy features)
Mangassarian, 1965
max
m,v,a
m
with yi(v
⊤xi + a) ≥ m kvk2 ≥ m
1
√
d
kvk1
i = 1, n
1-norm or Linear Programming-SVM (LP SVM)
(
min
w,b
kwk1 =
Pp
j=1
|wj
|
with yi(w
⊤xi + b) ≥ 1 ; i = 1, n
Generalized SVM (Bradley and Mangasarian, 1998)
(
min
w,b
kwk
p
p
with yi(w
⊤xi + b) ≥ 1 ; i = 1, n
p = 2: SVM, p = 1: LPSVM (also with p = ∞), p = 0: L0 SVM,
p= 1 and 2: doubly regularized SVM (DrSVM)Linear support vector support (LP SVM)
(
min
w,b
kwk1 =
Pp
j=1 w
+
j + w
−
j
with yi(w
⊤xi + b) ≥ 1 ; i = 1, n
w = w
+ − w
− with w
+ ≥ 0 and w
− ≥ 0
The Standart LP formulation
min
x
f
⊤x
with Ax ≤ d
and 0 ≤ x
x = [w
+; w
−; b] f = [1 . . . 1; 0] d = −[1 . . . 1]
⊤ A = [−yiXi yiXi − yi]
% linprog (f ,A ,b , Aeq , beq ,LB , UB )
% attempts to solve the linear programming problem :
% min f ’* x subject to : A* x <= b
% x
% so that the solution is in the range LB <= X <= UBAn example of linear discrimination: SVM and LPSVM
true line
QP SVM
LPSVM
Figure: SVM and LP SVMThe linear discrimination problem
from Learning with Kernels, B. Schölkopf and A. Smolla, MIT Press, 2002.Conclusion
SVM =
Separating hyperplane (to begin with the simpler)
+ Margin, Norm and statistical learning
+ Quadratic and Linear programming (and associated rewriting issues)
+ Support vectors (sparsity)
SVM preforms the selection of the most relevant data pointsBibliography
V. Vapnik, the generalized portrait method p 355 in Estimation of
dependences based on empirical data, Springer, 1982
B. Boser, I. Guyon & V. Vapnik, A training algorithm for optimal margin
classifiers. COLT, 1992
P. S. Bradley & O. L. Mangasarian. Feature selection via concave
minimization and support vector machines. ICML 1998
B. Schölkopf & A. Smolla, Learning with Kernels, MIT Press, 2002
M. Mohri, A. Rostamizadeh & A. Talwalkar, Foundations of Machine
Learning, MIT press 2012
http://agbs.kyb.tuebingen.mpg.de/lwk/sections/section72.pdf
http://www.cs.nyu.edu/~mohri/mls/lecture_4.pdf
http://en.wikipedia.org/wiki/Quadratic_programming
Stéphane Canu (INSA Rouen - LITIS) March 12, 2014 25 / 25
Understanding SVM (and associated kernel machines)
through the development of a Matlab toolbox
Stephane Canu
To cite this version:
Stephane Canu. Understanding SVM (and associated kernel machines) through the development
of a Matlab toolbox. Ecole d’ing´enieur. Introduction to Support Vector Machines (SVM), ´
Sao Paulo, 2014, pp.33.
HAL Id: cel-01003007
https://cel.archives-ouvertes.fr/cel-01003007
Submitted on 8 Jun 2014
HAL is a multi-disciplinary open access
archive for the deposit and dissemination of scientific
research documents, whether they are published
or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.
L’archive ouverte pluridisciplinaire HAL, est
destin´ee au d´epˆot et `a la diffusion de documents
scientifiques de niveau recherche, publi´es ou non,
´emanant des ´etablissements d’enseignement et de
recherche fran¸cais ou ´etrangers, des laboratoires
publics ou priv´es.Lecture 8: Multi Class SVM
Stéphane Canu
stephane.canu@litislab.eu
Sao Paulo 2014
April 10, 2014Roadmap
1 Multi Class SVM
3 different strategies for multi class SVM
Multi Class SVM by decomposition
Multi class SVM
Coupling convex hulls
1.5
1.5
1.5
1.5
1.5
1.5
2.5
2.5
2.5
−0.5 0 0.5 1 1.5
0
0.5
1
1.5
23 different strategies for multi class SVM
1 Decomposition approaches
◮ one vs all: winner takes all
◮ one vs one:
⋆ max-wins voting
⋆ pairwise coupling: use probability
◮ c SVDD
2 global approach (size c × n),
◮ formal (different variations)
min
f ∈H,α0,ξ∈IRn
1
2
Xc
ℓ=1
kfℓk
2
H +
C
p
Xn
i=1
Xc
ℓ=1,ℓ6=yi
ξ
p
iℓ
with fyi
(xi) + byi ≥ fℓ(xi) + bℓ + 2 − ξiℓ
and ξiℓ ≥ 0 for i = 1, ..., n; ℓ = 1, ..., c; ℓ 6= yi
non consistent estimator but practically useful
◮ structured outputs
3 A coupling formulation using the convex hulls3 different strategies for multi class SVM
1 Decomposition approaches
◮ one vs all: winner takes all
◮ one vs one:
⋆ max-wins voting
⋆ pairwise coupling: use probability – best results
◮ c SVDD
2 global approach (size c × n),
◮ formal (different variations)
min
f ∈H,α0,ξ∈IRn
1
2
Xc
ℓ=1
kfℓk
2
H +
C
p
Xn
i=1
Xc
ℓ=1,ℓ6=yi
ξ
p
iℓ
with fyi
(xi) + byi ≥ fℓ(xi) + bℓ + 2 − ξiℓ
and ξiℓ ≥ 0 for i = 1, ..., n; ℓ = 1, ..., c; ℓ 6= yi
non consistent estimator but practically useful
◮ structured outputs
3 A coupling formulation using the convex hullsMulticlass SVM: complexity issues
n training data
n = 60, 000 for MNIST
c class
c = 10 for MNIST
approach problem
size
number of
sub problems discrimination rejection
1 vs. all n c ++ -
1 vs. 1 2n
c
c(c−1)
2 ++ -
c SVDD n
c
c - ++
all together n × c 1 ++ -
coupling CH n 1 + +Roadmap
1 Multi Class SVM
3 different strategies for multi class SVM
Multi Class SVM by decomposition
Multi class SVM
Coupling convex hulls
1.5
1.5
1.5
1.5
1.5
1.5
2.5
2.5
2.5
−0.5 0 0.5 1 1.5
0
0.5
1
1.5
2Multi Class SVM by decomposition
One-Against-All Methods
→ winner-takes-all strategy
One-vs-One: pairwise methods
→ max-wins voting
→ directed acyclic graph (DAG)
→ error-correcting codes
→ post process probabilities
Hierarchical binary tree for
multi-class SVM
http://courses.media.mit.edu/2006fall/
mas622j/Projects/aisen-project/SVM and probabilities (Platt, 1999)
The decision function of the SVM is: sign
f (x) + b
log IP(Y = 1|x)
IP(Y = −1|x)
should have (almost) the same sign as f (x) + b
log IP(Y = 1|x)
IP(Y = −1|x)
= a1(f (x) + b) + a2 IP(Y = 1|x) = 1 −
1
1 + expa1(f (x)+b)+a2
a1 et a2 estimated using maximum likelihood on new data
max
a1,a2
L
with L =
Yn
i=1
IP(Y = 1|xi)
yi + (1 − IP(Y = 1|xi))(1−yi )
and log L =
Pn
i=1
yi
log(IP(Y = 1|xi)) + (1 − yi)log(1 − IP(Y = 1|xi))
=
Pn
i=1
yi
log
IP(Y =1|xi )
1−IP(Y =1|xi )
+ log(1 − IP(Y = 1|xi))
=
Pn
i=1
yi
a1(f (xi) + b) + a2
− log(1 + expa1(f (xi )+b)+a2 )
=
Pn
i=1
yi
a
⊤zi
− log(1 + expa
⊤zi)
Newton iterations: a
new ← a
old − H
−1∇logLSVM and probabilities (Platt, 1999)
max
a∈IR2
log L =
Xn
i=1
yi
a
⊤zi
− log(1 + expa
⊤zi)
Newton iterations
a
new ← a
old − H
−1∇logL
∇logL =
Xn
i=1
yi zi −
expa
⊤z
1 + expa⊤z
zi
=
Xn
i=1
yi − IP(Y = 1|xi)
zi = Z
⊤(y − p)
H = −
Xn
i=1
zi z
⊤
i
IP(Y = 1|xi)
1 − IP(Y = 1|xi)
= −Z
⊤WZ
Newton iterations
a
new ← a
old + (Z
⊤WZ)
−1Z
⊤(y − p)SVM and probabilities: practical issues
y −→ t =
1 − ε+ =
n+ + 1
n+ + 2
if yi = 1
ε− =
1
n− + 2
if yi = −1
1 in: X, y, f /out: p
2 t ←
3 Z ←
4 loop until convergence
1 p ← 1 −
1
1+expa⊤z
2 W ← diag
p(1 − p)
3 a
new ← a
old + (Z
⊤WZ)
−1Z
⊤(t − p)SVM and probabilities: pairwise coupling
From pairwise probabilities IP(cℓ
, cj) to class probabilities pℓ = IP(cℓ
|x)
min
p
Xc
ℓ=1
X
ℓ−1
j=1
IP(cℓ
, cj)
2
(pℓ − pj)
2
Q e
e
⊤ 0
p
µ
=
0
1
with Qℓj =
IP(cℓ
, cj)
2
P
ℓ 6= j
i
IP(cℓ
, ci)
2
ℓ = j
The global procedure :
1 (Xa, ya, Xt, yt) ← split(X, y)
2 (Xℓ, yℓ, Xp, yp) ← split(Xa, ya)
3 loop for all pairs (ci
, cj) of classes
1 modeli,j ← train_SVM(Xℓ, yℓ,(ci
, cj))
2 IP(ci
, cj) ← estimate_proba(Xp, yp, model) % Platt estimate
4 p ← post_process(Xt, yt,IP) % Pairwise Coupling
Wu, Lin & Weng, 2004, Duan & Keerti, 05SVM and probabilities
Some facts
SVM is universally consistent (converges towards the Bayes risk)
SVM asymptotically implements the bayes rule
but theoretically: no consistency towards conditional probabilities (due
to the nature of sparsity)
to estimate conditional probabilities on an interval
(typically[
1
2 − η, 1
2 + η]) to sparseness in this interval (all data points
have to be support vectors)
Bartlett & Tewari, JMLR, 07SVM and probabilities (2/2)
An alternative approach
g(x) − ε
−(x) ≤ IP(Y = 1|x) ≤ g(x) + ε
+(x)
with g(x) = 1
1+4−f (x)−α0
non parametric functions ε
− and ε
+ have to verify:
g(x) + ε
+(x) = exp−a1(1−f (x)−α0)++a2
1 − g(x) − ε
−(x) = exp−a1(1+f (x)+α0)++a2
with a1 = log 2 and a2 = 0
Grandvalet et al., 07Roadmap
1 Multi Class SVM
3 different strategies for multi class SVM
Multi Class SVM by decomposition
Multi class SVM
Coupling convex hulls
1.5
1.5
1.5
1.5
1.5
1.5
2.5
2.5
2.5
−0.5 0 0.5 1 1.5
0
0.5
1
1.5
2Multi class SVM: the decision function
One hyperplane by class
fℓ(x) = w
⊤
ℓ
x + bℓ ℓ = 1, c
Winner takes all decision function
D(x) = Argmax
ℓ=1,c
w
⊤
1 x + b1, w
⊤
2 x + b2, . . . , w
⊤
ℓ
x + bℓ
, . . . , w
⊤
c x + bc
We can revisit the 2 classes case in this setting
c × (d + 1) unknown variables (wℓ, bℓ); ℓ = 1, cMulti class SVM: the optimization problem
The margin in the multidimensional case
m = min
ℓ6=yi
v
⊤
yi
xi − ayi − v
⊤
ℓ xi + aℓ
= v
⊤
yi
xi + ayi − max
ℓ6=yi
v
⊤
ℓ xi + aℓ
The maximal margin multiclass SVM
max
vℓ,aℓ
m
with v
⊤
yi
xi + ayi − v
⊤
ℓ
xi − aℓ ≥ m for i = 1, n; ℓ = 1, c; ℓ 6= yi
and 1
2
Xc
ℓ=1
kvℓk
2 = 1
The multiclass SVM
min
wℓ,bℓ
1
2
Xc
ℓ=1
kwℓk
2
with x
⊤
i
(wyi − wℓ) + byi − bℓ ≥ 1 for i = 1, n; ℓ = 1, c; ℓ 6= yiMulti class SVM: KKT and dual form: The 3 classes case
min
wℓ,bℓ
1
2
X
3
ℓ=1
kwℓk
2
with w⊤
yi
xi + byi ≥ w⊤
ℓ
xi + bℓ + 1 for i = 1, n; ℓ = 1, 3; ℓ 6= yi
min
wℓ,bℓ
1
2
kw1k
2 +
1
2
kw2k
2 +
1
2
kw3k
2
with w⊤
1
xi + b1 ≥ w⊤
2
xi + b2 + 1 for i such that yi = 1
w⊤
1
xi + b1 ≥ w⊤
3
xi + b3 + 1 for i such that yi = 1
w⊤
2
xi + b2 ≥ w⊤
1
xi + b1 + 1 for i such that yi = 2
w⊤
2
xi + b2 ≥ w⊤
3
xi + b3 + 1 for i such that yi = 2
w⊤
3
xi + b3 ≥ w⊤
1
xi + b1 + 1 for i such that yi = 3
w⊤
3
xi + b3 ≥ w⊤
2
xi + b2 + 1 for i such that yi = 3
L =
1
2
(kw1k
2 + kw2k
2 + kw3k
2
) −α
⊤
12(X1(w1 − w2) + b1 − b2 − 1)
−α
⊤
13(X1(w1 − w3) + b1 − b3 − 1)
−α
⊤
21(X2(w2 − w1) + b2 − b1 − 1)
−α
⊤
23(X2(w2 − w3) + b2 − b3 − 1)
−α
⊤
31(X3(w3 − w1) + b3 − b1 − 1)
−α
⊤
32(X3(w3 − w2) + b3 − b2 − 1)Multi class SVM: KKT and dual form: The 3 classes case
L =
1
2
kwk
2 − α
⊤(XMw + Ab − 1)
with
w =
w1
w2
w3
∈ IR3d M = M ⊗ I =
I −I 0
I 0 −I
−I I 0
0 I −I
−I 0 I
0 −I I
a 6d × 3d matrix
where
I the identity matrix
and
X =
X1 0 0 0 0 0
0 X1 0 0 0 0
0 0 X2 0 0 0
0 0 0 X2 0 0
0 0 0 0 X3 0
0 0 0 0 0 X3
a 2n × 6d matrix
with input data
X =
X1
X2
X3
n × dMulti class SVM: KKT and dual form: The 3 classes case
KKT Stationality conditions =
∇wL = w − M⊤X ⊤α
∇bL = A
⊤α
The dual
min
α∈IR2n
1
2
α
⊤Gα − e
⊤α
with Ab = 0
and 0 ≤ α
With
G = XMM⊤X
⊤
= X (M ⊗ I)(M ⊗ I)
⊤X
⊤
= X (MM⊤ ⊗ I)X
⊤
= (MM⊤ ⊗ I). × XX ⊤
= (MM⊤ ⊗ I). × 1I K 1I⊤
and M =
1 −1 0
1 0 −1
−1 1 0
0 1 −1
−1 0 1
0 −1 1
Multi class SVM and slack variables (2 variants)
A slack for all (Vapnik & Blanz, Weston & Watkins 1998)
min
wℓ,bℓ,ξ∈IRcn
1
2
Xc
ℓ=1
kwℓk
2 + C
Xn
i=1
Xc
ℓ=1,ℓ6=yi
ξiℓ
with w⊤
yi
xi + byi − w⊤
ℓ
xi − bℓ ≥ 1 − ξiℓ
and ξiℓ ≥ 0 for i = 1, n; ℓ = 1, c; ℓ 6= yi
The dual
min
α∈IR2n
1
2
α
⊤Gα − e
⊤α
with Ab = 0
and 0 ≤ α ≤ C
Max error, a slack per training data (Cramer and Singer, 2001)
min
wℓ,bℓ,ξ∈IRn
1
2
Xc
ℓ=1
kwℓk
2 + C
Xn
i=1
ξi
with (wyi − wℓ)
⊤xi ≥ 1 − ξi for i = 1, n; ℓ = 1, c; ℓ 6= yi
X
i=1
and ξi ≥ 0 for i = 1, nMulti class SVM and Kernels
min
f ∈H,α0,ξ∈IRcn
1
2
Xc
ℓ=1
kfℓk
2
H + C
Xn
i=1
Xc
ℓ=1,ℓ6=yi
ξiℓ
with fyi
(xi) + byi − fℓ(xi) − bℓ ≥ 1 − ξiℓ
Xn
i=1
and ξiℓ ≥ 0 for i = 1, n; ℓ = 1, c; ℓ 6= yi
The dual
min
α∈IR2n
1
2
α
⊤Gα − e
⊤α
with Ab = 0
and 0 ≤ α≤ C
where G is the multi class kernel matrixOther Multi class SVM
Lee, Lin & Wahba, 2004
min
f ∈H
λ
2
Xc
ℓ=1
kfℓk
2
H +
1
n
Xn
i=1
Xc
ℓ=1,ℓ6=yi
(fℓ(xi) + 1
c − 1
)+
with Xc
ℓ=1
fℓ(x) = 0 ∀x
Structured outputs = Cramer and Singer, 2001
MSVMpack : A Multi-Class Support Vector Machine Package Fabien Lauer
& Yann GuermeurRoadmap
1 Multi Class SVM
3 different strategies for multi class SVM
Multi Class SVM by decomposition
Multi class SVM
Coupling convex hulls
1.5
1.5
1.5
1.5
1.5
1.5
2.5
2.5
2.5
−0.5 0 0.5 1 1.5
0
0.5
1
1.5
2One more way to derivate SVM
Minimizing the distance between the convex hulls
min
α
ku − vk
2
with u(x) = X
{i|yi =1}
αi(x
⊤
i x), v(x) = X
{i|yi =−1}
αi(x
⊤
i x)
and X
{i|yi =1}
αi = 1,
X
{i|yi =−1}
αi = 1, 0 ≤ αi
i = 1, nThe multi class case
min
α
Xc
ℓ=1
Xc
ℓ
′=1
kuℓ − uℓ
′k
2
with uℓ(x) = X
{i|yi =ℓ}
αi,ℓ(x
⊤
i x), ℓ = 1, c
and X
{i|yi =ℓ}
αi,ℓ = 1, 0 ≤ αi,ℓ i = 1, n; ℓ = 1, cBibliography
Estimating probabilities
◮ Platt, J. (2000). Probabilistic outputs for support vector machines and
comparison to regularized likelihood methods. In Advances in large
margin classifiers. MIT Press.
◮ T. Lin, C.-J. Lin, R.C. Weng, A note on Platt’s probabilistic outputs
for support vector machines, Mach. Learn. 68 (2007) 267–276
◮ http://www.cs.cornell.edu/courses/cs678/2007sp/platt.pdf
Multiclass SVM
◮ K.-B. Duan & S. Keerthi (2005). "Which Is the Best Multiclass SVM
Method? An Empirical Study".
◮ T.-F. Wu, C.-J. Lin, R.C. Weng, Probability estimates for multi-class
classification by pairwise coupling, JMLR. 5 (2004) 975–1005.
◮ K. Crammer & Y. Singer (2001). "On the Algorithmic Implementation
of Multiclass Kernel-based Vector Machines". JMLR 2: 265–292.
◮ Lee, Y.; Lin, Y.; and Wahba, G. (2001). "Multicategory Support
Vector Machines". Computing Science and Statistics 33.
◮ http://www.loria.fr/~guermeur/NN2008_M_SVM_YG.pdf
◮ http://jmlr.org/papers/volume12/lauer11a/lauer11a.pdf
Stéphane Canu (INSA Rouen - LITIS) April 10, 2014 25 / 25
https://hal.inria.fr/cel-01082588v2/document
Tutoriel Android - TP de prise en main
Dima Rodriguez
To cite this version:
Dima Rodriguez. Tutoriel Android - TP de prise en main. Ecole d’ing´enieur. France. 2014, ´
pp.51.
HAL Id: cel-01082588
https://hal.archives-ouvertes.fr/cel-01082588v2
Submitted on 26 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.Tutoriel Android TM
TP de prise en main
Dima RodriguezPolytech’ Paris Sud
Tutoriel AndroidTM
Dima Rodriguez
Novembre 2014
TP de prise en mainTable des matières
Préambule 4
1 Installation de l’IDE 5
2 Configuration de l’IDE 6
Installation des paquets supplémentaires et des mises à jours . . . . . . 6
Configuration d’un émulateur . . . . . . . . . . . . . . . . . . . . . . . 6
3 Notre première application Android 10
Création d’un projet et d’une application “Hello World” . . . . . . . . . 10
Exécution de l’application . . . . . . . . . . . . . . . . . . . . . . . . . 11
Se repérer dans le projet . . . . . . . . . . . . . . . . . . . . . . . . . 14
Modification de l’interface utilisateur . . . . . . . . . . . . . . . . . . . 16
Répondre aux évènements . . . . . . . . . . . . . . . . . . . . . . . . . 21
Créer et lancer une autre activité . . . . . . . . . . . . . . . . . . . . . 22
Créer des animations . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Créer un View personnalisé pour gérer un jeu . . . . . . . . . . . . . . 32
Temporisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
Rajouter un bouton sur la barre d’action . . . . . . . . . . . . . . . . . 40
Lancement d’une autre application . . . . . . . . . . . . . . . . . . . . 41
Changement de langue . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
Annexes 46
Explication du code généré par défaut pour la classe Principale . . . . . 46
Cycle de vie d’une activité . . . . . . . . . . . . . . . . . . . . . . . . 49
2Table des figures
2.1 SDK Manager . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.2 Android Virtual Device Manager . . . . . . . . . . . . . . . . . . 8
2.3 Création d’un appareil virtuel . . . . . . . . . . . . . . . . . . . . 9
3.1 Création d’un projet . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.2 Créer une activité . . . . . . . . . . . . . . . . . . . . . . . . . . 12
3.3 Nouvelle activité . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3.4 Exécution de l’application . . . . . . . . . . . . . . . . . . . . . . 13
3.5 Aperçu de l’interface Eclipse . . . . . . . . . . . . . . . . . . . 14
3.6 Hiérarchie de LinearLayout . . . . . . . . . . . . . . . . . . . . . 17
3.7 Premier test de l’application modifiée . . . . . . . . . . . . . . . . 20
3.8 Champ de saisie et bouton . . . . . . . . . . . . . . . . . . . . . 21
3.9 Création d’une nouvelle activité . . . . . . . . . . . . . . . . . . . 23
3.10 Nouveau xml pour définir une animation . . . . . . . . . . . . . . 28
3.11 Animation en LinearLayout . . . . . . . . . . . . . . . . . . . . . 30
3.12 Animation en RelativeLayout . . . . . . . . . . . . . . . . . . . . 31
3.13 Création de la classe MonViewPerso . . . . . . . . . . . . . . . . 33
3.14 Ajout d’un bouton pour lancer le jeu . . . . . . . . . . . . . . . . 36
3.15 Activité avec vue personnalisée . . . . . . . . . . . . . . . . . . . 39
3.16 Barre d’action . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.17 Cycle de vie d’une activité . . . . . . . . . . . . . . . . . . . . . 50
3Préambule
Le système d’exploitation Android est actuellement l’OS le plus utilisé dans le
monde faisant tourner des smartphones, tablettes, montres connectées, liseuses
électroniques, télévisions interactives, et bien d’autres. C’est un système, open
source qui utilise le noyau Linux. Il a été créée par Android, Inc. qui fut rachetée
par Google en 2005. Le développement d’applications pour Android s’effectue
en Java en utilisant des bibliothèques spécifiques.
Le but de ce tutoriel est de vous familiariser avec l’esprit de développement Android
et ses bibliothèques. Nous introduirons les concepts de bases de création
d’application en mettant en œuvre quelques fonctionnalités simples. Ce tutoriel
n’est en aucun cas exhaustive, le potentiel des applications Android est beaucoup
plus ample, les exemples cités dans ce document ne devront pas brider votre
imagination ni votre curiosité.
Sur le site officiel pour les développeurs Android vous trouverez la documentation
des classes, des tutoriels ainsi que les lignes directrices pour préparer une
distribution Google Play. Un lexique à la fin de ce document définit quelques
mot du vocabulaire Android utilisé dans ce tutoriel.
41 Installation de l’IDE
Dans cette section nous allons décrire la procédure d’installation d’un environnement
de développement Android.
Attention : Il faut exécuter les étapes dans l’ordre cité ci-dessous.
a. Téléchargez le JDK7 (Java Development Kit) que vous pouvez trouver sur
le site d’Oracle 1
.
b. Désinstallez des éventuelles versions antérieures du JDK
c. Installez le nouveau JDK
d. Téléchargez le paquet ADT (Android Developer Tools). Il contient le SDK
(Software Development Kit) Android et une version d’Eclipse avec ADT
intégré.
e. Pour installer l’IDE, il faut juste placer le dossier téléchargé dans le répertoire
où vous avez l’habitude d’installer vos programmes (ou directement
sur votre partition principale) et le dé-zipper. Vous pouvez également lui
changer de nom si vous souhaitez, mais veillez à ne pas mettre des espaces
ou des accents quand vous le renommez.
f. Dans le dossier dé-zippé vous trouverez un exécutable Eclipse que vous
pouvez désormais lancer pour commencer la configuration de votre environnement.
i
Au moment de l’écriture de ce document, Eclipse est le seul IDE (Integrated
Development Environment) officiellement supporté. Un nouvel environnement,
Android Studio, est en cours de développement mais est encore
en version bêta pas très stable.
Si vous souhaitez utiliser une version d’Eclipse que vous avez déjà sur votre
machine il faudrait prendre le SDK et un plugin ADT et configurer Eclipse
pour son utilisation.
1. Ce tutoriel a été réalisé avec JDK7u60
52 Configuration de l’IDE
Installation des paquets supplémentaires et des
mises à jours
a. Lancez Eclipse
b. On commencera par s’assurer que l’environnement installé est à jour. Dans
le menu Help sélectionnez Check for Updates et installez les mises à jour
le cas échéant.
c. Pour vérifier la version du SDK installé, allez dans le menu Window >
Android SDK Manager et lancez le gestionnaire du SDK. Dans le gestionnaire
(fig.2.1) vous verrez la version du SDK installé (avec les mises jour
disponibles) et aussi la version de l’API (Application Programming Interface)
installée et la version du OS pour laquelle elle vous permettra de
développer. Installez les paquets proposés par défaut.
i
Si vous voulez développer pour des versions Android plus anciennes il faut
installer les versions API correspondantes.
Configuration d’un émulateur
Un émulateur permet de reproduire le comportement d’un appareil réel d’une façon
virtuelle. L’utilisation d’un émulateur nous évite d’avoir à charger à chaque fois
l’application dans un appareil pour la tester. On pourra ainsi lancer l’application
dans l’IDE et elle s’exécutera sur un appareil virtuel appelé Android Virtual Device
AVD qui émule le comportement d’un téléphone, une tablette ou autre.
Eclipse ne propose pas d’émulateur par défaut, avant de commencer à créer
notre application il faut en configurer un.
6Tutoriel Android 7
Figure 2.1 – SDK Manager
Dans cet exemple, il existe une mise à jour disponible pour le SDK. L’API installée est la
version 20 qui permet un développement pour Android 4.4, mais il existe une API plus
récente pour Android 5.0.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 8
Figure 2.2 – Android Virtual Device Manager
Allez dans le menu Window > Android Virtual Device Manager, une fois le gestionnaire
ouvert cliquez sur le bouton Create (fig. 2.2). Une fenêtre de configuration
s’affiche (fig. 2.3a). On propose de configurer un émulateur Nexus One avec les
paramètres indiqués (fig.2.3b).
Notez qu’à la création de l’appareil sa résolution vous est signalée. Dans cet
exemple l’appareil a une résolution 480x800 qui correspond à hdpi (high density
dots per inch). Ceci est important à noter pour l’intégration d’images dans
l’application.
i
Notez que pour certains émulateurs proposés le processeur n’est pas installé
par défaut, pour pouvoir les créer il faut installer un processeur adapté dans
le SDK Manager.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 9
(a) Fenêtre de création AVD (b) Création d’un appareil Nexus One
Figure 2.3 – Création d’un appareil virtuel
Polytech’ Paris Sud Dima Rodriguez3 Notre première application
Android
Création d’un projet et d’une application “Hello
World”
a. Dans le menu File > New, sélectionnez Android Application Project , et
renseignez les informations comme dans la figure 3.1
Application name : c’est le nom qui va apparaitre dans la liste des applications
sur l’appareil et dans le Play Store.
Project name : c’est le nom utilisé par Eclipse (typiquement le même
que celui de l’application).
Package name : il est utilisé comme identifiant de l’application, il permet
de considérer différentes versions d’une application comme étant une
même application.
Minimum required SDK : c’est la version Android la plus ancienne sur
laquelle l’application peut tourner. Il faut éviter de remonter trop en
arrière ça réduirait les fonctionnalités que vous pourriez donner à votre
application.
Target SDK : c’est la version pour laquelle l’application est développée et
testée. Typiquement la dernière version API que vous avez installée. 1
Compile with : c’est la version d’API à utiliser pour la compilation. Typiquement
la dernière version du SDK installée.
Theme : c’est l’apparence par défaut qu’aura votre application.
1. Ce tutoriel a été réalisé avec la version 4.4.2
10Tutoriel Android 11
b. Cliquez sur Next et laissez les choix par défaut. Vous pouvez éventuellement
modifier l’emplacement de votre projet en décochant Create Project in
Workspace et parcourir le disque pour sélectionner un autre dossier.
c. Cliquez sur Next. La fenêtre suivante vous propose de définir une icône pour
votre application. Nous laisserons l’icône proposée par défaut. Vous pourrez
ultérieurement créer votre propre icône pour vos applications. Remarquez
que l’image doit être proposée avec différentes résolutions pour s’adapter
aux différents appareils.
d. Cliquez sur Next. Nous arrivons à la création d’une activité (un écran avec
une interface graphique). Sélectionnez Blank Activity (fig. 3.2) et cliquez
Next.
e. Selon la version de l’ADT que vous avez, vous verrez soit la fenêtre de la
figure 3.3a ou celle de la figure 3.3b. La dernière version impose l’utilisation
de fragments. Chaque activité dispose d’un layout qui définit la façon dont
les composants seront disposés sur l’écran. Une activité peut être divisée
en portions (ou fragments) chacune ayant son propre layout. La notion
de fragment a été introduite pour favoriser la ré-utilisabilité de morceaux
d’activité (un fragment peut être définit une fois et réutilisé dans plusieurs
activités). Renseignez les champs comme indiqué dans la figure.
f. Cliquez sur Finish, le projet est crée.
!
Si vous créez un fragment ce sera le fichier fragment_principale.xml
que vous devriez modifier dans la suite du tutoriel sinon vous modi-
fierez le fichier activite_principale.xml.
Exécution de l’application
Sur l’émulateur
Appuyez sur le bouton d’exécution (fig.3.4 ) et sélectionnez Android Application
dans la fenêtre qui s’affiche. L’émulateur se lance, ça peut prendre quelques minutes
soyez patients. Rassurez-vous, vous n’aurez pas à le relancer à chaque fois que
vous compilez votre projet, laissez-le ouvert et à chaque fois que vous compilez et
relancez votre application, elle sera rechargée dans l’émulateur en cours.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 12
Figure 3.1 – Création d’un projet
Figure 3.2 – Créer une activité
Polytech’ Paris Sud Dima RodriguezTutoriel Android 13
(a) Création d’activité sans fragment (b) Création d’activité avec fragment
Figure 3.3 – Nouvelle activité
Figure 3.4 – Exécution de l’application
Polytech’ Paris Sud Dima RodriguezTutoriel Android 14
Explorateur
Palette des composants graphiques
Navigateur des fichiers ouverts
Liste des composants
de l'activité
Propritétés du
composant selectionné
Navigation entre vue graphique et xml
Output
Aperçu de
l'activité
Debug et Execution
Figure 3.5 – Aperçu de l’interface Eclipse
Sur un appareil réel
Connectez l’appareil par câble USB à l’ordinateur et installez le pilote si nécessaire.
Activez l’option de débogage USB sur votre appareil (en général sous Settings
> Applications > Development). Lancez l’application depuis Eclipse comme
précédemment. Eclipse charge l’application sur votre appareil et la lance.
i
Une fois que votre application est compilée, un fichier MonAppli.apk
est créé dans le dossier bin de votre répertoire de travail. C’est l’exé-
cutable de votre application. C’est ce fichier que vous devez déployer
pour distribuer votre application. Le contenu de ce fichier peut être
inspecté à l’aide de n’importe quel logiciel standard de compression/-
décompression de fichiers.
Se repérer dans le projet
La figure 3.5 montre les principaux éléments de l’interface Eclipse.
Tout projet Android doit respecter une hiérarchie bien précise qui permettra au
compilateur de retrouver les différents éléments et ressources lors de la génération
de l’application. Cette hiérarchie favorise la modularité des applications Android.
A la création du projet, Eclipse crée automatiquement des dossiers pour contenir
Polytech’ Paris Sud Dima RodriguezTutoriel Android 15
les fichiers de code Java, les fichiers XML, et les fichiers multimédias. L’explorateur
de projet vous permettra de naviguer dans ces dossiers.
Les dossiers que nous utiliserons le plus sont src et res. Le premier contient le code
Java qui définit le comportement de l’application et le second comporte des sous
dossiers où sont stockés les ressources qui définissent l’interface de l’application
(l’apparence).
i
La séparation entre fonctionnalité et apparence est un point essentiel de la
philosophie Android.
Le code de la classe principale de l’application (Principale.java) est situé dans le
sous dossier polytech.android.monappli de src. Vous trouverez en annexe une brève
explication du code qui y est généré par défaut. C’est dans le dossier src que seront
enregistrées toutes les classes que nous allons créer dans ce projet.
Par ailleurs, tout ce qui touche à l’interface utilisateur sera intégré dans les sous
dossiers de res, dont voici une brève description :
layout regroupe les fichiers XML qui définissent la disposition des composants
sur l’écran. Il contient déjà, dès la création du projet, le layout de l’activité
principale que nous avons créée.
drawable-**** contient tout élément qui peut être dessiné sur l’écran : images
(en PNG de préférence), formes, animations, transitions, icône, etc.. Cinq
dossiers drawable permettent aux développeurs de proposer des éléments
graphiques pour tout genre d’appareil Android en fonction de sa résolution.
En populant correctement ces dossiers on peut ainsi créer des applications
avec une interface qui s’adapte à chaque résolution d’écran avec un
seul fichier .apk.
ldpi low-resolution dots per inch. Pour des images destinées à des
écrans de basse résolution (~120dpi)
mdpi pour des écrans de moyenne resolution (~160dpi)
hdpi pour des écrans de haute résolution (~240dpi)
xhdpi pour des écrans ayant une extra haute résolution (~320dpi)
xxhdpi pour des écrans ayant une extra extra haute résolution (~480dpi).
menu contient les fichiers XML définissant les menus
Polytech’ Paris Sud Dima RodriguezTutoriel Android 16
values contient les fichiers XML qui définissent des valeurs constantes (des
chaines de caractères, des dimensions, des couleurs, des styles etc.)
Dans le dossier gen vous verrez du code java généré automatiquement par Eclipse.
Nous nous intéresserons particulièrement au fichier R.java dans le package polytech.android.monappli.
Ce fichier définit une classe R dans laquelle sont définis les
identifiants des ressources de l’application. A chaque fois que vous rajouterez une
ressource à votre application un identifiant sera généré automatiquement dans
cette classe vous permettant par la suite de pouvoir le référencer pour l’utiliser
dans votre code 2
.
Vous trouverez également sur la racine du projet un fichier nommé AndroidManifest.xml.
Ce fichier est obligatoire dans tout projet Android, et doit toujours
avoir ce même nom. Ce fichier permet au système de reconnaitre l’application.
Modification de l’interface utilisateur
Pour l’instant notre application ne fait qu’afficher un message sur l’écran, dans
cette section nous allons modifier l’interface pour y mettre un champ de saisie et
un bouton.
Une interface utilisateur est en général constituée de ce qu’on appelle des ViewGroups
qui contiennent des objets de type View ainsi que d’autres ViewGroups.
Un View est un composant, tel un bouton ou un champ de texte, et les ViewGroups
sont des conteneurs qui définissent une disposition des composants (Views)
qui y sont placés. ViewGroup définit la classe de base des différents layouts.
Comprendre le layout
La disposition de notre interface est définie dans le fichier fragment_principale.xml
situé dans le dossier layout de res. (ou bien le fichier activite_principale.xml si vous
n’avez pas définit de fragment à la création de votre projet). Ouvrez ce fichier.
2. A l’intérieur de classe R sont définies plusieurs classes, dites nichées, telles que string,
drawable, layout, menu, id, etc. Une classe nichée est membre de la classe qui la contient.
On a recours à ce genre de classe en général lorsqu’on veut définir une classe qui n’est utilisée
qu’à l’intérieur d’une autre classe. Si on la déclare privée elle ne sera visible qu’a l’intérieur de la
classe qui l’a définie. Par ailleurs cette dernière peut également accéder aux attributs privés de la
classe nichée. C’est une façon d’améliorer la lisibilité du code en regroupant les fonctionnalités qui
vont ensemble. Dans notre cas toutes les classes nichées dans R sont publiques, donc accessibles
depuis l’extérieur, mais comme elles sont membres de la classe R, pour y accéder, il faut passer
par R. On utilisera des notations telles que R.string puisque ces classes sont statiques.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 17
La première balise que vous retrouverez est qui définit
le type du conteneur qui compose l’interface, il impose la façon dont les composants
seront disposés. Plusieurs types de conteneurs existent, les plus communs
sont RelativeLayout, LinearLayout, TableLayout, GridView,
ListView. L’utilisation d’un RelativeLayout, par exemple, implique que les
composants seront placés selon des positions relatives les uns par rapport aux
autres. Un LinearLayout implique une disposition linéaire verticale ou horizontale,
un GridView permet la disposition des éléments selon une grille qui peut
défiler, etc.
A l’intérieur de la balise vous verrez un ensemble d’attributs
définis selon le format
plateforme:caractéristique=”valeur”
Par exemple le premier attribut xmlns:android précise où sont définis les balises
Android utilisées dans ce fichier.
La balise , fille de la balise , définit un composant
texte qui sera placé sur le layout. En effet, c’est sur ce composant là qu’on
écrit le “Hello World” qu’affiche notre application. Cette chaine de caractère est
définie par l’attribut android:text. La notation "@string/hello_world"
fait référence à une chaine de caractère qui s’appelle hello_world et qui est
définie dans le fichier strings.xml (dans le dossier values).
Modifier le type de layout
Nous allons maintenant modifier le type du layout pour le transformer en LinearLayout.
La figure 3.6 trace la dérivation de la classe LinearLayout. Nous
rajouterons ensuite nos composants sur ce layout dans une disposition linéaire.
Figure 3.6 – Hiérarchie de LinearLayout
Les layouts sont des ViewGroup qui sont eux mêmes des View [1]
Dans le fichier fragment_principale.xml
Polytech’ Paris Sud Dima RodriguezTutoriel Android 18
. supprimez l’élément
. remplacez l’élément par
. rajoutez l’attribut android:orientation et mettre sa valeur à “horizontal”
Le code dans le fichier devient ainsi
Rajouter d’un champ de saisie
. Rajoutez un élément dans le tel que
Nous avons ainsi placé un champ de saisie avec les attributs suivants :
android :id permet de donner un identifiant unique à ce View qu’on utilisera
pour référencer cet objet à l’intérieur de notre code.
Le symbol @ est nécessaire pour faire référence à un objet ressource à partir
d’un fichier XML. id est le type de ressource et chp_saisie est le nom
qu’on donne à notre ressource. Le symbole + est utilisé pour définir un ID
pour la première fois. Il indique aux outils du SDK qu’il faudrait générer
un ID dans le fichier R.java pour référencer cet objet. Un attribut public
static final chp_saisie sera défini dans la classe id.Le symbole
+ ne doit être utilisé qu’une seule fois au moment où on déclare la ressource
pour la première fois. Par la suite si on veut faire référence à cet élément,
à partir d’un XML, il suffira d’écrire @id/chp_saisie.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 19
android :layout_width permet de spécifier la largeur de élément.
“wrap_content” signifie que le View doit être aussi large que nécessaire
pour s’adapter à la taille de son contenu. Si en revanche on précise
“match_parent” comme on l’avait fait pour le LinearLayout, dans
ce cas le EditText occuperait toute la largeur de l’écran puisque sa largeur
sera celle de son parent c-à-d le LinearLayout
android :layout_height idem que pour le layout_width mais pour la hauteur
android :hint précise le texte par défaut à afficher dans le champ de saisie
quand il est vide. Nous aurions pu préciser directement la chaine de caractère
ici codée en dur, mais on préfère utiliser plutôt une ressource qu’on
définira dans strings.xml . Noter que l’utilisation de + ici n’est pas nécessaire
parce qu’on fait référence à une ressource concrète (qu’on définira
dans le fichier xml) et non pas à un identifiant que le SDK doit créer dans
la classe R.
i
Privilégiez toujours l’utilisation des ressources strings plutôt que des chaines
de caractères codées en dur. Cela permet de regrouper tout le texte de votre
interface dans un seul endroit pour simplifier la recherche et la mise à jour
du texte, de plus ceci est indispensable pour que votre application puisse être
multilingue. l’IDE vous affichera un avertissement en cas de non respect de
cette recommandation.
Après la modification du code que nous venons de faire, quand vous sauvegarderez
le fichier, un message d’erreur vous indiquera que l’identifiant str_chp_saisie
n’est pas connu. Nous allons donc le définir.
. Ouvrez le fichier strings.xml qui se trouve dans res>values
. Rajoutez une nouvelle string nommée str_chp_saisie et dont la valeur
est “Entrer un texte”
. Vous pouvez éventuellement supprimer la ligne qui définit “hello_world”
Votre fichier strings.xml ressemblera donc à ceci
MonAppliEntrer un texte
string>
Polytech’ Paris Sud Dima RodriguezTutoriel Android 20
Figure 3.7 – Premier test de l’application modifiée
Settings
. Une fois que vos modifications sont sauvegardées vous remarquerez la création
de deux attributs dans le fichier R.java.
• Un attribut constant nommé chp_saisie dans la classe id. C’est un
numéro unique qui identifie l’élément EditText que nous venons de
rajouter. Cet identifiant nous permettra de manipuler l’élément à partir
du code.
• Un attribut constant nommé str_chp_saisie dans la classe string.
Il fait référence à la chaine de caractère et nous permettra de l’utiliser
dans le code.
Lancez l’application, l’émulateur affichera un écran tel que dans la figure 3.7.
Tapez un texte et remarquez comment la taille du champ de saisie s’adapte à la
longueur du texte.
Polytech’ Paris Sud Dima RodriguezTutoriel Android 21
(a) Disposition par défaut (b) Le EditText a un poids de 1
Figure 3.8 – Champ de saisie et bouton
Rajouter un bouton
. Dans le fichier strings.xml rajoutez une chaine de caractère qui s’appelle
"btn_envoyer" et qui vaut Envoi.
. Dans le fichier du layout rajoutez un élément