INFORMATIQUE APPLIQUÉE: ITI 4203
MODÉLISATION ET
LA SIMULATION
Jean Marie Dembele
Modélisation et la Simulation
Avant-propos
L’Université Virtuelle Africaine (UVA) est fière de participer à accès à l’éducation dans les pays
africains en produisant du matériel d’apprentissage de qualité. Nous sommes également fiers
de contribuer à la connaissance globale, pour nos ressources éducatives sont principalement
accessibles de l’extérieur du continent africain.
Ce module a été développé dans le cadre d’un programme de diplôme et diplôme en
informatique appliquée, en collaboration avec 18 institutions partenaires dans 16 pays africains.
Un total de 156 modules ont été développés ou traduits pour assurer la disponibilité en
anglais, français et portugais. Ces modules sont également disponibles en tant que ressources
éducatives ouvertes (OER) à oer.avu.org.
Au nom de l’Université Virtuelle Africaine et notre patron, nos institutions partenaires,
la Banque africaine de développement, je vous invite à utiliser ce module dans votre
établissement, pour leur propre éducation, partager aussi largement que possible et participer
activement aux communautés AVU de pratique d’intérêt. Nous nous engageons à être à
l’avant-garde du développement et de partage ouvert de ressources pédagogiques.
L’Université Virtuelle Africaine (UVA) est une organisation intergouvernementale
panafricaine mis en place par lettre recommandée avec un mandat d’augmenter l’accès
à l’enseignement supérieur et de formation de qualité grâce à l’utilisation novatrice des
technologies de communication de l’information. Une charte instituant la UVA Organisation
intergouvernementale, signée à ce jour par dix-neuf (19) Les gouvernements africains - Kenya,
Sénégal, Mauritanie, Mali, Côte d’Ivoire, Tanzanie, Mozambique, République démocratique du
Congo, Bénin, Ghana, République de Guinée, le Burkina Faso, le Niger, le Soudan du Sud, le
Soudan, la Gambie, la Guinée-Bissau, l’Ethiopie et le Cap-Vert.
Les institutions suivantes ont participé au programme informatique appliquée: (1) Université
d’Abomey Calavi au Bénin; (2) University of Ougagadougou au Burkina Faso; (3) Université
Lumière Bujumbura Burundi; (4) Université de Douala au Cameroun; (5) Université de
Nouakchott en Mauritanie; (6) Université Gaston Berger Sénégal; (7) Université des Sciences,
Techniques et Technologies de Bamako au Mali (8) Institut de la gestion et de l’administration
publique du Ghana; (9) Université des sciences et de la technologie Kwame Nkrumah au
Ghana; (10) Université Kenyatta au Kenya; (11) Université Egerton au Kenya; (12) Université
d’Addis-Abeba en Ethiopie (13) Université du Rwanda; (14) University of Salaam en Tanzanie
Dar; (15) Université Abdou Moumouni Niamey Niger; (16) Université Cheikh Anta Diop au
Sénégal; (17) Université pédagogique au Mozambique; E (18) L’Université de la Gambie en
Gambie.
Bakary Diallo
le Recteur
Université Virtuelle Africaine
2
Crédits de Production
Auteur
Jean Marie Dembele
Pair Réviseur
Ibrahima Amadou
UVA – Coordination Académique
Dr. Marilena Cabral
Coordinateur global Sciences Informatiques Apliquées
Prof Tim Mwololo Waema
Coordinateur du module
Florence Tushabe
Concepteurs pédagogiques
Elizabeth Mbasu
Benta Ochola
Diana Tuel
Equipe Média
Sidney McGregor
Michal Abigael Koyier
Barry Savala
Mercy Tabi Ojwang
Edwin Kiprono
Josiah Mutsogu
Kelvin Muriithi
Kefa Murimi
Victor Oluoch Otieno
Gerisson Mulongo
3
Modélisation et la Simulation
Droits d’auteur
Ce document est publié dans les conditions de la Creative Commons
Http://fr.wikipedia.org/wiki/Creative_Commons
Attribution http://creativecommons.org/licenses/by/2.5/
Le gabarit est copyright African Virtual University sous licence Creative Commons AttributionShareAlike 4.0 International License. CC-BY, SA
Supporté par
Projet Multinational II de l’UVA financé par la Banque africaine de développement.
4
Table des matières
Avant-propos
2
Crédits de Production
3
Droits d’auteur
4
Supporté par
4
Aperçu du Cours
6
Bienvenue à Modélisation et Simulation
6
Prérequis
6
Matériaux
6
Bibliographie
6
Objectifs du cours
6
Unités
7
Évaluation
8
Plan
8
Lectures et autres ressources
10
Unité 0. Évaluation Diagnostique (Introduction aux Systèmes)
11
Introduction à l’unité
11
Objectifs de l’unité
11
Évaluation de l’unité
11
Termes clés
11
Lectures et autres ressources
12
Unité 1: Introduction à la Modélisation et la Simulation
13
Introduction à l’unité
13
Objectifs de l’unité
13
Activités d’apprentissage
13
Activité 1 – Introduction à la modélisation
Termes clés
13
13
Détails de l’activité
14
Conclusion
21
5
Modélisation et la Simulation
Activité 2 – Les formalismes de simulation
21
Détails de l’activité
21
Conclusion
23
Résumé de l’unité
23
Évaluation de l’unité
24
Lectures et autres ressources
24
Unité 2: Modélisation de Systèmes Continus à Base D’agents
25
Introduction à l’unité
25
Objectifs de l’unité
25
Activités d’apprentissage
25
Activité 1 – Découverte des systèmes, quelques exemples concrets
Termes clés
25
25
Détails de l’activité
26
Conclusion
33
Activité 2 – La modélisation à base d’agents
34
Détails de l’activité
34
Conclusion
41
Activité 3 – A base d’agents Vs A base d’équations
41
Détails de l’activité
41
Conclusion
53
Lectures et autres ressources
53
Résumé de l’unité
53
Évaluation de l’unité
53
Unité 3: Modélisation de Systèmes Dynamiques (Systems Dynamics) 54
Introduction à l’unité
54
Objectifs de l’unité
54
Activités d’apprentissage
54
Activité 1 - Présentation du module SD de Netlogo
Termes clés
54
54
Détails de l’activité
55
6
Conclusion
56
Activité 2 – Le fonctionnement du module SD
56
Détails de l’activité
56
Conclusion
59
Activité 3 – Implémentation du modèle Proies/Prédateurs
59
Détails de l’activité
59
Conclusion
65
Lectures et autres ressources
66
Résumé de l’unité
66
Évaluation de l’unité
66
Unité 4: Modélisation à Événements Discrets
67
Introduction à l’unité
67
Objectifs de l’unité
67
Activités d’apprentissage
67
Activité 1 – Définition de la modélisation à événements discrets
Termes clés
67
67
Détails de l’activité
68
Conclusion
71
Activité 2 – Représentation de Tous les Éléments d’un Modèle à Événements
Discrets
71
Détails de l’activité
72
Résumé de l’unité
80
Évaluation de l’unité
80
Conclusion
80
Lectures et autres ressources
82
5
Modélisation et la Simulation
Aperçu du Cours
Bienvenue à Modélisation et Simulation
Le but de ce cours est de vous fournir les bases de la modélisation et de la simulation de
systèmes. L’intérêt de la modélisation et de la simulation est de reproduire le comportement
d’un système pour lequel il est difficile d’anticiper son comportement. Le principal objectif de
ce cours est de s’approprier les fondements de ce domaine de la conception à la réalisation
de simulations. Il vous sera présenté les différentes catégories de systèmes et de modèles
qui peuvent en découler. Ensuite des logiciels de simulations vont vous permettre de passer
à l’exécution du modèle pour faire des analyses statistiques et de la visualisation de résultats
pour une meilleure compréhension du système cible.
Prérequis
1.
Equations différentielles et calcul intégral.
2.
Introduction à la probabilité et à la statistique
3.
Algèbre linéaire
4.
Algorithmes et structures de données
5.
Initiation à l’informatique
Matériaux
1.
Les matériaux nécessaires pour compléter ce cours comprennent:
2.
Le logiciel Netlogo: https://ccl.northwestern.edu/netlogo/
3.
Le logiciel Anylogic : http://www.anylogic.com
Bibliographie
1.
J. Banks, J. C. Carson, II, and B. L. Nelson, “Discrete-Event System Simulation,”
2nd Edition, Prentice Hall, 1996, ISBN 0-13-217449-9.
2.
P. A. Fishwick, Simulation Model Design and Execution, Englewood Cliffs,
New Jersey: Prentice-Hall, 1995 (QA76.9.C65F57).
Objectifs du cours
1.
À la fin de ce cours, l’étudiant devrait être en mesure de :
2.
Définir les différents concepts de la modélisation et de la simulation ;
3.
Concevoir et implémenter un modèle discret ou continu ;
6
Aperçu du Cours
4.
De modéliser un système et de produire une analyse comportementale et
statistique de votre modèle ;
5.
De modéliser les systèmes continus avec les agents (systèmes multi-agents) ;
6.
De modéliser des systèmes dynamiques (Systems Dynamics dans la
littérature) ;
7.
De modéliser un système à événements discrets.
Unités
Unité 0: Evaluation diagnostique (Introduction générale aux systèmes)
Cette unité présente une introduction générale à la notion de systèmes, d’entités de systèmes,
de relations et d’interactions entre les entités des systèmes, de types de systèmes
Unité 1 : Introduction à la modélisation et la simulation
Cette unité introduit les notions de modélisation et de simulation, d’analyse de systèmes,
et propose une classification des différentes approches de modélisation : modélisation de
systèmes continus à base d’agents, modélisation de systèmes dynamiques (Systems Dynamics)
et la modélisation à événements discrets.
Unité 2: Modélisation de systèmes continus à base d’agents
Dans cette unité, il est question de s’intéresser à la modélisation des systèmes à temps
continus. Les équations différentielles (équations différentielles ordinaires, équations aux
dérivées partielles) sont l’outil classique de modélisation mathématique de tels systèmes mais
on montrera l’implémentation de tels systèmes en Informatique à travers l’utilisation d’un
logiciel de simulation à base d’agents, Netlogo.
Unité 3: Modélisation de systèmes dynamiques (Systems Dynamics)
Cette unité traite les systèmes dynamiques (Systems Dynamics) qui sont un type de
modélisation où l’objectif est de comprendre comment les éléments sont en relations les uns
avec les autres. Cette approche différente de celle basée sur les agents que nous verrons
dans l’unité 2 sera tout de même traitée par le même logiciel. En effet, dans Netlogo, il y a
un module permettant de simuler les Systems Dynamics. Cette unité s’inspire du manuel de
l’utilisateur du systems Dynamics de Netlogo.
7
Modélisation et la Simulation
Unité 4: Modélisation à événements discrets
Cette unité abordera le dernier formalisme de modélisation ; la modélisation à événements
discrets. Elle donnera des concepts clés autour de cette modélisation tout en précisant les
structures nécessaires pour mener une telle modélisation (agents, file d’attente, horloge,…). Un
exemple sera traité pour vous aider à cerner ce formalisme.
Évaluation
Les évaluations formatives (vérification de progrès) sont inclus dans chaque unité.
Les évaluations sommatives (tests et travaux finaux) sont fournies à la fin de chaque module et
traitent des connaissances et compétences du module.
Les évaluations sommatives sont gérées à la discrétion de l’établissement qui offre le cours. Le
plan d’évaluation proposé est le suivant:
1
Devoir sur table
25%
2
Projet en équipe
25%
3
Examen sur table
50%
Plan
Unité
Sujets et Activités
Durée
estimée
Introduction de la modélisation
Comprendre le processus de modélisation
Découvrir les systèmes complexes
Assimiler la notion de modèle
Modélisation à base de règes et modélisation
à base de lois
Introduction à la
Les formalismes de simulation
modélisation et la
Simulation discrète Vs continue, déterministe
simulation
Vs stochastique
Le temps et l’espace dans les simulations
Présentation des trois (3) grandes familles de
modélisation et de simulation du cours
8
30h
Aperçu du Cours
Découvertes des systèmes, quelques
30h
exemples concrets
Classer les systèmes suivant les entités et les
interactions.
Voir les limites de la résolution numérique
Remarquer ce que l’informatique peut
apporter
La modélisation à base d’agents
Modélisation de systèmes
continus à base d’agents
L’agent
Les systèmes multi-agents (SMA)
Les plateformes SMA
Autres formalismes, métaheuristiques et
structures informatiques
A base d’agents Vs A base d’équations
Comparaison des deux approches
Exemple de modélisation (Proies/Prédateurs)
Présentation du module SD de Netlogo
Les concepts de base
Modélisation de systèmes
dynamiques (Systems
Dynamics)
Quelques exemples de modèles SD
Le fonctionnement du module SD
Les diagrammes
Les élements du diagramme
Le code des procédures
Implémentation du modèle Proies/Prédateurs
9
30h
Modélisation et la Simulation
Définition de la modélisation à événements
30h
discrets
Situer la modélisation à événements discrets
Quelques notions autour de la modélisation à
événements discrets
Représentation de tous les éléments d’un
modèle à événements discrets
Modélisation à
Comparaison événements discrets Vs
événements discrets
Simulation continues
Découvrir les files d’attentes et les variables
aléatoires discrètes
Exemple de modélisation (Distributeur
automatique bancaire)
Lectures et autres ressources
1.
Les lectures et autres ressources dans ce cours sont indiquées ci-dessous.
2.
P. A. Fishwick, Simulation Model Design and Execution, Englewood Cliffs,
New Jersey: Prentice-Hall, 1995 (QA76.9.C65F57).
3.
J. Banks, J. C. Carson, II, and B. L. Nelson, “Discrete-Event System Simulation,”
2nd Edition, Prentice Hall, 1996, ISBN 0-13-217449-9.
4.
W. H. Press, B. P. Flannery, S. A. Teukolsky, and W. T. Vetterling, Numerical
Recipes in C, Second Edition, New York: Cambridge University Press, 1992
(QA76.73.C15N865 1992).
5.
M. C. Jeruchim, P. Balaban, and K. S. Shanmugan, Simulation of
Communication Systems, Plenum Press, 1992 (TK5102.5.J47).
6.
P. Bratley, B. L. Fox, and L. Schrage, A Guide to Simulation, New York:
Springer-Verlag, 1987 (QA76.9.C65B73 1987).
7.
G. Gordon, System Simulation, Prentice Hall, 2nd edition, 1977 (QA76.5.G63
1978).
8.
M. Law and W. D. Kelton, Simulation Modeling & Analysis, New York:
McGraw-Hill, 1991 (QA76.9.C65L38 1991).
10
Unité 0. Évaluation Diagnostique (Introduction aux Systèmes)
Unité 0. Évaluation Diagnostique
(Introduction aux Systèmes)
Introduction à l’unité
Cette unité vous permettra de vérifier les connaissances que vous devez avoir avant de
commencer le cours. Vous pouvez faire l’évaluation de l’unité avant de faire des activités
d’apprentissage pour aider à rafraîchir vos connaissances.
Objectifs de l’unité
À la fin de cette unité, vous devriez être capable:
D’identifier différents éléments en interactions ou en relations ;
De connaître les propriétés d’un système.
Termes clés
Système : Un ensemble d’entités en relation ou en
interaction.
Évaluation de l’unité
Recherchez et vérifiez votre compréhension!
Devoir sur table 0
Directives
Répondre aux questions posées en consultant les ressources libres sur Internet
Système de notation
Le barème est indiqué à la suite des questions
Évaluation
1.
Question de culture générale (20 pts)
2.
Définir un ensemble (0,5 pt)
3.
Qu’est ce qu’une relation (0,5 pt)
4.
Qu’est ce qu’une interaction (0,5 pt)
5.
Définir la rétroaction (0,5 pt)
11
Modélisation et la Simulation
6.
Donner les définitions des termes suivants :
a. Singularité (1pt)
b. Adaptation (1pt)
c. Résilience (1pt)
d. Bifurcation (1pt)
e. Etat critique (1pt)
f. Transition de phase (1pt)
g. Téléonomie (1pt)
h. Autopoïèse (1pt)
7.
Une fois ces termes définies choisissez un exemple de système et dire pour
chaque terme ce à quoi ça correspond dans votre système (10 pts)
Lectures et autres ressources
Les lectures et ressources de cette unité se trouvent au niveau des lectures et autres ressources
du cours.
12
Unité 1: Introduction à la Modélisation et la Simulation
Unité 1: Introduction à la
Modélisation et la Simulation
Introduction à l’unité
Cette unité introduit les notions de modélisation et de simulation, d’analyse de systèmes,
et propose une classification des différentes approches de modélisation : modélisation
à événements discrets, modélisation de systèmes continus et modélisation de systèmes
dynamiques (Systems dynamics).
Objectifs de l’unité
À la fin de cette unité, vous devriez être capable de:
• Décrire le processus de modélisation ;
• Définir un système complexe ;
• Définir la notion de modèle ;
• Assimiler les concepts de simulation ;
• Classifier les différents formalismes de simulation.
Termes clés
Modélisation: La modélisation est la conception d’un
modèle
Modèle : Ce qui est donné pour servir de référence
Simulation : Représentation ou reproduction du
comportement d’un système donné
Activités d’apprentissage
Activité 1 – Introduction à la modélisation
Introduction
Cette activité vous permettra de vous familiariser à la modélisation de systèmes. Il présentera
les enjeux de la modélisation ainsi que son processus entier. Vous y découvrirez également la
notion de modèle et de systèmes complexes.
13
Modélisation et la Simulation
Détails de l’activité
Comprendre le processus de modélisation
La modélisation peut se définir comme un processus (fig. 1) permettant, pour un système
donné, de produire un modèle qui est:
« une image simplifiée de la réalité forgée à partir d’une certaine sélection des données
d’observations et d’un certain nombre d’hypothèses »
Coquillard, P., Hill, D., 1997. Modélisation et simulation d’écosystèmes. Masson.
Fig. 1 – Les grandes étapes dans un processus de modélisation et
simulation de systèmes
Le terme de processus est ici utilisé pour signifier que le modèle doit être construit en le
mettant à l’épreuve par les expérimentations (simulations) pour le cautionner ou pour l’affiner
en vérifiant à nouveau les observations ou les hypothèses posées.
Force est de remarquer à ce niveau qu’un modèle n’est jamais achevé. Il reflète tout
simplement l’état des connaissances et doit récolter de l’amélioration de ces dernières pour
exemples :
Du modèle géocentrique de Ptolémée et d’Aristote au modèle héliocentrique – sans doute
obsolète – défendu par Copernic, Kepler, Galilée, et Newton.
De la loi de l’inertie de Newton, valable pour les repères galiléens, à la relativité générale
d’Einstein,
Pour ne citer que ces exemples très connus…
Nous allons donner dans la suite des rappels ou des définitions sur certaines notions :
Systèmes complexes (qui nécessitent fréquemment une approche de modélisation et de
simulation),
Réductionnisme et holisme,
Modèle d’un système,
Pour nous permettre de bien définir et repréciser notre cadre de modélisation/simulation.
14
Unité 1: Introduction à la Modélisation et la Simulation
Découvrir les systèmes complexes
Étymologiquement, « système » vient du mot grec sustêma qui veut dire assemblage ou
composition et désigne dans notre contexte d’étude un ensemble constitué d’entités qui sont
en interaction.
Par ailleurs, en s’intéressant au mot « complexe » on a l’impression de relever un pléonasme
car ce dernier, tiré du mot latin complexus de complecti, désigne quelque chose qui contient
ou réunit plusieurs éléments différents.
Il faut alors ajouter que ces éléments réunis entretiennent des rapports divers et présentent
souvent des aspects émergents difficiles à saisir par l’esprit.
Nous pouvons à présent avancer une définition assez générale, mais qui demeure encore
informelle dans ce domaine des systèmes complexes qui par sa nature pluridisciplinaire
combine divers outils, approches et techniques d’exploration. Toutefois, selon le domaine
d’application, les concepts d’«entités», d’«interactions» et d’«émergence», revêtiront un sens
plus formel et s’appliqueront rigoureusement dans la thématique choisie.
Un système complexe est un ensemble constitué d’entités relativement simples en interaction,
et dans lequel émergent des comportements imprévisibles.
Des exemples courants de la littérature permettent de se faire une idée plus précise sur les
systèmes complexes. En voici quelque uns :
Le cerveau humain constitué de neurones échangeant des impulsions électriques ; l’étude
détaillée de la nature biochimique ou du fonctionnement des neurones ne renseigne pas
clairement sur des fonctionnalités du cerveau comme la mémoire ou la conscience.
Les systèmes sociaux où l’on observe des interactions très diverses entre les individus et des
comportements émergents complexes (un exemple : fig. 2).
Une colonie de fourmis (fig. 3) échangeant des phéromones pour résoudre des problèmes.
Un écoulement turbulent (fig. 4) décrit par des particules fluides porteuses de vorticité.
Fig. 2 – Séparation en groupes ethniques ou culturels et risques de
conflit,
15
Modélisation et la Simulation
Lim, M., Metzler, R., Bar-Yam, Y., 2007. Global Pattern Formation and Ethnic/Cultural Violence.
Science,Vol. 317. no. 5844, pp. 1540 - 1544.
Fig. 3 – Fourmis déterminant un plus court chemin entre leur nid et
la nourriture par dépôt de phéromones
Fig. 4 – Emergence d’une structure cohérente tourbillon dans un
écoulement turbulent.
Robert, R., 2001. L’effet papillon n’existe plus, Pour la Science.
Réductionnisme ou holisme
Notons que ce qui est mis en avant à travers ces illustrations c’est bien l’émergence au sein
des systèmes complexes de certaines propriétés que l’on peut qualifier d’imprévisibles si l’on
part de la définition fonctionnelle des entités prises séparément.
Cette non-linéarité entre les actions individuelles des entités et le comportement collectif
résultant met à mal la théorie du réductionnisme adoptée par Descartes dans son célèbre texte
philosophique : Le discours de la Méthode.
Le raisonnement tenu par le réductionnisme est que l’étude et la maîtrise des entités suffisent
pour appréhender le comportement du système en question.
Tel n’est pas le cas pour les systèmes complexes qui se rapprochent plutôt, du point de vue de
leurs comportements émergents, de la théorie holistique de Smuts:
« the tendency in nature to form wholes that are greater than the sum of the parts through
creative evolution ».
Smuts, J.C., 1926. Holism and Evolution. Macmillan & Co Ldt.
Théorie que l’on exprime couramment sous forme d’adage :
« le tout est plus grand que la somme des parties ».
16
Unité 1: Introduction à la Modélisation et la Simulation
Dès lors, cette vision préconise de considérer les systèmes comme des totalités pour
essayer d’en décrire le comportement. Les notions d’holisme et de réductionnisme bien
qu’antagonistes ne peuvent nullement constituer une dichotomie des approches de
modélisation de systèmes complexes et il est nécessaire dans notre contexte de tirer parti des
deux car le tout et les parties sont bien liés comme le souligne Bar-Yam [Bar-Yam, 1997] :
« Qualitatively, to understand the behavior of a complex system we must understand not only
the behavior of the parts but how they act together to form the behavior of the whole. It is
because we cannot describe the whole without describing each part, and because each part
must be described in relation to other parts, that complex systems are difficult to understand. ».
Bar-Yam, Y., 1997. Dynamics of Complex Systems. Perseus Books Group.
L’approche que nous proposons ici peut donc être qualifiée de systémique ; une forme qui
s’inspire d’une certaine façon de la cybernétique de Wiener.
Il faudra donc utiliser cette approche le plus possible dans ce cours
Au-delà d’un contrôle téléologique (par rétroaction) établi par (ou à travers) la circulation
de l’information entre composants fonctionnels, l’approche systémique considère leurs
caractéristiques structurales et leurs échanges qui ne se présentent pas exclusivement sous
forme d’informations mais aussi de matière ou d’énergie,…. Se référer aux travaux sur la
théorie générale du système de Von Bertalanffy.
Assimiler la notion de modèle
Comme nous le verrons dans la suite, la nature des problèmes abordés nous force le choix de
construire un modèle. En effet, il est difficile ou très coûteux de procéder à une démarche
expérimentale directement sur les systèmes étudiés.
Le modèle développé à la place sert alors non seulement de « baromètre » de la connaissance
mais aussi de catalyseur dans la compréhension du système à modéliser.
Il met ainsi à la disposition de l’utilisateur un véritable laboratoire virtuel répondant avec plus
de détails sur des problèmes difficiles à traiter expérimentalement ; soit parce que le système
est justement mal connu ou soit parce que les mesures expérimentales peuvent dans certains
cas corrompre l’intégrité du système (le cas des phénomènes turbulents par exemple).
Complétons avec la définition de modèle et celle de modélisation à base de lois ou à base de
règles. Cette notion de modèle a d’ailleurs été légèrement introduite en début de ce cours car
étant implicitement liée aux approches holistique, réductionniste ou systémique dans le sens
où ces dernières dressent la manière d’en élaborer un.
De manière plus formelle, en revenant à son étymologie de l’italien modello du latin populaire
modellus, modèle signifie ce qui sert ou doit servir d’objet d’imitation pour faire ou reproduire
quelque chose. On saisit alors aisément son sens dans notre contexte, mais avec la proposition
suivante de Minsky on remarquera également son caractère subjectif.
« To an observer B, an object A* is a model of an object A to the extent that B can use A* to
answer questions that interest him about A »
17
Modélisation et la Simulation
Minsky, M., 1965. Matter, minds and models. International Federation of Information
Processing Congress, 1: 45 – 49.
En effet, cela veut dire que l’objet A* devient pour l’observateur B un modèle dès qu’il est
utilisable. Donc suivant le domaine d’étude de B et les questions qu’il se pose, on pourra alors
pour un même objet A aboutir à plusieurs modèles.
On ne peut donc à ce niveau donner une procédure générale de construction d’un modèle. Il
est nécessaire dans un premier temps de spécifier les dimensions d’intérêt et les objectifs fixés
par l’étude du système pour ainsi resserrer le domaine de définition du modèle et opter pour
les outils et méthodes de modélisation.
Une autre caractéristique d’un modèle est bien sa simplicité par rapport au système étudié.
Un modèle trop complexe ne sert à rien sinon de trop se rapprocher du système modélisé
et d’être inutilisable comme le système en question est difficile à saisir. Comme par ailleurs
un modèle trop simplifié n’est pas utilisable non plus car impertinent en vue des questions
pouvant être soulevées par l’étude. Un modèle doit donc constituer une projection
efficacement paramétrée de la réalité sur la ou les dimensions d’intérêt souhaitées.
Modélisation à base de règes et modélisation à base de lois
La modélisation à base de règles consiste à considérer le système au moyen de ses éléments
structurants et à suivre son évolution suivant les règles d’interactions et d’interdépendances
qui lient les éléments. L’évolution du système est alors discrète et dépend des interactions
entre les éléments.
On opposera souvent à cette modélisation à base de règles celle qui est à base de lois. Ces
modèles consistent plutôt à considérer certaines caractéristiques des éléments comme des
variables et à les étudier en formulant des équations qui décrivent les lois d’évolution du
système en entier. Il en résulte, comme nous le verrons dans la démarche de modélisation
mathématique, des équations généralement continues (dans le temps et dans l’espace) de
type équations différentielles.
Aussi, en analyse numérique, dispose-t-on de méthodes de simulation de systèmes physiques
qui peuvent généralement êtres linéaires ou non-linéaires, stationnaires ou non stationnaires,
laminaires ou turbulents… Et comme remarque Bourdine:
« (…) En moins de trois siècles les mathématiciens-physiciens mettent véritablement le monde
en équation. (…) Pêle-mêle, c’est l’équation de Kepler en mécanique céleste, l’équation de
Newton sur la gravitation, les équations de Bernoulli en hydraulique, le principe de d’Alembert
en dynamique, les équations d’Euler en dynamique et d’autres en mécanique des fluides, les
équations de Lagrange qui résument la mécanique analytique, les contributions de Gauss
en mécanique (principe de moindre contrainte), en théorie du potentiel, en électricité et
magnétisme, l’équation de Fourier de la propagation de la chaleur, les équations de NavierStokes en mécanique des fluides, les équations de Maxwell en électromagnétisme et théorie
de la lumière, l’équation de Boltzmann en mécanique statistique, l’équation de Schrödinger en
mécanique quantique (…). »
18
Unité 1: Introduction à la Modélisation et la Simulation
Boudine, J-P., 2001. Homo Mathematicus. Les Mathématiques et nous. Vuibert.
On remarque bien que la communauté mathématique produit beaucoup d’équations, voyons
concrètement comment de telles équations sont construites.
La mise en équation du modèle continu
Rappelons encore, et ceci ne concerne pas exclusivement la modélisation mathématique,
qu’un modèle n’est qu’une abstraction de la réalité et il ne donne qu’une représentation
partielle et pertinente du système réel étudié. Ce dernier, comme nous l’avons déjà souligné,
subit alors une projection sur les dimensions choisies comme étant les plus révélatrices mais
aussi les plus accessibles et interprétables.
L’observation du système et sa représentation correspondent alors à une phase sélective qui
met en avant que certaines caractéristiques du système (fig. 6). Ceci rend compte encore une
fois de la nature subjective d’un modèle, mais il faut opposer en contrepartie que la vision d’un
tel système ne peut être globale, à fortiori sa représentation.
Fig. 5 – La procédure pour conduire une simulation numérique
19
Modélisation et la Simulation
Un modèle de système physique dynamique permettra alors de décrire plus explicitement
l’évolution des caractéristiques choisies comme étant celles qui peuvent représenter
fidèlement le système :
• La vitesse, la hauteur, la pression… dans un écoulement fluide,
• Le déplacement et les contraintes pour un problème d’élasticité,
• La concentration pour un problème de transport…
Ces indicateurs sont alors explicités sous forme de variables usuellement continues dans
l’espace et le temps et dont l’intégration, selon des lois de conservation de masse, de
quantité de mouvement, de flux thermique… fournit généralement des équations sous forme
d’équations aux dérivées partielles ou d’équations différentielles ordinaires (EDO).
Ces équations gouvernantes de systèmes physiques dynamiques nécessitent en plus la
connaissance des conditions initiales (CI) du phénomène et des conditions aux bords (CB) du
domaine du système (conditions de Dirichlet, Neumann ou Robin).
Une fois ces éléments bien posés, l’existence et l’unicité de la solution de l’équation
gouvernante peuvent être avancées. La résolution de cette équation gouvernante du système
équivaut alors à une simulation du comportement (ou de la dynamique) du système.
Elle permet de suivre les valeurs numériques des caractéristiques choisies en tout point du
système si une résolution analytique de l’équation est possible.
Nous pouvons ici, au risque de nous répéter, nous livrer au même exercice de récapitulation
que Boudine, mais en ne citant cependant que quelques EDP gouvernantes de systèmes. En
physique, et ceci n’est pas exhaustif :
Les équations de Poisson et Laplace pour les phénomènes d’équilibre ou stationnaires : une
membrane en équilibre
Ll’équation de chaleur pour des phénomènes d’évolution : diffusion de chaleur, mélange
d’espèces
L’équation des ondes pour des phénomènes de propagation : membrane vibrante, ondes
électromagnétiques, ondes sismiques
L’équation de Korteweg-de Vries pour des vagues sur de l’eau peu profonde
L’équation de Schrödinger en physique quantique non-relativiste
Les équations de Navier-Stokes pour un fluide visqueux incompressible
En biologie et chimie, les équations de type réaction-diffusion de A. Turing pour les
phénomènes de morphogénèse.
En dynamique de population l’équation de Von Foerster par exemple pour l’évolution de la
densité d’une population d’un certain âge.
Etc.
20
Unité 1: Introduction à la Modélisation et la Simulation
Conclusion
Voilà, cette première activité doit te donner une première idée sur les notions de modèles,
de systèmes complexes, d’approche systémique, de réductionnisme et d’holisme et de
modélisation à base de règles et à base de lois.
Il s’agit d’une première partie théorique et les chapitres suivants devront te donner une idée
claire sur tous ces éléments.
Évaluation
• Donner la définition de modèle de Minsky, Que vous inspire t’elle ?
• Qu’est ce que le réductionnisme et le holisme ?
• Comment doit être un modèle pour rester utilisable ?
• Pour un système simple que vous choisirez, montrer que donne une modélisation
à base de règles et une modélisation à base de lois.
Activité 2 – Les formalismes de simulation
Présentation
Maintenant que la notion de modèle est posée, nous allons passer à celle de simulation.
Cette étape montrera réellement l’intérêt du modèle informatique qui sera soumis à une suite
d’exécution. Les différents formalismes de modélisation et de simulation seront présentés et
ensuite nous ferons un focus sur trois grandes approches qui constitueront les unités suivantes.
Détails de l’activité
D’abord donnons une définition :
« La simulation consiste à faire évoluer une abstraction d’un système au cours du temps afin
d’aider à comprendre le fonctionnement et le comportement de ce système, et à appréhender
certaines de ses caractéristiques dynamiques dans l’objectif d’évaluer différentes décisions »
Hill, D., 1993. Analyse orientée objets et modélisation par simulation. Addison-Wesley, 342p.
Simulation discrète Vs continue, déterministe Vs stochastique
Cette définition au-delà de la construction du modèle, dégage un aspect essentiel en
l’occurrence le fait de faire évoluer le modèle dans le temps. Il fait alors intervenir suivant :
la granularité du temps, une simulation continue et discrète
Et suivant les méthodes de calcul, une simulation peut aussi être déterministe ou probabiliste.
La simulation continue conçoit généralement le système à décrire sous forme d’équations
différentielles et requiert une résolution analytique si le modèle s’y prête.
21
Modélisation et la Simulation
Quant à la simulation discrète, où l’on simule le passage d’un pas de temps constant ou pas
dans le système, elle pourra servir :
Dans une modélisation mathématique comme on l’a déjà vu, à la discrétisation d’équations
différentielles nécessitant une résolution numérique (Runge-Kutta et Leap-Frop pour les
Equations Différentielles Ordinaires, éléments finis, volumes finis et méthodes particulaires
pour les Equations aux Dérivées Partielles.
Dans une « modélisation informatique », de moteur d’inférence à base de règles (les
automates cellulaires, les modèles orientés objets, les modèles orientés processus, les
systèmes multi-agents,…)
En opposition aux méthodes déterministes dans l’établissement de règles d’évolution, nous
pourrons trouver des méthodes probabilistes (ou statistiques) comme la simulation de MonteCarlo pour des équations différentielles stochastiques, les systèmes Markoviens en physique
statistique ou le mouvement brownien.
Le temps et l’espace dans les simulations
La nature de l’espace et du temps peut aussi participer à la classification des formalismes de
simulation.
Fig. 6 – Classification des formalismes suivant la dynamique, le
temps et l’espace.
22
Unité 1: Introduction à la Modélisation et la Simulation
Présentation des trois (3) grandes familles de modélisation et de simulation du cours
Nous allons maintenant donner les trois grandes classes de modélisation et de simulation
retenues dans ce cours. Nous avons choisi ces trois classes car elles donnent un aperçu
complet sur le domaine de la modélisation et de la simulation.
La modélisation de systèmes continus à base d’agents
Nous présentons dans cette partie une introduction à la modélisation de systèmes continus.
Pour ce genre de problème, le temps est supposé continu même si pour la résolution une
discrétisation de ce même temps est effectuée. Le continu n’existe pas en Informatique !
L’unité 2 reviendra sur ces modèles continus et montrera leur traitement en Informatique
avec des logiciels dédiées à la simulation, notamment la plateforme Netlogo qui permet
d’implémenter des agents.
La modélisation de systèmes dynamiques (Systems Dynamics)
Ici, il sera également question de systèmes continus, mais nous verrons une autre approche
différente des l’approche à base d’agents dans laquelle il est plutôt question d’utiliser des
techniques de programmation à base de flux. Il faut dire que contrairement à l’unité 2, l’unité
3 qui sera dédiée à ces systèmes dynamiques (Systems Dynamics dans la littérature) traitera
plutot des problèmes dans lesquels l’espace n’est pas explicitement modélisé.
La modélisation à événements discrets
Finalement nous verrons la modélisation à événements discrets ou on s’intéressera pas au
temps qui s’écoule mais aux événements qui sont les plus importants pour le système. On fera
bien le distingo entre les systèmes continus et les systèmes discrets et utiliserons la plateforme
Anylogic pour implémenter un modèle simple.
Conclusion
Cette activité a permis de découvrir ce qu’est la simulation et de voir les différents formalismes
qui existent. Répondez aux questions qui suivent pour tester vos connaissances.
Évaluation
• Qu’est ce qu’une simulation ?
• Donner un classement des méthodes de simulation selon le temps.
•
Rappeler quelles sont les grandes familles de modélisation qui seront présentées
et détailler un peu leurs principes.
Résumé de l’unité
Voilà qui termine cette unité introductive à la modélisation et la simulation. Vous devez aussi
avoir une idée de ce qui vous attend avec les autres unités. Essayez de tester ce que vous avez
retenu !
23
Modélisation et la Simulation
Évaluation de l’unité
Vérifiez votre compréhension!
Rapport à rendre
Directives
Le projet dureune semaine, cherché des ressources sur internet.
Système de notation
Le rapport est noté sur 20
Évaluation
Rendre une dissertation d’au moins 4 pages pour présenter des modèles et/ou des simulations
célèbres dans les formalismes présentés dans cette unité.
Lectures et autres ressources
Les lectures et autres ressources de cette unité se trouvent au niveau des lectures et autres
ressources du cours.
24
Unité 2: Modélisation de Systèmes Continus à Base D’agents
Unité 2: Modélisation de Systèmes
Continus à Base D’agents
Introduction à l’unité
Dans cette unité, il est question de s’intéresser à la modélisation des systèmes à temps
continus. En effet, ces systèmes sont très répandus et se retrouvent dans plusieurs domaines
(économie, biologie, physique, sociétés,...). Bien que les équations différentielles (équations
différentielles ordinaires, équations aux dérivées partielles) soient l’outil classique de
modélisation mathématique de tels systèmes nous procéderons à l’implémentation de tels
systèmes en Informatique à travers l’utilisation d’un logiciel de simulation à base d’agents,
Netlogo.
Objectifs de l’unité
À la fin de cette unité, vous devriez être capable de:
1.
Identifier un système continu ;
2.
Définir le processus de modélisation à base d’équations.
3.
Définir le processus de modélisation à base d’agents ;
4.
Construire un modèle à base d’agents.
Termes clés
Système: un ensemble de composants en interaction
dans le temps et dans l’espace.
Activités d’apprentissage
Activité 1 – Découverte des systèmes, quelques exemples concrets
Introduction
Cette activité vous permettra de bien cibler les systèmes à étudier. Elle présentera les systèmes
à travers ses entités et les interactions qu’il peut y avoir en interne. La résolution numérique
après une modélisation mathématique sera aussi traitée. Ceci nous permettra de bien savoir
quand avoir recours à une équation et quand utiliser un modèle informatique.
25
Modélisation et la Simulation
Détails de l’activité
Classer les systèmes suivant les entités et les interactions
Nous allons présenter sous la forme d’un tableau une classification des systèmes dynamiques
pour voir dans quelle mesure il faut procéder à une modélisation et une simulation. Cette
classification se fera suivant le nombre d’entités, la nature de leurs interactions et le
comportement général du système
Exemples de
Entités
Interactions
Peu d’entités
Interactions
Comportements Observations
Systèmes
Problème des deux
corps (trajectoires
de 2 corps A et B
simples
de masse m1 et m2
Problème
Prévisibles
soumis à des forces
solvable ou
intégrable
gravitationnelles)
Problème des trois
Méthodes
corps (trajectoires
de résolution
de 3 corps (voire N)
approchées
soumis à des forces
Peu d’entités
gravitationnelles.)
Interactions
simples
Sensibilité aux
Imprévisibles
conditions
initiales
(théorie du
chaos).
Cristaux ou
Gaz (formation
de cristaux
(alignement au
niveau moléculaire
ex le diamant), ou
caractéristiques d’un
Méthodes
Beaucoup
d’entités
Interactions
simples
gaz stable)
Prévisibles
Statistiques
pour obtenir
des grandeurs
(température,
pression,…)
(Pression,
Température)
26
Unité 2: Modélisation de Systèmes Continus à Base D’agents
systèmes
mécatroniques,
(constructions civiles,
aviations,….)
Beaucoup
d’entités
Interactions
complexes
Prévisibles
Ingénierie
Réseaux complexes,
communautés
spatialisées,
automates cellulaires,
fluides,
Beaucoup
d’entités
Interactions
simples
Imprévisibles
Modélisation
et simulation
Organismes,
épidémies,
économies, sociétés,
écosystèmes…
(informatique ou
Beaucoup
d’entités
Interactions
complexes
mathématique)
Imprévisibles
Ce tableau donne une idée sur les systèmes qui sont ciblés par ce cours. Il s’agit bien des
deux dernières lignes pour lesquelles il est nécessaire de procéder à une modélisation et une
simulation mathématique ou informatique.
Voyons maintenant les apports et les inconvénients d’une modélisation à base d’équations.
Ces éléments ont d’ailleurs été un peu abordés dans l’unité 1. En effet, la mise en équation
d’un système a déjà été évoqué dans cette unité, nous allons maintenant voir comment se
passe la résolution numérique d’une équation décrivant le comportement d’un système.
Voir les limites de la résolution numérique
Systèmes prenant en compte l’espace (EDP)
Un exemple de systèmes qu’on peut prendre ici est l’écoulement des fluides ou les
dynamiques spatialisées.
Il est à noter, pour la plupart de ces modèles mathématiques de systèmes dynamiques, qu’une
résolution analytique est difficile – voire impossible – raison pour laquelle on procédera à une
résolution numérique. Cette dernière passe nécessairement par une phase de discrétisation
(fig. 1) qui permet de suivre les principales caractéristiques du système continu – infini – sous
une forme discrète – finie – en utilisant un maillage du domaine (discrétisation eulérienne) ou
du matériel (discrétisation lagrangienne).
27
Modélisation et la Simulation
Le maillage produit un ensemble de cellules ou de points sur lesquels seront approximées
les valeurs numériques des caractéristiques. Le nombre de cellules (ou points) dépendra de
la puissance de calcul disponible et plus le maillage est fin, meilleure sera la reconstitution du
système.
Fig.1 – Exemples de discrétisation eulérienne dans un problème
d’écoulement d’un fluide autour d’un cylindre. À gauche, une grille
de différences finies – à droite, une grille d’éléments finis.
En simulation numérique, une autre phase incontournable d’analyse mathématique devra se
soucier de la consistance de la stabilité et de la convergence de la méthode utilisée.
Nous n’approfondirons pas cette phase qui relève de l’analyse numérique mais visiterons tout
simplement les concepts des méthodes numériques qui pourront nous intéresser dans notre
étude.
Le but étant plus d’exposer ces méthodes que de les enseigner à un public informaticien. Il
est d’ailleurs plus intéressant à ce niveau de distinguer dans la démarche de résolution les
approches eulérienne et lagrangienne. Ces approches donnent deux points de vue différents
(et complémentaires) sur l’élaboration d’un modèle discret (ou algébrique) de résolution.
Les approches eulériennes
qui procèdent à une subdivision de l’espace où se déroule le phénomène simulé, produisent
un ensemble fini de cellules figées dans le domaine qui permettent d’obtenir localement les
variables prises en compte dans l’étude. En effet, les flux d’informations (les variables étudiées)
qui traversent chaque cellule, selon les gradients de l’équation gouvernante, donne une vue à
partir d’un point donné de l’espace, sur la dynamique du système.
Ces méthodes peuvent donc supporter de larges déformations spatiales et temporelles dans
l’objet (ou le matériel) simulé. Par contre, une insuffisance majeure est l’incapacité de suivre la
dynamique d’un point précis du système vu que le maillage n’est pas rattaché au matériel. Il
est donc très difficile de dresser l’historique de la dynamique d’un point quelconque tout au
long d’une simulation.
On remarque, pour terminer, que ces méthodes peinent dans la phase de maillage dès lors
que le domaine comporte des irrégularités géométriques ou des frontières dynamiques.
28
Unité 2: Modélisation de Systèmes Continus à Base D’agents
Les approches lagrangiennes, à l’opposé des approches eulériennes, vont subdiviser le
matériel et y fixer leur grille. Les cellules ainsi obtenues se déplacent avec le matériel et
entraînent dans leur mouvement toutes les caractéristiques observées en l’occurrence les
variables étudiées.
Cette manière de faire va permettre aux approches lagrangiennes de s’affranchir des limites
des approches eulériennes tout en péchant sur leurs avantages. Ainsi on pourra parfaitement
suivre n’importe quel élément tout au long de l’évolution du phénomène, accepter des
géométries complexes en utilisant un maillage irrégulier. Les frontières dynamiques peuvent
aussi être gérées en choisissant un maillage spécial sur le bord du domaine.
Nous proposons dans la suite une esquisse des méthodes de résolution numériques utilisées
dans la simulation de systèmes décrits par des EDP. Elles seront classées suivant leur utilisation
ou non d’un maillage en faisant fi de leur caractère déterministe ou stochastique.
Les méthodes avec maillage
La méthode des différences finies (MDF), qui illustre bien l’approche eulérienne, suit un
principe d’approximation de fonctions. Ce dernier consiste à remplacer les dérivées aux points
du maillage par des approximations. Les dérivées sont alors approchées par des différences
finies centrées ou décentrées en temps et/ou en espace.
On obtient ainsi différents schémas numériques (centré, décentrés : Euler explicite, Euler
implicite) sur lesquels on peut itérer. La méthode des éléments finis (MEF), à la différence de la
MDF, suit un principe d’approximation de solutions qui découpe le domaine en sous-domaines
appelés éléments finis et choisit une approximation de la solution approchée en des points
spéciaux de l’élément : les nœuds.
Cette approximation est obtenue par des fonctions d’interpolation habituellement sous forme
de polynômes dont le degré dépendra du nombre de nœuds. N’importe quel autre point de
l’élément est alors déterminé par les valeurs de la solution aux nœuds.
Le lecteur intéressé pourra se référer à la documentation pour plus de détails :
Le Pourhiet, A., 1988. Résolution numérique des équations aux dérivées partielles : une
première approche. Cépaduès Editions.
Euvrard, D., 1990. Résolution numérique des équations aux dérivées partielles de la physique,
de la mécanique et des sciences de l’ingénieur : Différences finies, éléments finis, méthode des
singularités. 2ème édition. Masson.
Les méthodes sans maillage
Elles peuvent se distinguer suivant leur formulation faible ou forte de l’EDP.
Pour une formulation faible, on peut citer les méthodes suivantes : Diffuse Element, Element
Free Galerkin (EFG), Meshless Local Petrov-Galerkin (MLPG), Partition of Unity.Toutefois, ces
méthodes ne sont pas totalement libérées d’un maillage qui est nécessaire pour l’intégration
de la formulation faible.
29
Modélisation et la Simulation
Pour les méthodes qui suivent une formulation forte et qui procèdent par collocation :
Smoothed Particle Hydrodynamics (SPH)
Les méthodes particulaires
Pour notre part, nous nous limiterons aux méthodes parfaitement particulaires qui utilisent
un nombre fini de particules discrètes pour constituer le système. Elles sont libérées de
toutes contraintes imposées par un maillage et se définissent à partir d’éléments discrets (ou
particules) constitutifs du système et indépendamment de tout maillage. Elles se basent en
plus pour la plupart sur des fonctions radiales pour se représenter la distribution et l’évolution
des particules qui représentent ainsi des points d’interpolation locale des variables modélisées.
Ces méthodes peuvent alors être regroupées suivant l’échelle de description du phénomène
physique étudié. Échelle qui peut être microscopique (ex. dynamiques moléculaires classiques
ou ab initio en mécanique quantique, mésoscopique (ex. les automates de gaz sur réseaux, ou
macroscopique (Smoothed Particle Hydrodyanmics, Particle in cell).
Les premières limites des méthodes numériques
Pour parler des méthodes basées sur un maillage, nous avons brièvement présenté celles qui
demeurent les plus populaires dans l’étude de systèmes physiques par simulation numérique.
Il est à noter cependant, malgré cette popularité, que des limites persistent encore et sont
sûrement liées à la formulation et/ou à la résolution de ces modèles mathématiques qui se
basent sur un domaine homogène et souvent isotrope et sur des fonctions d’approximation
uniformes, ce qui n’arrange pas l’assimilation d’une géométrie complexe du domaine (pour la
MDF) ou d’une émergence de structures hétérogènes (pour la MEF) au sein du système.
Ceci a conduit à l’élaboration de méthodes qui n’utilisent pas de maillage et de méthodes
parfaitement particulaire. Néanmoins, elles ne sont pas toujours irréprochables, surtout quant
à la prise en compte de conditions aux limites complexes affectant les approximations radiales
qui sont la base de ces méthodes.
Systèmes ne prenant pas en compte l’espace (EDO)
Un exemple de système pouvant être décrits par des EDO est la propagation d’une maladie au
sein d’une population. Il y’a beaucoup de modèles qui traitent en effet de ces épidémies.
Ces modèles sont composés de deux parties : les compartiments et les règles.
Les compartiments permettent de diviser les populations considérées en sous populations
d’entités homogènes selon les différents états possibles de la maladie ou de l’infection, d’où
le nom « modèle compartimental » employé en modélisation mathématique des épidémies
d’une manière générale.
Considérant la population humaine par exemple, celle-ci peut être compartimentée en sous
populations d’individus susceptibles (S), d’individus infectés (I), d’individus rétablis (R), mis en
quarantaine (Q), décédés (D) ; comme on peut le voir sur la figure suivante.
30
Unité 2: Modélisation de Systèmes Continus à Base D’agents
Fig.2 – Le modèle compartimental d’une maladie infectieuse
Les règles quant à elles donnent les proportions d’entités migrant d’un compartiment à un
autre. Exemple, la règle r(S—>I) exprime la proportion d’individus susceptibles devenant
infectés.
Chaque compartiment est représenté dans le modèle par une équation et les règles associées
donnent les proportions d’entités entrant et sortant du compartiment. Ainsi, le modèle
mathématique est un ensemble d’équations et sa simulation numérique montre l’évolution
quantitative de chaque compartiment selon l’échelle temporelle ou spatio-temporelle
considérée.
Bien que très efficaces, ces modèles présentent toutefois quelques limites conceptuelles.
En effet, ils ne permettent que de suivre l’évolution de la population en entier sans dire qui
sera affecté réellement. Ces modèles utilisent aussi beaucoup de moyennes surtout pour
déterminer les taux de transition d’un compartiment à un autre.
Tout comme les EDP, les EDO ont également besoin d’être discrétisées pour pouvoir être
résolues. Des schémas itératifs permettront alors de suivre étape par étape (pas de temps par
pas de temps) l’évolution des densités des compartiments.
Voyons maintenant le rôle que peut jouer l’informatique dans ce vaste domaine de la
modélisation et de la simulation.
Remarquer ce que l’informatique peut apporter
Dans ce contexte interdisciplinaire, il est important de rappeler que l’informatique moderne,
science de l’automatisation du stockage et du traitement de l’information est, avant tout,
intrinsèquement liée à un besoin de calcul numérique et de modélisation/reproduction du réel,
de l’abstrait et du vivant.
C’est dans cette mesure qu’elle intervient parfaitement dans la recherche en modélisation de
systèmes dynamiques.
31
Modélisation et la Simulation
Avec l’avènement des premiers ordinateurs vers le milieu du XXème siècle nous assistons
du reste à l’émergence d’architectures, de formalismes informatiques et de langages de
programmation et en même temps à la naissance d’une nouvelle génération de modélisateurs
numériques tels Richard Courant, un des précurseurs des éléments finis, ou John Von
Neumann…
Ce dernier dont les travaux, particulièrement en analyse numérique et sur le nucléaire,
nécessitent beaucoup de temps de calcul, est un des pionniers dans la construction des
premiers ordinateurs. On lui doit d’ailleurs l’architecture qui porte son nom et qui est tiré du
rapport sur l’EDVAC (Electronic Discrete Variable Automatic Computer).
Il est aussi à l’origine de la méthode de Monte-Carlo pour un gain de temps dans les
simulations et du concept d’automate cellulaire toujours dans un souci d’abstraction et de
modélisation du processus naturel de reproduction.
Le Britannique Turing peut également être cité, parmi d’autres, dans ce cadre. Célèbre pour
ses travaux sur la calculabilité (machine de Turing), il s’attaque déjà en ce temps à l’intelligence
artificielle et aux capacités des machines à « penser » ; le test de Turing au-delà de la
représentation du réel, notamment de l’homme et de sa conscience, il mène une tentative de
sa reproduction…
Pour d’abord préfigurer de l’apport potentiel de l’informatique dans ce domaine, son lien étroit
avec la modélisation est exhibé en retraçant l’évolution historique des langages et paradigmes
de programmation par rapport aux grandes questions de recherche soulevées en modélisation.
Evolution des langages de programmation pour la modélisation et la simulation
L’évolution des langages de programmation conjointement aux problèmes abordés et objets
modélisés depuis l’apparition des ordinateurs est notoire. Après le binaire (codes machine) et
l’assembleur (codes mnémoniques) dans les premiers programmes informatiques, surgissent
les langages de troisième génération à grande diffusion répondant déjà à la nécessité de
représenter des objets plus complexes.
Citons le Cobol pour la gestion et surtout le Fortran (mathematical FORmula TRANslating
system) avec John Backus d’IBM en 1957, qui se prête bien au calcul scientifique et à
la simulation, et qui est d’ailleurs le premier langage informatique symbolique. Il servira
largement, de par ses différentes versions améliorées, à la simulation de systèmes complexes
tels les CFD : Computational Fluid Dynamics, CC : Computational Chemistry, CWM : Climate
and Weather Modeling). Il se fera ressentir dans la suite le besoin de mettre à la disposition
des scientifiques de l’époque les prérogatives de productivité, de maintenance et de lisibilité
des programmes informatiques qui atteignent rapidement des tailles imposantes.
La programmation structurée fut donc son apparition avec des langages comme l’Algol
(ALGOrithmic Language) de Naur vers 1963, le Basic de Kurtz et Kemeny en 1964 ou le Pascal
de Wirth en 1971. Elle instruisit en partie l’émergence du paradigme objet très utilisé de nos
jours.
32
Unité 2: Modélisation de Systèmes Continus à Base D’agents
Force est de constater alors que le premier langage qui présenta cette notion d’objet est un
langage orienté vers la simulation ; Simula de Dahl et Nygaard en 1966 qui se base sur l’Algol.
Il sert alors à la modélisation de systèmes complexes comportant des activités parallèles. Ceci
reflète encore une fois l’interdépendance entre la construction de formalismes informatiques et
les besoins de modélisation.
En effet, avec les concepts d’objet et de classe, il devient aisé de représenter un élément actif
avec ses attributs et méthodes et d’en faire évoluer plusieurs qui sont des instances d’une ou
de plusieurs classes.
Il s’en suivra alors un renforcement de la notion d’objet dans certains langages notamment le
SmallTalk qui innove dans la communication entre objets en implémentant l’envoi de messages.
L’héritage suivra le courant vers les années 76 et confirme encore la nécessité de procéder à
l’abstraction informatique de certaines notions du réel ou du vivant.
Le paradigme objet sera enrichi au fur et à mesure et des primitives comme l’encapsulation, le
polymorphisme, l’interfaçage, la redéfinition verront le jour ainsi que de nouveaux langages
orientés objets comme l’ADA, le C++ ou le Java.
Toujours dans cet élan, les agents apparaîtront en repoussant l’horizon sur les problèmes
pouvant être appréhendés. En effet, les concepts comme la rationalité des entités modélisées,
leur capacité cognitive plus ou moins forte, le fait qu’ils puissent être situés dans un
environnement et la prise en compte de cet environnement ne sont pas le fort des langages
objet.
Contrairement à l’objet, un agent pourra donc avoir une certaine perception de son
environnement, une liberté d’initiatives, une faculté de filtrage des requêtes ou messages…, se
retrouvant ainsi dans divers domaines d’applicabilité souffrant d’une carence de formalismes
pour la simulation ; en sociologie, en biologie, en physique…
Conclusion
Cette activité consistait à donner une idée sur les systèmes continus pouvant être traités ainsi
que les méthodes mathématiques et les principes utilisés le plus souvent. Elle attire aussi
l’attention de l’apprenant sur l’apport incommensurable de l’informatique dans ce domaine en
plein essor.
Évaluation
• Quels sont les systèmes qui sont étudiés dans cette unité en terme d’interactions,
d’entités et de comportements ?
• Quelle est la différence entre EDP et EDO ?
• Quelles sont les différences entre méthodes eulériennes et lagrangiennes ?
• Reprendre l’historique de l’évolution des langages de programmation en fonction
des besoins de modélisation.
33
Modélisation et la Simulation
Activité 2 – La modélisation à base d’agents
Présentation
Nous allons présenter dans cette activité, le domaine des systèmes multi-agents. L’agent,
comme on le découvrira est une technologie qui améliore l’Objet (dans le sens informatique
du terme). Il nous permettra de procéder à la modélisation de systèmes continus en mettant
en avant les individus à représenter ainsi que leurs interactions. A noter qu’il s’agira d’une
approche à base de règles plutôt que d’une approche à base de lois qui débouche sur des
équations différentielles.
Détails de l’activité
L’agent
Fig.3 – Un univers multi-agent selon Jacques Ferber.
Il est une entité physique ou virtuelle, autonome, dotée de ressources et capable d’intervenir
dans son environnement. Il a une perception complète ou partielle du milieu dans lequel il
évolue et peut aussi collaborer avec d’autres agents afin de réaliser une tâche ou atteindre un
objectif (cf. fig. 3).
Une définition plus formelle, mais non universelle dans la communauté des SMA, est donnée
dans Jaques Ferber en 1995. En effet, constituant un paradigme relativement jeune, l’agent
n’admet toujours pas une définition unique et consensuelle.
34
Unité 2: Modélisation de Systèmes Continus à Base D’agents
Cependant, les caractéristiques clés qui peuvent être retenues et qui ressortent de ses
différentes définitions peuvent se résumer en quatre mots :
• L’autonomie : la capacité à évoluer selon un comportement propre sans
intervention de l’extérieur ;
• La réactivité : la capacité à réagir en fonction d’événements extérieurs ;
• La pro-activité : la capacité à prendre des décisions de manière plus ou moins
élaborée afin d’accomplir des objectifs ;
• La sociabilité : la capacité à interagir avec d’autres agents.
Suivant les aptitudes implémentées en plus par l’agent, une distinction peut être faite entre
agents cognitifs et agents réactifs.
Les agents cognitifs intègrent une représentation explicite de leur environnement (nature,
propriétés, lois d’évolution…) et des autres agents (comportements, buts, stratégies…) et
raisonnent à partir de ces connaissances.
Les agents réactifs, pour leur part, n’ont pas cette représentation de l’environnement et des
autres agents. Ils ne répondent qu’aux stimuli reçus et y associent les tâches à.
Il existe, entre ces deux extrémités, des agents hybrides associant la souplesse des
architectures réactives et la complexité des cognitives.
On peut terminer cette présentation en donnant une comparaison entre agent et objet :
Points communs
Etat interne (champs sous forme de variables ou constantes)
Peuvent agir sur leur état (via les méthodes)
Unités de comportement modulaires
Communiquent par envoi de messages
Différences
De l’autonomie de contrôle (méthodes internes) :
• Objet = unité d’exécution (celui qui appelle, décide)
• Agent = unité de comportement (celui qui reçoit, décide)
Du contrôle = un agent est une source de contrôle (contrôle local)
Des notions d’environnement = un agent a une représentation de l’environnement.
35
Modélisation et la Simulation
Les systèmes multi-agents (SMA)
Un système multi-agents (SMA) est donc un ensemble d’agents situés dans un environnement
et interagissant selon une certaine organisation. Cet énoncé met en exergue, comme il a été
le cas pour la définition d’un agent, un certain nombre de termes, en l’occurrence les Agents,
l’Environnement, les Interactions, l’Organisation.
L’organisation est très importante dans les systèmes multi-agents et on peut citer quelques
propriétés (comme Jaques Ferber) :
une organisation est constituée d’agents (individus) qui manifestent un comportement ;
l’organisation dans son entier peut être partitionnée, et les différentes partitions peuvent
éventuellement se chevaucher ;
le comportement des agents est décrit par leur fonction ou rôle au sein de leur organisation.
Ces rôles caractérisent les motifs (patterns) d’interaction qui les relient à d’autres rôles. Ils
stipulent les obligations, interdictions et permissions qui s’appliquent aux agents qui jouent
ces rôles ;
l’aspect organisationnel d’un SMA se situe à deux niveaux : au niveau organisationnel (social),
qui décrit ce qui persiste quand les agents entrent ou quittent l’organisation, et au niveau
concret (ou agent) qui constitue une instanciation particulière de la structure organisationnelle.
L’organisation peut donc constituer, à elle seule, le squelette du modèle développé. Il existe
d’ailleurs des démarches de modélisation très répandues basées sur l’organisationnel. En voici
quelques principales pour en donner un aperçu :
AGR un méta modèle basé sur trois abstractions ; l’agent, le groupe et le rôle. L’agent
appartient à un (des) groupe(s) et y joue (nt) un (des) rôle(s).
Cassiopée ; passant par la définition des comportements élémentaires (aptitudes de base des
agents), des comportements relationnels (faisant apparaître des comportements collectifs) et
des comportements organisationnels (déterminant la dynamique de l’organisation).
GAIA avec deux grandes étapes, l’analyse (rôles et interactions) et la conception (modèle
d’agents, de service et d’accointances) joignant les niveaux d’abstractions terminaux dans le
processus de modélisation
Les plate-formes SMA
Il est difficile de dresser une liste exhaustive des différentes plate-formes existantes pour la
simulation à base d’agents. En effet, les problèmes ciblés, les disciplines concernées, et les
démarches de modélisation choisies ne font que contribuer à l’explosion du nombre et de
la nature des plate-formes de simulation ; raison pour laquelle nous ne citons pas les plateformes dédiées, au risque de devoir en privilégier quelques unes qui ne représenteront pas
forcément un état de l’art conséquent. Des plate-formes génériques qui sont largement
utilisées dans différentes disciplines et contextes sont ici présentées :
36
Unité 2: Modélisation de Systèmes Continus à Base D’agents
• MadKit (Multi-Agent Development Kit) : écrite en Java, elle repose sur le modèle
AGR déjà vu et permet la prise en compte d’architectures hétérogènes d’agents,
de protocoles de communication élaborées, d’extensions et d’outils de gestion et
d’analyse de simulations à base d’agents. Elle bénéficie d’une forte communauté
autour d’elle.
• Swarm: met à disposition une collection complète de librairies orientées objet
permettant de développer des modèles en Objective C ou Java. Le modélisateur
peut alors utiliser des instanciations de classes déjà existantes ou bien procéder à
une spécialisation pour définir ses entités manipulées. Une particularité à relever
ici est qu’un swarm, en plus d’être un agent, est aussi une collection d’agents
avec une programmation d’événements qui lui est propre; ceci permet alors la
définition hiérarchisée d’agents.
• Repast (REcursive Porous Agent Simulation Toolkit) : disponible pour différents
langages (Repast pour Java, Microsoft .Net, Python Scripting) elle s’inspire
beaucoup de SWARM et intègre en plus des librairies pour des algorithmes
génétiques, des régressions…
• Ascape : écrite aussi en Java, elle s’inspire également de Swarm et regroupe les
agents dans des tiges (scapes) qui sont aussi des agents (structure hiérarchique).
Les comportements des agents ne se définissent qu’à travers ces tiges. Ascape
produit aussi fréquemment des collections de statistiques sur les tiges (toutes les
itérations).
• Mason (Multi-Agent Simulator Of Neighborhoods): une librairie Java pour la
simulation multi-agents à événements discrets. Spécialement conçue pour mener
un nombre important de simulations (plus de 100.000) avec éventuellement
un nombre important d’agents (plus de 10.000) dans le but d’optimiser des
paramètres ou d’effectuer des apprentissages, cette plateforme possède un
noyau très simple et de taille réduite. Elle est donc limitée quant aux propriétés
natives des agents.
• AgentSheets : un outil d’initiation permettant aux non programmeurs de
développer et partager (exporter sous forme d’applets) des modèles plus ou
moins sophistiqués en définissant de manière très simple des comportements et
des objectifs pour chaque agent et en les combinant ensuite. Cette plateforme
est plus utilisée pour créer des simulations et des jeux interactifs pédagogiques
ainsi que des environnements virtuels.
• Starlogo : son langage se base sur le Logo et est traduit en Java avant d’être
exécuté. Elle définit les agents comme des tortues évoluant sur des patches sous
le regard d’un observer pouvant tout contrôler. Cette plateforme est appropriée
pour la simulation de phénomènes émergents impliquant un grand nombre
d’agents simples (réactifs).
• Netlogo: est une extension de Starlogo plus populaire avec une multitude de
librairies coopératives implémentées. Elle présente, en plus d’être dans un cycle
de développement régulier, plusieurs améliorations par rapport à Starlogo ;
système de coordonnées « continues », simulation participative distribuée
(hubnet), exportations de simulations sous formes d’applets…
37
Modélisation et la Simulation
Autres formalismes, métaheuristiques et structures informatiques
Nous proposons dans cette dernière partie d’activité la présentation de certaines abstractions
de modèles et metaheuristiques intervenant dans la simulation et formalisées d’un point de
vue informatique.
Les automates cellulaires (AC)
Une structure très simple constituée de cellules adjacentes dont le changement d’état discret
est conditionné par leur état et celui de leurs voisines proches suivant une fonction de
transition définie (fig. 4).
Les automates cellulaires ont montré que des règles toutes simples pouvaient engendrer des
configurations complexes et variées. Pour une présentation plus détaillée des AC voir :
Corge, C., 2008. Machines de Turing et automates cellulaires. 1ère Edition. Ellipses. 492 p.
Ils ont par la suite servi dans plusieurs domaines ; en dynamique des fluides, dans les systèmes
physiques, en dynamiques urbaines, dans le trafic routier, en biologie et dans bien d’autres
domaines.
Les AC sont un exemple patent d’un outil d’abord formalisé mathématiquement mais dont le
maniement informatique permit de faire émerger toute leur richesse.
Fig. 4 – Voisinage de Von Neumann et fonction de transitions
d’états.
38
Unité 2: Modélisation de Systèmes Continus à Base D’agents
Les réseaux de neurones (RdN)
Ils se définissent à partir d’un ensemble de neurones artificiels inspirés du neurone humain.
Chaque neurone a un ensemble d’entrées
pondérées par des poids synaptiques
, une
fonction de combinaison des valeurs d’entrée et une fonction d’activation qui produit la sortie
(activation) suivant la valeur de la combinaison (fig 5.).
Le RdN s’établit donc sur une succession de couches de neurones dont chacune prend ses
entrées sur les sorties de la couche précédente.
Fig. 5 – Structure d’un neurone artificiel ; entrées, fonction de
combinaison, d’activation et sortie
Un point essentiel dans les RdN est la mise à jour des coefficients synaptiques ; opération qui
leurs attribue les facultés d’apprentissage. Elle s’effectue par l’entrainement du réseau par
un certain nombre d’exemples (base d’apprentissage) qui renforcent ou inhibent les poids
synaptiques retenant ainsi l’information.
Depuis leur première application avec Rosenblatt en 1962, les RdN se sont retrouvés en
traitement de signal, reconnaissance de formes, classification, prédiction de séries temporelles,
optimisation… Un bon résumé est donné par :
Hu, Y.H., Hwang, J.-N., 2001. Handbook of Neural Network Signal Processing. CRC Press.
408p.
Les métaheuristiques : abstractions de processus du réel et du vivant
Les métaheuristiques constituent une famille de méthodes largement utilisée pour les
problèmes d’optimisation discrète ou continue. Elles s’inspirent de différentes analogies avec
la biologie (algorithmes génétiques, la recherche tabou), l’éthologie (algorithmes à colonies
de fourmis), les systèmes sociaux (algorithmes d’optimisation par essaims particulaires),
la physique (algorithmes de recuit simulé)... et reflètent encore l’apport de la science
informatique qui rend possible l’exploration combinatoire de différentes sources d’inspiration
pour le traitement de problèmes du réel et du vivant.
39
Modélisation et la Simulation
Voici le détail de quelques unes.
les algorithmes génétiques : ils font leur apparition avec les travaux de Holland en 1975
qui avaient principalement deux objectifs ; expliquer les processus naturels d’évolution
et d’adaptation (croisements, mutations, sélection…) et concevoir des systèmes artificiels
possédant des propriétés similaires à ces processus. Pour cela, il considère que le patrimoine
génétique d’une population contient la (ou une) solution à un problème adaptatif donné.
Toutefois, cette solution nécessite la combinaison génétique, au cours de la reproduction
et sur de nombreuses générations éventuellement, car elle est implicitement dispersée sur
les individus de la population. Les algorithmes génétiques se basent alors sur ce principe
et à l’aide de chaines de caractères (représentant un chromosome par exemple) décrivent
l’ensemble des solutions possibles dotées de notes (fitness) et procèdent aux opérations de
sélection, d’enjambement et de mutation pour converger vers une meilleure solution – une
nouvelle population – par itération. Les champs d’application des algorithmes génétiques
sont multiples : en économie, en optimisation de fonctions, en finance, en théorie du contrôle
optimal…
les algorithmes à colonies de fourmis: l’auto-organisation émergeant des comportements
de sociétés de fourmis est la principale source d’inspiration de ces méthodes. En effet, il est
constaté une certaine forme d’intelligence qui s’établit par le biais de simples interactions
locales entre fourmis (dépôt de phéromone). Par exemple la recherche d’un plus court
chemin entre le nid des fourmis et la nourriture peut être résolu par ce simple mécanisme. La
convergence de cette technique repose sans doute sur des rétroactions positives et négatives
au sein du système. Les rétroactions positives tentant à renforcer les meilleures solutions par
renforcement (la phéromone attire les autres fourmis qui en redéposent sur ces lieux) et les
rétroactions négatives à éliminer les autres solutions (la dissipation par évaporation empêche
la stabilisation de ces solutions). Les algorithmes à colonies de fourmis propagent donc des
entités (fourmis artificielles) sur l’espace de recherche et aboutissent aux regroupements des
fourmis sur la(es) solution(s) du problème à résoudre. Les applications sont nombreuses et en
voici quelques unes : en hydrodynamique côtière, en optimisation numérique, en répartition
de charges dans les réseaux…
les algorithmes d’optimisation par essaims particulaires : très apparentés aux algorithmes à
colonies de fourmis, ils furent crées au début pour modéliser des interactions sociales simples
entre des agents autonomes sans superviseur, mais finalement ils montrèrent une meilleure
applicabilité en tant qu’outil. Contrairement aux fourmis artificielles – mues par la sensibilité
à la phéromone – les particules de ce système ont une dynamique régit par trois tendances ;
suivre sa propre vitesse (tendance aventurière) revenir vers sa meilleure position (tendance
conservatrice) ou aller vers la meilleure position fournie par ses informatrices (tendance
panurgienne).
40
Unité 2: Modélisation de Systèmes Continus à Base D’agents
Conclusion
Voici ce qui termine cette deuxième activité où il est présenté le formalisme informatique
(agent) que nous utiliserons dans la prochaine activité pour modéliser nos systèmes
dynamiques.
Évaluation
• Définir l’agent.
• Quel est l’apport de l’Agent par rapport à l’Objet ?
• Donner des exemples de méta modèle de SMA.
• Citer Trois plateformes SMA ainsi que leurs propriétés.
• Qu’est ce qu’un réseau de neurones ?
• Qu’est ce qu’un automate cellulaire ?
• Donner des exemples d’application d’un automate cellulaire.
Activité 3 – A base d’agents Vs A base d’équations
Introduction
Cette dernière activité va nous présenter un exemple simple de système dynamique. Avant de
passer à la modélisation de ce système, il faudra d’abord comparer les deux approches (à base
d’agents Vs à base de règles). Ensuite nous découvrirons comment on obtient un modèle à
base d’équations et comment construire un autre à base d’agents.
Détails de l’activité
Comparaison des deux approches
Pour comparer les deux approches, il est préférable de dresser un tableau récapitulatif.
41
Modélisation et la Simulation
Avantages et Inconvénients
Modèle à base d’équations
Modèle à base d’agents
+ très formalisé
- moins formalisé
+ beaucoup étudié
- relativement jeune
+ quelques variables
- beaucoup de paramètres
- analyse difficile
+mise en œuvre aisée
- questions limitées
+exploration hypothèses
- temps de calcul raisonnable
- temps de calcul important
difficultés aves les systèmes complexes + prise en charge des systèmes
complexes
Exemple de modélisation (Proies/Prédateurs)
Nous allons nous intéresser dans cette dernière partie à un modèle simple qui devrait nous
donner assez rapidement une idée sur la modélisation mathématique (à base d’équations) et
informatique (à base d’agents).
Le modèle Lotka-Volterra de proies/prédateurs:
Le modèle concerne deux populations dont les effectifs au temps t sont respectivement notés
A et B. La deuxième population (les prédateurs) se nourrissant de la première (les proies). On
fait les hypothèses suivantes (simplificatrices !) :
Les proies A disposent de nourriture en quantité illimitée, seuls les prédateurs B s’opposent
à leur croissance et en l’absence de prédateurs la population des proies a une croissance
exponentielle.
Le nombre de prédateurs est limité par la quantité de proies dont ils disposent pour se nourrir
et en l’absence de proies, la population des prédateurs a une décroissance exponentielle.
Le nombre de rencontres entre proies et prédateurs est à la fois proportionnel à A et B donc
proportionnel au produit AB.
Le taux de disparition des proies ainsi que le taux de croissance des prédateurs dues à
ces rencontres sont l’un et l’autre proportionnels au nombre de rencontres entres les deux
populations.
42
Unité 2: Modélisation de Systèmes Continus à Base D’agents
Ceci nous donne le système d’équations suivant :
On sait que le système même simple donne une équation relativement compliquée. Nous
allons construire un modèle à base d’agents, en spécifiant plutôt les règles d’interactions.
Proies/Prédateurs… (Agents)
Proie (leuk):
• Se déplacer aléatoirement dans l’espace.
• Vérifier s’il peut se reproduire.
• Vérifier s’il a atteint l’âge maximum.
Prédateur (bouki):
• Se déplacer aléatoirement dans l’espace.
• Vérifier s’il peut se reproduire.
• Vérifier s’il a atteint l’âge maximum.
• Vérifier s’il y’a une proie à dévorer à proximité
• Vérifier s’il a assez d’énergie
Ce modèle semble déjà plus réaliste que le premier et nous allons l’implémenter pour voir
s’il peut donner des résultats proches de la réalité (équilibre écologique entre les deux
populations). Nous allons donc utiliser la plateforme Netlogo que nous avons déjà présentée
précédemment.
Présentation de Netlgo
Trois onglets:
• Interface: C’est la partie où on interagit avec le modèle fini. On peut y voir aussi
l’évolution des agents et visualiser les données de la simulation. Il contient
des boutons, des slider bars, switches, monitor boxes, ainsi que le “world” où
évoluent les agents (grande fenêtre noire).
•
Information: Contient l’information textuelle sur le modèle pour dire comment
utiliser le programme, il donne une documentation du modèle.
• Procedures: Il contient le code pour spécifier le comportement des agents. Il
est constitué, tout comme un autre programme par une partie déclarative, un
ensemble de procédures dont une spéciale que nous verrons après.
43
Modélisation et la Simulation
Développement du modèle Proies/Prédateurs
Le Bouton Setup
Ouvrir un nouveau modèle dans Netlogo
(Fichier/New)
• Créer le bouton “Set Up” (Bouton/Bouton, puis cliquer sur la partie blanche)
• Dans la fenêtre “Commands” taper “setup”. Ceci correspond à la procédure qui
va initialiser le modèle
• Dans la fenêtre “Display Name” taper le nom que vous voulez voir apparaitre
“Initialiser”.
• Cliquer sur OK.
Le Bouton Go
• Créer le bouton “Go” (Bouton/Bouton, puis cliquer sur la partie blanche)
• Dans la fenetre “Commands” taper “go”. Ceci correspond à la procédure qui va
initialiser le modèle
• Dans la fenêtre “Display Name” taper le nom que vous voulez voir apparaitre
“Initialiser”.
• Activer l’option “forever” pour que la commande s’exécute jusqu’à s’arrêter avec
STOP.
• Cliquer sur OK.
• Les boutons setup et go sont en rouge (parce que les fonctions correspondantes
ne sont pas encore définies).
44
Unité 2: Modélisation de Systèmes Continus à Base D’agents
Les paramètres du modèle
Choisir “slider” et cliquer sur l’espace blanc
éfinir le nom de la variable (initial-leuks) sa borne inférieure, sa borne supérieure et sa valeur
par défaut
Les paramètres du modèle (bis)
Min
Max
Value
initial-leuks
0
250
100
Initial-boukis
0
250
50
taux-naiss-leuks (%)
1
20
4
taux-naiss-boukis (%)
0
20
5
energy-conso-leuk
0
100
20
Il faut donc créer pour toutes ces variables des “slider” et obtenir
45
Modélisation et la Simulation
Les agents et leurs attributs
En Netlogo, on utilise les turtles (tortues) pour désigner des agents. S’il y’a plusieurs types
d’agents il faut créer des catégories d’agents, des breeds
Déclarations
breed [nom_pluriel nom_singulier]
Déclarer en Netlogo
breed [leuks leuk]
breed [boukis bouki]
Pour les paramètres
boukis-own [energy]
leuks-own [energy]
Les premières procédures
Setup: dire ce qui doit être fait à l’initialisation:
Générer le nombre de leuks et de boukis (initial-leuks, initial-boukis)
Les placer aléatoirement dans le domaine (fenêtre noir)
Leur donner une forme “shape”
Fixer les valeurs des attributs
Voici le code, prenez le temps de le comprendre!!!
to setup
clear-all
ask patches [set pcolor white]
set-default-shape leuks “circle”
create-leuks initial-leuks
[set color red
set size 1.5
set energy random 2
setxy random-xcor random-ycor ]
set-default-shape boukis “circle 2”
create-boukis initial-boukis
[ set color black
set size 2
set energy random 2
setxy random-xcor random-ycor ]
end
46
Unité 2: Modélisation de Systèmes Continus à Base D’agents
Ecrire une procédure vide pour le bouton go
to go
end
Tout est au vert en principe!!!!!!
Maintenant, appuyer plusieurs fois sur le bouton setup pour voir les initialisations
Ce n’est que le début, notre modèle ne fait rien, il faut programmer les procédures à appeler
dans le go
to go
if not any? turtles [ stop ]
ask leuks [move
try-to-reproduce-leuks
chekh-death ]
ask boukis [move
set energy energy - 1
try-to-catch-leuks
try-to-reproduce-boukis
chekh-death
]
tick
end
Pour que cette fonction marche, Il faut donc définir :
move,
try-to-reproduce-leuks,
try-to-reproduce-boukis,
try-to-catch-leuks,
chekh-death
47
Modélisation et la Simulation
Nous donnons les codes dans la page qui suit :
to move
rt random 50
lt random 50
fd 1
end
Pour tester cette fonction move, désactiver toutes les autres fonctions non encore définies en
mettant ; devant
Ex
; try-to-reproduce-leuks
Une fois ceci écrit, démarrer la simulation avec initaliser puis lancer
Les agents bougent mais avec aucune interaction/relation
to try-to-reproduce-leuks
if random-float 100 < taux-naiss-leuks [
set energy (energy / 2)
hatch 1 [ rt random-float 360 fd 1 ]
]
end
Une fois ceci écrit, démarrer la simulation avec initaliser puis lancer
Les agents leuks se multiplient…
to try-to-reproduce-boukis
if random-float 100 < taux-naiss-boukis [
set energy (energy / 2)
hatch 1 [ rt random-float 360 fd 1 ]
]
end
Une fois ceci écrit, démarrer la simulation avec initaliser puis lancer
Tout le monde se multiplie…
48
Unité 2: Modélisation de Systèmes Continus à Base D’agents
to try-to-catch-leuks
if prey != nobody
[ ask prey [ die ]
set energy energy + ener-conso-leuks ]
end
Une fois ceci écrit, démarrer la simulation avec initaliser puis lancer
Les boukis prennent le dessus…
to chekh-death
if energy < 0 [ die ]
end
Une fois ceci écrit, démarrer la simulation avec initaliser puis lancer
Les leuks s’en sortent….
Sorties graphiques
Dans l’interface, choisir au niveau des boutons « plot »
Donner le nom de votre graphique ainsi que le nom des axes
Ajouter un “Plot Pens”, il existe déjà un default (chaque plot pen correspond à une nouvelle
courbe)
Renommer le default par leuks et mettre la couleur à rouge
Ajouter un plot pen boukis et laisser la couleur à noir
Cocher « Show legend »
Rajouter cette procédure à GO
to update-plot
set-current-plot “boukis-leuks”
set-current-plot-pen “leuks”
plot count leuks
set-current-plot-pen “boukis”
plot count boukis
end
49
Modélisation et la Simulation
Que remarque t’on sur la population des leuks et boukis?
Il faut donc rajouter une contrainte d’énergie à Leuk par rapport à sa nourriture (herbe)
Définir l’herbe avec les patches de Netlogo.
Dans les déclarations rajouter patches-own [compteur]
Dans setup rajouter les herbes vertes ask patches [set pcolor green]
Dans les variables rajouter
Min
Max
Valeurs
herbe-temps-repouss
0
100
30
ener-conso-herb
0
50
4
Dans setup
ask patches [set compteur random herbe-temps-repouss
set pcolor one-of [green white]
]
Dans to go (rajouter cette directive aux leuks)
set energy energy - 1
try-to-eat-grass
(et cette action)
ask patches [if pcolor = white [ifelse compteur <= 0
[ set pcolor green
set compteur herbe-temps-repouss ]
[ set compteur compteur - 1 ]]]
Il faut donc rajouter une fonction try-to-eat-grass
50
Unité 2: Modélisation de Systèmes Continus à Base D’agents
La fonction try-to-eat-grass
to try-to-eat-grass
if pcolor = green [
set pcolor white
set energy energy + ener-conso-herb
]
end
Voilà, si vous avez bien suivi le tutoriel, vous devez avoir maintenant un modèle stable avec un
équilibre écologique.
Commentez le modèle avec vos camarades de classes.
Rajouter l’affichage de la quantité d’herbe pour avoir le résultat de la figure suivante :
51
Modélisation et la Simulation
52
Unité 2: Modélisation de Systèmes Continus à Base D’agents
Conclusion
Nous voilà à la fin de cette activité qui nous a permis de construire notre premier modèle à
base d’agents. N’hésitez pas à l’enrichir et à mieux le découvrir.
Pour plus d’informations sur Netlogo consulter l’aide qui vient avec le Logiciel !
Évaluation
Faites une dissertation de 2 pages pour comparer les approches de modélisation à base
d’équations et celle à base d’agents.
Résumé de l’unité
Nous sommes à la fin de cette unité qui présentait la modélisation de systèmes continus. Un
tutoriel a été développé pour implémenter un modèle (Proies/Prédateurs) qui ne prend pas en
compte l’espace. Pour les problèmes de dynamiques spatiales, parcourez la documentation de
Netlogo pour découvrir les modèles qui ont déjà été développer.
Évaluation de l’unité
Vérifiez votre compréhension!
Projet à rendre
Directives
Le projet dure une semaine
Système de notation
Le projet est noté sur 20
Évaluation
Rajouter dans le modèle des chasseurs qui poursuivent les prédateurs (boukis) de telle sorte à
avoir un système toujours équilibré.
Prendre en compte ces chasseurs dans l’affichage.
Lectures et autres ressources
Les lectures et autres ressources de cette unité se trouvent au niveau des lectures et autres
ressources du cours.
53
Modélisation et la Simulation
Unité 3: Modélisation de Systèmes
Dynamiques (Systems Dynamics)
Introduction à l’unité
Cette unité traite les systèmes dynamiques (Systems Dynamics) qui sont un type de
modélisation où l’objectif est de comprendre comment les éléments de toute la population
sont en relations les uns avec les autres. Il n’est pas question de suivre les individus mais la
population en générale. Cette approche différente de celle basée sur les agents (qui suivent
les individus) que nous avons vue dans l’unité 2 sera tout de même traitée par le même logiciel.
En effet, dans Netlogo, il y a un module permettant de simuler les Systems Dynamics. Cette
unité s’inspire du manuel de l’utilisateur du systems Dynamics de Netlogo.
Objectifs de l’unité
À la fin de cette unité, vous devriez être capable de:
1.
Définir les Systems Dynamics ;
2.
Décrire les composants d’un SD (stocks, variables, flux, liens,...) ;
3.
Utiliser la modélisation par flux ;
4.
Implémenter un modèle avec le module SD de Netlogo.
Termes clés
Systems Dynamics : une approche de modélisation pour
la compréhension du comportement non linéaire des
systèmes complexes au fil du temps en utilisant les stocks,
les flux, la rétroaction interne, les boucles, les délais…
.
Activités d’apprentissage
Activité 1 - Présentation du module SD de Netlogo
Introduction
Avec les agents de l’unité précédente, on décrivait leur comportement individuel et leurs
interactions pour obtenir un comportement général.
Avec le module SD, nous ne programmerons pas le comportement individuel des agents. Nous
verrons plutôt comment la population se comporte de manière générale.
54
Unité 3: Modélisation de Systèmes Dynamiques (Systems Dynamics)
La programmation du module SD se fait en dessinant un diagramme définissant d’une part
les populations en jeu (ou “stocks”) et d’autre part comment ces populations interagissent les
unes avec les autres.
Le module SD lit alors votre diagramme et génère le code NetLogo approprié (les variables
globales, les procédures et les reporters) permettant de faire « tourner » votre système
dynamique dans NetLogo.
Détails de l’activité
Les concepts de base
Un diagramme de système dynamique est formé de quatre types d’éléments :
Les stocks,
Les variables,
Les flux
Et les liens.
Un stock est une collection d’entités. Par exemple, un stock peut représenter une population
de moutons, l’eau d’un lac ou le nombre de machines dans une usine.
Un flux (flow) transporte ces entités, remplissant ou vidant un stock. Les flux ressemblent à
des tuyaux munis d’un robinet, le robinet permettant de contrôler la quantité de choses qui
s’écoulent dans le tuyau.
Une variable est une valeur utilisée dans le diagramme. Elle peut être soit une équation qui
dépend d’autres variables, soit une constante.
Un lien (link) permet qu’une valeur présente dans une partie du diagramme soit aussi
disponible dans une autre partie. Un lien transmet un nombre d’une variable ou d’un stock à
un autre stock ou à un flux.
Le module SD calcule comment les valeurs des stocks changent au cours du temps en les
évaluant régulièrement.
L’approximation n’est pas toujours parfaite, mais nous pouvons jouer sur la précision en
changeant la valeur du pas de temps dt. Quand dt diminue, les valeurs du modèle sont
évaluées plus fréquemment, ce qui fait que la simulation devient plus précise. Toutefois, la
diminution de la valeur de dt ralentit aussi la vitesse de la simulation.
Quelques exemples de modèles SD
La bibliothèque des modèles NetLogo “NetLogo Models Library” contient dans sa section
“Sample Models” des exemples qui utilisent le Module SD.
Ces modèles explorent la croissance de populations (et, dans les modèles avec prédation,
aussi les déclins de populations).
55
Modélisation et la Simulation
En voici une présentation brève, prenez le temps de les explorer :
• “Exponential Growth” (Croissance exponentielle) et “Logistic Growth” (Croissance
logistique) qui sont de simples exemples de la croissance d’un stock.
• “Wolf Sheep Predation (aggregate)” (Prédation loups-moutons) est un exemple de
système avec de multiples stocks qui s’influencent les uns les autres. Il modélise
un écosystème de prédateurs-proies en utilisant le module SD.
Conclusion
Voici qui donne une idée sur la modélisation SD. Il ne s’agit donc pas d’une même approche
que celle d’agents déjà vue. Il faut donc savoir suivant la question qui est posée, quelle
méthode utiliser.
Évaluation
Chercher dans la littérature d’autres logiciels qui font de la SD.
Activité 2 – Le fonctionnement du module SD
Présentation
Voyons maintenant comment fonctionne exactement le module SD de Netlogo. Dans le menu
“Tools” cliquer sur “System Dynamics Modeler”.
Détails de l’activité
Les diagrammes
Le panneau “Diagram” (diagramme) est l’endroit où dessiner le diagramme de votre système
dynamique. Sa barre d’outils contient les boutons pour éditer, supprimer ou créer des
éléments dans le diagramme.
56
Unité 3: Modélisation de Systèmes Dynamiques (Systems Dynamics)
Les éléments du diagramme
Le diagramme d’un système dynamique est formé de quatre types de composants : les stocks,
les variables, les flux (flows) et les liens (links).
Les stock
Pour créer un stock, pressez le bouton “Stock” de la barre d’outils et cliquez dans la zone de
dessin située en-dessous. Un nouveau stock apparaît. Chaque stock demande un nom unique,
qui deviendra une variable globale. Les Stocks requièrent aussi une valeur initiale (“Initial
value”). Cette dernière peut être un nombre, une variable, une expression NetLogo complexe
ou un appel à un reporter NetLogo.
Les variables
Pour créer une variable, pressez le bouton “Variable” et cliquez dans la zone de dessin du
diagramme. Chaque variable d’un Système dynamique doit recevoir un nom unique, qui
deviendra le nom d’une procédure ou d’une variable globale. Les variables demandent aussi
une expression. Cette expression peut être un nombre, une variable, une expression NetLogo
complexe ou un appel à un reporter NetLogo.
Les flux
Pour créer un flux, pressez le bouton “Flow”. Cliquez et maintenez pressé là où le flux doit
commencer – soit sur un Stock, soit sur une zone vide – et tirez jusqu’à l’endroit où vous
voulez qu’il aboutisse – sur un Stock ou une zone vide. Chaque flux doit avoir un nom unique,
qui deviendra celui d’un reporter NetLogo. Les flux demandent une aussi expression, qui
doit représenter le « débit » du flux de l’entrée à la sortie du « tuyau ». Cette expression peut
être un nombre, une variable, une expression NetLogo complexe ou un appel à un reporter
NetLogo. Si sa valeur est négative, le flux s’écoule dans l’autre direction
Quand plus d’un flux est connecté à un stock, il est important de prendre en compte la
manière dont ces flux vont interagir les uns avec les autres. NetLogo n’oblige pas les flux qui
sortent d’un stock de le faire dans un ordre particulier.
De plus, NetLogo ne regarde pas si la totalité des flux qui sortent d’un stock est inférieure ou
égale au contenu du stock. Ces comportements peuvent être implémentés explicitement dans
l’expression exigée par le flux.
Par exemple, si un flux est défini par une valeur constante, disons 10, vous pouvez vous assurer
qu’il ne draine jamais plus que la valeur du stock en utilisant la primitive min : min (list stock
10).
Si je veux qu’un flux A vide un stock avant que flux B ne soit calculé, je peux lier le flux A au
flux B et modifier flux B pour soustraire la valeur de flux A du stock : min (list (max (list 0 (stock flow-a))) 10).
57
Modélisation et la Simulation
Les liens
Pour créer un lien, cliquez et maintenez pressé sur le point de départ du lien – une variable,
un stock ou un flux – et tirez jusqu’à la variable ou le flux de destination.
Le code des procédures
Le module SD génère des variables et des procédures NetLogo basées sur le contenu du
diagramme construit. Ce sont en fait ces procédures qui permettent à NetLogo d’effectuer les
calculs nécessaires à la simulation décrite par le diagramme. Le panneau “Procedures” de la
fenêtre du module SD affiche les procédures NetLogo générées.
Le contenu du panneau “Procedures” n’est pas éditable. Pour modifier le système dynamique,
vous devez éditer le diagramme.
Examinons d’un peu plus près comment le code généré se rapporte au diagramme :
Les stocks correspondent à des variables globales qui ont été initialisées avec la valeur ou
l’expression fournie dans le champ “Initial value”. Chaque stock est mis à jour à chaque pas,
mise à jour basée sur les flux entrant et sortant.
Les flux correspondent aux procédures qui contiennent les expressions fournies dans le champ
“Expression”.
Les variables peuvent être soit des variables globales, soit des procédures. Si l’ “Expression”
fournie est une constante, elle est devenue une variable globale et a été initialisée avec cette
valeur. Si vous avez utilisé une “Expression” plus complexe pour définir la variable, elle a été
transformée en une procédure, comme pour les flux.
Les variables et les procédures définies dans ce panneau sont accessibles depuis la fenêtre
principale de NetLogo, de la même manière que le sont les procédures et les variables
définies dans le panneau “Procedures” principal de NetLogo. Vous pouvez appeler ces
procédures depuis le panneau “Procedures” principal, depuis le Centre de commande ou
avec les boutons placés sur le panneau “Interface”. Vous pouvez faire référence aux variables
globales à partir de n’importe où, y compris à partir du panneau “Procedures” principal et
dans les moniteurs.
Il y a trois procédures importantes à signaler, qui sont :
• System-dynamics-setup,
• System-dynamics-go
• Et system-dynamics-do-plot.
System-dynamics-setup initialise le modèle de Système dynamique. Il donne sa valeur à
dt, appelle reset-ticks et initialise les stocks et les convertisseurs. Les convertisseurs à valeur
constante sont initialisés en premier, suivis par les stocks à valeur constante. Les autres stocks
sont initialisés ensuite par ordre alphabétique.
58
Unité 3: Modélisation de Systèmes Dynamiques (Systems Dynamics)
System-dynamics-go fait tourner le Système dynamique par pas d’unité de temps dt. Il
calcule les valeurs des flux et des variables et met à jour la valeur des stocks. Il appelle aussi
tick-advance avec la valeur de dt. Les convertisseurs et les flux avec des “Expressions” nonconstantes ne sont calculés que lorsque cette procédure est appelée, toutefois, l’ordre de leur
évaluation n’est pas défini.
System-dynamics-do-plot affiche les valeurs des stocks du Système dynamique. Pour utiliser
cette procédure, il faut d’abord créer un traceur de courbes dans le panneau “Interface”
de NetLogo. Il faut définir un crayon pour chaque stock dont vous voulez représenter le
graphique. Cette procédure utilise le traceur courant, que vous pouvez changer au moyen de
la commande set-current-plot.
Conclusion
Cette activité s’achève maintenant. Nous allons passer à l’implémentation du modèle proies/
prédateurs.
Évaluation
• Qu’est ce qu’une procédure en Netlogo.
• Quels sont les éléments essentiels dans Netlogo SD ?
• Donner pour chacun la manière de les configurer ou de les paramétrer.
Activité 3 – Implémentation du modèle Proies/Prédateurs
Introduction
Cette dernière activité va nous permettre d’implémenter notre modèle mais avec un
formalisme différent de l’unité précédente.
Détails de l’activité
La reproduction des proies (les moutons)
Ouvrez un nouveau modèle en NetLogo.
Lancez le “System Dynamics Modeler” dans le menu “Tools”.
59
Modélisation et la Simulation
Pressez le bouton “Stock” dans la barre d’outils.
Cliquez dans la zone du diagramme.
Vous voyez un stock avec un point d’interrogation rouge au centre.
Double-cliquez ce stock pour l’éditer.
Nommez ce Stock sheep (moutons).
Mettez la valeur initiale “Initial value” à 100.
Désactivez la case à cocher “Allow Negative Values” (autoriser les valeurs négatives). Un
nombre de moutons négatif n’a pas de sens!
60
Unité 3: Modélisation de Systèmes Dynamiques (Systems Dynamics)
La population de moutons peut s’accroître si un mouton naît. Pour ajouter ce fait à notre
diagramme, il faut créer un flux entrant dans le stock de moutons.
Cliquez le bouton “Flow” de la barre d’outils et pressez le bouton de la souris dans une partie
vide à gauche du stock de moutons. Tirez le flux vers la droite jusqu’à ce qu’il se connecte avec
le stock de moutons. Relâchez le bouton de la souris.
Éditez le flux et nommez-le sheep-births.
Le nombre de moutons nés pendant une période de temps dt dépend du nombre de moutons
vivants : plus il y a de moutons vivants, plus il y a de nouveau-nés.
Dessinez un lien partant du stock sheep et allant vers le flux sheep-births.
Pour le moment, entrez une constante, par exemple 1, dans le champ “Expression”.
Le taux de natalité des moutons dépend aussi de certains facteurs constants dont la discussion
sort du cadre de ce modèle, comme le taux de reproduction par exemple.
Créez une variable et nommez-la sheep-birth-rate.
Donnez-lui une valeur de 0.04
Dessinez un lien de la variable sheep-birth-rate au flux sheep-births.
Votre diagramme devrait ressembler maintenant à ceci :
61
Modélisation et la Simulation
L’étiquette du flux sheep-births est rouge parce que nous ne lui avons pas encore donné
d’expression. La couleur rouge indique toujours qu’il manque quelque chose à cette partie du
diagramme.
Le nombre de moutons entrant dans notre stock dépendra positivement du nombre de
moutons et du taux de natalité sheep-birth-rate.
Éditez le flux sheep-births et écrivez l'expression suivante : sheep-birth-rate * sheep.
Nous avons maintenant un diagramme complet. Pour voir le code NetLogo généré par ce
diagramme, cliquez l’ongleL “Procedures” de la fenêtre du module SD. Ce code devrait être le
suivant :
Une fois que le modèle créé avec le module SD, nous pouvons interagir avec ce modèle par
l’intermédiaire de la fenêtre “Interface” de NetLogo. Construisons maintenant le modèle
NetLogo nous permettant d’exécuter le code généré par le diagramme.
62
Unité 3: Modélisation de Systèmes Dynamiques (Systems Dynamics)
Nous avons besoin des boutons setup et go pour appeler les procédures system-dynamicssetup et system-dynamics-go créées par le module SD.
De plus, pour pouvoir bien suivre l’évolution des populations il nous faut aussi un moniteur et
un traceur.
Sélectionnez la fenêtre NetLogo principale.
Dans le panneau “Procedures”, écrivez :
to setup
ca
system-dynamics-setup
end
to go
system-dynamics-go
system-dynamics-do-plot
end
Allez dans le panneau “Interface”.
Créez un bouton setup.
Créez un bouton go (n’oubliez pas d’en faire un bouton « pour-toujours » dans la case à cocher
“Forever”).
Créez un moniteur sheep.
Créez un traceur appelé “populations” avec un crayon nommé sheep.
Nous sommes maintenant prêts à faire tourner notre modèle.
Pressez le bouton “setup”.
Ne pressez pas le bouton “go” maintenant.
Écrivez plutôt quatre ou cinq fois de suite go dans la Ligne de commandes du Centre de
commande en pressant la touche Retour après chaque go.
Observez ce qui se passe. La population de moutons s’accroît exponentiellement. Après
quatre ou cinq itérations, nous avons une énorme quantité de moutons. Nous aboutissons à
cette situation parce que nous avons des moutons qui se reproduisent mais qui ne meurent
jamais. Pour résoudre ce problème, terminons notre diagramme en introduisant une
population de loups qui mangent des moutons.
63
Modélisation et la Simulation
Revenez à la fenêtre “System Dynamics”
Ajoutez un stock de loups appelé “wolfes”.
Ajoutez des flux, des variables et des liens pour que le diagramme ressemble à :
Ajoutez encore un lien allant du stock wolves au flux qui sort du stock sheep.
Nommez les éléments du diagramme de la manière suivante :
64
Unité 3: Modélisation de Systèmes Dynamiques (Systems Dynamics)
Où la valeur initiale des loups (wolves) est 30,
Wolf-deaths vaut wolves * wolf-death-rate,
Wolf-death-rate vaut 0.15,
Predator-efficiency vaut 0.8,
Wolf-births vaut wolves * predator-efficiency * predation-rate * sheep,
Predation-rate vaut 3.0E-4,
Et sheep-deaths vaut sheep * predation-rate * wolves.
Nous en avons maintenant vraiment terminé avec le diagramme, mais il faut encore mettre le
modèle NetLogo à jour.
Retournez dans la fenêtre principale de NetLogo.
Ajoutez un crayon appelé “wolves” au traceur “populations”.
Pressez setup et go pour voir le diagramme de votre Système dynamique en action.
Vous devriez voir un graphique des populations qui ressemble à ceci :
Conclusion
Voici votre premier modèle SD. Il va falloir l’améliorer et rajouter d’autres fonctionnalités
comme on l’a fait lors de l’unité précédente.
65
Modélisation et la Simulation
Évaluation
• Dire pourquoi les courbes de ce modèles sont plus lisses que celles du modèles à
base d’agents.
• Quand est ce que ces deux formalismes sont t’ils équivalents ?
Résumé de l’unité
Vous venez de voir la deuxième manière de simuler un système, les Systems Dynamics. Vous
pourrez donc comparer les deux approches et choisir la meilleure suivant les questions posées
sur le système.
Évaluation de l’unité
Vérifiez votre compréhension!
Projet à rendre
Directives
Le projet dure une semaine
Système de notation
Le projet est noté sur 20
Évaluation
Rajouter dans le modèle un stock d’herbe et faites dépendre la survie des moutons sur ce
stock d’herbes.
Développer un autre modèle pour vous exercer.
Lectures et autres ressources
Les lectures et autres ressources de cette unité se trouvent au niveau des lectures et autres
ressources du cours.
66
Unité 4: Modélisation à Événements Discrets
Unité 4: Modélisation à
Événements Discrets
Introduction à l’unité
Cette unité abordera le dernier formalisme de modélisation ; la modélisation à événements
discrets. Cette modélisation est différente des deux premières car ne prends pas en compte
le temps mais les événements importants du système qui seront les déclencheurs de
changements d’états. Cette unité donnera des concepts clés autour de cette modélisation à
événements discrets en précisant les structures nécessaires pour mener une telle modélisation
(agents, file d’attente, horloge,…). Un exemple sera traité pour vous aider à cerner ce
formalisme.
Objectifs de l’unité
À la fin de cette unité, vous devriez être capable de:
1.
Appliquer les principes de base de la simulation à événements discrets;
2.
Utiliser des méthodes de simulation pour modéliser et analyser des systèmes
à événements discrets;
3.
Appliquer les outils et les techniques de simulation dans un projet pratique
qui implique de multiples scénarios.
Termes clés
Évènement: Fait important ou notoire dans le cours d’un
processus.
File d’attente: une queue, un regroupement séquentiel
d’individus ou d’objets attendant de manière organisée
quelque chose.
Activités d’apprentissage
Activité 1 – Définition de la modélisation à événements discrets
Introduction
Cette activité va nous permettre de bien comprendre la modélisation à événements discrets.
Un bref historique sera donné et certaines notions seront bien présentées pour cerner ce
domaine
67
Modélisation et la Simulation
Détails de l’activité
Situer la modélisation à événements discrets
La modélisation à événements discrets remonte à la même époque que la modélisation
de systèmes dynamiques (dynamical systems). En 1961, l’ingénieur IBM Geoffrey Gordon
introduisit GPSS, considérée comme la première mise en œuvre de la modélisation à
événements discrets. Aujourd’hui, un certain nombre de programmes - y compris les versions
modernes de GPSS - offrent la modélisation à événements discrets.
La modélisation à événements discrets nécessite de considérer le système comme un
processus : une séquence d’opérations que les agents effectuent.
Les opérations peuvent être des délais, un service pouvant provenir de ressources différentes,
des sélections de processus, des spécifications, etc… Tant que les agents devant réaliser le
processus sont en concurrence pour des ressources limitées ils pourront être mis en attente.
Les files d’attente feront donc partie de presque tous les modèles à événements discrets.
Le modèle est spécifié graphiquement comme un organigramme de processus où des blocs
représentent des opérations. L’organigramme commence généralement avec des blocs
“source” qui génèrent des agents et les injectent dans le processus et se termine par des blocs
«puits» qui les éliminent.
Les Agents – d’abord dénommés par transactions dans GPSS ou entités dans d’autres logiciels
de simulation - peuvent représenter des clients, des patients, des appels téléphoniques, des
documents physiques et électroniques, des pièces, des produits, des palettes, des opérations
informatiques, des véhicules, des tâches, des projets, des idées, et ainsi de suite.
Les Ressources représentent le personnel, les médecins, les opérateurs, les travailleurs, les
serveurs, les processeurs, la mémoire de l’ordinateur, de l’équipement et des transports….
Le temps de service et les temps d’arrivée des agents sont généralement stochastiques.
Puisqu’ils sont tirés d’une distribution de probabilité, les modèles à événements discrets sont
eux-mêmes stochastique. En termes simples, cela signifie qu’un modèle doit fonctionner
pendant un laps de temps précis ou effectuer un certain nombre d’itérations avant de produire
une sortie pertinente.
Quelques notions autour de la modélisation à événements discrets
Passons maintenant à la définition de certaines notions importantes autour de la modélisation
à événements discrets.
68
Unité 4: Modélisation à Événements Discrets
Évènements discrets :
La grande majorité des processus que nous observons dans le monde se composent de
changements continus (voir unité suivante sur les modèles continus).
Toutefois, lorsque nous essayons d’analyser ces processus, il est souvent judicieux de diviser un
processus continu en parties discrètes pour simplifier l’analyse. Les techniques de modélisation
à événements discrets représentent les processus du monde réel qui sont en continu avec des
événements non continus que vous définirez.
Voici quelques exemples d’événements:
• Un client arrive dans un magasin ;
• Un camion a terminé le déchargement ;
• Un nouveau produit est lancé ;
• Les niveaux des stocks ont atteint un certain seuil, etc.
Dans la modélisation à événements discrets le mouvement d’un train d’un point A à un
point B devra être modélisé avec deux événements, à savoir un événement de départ et un
événement d’arrivée. Le mouvement réel du train serait modélisé comme un délai (intervalle)
entre les événements de départ et d’arrivée. Cela ne signifie pas cependant que vous ne
pouvez pas modéliser le train en mouvement. En fait, avec AnyLogic (que nous verrons
plus tard) vous pourrez produire des animations visuelles continues pour des événements
logiquement discrètes.
Fig. 1 – la représentation d’un processus discret, étape après étape.
Le terme événements discrets est utilisé dans le strict sens pour désigner la modélisation
« centrée autour du processus » qui suggère de représenter le système comme une
succession d’opérations en cours d’exécution sur les entités. Des entités tels que les clients,
les documents, les parties du système, des paquets de données, des véhicules, ou des appels
téléphoniques.
69
Modélisation et la Simulation
Les entités sont passifs, mais peuvent avoir des attributs qui affectent la façon dont ils sont
manipulés ou peuvent faire changer ses attributs pendant qu’ils évoluent.
La modélisation « centrée autour du processus » suit une approche de modélisation de niveau
moyen d’abstraction. Bien que chaque objet soit modélisé individuellement comme une entité,
généralement le modélisateur ignore beaucoup de détails de “niveau physique”, comme
la géométrie exacte, l’accélération et la décélération. La modélisation « centrée autour du
processus » est largement utilisée dans les domaines de la fabrication, de la logistique, et de la
santé…
L’agent :
Lors de la modélisation et la simulation, le modélisateur :
Identifie les entités actives, les agents (qui peuvent être des personnes, des entreprises, des
projets, des actifs, des véhicules, des villes, des animaux, des navires, produits, etc.)
Définit leur comportement (des conducteurs principaux, des réactions, de la mémoire, états,
...),
Les met dans un certain environnement,
Établit des connexions,
Et exécute la simulation.
Le comportement global émerge alors comme le résultat d’interactions de nombreux
comportements individuels (Une définition plus formelle d’un agent sera donnée dans l’unité
suivante).
La file d’attente :
Une file d’attente est “un type de données abstrait, dans lequel les éléments sont ajoutés à
l’arrière et retiré de l’avant;. Le «premier arrivé, premier sorti » “(FIFO)”
La principale différence entre une file d’attente et une pile est que les éléments dans une file
d’attente sont mis à la fin et récupérés au début. Pour un exemple de file d’attente de tous les
jours, envisagez une ligne de clients dans une banque d’attente pour être servi.
Chaque nouveau client obtient la queue à l’arrière. Lorsque la caissière est prêt à aider un
nouveau client, le client à l’avant de la ligne est servi. Ceci est une file d’attente - le premier
client en ligne est le premier servi.
Fig. 2 – Une file d’attente à la banque.
70
Unité 4: Modélisation à Événements Discrets
L’horloge :
Dans la simulation on doit garder une trace du temps, quelles que soient les unités de mesure
qui sont adaptés pour le système en cours de modélisation. Dans les simulations à événements
discrets, par opposition à des simulations en temps réel, le temps «saute» parce que les
événements sont instantanés - l’horloge passe à l’événement suivant au fur et à mesure que la
simulation se déroule.
La liste des événements :
La simulation maintient aussi au moins une liste des événements de la simulation. Cela est
parfois appelé l’ensemble des événements en attente car il énumère les événements qui sont
en suspens à la suite de l’événement précédemment simulé, mais qui doivent encore être euxmêmes simulées.
Un événement est décrit par le moment où il se produit et un type qui indique le code qui sera
utilisé pour simuler l’événement. Il est fréquent que le code de l’événement soit à paramétrer,
dans ce cas, la description de l’événement contient également des paramètres du code de
l’événement.
La condition de terminaison :
Parce que les événements sont enchainés, théoriquement une simulation à événements
discrets pouvait durer infiniment. Ainsi, le concepteur de la simulation doit décider quand la
simulation se terminera.
Conclusion
Cette première activité donne une idée sur la modélisation à événements discrets. Vous
devez avoir connaître maintenant tous les termes qui ont trait à ce domaine. Vérifier vos
connaissances maintenant.
Évaluation
• Pour quel type de systèmes doit on utiliser la modélisation à événements discrets
• Qu’est ce qu’une file d’attente
• Expliquer un peu la notion d’horloge dans une simulation à événements discrets
Activité 2 – Représentation de Tous les Éléments d’un Modèle à
Événements Discrets
Présentation
Cette activité va nous permettre de savoir quand et comment utiliser une simulation à
événements discrets. Il revient d’abord sur la comparaison d’une simulation à événements
discrets avec celle continue avant de traiter un cas simple (service d’un distributeur
automatique de banque) avec un logiciel informatique (Anylogic).
71
Modélisation et la Simulation
Détails de l’activité
Comparaison événements discrets Vs Simulation continues
Prenons par exemple le problème suivant :
Il y a trois camions qui apportent des produits de l’usine.
En moyenne, ils prennent 3 jours pour arriver.
Chaque camion apporte entre 10 et 20 produits (tous équiprobables)
A coté, nous avons cinq distributeurs qui récupèrent les produits de l’usine selon des
commandes.
Habituellement, ils veulent de 5 à 25 produits (tous équiprobables).
Chaque distributeur a en moyenne besoin de 2 jours pour retourner sur le marché, et une
moyenne de 5 jours pour livrer les produits.
Et si on voulait savoir : Combien de produits seront vendus de cette manière ?
Dans ce cas, nous n’utiliserons pas la simulation continue. Parce que :
Nous ne voulons pas suivre le nombre de jours en temps réel ;
Nous ne nous soucions même pas de tous les jours ;
Les choses peuvent ne pas être synchronisées,
Nous utiliserons alors la simulation à temps discrets.
Pas de boucle temporelle:
Dans une simulation à événements discrets: Il n’y a pas de boucle de temps:
il y a des événements qui sont prévus ;
À chaque étape, le prochain événement planifié avec le meilleur temps sera traité.
Les agents ne mènent pas d’actions continues:
Au lieu de cela, ils attendent que les événements se produisent,
Ils établissent de nouveaux événements à correspondre à la prochaine chose qu’ils vont faire.
Les agents peuvent être bloqués
Les agents ne peuvent pas faire tout ce qu’ils veulent faire:
S’ils veulent un produit (par exemple) et il qu’il n’y en a pas, ils se bloquent (Ils ne peuvent pas
programmer de nouveaux événements jusqu’à ce qu’ils soient débloqués),
De nombreux agents peuvent être bloquées en attente de la même ressource, (Plus d’un
distributeur peut être en attente de l’arrivée des camions).
Découvrir les files d’attentes et les variables aléatoires discrètes
72
Unité 4: Modélisation à Événements Discrets
Il est nécessaire de comprendre les processus de file d’attente et de variables aléatoires
discrètes. Mener une recherche sur internet sur ces éléments.
Exemple de modélisation (Distributeur automatique bancaire)
Ce tutorial est tiré du site d’Anylogic. Il faudra procéder à son implémentation :
D’abord, créons un modèle simple de clients faisant le rang devant un guichet automatique.
Créer un modèle
Cliquer sur le bouton New
pour avoir la fenêtre de création de modèle.
Choisissez un nom (Bank)
Indiquez l’emplacement où vous souhaitez stocker vos fichiers du modèle.
Recherchez le dossier existant en utilisant le bouton Browse ou tapez le nom du dossier que
vous voulez créer dans la zone Location.
Sélectionnez minutes pour les unités de temps de modèle.
Cliquez sur Finish pour terminer le processus.
Un Nouveau modèle est créé. Il a déjà un type d’agent appelé Main et une expérience
appelée Simulation.
Les agents sont les principaux éléments d’un modèle AnyLogic. Dans notre cas, l’agent
principal sera l’entité dans lequel on va définir toute la logique du modèle: ici, nous allons
mettre l’organigramme du processus, et définir une animation simple.
73
Modélisation et la Simulation
Au centre de l’espace de travail, vous verrez l’éditeur graphique. Il représente le schéma du
type Main.
A gauche de l’éditeur graphique, vous pouvez voir la vue Projects et la vue Palette qui
partagent la même zone.
La vue Projects donne accès aux modèles AnyLogic actuellement ouverts dans l’espace de
travail.
L’arborescence de l’espace de travail offre une navigation facile à travers les modèles.
La vue Palette contient tous les éléments graphiques que vous pouvez ajouter sur l’éditeur
graphique de votre agent simplement en faisant un glisser-déposer. Les éléments de modèle
sont regroupés par catégories dans un certain nombre de Palettes. Sur le côté droit de
l’espace de travail, vous pouvez voir la vue Properties. La vue Properties est utilisé pour afficher
et modifier les propriétés des éléments du modèle sélectionné.
Lorsque vous sélectionnez quelque chose - par exemple, dans la vue Projects ou dans l’éditeur
graphique - la vue Properties affiche les propriétés de la sélection. Maintenant, nous pouvons
commencer à développer le modèle.
74
Unité 4: Modélisation à Événements Discrets
Création de l’organigramme définissant le processus
Maintenant, nous allons définir le processus avec un organigramme composé de blocs Process
Modeling Library.
Chaque bloc définit ici une opération qui sera effectuée par des agents lorsqu’ils passent par
ce bloc.
Dans AnyLogic vous créez des organigrammes en ajoutant les blocs de la bibliothèque palette
dans le schéma graphique, reliant les blocs entre eux, tout en réglant les paramètres des blocs.
Créer l’organigramme du modèle.
Après avoir créé le modèle, AnyLogic va passer à la vue de la palette et afficher la palette
Process Modeling Library:
Rajouter des blocs Process Modeling Library sur le diagramme et connecter les comme indiqué
sur la figure suivante. Pour ajouter un bloc d’organigramme, cliquer sur l’élément sans relâcher
et mettez le sur l’éditeur graphique.
75
Modélisation et la Simulation
Tout en faisant glisser les blocs et en les plaçant l’un près de l’autre, vous pouvez voir les lignes
reliant les blocs qui apparaissent.
Noter que ces connecteurs doivent connecter uniquement les ports situés sur les frontières
droite et gauche des icônes de bloc.
L’organigramme donné dans la figure précédente donne le modèle simple d’une file d’attente,
consistant en une source d’agents, un délai (et une file d’attente avant ce délai) et objet
récepteur final.
Quelques explications sur ces blocs d’organigramme.
Source ce bloc génère des agents. Il est généralement utilisé comme le point de départ
d’un processus. Dans notre cas, il modélise l’arrivée des clients.
Queue ce bloc représente une file d’attente. Dans notre modèle il représente une file de
clients attendant de pouvoir accéder au distributeur.
Delay ce bloc représente le délai associé au distributeur.
Sink ce bloc représente la fin du processus et supprime les agents qui y accèdent.
Consulter le guide du Process Modeling Library Reference pour plus de détails.
Configurer les blocs de l’organigramme
Pour modifier les propriétés d’un élément, sélectionner le en cliquant dessus dans l’éditeur
graphique de la vue Projects. Ceci provoque l’ouverture de cet élément dans la vue Properties.
Choisir le bloc source dans la vue Properties, et spécifier à quelle fréquence les clients
arrivent. Taper 0.3 et sélectionner per minute pour Arrival rate.
76
Unité 4: Modélisation à Événements Discrets
Modifier les propriétés du bloc queue. Fixer la capacité à 15 agents. Au plus 15 agents
pourront attendre dans cette queue.
Modifier les propriétés du delay. Nommer l’objet ATM (distributeur). Préciser le temps de
traitement. Supposer que ce temps est décrit par une distribution triangular de moyenne de
1.5, de minimum 0.8 et de maximum 3.5 minutes.
triangular() est une function standard AnyLogic de générateur de nombre aléatoire.
AnyLogic dispose aussi d’autres distributions aléatoires, comme la loi Normale, de Poisson ou
Exponentielle. Revoir ces distributions dans l’aide d’Anylogic
77
Modélisation et la Simulation
Exécuter le modèle.
Maintenant que nous avons fini notre modèle simple, nous pouvons l’exécuter. Mais d’abord il
faut compiler le modèle en cliquant sur Build Model
.
S’il y a des erreurs, la compilation échoue et les erreurs seront affichées. Double-cliquez sur
l’erreur et corrigez là.
Une fois le modèle correctement compilé, vous pouvez l’exécuter.
Lancer le modèle
Cliquer sur le bouton Run
et choisissez l’expérience que vous voulez lancer dans la liste
déroulante. Votre simulation s’appelle Bank/Simulation.
Une fois que vous aurez démarré le modèle, vous aurez une fenêtre de présentation.
Cliquer sur le bouton Run et observer les processus dynamiques. Vous verrez un organigramme
animé avec des informations comme la taille de la queue, le nombre d’agents restants et ainsi
de suite!
78
Unité 4: Modélisation à Événements Discrets
Si nécessaire, ajuster la vitesse d’exécution en utilisant Slow Down and Speed Up dans la barre
d’outils.
Vous pouvez inspecter les objets du diagramme de flux pour obtenir des informations
détaillées sur leur état actuel.
Cliquez sur l’objet pour ouvrir sa fenêtre inspecter qui affiche les statistiques sur l’objet, par
exemple pour l’objet Queue l’inspecteur montre la capacité de file d’attente, le nombre
d’agents passé à travers l’un des ports de l’objet et également si l’option de délai d’attente est
activée pour cette file d’attente. La chaîne contains affiche le nombre d’agents actuellement en
cours dans l’objet ainsi que les identifiants de ces agents.
79
Modélisation et la Simulation
Conclusion
Voici votre premier modèle avec une modélisation à événements discrets. Ce n’est qu’une
initiation mais vous devrez conduire un projet pour compléter ce modèle de file d’attente
devant le distributeur.
Évaluation
• Donner le code en Java d’une simulation de file d’attente
• Faire une dissertation de 4 pages sur les variables aléatoires discrètes
Résumé de l’unité
Cette unité a couvert le dernier formalisme de modélisation à savoir celle à événements
discrets. Vous avez maintenant vu les trois grandes familles de modélisation qui constituaient
ce cours.
Évaluation de l’unité
Vérifiez votre compréhension!
Projet à rendre
Directives
Le projet dure une semaine, il faudra retrouver le tutoriel Bank Office (Process Centric) sur le
site d’Anylogic et le poursuivre.
Système de notation
Le projet est noté sur 20
Évaluation
Continuer le modèle développé en tutoriel pour prendre en compte :
l’affichage graphique
80
Unité 4: Modélisation à Événements Discrets
d’ajouter des gestionnaires de comptes et de caisses
81
Modélisation et la Simulation
et de faire des statistiques
Montrer comment rajouter des fonctionnalités
Lectures et autres ressources
Les lectures et autres ressources de cette unité se trouvent au niveau des lectures et autres
ressources du cours.
82
Siège de l’Université Virtuelle Africaine
The African Virtual University
Headquarters
Cape Office Park
Ring Road Kilimani
PO Box 25405-00603
Nairobi, Kenya
Tel: +254 20 25283333
[email protected]
[email protected]
Bureau Régional de l’Université
Virtuelle Africaine à Dakar
Université Virtuelle Africaine
Bureau Régional de l’Afrique de l’Ouest
Sicap Liberté VI Extension
Villa No.8 VDN
B.P. 50609 Dakar, Sénégal
Tel: +221 338670324
[email protected]
2017 UVA