Academia.eduAcademia.edu

Modélisation et la Simulation

2018

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. 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 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 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

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