YouTube

Got a YouTube account?

New: enable viewer-created translations and captions on your YouTube channel!

French subtitles

← Documentation et numéros aléatoires

Get Embed Code
3 Languages

Showing Revision 5 created 08/27/2017 by Sukran.

  1. Documentation et nombres aléatoires
  2. Nous avons notre modèle et c’est à peu près
  3. ce que nous voulions faire. Quand j’utilise
  4. le modèle pour parler à propos de quelques
  5. concepts-clés des modèles à base d’agents.
  6. Avant tout, nous avons fait un bon travail
  7. de documentation du code. Vous voulez
  8. probablement documenter l’onglet info. Je
  9. retourne à cet onglet. A la section ‘What
  10. is it ?’ par exemple, nous pouvons dire :
  11. [il écrit] ‘C’est un modèle du jeu des héros et
  12. des lâches créé par le groupe Fratelli'.
  13. Nous pouvons poursuivre et remplir les
  14. autres sections. Une chose que je trouve
  15. très importante, en tant que codeur de modèle
  16. ou programmeur de modèle ou tel que je
  17. construis mon modèle, est de rédiger au
  18. début ce que l’on appelle un pseudo-code de
  19. description sur la manière dont le modèle
  20. fonctionne. Je fais cela souvent au niveau
  21. de la section ‘How it works’ (comment cela fonctionne)
  22. car ce contenu peut évoluer. Vous pourriez aussi
  23. vouloir le sauvegarder dans un document séparé
  24. plus technique si vous ne voulez pas l’inclure
  25. directement dans l’onglet info. Vous savez
  26. que j’ai toujours parlé du fait qu’il y a une
  27. [écrit – les passages entre ‘’ = ce qu’il écrit]
  28. ‘procédure d’initialisation’ et comment il
  29. va y avoir une procédure ‘itérative ou par
  30. période’. L’initialisation se fait avec la
  31. procédure ‘initialiser’ et l’itération avec
  32. ‘exécuter’. Puis que veut-on que le modèle
  33. fasse ? Parfois, j’écris ceci avant même
  34. de créer le modèle. En l’occurrence, je
  35. connais bien le modèle donc je vais juste
  36. commencer à l’écrire. Comme vous le savez,
  37. nous avons voulu ‘créer un groupe de tortues’
  38. et, dans un travail futur, nous voulons que
  39. ce ‘nombre soit défini avec un curseur
  40. d’input’ présent sur l’interface. Je ne l’ai
  41. pas fait pour ce modèle pour l’instant.
  42. ‘Chaque tortue se déplace vers un lieu
  43. aléatoire’ à l’écran. Dans le lieu, nous
  44. pouvons avoir la condition basée sur la
  45. personnalité : ‘il y a un curseur appelé
  46. ‘personalities’ qui spécifie le comportement’.
  47. La plupart du temps si nous parlons d’une
  48. variable dans la description du pseudo-code,
  49. nous l’écrivons en majuscules : [il modifie]
  50. ‘INITIALISER’, ‘EXECUTER’, ‘PERSONNALITES’
  51. en majuscules, et ‘NOMBRE’ de notre ‘nombre
  52. de tortues’ pour le distinguer du reste de
  53. notre texte. ‘Si PERSONNALITES = ‘Brave’
  54. les tortues deviennent bleues’. Même chose
  55. pour les lâches : ‘Si PERSONNALITES =
  56. ‘Lâches’ les tortues deviennent rouges’.
  57. Idem pour les tortues mixtes : ‘Si PERSONNALITES
  58. = ‘Mixtes’ les tortues deviennent bleues
  59. ou rouges aléatoirement’. Nous devons aussi
  60. dire que ‘chaque tortue choisit un AMI et un
  61. ENNEMI’. Et ‘nous réinitialisons le compteur
  62. de périodes’ si vous voulez. C’est donc juste
  63. une description en langage naturel. Faisons
  64. de même pour la procédure GO. ‘Chaque tortue
  65. qui est bleue se déplace’… Je viens de réaliser
  66. que ce n’est pas ce que j’ai défini... D’où
  67. l’importance de la documentation ! Si vous
  68. avez remarqué, j’écris que la tortue devient
  69. bleue si elle est brave mais dans le code,
  70. ce sont les lâches qui deviennent bleues.
  71. Donc corrigeons cette erreur pendant que
  72. nous sommes encore là. D’où l’importance
  73. d’être sûr d’avoir vérifié votre code. Modifions
  74. pour les tortues ‘Brave’ la couleur en
  75. ‘rouge’ et ‘bleue’ pour les lâches. ‘Chaque
  76. tortue qui est bleue s’éloigne de l’ennemi
  77. et se dirige de l’autre côté de l’ami’. Ce
  78. sont des variables donc je les mets en
  79. majuscules : ‘ENNEMI’ et ‘AMI’. Nous pouvons
  80. faire la même chose pour : ‘chaque tortue
  81. qui est rouge avance vers l’ENNEMI et
  82. rejoindre l’AMI’, quelque chose comme cela.
  83. C’est la description en langage naturel du
  84. modèle lui-même, très facile à faire et
  85. c’est une description en pseudo-code. Dès
  86. lors, je peux transmettre à quelqu’un
  87. d’autre le modèle pour savoir ce qu’il en
  88. pense. Il est important d’écrire cette
  89. documentation, soyez certain de l’avoir
  90. fait aussi bien dans un document séparé qu’à
  91. l’intérieur du code. Il est alors plus facile
  92. de dire si votre modèle conceptuel et votre
  93. modèle implémenté correspondent. Une chose
  94. que je trouve très intéressant dans ce
  95. modèle est lorsque vous cliquez sur ‘MIXED’,
  96. vous n’avez jamais les mêmes procédures ou
  97. les mêmes résultats. Donc il semble être
  98. toujours un peu différent car NetLogo place
  99. aléatoirement les tortues dans le monde.
  100. Néanmoins, ce qui est intéressant est que
  101. l’ordinateur n’a pas actuellement une notion
  102. juste de l’aléatoire. A la place, il utilise
  103. un générateur de nombres aléatoires pour
  104. créer ce que l’on appelle des nombres
  105. pseudo-aléatoires. Ces nombres sont encore
  106. générés selon un processus déterministe
  107. spécifié par des RANDOM-SEED dans lequel
  108. NetLogo génère un tas de nombres aléatoires
  109. à chaque fois que le modèle est lancé et
  110. utilise ces graines (seeds) pour décider
  111. quelles valeurs seront tirées. Mais vous
  112. pouvez initialiser le SEED. Pour illustrer
  113. cela, une chose que je peux faire est d'écrire
  114. par exemple, [il écrit] ‘random-seed 188’.
  115. Puis, je peux dire [écrit] ‘show random 100’.
  116. Ce, deux-trois fois et cela va générer trois
  117. nombres aléatoires. Si je rétablis le SEED
  118. aléatoire avec la même valeur [il écrit] :
  119. ‘random-seed 188’ puis réécris ‘show random 100’,
  120. je vais avoir les 3 mêmes nombres aléatoires
  121. à chaque ligne de résultat. Cela signifie
  122. que si je vois un modèle de comportement
  123. et que j’ai initialisé le RANDOM-SEED, je
  124. peux recréer le modèle même si c’est
  125. techniquement un résultat aléatoire de ce
  126. qui se passe. C’est ce qui est fait souvent
  127. lorsque vous lancez un tas de modèles à base
  128. d’agents dans lesquels vous initialisez le
  129. SEED avant de le lancer. Alors, si quelque
  130. chose d’intéressant se passe dans le modèle
  131. vous pouvez revenir en arrière et regarder
  132. les résultats de l’étape précédente. En fait,
  133. si vous ouvrez le modèle des ‘Héros et des
  134. lâches’ qui se trouve dans la librairie des
  135. modèles dans NetLogo (enregistrez avant
  136. votre modèle en-cours). Vous le trouverez
  137. sous la section ‘IABM Textbook’ au chapitre 2
  138. (CHAPTER 2) qui est le chapitre avec notre
  139. modèle. Nous y avons ajouté des configurations
  140. pré-initialisées. Avec ces dernières, si
  141. vous lancez les commandes nommées ‘PRESET’
  142. [clic droit sur le bouton ‘DOT’ puis ‘Edit’],
  143. vous avez cette longue chaîne de caractères.
  144. Si vous regardez dans le code [onglet CODE
  145. puis liste ‘PROCEDURE’, choisir ‘preset’],
  146. la procédure PRESET prend une graine aléatoire
  147. [68 ici] et initialise cette graine avec cette
  148. valeur. En fait, il doit aussi initialiser
  149. le nombre d’agents avec une valeur spécifique
  150. car si le nombre d’agents est différent
  151. alors vous aurez un nombre différent d'appels
  152. Qu’est-ce que cela nous permet de faire ?
  153. Quand nous cliquons sur un de ces boutons
  154. de configuration de pré-initialisation, nous
  155. allons toujours avoir le même modèle. Si
  156. nous cliquons sur le bouton du modèle ‘DOT’
  157. puis GO, vous allez voir que nous avons un
  158. point qui tourne. Il y a un modèle standard
  159. que nous voyons si nous cliquons sur le
  160. bouton ‘FROZEN’ puis GO, vous voyez que
  161. nous arrivons à cette étape qui est intéressante
  162. où un tas de tortues sont en train de trembler
  163. de froid au milieu du monde. Un de mes préférés
  164. est le modèle du jeu de l’ondamania qui
  165. rebondit d’un bord à un autre bord.
  166. Le modèle en spirale qui crée cet effet en
  167. spirale au milieu. Vous pouvez essayer les
  168. autres ondamania ou yo-yo ou le modèle du
  169. troupeau errant. Nous appelons aussi
  170. 'GENERALLY COOL ONE THAT EVENTUALLY STOPS’
  171. dont le point à relever est qu’il stoppe.
  172. Nous n’avons pas trouvé de nom plus court.
  173. De toute façon, cela illustre à la fois un
  174. puissant problème et bénéfice du monde de
  175. NetLogo qui est la modélisation à base
  176. d’agents, ce qui fait que vous allez être
  177. capable de contrôler quelque peu le caractère
  178. aléatoire de ce qui se passe mais vous devez
  179. réfléchir quand vous générez les résultats
  180. de votre modèle sur la signification réelle
  181. de ce caractère aléatoire. Voici pour cette
  182. semaine, excepté la conclusion qui arrive
  183. dans la suite. Vous pouvez y aller et le test
  184. sera vite mis en ligne. Merci. La semaine
  185. prochaine, nous commencerons l’unité 3 dans
  186. lequel nous aborderons comment développer
  187. des modèles que d’autres personnes ont construit.