Beruflich Dokumente
Kultur Dokumente
En vue de l’obtention du :
Diplôme d’Ingénieur de Conception de Génie Informatique
Sous la Direction de :
Thomas DJOTIO NDIE, CC
Gaëtan TEXIER, Dr
A l'Eternel Dieu sans qui je n'aurais jamais pu réaliser ce mémoire, à qui je rends grâce pour
sa grandeur, sa bonté et ses bienfaits,
A mes Parents Mr DJOUAKEP Noël et Mme WANDJI Sarath, vous n'avez ménagé
aucun eort pour faire de moi ce que je suis aujourd'hui. Je vous suis redevable à toujours, pour
tout votre amour, votre aection, vos conseils, et vos encouragements,
A mes frères et soeurs Nadine, Juliot, Gaëlle, Christiane, Guilaine, Brice, pour leur attention,
leur soutien, leurs conseils, leur aection, pour leur amour et l'admiration qu'ils ont toujours
portés à mon égard,
Je dédie ce mémoire
"Lorsque vous dites la vérité, vous n'avez à vous souvenir de rien." Mark
ii
REMERCIEMENTS
• Le Dr Thomas DJOTIO NDIE, mon encadrant académique pour sa disponibilité, ses re-
marques, les conseils, et l'encadrement apporté tout au long de ces dernières années d'étude
passées au sein du Département Génie Informatique de l'ENSP.
• Mes co-stagiaires, Estelle, Sébastien, Eric Asonganyi, Boris FOUOMENE, Cyprien KENGNE,
Wiyao Banakinao.
• Mes camarades, et mes amis Fernandes TCHOCOTE, Michael KAMTA, Franck NGAR-
INTCHA, Pascal NITCHEU, Fabuela Carelle JIOTCHANG, July TEKAM, Achille SOWA,
iii
Thierry KUATE, Ibrahima YAYA, Karl CHOUAMO, Armand NDJOCK, Lionel TCHAWE,
Moïse NZEUGA, Yannick KEMGNI, Walter NZEACHA, Michelle TOUMENI, Franky Lo-
ryanne, Gaëlle, Paola, Ornella TOUOYEM, Audrey MONGA, Cyrielle Laëticia, Christian
SOPKOUTIE, William DZEUKOU, Victor NDE, Daniel MBONGUE, Alain Charles MBONGO,
Vidal TCHINDA, Espoir TSAGUE, Françoise.
• Mes frères, cousins, cousines, neveux, nièces, particulièrement : Juliot, Fortune, Brice, Annicet
Taylor, Junior, Vicky, Franck, Manuella, Samanta, Dominique, Gilles, Christelle, Yannick,
Carelle, Loïc, Dimitri, Hugo, Chouquette, Corneille, Caleb.
• Mes tantes et oncles Hubert, Rachelle, Célestin, Rigobert, Rebecca, Félicité, Virginie, Clau-
dine, Lylyane, Sylvie, Alvine, Annie, Moïse.
iv
AVANT-PROPOS
L'Ecole Nationale Supérieure Polytechnique (ENSP) est une école de formation d'ingénieurs de
conception dans divers domaines. La formation comporte 2 cycles à savoir : le cycle MSP (Mathé-
matiques et sciences physiques) équivalent aux classes préparatoires, et un cycle de spécialisation,
où l'étudiant suit une spécialité bien donnée, devant s'achever par un stage ingénieur de n de
formation.
Le présent travail est le fruit des quatre premiers mois de stage ingénieur eectué au Centre
Pasteur du Cameroun (CPC). Le CPC est un Etablissement Public Administratif camerounais
doté de l'autonomie nancière. Il a été créé en 1959 à Yaoundé ; il dispose depuis 1985 d'une
Annexe à Garoua, et d'une antenne à Douala. Il est placé sous la double tutelle des Ministères
de la Santé publique et des Finances. Le CPC est membre du Réseau international des Instituts
Pasteur dont il partage la mission principale, la lutte contre les maladies infectueuses. Il assure
dans ce but quatre missions principales : Missions de service, de Santé Publique, de Recherche, de
Formation.
Le travail en question porte sur la simulation et l'évaluation des épidémies. Il est question
plus précisément de produire toute la partie graphique d'un logiciel de simulation d'épidémies en
utilisant les algorithmes de simulation développés par le CPC.
v
RÉSUMÉ
vi
ABSTRACT
The process of detection of outbreaks is essential in epidemiology. This leads to the development
of computational methods such as epidemic detection algorithms. The problem is that the detection
algorithms do not all have the same performance, and in general, a given algorithm is ecient for
the detection of a particular epidemic. In order to test the performance of such algorithms, the
Centre Pasteur of Cameroon (CPC) has the objective to develop a software to simulation time
epidemics, which form the basis for these tests.
The objective of this work is to implement a graphical interface for interaction with epidemic
simulation algorithms written at CPC (that operate in command line). To achieve this, grip the
operating mode algorithms command line already written syntax of R software is made to produce
the interface to facilitate their use. This objective also aims to build a library, so a complete package
for such simulations.
The software we are developing is done on the basis of the R statistical software, and is designed
as a package R.
vii
Table des matières
DEDICACES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii
REMERCIEMENTS iii
AVANT-PROPOS v
RÉSUMÉ vi
ABSTRACT vii
GLOSSAIRE 1
Introduction générale 1
Contexte de l'étude . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Problématique et positionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Motivations et objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
2 Présentation de la solution 14
2.1 Processus et élaboration du logiciel . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2 Analyse du problème . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.2.1 Spécicités fonctionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.2 Spécicités non fonctionnelles . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.2.3 Contraintes techniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
viii
TABLE DES MATIÈRES TABLE DES MATIÈRES
2.2.4 Diagramme des cas d'utilisation . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.3 Conception . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.1 Diagrammes de séquences système . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.2 La barre des menus et le Menu Tree . . . . . . . . . . . . . . . . . . . . . . . 28
2.3.3 La barre d'outils et les boutons rapides . . . . . . . . . . . . . . . . . . . . . 31
2.3.4 Les projets et l'explorateur projet . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.5 La zone de travail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
2.3.6 Architecture du système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Conclusion 53
A Chaînes de Markov et Algorithmes markoviens 54
A.1 Propriété de Markov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
A.1.1 Dénition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
A.1.2 Exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
A.2 Propriété de Markov forte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
A.2.1 Mesure sur l'espace des trajectoires . . . . . . . . . . . . . . . . . . . . . . . 58
A.2.2 Propriété de Markov forte . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
A.3 Action sur les mesures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
A.4 Récurrence, transience, périodicité . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
A.4.1 Points essentiels . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
A.4.2 Communication entre points-Irréductibilité . . . . . . . . . . . . . . . . . . . 62
ix
TABLE DES MATIÈRES TABLE DES MATIÈRES
A.4.3 Périodicité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
A.4.4 Récurrence et transience . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
A.5 Méthodes de Monte Carlo par chaînes de markov (MCMC) . . . . . . . . . . . . . . 64
A.5.1 Intérêt des méthodes MCMC . . . . . . . . . . . . . . . . . . . . . . . . . . 64
A.5.2 Qualité de l'approximation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
A.5.3 Deux exemples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
BIBLIOGRAPHIE 73
x
Table des gures
xi
TABLE DES FIGURES TABLE DES FIGURES
5.9 Progression de la simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.10 Résultats de simulation, et graphique associé : Il est possible d'enregistrer le graphique,
ou de l'imprimer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
5.11 Résultats de simulation, dans le cas d'une simulation multiple : Les résultats sont
achés dans une autre fenêtre, pour éviter un encombrement de l'IHM . . . . . . . 47
5.12 Diagnostique de convergence : Statistique de test, heidel . . . . . . . . . . . . . . . . 48
5.13 Diagnostique de convergence : Diagnostique graphique, histogramme des valeurs
générées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.14 Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
5.15 Wireframe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
B.1 Méthode d'initialisation de la classe Dynamic . . . . . . . . . . . . . . . . . . . . . 67
B.2 Méthode d'initialisation de la classe Dynamic 2 . . . . . . . . . . . . . . . . . . . . 68
B.3 apperçu simulation evaluation simultanée . . . . . . . . . . . . . . . . . . . . . . . . 68
B.4 simulation evaluation 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
B.5 connection signal simulation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
B.6 Apperçu méthode browseAndFill de la classe FileBrowser . . . . . . . . . . . . . . . 71
B.7 Apperçu méthode setNode de la classe Tree . . . . . . . . . . . . . . . . . . . . . . . 72
xii
Liste des tableaux
xiii
GLOSSAIRE
Expressions Signication
CPC Centre Pasteur du Cameroun
PMF Probability mass function
EDF Empirical distribution function
TIC Technique de l'information et de la communication
Gtk Giump ToolKit
RGtk2 Package R permettant d'utiliser la bibliothèque Gtk+
IHM Interface Homme Machine
Tcl Tool Command Language
Tcl-Tk Tcl tol
CRAN Comprehensive R Archive Network
ANOVA Analysis Of Variance
LGPL Lesser General Public License
GNOME GNU Network Object Model Environment
XFCE Environnement de bureau sous Linux, d'autres exemples sont KDE, GNOME
ITSM Inverse Sampling Transform Method
UML Unied Modeling Language
Menu Tree Arbre des menus
GUI Graphical User Interface
XML eXtensible Markup Language
Introduction générale
Contexte de l'étude
Problématique et positionnement
Suite à des études et des analyses statistiques ([1]), des algorithmes de simulation épidémiques
sur le logiciel R ont été écrits et implémentés au CPC. Mais le problème est que ceux-ci pour
être utilisés nécessitent de taper des commandes dans l'invite de commandes de R, de faire les
tests manuellement, les remplissages, et sauvegardes en ligne de commande. . . , ce qui ne rend
pas facile l'interaction avec l'utilisateur (manque de transparence, impossibilité d'impression, de
recherche, d'ajouts d'algorithmes...). Ces algorithmes ne permettent pas non plus de faire des
simulations en utilisant des PMF (Probability mass function) ou EDF (Empirical distribution
function) présents dans une base de données. En plus, bien que la conformité soit respectée, les
algorithmes écrits et implémentés sourent de certains manques parmi les règles du génie logiciel[2],
en particulier la maintenabilité 1 , la portabilité 2 , l'évolutivité... et la structure des codes ne permet
pas de constituer un package. Compte tenu ceci, et des fonctionnalités assez contraignantes oertes
par ces codes, il apparait important de proposer un package complet et plus convivial qui facilitera
l'interaction avec l'utilisateur par le biais d'une IHM 3 (Interaction Homme-Machine), qui permettra
1. L'eort nécessaire pour corriger ou transformer un logiciel
2. aptitude d'un logiciel de fonctionner dans un environnement matériel ou logiciel diérent de son environnement
initial
3. Il s'agit de moyens et outils mis en ÷uvre an qu'un humain puisse contrôler et communiquer avec une
machine
2
Interface graphique d'une plateforme de simulation-évaluation dans le domaine de la surveillance
pour l'alerte précoce
les transactions avec une base de données de courbes épidémiques, comme celle qui est présente
au CPC, et qui donnera d'ailleurs la possibilité d'installer de nouveaux algorithmes de simulation
par téléchargement, par exemple, dans le logiciel. Ainsi, il s'agira pour nous dans le cadre de ce
travail de mettre sur pied une solution logicielle ecace, conviviale, libre et gratuite basée sur ces
algorithmes, en constituant un package R, an de répondre à ces problématiques.
Motivations et ob jectifs
Notre objectif principal est la mise sur pied d'un package pour le logiciel R, qui permettra la
simulation d'épidémies temporelles. De manière spécique, notre travail consiste en :
• La conception et l'implémentation d'interfaces graphiques destinées à l'IHM du package.
• La mise à jour des programmes présents au Centre Pasteur du Cameroun relatifs aux algo-
rithmes de simulation, pour permettre leur exploitation et l'interaction avec les programmes
liés à l'IHM.
Ce mémoire qui dégage la spécicité de la pratique par rapport aux principes théoriques des
enseignements, sans occulter le lien qui les unit, décrit les travaux menés vis-à-vis du logiciel.
• Dans le chapitre 1, nous ferons un état des lieux et de l'art en présentant l'état des codes de
simulation présents au CPC, ainsi que les diérentes approches connues comme solutions au
problème posé
• Dans le chapitre 2, nous présentons la démarche scientique utilisée pour le projet. Nous
abordons dans ce chapitre la conception du projet, présentons et justions les choix de
modèles et méthodes formelles, ainsi que les diérentes étapes de réalisation.
• Le chapitre 3 décrit les diérents détails de la mise en ÷uvre de notre solution, ainsi que
quelques résultats obtenus.
• Dans le chapitre 4, nous présentons l'intégration de la solution dans le cadre des exigences
du CPC, ainsi que des principales fonctionnalités prévues.
• Avant de conclure notre travail, nous faisons une analyse des résultats et justions la fais-
abilité économique du projet au chapitre 5. Nous présentons également dans ce chapitre les
gains apportés à l'entreprise ainsi que les limites de la solution.
• En conclusion générale nous ferons un bilan exhaustif du travail, avant de proposer quelques
perspectives.
Les deux types courants d'interfaces utilisateurs pouvant être utilisées pour un logiciel sont
les interfaces en ligne de commande ou Command Line Interface(CLI) et les interfaces graphiques
utilisateur ou Graphical User Interface( GUI). Les CLI se composent d'une console textuelle dans
laquelle on tape des commandes pour eectuer des traitements. Une interface graphique permet
l'interaction avec les environnements de bureau, par le biais des fonctionnalités oertes par la
souris. Ainsi, il sut de faire des clics pour faire les mêmes traitements qui nécessitaient de taper
des commandes.
Nous présentons une brève dénition de l'épidémiologie et des concepts associés. Nous présen-
tons ensuite le logiciel R, les codes R de simulation d'épidémies développés par le CPC, ainsi que
les approches utilisées et les approches utilisables pour la conception de logiciels avec interfaces
graphiques sous R.
4
Interface graphique d'une plateforme de simulation-évaluation dans le domaine de la surveillance
pour l'alerte précoce
1.1 L'Epidémiologie et La simulation d'épidémies
1.1.1 Dénition
L'épidémiologie est une discipline scientique dont l'objet est l'étude de la distribution des
problèmes de santé dans une population et le rôle des facteurs qui la déterminent([3]). L'épidémi-
ologie étudie des groupes de personnes et non des individus. L'analyse porte sur les tout type
d'individus( en bonne santé ou frappés par une maladie). L'épidémiologie permet de recueillir,
interpréter, utiliser l'information sur les problèmes de santé. Les objectifs de l'épidémiologie sont
la promotion de la santé et la réduction des problèmes de santé. L'épidémiologie peut servir à la
description de l'état de santé (épidémiologie descriptive), à l'explication de l'état de santé (épidémi-
ologie analytique), ou à l'évaluation des actions de soins (épidémiologie évaluative).
1.2 Le logiciel R
3. Il s'agit d'un site où l'on peut trouver et télécharger du matériel concernant le logiciel de statistiques
La particularité d'un logiciel tel que R est que l'on peut créer nos propres commandes en
faisant de la programmation, en écrivant des fonctions qui seront alors appelées depuis l'invite
de commandes R. Cependant, il est possible de programmer des interfaces graphiques dans R
(bien que ce soit moins évident que dans des langages comme C ou JAVA) qui permettront par
exemple à un utilisateur de faire appel à nos commandes de façon beacoup plus conviviale et facile.
De nombreux packages ont à cet eet été développés sous R pour permettre le développement
d'interfaces graphiques ([9]).
terfaces graphiques
Fonctionnalités de Gtk+
• La bibliothèque Gtk+ permet de créer des objets appelés widgets, pouvant être entre autres :
des boutons, des barres de progressions, des zones d'achage et des zones de texte
• Ces objets peuvent être incorporés dans une fenêtre, ou une boite de dialogue (qui sont elles
aussi des widgets)
• Pour assurer l'interaction avec l'utilisateur, GTK est dirigé par des événements : ce qui signie
que l'objet restera inactif jusqu'à ce qu'un événement survienne. Il sera alors transformé
en signal par le widget qui a été pressé.
1.4.2 La bibliothèque Qt
Présentation de la bibliotheque Qt
Qt est une bibliothèque de développement d'applications graphiques multi-plateforme, perme-
ttant de compiler et exécuter des applications sur Windows, Mac OS X, Linux, et les diérentes
marques de Unix. Qt, aujourd'hui rachetée par Nokia, a été développée à l'origine par la société
Trolltech[11] pour faciliter la programmation en C++ d'applications graphiques. Aujourd'hui, Qt
peut être utilisée dans de nombreux langages de programmations et plateformes, comme Java,
Python, Ruby, PHP, R, .Net... Une grande partie de Qt est consacrée à fournir une interface de
la plate-forme permettant de presque tout faire, en allant de la représentation des caractères en
mémoire à la création d' applications graphiques multithread. Elle est principalement connue dans
le monde Linux pour être à la base de l'environnement graphique KDE. La bibliothèque Qt est
Fonctionnalités de Qt
• La bibliothèque Qt permet aussi de créer des widgets.
• Les fonctionnalités de Qt permettant l'interaction avec l'utilisateur reposent sur les notions
de signal et slot.
• Un signal est une méthode qui est émise et non exécutée lorsqu'elle est appelée.
• Le programmeur, déclare les prototypes de signaux qui pourraient être émis.
• Un slot est une fonction membre qui peut être invoquée à la suite de l'émission du signal.
Fonctionnalités
L'extension Tk fournit des outils pour la programmation graphique, y compris les toiles de
dessin, boutons, menus, etc. L'extension Tk est considérée comme faisant partie de la base de Tcl
et est incluse dans les distributions de code source sur SourceForge, et dans les distributions biaires
aussi. Les bibliothèques Tcl et Tk peuvent être intégrées dans une application compilée en C, Java
ou Fortran et peuvent être utilisées dans des langages interprétés, comme R. La syntaxe simple de
Tcl fait usage unique de scripts rapides et faciles à écrire.
Bien que pas aussi modernes que GTK + ou Qt, ces bibliothèques sont préinstallées en binaire
Windows, contournant ainsi les problèmes d'installation pour l'utilisateur nal. Les liaisons de R
à Tk ont été les premières à apparaître, et on conduit à de nombreux packages développés pour
R, parmi lesquels on peut citer Rcmdr, Sim.DiProcGUI, et bien d'autres. Son utilisation s'est
6. X11 est une fonctionnalité et une technologie de rendu graphique utilisée par le logiciel R
7. Une session R correspond à une exécution du logiciel. Dans une telle session, on dispose des informations
et de l'historique des commandes, des données en mémoire depuis le lancement de la session, et il est possible de
sauvegarder une session à la n de son travail avant de fermer le logiciel
Dans ce chapitre nous pésentons l'analyse et la conception de notre solution.Nous allons dans
un premier temps présenter le processus logiciel adopté. Il s'en suivra la présentation des besoins
fonctionnels et non fonctionnels ainsi que les contraintes techniques. Enn, nous allons présenter
la conception du logiciel ainsi que la manière avec laquelle il intègre ses diérents modules.
La création de notre logiciel passe par la mise en ÷uvre d'un ensemble d'activités qui permettent
la conception, l'écriture et la mise au point du logiciel en question (son implémentation par des
programmes informatiques). Ces activités ont été formalisées sour forme d'un processus logiciel.
Un processus logiciel est un ensemble structuré d'activités et leurs résultats menant à la réalisation
ou modication d'un produit logiciel. Le but d'un processus logiciel est de produire des logiciels
de qualité répondant aux besoins de leurs utilisateurs dans des temps et des coûts prévisibles.
Vu la complexité du système à développer, les spécications non fonctionnelles assez instables, la
taille de l'équipe de développement qui est réduite à une seule personne, l'aspect fonctionnel a été
privilégié. En eet, la mise en pratique des principes de la méthode agile XP ([12])a été choisie
comme modèle de Processus.
Nous présentons dans cette section l'ensemble des charges fonctionnelles et non fonctionnelles du
système à mettre en place, et les contraintes liées à la technologie. Nous formalisons enusite l'analyse
du problème à l'aide d'UML (Unied Modeling Language). UML est un langage de modélisation
graphique à base de pictogrammes. Il est apparu dans le monde du génie logiciel, dans le cadre de
la conception orientée objet[13]. La modélisation UML consiste en la conception de diagrammes
décrivant chacun soit l'analyse soit conception du logiciel ou d'un module du logiciel. Parmi ceux-
14
Interface graphique d'une plateforme de simulation-évaluation dans le domaine de la surveillance
pour l'alerte précoce
ci, on peut citer entre autre les diagrammes de cas d'utilisation, les diagrammes de séquences
systèmes, les diagrammes de séquence de conception (ou simplement diagrammes de séquence),
les diagrammes d'état de navigation, les diagrammes d'activité de navigation, les diagrammes de
communication, les diagrammes de classes participantes, les diagrammes de classes de conception,
les diagrammes de packetages...
2.3 Conception
Evaluer la simulation
Ici, il s'agit du cas d'utilisation permettant à l'utilisateur qui a besoin pour une quelconque
raison de saisir du code R. Il peut le faire directement sur le logiciel, soit en mode console directe,
soit dans un mini editeur purement basique développé sur l'interface de notre logiciel.
Imprimer
Nous permettons ici de faciliter la prise en main du logiciel à l'aide d'une documentation, et
de quelques exemples. Sont également prévues des démos.
Nouveau
2. La logique métier correspond aux fonctions de traitement des données, sans se préoccuper ni de la provenance
des données, ni de la destination des résultats. Il est juste question de produire des données en entrée, traitements,
et données en sorties
3.1.1 Programmation S4
La structure du langage R, qui est de manière à faciliter la tache à l'utilisateur (qui n'est à
priori pas un informaticien), n'intègre pas vraiment la philosophie orientée objet. C'est un langage
procédural dont la syntaxe est assez simple. Toutefois, il intègre un concept orienté objet (qui n'est
pas aussi developpé comme dans les langages tels que Java, C++). Il s'agit de la programmation
S4. S4 est la quatrième version de S. Et en plus la notion d'objet en S4 n'est pas vraiment précise.
L'encapsulation n'est pas vraiment assurée dans la mesure où toute méthode déclarée doit d'abord
être dénie de façon générique 1 (il s'agit d'une dénition globale, visible par tous les objets de la
session de travail), et les méthodes sous R sont comme les fonctions. Or il est impossible de passer
des variables par référence, ni par adresse à une fonction à R (ce qui fait qu'une fonction R ne
peut modier aucune variable ne lui étant pas locale 2 ). Ainsi, les setters 3 ne sont vraiment pas
capables de faire leur travail (qui est de modier des valeurs). Ceci est d'autant plus restreint si
l'on tient compte du fait qu'il n'existe pas non plus la notion de pointeurs sous R. Ainsi, l'objet
devient pratiquement inutilisable. En fait il faudrait que toutes les variables de tout le logiciel
soient globales, et que chaque fois que l'on veuille en modier une, qu'on le fasse par aectation,
en faisant par exemple "var1 <- updateMethod(var1) ;".
34
Interface graphique d'une plateforme de simulation-évaluation dans le domaine de la surveillance
pour l'alerte précoce
3.1.2 Les environnements R
Heureusement, il existe une fonctionnalité de R(que beaucoup d'utilisateurs de R négligent 4 )
qui nous a permis de résoudre le problème. Il s'agit des environnements. Toutefois, les environ-
nements sont assez délicats, et demandent d'être minutieux dans la manipulation. Ces derniers
sont beaucoup plus ecaces et complexes que les pointeurs dans un contexte d'encapsulation, et
aussi lorsque l'on veut développer des méthodes pour modier des objets. Un environnement, c'est
comme une abstraction d'une mémoire 5 . Ainsi, chaque objet, variable, fonction, methode déclarée
sous R appartient à un environnement donné, un environnement pouvant lui même être un objet
d'un autre environnement. L'environnement le plus grand, c'est le global Environment (environ-
nement par défaut), dont le père est emptyenv. Ainsi, pour assurer non seuleument l'encapsulation,
mais aussi aux setters de pouvoir faire leur travail, nous créons un environnement pour chaque
objet instance d'une classe, et tous les attributs de cet objet sont traités dans cet environnement.
3.1.3 Programmation S3
Le mécanisme orienté objet S4 étant encore jeune (et donc pas aussi expérimenté que les mé-
canismes objets des langages comme Java, C#, C++), il est très complexe à mettre en oeuvre
et parfois moins ecace (par exemple lorsque l'on veut écrire une fonction capable d'agir sur des
objets natifs de R). De plus, Il est assez dicile de gagner aussi bien en largeur qu'en hauteur de
la même façon : en eet, le fait que la syntaxe de R soit de manière à ne pas être très restric-
tive, et qu'en plus c'est un langage faiblement typé à la base procédural, et interprété, fait que
certaines fonctionnalités pour être implémentées, devraient sour de ne pas bénécier des possi-
bilités oertes par la programmation orientée objet, et être écrites de façon procédurale, ce qui est
assuré par la programmation S3. Ainsi les codes développés au CPC (qui étaient naturellement en
programmation S3) ont été laissés en programmation S3, ainsi que les modications apportées.
4.2 Suivi
Une première démo a été faite, et les bugs ont été relevés et corrigés. Les résultats obtenus
suite à la coreecition de ces bugs sont présentés au chapitre suivant. Actuellement, le module de
gestion de données sur un serveur MySQL distant nécessite d'avoir le prototype de la BD, ce
qui sera bientôt le cas, et celà permettra d'achever ce module. Concernant le module d'aide, il
est en pleine conception, et comprendra notamment des démos intégrées au logiciel, permettant
de prendre en main facilement l'utilisation du logiciel. Le module de gestion de données et édi-
tion est presque achevé. Le tableau suivant présente l'état des diérentes taches constituant les
spécications logicielles
39
Interface graphique d'une plateforme de simulation-évaluation dans le domaine de la surveillance
pour l'alerte précoce
Tache Etat
Import export EDF Achevée
Graphiques EDF Achevée
Transformation EDF(simulation jours) Achevée
Simulation d'épidémies Achevée
Evaluation de la simulation d'une épidémie Achevée
Graphiqes de la simulation Achevée
Graphiqes de l'Evaluation En cours
Simulation multiple Achevée
Diagnostique de convergence Achevée
Module Gestion Projet Achevée
Edition console, Impression, entrées-sorties Achevée
Module Edition En cours
Module Interaction Serveur MySQL distant En cours
Module Aide En cours
Table 4.1 Tableau de l'Etat d'éxecution des diérentes taches relatives au logiciel.
L'implémentation du prototype de notre application ayant été faite, ainsi que son application
dans le contexte des préoccupations exprimées par le CPC, nous présentons dans le présent chapitre,
une analyse des résultats obtenus, ainsi que les détails concernant la productivité et la faisabilité
économique du projet. Nous allons pour celà montrer le donner que nous gagnons par l'application
des diérentes méthodes proposées, ensuite nous ferons une analyse économique du déploiement
de la solution et nous allons terminer par un bilan. Il faut noter que le logiciel dans son état actuel
est achevé à 80% et sera complètement achevé à la n du stage, et actuellement les programmes
nouvellement écrits font un total de plus de 10 000 (dix-milles) lignes de code.
41
Interface graphique d'une plateforme de simulation-évaluation dans le domaine de la surveillance
pour l'alerte précoce
A la n de la simulation, les résultats sont achés dans l'onglet approprié de la zone de travail,
et l'utilisateur peut décider de représenter graphiquement les résultats de la simulation. Dans ce
cas, le graphe est tracé par la méthode appropriée, et ce dans la surface destinée au tracé de
graphiques.
Figure 5.11 Résultats de simulation, dans le cas d'une simulation multiple : Les résultats sont
achés dans une autre fenêtre, pour éviter un encombrement de l'IHM
3. Les tableaux de données sous R sont représentés par le type de données "data.frame"
Lors de l'évaluation, Un tableau de donnée (objet de type data.frame) est créé, renseignant sur
les diérentes valeurs de chaque métrique d'évaluation calculée, pour chaque n-uplet de paramètres
de simulation. Le dataframe en question est aché dans un objet de type RGtkDataFrame 4
4. Il s'agit d'un objet particulier relatif au package RGtk2, faisant le lien entre la représentation structurelle des
data.frame de R, et la representation par widget des TreeModel de la bibliothèque Gtk+
Nous avons présenté les diérents composants de notre logiciel en attente aux objectifs précisés
en début du document. Celà nous permet nettement de ressortir les améliorations par rapport aux
algortihmes de simulation-évaluation en ligne de commande.
• Ainsi, l'utilisateur n'aura plus à taper des commandes, (donc de se rassurer de la syntaxe
de celles-ci) pour faire ses simulations et diagnostiques. Il lui sura à chaque fois de faire
de simples clics et de saisir juste les paramètres nécessaires à une simulation dans une boite
de dialogue assez conviviale, puis attendre que tout se passe. La mise en place d'une telle
fonctionnalité est d'autant plus importante si l'on tient compte du fait que lorque l'on tra-
vaille sur des simulations, on se repète très souvent. Car un résultat pourrait ne pas nous
convaincre, et on pourrait vouloir réessayer avec les mêmes paramètres (la simulation se base
sur des distributions empiriques, donc les résultats d'une simulation ne sont pas des fonctions
déterministes 5 ). Surtout qu'à chaque fois que l'on fait une simulation, on peut l'évaluer, la
grapher.
• Les diérentes données, les résultats de simulations, les graphiques sont désormais dans une
même fenêtre (la fenêtre du logiciel), l'utilisateur ayant juste à cliquer sur l'onglet correspon-
dant pour visualiser ce qui l'intéresse. Contrairement à l'ancienne méthode où les résultats
s'achaient dans une console 6 , et ce quelque soit la nature des données (hormis les graphes),
5. Une fonction déterministe est une fonction qui, pour des paramètres donnés, donnera toujours le même résultat,
contrairement à une fonction probabiliste, dont le résultat dépend, en plus des données, d'un phénomène aléatoire
6. les consoles en informatiques sont réputées pour ne pas être conseillées comme IHM
5.3 Bilan
L'objectif de ce travail était de proposer un logiciel permettant une interaction plus aisée avec
un utilisateur lors de la simulation des épidémies en se basant sur les algorithmes en ligne de
commande développés au CPC, et ce de façon transparente 7 et conviviale pour l'utilisateur, sans
qu'il ne doive travailler avec une console. Nous avons ainsi démontré que notre solution est plus
interactive et plus bénéque : gain en temps, gain dans la gestion, etc. Nous avons en eet fournis
des modules fonctionnels (interface d'import-export de données, de graphiques, de simulations, de
gestion de projet...). Sous forme de package R, le logiciel pourra être installé depuis le site ociel
des packages de R, par tout utilisateur du logiciel R. Ainsi, il sera faire des simulations d'épidémies
7. de façon à ce que l'utilisateur puisse utiliser le logiciel sans avoir besoin de connaître le mécanisme mis en
place pour son fonctionnement, et ne soit pas obligé de retenir un ensemble de commandes
Il était question pour nous de proposer un package permettant d'eectuer plus aisément les
simulations d'épidémies. Pour y parvenir, nous avons fait un état des lieux, et un état de l'art des
possibilités de développement d'interfaces graphiques pour R. Ainsi, notre solution est basée sur le
logiciel de statistiques R (puisque les codes qui devaient être utilisés ont été developpés sous ce le
logiciel). Notre choix après établissement d'un comparatif s'est basé sur la bibliothèque Gtk+ et le
package RGtk2 assurant le lien entre le logiciel R et cette bibliothèque. Actuellement le projet est
à 80% de son avancement, et sera achevé à la n du stage, qui est prévue pour le 27 juillet 2014.
L'une des principales limites de la solution, est que le client informatique utilisé est lourd. En
eet, si l'on tient compte du fait que faire des simulations complexes et repetées demande en général
beaucoup de ressources, une simple machine de bureau pourrait ne pas être ecace. Ainsi, comme
perspective, on pourrait penser à un serveur de simulation qui eectue tous les calculs nécessaires,
et envoie les résultats par réseau à un client qui est en fait l'ensemble des interfaces. Une telle
architecture pourrait aussi prévoir un serveur de Base de données dédié. Une autre perspective
du projet est que le package puisse être publié et laissé libre sur le site ociel du logiciel R. Une
perspective serait aussi de pouvoir améliorer le nombre d'algorithmes de simulation possible pour
le logiciel, et de donner la possibilité à un utilisateur d'intégrer au logiciel son propre algorithme
de simulation écrit dans la syntaxe de R.
53
Annexe A
Ce chapitre ne se prétend pas un cours complet sur les Chaînes de Markov ; il se contente
de résumer un certain nombre de dénitions, élémentaires ou non, de la théorie des Chaînes de
Markov.
A.1.1 Dénition
Noyau de transition
Soit S un ensemble ni ou dénombrable. On appelle noyau de transition sur S, toute application
p : S × S → R+ telle que, pour tout x ∈ S, p(x, ·) est une loi de probabilité sur S. On note de
façon commode p(·, ·) pour matérialiser le fait que l'application est à 2 variables.
De façon pratique, étant donné un système (physique par exemple) capable d'occuper des états
d'un ensemble d'états donné S, p(x, y) pourx, y ∈ S peut être interprété comme la probabilité de
se retrouver à l'état y sachant qu'on vient de l'état x.
Dans la suite, nous noterons xm:n pour désigner la suite (xm , xm+1 , ...xn ), et xm:∞ pour désigner la
suite (xm , xm+1 , ...).
Chaîne de Markov
Etant donné un ensemble ni ou dénombrable S, une suite de variables aléatoires (Xn )(n≥0) dénie
sur un espace probabilisé (Ω, F, P ) et à valeurs dans S est appelée chaîne de Markov d'es-
pace d'états S lorsqu'il existe une famille de noyaux de transitions (pn (·, ·))(n≥0) et une loi de
54
Interface graphique d'une plateforme de simulation-évaluation dans le domaine de la surveillance
pour l'alerte précoce
probabilité ν sur S tels que : pour tout n ≥ 0, et toute suitex0:n d'éléments de S ,
n−1
(A.1)
Y
P (X0:n = x0:n ) = ν(x0 ) pi (xi , xi+1 )
i=0
On dit alors que (Xn )(n≥0) est une chaîne de Markov de loi initiale ν et de famille de
noyaux de transitions (pn (·, ·))(n≥0) .
Propriété On montre que si la propriété (A.1) est vériée pour un entier donné n ≥ 1, alors
elle est automatiquement vériée pour tout entier m ≤ n.
Ceci nous permet de déduire une propriété fondamentale, appelée propriété de Markov.
On énonce souvent cette propriété de manière informelle en disant que, pour une chaîne de
Markov(où l'indice m est interprété comme un temps), les états futurs de la chaîne ne dépendent
de ses états passés que par l'intermédiaire de l'état présent. On parle aussi souvent d' abscence
de mémoire La preuve résulte de (A.1) par un calcul immédiat conduisant à l'identité suivante :
n−1
(A.2)
Y
P (Xm+1:n = xm+1:n |X0:m = x0:m ) = pi (xi , xi+1 )
i=m
On note que l'expression ci-dessus n'est autre que la probabilité pour que les n−m premiers pas
d'une chaîne de Markov de loi initiale δxm et de famille de noyaux de transitions (pm+K )k≥0 soient
donnés par xm+1 , ...xn . Dit de manière informelle : Sachant toutes les valeurs passées jusqu'au
temps n (y compris la valeur de Xn ),la chaîne se comporte à partir du temps n comme une nouvelle
chaîne de Markov, issue de Xn .
On déduit de ce qui précède le lien suivant entre la loi ν et les noyaux de transition pi (·, ·) inter-
venant dans la défnition (A.1) :
ν = loi de X0 (A.3)
Inversement, si une suite de variables aléatoires (Xn )n≥0 vérie la propriété de Markov, on
montre que, en dénissant ν et pn (·, ·) par les identités A.3 et A.4 précédentes, et en dénissant
arbitrairement pn (·, ·) lorsque P (Xn = x) = 0 (étant donné que, bien entendu, aucune contrainte
n'est imposée sur la valeur de pn (x, ·) dans ce cas), la dénition d'une chaîne de Markov est satis-
faite. Autrement dit :
La propriété de Markov caractérise les chaînes de Markov.
Une manière plus sophistiquée, mais aussi équivalente, d'énoncer la propriété de Markov, con-
siste à faire appel à la notion de tribu et de probabilité conditionnelle à une tribu. Etant donnée
une variable aléatoire Z dénie sur (Ω, F), on notera σ(Z) la sous-σ−algèbre de F engendrée par Z .
Plus particulièrement, pour tout n ≥ 0, nous utiliserons la notation Fn := σ(X0:n ) = σ(X0 , ..., Xn ).
On peut alors reformuler la propriété de Markov de la manière suivante :
Proposition 2 : Etant donné une chaîne de Markov (Xn )n≥0 sur un ensemble ni ou dénom-
brable S, dénie sur un espace probabilisé (Ω, F, P ), pour tous m ≥ 0 et n ≥ m + 1, et toute suite
xm+1 , ...xn d'éléments de S , l'égalité suivante a lieu P − presquesurement
Dans certains exemples, on peut être amené à étudier la validité de la propriété énoncée dans la
proposition précédente en remplaçant la ltration 1 (Fn ))n≥0 par une plus grosse. Plus précisément,
supposons donnée une famille de sous-σ−algèbres (Gm ))m≥0 telle que, pour tous n ≥ m, Gm ⊂ Gn
et vériant Fm ⊂ Gm pour tout m ≥ 0. On dit que (Xn )n≥0 vérie la propriété de Markov par
rapport à (Gm ))m≥0 si la propriété énoncée dans la proposition précédente est valable lorsque l'on
remplace Fn par Gn .
Lorsque les noyaux de transition associés aux diérents pas de la chaîne sont identiques, c'est-
à-dire qu'il existe un noyau p tel que pn = p pour tout n, on dit que l'on a aaire à une chaîne
de Markov homogène (ou parfois, mais cette terminologie n'est pas très heureuse, de chaîne de
Markov à probabilités de transition stationnaires). Dans le cas contraire, on parle de chaîne de
Markov inhomogène. Ici, nous considérerons principalement des chaînes de Markov homogènes,
et cette propriété d'homogénéité sera sous-entendue la plupart du temps.
Les dénitions et propriétés du paragraphe précédent ne faisaient intervenir que des tronçons
de longueur nie de la trajectoire innie formée par la suite (Xn )n≥0 . Il est intéressant de pouvoir
étudier en tant que telle cette trajectoire aléatoire.
Proposition 3
Etant donné une chaîne de Markov (Xn )(n≥0) sur un ensemble ni ou dénombrable S , dénie sur
un espace probabilisé (Ω, F, P ), pour tout m ≥ 0, et tout x0:m tel que P (X0:m = x0:m ) > 0, et tout
A ∈ H⊕N
P (Xm+1:∞ ∈ A|X0:m = x0:m ) = P (Xm+1:∞ ∈ A|Xm = xm )
Ainsi, par extension de l'équation (A.1) à des trajectoires innies, on peut caractériser la loi d'une
chaîne de Markov en tant que probabilité sur (S N , H⊕N ). On part d'une loi de probabilité ν sur
S , et d'une famille de noyaux de transitions p = (pk (·, ·))k≥0 sur S . En vertu, par exemple, du
n−1
Y
{n+1,··· }
Pν,p ({x0 } × · · · × {xn } × S ) = ν(x0 ) pi (xi , xi+1 )
i=0
Proposition 4
Etant donné un ensemble ni ou dénombrable S, une suite de variables aléatoires (Xn )(n≥0) dénie
sur un espace probabilisé (Ω, F, P ), (Xn )(n≥0) est une chaîne de Markov de loi initiale ν et de
famille de noyaux de transitions p = (pn (·, ·))(n≥0) si et seulement si la loi de x0:n vue comme
variable aléatoire dénie sur (Ω, F, P ), (Xn )(n≥0) et à valeurs dans (S N , H⊕N ), est égale à Pν,p . En
d'autres termes, si pour tout A ∈ H⊕N ,
. La proposition ci-dessus illustre le fait que la propriété d'une famille de variables aléatoires
(Xn )(n≥0) d'être une chaîne de Markov (par rapport à sa ltration naturelle) ne dépend que de la
loi de probabilité de cette suite de variables aléatoires. Ex,p désigne l'espérance relative à Pν,p . Dans
le cas homogène, on peut noter plus simplement Pν,p au lieu de Pν,p , et même, encore, simplement
Pν (ceci lorsque, bien entendu, aucune confusion ne peut être faite sur les transitions). Il est parfois
très utile, pour étudier les propriétés de la trajectoire (Xn )(n≥0) , de se ramener à l'espace-image
des trajectoires (S N , H⊕N , Pν,p ) que l'on appelle parfois l'espace canonique associé à la chaîne de
Markov. Dans le cas où ν est la mesure de Dirac ν = δx , la notation Px,p est préférée à Pδx ,p (et
donc Px,p ou Px dans le cas homogène). De même, pour l'espérance, Ex,p (et Ex,p ou Ex dans le cas
homogène). Notons que la probabilité Pν,p peut s'écrire comme un mélange de telles probabilités
associées à des lois initiales concentrées en un point :
X
Pν,p = ν(x)Px,p
x∈S
On vérie que, sur l'espace probabilisé (S N , H⊕N , Pν,p ), la suite de variables aléatoires (Xn )n≥0 , à
valeurs dans S , est bien une chaîne de Markov de loi initiale ν et de famille de noyaux de transitions
p = (pk )k≥0 , ce qui prouve en particulier pour toute loi ν , et toute famille de noyaux de transition
p, il existe une chaîne de Markov qui leur est associée. La propriété de Markov peut se ré-exprimer
Proposition 5
Pour tout m ≥ 0, et tout A ∈ H⊕N ,
Pν,p (Xm:∞ ∈ A|Fm ) = PXm ,θm (p) (X0:∞ ∈ A), Pν,p − p.s (A.5)
−1
Pν,p (θm (A)|Fm ) = PXm ,θm (p) (A), Pν,p − p.s
La propriété énoncée dans la proposition est appelée propriété de Markov forte, par opposition
à la propriété discutée jusqu'à présent, que l'on peut rebaptiser propriété de Markov simple.
Sachant toutes les valeurs passées jusqu'au temps T (et en particulier la valeur de XT ), la chaîne
se comporte à partir du temps T comme une nouvelle chaîne de Markov, issue de XT . On voit
bien que, du fait que T est supposé être un temps d'arrêt, l'événement {T = m} s'exprime en
terme de variables X0 , · · · Xm et que (A.6) est donc une conséquence de la propriété de Markov
S désigne un ensemble ni ou dénombrable. Sont présentées diverses opérations associant noy-
aux, fonctions, et mesures sur S . Tout d'abord, étant donnés deux noyaux de transition p et q sur
S , on dénit le produit pq par la formule : pour tout x, y ∈ S
X
(pq)(x, y) := p(x, z)q(z, y),
z∈S
et l'on vérie que l'on a ainsi déni un nouveau noyau de transition sur S .A présent, étant donnée
une mesure positive ν sur S, et un noyau de transition p sur S , le produit νp est déni par la
formule : pour tout x ∈ S
X
(νp)(x) := ν(y)p(y, x),
y∈S
avec la convention 0 × +∞ = 0, et l'on vérie que l'on a ainsi déni une nouvelle mesure positive
sur S , possédant la même masse que ν : (νp)(S) = ν(S). Pour une fonction positive (à valeurs
dans [0; +∞]) f dans S , et un noyau de transition p sur S , on dénit également le produit pf par
la formule
X
(pf )(x) := f (y)p(x, y),
y∈S
avec la convention 0 × +∞ = 0.On vérie que l'on a ainsi déni une nouvelle fonction positive sur
S , et l'on note que supx∈S (pf )(x) ≤ supx∈S f (x). Enn, étant donnée une mesure positive ν sur S
et une fonction positive f , nous noterons
X
νf := f (x)ν(x).
x∈S
Les dénitions ci-dessus s'étendent naturellement au cas d'une mesure signée ν = ν+ − ν− et d'une
fonction à valeurs réelles f = f+ − f−
Proposition 8 :L'action d'un noyau de transition à droite (sur les fonctions) dénit un opérateur
S = Siness. ∪ Sess.
Proposition 9 :Si x est un point essentiel et y un point inessentiel (par rapport à p(·, ·)), alors
pm (x, y) = 0 pour tout m. En d'autres termes, l'ensemble des points essentiels est stable par p(·, ·) :
si x ∈ Sess , p(x, Sess ) = 1
Proposition 10 :La relation de communication entre points dénit une relation d'équivalence
sur S .
Proposition 11 :Si C est une classe d'équivalence pour la communication incluse dans Sess , C
est stable par p(·, ·) : si x ∈ C, p(x, C) = 1.
On dit que p(·, ·) est irréductible si x communique avec y pour tous x, y dans S . D'après les
propositions précédentes, la restriction de p(·, ·) à une classe de communication de Sess est irré-
ductible. Quitte à enlever de S les points inessentiels par rapport au noyau de transition considéré
(qui ne sont visités qu'un nombre ni de fois sur toute la durée d'une trajectoire), et à étudier
séparément les chaînes obtenues par restriction sur chaque classe de Sess , (rappelons que celles-ci
sont stables), on peut donc se ramener à étudier des noyaux de transition irréductibles. Ceci ne
signie pas pour autant que le comportement de la chaîne à partir de points inessentiels soit inin-
téressant !
Remarque :On constate que, si une chaîne de Markov possède un noyau de transition irréductible,
tous les points de S ont une probabilité positive d'être visités, quelle que soit la loi initiale, et, par
conséquent, ce noyau est le seul compatible avec cette chaîne. On peut donc parler d'une chaîne
de Markov irréductible sur un ensemble S . Attention cependant, la notion d'irréductibilité dépend
de l'ensemble S dans lequel on considère que la chaîne prend ses valeurs : une chaîne, vue comme
famille de variables aléatoires dans un ensemble S1 pourra se révéler irréductible sur S1 , mais pas
sur un ensemble S2 contenant S1 . Notons aussi que la dénition de l'irréductibilité entraîne le fait
que, pour tout x ∈ S , il existe m ≥ 1 tel que pm (x, x) > 0
A.4.3 Périodicité
On dénit la période (par rapport à p(·, ·)) d'un point x par
Remarque :Une condition susante très simple pour avoir apériodicité dans le cas d'une chaîne
irréductible est qu'il existe au moins un point x tel que p(x, x) > 0
Dénition
On dit que x ∈ S est récurrent (pour p(·, ·)) si Px (T1 (x) < +∞) = 1. Si Px (T1 (x) < +∞) < 1, x
est dit transient.
Proposition 14 :Si x est récurrent, Px (Ti (x) < +∞) = 1 pour tout i, autrement dit, x est
visité une innité de fois, ou encore Px (N (x) = +∞) = 1
Proposition 15 :Si x est transient, Px (N (x) < +∞) = 1 et Ex (N (x)) < +∞. On a même
que la loi de N (x) sous Px est exactement une loi géométrique de paramètre Px (T1 (x) = +∞) > 0
Les notes qui vont suivre sont basées autour de l'idée suivante : Tout algorithme itératif
utilisant le hasard simule une chaîne de Markov . Lorsqu'on décrit un algorithme stochas-
tique basé sur une chaîne de Markov, on parle d'un algorithme markovien. On désigne par le nom
générique de méthodes de Monte-Carlo par chaînes de Markov (ou Markov Chain Monte Carlo,
souvent abrégé en MCMC, en anglais les méthodes consistant à simuler une loi de probabilité ν
à partir d'une chaîne de Markov ergodique de loi invariante ν . Le principe de base de la méthode
est le suivant : en simulant n pas de la chaîne, avec n susamment grand, on s'attend à ce que
Xn fournisse une variable aléatoire approximativement distribuée selon la loi ν . Alternativement,
la loi des grands nombres entraîne que n−1 Sn (f ) fournit une approximation de ν(f )
Une question qui se pose dans le contexte des méthodes MCMC est celle de la précision de
l'approximation de ν . Pour un n donné, quelle est la qualité des approximations obtenues ? Pour
une précision donnée, comment doit-on choisir n ? Divers types d'approches peuvent être envisagés :
• une approche théorique, consistant à établir mathématiquement des bornes sur la qualité
de l'approximation obtenue, c'est-à-dire sur la rapidité de la convergence de la chaîne vers
l'équilibre. Cette approche peut être menée à bien dans plusieurs situations intéressantes, et
nous en verrons quelques exemples dans la partie Analyse quantitative de la convergence .
Il faut cependant mentionner que, dans de nombreux exemples intéressants, il est très dicile,
voire impossible, d'obtenir des bornes exploitables en pratique. Les problèmes mathématiques
correspondants se révèlent trop diciles !
• une approche exploitant des critères empiriques, testés au fur et à mesure de la simulation,
et censés permettre de diagnostiquer le fait que la chaîne est proche de l'équilibre. Le plus
souvent, ces critères sont basés sur un mélange de résultats mathématiques (par exemple des
résultats asymptotiques) et d'hypothèses plus ou moins bien justiées empiriquement, mais
que l'on ne sait pas prouver dans le contexte envisagé. Les critères de ce type sont en général
condamnés à être mis en défaut dans certaines situations pathologiques pour lesquelles
ces hypothèses ne sont pas vériées, fournissant alors des résultats incorrects.
• l'approche dite de simulation exacte , ou parfaite , dans laquelle on cherche, en ranant
la méthode de simulation employée, à obtenir des variables aléatoires distribuées exactement
selon la loi ν . Ces approches ne sont praticables que lorsque certaines hypothèses supplé-
mentaires (par exemple, mais pas exclusivement, des propriétés de monotonie) sont vériées.
Nous verrons deux exemples de cette approche : la méthode de Propp-Wilson et l'algorithme
de Fill.
Dans ce qui suit, nous donnons deux exemples classiques de chaînes de Markov se prêtant à une
utilisation dans le contexte des méthodes MCMC. Ces deux méthodes peuvent être mises en oeuvre
sous des hypothèses très générales, ce qui ne signie pas qu'elles soient toujours performantes ou
qu'elles constituent un standard absolu dans le domaine. On notera qu'elles ont pour particularité
de conduire à des chaînes de Markov réversibles.
Algorithme de Métropolis
On suppose donnée une mesure de probabilité ν sur un ensemble S vériant ν(x) > 0 pour tout
x ∈ S , et un noyau de transition q irréductible et apériodique sur S et vériant q(x, y) > 0 si et
seulement si q(y, x) > 0. Les transitions de l'algorithme de Metropolis peuvent être décrites de la
manière suivante : partant de x, on génère Y selon la loi q(x, ·). Si ν(Y )q(Y, x) ≥ ν(x)q(x, Y ), on
va en Y à coup sûr. Sinon, on va en Y avec une probabilité de ν(Y )q(Y,x)
ν(x)q(x,Y )
, et l'on reste en x sinon.
On vérie que le noyau obtenu est irréductible et apériodique(les mouvements possibles sont les
mêmes pour l'algorithme de Metropolis et pour q ), et que ν est réversible pour ledit noyau. Le
choix du noyau q ainsi que de la condition initiale est laissé à l'utilisateur de la méthode ; il peut
s'avérer critique pour l'ecacité de l'algorithme obtenu, et diverses préconisations, plus ou moins
fondées sur des considérations théoriques ou empiriques, existent, quant à la manière d'eectuer
celui-ci en fonction de ce que l'on sait de la loi ν .
Echantilloneur de Gibbs
On suppose ici que S est de la forme S = AV , où A et V sont des ensembles fnis, et que l'ensemble
S0 des x ∈ S vériant ν(x) > 0 est connexe pour la relation de voisinage dénie sur S par les
modications d'une seule coordonnée. On appelle S0 cet ensemble, et l'on construit une chaîne de
Markov sur S0 dont les transitions sont dénies de la manière suivante :
Pour x ∈ S0 , v ∈ V et a ∈ A, on note xv,a l'élément de S0 défni par xv,a (w) = x(w) pour tout
w 6= v , et xv,a (v) = a. Les transitions de l'échantillonneur de Gibbs sont dénies ainsi : partant de
x ∈ S0 , on choisit uniformément au hasard un élément v de V , et l'on dénit y par y(w) = xv,a ,
a étant choisi selon la probabilité ν(xv,a )( b∈A ν(xv,b ))−1 , c'est-à-dire la loi sous ν de la v − ieme
P
coordonnée d'un élément de S conditionné à être égal à x en toutes les coordonnées diérentes de
v. On vérie que ce conditionnement est bien déni pour x ∈ S0 , et qu'un élément y qui ne serait
pas dans S0 a une probabilité nulle d'être sélectionné par ce mécanisme de transition, qui laisse
donc S0 stable. On vérie par ailleurs aisément le caractère irréductible et apériodique du noyau
ainsi obtenu sur S0 , ainsi que la réversibilité de ν par rapport à celui-ci.
Dans cette annexe sont présentés quelques apperçus des codes sources de notre logiciel. A l'Etat
d'avancement actuel, le logiciel contient plus de 10 000 lignes de codes, hormis les anciens codes
ayant été modiés. Ces codes sources sont repartis en divers chiers, et diverses classes.
67
Interface graphique d'une plateforme de simulation-évaluation dans le domaine de la surveillance
pour l'alerte précoce
B.2.1 Méthode de connection du signal sur les objets pouvant déclencher la simu-
lation d'épidémies
Notons tout d'abord que se sont ces classes qui nous permettent de gérer le navigateur de
chiers. Etant donné que R est faiblement typé, que les structures de données sur les graphes et
arbres sont inexistantes, et qu'il n'y a pas de package permettant l'utilisation propre des arbres
(Par contre, il y a des packages traitant sur les arbres de décisions, qui sont des outils purement
statistiques, et ne répondent pas à nos besoins) ni des graphes, nous avons écrits des codes R pour
l'implémentation la structure d'arbre. La classe Tree (arbre) contient des attributs, parmi lesquels
des attributs de type la classe Node (noeud). La classe FileBrowser hérite de la classe Tree, et est
spécialisée dans l'arbre de chiers. Sont présentées ici quelques méthodes de ces classes.
1 Leonel SG. Évaluation des méthodes de Monte Carlo pour la simulation des courbes
épidémiques, Mémoire professionnel. Yaoundé : ISSEA ; 2012. 2, 5, 6
2 Jalote P. An Integrated Approach to Software Engineering. 3rd ed. New York : Springer
Science+Business Media ; 2005. 2
3 Valleron AJ. L'Epidémiologie humaine-Conditions de son développement en FRANCE, et
Role des Mathématiques. Avenue du Hoggar, BP 112, Parc d'activités de Courtaboeuf : EDP
Sciences ; 2006. 5
4 B Dufour BT P Hendrikx. Élaboration et mise en place de systèmes de surveillance épidémi-
ologique des maladies à haut risque dans les pays développés. International Oce of Epizootics.
2006 ;25(1) :187198. 5
5 Texier G DXMJ Chaudet H. Surveillance épidémiologique pour l'alerte précoce et systèmes
d'information. Lavoisier ; 2011. 5
6 Jackson ML PIDJ Baer A. A simulation study comparing aberration detection algorithms for
syndromic surveillance. BMC Med Inform Decis Mak ; 2007. 5
7 Everitt BS. An R and S-PLUS Companion to Multivariate Analysis. London : Springer-Verlag ;
2005. 6
8 Chambers JM. Software for Data Analysis :Programming with R. New York : Springer Sci-
ence+Business Media ; 2008. 6
9 Michael F Lawrence JV. Programming Graphical User Interfaces in R. Parkway NW : Taylor
& Francis Group ; 2012. 8
10 Krause A. Foundations of GTK+ Development. Berkeley : Apress ; 2007. 11
11 Jasmin Blanchette MS. C++ GUI Programming with Qt 3. New Jersey : Pearson Education ;
2004. 11
12 Roques P. Les cahiers du programmeur UML2 : Modéliser une application web. 4th ed. Paris :
Éditions Eyrolles ; 2008. 14, 16
13 Bersini H. L'orienté objet : Cours et exercices en UML 2 avec Java 5, C# 2, C++, Python et
PHP 5. 3rd ed. Paris : Éditions Eyrolles ; 2011. 14
73
Interface graphique d'une plateforme de simulation-évaluation dans le domaine de la surveillance
pour l'alerte précoce
14 Giroux M. Développer Très Rapidement des Applications. Rennes : Liberlog ;. 36
15 Williams G. Data Mining With Rattle and R :The Art of Excavating Data for Knowledge
Discovery. New York : Springer Science+Business Media ; 2011.
16 Pennington H. GTK+ / Gnome Application Development. 1st ed. Red Hat Advanced Devel-
opment Labs : New Riders Publishing ; 1999.
17 Duncan Temple Lang ML. RGtk2 : A Graphical User Interface Toolkit for R. Journal of
Statistical Software. 2010 ;37(8) :152.
18 Pierre Lafaye de Micheaux BL Rémy Drouilhet. Le logiciel R :Maîtriser le langage,Eectuer
des analyses statistiques. New York : Springer ; 2011.
19 Brémaud P. Initiation aux probabilités et aux chaînes de Markov. 2nd ed. New York : Springer ;.
6
.