PROGRAMMER UN SIMULATEUR DEXPRIENCE ALATOIRE Fabienne Venant GRMS
PROGRAMMER UN SIMULATEUR D’EXPÉRIENCE ALÉATOIRE Fabienne Venant GRMS 2019
Travailler les probabilités ■ Place importante dans la société. ■ Utiles dans plusieurs professions ■ Connaissance du traitement des données et de probabilité – atout pour vivre dans une société de plus en plus axée sur les statistiques. – éviter d’être induit en erreur par les statistiques – réduire les incertitudes envers des phénomènes aléatoires La pensée probabiliste amène à reconnaître l’importance de la variabilité des résultats, à tenir compte de l’ensemble des résultats possibles, à décrire la probabilité d’un résultat ou d’un évènement, à faire des prédictions ou à prendre des décisions fondées sur une évaluation des probabilités.
Simuler une expérience aléatoire ■ Combattre les conceptions erronées ■ Adopter une approche fréquentielle: – bonne estimation de la probabilité théorique d’un évènement. ■ Simulateur d’expérience aléatoire: – Explorer la situation – générer rapidement un grand nombre d’essais – obtenir une estimation de cette probabilité
Programmer un simulateur ■ Adapter le simulateur à la situation ■ Choisir les notions à mettre en jeu ( probabilité d’un évènement, équiprobabilité, comparaison entre fréquences relatives et probabilités théoriques…) ■ Modéliser la situation (passer de l’objet physique à l’objet virtuel (simulé). ■ ■ ■ générer les résultats de façon analogue à ceux expérimentés concrètement : – considérer tous les cas possibles de l’expérience aléatoire – les reproduire de façon juste. réflexion profondément probabiliste questionnement sur les paramètres qui régissent les expériences aléatoires.
La situation des rondelles ■ Une boîte contient trois rondelles de même format. La première rondelle est bleue sur ses deux faces. La deuxième est rouge sur ses deux faces. La troisième a une face bleue et une face rouge. On brasse la boîte, on tire une rondelle au hasard, puis on regarde une de ses faces seulement. ■ Le jeu consiste à prédire la couleur de l’autre face de cette rondelle. Quelle stratégie optimiserait votre probabilité de gagner?
Quelles sont les stratégies possibles 1. toujours prédire la même couleur que celle de la face visible; 2. toujours prédire la couleur contraire; 3. prédire au hasard; 4. toujours prédire rouge; 5. toujours prédire bleu. 6. …
PHASE 1 Modéliser la situation en simulant le tirage d’une rondelle
Tâche de l’élève ■ Compléter le programme: – simuler le tirage d’une rondelle parmi trois rondelles à deux faces: ■ deux faces rouges, ■ deux faces bleues ■ une face rouge et une face bleue. – Afficher d’abord la première face de la rondelle puis la seconde face. ■ Modéliser la situation – Déterminer les instructions et les variables à mettre en jeu pour: ■ attribuer une couleur à chaque face, ■ respecter la distribution de probabilité de la situation réelle. – Les probabilités d’avoir une couleur donnée pour la première face, puis une autre couleur (ou la même) pour la deuxième face doivent être les mêmes que dans la situation réelle.
Compléter le programme ■ Programme à compléter: https: //scratch. mit. edu/projects/337204120 ■ Quels sont les évènements possibles? ■ Sont-ils équiprobables?
■ Modèle 1: Piger une rondelle Trois évènements : – 1) la rondelle tirée a deux faces rouges; – 2) la rondelle tirée a deux faces bleues; – 3) la rondelle tirée est bicolore. ■ Comme les rondelles sont indiscernables, chacune a la même probabilité d’être tirée. ■ Algorithmiquement, on modélise cette équiprobabilité par le choix aléatoire d’un nombre entre 1 et 3 ■ Un modèle possible: – nombre 1 : tirage de la rondelle à deux faces rouges, – nombre 2 : tirage de la rondelle à deux faces bleues, – nombre 3 : tirage de la rondelle bicolore
Algorithme partiel A t’on besoin d’un variable? ■ Choisir un nombre aléatoire entre 1 et 3 et affecter sa valeur à la variable Nbre. Rondelle: ■ Si Nbre. Rondelle vaut 1, alors attribuer le costume rouge au lutin Face 1, puis le costume rouge au lutin Face 2; ■ Si Nbre. Rondelle vaut 2, alors attribuer le costume bleu au lutin Face 1, puis le costume bleu au lutin Face 2; ■ Si Nbre. Rondelle vaut 3, …
Couleurs des faces ■ Si Nbre. Rondelle vaut 1? ■ Si Nbre. Rondelle vaut 2? ■ Si Nbre. Rondelle vaut 3? – Faces indiscernables au toucher en pigeant la rondelle, la probabilité de rendre visible le côté bleu est la même que celle de rendre visible le côté rouge. – tirage d’un nombre aléatoire, entre 1 et 2. – une variable pour stocker cette valeur Nbre. Face 1.
Algorithme complet ■ Choisir un nombre aléatoire entre 1 et 3 et affecter sa valeur à la variable Nbre. Rondelle: ■ Si Nbre. Rondelle vaut 1, alors attribuer le costume rouge au lutin Face 1, puis le costume rouge au lutin Face 2; ■ Si Nbre. Rondelle vaut 2, alors attribuer le costume bleu au lutin Face 1, puis le costume bleu au lutin Face 2; ■ Si Nbre. Rondelle vaut 3, alors: – Choisir un nombre aléatoire entre 1 et 2 et affecter sa valeur à la variable Nbre. Face 1; – Si Nbre. Face 1 vaut 1, alors attribuer le costume rouge au lutin Face 1, puis le costume bleu au lutin Face 2; – Si Nbre. Face 1 vaut 2, alors attribuer le costume bleu au lutin Face 1, puis le costume rouge au lutin Face 2.
Spécificité Scratch ■ Séparer les instructions qui concernent le lutin Face 1 de celles qui concernent le lutin Face 2. ■ Le lutin Face 1 affiche sa couleur en premier, puis passe le relais au lutin Face 2 qui affiche sa couleur à son tour (comme si on retournait la rondelle) – message entre lutins.
Modèle 2: piger une face ■ Faces des rondelles indiscernables, distinctes, mais liées par paires. ■ Trois rondelles donc six faces différentes: – bleu 1 et bleu 2 – rouge 3 et rouge 4 – bleu 5 et rouge 6 ■ Six évènements: – Équiprobabilité : choix d’un nombre entre 1 et 6 – Deuxième face déterminée par la première face
Algorithme Choisir un nombre aléatoire entre 1 et 6 et affecter sa valeur à la variable Nbre. Face 1: Si Nbre. Face 1 vaut 1 ou 2, alors attribuer le costume bleu au lutin Face 1, puis le costume bleu au lutin Face 2; Si Nbre. Face 1 vaut 3 ou 4, alors attribuer le costume rouge au lutin Face 1, puis le costume rouge au lutin Face 2; Si Nbre. Face 1 vaut 5, alors attribuer le costume rouge au lutin Face 1, puis le costume bleu au lutin Face 2; Si Nbre. Face 1 vaut 6, alors attribuer le costume bleu au lutin Face 1, puis le costume rouge au lutin Face 2. Programme correspondant: https: //scratch. mit. edu/projects/224869883
Bilan de la phase 1 ■ Modélisation à la fois informatique et mathématique de la situation aléatoire. ■ Modélisation mathématique – – – Dénombrer les résultats possibles – Mise en œuvre de capacités d’abstraction. dégager les caractéristiques aléatoires de la situation, décider les paramètres à considérer et ceux qui ne doivent pas être pris en compte dans la modélisation (par exemple, le diamètre des rondelles n’intervient pas). ■ Modélisation informatique traduction sous forme de variables et de données dans le programme informatique. ■ Calcule implicite des probabilités théoriques ■ notions d’évènements aléatoires et de dépendance. ■ Émergence possible d’autres raisonnements possibles: – – travail en grand groupe pour valider ou invalider décider d’un ou de plusieurs critères pour choisir le ou les modèles que l’on conservera dans les phases 2 et 3.
PHASE 2 Prédire une couleur pour la deuxième face
Analyser la scène Scratch ■ https: //scratch. mit. edu/projects/337204120
Scripts des lutins Face 1 et Face 2 ■ Qu’est-ce qui change par rapport à la phase 1? – Le lutin Face 1 réagit au signal du bouton Piger – La communication entre les lutins ■ ■ le lutin Face 1 ne déclenche pas le lutin Face 2 Le boutons de prédiction envoie le message «Afficher. Face 2» . – Deux variables supplémentaires par rapport à la phase 1 ■ ■ ■ Couleur. Face 2 Couleur. Prédiction, À quoi servent-elles? .
Script Face 1 ■ À la réception du message «piger» , choisir un nombre aléatoire entre 1 et 3 et affecter sa valeur à la variable Nbre. Rondelle: ■ Si Nbre. Rondelle vaut 1, alors basculer sur le costume rouge, puis affecter la valeur «rouge» à la variable Couleur. Face 2; ■ Si Nbre. Rondelle vaut 2, alors basculer sur le costume bleu, puis affecter la valeur «bleu» à la variable Couleur. Face 2; ■ Si Nbre. Rondelle vaut 3, alors – Choisir un nombre aléatoire entre 1 et 2 et affecter sa valeur à la variable Nbre. Face 1: – Si Nbre. Face 1 vaut 1, alors basculer sur le costume rouge et affecter la valeur «bleu» à la variable Couleur. Face 2; – Sinon basculer le costume bleu et affecter la valeur «rouge» à la variable Couleur. Face 2.
Script du lutin Face 2 ■ déclenche ses actions à la réception du message «Afficher. Face 2» . ■ Bascule sur le costume correspondant à la valeur stockée dans la variable Couleur. Face 2. ■ Lien vers le programme complet: https: //scratch. mit. edu/projects/226016749/
Bilan de la phase 2 ■ Informatique: – lecture et compréhension de programmes – Apprentissage de la programmation. ■ Modélisation mathématique, – Prendre conscience de l’importance de la séquence temporelle des étapes de l’expérience aléatoire: ■ ■ – – d’abord la rondelle est tirée et la couleur de chaque face est déterminée, mais le joueur ne voit que la face visible Le jouer prédit la couleur de la face cachée, La couleur lui est révélée. Affichages de ces couleurs décalés dans le temps mais détermination simultanée et conditionnée uniquement par le choix de la rondelle. Difficultés : intercaler la prédiction du joueur entre les deux affichages, ■ variable Couleur. Face 2 : dépendance de la couleur de la face cachée selon la couleur de la face visible
Notion de stratégie ■ Meilleure compréhension de ce qu’on va ensuite appeler une «stratégie de prédiction» – «Si je tiens compte de la couleur de la face visible, est-ce que j’augmente la probabilité de gagner? » , ) ■ Programmation : support à la réflexion en rendant plus visible la nature de la dépendance entre les couleurs deux faces. ■ Réflexion qui ne repose pas uniquement sur l’intuition, mais aussi sur la structure des données et des instructions. ■ Les stratégies discutées peuvent être mises en œuvre et testées avec le programme réalisé
PHASE 3 Automatiser le simulateur
Réinvestir la modélisation ■ Programme fourni aux élèves: https: //scratch. mit. edu/projects/226013366 – plus complexe – permettant de tester les stratégies de prédiction ■ Travail d’analyse ■ Choix d’un nombre d’essais ■ Choix d’une stratégie de prédiction appliquée systématiquement à chaque essai. ■ Comptabiliser le nombre et de la férquence des prédictions perdues et gagnées ■ Affichage sous forme de diagramme à
Utiliser le simulateur
Retrouvez les programmes de l’atelier ■ https: //scratch. mit. edu/studios/25301556/ ■ Situation des rondelles: https: //scratch. mit. edu/studios/5079081/
- Slides: 28